diff --git a/.gitmodules b/.gitmodules index 5826afc..2f3b1f4 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,9 +1,6 @@ [submodule "XML.Cake.NET"] path = XML.Cake.NET url = https://github.com/Monitor221hz/XML.Cake.NET -[submodule "HKX2-Enhanced-Library"] - path = HKX2-Enhanced-Library - url = https://github.com/Monitor221hz/HKX2-Enhanced-Library -[submodule "HKX2 Enhanced Library"] - path = HKX2 Enhanced Library - url = https://github.com/Monitor221hz/HKX2-Enhanced-Library +[submodule "Pandora API"] + path = Pandora API + url = https://github.com/Monitor221hz/Pandora-Behaviour-Engine-Plus-API diff --git a/HKX2 Enhanced Library b/HKX2 Enhanced Library deleted file mode 160000 index 1fead1d..0000000 --- a/HKX2 Enhanced Library +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 1fead1ddef0e5ba599280b4ec56ad3377a2d8371 diff --git a/Pandora API b/Pandora API new file mode 160000 index 0000000..57722d5 --- /dev/null +++ b/Pandora API @@ -0,0 +1 @@ +Subproject commit 57722d519cdaa668c6cd9ca889f9f34cf2f9af4a diff --git a/Pandora API/IOManagers/IDataExporter.cs b/Pandora API/IOManagers/IDataExporter.cs deleted file mode 100644 index b28a44b..0000000 --- a/Pandora API/IOManagers/IDataExporter.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Pandora.API.Patch.IOManagers; -public interface IDataExporter -{ - public DirectoryInfo ExportDirectory { get; set; } - public bool Export(T obj); - public T Import(FileInfo file); - - public bool ExportParallel(IEnumerable objs) - { - bool success = true; - Parallel.ForEach(objs, obj => { if (!Export(obj)) { success = false; } }); - return success; - } -} - diff --git a/Pandora API/IOManagers/IMetaDataExporter.cs b/Pandora API/IOManagers/IMetaDataExporter.cs deleted file mode 100644 index 484f7ac..0000000 --- a/Pandora API/IOManagers/IMetaDataExporter.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Collections.Generic; - -namespace Pandora.API.Patch.IOManagers; - -public interface IMetaDataExporter : IDataExporter -{ - public void LoadMetaData(); - public void SaveMetaData(IEnumerable collection); -} - diff --git a/Pandora API/Pandora API.csproj b/Pandora API/Pandora API.csproj deleted file mode 100644 index a73a143..0000000 --- a/Pandora API/Pandora API.csproj +++ /dev/null @@ -1,14 +0,0 @@ - - - - net8.0 - Pandora.API - enable - enable - - - - - - - diff --git a/Pandora API/Patch.Engine.Config/IEngineConfiguration.cs b/Pandora API/Patch.Engine.Config/IEngineConfiguration.cs deleted file mode 100644 index e08a476..0000000 --- a/Pandora API/Patch.Engine.Config/IEngineConfiguration.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace Pandora.API.Patch.Engine.Config; - -public interface IEngineConfiguration -{ - string Name { get; } - - string Description { get; } - - public IPatcher Patcher { get; } - -} diff --git a/Pandora API/Patch.Engine.Config/IEngineConfigurationFactory.cs b/Pandora API/Patch.Engine.Config/IEngineConfigurationFactory.cs deleted file mode 100644 index ae88c5e..0000000 --- a/Pandora API/Patch.Engine.Config/IEngineConfigurationFactory.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Pandora.API.Patch.Engine.Config; -public interface IEngineConfigurationFactory -{ - public string Name { get; } - public IEngineConfiguration? Config { get; } - public bool Selectable => Config != null; -} diff --git a/Pandora API/Patch.Engine.Config/IEngineConfigurationPlugin.cs b/Pandora API/Patch.Engine.Config/IEngineConfigurationPlugin.cs deleted file mode 100644 index 1fd032d..0000000 --- a/Pandora API/Patch.Engine.Config/IEngineConfigurationPlugin.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Pandora.API.Patch.Engine.Config; -public interface IEngineConfigurationPlugin -{ - public enum OptionFlags - { - None = 0, - HidePatches = 1, - } - public string MenuPath { get; } - public IEngineConfigurationFactory Factory { get; } -} diff --git a/Pandora API/Patch.Engine.Plugins/IMetaPluginLoader.cs b/Pandora API/Patch.Engine.Plugins/IMetaPluginLoader.cs deleted file mode 100644 index 542ff71..0000000 --- a/Pandora API/Patch.Engine.Plugins/IMetaPluginLoader.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Pandora.API.Patch.Engine.Plugins; -using System.Diagnostics.CodeAnalysis; -using System.IO; -using System.Reflection; - -namespace Pandora.Models.Patch.Engine.Plugins; -public interface IMetaPluginLoader -{ - Assembly LoadPlugin(DirectoryInfo directory, IPluginInfo pluginInfo); - - bool TryLoadMetadata(DirectoryInfo directory, [NotNullWhen(true)] out IPluginInfo? pluginInfo); -} \ No newline at end of file diff --git a/Pandora API/Patch.Engine.Plugins/IPluginInfo.cs b/Pandora API/Patch.Engine.Plugins/IPluginInfo.cs deleted file mode 100644 index 8cebffa..0000000 --- a/Pandora API/Patch.Engine.Plugins/IPluginInfo.cs +++ /dev/null @@ -1,12 +0,0 @@ - -namespace Pandora.API.Patch.Engine.Plugins; -/// -/// UNSAFE - DO NOT USE -/// -public interface IPluginInfo -{ - public const string FILE_HEADER = "plugin"; - string Name { get; set; } - string Author { get; set; } - string Path { get; set; } -} \ No newline at end of file diff --git a/Pandora API/Patch.Engine.Plugins/IPluginLoader.cs b/Pandora API/Patch.Engine.Plugins/IPluginLoader.cs deleted file mode 100644 index b8d82e4..0000000 --- a/Pandora API/Patch.Engine.Plugins/IPluginLoader.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System.Reflection; - -namespace Pandora.Models.Patch.Engine.Plugins; - -public interface IPluginLoader -{ - Assembly? LoadPlugin(DirectoryInfo directory); -} diff --git a/Pandora API/Patch.Engine.Plugins/PluginInfo.cs b/Pandora API/Patch.Engine.Plugins/PluginInfo.cs deleted file mode 100644 index ba906a1..0000000 --- a/Pandora API/Patch.Engine.Plugins/PluginInfo.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Pandora.API.Patch.Engine.Plugins; -public class PluginInfo : IPluginInfo -{ - public string Name { get; set; } - public string Author { get; set; } - public string Path { get; set; } -} diff --git a/Pandora API/Patch.Engine.Skyrim64/AnimData/IClipDataBlock.cs b/Pandora API/Patch.Engine.Skyrim64/AnimData/IClipDataBlock.cs deleted file mode 100644 index 52fff8c..0000000 --- a/Pandora API/Patch.Engine.Skyrim64/AnimData/IClipDataBlock.cs +++ /dev/null @@ -1,15 +0,0 @@ -namespace Pandora.API.Patch.Engine.Skyrim64.AnimData; - -public interface IClipDataBlock -{ - string ClipID { get; } - float CropEndLocalTime { get; } - float CropStartLocalTime { get; } - string Name { get; } - int NumClipTriggers { get; } - float PlaybackSpeed { get; } - List TriggerNames { get; } - - int GetLineCount(); - string ToString(); -} \ No newline at end of file diff --git a/Pandora API/Patch.Engine.Skyrim64/AnimData/IClipMotionDataBlock.cs b/Pandora API/Patch.Engine.Skyrim64/AnimData/IClipMotionDataBlock.cs deleted file mode 100644 index 8313f45..0000000 --- a/Pandora API/Patch.Engine.Skyrim64/AnimData/IClipMotionDataBlock.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace Pandora.API.Patch.Engine.Skyrim64.AnimData; - -public interface IClipMotionDataBlock -{ - string ClipID { get; } - float Duration { get; } - int NumRotations { get; } - int NumTranslations { get; } - List Rotations { get; } - List Translations { get; } - - int GetLineCount(); - string ToString(); -} diff --git a/Pandora API/Patch.Engine.Skyrim64/AnimData/IMotionData.cs b/Pandora API/Patch.Engine.Skyrim64/AnimData/IMotionData.cs deleted file mode 100644 index a01b7a3..0000000 --- a/Pandora API/Patch.Engine.Skyrim64/AnimData/IMotionData.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Pandora.API.Patch.Engine.Skyrim64.AnimData; - -public interface IMotionData -{ - void AddDummyClipMotionData(string id); - List GetBlocks(); - int GetLineCount(); - string ToString(); - bool TryGetBlock(int id, [NotNullWhen(true)] out IClipMotionDataBlock? block); -} diff --git a/Pandora API/Patch.Engine.Skyrim64/AnimData/IProjectAnimData.cs b/Pandora API/Patch.Engine.Skyrim64/AnimData/IProjectAnimData.cs deleted file mode 100644 index a4a325d..0000000 --- a/Pandora API/Patch.Engine.Skyrim64/AnimData/IProjectAnimData.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace Pandora.API.Patch.Engine.Skyrim64.AnimData; - -public interface IProjectAnimData -{ - public IProjectAnimDataHeader GetHeader(); - - public IMotionData? GetBoundMotionData(); - public List GetBlocks(); - void AddDummyClipData(string clipName); - int GetLineCount(); - string ToString(); -} diff --git a/Pandora API/Patch.Engine.Skyrim64/AnimData/IProjectAnimDataHeader.cs b/Pandora API/Patch.Engine.Skyrim64/AnimData/IProjectAnimDataHeader.cs deleted file mode 100644 index 674c6f5..0000000 --- a/Pandora API/Patch.Engine.Skyrim64/AnimData/IProjectAnimDataHeader.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace Pandora.API.Patch.Engine.Skyrim64.AnimData; - -public interface IProjectAnimDataHeader - { - int AssetCount { get; set; } - int HasMotionData { get; set; } - int LeadInt { get; set; } - List ProjectAssets { get; set; } - - int GetLineCount(); - string ToString(); - } diff --git a/Pandora API/Patch.Engine.Skyrim64/IPackFile.cs b/Pandora API/Patch.Engine.Skyrim64/IPackFile.cs deleted file mode 100644 index 91ecb62..0000000 --- a/Pandora API/Patch.Engine.Skyrim64/IPackFile.cs +++ /dev/null @@ -1,19 +0,0 @@ -using HKX2E; -using Pandora.API.Patch.IOManagers; -namespace Pandora.API.Patch.Engine.Skyrim64; - -public interface IPackFile -{ - hkRootLevelContainer Container { get; } - string Name { get; } - int NodeCount { get; } - string UniqueName { get; } - - public FileInfo OutputHandle { get; } - IProject GetProject(); - T GetPushedObjectAs(string name) where T : class, IHavokObject; - bool PathExists(string nodeName, string path); - bool TargetExists(string nodeName); - public FileInfo GetOutputHandle(DirectoryInfo exportDirectory); -} - diff --git a/Pandora API/Patch.Engine.Skyrim64/IPackFileCharacter.cs b/Pandora API/Patch.Engine.Skyrim64/IPackFileCharacter.cs deleted file mode 100644 index 09c3f3c..0000000 --- a/Pandora API/Patch.Engine.Skyrim64/IPackFileCharacter.cs +++ /dev/null @@ -1,18 +0,0 @@ -using HKX2E; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Pandora.API.Patch.Engine.Skyrim64; -public interface IPackFileCharacter -{ - string BehaviorFileName { get; } - hkbCharacterData Data { get; set; } - uint InitialAnimationCount { get; } - uint NewAnimationCount { get; } - string SkeletonFileName { get; } - hkbCharacterStringData StringData { get; set; } - public bool AddUniqueAnimation(string name); -} \ No newline at end of file diff --git a/Pandora API/Patch.Engine.Skyrim64/IPackFileGraph.cs b/Pandora API/Patch.Engine.Skyrim64/IPackFileGraph.cs deleted file mode 100644 index b0f6e70..0000000 --- a/Pandora API/Patch.Engine.Skyrim64/IPackFileGraph.cs +++ /dev/null @@ -1,14 +0,0 @@ -using HKX2E; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Pandora.API.Patch.Engine.Skyrim64; -public interface IPackFileGraph -{ - public hkbBehaviorGraphData Data { get; } - public hkbBehaviorGraphStringData StringData { get; } - public hkbVariableValueSet VariableValueSet { get; } -} diff --git a/Pandora API/Patch.Engine.Skyrim64/IPackFileSkeleton.cs b/Pandora API/Patch.Engine.Skyrim64/IPackFileSkeleton.cs deleted file mode 100644 index 9042184..0000000 --- a/Pandora API/Patch.Engine.Skyrim64/IPackFileSkeleton.cs +++ /dev/null @@ -1,22 +0,0 @@ -using HKX2E; -using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; - -namespace Pandora.API.Patch.Engine.Skyrim64; -public interface IPackFileSkeleton : IPackFile -{ - hkaAnimationContainer? MergedAnimationContainer { get; } - [MemberNotNullWhen(true, nameof(MergedAnimationContainer))] - public bool HasAnimationContainer => MergedAnimationContainer != null; - hkpPhysicsData? PhysicsData { get; } - [MemberNotNullWhen(true, nameof(PhysicsData))] - public bool HasPhysicsData => PhysicsData != null; - hkaRagdollInstance? RagdollInstance { get; } - [MemberNotNullWhen(true, nameof(RagdollInstance))] - public bool HasRagdollInstance => RagdollInstance != null; - hkMemoryResourceContainer? ResourceContainer { get; } - [MemberNotNullWhen(true, nameof(ResourceContainer))] - public bool HasResourceContainer => ResourceContainer != null; - List SkeletonMappers { get; } - public bool HasSkeletonMappers => SkeletonMappers.Count > 0; -} \ No newline at end of file diff --git a/Pandora API/Patch.Engine.Skyrim64/IProject.cs b/Pandora API/Patch.Engine.Skyrim64/IProject.cs deleted file mode 100644 index ddeb548..0000000 --- a/Pandora API/Patch.Engine.Skyrim64/IProject.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Pandora.API.Patch.Engine.Skyrim64; -public interface IProject -{ - public string Identifier { get; } - - public IPackFile GetProjectPackFile(); - public IPackFileCharacter GetCharacterPackFile(); - public IPackFileSkeleton GetSkeletonPackFile(); - public IPackFileGraph GetBehaviorPackFile(); - public IProject GetSibling(); - - public bool TryLookupPackFileEx(string name, out IPackFile? packFile); - - public bool ContainsPackFile(string name); - - -} \ No newline at end of file diff --git a/Pandora API/Patch.Engine.Skyrim64/IProjectManager.cs b/Pandora API/Patch.Engine.Skyrim64/IProjectManager.cs deleted file mode 100644 index c85d60f..0000000 --- a/Pandora API/Patch.Engine.Skyrim64/IProjectManager.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; -using System.Text; - -namespace Pandora.API.Patch.Engine.Skyrim64; -public interface IProjectManager -{ - void GetAnimationInfo(StringBuilder builder); - void GetExportInfo(StringBuilder builder); - void GetFNISInfo(StringBuilder builder); - IProject? LoadProjectEx(string projectFilePath); - IProject? LoadProjectHeaderEx(string projectFilePath); - void LoadProjects(List projectPaths); - bool ProjectExists(string name); - bool ProjectLoaded(string name); - bool TryActivatePackFileEx(IPackFile packFile); - bool TryGetProjectEx(string name,[NotNullWhen(true)] out IProject? project); - bool TryLookupPackFileEx(string name, [NotNullWhen(true)] out IPackFile? packFile); - bool TryLookupPackFileEx(string projectName, string packFileName, [NotNullWhen(true)] out IPackFile? packFile); - bool TryLookupProjectFolderEx(string name, [NotNullWhen(true)] out IProject? project); - bool TryLoadOutputPackFile(IPackFile packFile, [NotNullWhen(true)] out T? outPackFile) where T : class, IPackFile; - public bool TryLoadOutputPackFile(IPackFile packFile, string extension, [NotNullWhen(true)] out T? outPackFile) where T : class, IPackFile; -} \ No newline at end of file diff --git a/Pandora API/Patch.Engine.Skyrim64/ISkyrim64Patch.cs b/Pandora API/Patch.Engine.Skyrim64/ISkyrim64Patch.cs deleted file mode 100644 index 964a690..0000000 --- a/Pandora API/Patch.Engine.Skyrim64/ISkyrim64Patch.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Pandora.API.Patch.Engine.Skyrim64; -public interface ISkyrim64Patch -{ - public enum RunType - { - Serial, - Parallel - } - - public RunType Mode { get; } - public void Run(IProjectManager projectManager); -} diff --git a/Pandora API/Patch/IModInfo.cs b/Pandora API/Patch/IModInfo.cs deleted file mode 100644 index 50b189f..0000000 --- a/Pandora API/Patch/IModInfo.cs +++ /dev/null @@ -1,32 +0,0 @@ -namespace Pandora.API.Patch; - -/// -/// Strongly recommended to implement GetHashCode() in addition to IEquatable. -/// -public interface IModInfo : IEquatable -{ - public enum ModFormat - { - FNIS, - Nemesis, - Pandora - } - - public string Name { get; } - - public string Author { get; } - - public string URL { get; } - - public string Code { get; } - - public Version Version { get; } - - public DirectoryInfo Folder { get; } - - public ModFormat Format { get; } - - public bool Active { get; set; } - - public uint Priority { get; set; } -} diff --git a/Pandora API/Patch/IPatcher.cs b/Pandora API/Patch/IPatcher.cs deleted file mode 100644 index 3c8cff3..0000000 --- a/Pandora API/Patch/IPatcher.cs +++ /dev/null @@ -1,36 +0,0 @@ -namespace Pandora.API.Patch; - -public interface IPatcher -{ - [Flags] - public enum PatcherFlags - { - None = 0, - PreloadFailed = 1 << 1, - UpdateFailed = 1 << 2, - LaunchFailed = 1 << 3, - Success = ~(PreloadFailed | UpdateFailed | LaunchFailed) - } - public PatcherFlags Flags { get; } - public string GetVersionString(); - public Version GetVersion(); - public void SetTarget(List mods); - - public Task PreloadAsync(); - - public void Update(); - - public void Run(); - - public string GetPostRunMessages(); - - public string GetFailureMessages(); - - public Task UpdateAsync(); - - public Task RunAsync(); - - public void SetOutputPath(DirectoryInfo directoryInfo); - - public void SetOutputPath(string outputPath) => SetOutputPath(new DirectoryInfo(outputPath)); -} diff --git a/Pandora Behaviour Engine/Pandora Behaviour Engine.csproj b/Pandora Behaviour Engine/Pandora Behaviour Engine.csproj index 0957457..816ae68 100644 --- a/Pandora Behaviour Engine/Pandora Behaviour Engine.csproj +++ b/Pandora Behaviour Engine/Pandora Behaviour Engine.csproj @@ -33,9 +33,9 @@ - - - + + + diff --git a/Pandora Example Plugin/Pandora Example Plugin.csproj b/Pandora Example Plugin/Pandora Example Plugin.csproj index 12ad1d3..a9c7a3f 100644 --- a/Pandora Example Plugin/Pandora Example Plugin.csproj +++ b/Pandora Example Plugin/Pandora Example Plugin.csproj @@ -10,11 +10,7 @@ - - - False - runtime - + diff --git a/Pandora+.sln b/Pandora+.sln index 43af4dc..0d51be3 100644 --- a/Pandora+.sln +++ b/Pandora+.sln @@ -7,11 +7,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Pandora Behaviour Engine", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XML Cake", "XML.Cake.NET\XML Cake\XML Cake.csproj", "{BB763D92-7672-4056-888C-39367D01304C}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HKX2E", "HKX2 Enhanced Library\HKX2\HKX2E.csproj", "{39BEC9FE-DE80-4D85-B6C4-2BAD740624E4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Pandora Example Plugin", "Pandora Example Plugin\Pandora Example Plugin.csproj", "{18C77AB0-4DA4-4A1E-85EA-EC7A57629D3F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Pandora API", "Pandora API\Pandora API.csproj", "{9A0989E3-AE1A-4DE3-992F-B3FF96DAECAC}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pandora API", "Pandora API\Pandora API\Pandora API.csproj", "{784BBC12-A70F-46B2-A4B2-61C4D138609F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Pandora Example Plugin", "Pandora Example Plugin\Pandora Example Plugin.csproj", "{18C77AB0-4DA4-4A1E-85EA-EC7A57629D3F}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HKX2E", "Pandora API\HKX2-Enhanced-Library\HKX2\HKX2E.csproj", "{45A2B5D5-F692-4C70-886A-1C3DA21A61F9}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -27,18 +27,18 @@ Global {BB763D92-7672-4056-888C-39367D01304C}.Debug|Any CPU.Build.0 = Debug|Any CPU {BB763D92-7672-4056-888C-39367D01304C}.Release|Any CPU.ActiveCfg = Release|Any CPU {BB763D92-7672-4056-888C-39367D01304C}.Release|Any CPU.Build.0 = Release|Any CPU - {39BEC9FE-DE80-4D85-B6C4-2BAD740624E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {39BEC9FE-DE80-4D85-B6C4-2BAD740624E4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {39BEC9FE-DE80-4D85-B6C4-2BAD740624E4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {39BEC9FE-DE80-4D85-B6C4-2BAD740624E4}.Release|Any CPU.Build.0 = Release|Any CPU - {9A0989E3-AE1A-4DE3-992F-B3FF96DAECAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9A0989E3-AE1A-4DE3-992F-B3FF96DAECAC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9A0989E3-AE1A-4DE3-992F-B3FF96DAECAC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9A0989E3-AE1A-4DE3-992F-B3FF96DAECAC}.Release|Any CPU.Build.0 = Release|Any CPU {18C77AB0-4DA4-4A1E-85EA-EC7A57629D3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {18C77AB0-4DA4-4A1E-85EA-EC7A57629D3F}.Debug|Any CPU.Build.0 = Debug|Any CPU {18C77AB0-4DA4-4A1E-85EA-EC7A57629D3F}.Release|Any CPU.ActiveCfg = Release|Any CPU {18C77AB0-4DA4-4A1E-85EA-EC7A57629D3F}.Release|Any CPU.Build.0 = Release|Any CPU + {784BBC12-A70F-46B2-A4B2-61C4D138609F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {784BBC12-A70F-46B2-A4B2-61C4D138609F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {784BBC12-A70F-46B2-A4B2-61C4D138609F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {784BBC12-A70F-46B2-A4B2-61C4D138609F}.Release|Any CPU.Build.0 = Release|Any CPU + {45A2B5D5-F692-4C70-886A-1C3DA21A61F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {45A2B5D5-F692-4C70-886A-1C3DA21A61F9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {45A2B5D5-F692-4C70-886A-1C3DA21A61F9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {45A2B5D5-F692-4C70-886A-1C3DA21A61F9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE