Fisheye: Tag 85f5cbee4721291b681d94767dd41845a28ad4ad refers to a dead (removed) revision in file `Application/Ringtoets/src/Application.Ringtoets.Migration.Console/Application.Riskeer.Migration.Console.csproj'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 85f5cbee4721291b681d94767dd41845a28ad4ad refers to a dead (removed) revision in file `Application/Ringtoets/src/Application.Ringtoets.Migration.Console/Properties/AssemblyInfo.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 85f5cbee4721291b681d94767dd41845a28ad4ad refers to a dead (removed) revision in file `Application/Ringtoets/src/Application.Ringtoets.Migration.Console/Properties/Resources.Designer.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 85f5cbee4721291b681d94767dd41845a28ad4ad refers to a dead (removed) revision in file `Application/Ringtoets/src/Application.Ringtoets.Migration.Console/Properties/Resources.resx'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 85f5cbee4721291b681d94767dd41845a28ad4ad refers to a dead (removed) revision in file `Application/Ringtoets/src/Application.Ringtoets.Migration.Console/RingtoetsMigrationConsole.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 85f5cbee4721291b681d94767dd41845a28ad4ad refers to a dead (removed) revision in file `Application/Ringtoets/src/Application.Ringtoets.Migration.Console/RingtoetsMigrationTool.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Index: Application/Ringtoets/src/Application.Riskeer.Migration.Console/Application.Riskeer.Migration.Console.csproj
===================================================================
diff -u
--- Application/Ringtoets/src/Application.Riskeer.Migration.Console/Application.Riskeer.Migration.Console.csproj (revision 0)
+++ Application/Ringtoets/src/Application.Riskeer.Migration.Console/Application.Riskeer.Migration.Console.csproj (revision 85f5cbee4721291b681d94767dd41845a28ad4ad)
@@ -0,0 +1,68 @@
+
+
+
+ {23C45BFD-0A07-400F-B216-DF0C74CC99A1}
+ Application.Riskeer.Migration.Console
+ Migratiehulpprogramma
+ Exe
+
+
+
+
+
+
+
+
+
+ True
+ True
+ Resources.resx
+
+
+
+
+
+
+ Copying.licenseheader
+
+
+
+
+ {F49BD8B2-332A-4C91-A196-8CCE0A2C7D98}
+ Core.Common.Util
+ False
+
+
+ {2E2C9B96-E72A-4C10-AA54-A5381FE30B0D}
+ Migration.Console
+ False
+
+
+ {efd7e662-5b69-4b71-a448-565b64e9c033}
+ Migration.Core.Storage
+ False
+
+
+ {d08db9e2-6861-44c8-a725-71a70274cc77}
+ Migration.Scripts.Data
+ False
+
+
+ {6A074D65-A81C-4C1C-8E24-F36C916E4ED7}
+ Ringtoets.Common.Util
+ False
+
+
+ {fac55b92-e259-43d6-b9a1-5bda6c834359}
+ Riskeer.Migration.Core
+ False
+
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+
\ No newline at end of file
Index: Application/Ringtoets/src/Application.Riskeer.Migration.Console/Properties/AssemblyInfo.cs
===================================================================
diff -u
--- Application/Ringtoets/src/Application.Riskeer.Migration.Console/Properties/AssemblyInfo.cs (revision 0)
+++ Application/Ringtoets/src/Application.Riskeer.Migration.Console/Properties/AssemblyInfo.cs (revision 85f5cbee4721291b681d94767dd41845a28ad4ad)
@@ -0,0 +1,25 @@
+// Copyright (C) Stichting Deltares 2018. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System.Reflection;
+
+[assembly: AssemblyTitle("Migratiehulpprogramma")]
+[assembly: AssemblyProduct("Migratiehulpprogramma")]
\ No newline at end of file
Index: Application/Ringtoets/src/Application.Riskeer.Migration.Console/Properties/Resources.Designer.cs
===================================================================
diff -u
--- Application/Ringtoets/src/Application.Riskeer.Migration.Console/Properties/Resources.Designer.cs (revision 0)
+++ Application/Ringtoets/src/Application.Riskeer.Migration.Console/Properties/Resources.Designer.cs (revision 85f5cbee4721291b681d94767dd41845a28ad4ad)
@@ -0,0 +1,174 @@
+// Copyright (C) Stichting Deltares 2018. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace Application.Riskeer.Migration.Console.Properties {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Application.Riskeer.Migration.Console.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to {0} is geen geldige opdracht..
+ ///
+ internal static string CommandInvalid_Command_0_Is_not_valid {
+ get {
+ return ResourceManager.GetString("CommandInvalid_Command_0_Is_not_valid", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to MIGRATIEHULPPROGRAMMA bronprojectpad doelprojectpad.
+ ///
+ internal static string CommandMigrate_Brief {
+ get {
+ return ResourceManager.GetString("CommandMigrate_Brief", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Voert de migratie uit van het projectbestand dat te vinden is in het bronprojectpad en slaat het resulterende projectbestand op in het doelprojectpad..
+ ///
+ internal static string CommandMigrate_Detailed {
+ get {
+ return ResourceManager.GetString("CommandMigrate_Detailed", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Bron- en doelprojectpad moeten geldige bestandspaden zijn..
+ ///
+ internal static string CommandMigrate_Source_Or_Destination_Not_Valid_Path {
+ get {
+ return ResourceManager.GetString("CommandMigrate_Source_Or_Destination_Not_Valid_Path", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Het projectbestand '{0}' is succesvol gemigreerd naar '{1}' (versie {2})..
+ ///
+ internal static string CommandMigrate_Successful_Migration_From_Location_0_To_Location_1_Version_2 {
+ get {
+ return ResourceManager.GetString("CommandMigrate_Successful_Migration_From_Location_0_To_Location_1_Version_2", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to MIGRATIEHULPPROGRAMMA bronprojectpad.
+ ///
+ internal static string CommandSupported_Brief {
+ get {
+ return ResourceManager.GetString("CommandSupported_Brief", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Controleert of het projectbestand dat te vinden is in het bronprojectpad gemigreerd kan worden..
+ ///
+ internal static string CommandSupported_Detailed {
+ get {
+ return ResourceManager.GetString("CommandSupported_Detailed", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Het projectbestand kan gemigreerd worden naar versie '{0}'..
+ ///
+ internal static string CommandSupported_File_Able_To_Migrate_To_Version_0 {
+ get {
+ return ResourceManager.GetString("CommandSupported_File_Able_To_Migrate_To_Version_0", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Dit hulpprogramma kan worden gebruikt om een projectbestand in het formaat van een eerdere versie van Ringtoets te migreren naar het formaat van de huidige versie van Ringtoets ({0})..
+ ///
+ internal static string RingtoetsMigrationTool_ApplicationDescription_Version_0 {
+ get {
+ return ResourceManager.GetString("RingtoetsMigrationTool_ApplicationDescription_Version_0", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to MIGRATIEHULPPROGRAMMA.
+ ///
+ internal static string RingtoetsMigrationTool_ApplicationName {
+ get {
+ return ResourceManager.GetString("RingtoetsMigrationTool_ApplicationName", resourceCulture);
+ }
+ }
+ }
+}
Index: Application/Ringtoets/src/Application.Riskeer.Migration.Console/Properties/Resources.resx
===================================================================
diff -u
--- Application/Ringtoets/src/Application.Riskeer.Migration.Console/Properties/Resources.resx (revision 0)
+++ Application/Ringtoets/src/Application.Riskeer.Migration.Console/Properties/Resources.resx (revision 85f5cbee4721291b681d94767dd41845a28ad4ad)
@@ -0,0 +1,150 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ MIGRATIEHULPPROGRAMMA bronprojectpad doelprojectpad
+
+
+ Voert de migratie uit van het projectbestand dat te vinden is in het bronprojectpad en slaat het resulterende projectbestand op in het doelprojectpad.
+
+
+ Het projectbestand '{0}' is succesvol gemigreerd naar '{1}' (versie {2}).
+
+
+ MIGRATIEHULPPROGRAMMA bronprojectpad
+
+
+ Controleert of het projectbestand dat te vinden is in het bronprojectpad gemigreerd kan worden.
+
+
+ Dit hulpprogramma kan worden gebruikt om een projectbestand in het formaat van een eerdere versie van Ringtoets te migreren naar het formaat van de huidige versie van Ringtoets ({0}).
+
+
+ Het projectbestand kan gemigreerd worden naar versie '{0}'.
+
+
+ {0} is geen geldige opdracht.
+
+
+ MIGRATIEHULPPROGRAMMA
+
+
+ Bron- en doelprojectpad moeten geldige bestandspaden zijn.
+
+
\ No newline at end of file
Index: Application/Ringtoets/src/Application.Riskeer.Migration.Console/RingtoetsMigrationConsole.cs
===================================================================
diff -u
--- Application/Ringtoets/src/Application.Riskeer.Migration.Console/RingtoetsMigrationConsole.cs (revision 0)
+++ Application/Ringtoets/src/Application.Riskeer.Migration.Console/RingtoetsMigrationConsole.cs (revision 85f5cbee4721291b681d94767dd41845a28ad4ad)
@@ -0,0 +1,143 @@
+// Copyright (C) Stichting Deltares 2018. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using Application.Riskeer.Migration.Console.Properties;
+using Core.Common.Util;
+using Migration.Console;
+using Ringtoets.Common.Util;
+using Riskeer.Migration.Core;
+using MigrationCoreStorageResources = Migration.Core.Storage.Properties.Resources;
+using RiskeerMigrationCoreResources = Riskeer.Migration.Core.Properties.Resources;
+
+namespace Application.Riskeer.Migration.Console
+{
+ ///
+ /// Console application that can migrate a Ringtoets database file to a newer version.
+ ///
+ public class RingtoetsMigrationConsole : ConsoleBase
+ {
+ private static readonly string currentDatabaseVersion = RingtoetsVersionHelper.GetCurrentDatabaseVersion();
+
+ ///
+ /// Creates a new instance of .
+ ///
+ public RingtoetsMigrationConsole() : base(Resources.RingtoetsMigrationTool_ApplicationName,
+ GetApplicationDescription()) {}
+
+ protected override void ExecuteCommand(string[] args)
+ {
+ switch (args.Length)
+ {
+ case 1:
+ IsVersionSupportedCommand(args[0]);
+ break;
+ case 2:
+ MigrateCommand(args[0], args[1]);
+ break;
+ default:
+ string command = string.Join(" ", args);
+ InvalidCommand(command);
+ break;
+ }
+ }
+
+ protected override void DisplayCommands()
+ {
+ ShowSupportedCommand();
+ ShowMigrateCommand();
+ }
+
+ private static string GetApplicationDescription()
+ {
+ return string.Format(Resources.RingtoetsMigrationTool_ApplicationDescription_Version_0, currentDatabaseVersion);
+ }
+
+ #region Commands
+
+ private static void InvalidCommand(string command)
+ {
+ throw new NotSupportedException(string.Format(Resources.CommandInvalid_Command_0_Is_not_valid, command));
+ }
+
+ private static void IsVersionSupportedCommand(string location)
+ {
+ ValidateIsVersionSupportedArgument(location);
+
+ var versionedFile = new RingtoetsVersionedFile(location);
+ var migrator = new RingtoetsSqLiteDatabaseFileMigrator();
+ string version = versionedFile.GetVersion();
+
+ bool isSupported = migrator.IsVersionSupported(version);
+
+ if (isSupported)
+ {
+ System.Console.WriteLine(Resources.CommandSupported_File_Able_To_Migrate_To_Version_0, currentDatabaseVersion);
+ }
+ else
+ {
+ ConsoleHelper.WriteErrorLine(MigrationCoreStorageResources.Migrate_From_Version_0_To_Version_1_Not_Supported,
+ version, currentDatabaseVersion);
+ }
+ }
+
+ private static void ValidateIsVersionSupportedArgument(string location)
+ {
+ if (!IOUtils.IsValidFilePath(location))
+ {
+ throw new ArgumentException(RiskeerMigrationCoreResources.CommandSupported_Source_Not_Valid_Path);
+ }
+ }
+
+ private static void ShowSupportedCommand()
+ {
+ System.Console.WriteLine(Resources.CommandSupported_Brief);
+ ConsoleHelper.WriteCommandDescriptionLine(Resources.CommandSupported_Detailed);
+ }
+
+ private static void MigrateCommand(string filePath, string toFilePath)
+ {
+ ValidateMigrationArguments(filePath, toFilePath);
+ var migrator = new RingtoetsSqLiteDatabaseFileMigrator();
+ var sourceFile = new RingtoetsVersionedFile(filePath);
+
+ migrator.Migrate(sourceFile, currentDatabaseVersion, toFilePath);
+ System.Console.WriteLine(Resources.CommandMigrate_Successful_Migration_From_Location_0_To_Location_1_Version_2,
+ filePath, toFilePath, currentDatabaseVersion);
+ }
+
+ private static void ValidateMigrationArguments(string filePath, string toFilePath)
+ {
+ if (!(IOUtils.IsValidFilePath(filePath) && IOUtils.IsValidFilePath(toFilePath)))
+ {
+ throw new ArgumentException(Resources.CommandMigrate_Source_Or_Destination_Not_Valid_Path);
+ }
+ }
+
+ private static void ShowMigrateCommand()
+ {
+ System.Console.WriteLine(Resources.CommandMigrate_Brief);
+ ConsoleHelper.WriteCommandDescriptionLine(Resources.CommandMigrate_Detailed);
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/src/Application.Riskeer.Migration.Console/RingtoetsMigrationTool.cs
===================================================================
diff -u
--- Application/Ringtoets/src/Application.Riskeer.Migration.Console/RingtoetsMigrationTool.cs (revision 0)
+++ Application/Ringtoets/src/Application.Riskeer.Migration.Console/RingtoetsMigrationTool.cs (revision 85f5cbee4721291b681d94767dd41845a28ad4ad)
@@ -0,0 +1,44 @@
+// Copyright (C) Stichting Deltares 2018. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+namespace Application.Riskeer.Migration.Console
+{
+ ///
+ /// Entry point to the console application that can migrate a Ringtoets database file to a newer version.
+ ///
+ public static class RingtoetsMigrationTool
+ {
+ ///
+ /// Main Ringtoets migration application.
+ ///
+ /// Arguments
+ /// Accepted commands:
+ /// --help Shows help menu,
+ /// --supported Returns if the database file is supported,
+ /// --migrate Migrates the database file to a newer version.
+ ///
+ public static void Main(string[] args)
+ {
+ var ringtoetsMigrationTool = new RingtoetsMigrationConsole();
+ ringtoetsMigrationTool.ExecuteConsoleTool(args);
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/test/Application.Ringtoets.Migration.Console.Test/Application.Ringtoets.Migration.Console.Test.csproj
===================================================================
diff -u -rcb4ccbbf50186ccfc6b04bd9cf16b99c6a61acfa -r85f5cbee4721291b681d94767dd41845a28ad4ad
--- Application/Ringtoets/test/Application.Ringtoets.Migration.Console.Test/Application.Ringtoets.Migration.Console.Test.csproj (.../Application.Ringtoets.Migration.Console.Test.csproj) (revision cb4ccbbf50186ccfc6b04bd9cf16b99c6a61acfa)
+++ Application/Ringtoets/test/Application.Ringtoets.Migration.Console.Test/Application.Ringtoets.Migration.Console.Test.csproj (.../Application.Ringtoets.Migration.Console.Test.csproj) (revision 85f5cbee4721291b681d94767dd41845a28ad4ad)
@@ -58,7 +58,7 @@
{C98D99C5-2ADD-4693-916C-71BF78750412}Riskeer.Migration.Core.TestUtil
-
+ {23C45BFD-0A07-400F-B216-DF0C74CC99A1}Application.Riskeer.Migration.Console
Index: Ringtoets.sln
===================================================================
diff -u -rcb4ccbbf50186ccfc6b04bd9cf16b99c6a61acfa -r85f5cbee4721291b681d94767dd41845a28ad4ad
--- Ringtoets.sln (.../Ringtoets.sln) (revision cb4ccbbf50186ccfc6b04bd9cf16b99c6a61acfa)
+++ Ringtoets.sln (.../Ringtoets.sln) (revision 85f5cbee4721291b681d94767dd41845a28ad4ad)
@@ -1318,7 +1318,7 @@
{C90B77DA-E421-43CC-B82E-529651BC21AC} = {C90B77DA-E421-43CC-B82E-529651BC21AC}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Application.Riskeer.Migration.Console", "Application\Ringtoets\src\Application.Ringtoets.Migration.Console\Application.Riskeer.Migration.Console.csproj", "{23C45BFD-0A07-400F-B216-DF0C74CC99A1}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Application.Riskeer.Migration.Console", "Application\Ringtoets\src\Application.Riskeer.Migration.Console\Application.Riskeer.Migration.Console.csproj", "{23C45BFD-0A07-400F-B216-DF0C74CC99A1}"
ProjectSection(ProjectDependencies) = postProject
{C90B77DA-E421-43CC-B82E-529651BC21AC} = {C90B77DA-E421-43CC-B82E-529651BC21AC}
EndProjectSection