From 631f276653e2854947614ff9cf491e5c02c09f56 Mon Sep 17 00:00:00 2001 From: AboubakrNasef Date: Mon, 29 Dec 2025 07:59:08 +0200 Subject: [PATCH 01/16] init brighter analyzer --- Brighter.sln | 1725 ++++++++--------- Directory.Packages.props | 3 + .../AnalyzerConsoleApp.csproj | 16 + .../Analyzer/AnalyzerConsoleApp/Program.cs | 30 + .../AnalyzerSamples/AnalyzerSamples.csproj | 17 + .../AnalyzerSamples/PublicationSample.cs | 40 + .../Paramore.Brighter.Analyzer.Package.csproj | 44 + .../tools/install.ps1 | 275 +++ .../tools/uninstall.ps1 | 282 +++ .../Paramore.Brighter.Analyzer.Test.csproj | 32 + ...cationRequestTypeAssignmentAnalyzerTest.cs | 93 + .../AnalyzerReleases.Shipped.md | 6 + .../AnalyzerReleases.Unshipped.md | 1 + ...ublicationRequestTypeAssignmentAnalyzer.cs | 81 + .../BrighterAnalyzerGlobals.cs | 35 + .../DiagnosticsIds.cs | 35 + .../Paramore.Brighter.Analyzer.csproj | 25 + .../Resources.Designer.cs | 116 ++ src/Paramore.Brighter.Analyzer/Resources.resx | 132 ++ .../Operation/RequestTypeAssignmentVisitor.cs | 69 + .../Visitors/Symbol/ChildOfVisitor.cs | 47 + .../Properties/launchSettings.json | 12 + 22 files changed, 2252 insertions(+), 864 deletions(-) create mode 100644 samples/Analyzer/AnalyzerConsoleApp/AnalyzerConsoleApp.csproj create mode 100644 samples/Analyzer/AnalyzerConsoleApp/Program.cs create mode 100644 samples/Analyzer/AnalyzerSamples/AnalyzerSamples.csproj create mode 100644 samples/Analyzer/AnalyzerSamples/PublicationSample.cs create mode 100644 src/Paramore.Brighter.Analyzer.Package/Paramore.Brighter.Analyzer.Package.csproj create mode 100644 src/Paramore.Brighter.Analyzer.Package/tools/install.ps1 create mode 100644 src/Paramore.Brighter.Analyzer.Package/tools/uninstall.ps1 create mode 100644 src/Paramore.Brighter.Analyzer.Test/Paramore.Brighter.Analyzer.Test.csproj create mode 100644 src/Paramore.Brighter.Analyzer.Test/PublicationRequestTypeMissing/PublicationRequestTypeAssignmentAnalyzerTest.cs create mode 100644 src/Paramore.Brighter.Analyzer/AnalyzerReleases.Shipped.md create mode 100644 src/Paramore.Brighter.Analyzer/AnalyzerReleases.Unshipped.md create mode 100644 src/Paramore.Brighter.Analyzer/Analyzers/PublicationRequestTypeAssignmentAnalyzer.cs create mode 100644 src/Paramore.Brighter.Analyzer/BrighterAnalyzerGlobals.cs create mode 100644 src/Paramore.Brighter.Analyzer/DiagnosticsIds.cs create mode 100644 src/Paramore.Brighter.Analyzer/Paramore.Brighter.Analyzer.csproj create mode 100644 src/Paramore.Brighter.Analyzer/Resources.Designer.cs create mode 100644 src/Paramore.Brighter.Analyzer/Resources.resx create mode 100644 src/Paramore.Brighter.Analyzer/Visitors/Operation/RequestTypeAssignmentVisitor.cs create mode 100644 src/Paramore.Brighter.Analyzer/Visitors/Symbol/ChildOfVisitor.cs create mode 100644 src/Paramore.Brighter.ServiceActivator.Control.Api/Properties/launchSettings.json diff --git a/Brighter.sln b/Brighter.sln index b9aa2e4fc0..4c00b10a5d 100644 --- a/Brighter.sln +++ b/Brighter.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.0.32112.339 +# Visual Studio Version 18 +VisualStudioVersion = 18.1.11312.151 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{235DE1F1-E71B-4817-8E27-3B34FF006E4C}" EndProject @@ -474,3158 +474,3150 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Paramore.Brighter.Test.Gene EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Paramore.Brighter.Test.Generator.Tests", "tests\Paramore.Brighter.Test.Generator.Tests\Paramore.Brighter.Test.Generator.Tests.csproj", "{803BCF53-9447-4C9A-8718-61611B4E6480}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Analyzer", "Analyzer", "{C2446CB2-4920-4046-B794-536E23CE09AD}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Paramore.Brighter.Analyzer.Package", "src\Paramore.Brighter.Analyzer.Package\Paramore.Brighter.Analyzer.Package.csproj", "{F9D1D723-2F7A-CBB4-59CA-457DBFE722D3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Paramore.Brighter.Analyzer.Test", "src\Paramore.Brighter.Analyzer.Test\Paramore.Brighter.Analyzer.Test.csproj", "{1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Paramore.Brighter.Analyzer", "src\Paramore.Brighter.Analyzer\Paramore.Brighter.Analyzer.csproj", "{A0611BBC-00BB-811C-4DFF-CAAB079BB89C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Analyzer", "Analyzer", "{60F7B2E1-1635-44A6-A2A9-06EA2D61E152}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AnalyzerSamples", "samples\Analyzer\AnalyzerSamples\AnalyzerSamples.csproj", "{29C4E1FC-2BEA-45A9-BF1A-1D7DE77E48D2}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Debug|Mixed Platforms = Debug|Mixed Platforms - Debug|x86 = Debug|x86 Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU Release|Mixed Platforms = Release|Mixed Platforms - Release|x86 = Release|x86 Release|x64 = Release|x64 + Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {3975AC2F-C3C0-4044-AFC8-A5F2AAC565FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3975AC2F-C3C0-4044-AFC8-A5F2AAC565FE}.Debug|Any CPU.Build.0 = Debug|Any CPU {3975AC2F-C3C0-4044-AFC8-A5F2AAC565FE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {3975AC2F-C3C0-4044-AFC8-A5F2AAC565FE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {3975AC2F-C3C0-4044-AFC8-A5F2AAC565FE}.Debug|x86.ActiveCfg = Debug|Any CPU - {3975AC2F-C3C0-4044-AFC8-A5F2AAC565FE}.Debug|x86.Build.0 = Debug|Any CPU {3975AC2F-C3C0-4044-AFC8-A5F2AAC565FE}.Debug|x64.ActiveCfg = Debug|Any CPU {3975AC2F-C3C0-4044-AFC8-A5F2AAC565FE}.Debug|x64.Build.0 = Debug|Any CPU + {3975AC2F-C3C0-4044-AFC8-A5F2AAC565FE}.Debug|x86.ActiveCfg = Debug|Any CPU + {3975AC2F-C3C0-4044-AFC8-A5F2AAC565FE}.Debug|x86.Build.0 = Debug|Any CPU {3975AC2F-C3C0-4044-AFC8-A5F2AAC565FE}.Release|Any CPU.ActiveCfg = Release|Any CPU {3975AC2F-C3C0-4044-AFC8-A5F2AAC565FE}.Release|Any CPU.Build.0 = Release|Any CPU {3975AC2F-C3C0-4044-AFC8-A5F2AAC565FE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {3975AC2F-C3C0-4044-AFC8-A5F2AAC565FE}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {3975AC2F-C3C0-4044-AFC8-A5F2AAC565FE}.Release|x86.ActiveCfg = Release|Any CPU - {3975AC2F-C3C0-4044-AFC8-A5F2AAC565FE}.Release|x86.Build.0 = Release|Any CPU {3975AC2F-C3C0-4044-AFC8-A5F2AAC565FE}.Release|x64.ActiveCfg = Release|Any CPU {3975AC2F-C3C0-4044-AFC8-A5F2AAC565FE}.Release|x64.Build.0 = Release|Any CPU + {3975AC2F-C3C0-4044-AFC8-A5F2AAC565FE}.Release|x86.ActiveCfg = Release|Any CPU + {3975AC2F-C3C0-4044-AFC8-A5F2AAC565FE}.Release|x86.Build.0 = Release|Any CPU {E01C809C-AF79-4BA9-9ECB-80C60802C073}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E01C809C-AF79-4BA9-9ECB-80C60802C073}.Debug|Any CPU.Build.0 = Debug|Any CPU {E01C809C-AF79-4BA9-9ECB-80C60802C073}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {E01C809C-AF79-4BA9-9ECB-80C60802C073}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {E01C809C-AF79-4BA9-9ECB-80C60802C073}.Debug|x86.ActiveCfg = Debug|Any CPU - {E01C809C-AF79-4BA9-9ECB-80C60802C073}.Debug|x86.Build.0 = Debug|Any CPU {E01C809C-AF79-4BA9-9ECB-80C60802C073}.Debug|x64.ActiveCfg = Debug|Any CPU {E01C809C-AF79-4BA9-9ECB-80C60802C073}.Debug|x64.Build.0 = Debug|Any CPU + {E01C809C-AF79-4BA9-9ECB-80C60802C073}.Debug|x86.ActiveCfg = Debug|Any CPU + {E01C809C-AF79-4BA9-9ECB-80C60802C073}.Debug|x86.Build.0 = Debug|Any CPU {E01C809C-AF79-4BA9-9ECB-80C60802C073}.Release|Any CPU.ActiveCfg = Release|Any CPU {E01C809C-AF79-4BA9-9ECB-80C60802C073}.Release|Any CPU.Build.0 = Release|Any CPU {E01C809C-AF79-4BA9-9ECB-80C60802C073}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {E01C809C-AF79-4BA9-9ECB-80C60802C073}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {E01C809C-AF79-4BA9-9ECB-80C60802C073}.Release|x86.ActiveCfg = Release|Any CPU - {E01C809C-AF79-4BA9-9ECB-80C60802C073}.Release|x86.Build.0 = Release|Any CPU {E01C809C-AF79-4BA9-9ECB-80C60802C073}.Release|x64.ActiveCfg = Release|Any CPU {E01C809C-AF79-4BA9-9ECB-80C60802C073}.Release|x64.Build.0 = Release|Any CPU + {E01C809C-AF79-4BA9-9ECB-80C60802C073}.Release|x86.ActiveCfg = Release|Any CPU + {E01C809C-AF79-4BA9-9ECB-80C60802C073}.Release|x86.Build.0 = Release|Any CPU {61DE9904-884B-4E8A-A4DF-CD697B5A9CF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {61DE9904-884B-4E8A-A4DF-CD697B5A9CF6}.Debug|Any CPU.Build.0 = Debug|Any CPU {61DE9904-884B-4E8A-A4DF-CD697B5A9CF6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {61DE9904-884B-4E8A-A4DF-CD697B5A9CF6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {61DE9904-884B-4E8A-A4DF-CD697B5A9CF6}.Debug|x86.ActiveCfg = Debug|Any CPU - {61DE9904-884B-4E8A-A4DF-CD697B5A9CF6}.Debug|x86.Build.0 = Debug|Any CPU {61DE9904-884B-4E8A-A4DF-CD697B5A9CF6}.Debug|x64.ActiveCfg = Debug|Any CPU {61DE9904-884B-4E8A-A4DF-CD697B5A9CF6}.Debug|x64.Build.0 = Debug|Any CPU + {61DE9904-884B-4E8A-A4DF-CD697B5A9CF6}.Debug|x86.ActiveCfg = Debug|Any CPU + {61DE9904-884B-4E8A-A4DF-CD697B5A9CF6}.Debug|x86.Build.0 = Debug|Any CPU {61DE9904-884B-4E8A-A4DF-CD697B5A9CF6}.Release|Any CPU.ActiveCfg = Release|Any CPU {61DE9904-884B-4E8A-A4DF-CD697B5A9CF6}.Release|Any CPU.Build.0 = Release|Any CPU {61DE9904-884B-4E8A-A4DF-CD697B5A9CF6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {61DE9904-884B-4E8A-A4DF-CD697B5A9CF6}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {61DE9904-884B-4E8A-A4DF-CD697B5A9CF6}.Release|x86.ActiveCfg = Release|Any CPU - {61DE9904-884B-4E8A-A4DF-CD697B5A9CF6}.Release|x86.Build.0 = Release|Any CPU {61DE9904-884B-4E8A-A4DF-CD697B5A9CF6}.Release|x64.ActiveCfg = Release|Any CPU {61DE9904-884B-4E8A-A4DF-CD697B5A9CF6}.Release|x64.Build.0 = Release|Any CPU + {61DE9904-884B-4E8A-A4DF-CD697B5A9CF6}.Release|x86.ActiveCfg = Release|Any CPU + {61DE9904-884B-4E8A-A4DF-CD697B5A9CF6}.Release|x86.Build.0 = Release|Any CPU {6F7705C6-A4C1-4497-BEE5-BA22A7CB2162}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6F7705C6-A4C1-4497-BEE5-BA22A7CB2162}.Debug|Any CPU.Build.0 = Debug|Any CPU {6F7705C6-A4C1-4497-BEE5-BA22A7CB2162}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {6F7705C6-A4C1-4497-BEE5-BA22A7CB2162}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {6F7705C6-A4C1-4497-BEE5-BA22A7CB2162}.Debug|x86.ActiveCfg = Debug|Any CPU - {6F7705C6-A4C1-4497-BEE5-BA22A7CB2162}.Debug|x86.Build.0 = Debug|Any CPU {6F7705C6-A4C1-4497-BEE5-BA22A7CB2162}.Debug|x64.ActiveCfg = Debug|Any CPU {6F7705C6-A4C1-4497-BEE5-BA22A7CB2162}.Debug|x64.Build.0 = Debug|Any CPU + {6F7705C6-A4C1-4497-BEE5-BA22A7CB2162}.Debug|x86.ActiveCfg = Debug|Any CPU + {6F7705C6-A4C1-4497-BEE5-BA22A7CB2162}.Debug|x86.Build.0 = Debug|Any CPU {6F7705C6-A4C1-4497-BEE5-BA22A7CB2162}.Release|Any CPU.ActiveCfg = Release|Any CPU {6F7705C6-A4C1-4497-BEE5-BA22A7CB2162}.Release|Any CPU.Build.0 = Release|Any CPU {6F7705C6-A4C1-4497-BEE5-BA22A7CB2162}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {6F7705C6-A4C1-4497-BEE5-BA22A7CB2162}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {6F7705C6-A4C1-4497-BEE5-BA22A7CB2162}.Release|x86.ActiveCfg = Release|Any CPU - {6F7705C6-A4C1-4497-BEE5-BA22A7CB2162}.Release|x86.Build.0 = Release|Any CPU {6F7705C6-A4C1-4497-BEE5-BA22A7CB2162}.Release|x64.ActiveCfg = Release|Any CPU {6F7705C6-A4C1-4497-BEE5-BA22A7CB2162}.Release|x64.Build.0 = Release|Any CPU + {6F7705C6-A4C1-4497-BEE5-BA22A7CB2162}.Release|x86.ActiveCfg = Release|Any CPU + {6F7705C6-A4C1-4497-BEE5-BA22A7CB2162}.Release|x86.Build.0 = Release|Any CPU {BD55E987-D3D6-4E18-8A89-DAC516C61CC7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BD55E987-D3D6-4E18-8A89-DAC516C61CC7}.Debug|Any CPU.Build.0 = Debug|Any CPU {BD55E987-D3D6-4E18-8A89-DAC516C61CC7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {BD55E987-D3D6-4E18-8A89-DAC516C61CC7}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {BD55E987-D3D6-4E18-8A89-DAC516C61CC7}.Debug|x86.ActiveCfg = Debug|Any CPU - {BD55E987-D3D6-4E18-8A89-DAC516C61CC7}.Debug|x86.Build.0 = Debug|Any CPU {BD55E987-D3D6-4E18-8A89-DAC516C61CC7}.Debug|x64.ActiveCfg = Debug|Any CPU {BD55E987-D3D6-4E18-8A89-DAC516C61CC7}.Debug|x64.Build.0 = Debug|Any CPU + {BD55E987-D3D6-4E18-8A89-DAC516C61CC7}.Debug|x86.ActiveCfg = Debug|Any CPU + {BD55E987-D3D6-4E18-8A89-DAC516C61CC7}.Debug|x86.Build.0 = Debug|Any CPU {BD55E987-D3D6-4E18-8A89-DAC516C61CC7}.Release|Any CPU.ActiveCfg = Release|Any CPU {BD55E987-D3D6-4E18-8A89-DAC516C61CC7}.Release|Any CPU.Build.0 = Release|Any CPU {BD55E987-D3D6-4E18-8A89-DAC516C61CC7}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {BD55E987-D3D6-4E18-8A89-DAC516C61CC7}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {BD55E987-D3D6-4E18-8A89-DAC516C61CC7}.Release|x86.ActiveCfg = Release|Any CPU - {BD55E987-D3D6-4E18-8A89-DAC516C61CC7}.Release|x86.Build.0 = Release|Any CPU {BD55E987-D3D6-4E18-8A89-DAC516C61CC7}.Release|x64.ActiveCfg = Release|Any CPU {BD55E987-D3D6-4E18-8A89-DAC516C61CC7}.Release|x64.Build.0 = Release|Any CPU + {BD55E987-D3D6-4E18-8A89-DAC516C61CC7}.Release|x86.ActiveCfg = Release|Any CPU + {BD55E987-D3D6-4E18-8A89-DAC516C61CC7}.Release|x86.Build.0 = Release|Any CPU {3A9F4CF4-AC46-4209-AEC5-1751403E87BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3A9F4CF4-AC46-4209-AEC5-1751403E87BA}.Debug|Any CPU.Build.0 = Debug|Any CPU {3A9F4CF4-AC46-4209-AEC5-1751403E87BA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {3A9F4CF4-AC46-4209-AEC5-1751403E87BA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {3A9F4CF4-AC46-4209-AEC5-1751403E87BA}.Debug|x86.ActiveCfg = Debug|Any CPU - {3A9F4CF4-AC46-4209-AEC5-1751403E87BA}.Debug|x86.Build.0 = Debug|Any CPU {3A9F4CF4-AC46-4209-AEC5-1751403E87BA}.Debug|x64.ActiveCfg = Debug|Any CPU {3A9F4CF4-AC46-4209-AEC5-1751403E87BA}.Debug|x64.Build.0 = Debug|Any CPU + {3A9F4CF4-AC46-4209-AEC5-1751403E87BA}.Debug|x86.ActiveCfg = Debug|Any CPU + {3A9F4CF4-AC46-4209-AEC5-1751403E87BA}.Debug|x86.Build.0 = Debug|Any CPU {3A9F4CF4-AC46-4209-AEC5-1751403E87BA}.Release|Any CPU.ActiveCfg = Release|Any CPU {3A9F4CF4-AC46-4209-AEC5-1751403E87BA}.Release|Any CPU.Build.0 = Release|Any CPU {3A9F4CF4-AC46-4209-AEC5-1751403E87BA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {3A9F4CF4-AC46-4209-AEC5-1751403E87BA}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {3A9F4CF4-AC46-4209-AEC5-1751403E87BA}.Release|x86.ActiveCfg = Release|Any CPU - {3A9F4CF4-AC46-4209-AEC5-1751403E87BA}.Release|x86.Build.0 = Release|Any CPU {3A9F4CF4-AC46-4209-AEC5-1751403E87BA}.Release|x64.ActiveCfg = Release|Any CPU {3A9F4CF4-AC46-4209-AEC5-1751403E87BA}.Release|x64.Build.0 = Release|Any CPU + {3A9F4CF4-AC46-4209-AEC5-1751403E87BA}.Release|x86.ActiveCfg = Release|Any CPU + {3A9F4CF4-AC46-4209-AEC5-1751403E87BA}.Release|x86.Build.0 = Release|Any CPU {24E3EE6D-BA0A-41E5-8370-BBD30DA61DF4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {24E3EE6D-BA0A-41E5-8370-BBD30DA61DF4}.Debug|Any CPU.Build.0 = Debug|Any CPU {24E3EE6D-BA0A-41E5-8370-BBD30DA61DF4}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {24E3EE6D-BA0A-41E5-8370-BBD30DA61DF4}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {24E3EE6D-BA0A-41E5-8370-BBD30DA61DF4}.Debug|x86.ActiveCfg = Debug|Any CPU - {24E3EE6D-BA0A-41E5-8370-BBD30DA61DF4}.Debug|x86.Build.0 = Debug|Any CPU {24E3EE6D-BA0A-41E5-8370-BBD30DA61DF4}.Debug|x64.ActiveCfg = Debug|Any CPU {24E3EE6D-BA0A-41E5-8370-BBD30DA61DF4}.Debug|x64.Build.0 = Debug|Any CPU + {24E3EE6D-BA0A-41E5-8370-BBD30DA61DF4}.Debug|x86.ActiveCfg = Debug|Any CPU + {24E3EE6D-BA0A-41E5-8370-BBD30DA61DF4}.Debug|x86.Build.0 = Debug|Any CPU {24E3EE6D-BA0A-41E5-8370-BBD30DA61DF4}.Release|Any CPU.ActiveCfg = Release|Any CPU {24E3EE6D-BA0A-41E5-8370-BBD30DA61DF4}.Release|Any CPU.Build.0 = Release|Any CPU {24E3EE6D-BA0A-41E5-8370-BBD30DA61DF4}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {24E3EE6D-BA0A-41E5-8370-BBD30DA61DF4}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {24E3EE6D-BA0A-41E5-8370-BBD30DA61DF4}.Release|x86.ActiveCfg = Release|Any CPU - {24E3EE6D-BA0A-41E5-8370-BBD30DA61DF4}.Release|x86.Build.0 = Release|Any CPU {24E3EE6D-BA0A-41E5-8370-BBD30DA61DF4}.Release|x64.ActiveCfg = Release|Any CPU {24E3EE6D-BA0A-41E5-8370-BBD30DA61DF4}.Release|x64.Build.0 = Release|Any CPU + {24E3EE6D-BA0A-41E5-8370-BBD30DA61DF4}.Release|x86.ActiveCfg = Release|Any CPU + {24E3EE6D-BA0A-41E5-8370-BBD30DA61DF4}.Release|x86.Build.0 = Release|Any CPU {5A8F1495-B8D2-4018-8B3D-6DA25A14290F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5A8F1495-B8D2-4018-8B3D-6DA25A14290F}.Debug|Any CPU.Build.0 = Debug|Any CPU {5A8F1495-B8D2-4018-8B3D-6DA25A14290F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {5A8F1495-B8D2-4018-8B3D-6DA25A14290F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {5A8F1495-B8D2-4018-8B3D-6DA25A14290F}.Debug|x86.ActiveCfg = Debug|Any CPU - {5A8F1495-B8D2-4018-8B3D-6DA25A14290F}.Debug|x86.Build.0 = Debug|Any CPU {5A8F1495-B8D2-4018-8B3D-6DA25A14290F}.Debug|x64.ActiveCfg = Debug|Any CPU {5A8F1495-B8D2-4018-8B3D-6DA25A14290F}.Debug|x64.Build.0 = Debug|Any CPU + {5A8F1495-B8D2-4018-8B3D-6DA25A14290F}.Debug|x86.ActiveCfg = Debug|Any CPU + {5A8F1495-B8D2-4018-8B3D-6DA25A14290F}.Debug|x86.Build.0 = Debug|Any CPU {5A8F1495-B8D2-4018-8B3D-6DA25A14290F}.Release|Any CPU.ActiveCfg = Release|Any CPU {5A8F1495-B8D2-4018-8B3D-6DA25A14290F}.Release|Any CPU.Build.0 = Release|Any CPU {5A8F1495-B8D2-4018-8B3D-6DA25A14290F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {5A8F1495-B8D2-4018-8B3D-6DA25A14290F}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {5A8F1495-B8D2-4018-8B3D-6DA25A14290F}.Release|x86.ActiveCfg = Release|Any CPU - {5A8F1495-B8D2-4018-8B3D-6DA25A14290F}.Release|x86.Build.0 = Release|Any CPU {5A8F1495-B8D2-4018-8B3D-6DA25A14290F}.Release|x64.ActiveCfg = Release|Any CPU {5A8F1495-B8D2-4018-8B3D-6DA25A14290F}.Release|x64.Build.0 = Release|Any CPU + {5A8F1495-B8D2-4018-8B3D-6DA25A14290F}.Release|x86.ActiveCfg = Release|Any CPU + {5A8F1495-B8D2-4018-8B3D-6DA25A14290F}.Release|x86.Build.0 = Release|Any CPU {9E0E5F11-2777-4789-BB09-C866BC5F800D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9E0E5F11-2777-4789-BB09-C866BC5F800D}.Debug|Any CPU.Build.0 = Debug|Any CPU {9E0E5F11-2777-4789-BB09-C866BC5F800D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {9E0E5F11-2777-4789-BB09-C866BC5F800D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {9E0E5F11-2777-4789-BB09-C866BC5F800D}.Debug|x86.ActiveCfg = Debug|Any CPU - {9E0E5F11-2777-4789-BB09-C866BC5F800D}.Debug|x86.Build.0 = Debug|Any CPU {9E0E5F11-2777-4789-BB09-C866BC5F800D}.Debug|x64.ActiveCfg = Debug|Any CPU {9E0E5F11-2777-4789-BB09-C866BC5F800D}.Debug|x64.Build.0 = Debug|Any CPU + {9E0E5F11-2777-4789-BB09-C866BC5F800D}.Debug|x86.ActiveCfg = Debug|Any CPU + {9E0E5F11-2777-4789-BB09-C866BC5F800D}.Debug|x86.Build.0 = Debug|Any CPU {9E0E5F11-2777-4789-BB09-C866BC5F800D}.Release|Any CPU.ActiveCfg = Release|Any CPU {9E0E5F11-2777-4789-BB09-C866BC5F800D}.Release|Any CPU.Build.0 = Release|Any CPU {9E0E5F11-2777-4789-BB09-C866BC5F800D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {9E0E5F11-2777-4789-BB09-C866BC5F800D}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {9E0E5F11-2777-4789-BB09-C866BC5F800D}.Release|x86.ActiveCfg = Release|Any CPU - {9E0E5F11-2777-4789-BB09-C866BC5F800D}.Release|x86.Build.0 = Release|Any CPU {9E0E5F11-2777-4789-BB09-C866BC5F800D}.Release|x64.ActiveCfg = Release|Any CPU {9E0E5F11-2777-4789-BB09-C866BC5F800D}.Release|x64.Build.0 = Release|Any CPU + {9E0E5F11-2777-4789-BB09-C866BC5F800D}.Release|x86.ActiveCfg = Release|Any CPU + {9E0E5F11-2777-4789-BB09-C866BC5F800D}.Release|x86.Build.0 = Release|Any CPU {091C19CA-31B8-4ECA-BA0B-ED229A6404C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {091C19CA-31B8-4ECA-BA0B-ED229A6404C8}.Debug|Any CPU.Build.0 = Debug|Any CPU {091C19CA-31B8-4ECA-BA0B-ED229A6404C8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {091C19CA-31B8-4ECA-BA0B-ED229A6404C8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {091C19CA-31B8-4ECA-BA0B-ED229A6404C8}.Debug|x86.ActiveCfg = Debug|Any CPU - {091C19CA-31B8-4ECA-BA0B-ED229A6404C8}.Debug|x86.Build.0 = Debug|Any CPU {091C19CA-31B8-4ECA-BA0B-ED229A6404C8}.Debug|x64.ActiveCfg = Debug|Any CPU {091C19CA-31B8-4ECA-BA0B-ED229A6404C8}.Debug|x64.Build.0 = Debug|Any CPU + {091C19CA-31B8-4ECA-BA0B-ED229A6404C8}.Debug|x86.ActiveCfg = Debug|Any CPU + {091C19CA-31B8-4ECA-BA0B-ED229A6404C8}.Debug|x86.Build.0 = Debug|Any CPU {091C19CA-31B8-4ECA-BA0B-ED229A6404C8}.Release|Any CPU.ActiveCfg = Release|Any CPU {091C19CA-31B8-4ECA-BA0B-ED229A6404C8}.Release|Any CPU.Build.0 = Release|Any CPU {091C19CA-31B8-4ECA-BA0B-ED229A6404C8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {091C19CA-31B8-4ECA-BA0B-ED229A6404C8}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {091C19CA-31B8-4ECA-BA0B-ED229A6404C8}.Release|x86.ActiveCfg = Release|Any CPU - {091C19CA-31B8-4ECA-BA0B-ED229A6404C8}.Release|x86.Build.0 = Release|Any CPU {091C19CA-31B8-4ECA-BA0B-ED229A6404C8}.Release|x64.ActiveCfg = Release|Any CPU {091C19CA-31B8-4ECA-BA0B-ED229A6404C8}.Release|x64.Build.0 = Release|Any CPU + {091C19CA-31B8-4ECA-BA0B-ED229A6404C8}.Release|x86.ActiveCfg = Release|Any CPU + {091C19CA-31B8-4ECA-BA0B-ED229A6404C8}.Release|x86.Build.0 = Release|Any CPU {8A25A203-818C-4021-907F-52E409CBB205}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8A25A203-818C-4021-907F-52E409CBB205}.Debug|Any CPU.Build.0 = Debug|Any CPU {8A25A203-818C-4021-907F-52E409CBB205}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {8A25A203-818C-4021-907F-52E409CBB205}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {8A25A203-818C-4021-907F-52E409CBB205}.Debug|x86.ActiveCfg = Debug|Any CPU - {8A25A203-818C-4021-907F-52E409CBB205}.Debug|x86.Build.0 = Debug|Any CPU {8A25A203-818C-4021-907F-52E409CBB205}.Debug|x64.ActiveCfg = Debug|Any CPU {8A25A203-818C-4021-907F-52E409CBB205}.Debug|x64.Build.0 = Debug|Any CPU + {8A25A203-818C-4021-907F-52E409CBB205}.Debug|x86.ActiveCfg = Debug|Any CPU + {8A25A203-818C-4021-907F-52E409CBB205}.Debug|x86.Build.0 = Debug|Any CPU {8A25A203-818C-4021-907F-52E409CBB205}.Release|Any CPU.ActiveCfg = Release|Any CPU {8A25A203-818C-4021-907F-52E409CBB205}.Release|Any CPU.Build.0 = Release|Any CPU {8A25A203-818C-4021-907F-52E409CBB205}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {8A25A203-818C-4021-907F-52E409CBB205}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {8A25A203-818C-4021-907F-52E409CBB205}.Release|x86.ActiveCfg = Release|Any CPU - {8A25A203-818C-4021-907F-52E409CBB205}.Release|x86.Build.0 = Release|Any CPU {8A25A203-818C-4021-907F-52E409CBB205}.Release|x64.ActiveCfg = Release|Any CPU {8A25A203-818C-4021-907F-52E409CBB205}.Release|x64.Build.0 = Release|Any CPU + {8A25A203-818C-4021-907F-52E409CBB205}.Release|x86.ActiveCfg = Release|Any CPU + {8A25A203-818C-4021-907F-52E409CBB205}.Release|x86.Build.0 = Release|Any CPU {6B220A28-32B2-4684-813E-149CCB396C2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6B220A28-32B2-4684-813E-149CCB396C2B}.Debug|Any CPU.Build.0 = Debug|Any CPU {6B220A28-32B2-4684-813E-149CCB396C2B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {6B220A28-32B2-4684-813E-149CCB396C2B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {6B220A28-32B2-4684-813E-149CCB396C2B}.Debug|x86.ActiveCfg = Debug|Any CPU - {6B220A28-32B2-4684-813E-149CCB396C2B}.Debug|x86.Build.0 = Debug|Any CPU {6B220A28-32B2-4684-813E-149CCB396C2B}.Debug|x64.ActiveCfg = Debug|Any CPU {6B220A28-32B2-4684-813E-149CCB396C2B}.Debug|x64.Build.0 = Debug|Any CPU + {6B220A28-32B2-4684-813E-149CCB396C2B}.Debug|x86.ActiveCfg = Debug|Any CPU + {6B220A28-32B2-4684-813E-149CCB396C2B}.Debug|x86.Build.0 = Debug|Any CPU {6B220A28-32B2-4684-813E-149CCB396C2B}.Release|Any CPU.ActiveCfg = Release|Any CPU {6B220A28-32B2-4684-813E-149CCB396C2B}.Release|Any CPU.Build.0 = Release|Any CPU {6B220A28-32B2-4684-813E-149CCB396C2B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {6B220A28-32B2-4684-813E-149CCB396C2B}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {6B220A28-32B2-4684-813E-149CCB396C2B}.Release|x86.ActiveCfg = Release|Any CPU - {6B220A28-32B2-4684-813E-149CCB396C2B}.Release|x86.Build.0 = Release|Any CPU {6B220A28-32B2-4684-813E-149CCB396C2B}.Release|x64.ActiveCfg = Release|Any CPU {6B220A28-32B2-4684-813E-149CCB396C2B}.Release|x64.Build.0 = Release|Any CPU + {6B220A28-32B2-4684-813E-149CCB396C2B}.Release|x86.ActiveCfg = Release|Any CPU + {6B220A28-32B2-4684-813E-149CCB396C2B}.Release|x86.Build.0 = Release|Any CPU {8477B248-39CC-4273-B133-8A3233D9BB09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8477B248-39CC-4273-B133-8A3233D9BB09}.Debug|Any CPU.Build.0 = Debug|Any CPU {8477B248-39CC-4273-B133-8A3233D9BB09}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {8477B248-39CC-4273-B133-8A3233D9BB09}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {8477B248-39CC-4273-B133-8A3233D9BB09}.Debug|x86.ActiveCfg = Debug|Any CPU - {8477B248-39CC-4273-B133-8A3233D9BB09}.Debug|x86.Build.0 = Debug|Any CPU {8477B248-39CC-4273-B133-8A3233D9BB09}.Debug|x64.ActiveCfg = Debug|Any CPU {8477B248-39CC-4273-B133-8A3233D9BB09}.Debug|x64.Build.0 = Debug|Any CPU + {8477B248-39CC-4273-B133-8A3233D9BB09}.Debug|x86.ActiveCfg = Debug|Any CPU + {8477B248-39CC-4273-B133-8A3233D9BB09}.Debug|x86.Build.0 = Debug|Any CPU {8477B248-39CC-4273-B133-8A3233D9BB09}.Release|Any CPU.ActiveCfg = Release|Any CPU {8477B248-39CC-4273-B133-8A3233D9BB09}.Release|Any CPU.Build.0 = Release|Any CPU {8477B248-39CC-4273-B133-8A3233D9BB09}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {8477B248-39CC-4273-B133-8A3233D9BB09}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {8477B248-39CC-4273-B133-8A3233D9BB09}.Release|x86.ActiveCfg = Release|Any CPU - {8477B248-39CC-4273-B133-8A3233D9BB09}.Release|x86.Build.0 = Release|Any CPU {8477B248-39CC-4273-B133-8A3233D9BB09}.Release|x64.ActiveCfg = Release|Any CPU {8477B248-39CC-4273-B133-8A3233D9BB09}.Release|x64.Build.0 = Release|Any CPU + {8477B248-39CC-4273-B133-8A3233D9BB09}.Release|x86.ActiveCfg = Release|Any CPU + {8477B248-39CC-4273-B133-8A3233D9BB09}.Release|x86.Build.0 = Release|Any CPU {499A7696-3984-4459-9B04-9DE59593532C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {499A7696-3984-4459-9B04-9DE59593532C}.Debug|Any CPU.Build.0 = Debug|Any CPU {499A7696-3984-4459-9B04-9DE59593532C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {499A7696-3984-4459-9B04-9DE59593532C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {499A7696-3984-4459-9B04-9DE59593532C}.Debug|x86.ActiveCfg = Debug|Any CPU - {499A7696-3984-4459-9B04-9DE59593532C}.Debug|x86.Build.0 = Debug|Any CPU {499A7696-3984-4459-9B04-9DE59593532C}.Debug|x64.ActiveCfg = Debug|Any CPU {499A7696-3984-4459-9B04-9DE59593532C}.Debug|x64.Build.0 = Debug|Any CPU + {499A7696-3984-4459-9B04-9DE59593532C}.Debug|x86.ActiveCfg = Debug|Any CPU + {499A7696-3984-4459-9B04-9DE59593532C}.Debug|x86.Build.0 = Debug|Any CPU {499A7696-3984-4459-9B04-9DE59593532C}.Release|Any CPU.ActiveCfg = Release|Any CPU {499A7696-3984-4459-9B04-9DE59593532C}.Release|Any CPU.Build.0 = Release|Any CPU {499A7696-3984-4459-9B04-9DE59593532C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {499A7696-3984-4459-9B04-9DE59593532C}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {499A7696-3984-4459-9B04-9DE59593532C}.Release|x86.ActiveCfg = Release|Any CPU - {499A7696-3984-4459-9B04-9DE59593532C}.Release|x86.Build.0 = Release|Any CPU {499A7696-3984-4459-9B04-9DE59593532C}.Release|x64.ActiveCfg = Release|Any CPU {499A7696-3984-4459-9B04-9DE59593532C}.Release|x64.Build.0 = Release|Any CPU + {499A7696-3984-4459-9B04-9DE59593532C}.Release|x86.ActiveCfg = Release|Any CPU + {499A7696-3984-4459-9B04-9DE59593532C}.Release|x86.Build.0 = Release|Any CPU {EB90ECFD-88AC-4F53-B6C7-37BF78349BCD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {EB90ECFD-88AC-4F53-B6C7-37BF78349BCD}.Debug|Any CPU.Build.0 = Debug|Any CPU {EB90ECFD-88AC-4F53-B6C7-37BF78349BCD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {EB90ECFD-88AC-4F53-B6C7-37BF78349BCD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {EB90ECFD-88AC-4F53-B6C7-37BF78349BCD}.Debug|x86.ActiveCfg = Debug|Any CPU - {EB90ECFD-88AC-4F53-B6C7-37BF78349BCD}.Debug|x86.Build.0 = Debug|Any CPU {EB90ECFD-88AC-4F53-B6C7-37BF78349BCD}.Debug|x64.ActiveCfg = Debug|Any CPU {EB90ECFD-88AC-4F53-B6C7-37BF78349BCD}.Debug|x64.Build.0 = Debug|Any CPU + {EB90ECFD-88AC-4F53-B6C7-37BF78349BCD}.Debug|x86.ActiveCfg = Debug|Any CPU + {EB90ECFD-88AC-4F53-B6C7-37BF78349BCD}.Debug|x86.Build.0 = Debug|Any CPU {EB90ECFD-88AC-4F53-B6C7-37BF78349BCD}.Release|Any CPU.ActiveCfg = Release|Any CPU {EB90ECFD-88AC-4F53-B6C7-37BF78349BCD}.Release|Any CPU.Build.0 = Release|Any CPU {EB90ECFD-88AC-4F53-B6C7-37BF78349BCD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {EB90ECFD-88AC-4F53-B6C7-37BF78349BCD}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {EB90ECFD-88AC-4F53-B6C7-37BF78349BCD}.Release|x86.ActiveCfg = Release|Any CPU - {EB90ECFD-88AC-4F53-B6C7-37BF78349BCD}.Release|x86.Build.0 = Release|Any CPU {EB90ECFD-88AC-4F53-B6C7-37BF78349BCD}.Release|x64.ActiveCfg = Release|Any CPU {EB90ECFD-88AC-4F53-B6C7-37BF78349BCD}.Release|x64.Build.0 = Release|Any CPU + {EB90ECFD-88AC-4F53-B6C7-37BF78349BCD}.Release|x86.ActiveCfg = Release|Any CPU + {EB90ECFD-88AC-4F53-B6C7-37BF78349BCD}.Release|x86.Build.0 = Release|Any CPU {5355758F-D94B-43EA-A897-CFAF52A8D099}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5355758F-D94B-43EA-A897-CFAF52A8D099}.Debug|Any CPU.Build.0 = Debug|Any CPU {5355758F-D94B-43EA-A897-CFAF52A8D099}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {5355758F-D94B-43EA-A897-CFAF52A8D099}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {5355758F-D94B-43EA-A897-CFAF52A8D099}.Debug|x86.ActiveCfg = Debug|Any CPU - {5355758F-D94B-43EA-A897-CFAF52A8D099}.Debug|x86.Build.0 = Debug|Any CPU {5355758F-D94B-43EA-A897-CFAF52A8D099}.Debug|x64.ActiveCfg = Debug|Any CPU {5355758F-D94B-43EA-A897-CFAF52A8D099}.Debug|x64.Build.0 = Debug|Any CPU + {5355758F-D94B-43EA-A897-CFAF52A8D099}.Debug|x86.ActiveCfg = Debug|Any CPU + {5355758F-D94B-43EA-A897-CFAF52A8D099}.Debug|x86.Build.0 = Debug|Any CPU {5355758F-D94B-43EA-A897-CFAF52A8D099}.Release|Any CPU.ActiveCfg = Release|Any CPU {5355758F-D94B-43EA-A897-CFAF52A8D099}.Release|Any CPU.Build.0 = Release|Any CPU {5355758F-D94B-43EA-A897-CFAF52A8D099}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {5355758F-D94B-43EA-A897-CFAF52A8D099}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {5355758F-D94B-43EA-A897-CFAF52A8D099}.Release|x86.ActiveCfg = Release|Any CPU - {5355758F-D94B-43EA-A897-CFAF52A8D099}.Release|x86.Build.0 = Release|Any CPU {5355758F-D94B-43EA-A897-CFAF52A8D099}.Release|x64.ActiveCfg = Release|Any CPU {5355758F-D94B-43EA-A897-CFAF52A8D099}.Release|x64.Build.0 = Release|Any CPU + {5355758F-D94B-43EA-A897-CFAF52A8D099}.Release|x86.ActiveCfg = Release|Any CPU + {5355758F-D94B-43EA-A897-CFAF52A8D099}.Release|x86.Build.0 = Release|Any CPU {61657DEB-06F7-4876-9F29-2764EF353275}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {61657DEB-06F7-4876-9F29-2764EF353275}.Debug|Any CPU.Build.0 = Debug|Any CPU {61657DEB-06F7-4876-9F29-2764EF353275}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {61657DEB-06F7-4876-9F29-2764EF353275}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {61657DEB-06F7-4876-9F29-2764EF353275}.Debug|x86.ActiveCfg = Debug|Any CPU - {61657DEB-06F7-4876-9F29-2764EF353275}.Debug|x86.Build.0 = Debug|Any CPU {61657DEB-06F7-4876-9F29-2764EF353275}.Debug|x64.ActiveCfg = Debug|Any CPU {61657DEB-06F7-4876-9F29-2764EF353275}.Debug|x64.Build.0 = Debug|Any CPU + {61657DEB-06F7-4876-9F29-2764EF353275}.Debug|x86.ActiveCfg = Debug|Any CPU + {61657DEB-06F7-4876-9F29-2764EF353275}.Debug|x86.Build.0 = Debug|Any CPU {61657DEB-06F7-4876-9F29-2764EF353275}.Release|Any CPU.ActiveCfg = Release|Any CPU {61657DEB-06F7-4876-9F29-2764EF353275}.Release|Any CPU.Build.0 = Release|Any CPU {61657DEB-06F7-4876-9F29-2764EF353275}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {61657DEB-06F7-4876-9F29-2764EF353275}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {61657DEB-06F7-4876-9F29-2764EF353275}.Release|x86.ActiveCfg = Release|Any CPU - {61657DEB-06F7-4876-9F29-2764EF353275}.Release|x86.Build.0 = Release|Any CPU {61657DEB-06F7-4876-9F29-2764EF353275}.Release|x64.ActiveCfg = Release|Any CPU {61657DEB-06F7-4876-9F29-2764EF353275}.Release|x64.Build.0 = Release|Any CPU + {61657DEB-06F7-4876-9F29-2764EF353275}.Release|x86.ActiveCfg = Release|Any CPU + {61657DEB-06F7-4876-9F29-2764EF353275}.Release|x86.Build.0 = Release|Any CPU {B796D6F5-AE94-4CA2-8651-B1F36E589451}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B796D6F5-AE94-4CA2-8651-B1F36E589451}.Debug|Any CPU.Build.0 = Debug|Any CPU {B796D6F5-AE94-4CA2-8651-B1F36E589451}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {B796D6F5-AE94-4CA2-8651-B1F36E589451}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {B796D6F5-AE94-4CA2-8651-B1F36E589451}.Debug|x86.ActiveCfg = Debug|Any CPU - {B796D6F5-AE94-4CA2-8651-B1F36E589451}.Debug|x86.Build.0 = Debug|Any CPU {B796D6F5-AE94-4CA2-8651-B1F36E589451}.Debug|x64.ActiveCfg = Debug|Any CPU {B796D6F5-AE94-4CA2-8651-B1F36E589451}.Debug|x64.Build.0 = Debug|Any CPU + {B796D6F5-AE94-4CA2-8651-B1F36E589451}.Debug|x86.ActiveCfg = Debug|Any CPU + {B796D6F5-AE94-4CA2-8651-B1F36E589451}.Debug|x86.Build.0 = Debug|Any CPU {B796D6F5-AE94-4CA2-8651-B1F36E589451}.Release|Any CPU.ActiveCfg = Release|Any CPU {B796D6F5-AE94-4CA2-8651-B1F36E589451}.Release|Any CPU.Build.0 = Release|Any CPU {B796D6F5-AE94-4CA2-8651-B1F36E589451}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {B796D6F5-AE94-4CA2-8651-B1F36E589451}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {B796D6F5-AE94-4CA2-8651-B1F36E589451}.Release|x86.ActiveCfg = Release|Any CPU - {B796D6F5-AE94-4CA2-8651-B1F36E589451}.Release|x86.Build.0 = Release|Any CPU {B796D6F5-AE94-4CA2-8651-B1F36E589451}.Release|x64.ActiveCfg = Release|Any CPU {B796D6F5-AE94-4CA2-8651-B1F36E589451}.Release|x64.Build.0 = Release|Any CPU + {B796D6F5-AE94-4CA2-8651-B1F36E589451}.Release|x86.ActiveCfg = Release|Any CPU + {B796D6F5-AE94-4CA2-8651-B1F36E589451}.Release|x86.Build.0 = Release|Any CPU {7F0CDB19-93C6-4C97-A77E-CEFAEB842BB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7F0CDB19-93C6-4C97-A77E-CEFAEB842BB1}.Debug|Any CPU.Build.0 = Debug|Any CPU {7F0CDB19-93C6-4C97-A77E-CEFAEB842BB1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {7F0CDB19-93C6-4C97-A77E-CEFAEB842BB1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {7F0CDB19-93C6-4C97-A77E-CEFAEB842BB1}.Debug|x86.ActiveCfg = Debug|Any CPU - {7F0CDB19-93C6-4C97-A77E-CEFAEB842BB1}.Debug|x86.Build.0 = Debug|Any CPU {7F0CDB19-93C6-4C97-A77E-CEFAEB842BB1}.Debug|x64.ActiveCfg = Debug|Any CPU {7F0CDB19-93C6-4C97-A77E-CEFAEB842BB1}.Debug|x64.Build.0 = Debug|Any CPU + {7F0CDB19-93C6-4C97-A77E-CEFAEB842BB1}.Debug|x86.ActiveCfg = Debug|Any CPU + {7F0CDB19-93C6-4C97-A77E-CEFAEB842BB1}.Debug|x86.Build.0 = Debug|Any CPU {7F0CDB19-93C6-4C97-A77E-CEFAEB842BB1}.Release|Any CPU.ActiveCfg = Release|Any CPU {7F0CDB19-93C6-4C97-A77E-CEFAEB842BB1}.Release|Any CPU.Build.0 = Release|Any CPU {7F0CDB19-93C6-4C97-A77E-CEFAEB842BB1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {7F0CDB19-93C6-4C97-A77E-CEFAEB842BB1}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {7F0CDB19-93C6-4C97-A77E-CEFAEB842BB1}.Release|x86.ActiveCfg = Release|Any CPU - {7F0CDB19-93C6-4C97-A77E-CEFAEB842BB1}.Release|x86.Build.0 = Release|Any CPU {7F0CDB19-93C6-4C97-A77E-CEFAEB842BB1}.Release|x64.ActiveCfg = Release|Any CPU {7F0CDB19-93C6-4C97-A77E-CEFAEB842BB1}.Release|x64.Build.0 = Release|Any CPU + {7F0CDB19-93C6-4C97-A77E-CEFAEB842BB1}.Release|x86.ActiveCfg = Release|Any CPU + {7F0CDB19-93C6-4C97-A77E-CEFAEB842BB1}.Release|x86.Build.0 = Release|Any CPU {6494BB0C-728D-43CB-B3DA-E56E8D0E4938}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6494BB0C-728D-43CB-B3DA-E56E8D0E4938}.Debug|Any CPU.Build.0 = Debug|Any CPU {6494BB0C-728D-43CB-B3DA-E56E8D0E4938}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {6494BB0C-728D-43CB-B3DA-E56E8D0E4938}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {6494BB0C-728D-43CB-B3DA-E56E8D0E4938}.Debug|x86.ActiveCfg = Debug|Any CPU - {6494BB0C-728D-43CB-B3DA-E56E8D0E4938}.Debug|x86.Build.0 = Debug|Any CPU {6494BB0C-728D-43CB-B3DA-E56E8D0E4938}.Debug|x64.ActiveCfg = Debug|Any CPU {6494BB0C-728D-43CB-B3DA-E56E8D0E4938}.Debug|x64.Build.0 = Debug|Any CPU + {6494BB0C-728D-43CB-B3DA-E56E8D0E4938}.Debug|x86.ActiveCfg = Debug|Any CPU + {6494BB0C-728D-43CB-B3DA-E56E8D0E4938}.Debug|x86.Build.0 = Debug|Any CPU {6494BB0C-728D-43CB-B3DA-E56E8D0E4938}.Release|Any CPU.ActiveCfg = Release|Any CPU {6494BB0C-728D-43CB-B3DA-E56E8D0E4938}.Release|Any CPU.Build.0 = Release|Any CPU {6494BB0C-728D-43CB-B3DA-E56E8D0E4938}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {6494BB0C-728D-43CB-B3DA-E56E8D0E4938}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {6494BB0C-728D-43CB-B3DA-E56E8D0E4938}.Release|x86.ActiveCfg = Release|Any CPU - {6494BB0C-728D-43CB-B3DA-E56E8D0E4938}.Release|x86.Build.0 = Release|Any CPU {6494BB0C-728D-43CB-B3DA-E56E8D0E4938}.Release|x64.ActiveCfg = Release|Any CPU {6494BB0C-728D-43CB-B3DA-E56E8D0E4938}.Release|x64.Build.0 = Release|Any CPU + {6494BB0C-728D-43CB-B3DA-E56E8D0E4938}.Release|x86.ActiveCfg = Release|Any CPU + {6494BB0C-728D-43CB-B3DA-E56E8D0E4938}.Release|x86.Build.0 = Release|Any CPU {FDD6E413-2BC4-4450-A9A6-E8BD2EF86052}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FDD6E413-2BC4-4450-A9A6-E8BD2EF86052}.Debug|Any CPU.Build.0 = Debug|Any CPU {FDD6E413-2BC4-4450-A9A6-E8BD2EF86052}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {FDD6E413-2BC4-4450-A9A6-E8BD2EF86052}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {FDD6E413-2BC4-4450-A9A6-E8BD2EF86052}.Debug|x86.ActiveCfg = Debug|Any CPU - {FDD6E413-2BC4-4450-A9A6-E8BD2EF86052}.Debug|x86.Build.0 = Debug|Any CPU {FDD6E413-2BC4-4450-A9A6-E8BD2EF86052}.Debug|x64.ActiveCfg = Debug|Any CPU {FDD6E413-2BC4-4450-A9A6-E8BD2EF86052}.Debug|x64.Build.0 = Debug|Any CPU + {FDD6E413-2BC4-4450-A9A6-E8BD2EF86052}.Debug|x86.ActiveCfg = Debug|Any CPU + {FDD6E413-2BC4-4450-A9A6-E8BD2EF86052}.Debug|x86.Build.0 = Debug|Any CPU {FDD6E413-2BC4-4450-A9A6-E8BD2EF86052}.Release|Any CPU.ActiveCfg = Release|Any CPU {FDD6E413-2BC4-4450-A9A6-E8BD2EF86052}.Release|Any CPU.Build.0 = Release|Any CPU {FDD6E413-2BC4-4450-A9A6-E8BD2EF86052}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {FDD6E413-2BC4-4450-A9A6-E8BD2EF86052}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {FDD6E413-2BC4-4450-A9A6-E8BD2EF86052}.Release|x86.ActiveCfg = Release|Any CPU - {FDD6E413-2BC4-4450-A9A6-E8BD2EF86052}.Release|x86.Build.0 = Release|Any CPU {FDD6E413-2BC4-4450-A9A6-E8BD2EF86052}.Release|x64.ActiveCfg = Release|Any CPU {FDD6E413-2BC4-4450-A9A6-E8BD2EF86052}.Release|x64.Build.0 = Release|Any CPU + {FDD6E413-2BC4-4450-A9A6-E8BD2EF86052}.Release|x86.ActiveCfg = Release|Any CPU + {FDD6E413-2BC4-4450-A9A6-E8BD2EF86052}.Release|x86.Build.0 = Release|Any CPU {28BC78DD-0B4E-4C45-957A-85DED8E55AAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {28BC78DD-0B4E-4C45-957A-85DED8E55AAD}.Debug|Any CPU.Build.0 = Debug|Any CPU {28BC78DD-0B4E-4C45-957A-85DED8E55AAD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {28BC78DD-0B4E-4C45-957A-85DED8E55AAD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {28BC78DD-0B4E-4C45-957A-85DED8E55AAD}.Debug|x86.ActiveCfg = Debug|Any CPU - {28BC78DD-0B4E-4C45-957A-85DED8E55AAD}.Debug|x86.Build.0 = Debug|Any CPU {28BC78DD-0B4E-4C45-957A-85DED8E55AAD}.Debug|x64.ActiveCfg = Debug|Any CPU {28BC78DD-0B4E-4C45-957A-85DED8E55AAD}.Debug|x64.Build.0 = Debug|Any CPU + {28BC78DD-0B4E-4C45-957A-85DED8E55AAD}.Debug|x86.ActiveCfg = Debug|Any CPU + {28BC78DD-0B4E-4C45-957A-85DED8E55AAD}.Debug|x86.Build.0 = Debug|Any CPU {28BC78DD-0B4E-4C45-957A-85DED8E55AAD}.Release|Any CPU.ActiveCfg = Release|Any CPU {28BC78DD-0B4E-4C45-957A-85DED8E55AAD}.Release|Any CPU.Build.0 = Release|Any CPU {28BC78DD-0B4E-4C45-957A-85DED8E55AAD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {28BC78DD-0B4E-4C45-957A-85DED8E55AAD}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {28BC78DD-0B4E-4C45-957A-85DED8E55AAD}.Release|x86.ActiveCfg = Release|Any CPU - {28BC78DD-0B4E-4C45-957A-85DED8E55AAD}.Release|x86.Build.0 = Release|Any CPU {28BC78DD-0B4E-4C45-957A-85DED8E55AAD}.Release|x64.ActiveCfg = Release|Any CPU {28BC78DD-0B4E-4C45-957A-85DED8E55AAD}.Release|x64.Build.0 = Release|Any CPU + {28BC78DD-0B4E-4C45-957A-85DED8E55AAD}.Release|x86.ActiveCfg = Release|Any CPU + {28BC78DD-0B4E-4C45-957A-85DED8E55AAD}.Release|x86.Build.0 = Release|Any CPU {9064D9EE-2A98-4EB1-94E1-6732F1981A44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9064D9EE-2A98-4EB1-94E1-6732F1981A44}.Debug|Any CPU.Build.0 = Debug|Any CPU {9064D9EE-2A98-4EB1-94E1-6732F1981A44}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {9064D9EE-2A98-4EB1-94E1-6732F1981A44}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {9064D9EE-2A98-4EB1-94E1-6732F1981A44}.Debug|x86.ActiveCfg = Debug|Any CPU - {9064D9EE-2A98-4EB1-94E1-6732F1981A44}.Debug|x86.Build.0 = Debug|Any CPU {9064D9EE-2A98-4EB1-94E1-6732F1981A44}.Debug|x64.ActiveCfg = Debug|Any CPU {9064D9EE-2A98-4EB1-94E1-6732F1981A44}.Debug|x64.Build.0 = Debug|Any CPU + {9064D9EE-2A98-4EB1-94E1-6732F1981A44}.Debug|x86.ActiveCfg = Debug|Any CPU + {9064D9EE-2A98-4EB1-94E1-6732F1981A44}.Debug|x86.Build.0 = Debug|Any CPU {9064D9EE-2A98-4EB1-94E1-6732F1981A44}.Release|Any CPU.ActiveCfg = Release|Any CPU {9064D9EE-2A98-4EB1-94E1-6732F1981A44}.Release|Any CPU.Build.0 = Release|Any CPU {9064D9EE-2A98-4EB1-94E1-6732F1981A44}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {9064D9EE-2A98-4EB1-94E1-6732F1981A44}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {9064D9EE-2A98-4EB1-94E1-6732F1981A44}.Release|x86.ActiveCfg = Release|Any CPU - {9064D9EE-2A98-4EB1-94E1-6732F1981A44}.Release|x86.Build.0 = Release|Any CPU {9064D9EE-2A98-4EB1-94E1-6732F1981A44}.Release|x64.ActiveCfg = Release|Any CPU {9064D9EE-2A98-4EB1-94E1-6732F1981A44}.Release|x64.Build.0 = Release|Any CPU + {9064D9EE-2A98-4EB1-94E1-6732F1981A44}.Release|x86.ActiveCfg = Release|Any CPU + {9064D9EE-2A98-4EB1-94E1-6732F1981A44}.Release|x86.Build.0 = Release|Any CPU {7336CE11-A1FA-4D5B-AD04-EBC91EDEC9FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7336CE11-A1FA-4D5B-AD04-EBC91EDEC9FC}.Debug|Any CPU.Build.0 = Debug|Any CPU {7336CE11-A1FA-4D5B-AD04-EBC91EDEC9FC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {7336CE11-A1FA-4D5B-AD04-EBC91EDEC9FC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {7336CE11-A1FA-4D5B-AD04-EBC91EDEC9FC}.Debug|x86.ActiveCfg = Debug|Any CPU - {7336CE11-A1FA-4D5B-AD04-EBC91EDEC9FC}.Debug|x86.Build.0 = Debug|Any CPU {7336CE11-A1FA-4D5B-AD04-EBC91EDEC9FC}.Debug|x64.ActiveCfg = Debug|Any CPU {7336CE11-A1FA-4D5B-AD04-EBC91EDEC9FC}.Debug|x64.Build.0 = Debug|Any CPU + {7336CE11-A1FA-4D5B-AD04-EBC91EDEC9FC}.Debug|x86.ActiveCfg = Debug|Any CPU + {7336CE11-A1FA-4D5B-AD04-EBC91EDEC9FC}.Debug|x86.Build.0 = Debug|Any CPU {7336CE11-A1FA-4D5B-AD04-EBC91EDEC9FC}.Release|Any CPU.ActiveCfg = Release|Any CPU {7336CE11-A1FA-4D5B-AD04-EBC91EDEC9FC}.Release|Any CPU.Build.0 = Release|Any CPU {7336CE11-A1FA-4D5B-AD04-EBC91EDEC9FC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {7336CE11-A1FA-4D5B-AD04-EBC91EDEC9FC}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {7336CE11-A1FA-4D5B-AD04-EBC91EDEC9FC}.Release|x86.ActiveCfg = Release|Any CPU - {7336CE11-A1FA-4D5B-AD04-EBC91EDEC9FC}.Release|x86.Build.0 = Release|Any CPU {7336CE11-A1FA-4D5B-AD04-EBC91EDEC9FC}.Release|x64.ActiveCfg = Release|Any CPU {7336CE11-A1FA-4D5B-AD04-EBC91EDEC9FC}.Release|x64.Build.0 = Release|Any CPU + {7336CE11-A1FA-4D5B-AD04-EBC91EDEC9FC}.Release|x86.ActiveCfg = Release|Any CPU + {7336CE11-A1FA-4D5B-AD04-EBC91EDEC9FC}.Release|x86.Build.0 = Release|Any CPU {C480B3A4-791A-40D1-A734-2A276BEDE3E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C480B3A4-791A-40D1-A734-2A276BEDE3E0}.Debug|Any CPU.Build.0 = Debug|Any CPU {C480B3A4-791A-40D1-A734-2A276BEDE3E0}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {C480B3A4-791A-40D1-A734-2A276BEDE3E0}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {C480B3A4-791A-40D1-A734-2A276BEDE3E0}.Debug|x86.ActiveCfg = Debug|Any CPU - {C480B3A4-791A-40D1-A734-2A276BEDE3E0}.Debug|x86.Build.0 = Debug|Any CPU {C480B3A4-791A-40D1-A734-2A276BEDE3E0}.Debug|x64.ActiveCfg = Debug|Any CPU {C480B3A4-791A-40D1-A734-2A276BEDE3E0}.Debug|x64.Build.0 = Debug|Any CPU + {C480B3A4-791A-40D1-A734-2A276BEDE3E0}.Debug|x86.ActiveCfg = Debug|Any CPU + {C480B3A4-791A-40D1-A734-2A276BEDE3E0}.Debug|x86.Build.0 = Debug|Any CPU {C480B3A4-791A-40D1-A734-2A276BEDE3E0}.Release|Any CPU.ActiveCfg = Release|Any CPU {C480B3A4-791A-40D1-A734-2A276BEDE3E0}.Release|Any CPU.Build.0 = Release|Any CPU {C480B3A4-791A-40D1-A734-2A276BEDE3E0}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {C480B3A4-791A-40D1-A734-2A276BEDE3E0}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {C480B3A4-791A-40D1-A734-2A276BEDE3E0}.Release|x86.ActiveCfg = Release|Any CPU - {C480B3A4-791A-40D1-A734-2A276BEDE3E0}.Release|x86.Build.0 = Release|Any CPU {C480B3A4-791A-40D1-A734-2A276BEDE3E0}.Release|x64.ActiveCfg = Release|Any CPU {C480B3A4-791A-40D1-A734-2A276BEDE3E0}.Release|x64.Build.0 = Release|Any CPU + {C480B3A4-791A-40D1-A734-2A276BEDE3E0}.Release|x86.ActiveCfg = Release|Any CPU + {C480B3A4-791A-40D1-A734-2A276BEDE3E0}.Release|x86.Build.0 = Release|Any CPU {2F58788F-63FD-4470-969B-C84799777C42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2F58788F-63FD-4470-969B-C84799777C42}.Debug|Any CPU.Build.0 = Debug|Any CPU {2F58788F-63FD-4470-969B-C84799777C42}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {2F58788F-63FD-4470-969B-C84799777C42}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {2F58788F-63FD-4470-969B-C84799777C42}.Debug|x86.ActiveCfg = Debug|Any CPU - {2F58788F-63FD-4470-969B-C84799777C42}.Debug|x86.Build.0 = Debug|Any CPU {2F58788F-63FD-4470-969B-C84799777C42}.Debug|x64.ActiveCfg = Debug|Any CPU {2F58788F-63FD-4470-969B-C84799777C42}.Debug|x64.Build.0 = Debug|Any CPU + {2F58788F-63FD-4470-969B-C84799777C42}.Debug|x86.ActiveCfg = Debug|Any CPU + {2F58788F-63FD-4470-969B-C84799777C42}.Debug|x86.Build.0 = Debug|Any CPU {2F58788F-63FD-4470-969B-C84799777C42}.Release|Any CPU.ActiveCfg = Release|Any CPU {2F58788F-63FD-4470-969B-C84799777C42}.Release|Any CPU.Build.0 = Release|Any CPU {2F58788F-63FD-4470-969B-C84799777C42}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {2F58788F-63FD-4470-969B-C84799777C42}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {2F58788F-63FD-4470-969B-C84799777C42}.Release|x86.ActiveCfg = Release|Any CPU - {2F58788F-63FD-4470-969B-C84799777C42}.Release|x86.Build.0 = Release|Any CPU {2F58788F-63FD-4470-969B-C84799777C42}.Release|x64.ActiveCfg = Release|Any CPU {2F58788F-63FD-4470-969B-C84799777C42}.Release|x64.Build.0 = Release|Any CPU + {2F58788F-63FD-4470-969B-C84799777C42}.Release|x86.ActiveCfg = Release|Any CPU + {2F58788F-63FD-4470-969B-C84799777C42}.Release|x86.Build.0 = Release|Any CPU {A475F4CC-D53F-46B9-B32F-606C05C49D65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A475F4CC-D53F-46B9-B32F-606C05C49D65}.Debug|Any CPU.Build.0 = Debug|Any CPU {A475F4CC-D53F-46B9-B32F-606C05C49D65}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {A475F4CC-D53F-46B9-B32F-606C05C49D65}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {A475F4CC-D53F-46B9-B32F-606C05C49D65}.Debug|x86.ActiveCfg = Debug|Any CPU - {A475F4CC-D53F-46B9-B32F-606C05C49D65}.Debug|x86.Build.0 = Debug|Any CPU {A475F4CC-D53F-46B9-B32F-606C05C49D65}.Debug|x64.ActiveCfg = Debug|Any CPU {A475F4CC-D53F-46B9-B32F-606C05C49D65}.Debug|x64.Build.0 = Debug|Any CPU + {A475F4CC-D53F-46B9-B32F-606C05C49D65}.Debug|x86.ActiveCfg = Debug|Any CPU + {A475F4CC-D53F-46B9-B32F-606C05C49D65}.Debug|x86.Build.0 = Debug|Any CPU {A475F4CC-D53F-46B9-B32F-606C05C49D65}.Release|Any CPU.ActiveCfg = Release|Any CPU {A475F4CC-D53F-46B9-B32F-606C05C49D65}.Release|Any CPU.Build.0 = Release|Any CPU {A475F4CC-D53F-46B9-B32F-606C05C49D65}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {A475F4CC-D53F-46B9-B32F-606C05C49D65}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {A475F4CC-D53F-46B9-B32F-606C05C49D65}.Release|x86.ActiveCfg = Release|Any CPU - {A475F4CC-D53F-46B9-B32F-606C05C49D65}.Release|x86.Build.0 = Release|Any CPU {A475F4CC-D53F-46B9-B32F-606C05C49D65}.Release|x64.ActiveCfg = Release|Any CPU {A475F4CC-D53F-46B9-B32F-606C05C49D65}.Release|x64.Build.0 = Release|Any CPU + {A475F4CC-D53F-46B9-B32F-606C05C49D65}.Release|x86.ActiveCfg = Release|Any CPU + {A475F4CC-D53F-46B9-B32F-606C05C49D65}.Release|x86.Build.0 = Release|Any CPU {B853A06F-5DFD-4093-979B-B08D1BBDD2D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B853A06F-5DFD-4093-979B-B08D1BBDD2D6}.Debug|Any CPU.Build.0 = Debug|Any CPU {B853A06F-5DFD-4093-979B-B08D1BBDD2D6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {B853A06F-5DFD-4093-979B-B08D1BBDD2D6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {B853A06F-5DFD-4093-979B-B08D1BBDD2D6}.Debug|x86.ActiveCfg = Debug|Any CPU - {B853A06F-5DFD-4093-979B-B08D1BBDD2D6}.Debug|x86.Build.0 = Debug|Any CPU {B853A06F-5DFD-4093-979B-B08D1BBDD2D6}.Debug|x64.ActiveCfg = Debug|Any CPU {B853A06F-5DFD-4093-979B-B08D1BBDD2D6}.Debug|x64.Build.0 = Debug|Any CPU + {B853A06F-5DFD-4093-979B-B08D1BBDD2D6}.Debug|x86.ActiveCfg = Debug|Any CPU + {B853A06F-5DFD-4093-979B-B08D1BBDD2D6}.Debug|x86.Build.0 = Debug|Any CPU {B853A06F-5DFD-4093-979B-B08D1BBDD2D6}.Release|Any CPU.ActiveCfg = Release|Any CPU {B853A06F-5DFD-4093-979B-B08D1BBDD2D6}.Release|Any CPU.Build.0 = Release|Any CPU {B853A06F-5DFD-4093-979B-B08D1BBDD2D6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {B853A06F-5DFD-4093-979B-B08D1BBDD2D6}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {B853A06F-5DFD-4093-979B-B08D1BBDD2D6}.Release|x86.ActiveCfg = Release|Any CPU - {B853A06F-5DFD-4093-979B-B08D1BBDD2D6}.Release|x86.Build.0 = Release|Any CPU {B853A06F-5DFD-4093-979B-B08D1BBDD2D6}.Release|x64.ActiveCfg = Release|Any CPU {B853A06F-5DFD-4093-979B-B08D1BBDD2D6}.Release|x64.Build.0 = Release|Any CPU + {B853A06F-5DFD-4093-979B-B08D1BBDD2D6}.Release|x86.ActiveCfg = Release|Any CPU + {B853A06F-5DFD-4093-979B-B08D1BBDD2D6}.Release|x86.Build.0 = Release|Any CPU {C2355F42-792D-4964-B068-79186F887C6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C2355F42-792D-4964-B068-79186F887C6D}.Debug|Any CPU.Build.0 = Debug|Any CPU {C2355F42-792D-4964-B068-79186F887C6D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {C2355F42-792D-4964-B068-79186F887C6D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {C2355F42-792D-4964-B068-79186F887C6D}.Debug|x86.ActiveCfg = Debug|Any CPU - {C2355F42-792D-4964-B068-79186F887C6D}.Debug|x86.Build.0 = Debug|Any CPU {C2355F42-792D-4964-B068-79186F887C6D}.Debug|x64.ActiveCfg = Debug|Any CPU {C2355F42-792D-4964-B068-79186F887C6D}.Debug|x64.Build.0 = Debug|Any CPU + {C2355F42-792D-4964-B068-79186F887C6D}.Debug|x86.ActiveCfg = Debug|Any CPU + {C2355F42-792D-4964-B068-79186F887C6D}.Debug|x86.Build.0 = Debug|Any CPU {C2355F42-792D-4964-B068-79186F887C6D}.Release|Any CPU.ActiveCfg = Release|Any CPU {C2355F42-792D-4964-B068-79186F887C6D}.Release|Any CPU.Build.0 = Release|Any CPU {C2355F42-792D-4964-B068-79186F887C6D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {C2355F42-792D-4964-B068-79186F887C6D}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {C2355F42-792D-4964-B068-79186F887C6D}.Release|x86.ActiveCfg = Release|Any CPU - {C2355F42-792D-4964-B068-79186F887C6D}.Release|x86.Build.0 = Release|Any CPU {C2355F42-792D-4964-B068-79186F887C6D}.Release|x64.ActiveCfg = Release|Any CPU {C2355F42-792D-4964-B068-79186F887C6D}.Release|x64.Build.0 = Release|Any CPU + {C2355F42-792D-4964-B068-79186F887C6D}.Release|x86.ActiveCfg = Release|Any CPU + {C2355F42-792D-4964-B068-79186F887C6D}.Release|x86.Build.0 = Release|Any CPU {35423151-4010-4986-9143-5D8029E538AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {35423151-4010-4986-9143-5D8029E538AE}.Debug|Any CPU.Build.0 = Debug|Any CPU {35423151-4010-4986-9143-5D8029E538AE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {35423151-4010-4986-9143-5D8029E538AE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {35423151-4010-4986-9143-5D8029E538AE}.Debug|x86.ActiveCfg = Debug|Any CPU - {35423151-4010-4986-9143-5D8029E538AE}.Debug|x86.Build.0 = Debug|Any CPU {35423151-4010-4986-9143-5D8029E538AE}.Debug|x64.ActiveCfg = Debug|Any CPU {35423151-4010-4986-9143-5D8029E538AE}.Debug|x64.Build.0 = Debug|Any CPU + {35423151-4010-4986-9143-5D8029E538AE}.Debug|x86.ActiveCfg = Debug|Any CPU + {35423151-4010-4986-9143-5D8029E538AE}.Debug|x86.Build.0 = Debug|Any CPU {35423151-4010-4986-9143-5D8029E538AE}.Release|Any CPU.ActiveCfg = Release|Any CPU {35423151-4010-4986-9143-5D8029E538AE}.Release|Any CPU.Build.0 = Release|Any CPU {35423151-4010-4986-9143-5D8029E538AE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {35423151-4010-4986-9143-5D8029E538AE}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {35423151-4010-4986-9143-5D8029E538AE}.Release|x86.ActiveCfg = Release|Any CPU - {35423151-4010-4986-9143-5D8029E538AE}.Release|x86.Build.0 = Release|Any CPU {35423151-4010-4986-9143-5D8029E538AE}.Release|x64.ActiveCfg = Release|Any CPU {35423151-4010-4986-9143-5D8029E538AE}.Release|x64.Build.0 = Release|Any CPU + {35423151-4010-4986-9143-5D8029E538AE}.Release|x86.ActiveCfg = Release|Any CPU + {35423151-4010-4986-9143-5D8029E538AE}.Release|x86.Build.0 = Release|Any CPU {38B8BEBC-8A4A-48D7-8842-FCD1CE347BF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {38B8BEBC-8A4A-48D7-8842-FCD1CE347BF2}.Debug|Any CPU.Build.0 = Debug|Any CPU {38B8BEBC-8A4A-48D7-8842-FCD1CE347BF2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {38B8BEBC-8A4A-48D7-8842-FCD1CE347BF2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {38B8BEBC-8A4A-48D7-8842-FCD1CE347BF2}.Debug|x86.ActiveCfg = Debug|Any CPU - {38B8BEBC-8A4A-48D7-8842-FCD1CE347BF2}.Debug|x86.Build.0 = Debug|Any CPU {38B8BEBC-8A4A-48D7-8842-FCD1CE347BF2}.Debug|x64.ActiveCfg = Debug|Any CPU {38B8BEBC-8A4A-48D7-8842-FCD1CE347BF2}.Debug|x64.Build.0 = Debug|Any CPU + {38B8BEBC-8A4A-48D7-8842-FCD1CE347BF2}.Debug|x86.ActiveCfg = Debug|Any CPU + {38B8BEBC-8A4A-48D7-8842-FCD1CE347BF2}.Debug|x86.Build.0 = Debug|Any CPU {38B8BEBC-8A4A-48D7-8842-FCD1CE347BF2}.Release|Any CPU.ActiveCfg = Release|Any CPU {38B8BEBC-8A4A-48D7-8842-FCD1CE347BF2}.Release|Any CPU.Build.0 = Release|Any CPU {38B8BEBC-8A4A-48D7-8842-FCD1CE347BF2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {38B8BEBC-8A4A-48D7-8842-FCD1CE347BF2}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {38B8BEBC-8A4A-48D7-8842-FCD1CE347BF2}.Release|x86.ActiveCfg = Release|Any CPU - {38B8BEBC-8A4A-48D7-8842-FCD1CE347BF2}.Release|x86.Build.0 = Release|Any CPU {38B8BEBC-8A4A-48D7-8842-FCD1CE347BF2}.Release|x64.ActiveCfg = Release|Any CPU {38B8BEBC-8A4A-48D7-8842-FCD1CE347BF2}.Release|x64.Build.0 = Release|Any CPU + {38B8BEBC-8A4A-48D7-8842-FCD1CE347BF2}.Release|x86.ActiveCfg = Release|Any CPU + {38B8BEBC-8A4A-48D7-8842-FCD1CE347BF2}.Release|x86.Build.0 = Release|Any CPU {E881B811-7721-4A2C-98FD-1A660FD693C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E881B811-7721-4A2C-98FD-1A660FD693C7}.Debug|Any CPU.Build.0 = Debug|Any CPU {E881B811-7721-4A2C-98FD-1A660FD693C7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {E881B811-7721-4A2C-98FD-1A660FD693C7}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {E881B811-7721-4A2C-98FD-1A660FD693C7}.Debug|x86.ActiveCfg = Debug|Any CPU - {E881B811-7721-4A2C-98FD-1A660FD693C7}.Debug|x86.Build.0 = Debug|Any CPU {E881B811-7721-4A2C-98FD-1A660FD693C7}.Debug|x64.ActiveCfg = Debug|Any CPU {E881B811-7721-4A2C-98FD-1A660FD693C7}.Debug|x64.Build.0 = Debug|Any CPU + {E881B811-7721-4A2C-98FD-1A660FD693C7}.Debug|x86.ActiveCfg = Debug|Any CPU + {E881B811-7721-4A2C-98FD-1A660FD693C7}.Debug|x86.Build.0 = Debug|Any CPU {E881B811-7721-4A2C-98FD-1A660FD693C7}.Release|Any CPU.ActiveCfg = Release|Any CPU {E881B811-7721-4A2C-98FD-1A660FD693C7}.Release|Any CPU.Build.0 = Release|Any CPU {E881B811-7721-4A2C-98FD-1A660FD693C7}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {E881B811-7721-4A2C-98FD-1A660FD693C7}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {E881B811-7721-4A2C-98FD-1A660FD693C7}.Release|x86.ActiveCfg = Release|Any CPU - {E881B811-7721-4A2C-98FD-1A660FD693C7}.Release|x86.Build.0 = Release|Any CPU {E881B811-7721-4A2C-98FD-1A660FD693C7}.Release|x64.ActiveCfg = Release|Any CPU {E881B811-7721-4A2C-98FD-1A660FD693C7}.Release|x64.Build.0 = Release|Any CPU + {E881B811-7721-4A2C-98FD-1A660FD693C7}.Release|x86.ActiveCfg = Release|Any CPU + {E881B811-7721-4A2C-98FD-1A660FD693C7}.Release|x86.Build.0 = Release|Any CPU {D2B52F80-5106-4981-9031-A02C5EB479B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D2B52F80-5106-4981-9031-A02C5EB479B4}.Debug|Any CPU.Build.0 = Debug|Any CPU {D2B52F80-5106-4981-9031-A02C5EB479B4}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {D2B52F80-5106-4981-9031-A02C5EB479B4}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {D2B52F80-5106-4981-9031-A02C5EB479B4}.Debug|x86.ActiveCfg = Debug|Any CPU - {D2B52F80-5106-4981-9031-A02C5EB479B4}.Debug|x86.Build.0 = Debug|Any CPU {D2B52F80-5106-4981-9031-A02C5EB479B4}.Debug|x64.ActiveCfg = Debug|Any CPU {D2B52F80-5106-4981-9031-A02C5EB479B4}.Debug|x64.Build.0 = Debug|Any CPU + {D2B52F80-5106-4981-9031-A02C5EB479B4}.Debug|x86.ActiveCfg = Debug|Any CPU + {D2B52F80-5106-4981-9031-A02C5EB479B4}.Debug|x86.Build.0 = Debug|Any CPU {D2B52F80-5106-4981-9031-A02C5EB479B4}.Release|Any CPU.ActiveCfg = Release|Any CPU {D2B52F80-5106-4981-9031-A02C5EB479B4}.Release|Any CPU.Build.0 = Release|Any CPU {D2B52F80-5106-4981-9031-A02C5EB479B4}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {D2B52F80-5106-4981-9031-A02C5EB479B4}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {D2B52F80-5106-4981-9031-A02C5EB479B4}.Release|x86.ActiveCfg = Release|Any CPU - {D2B52F80-5106-4981-9031-A02C5EB479B4}.Release|x86.Build.0 = Release|Any CPU {D2B52F80-5106-4981-9031-A02C5EB479B4}.Release|x64.ActiveCfg = Release|Any CPU {D2B52F80-5106-4981-9031-A02C5EB479B4}.Release|x64.Build.0 = Release|Any CPU + {D2B52F80-5106-4981-9031-A02C5EB479B4}.Release|x86.ActiveCfg = Release|Any CPU + {D2B52F80-5106-4981-9031-A02C5EB479B4}.Release|x86.Build.0 = Release|Any CPU {DE191819-35B1-40C8-9118-E169633C5041}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DE191819-35B1-40C8-9118-E169633C5041}.Debug|Any CPU.Build.0 = Debug|Any CPU {DE191819-35B1-40C8-9118-E169633C5041}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {DE191819-35B1-40C8-9118-E169633C5041}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {DE191819-35B1-40C8-9118-E169633C5041}.Debug|x86.ActiveCfg = Debug|Any CPU - {DE191819-35B1-40C8-9118-E169633C5041}.Debug|x86.Build.0 = Debug|Any CPU {DE191819-35B1-40C8-9118-E169633C5041}.Debug|x64.ActiveCfg = Debug|Any CPU {DE191819-35B1-40C8-9118-E169633C5041}.Debug|x64.Build.0 = Debug|Any CPU + {DE191819-35B1-40C8-9118-E169633C5041}.Debug|x86.ActiveCfg = Debug|Any CPU + {DE191819-35B1-40C8-9118-E169633C5041}.Debug|x86.Build.0 = Debug|Any CPU {DE191819-35B1-40C8-9118-E169633C5041}.Release|Any CPU.ActiveCfg = Release|Any CPU {DE191819-35B1-40C8-9118-E169633C5041}.Release|Any CPU.Build.0 = Release|Any CPU {DE191819-35B1-40C8-9118-E169633C5041}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {DE191819-35B1-40C8-9118-E169633C5041}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {DE191819-35B1-40C8-9118-E169633C5041}.Release|x86.ActiveCfg = Release|Any CPU - {DE191819-35B1-40C8-9118-E169633C5041}.Release|x86.Build.0 = Release|Any CPU {DE191819-35B1-40C8-9118-E169633C5041}.Release|x64.ActiveCfg = Release|Any CPU {DE191819-35B1-40C8-9118-E169633C5041}.Release|x64.Build.0 = Release|Any CPU + {DE191819-35B1-40C8-9118-E169633C5041}.Release|x86.ActiveCfg = Release|Any CPU + {DE191819-35B1-40C8-9118-E169633C5041}.Release|x86.Build.0 = Release|Any CPU {48F584DF-0BA1-4485-A612-14FD4F6A4CF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {48F584DF-0BA1-4485-A612-14FD4F6A4CF7}.Debug|Any CPU.Build.0 = Debug|Any CPU {48F584DF-0BA1-4485-A612-14FD4F6A4CF7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {48F584DF-0BA1-4485-A612-14FD4F6A4CF7}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {48F584DF-0BA1-4485-A612-14FD4F6A4CF7}.Debug|x86.ActiveCfg = Debug|Any CPU - {48F584DF-0BA1-4485-A612-14FD4F6A4CF7}.Debug|x86.Build.0 = Debug|Any CPU {48F584DF-0BA1-4485-A612-14FD4F6A4CF7}.Debug|x64.ActiveCfg = Debug|Any CPU {48F584DF-0BA1-4485-A612-14FD4F6A4CF7}.Debug|x64.Build.0 = Debug|Any CPU + {48F584DF-0BA1-4485-A612-14FD4F6A4CF7}.Debug|x86.ActiveCfg = Debug|Any CPU + {48F584DF-0BA1-4485-A612-14FD4F6A4CF7}.Debug|x86.Build.0 = Debug|Any CPU {48F584DF-0BA1-4485-A612-14FD4F6A4CF7}.Release|Any CPU.ActiveCfg = Release|Any CPU {48F584DF-0BA1-4485-A612-14FD4F6A4CF7}.Release|Any CPU.Build.0 = Release|Any CPU {48F584DF-0BA1-4485-A612-14FD4F6A4CF7}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {48F584DF-0BA1-4485-A612-14FD4F6A4CF7}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {48F584DF-0BA1-4485-A612-14FD4F6A4CF7}.Release|x86.ActiveCfg = Release|Any CPU - {48F584DF-0BA1-4485-A612-14FD4F6A4CF7}.Release|x86.Build.0 = Release|Any CPU {48F584DF-0BA1-4485-A612-14FD4F6A4CF7}.Release|x64.ActiveCfg = Release|Any CPU {48F584DF-0BA1-4485-A612-14FD4F6A4CF7}.Release|x64.Build.0 = Release|Any CPU + {48F584DF-0BA1-4485-A612-14FD4F6A4CF7}.Release|x86.ActiveCfg = Release|Any CPU + {48F584DF-0BA1-4485-A612-14FD4F6A4CF7}.Release|x86.Build.0 = Release|Any CPU {36CADB1E-3777-4A7E-86E3-BF650A951AC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {36CADB1E-3777-4A7E-86E3-BF650A951AC9}.Debug|Any CPU.Build.0 = Debug|Any CPU {36CADB1E-3777-4A7E-86E3-BF650A951AC9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {36CADB1E-3777-4A7E-86E3-BF650A951AC9}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {36CADB1E-3777-4A7E-86E3-BF650A951AC9}.Debug|x86.ActiveCfg = Debug|Any CPU - {36CADB1E-3777-4A7E-86E3-BF650A951AC9}.Debug|x86.Build.0 = Debug|Any CPU {36CADB1E-3777-4A7E-86E3-BF650A951AC9}.Debug|x64.ActiveCfg = Debug|Any CPU {36CADB1E-3777-4A7E-86E3-BF650A951AC9}.Debug|x64.Build.0 = Debug|Any CPU + {36CADB1E-3777-4A7E-86E3-BF650A951AC9}.Debug|x86.ActiveCfg = Debug|Any CPU + {36CADB1E-3777-4A7E-86E3-BF650A951AC9}.Debug|x86.Build.0 = Debug|Any CPU {36CADB1E-3777-4A7E-86E3-BF650A951AC9}.Release|Any CPU.ActiveCfg = Release|Any CPU {36CADB1E-3777-4A7E-86E3-BF650A951AC9}.Release|Any CPU.Build.0 = Release|Any CPU {36CADB1E-3777-4A7E-86E3-BF650A951AC9}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {36CADB1E-3777-4A7E-86E3-BF650A951AC9}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {36CADB1E-3777-4A7E-86E3-BF650A951AC9}.Release|x86.ActiveCfg = Release|Any CPU - {36CADB1E-3777-4A7E-86E3-BF650A951AC9}.Release|x86.Build.0 = Release|Any CPU {36CADB1E-3777-4A7E-86E3-BF650A951AC9}.Release|x64.ActiveCfg = Release|Any CPU {36CADB1E-3777-4A7E-86E3-BF650A951AC9}.Release|x64.Build.0 = Release|Any CPU + {36CADB1E-3777-4A7E-86E3-BF650A951AC9}.Release|x86.ActiveCfg = Release|Any CPU + {36CADB1E-3777-4A7E-86E3-BF650A951AC9}.Release|x86.Build.0 = Release|Any CPU {BDB469BC-FC29-4127-AE75-02FCD8C8238B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BDB469BC-FC29-4127-AE75-02FCD8C8238B}.Debug|Any CPU.Build.0 = Debug|Any CPU {BDB469BC-FC29-4127-AE75-02FCD8C8238B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {BDB469BC-FC29-4127-AE75-02FCD8C8238B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {BDB469BC-FC29-4127-AE75-02FCD8C8238B}.Debug|x86.ActiveCfg = Debug|Any CPU - {BDB469BC-FC29-4127-AE75-02FCD8C8238B}.Debug|x86.Build.0 = Debug|Any CPU {BDB469BC-FC29-4127-AE75-02FCD8C8238B}.Debug|x64.ActiveCfg = Debug|Any CPU {BDB469BC-FC29-4127-AE75-02FCD8C8238B}.Debug|x64.Build.0 = Debug|Any CPU + {BDB469BC-FC29-4127-AE75-02FCD8C8238B}.Debug|x86.ActiveCfg = Debug|Any CPU + {BDB469BC-FC29-4127-AE75-02FCD8C8238B}.Debug|x86.Build.0 = Debug|Any CPU {BDB469BC-FC29-4127-AE75-02FCD8C8238B}.Release|Any CPU.ActiveCfg = Release|Any CPU {BDB469BC-FC29-4127-AE75-02FCD8C8238B}.Release|Any CPU.Build.0 = Release|Any CPU {BDB469BC-FC29-4127-AE75-02FCD8C8238B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {BDB469BC-FC29-4127-AE75-02FCD8C8238B}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {BDB469BC-FC29-4127-AE75-02FCD8C8238B}.Release|x86.ActiveCfg = Release|Any CPU - {BDB469BC-FC29-4127-AE75-02FCD8C8238B}.Release|x86.Build.0 = Release|Any CPU {BDB469BC-FC29-4127-AE75-02FCD8C8238B}.Release|x64.ActiveCfg = Release|Any CPU {BDB469BC-FC29-4127-AE75-02FCD8C8238B}.Release|x64.Build.0 = Release|Any CPU + {BDB469BC-FC29-4127-AE75-02FCD8C8238B}.Release|x86.ActiveCfg = Release|Any CPU + {BDB469BC-FC29-4127-AE75-02FCD8C8238B}.Release|x86.Build.0 = Release|Any CPU {B1814E3B-E980-4797-BFFD-9C7347653C1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B1814E3B-E980-4797-BFFD-9C7347653C1B}.Debug|Any CPU.Build.0 = Debug|Any CPU {B1814E3B-E980-4797-BFFD-9C7347653C1B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {B1814E3B-E980-4797-BFFD-9C7347653C1B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {B1814E3B-E980-4797-BFFD-9C7347653C1B}.Debug|x86.ActiveCfg = Debug|Any CPU - {B1814E3B-E980-4797-BFFD-9C7347653C1B}.Debug|x86.Build.0 = Debug|Any CPU {B1814E3B-E980-4797-BFFD-9C7347653C1B}.Debug|x64.ActiveCfg = Debug|Any CPU {B1814E3B-E980-4797-BFFD-9C7347653C1B}.Debug|x64.Build.0 = Debug|Any CPU + {B1814E3B-E980-4797-BFFD-9C7347653C1B}.Debug|x86.ActiveCfg = Debug|Any CPU + {B1814E3B-E980-4797-BFFD-9C7347653C1B}.Debug|x86.Build.0 = Debug|Any CPU {B1814E3B-E980-4797-BFFD-9C7347653C1B}.Release|Any CPU.ActiveCfg = Release|Any CPU {B1814E3B-E980-4797-BFFD-9C7347653C1B}.Release|Any CPU.Build.0 = Release|Any CPU {B1814E3B-E980-4797-BFFD-9C7347653C1B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {B1814E3B-E980-4797-BFFD-9C7347653C1B}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {B1814E3B-E980-4797-BFFD-9C7347653C1B}.Release|x86.ActiveCfg = Release|Any CPU - {B1814E3B-E980-4797-BFFD-9C7347653C1B}.Release|x86.Build.0 = Release|Any CPU {B1814E3B-E980-4797-BFFD-9C7347653C1B}.Release|x64.ActiveCfg = Release|Any CPU {B1814E3B-E980-4797-BFFD-9C7347653C1B}.Release|x64.Build.0 = Release|Any CPU + {B1814E3B-E980-4797-BFFD-9C7347653C1B}.Release|x86.ActiveCfg = Release|Any CPU + {B1814E3B-E980-4797-BFFD-9C7347653C1B}.Release|x86.Build.0 = Release|Any CPU {722B348B-846B-4338-B7F5-DB9C865C3F64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {722B348B-846B-4338-B7F5-DB9C865C3F64}.Debug|Any CPU.Build.0 = Debug|Any CPU {722B348B-846B-4338-B7F5-DB9C865C3F64}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {722B348B-846B-4338-B7F5-DB9C865C3F64}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {722B348B-846B-4338-B7F5-DB9C865C3F64}.Debug|x86.ActiveCfg = Debug|Any CPU - {722B348B-846B-4338-B7F5-DB9C865C3F64}.Debug|x86.Build.0 = Debug|Any CPU {722B348B-846B-4338-B7F5-DB9C865C3F64}.Debug|x64.ActiveCfg = Debug|Any CPU {722B348B-846B-4338-B7F5-DB9C865C3F64}.Debug|x64.Build.0 = Debug|Any CPU + {722B348B-846B-4338-B7F5-DB9C865C3F64}.Debug|x86.ActiveCfg = Debug|Any CPU + {722B348B-846B-4338-B7F5-DB9C865C3F64}.Debug|x86.Build.0 = Debug|Any CPU {722B348B-846B-4338-B7F5-DB9C865C3F64}.Release|Any CPU.ActiveCfg = Release|Any CPU {722B348B-846B-4338-B7F5-DB9C865C3F64}.Release|Any CPU.Build.0 = Release|Any CPU {722B348B-846B-4338-B7F5-DB9C865C3F64}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {722B348B-846B-4338-B7F5-DB9C865C3F64}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {722B348B-846B-4338-B7F5-DB9C865C3F64}.Release|x86.ActiveCfg = Release|Any CPU - {722B348B-846B-4338-B7F5-DB9C865C3F64}.Release|x86.Build.0 = Release|Any CPU {722B348B-846B-4338-B7F5-DB9C865C3F64}.Release|x64.ActiveCfg = Release|Any CPU {722B348B-846B-4338-B7F5-DB9C865C3F64}.Release|x64.Build.0 = Release|Any CPU + {722B348B-846B-4338-B7F5-DB9C865C3F64}.Release|x86.ActiveCfg = Release|Any CPU + {722B348B-846B-4338-B7F5-DB9C865C3F64}.Release|x86.Build.0 = Release|Any CPU {2CFEA876-7ABB-466A-AABA-AA461414B676}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2CFEA876-7ABB-466A-AABA-AA461414B676}.Debug|Any CPU.Build.0 = Debug|Any CPU {2CFEA876-7ABB-466A-AABA-AA461414B676}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {2CFEA876-7ABB-466A-AABA-AA461414B676}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {2CFEA876-7ABB-466A-AABA-AA461414B676}.Debug|x86.ActiveCfg = Debug|Any CPU - {2CFEA876-7ABB-466A-AABA-AA461414B676}.Debug|x86.Build.0 = Debug|Any CPU {2CFEA876-7ABB-466A-AABA-AA461414B676}.Debug|x64.ActiveCfg = Debug|Any CPU {2CFEA876-7ABB-466A-AABA-AA461414B676}.Debug|x64.Build.0 = Debug|Any CPU + {2CFEA876-7ABB-466A-AABA-AA461414B676}.Debug|x86.ActiveCfg = Debug|Any CPU + {2CFEA876-7ABB-466A-AABA-AA461414B676}.Debug|x86.Build.0 = Debug|Any CPU {2CFEA876-7ABB-466A-AABA-AA461414B676}.Release|Any CPU.ActiveCfg = Release|Any CPU {2CFEA876-7ABB-466A-AABA-AA461414B676}.Release|Any CPU.Build.0 = Release|Any CPU {2CFEA876-7ABB-466A-AABA-AA461414B676}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {2CFEA876-7ABB-466A-AABA-AA461414B676}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {2CFEA876-7ABB-466A-AABA-AA461414B676}.Release|x86.ActiveCfg = Release|Any CPU - {2CFEA876-7ABB-466A-AABA-AA461414B676}.Release|x86.Build.0 = Release|Any CPU {2CFEA876-7ABB-466A-AABA-AA461414B676}.Release|x64.ActiveCfg = Release|Any CPU {2CFEA876-7ABB-466A-AABA-AA461414B676}.Release|x64.Build.0 = Release|Any CPU + {2CFEA876-7ABB-466A-AABA-AA461414B676}.Release|x86.ActiveCfg = Release|Any CPU + {2CFEA876-7ABB-466A-AABA-AA461414B676}.Release|x86.Build.0 = Release|Any CPU {9070FB95-4D2D-4D0F-B2A8-6309FDEB6C3D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9070FB95-4D2D-4D0F-B2A8-6309FDEB6C3D}.Debug|Any CPU.Build.0 = Debug|Any CPU {9070FB95-4D2D-4D0F-B2A8-6309FDEB6C3D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {9070FB95-4D2D-4D0F-B2A8-6309FDEB6C3D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {9070FB95-4D2D-4D0F-B2A8-6309FDEB6C3D}.Debug|x86.ActiveCfg = Debug|Any CPU - {9070FB95-4D2D-4D0F-B2A8-6309FDEB6C3D}.Debug|x86.Build.0 = Debug|Any CPU {9070FB95-4D2D-4D0F-B2A8-6309FDEB6C3D}.Debug|x64.ActiveCfg = Debug|Any CPU {9070FB95-4D2D-4D0F-B2A8-6309FDEB6C3D}.Debug|x64.Build.0 = Debug|Any CPU + {9070FB95-4D2D-4D0F-B2A8-6309FDEB6C3D}.Debug|x86.ActiveCfg = Debug|Any CPU + {9070FB95-4D2D-4D0F-B2A8-6309FDEB6C3D}.Debug|x86.Build.0 = Debug|Any CPU {9070FB95-4D2D-4D0F-B2A8-6309FDEB6C3D}.Release|Any CPU.ActiveCfg = Release|Any CPU {9070FB95-4D2D-4D0F-B2A8-6309FDEB6C3D}.Release|Any CPU.Build.0 = Release|Any CPU {9070FB95-4D2D-4D0F-B2A8-6309FDEB6C3D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {9070FB95-4D2D-4D0F-B2A8-6309FDEB6C3D}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {9070FB95-4D2D-4D0F-B2A8-6309FDEB6C3D}.Release|x86.ActiveCfg = Release|Any CPU - {9070FB95-4D2D-4D0F-B2A8-6309FDEB6C3D}.Release|x86.Build.0 = Release|Any CPU {9070FB95-4D2D-4D0F-B2A8-6309FDEB6C3D}.Release|x64.ActiveCfg = Release|Any CPU {9070FB95-4D2D-4D0F-B2A8-6309FDEB6C3D}.Release|x64.Build.0 = Release|Any CPU + {9070FB95-4D2D-4D0F-B2A8-6309FDEB6C3D}.Release|x86.ActiveCfg = Release|Any CPU + {9070FB95-4D2D-4D0F-B2A8-6309FDEB6C3D}.Release|x86.Build.0 = Release|Any CPU {0C9D2FDC-0862-449C-BEDA-A63060513951}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0C9D2FDC-0862-449C-BEDA-A63060513951}.Debug|Any CPU.Build.0 = Debug|Any CPU {0C9D2FDC-0862-449C-BEDA-A63060513951}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {0C9D2FDC-0862-449C-BEDA-A63060513951}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {0C9D2FDC-0862-449C-BEDA-A63060513951}.Debug|x86.ActiveCfg = Debug|Any CPU - {0C9D2FDC-0862-449C-BEDA-A63060513951}.Debug|x86.Build.0 = Debug|Any CPU {0C9D2FDC-0862-449C-BEDA-A63060513951}.Debug|x64.ActiveCfg = Debug|Any CPU {0C9D2FDC-0862-449C-BEDA-A63060513951}.Debug|x64.Build.0 = Debug|Any CPU + {0C9D2FDC-0862-449C-BEDA-A63060513951}.Debug|x86.ActiveCfg = Debug|Any CPU + {0C9D2FDC-0862-449C-BEDA-A63060513951}.Debug|x86.Build.0 = Debug|Any CPU {0C9D2FDC-0862-449C-BEDA-A63060513951}.Release|Any CPU.ActiveCfg = Release|Any CPU {0C9D2FDC-0862-449C-BEDA-A63060513951}.Release|Any CPU.Build.0 = Release|Any CPU {0C9D2FDC-0862-449C-BEDA-A63060513951}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {0C9D2FDC-0862-449C-BEDA-A63060513951}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {0C9D2FDC-0862-449C-BEDA-A63060513951}.Release|x86.ActiveCfg = Release|Any CPU - {0C9D2FDC-0862-449C-BEDA-A63060513951}.Release|x86.Build.0 = Release|Any CPU {0C9D2FDC-0862-449C-BEDA-A63060513951}.Release|x64.ActiveCfg = Release|Any CPU {0C9D2FDC-0862-449C-BEDA-A63060513951}.Release|x64.Build.0 = Release|Any CPU + {0C9D2FDC-0862-449C-BEDA-A63060513951}.Release|x86.ActiveCfg = Release|Any CPU + {0C9D2FDC-0862-449C-BEDA-A63060513951}.Release|x86.Build.0 = Release|Any CPU {0ED91907-896E-4101-8AA0-310736B2B71B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0ED91907-896E-4101-8AA0-310736B2B71B}.Debug|Any CPU.Build.0 = Debug|Any CPU {0ED91907-896E-4101-8AA0-310736B2B71B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {0ED91907-896E-4101-8AA0-310736B2B71B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {0ED91907-896E-4101-8AA0-310736B2B71B}.Debug|x86.ActiveCfg = Debug|Any CPU - {0ED91907-896E-4101-8AA0-310736B2B71B}.Debug|x86.Build.0 = Debug|Any CPU {0ED91907-896E-4101-8AA0-310736B2B71B}.Debug|x64.ActiveCfg = Debug|Any CPU {0ED91907-896E-4101-8AA0-310736B2B71B}.Debug|x64.Build.0 = Debug|Any CPU + {0ED91907-896E-4101-8AA0-310736B2B71B}.Debug|x86.ActiveCfg = Debug|Any CPU + {0ED91907-896E-4101-8AA0-310736B2B71B}.Debug|x86.Build.0 = Debug|Any CPU {0ED91907-896E-4101-8AA0-310736B2B71B}.Release|Any CPU.ActiveCfg = Release|Any CPU {0ED91907-896E-4101-8AA0-310736B2B71B}.Release|Any CPU.Build.0 = Release|Any CPU {0ED91907-896E-4101-8AA0-310736B2B71B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {0ED91907-896E-4101-8AA0-310736B2B71B}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {0ED91907-896E-4101-8AA0-310736B2B71B}.Release|x86.ActiveCfg = Release|Any CPU - {0ED91907-896E-4101-8AA0-310736B2B71B}.Release|x86.Build.0 = Release|Any CPU {0ED91907-896E-4101-8AA0-310736B2B71B}.Release|x64.ActiveCfg = Release|Any CPU {0ED91907-896E-4101-8AA0-310736B2B71B}.Release|x64.Build.0 = Release|Any CPU + {0ED91907-896E-4101-8AA0-310736B2B71B}.Release|x86.ActiveCfg = Release|Any CPU + {0ED91907-896E-4101-8AA0-310736B2B71B}.Release|x86.Build.0 = Release|Any CPU {08E6D0F8-B6CE-454F-8761-77731D99F743}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {08E6D0F8-B6CE-454F-8761-77731D99F743}.Debug|Any CPU.Build.0 = Debug|Any CPU {08E6D0F8-B6CE-454F-8761-77731D99F743}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {08E6D0F8-B6CE-454F-8761-77731D99F743}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {08E6D0F8-B6CE-454F-8761-77731D99F743}.Debug|x86.ActiveCfg = Debug|Any CPU - {08E6D0F8-B6CE-454F-8761-77731D99F743}.Debug|x86.Build.0 = Debug|Any CPU {08E6D0F8-B6CE-454F-8761-77731D99F743}.Debug|x64.ActiveCfg = Debug|Any CPU {08E6D0F8-B6CE-454F-8761-77731D99F743}.Debug|x64.Build.0 = Debug|Any CPU + {08E6D0F8-B6CE-454F-8761-77731D99F743}.Debug|x86.ActiveCfg = Debug|Any CPU + {08E6D0F8-B6CE-454F-8761-77731D99F743}.Debug|x86.Build.0 = Debug|Any CPU {08E6D0F8-B6CE-454F-8761-77731D99F743}.Release|Any CPU.ActiveCfg = Release|Any CPU {08E6D0F8-B6CE-454F-8761-77731D99F743}.Release|Any CPU.Build.0 = Release|Any CPU {08E6D0F8-B6CE-454F-8761-77731D99F743}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {08E6D0F8-B6CE-454F-8761-77731D99F743}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {08E6D0F8-B6CE-454F-8761-77731D99F743}.Release|x86.ActiveCfg = Release|Any CPU - {08E6D0F8-B6CE-454F-8761-77731D99F743}.Release|x86.Build.0 = Release|Any CPU {08E6D0F8-B6CE-454F-8761-77731D99F743}.Release|x64.ActiveCfg = Release|Any CPU {08E6D0F8-B6CE-454F-8761-77731D99F743}.Release|x64.Build.0 = Release|Any CPU + {08E6D0F8-B6CE-454F-8761-77731D99F743}.Release|x86.ActiveCfg = Release|Any CPU + {08E6D0F8-B6CE-454F-8761-77731D99F743}.Release|x86.Build.0 = Release|Any CPU {AA85493A-4120-4DA0-BAA5-CBF34D238A64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AA85493A-4120-4DA0-BAA5-CBF34D238A64}.Debug|Any CPU.Build.0 = Debug|Any CPU {AA85493A-4120-4DA0-BAA5-CBF34D238A64}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {AA85493A-4120-4DA0-BAA5-CBF34D238A64}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {AA85493A-4120-4DA0-BAA5-CBF34D238A64}.Debug|x86.ActiveCfg = Debug|Any CPU - {AA85493A-4120-4DA0-BAA5-CBF34D238A64}.Debug|x86.Build.0 = Debug|Any CPU {AA85493A-4120-4DA0-BAA5-CBF34D238A64}.Debug|x64.ActiveCfg = Debug|Any CPU {AA85493A-4120-4DA0-BAA5-CBF34D238A64}.Debug|x64.Build.0 = Debug|Any CPU + {AA85493A-4120-4DA0-BAA5-CBF34D238A64}.Debug|x86.ActiveCfg = Debug|Any CPU + {AA85493A-4120-4DA0-BAA5-CBF34D238A64}.Debug|x86.Build.0 = Debug|Any CPU {AA85493A-4120-4DA0-BAA5-CBF34D238A64}.Release|Any CPU.ActiveCfg = Release|Any CPU {AA85493A-4120-4DA0-BAA5-CBF34D238A64}.Release|Any CPU.Build.0 = Release|Any CPU {AA85493A-4120-4DA0-BAA5-CBF34D238A64}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {AA85493A-4120-4DA0-BAA5-CBF34D238A64}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {AA85493A-4120-4DA0-BAA5-CBF34D238A64}.Release|x86.ActiveCfg = Release|Any CPU - {AA85493A-4120-4DA0-BAA5-CBF34D238A64}.Release|x86.Build.0 = Release|Any CPU {AA85493A-4120-4DA0-BAA5-CBF34D238A64}.Release|x64.ActiveCfg = Release|Any CPU {AA85493A-4120-4DA0-BAA5-CBF34D238A64}.Release|x64.Build.0 = Release|Any CPU + {AA85493A-4120-4DA0-BAA5-CBF34D238A64}.Release|x86.ActiveCfg = Release|Any CPU + {AA85493A-4120-4DA0-BAA5-CBF34D238A64}.Release|x86.Build.0 = Release|Any CPU {72763FBA-675A-4784-8A57-E69AD41DC685}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {72763FBA-675A-4784-8A57-E69AD41DC685}.Debug|Any CPU.Build.0 = Debug|Any CPU {72763FBA-675A-4784-8A57-E69AD41DC685}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {72763FBA-675A-4784-8A57-E69AD41DC685}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {72763FBA-675A-4784-8A57-E69AD41DC685}.Debug|x86.ActiveCfg = Debug|Any CPU - {72763FBA-675A-4784-8A57-E69AD41DC685}.Debug|x86.Build.0 = Debug|Any CPU {72763FBA-675A-4784-8A57-E69AD41DC685}.Debug|x64.ActiveCfg = Debug|Any CPU {72763FBA-675A-4784-8A57-E69AD41DC685}.Debug|x64.Build.0 = Debug|Any CPU + {72763FBA-675A-4784-8A57-E69AD41DC685}.Debug|x86.ActiveCfg = Debug|Any CPU + {72763FBA-675A-4784-8A57-E69AD41DC685}.Debug|x86.Build.0 = Debug|Any CPU {72763FBA-675A-4784-8A57-E69AD41DC685}.Release|Any CPU.ActiveCfg = Release|Any CPU {72763FBA-675A-4784-8A57-E69AD41DC685}.Release|Any CPU.Build.0 = Release|Any CPU {72763FBA-675A-4784-8A57-E69AD41DC685}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {72763FBA-675A-4784-8A57-E69AD41DC685}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {72763FBA-675A-4784-8A57-E69AD41DC685}.Release|x86.ActiveCfg = Release|Any CPU - {72763FBA-675A-4784-8A57-E69AD41DC685}.Release|x86.Build.0 = Release|Any CPU {72763FBA-675A-4784-8A57-E69AD41DC685}.Release|x64.ActiveCfg = Release|Any CPU {72763FBA-675A-4784-8A57-E69AD41DC685}.Release|x64.Build.0 = Release|Any CPU + {72763FBA-675A-4784-8A57-E69AD41DC685}.Release|x86.ActiveCfg = Release|Any CPU + {72763FBA-675A-4784-8A57-E69AD41DC685}.Release|x86.Build.0 = Release|Any CPU {5FDA646C-30DA-4F13-8399-A3C533D2D16E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5FDA646C-30DA-4F13-8399-A3C533D2D16E}.Debug|Any CPU.Build.0 = Debug|Any CPU {5FDA646C-30DA-4F13-8399-A3C533D2D16E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {5FDA646C-30DA-4F13-8399-A3C533D2D16E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {5FDA646C-30DA-4F13-8399-A3C533D2D16E}.Debug|x86.ActiveCfg = Debug|Any CPU - {5FDA646C-30DA-4F13-8399-A3C533D2D16E}.Debug|x86.Build.0 = Debug|Any CPU {5FDA646C-30DA-4F13-8399-A3C533D2D16E}.Debug|x64.ActiveCfg = Debug|Any CPU {5FDA646C-30DA-4F13-8399-A3C533D2D16E}.Debug|x64.Build.0 = Debug|Any CPU + {5FDA646C-30DA-4F13-8399-A3C533D2D16E}.Debug|x86.ActiveCfg = Debug|Any CPU + {5FDA646C-30DA-4F13-8399-A3C533D2D16E}.Debug|x86.Build.0 = Debug|Any CPU {5FDA646C-30DA-4F13-8399-A3C533D2D16E}.Release|Any CPU.ActiveCfg = Release|Any CPU {5FDA646C-30DA-4F13-8399-A3C533D2D16E}.Release|Any CPU.Build.0 = Release|Any CPU {5FDA646C-30DA-4F13-8399-A3C533D2D16E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {5FDA646C-30DA-4F13-8399-A3C533D2D16E}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {5FDA646C-30DA-4F13-8399-A3C533D2D16E}.Release|x86.ActiveCfg = Release|Any CPU - {5FDA646C-30DA-4F13-8399-A3C533D2D16E}.Release|x86.Build.0 = Release|Any CPU {5FDA646C-30DA-4F13-8399-A3C533D2D16E}.Release|x64.ActiveCfg = Release|Any CPU {5FDA646C-30DA-4F13-8399-A3C533D2D16E}.Release|x64.Build.0 = Release|Any CPU + {5FDA646C-30DA-4F13-8399-A3C533D2D16E}.Release|x86.ActiveCfg = Release|Any CPU + {5FDA646C-30DA-4F13-8399-A3C533D2D16E}.Release|x86.Build.0 = Release|Any CPU {D8D94678-0480-4D2B-AA7D-C65BAE59B288}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D8D94678-0480-4D2B-AA7D-C65BAE59B288}.Debug|Any CPU.Build.0 = Debug|Any CPU {D8D94678-0480-4D2B-AA7D-C65BAE59B288}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {D8D94678-0480-4D2B-AA7D-C65BAE59B288}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {D8D94678-0480-4D2B-AA7D-C65BAE59B288}.Debug|x86.ActiveCfg = Debug|Any CPU - {D8D94678-0480-4D2B-AA7D-C65BAE59B288}.Debug|x86.Build.0 = Debug|Any CPU {D8D94678-0480-4D2B-AA7D-C65BAE59B288}.Debug|x64.ActiveCfg = Debug|Any CPU {D8D94678-0480-4D2B-AA7D-C65BAE59B288}.Debug|x64.Build.0 = Debug|Any CPU + {D8D94678-0480-4D2B-AA7D-C65BAE59B288}.Debug|x86.ActiveCfg = Debug|Any CPU + {D8D94678-0480-4D2B-AA7D-C65BAE59B288}.Debug|x86.Build.0 = Debug|Any CPU {D8D94678-0480-4D2B-AA7D-C65BAE59B288}.Release|Any CPU.ActiveCfg = Release|Any CPU {D8D94678-0480-4D2B-AA7D-C65BAE59B288}.Release|Any CPU.Build.0 = Release|Any CPU {D8D94678-0480-4D2B-AA7D-C65BAE59B288}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {D8D94678-0480-4D2B-AA7D-C65BAE59B288}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {D8D94678-0480-4D2B-AA7D-C65BAE59B288}.Release|x86.ActiveCfg = Release|Any CPU - {D8D94678-0480-4D2B-AA7D-C65BAE59B288}.Release|x86.Build.0 = Release|Any CPU {D8D94678-0480-4D2B-AA7D-C65BAE59B288}.Release|x64.ActiveCfg = Release|Any CPU {D8D94678-0480-4D2B-AA7D-C65BAE59B288}.Release|x64.Build.0 = Release|Any CPU + {D8D94678-0480-4D2B-AA7D-C65BAE59B288}.Release|x86.ActiveCfg = Release|Any CPU + {D8D94678-0480-4D2B-AA7D-C65BAE59B288}.Release|x86.Build.0 = Release|Any CPU {29FAAF3E-504D-472F-91F6-14A41B897912}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {29FAAF3E-504D-472F-91F6-14A41B897912}.Debug|Any CPU.Build.0 = Debug|Any CPU {29FAAF3E-504D-472F-91F6-14A41B897912}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {29FAAF3E-504D-472F-91F6-14A41B897912}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {29FAAF3E-504D-472F-91F6-14A41B897912}.Debug|x86.ActiveCfg = Debug|Any CPU - {29FAAF3E-504D-472F-91F6-14A41B897912}.Debug|x86.Build.0 = Debug|Any CPU {29FAAF3E-504D-472F-91F6-14A41B897912}.Debug|x64.ActiveCfg = Debug|Any CPU {29FAAF3E-504D-472F-91F6-14A41B897912}.Debug|x64.Build.0 = Debug|Any CPU + {29FAAF3E-504D-472F-91F6-14A41B897912}.Debug|x86.ActiveCfg = Debug|Any CPU + {29FAAF3E-504D-472F-91F6-14A41B897912}.Debug|x86.Build.0 = Debug|Any CPU {29FAAF3E-504D-472F-91F6-14A41B897912}.Release|Any CPU.ActiveCfg = Release|Any CPU {29FAAF3E-504D-472F-91F6-14A41B897912}.Release|Any CPU.Build.0 = Release|Any CPU {29FAAF3E-504D-472F-91F6-14A41B897912}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {29FAAF3E-504D-472F-91F6-14A41B897912}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {29FAAF3E-504D-472F-91F6-14A41B897912}.Release|x86.ActiveCfg = Release|Any CPU - {29FAAF3E-504D-472F-91F6-14A41B897912}.Release|x86.Build.0 = Release|Any CPU {29FAAF3E-504D-472F-91F6-14A41B897912}.Release|x64.ActiveCfg = Release|Any CPU {29FAAF3E-504D-472F-91F6-14A41B897912}.Release|x64.Build.0 = Release|Any CPU + {29FAAF3E-504D-472F-91F6-14A41B897912}.Release|x86.ActiveCfg = Release|Any CPU + {29FAAF3E-504D-472F-91F6-14A41B897912}.Release|x86.Build.0 = Release|Any CPU {AA2AA086-9B8A-4910-A793-E92B1E352351}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AA2AA086-9B8A-4910-A793-E92B1E352351}.Debug|Any CPU.Build.0 = Debug|Any CPU {AA2AA086-9B8A-4910-A793-E92B1E352351}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {AA2AA086-9B8A-4910-A793-E92B1E352351}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {AA2AA086-9B8A-4910-A793-E92B1E352351}.Debug|x86.ActiveCfg = Debug|Any CPU - {AA2AA086-9B8A-4910-A793-E92B1E352351}.Debug|x86.Build.0 = Debug|Any CPU {AA2AA086-9B8A-4910-A793-E92B1E352351}.Debug|x64.ActiveCfg = Debug|Any CPU {AA2AA086-9B8A-4910-A793-E92B1E352351}.Debug|x64.Build.0 = Debug|Any CPU + {AA2AA086-9B8A-4910-A793-E92B1E352351}.Debug|x86.ActiveCfg = Debug|Any CPU + {AA2AA086-9B8A-4910-A793-E92B1E352351}.Debug|x86.Build.0 = Debug|Any CPU {AA2AA086-9B8A-4910-A793-E92B1E352351}.Release|Any CPU.ActiveCfg = Release|Any CPU {AA2AA086-9B8A-4910-A793-E92B1E352351}.Release|Any CPU.Build.0 = Release|Any CPU {AA2AA086-9B8A-4910-A793-E92B1E352351}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {AA2AA086-9B8A-4910-A793-E92B1E352351}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {AA2AA086-9B8A-4910-A793-E92B1E352351}.Release|x86.ActiveCfg = Release|Any CPU - {AA2AA086-9B8A-4910-A793-E92B1E352351}.Release|x86.Build.0 = Release|Any CPU {AA2AA086-9B8A-4910-A793-E92B1E352351}.Release|x64.ActiveCfg = Release|Any CPU {AA2AA086-9B8A-4910-A793-E92B1E352351}.Release|x64.Build.0 = Release|Any CPU + {AA2AA086-9B8A-4910-A793-E92B1E352351}.Release|x86.ActiveCfg = Release|Any CPU + {AA2AA086-9B8A-4910-A793-E92B1E352351}.Release|x86.Build.0 = Release|Any CPU {F329B6C6-40C2-45BA-A2A8-276ACAFA1867}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F329B6C6-40C2-45BA-A2A8-276ACAFA1867}.Debug|Any CPU.Build.0 = Debug|Any CPU {F329B6C6-40C2-45BA-A2A8-276ACAFA1867}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {F329B6C6-40C2-45BA-A2A8-276ACAFA1867}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {F329B6C6-40C2-45BA-A2A8-276ACAFA1867}.Debug|x86.ActiveCfg = Debug|Any CPU - {F329B6C6-40C2-45BA-A2A8-276ACAFA1867}.Debug|x86.Build.0 = Debug|Any CPU {F329B6C6-40C2-45BA-A2A8-276ACAFA1867}.Debug|x64.ActiveCfg = Debug|Any CPU {F329B6C6-40C2-45BA-A2A8-276ACAFA1867}.Debug|x64.Build.0 = Debug|Any CPU + {F329B6C6-40C2-45BA-A2A8-276ACAFA1867}.Debug|x86.ActiveCfg = Debug|Any CPU + {F329B6C6-40C2-45BA-A2A8-276ACAFA1867}.Debug|x86.Build.0 = Debug|Any CPU {F329B6C6-40C2-45BA-A2A8-276ACAFA1867}.Release|Any CPU.ActiveCfg = Release|Any CPU {F329B6C6-40C2-45BA-A2A8-276ACAFA1867}.Release|Any CPU.Build.0 = Release|Any CPU {F329B6C6-40C2-45BA-A2A8-276ACAFA1867}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {F329B6C6-40C2-45BA-A2A8-276ACAFA1867}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {F329B6C6-40C2-45BA-A2A8-276ACAFA1867}.Release|x86.ActiveCfg = Release|Any CPU - {F329B6C6-40C2-45BA-A2A8-276ACAFA1867}.Release|x86.Build.0 = Release|Any CPU {F329B6C6-40C2-45BA-A2A8-276ACAFA1867}.Release|x64.ActiveCfg = Release|Any CPU {F329B6C6-40C2-45BA-A2A8-276ACAFA1867}.Release|x64.Build.0 = Release|Any CPU + {F329B6C6-40C2-45BA-A2A8-276ACAFA1867}.Release|x86.ActiveCfg = Release|Any CPU + {F329B6C6-40C2-45BA-A2A8-276ACAFA1867}.Release|x86.Build.0 = Release|Any CPU {4ACA8480-16A0-4BC8-8401-4A27E5AEC1BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4ACA8480-16A0-4BC8-8401-4A27E5AEC1BE}.Debug|Any CPU.Build.0 = Debug|Any CPU {4ACA8480-16A0-4BC8-8401-4A27E5AEC1BE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {4ACA8480-16A0-4BC8-8401-4A27E5AEC1BE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {4ACA8480-16A0-4BC8-8401-4A27E5AEC1BE}.Debug|x86.ActiveCfg = Debug|Any CPU - {4ACA8480-16A0-4BC8-8401-4A27E5AEC1BE}.Debug|x86.Build.0 = Debug|Any CPU {4ACA8480-16A0-4BC8-8401-4A27E5AEC1BE}.Debug|x64.ActiveCfg = Debug|Any CPU {4ACA8480-16A0-4BC8-8401-4A27E5AEC1BE}.Debug|x64.Build.0 = Debug|Any CPU + {4ACA8480-16A0-4BC8-8401-4A27E5AEC1BE}.Debug|x86.ActiveCfg = Debug|Any CPU + {4ACA8480-16A0-4BC8-8401-4A27E5AEC1BE}.Debug|x86.Build.0 = Debug|Any CPU {4ACA8480-16A0-4BC8-8401-4A27E5AEC1BE}.Release|Any CPU.ActiveCfg = Release|Any CPU {4ACA8480-16A0-4BC8-8401-4A27E5AEC1BE}.Release|Any CPU.Build.0 = Release|Any CPU {4ACA8480-16A0-4BC8-8401-4A27E5AEC1BE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {4ACA8480-16A0-4BC8-8401-4A27E5AEC1BE}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {4ACA8480-16A0-4BC8-8401-4A27E5AEC1BE}.Release|x86.ActiveCfg = Release|Any CPU - {4ACA8480-16A0-4BC8-8401-4A27E5AEC1BE}.Release|x86.Build.0 = Release|Any CPU {4ACA8480-16A0-4BC8-8401-4A27E5AEC1BE}.Release|x64.ActiveCfg = Release|Any CPU {4ACA8480-16A0-4BC8-8401-4A27E5AEC1BE}.Release|x64.Build.0 = Release|Any CPU + {4ACA8480-16A0-4BC8-8401-4A27E5AEC1BE}.Release|x86.ActiveCfg = Release|Any CPU + {4ACA8480-16A0-4BC8-8401-4A27E5AEC1BE}.Release|x86.Build.0 = Release|Any CPU {397F8496-6916-43EF-AEB2-5D84048DE357}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {397F8496-6916-43EF-AEB2-5D84048DE357}.Debug|Any CPU.Build.0 = Debug|Any CPU {397F8496-6916-43EF-AEB2-5D84048DE357}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {397F8496-6916-43EF-AEB2-5D84048DE357}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {397F8496-6916-43EF-AEB2-5D84048DE357}.Debug|x86.ActiveCfg = Debug|Any CPU - {397F8496-6916-43EF-AEB2-5D84048DE357}.Debug|x86.Build.0 = Debug|Any CPU {397F8496-6916-43EF-AEB2-5D84048DE357}.Debug|x64.ActiveCfg = Debug|Any CPU {397F8496-6916-43EF-AEB2-5D84048DE357}.Debug|x64.Build.0 = Debug|Any CPU + {397F8496-6916-43EF-AEB2-5D84048DE357}.Debug|x86.ActiveCfg = Debug|Any CPU + {397F8496-6916-43EF-AEB2-5D84048DE357}.Debug|x86.Build.0 = Debug|Any CPU {397F8496-6916-43EF-AEB2-5D84048DE357}.Release|Any CPU.ActiveCfg = Release|Any CPU {397F8496-6916-43EF-AEB2-5D84048DE357}.Release|Any CPU.Build.0 = Release|Any CPU {397F8496-6916-43EF-AEB2-5D84048DE357}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {397F8496-6916-43EF-AEB2-5D84048DE357}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {397F8496-6916-43EF-AEB2-5D84048DE357}.Release|x86.ActiveCfg = Release|Any CPU - {397F8496-6916-43EF-AEB2-5D84048DE357}.Release|x86.Build.0 = Release|Any CPU {397F8496-6916-43EF-AEB2-5D84048DE357}.Release|x64.ActiveCfg = Release|Any CPU {397F8496-6916-43EF-AEB2-5D84048DE357}.Release|x64.Build.0 = Release|Any CPU + {397F8496-6916-43EF-AEB2-5D84048DE357}.Release|x86.ActiveCfg = Release|Any CPU + {397F8496-6916-43EF-AEB2-5D84048DE357}.Release|x86.Build.0 = Release|Any CPU {021F3B51-A640-4C0D-9B47-FB4E32DF6715}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {021F3B51-A640-4C0D-9B47-FB4E32DF6715}.Debug|Any CPU.Build.0 = Debug|Any CPU {021F3B51-A640-4C0D-9B47-FB4E32DF6715}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {021F3B51-A640-4C0D-9B47-FB4E32DF6715}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {021F3B51-A640-4C0D-9B47-FB4E32DF6715}.Debug|x86.ActiveCfg = Debug|Any CPU - {021F3B51-A640-4C0D-9B47-FB4E32DF6715}.Debug|x86.Build.0 = Debug|Any CPU {021F3B51-A640-4C0D-9B47-FB4E32DF6715}.Debug|x64.ActiveCfg = Debug|Any CPU {021F3B51-A640-4C0D-9B47-FB4E32DF6715}.Debug|x64.Build.0 = Debug|Any CPU + {021F3B51-A640-4C0D-9B47-FB4E32DF6715}.Debug|x86.ActiveCfg = Debug|Any CPU + {021F3B51-A640-4C0D-9B47-FB4E32DF6715}.Debug|x86.Build.0 = Debug|Any CPU {021F3B51-A640-4C0D-9B47-FB4E32DF6715}.Release|Any CPU.ActiveCfg = Release|Any CPU {021F3B51-A640-4C0D-9B47-FB4E32DF6715}.Release|Any CPU.Build.0 = Release|Any CPU {021F3B51-A640-4C0D-9B47-FB4E32DF6715}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {021F3B51-A640-4C0D-9B47-FB4E32DF6715}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {021F3B51-A640-4C0D-9B47-FB4E32DF6715}.Release|x86.ActiveCfg = Release|Any CPU - {021F3B51-A640-4C0D-9B47-FB4E32DF6715}.Release|x86.Build.0 = Release|Any CPU {021F3B51-A640-4C0D-9B47-FB4E32DF6715}.Release|x64.ActiveCfg = Release|Any CPU {021F3B51-A640-4C0D-9B47-FB4E32DF6715}.Release|x64.Build.0 = Release|Any CPU + {021F3B51-A640-4C0D-9B47-FB4E32DF6715}.Release|x86.ActiveCfg = Release|Any CPU + {021F3B51-A640-4C0D-9B47-FB4E32DF6715}.Release|x86.Build.0 = Release|Any CPU {7FD4C263-74DA-4648-AD2A-7EB34FCBE18E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7FD4C263-74DA-4648-AD2A-7EB34FCBE18E}.Debug|Any CPU.Build.0 = Debug|Any CPU {7FD4C263-74DA-4648-AD2A-7EB34FCBE18E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {7FD4C263-74DA-4648-AD2A-7EB34FCBE18E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {7FD4C263-74DA-4648-AD2A-7EB34FCBE18E}.Debug|x86.ActiveCfg = Debug|Any CPU - {7FD4C263-74DA-4648-AD2A-7EB34FCBE18E}.Debug|x86.Build.0 = Debug|Any CPU {7FD4C263-74DA-4648-AD2A-7EB34FCBE18E}.Debug|x64.ActiveCfg = Debug|Any CPU {7FD4C263-74DA-4648-AD2A-7EB34FCBE18E}.Debug|x64.Build.0 = Debug|Any CPU + {7FD4C263-74DA-4648-AD2A-7EB34FCBE18E}.Debug|x86.ActiveCfg = Debug|Any CPU + {7FD4C263-74DA-4648-AD2A-7EB34FCBE18E}.Debug|x86.Build.0 = Debug|Any CPU {7FD4C263-74DA-4648-AD2A-7EB34FCBE18E}.Release|Any CPU.ActiveCfg = Release|Any CPU {7FD4C263-74DA-4648-AD2A-7EB34FCBE18E}.Release|Any CPU.Build.0 = Release|Any CPU {7FD4C263-74DA-4648-AD2A-7EB34FCBE18E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {7FD4C263-74DA-4648-AD2A-7EB34FCBE18E}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {7FD4C263-74DA-4648-AD2A-7EB34FCBE18E}.Release|x86.ActiveCfg = Release|Any CPU - {7FD4C263-74DA-4648-AD2A-7EB34FCBE18E}.Release|x86.Build.0 = Release|Any CPU {7FD4C263-74DA-4648-AD2A-7EB34FCBE18E}.Release|x64.ActiveCfg = Release|Any CPU {7FD4C263-74DA-4648-AD2A-7EB34FCBE18E}.Release|x64.Build.0 = Release|Any CPU + {7FD4C263-74DA-4648-AD2A-7EB34FCBE18E}.Release|x86.ActiveCfg = Release|Any CPU + {7FD4C263-74DA-4648-AD2A-7EB34FCBE18E}.Release|x86.Build.0 = Release|Any CPU {F5B8D15A-22CC-4A73-A941-6AD34D0BDEA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F5B8D15A-22CC-4A73-A941-6AD34D0BDEA3}.Debug|Any CPU.Build.0 = Debug|Any CPU {F5B8D15A-22CC-4A73-A941-6AD34D0BDEA3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {F5B8D15A-22CC-4A73-A941-6AD34D0BDEA3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {F5B8D15A-22CC-4A73-A941-6AD34D0BDEA3}.Debug|x86.ActiveCfg = Debug|Any CPU - {F5B8D15A-22CC-4A73-A941-6AD34D0BDEA3}.Debug|x86.Build.0 = Debug|Any CPU {F5B8D15A-22CC-4A73-A941-6AD34D0BDEA3}.Debug|x64.ActiveCfg = Debug|Any CPU {F5B8D15A-22CC-4A73-A941-6AD34D0BDEA3}.Debug|x64.Build.0 = Debug|Any CPU + {F5B8D15A-22CC-4A73-A941-6AD34D0BDEA3}.Debug|x86.ActiveCfg = Debug|Any CPU + {F5B8D15A-22CC-4A73-A941-6AD34D0BDEA3}.Debug|x86.Build.0 = Debug|Any CPU {F5B8D15A-22CC-4A73-A941-6AD34D0BDEA3}.Release|Any CPU.ActiveCfg = Release|Any CPU {F5B8D15A-22CC-4A73-A941-6AD34D0BDEA3}.Release|Any CPU.Build.0 = Release|Any CPU {F5B8D15A-22CC-4A73-A941-6AD34D0BDEA3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {F5B8D15A-22CC-4A73-A941-6AD34D0BDEA3}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {F5B8D15A-22CC-4A73-A941-6AD34D0BDEA3}.Release|x86.ActiveCfg = Release|Any CPU - {F5B8D15A-22CC-4A73-A941-6AD34D0BDEA3}.Release|x86.Build.0 = Release|Any CPU {F5B8D15A-22CC-4A73-A941-6AD34D0BDEA3}.Release|x64.ActiveCfg = Release|Any CPU {F5B8D15A-22CC-4A73-A941-6AD34D0BDEA3}.Release|x64.Build.0 = Release|Any CPU + {F5B8D15A-22CC-4A73-A941-6AD34D0BDEA3}.Release|x86.ActiveCfg = Release|Any CPU + {F5B8D15A-22CC-4A73-A941-6AD34D0BDEA3}.Release|x86.Build.0 = Release|Any CPU {6B2250DD-4123-40D2-87C5-4C29D452C114}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6B2250DD-4123-40D2-87C5-4C29D452C114}.Debug|Any CPU.Build.0 = Debug|Any CPU {6B2250DD-4123-40D2-87C5-4C29D452C114}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {6B2250DD-4123-40D2-87C5-4C29D452C114}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {6B2250DD-4123-40D2-87C5-4C29D452C114}.Debug|x86.ActiveCfg = Debug|Any CPU - {6B2250DD-4123-40D2-87C5-4C29D452C114}.Debug|x86.Build.0 = Debug|Any CPU {6B2250DD-4123-40D2-87C5-4C29D452C114}.Debug|x64.ActiveCfg = Debug|Any CPU {6B2250DD-4123-40D2-87C5-4C29D452C114}.Debug|x64.Build.0 = Debug|Any CPU + {6B2250DD-4123-40D2-87C5-4C29D452C114}.Debug|x86.ActiveCfg = Debug|Any CPU + {6B2250DD-4123-40D2-87C5-4C29D452C114}.Debug|x86.Build.0 = Debug|Any CPU {6B2250DD-4123-40D2-87C5-4C29D452C114}.Release|Any CPU.ActiveCfg = Release|Any CPU {6B2250DD-4123-40D2-87C5-4C29D452C114}.Release|Any CPU.Build.0 = Release|Any CPU {6B2250DD-4123-40D2-87C5-4C29D452C114}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {6B2250DD-4123-40D2-87C5-4C29D452C114}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {6B2250DD-4123-40D2-87C5-4C29D452C114}.Release|x86.ActiveCfg = Release|Any CPU - {6B2250DD-4123-40D2-87C5-4C29D452C114}.Release|x86.Build.0 = Release|Any CPU {6B2250DD-4123-40D2-87C5-4C29D452C114}.Release|x64.ActiveCfg = Release|Any CPU {6B2250DD-4123-40D2-87C5-4C29D452C114}.Release|x64.Build.0 = Release|Any CPU + {6B2250DD-4123-40D2-87C5-4C29D452C114}.Release|x86.ActiveCfg = Release|Any CPU + {6B2250DD-4123-40D2-87C5-4C29D452C114}.Release|x86.Build.0 = Release|Any CPU {F0C3FC17-7D5B-4142-9166-BE0D55D66A10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F0C3FC17-7D5B-4142-9166-BE0D55D66A10}.Debug|Any CPU.Build.0 = Debug|Any CPU {F0C3FC17-7D5B-4142-9166-BE0D55D66A10}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {F0C3FC17-7D5B-4142-9166-BE0D55D66A10}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {F0C3FC17-7D5B-4142-9166-BE0D55D66A10}.Debug|x86.ActiveCfg = Debug|Any CPU - {F0C3FC17-7D5B-4142-9166-BE0D55D66A10}.Debug|x86.Build.0 = Debug|Any CPU {F0C3FC17-7D5B-4142-9166-BE0D55D66A10}.Debug|x64.ActiveCfg = Debug|Any CPU {F0C3FC17-7D5B-4142-9166-BE0D55D66A10}.Debug|x64.Build.0 = Debug|Any CPU + {F0C3FC17-7D5B-4142-9166-BE0D55D66A10}.Debug|x86.ActiveCfg = Debug|Any CPU + {F0C3FC17-7D5B-4142-9166-BE0D55D66A10}.Debug|x86.Build.0 = Debug|Any CPU {F0C3FC17-7D5B-4142-9166-BE0D55D66A10}.Release|Any CPU.ActiveCfg = Release|Any CPU {F0C3FC17-7D5B-4142-9166-BE0D55D66A10}.Release|Any CPU.Build.0 = Release|Any CPU {F0C3FC17-7D5B-4142-9166-BE0D55D66A10}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {F0C3FC17-7D5B-4142-9166-BE0D55D66A10}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {F0C3FC17-7D5B-4142-9166-BE0D55D66A10}.Release|x86.ActiveCfg = Release|Any CPU - {F0C3FC17-7D5B-4142-9166-BE0D55D66A10}.Release|x86.Build.0 = Release|Any CPU {F0C3FC17-7D5B-4142-9166-BE0D55D66A10}.Release|x64.ActiveCfg = Release|Any CPU {F0C3FC17-7D5B-4142-9166-BE0D55D66A10}.Release|x64.Build.0 = Release|Any CPU + {F0C3FC17-7D5B-4142-9166-BE0D55D66A10}.Release|x86.ActiveCfg = Release|Any CPU + {F0C3FC17-7D5B-4142-9166-BE0D55D66A10}.Release|x86.Build.0 = Release|Any CPU {BA45BF25-2EDA-403A-A13D-9245D04E0548}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BA45BF25-2EDA-403A-A13D-9245D04E0548}.Debug|Any CPU.Build.0 = Debug|Any CPU {BA45BF25-2EDA-403A-A13D-9245D04E0548}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {BA45BF25-2EDA-403A-A13D-9245D04E0548}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {BA45BF25-2EDA-403A-A13D-9245D04E0548}.Debug|x86.ActiveCfg = Debug|Any CPU - {BA45BF25-2EDA-403A-A13D-9245D04E0548}.Debug|x86.Build.0 = Debug|Any CPU {BA45BF25-2EDA-403A-A13D-9245D04E0548}.Debug|x64.ActiveCfg = Debug|Any CPU {BA45BF25-2EDA-403A-A13D-9245D04E0548}.Debug|x64.Build.0 = Debug|Any CPU + {BA45BF25-2EDA-403A-A13D-9245D04E0548}.Debug|x86.ActiveCfg = Debug|Any CPU + {BA45BF25-2EDA-403A-A13D-9245D04E0548}.Debug|x86.Build.0 = Debug|Any CPU {BA45BF25-2EDA-403A-A13D-9245D04E0548}.Release|Any CPU.ActiveCfg = Release|Any CPU {BA45BF25-2EDA-403A-A13D-9245D04E0548}.Release|Any CPU.Build.0 = Release|Any CPU {BA45BF25-2EDA-403A-A13D-9245D04E0548}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {BA45BF25-2EDA-403A-A13D-9245D04E0548}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {BA45BF25-2EDA-403A-A13D-9245D04E0548}.Release|x86.ActiveCfg = Release|Any CPU - {BA45BF25-2EDA-403A-A13D-9245D04E0548}.Release|x86.Build.0 = Release|Any CPU {BA45BF25-2EDA-403A-A13D-9245D04E0548}.Release|x64.ActiveCfg = Release|Any CPU {BA45BF25-2EDA-403A-A13D-9245D04E0548}.Release|x64.Build.0 = Release|Any CPU + {BA45BF25-2EDA-403A-A13D-9245D04E0548}.Release|x86.ActiveCfg = Release|Any CPU + {BA45BF25-2EDA-403A-A13D-9245D04E0548}.Release|x86.Build.0 = Release|Any CPU {E46CF97B-DE8B-4FC4-9D3D-941EE00A31E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E46CF97B-DE8B-4FC4-9D3D-941EE00A31E3}.Debug|Any CPU.Build.0 = Debug|Any CPU {E46CF97B-DE8B-4FC4-9D3D-941EE00A31E3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {E46CF97B-DE8B-4FC4-9D3D-941EE00A31E3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {E46CF97B-DE8B-4FC4-9D3D-941EE00A31E3}.Debug|x86.ActiveCfg = Debug|Any CPU - {E46CF97B-DE8B-4FC4-9D3D-941EE00A31E3}.Debug|x86.Build.0 = Debug|Any CPU {E46CF97B-DE8B-4FC4-9D3D-941EE00A31E3}.Debug|x64.ActiveCfg = Debug|Any CPU {E46CF97B-DE8B-4FC4-9D3D-941EE00A31E3}.Debug|x64.Build.0 = Debug|Any CPU + {E46CF97B-DE8B-4FC4-9D3D-941EE00A31E3}.Debug|x86.ActiveCfg = Debug|Any CPU + {E46CF97B-DE8B-4FC4-9D3D-941EE00A31E3}.Debug|x86.Build.0 = Debug|Any CPU {E46CF97B-DE8B-4FC4-9D3D-941EE00A31E3}.Release|Any CPU.ActiveCfg = Release|Any CPU {E46CF97B-DE8B-4FC4-9D3D-941EE00A31E3}.Release|Any CPU.Build.0 = Release|Any CPU {E46CF97B-DE8B-4FC4-9D3D-941EE00A31E3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {E46CF97B-DE8B-4FC4-9D3D-941EE00A31E3}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {E46CF97B-DE8B-4FC4-9D3D-941EE00A31E3}.Release|x86.ActiveCfg = Release|Any CPU - {E46CF97B-DE8B-4FC4-9D3D-941EE00A31E3}.Release|x86.Build.0 = Release|Any CPU {E46CF97B-DE8B-4FC4-9D3D-941EE00A31E3}.Release|x64.ActiveCfg = Release|Any CPU {E46CF97B-DE8B-4FC4-9D3D-941EE00A31E3}.Release|x64.Build.0 = Release|Any CPU + {E46CF97B-DE8B-4FC4-9D3D-941EE00A31E3}.Release|x86.ActiveCfg = Release|Any CPU + {E46CF97B-DE8B-4FC4-9D3D-941EE00A31E3}.Release|x86.Build.0 = Release|Any CPU {5FCF6804-C2A3-45EE-B6B1-28A04E495BC8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5FCF6804-C2A3-45EE-B6B1-28A04E495BC8}.Debug|Any CPU.Build.0 = Debug|Any CPU {5FCF6804-C2A3-45EE-B6B1-28A04E495BC8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {5FCF6804-C2A3-45EE-B6B1-28A04E495BC8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {5FCF6804-C2A3-45EE-B6B1-28A04E495BC8}.Debug|x86.ActiveCfg = Debug|Any CPU - {5FCF6804-C2A3-45EE-B6B1-28A04E495BC8}.Debug|x86.Build.0 = Debug|Any CPU {5FCF6804-C2A3-45EE-B6B1-28A04E495BC8}.Debug|x64.ActiveCfg = Debug|Any CPU {5FCF6804-C2A3-45EE-B6B1-28A04E495BC8}.Debug|x64.Build.0 = Debug|Any CPU + {5FCF6804-C2A3-45EE-B6B1-28A04E495BC8}.Debug|x86.ActiveCfg = Debug|Any CPU + {5FCF6804-C2A3-45EE-B6B1-28A04E495BC8}.Debug|x86.Build.0 = Debug|Any CPU {5FCF6804-C2A3-45EE-B6B1-28A04E495BC8}.Release|Any CPU.ActiveCfg = Release|Any CPU {5FCF6804-C2A3-45EE-B6B1-28A04E495BC8}.Release|Any CPU.Build.0 = Release|Any CPU {5FCF6804-C2A3-45EE-B6B1-28A04E495BC8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {5FCF6804-C2A3-45EE-B6B1-28A04E495BC8}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {5FCF6804-C2A3-45EE-B6B1-28A04E495BC8}.Release|x86.ActiveCfg = Release|Any CPU - {5FCF6804-C2A3-45EE-B6B1-28A04E495BC8}.Release|x86.Build.0 = Release|Any CPU {5FCF6804-C2A3-45EE-B6B1-28A04E495BC8}.Release|x64.ActiveCfg = Release|Any CPU {5FCF6804-C2A3-45EE-B6B1-28A04E495BC8}.Release|x64.Build.0 = Release|Any CPU + {5FCF6804-C2A3-45EE-B6B1-28A04E495BC8}.Release|x86.ActiveCfg = Release|Any CPU + {5FCF6804-C2A3-45EE-B6B1-28A04E495BC8}.Release|x86.Build.0 = Release|Any CPU {C7EE03A8-BF54-43AC-8A25-E7E75BA545F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C7EE03A8-BF54-43AC-8A25-E7E75BA545F8}.Debug|Any CPU.Build.0 = Debug|Any CPU {C7EE03A8-BF54-43AC-8A25-E7E75BA545F8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {C7EE03A8-BF54-43AC-8A25-E7E75BA545F8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {C7EE03A8-BF54-43AC-8A25-E7E75BA545F8}.Debug|x86.ActiveCfg = Debug|Any CPU - {C7EE03A8-BF54-43AC-8A25-E7E75BA545F8}.Debug|x86.Build.0 = Debug|Any CPU {C7EE03A8-BF54-43AC-8A25-E7E75BA545F8}.Debug|x64.ActiveCfg = Debug|Any CPU {C7EE03A8-BF54-43AC-8A25-E7E75BA545F8}.Debug|x64.Build.0 = Debug|Any CPU + {C7EE03A8-BF54-43AC-8A25-E7E75BA545F8}.Debug|x86.ActiveCfg = Debug|Any CPU + {C7EE03A8-BF54-43AC-8A25-E7E75BA545F8}.Debug|x86.Build.0 = Debug|Any CPU {C7EE03A8-BF54-43AC-8A25-E7E75BA545F8}.Release|Any CPU.ActiveCfg = Release|Any CPU {C7EE03A8-BF54-43AC-8A25-E7E75BA545F8}.Release|Any CPU.Build.0 = Release|Any CPU {C7EE03A8-BF54-43AC-8A25-E7E75BA545F8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {C7EE03A8-BF54-43AC-8A25-E7E75BA545F8}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {C7EE03A8-BF54-43AC-8A25-E7E75BA545F8}.Release|x86.ActiveCfg = Release|Any CPU - {C7EE03A8-BF54-43AC-8A25-E7E75BA545F8}.Release|x86.Build.0 = Release|Any CPU {C7EE03A8-BF54-43AC-8A25-E7E75BA545F8}.Release|x64.ActiveCfg = Release|Any CPU {C7EE03A8-BF54-43AC-8A25-E7E75BA545F8}.Release|x64.Build.0 = Release|Any CPU + {C7EE03A8-BF54-43AC-8A25-E7E75BA545F8}.Release|x86.ActiveCfg = Release|Any CPU + {C7EE03A8-BF54-43AC-8A25-E7E75BA545F8}.Release|x86.Build.0 = Release|Any CPU {A887689F-0873-4C4A-9473-4BB600F7942B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A887689F-0873-4C4A-9473-4BB600F7942B}.Debug|Any CPU.Build.0 = Debug|Any CPU {A887689F-0873-4C4A-9473-4BB600F7942B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {A887689F-0873-4C4A-9473-4BB600F7942B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {A887689F-0873-4C4A-9473-4BB600F7942B}.Debug|x86.ActiveCfg = Debug|Any CPU - {A887689F-0873-4C4A-9473-4BB600F7942B}.Debug|x86.Build.0 = Debug|Any CPU {A887689F-0873-4C4A-9473-4BB600F7942B}.Debug|x64.ActiveCfg = Debug|Any CPU {A887689F-0873-4C4A-9473-4BB600F7942B}.Debug|x64.Build.0 = Debug|Any CPU + {A887689F-0873-4C4A-9473-4BB600F7942B}.Debug|x86.ActiveCfg = Debug|Any CPU + {A887689F-0873-4C4A-9473-4BB600F7942B}.Debug|x86.Build.0 = Debug|Any CPU {A887689F-0873-4C4A-9473-4BB600F7942B}.Release|Any CPU.ActiveCfg = Release|Any CPU {A887689F-0873-4C4A-9473-4BB600F7942B}.Release|Any CPU.Build.0 = Release|Any CPU {A887689F-0873-4C4A-9473-4BB600F7942B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {A887689F-0873-4C4A-9473-4BB600F7942B}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {A887689F-0873-4C4A-9473-4BB600F7942B}.Release|x86.ActiveCfg = Release|Any CPU - {A887689F-0873-4C4A-9473-4BB600F7942B}.Release|x86.Build.0 = Release|Any CPU {A887689F-0873-4C4A-9473-4BB600F7942B}.Release|x64.ActiveCfg = Release|Any CPU {A887689F-0873-4C4A-9473-4BB600F7942B}.Release|x64.Build.0 = Release|Any CPU + {A887689F-0873-4C4A-9473-4BB600F7942B}.Release|x86.ActiveCfg = Release|Any CPU + {A887689F-0873-4C4A-9473-4BB600F7942B}.Release|x86.Build.0 = Release|Any CPU {3C8C7736-1E0B-440B-A568-8D5F127AA39B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3C8C7736-1E0B-440B-A568-8D5F127AA39B}.Debug|Any CPU.Build.0 = Debug|Any CPU {3C8C7736-1E0B-440B-A568-8D5F127AA39B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {3C8C7736-1E0B-440B-A568-8D5F127AA39B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {3C8C7736-1E0B-440B-A568-8D5F127AA39B}.Debug|x86.ActiveCfg = Debug|Any CPU - {3C8C7736-1E0B-440B-A568-8D5F127AA39B}.Debug|x86.Build.0 = Debug|Any CPU {3C8C7736-1E0B-440B-A568-8D5F127AA39B}.Debug|x64.ActiveCfg = Debug|Any CPU {3C8C7736-1E0B-440B-A568-8D5F127AA39B}.Debug|x64.Build.0 = Debug|Any CPU + {3C8C7736-1E0B-440B-A568-8D5F127AA39B}.Debug|x86.ActiveCfg = Debug|Any CPU + {3C8C7736-1E0B-440B-A568-8D5F127AA39B}.Debug|x86.Build.0 = Debug|Any CPU {3C8C7736-1E0B-440B-A568-8D5F127AA39B}.Release|Any CPU.ActiveCfg = Release|Any CPU {3C8C7736-1E0B-440B-A568-8D5F127AA39B}.Release|Any CPU.Build.0 = Release|Any CPU {3C8C7736-1E0B-440B-A568-8D5F127AA39B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {3C8C7736-1E0B-440B-A568-8D5F127AA39B}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {3C8C7736-1E0B-440B-A568-8D5F127AA39B}.Release|x86.ActiveCfg = Release|Any CPU - {3C8C7736-1E0B-440B-A568-8D5F127AA39B}.Release|x86.Build.0 = Release|Any CPU {3C8C7736-1E0B-440B-A568-8D5F127AA39B}.Release|x64.ActiveCfg = Release|Any CPU {3C8C7736-1E0B-440B-A568-8D5F127AA39B}.Release|x64.Build.0 = Release|Any CPU + {3C8C7736-1E0B-440B-A568-8D5F127AA39B}.Release|x86.ActiveCfg = Release|Any CPU + {3C8C7736-1E0B-440B-A568-8D5F127AA39B}.Release|x86.Build.0 = Release|Any CPU {449725FE-ED83-4114-B223-9A1858B8E6A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {449725FE-ED83-4114-B223-9A1858B8E6A5}.Debug|Any CPU.Build.0 = Debug|Any CPU {449725FE-ED83-4114-B223-9A1858B8E6A5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {449725FE-ED83-4114-B223-9A1858B8E6A5}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {449725FE-ED83-4114-B223-9A1858B8E6A5}.Debug|x86.ActiveCfg = Debug|Any CPU - {449725FE-ED83-4114-B223-9A1858B8E6A5}.Debug|x86.Build.0 = Debug|Any CPU {449725FE-ED83-4114-B223-9A1858B8E6A5}.Debug|x64.ActiveCfg = Debug|Any CPU {449725FE-ED83-4114-B223-9A1858B8E6A5}.Debug|x64.Build.0 = Debug|Any CPU + {449725FE-ED83-4114-B223-9A1858B8E6A5}.Debug|x86.ActiveCfg = Debug|Any CPU + {449725FE-ED83-4114-B223-9A1858B8E6A5}.Debug|x86.Build.0 = Debug|Any CPU {449725FE-ED83-4114-B223-9A1858B8E6A5}.Release|Any CPU.ActiveCfg = Release|Any CPU {449725FE-ED83-4114-B223-9A1858B8E6A5}.Release|Any CPU.Build.0 = Release|Any CPU {449725FE-ED83-4114-B223-9A1858B8E6A5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {449725FE-ED83-4114-B223-9A1858B8E6A5}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {449725FE-ED83-4114-B223-9A1858B8E6A5}.Release|x86.ActiveCfg = Release|Any CPU - {449725FE-ED83-4114-B223-9A1858B8E6A5}.Release|x86.Build.0 = Release|Any CPU {449725FE-ED83-4114-B223-9A1858B8E6A5}.Release|x64.ActiveCfg = Release|Any CPU {449725FE-ED83-4114-B223-9A1858B8E6A5}.Release|x64.Build.0 = Release|Any CPU + {449725FE-ED83-4114-B223-9A1858B8E6A5}.Release|x86.ActiveCfg = Release|Any CPU + {449725FE-ED83-4114-B223-9A1858B8E6A5}.Release|x86.Build.0 = Release|Any CPU {50A6142D-77DF-473B-B2B7-0B83FA2D4ED0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {50A6142D-77DF-473B-B2B7-0B83FA2D4ED0}.Debug|Any CPU.Build.0 = Debug|Any CPU {50A6142D-77DF-473B-B2B7-0B83FA2D4ED0}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {50A6142D-77DF-473B-B2B7-0B83FA2D4ED0}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {50A6142D-77DF-473B-B2B7-0B83FA2D4ED0}.Debug|x86.ActiveCfg = Debug|Any CPU - {50A6142D-77DF-473B-B2B7-0B83FA2D4ED0}.Debug|x86.Build.0 = Debug|Any CPU {50A6142D-77DF-473B-B2B7-0B83FA2D4ED0}.Debug|x64.ActiveCfg = Debug|Any CPU {50A6142D-77DF-473B-B2B7-0B83FA2D4ED0}.Debug|x64.Build.0 = Debug|Any CPU + {50A6142D-77DF-473B-B2B7-0B83FA2D4ED0}.Debug|x86.ActiveCfg = Debug|Any CPU + {50A6142D-77DF-473B-B2B7-0B83FA2D4ED0}.Debug|x86.Build.0 = Debug|Any CPU {50A6142D-77DF-473B-B2B7-0B83FA2D4ED0}.Release|Any CPU.ActiveCfg = Release|Any CPU {50A6142D-77DF-473B-B2B7-0B83FA2D4ED0}.Release|Any CPU.Build.0 = Release|Any CPU {50A6142D-77DF-473B-B2B7-0B83FA2D4ED0}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {50A6142D-77DF-473B-B2B7-0B83FA2D4ED0}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {50A6142D-77DF-473B-B2B7-0B83FA2D4ED0}.Release|x86.ActiveCfg = Release|Any CPU - {50A6142D-77DF-473B-B2B7-0B83FA2D4ED0}.Release|x86.Build.0 = Release|Any CPU {50A6142D-77DF-473B-B2B7-0B83FA2D4ED0}.Release|x64.ActiveCfg = Release|Any CPU {50A6142D-77DF-473B-B2B7-0B83FA2D4ED0}.Release|x64.Build.0 = Release|Any CPU + {50A6142D-77DF-473B-B2B7-0B83FA2D4ED0}.Release|x86.ActiveCfg = Release|Any CPU + {50A6142D-77DF-473B-B2B7-0B83FA2D4ED0}.Release|x86.Build.0 = Release|Any CPU {85F0B3C7-CE58-4D5C-B21A-2AEE54B4FE50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {85F0B3C7-CE58-4D5C-B21A-2AEE54B4FE50}.Debug|Any CPU.Build.0 = Debug|Any CPU {85F0B3C7-CE58-4D5C-B21A-2AEE54B4FE50}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {85F0B3C7-CE58-4D5C-B21A-2AEE54B4FE50}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {85F0B3C7-CE58-4D5C-B21A-2AEE54B4FE50}.Debug|x86.ActiveCfg = Debug|Any CPU - {85F0B3C7-CE58-4D5C-B21A-2AEE54B4FE50}.Debug|x86.Build.0 = Debug|Any CPU {85F0B3C7-CE58-4D5C-B21A-2AEE54B4FE50}.Debug|x64.ActiveCfg = Debug|Any CPU {85F0B3C7-CE58-4D5C-B21A-2AEE54B4FE50}.Debug|x64.Build.0 = Debug|Any CPU + {85F0B3C7-CE58-4D5C-B21A-2AEE54B4FE50}.Debug|x86.ActiveCfg = Debug|Any CPU + {85F0B3C7-CE58-4D5C-B21A-2AEE54B4FE50}.Debug|x86.Build.0 = Debug|Any CPU {85F0B3C7-CE58-4D5C-B21A-2AEE54B4FE50}.Release|Any CPU.ActiveCfg = Release|Any CPU {85F0B3C7-CE58-4D5C-B21A-2AEE54B4FE50}.Release|Any CPU.Build.0 = Release|Any CPU {85F0B3C7-CE58-4D5C-B21A-2AEE54B4FE50}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {85F0B3C7-CE58-4D5C-B21A-2AEE54B4FE50}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {85F0B3C7-CE58-4D5C-B21A-2AEE54B4FE50}.Release|x86.ActiveCfg = Release|Any CPU - {85F0B3C7-CE58-4D5C-B21A-2AEE54B4FE50}.Release|x86.Build.0 = Release|Any CPU {85F0B3C7-CE58-4D5C-B21A-2AEE54B4FE50}.Release|x64.ActiveCfg = Release|Any CPU {85F0B3C7-CE58-4D5C-B21A-2AEE54B4FE50}.Release|x64.Build.0 = Release|Any CPU + {85F0B3C7-CE58-4D5C-B21A-2AEE54B4FE50}.Release|x86.ActiveCfg = Release|Any CPU + {85F0B3C7-CE58-4D5C-B21A-2AEE54B4FE50}.Release|x86.Build.0 = Release|Any CPU {69C52373-BC86-459A-B084-2ACDAB365AC4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {69C52373-BC86-459A-B084-2ACDAB365AC4}.Debug|Any CPU.Build.0 = Debug|Any CPU {69C52373-BC86-459A-B084-2ACDAB365AC4}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {69C52373-BC86-459A-B084-2ACDAB365AC4}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {69C52373-BC86-459A-B084-2ACDAB365AC4}.Debug|x86.ActiveCfg = Debug|Any CPU - {69C52373-BC86-459A-B084-2ACDAB365AC4}.Debug|x86.Build.0 = Debug|Any CPU {69C52373-BC86-459A-B084-2ACDAB365AC4}.Debug|x64.ActiveCfg = Debug|Any CPU {69C52373-BC86-459A-B084-2ACDAB365AC4}.Debug|x64.Build.0 = Debug|Any CPU + {69C52373-BC86-459A-B084-2ACDAB365AC4}.Debug|x86.ActiveCfg = Debug|Any CPU + {69C52373-BC86-459A-B084-2ACDAB365AC4}.Debug|x86.Build.0 = Debug|Any CPU {69C52373-BC86-459A-B084-2ACDAB365AC4}.Release|Any CPU.ActiveCfg = Release|Any CPU {69C52373-BC86-459A-B084-2ACDAB365AC4}.Release|Any CPU.Build.0 = Release|Any CPU {69C52373-BC86-459A-B084-2ACDAB365AC4}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {69C52373-BC86-459A-B084-2ACDAB365AC4}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {69C52373-BC86-459A-B084-2ACDAB365AC4}.Release|x86.ActiveCfg = Release|Any CPU - {69C52373-BC86-459A-B084-2ACDAB365AC4}.Release|x86.Build.0 = Release|Any CPU {69C52373-BC86-459A-B084-2ACDAB365AC4}.Release|x64.ActiveCfg = Release|Any CPU {69C52373-BC86-459A-B084-2ACDAB365AC4}.Release|x64.Build.0 = Release|Any CPU + {69C52373-BC86-459A-B084-2ACDAB365AC4}.Release|x86.ActiveCfg = Release|Any CPU + {69C52373-BC86-459A-B084-2ACDAB365AC4}.Release|x86.Build.0 = Release|Any CPU {AE69D26C-0B3F-4882-A0EC-894C7A54FB01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AE69D26C-0B3F-4882-A0EC-894C7A54FB01}.Debug|Any CPU.Build.0 = Debug|Any CPU {AE69D26C-0B3F-4882-A0EC-894C7A54FB01}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {AE69D26C-0B3F-4882-A0EC-894C7A54FB01}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {AE69D26C-0B3F-4882-A0EC-894C7A54FB01}.Debug|x86.ActiveCfg = Debug|Any CPU - {AE69D26C-0B3F-4882-A0EC-894C7A54FB01}.Debug|x86.Build.0 = Debug|Any CPU {AE69D26C-0B3F-4882-A0EC-894C7A54FB01}.Debug|x64.ActiveCfg = Debug|Any CPU {AE69D26C-0B3F-4882-A0EC-894C7A54FB01}.Debug|x64.Build.0 = Debug|Any CPU + {AE69D26C-0B3F-4882-A0EC-894C7A54FB01}.Debug|x86.ActiveCfg = Debug|Any CPU + {AE69D26C-0B3F-4882-A0EC-894C7A54FB01}.Debug|x86.Build.0 = Debug|Any CPU {AE69D26C-0B3F-4882-A0EC-894C7A54FB01}.Release|Any CPU.ActiveCfg = Release|Any CPU {AE69D26C-0B3F-4882-A0EC-894C7A54FB01}.Release|Any CPU.Build.0 = Release|Any CPU {AE69D26C-0B3F-4882-A0EC-894C7A54FB01}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {AE69D26C-0B3F-4882-A0EC-894C7A54FB01}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {AE69D26C-0B3F-4882-A0EC-894C7A54FB01}.Release|x86.ActiveCfg = Release|Any CPU - {AE69D26C-0B3F-4882-A0EC-894C7A54FB01}.Release|x86.Build.0 = Release|Any CPU {AE69D26C-0B3F-4882-A0EC-894C7A54FB01}.Release|x64.ActiveCfg = Release|Any CPU {AE69D26C-0B3F-4882-A0EC-894C7A54FB01}.Release|x64.Build.0 = Release|Any CPU + {AE69D26C-0B3F-4882-A0EC-894C7A54FB01}.Release|x86.ActiveCfg = Release|Any CPU + {AE69D26C-0B3F-4882-A0EC-894C7A54FB01}.Release|x86.Build.0 = Release|Any CPU {DDA9B399-AA4A-4DBE-BB8C-1C632C36759C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DDA9B399-AA4A-4DBE-BB8C-1C632C36759C}.Debug|Any CPU.Build.0 = Debug|Any CPU {DDA9B399-AA4A-4DBE-BB8C-1C632C36759C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {DDA9B399-AA4A-4DBE-BB8C-1C632C36759C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {DDA9B399-AA4A-4DBE-BB8C-1C632C36759C}.Debug|x86.ActiveCfg = Debug|Any CPU - {DDA9B399-AA4A-4DBE-BB8C-1C632C36759C}.Debug|x86.Build.0 = Debug|Any CPU {DDA9B399-AA4A-4DBE-BB8C-1C632C36759C}.Debug|x64.ActiveCfg = Debug|Any CPU {DDA9B399-AA4A-4DBE-BB8C-1C632C36759C}.Debug|x64.Build.0 = Debug|Any CPU + {DDA9B399-AA4A-4DBE-BB8C-1C632C36759C}.Debug|x86.ActiveCfg = Debug|Any CPU + {DDA9B399-AA4A-4DBE-BB8C-1C632C36759C}.Debug|x86.Build.0 = Debug|Any CPU {DDA9B399-AA4A-4DBE-BB8C-1C632C36759C}.Release|Any CPU.ActiveCfg = Release|Any CPU {DDA9B399-AA4A-4DBE-BB8C-1C632C36759C}.Release|Any CPU.Build.0 = Release|Any CPU {DDA9B399-AA4A-4DBE-BB8C-1C632C36759C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {DDA9B399-AA4A-4DBE-BB8C-1C632C36759C}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {DDA9B399-AA4A-4DBE-BB8C-1C632C36759C}.Release|x86.ActiveCfg = Release|Any CPU - {DDA9B399-AA4A-4DBE-BB8C-1C632C36759C}.Release|x86.Build.0 = Release|Any CPU {DDA9B399-AA4A-4DBE-BB8C-1C632C36759C}.Release|x64.ActiveCfg = Release|Any CPU {DDA9B399-AA4A-4DBE-BB8C-1C632C36759C}.Release|x64.Build.0 = Release|Any CPU + {DDA9B399-AA4A-4DBE-BB8C-1C632C36759C}.Release|x86.ActiveCfg = Release|Any CPU + {DDA9B399-AA4A-4DBE-BB8C-1C632C36759C}.Release|x86.Build.0 = Release|Any CPU {FA1FCDD3-4E83-4189-A2F1-EF6EBEE00FDB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FA1FCDD3-4E83-4189-A2F1-EF6EBEE00FDB}.Debug|Any CPU.Build.0 = Debug|Any CPU {FA1FCDD3-4E83-4189-A2F1-EF6EBEE00FDB}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {FA1FCDD3-4E83-4189-A2F1-EF6EBEE00FDB}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {FA1FCDD3-4E83-4189-A2F1-EF6EBEE00FDB}.Debug|x86.ActiveCfg = Debug|Any CPU - {FA1FCDD3-4E83-4189-A2F1-EF6EBEE00FDB}.Debug|x86.Build.0 = Debug|Any CPU {FA1FCDD3-4E83-4189-A2F1-EF6EBEE00FDB}.Debug|x64.ActiveCfg = Debug|Any CPU {FA1FCDD3-4E83-4189-A2F1-EF6EBEE00FDB}.Debug|x64.Build.0 = Debug|Any CPU + {FA1FCDD3-4E83-4189-A2F1-EF6EBEE00FDB}.Debug|x86.ActiveCfg = Debug|Any CPU + {FA1FCDD3-4E83-4189-A2F1-EF6EBEE00FDB}.Debug|x86.Build.0 = Debug|Any CPU {FA1FCDD3-4E83-4189-A2F1-EF6EBEE00FDB}.Release|Any CPU.ActiveCfg = Release|Any CPU {FA1FCDD3-4E83-4189-A2F1-EF6EBEE00FDB}.Release|Any CPU.Build.0 = Release|Any CPU {FA1FCDD3-4E83-4189-A2F1-EF6EBEE00FDB}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {FA1FCDD3-4E83-4189-A2F1-EF6EBEE00FDB}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {FA1FCDD3-4E83-4189-A2F1-EF6EBEE00FDB}.Release|x86.ActiveCfg = Release|Any CPU - {FA1FCDD3-4E83-4189-A2F1-EF6EBEE00FDB}.Release|x86.Build.0 = Release|Any CPU {FA1FCDD3-4E83-4189-A2F1-EF6EBEE00FDB}.Release|x64.ActiveCfg = Release|Any CPU {FA1FCDD3-4E83-4189-A2F1-EF6EBEE00FDB}.Release|x64.Build.0 = Release|Any CPU + {FA1FCDD3-4E83-4189-A2F1-EF6EBEE00FDB}.Release|x86.ActiveCfg = Release|Any CPU + {FA1FCDD3-4E83-4189-A2F1-EF6EBEE00FDB}.Release|x86.Build.0 = Release|Any CPU {E17A5B72-1532-4271-B27C-2BA9DEE983EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E17A5B72-1532-4271-B27C-2BA9DEE983EA}.Debug|Any CPU.Build.0 = Debug|Any CPU {E17A5B72-1532-4271-B27C-2BA9DEE983EA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {E17A5B72-1532-4271-B27C-2BA9DEE983EA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {E17A5B72-1532-4271-B27C-2BA9DEE983EA}.Debug|x86.ActiveCfg = Debug|Any CPU - {E17A5B72-1532-4271-B27C-2BA9DEE983EA}.Debug|x86.Build.0 = Debug|Any CPU {E17A5B72-1532-4271-B27C-2BA9DEE983EA}.Debug|x64.ActiveCfg = Debug|Any CPU {E17A5B72-1532-4271-B27C-2BA9DEE983EA}.Debug|x64.Build.0 = Debug|Any CPU + {E17A5B72-1532-4271-B27C-2BA9DEE983EA}.Debug|x86.ActiveCfg = Debug|Any CPU + {E17A5B72-1532-4271-B27C-2BA9DEE983EA}.Debug|x86.Build.0 = Debug|Any CPU {E17A5B72-1532-4271-B27C-2BA9DEE983EA}.Release|Any CPU.ActiveCfg = Release|Any CPU {E17A5B72-1532-4271-B27C-2BA9DEE983EA}.Release|Any CPU.Build.0 = Release|Any CPU {E17A5B72-1532-4271-B27C-2BA9DEE983EA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {E17A5B72-1532-4271-B27C-2BA9DEE983EA}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {E17A5B72-1532-4271-B27C-2BA9DEE983EA}.Release|x86.ActiveCfg = Release|Any CPU - {E17A5B72-1532-4271-B27C-2BA9DEE983EA}.Release|x86.Build.0 = Release|Any CPU {E17A5B72-1532-4271-B27C-2BA9DEE983EA}.Release|x64.ActiveCfg = Release|Any CPU {E17A5B72-1532-4271-B27C-2BA9DEE983EA}.Release|x64.Build.0 = Release|Any CPU + {E17A5B72-1532-4271-B27C-2BA9DEE983EA}.Release|x86.ActiveCfg = Release|Any CPU + {E17A5B72-1532-4271-B27C-2BA9DEE983EA}.Release|x86.Build.0 = Release|Any CPU {C13B6442-5B95-48A3-887B-929F72D7E4FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C13B6442-5B95-48A3-887B-929F72D7E4FF}.Debug|Any CPU.Build.0 = Debug|Any CPU {C13B6442-5B95-48A3-887B-929F72D7E4FF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {C13B6442-5B95-48A3-887B-929F72D7E4FF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {C13B6442-5B95-48A3-887B-929F72D7E4FF}.Debug|x86.ActiveCfg = Debug|Any CPU - {C13B6442-5B95-48A3-887B-929F72D7E4FF}.Debug|x86.Build.0 = Debug|Any CPU {C13B6442-5B95-48A3-887B-929F72D7E4FF}.Debug|x64.ActiveCfg = Debug|Any CPU {C13B6442-5B95-48A3-887B-929F72D7E4FF}.Debug|x64.Build.0 = Debug|Any CPU + {C13B6442-5B95-48A3-887B-929F72D7E4FF}.Debug|x86.ActiveCfg = Debug|Any CPU + {C13B6442-5B95-48A3-887B-929F72D7E4FF}.Debug|x86.Build.0 = Debug|Any CPU {C13B6442-5B95-48A3-887B-929F72D7E4FF}.Release|Any CPU.ActiveCfg = Release|Any CPU {C13B6442-5B95-48A3-887B-929F72D7E4FF}.Release|Any CPU.Build.0 = Release|Any CPU {C13B6442-5B95-48A3-887B-929F72D7E4FF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {C13B6442-5B95-48A3-887B-929F72D7E4FF}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {C13B6442-5B95-48A3-887B-929F72D7E4FF}.Release|x86.ActiveCfg = Release|Any CPU - {C13B6442-5B95-48A3-887B-929F72D7E4FF}.Release|x86.Build.0 = Release|Any CPU {C13B6442-5B95-48A3-887B-929F72D7E4FF}.Release|x64.ActiveCfg = Release|Any CPU {C13B6442-5B95-48A3-887B-929F72D7E4FF}.Release|x64.Build.0 = Release|Any CPU + {C13B6442-5B95-48A3-887B-929F72D7E4FF}.Release|x86.ActiveCfg = Release|Any CPU + {C13B6442-5B95-48A3-887B-929F72D7E4FF}.Release|x86.Build.0 = Release|Any CPU {F93DC497-CA32-45E6-8748-C674CF00C953}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F93DC497-CA32-45E6-8748-C674CF00C953}.Debug|Any CPU.Build.0 = Debug|Any CPU {F93DC497-CA32-45E6-8748-C674CF00C953}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {F93DC497-CA32-45E6-8748-C674CF00C953}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {F93DC497-CA32-45E6-8748-C674CF00C953}.Debug|x86.ActiveCfg = Debug|Any CPU - {F93DC497-CA32-45E6-8748-C674CF00C953}.Debug|x86.Build.0 = Debug|Any CPU {F93DC497-CA32-45E6-8748-C674CF00C953}.Debug|x64.ActiveCfg = Debug|Any CPU {F93DC497-CA32-45E6-8748-C674CF00C953}.Debug|x64.Build.0 = Debug|Any CPU + {F93DC497-CA32-45E6-8748-C674CF00C953}.Debug|x86.ActiveCfg = Debug|Any CPU + {F93DC497-CA32-45E6-8748-C674CF00C953}.Debug|x86.Build.0 = Debug|Any CPU {F93DC497-CA32-45E6-8748-C674CF00C953}.Release|Any CPU.ActiveCfg = Release|Any CPU {F93DC497-CA32-45E6-8748-C674CF00C953}.Release|Any CPU.Build.0 = Release|Any CPU {F93DC497-CA32-45E6-8748-C674CF00C953}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {F93DC497-CA32-45E6-8748-C674CF00C953}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {F93DC497-CA32-45E6-8748-C674CF00C953}.Release|x86.ActiveCfg = Release|Any CPU - {F93DC497-CA32-45E6-8748-C674CF00C953}.Release|x86.Build.0 = Release|Any CPU {F93DC497-CA32-45E6-8748-C674CF00C953}.Release|x64.ActiveCfg = Release|Any CPU {F93DC497-CA32-45E6-8748-C674CF00C953}.Release|x64.Build.0 = Release|Any CPU + {F93DC497-CA32-45E6-8748-C674CF00C953}.Release|x86.ActiveCfg = Release|Any CPU + {F93DC497-CA32-45E6-8748-C674CF00C953}.Release|x86.Build.0 = Release|Any CPU {D43A06D3-CDAE-47F4-8FA1-B18716DC7D0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D43A06D3-CDAE-47F4-8FA1-B18716DC7D0B}.Debug|Any CPU.Build.0 = Debug|Any CPU {D43A06D3-CDAE-47F4-8FA1-B18716DC7D0B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {D43A06D3-CDAE-47F4-8FA1-B18716DC7D0B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {D43A06D3-CDAE-47F4-8FA1-B18716DC7D0B}.Debug|x86.ActiveCfg = Debug|Any CPU - {D43A06D3-CDAE-47F4-8FA1-B18716DC7D0B}.Debug|x86.Build.0 = Debug|Any CPU {D43A06D3-CDAE-47F4-8FA1-B18716DC7D0B}.Debug|x64.ActiveCfg = Debug|Any CPU {D43A06D3-CDAE-47F4-8FA1-B18716DC7D0B}.Debug|x64.Build.0 = Debug|Any CPU + {D43A06D3-CDAE-47F4-8FA1-B18716DC7D0B}.Debug|x86.ActiveCfg = Debug|Any CPU + {D43A06D3-CDAE-47F4-8FA1-B18716DC7D0B}.Debug|x86.Build.0 = Debug|Any CPU {D43A06D3-CDAE-47F4-8FA1-B18716DC7D0B}.Release|Any CPU.ActiveCfg = Release|Any CPU {D43A06D3-CDAE-47F4-8FA1-B18716DC7D0B}.Release|Any CPU.Build.0 = Release|Any CPU {D43A06D3-CDAE-47F4-8FA1-B18716DC7D0B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {D43A06D3-CDAE-47F4-8FA1-B18716DC7D0B}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {D43A06D3-CDAE-47F4-8FA1-B18716DC7D0B}.Release|x86.ActiveCfg = Release|Any CPU - {D43A06D3-CDAE-47F4-8FA1-B18716DC7D0B}.Release|x86.Build.0 = Release|Any CPU {D43A06D3-CDAE-47F4-8FA1-B18716DC7D0B}.Release|x64.ActiveCfg = Release|Any CPU {D43A06D3-CDAE-47F4-8FA1-B18716DC7D0B}.Release|x64.Build.0 = Release|Any CPU + {D43A06D3-CDAE-47F4-8FA1-B18716DC7D0B}.Release|x86.ActiveCfg = Release|Any CPU + {D43A06D3-CDAE-47F4-8FA1-B18716DC7D0B}.Release|x86.Build.0 = Release|Any CPU {7106489C-745B-46ED-A7F3-1F893B5B621D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7106489C-745B-46ED-A7F3-1F893B5B621D}.Debug|Any CPU.Build.0 = Debug|Any CPU {7106489C-745B-46ED-A7F3-1F893B5B621D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {7106489C-745B-46ED-A7F3-1F893B5B621D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {7106489C-745B-46ED-A7F3-1F893B5B621D}.Debug|x86.ActiveCfg = Debug|Any CPU - {7106489C-745B-46ED-A7F3-1F893B5B621D}.Debug|x86.Build.0 = Debug|Any CPU {7106489C-745B-46ED-A7F3-1F893B5B621D}.Debug|x64.ActiveCfg = Debug|Any CPU {7106489C-745B-46ED-A7F3-1F893B5B621D}.Debug|x64.Build.0 = Debug|Any CPU + {7106489C-745B-46ED-A7F3-1F893B5B621D}.Debug|x86.ActiveCfg = Debug|Any CPU + {7106489C-745B-46ED-A7F3-1F893B5B621D}.Debug|x86.Build.0 = Debug|Any CPU {7106489C-745B-46ED-A7F3-1F893B5B621D}.Release|Any CPU.ActiveCfg = Release|Any CPU {7106489C-745B-46ED-A7F3-1F893B5B621D}.Release|Any CPU.Build.0 = Release|Any CPU {7106489C-745B-46ED-A7F3-1F893B5B621D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {7106489C-745B-46ED-A7F3-1F893B5B621D}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {7106489C-745B-46ED-A7F3-1F893B5B621D}.Release|x86.ActiveCfg = Release|Any CPU - {7106489C-745B-46ED-A7F3-1F893B5B621D}.Release|x86.Build.0 = Release|Any CPU {7106489C-745B-46ED-A7F3-1F893B5B621D}.Release|x64.ActiveCfg = Release|Any CPU {7106489C-745B-46ED-A7F3-1F893B5B621D}.Release|x64.Build.0 = Release|Any CPU + {7106489C-745B-46ED-A7F3-1F893B5B621D}.Release|x86.ActiveCfg = Release|Any CPU + {7106489C-745B-46ED-A7F3-1F893B5B621D}.Release|x86.Build.0 = Release|Any CPU {C734C254-463F-4A94-A6E1-D969C56D6D19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C734C254-463F-4A94-A6E1-D969C56D6D19}.Debug|Any CPU.Build.0 = Debug|Any CPU {C734C254-463F-4A94-A6E1-D969C56D6D19}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {C734C254-463F-4A94-A6E1-D969C56D6D19}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {C734C254-463F-4A94-A6E1-D969C56D6D19}.Debug|x86.ActiveCfg = Debug|Any CPU - {C734C254-463F-4A94-A6E1-D969C56D6D19}.Debug|x86.Build.0 = Debug|Any CPU {C734C254-463F-4A94-A6E1-D969C56D6D19}.Debug|x64.ActiveCfg = Debug|Any CPU {C734C254-463F-4A94-A6E1-D969C56D6D19}.Debug|x64.Build.0 = Debug|Any CPU + {C734C254-463F-4A94-A6E1-D969C56D6D19}.Debug|x86.ActiveCfg = Debug|Any CPU + {C734C254-463F-4A94-A6E1-D969C56D6D19}.Debug|x86.Build.0 = Debug|Any CPU {C734C254-463F-4A94-A6E1-D969C56D6D19}.Release|Any CPU.ActiveCfg = Release|Any CPU {C734C254-463F-4A94-A6E1-D969C56D6D19}.Release|Any CPU.Build.0 = Release|Any CPU {C734C254-463F-4A94-A6E1-D969C56D6D19}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {C734C254-463F-4A94-A6E1-D969C56D6D19}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {C734C254-463F-4A94-A6E1-D969C56D6D19}.Release|x86.ActiveCfg = Release|Any CPU - {C734C254-463F-4A94-A6E1-D969C56D6D19}.Release|x86.Build.0 = Release|Any CPU {C734C254-463F-4A94-A6E1-D969C56D6D19}.Release|x64.ActiveCfg = Release|Any CPU {C734C254-463F-4A94-A6E1-D969C56D6D19}.Release|x64.Build.0 = Release|Any CPU + {C734C254-463F-4A94-A6E1-D969C56D6D19}.Release|x86.ActiveCfg = Release|Any CPU + {C734C254-463F-4A94-A6E1-D969C56D6D19}.Release|x86.Build.0 = Release|Any CPU {67860332-891E-4B3B-86EC-12B785CCE7DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {67860332-891E-4B3B-86EC-12B785CCE7DD}.Debug|Any CPU.Build.0 = Debug|Any CPU {67860332-891E-4B3B-86EC-12B785CCE7DD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {67860332-891E-4B3B-86EC-12B785CCE7DD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {67860332-891E-4B3B-86EC-12B785CCE7DD}.Debug|x86.ActiveCfg = Debug|Any CPU - {67860332-891E-4B3B-86EC-12B785CCE7DD}.Debug|x86.Build.0 = Debug|Any CPU {67860332-891E-4B3B-86EC-12B785CCE7DD}.Debug|x64.ActiveCfg = Debug|Any CPU {67860332-891E-4B3B-86EC-12B785CCE7DD}.Debug|x64.Build.0 = Debug|Any CPU + {67860332-891E-4B3B-86EC-12B785CCE7DD}.Debug|x86.ActiveCfg = Debug|Any CPU + {67860332-891E-4B3B-86EC-12B785CCE7DD}.Debug|x86.Build.0 = Debug|Any CPU {67860332-891E-4B3B-86EC-12B785CCE7DD}.Release|Any CPU.ActiveCfg = Release|Any CPU {67860332-891E-4B3B-86EC-12B785CCE7DD}.Release|Any CPU.Build.0 = Release|Any CPU {67860332-891E-4B3B-86EC-12B785CCE7DD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {67860332-891E-4B3B-86EC-12B785CCE7DD}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {67860332-891E-4B3B-86EC-12B785CCE7DD}.Release|x86.ActiveCfg = Release|Any CPU - {67860332-891E-4B3B-86EC-12B785CCE7DD}.Release|x86.Build.0 = Release|Any CPU {67860332-891E-4B3B-86EC-12B785CCE7DD}.Release|x64.ActiveCfg = Release|Any CPU {67860332-891E-4B3B-86EC-12B785CCE7DD}.Release|x64.Build.0 = Release|Any CPU + {67860332-891E-4B3B-86EC-12B785CCE7DD}.Release|x86.ActiveCfg = Release|Any CPU + {67860332-891E-4B3B-86EC-12B785CCE7DD}.Release|x86.Build.0 = Release|Any CPU {854BF44F-BBE9-41D3-8502-64051965B261}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {854BF44F-BBE9-41D3-8502-64051965B261}.Debug|Any CPU.Build.0 = Debug|Any CPU {854BF44F-BBE9-41D3-8502-64051965B261}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {854BF44F-BBE9-41D3-8502-64051965B261}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {854BF44F-BBE9-41D3-8502-64051965B261}.Debug|x86.ActiveCfg = Debug|Any CPU - {854BF44F-BBE9-41D3-8502-64051965B261}.Debug|x86.Build.0 = Debug|Any CPU {854BF44F-BBE9-41D3-8502-64051965B261}.Debug|x64.ActiveCfg = Debug|Any CPU {854BF44F-BBE9-41D3-8502-64051965B261}.Debug|x64.Build.0 = Debug|Any CPU + {854BF44F-BBE9-41D3-8502-64051965B261}.Debug|x86.ActiveCfg = Debug|Any CPU + {854BF44F-BBE9-41D3-8502-64051965B261}.Debug|x86.Build.0 = Debug|Any CPU {854BF44F-BBE9-41D3-8502-64051965B261}.Release|Any CPU.ActiveCfg = Release|Any CPU {854BF44F-BBE9-41D3-8502-64051965B261}.Release|Any CPU.Build.0 = Release|Any CPU {854BF44F-BBE9-41D3-8502-64051965B261}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {854BF44F-BBE9-41D3-8502-64051965B261}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {854BF44F-BBE9-41D3-8502-64051965B261}.Release|x86.ActiveCfg = Release|Any CPU - {854BF44F-BBE9-41D3-8502-64051965B261}.Release|x86.Build.0 = Release|Any CPU {854BF44F-BBE9-41D3-8502-64051965B261}.Release|x64.ActiveCfg = Release|Any CPU {854BF44F-BBE9-41D3-8502-64051965B261}.Release|x64.Build.0 = Release|Any CPU + {854BF44F-BBE9-41D3-8502-64051965B261}.Release|x86.ActiveCfg = Release|Any CPU + {854BF44F-BBE9-41D3-8502-64051965B261}.Release|x86.Build.0 = Release|Any CPU {6FF21F89-C197-477D-B915-4E4AD9FB68F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6FF21F89-C197-477D-B915-4E4AD9FB68F0}.Debug|Any CPU.Build.0 = Debug|Any CPU {6FF21F89-C197-477D-B915-4E4AD9FB68F0}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {6FF21F89-C197-477D-B915-4E4AD9FB68F0}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {6FF21F89-C197-477D-B915-4E4AD9FB68F0}.Debug|x86.ActiveCfg = Debug|Any CPU - {6FF21F89-C197-477D-B915-4E4AD9FB68F0}.Debug|x86.Build.0 = Debug|Any CPU {6FF21F89-C197-477D-B915-4E4AD9FB68F0}.Debug|x64.ActiveCfg = Debug|Any CPU {6FF21F89-C197-477D-B915-4E4AD9FB68F0}.Debug|x64.Build.0 = Debug|Any CPU + {6FF21F89-C197-477D-B915-4E4AD9FB68F0}.Debug|x86.ActiveCfg = Debug|Any CPU + {6FF21F89-C197-477D-B915-4E4AD9FB68F0}.Debug|x86.Build.0 = Debug|Any CPU {6FF21F89-C197-477D-B915-4E4AD9FB68F0}.Release|Any CPU.ActiveCfg = Release|Any CPU {6FF21F89-C197-477D-B915-4E4AD9FB68F0}.Release|Any CPU.Build.0 = Release|Any CPU {6FF21F89-C197-477D-B915-4E4AD9FB68F0}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {6FF21F89-C197-477D-B915-4E4AD9FB68F0}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {6FF21F89-C197-477D-B915-4E4AD9FB68F0}.Release|x86.ActiveCfg = Release|Any CPU - {6FF21F89-C197-477D-B915-4E4AD9FB68F0}.Release|x86.Build.0 = Release|Any CPU {6FF21F89-C197-477D-B915-4E4AD9FB68F0}.Release|x64.ActiveCfg = Release|Any CPU {6FF21F89-C197-477D-B915-4E4AD9FB68F0}.Release|x64.Build.0 = Release|Any CPU + {6FF21F89-C197-477D-B915-4E4AD9FB68F0}.Release|x86.ActiveCfg = Release|Any CPU + {6FF21F89-C197-477D-B915-4E4AD9FB68F0}.Release|x86.Build.0 = Release|Any CPU {7BD603CF-E18D-44D5-8FE0-59C723456345}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7BD603CF-E18D-44D5-8FE0-59C723456345}.Debug|Any CPU.Build.0 = Debug|Any CPU {7BD603CF-E18D-44D5-8FE0-59C723456345}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {7BD603CF-E18D-44D5-8FE0-59C723456345}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {7BD603CF-E18D-44D5-8FE0-59C723456345}.Debug|x86.ActiveCfg = Debug|Any CPU - {7BD603CF-E18D-44D5-8FE0-59C723456345}.Debug|x86.Build.0 = Debug|Any CPU {7BD603CF-E18D-44D5-8FE0-59C723456345}.Debug|x64.ActiveCfg = Debug|Any CPU {7BD603CF-E18D-44D5-8FE0-59C723456345}.Debug|x64.Build.0 = Debug|Any CPU + {7BD603CF-E18D-44D5-8FE0-59C723456345}.Debug|x86.ActiveCfg = Debug|Any CPU + {7BD603CF-E18D-44D5-8FE0-59C723456345}.Debug|x86.Build.0 = Debug|Any CPU {7BD603CF-E18D-44D5-8FE0-59C723456345}.Release|Any CPU.ActiveCfg = Release|Any CPU {7BD603CF-E18D-44D5-8FE0-59C723456345}.Release|Any CPU.Build.0 = Release|Any CPU {7BD603CF-E18D-44D5-8FE0-59C723456345}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {7BD603CF-E18D-44D5-8FE0-59C723456345}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {7BD603CF-E18D-44D5-8FE0-59C723456345}.Release|x86.ActiveCfg = Release|Any CPU - {7BD603CF-E18D-44D5-8FE0-59C723456345}.Release|x86.Build.0 = Release|Any CPU {7BD603CF-E18D-44D5-8FE0-59C723456345}.Release|x64.ActiveCfg = Release|Any CPU {7BD603CF-E18D-44D5-8FE0-59C723456345}.Release|x64.Build.0 = Release|Any CPU + {7BD603CF-E18D-44D5-8FE0-59C723456345}.Release|x86.ActiveCfg = Release|Any CPU + {7BD603CF-E18D-44D5-8FE0-59C723456345}.Release|x86.Build.0 = Release|Any CPU {D2F89380-A0F1-4801-8044-B6B81960D971}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D2F89380-A0F1-4801-8044-B6B81960D971}.Debug|Any CPU.Build.0 = Debug|Any CPU {D2F89380-A0F1-4801-8044-B6B81960D971}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {D2F89380-A0F1-4801-8044-B6B81960D971}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {D2F89380-A0F1-4801-8044-B6B81960D971}.Debug|x86.ActiveCfg = Debug|Any CPU - {D2F89380-A0F1-4801-8044-B6B81960D971}.Debug|x86.Build.0 = Debug|Any CPU {D2F89380-A0F1-4801-8044-B6B81960D971}.Debug|x64.ActiveCfg = Debug|Any CPU {D2F89380-A0F1-4801-8044-B6B81960D971}.Debug|x64.Build.0 = Debug|Any CPU + {D2F89380-A0F1-4801-8044-B6B81960D971}.Debug|x86.ActiveCfg = Debug|Any CPU + {D2F89380-A0F1-4801-8044-B6B81960D971}.Debug|x86.Build.0 = Debug|Any CPU {D2F89380-A0F1-4801-8044-B6B81960D971}.Release|Any CPU.ActiveCfg = Release|Any CPU {D2F89380-A0F1-4801-8044-B6B81960D971}.Release|Any CPU.Build.0 = Release|Any CPU {D2F89380-A0F1-4801-8044-B6B81960D971}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {D2F89380-A0F1-4801-8044-B6B81960D971}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {D2F89380-A0F1-4801-8044-B6B81960D971}.Release|x86.ActiveCfg = Release|Any CPU - {D2F89380-A0F1-4801-8044-B6B81960D971}.Release|x86.Build.0 = Release|Any CPU {D2F89380-A0F1-4801-8044-B6B81960D971}.Release|x64.ActiveCfg = Release|Any CPU {D2F89380-A0F1-4801-8044-B6B81960D971}.Release|x64.Build.0 = Release|Any CPU + {D2F89380-A0F1-4801-8044-B6B81960D971}.Release|x86.ActiveCfg = Release|Any CPU + {D2F89380-A0F1-4801-8044-B6B81960D971}.Release|x86.Build.0 = Release|Any CPU {0454B14F-3006-4FF6-9237-692BD2F69D2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0454B14F-3006-4FF6-9237-692BD2F69D2F}.Debug|Any CPU.Build.0 = Debug|Any CPU {0454B14F-3006-4FF6-9237-692BD2F69D2F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {0454B14F-3006-4FF6-9237-692BD2F69D2F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {0454B14F-3006-4FF6-9237-692BD2F69D2F}.Debug|x86.ActiveCfg = Debug|Any CPU - {0454B14F-3006-4FF6-9237-692BD2F69D2F}.Debug|x86.Build.0 = Debug|Any CPU {0454B14F-3006-4FF6-9237-692BD2F69D2F}.Debug|x64.ActiveCfg = Debug|Any CPU {0454B14F-3006-4FF6-9237-692BD2F69D2F}.Debug|x64.Build.0 = Debug|Any CPU + {0454B14F-3006-4FF6-9237-692BD2F69D2F}.Debug|x86.ActiveCfg = Debug|Any CPU + {0454B14F-3006-4FF6-9237-692BD2F69D2F}.Debug|x86.Build.0 = Debug|Any CPU {0454B14F-3006-4FF6-9237-692BD2F69D2F}.Release|Any CPU.ActiveCfg = Release|Any CPU {0454B14F-3006-4FF6-9237-692BD2F69D2F}.Release|Any CPU.Build.0 = Release|Any CPU {0454B14F-3006-4FF6-9237-692BD2F69D2F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {0454B14F-3006-4FF6-9237-692BD2F69D2F}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {0454B14F-3006-4FF6-9237-692BD2F69D2F}.Release|x86.ActiveCfg = Release|Any CPU - {0454B14F-3006-4FF6-9237-692BD2F69D2F}.Release|x86.Build.0 = Release|Any CPU {0454B14F-3006-4FF6-9237-692BD2F69D2F}.Release|x64.ActiveCfg = Release|Any CPU {0454B14F-3006-4FF6-9237-692BD2F69D2F}.Release|x64.Build.0 = Release|Any CPU + {0454B14F-3006-4FF6-9237-692BD2F69D2F}.Release|x86.ActiveCfg = Release|Any CPU + {0454B14F-3006-4FF6-9237-692BD2F69D2F}.Release|x86.Build.0 = Release|Any CPU {3D38CF1A-5967-412F-BD10-DCD2E8F3F956}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3D38CF1A-5967-412F-BD10-DCD2E8F3F956}.Debug|Any CPU.Build.0 = Debug|Any CPU {3D38CF1A-5967-412F-BD10-DCD2E8F3F956}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {3D38CF1A-5967-412F-BD10-DCD2E8F3F956}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {3D38CF1A-5967-412F-BD10-DCD2E8F3F956}.Debug|x86.ActiveCfg = Debug|Any CPU - {3D38CF1A-5967-412F-BD10-DCD2E8F3F956}.Debug|x86.Build.0 = Debug|Any CPU {3D38CF1A-5967-412F-BD10-DCD2E8F3F956}.Debug|x64.ActiveCfg = Debug|Any CPU {3D38CF1A-5967-412F-BD10-DCD2E8F3F956}.Debug|x64.Build.0 = Debug|Any CPU + {3D38CF1A-5967-412F-BD10-DCD2E8F3F956}.Debug|x86.ActiveCfg = Debug|Any CPU + {3D38CF1A-5967-412F-BD10-DCD2E8F3F956}.Debug|x86.Build.0 = Debug|Any CPU {3D38CF1A-5967-412F-BD10-DCD2E8F3F956}.Release|Any CPU.ActiveCfg = Release|Any CPU {3D38CF1A-5967-412F-BD10-DCD2E8F3F956}.Release|Any CPU.Build.0 = Release|Any CPU {3D38CF1A-5967-412F-BD10-DCD2E8F3F956}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {3D38CF1A-5967-412F-BD10-DCD2E8F3F956}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {3D38CF1A-5967-412F-BD10-DCD2E8F3F956}.Release|x86.ActiveCfg = Release|Any CPU - {3D38CF1A-5967-412F-BD10-DCD2E8F3F956}.Release|x86.Build.0 = Release|Any CPU {3D38CF1A-5967-412F-BD10-DCD2E8F3F956}.Release|x64.ActiveCfg = Release|Any CPU {3D38CF1A-5967-412F-BD10-DCD2E8F3F956}.Release|x64.Build.0 = Release|Any CPU + {3D38CF1A-5967-412F-BD10-DCD2E8F3F956}.Release|x86.ActiveCfg = Release|Any CPU + {3D38CF1A-5967-412F-BD10-DCD2E8F3F956}.Release|x86.Build.0 = Release|Any CPU {FF318144-2B01-46CC-B713-E0196EB5CEEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FF318144-2B01-46CC-B713-E0196EB5CEEF}.Debug|Any CPU.Build.0 = Debug|Any CPU {FF318144-2B01-46CC-B713-E0196EB5CEEF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {FF318144-2B01-46CC-B713-E0196EB5CEEF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {FF318144-2B01-46CC-B713-E0196EB5CEEF}.Debug|x86.ActiveCfg = Debug|Any CPU - {FF318144-2B01-46CC-B713-E0196EB5CEEF}.Debug|x86.Build.0 = Debug|Any CPU {FF318144-2B01-46CC-B713-E0196EB5CEEF}.Debug|x64.ActiveCfg = Debug|Any CPU {FF318144-2B01-46CC-B713-E0196EB5CEEF}.Debug|x64.Build.0 = Debug|Any CPU + {FF318144-2B01-46CC-B713-E0196EB5CEEF}.Debug|x86.ActiveCfg = Debug|Any CPU + {FF318144-2B01-46CC-B713-E0196EB5CEEF}.Debug|x86.Build.0 = Debug|Any CPU {FF318144-2B01-46CC-B713-E0196EB5CEEF}.Release|Any CPU.ActiveCfg = Release|Any CPU {FF318144-2B01-46CC-B713-E0196EB5CEEF}.Release|Any CPU.Build.0 = Release|Any CPU {FF318144-2B01-46CC-B713-E0196EB5CEEF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {FF318144-2B01-46CC-B713-E0196EB5CEEF}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {FF318144-2B01-46CC-B713-E0196EB5CEEF}.Release|x86.ActiveCfg = Release|Any CPU - {FF318144-2B01-46CC-B713-E0196EB5CEEF}.Release|x86.Build.0 = Release|Any CPU {FF318144-2B01-46CC-B713-E0196EB5CEEF}.Release|x64.ActiveCfg = Release|Any CPU {FF318144-2B01-46CC-B713-E0196EB5CEEF}.Release|x64.Build.0 = Release|Any CPU + {FF318144-2B01-46CC-B713-E0196EB5CEEF}.Release|x86.ActiveCfg = Release|Any CPU + {FF318144-2B01-46CC-B713-E0196EB5CEEF}.Release|x86.Build.0 = Release|Any CPU {269AE907-74B1-4C9A-A1EF-BBE761A9FA89}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {269AE907-74B1-4C9A-A1EF-BBE761A9FA89}.Debug|Any CPU.Build.0 = Debug|Any CPU {269AE907-74B1-4C9A-A1EF-BBE761A9FA89}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {269AE907-74B1-4C9A-A1EF-BBE761A9FA89}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {269AE907-74B1-4C9A-A1EF-BBE761A9FA89}.Debug|x86.ActiveCfg = Debug|Any CPU - {269AE907-74B1-4C9A-A1EF-BBE761A9FA89}.Debug|x86.Build.0 = Debug|Any CPU {269AE907-74B1-4C9A-A1EF-BBE761A9FA89}.Debug|x64.ActiveCfg = Debug|Any CPU {269AE907-74B1-4C9A-A1EF-BBE761A9FA89}.Debug|x64.Build.0 = Debug|Any CPU + {269AE907-74B1-4C9A-A1EF-BBE761A9FA89}.Debug|x86.ActiveCfg = Debug|Any CPU + {269AE907-74B1-4C9A-A1EF-BBE761A9FA89}.Debug|x86.Build.0 = Debug|Any CPU {269AE907-74B1-4C9A-A1EF-BBE761A9FA89}.Release|Any CPU.ActiveCfg = Release|Any CPU {269AE907-74B1-4C9A-A1EF-BBE761A9FA89}.Release|Any CPU.Build.0 = Release|Any CPU {269AE907-74B1-4C9A-A1EF-BBE761A9FA89}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {269AE907-74B1-4C9A-A1EF-BBE761A9FA89}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {269AE907-74B1-4C9A-A1EF-BBE761A9FA89}.Release|x86.ActiveCfg = Release|Any CPU - {269AE907-74B1-4C9A-A1EF-BBE761A9FA89}.Release|x86.Build.0 = Release|Any CPU {269AE907-74B1-4C9A-A1EF-BBE761A9FA89}.Release|x64.ActiveCfg = Release|Any CPU {269AE907-74B1-4C9A-A1EF-BBE761A9FA89}.Release|x64.Build.0 = Release|Any CPU + {269AE907-74B1-4C9A-A1EF-BBE761A9FA89}.Release|x86.ActiveCfg = Release|Any CPU + {269AE907-74B1-4C9A-A1EF-BBE761A9FA89}.Release|x86.Build.0 = Release|Any CPU {4B5C9FF7-90FA-4A2A-9320-64835F9DDE18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4B5C9FF7-90FA-4A2A-9320-64835F9DDE18}.Debug|Any CPU.Build.0 = Debug|Any CPU {4B5C9FF7-90FA-4A2A-9320-64835F9DDE18}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {4B5C9FF7-90FA-4A2A-9320-64835F9DDE18}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {4B5C9FF7-90FA-4A2A-9320-64835F9DDE18}.Debug|x86.ActiveCfg = Debug|Any CPU - {4B5C9FF7-90FA-4A2A-9320-64835F9DDE18}.Debug|x86.Build.0 = Debug|Any CPU {4B5C9FF7-90FA-4A2A-9320-64835F9DDE18}.Debug|x64.ActiveCfg = Debug|Any CPU {4B5C9FF7-90FA-4A2A-9320-64835F9DDE18}.Debug|x64.Build.0 = Debug|Any CPU + {4B5C9FF7-90FA-4A2A-9320-64835F9DDE18}.Debug|x86.ActiveCfg = Debug|Any CPU + {4B5C9FF7-90FA-4A2A-9320-64835F9DDE18}.Debug|x86.Build.0 = Debug|Any CPU {4B5C9FF7-90FA-4A2A-9320-64835F9DDE18}.Release|Any CPU.ActiveCfg = Release|Any CPU {4B5C9FF7-90FA-4A2A-9320-64835F9DDE18}.Release|Any CPU.Build.0 = Release|Any CPU {4B5C9FF7-90FA-4A2A-9320-64835F9DDE18}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {4B5C9FF7-90FA-4A2A-9320-64835F9DDE18}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {4B5C9FF7-90FA-4A2A-9320-64835F9DDE18}.Release|x86.ActiveCfg = Release|Any CPU - {4B5C9FF7-90FA-4A2A-9320-64835F9DDE18}.Release|x86.Build.0 = Release|Any CPU {4B5C9FF7-90FA-4A2A-9320-64835F9DDE18}.Release|x64.ActiveCfg = Release|Any CPU {4B5C9FF7-90FA-4A2A-9320-64835F9DDE18}.Release|x64.Build.0 = Release|Any CPU + {4B5C9FF7-90FA-4A2A-9320-64835F9DDE18}.Release|x86.ActiveCfg = Release|Any CPU + {4B5C9FF7-90FA-4A2A-9320-64835F9DDE18}.Release|x86.Build.0 = Release|Any CPU {AC862775-A3E7-481F-8DDF-230AA9C5F5E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AC862775-A3E7-481F-8DDF-230AA9C5F5E3}.Debug|Any CPU.Build.0 = Debug|Any CPU {AC862775-A3E7-481F-8DDF-230AA9C5F5E3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {AC862775-A3E7-481F-8DDF-230AA9C5F5E3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {AC862775-A3E7-481F-8DDF-230AA9C5F5E3}.Debug|x86.ActiveCfg = Debug|Any CPU - {AC862775-A3E7-481F-8DDF-230AA9C5F5E3}.Debug|x86.Build.0 = Debug|Any CPU {AC862775-A3E7-481F-8DDF-230AA9C5F5E3}.Debug|x64.ActiveCfg = Debug|Any CPU {AC862775-A3E7-481F-8DDF-230AA9C5F5E3}.Debug|x64.Build.0 = Debug|Any CPU + {AC862775-A3E7-481F-8DDF-230AA9C5F5E3}.Debug|x86.ActiveCfg = Debug|Any CPU + {AC862775-A3E7-481F-8DDF-230AA9C5F5E3}.Debug|x86.Build.0 = Debug|Any CPU {AC862775-A3E7-481F-8DDF-230AA9C5F5E3}.Release|Any CPU.ActiveCfg = Release|Any CPU {AC862775-A3E7-481F-8DDF-230AA9C5F5E3}.Release|Any CPU.Build.0 = Release|Any CPU {AC862775-A3E7-481F-8DDF-230AA9C5F5E3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {AC862775-A3E7-481F-8DDF-230AA9C5F5E3}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {AC862775-A3E7-481F-8DDF-230AA9C5F5E3}.Release|x86.ActiveCfg = Release|Any CPU - {AC862775-A3E7-481F-8DDF-230AA9C5F5E3}.Release|x86.Build.0 = Release|Any CPU {AC862775-A3E7-481F-8DDF-230AA9C5F5E3}.Release|x64.ActiveCfg = Release|Any CPU {AC862775-A3E7-481F-8DDF-230AA9C5F5E3}.Release|x64.Build.0 = Release|Any CPU + {AC862775-A3E7-481F-8DDF-230AA9C5F5E3}.Release|x86.ActiveCfg = Release|Any CPU + {AC862775-A3E7-481F-8DDF-230AA9C5F5E3}.Release|x86.Build.0 = Release|Any CPU {C85150CF-9EC1-4B35-9D25-08196620DEEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C85150CF-9EC1-4B35-9D25-08196620DEEA}.Debug|Any CPU.Build.0 = Debug|Any CPU {C85150CF-9EC1-4B35-9D25-08196620DEEA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {C85150CF-9EC1-4B35-9D25-08196620DEEA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {C85150CF-9EC1-4B35-9D25-08196620DEEA}.Debug|x86.ActiveCfg = Debug|Any CPU - {C85150CF-9EC1-4B35-9D25-08196620DEEA}.Debug|x86.Build.0 = Debug|Any CPU {C85150CF-9EC1-4B35-9D25-08196620DEEA}.Debug|x64.ActiveCfg = Debug|Any CPU {C85150CF-9EC1-4B35-9D25-08196620DEEA}.Debug|x64.Build.0 = Debug|Any CPU + {C85150CF-9EC1-4B35-9D25-08196620DEEA}.Debug|x86.ActiveCfg = Debug|Any CPU + {C85150CF-9EC1-4B35-9D25-08196620DEEA}.Debug|x86.Build.0 = Debug|Any CPU {C85150CF-9EC1-4B35-9D25-08196620DEEA}.Release|Any CPU.ActiveCfg = Release|Any CPU {C85150CF-9EC1-4B35-9D25-08196620DEEA}.Release|Any CPU.Build.0 = Release|Any CPU {C85150CF-9EC1-4B35-9D25-08196620DEEA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {C85150CF-9EC1-4B35-9D25-08196620DEEA}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {C85150CF-9EC1-4B35-9D25-08196620DEEA}.Release|x86.ActiveCfg = Release|Any CPU - {C85150CF-9EC1-4B35-9D25-08196620DEEA}.Release|x86.Build.0 = Release|Any CPU {C85150CF-9EC1-4B35-9D25-08196620DEEA}.Release|x64.ActiveCfg = Release|Any CPU {C85150CF-9EC1-4B35-9D25-08196620DEEA}.Release|x64.Build.0 = Release|Any CPU + {C85150CF-9EC1-4B35-9D25-08196620DEEA}.Release|x86.ActiveCfg = Release|Any CPU + {C85150CF-9EC1-4B35-9D25-08196620DEEA}.Release|x86.Build.0 = Release|Any CPU {5A7D3538-EAA1-4CDB-93ED-3CC9A92B06EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5A7D3538-EAA1-4CDB-93ED-3CC9A92B06EB}.Debug|Any CPU.Build.0 = Debug|Any CPU {5A7D3538-EAA1-4CDB-93ED-3CC9A92B06EB}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {5A7D3538-EAA1-4CDB-93ED-3CC9A92B06EB}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {5A7D3538-EAA1-4CDB-93ED-3CC9A92B06EB}.Debug|x86.ActiveCfg = Debug|Any CPU - {5A7D3538-EAA1-4CDB-93ED-3CC9A92B06EB}.Debug|x86.Build.0 = Debug|Any CPU {5A7D3538-EAA1-4CDB-93ED-3CC9A92B06EB}.Debug|x64.ActiveCfg = Debug|Any CPU {5A7D3538-EAA1-4CDB-93ED-3CC9A92B06EB}.Debug|x64.Build.0 = Debug|Any CPU + {5A7D3538-EAA1-4CDB-93ED-3CC9A92B06EB}.Debug|x86.ActiveCfg = Debug|Any CPU + {5A7D3538-EAA1-4CDB-93ED-3CC9A92B06EB}.Debug|x86.Build.0 = Debug|Any CPU {5A7D3538-EAA1-4CDB-93ED-3CC9A92B06EB}.Release|Any CPU.ActiveCfg = Release|Any CPU {5A7D3538-EAA1-4CDB-93ED-3CC9A92B06EB}.Release|Any CPU.Build.0 = Release|Any CPU {5A7D3538-EAA1-4CDB-93ED-3CC9A92B06EB}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {5A7D3538-EAA1-4CDB-93ED-3CC9A92B06EB}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {5A7D3538-EAA1-4CDB-93ED-3CC9A92B06EB}.Release|x86.ActiveCfg = Release|Any CPU - {5A7D3538-EAA1-4CDB-93ED-3CC9A92B06EB}.Release|x86.Build.0 = Release|Any CPU {5A7D3538-EAA1-4CDB-93ED-3CC9A92B06EB}.Release|x64.ActiveCfg = Release|Any CPU {5A7D3538-EAA1-4CDB-93ED-3CC9A92B06EB}.Release|x64.Build.0 = Release|Any CPU + {5A7D3538-EAA1-4CDB-93ED-3CC9A92B06EB}.Release|x86.ActiveCfg = Release|Any CPU + {5A7D3538-EAA1-4CDB-93ED-3CC9A92B06EB}.Release|x86.Build.0 = Release|Any CPU {63588C1C-CF56-448D-AA72-5F3CB15C4C2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {63588C1C-CF56-448D-AA72-5F3CB15C4C2A}.Debug|Any CPU.Build.0 = Debug|Any CPU {63588C1C-CF56-448D-AA72-5F3CB15C4C2A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {63588C1C-CF56-448D-AA72-5F3CB15C4C2A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {63588C1C-CF56-448D-AA72-5F3CB15C4C2A}.Debug|x86.ActiveCfg = Debug|Any CPU - {63588C1C-CF56-448D-AA72-5F3CB15C4C2A}.Debug|x86.Build.0 = Debug|Any CPU {63588C1C-CF56-448D-AA72-5F3CB15C4C2A}.Debug|x64.ActiveCfg = Debug|Any CPU {63588C1C-CF56-448D-AA72-5F3CB15C4C2A}.Debug|x64.Build.0 = Debug|Any CPU + {63588C1C-CF56-448D-AA72-5F3CB15C4C2A}.Debug|x86.ActiveCfg = Debug|Any CPU + {63588C1C-CF56-448D-AA72-5F3CB15C4C2A}.Debug|x86.Build.0 = Debug|Any CPU {63588C1C-CF56-448D-AA72-5F3CB15C4C2A}.Release|Any CPU.ActiveCfg = Release|Any CPU {63588C1C-CF56-448D-AA72-5F3CB15C4C2A}.Release|Any CPU.Build.0 = Release|Any CPU {63588C1C-CF56-448D-AA72-5F3CB15C4C2A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {63588C1C-CF56-448D-AA72-5F3CB15C4C2A}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {63588C1C-CF56-448D-AA72-5F3CB15C4C2A}.Release|x86.ActiveCfg = Release|Any CPU - {63588C1C-CF56-448D-AA72-5F3CB15C4C2A}.Release|x86.Build.0 = Release|Any CPU {63588C1C-CF56-448D-AA72-5F3CB15C4C2A}.Release|x64.ActiveCfg = Release|Any CPU {63588C1C-CF56-448D-AA72-5F3CB15C4C2A}.Release|x64.Build.0 = Release|Any CPU + {63588C1C-CF56-448D-AA72-5F3CB15C4C2A}.Release|x86.ActiveCfg = Release|Any CPU + {63588C1C-CF56-448D-AA72-5F3CB15C4C2A}.Release|x86.Build.0 = Release|Any CPU {1658E220-D1C3-4E46-818C-F1B51AD17FC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1658E220-D1C3-4E46-818C-F1B51AD17FC5}.Debug|Any CPU.Build.0 = Debug|Any CPU {1658E220-D1C3-4E46-818C-F1B51AD17FC5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {1658E220-D1C3-4E46-818C-F1B51AD17FC5}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {1658E220-D1C3-4E46-818C-F1B51AD17FC5}.Debug|x86.ActiveCfg = Debug|Any CPU - {1658E220-D1C3-4E46-818C-F1B51AD17FC5}.Debug|x86.Build.0 = Debug|Any CPU {1658E220-D1C3-4E46-818C-F1B51AD17FC5}.Debug|x64.ActiveCfg = Debug|Any CPU {1658E220-D1C3-4E46-818C-F1B51AD17FC5}.Debug|x64.Build.0 = Debug|Any CPU + {1658E220-D1C3-4E46-818C-F1B51AD17FC5}.Debug|x86.ActiveCfg = Debug|Any CPU + {1658E220-D1C3-4E46-818C-F1B51AD17FC5}.Debug|x86.Build.0 = Debug|Any CPU {1658E220-D1C3-4E46-818C-F1B51AD17FC5}.Release|Any CPU.ActiveCfg = Release|Any CPU {1658E220-D1C3-4E46-818C-F1B51AD17FC5}.Release|Any CPU.Build.0 = Release|Any CPU {1658E220-D1C3-4E46-818C-F1B51AD17FC5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {1658E220-D1C3-4E46-818C-F1B51AD17FC5}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {1658E220-D1C3-4E46-818C-F1B51AD17FC5}.Release|x86.ActiveCfg = Release|Any CPU - {1658E220-D1C3-4E46-818C-F1B51AD17FC5}.Release|x86.Build.0 = Release|Any CPU {1658E220-D1C3-4E46-818C-F1B51AD17FC5}.Release|x64.ActiveCfg = Release|Any CPU {1658E220-D1C3-4E46-818C-F1B51AD17FC5}.Release|x64.Build.0 = Release|Any CPU + {1658E220-D1C3-4E46-818C-F1B51AD17FC5}.Release|x86.ActiveCfg = Release|Any CPU + {1658E220-D1C3-4E46-818C-F1B51AD17FC5}.Release|x86.Build.0 = Release|Any CPU {505619BE-5E42-4D1A-8A15-9136BAEB5455}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {505619BE-5E42-4D1A-8A15-9136BAEB5455}.Debug|Any CPU.Build.0 = Debug|Any CPU {505619BE-5E42-4D1A-8A15-9136BAEB5455}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {505619BE-5E42-4D1A-8A15-9136BAEB5455}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {505619BE-5E42-4D1A-8A15-9136BAEB5455}.Debug|x86.ActiveCfg = Debug|Any CPU - {505619BE-5E42-4D1A-8A15-9136BAEB5455}.Debug|x86.Build.0 = Debug|Any CPU {505619BE-5E42-4D1A-8A15-9136BAEB5455}.Debug|x64.ActiveCfg = Debug|Any CPU {505619BE-5E42-4D1A-8A15-9136BAEB5455}.Debug|x64.Build.0 = Debug|Any CPU + {505619BE-5E42-4D1A-8A15-9136BAEB5455}.Debug|x86.ActiveCfg = Debug|Any CPU + {505619BE-5E42-4D1A-8A15-9136BAEB5455}.Debug|x86.Build.0 = Debug|Any CPU {505619BE-5E42-4D1A-8A15-9136BAEB5455}.Release|Any CPU.ActiveCfg = Release|Any CPU {505619BE-5E42-4D1A-8A15-9136BAEB5455}.Release|Any CPU.Build.0 = Release|Any CPU {505619BE-5E42-4D1A-8A15-9136BAEB5455}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {505619BE-5E42-4D1A-8A15-9136BAEB5455}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {505619BE-5E42-4D1A-8A15-9136BAEB5455}.Release|x86.ActiveCfg = Release|Any CPU - {505619BE-5E42-4D1A-8A15-9136BAEB5455}.Release|x86.Build.0 = Release|Any CPU {505619BE-5E42-4D1A-8A15-9136BAEB5455}.Release|x64.ActiveCfg = Release|Any CPU {505619BE-5E42-4D1A-8A15-9136BAEB5455}.Release|x64.Build.0 = Release|Any CPU + {505619BE-5E42-4D1A-8A15-9136BAEB5455}.Release|x86.ActiveCfg = Release|Any CPU + {505619BE-5E42-4D1A-8A15-9136BAEB5455}.Release|x86.Build.0 = Release|Any CPU {4A36E6EB-284B-4A50-8870-7C2EE0AAA177}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4A36E6EB-284B-4A50-8870-7C2EE0AAA177}.Debug|Any CPU.Build.0 = Debug|Any CPU {4A36E6EB-284B-4A50-8870-7C2EE0AAA177}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {4A36E6EB-284B-4A50-8870-7C2EE0AAA177}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {4A36E6EB-284B-4A50-8870-7C2EE0AAA177}.Debug|x86.ActiveCfg = Debug|Any CPU - {4A36E6EB-284B-4A50-8870-7C2EE0AAA177}.Debug|x86.Build.0 = Debug|Any CPU {4A36E6EB-284B-4A50-8870-7C2EE0AAA177}.Debug|x64.ActiveCfg = Debug|Any CPU {4A36E6EB-284B-4A50-8870-7C2EE0AAA177}.Debug|x64.Build.0 = Debug|Any CPU + {4A36E6EB-284B-4A50-8870-7C2EE0AAA177}.Debug|x86.ActiveCfg = Debug|Any CPU + {4A36E6EB-284B-4A50-8870-7C2EE0AAA177}.Debug|x86.Build.0 = Debug|Any CPU {4A36E6EB-284B-4A50-8870-7C2EE0AAA177}.Release|Any CPU.ActiveCfg = Release|Any CPU {4A36E6EB-284B-4A50-8870-7C2EE0AAA177}.Release|Any CPU.Build.0 = Release|Any CPU {4A36E6EB-284B-4A50-8870-7C2EE0AAA177}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {4A36E6EB-284B-4A50-8870-7C2EE0AAA177}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {4A36E6EB-284B-4A50-8870-7C2EE0AAA177}.Release|x86.ActiveCfg = Release|Any CPU - {4A36E6EB-284B-4A50-8870-7C2EE0AAA177}.Release|x86.Build.0 = Release|Any CPU {4A36E6EB-284B-4A50-8870-7C2EE0AAA177}.Release|x64.ActiveCfg = Release|Any CPU {4A36E6EB-284B-4A50-8870-7C2EE0AAA177}.Release|x64.Build.0 = Release|Any CPU + {4A36E6EB-284B-4A50-8870-7C2EE0AAA177}.Release|x86.ActiveCfg = Release|Any CPU + {4A36E6EB-284B-4A50-8870-7C2EE0AAA177}.Release|x86.Build.0 = Release|Any CPU {9E94822A-03B0-4E3B-9BE9-B445127C945F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9E94822A-03B0-4E3B-9BE9-B445127C945F}.Debug|Any CPU.Build.0 = Debug|Any CPU {9E94822A-03B0-4E3B-9BE9-B445127C945F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {9E94822A-03B0-4E3B-9BE9-B445127C945F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {9E94822A-03B0-4E3B-9BE9-B445127C945F}.Debug|x86.ActiveCfg = Debug|Any CPU - {9E94822A-03B0-4E3B-9BE9-B445127C945F}.Debug|x86.Build.0 = Debug|Any CPU {9E94822A-03B0-4E3B-9BE9-B445127C945F}.Debug|x64.ActiveCfg = Debug|Any CPU {9E94822A-03B0-4E3B-9BE9-B445127C945F}.Debug|x64.Build.0 = Debug|Any CPU + {9E94822A-03B0-4E3B-9BE9-B445127C945F}.Debug|x86.ActiveCfg = Debug|Any CPU + {9E94822A-03B0-4E3B-9BE9-B445127C945F}.Debug|x86.Build.0 = Debug|Any CPU {9E94822A-03B0-4E3B-9BE9-B445127C945F}.Release|Any CPU.ActiveCfg = Release|Any CPU {9E94822A-03B0-4E3B-9BE9-B445127C945F}.Release|Any CPU.Build.0 = Release|Any CPU {9E94822A-03B0-4E3B-9BE9-B445127C945F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {9E94822A-03B0-4E3B-9BE9-B445127C945F}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {9E94822A-03B0-4E3B-9BE9-B445127C945F}.Release|x86.ActiveCfg = Release|Any CPU - {9E94822A-03B0-4E3B-9BE9-B445127C945F}.Release|x86.Build.0 = Release|Any CPU {9E94822A-03B0-4E3B-9BE9-B445127C945F}.Release|x64.ActiveCfg = Release|Any CPU {9E94822A-03B0-4E3B-9BE9-B445127C945F}.Release|x64.Build.0 = Release|Any CPU + {9E94822A-03B0-4E3B-9BE9-B445127C945F}.Release|x86.ActiveCfg = Release|Any CPU + {9E94822A-03B0-4E3B-9BE9-B445127C945F}.Release|x86.Build.0 = Release|Any CPU {721DC202-2C89-4522-9800-F511DC9BB428}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {721DC202-2C89-4522-9800-F511DC9BB428}.Debug|Any CPU.Build.0 = Debug|Any CPU {721DC202-2C89-4522-9800-F511DC9BB428}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {721DC202-2C89-4522-9800-F511DC9BB428}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {721DC202-2C89-4522-9800-F511DC9BB428}.Debug|x86.ActiveCfg = Debug|Any CPU - {721DC202-2C89-4522-9800-F511DC9BB428}.Debug|x86.Build.0 = Debug|Any CPU {721DC202-2C89-4522-9800-F511DC9BB428}.Debug|x64.ActiveCfg = Debug|Any CPU {721DC202-2C89-4522-9800-F511DC9BB428}.Debug|x64.Build.0 = Debug|Any CPU + {721DC202-2C89-4522-9800-F511DC9BB428}.Debug|x86.ActiveCfg = Debug|Any CPU + {721DC202-2C89-4522-9800-F511DC9BB428}.Debug|x86.Build.0 = Debug|Any CPU {721DC202-2C89-4522-9800-F511DC9BB428}.Release|Any CPU.ActiveCfg = Release|Any CPU {721DC202-2C89-4522-9800-F511DC9BB428}.Release|Any CPU.Build.0 = Release|Any CPU {721DC202-2C89-4522-9800-F511DC9BB428}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {721DC202-2C89-4522-9800-F511DC9BB428}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {721DC202-2C89-4522-9800-F511DC9BB428}.Release|x86.ActiveCfg = Release|Any CPU - {721DC202-2C89-4522-9800-F511DC9BB428}.Release|x86.Build.0 = Release|Any CPU {721DC202-2C89-4522-9800-F511DC9BB428}.Release|x64.ActiveCfg = Release|Any CPU {721DC202-2C89-4522-9800-F511DC9BB428}.Release|x64.Build.0 = Release|Any CPU + {721DC202-2C89-4522-9800-F511DC9BB428}.Release|x86.ActiveCfg = Release|Any CPU + {721DC202-2C89-4522-9800-F511DC9BB428}.Release|x86.Build.0 = Release|Any CPU {D01711AA-85A6-4D8C-B609-5D1551E9F3F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D01711AA-85A6-4D8C-B609-5D1551E9F3F3}.Debug|Any CPU.Build.0 = Debug|Any CPU {D01711AA-85A6-4D8C-B609-5D1551E9F3F3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {D01711AA-85A6-4D8C-B609-5D1551E9F3F3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {D01711AA-85A6-4D8C-B609-5D1551E9F3F3}.Debug|x86.ActiveCfg = Debug|Any CPU - {D01711AA-85A6-4D8C-B609-5D1551E9F3F3}.Debug|x86.Build.0 = Debug|Any CPU {D01711AA-85A6-4D8C-B609-5D1551E9F3F3}.Debug|x64.ActiveCfg = Debug|Any CPU {D01711AA-85A6-4D8C-B609-5D1551E9F3F3}.Debug|x64.Build.0 = Debug|Any CPU + {D01711AA-85A6-4D8C-B609-5D1551E9F3F3}.Debug|x86.ActiveCfg = Debug|Any CPU + {D01711AA-85A6-4D8C-B609-5D1551E9F3F3}.Debug|x86.Build.0 = Debug|Any CPU {D01711AA-85A6-4D8C-B609-5D1551E9F3F3}.Release|Any CPU.ActiveCfg = Release|Any CPU {D01711AA-85A6-4D8C-B609-5D1551E9F3F3}.Release|Any CPU.Build.0 = Release|Any CPU {D01711AA-85A6-4D8C-B609-5D1551E9F3F3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {D01711AA-85A6-4D8C-B609-5D1551E9F3F3}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {D01711AA-85A6-4D8C-B609-5D1551E9F3F3}.Release|x86.ActiveCfg = Release|Any CPU - {D01711AA-85A6-4D8C-B609-5D1551E9F3F3}.Release|x86.Build.0 = Release|Any CPU {D01711AA-85A6-4D8C-B609-5D1551E9F3F3}.Release|x64.ActiveCfg = Release|Any CPU {D01711AA-85A6-4D8C-B609-5D1551E9F3F3}.Release|x64.Build.0 = Release|Any CPU + {D01711AA-85A6-4D8C-B609-5D1551E9F3F3}.Release|x86.ActiveCfg = Release|Any CPU + {D01711AA-85A6-4D8C-B609-5D1551E9F3F3}.Release|x86.Build.0 = Release|Any CPU {0CBB7167-3CFF-415F-B9F8-8589909CDE86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0CBB7167-3CFF-415F-B9F8-8589909CDE86}.Debug|Any CPU.Build.0 = Debug|Any CPU {0CBB7167-3CFF-415F-B9F8-8589909CDE86}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {0CBB7167-3CFF-415F-B9F8-8589909CDE86}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {0CBB7167-3CFF-415F-B9F8-8589909CDE86}.Debug|x86.ActiveCfg = Debug|Any CPU - {0CBB7167-3CFF-415F-B9F8-8589909CDE86}.Debug|x86.Build.0 = Debug|Any CPU {0CBB7167-3CFF-415F-B9F8-8589909CDE86}.Debug|x64.ActiveCfg = Debug|Any CPU {0CBB7167-3CFF-415F-B9F8-8589909CDE86}.Debug|x64.Build.0 = Debug|Any CPU + {0CBB7167-3CFF-415F-B9F8-8589909CDE86}.Debug|x86.ActiveCfg = Debug|Any CPU + {0CBB7167-3CFF-415F-B9F8-8589909CDE86}.Debug|x86.Build.0 = Debug|Any CPU {0CBB7167-3CFF-415F-B9F8-8589909CDE86}.Release|Any CPU.ActiveCfg = Release|Any CPU {0CBB7167-3CFF-415F-B9F8-8589909CDE86}.Release|Any CPU.Build.0 = Release|Any CPU {0CBB7167-3CFF-415F-B9F8-8589909CDE86}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {0CBB7167-3CFF-415F-B9F8-8589909CDE86}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {0CBB7167-3CFF-415F-B9F8-8589909CDE86}.Release|x86.ActiveCfg = Release|Any CPU - {0CBB7167-3CFF-415F-B9F8-8589909CDE86}.Release|x86.Build.0 = Release|Any CPU {0CBB7167-3CFF-415F-B9F8-8589909CDE86}.Release|x64.ActiveCfg = Release|Any CPU {0CBB7167-3CFF-415F-B9F8-8589909CDE86}.Release|x64.Build.0 = Release|Any CPU + {0CBB7167-3CFF-415F-B9F8-8589909CDE86}.Release|x86.ActiveCfg = Release|Any CPU + {0CBB7167-3CFF-415F-B9F8-8589909CDE86}.Release|x86.Build.0 = Release|Any CPU {2063BE68-AE31-42AD-98B2-07B9079F8F47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2063BE68-AE31-42AD-98B2-07B9079F8F47}.Debug|Any CPU.Build.0 = Debug|Any CPU {2063BE68-AE31-42AD-98B2-07B9079F8F47}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {2063BE68-AE31-42AD-98B2-07B9079F8F47}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {2063BE68-AE31-42AD-98B2-07B9079F8F47}.Debug|x86.ActiveCfg = Debug|Any CPU - {2063BE68-AE31-42AD-98B2-07B9079F8F47}.Debug|x86.Build.0 = Debug|Any CPU {2063BE68-AE31-42AD-98B2-07B9079F8F47}.Debug|x64.ActiveCfg = Debug|Any CPU {2063BE68-AE31-42AD-98B2-07B9079F8F47}.Debug|x64.Build.0 = Debug|Any CPU + {2063BE68-AE31-42AD-98B2-07B9079F8F47}.Debug|x86.ActiveCfg = Debug|Any CPU + {2063BE68-AE31-42AD-98B2-07B9079F8F47}.Debug|x86.Build.0 = Debug|Any CPU {2063BE68-AE31-42AD-98B2-07B9079F8F47}.Release|Any CPU.ActiveCfg = Release|Any CPU {2063BE68-AE31-42AD-98B2-07B9079F8F47}.Release|Any CPU.Build.0 = Release|Any CPU {2063BE68-AE31-42AD-98B2-07B9079F8F47}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {2063BE68-AE31-42AD-98B2-07B9079F8F47}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {2063BE68-AE31-42AD-98B2-07B9079F8F47}.Release|x86.ActiveCfg = Release|Any CPU - {2063BE68-AE31-42AD-98B2-07B9079F8F47}.Release|x86.Build.0 = Release|Any CPU {2063BE68-AE31-42AD-98B2-07B9079F8F47}.Release|x64.ActiveCfg = Release|Any CPU {2063BE68-AE31-42AD-98B2-07B9079F8F47}.Release|x64.Build.0 = Release|Any CPU + {2063BE68-AE31-42AD-98B2-07B9079F8F47}.Release|x86.ActiveCfg = Release|Any CPU + {2063BE68-AE31-42AD-98B2-07B9079F8F47}.Release|x86.Build.0 = Release|Any CPU {1D5325D6-F029-4EF5-BC6C-DB2D1084E89E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1D5325D6-F029-4EF5-BC6C-DB2D1084E89E}.Debug|Any CPU.Build.0 = Debug|Any CPU {1D5325D6-F029-4EF5-BC6C-DB2D1084E89E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {1D5325D6-F029-4EF5-BC6C-DB2D1084E89E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {1D5325D6-F029-4EF5-BC6C-DB2D1084E89E}.Debug|x86.ActiveCfg = Debug|Any CPU - {1D5325D6-F029-4EF5-BC6C-DB2D1084E89E}.Debug|x86.Build.0 = Debug|Any CPU {1D5325D6-F029-4EF5-BC6C-DB2D1084E89E}.Debug|x64.ActiveCfg = Debug|Any CPU {1D5325D6-F029-4EF5-BC6C-DB2D1084E89E}.Debug|x64.Build.0 = Debug|Any CPU + {1D5325D6-F029-4EF5-BC6C-DB2D1084E89E}.Debug|x86.ActiveCfg = Debug|Any CPU + {1D5325D6-F029-4EF5-BC6C-DB2D1084E89E}.Debug|x86.Build.0 = Debug|Any CPU {1D5325D6-F029-4EF5-BC6C-DB2D1084E89E}.Release|Any CPU.ActiveCfg = Release|Any CPU {1D5325D6-F029-4EF5-BC6C-DB2D1084E89E}.Release|Any CPU.Build.0 = Release|Any CPU {1D5325D6-F029-4EF5-BC6C-DB2D1084E89E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {1D5325D6-F029-4EF5-BC6C-DB2D1084E89E}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {1D5325D6-F029-4EF5-BC6C-DB2D1084E89E}.Release|x86.ActiveCfg = Release|Any CPU - {1D5325D6-F029-4EF5-BC6C-DB2D1084E89E}.Release|x86.Build.0 = Release|Any CPU {1D5325D6-F029-4EF5-BC6C-DB2D1084E89E}.Release|x64.ActiveCfg = Release|Any CPU {1D5325D6-F029-4EF5-BC6C-DB2D1084E89E}.Release|x64.Build.0 = Release|Any CPU + {1D5325D6-F029-4EF5-BC6C-DB2D1084E89E}.Release|x86.ActiveCfg = Release|Any CPU + {1D5325D6-F029-4EF5-BC6C-DB2D1084E89E}.Release|x86.Build.0 = Release|Any CPU {A0C5CE8B-E152-41B0-B5EB-5168CC3060AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A0C5CE8B-E152-41B0-B5EB-5168CC3060AE}.Debug|Any CPU.Build.0 = Debug|Any CPU {A0C5CE8B-E152-41B0-B5EB-5168CC3060AE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {A0C5CE8B-E152-41B0-B5EB-5168CC3060AE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {A0C5CE8B-E152-41B0-B5EB-5168CC3060AE}.Debug|x86.ActiveCfg = Debug|Any CPU - {A0C5CE8B-E152-41B0-B5EB-5168CC3060AE}.Debug|x86.Build.0 = Debug|Any CPU {A0C5CE8B-E152-41B0-B5EB-5168CC3060AE}.Debug|x64.ActiveCfg = Debug|Any CPU {A0C5CE8B-E152-41B0-B5EB-5168CC3060AE}.Debug|x64.Build.0 = Debug|Any CPU + {A0C5CE8B-E152-41B0-B5EB-5168CC3060AE}.Debug|x86.ActiveCfg = Debug|Any CPU + {A0C5CE8B-E152-41B0-B5EB-5168CC3060AE}.Debug|x86.Build.0 = Debug|Any CPU {A0C5CE8B-E152-41B0-B5EB-5168CC3060AE}.Release|Any CPU.ActiveCfg = Release|Any CPU {A0C5CE8B-E152-41B0-B5EB-5168CC3060AE}.Release|Any CPU.Build.0 = Release|Any CPU {A0C5CE8B-E152-41B0-B5EB-5168CC3060AE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {A0C5CE8B-E152-41B0-B5EB-5168CC3060AE}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {A0C5CE8B-E152-41B0-B5EB-5168CC3060AE}.Release|x86.ActiveCfg = Release|Any CPU - {A0C5CE8B-E152-41B0-B5EB-5168CC3060AE}.Release|x86.Build.0 = Release|Any CPU {A0C5CE8B-E152-41B0-B5EB-5168CC3060AE}.Release|x64.ActiveCfg = Release|Any CPU {A0C5CE8B-E152-41B0-B5EB-5168CC3060AE}.Release|x64.Build.0 = Release|Any CPU + {A0C5CE8B-E152-41B0-B5EB-5168CC3060AE}.Release|x86.ActiveCfg = Release|Any CPU + {A0C5CE8B-E152-41B0-B5EB-5168CC3060AE}.Release|x86.Build.0 = Release|Any CPU {3AAF6921-E01F-4822-8517-7D77D16283E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3AAF6921-E01F-4822-8517-7D77D16283E1}.Debug|Any CPU.Build.0 = Debug|Any CPU {3AAF6921-E01F-4822-8517-7D77D16283E1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {3AAF6921-E01F-4822-8517-7D77D16283E1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {3AAF6921-E01F-4822-8517-7D77D16283E1}.Debug|x86.ActiveCfg = Debug|Any CPU - {3AAF6921-E01F-4822-8517-7D77D16283E1}.Debug|x86.Build.0 = Debug|Any CPU {3AAF6921-E01F-4822-8517-7D77D16283E1}.Debug|x64.ActiveCfg = Debug|Any CPU {3AAF6921-E01F-4822-8517-7D77D16283E1}.Debug|x64.Build.0 = Debug|Any CPU + {3AAF6921-E01F-4822-8517-7D77D16283E1}.Debug|x86.ActiveCfg = Debug|Any CPU + {3AAF6921-E01F-4822-8517-7D77D16283E1}.Debug|x86.Build.0 = Debug|Any CPU {3AAF6921-E01F-4822-8517-7D77D16283E1}.Release|Any CPU.ActiveCfg = Release|Any CPU {3AAF6921-E01F-4822-8517-7D77D16283E1}.Release|Any CPU.Build.0 = Release|Any CPU {3AAF6921-E01F-4822-8517-7D77D16283E1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {3AAF6921-E01F-4822-8517-7D77D16283E1}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {3AAF6921-E01F-4822-8517-7D77D16283E1}.Release|x86.ActiveCfg = Release|Any CPU - {3AAF6921-E01F-4822-8517-7D77D16283E1}.Release|x86.Build.0 = Release|Any CPU {3AAF6921-E01F-4822-8517-7D77D16283E1}.Release|x64.ActiveCfg = Release|Any CPU {3AAF6921-E01F-4822-8517-7D77D16283E1}.Release|x64.Build.0 = Release|Any CPU + {3AAF6921-E01F-4822-8517-7D77D16283E1}.Release|x86.ActiveCfg = Release|Any CPU + {3AAF6921-E01F-4822-8517-7D77D16283E1}.Release|x86.Build.0 = Release|Any CPU {965720A9-CD15-4039-995F-589C96689F88}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {965720A9-CD15-4039-995F-589C96689F88}.Debug|Any CPU.Build.0 = Debug|Any CPU {965720A9-CD15-4039-995F-589C96689F88}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {965720A9-CD15-4039-995F-589C96689F88}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {965720A9-CD15-4039-995F-589C96689F88}.Debug|x86.ActiveCfg = Debug|Any CPU - {965720A9-CD15-4039-995F-589C96689F88}.Debug|x86.Build.0 = Debug|Any CPU {965720A9-CD15-4039-995F-589C96689F88}.Debug|x64.ActiveCfg = Debug|Any CPU {965720A9-CD15-4039-995F-589C96689F88}.Debug|x64.Build.0 = Debug|Any CPU + {965720A9-CD15-4039-995F-589C96689F88}.Debug|x86.ActiveCfg = Debug|Any CPU + {965720A9-CD15-4039-995F-589C96689F88}.Debug|x86.Build.0 = Debug|Any CPU {965720A9-CD15-4039-995F-589C96689F88}.Release|Any CPU.ActiveCfg = Release|Any CPU {965720A9-CD15-4039-995F-589C96689F88}.Release|Any CPU.Build.0 = Release|Any CPU {965720A9-CD15-4039-995F-589C96689F88}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {965720A9-CD15-4039-995F-589C96689F88}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {965720A9-CD15-4039-995F-589C96689F88}.Release|x86.ActiveCfg = Release|Any CPU - {965720A9-CD15-4039-995F-589C96689F88}.Release|x86.Build.0 = Release|Any CPU {965720A9-CD15-4039-995F-589C96689F88}.Release|x64.ActiveCfg = Release|Any CPU {965720A9-CD15-4039-995F-589C96689F88}.Release|x64.Build.0 = Release|Any CPU + {965720A9-CD15-4039-995F-589C96689F88}.Release|x86.ActiveCfg = Release|Any CPU + {965720A9-CD15-4039-995F-589C96689F88}.Release|x86.Build.0 = Release|Any CPU {9962A8D5-4372-4F89-911E-FFB04D2AFD46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9962A8D5-4372-4F89-911E-FFB04D2AFD46}.Debug|Any CPU.Build.0 = Debug|Any CPU {9962A8D5-4372-4F89-911E-FFB04D2AFD46}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {9962A8D5-4372-4F89-911E-FFB04D2AFD46}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {9962A8D5-4372-4F89-911E-FFB04D2AFD46}.Debug|x86.ActiveCfg = Debug|Any CPU - {9962A8D5-4372-4F89-911E-FFB04D2AFD46}.Debug|x86.Build.0 = Debug|Any CPU {9962A8D5-4372-4F89-911E-FFB04D2AFD46}.Debug|x64.ActiveCfg = Debug|Any CPU {9962A8D5-4372-4F89-911E-FFB04D2AFD46}.Debug|x64.Build.0 = Debug|Any CPU + {9962A8D5-4372-4F89-911E-FFB04D2AFD46}.Debug|x86.ActiveCfg = Debug|Any CPU + {9962A8D5-4372-4F89-911E-FFB04D2AFD46}.Debug|x86.Build.0 = Debug|Any CPU {9962A8D5-4372-4F89-911E-FFB04D2AFD46}.Release|Any CPU.ActiveCfg = Release|Any CPU {9962A8D5-4372-4F89-911E-FFB04D2AFD46}.Release|Any CPU.Build.0 = Release|Any CPU {9962A8D5-4372-4F89-911E-FFB04D2AFD46}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {9962A8D5-4372-4F89-911E-FFB04D2AFD46}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {9962A8D5-4372-4F89-911E-FFB04D2AFD46}.Release|x86.ActiveCfg = Release|Any CPU - {9962A8D5-4372-4F89-911E-FFB04D2AFD46}.Release|x86.Build.0 = Release|Any CPU {9962A8D5-4372-4F89-911E-FFB04D2AFD46}.Release|x64.ActiveCfg = Release|Any CPU {9962A8D5-4372-4F89-911E-FFB04D2AFD46}.Release|x64.Build.0 = Release|Any CPU + {9962A8D5-4372-4F89-911E-FFB04D2AFD46}.Release|x86.ActiveCfg = Release|Any CPU + {9962A8D5-4372-4F89-911E-FFB04D2AFD46}.Release|x86.Build.0 = Release|Any CPU {25EE9F40-3C33-46FF-8970-1C90CDCA3D70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {25EE9F40-3C33-46FF-8970-1C90CDCA3D70}.Debug|Any CPU.Build.0 = Debug|Any CPU {25EE9F40-3C33-46FF-8970-1C90CDCA3D70}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {25EE9F40-3C33-46FF-8970-1C90CDCA3D70}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {25EE9F40-3C33-46FF-8970-1C90CDCA3D70}.Debug|x86.ActiveCfg = Debug|Any CPU - {25EE9F40-3C33-46FF-8970-1C90CDCA3D70}.Debug|x86.Build.0 = Debug|Any CPU {25EE9F40-3C33-46FF-8970-1C90CDCA3D70}.Debug|x64.ActiveCfg = Debug|Any CPU {25EE9F40-3C33-46FF-8970-1C90CDCA3D70}.Debug|x64.Build.0 = Debug|Any CPU + {25EE9F40-3C33-46FF-8970-1C90CDCA3D70}.Debug|x86.ActiveCfg = Debug|Any CPU + {25EE9F40-3C33-46FF-8970-1C90CDCA3D70}.Debug|x86.Build.0 = Debug|Any CPU {25EE9F40-3C33-46FF-8970-1C90CDCA3D70}.Release|Any CPU.ActiveCfg = Release|Any CPU {25EE9F40-3C33-46FF-8970-1C90CDCA3D70}.Release|Any CPU.Build.0 = Release|Any CPU {25EE9F40-3C33-46FF-8970-1C90CDCA3D70}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {25EE9F40-3C33-46FF-8970-1C90CDCA3D70}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {25EE9F40-3C33-46FF-8970-1C90CDCA3D70}.Release|x86.ActiveCfg = Release|Any CPU - {25EE9F40-3C33-46FF-8970-1C90CDCA3D70}.Release|x86.Build.0 = Release|Any CPU {25EE9F40-3C33-46FF-8970-1C90CDCA3D70}.Release|x64.ActiveCfg = Release|Any CPU {25EE9F40-3C33-46FF-8970-1C90CDCA3D70}.Release|x64.Build.0 = Release|Any CPU + {25EE9F40-3C33-46FF-8970-1C90CDCA3D70}.Release|x86.ActiveCfg = Release|Any CPU + {25EE9F40-3C33-46FF-8970-1C90CDCA3D70}.Release|x86.Build.0 = Release|Any CPU {62586BD1-B7A4-4502-982F-250A47A5893A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {62586BD1-B7A4-4502-982F-250A47A5893A}.Debug|Any CPU.Build.0 = Debug|Any CPU {62586BD1-B7A4-4502-982F-250A47A5893A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {62586BD1-B7A4-4502-982F-250A47A5893A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {62586BD1-B7A4-4502-982F-250A47A5893A}.Debug|x86.ActiveCfg = Debug|Any CPU - {62586BD1-B7A4-4502-982F-250A47A5893A}.Debug|x86.Build.0 = Debug|Any CPU {62586BD1-B7A4-4502-982F-250A47A5893A}.Debug|x64.ActiveCfg = Debug|Any CPU {62586BD1-B7A4-4502-982F-250A47A5893A}.Debug|x64.Build.0 = Debug|Any CPU + {62586BD1-B7A4-4502-982F-250A47A5893A}.Debug|x86.ActiveCfg = Debug|Any CPU + {62586BD1-B7A4-4502-982F-250A47A5893A}.Debug|x86.Build.0 = Debug|Any CPU {62586BD1-B7A4-4502-982F-250A47A5893A}.Release|Any CPU.ActiveCfg = Release|Any CPU {62586BD1-B7A4-4502-982F-250A47A5893A}.Release|Any CPU.Build.0 = Release|Any CPU {62586BD1-B7A4-4502-982F-250A47A5893A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {62586BD1-B7A4-4502-982F-250A47A5893A}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {62586BD1-B7A4-4502-982F-250A47A5893A}.Release|x86.ActiveCfg = Release|Any CPU - {62586BD1-B7A4-4502-982F-250A47A5893A}.Release|x86.Build.0 = Release|Any CPU {62586BD1-B7A4-4502-982F-250A47A5893A}.Release|x64.ActiveCfg = Release|Any CPU {62586BD1-B7A4-4502-982F-250A47A5893A}.Release|x64.Build.0 = Release|Any CPU + {62586BD1-B7A4-4502-982F-250A47A5893A}.Release|x86.ActiveCfg = Release|Any CPU + {62586BD1-B7A4-4502-982F-250A47A5893A}.Release|x86.Build.0 = Release|Any CPU {3CFF9B08-4D06-4ECB-BF3F-48842BF69D40}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3CFF9B08-4D06-4ECB-BF3F-48842BF69D40}.Debug|Any CPU.Build.0 = Debug|Any CPU {3CFF9B08-4D06-4ECB-BF3F-48842BF69D40}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {3CFF9B08-4D06-4ECB-BF3F-48842BF69D40}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {3CFF9B08-4D06-4ECB-BF3F-48842BF69D40}.Debug|x86.ActiveCfg = Debug|Any CPU - {3CFF9B08-4D06-4ECB-BF3F-48842BF69D40}.Debug|x86.Build.0 = Debug|Any CPU {3CFF9B08-4D06-4ECB-BF3F-48842BF69D40}.Debug|x64.ActiveCfg = Debug|Any CPU {3CFF9B08-4D06-4ECB-BF3F-48842BF69D40}.Debug|x64.Build.0 = Debug|Any CPU + {3CFF9B08-4D06-4ECB-BF3F-48842BF69D40}.Debug|x86.ActiveCfg = Debug|Any CPU + {3CFF9B08-4D06-4ECB-BF3F-48842BF69D40}.Debug|x86.Build.0 = Debug|Any CPU {3CFF9B08-4D06-4ECB-BF3F-48842BF69D40}.Release|Any CPU.ActiveCfg = Release|Any CPU {3CFF9B08-4D06-4ECB-BF3F-48842BF69D40}.Release|Any CPU.Build.0 = Release|Any CPU {3CFF9B08-4D06-4ECB-BF3F-48842BF69D40}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {3CFF9B08-4D06-4ECB-BF3F-48842BF69D40}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {3CFF9B08-4D06-4ECB-BF3F-48842BF69D40}.Release|x86.ActiveCfg = Release|Any CPU - {3CFF9B08-4D06-4ECB-BF3F-48842BF69D40}.Release|x86.Build.0 = Release|Any CPU {3CFF9B08-4D06-4ECB-BF3F-48842BF69D40}.Release|x64.ActiveCfg = Release|Any CPU {3CFF9B08-4D06-4ECB-BF3F-48842BF69D40}.Release|x64.Build.0 = Release|Any CPU + {3CFF9B08-4D06-4ECB-BF3F-48842BF69D40}.Release|x86.ActiveCfg = Release|Any CPU + {3CFF9B08-4D06-4ECB-BF3F-48842BF69D40}.Release|x86.Build.0 = Release|Any CPU {F20BB89C-E870-4639-86B7-ABD91F41B036}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F20BB89C-E870-4639-86B7-ABD91F41B036}.Debug|Any CPU.Build.0 = Debug|Any CPU {F20BB89C-E870-4639-86B7-ABD91F41B036}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {F20BB89C-E870-4639-86B7-ABD91F41B036}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {F20BB89C-E870-4639-86B7-ABD91F41B036}.Debug|x86.ActiveCfg = Debug|Any CPU - {F20BB89C-E870-4639-86B7-ABD91F41B036}.Debug|x86.Build.0 = Debug|Any CPU {F20BB89C-E870-4639-86B7-ABD91F41B036}.Debug|x64.ActiveCfg = Debug|Any CPU {F20BB89C-E870-4639-86B7-ABD91F41B036}.Debug|x64.Build.0 = Debug|Any CPU + {F20BB89C-E870-4639-86B7-ABD91F41B036}.Debug|x86.ActiveCfg = Debug|Any CPU + {F20BB89C-E870-4639-86B7-ABD91F41B036}.Debug|x86.Build.0 = Debug|Any CPU {F20BB89C-E870-4639-86B7-ABD91F41B036}.Release|Any CPU.ActiveCfg = Release|Any CPU {F20BB89C-E870-4639-86B7-ABD91F41B036}.Release|Any CPU.Build.0 = Release|Any CPU {F20BB89C-E870-4639-86B7-ABD91F41B036}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {F20BB89C-E870-4639-86B7-ABD91F41B036}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {F20BB89C-E870-4639-86B7-ABD91F41B036}.Release|x86.ActiveCfg = Release|Any CPU - {F20BB89C-E870-4639-86B7-ABD91F41B036}.Release|x86.Build.0 = Release|Any CPU {F20BB89C-E870-4639-86B7-ABD91F41B036}.Release|x64.ActiveCfg = Release|Any CPU {F20BB89C-E870-4639-86B7-ABD91F41B036}.Release|x64.Build.0 = Release|Any CPU + {F20BB89C-E870-4639-86B7-ABD91F41B036}.Release|x86.ActiveCfg = Release|Any CPU + {F20BB89C-E870-4639-86B7-ABD91F41B036}.Release|x86.Build.0 = Release|Any CPU {8D9264F7-10AB-4F20-BB1E-1DE0C0DE1689}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8D9264F7-10AB-4F20-BB1E-1DE0C0DE1689}.Debug|Any CPU.Build.0 = Debug|Any CPU {8D9264F7-10AB-4F20-BB1E-1DE0C0DE1689}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {8D9264F7-10AB-4F20-BB1E-1DE0C0DE1689}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {8D9264F7-10AB-4F20-BB1E-1DE0C0DE1689}.Debug|x86.ActiveCfg = Debug|Any CPU - {8D9264F7-10AB-4F20-BB1E-1DE0C0DE1689}.Debug|x86.Build.0 = Debug|Any CPU {8D9264F7-10AB-4F20-BB1E-1DE0C0DE1689}.Debug|x64.ActiveCfg = Debug|Any CPU {8D9264F7-10AB-4F20-BB1E-1DE0C0DE1689}.Debug|x64.Build.0 = Debug|Any CPU + {8D9264F7-10AB-4F20-BB1E-1DE0C0DE1689}.Debug|x86.ActiveCfg = Debug|Any CPU + {8D9264F7-10AB-4F20-BB1E-1DE0C0DE1689}.Debug|x86.Build.0 = Debug|Any CPU {8D9264F7-10AB-4F20-BB1E-1DE0C0DE1689}.Release|Any CPU.ActiveCfg = Release|Any CPU {8D9264F7-10AB-4F20-BB1E-1DE0C0DE1689}.Release|Any CPU.Build.0 = Release|Any CPU {8D9264F7-10AB-4F20-BB1E-1DE0C0DE1689}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {8D9264F7-10AB-4F20-BB1E-1DE0C0DE1689}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {8D9264F7-10AB-4F20-BB1E-1DE0C0DE1689}.Release|x86.ActiveCfg = Release|Any CPU - {8D9264F7-10AB-4F20-BB1E-1DE0C0DE1689}.Release|x86.Build.0 = Release|Any CPU {8D9264F7-10AB-4F20-BB1E-1DE0C0DE1689}.Release|x64.ActiveCfg = Release|Any CPU {8D9264F7-10AB-4F20-BB1E-1DE0C0DE1689}.Release|x64.Build.0 = Release|Any CPU + {8D9264F7-10AB-4F20-BB1E-1DE0C0DE1689}.Release|x86.ActiveCfg = Release|Any CPU + {8D9264F7-10AB-4F20-BB1E-1DE0C0DE1689}.Release|x86.Build.0 = Release|Any CPU {9EEBCACC-DB47-41A1-8BCA-96294DF429CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9EEBCACC-DB47-41A1-8BCA-96294DF429CA}.Debug|Any CPU.Build.0 = Debug|Any CPU {9EEBCACC-DB47-41A1-8BCA-96294DF429CA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {9EEBCACC-DB47-41A1-8BCA-96294DF429CA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {9EEBCACC-DB47-41A1-8BCA-96294DF429CA}.Debug|x86.ActiveCfg = Debug|Any CPU - {9EEBCACC-DB47-41A1-8BCA-96294DF429CA}.Debug|x86.Build.0 = Debug|Any CPU {9EEBCACC-DB47-41A1-8BCA-96294DF429CA}.Debug|x64.ActiveCfg = Debug|Any CPU {9EEBCACC-DB47-41A1-8BCA-96294DF429CA}.Debug|x64.Build.0 = Debug|Any CPU + {9EEBCACC-DB47-41A1-8BCA-96294DF429CA}.Debug|x86.ActiveCfg = Debug|Any CPU + {9EEBCACC-DB47-41A1-8BCA-96294DF429CA}.Debug|x86.Build.0 = Debug|Any CPU {9EEBCACC-DB47-41A1-8BCA-96294DF429CA}.Release|Any CPU.ActiveCfg = Release|Any CPU {9EEBCACC-DB47-41A1-8BCA-96294DF429CA}.Release|Any CPU.Build.0 = Release|Any CPU {9EEBCACC-DB47-41A1-8BCA-96294DF429CA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {9EEBCACC-DB47-41A1-8BCA-96294DF429CA}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {9EEBCACC-DB47-41A1-8BCA-96294DF429CA}.Release|x86.ActiveCfg = Release|Any CPU - {9EEBCACC-DB47-41A1-8BCA-96294DF429CA}.Release|x86.Build.0 = Release|Any CPU {9EEBCACC-DB47-41A1-8BCA-96294DF429CA}.Release|x64.ActiveCfg = Release|Any CPU {9EEBCACC-DB47-41A1-8BCA-96294DF429CA}.Release|x64.Build.0 = Release|Any CPU + {9EEBCACC-DB47-41A1-8BCA-96294DF429CA}.Release|x86.ActiveCfg = Release|Any CPU + {9EEBCACC-DB47-41A1-8BCA-96294DF429CA}.Release|x86.Build.0 = Release|Any CPU {D7401E74-ED80-4B6D-9708-C0C254BAA762}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D7401E74-ED80-4B6D-9708-C0C254BAA762}.Debug|Any CPU.Build.0 = Debug|Any CPU {D7401E74-ED80-4B6D-9708-C0C254BAA762}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {D7401E74-ED80-4B6D-9708-C0C254BAA762}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {D7401E74-ED80-4B6D-9708-C0C254BAA762}.Debug|x86.ActiveCfg = Debug|Any CPU - {D7401E74-ED80-4B6D-9708-C0C254BAA762}.Debug|x86.Build.0 = Debug|Any CPU {D7401E74-ED80-4B6D-9708-C0C254BAA762}.Debug|x64.ActiveCfg = Debug|Any CPU {D7401E74-ED80-4B6D-9708-C0C254BAA762}.Debug|x64.Build.0 = Debug|Any CPU + {D7401E74-ED80-4B6D-9708-C0C254BAA762}.Debug|x86.ActiveCfg = Debug|Any CPU + {D7401E74-ED80-4B6D-9708-C0C254BAA762}.Debug|x86.Build.0 = Debug|Any CPU {D7401E74-ED80-4B6D-9708-C0C254BAA762}.Release|Any CPU.ActiveCfg = Release|Any CPU {D7401E74-ED80-4B6D-9708-C0C254BAA762}.Release|Any CPU.Build.0 = Release|Any CPU {D7401E74-ED80-4B6D-9708-C0C254BAA762}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {D7401E74-ED80-4B6D-9708-C0C254BAA762}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {D7401E74-ED80-4B6D-9708-C0C254BAA762}.Release|x86.ActiveCfg = Release|Any CPU - {D7401E74-ED80-4B6D-9708-C0C254BAA762}.Release|x86.Build.0 = Release|Any CPU {D7401E74-ED80-4B6D-9708-C0C254BAA762}.Release|x64.ActiveCfg = Release|Any CPU {D7401E74-ED80-4B6D-9708-C0C254BAA762}.Release|x64.Build.0 = Release|Any CPU + {D7401E74-ED80-4B6D-9708-C0C254BAA762}.Release|x86.ActiveCfg = Release|Any CPU + {D7401E74-ED80-4B6D-9708-C0C254BAA762}.Release|x86.Build.0 = Release|Any CPU {CE418939-FD6D-48B1-B8C9-EA278C9E7D06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CE418939-FD6D-48B1-B8C9-EA278C9E7D06}.Debug|Any CPU.Build.0 = Debug|Any CPU {CE418939-FD6D-48B1-B8C9-EA278C9E7D06}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {CE418939-FD6D-48B1-B8C9-EA278C9E7D06}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {CE418939-FD6D-48B1-B8C9-EA278C9E7D06}.Debug|x86.ActiveCfg = Debug|Any CPU - {CE418939-FD6D-48B1-B8C9-EA278C9E7D06}.Debug|x86.Build.0 = Debug|Any CPU {CE418939-FD6D-48B1-B8C9-EA278C9E7D06}.Debug|x64.ActiveCfg = Debug|Any CPU {CE418939-FD6D-48B1-B8C9-EA278C9E7D06}.Debug|x64.Build.0 = Debug|Any CPU + {CE418939-FD6D-48B1-B8C9-EA278C9E7D06}.Debug|x86.ActiveCfg = Debug|Any CPU + {CE418939-FD6D-48B1-B8C9-EA278C9E7D06}.Debug|x86.Build.0 = Debug|Any CPU {CE418939-FD6D-48B1-B8C9-EA278C9E7D06}.Release|Any CPU.ActiveCfg = Release|Any CPU {CE418939-FD6D-48B1-B8C9-EA278C9E7D06}.Release|Any CPU.Build.0 = Release|Any CPU {CE418939-FD6D-48B1-B8C9-EA278C9E7D06}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {CE418939-FD6D-48B1-B8C9-EA278C9E7D06}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {CE418939-FD6D-48B1-B8C9-EA278C9E7D06}.Release|x86.ActiveCfg = Release|Any CPU - {CE418939-FD6D-48B1-B8C9-EA278C9E7D06}.Release|x86.Build.0 = Release|Any CPU {CE418939-FD6D-48B1-B8C9-EA278C9E7D06}.Release|x64.ActiveCfg = Release|Any CPU {CE418939-FD6D-48B1-B8C9-EA278C9E7D06}.Release|x64.Build.0 = Release|Any CPU + {CE418939-FD6D-48B1-B8C9-EA278C9E7D06}.Release|x86.ActiveCfg = Release|Any CPU + {CE418939-FD6D-48B1-B8C9-EA278C9E7D06}.Release|x86.Build.0 = Release|Any CPU {DFFA5AFC-D6ED-4193-9D86-3DE69B892150}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DFFA5AFC-D6ED-4193-9D86-3DE69B892150}.Debug|Any CPU.Build.0 = Debug|Any CPU {DFFA5AFC-D6ED-4193-9D86-3DE69B892150}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {DFFA5AFC-D6ED-4193-9D86-3DE69B892150}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {DFFA5AFC-D6ED-4193-9D86-3DE69B892150}.Debug|x86.ActiveCfg = Debug|Any CPU - {DFFA5AFC-D6ED-4193-9D86-3DE69B892150}.Debug|x86.Build.0 = Debug|Any CPU {DFFA5AFC-D6ED-4193-9D86-3DE69B892150}.Debug|x64.ActiveCfg = Debug|Any CPU {DFFA5AFC-D6ED-4193-9D86-3DE69B892150}.Debug|x64.Build.0 = Debug|Any CPU + {DFFA5AFC-D6ED-4193-9D86-3DE69B892150}.Debug|x86.ActiveCfg = Debug|Any CPU + {DFFA5AFC-D6ED-4193-9D86-3DE69B892150}.Debug|x86.Build.0 = Debug|Any CPU {DFFA5AFC-D6ED-4193-9D86-3DE69B892150}.Release|Any CPU.ActiveCfg = Release|Any CPU {DFFA5AFC-D6ED-4193-9D86-3DE69B892150}.Release|Any CPU.Build.0 = Release|Any CPU {DFFA5AFC-D6ED-4193-9D86-3DE69B892150}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {DFFA5AFC-D6ED-4193-9D86-3DE69B892150}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {DFFA5AFC-D6ED-4193-9D86-3DE69B892150}.Release|x86.ActiveCfg = Release|Any CPU - {DFFA5AFC-D6ED-4193-9D86-3DE69B892150}.Release|x86.Build.0 = Release|Any CPU {DFFA5AFC-D6ED-4193-9D86-3DE69B892150}.Release|x64.ActiveCfg = Release|Any CPU {DFFA5AFC-D6ED-4193-9D86-3DE69B892150}.Release|x64.Build.0 = Release|Any CPU + {DFFA5AFC-D6ED-4193-9D86-3DE69B892150}.Release|x86.ActiveCfg = Release|Any CPU + {DFFA5AFC-D6ED-4193-9D86-3DE69B892150}.Release|x86.Build.0 = Release|Any CPU {915BD9FD-2E29-4E2B-8DA3-A74055F32A20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {915BD9FD-2E29-4E2B-8DA3-A74055F32A20}.Debug|Any CPU.Build.0 = Debug|Any CPU {915BD9FD-2E29-4E2B-8DA3-A74055F32A20}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {915BD9FD-2E29-4E2B-8DA3-A74055F32A20}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {915BD9FD-2E29-4E2B-8DA3-A74055F32A20}.Debug|x86.ActiveCfg = Debug|Any CPU - {915BD9FD-2E29-4E2B-8DA3-A74055F32A20}.Debug|x86.Build.0 = Debug|Any CPU {915BD9FD-2E29-4E2B-8DA3-A74055F32A20}.Debug|x64.ActiveCfg = Debug|Any CPU {915BD9FD-2E29-4E2B-8DA3-A74055F32A20}.Debug|x64.Build.0 = Debug|Any CPU + {915BD9FD-2E29-4E2B-8DA3-A74055F32A20}.Debug|x86.ActiveCfg = Debug|Any CPU + {915BD9FD-2E29-4E2B-8DA3-A74055F32A20}.Debug|x86.Build.0 = Debug|Any CPU {915BD9FD-2E29-4E2B-8DA3-A74055F32A20}.Release|Any CPU.ActiveCfg = Release|Any CPU {915BD9FD-2E29-4E2B-8DA3-A74055F32A20}.Release|Any CPU.Build.0 = Release|Any CPU {915BD9FD-2E29-4E2B-8DA3-A74055F32A20}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {915BD9FD-2E29-4E2B-8DA3-A74055F32A20}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {915BD9FD-2E29-4E2B-8DA3-A74055F32A20}.Release|x86.ActiveCfg = Release|Any CPU - {915BD9FD-2E29-4E2B-8DA3-A74055F32A20}.Release|x86.Build.0 = Release|Any CPU {915BD9FD-2E29-4E2B-8DA3-A74055F32A20}.Release|x64.ActiveCfg = Release|Any CPU {915BD9FD-2E29-4E2B-8DA3-A74055F32A20}.Release|x64.Build.0 = Release|Any CPU + {915BD9FD-2E29-4E2B-8DA3-A74055F32A20}.Release|x86.ActiveCfg = Release|Any CPU + {915BD9FD-2E29-4E2B-8DA3-A74055F32A20}.Release|x86.Build.0 = Release|Any CPU {7D8CE752-CCBB-4868-ADF0-30FF94CA611C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7D8CE752-CCBB-4868-ADF0-30FF94CA611C}.Debug|Any CPU.Build.0 = Debug|Any CPU {7D8CE752-CCBB-4868-ADF0-30FF94CA611C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {7D8CE752-CCBB-4868-ADF0-30FF94CA611C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {7D8CE752-CCBB-4868-ADF0-30FF94CA611C}.Debug|x86.ActiveCfg = Debug|Any CPU - {7D8CE752-CCBB-4868-ADF0-30FF94CA611C}.Debug|x86.Build.0 = Debug|Any CPU {7D8CE752-CCBB-4868-ADF0-30FF94CA611C}.Debug|x64.ActiveCfg = Debug|Any CPU {7D8CE752-CCBB-4868-ADF0-30FF94CA611C}.Debug|x64.Build.0 = Debug|Any CPU + {7D8CE752-CCBB-4868-ADF0-30FF94CA611C}.Debug|x86.ActiveCfg = Debug|Any CPU + {7D8CE752-CCBB-4868-ADF0-30FF94CA611C}.Debug|x86.Build.0 = Debug|Any CPU {7D8CE752-CCBB-4868-ADF0-30FF94CA611C}.Release|Any CPU.ActiveCfg = Release|Any CPU {7D8CE752-CCBB-4868-ADF0-30FF94CA611C}.Release|Any CPU.Build.0 = Release|Any CPU {7D8CE752-CCBB-4868-ADF0-30FF94CA611C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {7D8CE752-CCBB-4868-ADF0-30FF94CA611C}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {7D8CE752-CCBB-4868-ADF0-30FF94CA611C}.Release|x86.ActiveCfg = Release|Any CPU - {7D8CE752-CCBB-4868-ADF0-30FF94CA611C}.Release|x86.Build.0 = Release|Any CPU {7D8CE752-CCBB-4868-ADF0-30FF94CA611C}.Release|x64.ActiveCfg = Release|Any CPU {7D8CE752-CCBB-4868-ADF0-30FF94CA611C}.Release|x64.Build.0 = Release|Any CPU + {7D8CE752-CCBB-4868-ADF0-30FF94CA611C}.Release|x86.ActiveCfg = Release|Any CPU + {7D8CE752-CCBB-4868-ADF0-30FF94CA611C}.Release|x86.Build.0 = Release|Any CPU {9377F7E8-633D-494E-BD1A-02AADCC3FE5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9377F7E8-633D-494E-BD1A-02AADCC3FE5D}.Debug|Any CPU.Build.0 = Debug|Any CPU {9377F7E8-633D-494E-BD1A-02AADCC3FE5D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {9377F7E8-633D-494E-BD1A-02AADCC3FE5D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {9377F7E8-633D-494E-BD1A-02AADCC3FE5D}.Debug|x86.ActiveCfg = Debug|Any CPU - {9377F7E8-633D-494E-BD1A-02AADCC3FE5D}.Debug|x86.Build.0 = Debug|Any CPU {9377F7E8-633D-494E-BD1A-02AADCC3FE5D}.Debug|x64.ActiveCfg = Debug|Any CPU {9377F7E8-633D-494E-BD1A-02AADCC3FE5D}.Debug|x64.Build.0 = Debug|Any CPU + {9377F7E8-633D-494E-BD1A-02AADCC3FE5D}.Debug|x86.ActiveCfg = Debug|Any CPU + {9377F7E8-633D-494E-BD1A-02AADCC3FE5D}.Debug|x86.Build.0 = Debug|Any CPU {9377F7E8-633D-494E-BD1A-02AADCC3FE5D}.Release|Any CPU.ActiveCfg = Release|Any CPU {9377F7E8-633D-494E-BD1A-02AADCC3FE5D}.Release|Any CPU.Build.0 = Release|Any CPU {9377F7E8-633D-494E-BD1A-02AADCC3FE5D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {9377F7E8-633D-494E-BD1A-02AADCC3FE5D}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {9377F7E8-633D-494E-BD1A-02AADCC3FE5D}.Release|x86.ActiveCfg = Release|Any CPU - {9377F7E8-633D-494E-BD1A-02AADCC3FE5D}.Release|x86.Build.0 = Release|Any CPU {9377F7E8-633D-494E-BD1A-02AADCC3FE5D}.Release|x64.ActiveCfg = Release|Any CPU {9377F7E8-633D-494E-BD1A-02AADCC3FE5D}.Release|x64.Build.0 = Release|Any CPU + {9377F7E8-633D-494E-BD1A-02AADCC3FE5D}.Release|x86.ActiveCfg = Release|Any CPU + {9377F7E8-633D-494E-BD1A-02AADCC3FE5D}.Release|x86.Build.0 = Release|Any CPU {CBF99394-E332-439B-8632-ABDE06F6E343}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CBF99394-E332-439B-8632-ABDE06F6E343}.Debug|Any CPU.Build.0 = Debug|Any CPU {CBF99394-E332-439B-8632-ABDE06F6E343}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {CBF99394-E332-439B-8632-ABDE06F6E343}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {CBF99394-E332-439B-8632-ABDE06F6E343}.Debug|x86.ActiveCfg = Debug|Any CPU - {CBF99394-E332-439B-8632-ABDE06F6E343}.Debug|x86.Build.0 = Debug|Any CPU {CBF99394-E332-439B-8632-ABDE06F6E343}.Debug|x64.ActiveCfg = Debug|Any CPU {CBF99394-E332-439B-8632-ABDE06F6E343}.Debug|x64.Build.0 = Debug|Any CPU + {CBF99394-E332-439B-8632-ABDE06F6E343}.Debug|x86.ActiveCfg = Debug|Any CPU + {CBF99394-E332-439B-8632-ABDE06F6E343}.Debug|x86.Build.0 = Debug|Any CPU {CBF99394-E332-439B-8632-ABDE06F6E343}.Release|Any CPU.ActiveCfg = Release|Any CPU {CBF99394-E332-439B-8632-ABDE06F6E343}.Release|Any CPU.Build.0 = Release|Any CPU {CBF99394-E332-439B-8632-ABDE06F6E343}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {CBF99394-E332-439B-8632-ABDE06F6E343}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {CBF99394-E332-439B-8632-ABDE06F6E343}.Release|x86.ActiveCfg = Release|Any CPU - {CBF99394-E332-439B-8632-ABDE06F6E343}.Release|x86.Build.0 = Release|Any CPU {CBF99394-E332-439B-8632-ABDE06F6E343}.Release|x64.ActiveCfg = Release|Any CPU {CBF99394-E332-439B-8632-ABDE06F6E343}.Release|x64.Build.0 = Release|Any CPU + {CBF99394-E332-439B-8632-ABDE06F6E343}.Release|x86.ActiveCfg = Release|Any CPU + {CBF99394-E332-439B-8632-ABDE06F6E343}.Release|x86.Build.0 = Release|Any CPU {FBAF452E-C0AB-4C4B-9A81-F1ED9616DE2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FBAF452E-C0AB-4C4B-9A81-F1ED9616DE2A}.Debug|Any CPU.Build.0 = Debug|Any CPU {FBAF452E-C0AB-4C4B-9A81-F1ED9616DE2A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {FBAF452E-C0AB-4C4B-9A81-F1ED9616DE2A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {FBAF452E-C0AB-4C4B-9A81-F1ED9616DE2A}.Debug|x86.ActiveCfg = Debug|Any CPU - {FBAF452E-C0AB-4C4B-9A81-F1ED9616DE2A}.Debug|x86.Build.0 = Debug|Any CPU {FBAF452E-C0AB-4C4B-9A81-F1ED9616DE2A}.Debug|x64.ActiveCfg = Debug|Any CPU {FBAF452E-C0AB-4C4B-9A81-F1ED9616DE2A}.Debug|x64.Build.0 = Debug|Any CPU + {FBAF452E-C0AB-4C4B-9A81-F1ED9616DE2A}.Debug|x86.ActiveCfg = Debug|Any CPU + {FBAF452E-C0AB-4C4B-9A81-F1ED9616DE2A}.Debug|x86.Build.0 = Debug|Any CPU {FBAF452E-C0AB-4C4B-9A81-F1ED9616DE2A}.Release|Any CPU.ActiveCfg = Release|Any CPU {FBAF452E-C0AB-4C4B-9A81-F1ED9616DE2A}.Release|Any CPU.Build.0 = Release|Any CPU {FBAF452E-C0AB-4C4B-9A81-F1ED9616DE2A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {FBAF452E-C0AB-4C4B-9A81-F1ED9616DE2A}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {FBAF452E-C0AB-4C4B-9A81-F1ED9616DE2A}.Release|x86.ActiveCfg = Release|Any CPU - {FBAF452E-C0AB-4C4B-9A81-F1ED9616DE2A}.Release|x86.Build.0 = Release|Any CPU {FBAF452E-C0AB-4C4B-9A81-F1ED9616DE2A}.Release|x64.ActiveCfg = Release|Any CPU {FBAF452E-C0AB-4C4B-9A81-F1ED9616DE2A}.Release|x64.Build.0 = Release|Any CPU + {FBAF452E-C0AB-4C4B-9A81-F1ED9616DE2A}.Release|x86.ActiveCfg = Release|Any CPU + {FBAF452E-C0AB-4C4B-9A81-F1ED9616DE2A}.Release|x86.Build.0 = Release|Any CPU {758EE237-C722-4A0A-908C-2D08C1E59025}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {758EE237-C722-4A0A-908C-2D08C1E59025}.Debug|Any CPU.Build.0 = Debug|Any CPU {758EE237-C722-4A0A-908C-2D08C1E59025}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {758EE237-C722-4A0A-908C-2D08C1E59025}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {758EE237-C722-4A0A-908C-2D08C1E59025}.Debug|x86.ActiveCfg = Debug|Any CPU - {758EE237-C722-4A0A-908C-2D08C1E59025}.Debug|x86.Build.0 = Debug|Any CPU {758EE237-C722-4A0A-908C-2D08C1E59025}.Debug|x64.ActiveCfg = Debug|Any CPU {758EE237-C722-4A0A-908C-2D08C1E59025}.Debug|x64.Build.0 = Debug|Any CPU + {758EE237-C722-4A0A-908C-2D08C1E59025}.Debug|x86.ActiveCfg = Debug|Any CPU + {758EE237-C722-4A0A-908C-2D08C1E59025}.Debug|x86.Build.0 = Debug|Any CPU {758EE237-C722-4A0A-908C-2D08C1E59025}.Release|Any CPU.ActiveCfg = Release|Any CPU {758EE237-C722-4A0A-908C-2D08C1E59025}.Release|Any CPU.Build.0 = Release|Any CPU {758EE237-C722-4A0A-908C-2D08C1E59025}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {758EE237-C722-4A0A-908C-2D08C1E59025}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {758EE237-C722-4A0A-908C-2D08C1E59025}.Release|x86.ActiveCfg = Release|Any CPU - {758EE237-C722-4A0A-908C-2D08C1E59025}.Release|x86.Build.0 = Release|Any CPU {758EE237-C722-4A0A-908C-2D08C1E59025}.Release|x64.ActiveCfg = Release|Any CPU {758EE237-C722-4A0A-908C-2D08C1E59025}.Release|x64.Build.0 = Release|Any CPU + {758EE237-C722-4A0A-908C-2D08C1E59025}.Release|x86.ActiveCfg = Release|Any CPU + {758EE237-C722-4A0A-908C-2D08C1E59025}.Release|x86.Build.0 = Release|Any CPU {F00B137A-C187-4C33-A37B-22AD40B71600}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F00B137A-C187-4C33-A37B-22AD40B71600}.Debug|Any CPU.Build.0 = Debug|Any CPU {F00B137A-C187-4C33-A37B-22AD40B71600}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {F00B137A-C187-4C33-A37B-22AD40B71600}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {F00B137A-C187-4C33-A37B-22AD40B71600}.Debug|x86.ActiveCfg = Debug|Any CPU - {F00B137A-C187-4C33-A37B-22AD40B71600}.Debug|x86.Build.0 = Debug|Any CPU {F00B137A-C187-4C33-A37B-22AD40B71600}.Debug|x64.ActiveCfg = Debug|Any CPU {F00B137A-C187-4C33-A37B-22AD40B71600}.Debug|x64.Build.0 = Debug|Any CPU + {F00B137A-C187-4C33-A37B-22AD40B71600}.Debug|x86.ActiveCfg = Debug|Any CPU + {F00B137A-C187-4C33-A37B-22AD40B71600}.Debug|x86.Build.0 = Debug|Any CPU {F00B137A-C187-4C33-A37B-22AD40B71600}.Release|Any CPU.ActiveCfg = Release|Any CPU {F00B137A-C187-4C33-A37B-22AD40B71600}.Release|Any CPU.Build.0 = Release|Any CPU {F00B137A-C187-4C33-A37B-22AD40B71600}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {F00B137A-C187-4C33-A37B-22AD40B71600}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {F00B137A-C187-4C33-A37B-22AD40B71600}.Release|x86.ActiveCfg = Release|Any CPU - {F00B137A-C187-4C33-A37B-22AD40B71600}.Release|x86.Build.0 = Release|Any CPU {F00B137A-C187-4C33-A37B-22AD40B71600}.Release|x64.ActiveCfg = Release|Any CPU {F00B137A-C187-4C33-A37B-22AD40B71600}.Release|x64.Build.0 = Release|Any CPU + {F00B137A-C187-4C33-A37B-22AD40B71600}.Release|x86.ActiveCfg = Release|Any CPU + {F00B137A-C187-4C33-A37B-22AD40B71600}.Release|x86.Build.0 = Release|Any CPU {A040750D-3EFB-4580-BF29-1C46FE1B3E5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A040750D-3EFB-4580-BF29-1C46FE1B3E5B}.Debug|Any CPU.Build.0 = Debug|Any CPU {A040750D-3EFB-4580-BF29-1C46FE1B3E5B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {A040750D-3EFB-4580-BF29-1C46FE1B3E5B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {A040750D-3EFB-4580-BF29-1C46FE1B3E5B}.Debug|x86.ActiveCfg = Debug|Any CPU - {A040750D-3EFB-4580-BF29-1C46FE1B3E5B}.Debug|x86.Build.0 = Debug|Any CPU {A040750D-3EFB-4580-BF29-1C46FE1B3E5B}.Debug|x64.ActiveCfg = Debug|Any CPU {A040750D-3EFB-4580-BF29-1C46FE1B3E5B}.Debug|x64.Build.0 = Debug|Any CPU + {A040750D-3EFB-4580-BF29-1C46FE1B3E5B}.Debug|x86.ActiveCfg = Debug|Any CPU + {A040750D-3EFB-4580-BF29-1C46FE1B3E5B}.Debug|x86.Build.0 = Debug|Any CPU {A040750D-3EFB-4580-BF29-1C46FE1B3E5B}.Release|Any CPU.ActiveCfg = Release|Any CPU {A040750D-3EFB-4580-BF29-1C46FE1B3E5B}.Release|Any CPU.Build.0 = Release|Any CPU {A040750D-3EFB-4580-BF29-1C46FE1B3E5B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {A040750D-3EFB-4580-BF29-1C46FE1B3E5B}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {A040750D-3EFB-4580-BF29-1C46FE1B3E5B}.Release|x86.ActiveCfg = Release|Any CPU - {A040750D-3EFB-4580-BF29-1C46FE1B3E5B}.Release|x86.Build.0 = Release|Any CPU {A040750D-3EFB-4580-BF29-1C46FE1B3E5B}.Release|x64.ActiveCfg = Release|Any CPU {A040750D-3EFB-4580-BF29-1C46FE1B3E5B}.Release|x64.Build.0 = Release|Any CPU + {A040750D-3EFB-4580-BF29-1C46FE1B3E5B}.Release|x86.ActiveCfg = Release|Any CPU + {A040750D-3EFB-4580-BF29-1C46FE1B3E5B}.Release|x86.Build.0 = Release|Any CPU {283D7ACD-50D9-4B36-93E0-E6AF3732456C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {283D7ACD-50D9-4B36-93E0-E6AF3732456C}.Debug|Any CPU.Build.0 = Debug|Any CPU {283D7ACD-50D9-4B36-93E0-E6AF3732456C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {283D7ACD-50D9-4B36-93E0-E6AF3732456C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {283D7ACD-50D9-4B36-93E0-E6AF3732456C}.Debug|x86.ActiveCfg = Debug|Any CPU - {283D7ACD-50D9-4B36-93E0-E6AF3732456C}.Debug|x86.Build.0 = Debug|Any CPU {283D7ACD-50D9-4B36-93E0-E6AF3732456C}.Debug|x64.ActiveCfg = Debug|Any CPU {283D7ACD-50D9-4B36-93E0-E6AF3732456C}.Debug|x64.Build.0 = Debug|Any CPU + {283D7ACD-50D9-4B36-93E0-E6AF3732456C}.Debug|x86.ActiveCfg = Debug|Any CPU + {283D7ACD-50D9-4B36-93E0-E6AF3732456C}.Debug|x86.Build.0 = Debug|Any CPU {283D7ACD-50D9-4B36-93E0-E6AF3732456C}.Release|Any CPU.ActiveCfg = Release|Any CPU {283D7ACD-50D9-4B36-93E0-E6AF3732456C}.Release|Any CPU.Build.0 = Release|Any CPU {283D7ACD-50D9-4B36-93E0-E6AF3732456C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {283D7ACD-50D9-4B36-93E0-E6AF3732456C}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {283D7ACD-50D9-4B36-93E0-E6AF3732456C}.Release|x86.ActiveCfg = Release|Any CPU - {283D7ACD-50D9-4B36-93E0-E6AF3732456C}.Release|x86.Build.0 = Release|Any CPU {283D7ACD-50D9-4B36-93E0-E6AF3732456C}.Release|x64.ActiveCfg = Release|Any CPU {283D7ACD-50D9-4B36-93E0-E6AF3732456C}.Release|x64.Build.0 = Release|Any CPU + {283D7ACD-50D9-4B36-93E0-E6AF3732456C}.Release|x86.ActiveCfg = Release|Any CPU + {283D7ACD-50D9-4B36-93E0-E6AF3732456C}.Release|x86.Build.0 = Release|Any CPU {097CB927-EC20-413A-85C9-61E6380814CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {097CB927-EC20-413A-85C9-61E6380814CA}.Debug|Any CPU.Build.0 = Debug|Any CPU {097CB927-EC20-413A-85C9-61E6380814CA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {097CB927-EC20-413A-85C9-61E6380814CA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {097CB927-EC20-413A-85C9-61E6380814CA}.Debug|x86.ActiveCfg = Debug|Any CPU - {097CB927-EC20-413A-85C9-61E6380814CA}.Debug|x86.Build.0 = Debug|Any CPU {097CB927-EC20-413A-85C9-61E6380814CA}.Debug|x64.ActiveCfg = Debug|Any CPU {097CB927-EC20-413A-85C9-61E6380814CA}.Debug|x64.Build.0 = Debug|Any CPU + {097CB927-EC20-413A-85C9-61E6380814CA}.Debug|x86.ActiveCfg = Debug|Any CPU + {097CB927-EC20-413A-85C9-61E6380814CA}.Debug|x86.Build.0 = Debug|Any CPU {097CB927-EC20-413A-85C9-61E6380814CA}.Release|Any CPU.ActiveCfg = Release|Any CPU {097CB927-EC20-413A-85C9-61E6380814CA}.Release|Any CPU.Build.0 = Release|Any CPU {097CB927-EC20-413A-85C9-61E6380814CA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {097CB927-EC20-413A-85C9-61E6380814CA}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {097CB927-EC20-413A-85C9-61E6380814CA}.Release|x86.ActiveCfg = Release|Any CPU - {097CB927-EC20-413A-85C9-61E6380814CA}.Release|x86.Build.0 = Release|Any CPU {097CB927-EC20-413A-85C9-61E6380814CA}.Release|x64.ActiveCfg = Release|Any CPU {097CB927-EC20-413A-85C9-61E6380814CA}.Release|x64.Build.0 = Release|Any CPU + {097CB927-EC20-413A-85C9-61E6380814CA}.Release|x86.ActiveCfg = Release|Any CPU + {097CB927-EC20-413A-85C9-61E6380814CA}.Release|x86.Build.0 = Release|Any CPU {4469AEE3-B460-4948-A0A5-B9480EE70EA4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4469AEE3-B460-4948-A0A5-B9480EE70EA4}.Debug|Any CPU.Build.0 = Debug|Any CPU {4469AEE3-B460-4948-A0A5-B9480EE70EA4}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {4469AEE3-B460-4948-A0A5-B9480EE70EA4}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {4469AEE3-B460-4948-A0A5-B9480EE70EA4}.Debug|x86.ActiveCfg = Debug|Any CPU - {4469AEE3-B460-4948-A0A5-B9480EE70EA4}.Debug|x86.Build.0 = Debug|Any CPU {4469AEE3-B460-4948-A0A5-B9480EE70EA4}.Debug|x64.ActiveCfg = Debug|Any CPU {4469AEE3-B460-4948-A0A5-B9480EE70EA4}.Debug|x64.Build.0 = Debug|Any CPU + {4469AEE3-B460-4948-A0A5-B9480EE70EA4}.Debug|x86.ActiveCfg = Debug|Any CPU + {4469AEE3-B460-4948-A0A5-B9480EE70EA4}.Debug|x86.Build.0 = Debug|Any CPU {4469AEE3-B460-4948-A0A5-B9480EE70EA4}.Release|Any CPU.ActiveCfg = Release|Any CPU {4469AEE3-B460-4948-A0A5-B9480EE70EA4}.Release|Any CPU.Build.0 = Release|Any CPU {4469AEE3-B460-4948-A0A5-B9480EE70EA4}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {4469AEE3-B460-4948-A0A5-B9480EE70EA4}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {4469AEE3-B460-4948-A0A5-B9480EE70EA4}.Release|x86.ActiveCfg = Release|Any CPU - {4469AEE3-B460-4948-A0A5-B9480EE70EA4}.Release|x86.Build.0 = Release|Any CPU {4469AEE3-B460-4948-A0A5-B9480EE70EA4}.Release|x64.ActiveCfg = Release|Any CPU {4469AEE3-B460-4948-A0A5-B9480EE70EA4}.Release|x64.Build.0 = Release|Any CPU + {4469AEE3-B460-4948-A0A5-B9480EE70EA4}.Release|x86.ActiveCfg = Release|Any CPU + {4469AEE3-B460-4948-A0A5-B9480EE70EA4}.Release|x86.Build.0 = Release|Any CPU {28C2529C-EF15-4C86-A2CC-9EE326423A77}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {28C2529C-EF15-4C86-A2CC-9EE326423A77}.Debug|Any CPU.Build.0 = Debug|Any CPU {28C2529C-EF15-4C86-A2CC-9EE326423A77}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {28C2529C-EF15-4C86-A2CC-9EE326423A77}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {28C2529C-EF15-4C86-A2CC-9EE326423A77}.Debug|x86.ActiveCfg = Debug|Any CPU - {28C2529C-EF15-4C86-A2CC-9EE326423A77}.Debug|x86.Build.0 = Debug|Any CPU {28C2529C-EF15-4C86-A2CC-9EE326423A77}.Debug|x64.ActiveCfg = Debug|Any CPU {28C2529C-EF15-4C86-A2CC-9EE326423A77}.Debug|x64.Build.0 = Debug|Any CPU + {28C2529C-EF15-4C86-A2CC-9EE326423A77}.Debug|x86.ActiveCfg = Debug|Any CPU + {28C2529C-EF15-4C86-A2CC-9EE326423A77}.Debug|x86.Build.0 = Debug|Any CPU {28C2529C-EF15-4C86-A2CC-9EE326423A77}.Release|Any CPU.ActiveCfg = Release|Any CPU {28C2529C-EF15-4C86-A2CC-9EE326423A77}.Release|Any CPU.Build.0 = Release|Any CPU {28C2529C-EF15-4C86-A2CC-9EE326423A77}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {28C2529C-EF15-4C86-A2CC-9EE326423A77}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {28C2529C-EF15-4C86-A2CC-9EE326423A77}.Release|x86.ActiveCfg = Release|Any CPU - {28C2529C-EF15-4C86-A2CC-9EE326423A77}.Release|x86.Build.0 = Release|Any CPU {28C2529C-EF15-4C86-A2CC-9EE326423A77}.Release|x64.ActiveCfg = Release|Any CPU {28C2529C-EF15-4C86-A2CC-9EE326423A77}.Release|x64.Build.0 = Release|Any CPU + {28C2529C-EF15-4C86-A2CC-9EE326423A77}.Release|x86.ActiveCfg = Release|Any CPU + {28C2529C-EF15-4C86-A2CC-9EE326423A77}.Release|x86.Build.0 = Release|Any CPU {3779A9C1-2E47-4CB4-B569-75752CA8C419}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3779A9C1-2E47-4CB4-B569-75752CA8C419}.Debug|Any CPU.Build.0 = Debug|Any CPU {3779A9C1-2E47-4CB4-B569-75752CA8C419}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {3779A9C1-2E47-4CB4-B569-75752CA8C419}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {3779A9C1-2E47-4CB4-B569-75752CA8C419}.Debug|x86.ActiveCfg = Debug|Any CPU - {3779A9C1-2E47-4CB4-B569-75752CA8C419}.Debug|x86.Build.0 = Debug|Any CPU {3779A9C1-2E47-4CB4-B569-75752CA8C419}.Debug|x64.ActiveCfg = Debug|Any CPU {3779A9C1-2E47-4CB4-B569-75752CA8C419}.Debug|x64.Build.0 = Debug|Any CPU + {3779A9C1-2E47-4CB4-B569-75752CA8C419}.Debug|x86.ActiveCfg = Debug|Any CPU + {3779A9C1-2E47-4CB4-B569-75752CA8C419}.Debug|x86.Build.0 = Debug|Any CPU {3779A9C1-2E47-4CB4-B569-75752CA8C419}.Release|Any CPU.ActiveCfg = Release|Any CPU {3779A9C1-2E47-4CB4-B569-75752CA8C419}.Release|Any CPU.Build.0 = Release|Any CPU {3779A9C1-2E47-4CB4-B569-75752CA8C419}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {3779A9C1-2E47-4CB4-B569-75752CA8C419}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {3779A9C1-2E47-4CB4-B569-75752CA8C419}.Release|x86.ActiveCfg = Release|Any CPU - {3779A9C1-2E47-4CB4-B569-75752CA8C419}.Release|x86.Build.0 = Release|Any CPU {3779A9C1-2E47-4CB4-B569-75752CA8C419}.Release|x64.ActiveCfg = Release|Any CPU {3779A9C1-2E47-4CB4-B569-75752CA8C419}.Release|x64.Build.0 = Release|Any CPU + {3779A9C1-2E47-4CB4-B569-75752CA8C419}.Release|x86.ActiveCfg = Release|Any CPU + {3779A9C1-2E47-4CB4-B569-75752CA8C419}.Release|x86.Build.0 = Release|Any CPU {FADD3869-F9A1-41EA-8DB2-04AFB61A6635}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FADD3869-F9A1-41EA-8DB2-04AFB61A6635}.Debug|Any CPU.Build.0 = Debug|Any CPU {FADD3869-F9A1-41EA-8DB2-04AFB61A6635}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {FADD3869-F9A1-41EA-8DB2-04AFB61A6635}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {FADD3869-F9A1-41EA-8DB2-04AFB61A6635}.Debug|x86.ActiveCfg = Debug|Any CPU - {FADD3869-F9A1-41EA-8DB2-04AFB61A6635}.Debug|x86.Build.0 = Debug|Any CPU {FADD3869-F9A1-41EA-8DB2-04AFB61A6635}.Debug|x64.ActiveCfg = Debug|Any CPU {FADD3869-F9A1-41EA-8DB2-04AFB61A6635}.Debug|x64.Build.0 = Debug|Any CPU + {FADD3869-F9A1-41EA-8DB2-04AFB61A6635}.Debug|x86.ActiveCfg = Debug|Any CPU + {FADD3869-F9A1-41EA-8DB2-04AFB61A6635}.Debug|x86.Build.0 = Debug|Any CPU {FADD3869-F9A1-41EA-8DB2-04AFB61A6635}.Release|Any CPU.ActiveCfg = Release|Any CPU {FADD3869-F9A1-41EA-8DB2-04AFB61A6635}.Release|Any CPU.Build.0 = Release|Any CPU {FADD3869-F9A1-41EA-8DB2-04AFB61A6635}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {FADD3869-F9A1-41EA-8DB2-04AFB61A6635}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {FADD3869-F9A1-41EA-8DB2-04AFB61A6635}.Release|x86.ActiveCfg = Release|Any CPU - {FADD3869-F9A1-41EA-8DB2-04AFB61A6635}.Release|x86.Build.0 = Release|Any CPU {FADD3869-F9A1-41EA-8DB2-04AFB61A6635}.Release|x64.ActiveCfg = Release|Any CPU {FADD3869-F9A1-41EA-8DB2-04AFB61A6635}.Release|x64.Build.0 = Release|Any CPU + {FADD3869-F9A1-41EA-8DB2-04AFB61A6635}.Release|x86.ActiveCfg = Release|Any CPU + {FADD3869-F9A1-41EA-8DB2-04AFB61A6635}.Release|x86.Build.0 = Release|Any CPU {50A08BF4-7B24-42EF-B1EA-3CB9546EB8AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {50A08BF4-7B24-42EF-B1EA-3CB9546EB8AE}.Debug|Any CPU.Build.0 = Debug|Any CPU {50A08BF4-7B24-42EF-B1EA-3CB9546EB8AE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {50A08BF4-7B24-42EF-B1EA-3CB9546EB8AE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {50A08BF4-7B24-42EF-B1EA-3CB9546EB8AE}.Debug|x86.ActiveCfg = Debug|Any CPU - {50A08BF4-7B24-42EF-B1EA-3CB9546EB8AE}.Debug|x86.Build.0 = Debug|Any CPU {50A08BF4-7B24-42EF-B1EA-3CB9546EB8AE}.Debug|x64.ActiveCfg = Debug|Any CPU {50A08BF4-7B24-42EF-B1EA-3CB9546EB8AE}.Debug|x64.Build.0 = Debug|Any CPU + {50A08BF4-7B24-42EF-B1EA-3CB9546EB8AE}.Debug|x86.ActiveCfg = Debug|Any CPU + {50A08BF4-7B24-42EF-B1EA-3CB9546EB8AE}.Debug|x86.Build.0 = Debug|Any CPU {50A08BF4-7B24-42EF-B1EA-3CB9546EB8AE}.Release|Any CPU.ActiveCfg = Release|Any CPU {50A08BF4-7B24-42EF-B1EA-3CB9546EB8AE}.Release|Any CPU.Build.0 = Release|Any CPU {50A08BF4-7B24-42EF-B1EA-3CB9546EB8AE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {50A08BF4-7B24-42EF-B1EA-3CB9546EB8AE}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {50A08BF4-7B24-42EF-B1EA-3CB9546EB8AE}.Release|x86.ActiveCfg = Release|Any CPU - {50A08BF4-7B24-42EF-B1EA-3CB9546EB8AE}.Release|x86.Build.0 = Release|Any CPU {50A08BF4-7B24-42EF-B1EA-3CB9546EB8AE}.Release|x64.ActiveCfg = Release|Any CPU {50A08BF4-7B24-42EF-B1EA-3CB9546EB8AE}.Release|x64.Build.0 = Release|Any CPU + {50A08BF4-7B24-42EF-B1EA-3CB9546EB8AE}.Release|x86.ActiveCfg = Release|Any CPU + {50A08BF4-7B24-42EF-B1EA-3CB9546EB8AE}.Release|x86.Build.0 = Release|Any CPU {85AB9510-93CC-4D10-A179-A30654765E59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {85AB9510-93CC-4D10-A179-A30654765E59}.Debug|Any CPU.Build.0 = Debug|Any CPU {85AB9510-93CC-4D10-A179-A30654765E59}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {85AB9510-93CC-4D10-A179-A30654765E59}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {85AB9510-93CC-4D10-A179-A30654765E59}.Debug|x86.ActiveCfg = Debug|Any CPU - {85AB9510-93CC-4D10-A179-A30654765E59}.Debug|x86.Build.0 = Debug|Any CPU {85AB9510-93CC-4D10-A179-A30654765E59}.Debug|x64.ActiveCfg = Debug|Any CPU {85AB9510-93CC-4D10-A179-A30654765E59}.Debug|x64.Build.0 = Debug|Any CPU + {85AB9510-93CC-4D10-A179-A30654765E59}.Debug|x86.ActiveCfg = Debug|Any CPU + {85AB9510-93CC-4D10-A179-A30654765E59}.Debug|x86.Build.0 = Debug|Any CPU {85AB9510-93CC-4D10-A179-A30654765E59}.Release|Any CPU.ActiveCfg = Release|Any CPU {85AB9510-93CC-4D10-A179-A30654765E59}.Release|Any CPU.Build.0 = Release|Any CPU {85AB9510-93CC-4D10-A179-A30654765E59}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {85AB9510-93CC-4D10-A179-A30654765E59}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {85AB9510-93CC-4D10-A179-A30654765E59}.Release|x86.ActiveCfg = Release|Any CPU - {85AB9510-93CC-4D10-A179-A30654765E59}.Release|x86.Build.0 = Release|Any CPU {85AB9510-93CC-4D10-A179-A30654765E59}.Release|x64.ActiveCfg = Release|Any CPU {85AB9510-93CC-4D10-A179-A30654765E59}.Release|x64.Build.0 = Release|Any CPU + {85AB9510-93CC-4D10-A179-A30654765E59}.Release|x86.ActiveCfg = Release|Any CPU + {85AB9510-93CC-4D10-A179-A30654765E59}.Release|x86.Build.0 = Release|Any CPU {5C27F959-455A-408C-8248-D7EC848B633E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5C27F959-455A-408C-8248-D7EC848B633E}.Debug|Any CPU.Build.0 = Debug|Any CPU {5C27F959-455A-408C-8248-D7EC848B633E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {5C27F959-455A-408C-8248-D7EC848B633E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {5C27F959-455A-408C-8248-D7EC848B633E}.Debug|x86.ActiveCfg = Debug|Any CPU - {5C27F959-455A-408C-8248-D7EC848B633E}.Debug|x86.Build.0 = Debug|Any CPU {5C27F959-455A-408C-8248-D7EC848B633E}.Debug|x64.ActiveCfg = Debug|Any CPU {5C27F959-455A-408C-8248-D7EC848B633E}.Debug|x64.Build.0 = Debug|Any CPU + {5C27F959-455A-408C-8248-D7EC848B633E}.Debug|x86.ActiveCfg = Debug|Any CPU + {5C27F959-455A-408C-8248-D7EC848B633E}.Debug|x86.Build.0 = Debug|Any CPU {5C27F959-455A-408C-8248-D7EC848B633E}.Release|Any CPU.ActiveCfg = Release|Any CPU {5C27F959-455A-408C-8248-D7EC848B633E}.Release|Any CPU.Build.0 = Release|Any CPU {5C27F959-455A-408C-8248-D7EC848B633E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {5C27F959-455A-408C-8248-D7EC848B633E}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {5C27F959-455A-408C-8248-D7EC848B633E}.Release|x86.ActiveCfg = Release|Any CPU - {5C27F959-455A-408C-8248-D7EC848B633E}.Release|x86.Build.0 = Release|Any CPU {5C27F959-455A-408C-8248-D7EC848B633E}.Release|x64.ActiveCfg = Release|Any CPU {5C27F959-455A-408C-8248-D7EC848B633E}.Release|x64.Build.0 = Release|Any CPU + {5C27F959-455A-408C-8248-D7EC848B633E}.Release|x86.ActiveCfg = Release|Any CPU + {5C27F959-455A-408C-8248-D7EC848B633E}.Release|x86.Build.0 = Release|Any CPU {F8A3AE7E-B232-4794-B23F-772F48D8636F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F8A3AE7E-B232-4794-B23F-772F48D8636F}.Debug|Any CPU.Build.0 = Debug|Any CPU {F8A3AE7E-B232-4794-B23F-772F48D8636F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {F8A3AE7E-B232-4794-B23F-772F48D8636F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {F8A3AE7E-B232-4794-B23F-772F48D8636F}.Debug|x86.ActiveCfg = Debug|Any CPU - {F8A3AE7E-B232-4794-B23F-772F48D8636F}.Debug|x86.Build.0 = Debug|Any CPU {F8A3AE7E-B232-4794-B23F-772F48D8636F}.Debug|x64.ActiveCfg = Debug|Any CPU {F8A3AE7E-B232-4794-B23F-772F48D8636F}.Debug|x64.Build.0 = Debug|Any CPU + {F8A3AE7E-B232-4794-B23F-772F48D8636F}.Debug|x86.ActiveCfg = Debug|Any CPU + {F8A3AE7E-B232-4794-B23F-772F48D8636F}.Debug|x86.Build.0 = Debug|Any CPU {F8A3AE7E-B232-4794-B23F-772F48D8636F}.Release|Any CPU.ActiveCfg = Release|Any CPU {F8A3AE7E-B232-4794-B23F-772F48D8636F}.Release|Any CPU.Build.0 = Release|Any CPU {F8A3AE7E-B232-4794-B23F-772F48D8636F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {F8A3AE7E-B232-4794-B23F-772F48D8636F}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {F8A3AE7E-B232-4794-B23F-772F48D8636F}.Release|x86.ActiveCfg = Release|Any CPU - {F8A3AE7E-B232-4794-B23F-772F48D8636F}.Release|x86.Build.0 = Release|Any CPU {F8A3AE7E-B232-4794-B23F-772F48D8636F}.Release|x64.ActiveCfg = Release|Any CPU {F8A3AE7E-B232-4794-B23F-772F48D8636F}.Release|x64.Build.0 = Release|Any CPU + {F8A3AE7E-B232-4794-B23F-772F48D8636F}.Release|x86.ActiveCfg = Release|Any CPU + {F8A3AE7E-B232-4794-B23F-772F48D8636F}.Release|x86.Build.0 = Release|Any CPU {6193C1EA-522A-427F-918A-8127717AF8D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6193C1EA-522A-427F-918A-8127717AF8D4}.Debug|Any CPU.Build.0 = Debug|Any CPU {6193C1EA-522A-427F-918A-8127717AF8D4}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {6193C1EA-522A-427F-918A-8127717AF8D4}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {6193C1EA-522A-427F-918A-8127717AF8D4}.Debug|x86.ActiveCfg = Debug|Any CPU - {6193C1EA-522A-427F-918A-8127717AF8D4}.Debug|x86.Build.0 = Debug|Any CPU {6193C1EA-522A-427F-918A-8127717AF8D4}.Debug|x64.ActiveCfg = Debug|Any CPU {6193C1EA-522A-427F-918A-8127717AF8D4}.Debug|x64.Build.0 = Debug|Any CPU + {6193C1EA-522A-427F-918A-8127717AF8D4}.Debug|x86.ActiveCfg = Debug|Any CPU + {6193C1EA-522A-427F-918A-8127717AF8D4}.Debug|x86.Build.0 = Debug|Any CPU {6193C1EA-522A-427F-918A-8127717AF8D4}.Release|Any CPU.ActiveCfg = Release|Any CPU {6193C1EA-522A-427F-918A-8127717AF8D4}.Release|Any CPU.Build.0 = Release|Any CPU {6193C1EA-522A-427F-918A-8127717AF8D4}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {6193C1EA-522A-427F-918A-8127717AF8D4}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {6193C1EA-522A-427F-918A-8127717AF8D4}.Release|x86.ActiveCfg = Release|Any CPU - {6193C1EA-522A-427F-918A-8127717AF8D4}.Release|x86.Build.0 = Release|Any CPU {6193C1EA-522A-427F-918A-8127717AF8D4}.Release|x64.ActiveCfg = Release|Any CPU {6193C1EA-522A-427F-918A-8127717AF8D4}.Release|x64.Build.0 = Release|Any CPU + {6193C1EA-522A-427F-918A-8127717AF8D4}.Release|x86.ActiveCfg = Release|Any CPU + {6193C1EA-522A-427F-918A-8127717AF8D4}.Release|x86.Build.0 = Release|Any CPU {5D57A811-A3C2-42BA-A086-A5BFE8B590C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5D57A811-A3C2-42BA-A086-A5BFE8B590C7}.Debug|Any CPU.Build.0 = Debug|Any CPU {5D57A811-A3C2-42BA-A086-A5BFE8B590C7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {5D57A811-A3C2-42BA-A086-A5BFE8B590C7}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {5D57A811-A3C2-42BA-A086-A5BFE8B590C7}.Debug|x86.ActiveCfg = Debug|Any CPU - {5D57A811-A3C2-42BA-A086-A5BFE8B590C7}.Debug|x86.Build.0 = Debug|Any CPU {5D57A811-A3C2-42BA-A086-A5BFE8B590C7}.Debug|x64.ActiveCfg = Debug|Any CPU {5D57A811-A3C2-42BA-A086-A5BFE8B590C7}.Debug|x64.Build.0 = Debug|Any CPU + {5D57A811-A3C2-42BA-A086-A5BFE8B590C7}.Debug|x86.ActiveCfg = Debug|Any CPU + {5D57A811-A3C2-42BA-A086-A5BFE8B590C7}.Debug|x86.Build.0 = Debug|Any CPU {5D57A811-A3C2-42BA-A086-A5BFE8B590C7}.Release|Any CPU.ActiveCfg = Release|Any CPU {5D57A811-A3C2-42BA-A086-A5BFE8B590C7}.Release|Any CPU.Build.0 = Release|Any CPU {5D57A811-A3C2-42BA-A086-A5BFE8B590C7}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {5D57A811-A3C2-42BA-A086-A5BFE8B590C7}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {5D57A811-A3C2-42BA-A086-A5BFE8B590C7}.Release|x86.ActiveCfg = Release|Any CPU - {5D57A811-A3C2-42BA-A086-A5BFE8B590C7}.Release|x86.Build.0 = Release|Any CPU {5D57A811-A3C2-42BA-A086-A5BFE8B590C7}.Release|x64.ActiveCfg = Release|Any CPU {5D57A811-A3C2-42BA-A086-A5BFE8B590C7}.Release|x64.Build.0 = Release|Any CPU + {5D57A811-A3C2-42BA-A086-A5BFE8B590C7}.Release|x86.ActiveCfg = Release|Any CPU + {5D57A811-A3C2-42BA-A086-A5BFE8B590C7}.Release|x86.Build.0 = Release|Any CPU {9D7DFB30-1E56-46C7-A56E-2FBC6C58EB96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9D7DFB30-1E56-46C7-A56E-2FBC6C58EB96}.Debug|Any CPU.Build.0 = Debug|Any CPU {9D7DFB30-1E56-46C7-A56E-2FBC6C58EB96}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {9D7DFB30-1E56-46C7-A56E-2FBC6C58EB96}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {9D7DFB30-1E56-46C7-A56E-2FBC6C58EB96}.Debug|x86.ActiveCfg = Debug|Any CPU - {9D7DFB30-1E56-46C7-A56E-2FBC6C58EB96}.Debug|x86.Build.0 = Debug|Any CPU {9D7DFB30-1E56-46C7-A56E-2FBC6C58EB96}.Debug|x64.ActiveCfg = Debug|Any CPU {9D7DFB30-1E56-46C7-A56E-2FBC6C58EB96}.Debug|x64.Build.0 = Debug|Any CPU + {9D7DFB30-1E56-46C7-A56E-2FBC6C58EB96}.Debug|x86.ActiveCfg = Debug|Any CPU + {9D7DFB30-1E56-46C7-A56E-2FBC6C58EB96}.Debug|x86.Build.0 = Debug|Any CPU {9D7DFB30-1E56-46C7-A56E-2FBC6C58EB96}.Release|Any CPU.ActiveCfg = Release|Any CPU {9D7DFB30-1E56-46C7-A56E-2FBC6C58EB96}.Release|Any CPU.Build.0 = Release|Any CPU {9D7DFB30-1E56-46C7-A56E-2FBC6C58EB96}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {9D7DFB30-1E56-46C7-A56E-2FBC6C58EB96}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {9D7DFB30-1E56-46C7-A56E-2FBC6C58EB96}.Release|x86.ActiveCfg = Release|Any CPU - {9D7DFB30-1E56-46C7-A56E-2FBC6C58EB96}.Release|x86.Build.0 = Release|Any CPU {9D7DFB30-1E56-46C7-A56E-2FBC6C58EB96}.Release|x64.ActiveCfg = Release|Any CPU {9D7DFB30-1E56-46C7-A56E-2FBC6C58EB96}.Release|x64.Build.0 = Release|Any CPU + {9D7DFB30-1E56-46C7-A56E-2FBC6C58EB96}.Release|x86.ActiveCfg = Release|Any CPU + {9D7DFB30-1E56-46C7-A56E-2FBC6C58EB96}.Release|x86.Build.0 = Release|Any CPU {022AD920-4E8D-4370-9C6D-CA4D8DA3DB6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {022AD920-4E8D-4370-9C6D-CA4D8DA3DB6F}.Debug|Any CPU.Build.0 = Debug|Any CPU {022AD920-4E8D-4370-9C6D-CA4D8DA3DB6F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {022AD920-4E8D-4370-9C6D-CA4D8DA3DB6F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {022AD920-4E8D-4370-9C6D-CA4D8DA3DB6F}.Debug|x86.ActiveCfg = Debug|Any CPU - {022AD920-4E8D-4370-9C6D-CA4D8DA3DB6F}.Debug|x86.Build.0 = Debug|Any CPU {022AD920-4E8D-4370-9C6D-CA4D8DA3DB6F}.Debug|x64.ActiveCfg = Debug|Any CPU {022AD920-4E8D-4370-9C6D-CA4D8DA3DB6F}.Debug|x64.Build.0 = Debug|Any CPU + {022AD920-4E8D-4370-9C6D-CA4D8DA3DB6F}.Debug|x86.ActiveCfg = Debug|Any CPU + {022AD920-4E8D-4370-9C6D-CA4D8DA3DB6F}.Debug|x86.Build.0 = Debug|Any CPU {022AD920-4E8D-4370-9C6D-CA4D8DA3DB6F}.Release|Any CPU.ActiveCfg = Release|Any CPU {022AD920-4E8D-4370-9C6D-CA4D8DA3DB6F}.Release|Any CPU.Build.0 = Release|Any CPU {022AD920-4E8D-4370-9C6D-CA4D8DA3DB6F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {022AD920-4E8D-4370-9C6D-CA4D8DA3DB6F}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {022AD920-4E8D-4370-9C6D-CA4D8DA3DB6F}.Release|x86.ActiveCfg = Release|Any CPU - {022AD920-4E8D-4370-9C6D-CA4D8DA3DB6F}.Release|x86.Build.0 = Release|Any CPU {022AD920-4E8D-4370-9C6D-CA4D8DA3DB6F}.Release|x64.ActiveCfg = Release|Any CPU {022AD920-4E8D-4370-9C6D-CA4D8DA3DB6F}.Release|x64.Build.0 = Release|Any CPU + {022AD920-4E8D-4370-9C6D-CA4D8DA3DB6F}.Release|x86.ActiveCfg = Release|Any CPU + {022AD920-4E8D-4370-9C6D-CA4D8DA3DB6F}.Release|x86.Build.0 = Release|Any CPU {517D302F-46FC-4CDF-A190-D1E8A4F2E082}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {517D302F-46FC-4CDF-A190-D1E8A4F2E082}.Debug|Any CPU.Build.0 = Debug|Any CPU {517D302F-46FC-4CDF-A190-D1E8A4F2E082}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {517D302F-46FC-4CDF-A190-D1E8A4F2E082}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {517D302F-46FC-4CDF-A190-D1E8A4F2E082}.Debug|x86.ActiveCfg = Debug|Any CPU - {517D302F-46FC-4CDF-A190-D1E8A4F2E082}.Debug|x86.Build.0 = Debug|Any CPU {517D302F-46FC-4CDF-A190-D1E8A4F2E082}.Debug|x64.ActiveCfg = Debug|Any CPU {517D302F-46FC-4CDF-A190-D1E8A4F2E082}.Debug|x64.Build.0 = Debug|Any CPU + {517D302F-46FC-4CDF-A190-D1E8A4F2E082}.Debug|x86.ActiveCfg = Debug|Any CPU + {517D302F-46FC-4CDF-A190-D1E8A4F2E082}.Debug|x86.Build.0 = Debug|Any CPU {517D302F-46FC-4CDF-A190-D1E8A4F2E082}.Release|Any CPU.ActiveCfg = Release|Any CPU {517D302F-46FC-4CDF-A190-D1E8A4F2E082}.Release|Any CPU.Build.0 = Release|Any CPU {517D302F-46FC-4CDF-A190-D1E8A4F2E082}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {517D302F-46FC-4CDF-A190-D1E8A4F2E082}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {517D302F-46FC-4CDF-A190-D1E8A4F2E082}.Release|x86.ActiveCfg = Release|Any CPU - {517D302F-46FC-4CDF-A190-D1E8A4F2E082}.Release|x86.Build.0 = Release|Any CPU {517D302F-46FC-4CDF-A190-D1E8A4F2E082}.Release|x64.ActiveCfg = Release|Any CPU {517D302F-46FC-4CDF-A190-D1E8A4F2E082}.Release|x64.Build.0 = Release|Any CPU + {517D302F-46FC-4CDF-A190-D1E8A4F2E082}.Release|x86.ActiveCfg = Release|Any CPU + {517D302F-46FC-4CDF-A190-D1E8A4F2E082}.Release|x86.Build.0 = Release|Any CPU {4295A571-4653-43FD-971D-6C8F6E1B301B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4295A571-4653-43FD-971D-6C8F6E1B301B}.Debug|Any CPU.Build.0 = Debug|Any CPU {4295A571-4653-43FD-971D-6C8F6E1B301B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {4295A571-4653-43FD-971D-6C8F6E1B301B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {4295A571-4653-43FD-971D-6C8F6E1B301B}.Debug|x86.ActiveCfg = Debug|Any CPU - {4295A571-4653-43FD-971D-6C8F6E1B301B}.Debug|x86.Build.0 = Debug|Any CPU {4295A571-4653-43FD-971D-6C8F6E1B301B}.Debug|x64.ActiveCfg = Debug|Any CPU {4295A571-4653-43FD-971D-6C8F6E1B301B}.Debug|x64.Build.0 = Debug|Any CPU + {4295A571-4653-43FD-971D-6C8F6E1B301B}.Debug|x86.ActiveCfg = Debug|Any CPU + {4295A571-4653-43FD-971D-6C8F6E1B301B}.Debug|x86.Build.0 = Debug|Any CPU {4295A571-4653-43FD-971D-6C8F6E1B301B}.Release|Any CPU.ActiveCfg = Release|Any CPU {4295A571-4653-43FD-971D-6C8F6E1B301B}.Release|Any CPU.Build.0 = Release|Any CPU {4295A571-4653-43FD-971D-6C8F6E1B301B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {4295A571-4653-43FD-971D-6C8F6E1B301B}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {4295A571-4653-43FD-971D-6C8F6E1B301B}.Release|x86.ActiveCfg = Release|Any CPU - {4295A571-4653-43FD-971D-6C8F6E1B301B}.Release|x86.Build.0 = Release|Any CPU {4295A571-4653-43FD-971D-6C8F6E1B301B}.Release|x64.ActiveCfg = Release|Any CPU {4295A571-4653-43FD-971D-6C8F6E1B301B}.Release|x64.Build.0 = Release|Any CPU + {4295A571-4653-43FD-971D-6C8F6E1B301B}.Release|x86.ActiveCfg = Release|Any CPU + {4295A571-4653-43FD-971D-6C8F6E1B301B}.Release|x86.Build.0 = Release|Any CPU {34487FF5-FD63-4C64-9A33-9249B0C814AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {34487FF5-FD63-4C64-9A33-9249B0C814AA}.Debug|Any CPU.Build.0 = Debug|Any CPU {34487FF5-FD63-4C64-9A33-9249B0C814AA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {34487FF5-FD63-4C64-9A33-9249B0C814AA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {34487FF5-FD63-4C64-9A33-9249B0C814AA}.Debug|x86.ActiveCfg = Debug|Any CPU - {34487FF5-FD63-4C64-9A33-9249B0C814AA}.Debug|x86.Build.0 = Debug|Any CPU {34487FF5-FD63-4C64-9A33-9249B0C814AA}.Debug|x64.ActiveCfg = Debug|Any CPU {34487FF5-FD63-4C64-9A33-9249B0C814AA}.Debug|x64.Build.0 = Debug|Any CPU + {34487FF5-FD63-4C64-9A33-9249B0C814AA}.Debug|x86.ActiveCfg = Debug|Any CPU + {34487FF5-FD63-4C64-9A33-9249B0C814AA}.Debug|x86.Build.0 = Debug|Any CPU {34487FF5-FD63-4C64-9A33-9249B0C814AA}.Release|Any CPU.ActiveCfg = Release|Any CPU {34487FF5-FD63-4C64-9A33-9249B0C814AA}.Release|Any CPU.Build.0 = Release|Any CPU {34487FF5-FD63-4C64-9A33-9249B0C814AA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {34487FF5-FD63-4C64-9A33-9249B0C814AA}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {34487FF5-FD63-4C64-9A33-9249B0C814AA}.Release|x86.ActiveCfg = Release|Any CPU - {34487FF5-FD63-4C64-9A33-9249B0C814AA}.Release|x86.Build.0 = Release|Any CPU {34487FF5-FD63-4C64-9A33-9249B0C814AA}.Release|x64.ActiveCfg = Release|Any CPU {34487FF5-FD63-4C64-9A33-9249B0C814AA}.Release|x64.Build.0 = Release|Any CPU + {34487FF5-FD63-4C64-9A33-9249B0C814AA}.Release|x86.ActiveCfg = Release|Any CPU + {34487FF5-FD63-4C64-9A33-9249B0C814AA}.Release|x86.Build.0 = Release|Any CPU {9389F329-ED2B-45EB-B87F-E25304C82277}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9389F329-ED2B-45EB-B87F-E25304C82277}.Debug|Any CPU.Build.0 = Debug|Any CPU {9389F329-ED2B-45EB-B87F-E25304C82277}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {9389F329-ED2B-45EB-B87F-E25304C82277}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {9389F329-ED2B-45EB-B87F-E25304C82277}.Debug|x86.ActiveCfg = Debug|Any CPU - {9389F329-ED2B-45EB-B87F-E25304C82277}.Debug|x86.Build.0 = Debug|Any CPU {9389F329-ED2B-45EB-B87F-E25304C82277}.Debug|x64.ActiveCfg = Debug|Any CPU {9389F329-ED2B-45EB-B87F-E25304C82277}.Debug|x64.Build.0 = Debug|Any CPU + {9389F329-ED2B-45EB-B87F-E25304C82277}.Debug|x86.ActiveCfg = Debug|Any CPU + {9389F329-ED2B-45EB-B87F-E25304C82277}.Debug|x86.Build.0 = Debug|Any CPU {9389F329-ED2B-45EB-B87F-E25304C82277}.Release|Any CPU.ActiveCfg = Release|Any CPU {9389F329-ED2B-45EB-B87F-E25304C82277}.Release|Any CPU.Build.0 = Release|Any CPU {9389F329-ED2B-45EB-B87F-E25304C82277}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {9389F329-ED2B-45EB-B87F-E25304C82277}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {9389F329-ED2B-45EB-B87F-E25304C82277}.Release|x86.ActiveCfg = Release|Any CPU - {9389F329-ED2B-45EB-B87F-E25304C82277}.Release|x86.Build.0 = Release|Any CPU {9389F329-ED2B-45EB-B87F-E25304C82277}.Release|x64.ActiveCfg = Release|Any CPU {9389F329-ED2B-45EB-B87F-E25304C82277}.Release|x64.Build.0 = Release|Any CPU + {9389F329-ED2B-45EB-B87F-E25304C82277}.Release|x86.ActiveCfg = Release|Any CPU + {9389F329-ED2B-45EB-B87F-E25304C82277}.Release|x86.Build.0 = Release|Any CPU {EE92EF65-BBA8-4601-A4F6-84A695548BD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {EE92EF65-BBA8-4601-A4F6-84A695548BD3}.Debug|Any CPU.Build.0 = Debug|Any CPU {EE92EF65-BBA8-4601-A4F6-84A695548BD3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {EE92EF65-BBA8-4601-A4F6-84A695548BD3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {EE92EF65-BBA8-4601-A4F6-84A695548BD3}.Debug|x86.ActiveCfg = Debug|Any CPU - {EE92EF65-BBA8-4601-A4F6-84A695548BD3}.Debug|x86.Build.0 = Debug|Any CPU {EE92EF65-BBA8-4601-A4F6-84A695548BD3}.Debug|x64.ActiveCfg = Debug|Any CPU {EE92EF65-BBA8-4601-A4F6-84A695548BD3}.Debug|x64.Build.0 = Debug|Any CPU + {EE92EF65-BBA8-4601-A4F6-84A695548BD3}.Debug|x86.ActiveCfg = Debug|Any CPU + {EE92EF65-BBA8-4601-A4F6-84A695548BD3}.Debug|x86.Build.0 = Debug|Any CPU {EE92EF65-BBA8-4601-A4F6-84A695548BD3}.Release|Any CPU.ActiveCfg = Release|Any CPU {EE92EF65-BBA8-4601-A4F6-84A695548BD3}.Release|Any CPU.Build.0 = Release|Any CPU {EE92EF65-BBA8-4601-A4F6-84A695548BD3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {EE92EF65-BBA8-4601-A4F6-84A695548BD3}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {EE92EF65-BBA8-4601-A4F6-84A695548BD3}.Release|x86.ActiveCfg = Release|Any CPU - {EE92EF65-BBA8-4601-A4F6-84A695548BD3}.Release|x86.Build.0 = Release|Any CPU {EE92EF65-BBA8-4601-A4F6-84A695548BD3}.Release|x64.ActiveCfg = Release|Any CPU {EE92EF65-BBA8-4601-A4F6-84A695548BD3}.Release|x64.Build.0 = Release|Any CPU + {EE92EF65-BBA8-4601-A4F6-84A695548BD3}.Release|x86.ActiveCfg = Release|Any CPU + {EE92EF65-BBA8-4601-A4F6-84A695548BD3}.Release|x86.Build.0 = Release|Any CPU {E988767C-A8F0-4EF1-B3CA-1822500F18DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E988767C-A8F0-4EF1-B3CA-1822500F18DF}.Debug|Any CPU.Build.0 = Debug|Any CPU {E988767C-A8F0-4EF1-B3CA-1822500F18DF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {E988767C-A8F0-4EF1-B3CA-1822500F18DF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {E988767C-A8F0-4EF1-B3CA-1822500F18DF}.Debug|x86.ActiveCfg = Debug|Any CPU - {E988767C-A8F0-4EF1-B3CA-1822500F18DF}.Debug|x86.Build.0 = Debug|Any CPU {E988767C-A8F0-4EF1-B3CA-1822500F18DF}.Debug|x64.ActiveCfg = Debug|Any CPU {E988767C-A8F0-4EF1-B3CA-1822500F18DF}.Debug|x64.Build.0 = Debug|Any CPU + {E988767C-A8F0-4EF1-B3CA-1822500F18DF}.Debug|x86.ActiveCfg = Debug|Any CPU + {E988767C-A8F0-4EF1-B3CA-1822500F18DF}.Debug|x86.Build.0 = Debug|Any CPU {E988767C-A8F0-4EF1-B3CA-1822500F18DF}.Release|Any CPU.ActiveCfg = Release|Any CPU {E988767C-A8F0-4EF1-B3CA-1822500F18DF}.Release|Any CPU.Build.0 = Release|Any CPU {E988767C-A8F0-4EF1-B3CA-1822500F18DF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {E988767C-A8F0-4EF1-B3CA-1822500F18DF}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {E988767C-A8F0-4EF1-B3CA-1822500F18DF}.Release|x86.ActiveCfg = Release|Any CPU - {E988767C-A8F0-4EF1-B3CA-1822500F18DF}.Release|x86.Build.0 = Release|Any CPU {E988767C-A8F0-4EF1-B3CA-1822500F18DF}.Release|x64.ActiveCfg = Release|Any CPU {E988767C-A8F0-4EF1-B3CA-1822500F18DF}.Release|x64.Build.0 = Release|Any CPU + {E988767C-A8F0-4EF1-B3CA-1822500F18DF}.Release|x86.ActiveCfg = Release|Any CPU + {E988767C-A8F0-4EF1-B3CA-1822500F18DF}.Release|x86.Build.0 = Release|Any CPU {D503AF92-DC41-4201-B62A-F64817EBDE5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D503AF92-DC41-4201-B62A-F64817EBDE5E}.Debug|Any CPU.Build.0 = Debug|Any CPU {D503AF92-DC41-4201-B62A-F64817EBDE5E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {D503AF92-DC41-4201-B62A-F64817EBDE5E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {D503AF92-DC41-4201-B62A-F64817EBDE5E}.Debug|x86.ActiveCfg = Debug|Any CPU - {D503AF92-DC41-4201-B62A-F64817EBDE5E}.Debug|x86.Build.0 = Debug|Any CPU {D503AF92-DC41-4201-B62A-F64817EBDE5E}.Debug|x64.ActiveCfg = Debug|Any CPU {D503AF92-DC41-4201-B62A-F64817EBDE5E}.Debug|x64.Build.0 = Debug|Any CPU + {D503AF92-DC41-4201-B62A-F64817EBDE5E}.Debug|x86.ActiveCfg = Debug|Any CPU + {D503AF92-DC41-4201-B62A-F64817EBDE5E}.Debug|x86.Build.0 = Debug|Any CPU {D503AF92-DC41-4201-B62A-F64817EBDE5E}.Release|Any CPU.ActiveCfg = Release|Any CPU {D503AF92-DC41-4201-B62A-F64817EBDE5E}.Release|Any CPU.Build.0 = Release|Any CPU {D503AF92-DC41-4201-B62A-F64817EBDE5E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {D503AF92-DC41-4201-B62A-F64817EBDE5E}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {D503AF92-DC41-4201-B62A-F64817EBDE5E}.Release|x86.ActiveCfg = Release|Any CPU - {D503AF92-DC41-4201-B62A-F64817EBDE5E}.Release|x86.Build.0 = Release|Any CPU {D503AF92-DC41-4201-B62A-F64817EBDE5E}.Release|x64.ActiveCfg = Release|Any CPU {D503AF92-DC41-4201-B62A-F64817EBDE5E}.Release|x64.Build.0 = Release|Any CPU + {D503AF92-DC41-4201-B62A-F64817EBDE5E}.Release|x86.ActiveCfg = Release|Any CPU + {D503AF92-DC41-4201-B62A-F64817EBDE5E}.Release|x86.Build.0 = Release|Any CPU {E8C671DA-52E2-4D15-9DC2-2F2E0906BABD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E8C671DA-52E2-4D15-9DC2-2F2E0906BABD}.Debug|Any CPU.Build.0 = Debug|Any CPU {E8C671DA-52E2-4D15-9DC2-2F2E0906BABD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {E8C671DA-52E2-4D15-9DC2-2F2E0906BABD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {E8C671DA-52E2-4D15-9DC2-2F2E0906BABD}.Debug|x86.ActiveCfg = Debug|Any CPU - {E8C671DA-52E2-4D15-9DC2-2F2E0906BABD}.Debug|x86.Build.0 = Debug|Any CPU {E8C671DA-52E2-4D15-9DC2-2F2E0906BABD}.Debug|x64.ActiveCfg = Debug|Any CPU {E8C671DA-52E2-4D15-9DC2-2F2E0906BABD}.Debug|x64.Build.0 = Debug|Any CPU + {E8C671DA-52E2-4D15-9DC2-2F2E0906BABD}.Debug|x86.ActiveCfg = Debug|Any CPU + {E8C671DA-52E2-4D15-9DC2-2F2E0906BABD}.Debug|x86.Build.0 = Debug|Any CPU {E8C671DA-52E2-4D15-9DC2-2F2E0906BABD}.Release|Any CPU.ActiveCfg = Release|Any CPU {E8C671DA-52E2-4D15-9DC2-2F2E0906BABD}.Release|Any CPU.Build.0 = Release|Any CPU {E8C671DA-52E2-4D15-9DC2-2F2E0906BABD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {E8C671DA-52E2-4D15-9DC2-2F2E0906BABD}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {E8C671DA-52E2-4D15-9DC2-2F2E0906BABD}.Release|x86.ActiveCfg = Release|Any CPU - {E8C671DA-52E2-4D15-9DC2-2F2E0906BABD}.Release|x86.Build.0 = Release|Any CPU {E8C671DA-52E2-4D15-9DC2-2F2E0906BABD}.Release|x64.ActiveCfg = Release|Any CPU {E8C671DA-52E2-4D15-9DC2-2F2E0906BABD}.Release|x64.Build.0 = Release|Any CPU + {E8C671DA-52E2-4D15-9DC2-2F2E0906BABD}.Release|x86.ActiveCfg = Release|Any CPU + {E8C671DA-52E2-4D15-9DC2-2F2E0906BABD}.Release|x86.Build.0 = Release|Any CPU {13911C1D-F8C0-4590-A642-013E09D04674}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {13911C1D-F8C0-4590-A642-013E09D04674}.Debug|Any CPU.Build.0 = Debug|Any CPU {13911C1D-F8C0-4590-A642-013E09D04674}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {13911C1D-F8C0-4590-A642-013E09D04674}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {13911C1D-F8C0-4590-A642-013E09D04674}.Debug|x86.ActiveCfg = Debug|Any CPU - {13911C1D-F8C0-4590-A642-013E09D04674}.Debug|x86.Build.0 = Debug|Any CPU {13911C1D-F8C0-4590-A642-013E09D04674}.Debug|x64.ActiveCfg = Debug|Any CPU {13911C1D-F8C0-4590-A642-013E09D04674}.Debug|x64.Build.0 = Debug|Any CPU + {13911C1D-F8C0-4590-A642-013E09D04674}.Debug|x86.ActiveCfg = Debug|Any CPU + {13911C1D-F8C0-4590-A642-013E09D04674}.Debug|x86.Build.0 = Debug|Any CPU {13911C1D-F8C0-4590-A642-013E09D04674}.Release|Any CPU.ActiveCfg = Release|Any CPU {13911C1D-F8C0-4590-A642-013E09D04674}.Release|Any CPU.Build.0 = Release|Any CPU {13911C1D-F8C0-4590-A642-013E09D04674}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {13911C1D-F8C0-4590-A642-013E09D04674}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {13911C1D-F8C0-4590-A642-013E09D04674}.Release|x86.ActiveCfg = Release|Any CPU - {13911C1D-F8C0-4590-A642-013E09D04674}.Release|x86.Build.0 = Release|Any CPU {13911C1D-F8C0-4590-A642-013E09D04674}.Release|x64.ActiveCfg = Release|Any CPU {13911C1D-F8C0-4590-A642-013E09D04674}.Release|x64.Build.0 = Release|Any CPU + {13911C1D-F8C0-4590-A642-013E09D04674}.Release|x86.ActiveCfg = Release|Any CPU + {13911C1D-F8C0-4590-A642-013E09D04674}.Release|x86.Build.0 = Release|Any CPU {2EF35305-F1CC-4F48-9E25-DC6B93C1B5C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2EF35305-F1CC-4F48-9E25-DC6B93C1B5C2}.Debug|Any CPU.Build.0 = Debug|Any CPU {2EF35305-F1CC-4F48-9E25-DC6B93C1B5C2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {2EF35305-F1CC-4F48-9E25-DC6B93C1B5C2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {2EF35305-F1CC-4F48-9E25-DC6B93C1B5C2}.Debug|x86.ActiveCfg = Debug|Any CPU - {2EF35305-F1CC-4F48-9E25-DC6B93C1B5C2}.Debug|x86.Build.0 = Debug|Any CPU {2EF35305-F1CC-4F48-9E25-DC6B93C1B5C2}.Debug|x64.ActiveCfg = Debug|Any CPU {2EF35305-F1CC-4F48-9E25-DC6B93C1B5C2}.Debug|x64.Build.0 = Debug|Any CPU + {2EF35305-F1CC-4F48-9E25-DC6B93C1B5C2}.Debug|x86.ActiveCfg = Debug|Any CPU + {2EF35305-F1CC-4F48-9E25-DC6B93C1B5C2}.Debug|x86.Build.0 = Debug|Any CPU {2EF35305-F1CC-4F48-9E25-DC6B93C1B5C2}.Release|Any CPU.ActiveCfg = Release|Any CPU {2EF35305-F1CC-4F48-9E25-DC6B93C1B5C2}.Release|Any CPU.Build.0 = Release|Any CPU {2EF35305-F1CC-4F48-9E25-DC6B93C1B5C2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {2EF35305-F1CC-4F48-9E25-DC6B93C1B5C2}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {2EF35305-F1CC-4F48-9E25-DC6B93C1B5C2}.Release|x86.ActiveCfg = Release|Any CPU - {2EF35305-F1CC-4F48-9E25-DC6B93C1B5C2}.Release|x86.Build.0 = Release|Any CPU {2EF35305-F1CC-4F48-9E25-DC6B93C1B5C2}.Release|x64.ActiveCfg = Release|Any CPU {2EF35305-F1CC-4F48-9E25-DC6B93C1B5C2}.Release|x64.Build.0 = Release|Any CPU + {2EF35305-F1CC-4F48-9E25-DC6B93C1B5C2}.Release|x86.ActiveCfg = Release|Any CPU + {2EF35305-F1CC-4F48-9E25-DC6B93C1B5C2}.Release|x86.Build.0 = Release|Any CPU {36985093-8C96-4408-AB70-F2B940E43219}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {36985093-8C96-4408-AB70-F2B940E43219}.Debug|Any CPU.Build.0 = Debug|Any CPU {36985093-8C96-4408-AB70-F2B940E43219}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {36985093-8C96-4408-AB70-F2B940E43219}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {36985093-8C96-4408-AB70-F2B940E43219}.Debug|x86.ActiveCfg = Debug|Any CPU - {36985093-8C96-4408-AB70-F2B940E43219}.Debug|x86.Build.0 = Debug|Any CPU {36985093-8C96-4408-AB70-F2B940E43219}.Debug|x64.ActiveCfg = Debug|Any CPU {36985093-8C96-4408-AB70-F2B940E43219}.Debug|x64.Build.0 = Debug|Any CPU + {36985093-8C96-4408-AB70-F2B940E43219}.Debug|x86.ActiveCfg = Debug|Any CPU + {36985093-8C96-4408-AB70-F2B940E43219}.Debug|x86.Build.0 = Debug|Any CPU {36985093-8C96-4408-AB70-F2B940E43219}.Release|Any CPU.ActiveCfg = Release|Any CPU {36985093-8C96-4408-AB70-F2B940E43219}.Release|Any CPU.Build.0 = Release|Any CPU {36985093-8C96-4408-AB70-F2B940E43219}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {36985093-8C96-4408-AB70-F2B940E43219}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {36985093-8C96-4408-AB70-F2B940E43219}.Release|x86.ActiveCfg = Release|Any CPU - {36985093-8C96-4408-AB70-F2B940E43219}.Release|x86.Build.0 = Release|Any CPU {36985093-8C96-4408-AB70-F2B940E43219}.Release|x64.ActiveCfg = Release|Any CPU {36985093-8C96-4408-AB70-F2B940E43219}.Release|x64.Build.0 = Release|Any CPU + {36985093-8C96-4408-AB70-F2B940E43219}.Release|x86.ActiveCfg = Release|Any CPU + {36985093-8C96-4408-AB70-F2B940E43219}.Release|x86.Build.0 = Release|Any CPU {01EEF2C9-2573-4EFD-B3D9-C3CC5CDA42A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {01EEF2C9-2573-4EFD-B3D9-C3CC5CDA42A6}.Debug|Any CPU.Build.0 = Debug|Any CPU {01EEF2C9-2573-4EFD-B3D9-C3CC5CDA42A6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {01EEF2C9-2573-4EFD-B3D9-C3CC5CDA42A6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {01EEF2C9-2573-4EFD-B3D9-C3CC5CDA42A6}.Debug|x86.ActiveCfg = Debug|Any CPU - {01EEF2C9-2573-4EFD-B3D9-C3CC5CDA42A6}.Debug|x86.Build.0 = Debug|Any CPU {01EEF2C9-2573-4EFD-B3D9-C3CC5CDA42A6}.Debug|x64.ActiveCfg = Debug|Any CPU {01EEF2C9-2573-4EFD-B3D9-C3CC5CDA42A6}.Debug|x64.Build.0 = Debug|Any CPU + {01EEF2C9-2573-4EFD-B3D9-C3CC5CDA42A6}.Debug|x86.ActiveCfg = Debug|Any CPU + {01EEF2C9-2573-4EFD-B3D9-C3CC5CDA42A6}.Debug|x86.Build.0 = Debug|Any CPU {01EEF2C9-2573-4EFD-B3D9-C3CC5CDA42A6}.Release|Any CPU.ActiveCfg = Release|Any CPU {01EEF2C9-2573-4EFD-B3D9-C3CC5CDA42A6}.Release|Any CPU.Build.0 = Release|Any CPU {01EEF2C9-2573-4EFD-B3D9-C3CC5CDA42A6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {01EEF2C9-2573-4EFD-B3D9-C3CC5CDA42A6}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {01EEF2C9-2573-4EFD-B3D9-C3CC5CDA42A6}.Release|x86.ActiveCfg = Release|Any CPU - {01EEF2C9-2573-4EFD-B3D9-C3CC5CDA42A6}.Release|x86.Build.0 = Release|Any CPU {01EEF2C9-2573-4EFD-B3D9-C3CC5CDA42A6}.Release|x64.ActiveCfg = Release|Any CPU {01EEF2C9-2573-4EFD-B3D9-C3CC5CDA42A6}.Release|x64.Build.0 = Release|Any CPU + {01EEF2C9-2573-4EFD-B3D9-C3CC5CDA42A6}.Release|x86.ActiveCfg = Release|Any CPU + {01EEF2C9-2573-4EFD-B3D9-C3CC5CDA42A6}.Release|x86.Build.0 = Release|Any CPU {9F6C87BB-8024-441B-A534-BF600667D52A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9F6C87BB-8024-441B-A534-BF600667D52A}.Debug|Any CPU.Build.0 = Debug|Any CPU {9F6C87BB-8024-441B-A534-BF600667D52A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {9F6C87BB-8024-441B-A534-BF600667D52A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {9F6C87BB-8024-441B-A534-BF600667D52A}.Debug|x86.ActiveCfg = Debug|Any CPU - {9F6C87BB-8024-441B-A534-BF600667D52A}.Debug|x86.Build.0 = Debug|Any CPU {9F6C87BB-8024-441B-A534-BF600667D52A}.Debug|x64.ActiveCfg = Debug|Any CPU {9F6C87BB-8024-441B-A534-BF600667D52A}.Debug|x64.Build.0 = Debug|Any CPU + {9F6C87BB-8024-441B-A534-BF600667D52A}.Debug|x86.ActiveCfg = Debug|Any CPU + {9F6C87BB-8024-441B-A534-BF600667D52A}.Debug|x86.Build.0 = Debug|Any CPU {9F6C87BB-8024-441B-A534-BF600667D52A}.Release|Any CPU.ActiveCfg = Release|Any CPU {9F6C87BB-8024-441B-A534-BF600667D52A}.Release|Any CPU.Build.0 = Release|Any CPU {9F6C87BB-8024-441B-A534-BF600667D52A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {9F6C87BB-8024-441B-A534-BF600667D52A}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {9F6C87BB-8024-441B-A534-BF600667D52A}.Release|x86.ActiveCfg = Release|Any CPU - {9F6C87BB-8024-441B-A534-BF600667D52A}.Release|x86.Build.0 = Release|Any CPU {9F6C87BB-8024-441B-A534-BF600667D52A}.Release|x64.ActiveCfg = Release|Any CPU {9F6C87BB-8024-441B-A534-BF600667D52A}.Release|x64.Build.0 = Release|Any CPU + {9F6C87BB-8024-441B-A534-BF600667D52A}.Release|x86.ActiveCfg = Release|Any CPU + {9F6C87BB-8024-441B-A534-BF600667D52A}.Release|x86.Build.0 = Release|Any CPU {26821A25-B96D-4390-8988-A3EC4CE34C85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {26821A25-B96D-4390-8988-A3EC4CE34C85}.Debug|Any CPU.Build.0 = Debug|Any CPU {26821A25-B96D-4390-8988-A3EC4CE34C85}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {26821A25-B96D-4390-8988-A3EC4CE34C85}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {26821A25-B96D-4390-8988-A3EC4CE34C85}.Debug|x86.ActiveCfg = Debug|Any CPU - {26821A25-B96D-4390-8988-A3EC4CE34C85}.Debug|x86.Build.0 = Debug|Any CPU {26821A25-B96D-4390-8988-A3EC4CE34C85}.Debug|x64.ActiveCfg = Debug|Any CPU {26821A25-B96D-4390-8988-A3EC4CE34C85}.Debug|x64.Build.0 = Debug|Any CPU + {26821A25-B96D-4390-8988-A3EC4CE34C85}.Debug|x86.ActiveCfg = Debug|Any CPU + {26821A25-B96D-4390-8988-A3EC4CE34C85}.Debug|x86.Build.0 = Debug|Any CPU {26821A25-B96D-4390-8988-A3EC4CE34C85}.Release|Any CPU.ActiveCfg = Release|Any CPU {26821A25-B96D-4390-8988-A3EC4CE34C85}.Release|Any CPU.Build.0 = Release|Any CPU {26821A25-B96D-4390-8988-A3EC4CE34C85}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {26821A25-B96D-4390-8988-A3EC4CE34C85}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {26821A25-B96D-4390-8988-A3EC4CE34C85}.Release|x86.ActiveCfg = Release|Any CPU - {26821A25-B96D-4390-8988-A3EC4CE34C85}.Release|x86.Build.0 = Release|Any CPU {26821A25-B96D-4390-8988-A3EC4CE34C85}.Release|x64.ActiveCfg = Release|Any CPU {26821A25-B96D-4390-8988-A3EC4CE34C85}.Release|x64.Build.0 = Release|Any CPU + {26821A25-B96D-4390-8988-A3EC4CE34C85}.Release|x86.ActiveCfg = Release|Any CPU + {26821A25-B96D-4390-8988-A3EC4CE34C85}.Release|x86.Build.0 = Release|Any CPU {FD94511E-2F3E-40D8-8001-407FC40243D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FD94511E-2F3E-40D8-8001-407FC40243D1}.Debug|Any CPU.Build.0 = Debug|Any CPU {FD94511E-2F3E-40D8-8001-407FC40243D1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {FD94511E-2F3E-40D8-8001-407FC40243D1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {FD94511E-2F3E-40D8-8001-407FC40243D1}.Debug|x86.ActiveCfg = Debug|Any CPU - {FD94511E-2F3E-40D8-8001-407FC40243D1}.Debug|x86.Build.0 = Debug|Any CPU {FD94511E-2F3E-40D8-8001-407FC40243D1}.Debug|x64.ActiveCfg = Debug|Any CPU {FD94511E-2F3E-40D8-8001-407FC40243D1}.Debug|x64.Build.0 = Debug|Any CPU + {FD94511E-2F3E-40D8-8001-407FC40243D1}.Debug|x86.ActiveCfg = Debug|Any CPU + {FD94511E-2F3E-40D8-8001-407FC40243D1}.Debug|x86.Build.0 = Debug|Any CPU {FD94511E-2F3E-40D8-8001-407FC40243D1}.Release|Any CPU.ActiveCfg = Release|Any CPU {FD94511E-2F3E-40D8-8001-407FC40243D1}.Release|Any CPU.Build.0 = Release|Any CPU {FD94511E-2F3E-40D8-8001-407FC40243D1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {FD94511E-2F3E-40D8-8001-407FC40243D1}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {FD94511E-2F3E-40D8-8001-407FC40243D1}.Release|x86.ActiveCfg = Release|Any CPU - {FD94511E-2F3E-40D8-8001-407FC40243D1}.Release|x86.Build.0 = Release|Any CPU {FD94511E-2F3E-40D8-8001-407FC40243D1}.Release|x64.ActiveCfg = Release|Any CPU {FD94511E-2F3E-40D8-8001-407FC40243D1}.Release|x64.Build.0 = Release|Any CPU + {FD94511E-2F3E-40D8-8001-407FC40243D1}.Release|x86.ActiveCfg = Release|Any CPU + {FD94511E-2F3E-40D8-8001-407FC40243D1}.Release|x86.Build.0 = Release|Any CPU {C39A4B9B-95CB-4FE5-A7A6-E0577C634573}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C39A4B9B-95CB-4FE5-A7A6-E0577C634573}.Debug|Any CPU.Build.0 = Debug|Any CPU {C39A4B9B-95CB-4FE5-A7A6-E0577C634573}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {C39A4B9B-95CB-4FE5-A7A6-E0577C634573}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {C39A4B9B-95CB-4FE5-A7A6-E0577C634573}.Debug|x86.ActiveCfg = Debug|Any CPU - {C39A4B9B-95CB-4FE5-A7A6-E0577C634573}.Debug|x86.Build.0 = Debug|Any CPU {C39A4B9B-95CB-4FE5-A7A6-E0577C634573}.Debug|x64.ActiveCfg = Debug|Any CPU {C39A4B9B-95CB-4FE5-A7A6-E0577C634573}.Debug|x64.Build.0 = Debug|Any CPU + {C39A4B9B-95CB-4FE5-A7A6-E0577C634573}.Debug|x86.ActiveCfg = Debug|Any CPU + {C39A4B9B-95CB-4FE5-A7A6-E0577C634573}.Debug|x86.Build.0 = Debug|Any CPU {C39A4B9B-95CB-4FE5-A7A6-E0577C634573}.Release|Any CPU.ActiveCfg = Release|Any CPU {C39A4B9B-95CB-4FE5-A7A6-E0577C634573}.Release|Any CPU.Build.0 = Release|Any CPU {C39A4B9B-95CB-4FE5-A7A6-E0577C634573}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {C39A4B9B-95CB-4FE5-A7A6-E0577C634573}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {C39A4B9B-95CB-4FE5-A7A6-E0577C634573}.Release|x86.ActiveCfg = Release|Any CPU - {C39A4B9B-95CB-4FE5-A7A6-E0577C634573}.Release|x86.Build.0 = Release|Any CPU {C39A4B9B-95CB-4FE5-A7A6-E0577C634573}.Release|x64.ActiveCfg = Release|Any CPU {C39A4B9B-95CB-4FE5-A7A6-E0577C634573}.Release|x64.Build.0 = Release|Any CPU + {C39A4B9B-95CB-4FE5-A7A6-E0577C634573}.Release|x86.ActiveCfg = Release|Any CPU + {C39A4B9B-95CB-4FE5-A7A6-E0577C634573}.Release|x86.Build.0 = Release|Any CPU {23451BFC-D38E-4D62-8512-7B8543D28267}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {23451BFC-D38E-4D62-8512-7B8543D28267}.Debug|Any CPU.Build.0 = Debug|Any CPU {23451BFC-D38E-4D62-8512-7B8543D28267}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {23451BFC-D38E-4D62-8512-7B8543D28267}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {23451BFC-D38E-4D62-8512-7B8543D28267}.Debug|x86.ActiveCfg = Debug|Any CPU - {23451BFC-D38E-4D62-8512-7B8543D28267}.Debug|x86.Build.0 = Debug|Any CPU {23451BFC-D38E-4D62-8512-7B8543D28267}.Debug|x64.ActiveCfg = Debug|Any CPU {23451BFC-D38E-4D62-8512-7B8543D28267}.Debug|x64.Build.0 = Debug|Any CPU + {23451BFC-D38E-4D62-8512-7B8543D28267}.Debug|x86.ActiveCfg = Debug|Any CPU + {23451BFC-D38E-4D62-8512-7B8543D28267}.Debug|x86.Build.0 = Debug|Any CPU {23451BFC-D38E-4D62-8512-7B8543D28267}.Release|Any CPU.ActiveCfg = Release|Any CPU {23451BFC-D38E-4D62-8512-7B8543D28267}.Release|Any CPU.Build.0 = Release|Any CPU {23451BFC-D38E-4D62-8512-7B8543D28267}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {23451BFC-D38E-4D62-8512-7B8543D28267}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {23451BFC-D38E-4D62-8512-7B8543D28267}.Release|x86.ActiveCfg = Release|Any CPU - {23451BFC-D38E-4D62-8512-7B8543D28267}.Release|x86.Build.0 = Release|Any CPU {23451BFC-D38E-4D62-8512-7B8543D28267}.Release|x64.ActiveCfg = Release|Any CPU {23451BFC-D38E-4D62-8512-7B8543D28267}.Release|x64.Build.0 = Release|Any CPU + {23451BFC-D38E-4D62-8512-7B8543D28267}.Release|x86.ActiveCfg = Release|Any CPU + {23451BFC-D38E-4D62-8512-7B8543D28267}.Release|x86.Build.0 = Release|Any CPU {F91F2C3C-60BF-4D06-8312-F3CBC18B422A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F91F2C3C-60BF-4D06-8312-F3CBC18B422A}.Debug|Any CPU.Build.0 = Debug|Any CPU {F91F2C3C-60BF-4D06-8312-F3CBC18B422A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {F91F2C3C-60BF-4D06-8312-F3CBC18B422A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {F91F2C3C-60BF-4D06-8312-F3CBC18B422A}.Debug|x86.ActiveCfg = Debug|Any CPU - {F91F2C3C-60BF-4D06-8312-F3CBC18B422A}.Debug|x86.Build.0 = Debug|Any CPU {F91F2C3C-60BF-4D06-8312-F3CBC18B422A}.Debug|x64.ActiveCfg = Debug|Any CPU {F91F2C3C-60BF-4D06-8312-F3CBC18B422A}.Debug|x64.Build.0 = Debug|Any CPU + {F91F2C3C-60BF-4D06-8312-F3CBC18B422A}.Debug|x86.ActiveCfg = Debug|Any CPU + {F91F2C3C-60BF-4D06-8312-F3CBC18B422A}.Debug|x86.Build.0 = Debug|Any CPU {F91F2C3C-60BF-4D06-8312-F3CBC18B422A}.Release|Any CPU.ActiveCfg = Release|Any CPU {F91F2C3C-60BF-4D06-8312-F3CBC18B422A}.Release|Any CPU.Build.0 = Release|Any CPU {F91F2C3C-60BF-4D06-8312-F3CBC18B422A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {F91F2C3C-60BF-4D06-8312-F3CBC18B422A}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {F91F2C3C-60BF-4D06-8312-F3CBC18B422A}.Release|x86.ActiveCfg = Release|Any CPU - {F91F2C3C-60BF-4D06-8312-F3CBC18B422A}.Release|x86.Build.0 = Release|Any CPU {F91F2C3C-60BF-4D06-8312-F3CBC18B422A}.Release|x64.ActiveCfg = Release|Any CPU {F91F2C3C-60BF-4D06-8312-F3CBC18B422A}.Release|x64.Build.0 = Release|Any CPU + {F91F2C3C-60BF-4D06-8312-F3CBC18B422A}.Release|x86.ActiveCfg = Release|Any CPU + {F91F2C3C-60BF-4D06-8312-F3CBC18B422A}.Release|x86.Build.0 = Release|Any CPU {CBC64492-0A5F-4369-BEAB-F3121AF5136B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CBC64492-0A5F-4369-BEAB-F3121AF5136B}.Debug|Any CPU.Build.0 = Debug|Any CPU {CBC64492-0A5F-4369-BEAB-F3121AF5136B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {CBC64492-0A5F-4369-BEAB-F3121AF5136B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {CBC64492-0A5F-4369-BEAB-F3121AF5136B}.Debug|x86.ActiveCfg = Debug|Any CPU - {CBC64492-0A5F-4369-BEAB-F3121AF5136B}.Debug|x86.Build.0 = Debug|Any CPU {CBC64492-0A5F-4369-BEAB-F3121AF5136B}.Debug|x64.ActiveCfg = Debug|Any CPU {CBC64492-0A5F-4369-BEAB-F3121AF5136B}.Debug|x64.Build.0 = Debug|Any CPU + {CBC64492-0A5F-4369-BEAB-F3121AF5136B}.Debug|x86.ActiveCfg = Debug|Any CPU + {CBC64492-0A5F-4369-BEAB-F3121AF5136B}.Debug|x86.Build.0 = Debug|Any CPU {CBC64492-0A5F-4369-BEAB-F3121AF5136B}.Release|Any CPU.ActiveCfg = Release|Any CPU {CBC64492-0A5F-4369-BEAB-F3121AF5136B}.Release|Any CPU.Build.0 = Release|Any CPU {CBC64492-0A5F-4369-BEAB-F3121AF5136B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {CBC64492-0A5F-4369-BEAB-F3121AF5136B}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {CBC64492-0A5F-4369-BEAB-F3121AF5136B}.Release|x86.ActiveCfg = Release|Any CPU - {CBC64492-0A5F-4369-BEAB-F3121AF5136B}.Release|x86.Build.0 = Release|Any CPU {CBC64492-0A5F-4369-BEAB-F3121AF5136B}.Release|x64.ActiveCfg = Release|Any CPU {CBC64492-0A5F-4369-BEAB-F3121AF5136B}.Release|x64.Build.0 = Release|Any CPU + {CBC64492-0A5F-4369-BEAB-F3121AF5136B}.Release|x86.ActiveCfg = Release|Any CPU + {CBC64492-0A5F-4369-BEAB-F3121AF5136B}.Release|x86.Build.0 = Release|Any CPU {D530B147-067A-408D-BB1B-A4290324012F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D530B147-067A-408D-BB1B-A4290324012F}.Debug|Any CPU.Build.0 = Debug|Any CPU {D530B147-067A-408D-BB1B-A4290324012F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {D530B147-067A-408D-BB1B-A4290324012F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {D530B147-067A-408D-BB1B-A4290324012F}.Debug|x86.ActiveCfg = Debug|Any CPU - {D530B147-067A-408D-BB1B-A4290324012F}.Debug|x86.Build.0 = Debug|Any CPU {D530B147-067A-408D-BB1B-A4290324012F}.Debug|x64.ActiveCfg = Debug|Any CPU {D530B147-067A-408D-BB1B-A4290324012F}.Debug|x64.Build.0 = Debug|Any CPU + {D530B147-067A-408D-BB1B-A4290324012F}.Debug|x86.ActiveCfg = Debug|Any CPU + {D530B147-067A-408D-BB1B-A4290324012F}.Debug|x86.Build.0 = Debug|Any CPU {D530B147-067A-408D-BB1B-A4290324012F}.Release|Any CPU.ActiveCfg = Release|Any CPU {D530B147-067A-408D-BB1B-A4290324012F}.Release|Any CPU.Build.0 = Release|Any CPU {D530B147-067A-408D-BB1B-A4290324012F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {D530B147-067A-408D-BB1B-A4290324012F}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {D530B147-067A-408D-BB1B-A4290324012F}.Release|x86.ActiveCfg = Release|Any CPU - {D530B147-067A-408D-BB1B-A4290324012F}.Release|x86.Build.0 = Release|Any CPU {D530B147-067A-408D-BB1B-A4290324012F}.Release|x64.ActiveCfg = Release|Any CPU {D530B147-067A-408D-BB1B-A4290324012F}.Release|x64.Build.0 = Release|Any CPU + {D530B147-067A-408D-BB1B-A4290324012F}.Release|x86.ActiveCfg = Release|Any CPU + {D530B147-067A-408D-BB1B-A4290324012F}.Release|x86.Build.0 = Release|Any CPU {62D9AF6E-B671-4444-82A4-8416B8049E14}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {62D9AF6E-B671-4444-82A4-8416B8049E14}.Debug|Any CPU.Build.0 = Debug|Any CPU {62D9AF6E-B671-4444-82A4-8416B8049E14}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {62D9AF6E-B671-4444-82A4-8416B8049E14}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {62D9AF6E-B671-4444-82A4-8416B8049E14}.Debug|x86.ActiveCfg = Debug|Any CPU - {62D9AF6E-B671-4444-82A4-8416B8049E14}.Debug|x86.Build.0 = Debug|Any CPU {62D9AF6E-B671-4444-82A4-8416B8049E14}.Debug|x64.ActiveCfg = Debug|Any CPU {62D9AF6E-B671-4444-82A4-8416B8049E14}.Debug|x64.Build.0 = Debug|Any CPU + {62D9AF6E-B671-4444-82A4-8416B8049E14}.Debug|x86.ActiveCfg = Debug|Any CPU + {62D9AF6E-B671-4444-82A4-8416B8049E14}.Debug|x86.Build.0 = Debug|Any CPU {62D9AF6E-B671-4444-82A4-8416B8049E14}.Release|Any CPU.ActiveCfg = Release|Any CPU {62D9AF6E-B671-4444-82A4-8416B8049E14}.Release|Any CPU.Build.0 = Release|Any CPU {62D9AF6E-B671-4444-82A4-8416B8049E14}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {62D9AF6E-B671-4444-82A4-8416B8049E14}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {62D9AF6E-B671-4444-82A4-8416B8049E14}.Release|x86.ActiveCfg = Release|Any CPU - {62D9AF6E-B671-4444-82A4-8416B8049E14}.Release|x86.Build.0 = Release|Any CPU {62D9AF6E-B671-4444-82A4-8416B8049E14}.Release|x64.ActiveCfg = Release|Any CPU {62D9AF6E-B671-4444-82A4-8416B8049E14}.Release|x64.Build.0 = Release|Any CPU + {62D9AF6E-B671-4444-82A4-8416B8049E14}.Release|x86.ActiveCfg = Release|Any CPU + {62D9AF6E-B671-4444-82A4-8416B8049E14}.Release|x86.Build.0 = Release|Any CPU {7AA5B0BF-3520-45C4-9B8A-7F131EFDA227}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7AA5B0BF-3520-45C4-9B8A-7F131EFDA227}.Debug|Any CPU.Build.0 = Debug|Any CPU {7AA5B0BF-3520-45C4-9B8A-7F131EFDA227}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {7AA5B0BF-3520-45C4-9B8A-7F131EFDA227}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {7AA5B0BF-3520-45C4-9B8A-7F131EFDA227}.Debug|x86.ActiveCfg = Debug|Any CPU - {7AA5B0BF-3520-45C4-9B8A-7F131EFDA227}.Debug|x86.Build.0 = Debug|Any CPU {7AA5B0BF-3520-45C4-9B8A-7F131EFDA227}.Debug|x64.ActiveCfg = Debug|Any CPU {7AA5B0BF-3520-45C4-9B8A-7F131EFDA227}.Debug|x64.Build.0 = Debug|Any CPU + {7AA5B0BF-3520-45C4-9B8A-7F131EFDA227}.Debug|x86.ActiveCfg = Debug|Any CPU + {7AA5B0BF-3520-45C4-9B8A-7F131EFDA227}.Debug|x86.Build.0 = Debug|Any CPU {7AA5B0BF-3520-45C4-9B8A-7F131EFDA227}.Release|Any CPU.ActiveCfg = Release|Any CPU {7AA5B0BF-3520-45C4-9B8A-7F131EFDA227}.Release|Any CPU.Build.0 = Release|Any CPU {7AA5B0BF-3520-45C4-9B8A-7F131EFDA227}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {7AA5B0BF-3520-45C4-9B8A-7F131EFDA227}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {7AA5B0BF-3520-45C4-9B8A-7F131EFDA227}.Release|x86.ActiveCfg = Release|Any CPU - {7AA5B0BF-3520-45C4-9B8A-7F131EFDA227}.Release|x86.Build.0 = Release|Any CPU {7AA5B0BF-3520-45C4-9B8A-7F131EFDA227}.Release|x64.ActiveCfg = Release|Any CPU {7AA5B0BF-3520-45C4-9B8A-7F131EFDA227}.Release|x64.Build.0 = Release|Any CPU + {7AA5B0BF-3520-45C4-9B8A-7F131EFDA227}.Release|x86.ActiveCfg = Release|Any CPU + {7AA5B0BF-3520-45C4-9B8A-7F131EFDA227}.Release|x86.Build.0 = Release|Any CPU {B484C51B-4431-4895-B191-5702C9602521}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B484C51B-4431-4895-B191-5702C9602521}.Debug|Any CPU.Build.0 = Debug|Any CPU {B484C51B-4431-4895-B191-5702C9602521}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {B484C51B-4431-4895-B191-5702C9602521}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {B484C51B-4431-4895-B191-5702C9602521}.Debug|x86.ActiveCfg = Debug|Any CPU - {B484C51B-4431-4895-B191-5702C9602521}.Debug|x86.Build.0 = Debug|Any CPU {B484C51B-4431-4895-B191-5702C9602521}.Debug|x64.ActiveCfg = Debug|Any CPU {B484C51B-4431-4895-B191-5702C9602521}.Debug|x64.Build.0 = Debug|Any CPU + {B484C51B-4431-4895-B191-5702C9602521}.Debug|x86.ActiveCfg = Debug|Any CPU + {B484C51B-4431-4895-B191-5702C9602521}.Debug|x86.Build.0 = Debug|Any CPU {B484C51B-4431-4895-B191-5702C9602521}.Release|Any CPU.ActiveCfg = Release|Any CPU {B484C51B-4431-4895-B191-5702C9602521}.Release|Any CPU.Build.0 = Release|Any CPU {B484C51B-4431-4895-B191-5702C9602521}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {B484C51B-4431-4895-B191-5702C9602521}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {B484C51B-4431-4895-B191-5702C9602521}.Release|x86.ActiveCfg = Release|Any CPU - {B484C51B-4431-4895-B191-5702C9602521}.Release|x86.Build.0 = Release|Any CPU {B484C51B-4431-4895-B191-5702C9602521}.Release|x64.ActiveCfg = Release|Any CPU {B484C51B-4431-4895-B191-5702C9602521}.Release|x64.Build.0 = Release|Any CPU + {B484C51B-4431-4895-B191-5702C9602521}.Release|x86.ActiveCfg = Release|Any CPU + {B484C51B-4431-4895-B191-5702C9602521}.Release|x86.Build.0 = Release|Any CPU {12B65F6F-8FD2-4507-9DA0-5A84CE02AAD7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {12B65F6F-8FD2-4507-9DA0-5A84CE02AAD7}.Debug|Any CPU.Build.0 = Debug|Any CPU {12B65F6F-8FD2-4507-9DA0-5A84CE02AAD7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {12B65F6F-8FD2-4507-9DA0-5A84CE02AAD7}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {12B65F6F-8FD2-4507-9DA0-5A84CE02AAD7}.Debug|x86.ActiveCfg = Debug|Any CPU - {12B65F6F-8FD2-4507-9DA0-5A84CE02AAD7}.Debug|x86.Build.0 = Debug|Any CPU {12B65F6F-8FD2-4507-9DA0-5A84CE02AAD7}.Debug|x64.ActiveCfg = Debug|Any CPU {12B65F6F-8FD2-4507-9DA0-5A84CE02AAD7}.Debug|x64.Build.0 = Debug|Any CPU + {12B65F6F-8FD2-4507-9DA0-5A84CE02AAD7}.Debug|x86.ActiveCfg = Debug|Any CPU + {12B65F6F-8FD2-4507-9DA0-5A84CE02AAD7}.Debug|x86.Build.0 = Debug|Any CPU {12B65F6F-8FD2-4507-9DA0-5A84CE02AAD7}.Release|Any CPU.ActiveCfg = Release|Any CPU {12B65F6F-8FD2-4507-9DA0-5A84CE02AAD7}.Release|Any CPU.Build.0 = Release|Any CPU {12B65F6F-8FD2-4507-9DA0-5A84CE02AAD7}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {12B65F6F-8FD2-4507-9DA0-5A84CE02AAD7}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {12B65F6F-8FD2-4507-9DA0-5A84CE02AAD7}.Release|x86.ActiveCfg = Release|Any CPU - {12B65F6F-8FD2-4507-9DA0-5A84CE02AAD7}.Release|x86.Build.0 = Release|Any CPU {12B65F6F-8FD2-4507-9DA0-5A84CE02AAD7}.Release|x64.ActiveCfg = Release|Any CPU {12B65F6F-8FD2-4507-9DA0-5A84CE02AAD7}.Release|x64.Build.0 = Release|Any CPU + {12B65F6F-8FD2-4507-9DA0-5A84CE02AAD7}.Release|x86.ActiveCfg = Release|Any CPU + {12B65F6F-8FD2-4507-9DA0-5A84CE02AAD7}.Release|x86.Build.0 = Release|Any CPU {AAE8061D-31A2-461A-BACA-DCA9451D4E7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AAE8061D-31A2-461A-BACA-DCA9451D4E7E}.Debug|Any CPU.Build.0 = Debug|Any CPU {AAE8061D-31A2-461A-BACA-DCA9451D4E7E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {AAE8061D-31A2-461A-BACA-DCA9451D4E7E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {AAE8061D-31A2-461A-BACA-DCA9451D4E7E}.Debug|x86.ActiveCfg = Debug|Any CPU - {AAE8061D-31A2-461A-BACA-DCA9451D4E7E}.Debug|x86.Build.0 = Debug|Any CPU {AAE8061D-31A2-461A-BACA-DCA9451D4E7E}.Debug|x64.ActiveCfg = Debug|Any CPU {AAE8061D-31A2-461A-BACA-DCA9451D4E7E}.Debug|x64.Build.0 = Debug|Any CPU + {AAE8061D-31A2-461A-BACA-DCA9451D4E7E}.Debug|x86.ActiveCfg = Debug|Any CPU + {AAE8061D-31A2-461A-BACA-DCA9451D4E7E}.Debug|x86.Build.0 = Debug|Any CPU {AAE8061D-31A2-461A-BACA-DCA9451D4E7E}.Release|Any CPU.ActiveCfg = Release|Any CPU {AAE8061D-31A2-461A-BACA-DCA9451D4E7E}.Release|Any CPU.Build.0 = Release|Any CPU {AAE8061D-31A2-461A-BACA-DCA9451D4E7E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {AAE8061D-31A2-461A-BACA-DCA9451D4E7E}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {AAE8061D-31A2-461A-BACA-DCA9451D4E7E}.Release|x86.ActiveCfg = Release|Any CPU - {AAE8061D-31A2-461A-BACA-DCA9451D4E7E}.Release|x86.Build.0 = Release|Any CPU {AAE8061D-31A2-461A-BACA-DCA9451D4E7E}.Release|x64.ActiveCfg = Release|Any CPU {AAE8061D-31A2-461A-BACA-DCA9451D4E7E}.Release|x64.Build.0 = Release|Any CPU + {AAE8061D-31A2-461A-BACA-DCA9451D4E7E}.Release|x86.ActiveCfg = Release|Any CPU + {AAE8061D-31A2-461A-BACA-DCA9451D4E7E}.Release|x86.Build.0 = Release|Any CPU {BB9D4401-44A7-49B0-AC17-A0ACE2E70592}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BB9D4401-44A7-49B0-AC17-A0ACE2E70592}.Debug|Any CPU.Build.0 = Debug|Any CPU {BB9D4401-44A7-49B0-AC17-A0ACE2E70592}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {BB9D4401-44A7-49B0-AC17-A0ACE2E70592}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {BB9D4401-44A7-49B0-AC17-A0ACE2E70592}.Debug|x86.ActiveCfg = Debug|Any CPU - {BB9D4401-44A7-49B0-AC17-A0ACE2E70592}.Debug|x86.Build.0 = Debug|Any CPU {BB9D4401-44A7-49B0-AC17-A0ACE2E70592}.Debug|x64.ActiveCfg = Debug|Any CPU {BB9D4401-44A7-49B0-AC17-A0ACE2E70592}.Debug|x64.Build.0 = Debug|Any CPU + {BB9D4401-44A7-49B0-AC17-A0ACE2E70592}.Debug|x86.ActiveCfg = Debug|Any CPU + {BB9D4401-44A7-49B0-AC17-A0ACE2E70592}.Debug|x86.Build.0 = Debug|Any CPU {BB9D4401-44A7-49B0-AC17-A0ACE2E70592}.Release|Any CPU.ActiveCfg = Release|Any CPU {BB9D4401-44A7-49B0-AC17-A0ACE2E70592}.Release|Any CPU.Build.0 = Release|Any CPU {BB9D4401-44A7-49B0-AC17-A0ACE2E70592}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {BB9D4401-44A7-49B0-AC17-A0ACE2E70592}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {BB9D4401-44A7-49B0-AC17-A0ACE2E70592}.Release|x86.ActiveCfg = Release|Any CPU - {BB9D4401-44A7-49B0-AC17-A0ACE2E70592}.Release|x86.Build.0 = Release|Any CPU {BB9D4401-44A7-49B0-AC17-A0ACE2E70592}.Release|x64.ActiveCfg = Release|Any CPU {BB9D4401-44A7-49B0-AC17-A0ACE2E70592}.Release|x64.Build.0 = Release|Any CPU + {BB9D4401-44A7-49B0-AC17-A0ACE2E70592}.Release|x86.ActiveCfg = Release|Any CPU + {BB9D4401-44A7-49B0-AC17-A0ACE2E70592}.Release|x86.Build.0 = Release|Any CPU {C19A5F79-BB05-4161-9FAC-B7DEF6EEE1E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C19A5F79-BB05-4161-9FAC-B7DEF6EEE1E6}.Debug|Any CPU.Build.0 = Debug|Any CPU {C19A5F79-BB05-4161-9FAC-B7DEF6EEE1E6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {C19A5F79-BB05-4161-9FAC-B7DEF6EEE1E6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {C19A5F79-BB05-4161-9FAC-B7DEF6EEE1E6}.Debug|x86.ActiveCfg = Debug|Any CPU - {C19A5F79-BB05-4161-9FAC-B7DEF6EEE1E6}.Debug|x86.Build.0 = Debug|Any CPU {C19A5F79-BB05-4161-9FAC-B7DEF6EEE1E6}.Debug|x64.ActiveCfg = Debug|Any CPU {C19A5F79-BB05-4161-9FAC-B7DEF6EEE1E6}.Debug|x64.Build.0 = Debug|Any CPU + {C19A5F79-BB05-4161-9FAC-B7DEF6EEE1E6}.Debug|x86.ActiveCfg = Debug|Any CPU + {C19A5F79-BB05-4161-9FAC-B7DEF6EEE1E6}.Debug|x86.Build.0 = Debug|Any CPU {C19A5F79-BB05-4161-9FAC-B7DEF6EEE1E6}.Release|Any CPU.ActiveCfg = Release|Any CPU {C19A5F79-BB05-4161-9FAC-B7DEF6EEE1E6}.Release|Any CPU.Build.0 = Release|Any CPU {C19A5F79-BB05-4161-9FAC-B7DEF6EEE1E6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {C19A5F79-BB05-4161-9FAC-B7DEF6EEE1E6}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {C19A5F79-BB05-4161-9FAC-B7DEF6EEE1E6}.Release|x86.ActiveCfg = Release|Any CPU - {C19A5F79-BB05-4161-9FAC-B7DEF6EEE1E6}.Release|x86.Build.0 = Release|Any CPU {C19A5F79-BB05-4161-9FAC-B7DEF6EEE1E6}.Release|x64.ActiveCfg = Release|Any CPU {C19A5F79-BB05-4161-9FAC-B7DEF6EEE1E6}.Release|x64.Build.0 = Release|Any CPU + {C19A5F79-BB05-4161-9FAC-B7DEF6EEE1E6}.Release|x86.ActiveCfg = Release|Any CPU + {C19A5F79-BB05-4161-9FAC-B7DEF6EEE1E6}.Release|x86.Build.0 = Release|Any CPU {48FCB4EE-828A-4499-91C6-C4C9C8E7E671}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {48FCB4EE-828A-4499-91C6-C4C9C8E7E671}.Debug|Any CPU.Build.0 = Debug|Any CPU {48FCB4EE-828A-4499-91C6-C4C9C8E7E671}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {48FCB4EE-828A-4499-91C6-C4C9C8E7E671}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {48FCB4EE-828A-4499-91C6-C4C9C8E7E671}.Debug|x86.ActiveCfg = Debug|Any CPU - {48FCB4EE-828A-4499-91C6-C4C9C8E7E671}.Debug|x86.Build.0 = Debug|Any CPU {48FCB4EE-828A-4499-91C6-C4C9C8E7E671}.Debug|x64.ActiveCfg = Debug|Any CPU {48FCB4EE-828A-4499-91C6-C4C9C8E7E671}.Debug|x64.Build.0 = Debug|Any CPU + {48FCB4EE-828A-4499-91C6-C4C9C8E7E671}.Debug|x86.ActiveCfg = Debug|Any CPU + {48FCB4EE-828A-4499-91C6-C4C9C8E7E671}.Debug|x86.Build.0 = Debug|Any CPU {48FCB4EE-828A-4499-91C6-C4C9C8E7E671}.Release|Any CPU.ActiveCfg = Release|Any CPU {48FCB4EE-828A-4499-91C6-C4C9C8E7E671}.Release|Any CPU.Build.0 = Release|Any CPU {48FCB4EE-828A-4499-91C6-C4C9C8E7E671}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {48FCB4EE-828A-4499-91C6-C4C9C8E7E671}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {48FCB4EE-828A-4499-91C6-C4C9C8E7E671}.Release|x86.ActiveCfg = Release|Any CPU - {48FCB4EE-828A-4499-91C6-C4C9C8E7E671}.Release|x86.Build.0 = Release|Any CPU {48FCB4EE-828A-4499-91C6-C4C9C8E7E671}.Release|x64.ActiveCfg = Release|Any CPU {48FCB4EE-828A-4499-91C6-C4C9C8E7E671}.Release|x64.Build.0 = Release|Any CPU + {48FCB4EE-828A-4499-91C6-C4C9C8E7E671}.Release|x86.ActiveCfg = Release|Any CPU + {48FCB4EE-828A-4499-91C6-C4C9C8E7E671}.Release|x86.Build.0 = Release|Any CPU {A9209230-6BE5-412D-B390-F2E3CB8EEA27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A9209230-6BE5-412D-B390-F2E3CB8EEA27}.Debug|Any CPU.Build.0 = Debug|Any CPU {A9209230-6BE5-412D-B390-F2E3CB8EEA27}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {A9209230-6BE5-412D-B390-F2E3CB8EEA27}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {A9209230-6BE5-412D-B390-F2E3CB8EEA27}.Debug|x86.ActiveCfg = Debug|Any CPU - {A9209230-6BE5-412D-B390-F2E3CB8EEA27}.Debug|x86.Build.0 = Debug|Any CPU {A9209230-6BE5-412D-B390-F2E3CB8EEA27}.Debug|x64.ActiveCfg = Debug|Any CPU {A9209230-6BE5-412D-B390-F2E3CB8EEA27}.Debug|x64.Build.0 = Debug|Any CPU + {A9209230-6BE5-412D-B390-F2E3CB8EEA27}.Debug|x86.ActiveCfg = Debug|Any CPU + {A9209230-6BE5-412D-B390-F2E3CB8EEA27}.Debug|x86.Build.0 = Debug|Any CPU {A9209230-6BE5-412D-B390-F2E3CB8EEA27}.Release|Any CPU.ActiveCfg = Release|Any CPU {A9209230-6BE5-412D-B390-F2E3CB8EEA27}.Release|Any CPU.Build.0 = Release|Any CPU {A9209230-6BE5-412D-B390-F2E3CB8EEA27}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {A9209230-6BE5-412D-B390-F2E3CB8EEA27}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {A9209230-6BE5-412D-B390-F2E3CB8EEA27}.Release|x86.ActiveCfg = Release|Any CPU - {A9209230-6BE5-412D-B390-F2E3CB8EEA27}.Release|x86.Build.0 = Release|Any CPU {A9209230-6BE5-412D-B390-F2E3CB8EEA27}.Release|x64.ActiveCfg = Release|Any CPU {A9209230-6BE5-412D-B390-F2E3CB8EEA27}.Release|x64.Build.0 = Release|Any CPU + {A9209230-6BE5-412D-B390-F2E3CB8EEA27}.Release|x86.ActiveCfg = Release|Any CPU + {A9209230-6BE5-412D-B390-F2E3CB8EEA27}.Release|x86.Build.0 = Release|Any CPU {185F8633-0C32-4C1C-B3FE-DC9D2B2DCD68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {185F8633-0C32-4C1C-B3FE-DC9D2B2DCD68}.Debug|Any CPU.Build.0 = Debug|Any CPU {185F8633-0C32-4C1C-B3FE-DC9D2B2DCD68}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {185F8633-0C32-4C1C-B3FE-DC9D2B2DCD68}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {185F8633-0C32-4C1C-B3FE-DC9D2B2DCD68}.Debug|x86.ActiveCfg = Debug|Any CPU - {185F8633-0C32-4C1C-B3FE-DC9D2B2DCD68}.Debug|x86.Build.0 = Debug|Any CPU {185F8633-0C32-4C1C-B3FE-DC9D2B2DCD68}.Debug|x64.ActiveCfg = Debug|Any CPU {185F8633-0C32-4C1C-B3FE-DC9D2B2DCD68}.Debug|x64.Build.0 = Debug|Any CPU + {185F8633-0C32-4C1C-B3FE-DC9D2B2DCD68}.Debug|x86.ActiveCfg = Debug|Any CPU + {185F8633-0C32-4C1C-B3FE-DC9D2B2DCD68}.Debug|x86.Build.0 = Debug|Any CPU {185F8633-0C32-4C1C-B3FE-DC9D2B2DCD68}.Release|Any CPU.ActiveCfg = Release|Any CPU {185F8633-0C32-4C1C-B3FE-DC9D2B2DCD68}.Release|Any CPU.Build.0 = Release|Any CPU {185F8633-0C32-4C1C-B3FE-DC9D2B2DCD68}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {185F8633-0C32-4C1C-B3FE-DC9D2B2DCD68}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {185F8633-0C32-4C1C-B3FE-DC9D2B2DCD68}.Release|x86.ActiveCfg = Release|Any CPU - {185F8633-0C32-4C1C-B3FE-DC9D2B2DCD68}.Release|x86.Build.0 = Release|Any CPU {185F8633-0C32-4C1C-B3FE-DC9D2B2DCD68}.Release|x64.ActiveCfg = Release|Any CPU {185F8633-0C32-4C1C-B3FE-DC9D2B2DCD68}.Release|x64.Build.0 = Release|Any CPU + {185F8633-0C32-4C1C-B3FE-DC9D2B2DCD68}.Release|x86.ActiveCfg = Release|Any CPU + {185F8633-0C32-4C1C-B3FE-DC9D2B2DCD68}.Release|x86.Build.0 = Release|Any CPU {D38AAA5C-1ECB-4578-B443-3599A36F4F11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D38AAA5C-1ECB-4578-B443-3599A36F4F11}.Debug|Any CPU.Build.0 = Debug|Any CPU {D38AAA5C-1ECB-4578-B443-3599A36F4F11}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {D38AAA5C-1ECB-4578-B443-3599A36F4F11}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {D38AAA5C-1ECB-4578-B443-3599A36F4F11}.Debug|x86.ActiveCfg = Debug|Any CPU - {D38AAA5C-1ECB-4578-B443-3599A36F4F11}.Debug|x86.Build.0 = Debug|Any CPU {D38AAA5C-1ECB-4578-B443-3599A36F4F11}.Debug|x64.ActiveCfg = Debug|Any CPU {D38AAA5C-1ECB-4578-B443-3599A36F4F11}.Debug|x64.Build.0 = Debug|Any CPU + {D38AAA5C-1ECB-4578-B443-3599A36F4F11}.Debug|x86.ActiveCfg = Debug|Any CPU + {D38AAA5C-1ECB-4578-B443-3599A36F4F11}.Debug|x86.Build.0 = Debug|Any CPU {D38AAA5C-1ECB-4578-B443-3599A36F4F11}.Release|Any CPU.ActiveCfg = Release|Any CPU {D38AAA5C-1ECB-4578-B443-3599A36F4F11}.Release|Any CPU.Build.0 = Release|Any CPU {D38AAA5C-1ECB-4578-B443-3599A36F4F11}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {D38AAA5C-1ECB-4578-B443-3599A36F4F11}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {D38AAA5C-1ECB-4578-B443-3599A36F4F11}.Release|x86.ActiveCfg = Release|Any CPU - {D38AAA5C-1ECB-4578-B443-3599A36F4F11}.Release|x86.Build.0 = Release|Any CPU {D38AAA5C-1ECB-4578-B443-3599A36F4F11}.Release|x64.ActiveCfg = Release|Any CPU {D38AAA5C-1ECB-4578-B443-3599A36F4F11}.Release|x64.Build.0 = Release|Any CPU + {D38AAA5C-1ECB-4578-B443-3599A36F4F11}.Release|x86.ActiveCfg = Release|Any CPU + {D38AAA5C-1ECB-4578-B443-3599A36F4F11}.Release|x86.Build.0 = Release|Any CPU {3B6D084F-C034-49C6-A8C4-3C23DCC83CF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3B6D084F-C034-49C6-A8C4-3C23DCC83CF2}.Debug|Any CPU.Build.0 = Debug|Any CPU {3B6D084F-C034-49C6-A8C4-3C23DCC83CF2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {3B6D084F-C034-49C6-A8C4-3C23DCC83CF2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {3B6D084F-C034-49C6-A8C4-3C23DCC83CF2}.Debug|x86.ActiveCfg = Debug|Any CPU - {3B6D084F-C034-49C6-A8C4-3C23DCC83CF2}.Debug|x86.Build.0 = Debug|Any CPU {3B6D084F-C034-49C6-A8C4-3C23DCC83CF2}.Debug|x64.ActiveCfg = Debug|Any CPU {3B6D084F-C034-49C6-A8C4-3C23DCC83CF2}.Debug|x64.Build.0 = Debug|Any CPU + {3B6D084F-C034-49C6-A8C4-3C23DCC83CF2}.Debug|x86.ActiveCfg = Debug|Any CPU + {3B6D084F-C034-49C6-A8C4-3C23DCC83CF2}.Debug|x86.Build.0 = Debug|Any CPU {3B6D084F-C034-49C6-A8C4-3C23DCC83CF2}.Release|Any CPU.ActiveCfg = Release|Any CPU {3B6D084F-C034-49C6-A8C4-3C23DCC83CF2}.Release|Any CPU.Build.0 = Release|Any CPU {3B6D084F-C034-49C6-A8C4-3C23DCC83CF2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {3B6D084F-C034-49C6-A8C4-3C23DCC83CF2}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {3B6D084F-C034-49C6-A8C4-3C23DCC83CF2}.Release|x86.ActiveCfg = Release|Any CPU - {3B6D084F-C034-49C6-A8C4-3C23DCC83CF2}.Release|x86.Build.0 = Release|Any CPU {3B6D084F-C034-49C6-A8C4-3C23DCC83CF2}.Release|x64.ActiveCfg = Release|Any CPU {3B6D084F-C034-49C6-A8C4-3C23DCC83CF2}.Release|x64.Build.0 = Release|Any CPU + {3B6D084F-C034-49C6-A8C4-3C23DCC83CF2}.Release|x86.ActiveCfg = Release|Any CPU + {3B6D084F-C034-49C6-A8C4-3C23DCC83CF2}.Release|x86.Build.0 = Release|Any CPU {4EA5F196-DDA8-4941-956B-D413B03051C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4EA5F196-DDA8-4941-956B-D413B03051C9}.Debug|Any CPU.Build.0 = Debug|Any CPU {4EA5F196-DDA8-4941-956B-D413B03051C9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {4EA5F196-DDA8-4941-956B-D413B03051C9}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {4EA5F196-DDA8-4941-956B-D413B03051C9}.Debug|x86.ActiveCfg = Debug|Any CPU - {4EA5F196-DDA8-4941-956B-D413B03051C9}.Debug|x86.Build.0 = Debug|Any CPU {4EA5F196-DDA8-4941-956B-D413B03051C9}.Debug|x64.ActiveCfg = Debug|Any CPU {4EA5F196-DDA8-4941-956B-D413B03051C9}.Debug|x64.Build.0 = Debug|Any CPU + {4EA5F196-DDA8-4941-956B-D413B03051C9}.Debug|x86.ActiveCfg = Debug|Any CPU + {4EA5F196-DDA8-4941-956B-D413B03051C9}.Debug|x86.Build.0 = Debug|Any CPU {4EA5F196-DDA8-4941-956B-D413B03051C9}.Release|Any CPU.ActiveCfg = Release|Any CPU {4EA5F196-DDA8-4941-956B-D413B03051C9}.Release|Any CPU.Build.0 = Release|Any CPU {4EA5F196-DDA8-4941-956B-D413B03051C9}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {4EA5F196-DDA8-4941-956B-D413B03051C9}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {4EA5F196-DDA8-4941-956B-D413B03051C9}.Release|x86.ActiveCfg = Release|Any CPU - {4EA5F196-DDA8-4941-956B-D413B03051C9}.Release|x86.Build.0 = Release|Any CPU {4EA5F196-DDA8-4941-956B-D413B03051C9}.Release|x64.ActiveCfg = Release|Any CPU {4EA5F196-DDA8-4941-956B-D413B03051C9}.Release|x64.Build.0 = Release|Any CPU + {4EA5F196-DDA8-4941-956B-D413B03051C9}.Release|x86.ActiveCfg = Release|Any CPU + {4EA5F196-DDA8-4941-956B-D413B03051C9}.Release|x86.Build.0 = Release|Any CPU {69189D7F-233A-43C1-BC72-00E87B00B906}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {69189D7F-233A-43C1-BC72-00E87B00B906}.Debug|Any CPU.Build.0 = Debug|Any CPU {69189D7F-233A-43C1-BC72-00E87B00B906}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {69189D7F-233A-43C1-BC72-00E87B00B906}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {69189D7F-233A-43C1-BC72-00E87B00B906}.Debug|x86.ActiveCfg = Debug|Any CPU - {69189D7F-233A-43C1-BC72-00E87B00B906}.Debug|x86.Build.0 = Debug|Any CPU {69189D7F-233A-43C1-BC72-00E87B00B906}.Debug|x64.ActiveCfg = Debug|Any CPU {69189D7F-233A-43C1-BC72-00E87B00B906}.Debug|x64.Build.0 = Debug|Any CPU + {69189D7F-233A-43C1-BC72-00E87B00B906}.Debug|x86.ActiveCfg = Debug|Any CPU + {69189D7F-233A-43C1-BC72-00E87B00B906}.Debug|x86.Build.0 = Debug|Any CPU {69189D7F-233A-43C1-BC72-00E87B00B906}.Release|Any CPU.ActiveCfg = Release|Any CPU {69189D7F-233A-43C1-BC72-00E87B00B906}.Release|Any CPU.Build.0 = Release|Any CPU {69189D7F-233A-43C1-BC72-00E87B00B906}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {69189D7F-233A-43C1-BC72-00E87B00B906}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {69189D7F-233A-43C1-BC72-00E87B00B906}.Release|x86.ActiveCfg = Release|Any CPU - {69189D7F-233A-43C1-BC72-00E87B00B906}.Release|x86.Build.0 = Release|Any CPU {69189D7F-233A-43C1-BC72-00E87B00B906}.Release|x64.ActiveCfg = Release|Any CPU {69189D7F-233A-43C1-BC72-00E87B00B906}.Release|x64.Build.0 = Release|Any CPU + {69189D7F-233A-43C1-BC72-00E87B00B906}.Release|x86.ActiveCfg = Release|Any CPU + {69189D7F-233A-43C1-BC72-00E87B00B906}.Release|x86.Build.0 = Release|Any CPU {C93915CB-A87F-43FF-A455-92F5B5353C8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C93915CB-A87F-43FF-A455-92F5B5353C8C}.Debug|Any CPU.Build.0 = Debug|Any CPU {C93915CB-A87F-43FF-A455-92F5B5353C8C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {C93915CB-A87F-43FF-A455-92F5B5353C8C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {C93915CB-A87F-43FF-A455-92F5B5353C8C}.Debug|x86.ActiveCfg = Debug|Any CPU - {C93915CB-A87F-43FF-A455-92F5B5353C8C}.Debug|x86.Build.0 = Debug|Any CPU {C93915CB-A87F-43FF-A455-92F5B5353C8C}.Debug|x64.ActiveCfg = Debug|Any CPU {C93915CB-A87F-43FF-A455-92F5B5353C8C}.Debug|x64.Build.0 = Debug|Any CPU + {C93915CB-A87F-43FF-A455-92F5B5353C8C}.Debug|x86.ActiveCfg = Debug|Any CPU + {C93915CB-A87F-43FF-A455-92F5B5353C8C}.Debug|x86.Build.0 = Debug|Any CPU {C93915CB-A87F-43FF-A455-92F5B5353C8C}.Release|Any CPU.ActiveCfg = Release|Any CPU {C93915CB-A87F-43FF-A455-92F5B5353C8C}.Release|Any CPU.Build.0 = Release|Any CPU {C93915CB-A87F-43FF-A455-92F5B5353C8C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {C93915CB-A87F-43FF-A455-92F5B5353C8C}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {C93915CB-A87F-43FF-A455-92F5B5353C8C}.Release|x86.ActiveCfg = Release|Any CPU - {C93915CB-A87F-43FF-A455-92F5B5353C8C}.Release|x86.Build.0 = Release|Any CPU {C93915CB-A87F-43FF-A455-92F5B5353C8C}.Release|x64.ActiveCfg = Release|Any CPU {C93915CB-A87F-43FF-A455-92F5B5353C8C}.Release|x64.Build.0 = Release|Any CPU + {C93915CB-A87F-43FF-A455-92F5B5353C8C}.Release|x86.ActiveCfg = Release|Any CPU + {C93915CB-A87F-43FF-A455-92F5B5353C8C}.Release|x86.Build.0 = Release|Any CPU {5D74F344-7050-4721-8CC3-C9D5A705931F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5D74F344-7050-4721-8CC3-C9D5A705931F}.Debug|Any CPU.Build.0 = Debug|Any CPU {5D74F344-7050-4721-8CC3-C9D5A705931F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {5D74F344-7050-4721-8CC3-C9D5A705931F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {5D74F344-7050-4721-8CC3-C9D5A705931F}.Debug|x86.ActiveCfg = Debug|Any CPU - {5D74F344-7050-4721-8CC3-C9D5A705931F}.Debug|x86.Build.0 = Debug|Any CPU {5D74F344-7050-4721-8CC3-C9D5A705931F}.Debug|x64.ActiveCfg = Debug|Any CPU {5D74F344-7050-4721-8CC3-C9D5A705931F}.Debug|x64.Build.0 = Debug|Any CPU + {5D74F344-7050-4721-8CC3-C9D5A705931F}.Debug|x86.ActiveCfg = Debug|Any CPU + {5D74F344-7050-4721-8CC3-C9D5A705931F}.Debug|x86.Build.0 = Debug|Any CPU {5D74F344-7050-4721-8CC3-C9D5A705931F}.Release|Any CPU.ActiveCfg = Release|Any CPU {5D74F344-7050-4721-8CC3-C9D5A705931F}.Release|Any CPU.Build.0 = Release|Any CPU {5D74F344-7050-4721-8CC3-C9D5A705931F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {5D74F344-7050-4721-8CC3-C9D5A705931F}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {5D74F344-7050-4721-8CC3-C9D5A705931F}.Release|x86.ActiveCfg = Release|Any CPU - {5D74F344-7050-4721-8CC3-C9D5A705931F}.Release|x86.Build.0 = Release|Any CPU {5D74F344-7050-4721-8CC3-C9D5A705931F}.Release|x64.ActiveCfg = Release|Any CPU {5D74F344-7050-4721-8CC3-C9D5A705931F}.Release|x64.Build.0 = Release|Any CPU + {5D74F344-7050-4721-8CC3-C9D5A705931F}.Release|x86.ActiveCfg = Release|Any CPU + {5D74F344-7050-4721-8CC3-C9D5A705931F}.Release|x86.Build.0 = Release|Any CPU {D5B65576-F375-46E9-8A00-CC3C32E8DBDE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D5B65576-F375-46E9-8A00-CC3C32E8DBDE}.Debug|Any CPU.Build.0 = Debug|Any CPU {D5B65576-F375-46E9-8A00-CC3C32E8DBDE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {D5B65576-F375-46E9-8A00-CC3C32E8DBDE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {D5B65576-F375-46E9-8A00-CC3C32E8DBDE}.Debug|x86.ActiveCfg = Debug|Any CPU - {D5B65576-F375-46E9-8A00-CC3C32E8DBDE}.Debug|x86.Build.0 = Debug|Any CPU {D5B65576-F375-46E9-8A00-CC3C32E8DBDE}.Debug|x64.ActiveCfg = Debug|Any CPU {D5B65576-F375-46E9-8A00-CC3C32E8DBDE}.Debug|x64.Build.0 = Debug|Any CPU + {D5B65576-F375-46E9-8A00-CC3C32E8DBDE}.Debug|x86.ActiveCfg = Debug|Any CPU + {D5B65576-F375-46E9-8A00-CC3C32E8DBDE}.Debug|x86.Build.0 = Debug|Any CPU {D5B65576-F375-46E9-8A00-CC3C32E8DBDE}.Release|Any CPU.ActiveCfg = Release|Any CPU {D5B65576-F375-46E9-8A00-CC3C32E8DBDE}.Release|Any CPU.Build.0 = Release|Any CPU {D5B65576-F375-46E9-8A00-CC3C32E8DBDE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {D5B65576-F375-46E9-8A00-CC3C32E8DBDE}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {D5B65576-F375-46E9-8A00-CC3C32E8DBDE}.Release|x86.ActiveCfg = Release|Any CPU - {D5B65576-F375-46E9-8A00-CC3C32E8DBDE}.Release|x86.Build.0 = Release|Any CPU {D5B65576-F375-46E9-8A00-CC3C32E8DBDE}.Release|x64.ActiveCfg = Release|Any CPU {D5B65576-F375-46E9-8A00-CC3C32E8DBDE}.Release|x64.Build.0 = Release|Any CPU + {D5B65576-F375-46E9-8A00-CC3C32E8DBDE}.Release|x86.ActiveCfg = Release|Any CPU + {D5B65576-F375-46E9-8A00-CC3C32E8DBDE}.Release|x86.Build.0 = Release|Any CPU {0E6A0B80-58B7-4AA2-9E40-EE0AA5D4719E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0E6A0B80-58B7-4AA2-9E40-EE0AA5D4719E}.Debug|Any CPU.Build.0 = Debug|Any CPU {0E6A0B80-58B7-4AA2-9E40-EE0AA5D4719E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {0E6A0B80-58B7-4AA2-9E40-EE0AA5D4719E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {0E6A0B80-58B7-4AA2-9E40-EE0AA5D4719E}.Debug|x86.ActiveCfg = Debug|Any CPU - {0E6A0B80-58B7-4AA2-9E40-EE0AA5D4719E}.Debug|x86.Build.0 = Debug|Any CPU {0E6A0B80-58B7-4AA2-9E40-EE0AA5D4719E}.Debug|x64.ActiveCfg = Debug|Any CPU {0E6A0B80-58B7-4AA2-9E40-EE0AA5D4719E}.Debug|x64.Build.0 = Debug|Any CPU + {0E6A0B80-58B7-4AA2-9E40-EE0AA5D4719E}.Debug|x86.ActiveCfg = Debug|Any CPU + {0E6A0B80-58B7-4AA2-9E40-EE0AA5D4719E}.Debug|x86.Build.0 = Debug|Any CPU {0E6A0B80-58B7-4AA2-9E40-EE0AA5D4719E}.Release|Any CPU.ActiveCfg = Release|Any CPU {0E6A0B80-58B7-4AA2-9E40-EE0AA5D4719E}.Release|Any CPU.Build.0 = Release|Any CPU {0E6A0B80-58B7-4AA2-9E40-EE0AA5D4719E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {0E6A0B80-58B7-4AA2-9E40-EE0AA5D4719E}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {0E6A0B80-58B7-4AA2-9E40-EE0AA5D4719E}.Release|x86.ActiveCfg = Release|Any CPU - {0E6A0B80-58B7-4AA2-9E40-EE0AA5D4719E}.Release|x86.Build.0 = Release|Any CPU {0E6A0B80-58B7-4AA2-9E40-EE0AA5D4719E}.Release|x64.ActiveCfg = Release|Any CPU {0E6A0B80-58B7-4AA2-9E40-EE0AA5D4719E}.Release|x64.Build.0 = Release|Any CPU + {0E6A0B80-58B7-4AA2-9E40-EE0AA5D4719E}.Release|x86.ActiveCfg = Release|Any CPU + {0E6A0B80-58B7-4AA2-9E40-EE0AA5D4719E}.Release|x86.Build.0 = Release|Any CPU {79CA356E-B08C-4D88-88C9-653EC8D8BF4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {79CA356E-B08C-4D88-88C9-653EC8D8BF4D}.Debug|Any CPU.Build.0 = Debug|Any CPU {79CA356E-B08C-4D88-88C9-653EC8D8BF4D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {79CA356E-B08C-4D88-88C9-653EC8D8BF4D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {79CA356E-B08C-4D88-88C9-653EC8D8BF4D}.Debug|x86.ActiveCfg = Debug|Any CPU - {79CA356E-B08C-4D88-88C9-653EC8D8BF4D}.Debug|x86.Build.0 = Debug|Any CPU {79CA356E-B08C-4D88-88C9-653EC8D8BF4D}.Debug|x64.ActiveCfg = Debug|Any CPU {79CA356E-B08C-4D88-88C9-653EC8D8BF4D}.Debug|x64.Build.0 = Debug|Any CPU + {79CA356E-B08C-4D88-88C9-653EC8D8BF4D}.Debug|x86.ActiveCfg = Debug|Any CPU + {79CA356E-B08C-4D88-88C9-653EC8D8BF4D}.Debug|x86.Build.0 = Debug|Any CPU {79CA356E-B08C-4D88-88C9-653EC8D8BF4D}.Release|Any CPU.ActiveCfg = Release|Any CPU {79CA356E-B08C-4D88-88C9-653EC8D8BF4D}.Release|Any CPU.Build.0 = Release|Any CPU {79CA356E-B08C-4D88-88C9-653EC8D8BF4D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {79CA356E-B08C-4D88-88C9-653EC8D8BF4D}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {79CA356E-B08C-4D88-88C9-653EC8D8BF4D}.Release|x86.ActiveCfg = Release|Any CPU - {79CA356E-B08C-4D88-88C9-653EC8D8BF4D}.Release|x86.Build.0 = Release|Any CPU {79CA356E-B08C-4D88-88C9-653EC8D8BF4D}.Release|x64.ActiveCfg = Release|Any CPU {79CA356E-B08C-4D88-88C9-653EC8D8BF4D}.Release|x64.Build.0 = Release|Any CPU + {79CA356E-B08C-4D88-88C9-653EC8D8BF4D}.Release|x86.ActiveCfg = Release|Any CPU + {79CA356E-B08C-4D88-88C9-653EC8D8BF4D}.Release|x86.Build.0 = Release|Any CPU {43F23C67-6C9D-44BB-B3A8-9313E570879D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {43F23C67-6C9D-44BB-B3A8-9313E570879D}.Debug|Any CPU.Build.0 = Debug|Any CPU {43F23C67-6C9D-44BB-B3A8-9313E570879D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {43F23C67-6C9D-44BB-B3A8-9313E570879D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {43F23C67-6C9D-44BB-B3A8-9313E570879D}.Debug|x86.ActiveCfg = Debug|Any CPU - {43F23C67-6C9D-44BB-B3A8-9313E570879D}.Debug|x86.Build.0 = Debug|Any CPU {43F23C67-6C9D-44BB-B3A8-9313E570879D}.Debug|x64.ActiveCfg = Debug|Any CPU {43F23C67-6C9D-44BB-B3A8-9313E570879D}.Debug|x64.Build.0 = Debug|Any CPU + {43F23C67-6C9D-44BB-B3A8-9313E570879D}.Debug|x86.ActiveCfg = Debug|Any CPU + {43F23C67-6C9D-44BB-B3A8-9313E570879D}.Debug|x86.Build.0 = Debug|Any CPU {43F23C67-6C9D-44BB-B3A8-9313E570879D}.Release|Any CPU.ActiveCfg = Release|Any CPU {43F23C67-6C9D-44BB-B3A8-9313E570879D}.Release|Any CPU.Build.0 = Release|Any CPU {43F23C67-6C9D-44BB-B3A8-9313E570879D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {43F23C67-6C9D-44BB-B3A8-9313E570879D}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {43F23C67-6C9D-44BB-B3A8-9313E570879D}.Release|x86.ActiveCfg = Release|Any CPU - {43F23C67-6C9D-44BB-B3A8-9313E570879D}.Release|x86.Build.0 = Release|Any CPU {43F23C67-6C9D-44BB-B3A8-9313E570879D}.Release|x64.ActiveCfg = Release|Any CPU {43F23C67-6C9D-44BB-B3A8-9313E570879D}.Release|x64.Build.0 = Release|Any CPU + {43F23C67-6C9D-44BB-B3A8-9313E570879D}.Release|x86.ActiveCfg = Release|Any CPU + {43F23C67-6C9D-44BB-B3A8-9313E570879D}.Release|x86.Build.0 = Release|Any CPU {24360989-A956-45E9-BF07-7FD9E7553C7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {24360989-A956-45E9-BF07-7FD9E7553C7D}.Debug|Any CPU.Build.0 = Debug|Any CPU {24360989-A956-45E9-BF07-7FD9E7553C7D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {24360989-A956-45E9-BF07-7FD9E7553C7D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {24360989-A956-45E9-BF07-7FD9E7553C7D}.Debug|x86.ActiveCfg = Debug|Any CPU - {24360989-A956-45E9-BF07-7FD9E7553C7D}.Debug|x86.Build.0 = Debug|Any CPU {24360989-A956-45E9-BF07-7FD9E7553C7D}.Debug|x64.ActiveCfg = Debug|Any CPU {24360989-A956-45E9-BF07-7FD9E7553C7D}.Debug|x64.Build.0 = Debug|Any CPU + {24360989-A956-45E9-BF07-7FD9E7553C7D}.Debug|x86.ActiveCfg = Debug|Any CPU + {24360989-A956-45E9-BF07-7FD9E7553C7D}.Debug|x86.Build.0 = Debug|Any CPU {24360989-A956-45E9-BF07-7FD9E7553C7D}.Release|Any CPU.ActiveCfg = Release|Any CPU {24360989-A956-45E9-BF07-7FD9E7553C7D}.Release|Any CPU.Build.0 = Release|Any CPU {24360989-A956-45E9-BF07-7FD9E7553C7D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {24360989-A956-45E9-BF07-7FD9E7553C7D}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {24360989-A956-45E9-BF07-7FD9E7553C7D}.Release|x86.ActiveCfg = Release|Any CPU - {24360989-A956-45E9-BF07-7FD9E7553C7D}.Release|x86.Build.0 = Release|Any CPU {24360989-A956-45E9-BF07-7FD9E7553C7D}.Release|x64.ActiveCfg = Release|Any CPU {24360989-A956-45E9-BF07-7FD9E7553C7D}.Release|x64.Build.0 = Release|Any CPU + {24360989-A956-45E9-BF07-7FD9E7553C7D}.Release|x86.ActiveCfg = Release|Any CPU + {24360989-A956-45E9-BF07-7FD9E7553C7D}.Release|x86.Build.0 = Release|Any CPU {9063F17B-5636-4AD5-999B-C894517DB5FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9063F17B-5636-4AD5-999B-C894517DB5FD}.Debug|Any CPU.Build.0 = Debug|Any CPU {9063F17B-5636-4AD5-999B-C894517DB5FD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {9063F17B-5636-4AD5-999B-C894517DB5FD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {9063F17B-5636-4AD5-999B-C894517DB5FD}.Debug|x86.ActiveCfg = Debug|Any CPU - {9063F17B-5636-4AD5-999B-C894517DB5FD}.Debug|x86.Build.0 = Debug|Any CPU {9063F17B-5636-4AD5-999B-C894517DB5FD}.Debug|x64.ActiveCfg = Debug|Any CPU {9063F17B-5636-4AD5-999B-C894517DB5FD}.Debug|x64.Build.0 = Debug|Any CPU + {9063F17B-5636-4AD5-999B-C894517DB5FD}.Debug|x86.ActiveCfg = Debug|Any CPU + {9063F17B-5636-4AD5-999B-C894517DB5FD}.Debug|x86.Build.0 = Debug|Any CPU {9063F17B-5636-4AD5-999B-C894517DB5FD}.Release|Any CPU.ActiveCfg = Release|Any CPU {9063F17B-5636-4AD5-999B-C894517DB5FD}.Release|Any CPU.Build.0 = Release|Any CPU {9063F17B-5636-4AD5-999B-C894517DB5FD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {9063F17B-5636-4AD5-999B-C894517DB5FD}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {9063F17B-5636-4AD5-999B-C894517DB5FD}.Release|x86.ActiveCfg = Release|Any CPU - {9063F17B-5636-4AD5-999B-C894517DB5FD}.Release|x86.Build.0 = Release|Any CPU - {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Debug|x86.ActiveCfg = Debug|Any CPU - {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Debug|x86.Build.0 = Debug|Any CPU - {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Release|Any CPU.Build.0 = Release|Any CPU - {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Release|x86.ActiveCfg = Release|Any CPU - {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Release|x86.Build.0 = Release|Any CPU - {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Debug|Any CPU.Build.0 = Debug|Any CPU - {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Debug|x86.ActiveCfg = Debug|Any CPU - {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Debug|x86.Build.0 = Debug|Any CPU - {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Release|Any CPU.ActiveCfg = Release|Any CPU - {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Release|Any CPU.Build.0 = Release|Any CPU - {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Release|x86.ActiveCfg = Release|Any CPU - {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Release|x86.Build.0 = Release|Any CPU - {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Debug|x86.ActiveCfg = Debug|Any CPU - {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Debug|x86.Build.0 = Debug|Any CPU - {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Release|Any CPU.Build.0 = Release|Any CPU - {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Release|x86.ActiveCfg = Release|Any CPU - {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Release|x86.Build.0 = Release|Any CPU - {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Debug|x86.ActiveCfg = Debug|Any CPU - {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Debug|x86.Build.0 = Debug|Any CPU - {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Release|Any CPU.Build.0 = Release|Any CPU - {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Release|x86.ActiveCfg = Release|Any CPU - {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Release|x86.Build.0 = Release|Any CPU - {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Debug|x86.ActiveCfg = Debug|Any CPU - {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Debug|x86.Build.0 = Debug|Any CPU - {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Release|Any CPU.Build.0 = Release|Any CPU - {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Release|x86.ActiveCfg = Release|Any CPU - {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Release|x86.Build.0 = Release|Any CPU - {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Debug|x86.ActiveCfg = Debug|Any CPU - {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Debug|x86.Build.0 = Debug|Any CPU - {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Release|Any CPU.Build.0 = Release|Any CPU - {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Release|x86.ActiveCfg = Release|Any CPU - {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Release|x86.Build.0 = Release|Any CPU - {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Debug|x86.ActiveCfg = Debug|Any CPU - {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Debug|x86.Build.0 = Debug|Any CPU - {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Release|Any CPU.Build.0 = Release|Any CPU - {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Release|x86.ActiveCfg = Release|Any CPU - {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Release|x86.Build.0 = Release|Any CPU - {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Debug|x86.ActiveCfg = Debug|Any CPU - {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Debug|x86.Build.0 = Debug|Any CPU - {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Release|Any CPU.Build.0 = Release|Any CPU - {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Release|x86.ActiveCfg = Release|Any CPU - {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Release|x86.Build.0 = Release|Any CPU - {260F3200-3C75-4350-9488-789A9652F2A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {260F3200-3C75-4350-9488-789A9652F2A6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {260F3200-3C75-4350-9488-789A9652F2A6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {260F3200-3C75-4350-9488-789A9652F2A6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {260F3200-3C75-4350-9488-789A9652F2A6}.Debug|x86.ActiveCfg = Debug|Any CPU - {260F3200-3C75-4350-9488-789A9652F2A6}.Debug|x86.Build.0 = Debug|Any CPU - {260F3200-3C75-4350-9488-789A9652F2A6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {260F3200-3C75-4350-9488-789A9652F2A6}.Release|Any CPU.Build.0 = Release|Any CPU - {260F3200-3C75-4350-9488-789A9652F2A6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {260F3200-3C75-4350-9488-789A9652F2A6}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {260F3200-3C75-4350-9488-789A9652F2A6}.Release|x86.ActiveCfg = Release|Any CPU - {260F3200-3C75-4350-9488-789A9652F2A6}.Release|x86.Build.0 = Release|Any CPU {9063F17B-5636-4AD5-999B-C894517DB5FD}.Release|x64.ActiveCfg = Release|Any CPU {9063F17B-5636-4AD5-999B-C894517DB5FD}.Release|x64.Build.0 = Release|Any CPU + {9063F17B-5636-4AD5-999B-C894517DB5FD}.Release|x86.ActiveCfg = Release|Any CPU + {9063F17B-5636-4AD5-999B-C894517DB5FD}.Release|x86.Build.0 = Release|Any CPU {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Debug|Any CPU.Build.0 = Debug|Any CPU {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Debug|x86.ActiveCfg = Debug|Any CPU - {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Debug|x86.Build.0 = Debug|Any CPU {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Debug|x64.ActiveCfg = Debug|Any CPU {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Debug|x64.Build.0 = Debug|Any CPU + {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Debug|x86.ActiveCfg = Debug|Any CPU + {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Debug|x86.Build.0 = Debug|Any CPU {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Release|Any CPU.ActiveCfg = Release|Any CPU {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Release|Any CPU.Build.0 = Release|Any CPU {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Release|x86.ActiveCfg = Release|Any CPU - {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Release|x86.Build.0 = Release|Any CPU {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Release|x64.ActiveCfg = Release|Any CPU {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Release|x64.Build.0 = Release|Any CPU + {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Release|x86.ActiveCfg = Release|Any CPU + {231C1680-1590-458A-B9B2-38A3EDEE5E24}.Release|x86.Build.0 = Release|Any CPU {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Debug|Any CPU.Build.0 = Debug|Any CPU {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Debug|x86.ActiveCfg = Debug|Any CPU - {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Debug|x86.Build.0 = Debug|Any CPU {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Debug|x64.ActiveCfg = Debug|Any CPU {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Debug|x64.Build.0 = Debug|Any CPU + {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Debug|x86.ActiveCfg = Debug|Any CPU + {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Debug|x86.Build.0 = Debug|Any CPU {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Release|Any CPU.ActiveCfg = Release|Any CPU {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Release|Any CPU.Build.0 = Release|Any CPU {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Release|x86.ActiveCfg = Release|Any CPU - {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Release|x86.Build.0 = Release|Any CPU {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Release|x64.ActiveCfg = Release|Any CPU {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Release|x64.Build.0 = Release|Any CPU + {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Release|x86.ActiveCfg = Release|Any CPU + {E8CD464E-A64D-4B04-B000-1377EF44FE1B}.Release|x86.Build.0 = Release|Any CPU {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Debug|Any CPU.Build.0 = Debug|Any CPU {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Debug|x86.ActiveCfg = Debug|Any CPU - {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Debug|x86.Build.0 = Debug|Any CPU {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Debug|x64.ActiveCfg = Debug|Any CPU {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Debug|x64.Build.0 = Debug|Any CPU + {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Debug|x86.ActiveCfg = Debug|Any CPU + {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Debug|x86.Build.0 = Debug|Any CPU {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Release|Any CPU.ActiveCfg = Release|Any CPU {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Release|Any CPU.Build.0 = Release|Any CPU {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Release|x86.ActiveCfg = Release|Any CPU - {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Release|x86.Build.0 = Release|Any CPU {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Release|x64.ActiveCfg = Release|Any CPU {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Release|x64.Build.0 = Release|Any CPU + {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Release|x86.ActiveCfg = Release|Any CPU + {8CCF5939-C05A-4153-8965-7F9BD135AD9A}.Release|x86.Build.0 = Release|Any CPU {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Debug|Any CPU.Build.0 = Debug|Any CPU {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Debug|x86.ActiveCfg = Debug|Any CPU - {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Debug|x86.Build.0 = Debug|Any CPU {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Debug|x64.ActiveCfg = Debug|Any CPU {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Debug|x64.Build.0 = Debug|Any CPU + {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Debug|x86.ActiveCfg = Debug|Any CPU + {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Debug|x86.Build.0 = Debug|Any CPU {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Release|Any CPU.ActiveCfg = Release|Any CPU {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Release|Any CPU.Build.0 = Release|Any CPU {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Release|x86.ActiveCfg = Release|Any CPU - {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Release|x86.Build.0 = Release|Any CPU {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Release|x64.ActiveCfg = Release|Any CPU {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Release|x64.Build.0 = Release|Any CPU + {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Release|x86.ActiveCfg = Release|Any CPU + {96C437E2-2D82-4BA0-923A-A0FB4BFAD9D6}.Release|x86.Build.0 = Release|Any CPU {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Debug|Any CPU.Build.0 = Debug|Any CPU {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Debug|x86.ActiveCfg = Debug|Any CPU - {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Debug|x86.Build.0 = Debug|Any CPU {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Debug|x64.ActiveCfg = Debug|Any CPU {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Debug|x64.Build.0 = Debug|Any CPU + {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Debug|x86.ActiveCfg = Debug|Any CPU + {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Debug|x86.Build.0 = Debug|Any CPU {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Release|Any CPU.ActiveCfg = Release|Any CPU {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Release|Any CPU.Build.0 = Release|Any CPU {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Release|x86.ActiveCfg = Release|Any CPU - {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Release|x86.Build.0 = Release|Any CPU {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Release|x64.ActiveCfg = Release|Any CPU {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Release|x64.Build.0 = Release|Any CPU + {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Release|x86.ActiveCfg = Release|Any CPU + {9356DFE9-DDD7-4FBC-8D91-8B80906FDF01}.Release|x86.Build.0 = Release|Any CPU {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Debug|Any CPU.Build.0 = Debug|Any CPU {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Debug|x86.ActiveCfg = Debug|Any CPU - {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Debug|x86.Build.0 = Debug|Any CPU {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Debug|x64.ActiveCfg = Debug|Any CPU {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Debug|x64.Build.0 = Debug|Any CPU + {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Debug|x86.ActiveCfg = Debug|Any CPU + {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Debug|x86.Build.0 = Debug|Any CPU {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Release|Any CPU.ActiveCfg = Release|Any CPU {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Release|Any CPU.Build.0 = Release|Any CPU {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Release|x86.ActiveCfg = Release|Any CPU - {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Release|x86.Build.0 = Release|Any CPU {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Release|x64.ActiveCfg = Release|Any CPU {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Release|x64.Build.0 = Release|Any CPU + {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Release|x86.ActiveCfg = Release|Any CPU + {E32BD2AE-E80B-4BC7-86B1-A231E3A22461}.Release|x86.Build.0 = Release|Any CPU {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Debug|Any CPU.Build.0 = Debug|Any CPU {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Debug|x86.ActiveCfg = Debug|Any CPU - {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Debug|x86.Build.0 = Debug|Any CPU {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Debug|x64.ActiveCfg = Debug|Any CPU {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Debug|x64.Build.0 = Debug|Any CPU + {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Debug|x86.ActiveCfg = Debug|Any CPU + {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Debug|x86.Build.0 = Debug|Any CPU {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Release|Any CPU.ActiveCfg = Release|Any CPU {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Release|Any CPU.Build.0 = Release|Any CPU {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Release|x86.ActiveCfg = Release|Any CPU - {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Release|x86.Build.0 = Release|Any CPU {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Release|x64.ActiveCfg = Release|Any CPU {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Release|x64.Build.0 = Release|Any CPU + {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Release|x86.ActiveCfg = Release|Any CPU + {A29D7CFD-825A-438C-A5DE-0BB2B1B1B474}.Release|x86.Build.0 = Release|Any CPU {260F3200-3C75-4350-9488-789A9652F2A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {260F3200-3C75-4350-9488-789A9652F2A6}.Debug|Any CPU.Build.0 = Debug|Any CPU {260F3200-3C75-4350-9488-789A9652F2A6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {260F3200-3C75-4350-9488-789A9652F2A6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {260F3200-3C75-4350-9488-789A9652F2A6}.Debug|x86.ActiveCfg = Debug|Any CPU - {260F3200-3C75-4350-9488-789A9652F2A6}.Debug|x86.Build.0 = Debug|Any CPU {260F3200-3C75-4350-9488-789A9652F2A6}.Debug|x64.ActiveCfg = Debug|Any CPU {260F3200-3C75-4350-9488-789A9652F2A6}.Debug|x64.Build.0 = Debug|Any CPU + {260F3200-3C75-4350-9488-789A9652F2A6}.Debug|x86.ActiveCfg = Debug|Any CPU + {260F3200-3C75-4350-9488-789A9652F2A6}.Debug|x86.Build.0 = Debug|Any CPU {260F3200-3C75-4350-9488-789A9652F2A6}.Release|Any CPU.ActiveCfg = Release|Any CPU {260F3200-3C75-4350-9488-789A9652F2A6}.Release|Any CPU.Build.0 = Release|Any CPU {260F3200-3C75-4350-9488-789A9652F2A6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {260F3200-3C75-4350-9488-789A9652F2A6}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {260F3200-3C75-4350-9488-789A9652F2A6}.Release|x86.ActiveCfg = Release|Any CPU - {260F3200-3C75-4350-9488-789A9652F2A6}.Release|x86.Build.0 = Release|Any CPU {260F3200-3C75-4350-9488-789A9652F2A6}.Release|x64.ActiveCfg = Release|Any CPU {260F3200-3C75-4350-9488-789A9652F2A6}.Release|x64.Build.0 = Release|Any CPU + {260F3200-3C75-4350-9488-789A9652F2A6}.Release|x86.ActiveCfg = Release|Any CPU + {260F3200-3C75-4350-9488-789A9652F2A6}.Release|x86.Build.0 = Release|Any CPU + {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Debug|x64.ActiveCfg = Debug|Any CPU + {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Debug|x64.Build.0 = Debug|Any CPU + {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Debug|x86.ActiveCfg = Debug|Any CPU + {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Debug|x86.Build.0 = Debug|Any CPU + {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Release|Any CPU.Build.0 = Release|Any CPU + {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Release|x64.ActiveCfg = Release|Any CPU + {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Release|x64.Build.0 = Release|Any CPU + {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Release|x86.ActiveCfg = Release|Any CPU + {34E2B97F-FCD6-47C0-9B41-12EC4A8E4E1B}.Release|x86.Build.0 = Release|Any CPU {39B7CFF4-4CA9-4B1F-B9C4-EED3A657D00D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {39B7CFF4-4CA9-4B1F-B9C4-EED3A657D00D}.Debug|Any CPU.Build.0 = Debug|Any CPU {39B7CFF4-4CA9-4B1F-B9C4-EED3A657D00D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {39B7CFF4-4CA9-4B1F-B9C4-EED3A657D00D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {39B7CFF4-4CA9-4B1F-B9C4-EED3A657D00D}.Debug|x86.ActiveCfg = Debug|Any CPU - {39B7CFF4-4CA9-4B1F-B9C4-EED3A657D00D}.Debug|x86.Build.0 = Debug|Any CPU {39B7CFF4-4CA9-4B1F-B9C4-EED3A657D00D}.Debug|x64.ActiveCfg = Debug|Any CPU {39B7CFF4-4CA9-4B1F-B9C4-EED3A657D00D}.Debug|x64.Build.0 = Debug|Any CPU + {39B7CFF4-4CA9-4B1F-B9C4-EED3A657D00D}.Debug|x86.ActiveCfg = Debug|Any CPU + {39B7CFF4-4CA9-4B1F-B9C4-EED3A657D00D}.Debug|x86.Build.0 = Debug|Any CPU {39B7CFF4-4CA9-4B1F-B9C4-EED3A657D00D}.Release|Any CPU.ActiveCfg = Release|Any CPU {39B7CFF4-4CA9-4B1F-B9C4-EED3A657D00D}.Release|Any CPU.Build.0 = Release|Any CPU {39B7CFF4-4CA9-4B1F-B9C4-EED3A657D00D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {39B7CFF4-4CA9-4B1F-B9C4-EED3A657D00D}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {39B7CFF4-4CA9-4B1F-B9C4-EED3A657D00D}.Release|x64.ActiveCfg = Release|Any CPU + {39B7CFF4-4CA9-4B1F-B9C4-EED3A657D00D}.Release|x64.Build.0 = Release|Any CPU {39B7CFF4-4CA9-4B1F-B9C4-EED3A657D00D}.Release|x86.ActiveCfg = Release|Any CPU {39B7CFF4-4CA9-4B1F-B9C4-EED3A657D00D}.Release|x86.Build.0 = Release|Any CPU {5A267C6D-5EFF-6C51-B4C9-6A1FF0798E25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5A267C6D-5EFF-6C51-B4C9-6A1FF0798E25}.Debug|Any CPU.Build.0 = Debug|Any CPU {5A267C6D-5EFF-6C51-B4C9-6A1FF0798E25}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {5A267C6D-5EFF-6C51-B4C9-6A1FF0798E25}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {5A267C6D-5EFF-6C51-B4C9-6A1FF0798E25}.Debug|x64.ActiveCfg = Debug|Any CPU + {5A267C6D-5EFF-6C51-B4C9-6A1FF0798E25}.Debug|x64.Build.0 = Debug|Any CPU {5A267C6D-5EFF-6C51-B4C9-6A1FF0798E25}.Debug|x86.ActiveCfg = Debug|Any CPU {5A267C6D-5EFF-6C51-B4C9-6A1FF0798E25}.Debug|x86.Build.0 = Debug|Any CPU {5A267C6D-5EFF-6C51-B4C9-6A1FF0798E25}.Release|Any CPU.ActiveCfg = Release|Any CPU {5A267C6D-5EFF-6C51-B4C9-6A1FF0798E25}.Release|Any CPU.Build.0 = Release|Any CPU {5A267C6D-5EFF-6C51-B4C9-6A1FF0798E25}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {5A267C6D-5EFF-6C51-B4C9-6A1FF0798E25}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {5A267C6D-5EFF-6C51-B4C9-6A1FF0798E25}.Release|x64.ActiveCfg = Release|Any CPU + {5A267C6D-5EFF-6C51-B4C9-6A1FF0798E25}.Release|x64.Build.0 = Release|Any CPU {5A267C6D-5EFF-6C51-B4C9-6A1FF0798E25}.Release|x86.ActiveCfg = Release|Any CPU {5A267C6D-5EFF-6C51-B4C9-6A1FF0798E25}.Release|x86.Build.0 = Release|Any CPU {261E1392-7713-525F-2859-7B40CA416A50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {261E1392-7713-525F-2859-7B40CA416A50}.Debug|Any CPU.Build.0 = Debug|Any CPU {261E1392-7713-525F-2859-7B40CA416A50}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {261E1392-7713-525F-2859-7B40CA416A50}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {261E1392-7713-525F-2859-7B40CA416A50}.Debug|x64.ActiveCfg = Debug|Any CPU + {261E1392-7713-525F-2859-7B40CA416A50}.Debug|x64.Build.0 = Debug|Any CPU {261E1392-7713-525F-2859-7B40CA416A50}.Debug|x86.ActiveCfg = Debug|Any CPU {261E1392-7713-525F-2859-7B40CA416A50}.Debug|x86.Build.0 = Debug|Any CPU {261E1392-7713-525F-2859-7B40CA416A50}.Release|Any CPU.ActiveCfg = Release|Any CPU {261E1392-7713-525F-2859-7B40CA416A50}.Release|Any CPU.Build.0 = Release|Any CPU {261E1392-7713-525F-2859-7B40CA416A50}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {261E1392-7713-525F-2859-7B40CA416A50}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {261E1392-7713-525F-2859-7B40CA416A50}.Release|x64.ActiveCfg = Release|Any CPU + {261E1392-7713-525F-2859-7B40CA416A50}.Release|x64.Build.0 = Release|Any CPU {261E1392-7713-525F-2859-7B40CA416A50}.Release|x86.ActiveCfg = Release|Any CPU {261E1392-7713-525F-2859-7B40CA416A50}.Release|x86.Build.0 = Release|Any CPU - {39B7CFF4-4CA9-4B1F-B9C4-EED3A657D00D}.Release|x64.ActiveCfg = Release|Any CPU - {39B7CFF4-4CA9-4B1F-B9C4-EED3A657D00D}.Release|x64.Build.0 = Release|Any CPU {F1250991-F5AA-4CAB-BF67-6C5C95EEECC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F1250991-F5AA-4CAB-BF67-6C5C95EEECC9}.Debug|Any CPU.Build.0 = Debug|Any CPU {F1250991-F5AA-4CAB-BF67-6C5C95EEECC9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {F1250991-F5AA-4CAB-BF67-6C5C95EEECC9}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {F1250991-F5AA-4CAB-BF67-6C5C95EEECC9}.Debug|x86.ActiveCfg = Debug|Any CPU - {F1250991-F5AA-4CAB-BF67-6C5C95EEECC9}.Debug|x86.Build.0 = Debug|Any CPU {F1250991-F5AA-4CAB-BF67-6C5C95EEECC9}.Debug|x64.ActiveCfg = Debug|Any CPU {F1250991-F5AA-4CAB-BF67-6C5C95EEECC9}.Debug|x64.Build.0 = Debug|Any CPU + {F1250991-F5AA-4CAB-BF67-6C5C95EEECC9}.Debug|x86.ActiveCfg = Debug|Any CPU + {F1250991-F5AA-4CAB-BF67-6C5C95EEECC9}.Debug|x86.Build.0 = Debug|Any CPU {F1250991-F5AA-4CAB-BF67-6C5C95EEECC9}.Release|Any CPU.ActiveCfg = Release|Any CPU {F1250991-F5AA-4CAB-BF67-6C5C95EEECC9}.Release|Any CPU.Build.0 = Release|Any CPU {F1250991-F5AA-4CAB-BF67-6C5C95EEECC9}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {F1250991-F5AA-4CAB-BF67-6C5C95EEECC9}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {F1250991-F5AA-4CAB-BF67-6C5C95EEECC9}.Release|x86.ActiveCfg = Release|Any CPU - {F1250991-F5AA-4CAB-BF67-6C5C95EEECC9}.Release|x86.Build.0 = Release|Any CPU {F1250991-F5AA-4CAB-BF67-6C5C95EEECC9}.Release|x64.ActiveCfg = Release|Any CPU {F1250991-F5AA-4CAB-BF67-6C5C95EEECC9}.Release|x64.Build.0 = Release|Any CPU + {F1250991-F5AA-4CAB-BF67-6C5C95EEECC9}.Release|x86.ActiveCfg = Release|Any CPU + {F1250991-F5AA-4CAB-BF67-6C5C95EEECC9}.Release|x86.Build.0 = Release|Any CPU {803BCF53-9447-4C9A-8718-61611B4E6480}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {803BCF53-9447-4C9A-8718-61611B4E6480}.Debug|Any CPU.Build.0 = Debug|Any CPU {803BCF53-9447-4C9A-8718-61611B4E6480}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {803BCF53-9447-4C9A-8718-61611B4E6480}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {803BCF53-9447-4C9A-8718-61611B4E6480}.Debug|x86.ActiveCfg = Debug|Any CPU - {803BCF53-9447-4C9A-8718-61611B4E6480}.Debug|x86.Build.0 = Debug|Any CPU {803BCF53-9447-4C9A-8718-61611B4E6480}.Debug|x64.ActiveCfg = Debug|Any CPU {803BCF53-9447-4C9A-8718-61611B4E6480}.Debug|x64.Build.0 = Debug|Any CPU + {803BCF53-9447-4C9A-8718-61611B4E6480}.Debug|x86.ActiveCfg = Debug|Any CPU + {803BCF53-9447-4C9A-8718-61611B4E6480}.Debug|x86.Build.0 = Debug|Any CPU {803BCF53-9447-4C9A-8718-61611B4E6480}.Release|Any CPU.ActiveCfg = Release|Any CPU {803BCF53-9447-4C9A-8718-61611B4E6480}.Release|Any CPU.Build.0 = Release|Any CPU {803BCF53-9447-4C9A-8718-61611B4E6480}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {803BCF53-9447-4C9A-8718-61611B4E6480}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {803BCF53-9447-4C9A-8718-61611B4E6480}.Release|x86.ActiveCfg = Release|Any CPU - {803BCF53-9447-4C9A-8718-61611B4E6480}.Release|x86.Build.0 = Release|Any CPU {803BCF53-9447-4C9A-8718-61611B4E6480}.Release|x64.ActiveCfg = Release|Any CPU {803BCF53-9447-4C9A-8718-61611B4E6480}.Release|x64.Build.0 = Release|Any CPU + {803BCF53-9447-4C9A-8718-61611B4E6480}.Release|x86.ActiveCfg = Release|Any CPU + {803BCF53-9447-4C9A-8718-61611B4E6480}.Release|x86.Build.0 = Release|Any CPU + {F9D1D723-2F7A-CBB4-59CA-457DBFE722D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F9D1D723-2F7A-CBB4-59CA-457DBFE722D3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F9D1D723-2F7A-CBB4-59CA-457DBFE722D3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {F9D1D723-2F7A-CBB4-59CA-457DBFE722D3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {F9D1D723-2F7A-CBB4-59CA-457DBFE722D3}.Debug|x64.ActiveCfg = Debug|Any CPU + {F9D1D723-2F7A-CBB4-59CA-457DBFE722D3}.Debug|x64.Build.0 = Debug|Any CPU + {F9D1D723-2F7A-CBB4-59CA-457DBFE722D3}.Debug|x86.ActiveCfg = Debug|Any CPU + {F9D1D723-2F7A-CBB4-59CA-457DBFE722D3}.Debug|x86.Build.0 = Debug|Any CPU + {F9D1D723-2F7A-CBB4-59CA-457DBFE722D3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F9D1D723-2F7A-CBB4-59CA-457DBFE722D3}.Release|Any CPU.Build.0 = Release|Any CPU + {F9D1D723-2F7A-CBB4-59CA-457DBFE722D3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {F9D1D723-2F7A-CBB4-59CA-457DBFE722D3}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {F9D1D723-2F7A-CBB4-59CA-457DBFE722D3}.Release|x64.ActiveCfg = Release|Any CPU + {F9D1D723-2F7A-CBB4-59CA-457DBFE722D3}.Release|x64.Build.0 = Release|Any CPU + {F9D1D723-2F7A-CBB4-59CA-457DBFE722D3}.Release|x86.ActiveCfg = Release|Any CPU + {F9D1D723-2F7A-CBB4-59CA-457DBFE722D3}.Release|x86.Build.0 = Release|Any CPU + {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Debug|x64.ActiveCfg = Debug|Any CPU + {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Debug|x64.Build.0 = Debug|Any CPU + {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Debug|x86.ActiveCfg = Debug|Any CPU + {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Debug|x86.Build.0 = Debug|Any CPU + {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Release|Any CPU.Build.0 = Release|Any CPU + {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Release|x64.ActiveCfg = Release|Any CPU + {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Release|x64.Build.0 = Release|Any CPU + {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Release|x86.ActiveCfg = Release|Any CPU + {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Release|x86.Build.0 = Release|Any CPU + {A0611BBC-00BB-811C-4DFF-CAAB079BB89C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A0611BBC-00BB-811C-4DFF-CAAB079BB89C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A0611BBC-00BB-811C-4DFF-CAAB079BB89C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {A0611BBC-00BB-811C-4DFF-CAAB079BB89C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {A0611BBC-00BB-811C-4DFF-CAAB079BB89C}.Debug|x64.ActiveCfg = Debug|Any CPU + {A0611BBC-00BB-811C-4DFF-CAAB079BB89C}.Debug|x64.Build.0 = Debug|Any CPU + {A0611BBC-00BB-811C-4DFF-CAAB079BB89C}.Debug|x86.ActiveCfg = Debug|Any CPU + {A0611BBC-00BB-811C-4DFF-CAAB079BB89C}.Debug|x86.Build.0 = Debug|Any CPU + {A0611BBC-00BB-811C-4DFF-CAAB079BB89C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A0611BBC-00BB-811C-4DFF-CAAB079BB89C}.Release|Any CPU.Build.0 = Release|Any CPU + {A0611BBC-00BB-811C-4DFF-CAAB079BB89C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {A0611BBC-00BB-811C-4DFF-CAAB079BB89C}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {A0611BBC-00BB-811C-4DFF-CAAB079BB89C}.Release|x64.ActiveCfg = Release|Any CPU + {A0611BBC-00BB-811C-4DFF-CAAB079BB89C}.Release|x64.Build.0 = Release|Any CPU + {A0611BBC-00BB-811C-4DFF-CAAB079BB89C}.Release|x86.ActiveCfg = Release|Any CPU + {A0611BBC-00BB-811C-4DFF-CAAB079BB89C}.Release|x86.Build.0 = Release|Any CPU + {29C4E1FC-2BEA-45A9-BF1A-1D7DE77E48D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {29C4E1FC-2BEA-45A9-BF1A-1D7DE77E48D2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {29C4E1FC-2BEA-45A9-BF1A-1D7DE77E48D2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {29C4E1FC-2BEA-45A9-BF1A-1D7DE77E48D2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {29C4E1FC-2BEA-45A9-BF1A-1D7DE77E48D2}.Debug|x64.ActiveCfg = Debug|Any CPU + {29C4E1FC-2BEA-45A9-BF1A-1D7DE77E48D2}.Debug|x64.Build.0 = Debug|Any CPU + {29C4E1FC-2BEA-45A9-BF1A-1D7DE77E48D2}.Debug|x86.ActiveCfg = Debug|Any CPU + {29C4E1FC-2BEA-45A9-BF1A-1D7DE77E48D2}.Debug|x86.Build.0 = Debug|Any CPU + {29C4E1FC-2BEA-45A9-BF1A-1D7DE77E48D2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {29C4E1FC-2BEA-45A9-BF1A-1D7DE77E48D2}.Release|Any CPU.Build.0 = Release|Any CPU + {29C4E1FC-2BEA-45A9-BF1A-1D7DE77E48D2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {29C4E1FC-2BEA-45A9-BF1A-1D7DE77E48D2}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {29C4E1FC-2BEA-45A9-BF1A-1D7DE77E48D2}.Release|x64.ActiveCfg = Release|Any CPU + {29C4E1FC-2BEA-45A9-BF1A-1D7DE77E48D2}.Release|x64.Build.0 = Release|Any CPU + {29C4E1FC-2BEA-45A9-BF1A-1D7DE77E48D2}.Release|x86.ActiveCfg = Release|Any CPU + {29C4E1FC-2BEA-45A9-BF1A-1D7DE77E48D2}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -3770,6 +3762,11 @@ Global {261E1392-7713-525F-2859-7B40CA416A50} = {329736D2-BF92-4D06-A7BF-19F4B6B64EDD} {F1250991-F5AA-4CAB-BF67-6C5C95EEECC9} = {07C2787E-EAC7-C090-1BA3-A61EC2A24D84} {803BCF53-9447-4C9A-8718-61611B4E6480} = {329736D2-BF92-4D06-A7BF-19F4B6B64EDD} + {F9D1D723-2F7A-CBB4-59CA-457DBFE722D3} = {C2446CB2-4920-4046-B794-536E23CE09AD} + {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A} = {C2446CB2-4920-4046-B794-536E23CE09AD} + {A0611BBC-00BB-811C-4DFF-CAAB079BB89C} = {C2446CB2-4920-4046-B794-536E23CE09AD} + {60F7B2E1-1635-44A6-A2A9-06EA2D61E152} = {235DE1F1-E71B-4817-8E27-3B34FF006E4C} + {29C4E1FC-2BEA-45A9-BF1A-1D7DE77E48D2} = {60F7B2E1-1635-44A6-A2A9-06EA2D61E152} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {8B7C7E31-2E32-4E0D-9426-BC9AF22E9F4C} diff --git a/Directory.Packages.props b/Directory.Packages.props index 32c6455380..546e9dbdeb 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -59,6 +59,9 @@ + + + diff --git a/samples/Analyzer/AnalyzerConsoleApp/AnalyzerConsoleApp.csproj b/samples/Analyzer/AnalyzerConsoleApp/AnalyzerConsoleApp.csproj new file mode 100644 index 0000000000..4e2cda9daa --- /dev/null +++ b/samples/Analyzer/AnalyzerConsoleApp/AnalyzerConsoleApp.csproj @@ -0,0 +1,16 @@ + + + + Exe + net9.0 + enable + enable + + + + + + + + + diff --git a/samples/Analyzer/AnalyzerConsoleApp/Program.cs b/samples/Analyzer/AnalyzerConsoleApp/Program.cs new file mode 100644 index 0000000000..fee80a8c6b --- /dev/null +++ b/samples/Analyzer/AnalyzerConsoleApp/Program.cs @@ -0,0 +1,30 @@ +// The MIT License (MIT) +// Copyright © 2014 Ian Cooper +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using Paramore.Brighter; + +Console.WriteLine("Hello, World!"); + +var X = new PublicationRequestTypeMissing(); +public class PublicationRequestTypeMissing : Publication +{ + +} diff --git a/samples/Analyzer/AnalyzerSamples/AnalyzerSamples.csproj b/samples/Analyzer/AnalyzerSamples/AnalyzerSamples.csproj new file mode 100644 index 0000000000..546304d333 --- /dev/null +++ b/samples/Analyzer/AnalyzerSamples/AnalyzerSamples.csproj @@ -0,0 +1,17 @@ + + + + net9.0 + enable + enable + + + + + + + + + + + diff --git a/samples/Analyzer/AnalyzerSamples/PublicationSample.cs b/samples/Analyzer/AnalyzerSamples/PublicationSample.cs new file mode 100644 index 0000000000..d8b9632996 --- /dev/null +++ b/samples/Analyzer/AnalyzerSamples/PublicationSample.cs @@ -0,0 +1,40 @@ + +using Paramore.Brighter; + +namespace AnalyzerSamples +{ + public static class PublicationCreator + { + public static Publication GetPublicationNoRequestType() + { + return new PublicationSample() { + Subject="test" + }; + } + public static Publication GetPublicationWrongRequestType() + { + return new PublicationSample() + { + Subject = "test", + RequestType = typeof(string) + }; + } + public static Publication GetPublicationWithRequestType() + { + return new PublicationSample() + { + Subject = "test", + RequestType = typeof(EventSample) + }; + } + } + public class PublicationSample : Publication + { + } + public class EventSample : Event + { + public EventSample(Id id) : base(id) + { + } + } +} diff --git a/src/Paramore.Brighter.Analyzer.Package/Paramore.Brighter.Analyzer.Package.csproj b/src/Paramore.Brighter.Analyzer.Package/Paramore.Brighter.Analyzer.Package.csproj new file mode 100644 index 0000000000..deb2d58499 --- /dev/null +++ b/src/Paramore.Brighter.Analyzer.Package/Paramore.Brighter.Analyzer.Package.csproj @@ -0,0 +1,44 @@ + + + + netstandard2.0 + false + true + true + + + + Paramore.Brighter.Analyzer + 1.0.0.0 + AboubakrWork + http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE + http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE + http://ICON_URL_HERE_OR_DELETE_THIS_LINE + http://REPOSITORY_URL_HERE_OR_DELETE_THIS_LINE + false + Paramore.Brighter.Analyzer + Summary of changes made in this release of the package. + Copyright + Paramore.Brighter.Analyzer, analyzers + true + true + + $(TargetsForTfmSpecificContentInPackage);_AddAnalyzersToOutput + + + + + + + + + + + + + + + + + + diff --git a/src/Paramore.Brighter.Analyzer.Package/tools/install.ps1 b/src/Paramore.Brighter.Analyzer.Package/tools/install.ps1 new file mode 100644 index 0000000000..53136a238f --- /dev/null +++ b/src/Paramore.Brighter.Analyzer.Package/tools/install.ps1 @@ -0,0 +1,275 @@ +param($installPath, $toolsPath, $package, $project) + +if($project.Object.SupportsPackageDependencyResolution) +{ + if($project.Object.SupportsPackageDependencyResolution()) + { + # Do not install analyzers via install.ps1, instead let the project system handle it. + return + } +} + +$analyzersPaths = Join-Path (Join-Path (Split-Path -Path $toolsPath -Parent) "analyzers") * -Resolve + +foreach($analyzersPath in $analyzersPaths) +{ + if (Test-Path $analyzersPath) + { + # Install the language agnostic analyzers. + foreach ($analyzerFilePath in Get-ChildItem -Path "$analyzersPath\*.dll" -Exclude *.resources.dll) + { + if($project.Object.AnalyzerReferences) + { + $project.Object.AnalyzerReferences.Add($analyzerFilePath.FullName) + } + } + } +} + +# $project.Type gives the language name like (C# or VB.NET) +$languageFolder = "" +if($project.Type -eq "C#") +{ + $languageFolder = "cs" +} +if($project.Type -eq "VB.NET") +{ + $languageFolder = "vb" +} +if($languageFolder -eq "") +{ + return +} + +foreach($analyzersPath in $analyzersPaths) +{ + # Install language specific analyzers. + $languageAnalyzersPath = join-path $analyzersPath $languageFolder + if (Test-Path $languageAnalyzersPath) + { + foreach ($analyzerFilePath in Get-ChildItem -Path "$languageAnalyzersPath\*.dll" -Exclude *.resources.dll) + { + if($project.Object.AnalyzerReferences) + { + $project.Object.AnalyzerReferences.Add($analyzerFilePath.FullName) + } + } + } +} +# SIG # Begin signature block +# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCA/i+qRUHsWzI0s +# FVk99zLgt/HOEQ33uvkFsWtHTHZgf6CCDXYwggX0MIID3KADAgECAhMzAAADTrU8 +# esGEb+srAAAAAANOMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjMwMzE2MTg0MzI5WhcNMjQwMzE0MTg0MzI5WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDdCKiNI6IBFWuvJUmf6WdOJqZmIwYs5G7AJD5UbcL6tsC+EBPDbr36pFGo1bsU +# p53nRyFYnncoMg8FK0d8jLlw0lgexDDr7gicf2zOBFWqfv/nSLwzJFNP5W03DF/1 +# 1oZ12rSFqGlm+O46cRjTDFBpMRCZZGddZlRBjivby0eI1VgTD1TvAdfBYQe82fhm +# WQkYR/lWmAK+vW/1+bO7jHaxXTNCxLIBW07F8PBjUcwFxxyfbe2mHB4h1L4U0Ofa +# +HX/aREQ7SqYZz59sXM2ySOfvYyIjnqSO80NGBaz5DvzIG88J0+BNhOu2jl6Dfcq +# jYQs1H/PMSQIK6E7lXDXSpXzAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUnMc7Zn/ukKBsBiWkwdNfsN5pdwAw +# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW +# MBQGA1UEBRMNMjMwMDEyKzUwMDUxNjAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci +# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG +# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu +# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 +# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAD21v9pHoLdBSNlFAjmk +# mx4XxOZAPsVxxXbDyQv1+kGDe9XpgBnT1lXnx7JDpFMKBwAyIwdInmvhK9pGBa31 +# TyeL3p7R2s0L8SABPPRJHAEk4NHpBXxHjm4TKjezAbSqqbgsy10Y7KApy+9UrKa2 +# kGmsuASsk95PVm5vem7OmTs42vm0BJUU+JPQLg8Y/sdj3TtSfLYYZAaJwTAIgi7d +# hzn5hatLo7Dhz+4T+MrFd+6LUa2U3zr97QwzDthx+RP9/RZnur4inzSQsG5DCVIM +# pA1l2NWEA3KAca0tI2l6hQNYsaKL1kefdfHCrPxEry8onJjyGGv9YKoLv6AOO7Oh +# JEmbQlz/xksYG2N/JSOJ+QqYpGTEuYFYVWain7He6jgb41JbpOGKDdE/b+V2q/gX +# UgFe2gdwTpCDsvh8SMRoq1/BNXcr7iTAU38Vgr83iVtPYmFhZOVM0ULp/kKTVoir +# IpP2KCxT4OekOctt8grYnhJ16QMjmMv5o53hjNFXOxigkQWYzUO+6w50g0FAeFa8 +# 5ugCCB6lXEk21FFB1FdIHpjSQf+LP/W2OV/HfhC3uTPgKbRtXo83TZYEudooyZ/A +# Vu08sibZ3MkGOJORLERNwKm2G7oqdOv4Qj8Z0JrGgMzj46NFKAxkLSpE5oHQYP1H +# tPx1lPfD7iNSbJsP6LiUHXH1MIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq +# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x +# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv +# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 +# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG +# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG +# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg +# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC +# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 +# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr +# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg +# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy +# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 +# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh +# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k +# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB +# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn +# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 +# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w +# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o +# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD +# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa +# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny +# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG +# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV +# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG +# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl +# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb +# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l +# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 +# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 +# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 +# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam +# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa +# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah +# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA +# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt +# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr +# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw +# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN +# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp +# Z25pbmcgUENBIDIwMTECEzMAAANOtTx6wYRv6ysAAAAAA04wDQYJYIZIAWUDBAIB +# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO +# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIEY4Ow3COroWH11sAEOoStJj +# 1u4sq9rcx0dAx0gyZLHCMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A +# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB +# BQAEggEAFlSLlk17KQp2AwLbr5e4T5zyE44MGZOdNejIip+Mg8co8qho16qdNSvg +# AhvoJYxPJJr70DSCU9BIUoWY7hXoi9S4P08YlAid7BUT5OciIgHlrb8I900LaE+S +# 83rSvfVU1CZCjiSwcgng5DD2VPRo0Lu4G9p2Ky14dyOPwtPvrpsib5s9kewZLdiy +# /KxEDLKX8P+cHat1xH7RaZLDNxweRS6GSomjE2vjOlQHNSW879XR8bSoAt/m4uR1 +# WyrAxTGZb4miEYX+I5HsrWvbZLw9NSCJ/crbbap3LIobfQtK5binjY7v4MQp/5Oq +# y4S/4FAfwhWDXfaQfq6YTeOjHRVQbKGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC +# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq +# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl +# AwQCAQUABCCV3irbWIoYz2Llfx9YQhUNtcP6GOrL7+YTUXQ4y5qzWAIGZNTJrsAW +# GBMyMDIzMDgzMTAwMTI1OC45ODNaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV +# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE +# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l +# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTIwMC0w +# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg +# ghHqMIIHIDCCBQigAwIBAgITMwAAAc9SNr5xS81IygABAAABzzANBgkqhkiG9w0B +# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD +# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzA1MjUxOTEy +# MTFaFw0yNDAyMDExOTEyMTFaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z +# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTIwMC0wNUUwLUQ5NDcxJTAjBgNV +# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB +# AQUAA4ICDwAwggIKAoICAQC4Pct+15TYyrUje553lzBQodgmd5Bz7WuH8SdHpAoW +# z+01TrHExBSuaMKnxvVMsyYtas5h6aopUGAS5WKVLZAvUtH62TKmAE0JK+i1hafi +# CSXLZPcRexxeRkOqeZefLBzXp0nudMOXUUab333Ss8LkoK4l3LYxm1Ebsr3b2OTo +# 2ebsAoNJ4kSxmVuPM7C+RDhGtVKR/EmHsQ9GcwGmluu54bqiVFd0oAFBbw4txTU1 +# mruIGWP/i+sgiNqvdV/wah/QcrKiGlpWiOr9a5aGrJaPSQD2xgEDdPbrSflYxsRM +# dZCJI8vzvOv6BluPcPPGGVLEaU7OszdYjK5f4Z5Su/lPK1eST5PC4RFsVcOiS4L0 +# sI4IFZywIdDJHoKgdqWRp6Q5vEDk8kvZz6HWFnYLOlHuqMEYvQLr6OgooYU9z0A5 +# cMLHEIHYV1xiaBzx2ERiRY9MUPWohh+TpZWEUZlUm/q9anXVRN0ujejm6OsUVFDs +# sIMszRNCqEotJGwtHHm5xrCKuJkFr8GfwNelFl+XDoHXrQYL9zY7Np+frsTXQpKR +# NnmI1ashcn5EC+wxUt/EZIskWzewEft0/+/0g3+8YtMkUdaQE5+8e7C8UMiXOHkM +# K25jNNQqLCedlJwFIf9ir9SpMc72NR+1j6Uebiz/ZPV74do3jdVvq7DiPFlTb92U +# KwIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFDaeKPtp0eTSVdG+gZc5BDkabTg4MB8G +# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG +# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy +# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w +# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy +# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG +# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD +# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQBQgm4pnA0xkd/9uKXJMzdMYyxUfUm/ZusU +# Ba32MEZXQuMGp20pSuX2VW9/tpTMo5bkaJdBVoUyd2DbDsNb1kjr/36ntT0jvL3A +# oWStAFhZBypmpPbx+BPK49ZlejlM4d5epX668tRRGfFip9Til9yKRfXBrXnM/q64 +# IinN7zXEQ3FFQhdJMzt8ibXClO7eFA+1HiwZPWysYWPb/ZOFobPEMvXie+GmEbTK +# bhE5tze6RrA9aejjP+v1ouFoD5bMj5Qg+wfZXqe+hfYKpMd8QOnQyez+Nlj1ityn +# OZWfwHVR7dVwV0yLSlPT+yHIO8g+3fWiAwpoO17bDcntSZ7YOBljXrIgad4W4gX+ +# 4tp1eBsc6XWIITPBNzxQDZZRxD4rXzOB6XRlEVJdYZQ8gbXOirg/dNvS2GxcR50Q +# dOXDAumdEHaGNHb6y2InJadCPp2iT5QLC4MnzR+YZno1b8mWpCdOdRs9g21QbbrI +# 06iLk9KD61nx7K5ReSucuS5Z9nbkIBaLUxDesFhr1wmd1ynf0HQ51Swryh7YI7TX +# T0jr81mbvvI9xtoqjFvIhNBsICdCfTR91ylJTH8WtUlpDhEgSqWt3gzNLPTSvXAx +# XTpIM583sZdd+/2YGADMeWmt8PuMce6GsIcLCOF2NiYZ10SXHZS5HRrLrChuzedD +# RisWpIu5uTCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI +# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw +# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x +# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy +# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC +# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg +# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF +# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 +# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp +# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu +# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E +# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 +# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q +# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ +# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA +# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw +# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG +# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV +# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj +# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK +# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC +# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX +# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v +# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI +# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG +# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x +# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC +# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 +# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM +# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS +# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d +# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn +# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs +# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL +# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL +# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN +# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp +# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw +# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn +# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjkyMDAtMDVFMC1EOTQ3MSUwIwYDVQQD +# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQDq +# 8xzVXwLguauAQj1rrJ4/TyEMm6CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6JpNsjAiGA8yMDIzMDgzMDIzMjIy +# NloYDzIwMjMwODMxMjMyMjI2WjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDomk2y +# AgEAMAcCAQACAi7oMAcCAQACAhLnMAoCBQDom58yAgEAMDYGCisGAQQBhFkKBAIx +# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI +# hvcNAQELBQADggEBADE16CHIs3WeXYKQG9djja+StAB7gsNJxV9p+CETL3847UL3 +# +DIeoj6p5g0FkS8PJK2xc+UbcNx6XJO+WUXEbU9GL4mrOCQjYOM+i3r8FEU+l3Gh +# 6ZG/9ygsIYRXEfDKK4lsbrrUkFQs9nDISHT3f8JZEJJXSsGmwcHWlNC0LC8bv0Jp +# e2Bw2+SNc6SlGD8Vv45r4WFPHhfSioCz4HSsF1He3/2Wku7OH85FKvugBlsca7+F +# bpGsDSL4LO9bv60DxuD+8xBZuyTB8s64ifCGlOXCNpK5VaHND48PhoJbuD0COwlM +# Rn5NlT6T4hhtkPOqNscMlzYHmTOKc5NhWK8PyrIxggQNMIIECQIBATCBkzB8MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy +# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAc9SNr5xS81IygABAAABzzAN +# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G +# CSqGSIb3DQEJBDEiBCAjGiC3/PscCMBvPZjpZqbYcL2WRZ+Ecf74oiIPQKkjSzCB +# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EILPpsLqeNS4NuYXE2VJlMuvQeWVA +# 80ZDFhpOPjSzhPa/MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh +# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD +# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw +# MTACEzMAAAHPUja+cUvNSMoAAQAAAc8wIgQgWdbLA3Co0zf3nE5086HU0tdn0vK7 +# yXyU9aAFpszvWFIwDQYJKoZIhvcNAQELBQAEggIANrHN06oaP0N1lUSxxoJteJgI +# fQjN82xV5VSE0cwNCBy05fg1VydPERF59+MIwIlJHhikSo3YOj5tt3AohC78U46P +# 2IdrLHKlA3rjiLUGwQvGUKJUSsEH4uueA1mmh9jwUBJhY3NjTcMQaQqp/oxZTaya +# l7NqbubBIZvsDD126SUr8jtVWtZZzw8pnWCFb4Rijii4fY1UiQzfQLFwqQuid6tE +# I0AaY3IoTlp7U9K2wfAPWcP1G7n3qv+990GEiQlGJlCfIJSSJQodzL2QZF5HCn/K +# SfgkRPn3y/Aax8683mWCT8zricYzO3MZ9j0T7tAcqOiWb7PFCsk5Va44lq4Gv0u+ +# +60FYCAA/Qn6eMuNkqIpBeIK0+NYUcMSwPdY/riKXdgkVLwChEJC5WWznD/Iqsil +# Jj9XYailhXzYx7Pa2MLays62LPwCnUxRQBTD9/rL3XQMj69iA4lisb51dKAtrqAU +# 53aRXFn+twYYFTAUQ/oNK14nZEQE5H53xAfhphMokJOu+CnQQKeCMeYlex6Q4zfw +# TQxP/xXZ+QW2cSZTwh1d5iE0XMhKCZxhxIOF/rRA+75L5GUz60reRZPeH/7USYZL +# VPc0+kxIdSbNFJAhAp0u59wSMQdBofor3+HfDfmxmoSjfCSH4TvOkNIulX1PPJPX +# UB7H4n7XHWJPkUU0cUw= +# SIG # End signature block diff --git a/src/Paramore.Brighter.Analyzer.Package/tools/uninstall.ps1 b/src/Paramore.Brighter.Analyzer.Package/tools/uninstall.ps1 new file mode 100644 index 0000000000..1f6b6d4f0e --- /dev/null +++ b/src/Paramore.Brighter.Analyzer.Package/tools/uninstall.ps1 @@ -0,0 +1,282 @@ +param($installPath, $toolsPath, $package, $project) + +if($project.Object.SupportsPackageDependencyResolution) +{ + if($project.Object.SupportsPackageDependencyResolution()) + { + # Do not uninstall analyzers via uninstall.ps1, instead let the project system handle it. + return + } +} + +$analyzersPaths = Join-Path (Join-Path (Split-Path -Path $toolsPath -Parent) "analyzers") * -Resolve + +foreach($analyzersPath in $analyzersPaths) +{ + # Uninstall the language agnostic analyzers. + if (Test-Path $analyzersPath) + { + foreach ($analyzerFilePath in Get-ChildItem -Path "$analyzersPath\*.dll" -Exclude *.resources.dll) + { + if($project.Object.AnalyzerReferences) + { + $project.Object.AnalyzerReferences.Remove($analyzerFilePath.FullName) + } + } + } +} + +# $project.Type gives the language name like (C# or VB.NET) +$languageFolder = "" +if($project.Type -eq "C#") +{ + $languageFolder = "cs" +} +if($project.Type -eq "VB.NET") +{ + $languageFolder = "vb" +} +if($languageFolder -eq "") +{ + return +} + +foreach($analyzersPath in $analyzersPaths) +{ + # Uninstall language specific analyzers. + $languageAnalyzersPath = join-path $analyzersPath $languageFolder + if (Test-Path $languageAnalyzersPath) + { + foreach ($analyzerFilePath in Get-ChildItem -Path "$languageAnalyzersPath\*.dll" -Exclude *.resources.dll) + { + if($project.Object.AnalyzerReferences) + { + try + { + $project.Object.AnalyzerReferences.Remove($analyzerFilePath.FullName) + } + catch + { + + } + } + } + } +} +# SIG # Begin signature block +# MIIoLQYJKoZIhvcNAQcCoIIoHjCCKBoCAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDC68wb97fg0QGL +# yXrxJhYfmibzcOh8caqC0uZprfczDaCCDXYwggX0MIID3KADAgECAhMzAAADTrU8 +# esGEb+srAAAAAANOMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjMwMzE2MTg0MzI5WhcNMjQwMzE0MTg0MzI5WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDdCKiNI6IBFWuvJUmf6WdOJqZmIwYs5G7AJD5UbcL6tsC+EBPDbr36pFGo1bsU +# p53nRyFYnncoMg8FK0d8jLlw0lgexDDr7gicf2zOBFWqfv/nSLwzJFNP5W03DF/1 +# 1oZ12rSFqGlm+O46cRjTDFBpMRCZZGddZlRBjivby0eI1VgTD1TvAdfBYQe82fhm +# WQkYR/lWmAK+vW/1+bO7jHaxXTNCxLIBW07F8PBjUcwFxxyfbe2mHB4h1L4U0Ofa +# +HX/aREQ7SqYZz59sXM2ySOfvYyIjnqSO80NGBaz5DvzIG88J0+BNhOu2jl6Dfcq +# jYQs1H/PMSQIK6E7lXDXSpXzAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUnMc7Zn/ukKBsBiWkwdNfsN5pdwAw +# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW +# MBQGA1UEBRMNMjMwMDEyKzUwMDUxNjAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci +# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG +# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu +# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 +# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAD21v9pHoLdBSNlFAjmk +# mx4XxOZAPsVxxXbDyQv1+kGDe9XpgBnT1lXnx7JDpFMKBwAyIwdInmvhK9pGBa31 +# TyeL3p7R2s0L8SABPPRJHAEk4NHpBXxHjm4TKjezAbSqqbgsy10Y7KApy+9UrKa2 +# kGmsuASsk95PVm5vem7OmTs42vm0BJUU+JPQLg8Y/sdj3TtSfLYYZAaJwTAIgi7d +# hzn5hatLo7Dhz+4T+MrFd+6LUa2U3zr97QwzDthx+RP9/RZnur4inzSQsG5DCVIM +# pA1l2NWEA3KAca0tI2l6hQNYsaKL1kefdfHCrPxEry8onJjyGGv9YKoLv6AOO7Oh +# JEmbQlz/xksYG2N/JSOJ+QqYpGTEuYFYVWain7He6jgb41JbpOGKDdE/b+V2q/gX +# UgFe2gdwTpCDsvh8SMRoq1/BNXcr7iTAU38Vgr83iVtPYmFhZOVM0ULp/kKTVoir +# IpP2KCxT4OekOctt8grYnhJ16QMjmMv5o53hjNFXOxigkQWYzUO+6w50g0FAeFa8 +# 5ugCCB6lXEk21FFB1FdIHpjSQf+LP/W2OV/HfhC3uTPgKbRtXo83TZYEudooyZ/A +# Vu08sibZ3MkGOJORLERNwKm2G7oqdOv4Qj8Z0JrGgMzj46NFKAxkLSpE5oHQYP1H +# tPx1lPfD7iNSbJsP6LiUHXH1MIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq +# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x +# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv +# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 +# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG +# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG +# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg +# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC +# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 +# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr +# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg +# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy +# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 +# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh +# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k +# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB +# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn +# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 +# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w +# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o +# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD +# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa +# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny +# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG +# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV +# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG +# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl +# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb +# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l +# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 +# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 +# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 +# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam +# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa +# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah +# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA +# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt +# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr +# /Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw +# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN +# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp +# Z25pbmcgUENBIDIwMTECEzMAAANOtTx6wYRv6ysAAAAAA04wDQYJYIZIAWUDBAIB +# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO +# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIBdcqRcs5QL71hlQnl3M636V +# 5iTZvb6co3MHeMuIr36qMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A +# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB +# BQAEggEARbhO/zqm6SWBf6DSJ3P1r82VjSyMGXaLtMfTOq/bqHOXPOqC25R1v5uO +# zu4ri+UOS8dU6EfW6C9Xf/Z1Ue/oxrvxn5j8mPvsmcs5OyDO0hW0Wv6pYEy5Z5up +# mfcqvfUfl3+ir29lgPuz0f1mLpz0XxqhjqElEi5RfZD1k1YVg65f0qHroP2txql5 +# TfC77DXJ8verzVm1wqXBHTAERQD94TJobahYTCmyaudMjLUVFakv2lTMv0YTnrQR +# So006ZQg3i1jcVCJt/bRDGKh3xUo1IHgoh3NjMEkxT3iWt8rnX8Us6T6Zg8B2OxC +# 0EnuIu/eYYUlYTLQxO9eks7w1kVcUqGCF5cwgheTBgorBgEEAYI3AwMBMYIXgzCC +# F38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq +# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl +# AwQCAQUABCBQ1HvJFFsT0ICl6oEZlSNN8DlUeQobBHt/oTUGN6iKBgIGZNTKS0Bc +# GBMyMDIzMDgzMTAwMTI1OC4zODVaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV +# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE +# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l +# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046N0YwMC0w +# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg +# ghHtMIIHIDCCBQigAwIBAgITMwAAAdWpAs/Fp8npWgABAAAB1TANBgkqhkiG9w0B +# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD +# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzA1MjUxOTEy +# MzBaFw0yNDAyMDExOTEyMzBaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z +# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046N0YwMC0wNUUwLUQ5NDcxJTAjBgNV +# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB +# AQUAA4ICDwAwggIKAoICAQDFfak57Oph9vuxtloABiLc6enT+yKH619b+OhGdkyh +# gNzkX80KUGI/jEqOVMV4Sqt/UPFFidx2t7v2SETj2tAzuVKtDfq2HBpu80vZ0vyQ +# DydVt4MDL4tJSKqgYofCxDIBrWzJJjgBolKdOJx1ut2TyOc+UOm7e92tVPHpjdg+ +# Omf31TLUf/oouyAOJ/Inn2ih3ASP0QYm+AFQjhYDNDu8uzMdwHF5QdwsscNa9PVS +# GedLdDLo9jL6DoPF4NYo06lvvEQuSJ9ImwZfBGLy/8hpE7RD4ewvJKmM1+t6eQuE +# sTXjrGM2WjkW18SgUZ8n+VpL2uk6AhDkCa355I531p0Jkqpoon7dHuLUdZSQO40q +# mVIQ6qQCanvImTqmNgE/rPJ0rgr0hMPI/uR1T/iaL0mEq4bqak+3sa8I+FAYOI/P +# C7V+zEek+sdyWtaX+ndbGlv/RJb5mQaGn8NunbkfvHD1Qt5D0rmtMOekYMq7QjYq +# E3FEP/wAY4TDuJxstjsa2HXi2yUDEg4MJL6/JvsQXToOZ+IxR6KT5t5fB5FpZYBp +# VLMma3pm5z6VXvkXrYs33NXJqVWLwiswa7NUFV87Es2sou9Idw3yAZmHIYWgOQ+D +# IY1nY3aG5DODiwN1rJyEb+mbWDagrdVxcncr6UKKO49eoNTXEW+scUf6GwXG0KEy +# mQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFK/QXKNO35bBMOz3R5giX7Ala2OaMB8G +# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG +# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy +# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w +# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy +# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG +# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD +# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQBmRddqvQuyjRpx0HGxvOqffFrbgFAg0j82 +# v0v7R+/8a70S2V4t7yKYKSsQGI6pvt1A8JGmuZyjmIXmw23AkI5bZkxvSgws8rrB +# tJw9vakEckcWFQb7JG6b618x0s9Q3DL0dRq46QZRnm7U6234lecvjstAow30dP0T +# nIacPWKpPc3QgB+WDnglN2fdT1ruQ6WIVBenmpjpG9ypRANKUx5NRcpdJAQW2FqE +# HTS3Ntb+0tCqIkNHJ5aFsF6ehRovWZp0MYIz9bpJHix0VrjdLVMOpe7wv62t90E3 +# UrE2KmVwpQ5wsMD6YUscoCsSRQZrA5AbwTOCZJpeG2z3vDo/huvPK8TeTJ2Ltu/I +# tXgxIlIOQp/tbHAiN8Xptw/JmIZg9edQ/FiDaIIwG5YHsfm2u7TwOFyd6OqLw18Z +# 5j/IvDPzlkwWJxk6RHJF5dS4s3fnyLw3DHBe5Dav6KYB4n8x/cEmD/R44/8gS5Pf +# uG1srjLdyyGtyh0KiRDSmjw+fa7i1VPoemidDWNZ7ksNadMad4ZoDvgkqOV4A6a+ +# N8HIc/P6g0irrezLWUgbKXSN8iH9RP+WJFx5fBHE4AFxrbAUQ2Zn5jDmHAI3wYcQ +# DnnEYP51A75WFwPsvBrfrb1+6a1fuTEH1AYdOOMy8fX8xKo0E0Ys+7bxIvFPsUpS +# zfFjBolmhzCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI +# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw +# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x +# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy +# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC +# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg +# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF +# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 +# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp +# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu +# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E +# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 +# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q +# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ +# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA +# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw +# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG +# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV +# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj +# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK +# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC +# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX +# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v +# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI +# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG +# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x +# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC +# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 +# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM +# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS +# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d +# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn +# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs +# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL +# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL +# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNQ +# MIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp +# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw +# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn +# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjdGMDAtMDVFMC1EOTQ3MSUwIwYDVQQD +# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQBO +# Ei+S/ZVFe6w1Id31m6Kge26lNKCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6JpN3jAiGA8yMDIzMDgzMDIzMjMx +# MFoYDzIwMjMwODMxMjMyMzEwWjB3MD0GCisGAQQBhFkKBAExLzAtMAoCBQDomk3e +# AgEAMAoCAQACAiLLAgH/MAcCAQACAhLTMAoCBQDom59eAgEAMDYGCisGAQQBhFkK +# BAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJ +# KoZIhvcNAQELBQADggEBAC/zAZ9IEqD3nHBUWwxFTfnDSRErnCJ6XGxH5jOVtR0t +# 9pi7yCpApLpA2D12g1lcv4ugnwGpsbwmFjrcF4WlHemRa77qv409xNhNKrnh3H+U +# X2hvy9Utp9LiJiqS7lOW5VN1Uv+LbnA+FWt//4J+YLv44D/dliUGjYX623X7KiEX +# dbdXPR/Sn+W2YVQ19O8liKaFDnDnIAz+WLCfL6EaoGu4Te/Mr65Khy3YWTwQfXxr +# gR/JMDzLzWossnGszYCN8S8d9X6mfzWuYv4JHLEiThW++WbMLeT2hhKPomcbvqU4 +# wPb/ylDrTrWuAr/fVndECXVjCIzYJiFwOWn/ZfN9FpQxggQNMIIECQIBATCBkzB8 +# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk +# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1N +# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAdWpAs/Fp8npWgABAAAB +# 1TANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEE +# MC8GCSqGSIb3DQEJBDEiBCAHS+EjBkJ/YPugQQv1D7eXVQOI4DWPIYpUxpssheDN +# lTCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EINm/I4YM166JMM7EKIcYvlcb +# r2CHjKC0LUOmpZIbBsH/MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT +# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m +# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB +# IDIwMTACEzMAAAHVqQLPxafJ6VoAAQAAAdUwIgQgBVj4mNvMkXn0xEeEe3i6urr/ +# L5Eh2p4uPk3zOcR/jHIwDQYJKoZIhvcNAQELBQAEggIAiKbnM5VQAwi5gWDevpEJ +# oHiZRrb0HApEUkca54Oye2+5tyRfWo3ruZvLZueHWsbEzYXclOscHVPjyR1t6s+p +# W13utx4mDab1BaJCBq1q9IH1HDfCf/kSMb0H02UDNBumrt1s5/oaiiY75S3kigpt +# XHCKV/AKbi+4vORYdBwJhWvy4kug+zZHWAp7+K4rVeAaMbWOitriFPQaSdZlOkNT +# VKMbYUtX6VEnhyfr5O390TxPJCdkDznT6rAf5FlQEkim7wb2gb/Osi73KF0dtnRd +# 0ePNT4GxulYTrAhHsZmyuinh/FIyqJDtW3C+2eVt/lx6GJfAtDA/gVCe9mAL4bYv +# 7vjocHeLvWJ8bc0PYMCRZXMsU2zkJqVJ7pZWq+z5hGQAHemrQj9hUZBXCEFVZ8dd +# jEZbIsg2nwZOFakhvdAvvGlTXPbRMOCHblToXAKA8ksRbLob8CDL6Cstoy5VL3al +# fOAWLj3FYITlvGvAYCtJzHrHdqyphL805Co1syR6YDopR8tDrxgWzJKAby5fIolP +# 7SfunXsCa0n3xx80aaxR0apljIXZWBSMGZdJmVzASQFxlexNsU1PmaLmmpn0fih/ +# 567e+kyzFG1wiw5btwttSW9hKgCX+yze1B4IK4yquTQSfPikrCpbBaFZ0OlWmOnL +# r0eKAKY3WDyxYgNyeg6KeCc= +# SIG # End signature block diff --git a/src/Paramore.Brighter.Analyzer.Test/Paramore.Brighter.Analyzer.Test.csproj b/src/Paramore.Brighter.Analyzer.Test/Paramore.Brighter.Analyzer.Test.csproj new file mode 100644 index 0000000000..07d82ee0cd --- /dev/null +++ b/src/Paramore.Brighter.Analyzer.Test/Paramore.Brighter.Analyzer.Test.csproj @@ -0,0 +1,32 @@ + + + + net9.0 + enable + enable + + false + true + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Paramore.Brighter.Analyzer.Test/PublicationRequestTypeMissing/PublicationRequestTypeAssignmentAnalyzerTest.cs b/src/Paramore.Brighter.Analyzer.Test/PublicationRequestTypeMissing/PublicationRequestTypeAssignmentAnalyzerTest.cs new file mode 100644 index 0000000000..4c3611f1ef --- /dev/null +++ b/src/Paramore.Brighter.Analyzer.Test/PublicationRequestTypeMissing/PublicationRequestTypeAssignmentAnalyzerTest.cs @@ -0,0 +1,93 @@ +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp.Testing; +using Microsoft.CodeAnalysis.Testing; +using Paramore.Brighter.Analyzer.Analyzers; + + +namespace Paramore.Brighter.Analyzer.Test.PublicationRequestTypeMissing +{ + public class PublicationRequestTypeAssignmentAnalyzerTest + { + private readonly CSharpAnalyzerTest testContext; + + public PublicationRequestTypeAssignmentAnalyzerTest() + { + testContext = new CSharpAnalyzerTest(); + testContext.ReferenceAssemblies = ReferenceAssemblies.Net.Net80; + testContext.TestState.OutputKind = OutputKind.ConsoleApplication; + testContext.TestState.AdditionalReferences.Add(MetadataReference.CreateFromFile(typeof(Publication).Assembly.Location)); + testContext.CompilerDiagnostics = CompilerDiagnostics.None; + } + + [Fact] + public async Task When_Initializing_Publication_WithOut_RequestType() + { + + testContext.TestCode = /* lang=c#-test */ """ +using Paramore.Brighter; +namespace TestNamespace +{ +var publication = {|#0:new PublicationTest()|}; + + public class PublicationTest : Publication + { + } + } +"""; + + testContext.ExpectedDiagnostics.Add(new DiagnosticResult(PublicationRequestTypeAssignmentAnalyzer.RequestTypeMissingRule).WithLocation(0).WithArguments("PublicationTest")); + await testContext.RunAsync(); + } + + [Fact] + public async Task When_Initializing_Publication_With_Right_RequestType() + { + testContext.TestCode = /* lang=c#-test */ """ +using Paramore.Brighter; +namespace TestNamespace +{ +var publication = {|#0:new PublicationTest() +{ +RequestType = typeof(EventSample) +}|}; + + public class PublicationTest : Publication + { + } + public class EventSample : Event +{ + public EventSample(Id id) : base(id) + { + } +} + } +"""; + await testContext.RunAsync(); + } + + [Fact] + public async Task When_Initializing_Publication_With_Wrong_RequestType() + { + testContext.TestCode = /* lang=c#-test */ """ +using Paramore.Brighter; +namespace TestNamespace +{ +var publication = new PublicationTest() +{ +RequestType = {|#0:typeof(EventSample)|} +}; + + public class PublicationTest : Publication + { + } + public class EventSample +{ +} + } +"""; + testContext.ExpectedDiagnostics.Add(new DiagnosticResult(PublicationRequestTypeAssignmentAnalyzer.WrongRequestTypeRule).WithLocation(0).WithArguments("EventSample")); + + await testContext.RunAsync(); + } + } +} diff --git a/src/Paramore.Brighter.Analyzer/AnalyzerReleases.Shipped.md b/src/Paramore.Brighter.Analyzer/AnalyzerReleases.Shipped.md new file mode 100644 index 0000000000..7a6a8b5ea1 --- /dev/null +++ b/src/Paramore.Brighter.Analyzer/AnalyzerReleases.Shipped.md @@ -0,0 +1,6 @@ +## Release 1.0 + +### New Rules + +Rule ID | Category | Severity | Notes +--------|----------|----------|-------------------- diff --git a/src/Paramore.Brighter.Analyzer/AnalyzerReleases.Unshipped.md b/src/Paramore.Brighter.Analyzer/AnalyzerReleases.Unshipped.md new file mode 100644 index 0000000000..5f282702bb --- /dev/null +++ b/src/Paramore.Brighter.Analyzer/AnalyzerReleases.Unshipped.md @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/Paramore.Brighter.Analyzer/Analyzers/PublicationRequestTypeAssignmentAnalyzer.cs b/src/Paramore.Brighter.Analyzer/Analyzers/PublicationRequestTypeAssignmentAnalyzer.cs new file mode 100644 index 0000000000..576ffa01d7 --- /dev/null +++ b/src/Paramore.Brighter.Analyzer/Analyzers/PublicationRequestTypeAssignmentAnalyzer.cs @@ -0,0 +1,81 @@ +// The MIT License (MIT) +// Copyright © 2014 Ian Cooper +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.Collections.Immutable; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.Diagnostics; +using Paramore.Brighter.Analyzer.Vistiors.Operation; + +namespace Paramore.Brighter.Analyzer.Analyzers +{ + [DiagnosticAnalyzer(LanguageNames.CSharp)] + public class PublicationRequestTypeAssignmentAnalyzer : DiagnosticAnalyzer + { + private const string RequestPublicationCategory = "Paramore.Brighter.Publication"; + + public static DiagnosticDescriptor RequestTypeMissingRule => new DiagnosticDescriptor( + id: DiagnosticsIds.RequestTypeMissing, + title: "Request Type Missing", + messageFormat: "RequestType assignment is Missing from {0}", + category: RequestPublicationCategory, + defaultSeverity: DiagnosticSeverity.Warning, + isEnabledByDefault: true + // helpLinkUri: GetRuleUrl(Rule) + ); public static DiagnosticDescriptor WrongRequestTypeRule => new DiagnosticDescriptor( + id: DiagnosticsIds.WrongRequestType, + title: "Wrong Request Type", + messageFormat: "RequestType '{0}' is not child of IRequest", + category: RequestPublicationCategory, + defaultSeverity: DiagnosticSeverity.Warning, + isEnabledByDefault: true + // helpLinkUri: GetRuleUrl(Rule) + ); + public override ImmutableArray SupportedDiagnostics { get { return [RequestTypeMissingRule, WrongRequestTypeRule]; } } + + public override void Initialize(AnalysisContext context) + { + context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None); + context.EnableConcurrentExecution(); + context.RegisterOperationAction(AnalyzerOperation, OperationKind.ObjectCreation); + } + + private void AnalyzerOperation(OperationAnalysisContext context) + { + var visitor = new RequestTypeAssignmentVisitor(); + context.Operation.Accept(visitor); + if (!visitor.IsAccepted || !visitor.IsRequestTypeAssigned) + { + context.ReportDiagnostic(Diagnostic.Create( + RequestTypeMissingRule, + context.Operation.Syntax.GetLocation(), + visitor.PublicationName)); + } + else if (visitor.IsNotTypeOfIRequest) + { + context.ReportDiagnostic(Diagnostic.Create( + WrongRequestTypeRule, + visitor.TypeOfLocation, + visitor.TypeOfName)); + } + } + } +} diff --git a/src/Paramore.Brighter.Analyzer/BrighterAnalyzerGlobals.cs b/src/Paramore.Brighter.Analyzer/BrighterAnalyzerGlobals.cs new file mode 100644 index 0000000000..70752baf90 --- /dev/null +++ b/src/Paramore.Brighter.Analyzer/BrighterAnalyzerGlobals.cs @@ -0,0 +1,35 @@ +// The MIT License (MIT) +// Copyright © 2014 Ian Cooper +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.Collections.Generic; +using System.Text; + +namespace Paramore.Brighter.Analyzer +{ + public class BrighterAnalyzerGlobals + { + public const string PublicationClassName = "Publication"; + public const string BrighterAssembly = "Paramore.Brighter"; + public const string RequestTypeProperty = "RequestType"; + public const string IRequestInterface = "IRequest"; + } +} diff --git a/src/Paramore.Brighter.Analyzer/DiagnosticsIds.cs b/src/Paramore.Brighter.Analyzer/DiagnosticsIds.cs new file mode 100644 index 0000000000..8fed9488ba --- /dev/null +++ b/src/Paramore.Brighter.Analyzer/DiagnosticsIds.cs @@ -0,0 +1,35 @@ +// The MIT License (MIT) +// Copyright © 2014 Ian Cooper +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.Collections.Generic; +using System.Text; +using Microsoft.CodeAnalysis; + +namespace Paramore.Brighter.Analyzer +{ + public static class DiagnosticsIds + { + public const string RequestTypeMissing = "BRT001"; + public const string WrongRequestType = "BRT002"; + + } +} diff --git a/src/Paramore.Brighter.Analyzer/Paramore.Brighter.Analyzer.csproj b/src/Paramore.Brighter.Analyzer/Paramore.Brighter.Analyzer.csproj new file mode 100644 index 0000000000..952dd716fd --- /dev/null +++ b/src/Paramore.Brighter.Analyzer/Paramore.Brighter.Analyzer.csproj @@ -0,0 +1,25 @@ + + + + netstandard2.0 + false + true + true + + *$(MSBuildProjectFile)* + + + + + + + + + + + + + + + + diff --git a/src/Paramore.Brighter.Analyzer/Resources.Designer.cs b/src/Paramore.Brighter.Analyzer/Resources.Designer.cs new file mode 100644 index 0000000000..d3d47cf50c --- /dev/null +++ b/src/Paramore.Brighter.Analyzer/Resources.Designer.cs @@ -0,0 +1,116 @@ +// The MIT License (MIT) +// Copyright © 2014 Ian Cooper +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.Reflection; + +namespace Paramore.Brighter.Analyzer +{ + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if (object.ReferenceEquals(resourceMan, null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Paramore.Brighter.Analyzer.Resources", typeof(Resources).GetTypeInfo().Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Type names should be all uppercase.. + /// + internal static string AnalyzerDescription + { + get + { + return ResourceManager.GetString("AnalyzerDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Type name '{0}' contains lowercase letters. + /// + internal static string AnalyzerMessageFormat + { + get + { + return ResourceManager.GetString("AnalyzerMessageFormat", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Type name contains lowercase letters. + /// + internal static string AnalyzerTitle + { + get + { + return ResourceManager.GetString("AnalyzerTitle", resourceCulture); + } + } + } +} diff --git a/src/Paramore.Brighter.Analyzer/Resources.resx b/src/Paramore.Brighter.Analyzer/Resources.resx new file mode 100644 index 0000000000..410edccd7c --- /dev/null +++ b/src/Paramore.Brighter.Analyzer/Resources.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Type names should be all uppercase. + An optional longer localizable description of the diagnostic. + + + Type name '{0}' contains lowercase letters + The format-able message the diagnostic displays. + + + Type name contains lowercase letters + The title of the diagnostic. + + \ No newline at end of file diff --git a/src/Paramore.Brighter.Analyzer/Visitors/Operation/RequestTypeAssignmentVisitor.cs b/src/Paramore.Brighter.Analyzer/Visitors/Operation/RequestTypeAssignmentVisitor.cs new file mode 100644 index 0000000000..6e143c80c8 --- /dev/null +++ b/src/Paramore.Brighter.Analyzer/Visitors/Operation/RequestTypeAssignmentVisitor.cs @@ -0,0 +1,69 @@ +// The MIT License (MIT) +// Copyright © 2014 Ian Cooper +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System.Linq; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.Diagnostics; +using Microsoft.CodeAnalysis.Operations; +using Paramore.Brighter.Analyzer.Analyzers; +using Paramore.Brighter.Analyzer.Vistiors.Symbol; + + +namespace Paramore.Brighter.Analyzer.Vistiors.Operation +{ + public class RequestTypeAssignmentVisitor : OperationWalker + { + public bool IsAccepted { get; private set; } + public bool IsRequestTypeAssigned { get; private set; } + public string PublicationName { get; private set; } + public bool IsNotTypeOfIRequest { get; private set; } + public Location TypeOfLocation { get; private set; } + public string TypeOfName { get; private set; } + + public override void VisitObjectCreation(IObjectCreationOperation operation) + { + if (operation.Type!.Accept(new ChildOfVisitor(BrighterAnalyzerGlobals.PublicationClassName, BrighterAnalyzerGlobals.BrighterAssembly))) + { + PublicationName = operation.Type.Name; + IsAccepted = true; + base.VisitObjectCreation(operation); + } + } + public override void VisitPropertyReference(IPropertyReferenceOperation operation) + { + if (operation.Property.Name == BrighterAnalyzerGlobals.RequestTypeProperty) + { + IsRequestTypeAssigned = true; + base.VisitPropertyReference(operation); + } + } + public override void VisitTypeOf(ITypeOfOperation operation) + { + if (!operation.TypeOperand.AllInterfaces.Any(i => i.Name == BrighterAnalyzerGlobals.IRequestInterface && i.ContainingAssembly.Name == BrighterAnalyzerGlobals.BrighterAssembly)) + { + TypeOfLocation = operation.Syntax.GetLocation(); + TypeOfName = operation.TypeOperand.Name; + IsNotTypeOfIRequest = true; + } + base.VisitTypeOf(operation); + } + } +} diff --git a/src/Paramore.Brighter.Analyzer/Visitors/Symbol/ChildOfVisitor.cs b/src/Paramore.Brighter.Analyzer/Visitors/Symbol/ChildOfVisitor.cs new file mode 100644 index 0000000000..8eadf72472 --- /dev/null +++ b/src/Paramore.Brighter.Analyzer/Visitors/Symbol/ChildOfVisitor.cs @@ -0,0 +1,47 @@ +// The MIT License (MIT) +// Copyright © 2014 Ian Cooper +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.Collections.Generic; +using System.Text; +using Microsoft.CodeAnalysis; + +namespace Paramore.Brighter.Analyzer.Vistiors.Symbol +{ + public class ChildOfVisitor(string className, string assmeblyName) : SymbolVisitor + { + + public override bool VisitNamedType(INamedTypeSymbol symbol) + { + var type = symbol; + var assembly = type.ContainingAssembly; + if (symbol.Name == className && assembly.Name == assmeblyName) + { + return true; + } + if (symbol.BaseType != null) + { + return symbol.BaseType.Accept(this); + } + return false; + } + } +} diff --git a/src/Paramore.Brighter.ServiceActivator.Control.Api/Properties/launchSettings.json b/src/Paramore.Brighter.ServiceActivator.Control.Api/Properties/launchSettings.json new file mode 100644 index 0000000000..804380600f --- /dev/null +++ b/src/Paramore.Brighter.ServiceActivator.Control.Api/Properties/launchSettings.json @@ -0,0 +1,12 @@ +{ + "profiles": { + "Paramore.Brighter.ServiceActivator.Control.Api": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "https://localhost:59693;http://localhost:59694" + } + } +} \ No newline at end of file From adf1247baba5ad7f641e04d2e8c22769f2044642 Mon Sep 17 00:00:00 2001 From: AboubakrNasef Date: Wed, 7 Jan 2026 22:41:10 +0200 Subject: [PATCH 02/16] add message pump analyzer --- Brighter.sln | 42 ++++---- .../AnalyzerSamples/PublicationSample.cs | 24 +++-- .../AnalyzerSamples/SubscriptionSample.cs | 24 +++++ src/Directory.Build.props | 1 + .../Paramore.Brighter.Analyzer.Package.csproj | 7 +- ...ublicationRequestTypeAssignmentAnalyzer.cs | 48 ++++----- .../SubscriptionConstructorAnalyzer.cs | 69 +++++++++++++ .../BrighterAnalyzerGlobals.cs | 3 + .../DiagnosticsIds.cs | 1 + .../Paramore.Brighter.Analyzer.csproj | 5 +- .../Resources.Designer.cs | 98 +++++++------------ .../Operation/RequestTypeAssignmentVisitor.cs | 51 +++++----- .../SubscriptionConstructorVisitor.cs | 55 +++++++++++ .../Visitors/Symbol/ChildOfVisitor.cs | 45 +++++---- .../Analyzers/BaseAnalyzerTest.cs | 24 +++++ ...cationRequestTypeAssignmentAnalyzerTest.cs | 49 +++++----- .../SubscriptionConstructorAnalyzerTest.cs | 32 ++++++ .../Paramore.Brighter.Analyzer.Tests.csproj | 11 ++- 18 files changed, 391 insertions(+), 198 deletions(-) create mode 100644 samples/Analyzer/AnalyzerSamples/SubscriptionSample.cs create mode 100644 src/Paramore.Brighter.Analyzer/Analyzers/SubscriptionConstructorAnalyzer.cs create mode 100644 src/Paramore.Brighter.Analyzer/Visitors/Operation/SubscriptionConstructorVisitor.cs create mode 100644 tests/Paramore.Brighter.Analyzer.Tests/Analyzers/BaseAnalyzerTest.cs rename {src/Paramore.Brighter.Analyzer.Test/PublicationRequestTypeMissing => tests/Paramore.Brighter.Analyzer.Tests/Analyzers}/PublicationRequestTypeAssignmentAnalyzerTest.cs (63%) create mode 100644 tests/Paramore.Brighter.Analyzer.Tests/Analyzers/SubscriptionConstructorAnalyzerTest.cs rename src/Paramore.Brighter.Analyzer.Test/Paramore.Brighter.Analyzer.Test.csproj => tests/Paramore.Brighter.Analyzer.Tests/Paramore.Brighter.Analyzer.Tests.csproj (72%) diff --git a/Brighter.sln b/Brighter.sln index 4c00b10a5d..06f2696af6 100644 --- a/Brighter.sln +++ b/Brighter.sln @@ -474,18 +474,16 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Paramore.Brighter.Test.Gene EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Paramore.Brighter.Test.Generator.Tests", "tests\Paramore.Brighter.Test.Generator.Tests\Paramore.Brighter.Test.Generator.Tests.csproj", "{803BCF53-9447-4C9A-8718-61611B4E6480}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Analyzer", "Analyzer", "{C2446CB2-4920-4046-B794-536E23CE09AD}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Paramore.Brighter.Analyzer.Package", "src\Paramore.Brighter.Analyzer.Package\Paramore.Brighter.Analyzer.Package.csproj", "{F9D1D723-2F7A-CBB4-59CA-457DBFE722D3}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Paramore.Brighter.Analyzer.Test", "src\Paramore.Brighter.Analyzer.Test\Paramore.Brighter.Analyzer.Test.csproj", "{1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Paramore.Brighter.Analyzer", "src\Paramore.Brighter.Analyzer\Paramore.Brighter.Analyzer.csproj", "{A0611BBC-00BB-811C-4DFF-CAAB079BB89C}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Analyzer", "Analyzer", "{60F7B2E1-1635-44A6-A2A9-06EA2D61E152}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AnalyzerSamples", "samples\Analyzer\AnalyzerSamples\AnalyzerSamples.csproj", "{29C4E1FC-2BEA-45A9-BF1A-1D7DE77E48D2}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Paramore.Brighter.Analyzer.Tests", "tests\Paramore.Brighter.Analyzer.Tests\Paramore.Brighter.Analyzer.Tests.csproj", "{46EAE467-8EF3-FC78-69DC-262F6E063227}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -3570,22 +3568,6 @@ Global {F9D1D723-2F7A-CBB4-59CA-457DBFE722D3}.Release|x64.Build.0 = Release|Any CPU {F9D1D723-2F7A-CBB4-59CA-457DBFE722D3}.Release|x86.ActiveCfg = Release|Any CPU {F9D1D723-2F7A-CBB4-59CA-457DBFE722D3}.Release|x86.Build.0 = Release|Any CPU - {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Debug|x64.ActiveCfg = Debug|Any CPU - {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Debug|x64.Build.0 = Debug|Any CPU - {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Debug|x86.ActiveCfg = Debug|Any CPU - {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Debug|x86.Build.0 = Debug|Any CPU - {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Release|Any CPU.Build.0 = Release|Any CPU - {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Release|x64.ActiveCfg = Release|Any CPU - {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Release|x64.Build.0 = Release|Any CPU - {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Release|x86.ActiveCfg = Release|Any CPU - {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A}.Release|x86.Build.0 = Release|Any CPU {A0611BBC-00BB-811C-4DFF-CAAB079BB89C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A0611BBC-00BB-811C-4DFF-CAAB079BB89C}.Debug|Any CPU.Build.0 = Debug|Any CPU {A0611BBC-00BB-811C-4DFF-CAAB079BB89C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -3618,6 +3600,22 @@ Global {29C4E1FC-2BEA-45A9-BF1A-1D7DE77E48D2}.Release|x64.Build.0 = Release|Any CPU {29C4E1FC-2BEA-45A9-BF1A-1D7DE77E48D2}.Release|x86.ActiveCfg = Release|Any CPU {29C4E1FC-2BEA-45A9-BF1A-1D7DE77E48D2}.Release|x86.Build.0 = Release|Any CPU + {46EAE467-8EF3-FC78-69DC-262F6E063227}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {46EAE467-8EF3-FC78-69DC-262F6E063227}.Debug|Any CPU.Build.0 = Debug|Any CPU + {46EAE467-8EF3-FC78-69DC-262F6E063227}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {46EAE467-8EF3-FC78-69DC-262F6E063227}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {46EAE467-8EF3-FC78-69DC-262F6E063227}.Debug|x64.ActiveCfg = Debug|Any CPU + {46EAE467-8EF3-FC78-69DC-262F6E063227}.Debug|x64.Build.0 = Debug|Any CPU + {46EAE467-8EF3-FC78-69DC-262F6E063227}.Debug|x86.ActiveCfg = Debug|Any CPU + {46EAE467-8EF3-FC78-69DC-262F6E063227}.Debug|x86.Build.0 = Debug|Any CPU + {46EAE467-8EF3-FC78-69DC-262F6E063227}.Release|Any CPU.ActiveCfg = Release|Any CPU + {46EAE467-8EF3-FC78-69DC-262F6E063227}.Release|Any CPU.Build.0 = Release|Any CPU + {46EAE467-8EF3-FC78-69DC-262F6E063227}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {46EAE467-8EF3-FC78-69DC-262F6E063227}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {46EAE467-8EF3-FC78-69DC-262F6E063227}.Release|x64.ActiveCfg = Release|Any CPU + {46EAE467-8EF3-FC78-69DC-262F6E063227}.Release|x64.Build.0 = Release|Any CPU + {46EAE467-8EF3-FC78-69DC-262F6E063227}.Release|x86.ActiveCfg = Release|Any CPU + {46EAE467-8EF3-FC78-69DC-262F6E063227}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -3762,11 +3760,9 @@ Global {261E1392-7713-525F-2859-7B40CA416A50} = {329736D2-BF92-4D06-A7BF-19F4B6B64EDD} {F1250991-F5AA-4CAB-BF67-6C5C95EEECC9} = {07C2787E-EAC7-C090-1BA3-A61EC2A24D84} {803BCF53-9447-4C9A-8718-61611B4E6480} = {329736D2-BF92-4D06-A7BF-19F4B6B64EDD} - {F9D1D723-2F7A-CBB4-59CA-457DBFE722D3} = {C2446CB2-4920-4046-B794-536E23CE09AD} - {1E0B9C19-991C-CC1B-76D3-7F32E4A5DF1A} = {C2446CB2-4920-4046-B794-536E23CE09AD} - {A0611BBC-00BB-811C-4DFF-CAAB079BB89C} = {C2446CB2-4920-4046-B794-536E23CE09AD} {60F7B2E1-1635-44A6-A2A9-06EA2D61E152} = {235DE1F1-E71B-4817-8E27-3B34FF006E4C} {29C4E1FC-2BEA-45A9-BF1A-1D7DE77E48D2} = {60F7B2E1-1635-44A6-A2A9-06EA2D61E152} + {46EAE467-8EF3-FC78-69DC-262F6E063227} = {329736D2-BF92-4D06-A7BF-19F4B6B64EDD} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {8B7C7E31-2E32-4E0D-9426-BC9AF22E9F4C} diff --git a/samples/Analyzer/AnalyzerSamples/PublicationSample.cs b/samples/Analyzer/AnalyzerSamples/PublicationSample.cs index d8b9632996..fa6b322323 100644 --- a/samples/Analyzer/AnalyzerSamples/PublicationSample.cs +++ b/samples/Analyzer/AnalyzerSamples/PublicationSample.cs @@ -1,5 +1,4 @@ - -using Paramore.Brighter; +using Paramore.Brighter; namespace AnalyzerSamples { @@ -16,7 +15,7 @@ public static Publication GetPublicationWrongRequestType() return new PublicationSample() { Subject = "test", - RequestType = typeof(string) + RequestType = typeof(EventSample2) }; } public static Publication GetPublicationWithRequestType() @@ -26,15 +25,24 @@ public static Publication GetPublicationWithRequestType() Subject = "test", RequestType = typeof(EventSample) }; - } + } + public static AnyClass GetAnyOtherClass() + { + return new AnyClass(); + } } public class PublicationSample : Publication { } - public class EventSample : Event + public class EventSample(Id id) : Event(id) { - public EventSample(Id id) : base(id) - { - } + } + public class EventSample2 + { + } + + public class AnyClass + { + } } diff --git a/samples/Analyzer/AnalyzerSamples/SubscriptionSample.cs b/samples/Analyzer/AnalyzerSamples/SubscriptionSample.cs new file mode 100644 index 0000000000..2386c436c5 --- /dev/null +++ b/samples/Analyzer/AnalyzerSamples/SubscriptionSample.cs @@ -0,0 +1,24 @@ + + +using Paramore.Brighter; + +namespace AnalyzerSamples +{ + internal class SubscriptionSample + { + } + public static class SubscriptionCreator + { + public static Subscription GetSubscription() + { + return new SubscriptionTest("name", "name", "key", messagePumpType: MessagePumpType.Reactor); + } + + public class SubscriptionTest : Subscription + { + public SubscriptionTest(SubscriptionName subscriptionName, ChannelName channelName, RoutingKey routingKey, Type? requestType = null, Func? getRequestType = null, int bufferSize = 1, int noOfPerformers = 1, TimeSpan? timeOut = null, int requeueCount = -1, TimeSpan? requeueDelay = null, int unacceptableMessageLimit = 0, MessagePumpType messagePumpType = MessagePumpType.Unknown, IAmAChannelFactory? channelFactory = null, OnMissingChannel makeChannels = OnMissingChannel.Create, TimeSpan? emptyChannelDelay = null, TimeSpan? channelFailureDelay = null) : base(subscriptionName, channelName, routingKey, requestType, getRequestType, bufferSize, noOfPerformers, timeOut, requeueCount, requeueDelay, unacceptableMessageLimit, messagePumpType, channelFactory, makeChannels, emptyChannelDelay, channelFailureDelay) + { + } + } + } +} diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 48bc70b36a..e127a59c4f 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -29,6 +29,7 @@ 10.0.0 + netstandard2.0; netstandard2.0;net8.0;net9.0;net10.0 net462;net8.0;net9.0;net10.0 net8.0;net9.0;net10.0 diff --git a/src/Paramore.Brighter.Analyzer.Package/Paramore.Brighter.Analyzer.Package.csproj b/src/Paramore.Brighter.Analyzer.Package/Paramore.Brighter.Analyzer.Package.csproj index deb2d58499..ef24f47ed2 100644 --- a/src/Paramore.Brighter.Analyzer.Package/Paramore.Brighter.Analyzer.Package.csproj +++ b/src/Paramore.Brighter.Analyzer.Package/Paramore.Brighter.Analyzer.Package.csproj @@ -1,7 +1,7 @@ - netstandard2.0 + $(BrighterNetStandardTargetFrameworks) false true true @@ -11,10 +11,6 @@ Paramore.Brighter.Analyzer 1.0.0.0 AboubakrWork - http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE - http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE - http://ICON_URL_HERE_OR_DELETE_THIS_LINE - http://REPOSITORY_URL_HERE_OR_DELETE_THIS_LINE false Paramore.Brighter.Analyzer Summary of changes made in this release of the package. @@ -37,7 +33,6 @@ - diff --git a/src/Paramore.Brighter.Analyzer/Analyzers/PublicationRequestTypeAssignmentAnalyzer.cs b/src/Paramore.Brighter.Analyzer/Analyzers/PublicationRequestTypeAssignmentAnalyzer.cs index 576ffa01d7..ff08ee398f 100644 --- a/src/Paramore.Brighter.Analyzer/Analyzers/PublicationRequestTypeAssignmentAnalyzer.cs +++ b/src/Paramore.Brighter.Analyzer/Analyzers/PublicationRequestTypeAssignmentAnalyzer.cs @@ -1,25 +1,26 @@ -// The MIT License (MIT) -// Copyright © 2014 Ian Cooper -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. +#region License +/* The MIT License (MIT) +Copyright © 2026 Aboubakr Nasef + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the “Software”), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. */ +#endregion -using System; using System.Collections.Immutable; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Diagnostics; @@ -40,7 +41,8 @@ public class PublicationRequestTypeAssignmentAnalyzer : DiagnosticAnalyzer defaultSeverity: DiagnosticSeverity.Warning, isEnabledByDefault: true // helpLinkUri: GetRuleUrl(Rule) - ); public static DiagnosticDescriptor WrongRequestTypeRule => new DiagnosticDescriptor( + ); + public static DiagnosticDescriptor WrongRequestTypeRule => new DiagnosticDescriptor( id: DiagnosticsIds.WrongRequestType, title: "Wrong Request Type", messageFormat: "RequestType '{0}' is not child of IRequest", @@ -62,7 +64,7 @@ private void AnalyzerOperation(OperationAnalysisContext context) { var visitor = new RequestTypeAssignmentVisitor(); context.Operation.Accept(visitor); - if (!visitor.IsAccepted || !visitor.IsRequestTypeAssigned) + if (visitor.IsPublicationType && !visitor.IsRequestTypeAssigned) { context.ReportDiagnostic(Diagnostic.Create( RequestTypeMissingRule, diff --git a/src/Paramore.Brighter.Analyzer/Analyzers/SubscriptionConstructorAnalyzer.cs b/src/Paramore.Brighter.Analyzer/Analyzers/SubscriptionConstructorAnalyzer.cs new file mode 100644 index 0000000000..48b5d0dd93 --- /dev/null +++ b/src/Paramore.Brighter.Analyzer/Analyzers/SubscriptionConstructorAnalyzer.cs @@ -0,0 +1,69 @@ +#region License +/* The MIT License (MIT) +Copyright © 2026 Aboubakr Nasef + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the “Software”), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. */ +#endregion + +using System; +using System.Collections.Immutable; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.Diagnostics; +using Paramore.Brighter.Analyzer.Visitors.Operation; + +namespace Paramore.Brighter.Analyzer.Analyzers +{ + [DiagnosticAnalyzer(LanguageNames.CSharp)] + public class SubscriptionConstructorAnalyzer : DiagnosticAnalyzer + { + private const string SubscriptionCategory = "Paramore.Brighter.Subscription"; + + public static DiagnosticDescriptor MessagePumpMissingRule => new DiagnosticDescriptor( + id: DiagnosticsIds.MessagePumpMissing, + title: "MessagePump Missing Missing", + messageFormat: "MessagePump assignment is Missing from {0}", + category: SubscriptionCategory, + defaultSeverity: DiagnosticSeverity.Warning, + isEnabledByDefault: true + // helpLinkUri: GetRuleUrl(Rule) + ); + public override ImmutableArray SupportedDiagnostics => [MessagePumpMissingRule]; + + public override void Initialize(AnalysisContext context) + { + context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None); + context.EnableConcurrentExecution(); + context.RegisterOperationAction(AnalyzeOperation, OperationKind.ObjectCreation); + } + + private void AnalyzeOperation(OperationAnalysisContext context) + { + var visitor = new SubscriptionConstructorVisitor(); + context.Operation.Accept(visitor); + if (visitor.IsSubscriptionType && visitor.IsMessagePumpDefault) + { + var diagnostic = Diagnostic.Create( + MessagePumpMissingRule, + context.Operation.Syntax.GetLocation(), + visitor.SubscriptionName); + context.ReportDiagnostic(diagnostic); + } + } + } +} diff --git a/src/Paramore.Brighter.Analyzer/BrighterAnalyzerGlobals.cs b/src/Paramore.Brighter.Analyzer/BrighterAnalyzerGlobals.cs index 70752baf90..334e20882d 100644 --- a/src/Paramore.Brighter.Analyzer/BrighterAnalyzerGlobals.cs +++ b/src/Paramore.Brighter.Analyzer/BrighterAnalyzerGlobals.cs @@ -31,5 +31,8 @@ public class BrighterAnalyzerGlobals public const string BrighterAssembly = "Paramore.Brighter"; public const string RequestTypeProperty = "RequestType"; public const string IRequestInterface = "IRequest"; + + public const string MessagePumpTypeEnumName = "MessagePumpType"; + public const string SubscriptionClassName = "Subscription"; } } diff --git a/src/Paramore.Brighter.Analyzer/DiagnosticsIds.cs b/src/Paramore.Brighter.Analyzer/DiagnosticsIds.cs index 8fed9488ba..8171fdf6d8 100644 --- a/src/Paramore.Brighter.Analyzer/DiagnosticsIds.cs +++ b/src/Paramore.Brighter.Analyzer/DiagnosticsIds.cs @@ -30,6 +30,7 @@ public static class DiagnosticsIds { public const string RequestTypeMissing = "BRT001"; public const string WrongRequestType = "BRT002"; + public const string MessagePumpMissing = "BRT003"; } } diff --git a/src/Paramore.Brighter.Analyzer/Paramore.Brighter.Analyzer.csproj b/src/Paramore.Brighter.Analyzer/Paramore.Brighter.Analyzer.csproj index 952dd716fd..415c6aa504 100644 --- a/src/Paramore.Brighter.Analyzer/Paramore.Brighter.Analyzer.csproj +++ b/src/Paramore.Brighter.Analyzer/Paramore.Brighter.Analyzer.csproj @@ -1,7 +1,10 @@  - netstandard2.0 + $(BrighterNetStandardTargetFrameworks) + Aboubakr Nasef + Anlyzers for the brighter library + Analyzer;Scheduler;Message Scheduling;Command Processor;Brighter false true true diff --git a/src/Paramore.Brighter.Analyzer/Resources.Designer.cs b/src/Paramore.Brighter.Analyzer/Resources.Designer.cs index d3d47cf50c..70328aaabd 100644 --- a/src/Paramore.Brighter.Analyzer/Resources.Designer.cs +++ b/src/Paramore.Brighter.Analyzer/Resources.Designer.cs @@ -1,29 +1,17 @@ -// The MIT License (MIT) -// Copyright © 2014 Ian Cooper +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 // -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -using System; -using System.Reflection; +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ -namespace Paramore.Brighter.Analyzer -{ +namespace Paramore.Brighter.Analyzer { + using System; + + /// /// A strongly-typed resource class, for looking up localized strings, etc. /// @@ -31,84 +19,70 @@ namespace Paramore.Brighter.Analyzer // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "18.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - + internal class Resources { + private static global::System.Resources.ResourceManager resourceMan; - + private static global::System.Globalization.CultureInfo resourceCulture; - + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { + internal Resources() { } - + /// /// Returns the cached ResourceManager instance used by this class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if (object.ReferenceEquals(resourceMan, null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Paramore.Brighter.Analyzer.Resources", typeof(Resources).GetTypeInfo().Assembly); + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Paramore.Brighter.Analyzer.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } } - + /// /// Overrides the current thread's CurrentUICulture property for all /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { + internal static global::System.Globalization.CultureInfo Culture { + get { return resourceCulture; } - set - { + set { resourceCulture = value; } } - + /// /// Looks up a localized string similar to Type names should be all uppercase.. /// - internal static string AnalyzerDescription - { - get - { + internal static string AnalyzerDescription { + get { return ResourceManager.GetString("AnalyzerDescription", resourceCulture); } } - + /// /// Looks up a localized string similar to Type name '{0}' contains lowercase letters. /// - internal static string AnalyzerMessageFormat - { - get - { + internal static string AnalyzerMessageFormat { + get { return ResourceManager.GetString("AnalyzerMessageFormat", resourceCulture); } } - + /// /// Looks up a localized string similar to Type name contains lowercase letters. /// - internal static string AnalyzerTitle - { - get - { + internal static string AnalyzerTitle { + get { return ResourceManager.GetString("AnalyzerTitle", resourceCulture); } } diff --git a/src/Paramore.Brighter.Analyzer/Visitors/Operation/RequestTypeAssignmentVisitor.cs b/src/Paramore.Brighter.Analyzer/Visitors/Operation/RequestTypeAssignmentVisitor.cs index 6e143c80c8..e285d2683d 100644 --- a/src/Paramore.Brighter.Analyzer/Visitors/Operation/RequestTypeAssignmentVisitor.cs +++ b/src/Paramore.Brighter.Analyzer/Visitors/Operation/RequestTypeAssignmentVisitor.cs @@ -1,29 +1,30 @@ -// The MIT License (MIT) -// Copyright © 2014 Ian Cooper -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. +#region License +/* The MIT License (MIT) +Copyright © 2026 Aboubakr Nasef + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the “Software”), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. */ + +#endregion using System.Linq; using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.Diagnostics; using Microsoft.CodeAnalysis.Operations; -using Paramore.Brighter.Analyzer.Analyzers; using Paramore.Brighter.Analyzer.Vistiors.Symbol; @@ -31,7 +32,7 @@ namespace Paramore.Brighter.Analyzer.Vistiors.Operation { public class RequestTypeAssignmentVisitor : OperationWalker { - public bool IsAccepted { get; private set; } + public bool IsPublicationType { get; private set; } public bool IsRequestTypeAssigned { get; private set; } public string PublicationName { get; private set; } public bool IsNotTypeOfIRequest { get; private set; } @@ -43,14 +44,14 @@ public override void VisitObjectCreation(IObjectCreationOperation operation) if (operation.Type!.Accept(new ChildOfVisitor(BrighterAnalyzerGlobals.PublicationClassName, BrighterAnalyzerGlobals.BrighterAssembly))) { PublicationName = operation.Type.Name; - IsAccepted = true; + IsPublicationType = true; base.VisitObjectCreation(operation); } } public override void VisitPropertyReference(IPropertyReferenceOperation operation) { if (operation.Property.Name == BrighterAnalyzerGlobals.RequestTypeProperty) - { + { IsRequestTypeAssigned = true; base.VisitPropertyReference(operation); } diff --git a/src/Paramore.Brighter.Analyzer/Visitors/Operation/SubscriptionConstructorVisitor.cs b/src/Paramore.Brighter.Analyzer/Visitors/Operation/SubscriptionConstructorVisitor.cs new file mode 100644 index 0000000000..4aa6ef272c --- /dev/null +++ b/src/Paramore.Brighter.Analyzer/Visitors/Operation/SubscriptionConstructorVisitor.cs @@ -0,0 +1,55 @@ +#region License +/* The MIT License (MIT) +Copyright © 2026 Aboubakr Nasef + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the “Software”), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. */ + +#endregion + + +using System; +using Microsoft.CodeAnalysis.Operations; +using Paramore.Brighter.Analyzer.Vistiors.Symbol; + +namespace Paramore.Brighter.Analyzer.Visitors.Operation +{ + public class SubscriptionConstructorVisitor : OperationWalker + { + public bool IsMessagePumpDefault { get; private set; } = false; + public string SubscriptionName { get; private set; } + public bool IsSubscriptionType { get; private set; } + + public override void VisitObjectCreation(IObjectCreationOperation operation) + { + if (operation.Type!.Accept(new ChildOfVisitor(BrighterAnalyzerGlobals.SubscriptionClassName, BrighterAnalyzerGlobals.BrighterAssembly))) + { + SubscriptionName = operation.Type.Name; + IsSubscriptionType = true; + base.VisitObjectCreation(operation); + } + } + public override void VisitArgument(IArgumentOperation operation) + { + if (operation.Value.Type.Name == BrighterAnalyzerGlobals.MessagePumpTypeEnumName && operation.ArgumentKind == ArgumentKind.DefaultValue) + { + IsMessagePumpDefault = true; + } + } + } +} diff --git a/src/Paramore.Brighter.Analyzer/Visitors/Symbol/ChildOfVisitor.cs b/src/Paramore.Brighter.Analyzer/Visitors/Symbol/ChildOfVisitor.cs index 8eadf72472..63a993f3f7 100644 --- a/src/Paramore.Brighter.Analyzer/Visitors/Symbol/ChildOfVisitor.cs +++ b/src/Paramore.Brighter.Analyzer/Visitors/Symbol/ChildOfVisitor.cs @@ -1,27 +1,26 @@ -// The MIT License (MIT) -// Copyright © 2014 Ian Cooper -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. +#region License +/* The MIT License (MIT) +Copyright © 2026 Aboubakr Nasef -using System; -using System.Collections.Generic; -using System.Text; +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the “Software”), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. */ + +#endregion using Microsoft.CodeAnalysis; namespace Paramore.Brighter.Analyzer.Vistiors.Symbol diff --git a/tests/Paramore.Brighter.Analyzer.Tests/Analyzers/BaseAnalyzerTest.cs b/tests/Paramore.Brighter.Analyzer.Tests/Analyzers/BaseAnalyzerTest.cs new file mode 100644 index 0000000000..7f3e4da868 --- /dev/null +++ b/tests/Paramore.Brighter.Analyzer.Tests/Analyzers/BaseAnalyzerTest.cs @@ -0,0 +1,24 @@ + +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp.Testing; +using Microsoft.CodeAnalysis.Diagnostics; +using Microsoft.CodeAnalysis.Testing; +using Paramore.Brighter.Analyzer.Analyzers; + +namespace Paramore.Brighter.Analyzer.Tests.Analyzers +{ + public abstract class BaseAnalyzerTest where T : DiagnosticAnalyzer, new() + { + protected CSharpAnalyzerTest testContext; + protected BaseAnalyzerTest() + { + testContext = new CSharpAnalyzerTest + { + ReferenceAssemblies = ReferenceAssemblies.Net.Net90 + }; + testContext.TestState.OutputKind = OutputKind.ConsoleApplication; + testContext.TestState.AdditionalReferences.Add(MetadataReference.CreateFromFile(typeof(Publication).Assembly.Location)); + testContext.CompilerDiagnostics = CompilerDiagnostics.None; + } + } +} diff --git a/src/Paramore.Brighter.Analyzer.Test/PublicationRequestTypeMissing/PublicationRequestTypeAssignmentAnalyzerTest.cs b/tests/Paramore.Brighter.Analyzer.Tests/Analyzers/PublicationRequestTypeAssignmentAnalyzerTest.cs similarity index 63% rename from src/Paramore.Brighter.Analyzer.Test/PublicationRequestTypeMissing/PublicationRequestTypeAssignmentAnalyzerTest.cs rename to tests/Paramore.Brighter.Analyzer.Tests/Analyzers/PublicationRequestTypeAssignmentAnalyzerTest.cs index 4c3611f1ef..a8e904138a 100644 --- a/src/Paramore.Brighter.Analyzer.Test/PublicationRequestTypeMissing/PublicationRequestTypeAssignmentAnalyzerTest.cs +++ b/tests/Paramore.Brighter.Analyzer.Tests/Analyzers/PublicationRequestTypeAssignmentAnalyzerTest.cs @@ -1,23 +1,12 @@ -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp.Testing; -using Microsoft.CodeAnalysis.Testing; +using Microsoft.CodeAnalysis.Testing; using Paramore.Brighter.Analyzer.Analyzers; +using Paramore.Brighter.Analyzer.Tests.Analyzers; -namespace Paramore.Brighter.Analyzer.Test.PublicationRequestTypeMissing +namespace Paramore.Brighter.Analyzer.Test.Analyzers { - public class PublicationRequestTypeAssignmentAnalyzerTest + public class PublicationRequestTypeAssignmentAnalyzerTest : BaseAnalyzerTest { - private readonly CSharpAnalyzerTest testContext; - - public PublicationRequestTypeAssignmentAnalyzerTest() - { - testContext = new CSharpAnalyzerTest(); - testContext.ReferenceAssemblies = ReferenceAssemblies.Net.Net80; - testContext.TestState.OutputKind = OutputKind.ConsoleApplication; - testContext.TestState.AdditionalReferences.Add(MetadataReference.CreateFromFile(typeof(Publication).Assembly.Location)); - testContext.CompilerDiagnostics = CompilerDiagnostics.None; - } [Fact] public async Task When_Initializing_Publication_WithOut_RequestType() @@ -46,10 +35,10 @@ public async Task When_Initializing_Publication_With_Right_RequestType() using Paramore.Brighter; namespace TestNamespace { -var publication = {|#0:new PublicationTest() +var publication =new PublicationTest() { RequestType = typeof(EventSample) -}|}; +}; public class PublicationTest : Publication { @@ -78,16 +67,32 @@ namespace TestNamespace }; public class PublicationTest : Publication - { - } - public class EventSample -{ -} + {} + public class EventSample{} } """; testContext.ExpectedDiagnostics.Add(new DiagnosticResult(PublicationRequestTypeAssignmentAnalyzer.WrongRequestTypeRule).WithLocation(0).WithArguments("EventSample")); await testContext.RunAsync(); } + + [Fact] + public async Task When_Initializing_Non_Publication_Type() + { + testContext.TestCode = /* lang=c#-test */ """ + using System.Collections.Generic; + namespace TestNamespace + { + public class AnyClass + { + public void Method() + { + var list = new List(); // Should be ignored + } + } + } +"""; + await testContext.RunAsync(); + } } } diff --git a/tests/Paramore.Brighter.Analyzer.Tests/Analyzers/SubscriptionConstructorAnalyzerTest.cs b/tests/Paramore.Brighter.Analyzer.Tests/Analyzers/SubscriptionConstructorAnalyzerTest.cs new file mode 100644 index 0000000000..d1e95d3f0d --- /dev/null +++ b/tests/Paramore.Brighter.Analyzer.Tests/Analyzers/SubscriptionConstructorAnalyzerTest.cs @@ -0,0 +1,32 @@ +using Microsoft.CodeAnalysis.Testing; +using Paramore.Brighter.Analyzer.Analyzers; +using Paramore.Brighter.Analyzer.Tests.Analyzers; + +namespace Paramore.Brighter.Analyzer.Test.Analyzers +{ + public class SubscriptionConstructorAnalyzerTest:BaseAnalyzerTest + { + [Fact] + public async Task When_Initializing_Subscription_WithOut_MessagePump() + { + + testContext.TestCode = /* lang=c#-test */ """ +using Paramore.Brighter; +namespace TestNamespace +{ +var subscription = {|#0:new SubscriptionTest("name", "name", "key")|}; + +public class SubscriptionTest : Subscription + { + public SubscriptionTest(SubscriptionName subscriptionName, ChannelName channelName, RoutingKey routingKey, Type? requestType = null, Func? getRequestType = null, int bufferSize = 1, int noOfPerformers = 1, TimeSpan? timeOut = null, int requeueCount = -1, TimeSpan? requeueDelay = null, int unacceptableMessageLimit = 0, MessagePumpType messagePumpType = MessagePumpType.Unknown, IAmAChannelFactory? channelFactory = null, OnMissingChannel makeChannels = OnMissingChannel.Create, TimeSpan? emptyChannelDelay = null, TimeSpan? channelFailureDelay = null) : base(subscriptionName, channelName, routingKey, requestType, getRequestType, bufferSize, noOfPerformers, timeOut, requeueCount, requeueDelay, unacceptableMessageLimit, messagePumpType, channelFactory, makeChannels, emptyChannelDelay, channelFailureDelay) + { + } + } + } +"""; + + testContext.ExpectedDiagnostics.Add(new DiagnosticResult(SubscriptionConstructorAnalyzer.MessagePumpMissingRule).WithLocation(0).WithArguments("SubscriptionTest")); + await testContext.RunAsync(); + } + } +} diff --git a/src/Paramore.Brighter.Analyzer.Test/Paramore.Brighter.Analyzer.Test.csproj b/tests/Paramore.Brighter.Analyzer.Tests/Paramore.Brighter.Analyzer.Tests.csproj similarity index 72% rename from src/Paramore.Brighter.Analyzer.Test/Paramore.Brighter.Analyzer.Test.csproj rename to tests/Paramore.Brighter.Analyzer.Tests/Paramore.Brighter.Analyzer.Tests.csproj index 07d82ee0cd..9efa9a02df 100644 --- a/src/Paramore.Brighter.Analyzer.Test/Paramore.Brighter.Analyzer.Test.csproj +++ b/tests/Paramore.Brighter.Analyzer.Tests/Paramore.Brighter.Analyzer.Tests.csproj @@ -1,7 +1,7 @@  - net9.0 + $(BrighterTestNineOnlyTargetFrameworks) enable enable @@ -18,13 +18,14 @@ - - - - + + + + + From dd42796052535bb1e2597afddf81ac066e5fe26c Mon Sep 17 00:00:00 2001 From: AboubakrNasef Date: Sun, 11 Jan 2026 13:58:15 +0200 Subject: [PATCH 03/16] finalize subscription analyzer --- .../AnalyzerSamples/SubscriptionSample.cs | 17 ++++- .../SubscriptionConstructorAnalyzerTest.cs | 73 ++++++++++++++++--- 2 files changed, 77 insertions(+), 13 deletions(-) diff --git a/samples/Analyzer/AnalyzerSamples/SubscriptionSample.cs b/samples/Analyzer/AnalyzerSamples/SubscriptionSample.cs index 2386c436c5..3fc5041dc2 100644 --- a/samples/Analyzer/AnalyzerSamples/SubscriptionSample.cs +++ b/samples/Analyzer/AnalyzerSamples/SubscriptionSample.cs @@ -9,16 +9,29 @@ internal class SubscriptionSample } public static class SubscriptionCreator { - public static Subscription GetSubscription() + public static Subscription GetSubscription_MessagePumpSpecified() { return new SubscriptionTest("name", "name", "key", messagePumpType: MessagePumpType.Reactor); } - + public static Subscription GetSubscription_NoMessagePumpSpecified() + { + return new SubscriptionTest("name", "name", "key"); + } + public static Subscription GetSubscriptionNested_NoMessagePumpSpecified() + { + return new SubscriptionTestNested("name", "name", "key"); + } public class SubscriptionTest : Subscription { public SubscriptionTest(SubscriptionName subscriptionName, ChannelName channelName, RoutingKey routingKey, Type? requestType = null, Func? getRequestType = null, int bufferSize = 1, int noOfPerformers = 1, TimeSpan? timeOut = null, int requeueCount = -1, TimeSpan? requeueDelay = null, int unacceptableMessageLimit = 0, MessagePumpType messagePumpType = MessagePumpType.Unknown, IAmAChannelFactory? channelFactory = null, OnMissingChannel makeChannels = OnMissingChannel.Create, TimeSpan? emptyChannelDelay = null, TimeSpan? channelFailureDelay = null) : base(subscriptionName, channelName, routingKey, requestType, getRequestType, bufferSize, noOfPerformers, timeOut, requeueCount, requeueDelay, unacceptableMessageLimit, messagePumpType, channelFactory, makeChannels, emptyChannelDelay, channelFailureDelay) { } } + public class SubscriptionTestNested : SubscriptionTest + { + public SubscriptionTestNested(SubscriptionName subscriptionName, ChannelName channelName, RoutingKey routingKey, Type? requestType = null, Func? getRequestType = null, int bufferSize = 1, int noOfPerformers = 1, TimeSpan? timeOut = null, int requeueCount = -1, TimeSpan? requeueDelay = null, int unacceptableMessageLimit = 0, MessagePumpType messagePumpType = MessagePumpType.Unknown, IAmAChannelFactory? channelFactory = null, OnMissingChannel makeChannels = OnMissingChannel.Create, TimeSpan? emptyChannelDelay = null, TimeSpan? channelFailureDelay = null) : base(subscriptionName, channelName, routingKey, requestType, getRequestType, bufferSize, noOfPerformers, timeOut, requeueCount, requeueDelay, unacceptableMessageLimit, messagePumpType, channelFactory, makeChannels, emptyChannelDelay, channelFailureDelay) + { + } + } } } diff --git a/tests/Paramore.Brighter.Analyzer.Tests/Analyzers/SubscriptionConstructorAnalyzerTest.cs b/tests/Paramore.Brighter.Analyzer.Tests/Analyzers/SubscriptionConstructorAnalyzerTest.cs index d1e95d3f0d..d39427946f 100644 --- a/tests/Paramore.Brighter.Analyzer.Tests/Analyzers/SubscriptionConstructorAnalyzerTest.cs +++ b/tests/Paramore.Brighter.Analyzer.Tests/Analyzers/SubscriptionConstructorAnalyzerTest.cs @@ -4,29 +4,80 @@ namespace Paramore.Brighter.Analyzer.Test.Analyzers { - public class SubscriptionConstructorAnalyzerTest:BaseAnalyzerTest + public class SubscriptionConstructorAnalyzerTest : BaseAnalyzerTest { [Fact] - public async Task When_Initializing_Subscription_WithOut_MessagePump() + public async Task When_Initializing_Subscription_With_MessagePump() { testContext.TestCode = /* lang=c#-test */ """ -using Paramore.Brighter; -namespace TestNamespace -{ -var subscription = {|#0:new SubscriptionTest("name", "name", "key")|}; + using Paramore.Brighter; + namespace TestNamespace + { + var subscription = {|#0:new SubscriptionTest("name", "name", "key", messagePumpType: MessagePumpType.Reactor)|}; -public class SubscriptionTest : Subscription - { - public SubscriptionTest(SubscriptionName subscriptionName, ChannelName channelName, RoutingKey routingKey, Type? requestType = null, Func? getRequestType = null, int bufferSize = 1, int noOfPerformers = 1, TimeSpan? timeOut = null, int requeueCount = -1, TimeSpan? requeueDelay = null, int unacceptableMessageLimit = 0, MessagePumpType messagePumpType = MessagePumpType.Unknown, IAmAChannelFactory? channelFactory = null, OnMissingChannel makeChannels = OnMissingChannel.Create, TimeSpan? emptyChannelDelay = null, TimeSpan? channelFailureDelay = null) : base(subscriptionName, channelName, routingKey, requestType, getRequestType, bufferSize, noOfPerformers, timeOut, requeueCount, requeueDelay, unacceptableMessageLimit, messagePumpType, channelFactory, makeChannels, emptyChannelDelay, channelFailureDelay) - { + public class SubscriptionTest : Subscription + { + public SubscriptionTest(SubscriptionName subscriptionName, ChannelName channelName, RoutingKey routingKey, Type? requestType = null, Func? getRequestType = null, int bufferSize = 1, int noOfPerformers = 1, TimeSpan? timeOut = null, int requeueCount = -1, TimeSpan? requeueDelay = null, int unacceptableMessageLimit = 0, MessagePumpType messagePumpType = MessagePumpType.Unknown, IAmAChannelFactory? channelFactory = null, OnMissingChannel makeChannels = OnMissingChannel.Create, TimeSpan? emptyChannelDelay = null, TimeSpan? channelFailureDelay = null) : base(subscriptionName, channelName, routingKey, requestType, getRequestType, bufferSize, noOfPerformers, timeOut, requeueCount, requeueDelay, unacceptableMessageLimit, messagePumpType, channelFactory, makeChannels, emptyChannelDelay, channelFailureDelay) + { + } + } + } +"""; + + await testContext.RunAsync(); } - } + + [Fact] + public async Task When_Initializing_Subscription_WithOut_MessagePump() + { + + testContext.TestCode = /* lang=c#-test */ """ + using Paramore.Brighter; + namespace TestNamespace + { + var subscription = {|#0:new SubscriptionTest("name", "name", "key")|}; + + public class SubscriptionTest : Subscription + { + public SubscriptionTest(SubscriptionName subscriptionName, ChannelName channelName, RoutingKey routingKey, Type? requestType = null, Func? getRequestType = null, int bufferSize = 1, int noOfPerformers = 1, TimeSpan? timeOut = null, int requeueCount = -1, TimeSpan? requeueDelay = null, int unacceptableMessageLimit = 0, MessagePumpType messagePumpType = MessagePumpType.Unknown, IAmAChannelFactory? channelFactory = null, OnMissingChannel makeChannels = OnMissingChannel.Create, TimeSpan? emptyChannelDelay = null, TimeSpan? channelFailureDelay = null) : base(subscriptionName, channelName, routingKey, requestType, getRequestType, bufferSize, noOfPerformers, timeOut, requeueCount, requeueDelay, unacceptableMessageLimit, messagePumpType, channelFactory, makeChannels, emptyChannelDelay, channelFailureDelay) + { + } + } + } +"""; + + testContext.ExpectedDiagnostics.Add(new DiagnosticResult(SubscriptionConstructorAnalyzer.MessagePumpMissingRule).WithLocation(0).WithArguments("SubscriptionTest")); + await testContext.RunAsync(); } + [Fact] + public async Task When_Initializing_SubscriptionNested_WithOut_MessagePump() + { + + testContext.TestCode = /* lang=c#-test */ """ + using Paramore.Brighter; + namespace TestNamespace + { + var subscription = {|#0:new SubscriptionTestNested("name", "name", "key")|}; + + public class SubscriptionTest : Subscription + { + public SubscriptionTest(SubscriptionName subscriptionName, ChannelName channelName, RoutingKey routingKey, Type? requestType = null, Func? getRequestType = null, int bufferSize = 1, int noOfPerformers = 1, TimeSpan? timeOut = null, int requeueCount = -1, TimeSpan? requeueDelay = null, int unacceptableMessageLimit = 0, MessagePumpType messagePumpType = MessagePumpType.Unknown, IAmAChannelFactory? channelFactory = null, OnMissingChannel makeChannels = OnMissingChannel.Create, TimeSpan? emptyChannelDelay = null, TimeSpan? channelFailureDelay = null) : base(subscriptionName, channelName, routingKey, requestType, getRequestType, bufferSize, noOfPerformers, timeOut, requeueCount, requeueDelay, unacceptableMessageLimit, messagePumpType, channelFactory, makeChannels, emptyChannelDelay, channelFailureDelay) + { + } + } + public class SubscriptionTestNested : SubscriptionTest + { + public SubscriptionTestNested(SubscriptionName subscriptionName, ChannelName channelName, RoutingKey routingKey, Type? requestType = null, Func? getRequestType = null, int bufferSize = 1, int noOfPerformers = 1, TimeSpan? timeOut = null, int requeueCount = -1, TimeSpan? requeueDelay = null, int unacceptableMessageLimit = 0, MessagePumpType messagePumpType = MessagePumpType.Unknown, IAmAChannelFactory? channelFactory = null, OnMissingChannel makeChannels = OnMissingChannel.Create, TimeSpan? emptyChannelDelay = null, TimeSpan? channelFailureDelay = null) : base(subscriptionName, channelName, routingKey, requestType, getRequestType, bufferSize, noOfPerformers, timeOut, requeueCount, requeueDelay, unacceptableMessageLimit, messagePumpType, channelFactory, makeChannels, emptyChannelDelay, channelFailureDelay) + { + } + } + } """; testContext.ExpectedDiagnostics.Add(new DiagnosticResult(SubscriptionConstructorAnalyzer.MessagePumpMissingRule).WithLocation(0).WithArguments("SubscriptionTest")); await testContext.RunAsync(); } + } } From 164d252781fccd47ad0669a9d94ce2157124049a Mon Sep 17 00:00:00 2001 From: AboubakrNasef Date: Sun, 11 Jan 2026 19:12:36 +0200 Subject: [PATCH 04/16] add analyzer for the wrapper Attributes --- .../AnalyzerSamples/WrapWithMapperSample.cs | 47 +++++++++++ .../Analyzers/WrapAttributeAnalyzer.cs | 80 +++++++++++++++++++ .../BrighterAnalyzerGlobals.cs | 53 ++++++------ .../DiagnosticsIds.cs | 50 ++++++------ .../Paramore.Brighter.Analyzer.csproj | 4 - .../Symbol/WrapAttributeSymbolVisitor.cs | 49 ++++++++++++ .../SubscriptionConstructorAnalyzerTest.cs | 2 +- .../Analyzers/WrapAttributeAnalyzerTest.cs | 46 +++++++++++ 8 files changed, 277 insertions(+), 54 deletions(-) create mode 100644 samples/Analyzer/AnalyzerSamples/WrapWithMapperSample.cs create mode 100644 src/Paramore.Brighter.Analyzer/Analyzers/WrapAttributeAnalyzer.cs create mode 100644 src/Paramore.Brighter.Analyzer/Visitors/Symbol/WrapAttributeSymbolVisitor.cs create mode 100644 tests/Paramore.Brighter.Analyzer.Tests/Analyzers/WrapAttributeAnalyzerTest.cs diff --git a/samples/Analyzer/AnalyzerSamples/WrapWithMapperSample.cs b/samples/Analyzer/AnalyzerSamples/WrapWithMapperSample.cs new file mode 100644 index 0000000000..506709f6d2 --- /dev/null +++ b/samples/Analyzer/AnalyzerSamples/WrapWithMapperSample.cs @@ -0,0 +1,47 @@ +using Paramore.Brighter; +using Paramore.Brighter.Transforms.Attributes; + +namespace AnalyzerSamples +{ + public class WrapWithMapperAsyncSample: IAmAMessageMapperAsync + { + public IRequestContext? Context { get; set ; } + + [Compress(0)] + [ClaimCheck(0)] + public async Task MapToRequestAsync(Message message, CancellationToken cancellationToken = default) + { + await Task.Yield(); + return new SampleEvent(message.Id); + } + + [Decompress(0)] + public async Task MapToMessageAsync(SampleEvent request, Publication publication, CancellationToken cancellationToken = default) + { + await Task.Yield(); + throw new NotImplementedException(); + } + } + public class WrapWithMapperSample: IAmAMessageMapper + { + public IRequestContext? Context { get; set ; } + + [Compress(0)] + [ClaimCheck(0)] + public SampleEvent MapToRequest(Message message) + { + return new SampleEvent(message.Id); + } + + [Decompress(0)] + public Message MapToMessage(SampleEvent request, Publication publication) + { + throw new NotImplementedException(); + } + } + + + public class SampleEvent(Id id) : Event(id) + { + } +} diff --git a/src/Paramore.Brighter.Analyzer/Analyzers/WrapAttributeAnalyzer.cs b/src/Paramore.Brighter.Analyzer/Analyzers/WrapAttributeAnalyzer.cs new file mode 100644 index 0000000000..4175fc355c --- /dev/null +++ b/src/Paramore.Brighter.Analyzer/Analyzers/WrapAttributeAnalyzer.cs @@ -0,0 +1,80 @@ +#region License +/* The MIT License (MIT) +Copyright © 2026 Aboubakr Nasef + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the “Software”), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. */ +#endregion + +using System; +using System.Collections.Immutable; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.Diagnostics; +using Paramore.Brighter.Analyzer.Visitors.Operation; +using Paramore.Brighter.Analyzer.Visitors.Symbol; + +namespace Paramore.Brighter.Analyzer.Analyzers +{ + [DiagnosticAnalyzer(LanguageNames.CSharp)] + public class WrapAttributeAnalyzer : DiagnosticAnalyzer + { + private const string WrapAttributeCategory = "Paramore.Brighter.WrapWithAttribute"; + + public static DiagnosticDescriptor WrapAttributeRule => new DiagnosticDescriptor( + id: DiagnosticsIds.WrapWithAttribute, + title: "WrapAttribute", + messageFormat: $"{{0}} should be applied '{BrighterAnalyzerGlobals.MapToMessage}' Method", + category: WrapAttributeCategory, + defaultSeverity: DiagnosticSeverity.Warning, + isEnabledByDefault: true + // helpLinkUri: GetRuleUrl(Rule) + ); + public static DiagnosticDescriptor UnWrapWithAttributeRule => new DiagnosticDescriptor( + id: DiagnosticsIds.UnWrapWithAttribute, + title: "UnWrapWithAttribute", + messageFormat: $"{{0}} should be applied '{BrighterAnalyzerGlobals.MapToRequest}' Method ", + category: WrapAttributeCategory, + defaultSeverity: DiagnosticSeverity.Warning, + isEnabledByDefault: true + // helpLinkUri: GetRuleUrl(Rule) + ); + public override ImmutableArray SupportedDiagnostics => [WrapAttributeRule, UnWrapWithAttributeRule]; + + public override void Initialize(AnalysisContext context) + { + context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None); + context.EnableConcurrentExecution(); + context.RegisterSymbolAction(AnalyzeSymbol, SymbolKind.Method); + } + + private void AnalyzeSymbol(SymbolAnalysisContext context) + { + var visitor = new WrapAttributeSymbolVisitor(); + context.Symbol.Accept(visitor); + foreach (var item in visitor.WrongWrappedMapToRequest) + { + context.ReportDiagnostic(Diagnostic.Create(WrapAttributeRule, item.Location, item.Name)); + } + foreach (var item in visitor.WrongWrappedMapToMessage) + { + context.ReportDiagnostic(Diagnostic.Create(UnWrapWithAttributeRule, item.Location, item.Name)); + } + + } + } +} diff --git a/src/Paramore.Brighter.Analyzer/BrighterAnalyzerGlobals.cs b/src/Paramore.Brighter.Analyzer/BrighterAnalyzerGlobals.cs index 334e20882d..4ad546154d 100644 --- a/src/Paramore.Brighter.Analyzer/BrighterAnalyzerGlobals.cs +++ b/src/Paramore.Brighter.Analyzer/BrighterAnalyzerGlobals.cs @@ -1,27 +1,26 @@ -// The MIT License (MIT) -// Copyright © 2014 Ian Cooper -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. +#region License +/* The MIT License (MIT) +Copyright © 2026 Aboubakr Nasef -using System; -using System.Collections.Generic; -using System.Text; +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the “Software”), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. */ + +#endregion namespace Paramore.Brighter.Analyzer { @@ -31,8 +30,14 @@ public class BrighterAnalyzerGlobals public const string BrighterAssembly = "Paramore.Brighter"; public const string RequestTypeProperty = "RequestType"; public const string IRequestInterface = "IRequest"; - + public const string MessagePumpTypeEnumName = "MessagePumpType"; public const string SubscriptionClassName = "Subscription"; + + public const string MessageMapperInterface = "IAmAMessageMapper"; + public const string UnwrapWithAttribute = "UnwrapWithAttribute"; + public const string WrapWithAttribute = "WrapWithAttribute"; + public const string MapToMessage = "MapToMessage"; + public const string MapToRequest = "MapToRequest"; } } diff --git a/src/Paramore.Brighter.Analyzer/DiagnosticsIds.cs b/src/Paramore.Brighter.Analyzer/DiagnosticsIds.cs index 8171fdf6d8..96e86e3c18 100644 --- a/src/Paramore.Brighter.Analyzer/DiagnosticsIds.cs +++ b/src/Paramore.Brighter.Analyzer/DiagnosticsIds.cs @@ -1,28 +1,27 @@ -// The MIT License (MIT) -// Copyright © 2014 Ian Cooper -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. +#region License +/* The MIT License (MIT) +Copyright © 2026 Aboubakr Nasef + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the “Software”), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. */ + +#endregion -using System; -using System.Collections.Generic; -using System.Text; -using Microsoft.CodeAnalysis; namespace Paramore.Brighter.Analyzer { @@ -31,6 +30,7 @@ public static class DiagnosticsIds public const string RequestTypeMissing = "BRT001"; public const string WrongRequestType = "BRT002"; public const string MessagePumpMissing = "BRT003"; - + public const string WrapWithAttribute = "BRT004"; + public const string UnWrapWithAttribute = "BRT005"; } } diff --git a/src/Paramore.Brighter.Analyzer/Paramore.Brighter.Analyzer.csproj b/src/Paramore.Brighter.Analyzer/Paramore.Brighter.Analyzer.csproj index 415c6aa504..c22514e4ec 100644 --- a/src/Paramore.Brighter.Analyzer/Paramore.Brighter.Analyzer.csproj +++ b/src/Paramore.Brighter.Analyzer/Paramore.Brighter.Analyzer.csproj @@ -10,17 +10,13 @@ true *$(MSBuildProjectFile)* - - - - diff --git a/src/Paramore.Brighter.Analyzer/Visitors/Symbol/WrapAttributeSymbolVisitor.cs b/src/Paramore.Brighter.Analyzer/Visitors/Symbol/WrapAttributeSymbolVisitor.cs new file mode 100644 index 0000000000..b4606489d7 --- /dev/null +++ b/src/Paramore.Brighter.Analyzer/Visitors/Symbol/WrapAttributeSymbolVisitor.cs @@ -0,0 +1,49 @@ + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Xml.Linq; +using Microsoft.CodeAnalysis; +using Paramore.Brighter.Analyzer.Vistiors.Symbol; + +namespace Paramore.Brighter.Analyzer.Visitors.Symbol +{ + public class WrapAttributeSymbolVisitor : SymbolVisitor + { + List<(string Name, Location Location)> _wrongWrappedMapToRequest = new(); + public IReadOnlyList<(string Name, Location Location)> WrongWrappedMapToRequest => _wrongWrappedMapToRequest; + List<(string Name, Location Location)> _wrongWrappedMapToMessage = new(); + public IReadOnlyList<(string Name, Location Location)> WrongWrappedMapToMessage => _wrongWrappedMapToMessage; + public override void VisitMethod(IMethodSymbol symbol) + { + var IsMessageMapperType = symbol.ContainingType.AllInterfaces + .Any(c => c.Name.StartsWith(BrighterAnalyzerGlobals.MessageMapperInterface) + && c.ContainingAssembly.Name.Equals(BrighterAnalyzerGlobals.BrighterAssembly)); + if (IsMessageMapperType) + { + if (symbol.Name.StartsWith(BrighterAnalyzerGlobals.MapToRequest)) + { + var childOfVisitor = new ChildOfVisitor(BrighterAnalyzerGlobals.WrapWithAttribute, BrighterAnalyzerGlobals.BrighterAssembly); + var attributes = symbol.GetAttributes().Where(atr => atr.AttributeClass.Accept(childOfVisitor)); + foreach (var attr in attributes) + { + var loc = attr.ApplicationSyntaxReference.GetSyntax().GetLocation(); + _wrongWrappedMapToRequest.Add((attr.AttributeClass.Name, loc)); + } + } + else if (symbol.Name.StartsWith(BrighterAnalyzerGlobals.MapToMessage)) + { + var childOfVisitor = new ChildOfVisitor(BrighterAnalyzerGlobals.UnwrapWithAttribute, BrighterAnalyzerGlobals.BrighterAssembly); + var attributes = symbol.GetAttributes().Where(atr => atr.AttributeClass.Accept(childOfVisitor)); + foreach (var attr in attributes) + { + var loc = attr.ApplicationSyntaxReference.GetSyntax().GetLocation(); + _wrongWrappedMapToMessage.Add((attr.AttributeClass.Name, loc)); + } + } + + base.VisitMethod(symbol); + } + } + } +} diff --git a/tests/Paramore.Brighter.Analyzer.Tests/Analyzers/SubscriptionConstructorAnalyzerTest.cs b/tests/Paramore.Brighter.Analyzer.Tests/Analyzers/SubscriptionConstructorAnalyzerTest.cs index d39427946f..8d2bf4d8a2 100644 --- a/tests/Paramore.Brighter.Analyzer.Tests/Analyzers/SubscriptionConstructorAnalyzerTest.cs +++ b/tests/Paramore.Brighter.Analyzer.Tests/Analyzers/SubscriptionConstructorAnalyzerTest.cs @@ -75,7 +75,7 @@ public SubscriptionTestNested(SubscriptionName subscriptionName, ChannelName cha } """; - testContext.ExpectedDiagnostics.Add(new DiagnosticResult(SubscriptionConstructorAnalyzer.MessagePumpMissingRule).WithLocation(0).WithArguments("SubscriptionTest")); + testContext.ExpectedDiagnostics.Add(new DiagnosticResult(SubscriptionConstructorAnalyzer.MessagePumpMissingRule).WithLocation(0).WithArguments("SubscriptionTestNested")); await testContext.RunAsync(); } diff --git a/tests/Paramore.Brighter.Analyzer.Tests/Analyzers/WrapAttributeAnalyzerTest.cs b/tests/Paramore.Brighter.Analyzer.Tests/Analyzers/WrapAttributeAnalyzerTest.cs new file mode 100644 index 0000000000..8ad50ccffd --- /dev/null +++ b/tests/Paramore.Brighter.Analyzer.Tests/Analyzers/WrapAttributeAnalyzerTest.cs @@ -0,0 +1,46 @@ +using Microsoft.CodeAnalysis.Testing; +using Paramore.Brighter.Analyzer.Analyzers; +using Paramore.Brighter.Analyzer.Tests.Analyzers; + +namespace Paramore.Brighter.Analyzer.Test.Analyzers +{ + public class WrapAttributeAnalyzerTest: BaseAnalyzerTest + { + + [Fact] + public async Task When_Adding_Attribute_To_MessageMapper() + { + + testContext.TestCode = /* lang=c#-test */ """ + using Paramore.Brighter; + using Paramore.Brighter.Transforms.Attributes; + namespace TestNamespace + { + public class WrapWithSample: IAmAMessageMapper + { + public IRequestContext? Context { get; set ; } + + [{|#0:Compress(0)|}] + public SampleEvent MapToRequest(Message message) + { + return new SampleEvent(message.Id); + } + [{|#1:Decompress(0)|}] + public Message MapToMessage(SampleEvent request, Publication publication) + { + throw new NotImplementedException(); + } + } + + + public class SampleEvent(Id id) : Event(id) + { + } +"""; + + testContext.ExpectedDiagnostics.Add(new DiagnosticResult(WrapAttributeAnalyzer.WrapAttributeRule ).WithLocation(0).WithArguments("CompressAttribute")); + testContext.ExpectedDiagnostics.Add(new DiagnosticResult(WrapAttributeAnalyzer.UnWrapWithAttributeRule ).WithLocation(1).WithArguments("DecompressAttribute")); + await testContext.RunAsync(); + } + } +} From b0998006881c13145f361c64ec1d3dadfacaeddf Mon Sep 17 00:00:00 2001 From: AboubakrNasef Date: Sun, 11 Jan 2026 19:53:01 +0200 Subject: [PATCH 05/16] wip Rules documentation --- .../build/Paramore.Brighter.Analyzer.props | 6 ++++++ .../configuration/default.editorconfig | 5 +++++ .../configuration/none.editorconfig | 5 +++++ .../AnalyzerReleases.Shipped.md | 5 +++++ .../Analyzers/PublicationRequestTypeAssignmentAnalyzer.cs | 6 +++--- .../Analyzers/SubscriptionConstructorAnalyzer.cs | 4 ++-- .../Analyzers/WrapAttributeAnalyzer.cs | 8 ++++---- 7 files changed, 30 insertions(+), 9 deletions(-) create mode 100644 src/Paramore.Brighter.Analyzer.Package/build/Paramore.Brighter.Analyzer.props create mode 100644 src/Paramore.Brighter.Analyzer.Package/configuration/default.editorconfig create mode 100644 src/Paramore.Brighter.Analyzer.Package/configuration/none.editorconfig diff --git a/src/Paramore.Brighter.Analyzer.Package/build/Paramore.Brighter.Analyzer.props b/src/Paramore.Brighter.Analyzer.Package/build/Paramore.Brighter.Analyzer.props new file mode 100644 index 0000000000..ead6e08f09 --- /dev/null +++ b/src/Paramore.Brighter.Analyzer.Package/build/Paramore.Brighter.Analyzer.props @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/Paramore.Brighter.Analyzer.Package/configuration/default.editorconfig b/src/Paramore.Brighter.Analyzer.Package/configuration/default.editorconfig new file mode 100644 index 0000000000..c4458e30f1 --- /dev/null +++ b/src/Paramore.Brighter.Analyzer.Package/configuration/default.editorconfig @@ -0,0 +1,5 @@ +dotnet_diagnostic.BRT001.severity = warning +dotnet_diagnostic.BRT002.severity = warning +dotnet_diagnostic.BRT003.severity = warning +dotnet_diagnostic.BRT004.severity = warning +dotnet_diagnostic.BRT005.severity = warning \ No newline at end of file diff --git a/src/Paramore.Brighter.Analyzer.Package/configuration/none.editorconfig b/src/Paramore.Brighter.Analyzer.Package/configuration/none.editorconfig new file mode 100644 index 0000000000..aef953fc0e --- /dev/null +++ b/src/Paramore.Brighter.Analyzer.Package/configuration/none.editorconfig @@ -0,0 +1,5 @@ +dotnet_diagnostic.BRT001.severity = none +dotnet_diagnostic.BRT002.severity = none +dotnet_diagnostic.BRT003.severity = none +dotnet_diagnostic.BRT004.severity = none +dotnet_diagnostic.BRT005.severity = none \ No newline at end of file diff --git a/src/Paramore.Brighter.Analyzer/AnalyzerReleases.Shipped.md b/src/Paramore.Brighter.Analyzer/AnalyzerReleases.Shipped.md index 7a6a8b5ea1..c8cca97158 100644 --- a/src/Paramore.Brighter.Analyzer/AnalyzerReleases.Shipped.md +++ b/src/Paramore.Brighter.Analyzer/AnalyzerReleases.Shipped.md @@ -4,3 +4,8 @@ Rule ID | Category | Severity | Notes --------|----------|----------|-------------------- +BRT001 | Design | Warning | +BRT002 | Design | Warning | +BRT003 | Design | Warning | +BRT004 | Design | Warning | +BRT005 | Design | Warning | \ No newline at end of file diff --git a/src/Paramore.Brighter.Analyzer/Analyzers/PublicationRequestTypeAssignmentAnalyzer.cs b/src/Paramore.Brighter.Analyzer/Analyzers/PublicationRequestTypeAssignmentAnalyzer.cs index ff08ee398f..bf83d227af 100644 --- a/src/Paramore.Brighter.Analyzer/Analyzers/PublicationRequestTypeAssignmentAnalyzer.cs +++ b/src/Paramore.Brighter.Analyzer/Analyzers/PublicationRequestTypeAssignmentAnalyzer.cs @@ -31,9 +31,9 @@ namespace Paramore.Brighter.Analyzer.Analyzers [DiagnosticAnalyzer(LanguageNames.CSharp)] public class PublicationRequestTypeAssignmentAnalyzer : DiagnosticAnalyzer { - private const string RequestPublicationCategory = "Paramore.Brighter.Publication"; + private const string RequestPublicationCategory = "Design"; - public static DiagnosticDescriptor RequestTypeMissingRule => new DiagnosticDescriptor( + public static DiagnosticDescriptor RequestTypeMissingRule = new DiagnosticDescriptor( id: DiagnosticsIds.RequestTypeMissing, title: "Request Type Missing", messageFormat: "RequestType assignment is Missing from {0}", @@ -42,7 +42,7 @@ public class PublicationRequestTypeAssignmentAnalyzer : DiagnosticAnalyzer isEnabledByDefault: true // helpLinkUri: GetRuleUrl(Rule) ); - public static DiagnosticDescriptor WrongRequestTypeRule => new DiagnosticDescriptor( + public static DiagnosticDescriptor WrongRequestTypeRule = new DiagnosticDescriptor( id: DiagnosticsIds.WrongRequestType, title: "Wrong Request Type", messageFormat: "RequestType '{0}' is not child of IRequest", diff --git a/src/Paramore.Brighter.Analyzer/Analyzers/SubscriptionConstructorAnalyzer.cs b/src/Paramore.Brighter.Analyzer/Analyzers/SubscriptionConstructorAnalyzer.cs index 48b5d0dd93..c704795d7e 100644 --- a/src/Paramore.Brighter.Analyzer/Analyzers/SubscriptionConstructorAnalyzer.cs +++ b/src/Paramore.Brighter.Analyzer/Analyzers/SubscriptionConstructorAnalyzer.cs @@ -32,9 +32,9 @@ namespace Paramore.Brighter.Analyzer.Analyzers [DiagnosticAnalyzer(LanguageNames.CSharp)] public class SubscriptionConstructorAnalyzer : DiagnosticAnalyzer { - private const string SubscriptionCategory = "Paramore.Brighter.Subscription"; + private const string SubscriptionCategory = "Design"; - public static DiagnosticDescriptor MessagePumpMissingRule => new DiagnosticDescriptor( + public static DiagnosticDescriptor MessagePumpMissingRule = new DiagnosticDescriptor( id: DiagnosticsIds.MessagePumpMissing, title: "MessagePump Missing Missing", messageFormat: "MessagePump assignment is Missing from {0}", diff --git a/src/Paramore.Brighter.Analyzer/Analyzers/WrapAttributeAnalyzer.cs b/src/Paramore.Brighter.Analyzer/Analyzers/WrapAttributeAnalyzer.cs index 4175fc355c..4887bb84ba 100644 --- a/src/Paramore.Brighter.Analyzer/Analyzers/WrapAttributeAnalyzer.cs +++ b/src/Paramore.Brighter.Analyzer/Analyzers/WrapAttributeAnalyzer.cs @@ -33,9 +33,9 @@ namespace Paramore.Brighter.Analyzer.Analyzers [DiagnosticAnalyzer(LanguageNames.CSharp)] public class WrapAttributeAnalyzer : DiagnosticAnalyzer { - private const string WrapAttributeCategory = "Paramore.Brighter.WrapWithAttribute"; + private const string WrapAttributeCategory = "Design"; - public static DiagnosticDescriptor WrapAttributeRule => new DiagnosticDescriptor( + public static DiagnosticDescriptor WrapAttributeRule = new DiagnosticDescriptor( id: DiagnosticsIds.WrapWithAttribute, title: "WrapAttribute", messageFormat: $"{{0}} should be applied '{BrighterAnalyzerGlobals.MapToMessage}' Method", @@ -44,10 +44,10 @@ public class WrapAttributeAnalyzer : DiagnosticAnalyzer isEnabledByDefault: true // helpLinkUri: GetRuleUrl(Rule) ); - public static DiagnosticDescriptor UnWrapWithAttributeRule => new DiagnosticDescriptor( + public static DiagnosticDescriptor UnWrapWithAttributeRule = new DiagnosticDescriptor( id: DiagnosticsIds.UnWrapWithAttribute, title: "UnWrapWithAttribute", - messageFormat: $"{{0}} should be applied '{BrighterAnalyzerGlobals.MapToRequest}' Method ", + messageFormat: $"{{0}} should be applied '{BrighterAnalyzerGlobals.MapToRequest}' Method", category: WrapAttributeCategory, defaultSeverity: DiagnosticSeverity.Warning, isEnabledByDefault: true From c3f1d323f88b65c1f7a2ccd60684bf2c050187f6 Mon Sep 17 00:00:00 2001 From: AboubakrNasef Date: Tue, 20 Jan 2026 21:05:09 +0200 Subject: [PATCH 06/16] enhance csproj --- .../Paramore.Brighter.Analyzer.Package.csproj | 7 +++---- .../Paramore.Brighter.Analyzer.csproj | 2 -- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/Paramore.Brighter.Analyzer.Package/Paramore.Brighter.Analyzer.Package.csproj b/src/Paramore.Brighter.Analyzer.Package/Paramore.Brighter.Analyzer.Package.csproj index ef24f47ed2..2c3ceabddb 100644 --- a/src/Paramore.Brighter.Analyzer.Package/Paramore.Brighter.Analyzer.Package.csproj +++ b/src/Paramore.Brighter.Analyzer.Package/Paramore.Brighter.Analyzer.Package.csproj @@ -10,12 +10,11 @@ Paramore.Brighter.Analyzer 1.0.0.0 - AboubakrWork + AboubakrNasef false Paramore.Brighter.Analyzer - Summary of changes made in this release of the package. - Copyright - Paramore.Brighter.Analyzer, analyzers + Analyzer For usage of Brighter Command + Paramore.Brighter,Paramore.Brighter.Analyzer, analyzers true true diff --git a/src/Paramore.Brighter.Analyzer/Paramore.Brighter.Analyzer.csproj b/src/Paramore.Brighter.Analyzer/Paramore.Brighter.Analyzer.csproj index c22514e4ec..5f3d1164b6 100644 --- a/src/Paramore.Brighter.Analyzer/Paramore.Brighter.Analyzer.csproj +++ b/src/Paramore.Brighter.Analyzer/Paramore.Brighter.Analyzer.csproj @@ -8,8 +8,6 @@ false true true - - *$(MSBuildProjectFile)* From d327b6ea5ccb283a81b7644bd8a061030ae3a579 Mon Sep 17 00:00:00 2001 From: AboubakrNasef Date: Tue, 20 Jan 2026 21:13:01 +0200 Subject: [PATCH 07/16] clean some files --- Brighter.slnx | 6 ++++ .../AnalyzerConsoleApp.csproj | 16 ---------- .../Analyzer/AnalyzerConsoleApp/Program.cs | 30 ------------------- .../SubscriptionConstructorVisitor.cs | 2 -- .../Symbol/WrapAttributeSymbolVisitor.cs | 26 ++++++++++++++-- 5 files changed, 30 insertions(+), 50 deletions(-) delete mode 100644 samples/Analyzer/AnalyzerConsoleApp/AnalyzerConsoleApp.csproj delete mode 100644 samples/Analyzer/AnalyzerConsoleApp/Program.cs diff --git a/Brighter.slnx b/Brighter.slnx index 69e0698cc4..dae2f19433 100644 --- a/Brighter.slnx +++ b/Brighter.slnx @@ -6,6 +6,9 @@ + + + @@ -153,6 +156,7 @@ + @@ -187,6 +191,8 @@ + + diff --git a/samples/Analyzer/AnalyzerConsoleApp/AnalyzerConsoleApp.csproj b/samples/Analyzer/AnalyzerConsoleApp/AnalyzerConsoleApp.csproj deleted file mode 100644 index 4e2cda9daa..0000000000 --- a/samples/Analyzer/AnalyzerConsoleApp/AnalyzerConsoleApp.csproj +++ /dev/null @@ -1,16 +0,0 @@ - - - - Exe - net9.0 - enable - enable - - - - - - - - - diff --git a/samples/Analyzer/AnalyzerConsoleApp/Program.cs b/samples/Analyzer/AnalyzerConsoleApp/Program.cs deleted file mode 100644 index fee80a8c6b..0000000000 --- a/samples/Analyzer/AnalyzerConsoleApp/Program.cs +++ /dev/null @@ -1,30 +0,0 @@ -// The MIT License (MIT) -// Copyright © 2014 Ian Cooper -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -using Paramore.Brighter; - -Console.WriteLine("Hello, World!"); - -var X = new PublicationRequestTypeMissing(); -public class PublicationRequestTypeMissing : Publication -{ - -} diff --git a/src/Paramore.Brighter.Analyzer/Visitors/Operation/SubscriptionConstructorVisitor.cs b/src/Paramore.Brighter.Analyzer/Visitors/Operation/SubscriptionConstructorVisitor.cs index 4aa6ef272c..85cf68c06d 100644 --- a/src/Paramore.Brighter.Analyzer/Visitors/Operation/SubscriptionConstructorVisitor.cs +++ b/src/Paramore.Brighter.Analyzer/Visitors/Operation/SubscriptionConstructorVisitor.cs @@ -22,8 +22,6 @@ THE SOFTWARE. */ #endregion - -using System; using Microsoft.CodeAnalysis.Operations; using Paramore.Brighter.Analyzer.Vistiors.Symbol; diff --git a/src/Paramore.Brighter.Analyzer/Visitors/Symbol/WrapAttributeSymbolVisitor.cs b/src/Paramore.Brighter.Analyzer/Visitors/Symbol/WrapAttributeSymbolVisitor.cs index b4606489d7..bb46e97237 100644 --- a/src/Paramore.Brighter.Analyzer/Visitors/Symbol/WrapAttributeSymbolVisitor.cs +++ b/src/Paramore.Brighter.Analyzer/Visitors/Symbol/WrapAttributeSymbolVisitor.cs @@ -1,8 +1,30 @@ - +#region License +/* The MIT License (MIT) +Copyright © 2026 Aboubakr Nasef + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the “Software”), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. */ + +#endregion using System; using System.Collections.Generic; using System.Linq; -using System.Xml.Linq; + using Microsoft.CodeAnalysis; using Paramore.Brighter.Analyzer.Vistiors.Symbol; From c75b394101b2b3da99a155576463cac55e6bda96 Mon Sep 17 00:00:00 2001 From: AboubakrNasef Date: Wed, 21 Jan 2026 06:43:59 +0200 Subject: [PATCH 08/16] resolve comments --- ...ublicationRequestTypeAssignmentAnalyzer.cs | 1 - .../SubscriptionConstructorAnalyzer.cs | 1 - .../Analyzers/WrapAttributeAnalyzer.cs | 2 - .../Symbol/WrapAttributeSymbolVisitor.cs | 39 ++++++++++--------- 4 files changed, 20 insertions(+), 23 deletions(-) diff --git a/src/Paramore.Brighter.Analyzer/Analyzers/PublicationRequestTypeAssignmentAnalyzer.cs b/src/Paramore.Brighter.Analyzer/Analyzers/PublicationRequestTypeAssignmentAnalyzer.cs index bf83d227af..907b13c412 100644 --- a/src/Paramore.Brighter.Analyzer/Analyzers/PublicationRequestTypeAssignmentAnalyzer.cs +++ b/src/Paramore.Brighter.Analyzer/Analyzers/PublicationRequestTypeAssignmentAnalyzer.cs @@ -40,7 +40,6 @@ public class PublicationRequestTypeAssignmentAnalyzer : DiagnosticAnalyzer category: RequestPublicationCategory, defaultSeverity: DiagnosticSeverity.Warning, isEnabledByDefault: true - // helpLinkUri: GetRuleUrl(Rule) ); public static DiagnosticDescriptor WrongRequestTypeRule = new DiagnosticDescriptor( id: DiagnosticsIds.WrongRequestType, diff --git a/src/Paramore.Brighter.Analyzer/Analyzers/SubscriptionConstructorAnalyzer.cs b/src/Paramore.Brighter.Analyzer/Analyzers/SubscriptionConstructorAnalyzer.cs index c704795d7e..64ce62aa01 100644 --- a/src/Paramore.Brighter.Analyzer/Analyzers/SubscriptionConstructorAnalyzer.cs +++ b/src/Paramore.Brighter.Analyzer/Analyzers/SubscriptionConstructorAnalyzer.cs @@ -41,7 +41,6 @@ public class SubscriptionConstructorAnalyzer : DiagnosticAnalyzer category: SubscriptionCategory, defaultSeverity: DiagnosticSeverity.Warning, isEnabledByDefault: true - // helpLinkUri: GetRuleUrl(Rule) ); public override ImmutableArray SupportedDiagnostics => [MessagePumpMissingRule]; diff --git a/src/Paramore.Brighter.Analyzer/Analyzers/WrapAttributeAnalyzer.cs b/src/Paramore.Brighter.Analyzer/Analyzers/WrapAttributeAnalyzer.cs index 4887bb84ba..5589f8205b 100644 --- a/src/Paramore.Brighter.Analyzer/Analyzers/WrapAttributeAnalyzer.cs +++ b/src/Paramore.Brighter.Analyzer/Analyzers/WrapAttributeAnalyzer.cs @@ -42,7 +42,6 @@ public class WrapAttributeAnalyzer : DiagnosticAnalyzer category: WrapAttributeCategory, defaultSeverity: DiagnosticSeverity.Warning, isEnabledByDefault: true - // helpLinkUri: GetRuleUrl(Rule) ); public static DiagnosticDescriptor UnWrapWithAttributeRule = new DiagnosticDescriptor( id: DiagnosticsIds.UnWrapWithAttribute, @@ -51,7 +50,6 @@ public class WrapAttributeAnalyzer : DiagnosticAnalyzer category: WrapAttributeCategory, defaultSeverity: DiagnosticSeverity.Warning, isEnabledByDefault: true - // helpLinkUri: GetRuleUrl(Rule) ); public override ImmutableArray SupportedDiagnostics => [WrapAttributeRule, UnWrapWithAttributeRule]; diff --git a/src/Paramore.Brighter.Analyzer/Visitors/Symbol/WrapAttributeSymbolVisitor.cs b/src/Paramore.Brighter.Analyzer/Visitors/Symbol/WrapAttributeSymbolVisitor.cs index bb46e97237..4d85c0b668 100644 --- a/src/Paramore.Brighter.Analyzer/Visitors/Symbol/WrapAttributeSymbolVisitor.cs +++ b/src/Paramore.Brighter.Analyzer/Visitors/Symbol/WrapAttributeSymbolVisitor.cs @@ -41,31 +41,32 @@ public override void VisitMethod(IMethodSymbol symbol) var IsMessageMapperType = symbol.ContainingType.AllInterfaces .Any(c => c.Name.StartsWith(BrighterAnalyzerGlobals.MessageMapperInterface) && c.ContainingAssembly.Name.Equals(BrighterAnalyzerGlobals.BrighterAssembly)); - if (IsMessageMapperType) + if (!IsMessageMapperType) + return; + + if (symbol.Name.StartsWith(BrighterAnalyzerGlobals.MapToRequest)) { - if (symbol.Name.StartsWith(BrighterAnalyzerGlobals.MapToRequest)) + var childOfVisitor = new ChildOfVisitor(BrighterAnalyzerGlobals.WrapWithAttribute, BrighterAnalyzerGlobals.BrighterAssembly); + var attributes = symbol.GetAttributes().Where(atr => atr.AttributeClass.Accept(childOfVisitor)); + foreach (var attr in attributes) { - var childOfVisitor = new ChildOfVisitor(BrighterAnalyzerGlobals.WrapWithAttribute, BrighterAnalyzerGlobals.BrighterAssembly); - var attributes = symbol.GetAttributes().Where(atr => atr.AttributeClass.Accept(childOfVisitor)); - foreach (var attr in attributes) - { - var loc = attr.ApplicationSyntaxReference.GetSyntax().GetLocation(); - _wrongWrappedMapToRequest.Add((attr.AttributeClass.Name, loc)); - } + var loc = attr.ApplicationSyntaxReference.GetSyntax().GetLocation(); + _wrongWrappedMapToRequest.Add((attr.AttributeClass.Name, loc)); } - else if (symbol.Name.StartsWith(BrighterAnalyzerGlobals.MapToMessage)) + } + else if (symbol.Name.StartsWith(BrighterAnalyzerGlobals.MapToMessage)) + { + var childOfVisitor = new ChildOfVisitor(BrighterAnalyzerGlobals.UnwrapWithAttribute, BrighterAnalyzerGlobals.BrighterAssembly); + var attributes = symbol.GetAttributes().Where(atr => atr.AttributeClass.Accept(childOfVisitor)); + foreach (var attr in attributes) { - var childOfVisitor = new ChildOfVisitor(BrighterAnalyzerGlobals.UnwrapWithAttribute, BrighterAnalyzerGlobals.BrighterAssembly); - var attributes = symbol.GetAttributes().Where(atr => atr.AttributeClass.Accept(childOfVisitor)); - foreach (var attr in attributes) - { - var loc = attr.ApplicationSyntaxReference.GetSyntax().GetLocation(); - _wrongWrappedMapToMessage.Add((attr.AttributeClass.Name, loc)); - } + var loc = attr.ApplicationSyntaxReference.GetSyntax().GetLocation(); + _wrongWrappedMapToMessage.Add((attr.AttributeClass.Name, loc)); } - - base.VisitMethod(symbol); } + + base.VisitMethod(symbol); } } } + From e8efc4b512d5a502a9de0121e1b6ab5b117a034a Mon Sep 17 00:00:00 2001 From: AboubakrNasef Date: Sun, 25 Jan 2026 20:55:12 +0200 Subject: [PATCH 09/16] add adr --- ...7-provide-roslyn-analyzers-for-brighter.md | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 docs/adr/0037-provide-roslyn-analyzers-for-brighter.md diff --git a/docs/adr/0037-provide-roslyn-analyzers-for-brighter.md b/docs/adr/0037-provide-roslyn-analyzers-for-brighter.md new file mode 100644 index 0000000000..f0c1557054 --- /dev/null +++ b/docs/adr/0037-provide-roslyn-analyzers-for-brighter.md @@ -0,0 +1,57 @@ +# 37. Provide Roslyn Analyzers for Brighter + +Date: 2026-01-25 + +## Status + +Proposed + +## Context + +Using Brighter correctly often involves adhering to specific patterns and conventions that are not strictly enforced by the C# compiler alone. For example, developers must ensure that: +- Attributes like `[Wrap]` are used correctly to configure the pipeline. +- `Publication` objects are initialized with a valid `RequestType` that implements `IRequest` for proper mapping. +- Subscriptions are configured with valid parameters. + +Currently, violations of these rules often result in runtime errors (e.g., `RuntimeBinderException`, `ArgumentException`) or silent failures. identifying these issues requires running the application, which delays the feedback loop and increases the risk of bugs reaching production. + +We want to "shift left" on these checks, providing feedback to developers as they write code. + +## Decision + +We will introduce a new project, `Paramore.Brighter.Analyzer`, containing custom Roslyn analyzers. +This project will be distributed as a NuGet package that developers can include in their projects. + +The analyzers will inspect code at compile-time and report diagnostics (warnings or errors) for known invalid usage patterns of Brighter components. + +The initial implementation will include the following analyzers: + +1. **PublicationRequestTypeAssignmentAnalyzer**: + - Ensures that when a `Publication` object is created, the `RequestType` property is explicitly assigned. + - Verifies that the assigned type implements `IRequest`. + +2. **SubscriptionConstructorAnalyzer**: + - Validates that `Subscription` objects are instantiated with correct arguments and configuration. + +3. **WrapAttributeAnalyzer**: + +## Technical Implementation Strategy + +The logic for the analyzers will be implemented using the **Roslyn API** and the **Visitor Pattern**. + +1. **Roslyn Syntax & Operation Trees**: We leverage Roslyn to inspect the code structure. We specifically focus on the **Operation Tree (IOperation)**, which provides a semantic view of the code (e.g., understanding that a line is an object creation regardless of syntax). +2. **Visitor Pattern**: To efficiently traverse the code, we implement a `Visitor` (e.g., `RequestTypeAssignmentVisitor`). + - The **Visitor** "walks" through specific nodes of the code tree (like `ObjectCreation`). + - We utilize **Double Dispatch** (via the `Accept` method) to ensure the correct `Visit` method is called for each node type. This avoids the need for explicit type casting and massive `if-else` or `switch` statements to determine node types, making the code cleaner and more maintainable. + - It maintains state as it visits nodes (e.g., "I am currently inside a Publication object creation"). + +## Consequences + +### Positive +- **Immediate Feedback**: Developers receive feedback on incorrect usage within the IDE and at build time. +- **Reduced Runtime Errors**: Prevents a class of configuration and usage errors from occurring at runtime. +- **Better Discovery**: Helps new users learn Brighter's constraints and requirements through compiler messages rather than documentation lookup or trial-and-error. + +### Negative +- **Maintenance**: The analyzer project must be maintained and updated as Brighter's API and patterns evolve. + From daf0119de88a05a45fb47e740ccb05514a7dc451 Mon Sep 17 00:00:00 2001 From: AboubakrNasef Date: Sun, 25 Jan 2026 20:55:24 +0200 Subject: [PATCH 10/16] resolve comments --- .../Visitors/Symbol/WrapAttributeSymbolVisitor.cs | 8 ++++---- ...more.Brighter.ServiceActivator.Control.Api.csproj | 6 +----- .../Properties/launchSettings.json | 12 ------------ 3 files changed, 5 insertions(+), 21 deletions(-) delete mode 100644 src/Paramore.Brighter.ServiceActivator.Control.Api/Properties/launchSettings.json diff --git a/src/Paramore.Brighter.Analyzer/Visitors/Symbol/WrapAttributeSymbolVisitor.cs b/src/Paramore.Brighter.Analyzer/Visitors/Symbol/WrapAttributeSymbolVisitor.cs index 4d85c0b668..b0473bc351 100644 --- a/src/Paramore.Brighter.Analyzer/Visitors/Symbol/WrapAttributeSymbolVisitor.cs +++ b/src/Paramore.Brighter.Analyzer/Visitors/Symbol/WrapAttributeSymbolVisitor.cs @@ -32,16 +32,16 @@ namespace Paramore.Brighter.Analyzer.Visitors.Symbol { public class WrapAttributeSymbolVisitor : SymbolVisitor { - List<(string Name, Location Location)> _wrongWrappedMapToRequest = new(); + private List<(string Name, Location Location)> _wrongWrappedMapToRequest = new(); public IReadOnlyList<(string Name, Location Location)> WrongWrappedMapToRequest => _wrongWrappedMapToRequest; - List<(string Name, Location Location)> _wrongWrappedMapToMessage = new(); + private List<(string Name, Location Location)> _wrongWrappedMapToMessage = new(); public IReadOnlyList<(string Name, Location Location)> WrongWrappedMapToMessage => _wrongWrappedMapToMessage; public override void VisitMethod(IMethodSymbol symbol) { - var IsMessageMapperType = symbol.ContainingType.AllInterfaces + var isMessageMapperType = symbol.ContainingType.AllInterfaces .Any(c => c.Name.StartsWith(BrighterAnalyzerGlobals.MessageMapperInterface) && c.ContainingAssembly.Name.Equals(BrighterAnalyzerGlobals.BrighterAssembly)); - if (!IsMessageMapperType) + if (!isMessageMapperType) return; if (symbol.Name.StartsWith(BrighterAnalyzerGlobals.MapToRequest)) diff --git a/src/Paramore.Brighter.ServiceActivator.Control.Api/Paramore.Brighter.ServiceActivator.Control.Api.csproj b/src/Paramore.Brighter.ServiceActivator.Control.Api/Paramore.Brighter.ServiceActivator.Control.Api.csproj index 092ad45f5a..428c4eabd0 100644 --- a/src/Paramore.Brighter.ServiceActivator.Control.Api/Paramore.Brighter.ServiceActivator.Control.Api.csproj +++ b/src/Paramore.Brighter.ServiceActivator.Control.Api/Paramore.Brighter.ServiceActivator.Control.Api.csproj @@ -1,4 +1,4 @@ - + ASP.NET Core API extensions for Paramore.Brighter Service Activator Control module. Provides REST endpoints for querying service activator node status and health information. @@ -16,8 +16,4 @@ - - - - diff --git a/src/Paramore.Brighter.ServiceActivator.Control.Api/Properties/launchSettings.json b/src/Paramore.Brighter.ServiceActivator.Control.Api/Properties/launchSettings.json deleted file mode 100644 index 804380600f..0000000000 --- a/src/Paramore.Brighter.ServiceActivator.Control.Api/Properties/launchSettings.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "profiles": { - "Paramore.Brighter.ServiceActivator.Control.Api": { - "commandName": "Project", - "launchBrowser": true, - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - }, - "applicationUrl": "https://localhost:59693;http://localhost:59694" - } - } -} \ No newline at end of file From 19094b8fb81910a4936675c280ab04b9dce2767a Mon Sep 17 00:00:00 2001 From: AboubakrNasef Date: Sun, 25 Jan 2026 21:11:08 +0200 Subject: [PATCH 11/16] refactor the function of report attributes --- .../Symbol/WrapAttributeSymbolVisitor.cs | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/Paramore.Brighter.Analyzer/Visitors/Symbol/WrapAttributeSymbolVisitor.cs b/src/Paramore.Brighter.Analyzer/Visitors/Symbol/WrapAttributeSymbolVisitor.cs index b0473bc351..142640ee89 100644 --- a/src/Paramore.Brighter.Analyzer/Visitors/Symbol/WrapAttributeSymbolVisitor.cs +++ b/src/Paramore.Brighter.Analyzer/Visitors/Symbol/WrapAttributeSymbolVisitor.cs @@ -46,27 +46,28 @@ public override void VisitMethod(IMethodSymbol symbol) if (symbol.Name.StartsWith(BrighterAnalyzerGlobals.MapToRequest)) { - var childOfVisitor = new ChildOfVisitor(BrighterAnalyzerGlobals.WrapWithAttribute, BrighterAnalyzerGlobals.BrighterAssembly); - var attributes = symbol.GetAttributes().Where(atr => atr.AttributeClass.Accept(childOfVisitor)); - foreach (var attr in attributes) - { - var loc = attr.ApplicationSyntaxReference.GetSyntax().GetLocation(); - _wrongWrappedMapToRequest.Add((attr.AttributeClass.Name, loc)); - } + ReportInvalidAttributes(symbol, BrighterAnalyzerGlobals.WrapWithAttribute, _wrongWrappedMapToRequest); } else if (symbol.Name.StartsWith(BrighterAnalyzerGlobals.MapToMessage)) { - var childOfVisitor = new ChildOfVisitor(BrighterAnalyzerGlobals.UnwrapWithAttribute, BrighterAnalyzerGlobals.BrighterAssembly); - var attributes = symbol.GetAttributes().Where(atr => atr.AttributeClass.Accept(childOfVisitor)); - foreach (var attr in attributes) - { - var loc = attr.ApplicationSyntaxReference.GetSyntax().GetLocation(); - _wrongWrappedMapToMessage.Add((attr.AttributeClass.Name, loc)); - } + ReportInvalidAttributes(symbol, BrighterAnalyzerGlobals.UnwrapWithAttribute, _wrongWrappedMapToMessage); } base.VisitMethod(symbol); } + private void ReportInvalidAttributes(IMethodSymbol symbol, string invalidAttributeBase, List<(string, Location)> collection) + { + var visitor = new ChildOfVisitor(invalidAttributeBase, BrighterAnalyzerGlobals.BrighterAssembly); + + foreach (var attr in symbol.GetAttributes()) + { + if (attr.AttributeClass?.Accept(visitor) == true) + { + var location = attr.ApplicationSyntaxReference?.GetSyntax()?.GetLocation() ?? symbol.Locations[0]; + collection.Add((attr.AttributeClass.Name, location)); + } + } + } } } From 546b73230fb3c1b1e89e82b28e052da419b3752b Mon Sep 17 00:00:00 2001 From: AboubakrNasef Date: Sun, 1 Feb 2026 12:30:41 +0200 Subject: [PATCH 12/16] fix pr comments wip --- .../AnalyzerReleases.Shipped.md | 10 ++--- ...ublicationRequestTypeAssignmentAnalyzer.cs | 3 +- .../SubscriptionConstructorAnalyzer.cs | 2 +- .../Analyzers/WrapAttributeAnalyzer.cs | 2 +- .../Paramore.Brighter.Analyzer.csproj | 6 --- .../Operation/RequestTypeAssignmentVisitor.cs | 4 +- .../SubscriptionConstructorVisitor.cs | 2 +- .../Visitors/Symbol/ChildOfVisitor.cs | 3 +- .../Symbol/WrapAttributeSymbolVisitor.cs | 2 +- src/Paramore.Brighter.Analyzer/docs/BRT001.md | 24 +++++++++++ src/Paramore.Brighter.Analyzer/docs/BRT002.md | 23 ++++++++++ src/Paramore.Brighter.Analyzer/docs/BRT003.md | 25 +++++++++++ src/Paramore.Brighter.Analyzer/docs/BRT004.md | 43 +++++++++++++++++++ src/Paramore.Brighter.Analyzer/docs/BRT005.md | 42 ++++++++++++++++++ 14 files changed, 170 insertions(+), 21 deletions(-) create mode 100644 src/Paramore.Brighter.Analyzer/docs/BRT001.md create mode 100644 src/Paramore.Brighter.Analyzer/docs/BRT002.md create mode 100644 src/Paramore.Brighter.Analyzer/docs/BRT003.md create mode 100644 src/Paramore.Brighter.Analyzer/docs/BRT004.md create mode 100644 src/Paramore.Brighter.Analyzer/docs/BRT005.md diff --git a/src/Paramore.Brighter.Analyzer/AnalyzerReleases.Shipped.md b/src/Paramore.Brighter.Analyzer/AnalyzerReleases.Shipped.md index c8cca97158..a32c29b2e2 100644 --- a/src/Paramore.Brighter.Analyzer/AnalyzerReleases.Shipped.md +++ b/src/Paramore.Brighter.Analyzer/AnalyzerReleases.Shipped.md @@ -4,8 +4,8 @@ Rule ID | Category | Severity | Notes --------|----------|----------|-------------------- -BRT001 | Design | Warning | -BRT002 | Design | Warning | -BRT003 | Design | Warning | -BRT004 | Design | Warning | -BRT005 | Design | Warning | \ No newline at end of file +BRT001 | Design | Warning | ([BRT001](./docs/BRT001.md)) Request Type assignment is Missing +BRT002 | Design | Warning | ([BRT002](./docs/BRT002.md)) RequestType is not child of IRequest +BRT003 | Design | Warning | ([BRT003](./docs/BRT003.md)) MessagePump assignment is Missing +BRT004 | Design | Warning | ([BRT004](./docs/BRT004.md)) Wrap attribute is applied to wrong Method +BRT005 | Design | Warning | ([BRT005](./docs/BRT005.md)) UnWrap attribute is applied to wrong Method \ No newline at end of file diff --git a/src/Paramore.Brighter.Analyzer/Analyzers/PublicationRequestTypeAssignmentAnalyzer.cs b/src/Paramore.Brighter.Analyzer/Analyzers/PublicationRequestTypeAssignmentAnalyzer.cs index 907b13c412..6ecb90de3a 100644 --- a/src/Paramore.Brighter.Analyzer/Analyzers/PublicationRequestTypeAssignmentAnalyzer.cs +++ b/src/Paramore.Brighter.Analyzer/Analyzers/PublicationRequestTypeAssignmentAnalyzer.cs @@ -24,7 +24,7 @@ THE SOFTWARE. */ using System.Collections.Immutable; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Diagnostics; -using Paramore.Brighter.Analyzer.Vistiors.Operation; +using Paramore.Brighter.Analyzer.Visitors.Operation; namespace Paramore.Brighter.Analyzer.Analyzers { @@ -48,7 +48,6 @@ public class PublicationRequestTypeAssignmentAnalyzer : DiagnosticAnalyzer category: RequestPublicationCategory, defaultSeverity: DiagnosticSeverity.Warning, isEnabledByDefault: true - // helpLinkUri: GetRuleUrl(Rule) ); public override ImmutableArray SupportedDiagnostics { get { return [RequestTypeMissingRule, WrongRequestTypeRule]; } } diff --git a/src/Paramore.Brighter.Analyzer/Analyzers/SubscriptionConstructorAnalyzer.cs b/src/Paramore.Brighter.Analyzer/Analyzers/SubscriptionConstructorAnalyzer.cs index 64ce62aa01..9c03dbf795 100644 --- a/src/Paramore.Brighter.Analyzer/Analyzers/SubscriptionConstructorAnalyzer.cs +++ b/src/Paramore.Brighter.Analyzer/Analyzers/SubscriptionConstructorAnalyzer.cs @@ -36,7 +36,7 @@ public class SubscriptionConstructorAnalyzer : DiagnosticAnalyzer public static DiagnosticDescriptor MessagePumpMissingRule = new DiagnosticDescriptor( id: DiagnosticsIds.MessagePumpMissing, - title: "MessagePump Missing Missing", + title: "MessagePump Missing", messageFormat: "MessagePump assignment is Missing from {0}", category: SubscriptionCategory, defaultSeverity: DiagnosticSeverity.Warning, diff --git a/src/Paramore.Brighter.Analyzer/Analyzers/WrapAttributeAnalyzer.cs b/src/Paramore.Brighter.Analyzer/Analyzers/WrapAttributeAnalyzer.cs index 5589f8205b..0c603c7971 100644 --- a/src/Paramore.Brighter.Analyzer/Analyzers/WrapAttributeAnalyzer.cs +++ b/src/Paramore.Brighter.Analyzer/Analyzers/WrapAttributeAnalyzer.cs @@ -37,7 +37,7 @@ public class WrapAttributeAnalyzer : DiagnosticAnalyzer public static DiagnosticDescriptor WrapAttributeRule = new DiagnosticDescriptor( id: DiagnosticsIds.WrapWithAttribute, - title: "WrapAttribute", + title: "WrapWithAttribute", messageFormat: $"{{0}} should be applied '{BrighterAnalyzerGlobals.MapToMessage}' Method", category: WrapAttributeCategory, defaultSeverity: DiagnosticSeverity.Warning, diff --git a/src/Paramore.Brighter.Analyzer/Paramore.Brighter.Analyzer.csproj b/src/Paramore.Brighter.Analyzer/Paramore.Brighter.Analyzer.csproj index 5f3d1164b6..0af0823129 100644 --- a/src/Paramore.Brighter.Analyzer/Paramore.Brighter.Analyzer.csproj +++ b/src/Paramore.Brighter.Analyzer/Paramore.Brighter.Analyzer.csproj @@ -13,10 +13,4 @@ - - - - - - diff --git a/src/Paramore.Brighter.Analyzer/Visitors/Operation/RequestTypeAssignmentVisitor.cs b/src/Paramore.Brighter.Analyzer/Visitors/Operation/RequestTypeAssignmentVisitor.cs index e285d2683d..cc276c4ed1 100644 --- a/src/Paramore.Brighter.Analyzer/Visitors/Operation/RequestTypeAssignmentVisitor.cs +++ b/src/Paramore.Brighter.Analyzer/Visitors/Operation/RequestTypeAssignmentVisitor.cs @@ -25,10 +25,10 @@ THE SOFTWARE. */ using System.Linq; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Operations; -using Paramore.Brighter.Analyzer.Vistiors.Symbol; +using Paramore.Brighter.Analyzer.Visitors.Symbol; -namespace Paramore.Brighter.Analyzer.Vistiors.Operation +namespace Paramore.Brighter.Analyzer.Visitors.Operation { public class RequestTypeAssignmentVisitor : OperationWalker { diff --git a/src/Paramore.Brighter.Analyzer/Visitors/Operation/SubscriptionConstructorVisitor.cs b/src/Paramore.Brighter.Analyzer/Visitors/Operation/SubscriptionConstructorVisitor.cs index 85cf68c06d..58fd98a830 100644 --- a/src/Paramore.Brighter.Analyzer/Visitors/Operation/SubscriptionConstructorVisitor.cs +++ b/src/Paramore.Brighter.Analyzer/Visitors/Operation/SubscriptionConstructorVisitor.cs @@ -23,7 +23,7 @@ THE SOFTWARE. */ #endregion using Microsoft.CodeAnalysis.Operations; -using Paramore.Brighter.Analyzer.Vistiors.Symbol; +using Paramore.Brighter.Analyzer.Visitors.Symbol; namespace Paramore.Brighter.Analyzer.Visitors.Operation { diff --git a/src/Paramore.Brighter.Analyzer/Visitors/Symbol/ChildOfVisitor.cs b/src/Paramore.Brighter.Analyzer/Visitors/Symbol/ChildOfVisitor.cs index 63a993f3f7..c535b4d64f 100644 --- a/src/Paramore.Brighter.Analyzer/Visitors/Symbol/ChildOfVisitor.cs +++ b/src/Paramore.Brighter.Analyzer/Visitors/Symbol/ChildOfVisitor.cs @@ -23,11 +23,10 @@ THE SOFTWARE. */ #endregion using Microsoft.CodeAnalysis; -namespace Paramore.Brighter.Analyzer.Vistiors.Symbol +namespace Paramore.Brighter.Analyzer.Visitors.Symbol { public class ChildOfVisitor(string className, string assmeblyName) : SymbolVisitor { - public override bool VisitNamedType(INamedTypeSymbol symbol) { var type = symbol; diff --git a/src/Paramore.Brighter.Analyzer/Visitors/Symbol/WrapAttributeSymbolVisitor.cs b/src/Paramore.Brighter.Analyzer/Visitors/Symbol/WrapAttributeSymbolVisitor.cs index 142640ee89..233f31ffa8 100644 --- a/src/Paramore.Brighter.Analyzer/Visitors/Symbol/WrapAttributeSymbolVisitor.cs +++ b/src/Paramore.Brighter.Analyzer/Visitors/Symbol/WrapAttributeSymbolVisitor.cs @@ -26,7 +26,7 @@ THE SOFTWARE. */ using System.Linq; using Microsoft.CodeAnalysis; -using Paramore.Brighter.Analyzer.Vistiors.Symbol; +using Paramore.Brighter.Analyzer.Visitors.Symbol; namespace Paramore.Brighter.Analyzer.Visitors.Symbol { diff --git a/src/Paramore.Brighter.Analyzer/docs/BRT001.md b/src/Paramore.Brighter.Analyzer/docs/BRT001.md new file mode 100644 index 0000000000..e0bae21518 --- /dev/null +++ b/src/Paramore.Brighter.Analyzer/docs/BRT001.md @@ -0,0 +1,24 @@ +# BRT001: Request Type Missing + +## Description +This rule ensures that a `Publication` object creation has a `RequestType` assigned. Without specifying the request type, Brighter cannot determine which message type this publication or subscription is for. + +## Why is this a warning? +Failing to specify the `RequestType` will lead to runtime errors or incorrect message routing, as the system won't know how to handle the publication or subscription. + +## How to fix +Assign a valid request type to the `RequestType` property during object initialization. + +### Example +```csharp +// Warning: RequestType is missing + +var publication = new Publication { + // Missing RequestType +}; + +// Fixed: RequestType is assigned +var publication = new Publication { + RequestType = typeof(MyRequest) +}; +``` diff --git a/src/Paramore.Brighter.Analyzer/docs/BRT002.md b/src/Paramore.Brighter.Analyzer/docs/BRT002.md new file mode 100644 index 0000000000..07e1d32260 --- /dev/null +++ b/src/Paramore.Brighter.Analyzer/docs/BRT002.md @@ -0,0 +1,23 @@ +# BRT002: Wrong Request Type + +## Description +This rule ensures that the type assigned to `RequestType` in a `Publication` implements the `IRequest` interface. + +## Why is this a warning? +Brighter requires all request types to implement `IRequest`. Using a type that doesn't implement this interface will cause internal errors when attempting to route messages. + +## How to fix +Ensure the type used in `RequestType` implements `Paramore.Brighter.IRequest`. + +### Example +```csharp +// Error: MyType does not implement IRequest +var publication = new Publication { + RequestType = typeof(MyType) +}; + +// Fixed: MyRequest implements IRequest +var publication = new Publication { + RequestType = typeof(MyRequest) +}; +``` diff --git a/src/Paramore.Brighter.Analyzer/docs/BRT003.md b/src/Paramore.Brighter.Analyzer/docs/BRT003.md new file mode 100644 index 0000000000..070998d35f --- /dev/null +++ b/src/Paramore.Brighter.Analyzer/docs/BRT003.md @@ -0,0 +1,25 @@ +# BRT003: MessagePump Missing + +## Description +This rule identifies when a `Subscription` is created without specifying a `MessagePumpType`. + +## Why is this a warning? +A subscription needs a message pump to process incoming messages. If not specified, the subscription will not function as expected in a service host environment. + +## How to fix +Assign a valid message pump type to the `MessagePumpType` property during initialization. + +### Example +```csharp +// Error: MessagePumpType is missing +var subscription = new Subscription( +"MySubscription", ... +); + +// Fixed: MessagePumpType is assigned +var subscription = new Subscription( + "MySubscription", + messagePumpType: MessagePumpType.Reactor, + ... +); +``` diff --git a/src/Paramore.Brighter.Analyzer/docs/BRT004.md b/src/Paramore.Brighter.Analyzer/docs/BRT004.md new file mode 100644 index 0000000000..5071f3fad5 --- /dev/null +++ b/src/Paramore.Brighter.Analyzer/docs/BRT004.md @@ -0,0 +1,43 @@ +# BRT004: WrapWithAttribute Correct Usage + +## Description +This rule ensures that the "Wrap" attributes are correctly applied to methods that map domain requests back to messages (typically `MapToMessage`). + +## Why is this a warning? +Applying a "Wrap" attribute to the wrong mapping method can lead to unexpected behavior in the middleware pipeline, such as attempting to wrap a message into a request when it's already a request, or vice-versa. + +## How to fix +Ensure that attributes intended for wrapping are applied to the `MapToMessage` method. + +### Example +Check your `IAmAMessageMapper ,IAmAMessageMapperAsync` implementation to ensure attributes are on the correct method. +```csharp + public class WrapWithMapperSample: IAmAMessageMapper + { + /* ommited code */ + + // Error: Attributes should be assigned to the MapToMessage method + [Compress(0)] + [ClaimCheck(0)] + public SampleEvent MapToRequest(Message message) + { + /* ommited code*/ + } + /* ommited code */ + } + + // Fixed: Attributes assigned to the MapToMessage method + public class WrapWithMapperSample: IAmAMessageMapper + { + /* ommited code */ + + [Compress(0)] + [ClaimCheck(0)] + public Message MapToMessage(SampleEvent request, Publication publication) + { + /* ommited code*/ + } + + /* ommited code */ + } +``` diff --git a/src/Paramore.Brighter.Analyzer/docs/BRT005.md b/src/Paramore.Brighter.Analyzer/docs/BRT005.md new file mode 100644 index 0000000000..bf25e7eb17 --- /dev/null +++ b/src/Paramore.Brighter.Analyzer/docs/BRT005.md @@ -0,0 +1,42 @@ +# BRT005: UnWrapWithAttribute Correct Usage + +## Description +This rule ensures that "Unwrap" attributes are correctly applied to methods that map messages to domain requests (typically `MapToRequest`). + +## Why is this a warning? +Applying an "Unwrap" attribute to the wrong mapping method can disrupt the flow of message processing in Brighter's pipeline. + +## How to fix +Ensure that attributes intended for unwrapping are applied to the `MapToRequest` method. + +### Example +Check your `IAmAMessageMapper , IAmAMessageMapperAsync` implementation to ensure attributes are on the correct method. +```csharp + public class UnwrapWithMapperSample: IAmAMessageMapper + { + /* + ommited code + */ + + // Error: Attributes should be assigned to the MapToRequest method + [Decompress(0)] + public Message MapToMessage(SampleEvent request, Publication publication) + { + /* ommited code*/ + } + /* ommited code */ + } + // Fixed: Attributes assigned to the MapToRequest method + public class UnwrapWithMapperSample: IAmAMessageMapper + { + /* ommited code */ + + [Decompress(0)] + public SampleEvent MapToRequest(Message message) + { + /* ommited code*/ + } + + /* ommited code */ + } +``` From 67db77b0dfab55604b9b251eb24a158bf18a785c Mon Sep 17 00:00:00 2001 From: AboubakrNasef Date: Sun, 1 Feb 2026 12:34:34 +0200 Subject: [PATCH 13/16] remove resources.resx and packageid --- .../Paramore.Brighter.Analyzer.Package.csproj | 1 - .../Resources.Designer.cs | 90 ------------ src/Paramore.Brighter.Analyzer/Resources.resx | 132 ------------------ 3 files changed, 223 deletions(-) delete mode 100644 src/Paramore.Brighter.Analyzer/Resources.Designer.cs delete mode 100644 src/Paramore.Brighter.Analyzer/Resources.resx diff --git a/src/Paramore.Brighter.Analyzer.Package/Paramore.Brighter.Analyzer.Package.csproj b/src/Paramore.Brighter.Analyzer.Package/Paramore.Brighter.Analyzer.Package.csproj index 2c3ceabddb..42f5e9796b 100644 --- a/src/Paramore.Brighter.Analyzer.Package/Paramore.Brighter.Analyzer.Package.csproj +++ b/src/Paramore.Brighter.Analyzer.Package/Paramore.Brighter.Analyzer.Package.csproj @@ -9,7 +9,6 @@ Paramore.Brighter.Analyzer - 1.0.0.0 AboubakrNasef false Paramore.Brighter.Analyzer diff --git a/src/Paramore.Brighter.Analyzer/Resources.Designer.cs b/src/Paramore.Brighter.Analyzer/Resources.Designer.cs deleted file mode 100644 index 70328aaabd..0000000000 --- a/src/Paramore.Brighter.Analyzer/Resources.Designer.cs +++ /dev/null @@ -1,90 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Paramore.Brighter.Analyzer { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "18.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Paramore.Brighter.Analyzer.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// Looks up a localized string similar to Type names should be all uppercase.. - /// - internal static string AnalyzerDescription { - get { - return ResourceManager.GetString("AnalyzerDescription", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Type name '{0}' contains lowercase letters. - /// - internal static string AnalyzerMessageFormat { - get { - return ResourceManager.GetString("AnalyzerMessageFormat", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Type name contains lowercase letters. - /// - internal static string AnalyzerTitle { - get { - return ResourceManager.GetString("AnalyzerTitle", resourceCulture); - } - } - } -} diff --git a/src/Paramore.Brighter.Analyzer/Resources.resx b/src/Paramore.Brighter.Analyzer/Resources.resx deleted file mode 100644 index 410edccd7c..0000000000 --- a/src/Paramore.Brighter.Analyzer/Resources.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Type names should be all uppercase. - An optional longer localizable description of the diagnostic. - - - Type name '{0}' contains lowercase letters - The format-able message the diagnostic displays. - - - Type name contains lowercase letters - The title of the diagnostic. - - \ No newline at end of file From e4934de305610c05b45cf90cbed0d00aa4add321 Mon Sep 17 00:00:00 2001 From: AboubakrNasef Date: Sun, 1 Feb 2026 12:39:21 +0200 Subject: [PATCH 14/16] add WrapAttributeAnalyzer to the adr --- docs/adr/0037-provide-roslyn-analyzers-for-brighter.md | 2 ++ .../Paramore.Brighter.Analyzer.csproj | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/adr/0037-provide-roslyn-analyzers-for-brighter.md b/docs/adr/0037-provide-roslyn-analyzers-for-brighter.md index f0c1557054..b10f354927 100644 --- a/docs/adr/0037-provide-roslyn-analyzers-for-brighter.md +++ b/docs/adr/0037-provide-roslyn-analyzers-for-brighter.md @@ -34,6 +34,8 @@ The initial implementation will include the following analyzers: - Validates that `Subscription` objects are instantiated with correct arguments and configuration. 3. **WrapAttributeAnalyzer**: + - Ensures that attributes used for wrapping (e.g., encryption, compression) are applied to the correct mapping method (`MapToMessage` or `MapToRequest`). + - Prevents incorrect pipeline configuration by verifying that attributes intended for requests are not applied to message mapping and vice versa. ## Technical Implementation Strategy diff --git a/src/Paramore.Brighter.Analyzer/Paramore.Brighter.Analyzer.csproj b/src/Paramore.Brighter.Analyzer/Paramore.Brighter.Analyzer.csproj index 0af0823129..71264c5b3a 100644 --- a/src/Paramore.Brighter.Analyzer/Paramore.Brighter.Analyzer.csproj +++ b/src/Paramore.Brighter.Analyzer/Paramore.Brighter.Analyzer.csproj @@ -3,7 +3,7 @@ $(BrighterNetStandardTargetFrameworks) Aboubakr Nasef - Anlyzers for the brighter library + Analyzers for the brighter library Analyzer;Scheduler;Message Scheduling;Command Processor;Brighter false true From 2407910da71c15b44133706f479761fa75ecfb86 Mon Sep 17 00:00:00 2001 From: AboubakrNasef Date: Thu, 19 Feb 2026 12:46:23 +0200 Subject: [PATCH 15/16] add missing tests project --- Brighter.slnx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Brighter.slnx b/Brighter.slnx index 559e928c01..2a1fc58280 100644 --- a/Brighter.slnx +++ b/Brighter.slnx @@ -184,9 +184,11 @@ + + + - @@ -265,6 +267,9 @@ + + + @@ -273,5 +278,4 @@ - From bfadb27f22ddbc538a4a30d41678d7e1416f8cc3 Mon Sep 17 00:00:00 2001 From: AboubakrNasef Date: Thu, 19 Feb 2026 12:54:52 +0200 Subject: [PATCH 16/16] remove package id --- .../Paramore.Brighter.Analyzer.Package.csproj | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Paramore.Brighter.Analyzer.Package/Paramore.Brighter.Analyzer.Package.csproj b/src/Paramore.Brighter.Analyzer.Package/Paramore.Brighter.Analyzer.Package.csproj index 42f5e9796b..34bbc026c8 100644 --- a/src/Paramore.Brighter.Analyzer.Package/Paramore.Brighter.Analyzer.Package.csproj +++ b/src/Paramore.Brighter.Analyzer.Package/Paramore.Brighter.Analyzer.Package.csproj @@ -8,7 +8,6 @@ - Paramore.Brighter.Analyzer AboubakrNasef false Paramore.Brighter.Analyzer