From 698cd0415961fb1ba858b0fe71f3371b396891d3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 16 Apr 2026 09:25:16 +0000 Subject: [PATCH 1/3] Add Dapr.IntegrationTest.Actors.Generators project with generated client integration tests Agent-Logs-Url: https://github.com/dapr/dotnet-sdk/sessions/f4b37eda-ad54-4022-b2f2-8a0e2455ae00 Co-authored-by: WhitWaldo <2238529+WhitWaldo@users.noreply.github.com> --- all.sln | 908 +++++++++++++++++- .../Actors/IClientActor.cs | 63 ++ .../Actors/IPingActor.cs | 33 + .../Actors/IRemoteActor.cs | 56 ++ .../Actors/RemoteActor.cs | 80 ++ ...r.IntegrationTest.Actors.Generators.csproj | 31 + .../GeneratedClientTests.cs | 313 ++++++ .../Infrastructure/ActorRuntimeHelper.cs | 80 ++ .../Infrastructure/ActorTestContext.cs | 55 ++ 9 files changed, 1579 insertions(+), 40 deletions(-) create mode 100644 test/Dapr.IntegrationTest.Actors.Generators/Actors/IClientActor.cs create mode 100644 test/Dapr.IntegrationTest.Actors.Generators/Actors/IPingActor.cs create mode 100644 test/Dapr.IntegrationTest.Actors.Generators/Actors/IRemoteActor.cs create mode 100644 test/Dapr.IntegrationTest.Actors.Generators/Actors/RemoteActor.cs create mode 100644 test/Dapr.IntegrationTest.Actors.Generators/Dapr.IntegrationTest.Actors.Generators.csproj create mode 100644 test/Dapr.IntegrationTest.Actors.Generators/GeneratedClientTests.cs create mode 100644 test/Dapr.IntegrationTest.Actors.Generators/Infrastructure/ActorRuntimeHelper.cs create mode 100644 test/Dapr.IntegrationTest.Actors.Generators/Infrastructure/ActorTestContext.cs diff --git a/all.sln b/all.sln index 8c15f50b6..a60b1a85a 100644 --- a/all.sln +++ b/all.sln @@ -1,4 +1,5 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 + +Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.3.32929.385 MinimumVisualStudioVersion = 10.0.40219.1 @@ -253,437 +254,1272 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dapr.IntegrationTest.Crypto EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dapr.IntegrationTest.Actors", "test\Dapr.IntegrationTest.Actors\Dapr.IntegrationTest.Actors.csproj", "{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dapr.IntegrationTest.Actors.Generators", "test\Dapr.IntegrationTest.Actors.Generators\Dapr.IntegrationTest.Actors.Generators.csproj", "{C6948155-C70C-4C03-A733-0624402AEC97}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {C2DB4B64-B7C3-4FED-8753-C040F677C69A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C2DB4B64-B7C3-4FED-8753-C040F677C69A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C2DB4B64-B7C3-4FED-8753-C040F677C69A}.Debug|x64.ActiveCfg = Debug|Any CPU + {C2DB4B64-B7C3-4FED-8753-C040F677C69A}.Debug|x64.Build.0 = Debug|Any CPU + {C2DB4B64-B7C3-4FED-8753-C040F677C69A}.Debug|x86.ActiveCfg = Debug|Any CPU + {C2DB4B64-B7C3-4FED-8753-C040F677C69A}.Debug|x86.Build.0 = Debug|Any CPU {C2DB4B64-B7C3-4FED-8753-C040F677C69A}.Release|Any CPU.ActiveCfg = Release|Any CPU {C2DB4B64-B7C3-4FED-8753-C040F677C69A}.Release|Any CPU.Build.0 = Release|Any CPU + {C2DB4B64-B7C3-4FED-8753-C040F677C69A}.Release|x64.ActiveCfg = Release|Any CPU + {C2DB4B64-B7C3-4FED-8753-C040F677C69A}.Release|x64.Build.0 = Release|Any CPU + {C2DB4B64-B7C3-4FED-8753-C040F677C69A}.Release|x86.ActiveCfg = Release|Any CPU + {C2DB4B64-B7C3-4FED-8753-C040F677C69A}.Release|x86.Build.0 = Release|Any CPU {41BF4392-54BD-4FE7-A3EB-CD045F88CA9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {41BF4392-54BD-4FE7-A3EB-CD045F88CA9A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {41BF4392-54BD-4FE7-A3EB-CD045F88CA9A}.Debug|x64.ActiveCfg = Debug|Any CPU + {41BF4392-54BD-4FE7-A3EB-CD045F88CA9A}.Debug|x64.Build.0 = Debug|Any CPU + {41BF4392-54BD-4FE7-A3EB-CD045F88CA9A}.Debug|x86.ActiveCfg = Debug|Any CPU + {41BF4392-54BD-4FE7-A3EB-CD045F88CA9A}.Debug|x86.Build.0 = Debug|Any CPU {41BF4392-54BD-4FE7-A3EB-CD045F88CA9A}.Release|Any CPU.ActiveCfg = Release|Any CPU {41BF4392-54BD-4FE7-A3EB-CD045F88CA9A}.Release|Any CPU.Build.0 = Release|Any CPU + {41BF4392-54BD-4FE7-A3EB-CD045F88CA9A}.Release|x64.ActiveCfg = Release|Any CPU + {41BF4392-54BD-4FE7-A3EB-CD045F88CA9A}.Release|x64.Build.0 = Release|Any CPU + {41BF4392-54BD-4FE7-A3EB-CD045F88CA9A}.Release|x86.ActiveCfg = Release|Any CPU + {41BF4392-54BD-4FE7-A3EB-CD045F88CA9A}.Release|x86.Build.0 = Release|Any CPU {B9C12532-0969-4DAC-A2F8-CA9208D7A901}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B9C12532-0969-4DAC-A2F8-CA9208D7A901}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B9C12532-0969-4DAC-A2F8-CA9208D7A901}.Debug|x64.ActiveCfg = Debug|Any CPU + {B9C12532-0969-4DAC-A2F8-CA9208D7A901}.Debug|x64.Build.0 = Debug|Any CPU + {B9C12532-0969-4DAC-A2F8-CA9208D7A901}.Debug|x86.ActiveCfg = Debug|Any CPU + {B9C12532-0969-4DAC-A2F8-CA9208D7A901}.Debug|x86.Build.0 = Debug|Any CPU {B9C12532-0969-4DAC-A2F8-CA9208D7A901}.Release|Any CPU.ActiveCfg = Release|Any CPU {B9C12532-0969-4DAC-A2F8-CA9208D7A901}.Release|Any CPU.Build.0 = Release|Any CPU + {B9C12532-0969-4DAC-A2F8-CA9208D7A901}.Release|x64.ActiveCfg = Release|Any CPU + {B9C12532-0969-4DAC-A2F8-CA9208D7A901}.Release|x64.Build.0 = Release|Any CPU + {B9C12532-0969-4DAC-A2F8-CA9208D7A901}.Release|x86.ActiveCfg = Release|Any CPU + {B9C12532-0969-4DAC-A2F8-CA9208D7A901}.Release|x86.Build.0 = Release|Any CPU {62E41317-ED5D-4AA4-B129-C9E56C27354C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {62E41317-ED5D-4AA4-B129-C9E56C27354C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {62E41317-ED5D-4AA4-B129-C9E56C27354C}.Debug|x64.ActiveCfg = Debug|Any CPU + {62E41317-ED5D-4AA4-B129-C9E56C27354C}.Debug|x64.Build.0 = Debug|Any CPU + {62E41317-ED5D-4AA4-B129-C9E56C27354C}.Debug|x86.ActiveCfg = Debug|Any CPU + {62E41317-ED5D-4AA4-B129-C9E56C27354C}.Debug|x86.Build.0 = Debug|Any CPU {62E41317-ED5D-4AA4-B129-C9E56C27354C}.Release|Any CPU.ActiveCfg = Release|Any CPU {62E41317-ED5D-4AA4-B129-C9E56C27354C}.Release|Any CPU.Build.0 = Release|Any CPU + {62E41317-ED5D-4AA4-B129-C9E56C27354C}.Release|x64.ActiveCfg = Release|Any CPU + {62E41317-ED5D-4AA4-B129-C9E56C27354C}.Release|x64.Build.0 = Release|Any CPU + {62E41317-ED5D-4AA4-B129-C9E56C27354C}.Release|x86.ActiveCfg = Release|Any CPU + {62E41317-ED5D-4AA4-B129-C9E56C27354C}.Release|x86.Build.0 = Release|Any CPU {08D602F6-7C11-4653-B70B-B56333BF6FD2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {08D602F6-7C11-4653-B70B-B56333BF6FD2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {08D602F6-7C11-4653-B70B-B56333BF6FD2}.Debug|x64.ActiveCfg = Debug|Any CPU + {08D602F6-7C11-4653-B70B-B56333BF6FD2}.Debug|x64.Build.0 = Debug|Any CPU + {08D602F6-7C11-4653-B70B-B56333BF6FD2}.Debug|x86.ActiveCfg = Debug|Any CPU + {08D602F6-7C11-4653-B70B-B56333BF6FD2}.Debug|x86.Build.0 = Debug|Any CPU {08D602F6-7C11-4653-B70B-B56333BF6FD2}.Release|Any CPU.ActiveCfg = Release|Any CPU {08D602F6-7C11-4653-B70B-B56333BF6FD2}.Release|Any CPU.Build.0 = Release|Any CPU + {08D602F6-7C11-4653-B70B-B56333BF6FD2}.Release|x64.ActiveCfg = Release|Any CPU + {08D602F6-7C11-4653-B70B-B56333BF6FD2}.Release|x64.Build.0 = Release|Any CPU + {08D602F6-7C11-4653-B70B-B56333BF6FD2}.Release|x86.ActiveCfg = Release|Any CPU + {08D602F6-7C11-4653-B70B-B56333BF6FD2}.Release|x86.Build.0 = Release|Any CPU {383609C1-F43F-49EB-85E4-1964EE7F0F14}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {383609C1-F43F-49EB-85E4-1964EE7F0F14}.Debug|Any CPU.Build.0 = Debug|Any CPU + {383609C1-F43F-49EB-85E4-1964EE7F0F14}.Debug|x64.ActiveCfg = Debug|Any CPU + {383609C1-F43F-49EB-85E4-1964EE7F0F14}.Debug|x64.Build.0 = Debug|Any CPU + {383609C1-F43F-49EB-85E4-1964EE7F0F14}.Debug|x86.ActiveCfg = Debug|Any CPU + {383609C1-F43F-49EB-85E4-1964EE7F0F14}.Debug|x86.Build.0 = Debug|Any CPU {383609C1-F43F-49EB-85E4-1964EE7F0F14}.Release|Any CPU.ActiveCfg = Release|Any CPU {383609C1-F43F-49EB-85E4-1964EE7F0F14}.Release|Any CPU.Build.0 = Release|Any CPU + {383609C1-F43F-49EB-85E4-1964EE7F0F14}.Release|x64.ActiveCfg = Release|Any CPU + {383609C1-F43F-49EB-85E4-1964EE7F0F14}.Release|x64.Build.0 = Release|Any CPU + {383609C1-F43F-49EB-85E4-1964EE7F0F14}.Release|x86.ActiveCfg = Release|Any CPU + {383609C1-F43F-49EB-85E4-1964EE7F0F14}.Release|x86.Build.0 = Release|Any CPU {B314AD5E-10AC-418A-B021-D4206BF37ACF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B314AD5E-10AC-418A-B021-D4206BF37ACF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B314AD5E-10AC-418A-B021-D4206BF37ACF}.Debug|x64.ActiveCfg = Debug|Any CPU + {B314AD5E-10AC-418A-B021-D4206BF37ACF}.Debug|x64.Build.0 = Debug|Any CPU + {B314AD5E-10AC-418A-B021-D4206BF37ACF}.Debug|x86.ActiveCfg = Debug|Any CPU + {B314AD5E-10AC-418A-B021-D4206BF37ACF}.Debug|x86.Build.0 = Debug|Any CPU {B314AD5E-10AC-418A-B021-D4206BF37ACF}.Release|Any CPU.ActiveCfg = Release|Any CPU {B314AD5E-10AC-418A-B021-D4206BF37ACF}.Release|Any CPU.Build.0 = Release|Any CPU + {B314AD5E-10AC-418A-B021-D4206BF37ACF}.Release|x64.ActiveCfg = Release|Any CPU + {B314AD5E-10AC-418A-B021-D4206BF37ACF}.Release|x64.Build.0 = Release|Any CPU + {B314AD5E-10AC-418A-B021-D4206BF37ACF}.Release|x86.ActiveCfg = Release|Any CPU + {B314AD5E-10AC-418A-B021-D4206BF37ACF}.Release|x86.Build.0 = Release|Any CPU {0CD1912D-5E27-4A2A-A998-164792E0D006}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0CD1912D-5E27-4A2A-A998-164792E0D006}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0CD1912D-5E27-4A2A-A998-164792E0D006}.Debug|x64.ActiveCfg = Debug|Any CPU + {0CD1912D-5E27-4A2A-A998-164792E0D006}.Debug|x64.Build.0 = Debug|Any CPU + {0CD1912D-5E27-4A2A-A998-164792E0D006}.Debug|x86.ActiveCfg = Debug|Any CPU + {0CD1912D-5E27-4A2A-A998-164792E0D006}.Debug|x86.Build.0 = Debug|Any CPU {0CD1912D-5E27-4A2A-A998-164792E0D006}.Release|Any CPU.ActiveCfg = Release|Any CPU {0CD1912D-5E27-4A2A-A998-164792E0D006}.Release|Any CPU.Build.0 = Release|Any CPU + {0CD1912D-5E27-4A2A-A998-164792E0D006}.Release|x64.ActiveCfg = Release|Any CPU + {0CD1912D-5E27-4A2A-A998-164792E0D006}.Release|x64.Build.0 = Release|Any CPU + {0CD1912D-5E27-4A2A-A998-164792E0D006}.Release|x86.ActiveCfg = Release|Any CPU + {0CD1912D-5E27-4A2A-A998-164792E0D006}.Release|x86.Build.0 = Release|Any CPU {342783B5-F75B-4752-A3E2-B8CB7D09C080}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {342783B5-F75B-4752-A3E2-B8CB7D09C080}.Debug|Any CPU.Build.0 = Debug|Any CPU + {342783B5-F75B-4752-A3E2-B8CB7D09C080}.Debug|x64.ActiveCfg = Debug|Any CPU + {342783B5-F75B-4752-A3E2-B8CB7D09C080}.Debug|x64.Build.0 = Debug|Any CPU + {342783B5-F75B-4752-A3E2-B8CB7D09C080}.Debug|x86.ActiveCfg = Debug|Any CPU + {342783B5-F75B-4752-A3E2-B8CB7D09C080}.Debug|x86.Build.0 = Debug|Any CPU {342783B5-F75B-4752-A3E2-B8CB7D09C080}.Release|Any CPU.ActiveCfg = Release|Any CPU {342783B5-F75B-4752-A3E2-B8CB7D09C080}.Release|Any CPU.Build.0 = Release|Any CPU + {342783B5-F75B-4752-A3E2-B8CB7D09C080}.Release|x64.ActiveCfg = Release|Any CPU + {342783B5-F75B-4752-A3E2-B8CB7D09C080}.Release|x64.Build.0 = Release|Any CPU + {342783B5-F75B-4752-A3E2-B8CB7D09C080}.Release|x86.ActiveCfg = Release|Any CPU + {342783B5-F75B-4752-A3E2-B8CB7D09C080}.Release|x86.Build.0 = Release|Any CPU {9C1D6ABA-5EDE-4FA0-A8A9-0AB98CB74737}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9C1D6ABA-5EDE-4FA0-A8A9-0AB98CB74737}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9C1D6ABA-5EDE-4FA0-A8A9-0AB98CB74737}.Debug|x64.ActiveCfg = Debug|Any CPU + {9C1D6ABA-5EDE-4FA0-A8A9-0AB98CB74737}.Debug|x64.Build.0 = Debug|Any CPU + {9C1D6ABA-5EDE-4FA0-A8A9-0AB98CB74737}.Debug|x86.ActiveCfg = Debug|Any CPU + {9C1D6ABA-5EDE-4FA0-A8A9-0AB98CB74737}.Debug|x86.Build.0 = Debug|Any CPU {9C1D6ABA-5EDE-4FA0-A8A9-0AB98CB74737}.Release|Any CPU.ActiveCfg = Release|Any CPU {9C1D6ABA-5EDE-4FA0-A8A9-0AB98CB74737}.Release|Any CPU.Build.0 = Release|Any CPU + {9C1D6ABA-5EDE-4FA0-A8A9-0AB98CB74737}.Release|x64.ActiveCfg = Release|Any CPU + {9C1D6ABA-5EDE-4FA0-A8A9-0AB98CB74737}.Release|x64.Build.0 = Release|Any CPU + {9C1D6ABA-5EDE-4FA0-A8A9-0AB98CB74737}.Release|x86.ActiveCfg = Release|Any CPU + {9C1D6ABA-5EDE-4FA0-A8A9-0AB98CB74737}.Release|x86.Build.0 = Release|Any CPU {95BAF30B-8089-42CE-8530-6DFBCE1F6A07}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {95BAF30B-8089-42CE-8530-6DFBCE1F6A07}.Debug|Any CPU.Build.0 = Debug|Any CPU + {95BAF30B-8089-42CE-8530-6DFBCE1F6A07}.Debug|x64.ActiveCfg = Debug|Any CPU + {95BAF30B-8089-42CE-8530-6DFBCE1F6A07}.Debug|x64.Build.0 = Debug|Any CPU + {95BAF30B-8089-42CE-8530-6DFBCE1F6A07}.Debug|x86.ActiveCfg = Debug|Any CPU + {95BAF30B-8089-42CE-8530-6DFBCE1F6A07}.Debug|x86.Build.0 = Debug|Any CPU {95BAF30B-8089-42CE-8530-6DFBCE1F6A07}.Release|Any CPU.ActiveCfg = Release|Any CPU {95BAF30B-8089-42CE-8530-6DFBCE1F6A07}.Release|Any CPU.Build.0 = Release|Any CPU + {95BAF30B-8089-42CE-8530-6DFBCE1F6A07}.Release|x64.ActiveCfg = Release|Any CPU + {95BAF30B-8089-42CE-8530-6DFBCE1F6A07}.Release|x64.Build.0 = Release|Any CPU + {95BAF30B-8089-42CE-8530-6DFBCE1F6A07}.Release|x86.ActiveCfg = Release|Any CPU + {95BAF30B-8089-42CE-8530-6DFBCE1F6A07}.Release|x86.Build.0 = Release|Any CPU {1BA7E772-8AA7-4D5A-800D-66B17F62421C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1BA7E772-8AA7-4D5A-800D-66B17F62421C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1BA7E772-8AA7-4D5A-800D-66B17F62421C}.Debug|x64.ActiveCfg = Debug|Any CPU + {1BA7E772-8AA7-4D5A-800D-66B17F62421C}.Debug|x64.Build.0 = Debug|Any CPU + {1BA7E772-8AA7-4D5A-800D-66B17F62421C}.Debug|x86.ActiveCfg = Debug|Any CPU + {1BA7E772-8AA7-4D5A-800D-66B17F62421C}.Debug|x86.Build.0 = Debug|Any CPU {1BA7E772-8AA7-4D5A-800D-66B17F62421C}.Release|Any CPU.ActiveCfg = Release|Any CPU {1BA7E772-8AA7-4D5A-800D-66B17F62421C}.Release|Any CPU.Build.0 = Release|Any CPU + {1BA7E772-8AA7-4D5A-800D-66B17F62421C}.Release|x64.ActiveCfg = Release|Any CPU + {1BA7E772-8AA7-4D5A-800D-66B17F62421C}.Release|x64.Build.0 = Release|Any CPU + {1BA7E772-8AA7-4D5A-800D-66B17F62421C}.Release|x86.ActiveCfg = Release|Any CPU + {1BA7E772-8AA7-4D5A-800D-66B17F62421C}.Release|x86.Build.0 = Release|Any CPU {78FC19B2-396C-4ED2-BFD9-6C5667C61666}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {78FC19B2-396C-4ED2-BFD9-6C5667C61666}.Debug|Any CPU.Build.0 = Debug|Any CPU + {78FC19B2-396C-4ED2-BFD9-6C5667C61666}.Debug|x64.ActiveCfg = Debug|Any CPU + {78FC19B2-396C-4ED2-BFD9-6C5667C61666}.Debug|x64.Build.0 = Debug|Any CPU + {78FC19B2-396C-4ED2-BFD9-6C5667C61666}.Debug|x86.ActiveCfg = Debug|Any CPU + {78FC19B2-396C-4ED2-BFD9-6C5667C61666}.Debug|x86.Build.0 = Debug|Any CPU {78FC19B2-396C-4ED2-BFD9-6C5667C61666}.Release|Any CPU.ActiveCfg = Release|Any CPU {78FC19B2-396C-4ED2-BFD9-6C5667C61666}.Release|Any CPU.Build.0 = Release|Any CPU + {78FC19B2-396C-4ED2-BFD9-6C5667C61666}.Release|x64.ActiveCfg = Release|Any CPU + {78FC19B2-396C-4ED2-BFD9-6C5667C61666}.Release|x64.Build.0 = Release|Any CPU + {78FC19B2-396C-4ED2-BFD9-6C5667C61666}.Release|x86.ActiveCfg = Release|Any CPU + {78FC19B2-396C-4ED2-BFD9-6C5667C61666}.Release|x86.Build.0 = Release|Any CPU {B615B353-476C-43B9-A776-B193B0DBD256}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B615B353-476C-43B9-A776-B193B0DBD256}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B615B353-476C-43B9-A776-B193B0DBD256}.Debug|x64.ActiveCfg = Debug|Any CPU + {B615B353-476C-43B9-A776-B193B0DBD256}.Debug|x64.Build.0 = Debug|Any CPU + {B615B353-476C-43B9-A776-B193B0DBD256}.Debug|x86.ActiveCfg = Debug|Any CPU + {B615B353-476C-43B9-A776-B193B0DBD256}.Debug|x86.Build.0 = Debug|Any CPU {B615B353-476C-43B9-A776-B193B0DBD256}.Release|Any CPU.ActiveCfg = Release|Any CPU {B615B353-476C-43B9-A776-B193B0DBD256}.Release|Any CPU.Build.0 = Release|Any CPU + {B615B353-476C-43B9-A776-B193B0DBD256}.Release|x64.ActiveCfg = Release|Any CPU + {B615B353-476C-43B9-A776-B193B0DBD256}.Release|x64.Build.0 = Release|Any CPU + {B615B353-476C-43B9-A776-B193B0DBD256}.Release|x86.ActiveCfg = Release|Any CPU + {B615B353-476C-43B9-A776-B193B0DBD256}.Release|x86.Build.0 = Release|Any CPU {2EC50C79-782D-4985-ABB1-AD07F35D1621}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2EC50C79-782D-4985-ABB1-AD07F35D1621}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2EC50C79-782D-4985-ABB1-AD07F35D1621}.Debug|x64.ActiveCfg = Debug|Any CPU + {2EC50C79-782D-4985-ABB1-AD07F35D1621}.Debug|x64.Build.0 = Debug|Any CPU + {2EC50C79-782D-4985-ABB1-AD07F35D1621}.Debug|x86.ActiveCfg = Debug|Any CPU + {2EC50C79-782D-4985-ABB1-AD07F35D1621}.Debug|x86.Build.0 = Debug|Any CPU {2EC50C79-782D-4985-ABB1-AD07F35D1621}.Release|Any CPU.ActiveCfg = Release|Any CPU {2EC50C79-782D-4985-ABB1-AD07F35D1621}.Release|Any CPU.Build.0 = Release|Any CPU + {2EC50C79-782D-4985-ABB1-AD07F35D1621}.Release|x64.ActiveCfg = Release|Any CPU + {2EC50C79-782D-4985-ABB1-AD07F35D1621}.Release|x64.Build.0 = Release|Any CPU + {2EC50C79-782D-4985-ABB1-AD07F35D1621}.Release|x86.ActiveCfg = Release|Any CPU + {2EC50C79-782D-4985-ABB1-AD07F35D1621}.Release|x86.Build.0 = Release|Any CPU {15A16323-2CCA-472E-BE79-07259DAD5F6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {15A16323-2CCA-472E-BE79-07259DAD5F6F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {15A16323-2CCA-472E-BE79-07259DAD5F6F}.Debug|x64.ActiveCfg = Debug|Any CPU + {15A16323-2CCA-472E-BE79-07259DAD5F6F}.Debug|x64.Build.0 = Debug|Any CPU + {15A16323-2CCA-472E-BE79-07259DAD5F6F}.Debug|x86.ActiveCfg = Debug|Any CPU + {15A16323-2CCA-472E-BE79-07259DAD5F6F}.Debug|x86.Build.0 = Debug|Any CPU {15A16323-2CCA-472E-BE79-07259DAD5F6F}.Release|Any CPU.ActiveCfg = Release|Any CPU {15A16323-2CCA-472E-BE79-07259DAD5F6F}.Release|Any CPU.Build.0 = Release|Any CPU + {15A16323-2CCA-472E-BE79-07259DAD5F6F}.Release|x64.ActiveCfg = Release|Any CPU + {15A16323-2CCA-472E-BE79-07259DAD5F6F}.Release|x64.Build.0 = Release|Any CPU + {15A16323-2CCA-472E-BE79-07259DAD5F6F}.Release|x86.ActiveCfg = Release|Any CPU + {15A16323-2CCA-472E-BE79-07259DAD5F6F}.Release|x86.Build.0 = Release|Any CPU {5BACBA51-03FE-4CE1-B0F5-9E9C2A132FAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5BACBA51-03FE-4CE1-B0F5-9E9C2A132FAB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5BACBA51-03FE-4CE1-B0F5-9E9C2A132FAB}.Debug|x64.ActiveCfg = Debug|Any CPU + {5BACBA51-03FE-4CE1-B0F5-9E9C2A132FAB}.Debug|x64.Build.0 = Debug|Any CPU + {5BACBA51-03FE-4CE1-B0F5-9E9C2A132FAB}.Debug|x86.ActiveCfg = Debug|Any CPU + {5BACBA51-03FE-4CE1-B0F5-9E9C2A132FAB}.Debug|x86.Build.0 = Debug|Any CPU {5BACBA51-03FE-4CE1-B0F5-9E9C2A132FAB}.Release|Any CPU.ActiveCfg = Release|Any CPU {5BACBA51-03FE-4CE1-B0F5-9E9C2A132FAB}.Release|Any CPU.Build.0 = Release|Any CPU + {5BACBA51-03FE-4CE1-B0F5-9E9C2A132FAB}.Release|x64.ActiveCfg = Release|Any CPU + {5BACBA51-03FE-4CE1-B0F5-9E9C2A132FAB}.Release|x64.Build.0 = Release|Any CPU + {5BACBA51-03FE-4CE1-B0F5-9E9C2A132FAB}.Release|x86.ActiveCfg = Release|Any CPU + {5BACBA51-03FE-4CE1-B0F5-9E9C2A132FAB}.Release|x86.Build.0 = Release|Any CPU {3160CC92-1D6E-42CB-AE89-9401C8CEC5CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3160CC92-1D6E-42CB-AE89-9401C8CEC5CB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3160CC92-1D6E-42CB-AE89-9401C8CEC5CB}.Debug|x64.ActiveCfg = Debug|Any CPU + {3160CC92-1D6E-42CB-AE89-9401C8CEC5CB}.Debug|x64.Build.0 = Debug|Any CPU + {3160CC92-1D6E-42CB-AE89-9401C8CEC5CB}.Debug|x86.ActiveCfg = Debug|Any CPU + {3160CC92-1D6E-42CB-AE89-9401C8CEC5CB}.Debug|x86.Build.0 = Debug|Any CPU {3160CC92-1D6E-42CB-AE89-9401C8CEC5CB}.Release|Any CPU.ActiveCfg = Release|Any CPU {3160CC92-1D6E-42CB-AE89-9401C8CEC5CB}.Release|Any CPU.Build.0 = Release|Any CPU + {3160CC92-1D6E-42CB-AE89-9401C8CEC5CB}.Release|x64.ActiveCfg = Release|Any CPU + {3160CC92-1D6E-42CB-AE89-9401C8CEC5CB}.Release|x64.Build.0 = Release|Any CPU + {3160CC92-1D6E-42CB-AE89-9401C8CEC5CB}.Release|x86.ActiveCfg = Release|Any CPU + {3160CC92-1D6E-42CB-AE89-9401C8CEC5CB}.Release|x86.Build.0 = Release|Any CPU {7957E852-1291-4FAA-9034-FB66CE817FF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7957E852-1291-4FAA-9034-FB66CE817FF1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7957E852-1291-4FAA-9034-FB66CE817FF1}.Debug|x64.ActiveCfg = Debug|Any CPU + {7957E852-1291-4FAA-9034-FB66CE817FF1}.Debug|x64.Build.0 = Debug|Any CPU + {7957E852-1291-4FAA-9034-FB66CE817FF1}.Debug|x86.ActiveCfg = Debug|Any CPU + {7957E852-1291-4FAA-9034-FB66CE817FF1}.Debug|x86.Build.0 = Debug|Any CPU {7957E852-1291-4FAA-9034-FB66CE817FF1}.Release|Any CPU.ActiveCfg = Release|Any CPU {7957E852-1291-4FAA-9034-FB66CE817FF1}.Release|Any CPU.Build.0 = Release|Any CPU + {7957E852-1291-4FAA-9034-FB66CE817FF1}.Release|x64.ActiveCfg = Release|Any CPU + {7957E852-1291-4FAA-9034-FB66CE817FF1}.Release|x64.Build.0 = Release|Any CPU + {7957E852-1291-4FAA-9034-FB66CE817FF1}.Release|x86.ActiveCfg = Release|Any CPU + {7957E852-1291-4FAA-9034-FB66CE817FF1}.Release|x86.Build.0 = Release|Any CPU {626D74DD-4F37-4F74-87A3-5A6888684F5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {626D74DD-4F37-4F74-87A3-5A6888684F5E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {626D74DD-4F37-4F74-87A3-5A6888684F5E}.Debug|x64.ActiveCfg = Debug|Any CPU + {626D74DD-4F37-4F74-87A3-5A6888684F5E}.Debug|x64.Build.0 = Debug|Any CPU + {626D74DD-4F37-4F74-87A3-5A6888684F5E}.Debug|x86.ActiveCfg = Debug|Any CPU + {626D74DD-4F37-4F74-87A3-5A6888684F5E}.Debug|x86.Build.0 = Debug|Any CPU {626D74DD-4F37-4F74-87A3-5A6888684F5E}.Release|Any CPU.ActiveCfg = Release|Any CPU {626D74DD-4F37-4F74-87A3-5A6888684F5E}.Release|Any CPU.Build.0 = Release|Any CPU + {626D74DD-4F37-4F74-87A3-5A6888684F5E}.Release|x64.ActiveCfg = Release|Any CPU + {626D74DD-4F37-4F74-87A3-5A6888684F5E}.Release|x64.Build.0 = Release|Any CPU + {626D74DD-4F37-4F74-87A3-5A6888684F5E}.Release|x86.ActiveCfg = Release|Any CPU + {626D74DD-4F37-4F74-87A3-5A6888684F5E}.Release|x86.Build.0 = Release|Any CPU {CC0A5C98-ACDE-4139-BA2F-2995A9B8E18C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CC0A5C98-ACDE-4139-BA2F-2995A9B8E18C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CC0A5C98-ACDE-4139-BA2F-2995A9B8E18C}.Debug|x64.ActiveCfg = Debug|Any CPU + {CC0A5C98-ACDE-4139-BA2F-2995A9B8E18C}.Debug|x64.Build.0 = Debug|Any CPU + {CC0A5C98-ACDE-4139-BA2F-2995A9B8E18C}.Debug|x86.ActiveCfg = Debug|Any CPU + {CC0A5C98-ACDE-4139-BA2F-2995A9B8E18C}.Debug|x86.Build.0 = Debug|Any CPU {CC0A5C98-ACDE-4139-BA2F-2995A9B8E18C}.Release|Any CPU.ActiveCfg = Release|Any CPU {CC0A5C98-ACDE-4139-BA2F-2995A9B8E18C}.Release|Any CPU.Build.0 = Release|Any CPU + {CC0A5C98-ACDE-4139-BA2F-2995A9B8E18C}.Release|x64.ActiveCfg = Release|Any CPU + {CC0A5C98-ACDE-4139-BA2F-2995A9B8E18C}.Release|x64.Build.0 = Release|Any CPU + {CC0A5C98-ACDE-4139-BA2F-2995A9B8E18C}.Release|x86.ActiveCfg = Release|Any CPU + {CC0A5C98-ACDE-4139-BA2F-2995A9B8E18C}.Release|x86.Build.0 = Release|Any CPU {F70AC78E-8925-4770-832A-2FC67A620EB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F70AC78E-8925-4770-832A-2FC67A620EB2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F70AC78E-8925-4770-832A-2FC67A620EB2}.Debug|x64.ActiveCfg = Debug|Any CPU + {F70AC78E-8925-4770-832A-2FC67A620EB2}.Debug|x64.Build.0 = Debug|Any CPU + {F70AC78E-8925-4770-832A-2FC67A620EB2}.Debug|x86.ActiveCfg = Debug|Any CPU + {F70AC78E-8925-4770-832A-2FC67A620EB2}.Debug|x86.Build.0 = Debug|Any CPU {F70AC78E-8925-4770-832A-2FC67A620EB2}.Release|Any CPU.ActiveCfg = Release|Any CPU {F70AC78E-8925-4770-832A-2FC67A620EB2}.Release|Any CPU.Build.0 = Release|Any CPU + {F70AC78E-8925-4770-832A-2FC67A620EB2}.Release|x64.ActiveCfg = Release|Any CPU + {F70AC78E-8925-4770-832A-2FC67A620EB2}.Release|x64.Build.0 = Release|Any CPU + {F70AC78E-8925-4770-832A-2FC67A620EB2}.Release|x86.ActiveCfg = Release|Any CPU + {F70AC78E-8925-4770-832A-2FC67A620EB2}.Release|x86.Build.0 = Release|Any CPU {4AA9E7B7-36BF-4AAE-BFA3-C9CE8740F4A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4AA9E7B7-36BF-4AAE-BFA3-C9CE8740F4A0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4AA9E7B7-36BF-4AAE-BFA3-C9CE8740F4A0}.Debug|x64.ActiveCfg = Debug|Any CPU + {4AA9E7B7-36BF-4AAE-BFA3-C9CE8740F4A0}.Debug|x64.Build.0 = Debug|Any CPU + {4AA9E7B7-36BF-4AAE-BFA3-C9CE8740F4A0}.Debug|x86.ActiveCfg = Debug|Any CPU + {4AA9E7B7-36BF-4AAE-BFA3-C9CE8740F4A0}.Debug|x86.Build.0 = Debug|Any CPU {4AA9E7B7-36BF-4AAE-BFA3-C9CE8740F4A0}.Release|Any CPU.ActiveCfg = Release|Any CPU {4AA9E7B7-36BF-4AAE-BFA3-C9CE8740F4A0}.Release|Any CPU.Build.0 = Release|Any CPU + {4AA9E7B7-36BF-4AAE-BFA3-C9CE8740F4A0}.Release|x64.ActiveCfg = Release|Any CPU + {4AA9E7B7-36BF-4AAE-BFA3-C9CE8740F4A0}.Release|x64.Build.0 = Release|Any CPU + {4AA9E7B7-36BF-4AAE-BFA3-C9CE8740F4A0}.Release|x86.ActiveCfg = Release|Any CPU + {4AA9E7B7-36BF-4AAE-BFA3-C9CE8740F4A0}.Release|x86.Build.0 = Release|Any CPU {345FC3FB-D1E9-4AE8-9052-17D20AB01FA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {345FC3FB-D1E9-4AE8-9052-17D20AB01FA2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {345FC3FB-D1E9-4AE8-9052-17D20AB01FA2}.Debug|x64.ActiveCfg = Debug|Any CPU + {345FC3FB-D1E9-4AE8-9052-17D20AB01FA2}.Debug|x64.Build.0 = Debug|Any CPU + {345FC3FB-D1E9-4AE8-9052-17D20AB01FA2}.Debug|x86.ActiveCfg = Debug|Any CPU + {345FC3FB-D1E9-4AE8-9052-17D20AB01FA2}.Debug|x86.Build.0 = Debug|Any CPU {345FC3FB-D1E9-4AE8-9052-17D20AB01FA2}.Release|Any CPU.ActiveCfg = Release|Any CPU {345FC3FB-D1E9-4AE8-9052-17D20AB01FA2}.Release|Any CPU.Build.0 = Release|Any CPU + {345FC3FB-D1E9-4AE8-9052-17D20AB01FA2}.Release|x64.ActiveCfg = Release|Any CPU + {345FC3FB-D1E9-4AE8-9052-17D20AB01FA2}.Release|x64.Build.0 = Release|Any CPU + {345FC3FB-D1E9-4AE8-9052-17D20AB01FA2}.Release|x86.ActiveCfg = Release|Any CPU + {345FC3FB-D1E9-4AE8-9052-17D20AB01FA2}.Release|x86.Build.0 = Release|Any CPU {2AED1542-A8ED-488D-B6D0-E16AB5D6EF6C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2AED1542-A8ED-488D-B6D0-E16AB5D6EF6C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2AED1542-A8ED-488D-B6D0-E16AB5D6EF6C}.Debug|x64.ActiveCfg = Debug|Any CPU + {2AED1542-A8ED-488D-B6D0-E16AB5D6EF6C}.Debug|x64.Build.0 = Debug|Any CPU + {2AED1542-A8ED-488D-B6D0-E16AB5D6EF6C}.Debug|x86.ActiveCfg = Debug|Any CPU + {2AED1542-A8ED-488D-B6D0-E16AB5D6EF6C}.Debug|x86.Build.0 = Debug|Any CPU {2AED1542-A8ED-488D-B6D0-E16AB5D6EF6C}.Release|Any CPU.ActiveCfg = Release|Any CPU {2AED1542-A8ED-488D-B6D0-E16AB5D6EF6C}.Release|Any CPU.Build.0 = Release|Any CPU + {2AED1542-A8ED-488D-B6D0-E16AB5D6EF6C}.Release|x64.ActiveCfg = Release|Any CPU + {2AED1542-A8ED-488D-B6D0-E16AB5D6EF6C}.Release|x64.Build.0 = Release|Any CPU + {2AED1542-A8ED-488D-B6D0-E16AB5D6EF6C}.Release|x86.ActiveCfg = Release|Any CPU + {2AED1542-A8ED-488D-B6D0-E16AB5D6EF6C}.Release|x86.Build.0 = Release|Any CPU {E8212911-344B-4638-ADC3-B215BCDCAFD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E8212911-344B-4638-ADC3-B215BCDCAFD1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E8212911-344B-4638-ADC3-B215BCDCAFD1}.Debug|x64.ActiveCfg = Debug|Any CPU + {E8212911-344B-4638-ADC3-B215BCDCAFD1}.Debug|x64.Build.0 = Debug|Any CPU + {E8212911-344B-4638-ADC3-B215BCDCAFD1}.Debug|x86.ActiveCfg = Debug|Any CPU + {E8212911-344B-4638-ADC3-B215BCDCAFD1}.Debug|x86.Build.0 = Debug|Any CPU {E8212911-344B-4638-ADC3-B215BCDCAFD1}.Release|Any CPU.ActiveCfg = Release|Any CPU {E8212911-344B-4638-ADC3-B215BCDCAFD1}.Release|Any CPU.Build.0 = Release|Any CPU + {E8212911-344B-4638-ADC3-B215BCDCAFD1}.Release|x64.ActiveCfg = Release|Any CPU + {E8212911-344B-4638-ADC3-B215BCDCAFD1}.Release|x64.Build.0 = Release|Any CPU + {E8212911-344B-4638-ADC3-B215BCDCAFD1}.Release|x86.ActiveCfg = Release|Any CPU + {E8212911-344B-4638-ADC3-B215BCDCAFD1}.Release|x86.Build.0 = Release|Any CPU {F80F837E-D2FC-4FFC-B68F-3CF0EC015F66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F80F837E-D2FC-4FFC-B68F-3CF0EC015F66}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F80F837E-D2FC-4FFC-B68F-3CF0EC015F66}.Debug|x64.ActiveCfg = Debug|Any CPU + {F80F837E-D2FC-4FFC-B68F-3CF0EC015F66}.Debug|x64.Build.0 = Debug|Any CPU + {F80F837E-D2FC-4FFC-B68F-3CF0EC015F66}.Debug|x86.ActiveCfg = Debug|Any CPU + {F80F837E-D2FC-4FFC-B68F-3CF0EC015F66}.Debug|x86.Build.0 = Debug|Any CPU {F80F837E-D2FC-4FFC-B68F-3CF0EC015F66}.Release|Any CPU.ActiveCfg = Release|Any CPU {F80F837E-D2FC-4FFC-B68F-3CF0EC015F66}.Release|Any CPU.Build.0 = Release|Any CPU + {F80F837E-D2FC-4FFC-B68F-3CF0EC015F66}.Release|x64.ActiveCfg = Release|Any CPU + {F80F837E-D2FC-4FFC-B68F-3CF0EC015F66}.Release|x64.Build.0 = Release|Any CPU + {F80F837E-D2FC-4FFC-B68F-3CF0EC015F66}.Release|x86.ActiveCfg = Release|Any CPU + {F80F837E-D2FC-4FFC-B68F-3CF0EC015F66}.Release|x86.Build.0 = Release|Any CPU {5BE7F505-7D77-4C3A-ABFD-54088774DAA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5BE7F505-7D77-4C3A-ABFD-54088774DAA7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5BE7F505-7D77-4C3A-ABFD-54088774DAA7}.Debug|x64.ActiveCfg = Debug|Any CPU + {5BE7F505-7D77-4C3A-ABFD-54088774DAA7}.Debug|x64.Build.0 = Debug|Any CPU + {5BE7F505-7D77-4C3A-ABFD-54088774DAA7}.Debug|x86.ActiveCfg = Debug|Any CPU + {5BE7F505-7D77-4C3A-ABFD-54088774DAA7}.Debug|x86.Build.0 = Debug|Any CPU {5BE7F505-7D77-4C3A-ABFD-54088774DAA7}.Release|Any CPU.ActiveCfg = Release|Any CPU {5BE7F505-7D77-4C3A-ABFD-54088774DAA7}.Release|Any CPU.Build.0 = Release|Any CPU + {5BE7F505-7D77-4C3A-ABFD-54088774DAA7}.Release|x64.ActiveCfg = Release|Any CPU + {5BE7F505-7D77-4C3A-ABFD-54088774DAA7}.Release|x64.Build.0 = Release|Any CPU + {5BE7F505-7D77-4C3A-ABFD-54088774DAA7}.Release|x86.ActiveCfg = Release|Any CPU + {5BE7F505-7D77-4C3A-ABFD-54088774DAA7}.Release|x86.Build.0 = Release|Any CPU {35031EDB-C0DE-453A-8335-D2EBEA2FC640}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {35031EDB-C0DE-453A-8335-D2EBEA2FC640}.Debug|Any CPU.Build.0 = Debug|Any CPU + {35031EDB-C0DE-453A-8335-D2EBEA2FC640}.Debug|x64.ActiveCfg = Debug|Any CPU + {35031EDB-C0DE-453A-8335-D2EBEA2FC640}.Debug|x64.Build.0 = Debug|Any CPU + {35031EDB-C0DE-453A-8335-D2EBEA2FC640}.Debug|x86.ActiveCfg = Debug|Any CPU + {35031EDB-C0DE-453A-8335-D2EBEA2FC640}.Debug|x86.Build.0 = Debug|Any CPU {35031EDB-C0DE-453A-8335-D2EBEA2FC640}.Release|Any CPU.ActiveCfg = Release|Any CPU {35031EDB-C0DE-453A-8335-D2EBEA2FC640}.Release|Any CPU.Build.0 = Release|Any CPU + {35031EDB-C0DE-453A-8335-D2EBEA2FC640}.Release|x64.ActiveCfg = Release|Any CPU + {35031EDB-C0DE-453A-8335-D2EBEA2FC640}.Release|x64.Build.0 = Release|Any CPU + {35031EDB-C0DE-453A-8335-D2EBEA2FC640}.Release|x86.ActiveCfg = Release|Any CPU + {35031EDB-C0DE-453A-8335-D2EBEA2FC640}.Release|x86.Build.0 = Release|Any CPU {07578B6C-9B96-4B3D-BA2E-7800EFCA7F99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {07578B6C-9B96-4B3D-BA2E-7800EFCA7F99}.Debug|Any CPU.Build.0 = Debug|Any CPU + {07578B6C-9B96-4B3D-BA2E-7800EFCA7F99}.Debug|x64.ActiveCfg = Debug|Any CPU + {07578B6C-9B96-4B3D-BA2E-7800EFCA7F99}.Debug|x64.Build.0 = Debug|Any CPU + {07578B6C-9B96-4B3D-BA2E-7800EFCA7F99}.Debug|x86.ActiveCfg = Debug|Any CPU + {07578B6C-9B96-4B3D-BA2E-7800EFCA7F99}.Debug|x86.Build.0 = Debug|Any CPU {07578B6C-9B96-4B3D-BA2E-7800EFCA7F99}.Release|Any CPU.ActiveCfg = Release|Any CPU {07578B6C-9B96-4B3D-BA2E-7800EFCA7F99}.Release|Any CPU.Build.0 = Release|Any CPU + {07578B6C-9B96-4B3D-BA2E-7800EFCA7F99}.Release|x64.ActiveCfg = Release|Any CPU + {07578B6C-9B96-4B3D-BA2E-7800EFCA7F99}.Release|x64.Build.0 = Release|Any CPU + {07578B6C-9B96-4B3D-BA2E-7800EFCA7F99}.Release|x86.ActiveCfg = Release|Any CPU + {07578B6C-9B96-4B3D-BA2E-7800EFCA7F99}.Release|x86.Build.0 = Release|Any CPU {5C61ABED-7623-4C28-A5C9-C5972A0F669C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5C61ABED-7623-4C28-A5C9-C5972A0F669C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5C61ABED-7623-4C28-A5C9-C5972A0F669C}.Debug|x64.ActiveCfg = Debug|Any CPU + {5C61ABED-7623-4C28-A5C9-C5972A0F669C}.Debug|x64.Build.0 = Debug|Any CPU + {5C61ABED-7623-4C28-A5C9-C5972A0F669C}.Debug|x86.ActiveCfg = Debug|Any CPU + {5C61ABED-7623-4C28-A5C9-C5972A0F669C}.Debug|x86.Build.0 = Debug|Any CPU {5C61ABED-7623-4C28-A5C9-C5972A0F669C}.Release|Any CPU.ActiveCfg = Release|Any CPU {5C61ABED-7623-4C28-A5C9-C5972A0F669C}.Release|Any CPU.Build.0 = Release|Any CPU + {5C61ABED-7623-4C28-A5C9-C5972A0F669C}.Release|x64.ActiveCfg = Release|Any CPU + {5C61ABED-7623-4C28-A5C9-C5972A0F669C}.Release|x64.Build.0 = Release|Any CPU + {5C61ABED-7623-4C28-A5C9-C5972A0F669C}.Release|x86.ActiveCfg = Release|Any CPU + {5C61ABED-7623-4C28-A5C9-C5972A0F669C}.Release|x86.Build.0 = Release|Any CPU {4A175C27-EAFE-47E7-90F6-873B37863656}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4A175C27-EAFE-47E7-90F6-873B37863656}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4A175C27-EAFE-47E7-90F6-873B37863656}.Debug|x64.ActiveCfg = Debug|Any CPU + {4A175C27-EAFE-47E7-90F6-873B37863656}.Debug|x64.Build.0 = Debug|Any CPU + {4A175C27-EAFE-47E7-90F6-873B37863656}.Debug|x86.ActiveCfg = Debug|Any CPU + {4A175C27-EAFE-47E7-90F6-873B37863656}.Debug|x86.Build.0 = Debug|Any CPU {4A175C27-EAFE-47E7-90F6-873B37863656}.Release|Any CPU.ActiveCfg = Release|Any CPU {4A175C27-EAFE-47E7-90F6-873B37863656}.Release|Any CPU.Build.0 = Release|Any CPU + {4A175C27-EAFE-47E7-90F6-873B37863656}.Release|x64.ActiveCfg = Release|Any CPU + {4A175C27-EAFE-47E7-90F6-873B37863656}.Release|x64.Build.0 = Release|Any CPU + {4A175C27-EAFE-47E7-90F6-873B37863656}.Release|x86.ActiveCfg = Release|Any CPU + {4A175C27-EAFE-47E7-90F6-873B37863656}.Release|x86.Build.0 = Release|Any CPU {DDC41278-FB60-403A-B969-2AEBD7C2D83C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DDC41278-FB60-403A-B969-2AEBD7C2D83C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DDC41278-FB60-403A-B969-2AEBD7C2D83C}.Debug|x64.ActiveCfg = Debug|Any CPU + {DDC41278-FB60-403A-B969-2AEBD7C2D83C}.Debug|x64.Build.0 = Debug|Any CPU + {DDC41278-FB60-403A-B969-2AEBD7C2D83C}.Debug|x86.ActiveCfg = Debug|Any CPU + {DDC41278-FB60-403A-B969-2AEBD7C2D83C}.Debug|x86.Build.0 = Debug|Any CPU {DDC41278-FB60-403A-B969-2AEBD7C2D83C}.Release|Any CPU.ActiveCfg = Release|Any CPU {DDC41278-FB60-403A-B969-2AEBD7C2D83C}.Release|Any CPU.Build.0 = Release|Any CPU + {DDC41278-FB60-403A-B969-2AEBD7C2D83C}.Release|x64.ActiveCfg = Release|Any CPU + {DDC41278-FB60-403A-B969-2AEBD7C2D83C}.Release|x64.Build.0 = Release|Any CPU + {DDC41278-FB60-403A-B969-2AEBD7C2D83C}.Release|x86.ActiveCfg = Release|Any CPU + {DDC41278-FB60-403A-B969-2AEBD7C2D83C}.Release|x86.Build.0 = Release|Any CPU {61C24126-F39D-4BEA-96DC-FC87BA730554}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {61C24126-F39D-4BEA-96DC-FC87BA730554}.Debug|Any CPU.Build.0 = Debug|Any CPU + {61C24126-F39D-4BEA-96DC-FC87BA730554}.Debug|x64.ActiveCfg = Debug|Any CPU + {61C24126-F39D-4BEA-96DC-FC87BA730554}.Debug|x64.Build.0 = Debug|Any CPU + {61C24126-F39D-4BEA-96DC-FC87BA730554}.Debug|x86.ActiveCfg = Debug|Any CPU + {61C24126-F39D-4BEA-96DC-FC87BA730554}.Debug|x86.Build.0 = Debug|Any CPU {61C24126-F39D-4BEA-96DC-FC87BA730554}.Release|Any CPU.ActiveCfg = Release|Any CPU {61C24126-F39D-4BEA-96DC-FC87BA730554}.Release|Any CPU.Build.0 = Release|Any CPU + {61C24126-F39D-4BEA-96DC-FC87BA730554}.Release|x64.ActiveCfg = Release|Any CPU + {61C24126-F39D-4BEA-96DC-FC87BA730554}.Release|x64.Build.0 = Release|Any CPU + {61C24126-F39D-4BEA-96DC-FC87BA730554}.Release|x86.ActiveCfg = Release|Any CPU + {61C24126-F39D-4BEA-96DC-FC87BA730554}.Release|x86.Build.0 = Release|Any CPU {CB903D21-4869-42EF-BDD6-5B1CFF674337}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CB903D21-4869-42EF-BDD6-5B1CFF674337}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CB903D21-4869-42EF-BDD6-5B1CFF674337}.Debug|x64.ActiveCfg = Debug|Any CPU + {CB903D21-4869-42EF-BDD6-5B1CFF674337}.Debug|x64.Build.0 = Debug|Any CPU + {CB903D21-4869-42EF-BDD6-5B1CFF674337}.Debug|x86.ActiveCfg = Debug|Any CPU + {CB903D21-4869-42EF-BDD6-5B1CFF674337}.Debug|x86.Build.0 = Debug|Any CPU {CB903D21-4869-42EF-BDD6-5B1CFF674337}.Release|Any CPU.ActiveCfg = Release|Any CPU {CB903D21-4869-42EF-BDD6-5B1CFF674337}.Release|Any CPU.Build.0 = Release|Any CPU + {CB903D21-4869-42EF-BDD6-5B1CFF674337}.Release|x64.ActiveCfg = Release|Any CPU + {CB903D21-4869-42EF-BDD6-5B1CFF674337}.Release|x64.Build.0 = Release|Any CPU + {CB903D21-4869-42EF-BDD6-5B1CFF674337}.Release|x86.ActiveCfg = Release|Any CPU + {CB903D21-4869-42EF-BDD6-5B1CFF674337}.Release|x86.Build.0 = Release|Any CPU {980B5FD8-0107-41F7-8FAD-E4E8BAE8A625}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {980B5FD8-0107-41F7-8FAD-E4E8BAE8A625}.Debug|Any CPU.Build.0 = Debug|Any CPU + {980B5FD8-0107-41F7-8FAD-E4E8BAE8A625}.Debug|x64.ActiveCfg = Debug|Any CPU + {980B5FD8-0107-41F7-8FAD-E4E8BAE8A625}.Debug|x64.Build.0 = Debug|Any CPU + {980B5FD8-0107-41F7-8FAD-E4E8BAE8A625}.Debug|x86.ActiveCfg = Debug|Any CPU + {980B5FD8-0107-41F7-8FAD-E4E8BAE8A625}.Debug|x86.Build.0 = Debug|Any CPU {980B5FD8-0107-41F7-8FAD-E4E8BAE8A625}.Release|Any CPU.ActiveCfg = Release|Any CPU {980B5FD8-0107-41F7-8FAD-E4E8BAE8A625}.Release|Any CPU.Build.0 = Release|Any CPU + {980B5FD8-0107-41F7-8FAD-E4E8BAE8A625}.Release|x64.ActiveCfg = Release|Any CPU + {980B5FD8-0107-41F7-8FAD-E4E8BAE8A625}.Release|x64.Build.0 = Release|Any CPU + {980B5FD8-0107-41F7-8FAD-E4E8BAE8A625}.Release|x86.ActiveCfg = Release|Any CPU + {980B5FD8-0107-41F7-8FAD-E4E8BAE8A625}.Release|x86.Build.0 = Release|Any CPU {7C06FE2D-6C62-48F5-A505-F0D715C554DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7C06FE2D-6C62-48F5-A505-F0D715C554DE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7C06FE2D-6C62-48F5-A505-F0D715C554DE}.Debug|x64.ActiveCfg = Debug|Any CPU + {7C06FE2D-6C62-48F5-A505-F0D715C554DE}.Debug|x64.Build.0 = Debug|Any CPU + {7C06FE2D-6C62-48F5-A505-F0D715C554DE}.Debug|x86.ActiveCfg = Debug|Any CPU + {7C06FE2D-6C62-48F5-A505-F0D715C554DE}.Debug|x86.Build.0 = Debug|Any CPU {7C06FE2D-6C62-48F5-A505-F0D715C554DE}.Release|Any CPU.ActiveCfg = Release|Any CPU {7C06FE2D-6C62-48F5-A505-F0D715C554DE}.Release|Any CPU.Build.0 = Release|Any CPU + {7C06FE2D-6C62-48F5-A505-F0D715C554DE}.Release|x64.ActiveCfg = Release|Any CPU + {7C06FE2D-6C62-48F5-A505-F0D715C554DE}.Release|x64.Build.0 = Release|Any CPU + {7C06FE2D-6C62-48F5-A505-F0D715C554DE}.Release|x86.ActiveCfg = Release|Any CPU + {7C06FE2D-6C62-48F5-A505-F0D715C554DE}.Release|x86.Build.0 = Release|Any CPU {AF89083D-4715-42E6-93E9-38497D12A8A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AF89083D-4715-42E6-93E9-38497D12A8A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AF89083D-4715-42E6-93E9-38497D12A8A6}.Debug|x64.ActiveCfg = Debug|Any CPU + {AF89083D-4715-42E6-93E9-38497D12A8A6}.Debug|x64.Build.0 = Debug|Any CPU + {AF89083D-4715-42E6-93E9-38497D12A8A6}.Debug|x86.ActiveCfg = Debug|Any CPU + {AF89083D-4715-42E6-93E9-38497D12A8A6}.Debug|x86.Build.0 = Debug|Any CPU {AF89083D-4715-42E6-93E9-38497D12A8A6}.Release|Any CPU.ActiveCfg = Release|Any CPU {AF89083D-4715-42E6-93E9-38497D12A8A6}.Release|Any CPU.Build.0 = Release|Any CPU + {AF89083D-4715-42E6-93E9-38497D12A8A6}.Release|x64.ActiveCfg = Release|Any CPU + {AF89083D-4715-42E6-93E9-38497D12A8A6}.Release|x64.Build.0 = Release|Any CPU + {AF89083D-4715-42E6-93E9-38497D12A8A6}.Release|x86.ActiveCfg = Release|Any CPU + {AF89083D-4715-42E6-93E9-38497D12A8A6}.Release|x86.Build.0 = Release|Any CPU {B5CDB0DC-B26D-48F1-B934-FE5C1C991940}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B5CDB0DC-B26D-48F1-B934-FE5C1C991940}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B5CDB0DC-B26D-48F1-B934-FE5C1C991940}.Debug|x64.ActiveCfg = Debug|Any CPU + {B5CDB0DC-B26D-48F1-B934-FE5C1C991940}.Debug|x64.Build.0 = Debug|Any CPU + {B5CDB0DC-B26D-48F1-B934-FE5C1C991940}.Debug|x86.ActiveCfg = Debug|Any CPU + {B5CDB0DC-B26D-48F1-B934-FE5C1C991940}.Debug|x86.Build.0 = Debug|Any CPU {B5CDB0DC-B26D-48F1-B934-FE5C1C991940}.Release|Any CPU.ActiveCfg = Release|Any CPU {B5CDB0DC-B26D-48F1-B934-FE5C1C991940}.Release|Any CPU.Build.0 = Release|Any CPU - {C74FBA78-13E8-407F-A173-4555AEE41FF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C74FBA78-13E8-407F-A173-4555AEE41FF3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C74FBA78-13E8-407F-A173-4555AEE41FF3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C74FBA78-13E8-407F-A173-4555AEE41FF3}.Release|Any CPU.Build.0 = Release|Any CPU + {B5CDB0DC-B26D-48F1-B934-FE5C1C991940}.Release|x64.ActiveCfg = Release|Any CPU + {B5CDB0DC-B26D-48F1-B934-FE5C1C991940}.Release|x64.Build.0 = Release|Any CPU + {B5CDB0DC-B26D-48F1-B934-FE5C1C991940}.Release|x86.ActiveCfg = Release|Any CPU + {B5CDB0DC-B26D-48F1-B934-FE5C1C991940}.Release|x86.Build.0 = Release|Any CPU {DFBABB04-50E9-42F6-B470-310E1B545638}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DFBABB04-50E9-42F6-B470-310E1B545638}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DFBABB04-50E9-42F6-B470-310E1B545638}.Debug|x64.ActiveCfg = Debug|Any CPU + {DFBABB04-50E9-42F6-B470-310E1B545638}.Debug|x64.Build.0 = Debug|Any CPU + {DFBABB04-50E9-42F6-B470-310E1B545638}.Debug|x86.ActiveCfg = Debug|Any CPU + {DFBABB04-50E9-42F6-B470-310E1B545638}.Debug|x86.Build.0 = Debug|Any CPU {DFBABB04-50E9-42F6-B470-310E1B545638}.Release|Any CPU.ActiveCfg = Release|Any CPU {DFBABB04-50E9-42F6-B470-310E1B545638}.Release|Any CPU.Build.0 = Release|Any CPU + {DFBABB04-50E9-42F6-B470-310E1B545638}.Release|x64.ActiveCfg = Release|Any CPU + {DFBABB04-50E9-42F6-B470-310E1B545638}.Release|x64.Build.0 = Release|Any CPU + {DFBABB04-50E9-42F6-B470-310E1B545638}.Release|x86.ActiveCfg = Release|Any CPU + {DFBABB04-50E9-42F6-B470-310E1B545638}.Release|x86.Build.0 = Release|Any CPU {B445B19C-A925-4873-8CB7-8317898B6970}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B445B19C-A925-4873-8CB7-8317898B6970}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B445B19C-A925-4873-8CB7-8317898B6970}.Debug|x64.ActiveCfg = Debug|Any CPU + {B445B19C-A925-4873-8CB7-8317898B6970}.Debug|x64.Build.0 = Debug|Any CPU + {B445B19C-A925-4873-8CB7-8317898B6970}.Debug|x86.ActiveCfg = Debug|Any CPU + {B445B19C-A925-4873-8CB7-8317898B6970}.Debug|x86.Build.0 = Debug|Any CPU {B445B19C-A925-4873-8CB7-8317898B6970}.Release|Any CPU.ActiveCfg = Release|Any CPU {B445B19C-A925-4873-8CB7-8317898B6970}.Release|Any CPU.Build.0 = Release|Any CPU + {B445B19C-A925-4873-8CB7-8317898B6970}.Release|x64.ActiveCfg = Release|Any CPU + {B445B19C-A925-4873-8CB7-8317898B6970}.Release|x64.Build.0 = Release|Any CPU + {B445B19C-A925-4873-8CB7-8317898B6970}.Release|x86.ActiveCfg = Release|Any CPU + {B445B19C-A925-4873-8CB7-8317898B6970}.Release|x86.Build.0 = Release|Any CPU {CDB47863-BEBD-4841-A807-46D868962521}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CDB47863-BEBD-4841-A807-46D868962521}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CDB47863-BEBD-4841-A807-46D868962521}.Debug|x64.ActiveCfg = Debug|Any CPU + {CDB47863-BEBD-4841-A807-46D868962521}.Debug|x64.Build.0 = Debug|Any CPU + {CDB47863-BEBD-4841-A807-46D868962521}.Debug|x86.ActiveCfg = Debug|Any CPU + {CDB47863-BEBD-4841-A807-46D868962521}.Debug|x86.Build.0 = Debug|Any CPU {CDB47863-BEBD-4841-A807-46D868962521}.Release|Any CPU.ActiveCfg = Release|Any CPU {CDB47863-BEBD-4841-A807-46D868962521}.Release|Any CPU.Build.0 = Release|Any CPU + {CDB47863-BEBD-4841-A807-46D868962521}.Release|x64.ActiveCfg = Release|Any CPU + {CDB47863-BEBD-4841-A807-46D868962521}.Release|x64.Build.0 = Release|Any CPU + {CDB47863-BEBD-4841-A807-46D868962521}.Release|x86.ActiveCfg = Release|Any CPU + {CDB47863-BEBD-4841-A807-46D868962521}.Release|x86.Build.0 = Release|Any CPU {273F2527-1658-4CCF-8DC6-600E921188C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {273F2527-1658-4CCF-8DC6-600E921188C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {273F2527-1658-4CCF-8DC6-600E921188C5}.Debug|x64.ActiveCfg = Debug|Any CPU + {273F2527-1658-4CCF-8DC6-600E921188C5}.Debug|x64.Build.0 = Debug|Any CPU + {273F2527-1658-4CCF-8DC6-600E921188C5}.Debug|x86.ActiveCfg = Debug|Any CPU + {273F2527-1658-4CCF-8DC6-600E921188C5}.Debug|x86.Build.0 = Debug|Any CPU {273F2527-1658-4CCF-8DC6-600E921188C5}.Release|Any CPU.ActiveCfg = Release|Any CPU {273F2527-1658-4CCF-8DC6-600E921188C5}.Release|Any CPU.Build.0 = Release|Any CPU + {273F2527-1658-4CCF-8DC6-600E921188C5}.Release|x64.ActiveCfg = Release|Any CPU + {273F2527-1658-4CCF-8DC6-600E921188C5}.Release|x64.Build.0 = Release|Any CPU + {273F2527-1658-4CCF-8DC6-600E921188C5}.Release|x86.ActiveCfg = Release|Any CPU + {273F2527-1658-4CCF-8DC6-600E921188C5}.Release|x86.Build.0 = Release|Any CPU {2F3700EF-1CDA-4C15-AC88-360230000ECD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2F3700EF-1CDA-4C15-AC88-360230000ECD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2F3700EF-1CDA-4C15-AC88-360230000ECD}.Debug|x64.ActiveCfg = Debug|Any CPU + {2F3700EF-1CDA-4C15-AC88-360230000ECD}.Debug|x64.Build.0 = Debug|Any CPU + {2F3700EF-1CDA-4C15-AC88-360230000ECD}.Debug|x86.ActiveCfg = Debug|Any CPU + {2F3700EF-1CDA-4C15-AC88-360230000ECD}.Debug|x86.Build.0 = Debug|Any CPU {2F3700EF-1CDA-4C15-AC88-360230000ECD}.Release|Any CPU.ActiveCfg = Release|Any CPU {2F3700EF-1CDA-4C15-AC88-360230000ECD}.Release|Any CPU.Build.0 = Release|Any CPU + {2F3700EF-1CDA-4C15-AC88-360230000ECD}.Release|x64.ActiveCfg = Release|Any CPU + {2F3700EF-1CDA-4C15-AC88-360230000ECD}.Release|x64.Build.0 = Release|Any CPU + {2F3700EF-1CDA-4C15-AC88-360230000ECD}.Release|x86.ActiveCfg = Release|Any CPU + {2F3700EF-1CDA-4C15-AC88-360230000ECD}.Release|x86.Build.0 = Release|Any CPU {11011FF8-77EA-4B25-96C0-29D4D486EF1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {11011FF8-77EA-4B25-96C0-29D4D486EF1C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {11011FF8-77EA-4B25-96C0-29D4D486EF1C}.Debug|x64.ActiveCfg = Debug|Any CPU + {11011FF8-77EA-4B25-96C0-29D4D486EF1C}.Debug|x64.Build.0 = Debug|Any CPU + {11011FF8-77EA-4B25-96C0-29D4D486EF1C}.Debug|x86.ActiveCfg = Debug|Any CPU + {11011FF8-77EA-4B25-96C0-29D4D486EF1C}.Debug|x86.Build.0 = Debug|Any CPU {11011FF8-77EA-4B25-96C0-29D4D486EF1C}.Release|Any CPU.ActiveCfg = Release|Any CPU {11011FF8-77EA-4B25-96C0-29D4D486EF1C}.Release|Any CPU.Build.0 = Release|Any CPU + {11011FF8-77EA-4B25-96C0-29D4D486EF1C}.Release|x64.ActiveCfg = Release|Any CPU + {11011FF8-77EA-4B25-96C0-29D4D486EF1C}.Release|x64.Build.0 = Release|Any CPU + {11011FF8-77EA-4B25-96C0-29D4D486EF1C}.Release|x86.ActiveCfg = Release|Any CPU + {11011FF8-77EA-4B25-96C0-29D4D486EF1C}.Release|x86.Build.0 = Release|Any CPU {43CB06A9-7E88-4C5F-BFB8-947E072CBC9F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {43CB06A9-7E88-4C5F-BFB8-947E072CBC9F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {43CB06A9-7E88-4C5F-BFB8-947E072CBC9F}.Debug|x64.ActiveCfg = Debug|Any CPU + {43CB06A9-7E88-4C5F-BFB8-947E072CBC9F}.Debug|x64.Build.0 = Debug|Any CPU + {43CB06A9-7E88-4C5F-BFB8-947E072CBC9F}.Debug|x86.ActiveCfg = Debug|Any CPU + {43CB06A9-7E88-4C5F-BFB8-947E072CBC9F}.Debug|x86.Build.0 = Debug|Any CPU {43CB06A9-7E88-4C5F-BFB8-947E072CBC9F}.Release|Any CPU.ActiveCfg = Release|Any CPU {43CB06A9-7E88-4C5F-BFB8-947E072CBC9F}.Release|Any CPU.Build.0 = Release|Any CPU + {43CB06A9-7E88-4C5F-BFB8-947E072CBC9F}.Release|x64.ActiveCfg = Release|Any CPU + {43CB06A9-7E88-4C5F-BFB8-947E072CBC9F}.Release|x64.Build.0 = Release|Any CPU + {43CB06A9-7E88-4C5F-BFB8-947E072CBC9F}.Release|x86.ActiveCfg = Release|Any CPU + {43CB06A9-7E88-4C5F-BFB8-947E072CBC9F}.Release|x86.Build.0 = Release|Any CPU {7F73A3D8-FFC2-4E31-AA3D-A4840316A8C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7F73A3D8-FFC2-4E31-AA3D-A4840316A8C6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7F73A3D8-FFC2-4E31-AA3D-A4840316A8C6}.Debug|x64.ActiveCfg = Debug|Any CPU + {7F73A3D8-FFC2-4E31-AA3D-A4840316A8C6}.Debug|x64.Build.0 = Debug|Any CPU + {7F73A3D8-FFC2-4E31-AA3D-A4840316A8C6}.Debug|x86.ActiveCfg = Debug|Any CPU + {7F73A3D8-FFC2-4E31-AA3D-A4840316A8C6}.Debug|x86.Build.0 = Debug|Any CPU {7F73A3D8-FFC2-4E31-AA3D-A4840316A8C6}.Release|Any CPU.ActiveCfg = Release|Any CPU {7F73A3D8-FFC2-4E31-AA3D-A4840316A8C6}.Release|Any CPU.Build.0 = Release|Any CPU + {7F73A3D8-FFC2-4E31-AA3D-A4840316A8C6}.Release|x64.ActiveCfg = Release|Any CPU + {7F73A3D8-FFC2-4E31-AA3D-A4840316A8C6}.Release|x64.Build.0 = Release|Any CPU + {7F73A3D8-FFC2-4E31-AA3D-A4840316A8C6}.Release|x86.ActiveCfg = Release|Any CPU + {7F73A3D8-FFC2-4E31-AA3D-A4840316A8C6}.Release|x86.Build.0 = Release|Any CPU {945DD3B7-94E5-435E-B3CB-796C20A652C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {945DD3B7-94E5-435E-B3CB-796C20A652C7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {945DD3B7-94E5-435E-B3CB-796C20A652C7}.Debug|x64.ActiveCfg = Debug|Any CPU + {945DD3B7-94E5-435E-B3CB-796C20A652C7}.Debug|x64.Build.0 = Debug|Any CPU + {945DD3B7-94E5-435E-B3CB-796C20A652C7}.Debug|x86.ActiveCfg = Debug|Any CPU + {945DD3B7-94E5-435E-B3CB-796C20A652C7}.Debug|x86.Build.0 = Debug|Any CPU {945DD3B7-94E5-435E-B3CB-796C20A652C7}.Release|Any CPU.ActiveCfg = Release|Any CPU {945DD3B7-94E5-435E-B3CB-796C20A652C7}.Release|Any CPU.Build.0 = Release|Any CPU + {945DD3B7-94E5-435E-B3CB-796C20A652C7}.Release|x64.ActiveCfg = Release|Any CPU + {945DD3B7-94E5-435E-B3CB-796C20A652C7}.Release|x64.Build.0 = Release|Any CPU + {945DD3B7-94E5-435E-B3CB-796C20A652C7}.Release|x86.ActiveCfg = Release|Any CPU + {945DD3B7-94E5-435E-B3CB-796C20A652C7}.Release|x86.Build.0 = Release|Any CPU {FD3E9371-3134-4235-8E80-32226DFB4B1F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FD3E9371-3134-4235-8E80-32226DFB4B1F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FD3E9371-3134-4235-8E80-32226DFB4B1F}.Debug|x64.ActiveCfg = Debug|Any CPU + {FD3E9371-3134-4235-8E80-32226DFB4B1F}.Debug|x64.Build.0 = Debug|Any CPU + {FD3E9371-3134-4235-8E80-32226DFB4B1F}.Debug|x86.ActiveCfg = Debug|Any CPU + {FD3E9371-3134-4235-8E80-32226DFB4B1F}.Debug|x86.Build.0 = Debug|Any CPU {FD3E9371-3134-4235-8E80-32226DFB4B1F}.Release|Any CPU.ActiveCfg = Release|Any CPU {FD3E9371-3134-4235-8E80-32226DFB4B1F}.Release|Any CPU.Build.0 = Release|Any CPU + {FD3E9371-3134-4235-8E80-32226DFB4B1F}.Release|x64.ActiveCfg = Release|Any CPU + {FD3E9371-3134-4235-8E80-32226DFB4B1F}.Release|x64.Build.0 = Release|Any CPU + {FD3E9371-3134-4235-8E80-32226DFB4B1F}.Release|x86.ActiveCfg = Release|Any CPU + {FD3E9371-3134-4235-8E80-32226DFB4B1F}.Release|x86.Build.0 = Release|Any CPU {D83B27F3-4401-42F5-843E-147566B4999A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D83B27F3-4401-42F5-843E-147566B4999A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D83B27F3-4401-42F5-843E-147566B4999A}.Debug|x64.ActiveCfg = Debug|Any CPU + {D83B27F3-4401-42F5-843E-147566B4999A}.Debug|x64.Build.0 = Debug|Any CPU + {D83B27F3-4401-42F5-843E-147566B4999A}.Debug|x86.ActiveCfg = Debug|Any CPU + {D83B27F3-4401-42F5-843E-147566B4999A}.Debug|x86.Build.0 = Debug|Any CPU {D83B27F3-4401-42F5-843E-147566B4999A}.Release|Any CPU.ActiveCfg = Release|Any CPU {D83B27F3-4401-42F5-843E-147566B4999A}.Release|Any CPU.Build.0 = Release|Any CPU + {D83B27F3-4401-42F5-843E-147566B4999A}.Release|x64.ActiveCfg = Release|Any CPU + {D83B27F3-4401-42F5-843E-147566B4999A}.Release|x64.Build.0 = Release|Any CPU + {D83B27F3-4401-42F5-843E-147566B4999A}.Release|x86.ActiveCfg = Release|Any CPU + {D83B27F3-4401-42F5-843E-147566B4999A}.Release|x86.Build.0 = Release|Any CPU {00359961-0C50-4BB1-A794-8B06DE991639}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {00359961-0C50-4BB1-A794-8B06DE991639}.Debug|Any CPU.Build.0 = Debug|Any CPU + {00359961-0C50-4BB1-A794-8B06DE991639}.Debug|x64.ActiveCfg = Debug|Any CPU + {00359961-0C50-4BB1-A794-8B06DE991639}.Debug|x64.Build.0 = Debug|Any CPU + {00359961-0C50-4BB1-A794-8B06DE991639}.Debug|x86.ActiveCfg = Debug|Any CPU + {00359961-0C50-4BB1-A794-8B06DE991639}.Debug|x86.Build.0 = Debug|Any CPU {00359961-0C50-4BB1-A794-8B06DE991639}.Release|Any CPU.ActiveCfg = Release|Any CPU {00359961-0C50-4BB1-A794-8B06DE991639}.Release|Any CPU.Build.0 = Release|Any CPU + {00359961-0C50-4BB1-A794-8B06DE991639}.Release|x64.ActiveCfg = Release|Any CPU + {00359961-0C50-4BB1-A794-8B06DE991639}.Release|x64.Build.0 = Release|Any CPU + {00359961-0C50-4BB1-A794-8B06DE991639}.Release|x86.ActiveCfg = Release|Any CPU + {00359961-0C50-4BB1-A794-8B06DE991639}.Release|x86.Build.0 = Release|Any CPU {4E04EB35-7FD2-4FDB-B09A-F75CE24053B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4E04EB35-7FD2-4FDB-B09A-F75CE24053B9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4E04EB35-7FD2-4FDB-B09A-F75CE24053B9}.Debug|x64.ActiveCfg = Debug|Any CPU + {4E04EB35-7FD2-4FDB-B09A-F75CE24053B9}.Debug|x64.Build.0 = Debug|Any CPU + {4E04EB35-7FD2-4FDB-B09A-F75CE24053B9}.Debug|x86.ActiveCfg = Debug|Any CPU + {4E04EB35-7FD2-4FDB-B09A-F75CE24053B9}.Debug|x86.Build.0 = Debug|Any CPU {4E04EB35-7FD2-4FDB-B09A-F75CE24053B9}.Release|Any CPU.ActiveCfg = Release|Any CPU {4E04EB35-7FD2-4FDB-B09A-F75CE24053B9}.Release|Any CPU.Build.0 = Release|Any CPU + {4E04EB35-7FD2-4FDB-B09A-F75CE24053B9}.Release|x64.ActiveCfg = Release|Any CPU + {4E04EB35-7FD2-4FDB-B09A-F75CE24053B9}.Release|x64.Build.0 = Release|Any CPU + {4E04EB35-7FD2-4FDB-B09A-F75CE24053B9}.Release|x86.ActiveCfg = Release|Any CPU + {4E04EB35-7FD2-4FDB-B09A-F75CE24053B9}.Release|x86.Build.0 = Release|Any CPU {0EAE36A1-B578-4F13-A113-7A477ECA1BDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0EAE36A1-B578-4F13-A113-7A477ECA1BDA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0EAE36A1-B578-4F13-A113-7A477ECA1BDA}.Debug|x64.ActiveCfg = Debug|Any CPU + {0EAE36A1-B578-4F13-A113-7A477ECA1BDA}.Debug|x64.Build.0 = Debug|Any CPU + {0EAE36A1-B578-4F13-A113-7A477ECA1BDA}.Debug|x86.ActiveCfg = Debug|Any CPU + {0EAE36A1-B578-4F13-A113-7A477ECA1BDA}.Debug|x86.Build.0 = Debug|Any CPU {0EAE36A1-B578-4F13-A113-7A477ECA1BDA}.Release|Any CPU.ActiveCfg = Release|Any CPU {0EAE36A1-B578-4F13-A113-7A477ECA1BDA}.Release|Any CPU.Build.0 = Release|Any CPU - {290D1278-F613-4DF3-9DF5-F37E38CDC363}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {290D1278-F613-4DF3-9DF5-F37E38CDC363}.Debug|Any CPU.Build.0 = Debug|Any CPU - {290D1278-F613-4DF3-9DF5-F37E38CDC363}.Release|Any CPU.ActiveCfg = Release|Any CPU - {290D1278-F613-4DF3-9DF5-F37E38CDC363}.Release|Any CPU.Build.0 = Release|Any CPU + {0EAE36A1-B578-4F13-A113-7A477ECA1BDA}.Release|x64.ActiveCfg = Release|Any CPU + {0EAE36A1-B578-4F13-A113-7A477ECA1BDA}.Release|x64.Build.0 = Release|Any CPU + {0EAE36A1-B578-4F13-A113-7A477ECA1BDA}.Release|x86.ActiveCfg = Release|Any CPU + {0EAE36A1-B578-4F13-A113-7A477ECA1BDA}.Release|x86.Build.0 = Release|Any CPU {C8BB6A85-A7EA-40C0-893D-F36F317829B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C8BB6A85-A7EA-40C0-893D-F36F317829B3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C8BB6A85-A7EA-40C0-893D-F36F317829B3}.Debug|x64.ActiveCfg = Debug|Any CPU + {C8BB6A85-A7EA-40C0-893D-F36F317829B3}.Debug|x64.Build.0 = Debug|Any CPU + {C8BB6A85-A7EA-40C0-893D-F36F317829B3}.Debug|x86.ActiveCfg = Debug|Any CPU + {C8BB6A85-A7EA-40C0-893D-F36F317829B3}.Debug|x86.Build.0 = Debug|Any CPU {C8BB6A85-A7EA-40C0-893D-F36F317829B3}.Release|Any CPU.ActiveCfg = Release|Any CPU {C8BB6A85-A7EA-40C0-893D-F36F317829B3}.Release|Any CPU.Build.0 = Release|Any CPU + {C8BB6A85-A7EA-40C0-893D-F36F317829B3}.Release|x64.ActiveCfg = Release|Any CPU + {C8BB6A85-A7EA-40C0-893D-F36F317829B3}.Release|x64.Build.0 = Release|Any CPU + {C8BB6A85-A7EA-40C0-893D-F36F317829B3}.Release|x86.ActiveCfg = Release|Any CPU + {C8BB6A85-A7EA-40C0-893D-F36F317829B3}.Release|x86.Build.0 = Release|Any CPU {BF9828E9-5597-4D42-AA6E-6E6C12214204}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BF9828E9-5597-4D42-AA6E-6E6C12214204}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BF9828E9-5597-4D42-AA6E-6E6C12214204}.Debug|x64.ActiveCfg = Debug|Any CPU + {BF9828E9-5597-4D42-AA6E-6E6C12214204}.Debug|x64.Build.0 = Debug|Any CPU + {BF9828E9-5597-4D42-AA6E-6E6C12214204}.Debug|x86.ActiveCfg = Debug|Any CPU + {BF9828E9-5597-4D42-AA6E-6E6C12214204}.Debug|x86.Build.0 = Debug|Any CPU {BF9828E9-5597-4D42-AA6E-6E6C12214204}.Release|Any CPU.ActiveCfg = Release|Any CPU {BF9828E9-5597-4D42-AA6E-6E6C12214204}.Release|Any CPU.Build.0 = Release|Any CPU + {BF9828E9-5597-4D42-AA6E-6E6C12214204}.Release|x64.ActiveCfg = Release|Any CPU + {BF9828E9-5597-4D42-AA6E-6E6C12214204}.Release|x64.Build.0 = Release|Any CPU + {BF9828E9-5597-4D42-AA6E-6E6C12214204}.Release|x86.ActiveCfg = Release|Any CPU + {BF9828E9-5597-4D42-AA6E-6E6C12214204}.Release|x86.Build.0 = Release|Any CPU {9CAF360E-5AD3-4C4F-89A0-327EEB70D673}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9CAF360E-5AD3-4C4F-89A0-327EEB70D673}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9CAF360E-5AD3-4C4F-89A0-327EEB70D673}.Debug|x64.ActiveCfg = Debug|Any CPU + {9CAF360E-5AD3-4C4F-89A0-327EEB70D673}.Debug|x64.Build.0 = Debug|Any CPU + {9CAF360E-5AD3-4C4F-89A0-327EEB70D673}.Debug|x86.ActiveCfg = Debug|Any CPU + {9CAF360E-5AD3-4C4F-89A0-327EEB70D673}.Debug|x86.Build.0 = Debug|Any CPU {9CAF360E-5AD3-4C4F-89A0-327EEB70D673}.Release|Any CPU.ActiveCfg = Release|Any CPU {9CAF360E-5AD3-4C4F-89A0-327EEB70D673}.Release|Any CPU.Build.0 = Release|Any CPU + {9CAF360E-5AD3-4C4F-89A0-327EEB70D673}.Release|x64.ActiveCfg = Release|Any CPU + {9CAF360E-5AD3-4C4F-89A0-327EEB70D673}.Release|x64.Build.0 = Release|Any CPU + {9CAF360E-5AD3-4C4F-89A0-327EEB70D673}.Release|x86.ActiveCfg = Release|Any CPU + {9CAF360E-5AD3-4C4F-89A0-327EEB70D673}.Release|x86.Build.0 = Release|Any CPU {E90114C6-86FC-43B8-AE5C-D9273CF21FE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E90114C6-86FC-43B8-AE5C-D9273CF21FE4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E90114C6-86FC-43B8-AE5C-D9273CF21FE4}.Debug|x64.ActiveCfg = Debug|Any CPU + {E90114C6-86FC-43B8-AE5C-D9273CF21FE4}.Debug|x64.Build.0 = Debug|Any CPU + {E90114C6-86FC-43B8-AE5C-D9273CF21FE4}.Debug|x86.ActiveCfg = Debug|Any CPU + {E90114C6-86FC-43B8-AE5C-D9273CF21FE4}.Debug|x86.Build.0 = Debug|Any CPU {E90114C6-86FC-43B8-AE5C-D9273CF21FE4}.Release|Any CPU.ActiveCfg = Release|Any CPU {E90114C6-86FC-43B8-AE5C-D9273CF21FE4}.Release|Any CPU.Build.0 = Release|Any CPU - {55A7D436-CC8C-47E6-B43A-DFE32E0FE38C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E90114C6-86FC-43B8-AE5C-D9273CF21FE4}.Release|x64.ActiveCfg = Release|Any CPU + {E90114C6-86FC-43B8-AE5C-D9273CF21FE4}.Release|x64.Build.0 = Release|Any CPU + {E90114C6-86FC-43B8-AE5C-D9273CF21FE4}.Release|x86.ActiveCfg = Release|Any CPU + {E90114C6-86FC-43B8-AE5C-D9273CF21FE4}.Release|x86.Build.0 = Release|Any CPU + {55A7D436-CC8C-47E6-B43A-DFE32E0FE38C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {55A7D436-CC8C-47E6-B43A-DFE32E0FE38C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {55A7D436-CC8C-47E6-B43A-DFE32E0FE38C}.Debug|x64.ActiveCfg = Debug|Any CPU + {55A7D436-CC8C-47E6-B43A-DFE32E0FE38C}.Debug|x64.Build.0 = Debug|Any CPU + {55A7D436-CC8C-47E6-B43A-DFE32E0FE38C}.Debug|x86.ActiveCfg = Debug|Any CPU + {55A7D436-CC8C-47E6-B43A-DFE32E0FE38C}.Debug|x86.Build.0 = Debug|Any CPU {55A7D436-CC8C-47E6-B43A-DFE32E0FE38C}.Release|Any CPU.ActiveCfg = Release|Any CPU {55A7D436-CC8C-47E6-B43A-DFE32E0FE38C}.Release|Any CPU.Build.0 = Release|Any CPU + {55A7D436-CC8C-47E6-B43A-DFE32E0FE38C}.Release|x64.ActiveCfg = Release|Any CPU + {55A7D436-CC8C-47E6-B43A-DFE32E0FE38C}.Release|x64.Build.0 = Release|Any CPU + {55A7D436-CC8C-47E6-B43A-DFE32E0FE38C}.Release|x86.ActiveCfg = Release|Any CPU + {55A7D436-CC8C-47E6-B43A-DFE32E0FE38C}.Release|x86.Build.0 = Release|Any CPU {CE0D5FEB-F6DB-4EB8-B8A9-6A4A32944539}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CE0D5FEB-F6DB-4EB8-B8A9-6A4A32944539}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CE0D5FEB-F6DB-4EB8-B8A9-6A4A32944539}.Debug|x64.ActiveCfg = Debug|Any CPU + {CE0D5FEB-F6DB-4EB8-B8A9-6A4A32944539}.Debug|x64.Build.0 = Debug|Any CPU + {CE0D5FEB-F6DB-4EB8-B8A9-6A4A32944539}.Debug|x86.ActiveCfg = Debug|Any CPU + {CE0D5FEB-F6DB-4EB8-B8A9-6A4A32944539}.Debug|x86.Build.0 = Debug|Any CPU {CE0D5FEB-F6DB-4EB8-B8A9-6A4A32944539}.Release|Any CPU.ActiveCfg = Release|Any CPU {CE0D5FEB-F6DB-4EB8-B8A9-6A4A32944539}.Release|Any CPU.Build.0 = Release|Any CPU + {CE0D5FEB-F6DB-4EB8-B8A9-6A4A32944539}.Release|x64.ActiveCfg = Release|Any CPU + {CE0D5FEB-F6DB-4EB8-B8A9-6A4A32944539}.Release|x64.Build.0 = Release|Any CPU + {CE0D5FEB-F6DB-4EB8-B8A9-6A4A32944539}.Release|x86.ActiveCfg = Release|Any CPU + {CE0D5FEB-F6DB-4EB8-B8A9-6A4A32944539}.Release|x86.Build.0 = Release|Any CPU {28B87C37-4B52-400F-B84D-64F134931BDC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {28B87C37-4B52-400F-B84D-64F134931BDC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {28B87C37-4B52-400F-B84D-64F134931BDC}.Debug|x64.ActiveCfg = Debug|Any CPU + {28B87C37-4B52-400F-B84D-64F134931BDC}.Debug|x64.Build.0 = Debug|Any CPU + {28B87C37-4B52-400F-B84D-64F134931BDC}.Debug|x86.ActiveCfg = Debug|Any CPU + {28B87C37-4B52-400F-B84D-64F134931BDC}.Debug|x86.Build.0 = Debug|Any CPU {28B87C37-4B52-400F-B84D-64F134931BDC}.Release|Any CPU.ActiveCfg = Release|Any CPU {28B87C37-4B52-400F-B84D-64F134931BDC}.Release|Any CPU.Build.0 = Release|Any CPU + {28B87C37-4B52-400F-B84D-64F134931BDC}.Release|x64.ActiveCfg = Release|Any CPU + {28B87C37-4B52-400F-B84D-64F134931BDC}.Release|x64.Build.0 = Release|Any CPU + {28B87C37-4B52-400F-B84D-64F134931BDC}.Release|x86.ActiveCfg = Release|Any CPU + {28B87C37-4B52-400F-B84D-64F134931BDC}.Release|x86.Build.0 = Release|Any CPU {CADEAE45-8981-4723-B641-9C28251C7D3B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CADEAE45-8981-4723-B641-9C28251C7D3B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CADEAE45-8981-4723-B641-9C28251C7D3B}.Debug|x64.ActiveCfg = Debug|Any CPU + {CADEAE45-8981-4723-B641-9C28251C7D3B}.Debug|x64.Build.0 = Debug|Any CPU + {CADEAE45-8981-4723-B641-9C28251C7D3B}.Debug|x86.ActiveCfg = Debug|Any CPU + {CADEAE45-8981-4723-B641-9C28251C7D3B}.Debug|x86.Build.0 = Debug|Any CPU {CADEAE45-8981-4723-B641-9C28251C7D3B}.Release|Any CPU.ActiveCfg = Release|Any CPU {CADEAE45-8981-4723-B641-9C28251C7D3B}.Release|Any CPU.Build.0 = Release|Any CPU + {CADEAE45-8981-4723-B641-9C28251C7D3B}.Release|x64.ActiveCfg = Release|Any CPU + {CADEAE45-8981-4723-B641-9C28251C7D3B}.Release|x64.Build.0 = Release|Any CPU + {CADEAE45-8981-4723-B641-9C28251C7D3B}.Release|x86.ActiveCfg = Release|Any CPU + {CADEAE45-8981-4723-B641-9C28251C7D3B}.Release|x86.Build.0 = Release|Any CPU {E49C822C-E921-48DF-897B-3E603CA596D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E49C822C-E921-48DF-897B-3E603CA596D2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E49C822C-E921-48DF-897B-3E603CA596D2}.Debug|x64.ActiveCfg = Debug|Any CPU + {E49C822C-E921-48DF-897B-3E603CA596D2}.Debug|x64.Build.0 = Debug|Any CPU + {E49C822C-E921-48DF-897B-3E603CA596D2}.Debug|x86.ActiveCfg = Debug|Any CPU + {E49C822C-E921-48DF-897B-3E603CA596D2}.Debug|x86.Build.0 = Debug|Any CPU {E49C822C-E921-48DF-897B-3E603CA596D2}.Release|Any CPU.ActiveCfg = Release|Any CPU {E49C822C-E921-48DF-897B-3E603CA596D2}.Release|Any CPU.Build.0 = Release|Any CPU + {E49C822C-E921-48DF-897B-3E603CA596D2}.Release|x64.ActiveCfg = Release|Any CPU + {E49C822C-E921-48DF-897B-3E603CA596D2}.Release|x64.Build.0 = Release|Any CPU + {E49C822C-E921-48DF-897B-3E603CA596D2}.Release|x86.ActiveCfg = Release|Any CPU + {E49C822C-E921-48DF-897B-3E603CA596D2}.Release|x86.Build.0 = Release|Any CPU {A2C0F203-11FF-4B7F-A94F-B9FD873573FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A2C0F203-11FF-4B7F-A94F-B9FD873573FE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A2C0F203-11FF-4B7F-A94F-B9FD873573FE}.Debug|x64.ActiveCfg = Debug|Any CPU + {A2C0F203-11FF-4B7F-A94F-B9FD873573FE}.Debug|x64.Build.0 = Debug|Any CPU + {A2C0F203-11FF-4B7F-A94F-B9FD873573FE}.Debug|x86.ActiveCfg = Debug|Any CPU + {A2C0F203-11FF-4B7F-A94F-B9FD873573FE}.Debug|x86.Build.0 = Debug|Any CPU {A2C0F203-11FF-4B7F-A94F-B9FD873573FE}.Release|Any CPU.ActiveCfg = Release|Any CPU {A2C0F203-11FF-4B7F-A94F-B9FD873573FE}.Release|Any CPU.Build.0 = Release|Any CPU + {A2C0F203-11FF-4B7F-A94F-B9FD873573FE}.Release|x64.ActiveCfg = Release|Any CPU + {A2C0F203-11FF-4B7F-A94F-B9FD873573FE}.Release|x64.Build.0 = Release|Any CPU + {A2C0F203-11FF-4B7F-A94F-B9FD873573FE}.Release|x86.ActiveCfg = Release|Any CPU + {A2C0F203-11FF-4B7F-A94F-B9FD873573FE}.Release|x86.Build.0 = Release|Any CPU {7E23E229-6823-4D84-AF3A-AE14CEAEF52A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7E23E229-6823-4D84-AF3A-AE14CEAEF52A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7E23E229-6823-4D84-AF3A-AE14CEAEF52A}.Debug|x64.ActiveCfg = Debug|Any CPU + {7E23E229-6823-4D84-AF3A-AE14CEAEF52A}.Debug|x64.Build.0 = Debug|Any CPU + {7E23E229-6823-4D84-AF3A-AE14CEAEF52A}.Debug|x86.ActiveCfg = Debug|Any CPU + {7E23E229-6823-4D84-AF3A-AE14CEAEF52A}.Debug|x86.Build.0 = Debug|Any CPU {7E23E229-6823-4D84-AF3A-AE14CEAEF52A}.Release|Any CPU.ActiveCfg = Release|Any CPU {7E23E229-6823-4D84-AF3A-AE14CEAEF52A}.Release|Any CPU.Build.0 = Release|Any CPU + {7E23E229-6823-4D84-AF3A-AE14CEAEF52A}.Release|x64.ActiveCfg = Release|Any CPU + {7E23E229-6823-4D84-AF3A-AE14CEAEF52A}.Release|x64.Build.0 = Release|Any CPU + {7E23E229-6823-4D84-AF3A-AE14CEAEF52A}.Release|x86.ActiveCfg = Release|Any CPU + {7E23E229-6823-4D84-AF3A-AE14CEAEF52A}.Release|x86.Build.0 = Release|Any CPU {160EFFA0-F6B9-49E4-B62B-68C0D53DB425}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {160EFFA0-F6B9-49E4-B62B-68C0D53DB425}.Debug|Any CPU.Build.0 = Debug|Any CPU + {160EFFA0-F6B9-49E4-B62B-68C0D53DB425}.Debug|x64.ActiveCfg = Debug|Any CPU + {160EFFA0-F6B9-49E4-B62B-68C0D53DB425}.Debug|x64.Build.0 = Debug|Any CPU + {160EFFA0-F6B9-49E4-B62B-68C0D53DB425}.Debug|x86.ActiveCfg = Debug|Any CPU + {160EFFA0-F6B9-49E4-B62B-68C0D53DB425}.Debug|x86.Build.0 = Debug|Any CPU {160EFFA0-F6B9-49E4-B62B-68C0D53DB425}.Release|Any CPU.ActiveCfg = Release|Any CPU {160EFFA0-F6B9-49E4-B62B-68C0D53DB425}.Release|Any CPU.Build.0 = Release|Any CPU + {160EFFA0-F6B9-49E4-B62B-68C0D53DB425}.Release|x64.ActiveCfg = Release|Any CPU + {160EFFA0-F6B9-49E4-B62B-68C0D53DB425}.Release|x64.Build.0 = Release|Any CPU + {160EFFA0-F6B9-49E4-B62B-68C0D53DB425}.Release|x86.ActiveCfg = Release|Any CPU + {160EFFA0-F6B9-49E4-B62B-68C0D53DB425}.Release|x86.Build.0 = Release|Any CPU {B508EBD6-0F14-480C-A446-45A09052733B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B508EBD6-0F14-480C-A446-45A09052733B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B508EBD6-0F14-480C-A446-45A09052733B}.Debug|x64.ActiveCfg = Debug|Any CPU + {B508EBD6-0F14-480C-A446-45A09052733B}.Debug|x64.Build.0 = Debug|Any CPU + {B508EBD6-0F14-480C-A446-45A09052733B}.Debug|x86.ActiveCfg = Debug|Any CPU + {B508EBD6-0F14-480C-A446-45A09052733B}.Debug|x86.Build.0 = Debug|Any CPU {B508EBD6-0F14-480C-A446-45A09052733B}.Release|Any CPU.ActiveCfg = Release|Any CPU {B508EBD6-0F14-480C-A446-45A09052733B}.Release|Any CPU.Build.0 = Release|Any CPU + {B508EBD6-0F14-480C-A446-45A09052733B}.Release|x64.ActiveCfg = Release|Any CPU + {B508EBD6-0F14-480C-A446-45A09052733B}.Release|x64.Build.0 = Release|Any CPU + {B508EBD6-0F14-480C-A446-45A09052733B}.Release|x86.ActiveCfg = Release|Any CPU + {B508EBD6-0F14-480C-A446-45A09052733B}.Release|x86.Build.0 = Release|Any CPU {E070F694-335D-4D96-8951-F41D0A5F2A8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E070F694-335D-4D96-8951-F41D0A5F2A8B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E070F694-335D-4D96-8951-F41D0A5F2A8B}.Debug|x64.ActiveCfg = Debug|Any CPU + {E070F694-335D-4D96-8951-F41D0A5F2A8B}.Debug|x64.Build.0 = Debug|Any CPU + {E070F694-335D-4D96-8951-F41D0A5F2A8B}.Debug|x86.ActiveCfg = Debug|Any CPU + {E070F694-335D-4D96-8951-F41D0A5F2A8B}.Debug|x86.Build.0 = Debug|Any CPU {E070F694-335D-4D96-8951-F41D0A5F2A8B}.Release|Any CPU.ActiveCfg = Release|Any CPU {E070F694-335D-4D96-8951-F41D0A5F2A8B}.Release|Any CPU.Build.0 = Release|Any CPU + {E070F694-335D-4D96-8951-F41D0A5F2A8B}.Release|x64.ActiveCfg = Release|Any CPU + {E070F694-335D-4D96-8951-F41D0A5F2A8B}.Release|x64.Build.0 = Release|Any CPU + {E070F694-335D-4D96-8951-F41D0A5F2A8B}.Release|x86.ActiveCfg = Release|Any CPU + {E070F694-335D-4D96-8951-F41D0A5F2A8B}.Release|x86.Build.0 = Release|Any CPU {097D5F6F-D26F-4BFB-9074-FA52577EB442}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {097D5F6F-D26F-4BFB-9074-FA52577EB442}.Debug|Any CPU.Build.0 = Debug|Any CPU + {097D5F6F-D26F-4BFB-9074-FA52577EB442}.Debug|x64.ActiveCfg = Debug|Any CPU + {097D5F6F-D26F-4BFB-9074-FA52577EB442}.Debug|x64.Build.0 = Debug|Any CPU + {097D5F6F-D26F-4BFB-9074-FA52577EB442}.Debug|x86.ActiveCfg = Debug|Any CPU + {097D5F6F-D26F-4BFB-9074-FA52577EB442}.Debug|x86.Build.0 = Debug|Any CPU {097D5F6F-D26F-4BFB-9074-FA52577EB442}.Release|Any CPU.ActiveCfg = Release|Any CPU {097D5F6F-D26F-4BFB-9074-FA52577EB442}.Release|Any CPU.Build.0 = Release|Any CPU + {097D5F6F-D26F-4BFB-9074-FA52577EB442}.Release|x64.ActiveCfg = Release|Any CPU + {097D5F6F-D26F-4BFB-9074-FA52577EB442}.Release|x64.Build.0 = Release|Any CPU + {097D5F6F-D26F-4BFB-9074-FA52577EB442}.Release|x86.ActiveCfg = Release|Any CPU + {097D5F6F-D26F-4BFB-9074-FA52577EB442}.Release|x86.Build.0 = Release|Any CPU {5764B1AA-66B8-43AE-9E0D-0B3B71714B92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5764B1AA-66B8-43AE-9E0D-0B3B71714B92}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5764B1AA-66B8-43AE-9E0D-0B3B71714B92}.Debug|x64.ActiveCfg = Debug|Any CPU + {5764B1AA-66B8-43AE-9E0D-0B3B71714B92}.Debug|x64.Build.0 = Debug|Any CPU + {5764B1AA-66B8-43AE-9E0D-0B3B71714B92}.Debug|x86.ActiveCfg = Debug|Any CPU + {5764B1AA-66B8-43AE-9E0D-0B3B71714B92}.Debug|x86.Build.0 = Debug|Any CPU {5764B1AA-66B8-43AE-9E0D-0B3B71714B92}.Release|Any CPU.ActiveCfg = Release|Any CPU {5764B1AA-66B8-43AE-9E0D-0B3B71714B92}.Release|Any CPU.Build.0 = Release|Any CPU + {5764B1AA-66B8-43AE-9E0D-0B3B71714B92}.Release|x64.ActiveCfg = Release|Any CPU + {5764B1AA-66B8-43AE-9E0D-0B3B71714B92}.Release|x64.Build.0 = Release|Any CPU + {5764B1AA-66B8-43AE-9E0D-0B3B71714B92}.Release|x86.ActiveCfg = Release|Any CPU + {5764B1AA-66B8-43AE-9E0D-0B3B71714B92}.Release|x86.Build.0 = Release|Any CPU {3553BE3C-C188-460A-AC4C-D3D82DC0922A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3553BE3C-C188-460A-AC4C-D3D82DC0922A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3553BE3C-C188-460A-AC4C-D3D82DC0922A}.Debug|x64.ActiveCfg = Debug|Any CPU + {3553BE3C-C188-460A-AC4C-D3D82DC0922A}.Debug|x64.Build.0 = Debug|Any CPU + {3553BE3C-C188-460A-AC4C-D3D82DC0922A}.Debug|x86.ActiveCfg = Debug|Any CPU + {3553BE3C-C188-460A-AC4C-D3D82DC0922A}.Debug|x86.Build.0 = Debug|Any CPU {3553BE3C-C188-460A-AC4C-D3D82DC0922A}.Release|Any CPU.ActiveCfg = Release|Any CPU {3553BE3C-C188-460A-AC4C-D3D82DC0922A}.Release|Any CPU.Build.0 = Release|Any CPU + {3553BE3C-C188-460A-AC4C-D3D82DC0922A}.Release|x64.ActiveCfg = Release|Any CPU + {3553BE3C-C188-460A-AC4C-D3D82DC0922A}.Release|x64.Build.0 = Release|Any CPU + {3553BE3C-C188-460A-AC4C-D3D82DC0922A}.Release|x86.ActiveCfg = Release|Any CPU + {3553BE3C-C188-460A-AC4C-D3D82DC0922A}.Release|x86.Build.0 = Release|Any CPU {A6AA3F39-AB3E-4475-B3E2-D53549CBDA49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A6AA3F39-AB3E-4475-B3E2-D53549CBDA49}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A6AA3F39-AB3E-4475-B3E2-D53549CBDA49}.Debug|x64.ActiveCfg = Debug|Any CPU + {A6AA3F39-AB3E-4475-B3E2-D53549CBDA49}.Debug|x64.Build.0 = Debug|Any CPU + {A6AA3F39-AB3E-4475-B3E2-D53549CBDA49}.Debug|x86.ActiveCfg = Debug|Any CPU + {A6AA3F39-AB3E-4475-B3E2-D53549CBDA49}.Debug|x86.Build.0 = Debug|Any CPU {A6AA3F39-AB3E-4475-B3E2-D53549CBDA49}.Release|Any CPU.ActiveCfg = Release|Any CPU {A6AA3F39-AB3E-4475-B3E2-D53549CBDA49}.Release|Any CPU.Build.0 = Release|Any CPU + {A6AA3F39-AB3E-4475-B3E2-D53549CBDA49}.Release|x64.ActiveCfg = Release|Any CPU + {A6AA3F39-AB3E-4475-B3E2-D53549CBDA49}.Release|x64.Build.0 = Release|Any CPU + {A6AA3F39-AB3E-4475-B3E2-D53549CBDA49}.Release|x86.ActiveCfg = Release|Any CPU + {A6AA3F39-AB3E-4475-B3E2-D53549CBDA49}.Release|x86.Build.0 = Release|Any CPU {97A47B0B-9D3B-4CF0-A62C-650F2F211A59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {97A47B0B-9D3B-4CF0-A62C-650F2F211A59}.Debug|Any CPU.Build.0 = Debug|Any CPU + {97A47B0B-9D3B-4CF0-A62C-650F2F211A59}.Debug|x64.ActiveCfg = Debug|Any CPU + {97A47B0B-9D3B-4CF0-A62C-650F2F211A59}.Debug|x64.Build.0 = Debug|Any CPU + {97A47B0B-9D3B-4CF0-A62C-650F2F211A59}.Debug|x86.ActiveCfg = Debug|Any CPU + {97A47B0B-9D3B-4CF0-A62C-650F2F211A59}.Debug|x86.Build.0 = Debug|Any CPU {97A47B0B-9D3B-4CF0-A62C-650F2F211A59}.Release|Any CPU.ActiveCfg = Release|Any CPU {97A47B0B-9D3B-4CF0-A62C-650F2F211A59}.Release|Any CPU.Build.0 = Release|Any CPU + {97A47B0B-9D3B-4CF0-A62C-650F2F211A59}.Release|x64.ActiveCfg = Release|Any CPU + {97A47B0B-9D3B-4CF0-A62C-650F2F211A59}.Release|x64.Build.0 = Release|Any CPU + {97A47B0B-9D3B-4CF0-A62C-650F2F211A59}.Release|x86.ActiveCfg = Release|Any CPU + {97A47B0B-9D3B-4CF0-A62C-650F2F211A59}.Release|x86.Build.0 = Release|Any CPU {5BB15C36-BAF7-44F6-BF85-C533B8B47862}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5BB15C36-BAF7-44F6-BF85-C533B8B47862}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5BB15C36-BAF7-44F6-BF85-C533B8B47862}.Debug|x64.ActiveCfg = Debug|Any CPU + {5BB15C36-BAF7-44F6-BF85-C533B8B47862}.Debug|x64.Build.0 = Debug|Any CPU + {5BB15C36-BAF7-44F6-BF85-C533B8B47862}.Debug|x86.ActiveCfg = Debug|Any CPU + {5BB15C36-BAF7-44F6-BF85-C533B8B47862}.Debug|x86.Build.0 = Debug|Any CPU {5BB15C36-BAF7-44F6-BF85-C533B8B47862}.Release|Any CPU.ActiveCfg = Release|Any CPU {5BB15C36-BAF7-44F6-BF85-C533B8B47862}.Release|Any CPU.Build.0 = Release|Any CPU + {5BB15C36-BAF7-44F6-BF85-C533B8B47862}.Release|x64.ActiveCfg = Release|Any CPU + {5BB15C36-BAF7-44F6-BF85-C533B8B47862}.Release|x64.Build.0 = Release|Any CPU + {5BB15C36-BAF7-44F6-BF85-C533B8B47862}.Release|x86.ActiveCfg = Release|Any CPU + {5BB15C36-BAF7-44F6-BF85-C533B8B47862}.Release|x86.Build.0 = Release|Any CPU {6CD90C22-0F79-4D61-8DCE-5BE22C1304C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6CD90C22-0F79-4D61-8DCE-5BE22C1304C4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6CD90C22-0F79-4D61-8DCE-5BE22C1304C4}.Debug|x64.ActiveCfg = Debug|Any CPU + {6CD90C22-0F79-4D61-8DCE-5BE22C1304C4}.Debug|x64.Build.0 = Debug|Any CPU + {6CD90C22-0F79-4D61-8DCE-5BE22C1304C4}.Debug|x86.ActiveCfg = Debug|Any CPU + {6CD90C22-0F79-4D61-8DCE-5BE22C1304C4}.Debug|x86.Build.0 = Debug|Any CPU {6CD90C22-0F79-4D61-8DCE-5BE22C1304C4}.Release|Any CPU.ActiveCfg = Release|Any CPU {6CD90C22-0F79-4D61-8DCE-5BE22C1304C4}.Release|Any CPU.Build.0 = Release|Any CPU + {6CD90C22-0F79-4D61-8DCE-5BE22C1304C4}.Release|x64.ActiveCfg = Release|Any CPU + {6CD90C22-0F79-4D61-8DCE-5BE22C1304C4}.Release|x64.Build.0 = Release|Any CPU + {6CD90C22-0F79-4D61-8DCE-5BE22C1304C4}.Release|x86.ActiveCfg = Release|Any CPU + {6CD90C22-0F79-4D61-8DCE-5BE22C1304C4}.Release|x86.Build.0 = Release|Any CPU {AE9804A8-906C-4C3B-B2A8-41F4D3269C19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AE9804A8-906C-4C3B-B2A8-41F4D3269C19}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AE9804A8-906C-4C3B-B2A8-41F4D3269C19}.Debug|x64.ActiveCfg = Debug|Any CPU + {AE9804A8-906C-4C3B-B2A8-41F4D3269C19}.Debug|x64.Build.0 = Debug|Any CPU + {AE9804A8-906C-4C3B-B2A8-41F4D3269C19}.Debug|x86.ActiveCfg = Debug|Any CPU + {AE9804A8-906C-4C3B-B2A8-41F4D3269C19}.Debug|x86.Build.0 = Debug|Any CPU {AE9804A8-906C-4C3B-B2A8-41F4D3269C19}.Release|Any CPU.ActiveCfg = Release|Any CPU {AE9804A8-906C-4C3B-B2A8-41F4D3269C19}.Release|Any CPU.Build.0 = Release|Any CPU + {AE9804A8-906C-4C3B-B2A8-41F4D3269C19}.Release|x64.ActiveCfg = Release|Any CPU + {AE9804A8-906C-4C3B-B2A8-41F4D3269C19}.Release|x64.Build.0 = Release|Any CPU + {AE9804A8-906C-4C3B-B2A8-41F4D3269C19}.Release|x86.ActiveCfg = Release|Any CPU + {AE9804A8-906C-4C3B-B2A8-41F4D3269C19}.Release|x86.Build.0 = Release|Any CPU {CA680984-0D3A-40E5-88FD-E2A125C6A126}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CA680984-0D3A-40E5-88FD-E2A125C6A126}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CA680984-0D3A-40E5-88FD-E2A125C6A126}.Debug|x64.ActiveCfg = Debug|Any CPU + {CA680984-0D3A-40E5-88FD-E2A125C6A126}.Debug|x64.Build.0 = Debug|Any CPU + {CA680984-0D3A-40E5-88FD-E2A125C6A126}.Debug|x86.ActiveCfg = Debug|Any CPU + {CA680984-0D3A-40E5-88FD-E2A125C6A126}.Debug|x86.Build.0 = Debug|Any CPU {CA680984-0D3A-40E5-88FD-E2A125C6A126}.Release|Any CPU.ActiveCfg = Release|Any CPU {CA680984-0D3A-40E5-88FD-E2A125C6A126}.Release|Any CPU.Build.0 = Release|Any CPU + {CA680984-0D3A-40E5-88FD-E2A125C6A126}.Release|x64.ActiveCfg = Release|Any CPU + {CA680984-0D3A-40E5-88FD-E2A125C6A126}.Release|x64.Build.0 = Release|Any CPU + {CA680984-0D3A-40E5-88FD-E2A125C6A126}.Release|x86.ActiveCfg = Release|Any CPU + {CA680984-0D3A-40E5-88FD-E2A125C6A126}.Release|x86.Build.0 = Release|Any CPU {EDEEEAED-1856-4408-BAA6-A83E1B497B2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {EDEEEAED-1856-4408-BAA6-A83E1B497B2A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EDEEEAED-1856-4408-BAA6-A83E1B497B2A}.Debug|x64.ActiveCfg = Debug|Any CPU + {EDEEEAED-1856-4408-BAA6-A83E1B497B2A}.Debug|x64.Build.0 = Debug|Any CPU + {EDEEEAED-1856-4408-BAA6-A83E1B497B2A}.Debug|x86.ActiveCfg = Debug|Any CPU + {EDEEEAED-1856-4408-BAA6-A83E1B497B2A}.Debug|x86.Build.0 = Debug|Any CPU {EDEEEAED-1856-4408-BAA6-A83E1B497B2A}.Release|Any CPU.ActiveCfg = Release|Any CPU {EDEEEAED-1856-4408-BAA6-A83E1B497B2A}.Release|Any CPU.Build.0 = Release|Any CPU + {EDEEEAED-1856-4408-BAA6-A83E1B497B2A}.Release|x64.ActiveCfg = Release|Any CPU + {EDEEEAED-1856-4408-BAA6-A83E1B497B2A}.Release|x64.Build.0 = Release|Any CPU + {EDEEEAED-1856-4408-BAA6-A83E1B497B2A}.Release|x86.ActiveCfg = Release|Any CPU + {EDEEEAED-1856-4408-BAA6-A83E1B497B2A}.Release|x86.Build.0 = Release|Any CPU {9BD12D26-AD9B-4C76-A97F-7A89B7276ABE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9BD12D26-AD9B-4C76-A97F-7A89B7276ABE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9BD12D26-AD9B-4C76-A97F-7A89B7276ABE}.Debug|x64.ActiveCfg = Debug|Any CPU + {9BD12D26-AD9B-4C76-A97F-7A89B7276ABE}.Debug|x64.Build.0 = Debug|Any CPU + {9BD12D26-AD9B-4C76-A97F-7A89B7276ABE}.Debug|x86.ActiveCfg = Debug|Any CPU + {9BD12D26-AD9B-4C76-A97F-7A89B7276ABE}.Debug|x86.Build.0 = Debug|Any CPU {9BD12D26-AD9B-4C76-A97F-7A89B7276ABE}.Release|Any CPU.ActiveCfg = Release|Any CPU {9BD12D26-AD9B-4C76-A97F-7A89B7276ABE}.Release|Any CPU.Build.0 = Release|Any CPU + {9BD12D26-AD9B-4C76-A97F-7A89B7276ABE}.Release|x64.ActiveCfg = Release|Any CPU + {9BD12D26-AD9B-4C76-A97F-7A89B7276ABE}.Release|x64.Build.0 = Release|Any CPU + {9BD12D26-AD9B-4C76-A97F-7A89B7276ABE}.Release|x86.ActiveCfg = Release|Any CPU + {9BD12D26-AD9B-4C76-A97F-7A89B7276ABE}.Release|x86.Build.0 = Release|Any CPU {F2DFB0FE-DF35-4D94-9CC9-43212B1D6F93}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F2DFB0FE-DF35-4D94-9CC9-43212B1D6F93}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F2DFB0FE-DF35-4D94-9CC9-43212B1D6F93}.Debug|x64.ActiveCfg = Debug|Any CPU + {F2DFB0FE-DF35-4D94-9CC9-43212B1D6F93}.Debug|x64.Build.0 = Debug|Any CPU + {F2DFB0FE-DF35-4D94-9CC9-43212B1D6F93}.Debug|x86.ActiveCfg = Debug|Any CPU + {F2DFB0FE-DF35-4D94-9CC9-43212B1D6F93}.Debug|x86.Build.0 = Debug|Any CPU {F2DFB0FE-DF35-4D94-9CC9-43212B1D6F93}.Release|Any CPU.ActiveCfg = Release|Any CPU {F2DFB0FE-DF35-4D94-9CC9-43212B1D6F93}.Release|Any CPU.Build.0 = Release|Any CPU + {F2DFB0FE-DF35-4D94-9CC9-43212B1D6F93}.Release|x64.ActiveCfg = Release|Any CPU + {F2DFB0FE-DF35-4D94-9CC9-43212B1D6F93}.Release|x64.Build.0 = Release|Any CPU + {F2DFB0FE-DF35-4D94-9CC9-43212B1D6F93}.Release|x86.ActiveCfg = Release|Any CPU + {F2DFB0FE-DF35-4D94-9CC9-43212B1D6F93}.Release|x86.Build.0 = Release|Any CPU {FB21FAC7-09F7-4F68-910C-224EE7150B35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FB21FAC7-09F7-4F68-910C-224EE7150B35}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FB21FAC7-09F7-4F68-910C-224EE7150B35}.Debug|x64.ActiveCfg = Debug|Any CPU + {FB21FAC7-09F7-4F68-910C-224EE7150B35}.Debug|x64.Build.0 = Debug|Any CPU + {FB21FAC7-09F7-4F68-910C-224EE7150B35}.Debug|x86.ActiveCfg = Debug|Any CPU + {FB21FAC7-09F7-4F68-910C-224EE7150B35}.Debug|x86.Build.0 = Debug|Any CPU {FB21FAC7-09F7-4F68-910C-224EE7150B35}.Release|Any CPU.ActiveCfg = Release|Any CPU {FB21FAC7-09F7-4F68-910C-224EE7150B35}.Release|Any CPU.Build.0 = Release|Any CPU + {FB21FAC7-09F7-4F68-910C-224EE7150B35}.Release|x64.ActiveCfg = Release|Any CPU + {FB21FAC7-09F7-4F68-910C-224EE7150B35}.Release|x64.Build.0 = Release|Any CPU + {FB21FAC7-09F7-4F68-910C-224EE7150B35}.Release|x86.ActiveCfg = Release|Any CPU + {FB21FAC7-09F7-4F68-910C-224EE7150B35}.Release|x86.Build.0 = Release|Any CPU {667E2F91-3004-4409-B6B8-9216EAFC44CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {667E2F91-3004-4409-B6B8-9216EAFC44CF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {667E2F91-3004-4409-B6B8-9216EAFC44CF}.Debug|x64.ActiveCfg = Debug|Any CPU + {667E2F91-3004-4409-B6B8-9216EAFC44CF}.Debug|x64.Build.0 = Debug|Any CPU + {667E2F91-3004-4409-B6B8-9216EAFC44CF}.Debug|x86.ActiveCfg = Debug|Any CPU + {667E2F91-3004-4409-B6B8-9216EAFC44CF}.Debug|x86.Build.0 = Debug|Any CPU {667E2F91-3004-4409-B6B8-9216EAFC44CF}.Release|Any CPU.ActiveCfg = Release|Any CPU {667E2F91-3004-4409-B6B8-9216EAFC44CF}.Release|Any CPU.Build.0 = Release|Any CPU + {667E2F91-3004-4409-B6B8-9216EAFC44CF}.Release|x64.ActiveCfg = Release|Any CPU + {667E2F91-3004-4409-B6B8-9216EAFC44CF}.Release|x64.Build.0 = Release|Any CPU + {667E2F91-3004-4409-B6B8-9216EAFC44CF}.Release|x86.ActiveCfg = Release|Any CPU + {667E2F91-3004-4409-B6B8-9216EAFC44CF}.Release|x86.Build.0 = Release|Any CPU {77176EC6-C586-47B1-BB72-533327F9E7BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {77176EC6-C586-47B1-BB72-533327F9E7BE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {77176EC6-C586-47B1-BB72-533327F9E7BE}.Debug|x64.ActiveCfg = Debug|Any CPU + {77176EC6-C586-47B1-BB72-533327F9E7BE}.Debug|x64.Build.0 = Debug|Any CPU + {77176EC6-C586-47B1-BB72-533327F9E7BE}.Debug|x86.ActiveCfg = Debug|Any CPU + {77176EC6-C586-47B1-BB72-533327F9E7BE}.Debug|x86.Build.0 = Debug|Any CPU {77176EC6-C586-47B1-BB72-533327F9E7BE}.Release|Any CPU.ActiveCfg = Release|Any CPU {77176EC6-C586-47B1-BB72-533327F9E7BE}.Release|Any CPU.Build.0 = Release|Any CPU + {77176EC6-C586-47B1-BB72-533327F9E7BE}.Release|x64.ActiveCfg = Release|Any CPU + {77176EC6-C586-47B1-BB72-533327F9E7BE}.Release|x64.Build.0 = Release|Any CPU + {77176EC6-C586-47B1-BB72-533327F9E7BE}.Release|x86.ActiveCfg = Release|Any CPU + {77176EC6-C586-47B1-BB72-533327F9E7BE}.Release|x86.Build.0 = Release|Any CPU {030CB614-6148-4863-A39A-1251728DE51D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {030CB614-6148-4863-A39A-1251728DE51D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {030CB614-6148-4863-A39A-1251728DE51D}.Debug|x64.ActiveCfg = Debug|Any CPU + {030CB614-6148-4863-A39A-1251728DE51D}.Debug|x64.Build.0 = Debug|Any CPU + {030CB614-6148-4863-A39A-1251728DE51D}.Debug|x86.ActiveCfg = Debug|Any CPU + {030CB614-6148-4863-A39A-1251728DE51D}.Debug|x86.Build.0 = Debug|Any CPU {030CB614-6148-4863-A39A-1251728DE51D}.Release|Any CPU.ActiveCfg = Release|Any CPU {030CB614-6148-4863-A39A-1251728DE51D}.Release|Any CPU.Build.0 = Release|Any CPU + {030CB614-6148-4863-A39A-1251728DE51D}.Release|x64.ActiveCfg = Release|Any CPU + {030CB614-6148-4863-A39A-1251728DE51D}.Release|x64.Build.0 = Release|Any CPU + {030CB614-6148-4863-A39A-1251728DE51D}.Release|x86.ActiveCfg = Release|Any CPU + {030CB614-6148-4863-A39A-1251728DE51D}.Release|x86.Build.0 = Release|Any CPU {5AECC3FC-7374-4534-A305-397E3290E573}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5AECC3FC-7374-4534-A305-397E3290E573}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5AECC3FC-7374-4534-A305-397E3290E573}.Debug|x64.ActiveCfg = Debug|Any CPU + {5AECC3FC-7374-4534-A305-397E3290E573}.Debug|x64.Build.0 = Debug|Any CPU + {5AECC3FC-7374-4534-A305-397E3290E573}.Debug|x86.ActiveCfg = Debug|Any CPU + {5AECC3FC-7374-4534-A305-397E3290E573}.Debug|x86.Build.0 = Debug|Any CPU {5AECC3FC-7374-4534-A305-397E3290E573}.Release|Any CPU.ActiveCfg = Release|Any CPU {5AECC3FC-7374-4534-A305-397E3290E573}.Release|Any CPU.Build.0 = Release|Any CPU + {5AECC3FC-7374-4534-A305-397E3290E573}.Release|x64.ActiveCfg = Release|Any CPU + {5AECC3FC-7374-4534-A305-397E3290E573}.Release|x64.Build.0 = Release|Any CPU + {5AECC3FC-7374-4534-A305-397E3290E573}.Release|x86.ActiveCfg = Release|Any CPU + {5AECC3FC-7374-4534-A305-397E3290E573}.Release|x86.Build.0 = Release|Any CPU {CE5D4439-5B3C-4E97-B7E3-EB8610AEA3EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CE5D4439-5B3C-4E97-B7E3-EB8610AEA3EF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CE5D4439-5B3C-4E97-B7E3-EB8610AEA3EF}.Debug|x64.ActiveCfg = Debug|Any CPU + {CE5D4439-5B3C-4E97-B7E3-EB8610AEA3EF}.Debug|x64.Build.0 = Debug|Any CPU + {CE5D4439-5B3C-4E97-B7E3-EB8610AEA3EF}.Debug|x86.ActiveCfg = Debug|Any CPU + {CE5D4439-5B3C-4E97-B7E3-EB8610AEA3EF}.Debug|x86.Build.0 = Debug|Any CPU {CE5D4439-5B3C-4E97-B7E3-EB8610AEA3EF}.Release|Any CPU.ActiveCfg = Release|Any CPU {CE5D4439-5B3C-4E97-B7E3-EB8610AEA3EF}.Release|Any CPU.Build.0 = Release|Any CPU + {CE5D4439-5B3C-4E97-B7E3-EB8610AEA3EF}.Release|x64.ActiveCfg = Release|Any CPU + {CE5D4439-5B3C-4E97-B7E3-EB8610AEA3EF}.Release|x64.Build.0 = Release|Any CPU + {CE5D4439-5B3C-4E97-B7E3-EB8610AEA3EF}.Release|x86.ActiveCfg = Release|Any CPU + {CE5D4439-5B3C-4E97-B7E3-EB8610AEA3EF}.Release|x86.Build.0 = Release|Any CPU {A05D1519-6A82-498F-B7C9-3D14E08D35CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A05D1519-6A82-498F-B7C9-3D14E08D35CA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A05D1519-6A82-498F-B7C9-3D14E08D35CA}.Debug|x64.ActiveCfg = Debug|Any CPU + {A05D1519-6A82-498F-B7C9-3D14E08D35CA}.Debug|x64.Build.0 = Debug|Any CPU + {A05D1519-6A82-498F-B7C9-3D14E08D35CA}.Debug|x86.ActiveCfg = Debug|Any CPU + {A05D1519-6A82-498F-B7C9-3D14E08D35CA}.Debug|x86.Build.0 = Debug|Any CPU {A05D1519-6A82-498F-B7C9-3D14E08D35CA}.Release|Any CPU.ActiveCfg = Release|Any CPU {A05D1519-6A82-498F-B7C9-3D14E08D35CA}.Release|Any CPU.Build.0 = Release|Any CPU + {A05D1519-6A82-498F-B7C9-3D14E08D35CA}.Release|x64.ActiveCfg = Release|Any CPU + {A05D1519-6A82-498F-B7C9-3D14E08D35CA}.Release|x64.Build.0 = Release|Any CPU + {A05D1519-6A82-498F-B7C9-3D14E08D35CA}.Release|x86.ActiveCfg = Release|Any CPU + {A05D1519-6A82-498F-B7C9-3D14E08D35CA}.Release|x86.Build.0 = Release|Any CPU {5A93F96B-4D0E-479D-B540-29678A0998FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5A93F96B-4D0E-479D-B540-29678A0998FA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5A93F96B-4D0E-479D-B540-29678A0998FA}.Debug|x64.ActiveCfg = Debug|Any CPU + {5A93F96B-4D0E-479D-B540-29678A0998FA}.Debug|x64.Build.0 = Debug|Any CPU + {5A93F96B-4D0E-479D-B540-29678A0998FA}.Debug|x86.ActiveCfg = Debug|Any CPU + {5A93F96B-4D0E-479D-B540-29678A0998FA}.Debug|x86.Build.0 = Debug|Any CPU {5A93F96B-4D0E-479D-B540-29678A0998FA}.Release|Any CPU.ActiveCfg = Release|Any CPU {5A93F96B-4D0E-479D-B540-29678A0998FA}.Release|Any CPU.Build.0 = Release|Any CPU + {5A93F96B-4D0E-479D-B540-29678A0998FA}.Release|x64.ActiveCfg = Release|Any CPU + {5A93F96B-4D0E-479D-B540-29678A0998FA}.Release|x64.Build.0 = Release|Any CPU + {5A93F96B-4D0E-479D-B540-29678A0998FA}.Release|x86.ActiveCfg = Release|Any CPU + {5A93F96B-4D0E-479D-B540-29678A0998FA}.Release|x86.Build.0 = Release|Any CPU {E958E875-8DDE-4B25-BE3A-C0760EC89376}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E958E875-8DDE-4B25-BE3A-C0760EC89376}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E958E875-8DDE-4B25-BE3A-C0760EC89376}.Debug|x64.ActiveCfg = Debug|Any CPU + {E958E875-8DDE-4B25-BE3A-C0760EC89376}.Debug|x64.Build.0 = Debug|Any CPU + {E958E875-8DDE-4B25-BE3A-C0760EC89376}.Debug|x86.ActiveCfg = Debug|Any CPU + {E958E875-8DDE-4B25-BE3A-C0760EC89376}.Debug|x86.Build.0 = Debug|Any CPU {E958E875-8DDE-4B25-BE3A-C0760EC89376}.Release|Any CPU.ActiveCfg = Release|Any CPU {E958E875-8DDE-4B25-BE3A-C0760EC89376}.Release|Any CPU.Build.0 = Release|Any CPU + {E958E875-8DDE-4B25-BE3A-C0760EC89376}.Release|x64.ActiveCfg = Release|Any CPU + {E958E875-8DDE-4B25-BE3A-C0760EC89376}.Release|x64.Build.0 = Release|Any CPU + {E958E875-8DDE-4B25-BE3A-C0760EC89376}.Release|x86.ActiveCfg = Release|Any CPU + {E958E875-8DDE-4B25-BE3A-C0760EC89376}.Release|x86.Build.0 = Release|Any CPU {38AAD849-B59C-4011-B309-3E9F291E9B9F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {38AAD849-B59C-4011-B309-3E9F291E9B9F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {38AAD849-B59C-4011-B309-3E9F291E9B9F}.Debug|x64.ActiveCfg = Debug|Any CPU + {38AAD849-B59C-4011-B309-3E9F291E9B9F}.Debug|x64.Build.0 = Debug|Any CPU + {38AAD849-B59C-4011-B309-3E9F291E9B9F}.Debug|x86.ActiveCfg = Debug|Any CPU + {38AAD849-B59C-4011-B309-3E9F291E9B9F}.Debug|x86.Build.0 = Debug|Any CPU {38AAD849-B59C-4011-B309-3E9F291E9B9F}.Release|Any CPU.ActiveCfg = Release|Any CPU {38AAD849-B59C-4011-B309-3E9F291E9B9F}.Release|Any CPU.Build.0 = Release|Any CPU + {38AAD849-B59C-4011-B309-3E9F291E9B9F}.Release|x64.ActiveCfg = Release|Any CPU + {38AAD849-B59C-4011-B309-3E9F291E9B9F}.Release|x64.Build.0 = Release|Any CPU + {38AAD849-B59C-4011-B309-3E9F291E9B9F}.Release|x86.ActiveCfg = Release|Any CPU + {38AAD849-B59C-4011-B309-3E9F291E9B9F}.Release|x86.Build.0 = Release|Any CPU {2D6EB9E0-C5BF-4BA4-B69F-0D2B5A0E36D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2D6EB9E0-C5BF-4BA4-B69F-0D2B5A0E36D5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2D6EB9E0-C5BF-4BA4-B69F-0D2B5A0E36D5}.Debug|x64.ActiveCfg = Debug|Any CPU + {2D6EB9E0-C5BF-4BA4-B69F-0D2B5A0E36D5}.Debug|x64.Build.0 = Debug|Any CPU + {2D6EB9E0-C5BF-4BA4-B69F-0D2B5A0E36D5}.Debug|x86.ActiveCfg = Debug|Any CPU + {2D6EB9E0-C5BF-4BA4-B69F-0D2B5A0E36D5}.Debug|x86.Build.0 = Debug|Any CPU {2D6EB9E0-C5BF-4BA4-B69F-0D2B5A0E36D5}.Release|Any CPU.ActiveCfg = Release|Any CPU {2D6EB9E0-C5BF-4BA4-B69F-0D2B5A0E36D5}.Release|Any CPU.Build.0 = Release|Any CPU + {2D6EB9E0-C5BF-4BA4-B69F-0D2B5A0E36D5}.Release|x64.ActiveCfg = Release|Any CPU + {2D6EB9E0-C5BF-4BA4-B69F-0D2B5A0E36D5}.Release|x64.Build.0 = Release|Any CPU + {2D6EB9E0-C5BF-4BA4-B69F-0D2B5A0E36D5}.Release|x86.ActiveCfg = Release|Any CPU + {2D6EB9E0-C5BF-4BA4-B69F-0D2B5A0E36D5}.Release|x86.Build.0 = Release|Any CPU {AD9F25C7-7BBD-459A-B3EF-1BE75C25E80A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AD9F25C7-7BBD-459A-B3EF-1BE75C25E80A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AD9F25C7-7BBD-459A-B3EF-1BE75C25E80A}.Debug|x64.ActiveCfg = Debug|Any CPU + {AD9F25C7-7BBD-459A-B3EF-1BE75C25E80A}.Debug|x64.Build.0 = Debug|Any CPU + {AD9F25C7-7BBD-459A-B3EF-1BE75C25E80A}.Debug|x86.ActiveCfg = Debug|Any CPU + {AD9F25C7-7BBD-459A-B3EF-1BE75C25E80A}.Debug|x86.Build.0 = Debug|Any CPU {AD9F25C7-7BBD-459A-B3EF-1BE75C25E80A}.Release|Any CPU.ActiveCfg = Release|Any CPU {AD9F25C7-7BBD-459A-B3EF-1BE75C25E80A}.Release|Any CPU.Build.0 = Release|Any CPU + {AD9F25C7-7BBD-459A-B3EF-1BE75C25E80A}.Release|x64.ActiveCfg = Release|Any CPU + {AD9F25C7-7BBD-459A-B3EF-1BE75C25E80A}.Release|x64.Build.0 = Release|Any CPU + {AD9F25C7-7BBD-459A-B3EF-1BE75C25E80A}.Release|x86.ActiveCfg = Release|Any CPU + {AD9F25C7-7BBD-459A-B3EF-1BE75C25E80A}.Release|x86.Build.0 = Release|Any CPU {FB92C5BC-BEAB-465F-8976-CF2866A2D699}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FB92C5BC-BEAB-465F-8976-CF2866A2D699}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FB92C5BC-BEAB-465F-8976-CF2866A2D699}.Debug|x64.ActiveCfg = Debug|Any CPU + {FB92C5BC-BEAB-465F-8976-CF2866A2D699}.Debug|x64.Build.0 = Debug|Any CPU + {FB92C5BC-BEAB-465F-8976-CF2866A2D699}.Debug|x86.ActiveCfg = Debug|Any CPU + {FB92C5BC-BEAB-465F-8976-CF2866A2D699}.Debug|x86.Build.0 = Debug|Any CPU {FB92C5BC-BEAB-465F-8976-CF2866A2D699}.Release|Any CPU.ActiveCfg = Release|Any CPU {FB92C5BC-BEAB-465F-8976-CF2866A2D699}.Release|Any CPU.Build.0 = Release|Any CPU + {FB92C5BC-BEAB-465F-8976-CF2866A2D699}.Release|x64.ActiveCfg = Release|Any CPU + {FB92C5BC-BEAB-465F-8976-CF2866A2D699}.Release|x64.Build.0 = Release|Any CPU + {FB92C5BC-BEAB-465F-8976-CF2866A2D699}.Release|x86.ActiveCfg = Release|Any CPU + {FB92C5BC-BEAB-465F-8976-CF2866A2D699}.Release|x86.Build.0 = Release|Any CPU {B46E7964-03F5-450E-BF16-C3518EBF36CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B46E7964-03F5-450E-BF16-C3518EBF36CB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B46E7964-03F5-450E-BF16-C3518EBF36CB}.Debug|x64.ActiveCfg = Debug|Any CPU + {B46E7964-03F5-450E-BF16-C3518EBF36CB}.Debug|x64.Build.0 = Debug|Any CPU + {B46E7964-03F5-450E-BF16-C3518EBF36CB}.Debug|x86.ActiveCfg = Debug|Any CPU + {B46E7964-03F5-450E-BF16-C3518EBF36CB}.Debug|x86.Build.0 = Debug|Any CPU {B46E7964-03F5-450E-BF16-C3518EBF36CB}.Release|Any CPU.ActiveCfg = Release|Any CPU {B46E7964-03F5-450E-BF16-C3518EBF36CB}.Release|Any CPU.Build.0 = Release|Any CPU + {B46E7964-03F5-450E-BF16-C3518EBF36CB}.Release|x64.ActiveCfg = Release|Any CPU + {B46E7964-03F5-450E-BF16-C3518EBF36CB}.Release|x64.Build.0 = Release|Any CPU + {B46E7964-03F5-450E-BF16-C3518EBF36CB}.Release|x86.ActiveCfg = Release|Any CPU + {B46E7964-03F5-450E-BF16-C3518EBF36CB}.Release|x86.Build.0 = Release|Any CPU {BD1FA767-AC6D-429D-8BC0-3C0B52AA11FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BD1FA767-AC6D-429D-8BC0-3C0B52AA11FF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BD1FA767-AC6D-429D-8BC0-3C0B52AA11FF}.Debug|x64.ActiveCfg = Debug|Any CPU + {BD1FA767-AC6D-429D-8BC0-3C0B52AA11FF}.Debug|x64.Build.0 = Debug|Any CPU + {BD1FA767-AC6D-429D-8BC0-3C0B52AA11FF}.Debug|x86.ActiveCfg = Debug|Any CPU + {BD1FA767-AC6D-429D-8BC0-3C0B52AA11FF}.Debug|x86.Build.0 = Debug|Any CPU {BD1FA767-AC6D-429D-8BC0-3C0B52AA11FF}.Release|Any CPU.ActiveCfg = Release|Any CPU {BD1FA767-AC6D-429D-8BC0-3C0B52AA11FF}.Release|Any CPU.Build.0 = Release|Any CPU + {BD1FA767-AC6D-429D-8BC0-3C0B52AA11FF}.Release|x64.ActiveCfg = Release|Any CPU + {BD1FA767-AC6D-429D-8BC0-3C0B52AA11FF}.Release|x64.Build.0 = Release|Any CPU + {BD1FA767-AC6D-429D-8BC0-3C0B52AA11FF}.Release|x86.ActiveCfg = Release|Any CPU + {BD1FA767-AC6D-429D-8BC0-3C0B52AA11FF}.Release|x86.Build.0 = Release|Any CPU {CB619F1E-B90C-4BCB-9DDA-A5A4F5967661}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CB619F1E-B90C-4BCB-9DDA-A5A4F5967661}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CB619F1E-B90C-4BCB-9DDA-A5A4F5967661}.Debug|x64.ActiveCfg = Debug|Any CPU + {CB619F1E-B90C-4BCB-9DDA-A5A4F5967661}.Debug|x64.Build.0 = Debug|Any CPU + {CB619F1E-B90C-4BCB-9DDA-A5A4F5967661}.Debug|x86.ActiveCfg = Debug|Any CPU + {CB619F1E-B90C-4BCB-9DDA-A5A4F5967661}.Debug|x86.Build.0 = Debug|Any CPU {CB619F1E-B90C-4BCB-9DDA-A5A4F5967661}.Release|Any CPU.ActiveCfg = Release|Any CPU {CB619F1E-B90C-4BCB-9DDA-A5A4F5967661}.Release|Any CPU.Build.0 = Release|Any CPU + {CB619F1E-B90C-4BCB-9DDA-A5A4F5967661}.Release|x64.ActiveCfg = Release|Any CPU + {CB619F1E-B90C-4BCB-9DDA-A5A4F5967661}.Release|x64.Build.0 = Release|Any CPU + {CB619F1E-B90C-4BCB-9DDA-A5A4F5967661}.Release|x86.ActiveCfg = Release|Any CPU + {CB619F1E-B90C-4BCB-9DDA-A5A4F5967661}.Release|x86.Build.0 = Release|Any CPU {1AD32297-630E-4DFB-B3E4-CAFCE993F27F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1AD32297-630E-4DFB-B3E4-CAFCE993F27F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1AD32297-630E-4DFB-B3E4-CAFCE993F27F}.Debug|x64.ActiveCfg = Debug|Any CPU + {1AD32297-630E-4DFB-B3E4-CAFCE993F27F}.Debug|x64.Build.0 = Debug|Any CPU + {1AD32297-630E-4DFB-B3E4-CAFCE993F27F}.Debug|x86.ActiveCfg = Debug|Any CPU + {1AD32297-630E-4DFB-B3E4-CAFCE993F27F}.Debug|x86.Build.0 = Debug|Any CPU {1AD32297-630E-4DFB-B3E4-CAFCE993F27F}.Release|Any CPU.ActiveCfg = Release|Any CPU {1AD32297-630E-4DFB-B3E4-CAFCE993F27F}.Release|Any CPU.Build.0 = Release|Any CPU + {1AD32297-630E-4DFB-B3E4-CAFCE993F27F}.Release|x64.ActiveCfg = Release|Any CPU + {1AD32297-630E-4DFB-B3E4-CAFCE993F27F}.Release|x64.Build.0 = Release|Any CPU + {1AD32297-630E-4DFB-B3E4-CAFCE993F27F}.Release|x86.ActiveCfg = Release|Any CPU + {1AD32297-630E-4DFB-B3E4-CAFCE993F27F}.Release|x86.Build.0 = Release|Any CPU {4FF7F075-2818-41E4-A88F-743417EA0A99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4FF7F075-2818-41E4-A88F-743417EA0A99}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4FF7F075-2818-41E4-A88F-743417EA0A99}.Debug|x64.ActiveCfg = Debug|Any CPU + {4FF7F075-2818-41E4-A88F-743417EA0A99}.Debug|x64.Build.0 = Debug|Any CPU + {4FF7F075-2818-41E4-A88F-743417EA0A99}.Debug|x86.ActiveCfg = Debug|Any CPU + {4FF7F075-2818-41E4-A88F-743417EA0A99}.Debug|x86.Build.0 = Debug|Any CPU {4FF7F075-2818-41E4-A88F-743417EA0A99}.Release|Any CPU.ActiveCfg = Release|Any CPU {4FF7F075-2818-41E4-A88F-743417EA0A99}.Release|Any CPU.Build.0 = Release|Any CPU + {4FF7F075-2818-41E4-A88F-743417EA0A99}.Release|x64.ActiveCfg = Release|Any CPU + {4FF7F075-2818-41E4-A88F-743417EA0A99}.Release|x64.Build.0 = Release|Any CPU + {4FF7F075-2818-41E4-A88F-743417EA0A99}.Release|x86.ActiveCfg = Release|Any CPU + {4FF7F075-2818-41E4-A88F-743417EA0A99}.Release|x86.Build.0 = Release|Any CPU {837E02A5-D1C0-4F60-AF93-71117BF3B6DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {837E02A5-D1C0-4F60-AF93-71117BF3B6DC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {837E02A5-D1C0-4F60-AF93-71117BF3B6DC}.Debug|x64.ActiveCfg = Debug|Any CPU + {837E02A5-D1C0-4F60-AF93-71117BF3B6DC}.Debug|x64.Build.0 = Debug|Any CPU + {837E02A5-D1C0-4F60-AF93-71117BF3B6DC}.Debug|x86.ActiveCfg = Debug|Any CPU + {837E02A5-D1C0-4F60-AF93-71117BF3B6DC}.Debug|x86.Build.0 = Debug|Any CPU {837E02A5-D1C0-4F60-AF93-71117BF3B6DC}.Release|Any CPU.ActiveCfg = Release|Any CPU {837E02A5-D1C0-4F60-AF93-71117BF3B6DC}.Release|Any CPU.Build.0 = Release|Any CPU + {837E02A5-D1C0-4F60-AF93-71117BF3B6DC}.Release|x64.ActiveCfg = Release|Any CPU + {837E02A5-D1C0-4F60-AF93-71117BF3B6DC}.Release|x64.Build.0 = Release|Any CPU + {837E02A5-D1C0-4F60-AF93-71117BF3B6DC}.Release|x86.ActiveCfg = Release|Any CPU + {837E02A5-D1C0-4F60-AF93-71117BF3B6DC}.Release|x86.Build.0 = Release|Any CPU {97CAEE0B-4020-4A86-97DA-9900FDF4DFC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {97CAEE0B-4020-4A86-97DA-9900FDF4DFC6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {97CAEE0B-4020-4A86-97DA-9900FDF4DFC6}.Debug|x64.ActiveCfg = Debug|Any CPU + {97CAEE0B-4020-4A86-97DA-9900FDF4DFC6}.Debug|x64.Build.0 = Debug|Any CPU + {97CAEE0B-4020-4A86-97DA-9900FDF4DFC6}.Debug|x86.ActiveCfg = Debug|Any CPU + {97CAEE0B-4020-4A86-97DA-9900FDF4DFC6}.Debug|x86.Build.0 = Debug|Any CPU {97CAEE0B-4020-4A86-97DA-9900FDF4DFC6}.Release|Any CPU.ActiveCfg = Release|Any CPU {97CAEE0B-4020-4A86-97DA-9900FDF4DFC6}.Release|Any CPU.Build.0 = Release|Any CPU + {97CAEE0B-4020-4A86-97DA-9900FDF4DFC6}.Release|x64.ActiveCfg = Release|Any CPU + {97CAEE0B-4020-4A86-97DA-9900FDF4DFC6}.Release|x64.Build.0 = Release|Any CPU + {97CAEE0B-4020-4A86-97DA-9900FDF4DFC6}.Release|x86.ActiveCfg = Release|Any CPU + {97CAEE0B-4020-4A86-97DA-9900FDF4DFC6}.Release|x86.Build.0 = Release|Any CPU {01A20A89-53A1-4D5B-B563-89E157718474}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {01A20A89-53A1-4D5B-B563-89E157718474}.Debug|Any CPU.Build.0 = Debug|Any CPU + {01A20A89-53A1-4D5B-B563-89E157718474}.Debug|x64.ActiveCfg = Debug|Any CPU + {01A20A89-53A1-4D5B-B563-89E157718474}.Debug|x64.Build.0 = Debug|Any CPU + {01A20A89-53A1-4D5B-B563-89E157718474}.Debug|x86.ActiveCfg = Debug|Any CPU + {01A20A89-53A1-4D5B-B563-89E157718474}.Debug|x86.Build.0 = Debug|Any CPU {01A20A89-53A1-4D5B-B563-89E157718474}.Release|Any CPU.ActiveCfg = Release|Any CPU {01A20A89-53A1-4D5B-B563-89E157718474}.Release|Any CPU.Build.0 = Release|Any CPU + {01A20A89-53A1-4D5B-B563-89E157718474}.Release|x64.ActiveCfg = Release|Any CPU + {01A20A89-53A1-4D5B-B563-89E157718474}.Release|x64.Build.0 = Release|Any CPU + {01A20A89-53A1-4D5B-B563-89E157718474}.Release|x86.ActiveCfg = Release|Any CPU + {01A20A89-53A1-4D5B-B563-89E157718474}.Release|x86.Build.0 = Release|Any CPU {7B14879F-156B-417E-ACA3-0B5A69CC2F39}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7B14879F-156B-417E-ACA3-0B5A69CC2F39}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7B14879F-156B-417E-ACA3-0B5A69CC2F39}.Debug|x64.ActiveCfg = Debug|Any CPU + {7B14879F-156B-417E-ACA3-0B5A69CC2F39}.Debug|x64.Build.0 = Debug|Any CPU + {7B14879F-156B-417E-ACA3-0B5A69CC2F39}.Debug|x86.ActiveCfg = Debug|Any CPU + {7B14879F-156B-417E-ACA3-0B5A69CC2F39}.Debug|x86.Build.0 = Debug|Any CPU {7B14879F-156B-417E-ACA3-0B5A69CC2F39}.Release|Any CPU.ActiveCfg = Release|Any CPU {7B14879F-156B-417E-ACA3-0B5A69CC2F39}.Release|Any CPU.Build.0 = Release|Any CPU + {7B14879F-156B-417E-ACA3-0B5A69CC2F39}.Release|x64.ActiveCfg = Release|Any CPU + {7B14879F-156B-417E-ACA3-0B5A69CC2F39}.Release|x64.Build.0 = Release|Any CPU + {7B14879F-156B-417E-ACA3-0B5A69CC2F39}.Release|x86.ActiveCfg = Release|Any CPU + {7B14879F-156B-417E-ACA3-0B5A69CC2F39}.Release|x86.Build.0 = Release|Any CPU {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|x64.ActiveCfg = Debug|Any CPU + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|x64.Build.0 = Debug|Any CPU + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|x86.ActiveCfg = Debug|Any CPU + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|x86.Build.0 = Debug|Any CPU {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|Any CPU.ActiveCfg = Release|Any CPU {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|Any CPU.Build.0 = Release|Any CPU + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|x64.ActiveCfg = Release|Any CPU + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|x64.Build.0 = Release|Any CPU + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|x86.ActiveCfg = Release|Any CPU + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|x86.Build.0 = Release|Any CPU + {C6948155-C70C-4C03-A733-0624402AEC97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C6948155-C70C-4C03-A733-0624402AEC97}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C6948155-C70C-4C03-A733-0624402AEC97}.Debug|x64.ActiveCfg = Debug|Any CPU + {C6948155-C70C-4C03-A733-0624402AEC97}.Debug|x64.Build.0 = Debug|Any CPU + {C6948155-C70C-4C03-A733-0624402AEC97}.Debug|x86.ActiveCfg = Debug|Any CPU + {C6948155-C70C-4C03-A733-0624402AEC97}.Debug|x86.Build.0 = Debug|Any CPU + {C6948155-C70C-4C03-A733-0624402AEC97}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C6948155-C70C-4C03-A733-0624402AEC97}.Release|Any CPU.Build.0 = Release|Any CPU + {C6948155-C70C-4C03-A733-0624402AEC97}.Release|x64.ActiveCfg = Release|Any CPU + {C6948155-C70C-4C03-A733-0624402AEC97}.Release|x64.Build.0 = Release|Any CPU + {C6948155-C70C-4C03-A733-0624402AEC97}.Release|x86.ActiveCfg = Release|Any CPU + {C6948155-C70C-4C03-A733-0624402AEC97}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution {C2DB4B64-B7C3-4FED-8753-C040F677C69A} = {27C5D71D-0721-4221-9286-B94AB07B58CF} + {41BF4392-54BD-4FE7-A3EB-CD045F88CA9A} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} {B9C12532-0969-4DAC-A2F8-CA9208D7A901} = {27C5D71D-0721-4221-9286-B94AB07B58CF} {62E41317-ED5D-4AA4-B129-C9E56C27354C} = {27C5D71D-0721-4221-9286-B94AB07B58CF} {08D602F6-7C11-4653-B70B-B56333BF6FD2} = {27C5D71D-0721-4221-9286-B94AB07B58CF} + {383609C1-F43F-49EB-85E4-1964EE7F0F14} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} + {B314AD5E-10AC-418A-B021-D4206BF37ACF} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} + {0CD1912D-5E27-4A2A-A998-164792E0D006} = {047680F1-C0FE-4DE9-A257-62FA8599C834} + {342783B5-F75B-4752-A3E2-B8CB7D09C080} = {047680F1-C0FE-4DE9-A257-62FA8599C834} + {9C1D6ABA-5EDE-4FA0-A8A9-0AB98CB74737} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} + {95BAF30B-8089-42CE-8530-6DFBCE1F6A07} = {047680F1-C0FE-4DE9-A257-62FA8599C834} + {1BA7E772-8AA7-4D5A-800D-66B17F62421C} = {047680F1-C0FE-4DE9-A257-62FA8599C834} + {78FC19B2-396C-4ED2-BFD9-6C5667C61666} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} {B615B353-476C-43B9-A776-B193B0DBD256} = {27C5D71D-0721-4221-9286-B94AB07B58CF} {A11DC259-D1DB-4686-AD28-A427D0BABA83} = {D687DDC4-66C5-4667-9E3A-FD8B78ECAA78} {2EC50C79-782D-4985-ABB1-AD07F35D1621} = {A11DC259-D1DB-4686-AD28-A427D0BABA83} @@ -696,7 +1532,12 @@ Global {CC0A5C98-ACDE-4139-BA2F-2995A9B8E18C} = {02374BD0-BF0B-40F8-A04A-C4C4D61D4992} {A7F41094-8648-446B-AECD-DCC2CC871F73} = {D687DDC4-66C5-4667-9E3A-FD8B78ECAA78} {F70AC78E-8925-4770-832A-2FC67A620EB2} = {A7F41094-8648-446B-AECD-DCC2CC871F73} + {4AA9E7B7-36BF-4AAE-BFA3-C9CE8740F4A0} = {047680F1-C0FE-4DE9-A257-62FA8599C834} + {345FC3FB-D1E9-4AE8-9052-17D20AB01FA2} = {047680F1-C0FE-4DE9-A257-62FA8599C834} + {2AED1542-A8ED-488D-B6D0-E16AB5D6EF6C} = {047680F1-C0FE-4DE9-A257-62FA8599C834} + {E8212911-344B-4638-ADC3-B215BCDCAFD1} = {047680F1-C0FE-4DE9-A257-62FA8599C834} {F80F837E-D2FC-4FFC-B68F-3CF0EC015F66} = {A7F41094-8648-446B-AECD-DCC2CC871F73} + {5BE7F505-7D77-4C3A-ABFD-54088774DAA7} = {047680F1-C0FE-4DE9-A257-62FA8599C834} {35031EDB-C0DE-453A-8335-D2EBEA2FC640} = {A7F41094-8648-446B-AECD-DCC2CC871F73} {07578B6C-9B96-4B3D-BA2E-7800EFCA7F99} = {27C5D71D-0721-4221-9286-B94AB07B58CF} {BF3ED6BF-ADF3-4D25-8E89-02FB8D945CA9} = {D687DDC4-66C5-4667-9E3A-FD8B78ECAA78} @@ -709,9 +1550,13 @@ Global {CB903D21-4869-42EF-BDD6-5B1CFF674337} = {7592AFA4-426B-42F3-AE82-957C86814482} {980B5FD8-0107-41F7-8FAD-E4E8BAE8A625} = {27C5D71D-0721-4221-9286-B94AB07B58CF} {7C06FE2D-6C62-48F5-A505-F0D715C554DE} = {7592AFA4-426B-42F3-AE82-957C86814482} + {AF89083D-4715-42E6-93E9-38497D12A8A6} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} + {B5CDB0DC-B26D-48F1-B934-FE5C1C991940} = {047680F1-C0FE-4DE9-A257-62FA8599C834} {DFBABB04-50E9-42F6-B470-310E1B545638} = {27C5D71D-0721-4221-9286-B94AB07B58CF} {B445B19C-A925-4873-8CB7-8317898B6970} = {27C5D71D-0721-4221-9286-B94AB07B58CF} + {CDB47863-BEBD-4841-A807-46D868962521} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} {273F2527-1658-4CCF-8DC6-600E921188C5} = {27C5D71D-0721-4221-9286-B94AB07B58CF} + {2F3700EF-1CDA-4C15-AC88-360230000ECD} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} {3046DBF4-C2FF-4F3A-9176-E1C01E0A90E5} = {D687DDC4-66C5-4667-9E3A-FD8B78ECAA78} {11011FF8-77EA-4B25-96C0-29D4D486EF1C} = {3046DBF4-C2FF-4F3A-9176-E1C01E0A90E5} {43CB06A9-7E88-4C5F-BFB8-947E072CBC9F} = {BF3ED6BF-ADF3-4D25-8E89-02FB8D945CA9} @@ -720,18 +1565,26 @@ Global {FD3E9371-3134-4235-8E80-32226DFB4B1F} = {BF3ED6BF-ADF3-4D25-8E89-02FB8D945CA9} {D83B27F3-4401-42F5-843E-147566B4999A} = {BF3ED6BF-ADF3-4D25-8E89-02FB8D945CA9} {00359961-0C50-4BB1-A794-8B06DE991639} = {BF3ED6BF-ADF3-4D25-8E89-02FB8D945CA9} + {4E04EB35-7FD2-4FDB-B09A-F75CE24053B9} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} {0EAE36A1-B578-4F13-A113-7A477ECA1BDA} = {27C5D71D-0721-4221-9286-B94AB07B58CF} {C8BB6A85-A7EA-40C0-893D-F36F317829B3} = {27C5D71D-0721-4221-9286-B94AB07B58CF} + {BF9828E9-5597-4D42-AA6E-6E6C12214204} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} {D9697361-232F-465D-A136-4561E0E88488} = {D687DDC4-66C5-4667-9E3A-FD8B78ECAA78} {9CAF360E-5AD3-4C4F-89A0-327EEB70D673} = {D9697361-232F-465D-A136-4561E0E88488} - {55A7D436-CC8C-47E6-B43A-DFE32E0FE38C} = {27C5D71D-0721-4221-9286-B94AB07B58CF} + {E90114C6-86FC-43B8-AE5C-D9273CF21FE4} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} + {55A7D436-CC8C-47E6-B43A-DFE32E0FE38C} = {27C5D71D-0721-4221-9286-B94AB07B58CF} + {CE0D5FEB-F6DB-4EB8-B8A9-6A4A32944539} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} {28B87C37-4B52-400F-B84D-64F134931BDC} = {27C5D71D-0721-4221-9286-B94AB07B58CF} + {CADEAE45-8981-4723-B641-9C28251C7D3B} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} {E49C822C-E921-48DF-897B-3E603CA596D2} = {27C5D71D-0721-4221-9286-B94AB07B58CF} + {A2C0F203-11FF-4B7F-A94F-B9FD873573FE} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} + {7E23E229-6823-4D84-AF3A-AE14CEAEF52A} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} {160EFFA0-F6B9-49E4-B62B-68C0D53DB425} = {27C5D71D-0721-4221-9286-B94AB07B58CF} + {B508EBD6-0F14-480C-A446-45A09052733B} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} + {E070F694-335D-4D96-8951-F41D0A5F2A8B} = {442E80E5-8040-4123-B88A-26FD36BA95D9} {6843B5B3-9E95-4022-B792-8A1DE6BFEFEC} = {D687DDC4-66C5-4667-9E3A-FD8B78ECAA78} {097D5F6F-D26F-4BFB-9074-FA52577EB442} = {6843B5B3-9E95-4022-B792-8A1DE6BFEFEC} {442E80E5-8040-4123-B88A-26FD36BA95D9} = {D687DDC4-66C5-4667-9E3A-FD8B78ECAA78} - {E070F694-335D-4D96-8951-F41D0A5F2A8B} = {442E80E5-8040-4123-B88A-26FD36BA95D9} {5764B1AA-66B8-43AE-9E0D-0B3B71714B92} = {BF3ED6BF-ADF3-4D25-8E89-02FB8D945CA9} {953D770B-2DE8-4D1B-B1D4-ED46F4F5F31A} = {D687DDC4-66C5-4667-9E3A-FD8B78ECAA78} {55E08C7F-81C8-4D0B-AB18-87C89B261477} = {953D770B-2DE8-4D1B-B1D4-ED46F4F5F31A} @@ -746,40 +1599,14 @@ Global {9BD12D26-AD9B-4C76-A97F-7A89B7276ABE} = {27C5D71D-0721-4221-9286-B94AB07B58CF} {11D2CA0F-6D38-4DC7-AE06-C1DAE7FC1C20} = {D687DDC4-66C5-4667-9E3A-FD8B78ECAA78} {F2DFB0FE-DF35-4D94-9CC9-43212B1D6F93} = {11D2CA0F-6D38-4DC7-AE06-C1DAE7FC1C20} + {FB21FAC7-09F7-4F68-910C-224EE7150B35} = {8462B106-175A-423A-BA94-BE0D39D0BD8E} + {667E2F91-3004-4409-B6B8-9216EAFC44CF} = {8462B106-175A-423A-BA94-BE0D39D0BD8E} {77176EC6-C586-47B1-BB72-533327F9E7BE} = {BF3ED6BF-ADF3-4D25-8E89-02FB8D945CA9} {030CB614-6148-4863-A39A-1251728DE51D} = {BF3ED6BF-ADF3-4D25-8E89-02FB8D945CA9} {5AECC3FC-7374-4534-A305-397E3290E573} = {27C5D71D-0721-4221-9286-B94AB07B58CF} {047680F1-C0FE-4DE9-A257-62FA8599C834} = {DD020B34-460F-455F-8D17-CF4A949F100B} - {B5CDB0DC-B26D-48F1-B934-FE5C1C991940} = {047680F1-C0FE-4DE9-A257-62FA8599C834} - {345FC3FB-D1E9-4AE8-9052-17D20AB01FA2} = {047680F1-C0FE-4DE9-A257-62FA8599C834} - {342783B5-F75B-4752-A3E2-B8CB7D09C080} = {047680F1-C0FE-4DE9-A257-62FA8599C834} - {1BA7E772-8AA7-4D5A-800D-66B17F62421C} = {047680F1-C0FE-4DE9-A257-62FA8599C834} - {2AED1542-A8ED-488D-B6D0-E16AB5D6EF6C} = {047680F1-C0FE-4DE9-A257-62FA8599C834} - {4AA9E7B7-36BF-4AAE-BFA3-C9CE8740F4A0} = {047680F1-C0FE-4DE9-A257-62FA8599C834} - {95BAF30B-8089-42CE-8530-6DFBCE1F6A07} = {047680F1-C0FE-4DE9-A257-62FA8599C834} - {5BE7F505-7D77-4C3A-ABFD-54088774DAA7} = {047680F1-C0FE-4DE9-A257-62FA8599C834} - {0CD1912D-5E27-4A2A-A998-164792E0D006} = {047680F1-C0FE-4DE9-A257-62FA8599C834} - {E8212911-344B-4638-ADC3-B215BCDCAFD1} = {047680F1-C0FE-4DE9-A257-62FA8599C834} {0AF0FE8D-C234-4F04-8514-32206ACE01BD} = {DD020B34-460F-455F-8D17-CF4A949F100B} - {A2C0F203-11FF-4B7F-A94F-B9FD873573FE} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} - {9C1D6ABA-5EDE-4FA0-A8A9-0AB98CB74737} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} - {AF89083D-4715-42E6-93E9-38497D12A8A6} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} - {41BF4392-54BD-4FE7-A3EB-CD045F88CA9A} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} - {2F3700EF-1CDA-4C15-AC88-360230000ECD} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} - {7E23E229-6823-4D84-AF3A-AE14CEAEF52A} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} - {B314AD5E-10AC-418A-B021-D4206BF37ACF} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} - {383609C1-F43F-49EB-85E4-1964EE7F0F14} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} - {CDB47863-BEBD-4841-A807-46D868962521} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} - {B508EBD6-0F14-480C-A446-45A09052733B} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} - {78FC19B2-396C-4ED2-BFD9-6C5667C61666} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} - {CADEAE45-8981-4723-B641-9C28251C7D3B} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} - {BF9828E9-5597-4D42-AA6E-6E6C12214204} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} - {4E04EB35-7FD2-4FDB-B09A-F75CE24053B9} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} - {CE0D5FEB-F6DB-4EB8-B8A9-6A4A32944539} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} - {E90114C6-86FC-43B8-AE5C-D9273CF21FE4} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} {8462B106-175A-423A-BA94-BE0D39D0BD8E} = {047680F1-C0FE-4DE9-A257-62FA8599C834} - {667E2F91-3004-4409-B6B8-9216EAFC44CF} = {8462B106-175A-423A-BA94-BE0D39D0BD8E} - {FB21FAC7-09F7-4F68-910C-224EE7150B35} = {8462B106-175A-423A-BA94-BE0D39D0BD8E} {CE5D4439-5B3C-4E97-B7E3-EB8610AEA3EF} = {27C5D71D-0721-4221-9286-B94AB07B58CF} {A05D1519-6A82-498F-B7C9-3D14E08D35CA} = {27C5D71D-0721-4221-9286-B94AB07B58CF} {5A93F96B-4D0E-479D-B540-29678A0998FA} = {0AF0FE8D-C234-4F04-8514-32206ACE01BD} @@ -798,6 +1625,7 @@ Global {01A20A89-53A1-4D5B-B563-89E157718474} = {8462B106-175A-423A-BA94-BE0D39D0BD8E} {7B14879F-156B-417E-ACA3-0B5A69CC2F39} = {8462B106-175A-423A-BA94-BE0D39D0BD8E} {A1B2C3D4-E5F6-7890-ABCD-EF1234567890} = {8462B106-175A-423A-BA94-BE0D39D0BD8E} + {C6948155-C70C-4C03-A733-0624402AEC97} = {DD020B34-460F-455F-8D17-CF4A949F100B} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {65220BF2-EAE1-4CB2-AA58-EBE80768CB40} diff --git a/test/Dapr.IntegrationTest.Actors.Generators/Actors/IClientActor.cs b/test/Dapr.IntegrationTest.Actors.Generators/Actors/IClientActor.cs new file mode 100644 index 000000000..9e9e04a64 --- /dev/null +++ b/test/Dapr.IntegrationTest.Actors.Generators/Actors/IClientActor.cs @@ -0,0 +1,63 @@ +// ------------------------------------------------------------------------ +// Copyright 2026 The Dapr Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ------------------------------------------------------------------------ + +using System.Threading; +using System.Threading.Tasks; +using Dapr.Actors.Generators; + +namespace Dapr.IntegrationTest.Actors.Generators.Actors; + +/// +/// State record used by the client-side generated actor client. +/// +public record ClientState(string Value); + +/// +/// Actor interface decorated with to trigger +/// source generation of a strongly-typed client (ClientActorClient). +/// The methods use to map to the actual server-side +/// actor method names. +/// +[GenerateActorClient] +public interface IClientActor +{ + /// + /// Gets the current state from the remote actor. + /// + [ActorMethod(Name = "GetState")] + Task GetStateAsync(CancellationToken cancellationToken = default); + + /// + /// Sets the state on the remote actor. + /// + [ActorMethod(Name = "SetState")] + Task SetStateAsync(ClientState state, CancellationToken cancellationToken = default); + + /// + /// Calls the SayHello method on the remote actor. + /// + [ActorMethod(Name = "SayHello")] + Task SayHelloAsync(string name, CancellationToken cancellationToken = default); + + /// + /// Calls the IncrementCallCount method on the remote actor. + /// + [ActorMethod(Name = "IncrementCallCount")] + Task IncrementCallCountAsync(CancellationToken cancellationToken = default); + + /// + /// Gets the call count from the remote actor. + /// + [ActorMethod(Name = "GetCallCount")] + Task GetCallCountAsync(CancellationToken cancellationToken = default); +} diff --git a/test/Dapr.IntegrationTest.Actors.Generators/Actors/IPingActor.cs b/test/Dapr.IntegrationTest.Actors.Generators/Actors/IPingActor.cs new file mode 100644 index 000000000..f912943f1 --- /dev/null +++ b/test/Dapr.IntegrationTest.Actors.Generators/Actors/IPingActor.cs @@ -0,0 +1,33 @@ +// ------------------------------------------------------------------------ +// Copyright 2026 The Dapr Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ------------------------------------------------------------------------ + +using System.Threading; +using System.Threading.Tasks; +using Dapr.Actors; + +namespace Dapr.IntegrationTest.Actors.Generators; + +/// +/// Minimal actor interface used as a readiness probe. +/// +public interface IPingActor : IActor +{ + /// + /// Pings the actor to verify that the runtime is available. + /// + /// + /// A token that cancels the underlying HTTP request, allowing the caller to impose a + /// per-attempt timeout instead of waiting for the HttpClient default (100 s). + /// + Task Ping(CancellationToken cancellationToken = default); +} diff --git a/test/Dapr.IntegrationTest.Actors.Generators/Actors/IRemoteActor.cs b/test/Dapr.IntegrationTest.Actors.Generators/Actors/IRemoteActor.cs new file mode 100644 index 000000000..3e8c968a9 --- /dev/null +++ b/test/Dapr.IntegrationTest.Actors.Generators/Actors/IRemoteActor.cs @@ -0,0 +1,56 @@ +// ------------------------------------------------------------------------ +// Copyright 2026 The Dapr Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ------------------------------------------------------------------------ + +using System.Threading; +using System.Threading.Tasks; + +namespace Dapr.IntegrationTest.Actors.Generators.Actors; + +/// +/// State record used by the remote actor for get/set operations. +/// +public record RemoteState(string Value); + +/// +/// Actor interface for the server-side actor that manages state. +/// Extends so the runtime readiness check can be performed. +/// +public interface IRemoteActor : IPingActor +{ + /// + /// Returns the current state of the actor. + /// + Task GetState(); + + /// + /// Sets the state of the actor. + /// + /// The new state to set. + Task SetState(RemoteState state); + + /// + /// Returns a greeting message for the specified name. + /// + /// The name to greet. + Task SayHello(string name); + + /// + /// A fire-and-forget method with no parameters and no return value. + /// + Task IncrementCallCount(); + + /// + /// Returns the current call count. + /// + Task GetCallCount(); +} diff --git a/test/Dapr.IntegrationTest.Actors.Generators/Actors/RemoteActor.cs b/test/Dapr.IntegrationTest.Actors.Generators/Actors/RemoteActor.cs new file mode 100644 index 000000000..9051ca44f --- /dev/null +++ b/test/Dapr.IntegrationTest.Actors.Generators/Actors/RemoteActor.cs @@ -0,0 +1,80 @@ +// ------------------------------------------------------------------------ +// Copyright 2026 The Dapr Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ------------------------------------------------------------------------ + +using System.Threading; +using System.Threading.Tasks; +using Dapr.Actors.Runtime; +using Microsoft.Extensions.Logging; + +namespace Dapr.IntegrationTest.Actors.Generators.Actors; + +/// +/// Implementation of that manages state in memory. +/// +internal sealed class RemoteActor : Actor, IRemoteActor +{ + private readonly ILogger logger; + + private RemoteState currentState = new("default"); + + private int callCount; + + public RemoteActor(ActorHost host, ILogger logger) + : base(host) + { + this.logger = logger; + } + + /// + public Task GetState() + { + this.logger.LogInformation("GetState called."); + return Task.FromResult(this.currentState); + } + + /// + public Task SetState(RemoteState state) + { + this.logger.LogInformation("SetState called."); + this.currentState = state; + return Task.CompletedTask; + } + + /// + public Task SayHello(string name) + { + this.logger.LogInformation("SayHello called with name: {Name}", name); + return Task.FromResult($"Hello, {name}!"); + } + + /// + public Task IncrementCallCount() + { + this.logger.LogInformation("IncrementCallCount called."); + this.callCount++; + return Task.CompletedTask; + } + + /// + public Task GetCallCount() + { + this.logger.LogInformation("GetCallCount called."); + return Task.FromResult(this.callCount); + } + + /// + public Task Ping(CancellationToken cancellationToken = default) + { + return Task.CompletedTask; + } +} diff --git a/test/Dapr.IntegrationTest.Actors.Generators/Dapr.IntegrationTest.Actors.Generators.csproj b/test/Dapr.IntegrationTest.Actors.Generators/Dapr.IntegrationTest.Actors.Generators.csproj new file mode 100644 index 000000000..646ee75bf --- /dev/null +++ b/test/Dapr.IntegrationTest.Actors.Generators/Dapr.IntegrationTest.Actors.Generators.csproj @@ -0,0 +1,31 @@ + + + + enable + enable + false + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + + + + + + + + + + + diff --git a/test/Dapr.IntegrationTest.Actors.Generators/GeneratedClientTests.cs b/test/Dapr.IntegrationTest.Actors.Generators/GeneratedClientTests.cs new file mode 100644 index 000000000..2ee2deab9 --- /dev/null +++ b/test/Dapr.IntegrationTest.Actors.Generators/GeneratedClientTests.cs @@ -0,0 +1,313 @@ +// ------------------------------------------------------------------------ +// Copyright 2026 The Dapr Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ------------------------------------------------------------------------ + +using System; +using System.Threading; +using System.Threading.Tasks; +using Dapr.Actors; +using Dapr.Actors.Client; +using Dapr.IntegrationTest.Actors.Generators.Actors; +using Dapr.IntegrationTest.Actors.Generators.Infrastructure; +using Dapr.Testcontainers.Common; +using Dapr.Testcontainers.Harnesses; +using Microsoft.AspNetCore.Builder; +using Microsoft.Extensions.DependencyInjection; + +namespace Dapr.IntegrationTest.Actors.Generators; + +/// +/// Integration tests that verify the source-generated actor client (ClientActorClient) +/// can correctly invoke actor methods on a real Dapr sidecar and actor runtime. +/// These tests replicate and extend the coverage of the E2E test suite in +/// Dapr.E2E.Test.Actors.Generators. +/// +public sealed class GeneratedClientTests +{ + /// + /// Verifies that the generated client can retrieve the default state from the remote actor. + /// This is equivalent to the first half of the E2E TestGeneratedClientAsync test. + /// + [Fact] + public async Task GeneratedClient_CanGetDefaultState() + { + using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(120)); + await using var testApp = await CreateTestAppAsync(useJsonSerialization: true, cts.Token); + + using var scope = testApp.CreateScope(); + var proxyFactory = scope.ServiceProvider.GetRequiredService(); + + var actorId = ActorId.CreateRandom(); + const string actorType = "RemoteActor"; + + // Use the strongly-typed proxy to wait for the runtime to be ready. + var pingProxy = proxyFactory.CreateActorProxy(actorId, actorType); + await ActorRuntimeHelper.WaitForActorRuntimeAsync(pingProxy, cts.Token); + + // Create the generated client through the weakly-typed proxy. + var actorProxy = proxyFactory.Create(actorId, actorType); + var client = new ClientActorClient(actorProxy); + + var state = await client.GetStateAsync(cts.Token); + + Assert.NotNull(state); + Assert.Equal("default", state.Value); + } + + /// + /// Verifies that the generated client can set and then retrieve state from the remote actor. + /// This is equivalent to the E2E TestGeneratedClientAsync test. + /// + [Fact] + public async Task GeneratedClient_CanSetAndGetState() + { + using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(120)); + await using var testApp = await CreateTestAppAsync(useJsonSerialization: true, cts.Token); + + using var scope = testApp.CreateScope(); + var proxyFactory = scope.ServiceProvider.GetRequiredService(); + + var actorId = ActorId.CreateRandom(); + const string actorType = "RemoteActor"; + + var pingProxy = proxyFactory.CreateActorProxy(actorId, actorType); + await ActorRuntimeHelper.WaitForActorRuntimeAsync(pingProxy, cts.Token); + + var actorProxy = proxyFactory.Create(actorId, actorType); + var client = new ClientActorClient(actorProxy); + + await client.SetStateAsync(new ClientState("updated state"), cts.Token); + + var state = await client.GetStateAsync(cts.Token); + Assert.Equal("updated state", state.Value); + } + + /// + /// Verifies that the generated client correctly maps method names via + /// when the server-side method has a different name from the client-side async method. + /// + [Fact] + public async Task GeneratedClient_RespectsActorMethodNameMapping() + { + using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(120)); + await using var testApp = await CreateTestAppAsync(useJsonSerialization: true, cts.Token); + + using var scope = testApp.CreateScope(); + var proxyFactory = scope.ServiceProvider.GetRequiredService(); + + var actorId = ActorId.CreateRandom(); + const string actorType = "RemoteActor"; + + var pingProxy = proxyFactory.CreateActorProxy(actorId, actorType); + await ActorRuntimeHelper.WaitForActorRuntimeAsync(pingProxy, cts.Token); + + var actorProxy = proxyFactory.Create(actorId, actorType); + var client = new ClientActorClient(actorProxy); + + // SayHelloAsync on the client maps to SayHello on the server via [ActorMethod(Name = "SayHello")] + var result = await client.SayHelloAsync("World", cts.Token); + Assert.Equal("Hello, World!", result); + } + + /// + /// Verifies that the generated client can invoke a void (fire-and-forget) method + /// with no parameters via the IncrementCallCountAsync method. + /// + [Fact] + public async Task GeneratedClient_CanInvokeVoidMethodWithNoParameters() + { + using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(120)); + await using var testApp = await CreateTestAppAsync(useJsonSerialization: true, cts.Token); + + using var scope = testApp.CreateScope(); + var proxyFactory = scope.ServiceProvider.GetRequiredService(); + + var actorId = ActorId.CreateRandom(); + const string actorType = "RemoteActor"; + + var pingProxy = proxyFactory.CreateActorProxy(actorId, actorType); + await ActorRuntimeHelper.WaitForActorRuntimeAsync(pingProxy, cts.Token); + + var actorProxy = proxyFactory.Create(actorId, actorType); + var client = new ClientActorClient(actorProxy); + + // Call the void method multiple times. + await client.IncrementCallCountAsync(cts.Token); + await client.IncrementCallCountAsync(cts.Token); + await client.IncrementCallCountAsync(cts.Token); + + // Verify the side-effect via GetCallCount. + var count = await client.GetCallCountAsync(cts.Token); + Assert.Equal(3, count); + } + + /// + /// Verifies that multiple state updates through the generated client are correctly + /// reflected, confirming that the last write wins. + /// + [Fact] + public async Task GeneratedClient_MultipleStateUpdatesReflectLastWrite() + { + using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(120)); + await using var testApp = await CreateTestAppAsync(useJsonSerialization: true, cts.Token); + + using var scope = testApp.CreateScope(); + var proxyFactory = scope.ServiceProvider.GetRequiredService(); + + var actorId = ActorId.CreateRandom(); + const string actorType = "RemoteActor"; + + var pingProxy = proxyFactory.CreateActorProxy(actorId, actorType); + await ActorRuntimeHelper.WaitForActorRuntimeAsync(pingProxy, cts.Token); + + var actorProxy = proxyFactory.Create(actorId, actorType); + var client = new ClientActorClient(actorProxy); + + await client.SetStateAsync(new ClientState("first"), cts.Token); + await client.SetStateAsync(new ClientState("second"), cts.Token); + await client.SetStateAsync(new ClientState("third"), cts.Token); + + var state = await client.GetStateAsync(cts.Token); + Assert.Equal("third", state.Value); + } + + /// + /// Verifies that two generated clients pointing at different actor IDs maintain + /// independent state — a write to one does not affect the other. + /// + [Fact] + public async Task GeneratedClient_DifferentActorIdsHaveIndependentState() + { + using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(120)); + await using var testApp = await CreateTestAppAsync(useJsonSerialization: true, cts.Token); + + using var scope = testApp.CreateScope(); + var proxyFactory = scope.ServiceProvider.GetRequiredService(); + + const string actorType = "RemoteActor"; + + var actorId1 = ActorId.CreateRandom(); + var actorId2 = ActorId.CreateRandom(); + + var pingProxy = proxyFactory.CreateActorProxy(actorId1, actorType); + await ActorRuntimeHelper.WaitForActorRuntimeAsync(pingProxy, cts.Token); + + var client1 = new ClientActorClient(proxyFactory.Create(actorId1, actorType)); + var client2 = new ClientActorClient(proxyFactory.Create(actorId2, actorType)); + + await client1.SetStateAsync(new ClientState("state-for-actor-1"), cts.Token); + await client2.SetStateAsync(new ClientState("state-for-actor-2"), cts.Token); + + var state1 = await client1.GetStateAsync(cts.Token); + var state2 = await client2.GetStateAsync(cts.Token); + + Assert.Equal("state-for-actor-1", state1.Value); + Assert.Equal("state-for-actor-2", state2.Value); + } + + /// + /// Verifies that the generated client correctly handles cancellation tokens by + /// passing them through to the actor proxy without errors under normal operation. + /// + [Fact] + public async Task GeneratedClient_SupportsCancellationToken() + { + using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(120)); + await using var testApp = await CreateTestAppAsync(useJsonSerialization: true, cts.Token); + + using var scope = testApp.CreateScope(); + var proxyFactory = scope.ServiceProvider.GetRequiredService(); + + var actorId = ActorId.CreateRandom(); + const string actorType = "RemoteActor"; + + var pingProxy = proxyFactory.CreateActorProxy(actorId, actorType); + await ActorRuntimeHelper.WaitForActorRuntimeAsync(pingProxy, cts.Token); + + var actorProxy = proxyFactory.Create(actorId, actorType); + var client = new ClientActorClient(actorProxy); + + // Create a separate cancellation token to ensure it's properly threaded through. + using var methodCts = CancellationTokenSource.CreateLinkedTokenSource(cts.Token); + + await client.SetStateAsync(new ClientState("cancellation-test"), methodCts.Token); + var state = await client.GetStateAsync(methodCts.Token); + + Assert.Equal("cancellation-test", state.Value); + } + + /// + /// Verifies that the generated client works with JSON serialization enabled, + /// confirming that complex state objects are correctly serialized and deserialized. + /// + [Fact] + public async Task GeneratedClient_WorksWithJsonSerialization() + { + using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(120)); + await using var testApp = await CreateTestAppAsync(useJsonSerialization: true, cts.Token); + + using var scope = testApp.CreateScope(); + var proxyFactory = scope.ServiceProvider.GetRequiredService(); + + var actorId = ActorId.CreateRandom(); + const string actorType = "RemoteActor"; + + var pingProxy = proxyFactory.CreateActorProxy(actorId, actorType); + await ActorRuntimeHelper.WaitForActorRuntimeAsync(pingProxy, cts.Token); + + var actorProxy = proxyFactory.Create(actorId, actorType); + var client = new ClientActorClient(actorProxy); + + // Set a state with special characters to verify JSON handling. + var specialState = new ClientState("value with \"quotes\" and special chars: <>&"); + await client.SetStateAsync(specialState, cts.Token); + + var retrieved = await client.GetStateAsync(cts.Token); + Assert.Equal(specialState.Value, retrieved.Value); + } + + // ------------------------------------------------------------------ + // Test infrastructure helpers + // ------------------------------------------------------------------ + + private static async Task CreateTestAppAsync( + bool useJsonSerialization, + CancellationToken cancellationToken) + { + var componentsDir = TestDirectoryManager.CreateTestDirectory("actor-generators-components"); + + var environment = await DaprTestEnvironment.CreateWithPooledNetworkAsync( + needsActorState: true, + cancellationToken: cancellationToken); + await environment.StartAsync(cancellationToken); + + var harness = new DaprHarnessBuilder(componentsDir) + .WithEnvironment(environment) + .BuildActors(); + + var testApp = await DaprHarnessBuilder.ForHarness(harness) + .ConfigureServices(builder => + { + builder.Services.AddActors(options => + { + options.UseJsonSerialization = useJsonSerialization; + options.Actors.RegisterActor(); + }); + }) + .ConfigureApp(app => + { + app.MapActorsHandlers(); + }) + .BuildAndStartAsync(); + return new ActorTestContext(environment, testApp); + } +} diff --git a/test/Dapr.IntegrationTest.Actors.Generators/Infrastructure/ActorRuntimeHelper.cs b/test/Dapr.IntegrationTest.Actors.Generators/Infrastructure/ActorRuntimeHelper.cs new file mode 100644 index 000000000..c74b34c06 --- /dev/null +++ b/test/Dapr.IntegrationTest.Actors.Generators/Infrastructure/ActorRuntimeHelper.cs @@ -0,0 +1,80 @@ +// ------------------------------------------------------------------------ +// Copyright 2026 The Dapr Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ------------------------------------------------------------------------ + +using System; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; + +namespace Dapr.IntegrationTest.Actors.Generators.Infrastructure; + +/// +/// Provides helpers for waiting until the Dapr actor runtime is ready to process requests. +/// +public static class ActorRuntimeHelper +{ + // Per-attempt timeout for each Ping call. Keeping this well below the HttpClient + // default (100 s) prevents a hung placement-registration request from stalling + // the poll loop for a full 100 seconds before the next retry. + private static readonly TimeSpan PingAttemptTimeout = TimeSpan.FromSeconds(5); + + /// + /// Polls until a call succeeds, + /// indicating that the actor runtime has registered the actor type with the placement service. + /// + /// + /// The actor proxy to use for health probing. + /// + /// + /// A token that cancels the polling loop. + /// + /// + /// Thrown when is cancelled before the runtime is ready. + /// + public static async Task WaitForActorRuntimeAsync(IPingActor pingActor, CancellationToken cancellationToken) + { + while (true) + { + cancellationToken.ThrowIfCancellationRequested(); + + try + { + // Use a short per-attempt timeout so a hung request (e.g. while the Dapr + // placement service is still registering the actor type) does not stall the + // poll loop for the full HttpClient default of 100 seconds. + using var attemptCts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken); + attemptCts.CancelAfter(PingAttemptTimeout); + + await pingActor.Ping(attemptCts.Token); + return; + } + catch (DaprApiException) + { + // The actor runtime returned an error response – placement may not have + // registered the actor type yet. Retry after a short pause. + } + catch (OperationCanceledException) when (!cancellationToken.IsCancellationRequested) + { + // The per-attempt timeout fired (not the outer cancellation token). The + // sidecar accepted the TCP connection but did not respond in time – this + // happens while Dapr is still acquiring a placement token. Retry. + } + catch (HttpRequestException) + { + // Connection-level error – the sidecar may still be starting up. + } + + await Task.Delay(TimeSpan.FromMilliseconds(250), cancellationToken); + } + } +} diff --git a/test/Dapr.IntegrationTest.Actors.Generators/Infrastructure/ActorTestContext.cs b/test/Dapr.IntegrationTest.Actors.Generators/Infrastructure/ActorTestContext.cs new file mode 100644 index 000000000..142d262b0 --- /dev/null +++ b/test/Dapr.IntegrationTest.Actors.Generators/Infrastructure/ActorTestContext.cs @@ -0,0 +1,55 @@ +// ------------------------------------------------------------------------ +// Copyright 2026 The Dapr Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ------------------------------------------------------------------------ + +using System; +using System.Threading.Tasks; +using Dapr.Testcontainers.Common.Testing; +using Dapr.Testcontainers.Harnesses; +using Microsoft.Extensions.DependencyInjection; + +namespace Dapr.IntegrationTest.Actors.Generators.Infrastructure; + +/// +/// Combines a with its owning +/// so that both are disposed together +/// when the test ends. The must outlive +/// the application (placement / scheduler must stay up while the test runs). +/// +public sealed class ActorTestContext : IAsyncDisposable +{ + private readonly DaprTestEnvironment _environment; + private readonly DaprTestApplication _app; + + /// + /// Initializes a new . + /// + internal ActorTestContext(DaprTestEnvironment environment, DaprTestApplication app) + { + _environment = environment; + _app = app; + } + + /// + /// Creates a DI service scope from the running test application. + /// + public IServiceScope CreateScope() => _app.CreateScope(); + + /// + public async ValueTask DisposeAsync() + { + // Dispose the application (and its harness) before shutting down the environment + // so the Dapr sidecar can drain cleanly before placement/scheduler stop. + await _app.DisposeAsync(); + await _environment.DisposeAsync(); + } +} From 6f157337cb8775578439f31d0fd10919ccbd1550 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 16 Apr 2026 22:01:51 +0000 Subject: [PATCH 2/3] Address review: primary constructor, [LoggerMessage] logging, move Nullable to Directory.Build.props Agent-Logs-Url: https://github.com/dapr/dotnet-sdk/sessions/5e15d763-38d4-40d1-92ae-368f5e5cb51d Co-authored-by: WhitWaldo <2238529+WhitWaldo@users.noreply.github.com> --- .../Actors/RemoteActor.cs | 38 ++++++++++++------- ...r.IntegrationTest.Actors.Generators.csproj | 2 - test/Directory.Build.props | 1 + 3 files changed, 25 insertions(+), 16 deletions(-) diff --git a/test/Dapr.IntegrationTest.Actors.Generators/Actors/RemoteActor.cs b/test/Dapr.IntegrationTest.Actors.Generators/Actors/RemoteActor.cs index 9051ca44f..89e69b6c4 100644 --- a/test/Dapr.IntegrationTest.Actors.Generators/Actors/RemoteActor.cs +++ b/test/Dapr.IntegrationTest.Actors.Generators/Actors/RemoteActor.cs @@ -21,31 +21,23 @@ namespace Dapr.IntegrationTest.Actors.Generators.Actors; /// /// Implementation of that manages state in memory. /// -internal sealed class RemoteActor : Actor, IRemoteActor +internal sealed partial class RemoteActor(ActorHost host, ILogger logger) : Actor(host), IRemoteActor { - private readonly ILogger logger; - private RemoteState currentState = new("default"); private int callCount; - public RemoteActor(ActorHost host, ILogger logger) - : base(host) - { - this.logger = logger; - } - /// public Task GetState() { - this.logger.LogInformation("GetState called."); + logger.LogGetState(); return Task.FromResult(this.currentState); } /// public Task SetState(RemoteState state) { - this.logger.LogInformation("SetState called."); + logger.LogSetState(); this.currentState = state; return Task.CompletedTask; } @@ -53,14 +45,14 @@ public Task SetState(RemoteState state) /// public Task SayHello(string name) { - this.logger.LogInformation("SayHello called with name: {Name}", name); + logger.LogSayHello(name); return Task.FromResult($"Hello, {name}!"); } /// public Task IncrementCallCount() { - this.logger.LogInformation("IncrementCallCount called."); + logger.LogIncrementCallCount(); this.callCount++; return Task.CompletedTask; } @@ -68,7 +60,7 @@ public Task IncrementCallCount() /// public Task GetCallCount() { - this.logger.LogInformation("GetCallCount called."); + logger.LogGetCallCount(); return Task.FromResult(this.callCount); } @@ -78,3 +70,21 @@ public Task Ping(CancellationToken cancellationToken = default) return Task.CompletedTask; } } + +internal static partial class RemoteActorLogMessages +{ + [LoggerMessage(LogLevel.Information, "GetState called.")] + public static partial void LogGetState(this ILogger logger); + + [LoggerMessage(LogLevel.Information, "SetState called.")] + public static partial void LogSetState(this ILogger logger); + + [LoggerMessage(LogLevel.Information, "SayHello called with name: {Name}")] + public static partial void LogSayHello(this ILogger logger, string name); + + [LoggerMessage(LogLevel.Information, "IncrementCallCount called.")] + public static partial void LogIncrementCallCount(this ILogger logger); + + [LoggerMessage(LogLevel.Information, "GetCallCount called.")] + public static partial void LogGetCallCount(this ILogger logger); +} diff --git a/test/Dapr.IntegrationTest.Actors.Generators/Dapr.IntegrationTest.Actors.Generators.csproj b/test/Dapr.IntegrationTest.Actors.Generators/Dapr.IntegrationTest.Actors.Generators.csproj index 646ee75bf..8cd403ea0 100644 --- a/test/Dapr.IntegrationTest.Actors.Generators/Dapr.IntegrationTest.Actors.Generators.csproj +++ b/test/Dapr.IntegrationTest.Actors.Generators/Dapr.IntegrationTest.Actors.Generators.csproj @@ -2,8 +2,6 @@ enable - enable - false diff --git a/test/Directory.Build.props b/test/Directory.Build.props index 5538aa9cf..a827b2f1b 100644 --- a/test/Directory.Build.props +++ b/test/Directory.Build.props @@ -3,6 +3,7 @@ net8.0;net9.0;net10.0 + enable $(RepoRoot)bin\$(Configuration)\test\$(MSBuildProjectName)\ From 9ef744f366775bbc1bf148db6535c2d22d4bb66c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 16 Apr 2026 22:12:52 +0000 Subject: [PATCH 3/3] Revert Nullable from shared Directory.Build.props back to project csproj Agent-Logs-Url: https://github.com/dapr/dotnet-sdk/sessions/4f37993f-8ff7-42a7-aacf-5539d7dfdbd8 Co-authored-by: WhitWaldo <2238529+WhitWaldo@users.noreply.github.com> --- .../Dapr.IntegrationTest.Actors.Generators.csproj | 1 + test/Directory.Build.props | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/test/Dapr.IntegrationTest.Actors.Generators/Dapr.IntegrationTest.Actors.Generators.csproj b/test/Dapr.IntegrationTest.Actors.Generators/Dapr.IntegrationTest.Actors.Generators.csproj index 8cd403ea0..53de431f7 100644 --- a/test/Dapr.IntegrationTest.Actors.Generators/Dapr.IntegrationTest.Actors.Generators.csproj +++ b/test/Dapr.IntegrationTest.Actors.Generators/Dapr.IntegrationTest.Actors.Generators.csproj @@ -2,6 +2,7 @@ enable + enable diff --git a/test/Directory.Build.props b/test/Directory.Build.props index a827b2f1b..5538aa9cf 100644 --- a/test/Directory.Build.props +++ b/test/Directory.Build.props @@ -3,7 +3,6 @@ net8.0;net9.0;net10.0 - enable $(RepoRoot)bin\$(Configuration)\test\$(MSBuildProjectName)\