diff --git a/Avalonia.sln b/Avalonia.sln
index 207f673c26..5a6f0d473c 100644
--- a/Avalonia.sln
+++ b/Avalonia.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.0.31903.59
+# Visual Studio Version 18
+VisualStudioVersion = 18.4.11519.219
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Base", "src\Avalonia.Base\Avalonia.Base.csproj", "{B09B78D8-9B26-48B0-9149-D64A2F120F3F}"
EndProject
@@ -201,13 +201,13 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
CONTRIBUTING.md = CONTRIBUTING.md
Directory.Build.props = Directory.Build.props
Directory.Build.targets = Directory.Build.targets
+ Directory.Packages.props = Directory.Packages.props
dirs.proj = dirs.proj
global.json = global.json
licence.md = licence.md
NOTICE.md = NOTICE.md
NuGet.Config = NuGet.Config
readme.md = readme.md
- Directory.Packages.props = Directory.Packages.props
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Generators", "src\tools\Avalonia.Generators\Avalonia.Generators.csproj", "{DDA28789-C21A-4654-86CE-D01E81F095C5}"
@@ -284,392 +284,1178 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.FreeDesktop.AtSpi"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.DBus.Generators", "src\tools\Avalonia.DBus.Generators\Avalonia.DBus.Generators.csproj", "{98A16FFD-0C99-4665-AC64-DC17E86879A2}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ControlGallery.WinUI", "samples\ControlGallery.WinUI\ControlGallery.WinUI.csproj", "{1B99CF0D-85B8-5386-EE88-A7BA65281F7F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.WinUI", "src\Windows\Avalonia.WinUI\Avalonia.WinUI.csproj", "{3E66DE97-B578-4752-92D0-496A3124C947}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Debug|x64.Build.0 = Debug|Any CPU
+ {B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Debug|x86.Build.0 = Debug|Any CPU
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Release|x64.ActiveCfg = Release|Any CPU
+ {B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Release|x64.Build.0 = Release|Any CPU
+ {B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Release|x86.ActiveCfg = Release|Any CPU
+ {B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Release|x86.Build.0 = Release|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {811A76CF-1CF6-440F-963B-BBE31BD72A82}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {811A76CF-1CF6-440F-963B-BBE31BD72A82}.Debug|x64.Build.0 = Debug|Any CPU
+ {811A76CF-1CF6-440F-963B-BBE31BD72A82}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {811A76CF-1CF6-440F-963B-BBE31BD72A82}.Debug|x86.Build.0 = Debug|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Release|Any CPU.ActiveCfg = Release|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Release|Any CPU.Build.0 = Release|Any CPU
+ {811A76CF-1CF6-440F-963B-BBE31BD72A82}.Release|x64.ActiveCfg = Release|Any CPU
+ {811A76CF-1CF6-440F-963B-BBE31BD72A82}.Release|x64.Build.0 = Release|Any CPU
+ {811A76CF-1CF6-440F-963B-BBE31BD72A82}.Release|x86.ActiveCfg = Release|Any CPU
+ {811A76CF-1CF6-440F-963B-BBE31BD72A82}.Release|x86.Build.0 = Release|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D2221C82-4A25-4583-9B43-D791E3F6820C}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {D2221C82-4A25-4583-9B43-D791E3F6820C}.Debug|x64.Build.0 = Debug|Any CPU
+ {D2221C82-4A25-4583-9B43-D791E3F6820C}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {D2221C82-4A25-4583-9B43-D791E3F6820C}.Debug|x86.Build.0 = Debug|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D2221C82-4A25-4583-9B43-D791E3F6820C}.Release|x64.ActiveCfg = Release|Any CPU
+ {D2221C82-4A25-4583-9B43-D791E3F6820C}.Release|x64.Build.0 = Release|Any CPU
+ {D2221C82-4A25-4583-9B43-D791E3F6820C}.Release|x86.ActiveCfg = Release|Any CPU
+ {D2221C82-4A25-4583-9B43-D791E3F6820C}.Release|x86.Build.0 = Release|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Debug|x64.Build.0 = Debug|Any CPU
+ {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Debug|x86.Build.0 = Debug|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Release|x64.ActiveCfg = Release|Any CPU
+ {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Release|x64.Build.0 = Release|Any CPU
+ {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Release|x86.ActiveCfg = Release|Any CPU
+ {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Release|x86.Build.0 = Release|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Debug|x64.Build.0 = Debug|Any CPU
+ {5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Debug|x86.Build.0 = Debug|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Release|x64.ActiveCfg = Release|Any CPU
+ {5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Release|x64.Build.0 = Release|Any CPU
+ {5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Release|x86.ActiveCfg = Release|Any CPU
+ {5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Release|x86.Build.0 = Release|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2905FF23-53FB-45E6-AA49-6AF47A172056}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {2905FF23-53FB-45E6-AA49-6AF47A172056}.Debug|x64.Build.0 = Debug|Any CPU
+ {2905FF23-53FB-45E6-AA49-6AF47A172056}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {2905FF23-53FB-45E6-AA49-6AF47A172056}.Debug|x86.Build.0 = Debug|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2905FF23-53FB-45E6-AA49-6AF47A172056}.Release|x64.ActiveCfg = Release|Any CPU
+ {2905FF23-53FB-45E6-AA49-6AF47A172056}.Release|x64.Build.0 = Release|Any CPU
+ {2905FF23-53FB-45E6-AA49-6AF47A172056}.Release|x86.ActiveCfg = Release|Any CPU
+ {2905FF23-53FB-45E6-AA49-6AF47A172056}.Release|x86.Build.0 = Release|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {99135EAB-653D-47E4-A378-C96E1278CA44}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {99135EAB-653D-47E4-A378-C96E1278CA44}.Debug|x64.Build.0 = Debug|Any CPU
+ {99135EAB-653D-47E4-A378-C96E1278CA44}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {99135EAB-653D-47E4-A378-C96E1278CA44}.Debug|x86.Build.0 = Debug|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.Release|Any CPU.ActiveCfg = Release|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.Release|Any CPU.Build.0 = Release|Any CPU
+ {99135EAB-653D-47E4-A378-C96E1278CA44}.Release|x64.ActiveCfg = Release|Any CPU
+ {99135EAB-653D-47E4-A378-C96E1278CA44}.Release|x64.Build.0 = Release|Any CPU
+ {99135EAB-653D-47E4-A378-C96E1278CA44}.Release|x86.ActiveCfg = Release|Any CPU
+ {99135EAB-653D-47E4-A378-C96E1278CA44}.Release|x86.Build.0 = Release|Any CPU
{3E53A01A-B331-47F3-B828-4A5717E77A24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3E53A01A-B331-47F3-B828-4A5717E77A24}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3E53A01A-B331-47F3-B828-4A5717E77A24}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {3E53A01A-B331-47F3-B828-4A5717E77A24}.Debug|x64.Build.0 = Debug|Any CPU
+ {3E53A01A-B331-47F3-B828-4A5717E77A24}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {3E53A01A-B331-47F3-B828-4A5717E77A24}.Debug|x86.Build.0 = Debug|Any CPU
{3E53A01A-B331-47F3-B828-4A5717E77A24}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3E53A01A-B331-47F3-B828-4A5717E77A24}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3E53A01A-B331-47F3-B828-4A5717E77A24}.Release|x64.ActiveCfg = Release|Any CPU
+ {3E53A01A-B331-47F3-B828-4A5717E77A24}.Release|x64.Build.0 = Release|Any CPU
+ {3E53A01A-B331-47F3-B828-4A5717E77A24}.Release|x86.ActiveCfg = Release|Any CPU
+ {3E53A01A-B331-47F3-B828-4A5717E77A24}.Release|x86.Build.0 = Release|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6417E941-21BC-467B-A771-0DE389353CE6}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {6417E941-21BC-467B-A771-0DE389353CE6}.Debug|x64.Build.0 = Debug|Any CPU
+ {6417E941-21BC-467B-A771-0DE389353CE6}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {6417E941-21BC-467B-A771-0DE389353CE6}.Debug|x86.Build.0 = Debug|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6417E941-21BC-467B-A771-0DE389353CE6}.Release|x64.ActiveCfg = Release|Any CPU
+ {6417E941-21BC-467B-A771-0DE389353CE6}.Release|x64.Build.0 = Release|Any CPU
+ {6417E941-21BC-467B-A771-0DE389353CE6}.Release|x86.ActiveCfg = Release|Any CPU
+ {6417E941-21BC-467B-A771-0DE389353CE6}.Release|x86.Build.0 = Release|Any CPU
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Debug|x64.Build.0 = Debug|Any CPU
+ {8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Debug|x86.Build.0 = Debug|Any CPU
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Release|x64.ActiveCfg = Release|Any CPU
+ {8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Release|x64.Build.0 = Release|Any CPU
+ {8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Release|x86.ActiveCfg = Release|Any CPU
+ {8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Release|x86.Build.0 = Release|Any CPU
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Debug|x64.Build.0 = Debug|Any CPU
+ {08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Debug|x86.Build.0 = Debug|Any CPU
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Release|Any CPU.ActiveCfg = Release|Any CPU
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Release|Any CPU.Build.0 = Release|Any CPU
+ {08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Release|x64.ActiveCfg = Release|Any CPU
+ {08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Release|x64.Build.0 = Release|Any CPU
+ {08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Release|x86.ActiveCfg = Release|Any CPU
+ {08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Release|x86.Build.0 = Release|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Debug|x64.Build.0 = Debug|Any CPU
+ {7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Debug|x86.Build.0 = Debug|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Release|x64.ActiveCfg = Release|Any CPU
+ {7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Release|x64.Build.0 = Release|Any CPU
+ {7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Release|x86.ActiveCfg = Release|Any CPU
+ {7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Release|x86.Build.0 = Release|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4488AD85-1495-4809-9AA4-DDFE0A48527E}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {4488AD85-1495-4809-9AA4-DDFE0A48527E}.Debug|x64.Build.0 = Debug|Any CPU
+ {4488AD85-1495-4809-9AA4-DDFE0A48527E}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {4488AD85-1495-4809-9AA4-DDFE0A48527E}.Debug|x86.Build.0 = Debug|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4488AD85-1495-4809-9AA4-DDFE0A48527E}.Release|x64.ActiveCfg = Release|Any CPU
+ {4488AD85-1495-4809-9AA4-DDFE0A48527E}.Release|x64.Build.0 = Release|Any CPU
+ {4488AD85-1495-4809-9AA4-DDFE0A48527E}.Release|x86.ActiveCfg = Release|Any CPU
+ {4488AD85-1495-4809-9AA4-DDFE0A48527E}.Release|x86.Build.0 = Release|Any CPU
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Debug|x64.Build.0 = Debug|Any CPU
+ {E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Debug|x86.Build.0 = Debug|Any CPU
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Release|x64.ActiveCfg = Release|Any CPU
+ {E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Release|x64.Build.0 = Release|Any CPU
+ {E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Release|x86.ActiveCfg = Release|Any CPU
+ {E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Release|x86.Build.0 = Release|Any CPU
{88060192-33D5-4932-B0F9-8BD2763E857D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{88060192-33D5-4932-B0F9-8BD2763E857D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {88060192-33D5-4932-B0F9-8BD2763E857D}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {88060192-33D5-4932-B0F9-8BD2763E857D}.Debug|x64.Build.0 = Debug|Any CPU
+ {88060192-33D5-4932-B0F9-8BD2763E857D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {88060192-33D5-4932-B0F9-8BD2763E857D}.Debug|x86.Build.0 = Debug|Any CPU
{88060192-33D5-4932-B0F9-8BD2763E857D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{88060192-33D5-4932-B0F9-8BD2763E857D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {88060192-33D5-4932-B0F9-8BD2763E857D}.Release|x64.ActiveCfg = Release|Any CPU
+ {88060192-33D5-4932-B0F9-8BD2763E857D}.Release|x64.Build.0 = Release|Any CPU
+ {88060192-33D5-4932-B0F9-8BD2763E857D}.Release|x86.ActiveCfg = Release|Any CPU
+ {88060192-33D5-4932-B0F9-8BD2763E857D}.Release|x86.Build.0 = Release|Any CPU
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Debug|x64.Build.0 = Debug|Any CPU
+ {410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Debug|x86.Build.0 = Debug|Any CPU
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Release|x64.ActiveCfg = Release|Any CPU
+ {410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Release|x64.Build.0 = Release|Any CPU
+ {410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Release|x86.ActiveCfg = Release|Any CPU
+ {410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Release|x86.Build.0 = Release|Any CPU
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Debug|x64.Build.0 = Debug|Any CPU
+ {799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Debug|x86.Build.0 = Debug|Any CPU
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Release|x64.ActiveCfg = Release|Any CPU
+ {799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Release|x64.Build.0 = Release|Any CPU
+ {799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Release|x86.ActiveCfg = Release|Any CPU
+ {799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Release|x86.Build.0 = Release|Any CPU
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D0A739B9-3C68-4BA6-A328-41606954B6BD}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {D0A739B9-3C68-4BA6-A328-41606954B6BD}.Debug|x64.Build.0 = Debug|Any CPU
+ {D0A739B9-3C68-4BA6-A328-41606954B6BD}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {D0A739B9-3C68-4BA6-A328-41606954B6BD}.Debug|x86.Build.0 = Debug|Any CPU
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D0A739B9-3C68-4BA6-A328-41606954B6BD}.Release|x64.ActiveCfg = Release|Any CPU
+ {D0A739B9-3C68-4BA6-A328-41606954B6BD}.Release|x64.Build.0 = Release|Any CPU
+ {D0A739B9-3C68-4BA6-A328-41606954B6BD}.Release|x86.ActiveCfg = Release|Any CPU
+ {D0A739B9-3C68-4BA6-A328-41606954B6BD}.Release|x86.Build.0 = Release|Any CPU
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Debug|x64.Build.0 = Debug|Any CPU
+ {2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Debug|x86.Build.0 = Debug|Any CPU
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Release|x64.ActiveCfg = Release|Any CPU
+ {2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Release|x64.Build.0 = Release|Any CPU
+ {2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Release|x86.ActiveCfg = Release|Any CPU
+ {2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Release|x86.Build.0 = Release|Any CPU
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Debug|x64.Build.0 = Debug|Any CPU
+ {F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Debug|x86.Build.0 = Debug|Any CPU
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Release|x64.ActiveCfg = Release|Any CPU
+ {F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Release|x64.Build.0 = Release|Any CPU
+ {F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Release|x86.ActiveCfg = Release|Any CPU
+ {F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Release|x86.Build.0 = Release|Any CPU
{FBCAF3D0-2808-4934-8E96-3F607594517B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FBCAF3D0-2808-4934-8E96-3F607594517B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FBCAF3D0-2808-4934-8E96-3F607594517B}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {FBCAF3D0-2808-4934-8E96-3F607594517B}.Debug|x64.Build.0 = Debug|Any CPU
+ {FBCAF3D0-2808-4934-8E96-3F607594517B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {FBCAF3D0-2808-4934-8E96-3F607594517B}.Debug|x86.Build.0 = Debug|Any CPU
{FBCAF3D0-2808-4934-8E96-3F607594517B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FBCAF3D0-2808-4934-8E96-3F607594517B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FBCAF3D0-2808-4934-8E96-3F607594517B}.Release|x64.ActiveCfg = Release|Any CPU
+ {FBCAF3D0-2808-4934-8E96-3F607594517B}.Release|x64.Build.0 = Release|Any CPU
+ {FBCAF3D0-2808-4934-8E96-3F607594517B}.Release|x86.ActiveCfg = Release|Any CPU
+ {FBCAF3D0-2808-4934-8E96-3F607594517B}.Release|x86.Build.0 = Release|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Debug|x64.Build.0 = Debug|Any CPU
+ {F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Debug|x86.Build.0 = Debug|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Release|x64.ActiveCfg = Release|Any CPU
+ {F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Release|x64.Build.0 = Release|Any CPU
+ {F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Release|x86.ActiveCfg = Release|Any CPU
+ {F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Release|x86.Build.0 = Release|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {29132311-1848-4FD6-AE0C-4FF841151BD3}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {29132311-1848-4FD6-AE0C-4FF841151BD3}.Debug|x64.Build.0 = Debug|Any CPU
+ {29132311-1848-4FD6-AE0C-4FF841151BD3}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {29132311-1848-4FD6-AE0C-4FF841151BD3}.Debug|x86.Build.0 = Debug|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Release|Any CPU.Build.0 = Release|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ {29132311-1848-4FD6-AE0C-4FF841151BD3}.Release|x64.ActiveCfg = Release|Any CPU
+ {29132311-1848-4FD6-AE0C-4FF841151BD3}.Release|x64.Build.0 = Release|Any CPU
+ {29132311-1848-4FD6-AE0C-4FF841151BD3}.Release|x86.ActiveCfg = Release|Any CPU
+ {29132311-1848-4FD6-AE0C-4FF841151BD3}.Release|x86.Build.0 = Release|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Debug|x64.Build.0 = Debug|Any CPU
+ {7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Debug|x86.Build.0 = Debug|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Release|x64.ActiveCfg = Release|Any CPU
+ {7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Release|x64.Build.0 = Release|Any CPU
+ {7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Release|x86.ActiveCfg = Release|Any CPU
+ {7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Release|x86.Build.0 = Release|Any CPU
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Debug|x64.Build.0 = Debug|Any CPU
+ {854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Debug|x86.Build.0 = Debug|Any CPU
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Release|x64.ActiveCfg = Release|Any CPU
+ {854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Release|x64.Build.0 = Release|Any CPU
+ {854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Release|x86.ActiveCfg = Release|Any CPU
+ {854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Release|x86.Build.0 = Release|Any CPU
{CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Debug|x64.Build.0 = Debug|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Debug|x86.Build.0 = Debug|Any CPU
{CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Release|x64.ActiveCfg = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Release|x64.Build.0 = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Release|x86.ActiveCfg = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Release|x86.Build.0 = Release|Any CPU
{E1582370-37B3-403C-917F-8209551B1634}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E1582370-37B3-403C-917F-8209551B1634}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Debug|x64.Build.0 = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Debug|x86.Build.0 = Debug|Any CPU
{E1582370-37B3-403C-917F-8209551B1634}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E1582370-37B3-403C-917F-8209551B1634}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Release|x64.ActiveCfg = Release|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Release|x64.Build.0 = Release|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Release|x86.ActiveCfg = Release|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Release|x86.Build.0 = Release|Any CPU
{D78A720C-C0C6-478B-8564-F167F9BDD01B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D78A720C-C0C6-478B-8564-F167F9BDD01B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Debug|x64.Build.0 = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Debug|x86.Build.0 = Debug|Any CPU
{D78A720C-C0C6-478B-8564-F167F9BDD01B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D78A720C-C0C6-478B-8564-F167F9BDD01B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Release|x64.ActiveCfg = Release|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Release|x64.Build.0 = Release|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Release|x86.ActiveCfg = Release|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Release|x86.Build.0 = Release|Any CPU
{050CC912-FF49-4A8B-B534-9544017446DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{050CC912-FF49-4A8B-B534-9544017446DD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Debug|x64.Build.0 = Debug|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Debug|x86.Build.0 = Debug|Any CPU
{050CC912-FF49-4A8B-B534-9544017446DD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{050CC912-FF49-4A8B-B534-9544017446DD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Release|x64.ActiveCfg = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Release|x64.Build.0 = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Release|x86.ActiveCfg = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Release|x86.Build.0 = Release|Any CPU
{E1240B49-7B4B-4371-A00E-068778C5CF0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E1240B49-7B4B-4371-A00E-068778C5CF0B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E1240B49-7B4B-4371-A00E-068778C5CF0B}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {E1240B49-7B4B-4371-A00E-068778C5CF0B}.Debug|x64.Build.0 = Debug|Any CPU
+ {E1240B49-7B4B-4371-A00E-068778C5CF0B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E1240B49-7B4B-4371-A00E-068778C5CF0B}.Debug|x86.Build.0 = Debug|Any CPU
{E1240B49-7B4B-4371-A00E-068778C5CF0B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E1240B49-7B4B-4371-A00E-068778C5CF0B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E1240B49-7B4B-4371-A00E-068778C5CF0B}.Release|x64.ActiveCfg = Release|Any CPU
+ {E1240B49-7B4B-4371-A00E-068778C5CF0B}.Release|x64.Build.0 = Release|Any CPU
+ {E1240B49-7B4B-4371-A00E-068778C5CF0B}.Release|x86.ActiveCfg = Release|Any CPU
+ {E1240B49-7B4B-4371-A00E-068778C5CF0B}.Release|x86.Build.0 = Release|Any CPU
{7CCAEFC4-135D-401D-BDDD-896B9B7D3569}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7CCAEFC4-135D-401D-BDDD-896B9B7D3569}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7CCAEFC4-135D-401D-BDDD-896B9B7D3569}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {7CCAEFC4-135D-401D-BDDD-896B9B7D3569}.Debug|x64.Build.0 = Debug|Any CPU
+ {7CCAEFC4-135D-401D-BDDD-896B9B7D3569}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {7CCAEFC4-135D-401D-BDDD-896B9B7D3569}.Debug|x86.Build.0 = Debug|Any CPU
{7CCAEFC4-135D-401D-BDDD-896B9B7D3569}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7CCAEFC4-135D-401D-BDDD-896B9B7D3569}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7CCAEFC4-135D-401D-BDDD-896B9B7D3569}.Release|x64.ActiveCfg = Release|Any CPU
+ {7CCAEFC4-135D-401D-BDDD-896B9B7D3569}.Release|x64.Build.0 = Release|Any CPU
+ {7CCAEFC4-135D-401D-BDDD-896B9B7D3569}.Release|x86.ActiveCfg = Release|Any CPU
+ {7CCAEFC4-135D-401D-BDDD-896B9B7D3569}.Release|x86.Build.0 = Release|Any CPU
{12A91A62-C064-42CA-9A8C-A1272F354388}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{12A91A62-C064-42CA-9A8C-A1272F354388}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {12A91A62-C064-42CA-9A8C-A1272F354388}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {12A91A62-C064-42CA-9A8C-A1272F354388}.Debug|x64.Build.0 = Debug|Any CPU
+ {12A91A62-C064-42CA-9A8C-A1272F354388}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {12A91A62-C064-42CA-9A8C-A1272F354388}.Debug|x86.Build.0 = Debug|Any CPU
{12A91A62-C064-42CA-9A8C-A1272F354388}.Release|Any CPU.ActiveCfg = Release|Any CPU
{12A91A62-C064-42CA-9A8C-A1272F354388}.Release|Any CPU.Build.0 = Release|Any CPU
+ {12A91A62-C064-42CA-9A8C-A1272F354388}.Release|x64.ActiveCfg = Release|Any CPU
+ {12A91A62-C064-42CA-9A8C-A1272F354388}.Release|x64.Build.0 = Release|Any CPU
+ {12A91A62-C064-42CA-9A8C-A1272F354388}.Release|x86.ActiveCfg = Release|Any CPU
+ {12A91A62-C064-42CA-9A8C-A1272F354388}.Release|x86.Build.0 = Release|Any CPU
{D49233F8-F29C-47DD-9975-C4C9E4502720}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D49233F8-F29C-47DD-9975-C4C9E4502720}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.Debug|x64.Build.0 = Debug|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.Debug|x86.Build.0 = Debug|Any CPU
{D49233F8-F29C-47DD-9975-C4C9E4502720}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D49233F8-F29C-47DD-9975-C4C9E4502720}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.Release|x64.ActiveCfg = Release|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.Release|x64.Build.0 = Release|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.Release|x86.ActiveCfg = Release|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.Release|x86.Build.0 = Release|Any CPU
{3C471044-3640-45E3-B1B2-16D2FF8399EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3C471044-3640-45E3-B1B2-16D2FF8399EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.Debug|x64.Build.0 = Debug|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.Debug|x86.Build.0 = Debug|Any CPU
{3C471044-3640-45E3-B1B2-16D2FF8399EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3C471044-3640-45E3-B1B2-16D2FF8399EE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.Release|x64.ActiveCfg = Release|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.Release|x64.Build.0 = Release|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.Release|x86.ActiveCfg = Release|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.Release|x86.Build.0 = Release|Any CPU
{BF28998D-072C-439A-AFBB-2FE5021241E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BF28998D-072C-439A-AFBB-2FE5021241E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BF28998D-072C-439A-AFBB-2FE5021241E0}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {BF28998D-072C-439A-AFBB-2FE5021241E0}.Debug|x64.Build.0 = Debug|Any CPU
+ {BF28998D-072C-439A-AFBB-2FE5021241E0}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {BF28998D-072C-439A-AFBB-2FE5021241E0}.Debug|x86.Build.0 = Debug|Any CPU
{BF28998D-072C-439A-AFBB-2FE5021241E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BF28998D-072C-439A-AFBB-2FE5021241E0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BF28998D-072C-439A-AFBB-2FE5021241E0}.Release|x64.ActiveCfg = Release|Any CPU
+ {BF28998D-072C-439A-AFBB-2FE5021241E0}.Release|x64.Build.0 = Release|Any CPU
+ {BF28998D-072C-439A-AFBB-2FE5021241E0}.Release|x86.ActiveCfg = Release|Any CPU
+ {BF28998D-072C-439A-AFBB-2FE5021241E0}.Release|x86.Build.0 = Release|Any CPU
{3F00BC43-5095-477F-93D8-E65B08179A00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3F00BC43-5095-477F-93D8-E65B08179A00}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {3F00BC43-5095-477F-93D8-E65B08179A00}.Debug|x64.Build.0 = Debug|Any CPU
+ {3F00BC43-5095-477F-93D8-E65B08179A00}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {3F00BC43-5095-477F-93D8-E65B08179A00}.Debug|x86.Build.0 = Debug|Any CPU
{3F00BC43-5095-477F-93D8-E65B08179A00}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3F00BC43-5095-477F-93D8-E65B08179A00}.Release|x64.ActiveCfg = Release|Any CPU
+ {3F00BC43-5095-477F-93D8-E65B08179A00}.Release|x64.Build.0 = Release|Any CPU
+ {3F00BC43-5095-477F-93D8-E65B08179A00}.Release|x86.ActiveCfg = Release|Any CPU
+ {3F00BC43-5095-477F-93D8-E65B08179A00}.Release|x86.Build.0 = Release|Any CPU
{41B02319-965D-4945-8005-C1A3D1224165}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{41B02319-965D-4945-8005-C1A3D1224165}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {41B02319-965D-4945-8005-C1A3D1224165}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {41B02319-965D-4945-8005-C1A3D1224165}.Debug|x64.Build.0 = Debug|Any CPU
+ {41B02319-965D-4945-8005-C1A3D1224165}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {41B02319-965D-4945-8005-C1A3D1224165}.Debug|x86.Build.0 = Debug|Any CPU
{41B02319-965D-4945-8005-C1A3D1224165}.Release|Any CPU.ActiveCfg = Release|Any CPU
{41B02319-965D-4945-8005-C1A3D1224165}.Release|Any CPU.Build.0 = Release|Any CPU
+ {41B02319-965D-4945-8005-C1A3D1224165}.Release|x64.ActiveCfg = Release|Any CPU
+ {41B02319-965D-4945-8005-C1A3D1224165}.Release|x64.Build.0 = Release|Any CPU
+ {41B02319-965D-4945-8005-C1A3D1224165}.Release|x86.ActiveCfg = Release|Any CPU
+ {41B02319-965D-4945-8005-C1A3D1224165}.Release|x86.Build.0 = Release|Any CPU
{D775DECB-4E00-4ED5-A75A-5FCE58ADFF0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D775DECB-4E00-4ED5-A75A-5FCE58ADFF0B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D775DECB-4E00-4ED5-A75A-5FCE58ADFF0B}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {D775DECB-4E00-4ED5-A75A-5FCE58ADFF0B}.Debug|x64.Build.0 = Debug|Any CPU
+ {D775DECB-4E00-4ED5-A75A-5FCE58ADFF0B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {D775DECB-4E00-4ED5-A75A-5FCE58ADFF0B}.Debug|x86.Build.0 = Debug|Any CPU
{D775DECB-4E00-4ED5-A75A-5FCE58ADFF0B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D775DECB-4E00-4ED5-A75A-5FCE58ADFF0B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D775DECB-4E00-4ED5-A75A-5FCE58ADFF0B}.Release|x64.ActiveCfg = Release|Any CPU
+ {D775DECB-4E00-4ED5-A75A-5FCE58ADFF0B}.Release|x64.Build.0 = Release|Any CPU
+ {D775DECB-4E00-4ED5-A75A-5FCE58ADFF0B}.Release|x86.ActiveCfg = Release|Any CPU
+ {D775DECB-4E00-4ED5-A75A-5FCE58ADFF0B}.Release|x86.Build.0 = Release|Any CPU
{4D55985A-1EE2-4F25-AD39-6EA8BC04F8FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4D55985A-1EE2-4F25-AD39-6EA8BC04F8FB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4D55985A-1EE2-4F25-AD39-6EA8BC04F8FB}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {4D55985A-1EE2-4F25-AD39-6EA8BC04F8FB}.Debug|x64.Build.0 = Debug|Any CPU
+ {4D55985A-1EE2-4F25-AD39-6EA8BC04F8FB}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {4D55985A-1EE2-4F25-AD39-6EA8BC04F8FB}.Debug|x86.Build.0 = Debug|Any CPU
{4D55985A-1EE2-4F25-AD39-6EA8BC04F8FB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4D55985A-1EE2-4F25-AD39-6EA8BC04F8FB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4D55985A-1EE2-4F25-AD39-6EA8BC04F8FB}.Release|x64.ActiveCfg = Release|Any CPU
+ {4D55985A-1EE2-4F25-AD39-6EA8BC04F8FB}.Release|x64.Build.0 = Release|Any CPU
+ {4D55985A-1EE2-4F25-AD39-6EA8BC04F8FB}.Release|x86.ActiveCfg = Release|Any CPU
+ {4D55985A-1EE2-4F25-AD39-6EA8BC04F8FB}.Release|x86.Build.0 = Release|Any CPU
{4D36CEC8-53F2-40A5-9A37-79AAE356E2DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4D36CEC8-53F2-40A5-9A37-79AAE356E2DA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4D36CEC8-53F2-40A5-9A37-79AAE356E2DA}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {4D36CEC8-53F2-40A5-9A37-79AAE356E2DA}.Debug|x64.Build.0 = Debug|Any CPU
+ {4D36CEC8-53F2-40A5-9A37-79AAE356E2DA}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {4D36CEC8-53F2-40A5-9A37-79AAE356E2DA}.Debug|x86.Build.0 = Debug|Any CPU
{4D36CEC8-53F2-40A5-9A37-79AAE356E2DA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4D36CEC8-53F2-40A5-9A37-79AAE356E2DA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4D36CEC8-53F2-40A5-9A37-79AAE356E2DA}.Release|x64.ActiveCfg = Release|Any CPU
+ {4D36CEC8-53F2-40A5-9A37-79AAE356E2DA}.Release|x64.Build.0 = Release|Any CPU
+ {4D36CEC8-53F2-40A5-9A37-79AAE356E2DA}.Release|x86.ActiveCfg = Release|Any CPU
+ {4D36CEC8-53F2-40A5-9A37-79AAE356E2DA}.Release|x86.Build.0 = Release|Any CPU
{C42D2FC1-A531-4ED4-84B9-89AEC7C962FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C42D2FC1-A531-4ED4-84B9-89AEC7C962FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C42D2FC1-A531-4ED4-84B9-89AEC7C962FC}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {C42D2FC1-A531-4ED4-84B9-89AEC7C962FC}.Debug|x64.Build.0 = Debug|Any CPU
+ {C42D2FC1-A531-4ED4-84B9-89AEC7C962FC}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {C42D2FC1-A531-4ED4-84B9-89AEC7C962FC}.Debug|x86.Build.0 = Debug|Any CPU
{C42D2FC1-A531-4ED4-84B9-89AEC7C962FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C42D2FC1-A531-4ED4-84B9-89AEC7C962FC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C42D2FC1-A531-4ED4-84B9-89AEC7C962FC}.Release|x64.ActiveCfg = Release|Any CPU
+ {C42D2FC1-A531-4ED4-84B9-89AEC7C962FC}.Release|x64.Build.0 = Release|Any CPU
+ {C42D2FC1-A531-4ED4-84B9-89AEC7C962FC}.Release|x86.ActiveCfg = Release|Any CPU
+ {C42D2FC1-A531-4ED4-84B9-89AEC7C962FC}.Release|x86.Build.0 = Release|Any CPU
{8C89950F-F5D9-47FC-8066-CBC1EC3DF8FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8C89950F-F5D9-47FC-8066-CBC1EC3DF8FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8C89950F-F5D9-47FC-8066-CBC1EC3DF8FC}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {8C89950F-F5D9-47FC-8066-CBC1EC3DF8FC}.Debug|x64.Build.0 = Debug|Any CPU
+ {8C89950F-F5D9-47FC-8066-CBC1EC3DF8FC}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {8C89950F-F5D9-47FC-8066-CBC1EC3DF8FC}.Debug|x86.Build.0 = Debug|Any CPU
{8C89950F-F5D9-47FC-8066-CBC1EC3DF8FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8C89950F-F5D9-47FC-8066-CBC1EC3DF8FC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8C89950F-F5D9-47FC-8066-CBC1EC3DF8FC}.Release|x64.ActiveCfg = Release|Any CPU
+ {8C89950F-F5D9-47FC-8066-CBC1EC3DF8FC}.Release|x64.Build.0 = Release|Any CPU
+ {8C89950F-F5D9-47FC-8066-CBC1EC3DF8FC}.Release|x86.ActiveCfg = Release|Any CPU
+ {8C89950F-F5D9-47FC-8066-CBC1EC3DF8FC}.Release|x86.Build.0 = Release|Any CPU
{B859AE7C-F34F-4A9E-88AE-E0E7229FDE1E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B859AE7C-F34F-4A9E-88AE-E0E7229FDE1E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B859AE7C-F34F-4A9E-88AE-E0E7229FDE1E}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {B859AE7C-F34F-4A9E-88AE-E0E7229FDE1E}.Debug|x64.Build.0 = Debug|Any CPU
+ {B859AE7C-F34F-4A9E-88AE-E0E7229FDE1E}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {B859AE7C-F34F-4A9E-88AE-E0E7229FDE1E}.Debug|x86.Build.0 = Debug|Any CPU
{B859AE7C-F34F-4A9E-88AE-E0E7229FDE1E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B859AE7C-F34F-4A9E-88AE-E0E7229FDE1E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B859AE7C-F34F-4A9E-88AE-E0E7229FDE1E}.Release|x64.ActiveCfg = Release|Any CPU
+ {B859AE7C-F34F-4A9E-88AE-E0E7229FDE1E}.Release|x64.Build.0 = Release|Any CPU
+ {B859AE7C-F34F-4A9E-88AE-E0E7229FDE1E}.Release|x86.ActiveCfg = Release|Any CPU
+ {B859AE7C-F34F-4A9E-88AE-E0E7229FDE1E}.Release|x86.Build.0 = Release|Any CPU
{909A8CBD-7D0E-42FD-B841-022AD8925820}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{909A8CBD-7D0E-42FD-B841-022AD8925820}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {909A8CBD-7D0E-42FD-B841-022AD8925820}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {909A8CBD-7D0E-42FD-B841-022AD8925820}.Debug|x64.Build.0 = Debug|Any CPU
+ {909A8CBD-7D0E-42FD-B841-022AD8925820}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {909A8CBD-7D0E-42FD-B841-022AD8925820}.Debug|x86.Build.0 = Debug|Any CPU
{909A8CBD-7D0E-42FD-B841-022AD8925820}.Release|Any CPU.ActiveCfg = Release|Any CPU
{909A8CBD-7D0E-42FD-B841-022AD8925820}.Release|Any CPU.Build.0 = Release|Any CPU
+ {909A8CBD-7D0E-42FD-B841-022AD8925820}.Release|x64.ActiveCfg = Release|Any CPU
+ {909A8CBD-7D0E-42FD-B841-022AD8925820}.Release|x64.Build.0 = Release|Any CPU
+ {909A8CBD-7D0E-42FD-B841-022AD8925820}.Release|x86.ActiveCfg = Release|Any CPU
+ {909A8CBD-7D0E-42FD-B841-022AD8925820}.Release|x86.Build.0 = Release|Any CPU
{11BE52AF-E2DD-4CF0-B19A-05285ACAF571}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{11BE52AF-E2DD-4CF0-B19A-05285ACAF571}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {11BE52AF-E2DD-4CF0-B19A-05285ACAF571}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {11BE52AF-E2DD-4CF0-B19A-05285ACAF571}.Debug|x64.Build.0 = Debug|Any CPU
+ {11BE52AF-E2DD-4CF0-B19A-05285ACAF571}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {11BE52AF-E2DD-4CF0-B19A-05285ACAF571}.Debug|x86.Build.0 = Debug|Any CPU
{11BE52AF-E2DD-4CF0-B19A-05285ACAF571}.Release|Any CPU.ActiveCfg = Release|Any CPU
{11BE52AF-E2DD-4CF0-B19A-05285ACAF571}.Release|Any CPU.Build.0 = Release|Any CPU
+ {11BE52AF-E2DD-4CF0-B19A-05285ACAF571}.Release|x64.ActiveCfg = Release|Any CPU
+ {11BE52AF-E2DD-4CF0-B19A-05285ACAF571}.Release|x64.Build.0 = Release|Any CPU
+ {11BE52AF-E2DD-4CF0-B19A-05285ACAF571}.Release|x86.ActiveCfg = Release|Any CPU
+ {11BE52AF-E2DD-4CF0-B19A-05285ACAF571}.Release|x86.Build.0 = Release|Any CPU
{FE2F3E5E-1E34-4972-8DC1-5C2C588E5ECE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FE2F3E5E-1E34-4972-8DC1-5C2C588E5ECE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FE2F3E5E-1E34-4972-8DC1-5C2C588E5ECE}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {FE2F3E5E-1E34-4972-8DC1-5C2C588E5ECE}.Debug|x64.Build.0 = Debug|Any CPU
+ {FE2F3E5E-1E34-4972-8DC1-5C2C588E5ECE}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {FE2F3E5E-1E34-4972-8DC1-5C2C588E5ECE}.Debug|x86.Build.0 = Debug|Any CPU
{FE2F3E5E-1E34-4972-8DC1-5C2C588E5ECE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FE2F3E5E-1E34-4972-8DC1-5C2C588E5ECE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FE2F3E5E-1E34-4972-8DC1-5C2C588E5ECE}.Release|x64.ActiveCfg = Release|Any CPU
+ {FE2F3E5E-1E34-4972-8DC1-5C2C588E5ECE}.Release|x64.Build.0 = Release|Any CPU
+ {FE2F3E5E-1E34-4972-8DC1-5C2C588E5ECE}.Release|x86.ActiveCfg = Release|Any CPU
+ {FE2F3E5E-1E34-4972-8DC1-5C2C588E5ECE}.Release|x86.Build.0 = Release|Any CPU
{BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Debug|x64.Build.0 = Debug|Any CPU
+ {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Debug|x86.Build.0 = Debug|Any CPU
{BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Release|x64.ActiveCfg = Release|Any CPU
+ {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Release|x64.Build.0 = Release|Any CPU
+ {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Release|x86.ActiveCfg = Release|Any CPU
+ {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Release|x86.Build.0 = Release|Any CPU
{676D6BFD-029D-4E43-BFC7-3892265CE251}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{676D6BFD-029D-4E43-BFC7-3892265CE251}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {676D6BFD-029D-4E43-BFC7-3892265CE251}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {676D6BFD-029D-4E43-BFC7-3892265CE251}.Debug|x64.Build.0 = Debug|Any CPU
+ {676D6BFD-029D-4E43-BFC7-3892265CE251}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {676D6BFD-029D-4E43-BFC7-3892265CE251}.Debug|x86.Build.0 = Debug|Any CPU
{676D6BFD-029D-4E43-BFC7-3892265CE251}.Release|Any CPU.ActiveCfg = Release|Any CPU
{676D6BFD-029D-4E43-BFC7-3892265CE251}.Release|Any CPU.Build.0 = Release|Any CPU
+ {676D6BFD-029D-4E43-BFC7-3892265CE251}.Release|x64.ActiveCfg = Release|Any CPU
+ {676D6BFD-029D-4E43-BFC7-3892265CE251}.Release|x64.Build.0 = Release|Any CPU
+ {676D6BFD-029D-4E43-BFC7-3892265CE251}.Release|x86.ActiveCfg = Release|Any CPU
+ {676D6BFD-029D-4E43-BFC7-3892265CE251}.Release|x86.Build.0 = Release|Any CPU
{CE728F96-A593-462C-B8D4-1D5AFFDB5B4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CE728F96-A593-462C-B8D4-1D5AFFDB5B4F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CE728F96-A593-462C-B8D4-1D5AFFDB5B4F}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {CE728F96-A593-462C-B8D4-1D5AFFDB5B4F}.Debug|x64.Build.0 = Debug|Any CPU
+ {CE728F96-A593-462C-B8D4-1D5AFFDB5B4F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {CE728F96-A593-462C-B8D4-1D5AFFDB5B4F}.Debug|x86.Build.0 = Debug|Any CPU
{CE728F96-A593-462C-B8D4-1D5AFFDB5B4F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CE728F96-A593-462C-B8D4-1D5AFFDB5B4F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CE728F96-A593-462C-B8D4-1D5AFFDB5B4F}.Release|x64.ActiveCfg = Release|Any CPU
+ {CE728F96-A593-462C-B8D4-1D5AFFDB5B4F}.Release|x64.Build.0 = Release|Any CPU
+ {CE728F96-A593-462C-B8D4-1D5AFFDB5B4F}.Release|x86.ActiveCfg = Release|Any CPU
+ {CE728F96-A593-462C-B8D4-1D5AFFDB5B4F}.Release|x86.Build.0 = Release|Any CPU
{F2CE566B-E7F6-447A-AB1A-3F574A6FE43A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F2CE566B-E7F6-447A-AB1A-3F574A6FE43A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F2CE566B-E7F6-447A-AB1A-3F574A6FE43A}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {F2CE566B-E7F6-447A-AB1A-3F574A6FE43A}.Debug|x64.Build.0 = Debug|Any CPU
+ {F2CE566B-E7F6-447A-AB1A-3F574A6FE43A}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {F2CE566B-E7F6-447A-AB1A-3F574A6FE43A}.Debug|x86.Build.0 = Debug|Any CPU
{F2CE566B-E7F6-447A-AB1A-3F574A6FE43A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F2CE566B-E7F6-447A-AB1A-3F574A6FE43A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F2CE566B-E7F6-447A-AB1A-3F574A6FE43A}.Release|x64.ActiveCfg = Release|Any CPU
+ {F2CE566B-E7F6-447A-AB1A-3F574A6FE43A}.Release|x64.Build.0 = Release|Any CPU
+ {F2CE566B-E7F6-447A-AB1A-3F574A6FE43A}.Release|x86.ActiveCfg = Release|Any CPU
+ {F2CE566B-E7F6-447A-AB1A-3F574A6FE43A}.Release|x86.Build.0 = Release|Any CPU
{26A98DA1-D89D-4A95-8152-349F404DA2E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{26A98DA1-D89D-4A95-8152-349F404DA2E2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {26A98DA1-D89D-4A95-8152-349F404DA2E2}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {26A98DA1-D89D-4A95-8152-349F404DA2E2}.Debug|x64.Build.0 = Debug|Any CPU
+ {26A98DA1-D89D-4A95-8152-349F404DA2E2}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {26A98DA1-D89D-4A95-8152-349F404DA2E2}.Debug|x86.Build.0 = Debug|Any CPU
{26A98DA1-D89D-4A95-8152-349F404DA2E2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{26A98DA1-D89D-4A95-8152-349F404DA2E2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {26A98DA1-D89D-4A95-8152-349F404DA2E2}.Release|x64.ActiveCfg = Release|Any CPU
+ {26A98DA1-D89D-4A95-8152-349F404DA2E2}.Release|x64.Build.0 = Release|Any CPU
+ {26A98DA1-D89D-4A95-8152-349F404DA2E2}.Release|x86.ActiveCfg = Release|Any CPU
+ {26A98DA1-D89D-4A95-8152-349F404DA2E2}.Release|x86.Build.0 = Release|Any CPU
{A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Debug|x64.Build.0 = Debug|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Debug|x86.Build.0 = Debug|Any CPU
{A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Release|x64.ActiveCfg = Release|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Release|x64.Build.0 = Release|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Release|x86.ActiveCfg = Release|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Release|x86.Build.0 = Release|Any CPU
{70B9F5CC-E2F9-4314-9514-EDE762ACCC4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{70B9F5CC-E2F9-4314-9514-EDE762ACCC4B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {70B9F5CC-E2F9-4314-9514-EDE762ACCC4B}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {70B9F5CC-E2F9-4314-9514-EDE762ACCC4B}.Debug|x64.Build.0 = Debug|Any CPU
+ {70B9F5CC-E2F9-4314-9514-EDE762ACCC4B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {70B9F5CC-E2F9-4314-9514-EDE762ACCC4B}.Debug|x86.Build.0 = Debug|Any CPU
{70B9F5CC-E2F9-4314-9514-EDE762ACCC4B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{70B9F5CC-E2F9-4314-9514-EDE762ACCC4B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {70B9F5CC-E2F9-4314-9514-EDE762ACCC4B}.Release|x64.ActiveCfg = Release|Any CPU
+ {70B9F5CC-E2F9-4314-9514-EDE762ACCC4B}.Release|x64.Build.0 = Release|Any CPU
+ {70B9F5CC-E2F9-4314-9514-EDE762ACCC4B}.Release|x86.ActiveCfg = Release|Any CPU
+ {70B9F5CC-E2F9-4314-9514-EDE762ACCC4B}.Release|x86.Build.0 = Release|Any CPU
{2B390431-288C-435C-BB6B-A374033BD8D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2B390431-288C-435C-BB6B-A374033BD8D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2B390431-288C-435C-BB6B-A374033BD8D1}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {2B390431-288C-435C-BB6B-A374033BD8D1}.Debug|x64.Build.0 = Debug|Any CPU
+ {2B390431-288C-435C-BB6B-A374033BD8D1}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {2B390431-288C-435C-BB6B-A374033BD8D1}.Debug|x86.Build.0 = Debug|Any CPU
{2B390431-288C-435C-BB6B-A374033BD8D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2B390431-288C-435C-BB6B-A374033BD8D1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2B390431-288C-435C-BB6B-A374033BD8D1}.Release|x64.ActiveCfg = Release|Any CPU
+ {2B390431-288C-435C-BB6B-A374033BD8D1}.Release|x64.Build.0 = Release|Any CPU
+ {2B390431-288C-435C-BB6B-A374033BD8D1}.Release|x86.ActiveCfg = Release|Any CPU
+ {2B390431-288C-435C-BB6B-A374033BD8D1}.Release|x86.Build.0 = Release|Any CPU
{7BF6C69D-FC14-43EB-9ED0-782C16F3D5D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7BF6C69D-FC14-43EB-9ED0-782C16F3D5D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7BF6C69D-FC14-43EB-9ED0-782C16F3D5D9}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {7BF6C69D-FC14-43EB-9ED0-782C16F3D5D9}.Debug|x64.Build.0 = Debug|Any CPU
+ {7BF6C69D-FC14-43EB-9ED0-782C16F3D5D9}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {7BF6C69D-FC14-43EB-9ED0-782C16F3D5D9}.Debug|x86.Build.0 = Debug|Any CPU
{7BF6C69D-FC14-43EB-9ED0-782C16F3D5D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7BF6C69D-FC14-43EB-9ED0-782C16F3D5D9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7BF6C69D-FC14-43EB-9ED0-782C16F3D5D9}.Release|x64.ActiveCfg = Release|Any CPU
+ {7BF6C69D-FC14-43EB-9ED0-782C16F3D5D9}.Release|x64.Build.0 = Release|Any CPU
+ {7BF6C69D-FC14-43EB-9ED0-782C16F3D5D9}.Release|x86.ActiveCfg = Release|Any CPU
+ {7BF6C69D-FC14-43EB-9ED0-782C16F3D5D9}.Release|x86.Build.0 = Release|Any CPU
{EABE2161-989B-42BF-BD8D-1E34B20C21F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EABE2161-989B-42BF-BD8D-1E34B20C21F1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EABE2161-989B-42BF-BD8D-1E34B20C21F1}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {EABE2161-989B-42BF-BD8D-1E34B20C21F1}.Debug|x64.Build.0 = Debug|Any CPU
+ {EABE2161-989B-42BF-BD8D-1E34B20C21F1}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {EABE2161-989B-42BF-BD8D-1E34B20C21F1}.Debug|x86.Build.0 = Debug|Any CPU
{EABE2161-989B-42BF-BD8D-1E34B20C21F1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EABE2161-989B-42BF-BD8D-1E34B20C21F1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EABE2161-989B-42BF-BD8D-1E34B20C21F1}.Release|x64.ActiveCfg = Release|Any CPU
+ {EABE2161-989B-42BF-BD8D-1E34B20C21F1}.Release|x64.Build.0 = Release|Any CPU
+ {EABE2161-989B-42BF-BD8D-1E34B20C21F1}.Release|x86.ActiveCfg = Release|Any CPU
+ {EABE2161-989B-42BF-BD8D-1E34B20C21F1}.Release|x86.Build.0 = Release|Any CPU
{1BBFAD42-B99E-47E0-B00A-A4BC6B6BB4BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1BBFAD42-B99E-47E0-B00A-A4BC6B6BB4BB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1BBFAD42-B99E-47E0-B00A-A4BC6B6BB4BB}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {1BBFAD42-B99E-47E0-B00A-A4BC6B6BB4BB}.Debug|x64.Build.0 = Debug|Any CPU
+ {1BBFAD42-B99E-47E0-B00A-A4BC6B6BB4BB}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {1BBFAD42-B99E-47E0-B00A-A4BC6B6BB4BB}.Debug|x86.Build.0 = Debug|Any CPU
{1BBFAD42-B99E-47E0-B00A-A4BC6B6BB4BB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1BBFAD42-B99E-47E0-B00A-A4BC6B6BB4BB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1BBFAD42-B99E-47E0-B00A-A4BC6B6BB4BB}.Release|x64.ActiveCfg = Release|Any CPU
+ {1BBFAD42-B99E-47E0-B00A-A4BC6B6BB4BB}.Release|x64.Build.0 = Release|Any CPU
+ {1BBFAD42-B99E-47E0-B00A-A4BC6B6BB4BB}.Release|x86.ActiveCfg = Release|Any CPU
+ {1BBFAD42-B99E-47E0-B00A-A4BC6B6BB4BB}.Release|x86.Build.0 = Release|Any CPU
{3B8519C1-2F51-4F12-A348-120AB91D4532}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3B8519C1-2F51-4F12-A348-120AB91D4532}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3B8519C1-2F51-4F12-A348-120AB91D4532}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {3B8519C1-2F51-4F12-A348-120AB91D4532}.Debug|x64.Build.0 = Debug|Any CPU
+ {3B8519C1-2F51-4F12-A348-120AB91D4532}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {3B8519C1-2F51-4F12-A348-120AB91D4532}.Debug|x86.Build.0 = Debug|Any CPU
{3B8519C1-2F51-4F12-A348-120AB91D4532}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3B8519C1-2F51-4F12-A348-120AB91D4532}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3B8519C1-2F51-4F12-A348-120AB91D4532}.Release|x64.ActiveCfg = Release|Any CPU
+ {3B8519C1-2F51-4F12-A348-120AB91D4532}.Release|x64.Build.0 = Release|Any CPU
+ {3B8519C1-2F51-4F12-A348-120AB91D4532}.Release|x86.ActiveCfg = Release|Any CPU
+ {3B8519C1-2F51-4F12-A348-120AB91D4532}.Release|x86.Build.0 = Release|Any CPU
{4A39637C-9338-4925-A4DB-D072E292EC78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4A39637C-9338-4925-A4DB-D072E292EC78}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4A39637C-9338-4925-A4DB-D072E292EC78}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {4A39637C-9338-4925-A4DB-D072E292EC78}.Debug|x64.Build.0 = Debug|Any CPU
+ {4A39637C-9338-4925-A4DB-D072E292EC78}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {4A39637C-9338-4925-A4DB-D072E292EC78}.Debug|x86.Build.0 = Debug|Any CPU
{4A39637C-9338-4925-A4DB-D072E292EC78}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4A39637C-9338-4925-A4DB-D072E292EC78}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4A39637C-9338-4925-A4DB-D072E292EC78}.Release|x64.ActiveCfg = Release|Any CPU
+ {4A39637C-9338-4925-A4DB-D072E292EC78}.Release|x64.Build.0 = Release|Any CPU
+ {4A39637C-9338-4925-A4DB-D072E292EC78}.Release|x86.ActiveCfg = Release|Any CPU
+ {4A39637C-9338-4925-A4DB-D072E292EC78}.Release|x86.Build.0 = Release|Any CPU
{15B93A4C-1B46-43F6-B534-7B25B6E99932}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{15B93A4C-1B46-43F6-B534-7B25B6E99932}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {15B93A4C-1B46-43F6-B534-7B25B6E99932}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {15B93A4C-1B46-43F6-B534-7B25B6E99932}.Debug|x64.Build.0 = Debug|Any CPU
+ {15B93A4C-1B46-43F6-B534-7B25B6E99932}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {15B93A4C-1B46-43F6-B534-7B25B6E99932}.Debug|x86.Build.0 = Debug|Any CPU
{15B93A4C-1B46-43F6-B534-7B25B6E99932}.Release|Any CPU.ActiveCfg = Release|Any CPU
{15B93A4C-1B46-43F6-B534-7B25B6E99932}.Release|Any CPU.Build.0 = Release|Any CPU
+ {15B93A4C-1B46-43F6-B534-7B25B6E99932}.Release|x64.ActiveCfg = Release|Any CPU
+ {15B93A4C-1B46-43F6-B534-7B25B6E99932}.Release|x64.Build.0 = Release|Any CPU
+ {15B93A4C-1B46-43F6-B534-7B25B6E99932}.Release|x86.ActiveCfg = Release|Any CPU
+ {15B93A4C-1B46-43F6-B534-7B25B6E99932}.Release|x86.Build.0 = Release|Any CPU
{C810060E-3809-4B74-A125-F11533AF9C1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C810060E-3809-4B74-A125-F11533AF9C1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C810060E-3809-4B74-A125-F11533AF9C1B}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {C810060E-3809-4B74-A125-F11533AF9C1B}.Debug|x64.Build.0 = Debug|Any CPU
+ {C810060E-3809-4B74-A125-F11533AF9C1B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {C810060E-3809-4B74-A125-F11533AF9C1B}.Debug|x86.Build.0 = Debug|Any CPU
{C810060E-3809-4B74-A125-F11533AF9C1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C810060E-3809-4B74-A125-F11533AF9C1B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C810060E-3809-4B74-A125-F11533AF9C1B}.Release|x64.ActiveCfg = Release|Any CPU
+ {C810060E-3809-4B74-A125-F11533AF9C1B}.Release|x64.Build.0 = Release|Any CPU
+ {C810060E-3809-4B74-A125-F11533AF9C1B}.Release|x86.ActiveCfg = Release|Any CPU
+ {C810060E-3809-4B74-A125-F11533AF9C1B}.Release|x86.Build.0 = Release|Any CPU
{C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Debug|Any CPU.ActiveCfg = Release|Any CPU
{C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Debug|Any CPU.Build.0 = Release|Any CPU
+ {C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Debug|x64.Build.0 = Debug|Any CPU
+ {C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Debug|x86.Build.0 = Debug|Any CPU
{C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Release|x64.ActiveCfg = Release|Any CPU
+ {C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Release|x64.Build.0 = Release|Any CPU
+ {C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Release|x86.ActiveCfg = Release|Any CPU
+ {C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Release|x86.Build.0 = Release|Any CPU
{DDA28789-C21A-4654-86CE-D01E81F095C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DDA28789-C21A-4654-86CE-D01E81F095C5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DDA28789-C21A-4654-86CE-D01E81F095C5}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {DDA28789-C21A-4654-86CE-D01E81F095C5}.Debug|x64.Build.0 = Debug|Any CPU
+ {DDA28789-C21A-4654-86CE-D01E81F095C5}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {DDA28789-C21A-4654-86CE-D01E81F095C5}.Debug|x86.Build.0 = Debug|Any CPU
{DDA28789-C21A-4654-86CE-D01E81F095C5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DDA28789-C21A-4654-86CE-D01E81F095C5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DDA28789-C21A-4654-86CE-D01E81F095C5}.Release|x64.ActiveCfg = Release|Any CPU
+ {DDA28789-C21A-4654-86CE-D01E81F095C5}.Release|x64.Build.0 = Release|Any CPU
+ {DDA28789-C21A-4654-86CE-D01E81F095C5}.Release|x86.ActiveCfg = Release|Any CPU
+ {DDA28789-C21A-4654-86CE-D01E81F095C5}.Release|x86.Build.0 = Release|Any CPU
{13F1135D-BA1A-435C-9C5B-A368D1D63DE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{13F1135D-BA1A-435C-9C5B-A368D1D63DE4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {13F1135D-BA1A-435C-9C5B-A368D1D63DE4}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {13F1135D-BA1A-435C-9C5B-A368D1D63DE4}.Debug|x64.Build.0 = Debug|Any CPU
+ {13F1135D-BA1A-435C-9C5B-A368D1D63DE4}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {13F1135D-BA1A-435C-9C5B-A368D1D63DE4}.Debug|x86.Build.0 = Debug|Any CPU
{13F1135D-BA1A-435C-9C5B-A368D1D63DE4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{13F1135D-BA1A-435C-9C5B-A368D1D63DE4}.Release|Any CPU.Build.0 = Release|Any CPU
+ {13F1135D-BA1A-435C-9C5B-A368D1D63DE4}.Release|x64.ActiveCfg = Release|Any CPU
+ {13F1135D-BA1A-435C-9C5B-A368D1D63DE4}.Release|x64.Build.0 = Release|Any CPU
+ {13F1135D-BA1A-435C-9C5B-A368D1D63DE4}.Release|x86.ActiveCfg = Release|Any CPU
+ {13F1135D-BA1A-435C-9C5B-A368D1D63DE4}.Release|x86.Build.0 = Release|Any CPU
{A82AD1BC-EBE6-4FC3-A13B-D52A50297533}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A82AD1BC-EBE6-4FC3-A13B-D52A50297533}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A82AD1BC-EBE6-4FC3-A13B-D52A50297533}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {A82AD1BC-EBE6-4FC3-A13B-D52A50297533}.Debug|x64.Build.0 = Debug|Any CPU
+ {A82AD1BC-EBE6-4FC3-A13B-D52A50297533}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {A82AD1BC-EBE6-4FC3-A13B-D52A50297533}.Debug|x86.Build.0 = Debug|Any CPU
{A82AD1BC-EBE6-4FC3-A13B-D52A50297533}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A82AD1BC-EBE6-4FC3-A13B-D52A50297533}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A82AD1BC-EBE6-4FC3-A13B-D52A50297533}.Release|x64.ActiveCfg = Release|Any CPU
+ {A82AD1BC-EBE6-4FC3-A13B-D52A50297533}.Release|x64.Build.0 = Release|Any CPU
+ {A82AD1BC-EBE6-4FC3-A13B-D52A50297533}.Release|x86.ActiveCfg = Release|Any CPU
+ {A82AD1BC-EBE6-4FC3-A13B-D52A50297533}.Release|x86.Build.0 = Release|Any CPU
{F8928267-688E-4A51-989C-612A72446D33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F8928267-688E-4A51-989C-612A72446D33}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F8928267-688E-4A51-989C-612A72446D33}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {F8928267-688E-4A51-989C-612A72446D33}.Debug|x64.Build.0 = Debug|Any CPU
+ {F8928267-688E-4A51-989C-612A72446D33}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {F8928267-688E-4A51-989C-612A72446D33}.Debug|x86.Build.0 = Debug|Any CPU
{F8928267-688E-4A51-989C-612A72446D33}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F8928267-688E-4A51-989C-612A72446D33}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F8928267-688E-4A51-989C-612A72446D33}.Release|x64.ActiveCfg = Release|Any CPU
+ {F8928267-688E-4A51-989C-612A72446D33}.Release|x64.Build.0 = Release|Any CPU
+ {F8928267-688E-4A51-989C-612A72446D33}.Release|x86.ActiveCfg = Release|Any CPU
+ {F8928267-688E-4A51-989C-612A72446D33}.Release|x86.Build.0 = Release|Any CPU
{6B60A970-D5D2-49C2-8BAB-F9C7973B74B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6B60A970-D5D2-49C2-8BAB-F9C7973B74B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6B60A970-D5D2-49C2-8BAB-F9C7973B74B6}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {6B60A970-D5D2-49C2-8BAB-F9C7973B74B6}.Debug|x64.Build.0 = Debug|Any CPU
+ {6B60A970-D5D2-49C2-8BAB-F9C7973B74B6}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {6B60A970-D5D2-49C2-8BAB-F9C7973B74B6}.Debug|x86.Build.0 = Debug|Any CPU
{6B60A970-D5D2-49C2-8BAB-F9C7973B74B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6B60A970-D5D2-49C2-8BAB-F9C7973B74B6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6B60A970-D5D2-49C2-8BAB-F9C7973B74B6}.Release|x64.ActiveCfg = Release|Any CPU
+ {6B60A970-D5D2-49C2-8BAB-F9C7973B74B6}.Release|x64.Build.0 = Release|Any CPU
+ {6B60A970-D5D2-49C2-8BAB-F9C7973B74B6}.Release|x86.ActiveCfg = Release|Any CPU
+ {6B60A970-D5D2-49C2-8BAB-F9C7973B74B6}.Release|x86.Build.0 = Release|Any CPU
{22E3BC08-EAF7-4889-BDC4-B4D3046C4E2D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{22E3BC08-EAF7-4889-BDC4-B4D3046C4E2D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{22E3BC08-EAF7-4889-BDC4-B4D3046C4E2D}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {22E3BC08-EAF7-4889-BDC4-B4D3046C4E2D}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {22E3BC08-EAF7-4889-BDC4-B4D3046C4E2D}.Debug|x64.Build.0 = Debug|Any CPU
+ {22E3BC08-EAF7-4889-BDC4-B4D3046C4E2D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {22E3BC08-EAF7-4889-BDC4-B4D3046C4E2D}.Debug|x86.Build.0 = Debug|Any CPU
{22E3BC08-EAF7-4889-BDC4-B4D3046C4E2D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{22E3BC08-EAF7-4889-BDC4-B4D3046C4E2D}.Release|Any CPU.Build.0 = Release|Any CPU
{22E3BC08-EAF7-4889-BDC4-B4D3046C4E2D}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ {22E3BC08-EAF7-4889-BDC4-B4D3046C4E2D}.Release|x64.ActiveCfg = Release|Any CPU
+ {22E3BC08-EAF7-4889-BDC4-B4D3046C4E2D}.Release|x64.Build.0 = Release|Any CPU
+ {22E3BC08-EAF7-4889-BDC4-B4D3046C4E2D}.Release|x86.ActiveCfg = Release|Any CPU
+ {22E3BC08-EAF7-4889-BDC4-B4D3046C4E2D}.Release|x86.Build.0 = Release|Any CPU
{4CDAD037-34A2-4CCF-A03A-C6C7B988A572}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4CDAD037-34A2-4CCF-A03A-C6C7B988A572}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4CDAD037-34A2-4CCF-A03A-C6C7B988A572}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {4CDAD037-34A2-4CCF-A03A-C6C7B988A572}.Debug|x64.Build.0 = Debug|Any CPU
+ {4CDAD037-34A2-4CCF-A03A-C6C7B988A572}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {4CDAD037-34A2-4CCF-A03A-C6C7B988A572}.Debug|x86.Build.0 = Debug|Any CPU
{4CDAD037-34A2-4CCF-A03A-C6C7B988A572}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4CDAD037-34A2-4CCF-A03A-C6C7B988A572}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4CDAD037-34A2-4CCF-A03A-C6C7B988A572}.Release|x64.ActiveCfg = Release|Any CPU
+ {4CDAD037-34A2-4CCF-A03A-C6C7B988A572}.Release|x64.Build.0 = Release|Any CPU
+ {4CDAD037-34A2-4CCF-A03A-C6C7B988A572}.Release|x86.ActiveCfg = Release|Any CPU
+ {4CDAD037-34A2-4CCF-A03A-C6C7B988A572}.Release|x86.Build.0 = Release|Any CPU
{FC956F9A-4C3A-4A1A-ACDD-BB54DCB661DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FC956F9A-4C3A-4A1A-ACDD-BB54DCB661DD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FC956F9A-4C3A-4A1A-ACDD-BB54DCB661DD}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {FC956F9A-4C3A-4A1A-ACDD-BB54DCB661DD}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {FC956F9A-4C3A-4A1A-ACDD-BB54DCB661DD}.Debug|x64.Build.0 = Debug|Any CPU
+ {FC956F9A-4C3A-4A1A-ACDD-BB54DCB661DD}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {FC956F9A-4C3A-4A1A-ACDD-BB54DCB661DD}.Debug|x86.Build.0 = Debug|Any CPU
{FC956F9A-4C3A-4A1A-ACDD-BB54DCB661DD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FC956F9A-4C3A-4A1A-ACDD-BB54DCB661DD}.Release|Any CPU.Build.0 = Release|Any CPU
{FC956F9A-4C3A-4A1A-ACDD-BB54DCB661DD}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ {FC956F9A-4C3A-4A1A-ACDD-BB54DCB661DD}.Release|x64.ActiveCfg = Release|Any CPU
+ {FC956F9A-4C3A-4A1A-ACDD-BB54DCB661DD}.Release|x64.Build.0 = Release|Any CPU
+ {FC956F9A-4C3A-4A1A-ACDD-BB54DCB661DD}.Release|x86.ActiveCfg = Release|Any CPU
+ {FC956F9A-4C3A-4A1A-ACDD-BB54DCB661DD}.Release|x86.Build.0 = Release|Any CPU
{F47F8316-4D4B-4026-8EF3-16B2CFDA8119}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F47F8316-4D4B-4026-8EF3-16B2CFDA8119}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F47F8316-4D4B-4026-8EF3-16B2CFDA8119}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {F47F8316-4D4B-4026-8EF3-16B2CFDA8119}.Debug|x64.Build.0 = Debug|Any CPU
+ {F47F8316-4D4B-4026-8EF3-16B2CFDA8119}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {F47F8316-4D4B-4026-8EF3-16B2CFDA8119}.Debug|x86.Build.0 = Debug|Any CPU
{F47F8316-4D4B-4026-8EF3-16B2CFDA8119}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F47F8316-4D4B-4026-8EF3-16B2CFDA8119}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F47F8316-4D4B-4026-8EF3-16B2CFDA8119}.Release|x64.ActiveCfg = Release|Any CPU
+ {F47F8316-4D4B-4026-8EF3-16B2CFDA8119}.Release|x64.Build.0 = Release|Any CPU
+ {F47F8316-4D4B-4026-8EF3-16B2CFDA8119}.Release|x86.ActiveCfg = Release|Any CPU
+ {F47F8316-4D4B-4026-8EF3-16B2CFDA8119}.Release|x86.Build.0 = Release|Any CPU
{ED976634-B118-43F8-8B26-0279C7A7044F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{ED976634-B118-43F8-8B26-0279C7A7044F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {ED976634-B118-43F8-8B26-0279C7A7044F}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {ED976634-B118-43F8-8B26-0279C7A7044F}.Debug|x64.Build.0 = Debug|Any CPU
+ {ED976634-B118-43F8-8B26-0279C7A7044F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {ED976634-B118-43F8-8B26-0279C7A7044F}.Debug|x86.Build.0 = Debug|Any CPU
{ED976634-B118-43F8-8B26-0279C7A7044F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{ED976634-B118-43F8-8B26-0279C7A7044F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {ED976634-B118-43F8-8B26-0279C7A7044F}.Release|x64.ActiveCfg = Release|Any CPU
+ {ED976634-B118-43F8-8B26-0279C7A7044F}.Release|x64.Build.0 = Release|Any CPU
+ {ED976634-B118-43F8-8B26-0279C7A7044F}.Release|x86.ActiveCfg = Release|Any CPU
+ {ED976634-B118-43F8-8B26-0279C7A7044F}.Release|x86.Build.0 = Release|Any CPU
{4B8EBBEB-A1AD-49EC-8B69-B93ED15BFA64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4B8EBBEB-A1AD-49EC-8B69-B93ED15BFA64}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4B8EBBEB-A1AD-49EC-8B69-B93ED15BFA64}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {4B8EBBEB-A1AD-49EC-8B69-B93ED15BFA64}.Debug|x64.Build.0 = Debug|Any CPU
+ {4B8EBBEB-A1AD-49EC-8B69-B93ED15BFA64}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {4B8EBBEB-A1AD-49EC-8B69-B93ED15BFA64}.Debug|x86.Build.0 = Debug|Any CPU
{4B8EBBEB-A1AD-49EC-8B69-B93ED15BFA64}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4B8EBBEB-A1AD-49EC-8B69-B93ED15BFA64}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4B8EBBEB-A1AD-49EC-8B69-B93ED15BFA64}.Release|x64.ActiveCfg = Release|Any CPU
+ {4B8EBBEB-A1AD-49EC-8B69-B93ED15BFA64}.Release|x64.Build.0 = Release|Any CPU
+ {4B8EBBEB-A1AD-49EC-8B69-B93ED15BFA64}.Release|x86.ActiveCfg = Release|Any CPU
+ {4B8EBBEB-A1AD-49EC-8B69-B93ED15BFA64}.Release|x86.Build.0 = Release|Any CPU
{60B4ED1F-ECFA-453B-8A70-1788261C8355}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{60B4ED1F-ECFA-453B-8A70-1788261C8355}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {60B4ED1F-ECFA-453B-8A70-1788261C8355}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {60B4ED1F-ECFA-453B-8A70-1788261C8355}.Debug|x64.Build.0 = Debug|Any CPU
+ {60B4ED1F-ECFA-453B-8A70-1788261C8355}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {60B4ED1F-ECFA-453B-8A70-1788261C8355}.Debug|x86.Build.0 = Debug|Any CPU
{60B4ED1F-ECFA-453B-8A70-1788261C8355}.Release|Any CPU.ActiveCfg = Release|Any CPU
{60B4ED1F-ECFA-453B-8A70-1788261C8355}.Release|Any CPU.Build.0 = Release|Any CPU
+ {60B4ED1F-ECFA-453B-8A70-1788261C8355}.Release|x64.ActiveCfg = Release|Any CPU
+ {60B4ED1F-ECFA-453B-8A70-1788261C8355}.Release|x64.Build.0 = Release|Any CPU
+ {60B4ED1F-ECFA-453B-8A70-1788261C8355}.Release|x86.ActiveCfg = Release|Any CPU
+ {60B4ED1F-ECFA-453B-8A70-1788261C8355}.Release|x86.Build.0 = Release|Any CPU
{B0FD6A48-FBAB-4676-B36A-DE76B0922B12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B0FD6A48-FBAB-4676-B36A-DE76B0922B12}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B0FD6A48-FBAB-4676-B36A-DE76B0922B12}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {B0FD6A48-FBAB-4676-B36A-DE76B0922B12}.Debug|x64.Build.0 = Debug|Any CPU
+ {B0FD6A48-FBAB-4676-B36A-DE76B0922B12}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {B0FD6A48-FBAB-4676-B36A-DE76B0922B12}.Debug|x86.Build.0 = Debug|Any CPU
{B0FD6A48-FBAB-4676-B36A-DE76B0922B12}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B0FD6A48-FBAB-4676-B36A-DE76B0922B12}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B0FD6A48-FBAB-4676-B36A-DE76B0922B12}.Release|x64.ActiveCfg = Release|Any CPU
+ {B0FD6A48-FBAB-4676-B36A-DE76B0922B12}.Release|x64.Build.0 = Release|Any CPU
+ {B0FD6A48-FBAB-4676-B36A-DE76B0922B12}.Release|x86.ActiveCfg = Release|Any CPU
+ {B0FD6A48-FBAB-4676-B36A-DE76B0922B12}.Release|x86.Build.0 = Release|Any CPU
{0A948D71-99C5-43E9-BACB-B0BA59EA25B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0A948D71-99C5-43E9-BACB-B0BA59EA25B4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0A948D71-99C5-43E9-BACB-B0BA59EA25B4}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {0A948D71-99C5-43E9-BACB-B0BA59EA25B4}.Debug|x64.Build.0 = Debug|Any CPU
+ {0A948D71-99C5-43E9-BACB-B0BA59EA25B4}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {0A948D71-99C5-43E9-BACB-B0BA59EA25B4}.Debug|x86.Build.0 = Debug|Any CPU
{0A948D71-99C5-43E9-BACB-B0BA59EA25B4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0A948D71-99C5-43E9-BACB-B0BA59EA25B4}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0A948D71-99C5-43E9-BACB-B0BA59EA25B4}.Release|x64.ActiveCfg = Release|Any CPU
+ {0A948D71-99C5-43E9-BACB-B0BA59EA25B4}.Release|x64.Build.0 = Release|Any CPU
+ {0A948D71-99C5-43E9-BACB-B0BA59EA25B4}.Release|x86.ActiveCfg = Release|Any CPU
+ {0A948D71-99C5-43E9-BACB-B0BA59EA25B4}.Release|x86.Build.0 = Release|Any CPU
{D7FE3E0F-3FE0-4F87-A2F5-24F1454D84C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D7FE3E0F-3FE0-4F87-A2F5-24F1454D84C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D7FE3E0F-3FE0-4F87-A2F5-24F1454D84C0}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {D7FE3E0F-3FE0-4F87-A2F5-24F1454D84C0}.Debug|x64.Build.0 = Debug|Any CPU
+ {D7FE3E0F-3FE0-4F87-A2F5-24F1454D84C0}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {D7FE3E0F-3FE0-4F87-A2F5-24F1454D84C0}.Debug|x86.Build.0 = Debug|Any CPU
{D7FE3E0F-3FE0-4F87-A2F5-24F1454D84C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D7FE3E0F-3FE0-4F87-A2F5-24F1454D84C0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D7FE3E0F-3FE0-4F87-A2F5-24F1454D84C0}.Release|x64.ActiveCfg = Release|Any CPU
+ {D7FE3E0F-3FE0-4F87-A2F5-24F1454D84C0}.Release|x64.Build.0 = Release|Any CPU
+ {D7FE3E0F-3FE0-4F87-A2F5-24F1454D84C0}.Release|x86.ActiveCfg = Release|Any CPU
+ {D7FE3E0F-3FE0-4F87-A2F5-24F1454D84C0}.Release|x86.Build.0 = Release|Any CPU
{DA5F1FF9-4259-4C54-B443-85CFA226EE6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DA5F1FF9-4259-4C54-B443-85CFA226EE6A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DA5F1FF9-4259-4C54-B443-85CFA226EE6A}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {DA5F1FF9-4259-4C54-B443-85CFA226EE6A}.Debug|x64.Build.0 = Debug|Any CPU
+ {DA5F1FF9-4259-4C54-B443-85CFA226EE6A}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {DA5F1FF9-4259-4C54-B443-85CFA226EE6A}.Debug|x86.Build.0 = Debug|Any CPU
{DA5F1FF9-4259-4C54-B443-85CFA226EE6A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DA5F1FF9-4259-4C54-B443-85CFA226EE6A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DA5F1FF9-4259-4C54-B443-85CFA226EE6A}.Release|x64.ActiveCfg = Release|Any CPU
+ {DA5F1FF9-4259-4C54-B443-85CFA226EE6A}.Release|x64.Build.0 = Release|Any CPU
+ {DA5F1FF9-4259-4C54-B443-85CFA226EE6A}.Release|x86.ActiveCfg = Release|Any CPU
+ {DA5F1FF9-4259-4C54-B443-85CFA226EE6A}.Release|x86.Build.0 = Release|Any CPU
{3E2DE2B6-13BC-4C27-BCB9-A423B86CAF77}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3E2DE2B6-13BC-4C27-BCB9-A423B86CAF77}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3E2DE2B6-13BC-4C27-BCB9-A423B86CAF77}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {3E2DE2B6-13BC-4C27-BCB9-A423B86CAF77}.Debug|x64.Build.0 = Debug|Any CPU
+ {3E2DE2B6-13BC-4C27-BCB9-A423B86CAF77}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {3E2DE2B6-13BC-4C27-BCB9-A423B86CAF77}.Debug|x86.Build.0 = Debug|Any CPU
{3E2DE2B6-13BC-4C27-BCB9-A423B86CAF77}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3E2DE2B6-13BC-4C27-BCB9-A423B86CAF77}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3E2DE2B6-13BC-4C27-BCB9-A423B86CAF77}.Release|x64.ActiveCfg = Release|Any CPU
+ {3E2DE2B6-13BC-4C27-BCB9-A423B86CAF77}.Release|x64.Build.0 = Release|Any CPU
+ {3E2DE2B6-13BC-4C27-BCB9-A423B86CAF77}.Release|x86.ActiveCfg = Release|Any CPU
+ {3E2DE2B6-13BC-4C27-BCB9-A423B86CAF77}.Release|x86.Build.0 = Release|Any CPU
{9AE1B827-21AC-4063-AB22-C8804B7F931E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9AE1B827-21AC-4063-AB22-C8804B7F931E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9AE1B827-21AC-4063-AB22-C8804B7F931E}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {9AE1B827-21AC-4063-AB22-C8804B7F931E}.Debug|x64.Build.0 = Debug|Any CPU
+ {9AE1B827-21AC-4063-AB22-C8804B7F931E}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {9AE1B827-21AC-4063-AB22-C8804B7F931E}.Debug|x86.Build.0 = Debug|Any CPU
{9AE1B827-21AC-4063-AB22-C8804B7F931E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9AE1B827-21AC-4063-AB22-C8804B7F931E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9AE1B827-21AC-4063-AB22-C8804B7F931E}.Release|x64.ActiveCfg = Release|Any CPU
+ {9AE1B827-21AC-4063-AB22-C8804B7F931E}.Release|x64.Build.0 = Release|Any CPU
+ {9AE1B827-21AC-4063-AB22-C8804B7F931E}.Release|x86.ActiveCfg = Release|Any CPU
+ {9AE1B827-21AC-4063-AB22-C8804B7F931E}.Release|x86.Build.0 = Release|Any CPU
{0097673D-DBCE-476E-82FE-E78A56E58AA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0097673D-DBCE-476E-82FE-E78A56E58AA2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0097673D-DBCE-476E-82FE-E78A56E58AA2}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {0097673D-DBCE-476E-82FE-E78A56E58AA2}.Debug|x64.Build.0 = Debug|Any CPU
+ {0097673D-DBCE-476E-82FE-E78A56E58AA2}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {0097673D-DBCE-476E-82FE-E78A56E58AA2}.Debug|x86.Build.0 = Debug|Any CPU
{0097673D-DBCE-476E-82FE-E78A56E58AA2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0097673D-DBCE-476E-82FE-E78A56E58AA2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0097673D-DBCE-476E-82FE-E78A56E58AA2}.Release|x64.ActiveCfg = Release|Any CPU
+ {0097673D-DBCE-476E-82FE-E78A56E58AA2}.Release|x64.Build.0 = Release|Any CPU
+ {0097673D-DBCE-476E-82FE-E78A56E58AA2}.Release|x86.ActiveCfg = Release|Any CPU
+ {0097673D-DBCE-476E-82FE-E78A56E58AA2}.Release|x86.Build.0 = Release|Any CPU
{255614F5-CB64-4ECA-A026-E0B1AF6A2EF4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{255614F5-CB64-4ECA-A026-E0B1AF6A2EF4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {255614F5-CB64-4ECA-A026-E0B1AF6A2EF4}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {255614F5-CB64-4ECA-A026-E0B1AF6A2EF4}.Debug|x64.Build.0 = Debug|Any CPU
+ {255614F5-CB64-4ECA-A026-E0B1AF6A2EF4}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {255614F5-CB64-4ECA-A026-E0B1AF6A2EF4}.Debug|x86.Build.0 = Debug|Any CPU
{255614F5-CB64-4ECA-A026-E0B1AF6A2EF4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{255614F5-CB64-4ECA-A026-E0B1AF6A2EF4}.Release|Any CPU.Build.0 = Release|Any CPU
+ {255614F5-CB64-4ECA-A026-E0B1AF6A2EF4}.Release|x64.ActiveCfg = Release|Any CPU
+ {255614F5-CB64-4ECA-A026-E0B1AF6A2EF4}.Release|x64.Build.0 = Release|Any CPU
+ {255614F5-CB64-4ECA-A026-E0B1AF6A2EF4}.Release|x86.ActiveCfg = Release|Any CPU
+ {255614F5-CB64-4ECA-A026-E0B1AF6A2EF4}.Release|x86.Build.0 = Release|Any CPU
{DE3C28DD-B602-4750-831D-345102A54CA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DE3C28DD-B602-4750-831D-345102A54CA0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DE3C28DD-B602-4750-831D-345102A54CA0}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {DE3C28DD-B602-4750-831D-345102A54CA0}.Debug|x64.Build.0 = Debug|Any CPU
+ {DE3C28DD-B602-4750-831D-345102A54CA0}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {DE3C28DD-B602-4750-831D-345102A54CA0}.Debug|x86.Build.0 = Debug|Any CPU
{DE3C28DD-B602-4750-831D-345102A54CA0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DE3C28DD-B602-4750-831D-345102A54CA0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DE3C28DD-B602-4750-831D-345102A54CA0}.Release|x64.ActiveCfg = Release|Any CPU
+ {DE3C28DD-B602-4750-831D-345102A54CA0}.Release|x64.Build.0 = Release|Any CPU
+ {DE3C28DD-B602-4750-831D-345102A54CA0}.Release|x86.ActiveCfg = Release|Any CPU
+ {DE3C28DD-B602-4750-831D-345102A54CA0}.Release|x86.Build.0 = Release|Any CPU
{14342787-B4EF-4076-8C91-BA6C523DE8DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{14342787-B4EF-4076-8C91-BA6C523DE8DF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {14342787-B4EF-4076-8C91-BA6C523DE8DF}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {14342787-B4EF-4076-8C91-BA6C523DE8DF}.Debug|x64.Build.0 = Debug|Any CPU
+ {14342787-B4EF-4076-8C91-BA6C523DE8DF}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {14342787-B4EF-4076-8C91-BA6C523DE8DF}.Debug|x86.Build.0 = Debug|Any CPU
{14342787-B4EF-4076-8C91-BA6C523DE8DF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{14342787-B4EF-4076-8C91-BA6C523DE8DF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {14342787-B4EF-4076-8C91-BA6C523DE8DF}.Release|x64.ActiveCfg = Release|Any CPU
+ {14342787-B4EF-4076-8C91-BA6C523DE8DF}.Release|x64.Build.0 = Release|Any CPU
+ {14342787-B4EF-4076-8C91-BA6C523DE8DF}.Release|x86.ActiveCfg = Release|Any CPU
+ {14342787-B4EF-4076-8C91-BA6C523DE8DF}.Release|x86.Build.0 = Release|Any CPU
{E2BFA463-6402-4EF8-8945-FD9A10A914D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E2BFA463-6402-4EF8-8945-FD9A10A914D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E2BFA463-6402-4EF8-8945-FD9A10A914D1}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {E2BFA463-6402-4EF8-8945-FD9A10A914D1}.Debug|x64.Build.0 = Debug|Any CPU
+ {E2BFA463-6402-4EF8-8945-FD9A10A914D1}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E2BFA463-6402-4EF8-8945-FD9A10A914D1}.Debug|x86.Build.0 = Debug|Any CPU
{E2BFA463-6402-4EF8-8945-FD9A10A914D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E2BFA463-6402-4EF8-8945-FD9A10A914D1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E2BFA463-6402-4EF8-8945-FD9A10A914D1}.Release|x64.ActiveCfg = Release|Any CPU
+ {E2BFA463-6402-4EF8-8945-FD9A10A914D1}.Release|x64.Build.0 = Release|Any CPU
+ {E2BFA463-6402-4EF8-8945-FD9A10A914D1}.Release|x86.ActiveCfg = Release|Any CPU
+ {E2BFA463-6402-4EF8-8945-FD9A10A914D1}.Release|x86.Build.0 = Release|Any CPU
{A175EFAE-476C-4DAA-87D5-742C18CFCC27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A175EFAE-476C-4DAA-87D5-742C18CFCC27}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A175EFAE-476C-4DAA-87D5-742C18CFCC27}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {A175EFAE-476C-4DAA-87D5-742C18CFCC27}.Debug|x64.Build.0 = Debug|Any CPU
+ {A175EFAE-476C-4DAA-87D5-742C18CFCC27}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {A175EFAE-476C-4DAA-87D5-742C18CFCC27}.Debug|x86.Build.0 = Debug|Any CPU
{A175EFAE-476C-4DAA-87D5-742C18CFCC27}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A175EFAE-476C-4DAA-87D5-742C18CFCC27}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A175EFAE-476C-4DAA-87D5-742C18CFCC27}.Release|x64.ActiveCfg = Release|Any CPU
+ {A175EFAE-476C-4DAA-87D5-742C18CFCC27}.Release|x64.Build.0 = Release|Any CPU
+ {A175EFAE-476C-4DAA-87D5-742C18CFCC27}.Release|x86.ActiveCfg = Release|Any CPU
+ {A175EFAE-476C-4DAA-87D5-742C18CFCC27}.Release|x86.Build.0 = Release|Any CPU
{09EC467F-0F25-4E6F-A836-2BAEC8F6AB0C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{09EC467F-0F25-4E6F-A836-2BAEC8F6AB0C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {09EC467F-0F25-4E6F-A836-2BAEC8F6AB0C}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {09EC467F-0F25-4E6F-A836-2BAEC8F6AB0C}.Debug|x64.Build.0 = Debug|Any CPU
+ {09EC467F-0F25-4E6F-A836-2BAEC8F6AB0C}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {09EC467F-0F25-4E6F-A836-2BAEC8F6AB0C}.Debug|x86.Build.0 = Debug|Any CPU
{09EC467F-0F25-4E6F-A836-2BAEC8F6AB0C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{09EC467F-0F25-4E6F-A836-2BAEC8F6AB0C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {09EC467F-0F25-4E6F-A836-2BAEC8F6AB0C}.Release|x64.ActiveCfg = Release|Any CPU
+ {09EC467F-0F25-4E6F-A836-2BAEC8F6AB0C}.Release|x64.Build.0 = Release|Any CPU
+ {09EC467F-0F25-4E6F-A836-2BAEC8F6AB0C}.Release|x86.ActiveCfg = Release|Any CPU
+ {09EC467F-0F25-4E6F-A836-2BAEC8F6AB0C}.Release|x86.Build.0 = Release|Any CPU
{342D2657-2F84-493C-B74B-9D2CAE5D9DAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{342D2657-2F84-493C-B74B-9D2CAE5D9DAB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {342D2657-2F84-493C-B74B-9D2CAE5D9DAB}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {342D2657-2F84-493C-B74B-9D2CAE5D9DAB}.Debug|x64.Build.0 = Debug|Any CPU
+ {342D2657-2F84-493C-B74B-9D2CAE5D9DAB}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {342D2657-2F84-493C-B74B-9D2CAE5D9DAB}.Debug|x86.Build.0 = Debug|Any CPU
{342D2657-2F84-493C-B74B-9D2CAE5D9DAB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{342D2657-2F84-493C-B74B-9D2CAE5D9DAB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {342D2657-2F84-493C-B74B-9D2CAE5D9DAB}.Release|x64.ActiveCfg = Release|Any CPU
+ {342D2657-2F84-493C-B74B-9D2CAE5D9DAB}.Release|x64.Build.0 = Release|Any CPU
+ {342D2657-2F84-493C-B74B-9D2CAE5D9DAB}.Release|x86.ActiveCfg = Release|Any CPU
+ {342D2657-2F84-493C-B74B-9D2CAE5D9DAB}.Release|x86.Build.0 = Release|Any CPU
{26918642-829D-4FA2-B60A-BE8D83F4E063}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{26918642-829D-4FA2-B60A-BE8D83F4E063}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {26918642-829D-4FA2-B60A-BE8D83F4E063}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {26918642-829D-4FA2-B60A-BE8D83F4E063}.Debug|x64.Build.0 = Debug|Any CPU
+ {26918642-829D-4FA2-B60A-BE8D83F4E063}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {26918642-829D-4FA2-B60A-BE8D83F4E063}.Debug|x86.Build.0 = Debug|Any CPU
{26918642-829D-4FA2-B60A-BE8D83F4E063}.Release|Any CPU.ActiveCfg = Release|Any CPU
{26918642-829D-4FA2-B60A-BE8D83F4E063}.Release|Any CPU.Build.0 = Release|Any CPU
+ {26918642-829D-4FA2-B60A-BE8D83F4E063}.Release|x64.ActiveCfg = Release|Any CPU
+ {26918642-829D-4FA2-B60A-BE8D83F4E063}.Release|x64.Build.0 = Release|Any CPU
+ {26918642-829D-4FA2-B60A-BE8D83F4E063}.Release|x86.ActiveCfg = Release|Any CPU
+ {26918642-829D-4FA2-B60A-BE8D83F4E063}.Release|x86.Build.0 = Release|Any CPU
{11522B0D-BF31-42D5-8FC5-41E58F319AF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{11522B0D-BF31-42D5-8FC5-41E58F319AF9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {11522B0D-BF31-42D5-8FC5-41E58F319AF9}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {11522B0D-BF31-42D5-8FC5-41E58F319AF9}.Debug|x64.Build.0 = Debug|Any CPU
+ {11522B0D-BF31-42D5-8FC5-41E58F319AF9}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {11522B0D-BF31-42D5-8FC5-41E58F319AF9}.Debug|x86.Build.0 = Debug|Any CPU
{11522B0D-BF31-42D5-8FC5-41E58F319AF9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{11522B0D-BF31-42D5-8FC5-41E58F319AF9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {11522B0D-BF31-42D5-8FC5-41E58F319AF9}.Release|x64.ActiveCfg = Release|Any CPU
+ {11522B0D-BF31-42D5-8FC5-41E58F319AF9}.Release|x64.Build.0 = Release|Any CPU
+ {11522B0D-BF31-42D5-8FC5-41E58F319AF9}.Release|x86.ActiveCfg = Release|Any CPU
+ {11522B0D-BF31-42D5-8FC5-41E58F319AF9}.Release|x86.Build.0 = Release|Any CPU
{FDFB9C25-552D-420B-9D4A-DB0BB6472239}.Debug|Any CPU.ActiveCfg = Release|Any CPU
{FDFB9C25-552D-420B-9D4A-DB0BB6472239}.Debug|Any CPU.Build.0 = Release|Any CPU
+ {FDFB9C25-552D-420B-9D4A-DB0BB6472239}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {FDFB9C25-552D-420B-9D4A-DB0BB6472239}.Debug|x64.Build.0 = Debug|Any CPU
+ {FDFB9C25-552D-420B-9D4A-DB0BB6472239}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {FDFB9C25-552D-420B-9D4A-DB0BB6472239}.Debug|x86.Build.0 = Debug|Any CPU
{FDFB9C25-552D-420B-9D4A-DB0BB6472239}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FDFB9C25-552D-420B-9D4A-DB0BB6472239}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FDFB9C25-552D-420B-9D4A-DB0BB6472239}.Release|x64.ActiveCfg = Release|Any CPU
+ {FDFB9C25-552D-420B-9D4A-DB0BB6472239}.Release|x64.Build.0 = Release|Any CPU
+ {FDFB9C25-552D-420B-9D4A-DB0BB6472239}.Release|x86.ActiveCfg = Release|Any CPU
+ {FDFB9C25-552D-420B-9D4A-DB0BB6472239}.Release|x86.Build.0 = Release|Any CPU
{A7644C3B-B843-44F1-9940-560D56CB0936}.Debug|Any CPU.ActiveCfg = Release|Any CPU
{A7644C3B-B843-44F1-9940-560D56CB0936}.Debug|Any CPU.Build.0 = Release|Any CPU
+ {A7644C3B-B843-44F1-9940-560D56CB0936}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {A7644C3B-B843-44F1-9940-560D56CB0936}.Debug|x64.Build.0 = Debug|Any CPU
+ {A7644C3B-B843-44F1-9940-560D56CB0936}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {A7644C3B-B843-44F1-9940-560D56CB0936}.Debug|x86.Build.0 = Debug|Any CPU
{A7644C3B-B843-44F1-9940-560D56CB0936}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A7644C3B-B843-44F1-9940-560D56CB0936}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A7644C3B-B843-44F1-9940-560D56CB0936}.Release|x64.ActiveCfg = Release|Any CPU
+ {A7644C3B-B843-44F1-9940-560D56CB0936}.Release|x64.Build.0 = Release|Any CPU
+ {A7644C3B-B843-44F1-9940-560D56CB0936}.Release|x86.ActiveCfg = Release|Any CPU
+ {A7644C3B-B843-44F1-9940-560D56CB0936}.Release|x86.Build.0 = Release|Any CPU
{742C3613-514C-4D6B-804A-2A7925F278F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{742C3613-514C-4D6B-804A-2A7925F278F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {742C3613-514C-4D6B-804A-2A7925F278F3}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {742C3613-514C-4D6B-804A-2A7925F278F3}.Debug|x64.Build.0 = Debug|Any CPU
+ {742C3613-514C-4D6B-804A-2A7925F278F3}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {742C3613-514C-4D6B-804A-2A7925F278F3}.Debug|x86.Build.0 = Debug|Any CPU
{742C3613-514C-4D6B-804A-2A7925F278F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{742C3613-514C-4D6B-804A-2A7925F278F3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {742C3613-514C-4D6B-804A-2A7925F278F3}.Release|x64.ActiveCfg = Release|Any CPU
+ {742C3613-514C-4D6B-804A-2A7925F278F3}.Release|x64.Build.0 = Release|Any CPU
+ {742C3613-514C-4D6B-804A-2A7925F278F3}.Release|x86.ActiveCfg = Release|Any CPU
+ {742C3613-514C-4D6B-804A-2A7925F278F3}.Release|x86.Build.0 = Release|Any CPU
{98A16FFD-0C99-4665-AC64-DC17E86879A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{98A16FFD-0C99-4665-AC64-DC17E86879A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {98A16FFD-0C99-4665-AC64-DC17E86879A2}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {98A16FFD-0C99-4665-AC64-DC17E86879A2}.Debug|x64.Build.0 = Debug|Any CPU
+ {98A16FFD-0C99-4665-AC64-DC17E86879A2}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {98A16FFD-0C99-4665-AC64-DC17E86879A2}.Debug|x86.Build.0 = Debug|Any CPU
{98A16FFD-0C99-4665-AC64-DC17E86879A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{98A16FFD-0C99-4665-AC64-DC17E86879A2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {98A16FFD-0C99-4665-AC64-DC17E86879A2}.Release|x64.ActiveCfg = Release|Any CPU
+ {98A16FFD-0C99-4665-AC64-DC17E86879A2}.Release|x64.Build.0 = Release|Any CPU
+ {98A16FFD-0C99-4665-AC64-DC17E86879A2}.Release|x86.ActiveCfg = Release|Any CPU
+ {98A16FFD-0C99-4665-AC64-DC17E86879A2}.Release|x86.Build.0 = Release|Any CPU
+ {1B99CF0D-85B8-5386-EE88-A7BA65281F7F}.Debug|Any CPU.ActiveCfg = Debug|x64
+ {1B99CF0D-85B8-5386-EE88-A7BA65281F7F}.Debug|Any CPU.Build.0 = Debug|x64
+ {1B99CF0D-85B8-5386-EE88-A7BA65281F7F}.Debug|Any CPU.Deploy.0 = Debug|x64
+ {1B99CF0D-85B8-5386-EE88-A7BA65281F7F}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {1B99CF0D-85B8-5386-EE88-A7BA65281F7F}.Debug|x64.Build.0 = Debug|Any CPU
+ {1B99CF0D-85B8-5386-EE88-A7BA65281F7F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {1B99CF0D-85B8-5386-EE88-A7BA65281F7F}.Debug|x86.Build.0 = Debug|Any CPU
+ {1B99CF0D-85B8-5386-EE88-A7BA65281F7F}.Release|Any CPU.ActiveCfg = Release|x64
+ {1B99CF0D-85B8-5386-EE88-A7BA65281F7F}.Release|Any CPU.Build.0 = Release|x64
+ {1B99CF0D-85B8-5386-EE88-A7BA65281F7F}.Release|Any CPU.Deploy.0 = Release|x64
+ {1B99CF0D-85B8-5386-EE88-A7BA65281F7F}.Release|x64.ActiveCfg = Release|Any CPU
+ {1B99CF0D-85B8-5386-EE88-A7BA65281F7F}.Release|x64.Build.0 = Release|Any CPU
+ {1B99CF0D-85B8-5386-EE88-A7BA65281F7F}.Release|x86.ActiveCfg = Release|Any CPU
+ {1B99CF0D-85B8-5386-EE88-A7BA65281F7F}.Release|x86.Build.0 = Release|Any CPU
+ {3E66DE97-B578-4752-92D0-496A3124C947}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3E66DE97-B578-4752-92D0-496A3124C947}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3E66DE97-B578-4752-92D0-496A3124C947}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {3E66DE97-B578-4752-92D0-496A3124C947}.Debug|x64.Build.0 = Debug|Any CPU
+ {3E66DE97-B578-4752-92D0-496A3124C947}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {3E66DE97-B578-4752-92D0-496A3124C947}.Debug|x86.Build.0 = Debug|Any CPU
+ {3E66DE97-B578-4752-92D0-496A3124C947}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3E66DE97-B578-4752-92D0-496A3124C947}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3E66DE97-B578-4752-92D0-496A3124C947}.Release|x64.ActiveCfg = Release|Any CPU
+ {3E66DE97-B578-4752-92D0-496A3124C947}.Release|x64.Build.0 = Release|Any CPU
+ {3E66DE97-B578-4752-92D0-496A3124C947}.Release|x86.ActiveCfg = Release|Any CPU
+ {3E66DE97-B578-4752-92D0-496A3124C947}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -757,6 +1543,8 @@ Global
{A7644C3B-B843-44F1-9940-560D56CB0936} = {4ED8B739-6F4E-4CD4-B993-545E6B5CE637}
{742C3613-514C-4D6B-804A-2A7925F278F3} = {86C53C40-57AA-45B8-AD42-FAE0EFDF0F2B}
{98A16FFD-0C99-4665-AC64-DC17E86879A2} = {4ED8B739-6F4E-4CD4-B993-545E6B5CE637}
+ {1B99CF0D-85B8-5386-EE88-A7BA65281F7F} = {9B9E3891-2366-4253-A952-D08BCEB71098}
+ {3E66DE97-B578-4752-92D0-496A3124C947} = {B39A8919-9F95-48FE-AD7B-76E08B509888}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {87366D66-1391-4D90-8999-95A620AD786A}
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 58650e1729..e7c8ab084a 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -30,6 +30,8 @@
+
+
diff --git a/build/TargetFrameworks.props b/build/TargetFrameworks.props
index 96541e7ecf..a380009e23 100644
--- a/build/TargetFrameworks.props
+++ b/build/TargetFrameworks.props
@@ -8,6 +8,7 @@
$(AvsCurrentTargetFramework)-ios26.0
$(AvsCurrentTargetFramework)-tvos26.0
$(AvsCurrentTargetFramework)-browser
+ $(AvsCurrentTargetFramework)-windows10.0.19041.0
net8.0
diff --git a/samples/ControlGallery.WinUI/App.xaml b/samples/ControlGallery.WinUI/App.xaml
new file mode 100644
index 0000000000..88b20eca37
--- /dev/null
+++ b/samples/ControlGallery.WinUI/App.xaml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/ControlGallery.WinUI/App.xaml.cs b/samples/ControlGallery.WinUI/App.xaml.cs
new file mode 100644
index 0000000000..649aa094ea
--- /dev/null
+++ b/samples/ControlGallery.WinUI/App.xaml.cs
@@ -0,0 +1,31 @@
+using global::Avalonia;
+using global::Avalonia.Skia;
+using global::Avalonia.Win32;
+using WinUIApplication = Microsoft.UI.Xaml.Application;
+using LaunchActivatedEventArgs = Microsoft.UI.Xaml.LaunchActivatedEventArgs;
+using Window = Microsoft.UI.Xaml.Window;
+
+namespace ControlGallery.WinUI
+{
+ public partial class App : WinUIApplication
+ {
+ private Window? _window;
+
+ public App()
+ {
+ InitializeComponent();
+ }
+
+ protected override void OnLaunched(LaunchActivatedEventArgs args)
+ {
+ AppBuilder.Configure()
+ .UseWin32()
+ .UseSkia()
+ .UseHarfBuzz()
+ .SetupWithoutStarting();
+
+ _window = new MainWindow();
+ _window.Activate();
+ }
+ }
+}
diff --git a/samples/ControlGallery.WinUI/Assets/LockScreenLogo.scale-200.png b/samples/ControlGallery.WinUI/Assets/LockScreenLogo.scale-200.png
new file mode 100644
index 0000000000..7440f0d4bf
Binary files /dev/null and b/samples/ControlGallery.WinUI/Assets/LockScreenLogo.scale-200.png differ
diff --git a/samples/ControlGallery.WinUI/Assets/SplashScreen.scale-200.png b/samples/ControlGallery.WinUI/Assets/SplashScreen.scale-200.png
new file mode 100644
index 0000000000..32f486a867
Binary files /dev/null and b/samples/ControlGallery.WinUI/Assets/SplashScreen.scale-200.png differ
diff --git a/samples/ControlGallery.WinUI/Assets/Square150x150Logo.scale-200.png b/samples/ControlGallery.WinUI/Assets/Square150x150Logo.scale-200.png
new file mode 100644
index 0000000000..53ee3777ea
Binary files /dev/null and b/samples/ControlGallery.WinUI/Assets/Square150x150Logo.scale-200.png differ
diff --git a/samples/ControlGallery.WinUI/Assets/Square44x44Logo.scale-200.png b/samples/ControlGallery.WinUI/Assets/Square44x44Logo.scale-200.png
new file mode 100644
index 0000000000..f713bba67f
Binary files /dev/null and b/samples/ControlGallery.WinUI/Assets/Square44x44Logo.scale-200.png differ
diff --git a/samples/ControlGallery.WinUI/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/samples/ControlGallery.WinUI/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
new file mode 100644
index 0000000000..dc9f5bea0c
Binary files /dev/null and b/samples/ControlGallery.WinUI/Assets/Square44x44Logo.targetsize-24_altform-unplated.png differ
diff --git a/samples/ControlGallery.WinUI/Assets/StoreLogo.png b/samples/ControlGallery.WinUI/Assets/StoreLogo.png
new file mode 100644
index 0000000000..a4586f26bd
Binary files /dev/null and b/samples/ControlGallery.WinUI/Assets/StoreLogo.png differ
diff --git a/samples/ControlGallery.WinUI/Assets/Wide310x150Logo.scale-200.png b/samples/ControlGallery.WinUI/Assets/Wide310x150Logo.scale-200.png
new file mode 100644
index 0000000000..8b4a5d0dd5
Binary files /dev/null and b/samples/ControlGallery.WinUI/Assets/Wide310x150Logo.scale-200.png differ
diff --git a/samples/ControlGallery.WinUI/ControlGallery.WinUI.csproj b/samples/ControlGallery.WinUI/ControlGallery.WinUI.csproj
new file mode 100644
index 0000000000..4b3d246aaf
--- /dev/null
+++ b/samples/ControlGallery.WinUI/ControlGallery.WinUI.csproj
@@ -0,0 +1,67 @@
+
+
+ WinExe
+ $(AvsCurrentWinUITargetFramework)
+ 10.0.17763.0
+ ControlGallery.WinUI
+ app.manifest
+ x86;x64;ARM64
+ win-x86;win-x64;win-arm64
+ win-$(Platform).pubxml
+ true
+ false
+ true
+ enable
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+ False
+ True
+ False
+ True
+
+
\ No newline at end of file
diff --git a/samples/ControlGallery.WinUI/MainWindow.xaml b/samples/ControlGallery.WinUI/MainWindow.xaml
new file mode 100644
index 0000000000..9595ef8253
--- /dev/null
+++ b/samples/ControlGallery.WinUI/MainWindow.xaml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/samples/ControlGallery.WinUI/MainWindow.xaml.cs b/samples/ControlGallery.WinUI/MainWindow.xaml.cs
new file mode 100644
index 0000000000..e75dcc3ee8
--- /dev/null
+++ b/samples/ControlGallery.WinUI/MainWindow.xaml.cs
@@ -0,0 +1,11 @@
+namespace ControlGallery.WinUI
+{
+ public sealed partial class MainWindow : Microsoft.UI.Xaml.Window
+ {
+ public MainWindow()
+ {
+ InitializeComponent();
+ AvaloniaPanel.Content = new ControlCatalog.MainView();
+ }
+ }
+}
diff --git a/samples/ControlGallery.WinUI/Package.appxmanifest b/samples/ControlGallery.WinUI/Package.appxmanifest
new file mode 100644
index 0000000000..1f2d157a2b
--- /dev/null
+++ b/samples/ControlGallery.WinUI/Package.appxmanifest
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+ ControlGallery.WinUI
+ drasticactions
+ Assets\StoreLogo.png
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/ControlGallery.WinUI/Properties/launchSettings.json b/samples/ControlGallery.WinUI/Properties/launchSettings.json
new file mode 100644
index 0000000000..ddb3c41a5a
--- /dev/null
+++ b/samples/ControlGallery.WinUI/Properties/launchSettings.json
@@ -0,0 +1,10 @@
+{
+ "profiles": {
+ "ControlGallery.WinUI (Package)": {
+ "commandName": "MsixPackage"
+ },
+ "ControlGallery.WinUI (Unpackaged)": {
+ "commandName": "Project"
+ }
+ }
+}
\ No newline at end of file
diff --git a/samples/ControlGallery.WinUI/app.manifest b/samples/ControlGallery.WinUI/app.manifest
new file mode 100644
index 0000000000..e6d75d93fc
--- /dev/null
+++ b/samples/ControlGallery.WinUI/app.manifest
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PerMonitorV2
+
+
+
\ No newline at end of file
diff --git a/src/Windows/Avalonia.Win32/Avalonia.Win32.csproj b/src/Windows/Avalonia.Win32/Avalonia.Win32.csproj
index f2e75c8f6b..4488757762 100644
--- a/src/Windows/Avalonia.Win32/Avalonia.Win32.csproj
+++ b/src/Windows/Avalonia.Win32/Avalonia.Win32.csproj
@@ -36,6 +36,8 @@
+
+
diff --git a/src/Windows/Avalonia.WinUI/Avalonia.WinUI.csproj b/src/Windows/Avalonia.WinUI/Avalonia.WinUI.csproj
new file mode 100644
index 0000000000..45b64b9e59
--- /dev/null
+++ b/src/Windows/Avalonia.WinUI/Avalonia.WinUI.csproj
@@ -0,0 +1,29 @@
+
+
+ $(AvsCurrentWinUITargetFramework)
+ 10.0.17763.0
+ true
+ false
+ true
+ true
+ enable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(NoWarn);CA1416
+
+
+
+
+
+
diff --git a/src/Windows/Avalonia.WinUI/AvaloniaSwapChainPanel.cs b/src/Windows/Avalonia.WinUI/AvaloniaSwapChainPanel.cs
new file mode 100644
index 0000000000..092c894f67
--- /dev/null
+++ b/src/Windows/Avalonia.WinUI/AvaloniaSwapChainPanel.cs
@@ -0,0 +1,427 @@
+using System;
+using System.Runtime.InteropServices;
+using global::Avalonia;
+using global::Avalonia.Controls.Embedding;
+using global::Avalonia.Input;
+using global::Avalonia.Input.Raw;
+using Microsoft.UI.Xaml;
+using Microsoft.UI.Xaml.Controls;
+using Microsoft.UI.Xaml.Input;
+using AvControl = global::Avalonia.Controls.Control;
+using AvSize = global::Avalonia.Size;
+using AvPoint = global::Avalonia.Point;
+using AvVector = global::Avalonia.Vector;
+using AvRect = global::Avalonia.Rect;
+
+namespace Avalonia.WinUI;
+
+public partial class AvaloniaSwapChainPanel : SwapChainPanel
+{
+ private SwapChainGlSurface? _glSurface;
+ private SwapChainPanelTopLevelImpl? _topLevelImpl;
+ private EmbeddableControlRoot? _root;
+ private AvControl? _content;
+ private readonly MouseDevice _mouseDevice = new();
+ private readonly TouchDevice _touchDevice = new();
+ private readonly PenDevice _penDevice = new(releasePointerOnPenUp: false);
+ private PixelSize _cachedPixelSize = new(1, 1);
+ private double _cachedScaling = 1.0;
+
+ public AvaloniaSwapChainPanel()
+ {
+ IsTabStop = true;
+
+ Loaded += OnLoaded;
+ Unloaded += OnUnloaded;
+ SizeChanged += OnSizeChanged;
+ CompositionScaleChanged += OnCompositionScaleChanged;
+
+ PointerPressed += OnPointerPressed;
+ PointerMoved += OnPointerMoved;
+ PointerReleased += OnPointerReleased;
+ PointerWheelChanged += OnPointerWheelChanged;
+ PointerCanceled += OnPointerCanceled;
+ KeyDown += OnKeyDown;
+ KeyUp += OnKeyUp;
+ CharacterReceived += OnCharacterReceived;
+ }
+
+ public AvControl? Content
+ {
+ get => _content;
+ set
+ {
+ _content = value;
+ if (_root is not null)
+ _root.Content = value;
+ }
+ }
+
+ private void UpdateCachedSize()
+ {
+ var w = Math.Max(1, (int)(ActualWidth * CompositionScaleX));
+ var h = Math.Max(1, (int)(ActualHeight * CompositionScaleY));
+ _cachedPixelSize = new PixelSize(w, h);
+ _cachedScaling = CompositionScaleX;
+ }
+
+ private PixelSize GetPixelSize() => _cachedPixelSize;
+
+ private double GetScaling() => _cachedScaling;
+
+ private void OnLoaded(object sender, RoutedEventArgs e)
+ {
+ if (_glSurface is not null)
+ return;
+
+ UpdateCachedSize();
+
+ // Create the GL surface — swap chain creation is deferred to CreateGlRenderTarget
+ // where we have the actual rendering context's D3D device
+ _glSurface = new SwapChainGlSurface(GetPixelSize, GetScaling, OnSwapChainCreated);
+ _topLevelImpl = new SwapChainPanelTopLevelImpl(_glSurface);
+ _topLevelImpl.ClientSize = new AvSize(ActualWidth, ActualHeight);
+ _topLevelImpl.RenderScaling = CompositionScaleX;
+
+ // Create and start the EmbeddableControlRoot
+ _root = new EmbeddableControlRoot(_topLevelImpl);
+ _root.Content = _content;
+ _root.Prepare();
+ _root.StartRendering();
+ }
+
+ private unsafe void OnSwapChainCreated(IntPtr swapChainPtr)
+ {
+ // Called from the render thread when the swap chain is first created.
+ // Set it on the panel via ISwapChainPanelNative COM interop.
+ DispatcherQueue.TryEnqueue(() =>
+ {
+ var panelUnknown = Marshal.GetIUnknownForObject(this);
+ try
+ {
+ var iid = new Guid("63aad0b8-7c24-40ff-85a8-640d944cc325");
+ Marshal.QueryInterface(panelUnknown, in iid, out var nativePtr);
+ if (nativePtr != IntPtr.Zero)
+ {
+ try
+ {
+ var vtable = *(IntPtr**)nativePtr;
+ var setSwapChain = (delegate* unmanaged[Stdcall])vtable[3];
+ var hr = setSwapChain(nativePtr, swapChainPtr);
+ Marshal.ThrowExceptionForHR(hr);
+ }
+ finally
+ {
+ Marshal.Release(nativePtr);
+ }
+ }
+ }
+ finally
+ {
+ Marshal.Release(panelUnknown);
+ }
+ });
+ }
+
+ private void OnUnloaded(object sender, RoutedEventArgs e)
+ {
+ _root?.StopRendering();
+ _root?.Dispose();
+ _root = null;
+ _topLevelImpl = null;
+ _glSurface?.DisposeSwapChain();
+ _glSurface = null;
+ _touchDevice.Dispose();
+ _penDevice.Dispose();
+ }
+
+ private void OnSizeChanged(object sender, SizeChangedEventArgs e)
+ {
+ UpdateCachedSize();
+ if (_topLevelImpl is not null)
+ _topLevelImpl.ClientSize = new AvSize(e.NewSize.Width, e.NewSize.Height);
+ }
+
+ private void OnCompositionScaleChanged(SwapChainPanel sender, object args)
+ {
+ UpdateCachedSize();
+ if (_topLevelImpl is not null)
+ _topLevelImpl.RenderScaling = CompositionScaleX;
+ }
+
+ // Input forwarding
+
+ private IPointerDevice GetPointerDevice(PointerRoutedEventArgs e)
+ {
+ return e.Pointer.PointerDeviceType switch
+ {
+ Microsoft.UI.Input.PointerDeviceType.Touch => _touchDevice,
+ Microsoft.UI.Input.PointerDeviceType.Pen => _penDevice,
+ _ => _mouseDevice
+ };
+ }
+
+ private RawPointerPoint CreateRawPointerPoint(PointerRoutedEventArgs e)
+ {
+ var point = e.GetCurrentPoint(this);
+ var props = point.Properties;
+ var pos = point.Position;
+
+ var rawPoint = new RawPointerPoint
+ {
+ Position = new AvPoint(pos.X, pos.Y),
+ Pressure = props.Pressure,
+ Twist = props.Twist,
+ XTilt = props.XTilt,
+ YTilt = props.YTilt,
+ };
+
+ if (props.ContactRect is { Width: > 0 } or { Height: > 0 })
+ {
+ var cr = props.ContactRect;
+ rawPoint.ContactRect = new AvRect(cr.X, cr.Y, cr.Width, cr.Height);
+ }
+
+ return rawPoint;
+ }
+
+ private RawPointerEventArgs CreatePointerArgs(
+ IInputDevice device, ulong timestamp, IInputRoot inputRoot,
+ RawPointerEventType type, RawPointerPoint point,
+ RawInputModifiers modifiers, uint pointerId)
+ {
+ return device is TouchDevice
+ ? new RawTouchEventArgs(device, timestamp, inputRoot, type, point, modifiers, pointerId)
+ : new RawPointerEventArgs(device, timestamp, inputRoot, type, point, modifiers)
+ {
+ RawPointerId = pointerId
+ };
+ }
+
+ private ulong GetTimestamp(PointerRoutedEventArgs e)
+ {
+ // WinUI PointerPoint.Timestamp is in microseconds; Avalonia expects milliseconds.
+ return e.GetCurrentPoint(this).Timestamp / 1000;
+ }
+
+ private RawInputModifiers GetPointerModifiers(PointerRoutedEventArgs e)
+ {
+ var point = e.GetCurrentPoint(this);
+ var props = point.Properties;
+ var mods = WinUIKeyInterop.ModifiersFromVirtualKeyModifiers(e.KeyModifiers);
+ if (props.IsLeftButtonPressed)
+ mods |= RawInputModifiers.LeftMouseButton;
+ if (props.IsRightButtonPressed)
+ mods |= RawInputModifiers.RightMouseButton;
+ if (props.IsMiddleButtonPressed)
+ mods |= RawInputModifiers.MiddleMouseButton;
+
+ if (e.Pointer.PointerDeviceType == Microsoft.UI.Input.PointerDeviceType.Pen)
+ {
+ if (props.IsBarrelButtonPressed)
+ mods |= RawInputModifiers.PenBarrelButton;
+ if (props.IsEraser)
+ mods |= RawInputModifiers.PenEraser;
+ if (props.IsInverted)
+ mods |= RawInputModifiers.PenInverted;
+ }
+
+ return mods;
+ }
+
+ private void OnPointerPressed(object sender, PointerRoutedEventArgs e)
+ {
+ if (_topLevelImpl?.Input is not { } input || _topLevelImpl.InputRoot is not { } inputRoot)
+ return;
+
+ var device = GetPointerDevice(e);
+ var timestamp = GetTimestamp(e);
+ var rawPoint = CreateRawPointerPoint(e);
+ var modifiers = GetPointerModifiers(e);
+ var pointerId = e.Pointer.PointerId;
+
+ RawPointerEventType type;
+ if (device is TouchDevice)
+ {
+ type = RawPointerEventType.TouchBegin;
+ }
+ else
+ {
+ var point = e.GetCurrentPoint(this);
+ var props = point.Properties;
+ if (props.IsLeftButtonPressed)
+ type = RawPointerEventType.LeftButtonDown;
+ else if (props.IsRightButtonPressed)
+ type = RawPointerEventType.RightButtonDown;
+ else if (props.IsMiddleButtonPressed)
+ type = RawPointerEventType.MiddleButtonDown;
+ else
+ return;
+ }
+
+ Focus(FocusState.Pointer);
+ CapturePointer(e.Pointer);
+
+ input(CreatePointerArgs(device, timestamp, inputRoot, type, rawPoint, modifiers, pointerId));
+ e.Handled = true;
+ }
+
+ private void OnPointerMoved(object sender, PointerRoutedEventArgs e)
+ {
+ if (_topLevelImpl?.Input is not { } input || _topLevelImpl.InputRoot is not { } inputRoot)
+ return;
+
+ var device = GetPointerDevice(e);
+ var timestamp = GetTimestamp(e);
+ var rawPoint = CreateRawPointerPoint(e);
+ var modifiers = GetPointerModifiers(e);
+ var pointerId = e.Pointer.PointerId;
+
+ var type = device is TouchDevice ? RawPointerEventType.TouchUpdate : RawPointerEventType.Move;
+
+ input(CreatePointerArgs(device, timestamp, inputRoot, type, rawPoint, modifiers, pointerId));
+ }
+
+ private void OnPointerReleased(object sender, PointerRoutedEventArgs e)
+ {
+ if (_topLevelImpl?.Input is not { } input || _topLevelImpl.InputRoot is not { } inputRoot)
+ return;
+
+ var device = GetPointerDevice(e);
+ var timestamp = GetTimestamp(e);
+ var rawPoint = CreateRawPointerPoint(e);
+ var modifiers = GetPointerModifiers(e);
+ var pointerId = e.Pointer.PointerId;
+
+ RawPointerEventType type;
+ if (device is TouchDevice)
+ {
+ type = RawPointerEventType.TouchEnd;
+ }
+ else
+ {
+ var point = e.GetCurrentPoint(this);
+ var props = point.Properties;
+ switch (props.PointerUpdateKind)
+ {
+ case Microsoft.UI.Input.PointerUpdateKind.LeftButtonReleased:
+ type = RawPointerEventType.LeftButtonUp;
+ break;
+ case Microsoft.UI.Input.PointerUpdateKind.RightButtonReleased:
+ type = RawPointerEventType.RightButtonUp;
+ break;
+ case Microsoft.UI.Input.PointerUpdateKind.MiddleButtonReleased:
+ type = RawPointerEventType.MiddleButtonUp;
+ break;
+ default:
+ return;
+ }
+ }
+
+ ReleasePointerCapture(e.Pointer);
+ input(CreatePointerArgs(device, timestamp, inputRoot, type, rawPoint, modifiers, pointerId));
+ e.Handled = true;
+ }
+
+ private void OnPointerWheelChanged(object sender, PointerRoutedEventArgs e)
+ {
+ if (_topLevelImpl?.Input is not { } input || _topLevelImpl.InputRoot is not { } inputRoot)
+ return;
+
+ var device = GetPointerDevice(e);
+ var timestamp = GetTimestamp(e);
+ var point = e.GetCurrentPoint(this);
+ var delta = point.Properties.MouseWheelDelta;
+ var pos = point.Position;
+
+ input(new RawMouseWheelEventArgs(device as MouseDevice ?? _mouseDevice, timestamp, inputRoot,
+ new AvPoint(pos.X, pos.Y), new AvVector(0, delta), GetPointerModifiers(e)));
+ e.Handled = true;
+ }
+
+ private void OnPointerCanceled(object sender, PointerRoutedEventArgs e)
+ {
+ if (_topLevelImpl?.Input is not { } input || _topLevelImpl.InputRoot is not { } inputRoot)
+ return;
+
+ var device = GetPointerDevice(e);
+ var timestamp = GetTimestamp(e);
+ var rawPoint = CreateRawPointerPoint(e);
+ var modifiers = GetPointerModifiers(e);
+ var pointerId = e.Pointer.PointerId;
+
+ var type = device is TouchDevice ? RawPointerEventType.TouchCancel : RawPointerEventType.LeaveWindow;
+
+ input(CreatePointerArgs(device, timestamp, inputRoot, type, rawPoint, modifiers, pointerId));
+ e.Handled = true;
+ }
+
+ private void OnKeyDown(object sender, KeyRoutedEventArgs e)
+ {
+ if (_topLevelImpl?.Input is not { } input || _topLevelImpl.InputRoot is not { } inputRoot)
+ return;
+
+ var key = WinUIKeyInterop.KeyFromVirtualKey(e.Key);
+ if (key != Key.None)
+ {
+ var keyboard = GetKeyboardDevice();
+ if (keyboard is null) return;
+ input(new RawKeyEventArgs(keyboard, (ulong)Environment.TickCount64, inputRoot,
+ RawKeyEventType.KeyDown, key, GetCurrentModifiers(),
+ PhysicalKey.None, null));
+ e.Handled = true;
+ }
+ }
+
+ private void OnKeyUp(object sender, KeyRoutedEventArgs e)
+ {
+ if (_topLevelImpl?.Input is not { } input || _topLevelImpl.InputRoot is not { } inputRoot)
+ return;
+
+ var key = WinUIKeyInterop.KeyFromVirtualKey(e.Key);
+ if (key != Key.None)
+ {
+ var keyboard = GetKeyboardDevice();
+ if (keyboard is null) return;
+ input(new RawKeyEventArgs(keyboard, (ulong)Environment.TickCount64, inputRoot,
+ RawKeyEventType.KeyUp, key, GetCurrentModifiers(),
+ PhysicalKey.None, null));
+ e.Handled = true;
+ }
+ }
+
+ private void OnCharacterReceived(UIElement sender, CharacterReceivedRoutedEventArgs e)
+ {
+ if (_topLevelImpl?.Input is not { } input || _topLevelImpl.InputRoot is not { } inputRoot)
+ return;
+
+ var keyboard = GetKeyboardDevice();
+ if (keyboard is null) return;
+
+ var ch = e.Character;
+ if (!char.IsControl(ch) || ch == '\r' || ch == '\n' || ch == '\t')
+ {
+ input(new RawTextInputEventArgs(keyboard, (ulong)Environment.TickCount64, inputRoot,
+ new string(ch, 1)));
+ e.Handled = true;
+ }
+ }
+
+ private static IKeyboardDevice? GetKeyboardDevice()
+ => AvaloniaLocator.Current.GetService();
+
+ private static RawInputModifiers GetCurrentModifiers()
+ {
+ var mods = RawInputModifiers.None;
+ var ctrlState = Microsoft.UI.Input.InputKeyboardSource.GetKeyStateForCurrentThread(Windows.System.VirtualKey.Control);
+ if (ctrlState.HasFlag(Windows.UI.Core.CoreVirtualKeyStates.Down))
+ mods |= RawInputModifiers.Control;
+ var shiftState = Microsoft.UI.Input.InputKeyboardSource.GetKeyStateForCurrentThread(Windows.System.VirtualKey.Shift);
+ if (shiftState.HasFlag(Windows.UI.Core.CoreVirtualKeyStates.Down))
+ mods |= RawInputModifiers.Shift;
+ var altState = Microsoft.UI.Input.InputKeyboardSource.GetKeyStateForCurrentThread(Windows.System.VirtualKey.Menu);
+ if (altState.HasFlag(Windows.UI.Core.CoreVirtualKeyStates.Down))
+ mods |= RawInputModifiers.Alt;
+ return mods;
+ }
+}
diff --git a/src/Windows/Avalonia.WinUI/SwapChainGlSurface.cs b/src/Windows/Avalonia.WinUI/SwapChainGlSurface.cs
new file mode 100644
index 0000000000..2ee4a2008d
--- /dev/null
+++ b/src/Windows/Avalonia.WinUI/SwapChainGlSurface.cs
@@ -0,0 +1,248 @@
+using System;
+using System.Runtime.InteropServices;
+using global::Avalonia;
+using global::Avalonia.OpenGL;
+using global::Avalonia.OpenGL.Egl;
+using global::Avalonia.OpenGL.Surfaces;
+using global::Avalonia.Platform;
+using global::Avalonia.Win32.DirectX;
+using global::Avalonia.Win32.OpenGl.Angle;
+using MicroCom.Runtime;
+
+namespace Avalonia.WinUI;
+
+internal unsafe class SwapChainGlSurface : EglGlPlatformSurfaceBase
+{
+ // QI for IDXGISwapChain2 fails on some Windows builds even though
+ // IDXGISwapChain3/4 succeed. Use IDXGISwapChain3 which inherits from
+ // IDXGISwapChain2 and has SetMatrixTransform at the same vtable slot.
+ private static readonly Guid IDXGISwapChain3Guid = new("94d99bdb-f1f8-4ab0-b236-7da0170edab1");
+
+ [DllImport("dxgi.dll", ExactSpelling = true)]
+ private static extern int CreateDXGIFactory2(uint Flags, in Guid riid, out IntPtr ppFactory);
+
+ private readonly Func _getSizeFunc;
+ private readonly Func _getScalingFunc;
+ private readonly Action _setSwapChainCallback;
+ private IDXGISwapChain1? _swapChain;
+ private IntPtr _swapChain3Ptr;
+
+ public SwapChainGlSurface(
+ Func getSizeFunc,
+ Func getScalingFunc,
+ Action setSwapChainCallback)
+ {
+ _getSizeFunc = getSizeFunc;
+ _getScalingFunc = getScalingFunc;
+ _setSwapChainCallback = setSwapChainCallback;
+ }
+
+ public override IGlPlatformSurfaceRenderTarget CreateGlRenderTarget(IGlContext context)
+ {
+ var eglContext = (EglContext)context;
+
+ if (_swapChain is null)
+ {
+ _swapChain = CreateSwapChain(eglContext);
+
+ var swapChainPtr = MicroComRuntime.GetNativeIntPtr(_swapChain);
+ var guid = IDXGISwapChain3Guid;
+ var qiHr = Marshal.QueryInterface(swapChainPtr, in guid, out _swapChain3Ptr);
+ if (qiHr != 0 || _swapChain3Ptr == IntPtr.Zero)
+ throw new InvalidOperationException(
+ $"QI for IDXGISwapChain3 failed: HR=0x{qiHr:X8}, ptr={_swapChain3Ptr}");
+
+ SetInverseScaleTransform(_getScalingFunc());
+
+ _setSwapChainCallback(swapChainPtr);
+ }
+
+ return new SwapChainGlRenderTarget(eglContext, _swapChain, _getSizeFunc, _getScalingFunc, _swapChain3Ptr, this);
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct DXGI_MATRIX_3X2_F
+ {
+ public float _11, _12;
+ public float _21, _22;
+ public float _31, _32;
+ }
+
+ internal void SetInverseScaleTransform(double scaling)
+ {
+ if (_swapChain3Ptr == IntPtr.Zero || scaling <= 0)
+ return;
+
+ var inverseScale = new DXGI_MATRIX_3X2_F
+ {
+ _11 = 1.0f / (float)scaling,
+ _22 = 1.0f / (float)scaling
+ };
+
+ // IDXGISwapChain2::SetMatrixTransform vtable slot:
+ // IUnknown(3) + IDXGIObject(4) + IDXGIDeviceSubObject(1) +
+ // IDXGISwapChain(10) + IDXGISwapChain1(11) +
+ // SetSourceSize, GetSourceSize, SetMaximumFrameLatency,
+ // GetMaximumFrameLatency, GetFrameLatencyWaitableObject = 5
+ // → SetMatrixTransform is at slot 34
+ var vtable = *(IntPtr**)_swapChain3Ptr;
+ var setMatrixTransform = (delegate* unmanaged[Stdcall])vtable[34];
+ var hr = setMatrixTransform(_swapChain3Ptr, &inverseScale);
+ Marshal.ThrowExceptionForHR(hr);
+ }
+
+ private IDXGISwapChain1 CreateSwapChain(EglContext eglContext)
+ {
+ var eglDisplay = (AngleWin32EglDisplay)eglContext.Display;
+ var d3dDevicePtr = eglDisplay.GetDirect3DDevice();
+ var d3dDevice = MicroComRuntime.CreateProxyFor(d3dDevicePtr, false);
+
+ IDXGIDevice dxgiDevice;
+ using (d3dDevice)
+ dxgiDevice = d3dDevice.QueryInterface();
+
+ Guid factoryGuid = MicroComRuntime.GetGuidFor(typeof(IDXGIFactory2));
+ var hr = CreateDXGIFactory2(0, in factoryGuid, out var factoryPtr);
+ Marshal.ThrowExceptionForHR(hr);
+ var dxgiFactory = MicroComRuntime.CreateProxyFor(factoryPtr, true);
+
+ var pixelSize = _getSizeFunc();
+ var desc = new DXGI_SWAP_CHAIN_DESC1
+ {
+ Format = DXGI_FORMAT.DXGI_FORMAT_B8G8R8A8_UNORM,
+ SampleDesc = new DXGI_SAMPLE_DESC { Count = 1, Quality = 0 },
+ BufferUsage = DxgiRenderTarget.DXGI_USAGE_RENDER_TARGET_OUTPUT,
+ BufferCount = 2,
+ SwapEffect = DXGI_SWAP_EFFECT.DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL,
+ AlphaMode = DXGI_ALPHA_MODE.DXGI_ALPHA_MODE_PREMULTIPLIED,
+ Width = (uint)pixelSize.Width,
+ Height = (uint)pixelSize.Height,
+ Flags = 0
+ };
+
+ var swapChain = dxgiFactory.CreateSwapChainForComposition(dxgiDevice, &desc, null);
+
+ dxgiFactory.Dispose();
+ dxgiDevice.Dispose();
+
+ return swapChain;
+ }
+
+ public void DisposeSwapChain()
+ {
+ if (_swapChain3Ptr != IntPtr.Zero)
+ {
+ Marshal.Release(_swapChain3Ptr);
+ _swapChain3Ptr = IntPtr.Zero;
+ }
+ _swapChain?.Dispose();
+ _swapChain = null;
+ }
+}
+
+internal unsafe class SwapChainGlRenderTarget : EglPlatformSurfaceRenderTargetBase
+{
+ private static readonly Guid ID3D11Texture2DGuid = Guid.Parse("6F15AAF2-D208-4E89-9AB4-489535D34F9C");
+
+ private readonly IDXGISwapChain1 _swapChain;
+ private readonly Func _getSizeFunc;
+ private readonly Func _getScalingFunc;
+ private readonly IntPtr _swapChain3Ptr;
+ private readonly SwapChainGlSurface _owner;
+
+ private IUnknown? _renderTexture;
+ private EglSurface? _surface;
+ private PixelSize _lastSize;
+ private double _lastScaling;
+
+ public SwapChainGlRenderTarget(
+ EglContext context,
+ IDXGISwapChain1 swapChain,
+ Func getSizeFunc,
+ Func getScalingFunc,
+ IntPtr swapChain3Ptr,
+ SwapChainGlSurface owner) : base(context)
+ {
+ _swapChain = swapChain;
+ _getSizeFunc = getSizeFunc;
+ _getScalingFunc = getScalingFunc;
+ _swapChain3Ptr = swapChain3Ptr;
+ _owner = owner;
+ }
+
+ public override IGlPlatformSurfaceRenderingSession BeginDrawCore(IRenderTarget.RenderTargetSceneInfo sceneInfo)
+ {
+ var contextLock = Context.EnsureCurrent();
+ var success = false;
+ try
+ {
+ var size = _getSizeFunc();
+ var scaling = _getScalingFunc();
+
+ if (scaling != _lastScaling)
+ {
+ _owner.SetInverseScaleTransform(scaling);
+ _lastScaling = scaling;
+ }
+
+ if (size != _lastSize)
+ {
+ _surface?.Dispose();
+ _surface = null;
+ _renderTexture?.Dispose();
+ _renderTexture = null;
+
+ _swapChain.ResizeBuffers(2,
+ (ushort)size.Width,
+ (ushort)size.Height,
+ DXGI_FORMAT.DXGI_FORMAT_B8G8R8A8_UNORM,
+ 0);
+
+ _lastSize = size;
+ }
+
+ if (_renderTexture is null)
+ {
+ _surface?.Dispose();
+ _surface = null;
+
+ Guid textureGuid = ID3D11Texture2DGuid;
+ _renderTexture = MicroComRuntime.CreateProxyFor(
+ _swapChain.GetBuffer(0, &textureGuid), true);
+ }
+
+ if (_surface is null)
+ {
+ _surface = ((AngleWin32EglDisplay)Context.Display).WrapDirect3D11Texture(
+ MicroComRuntime.GetNativeIntPtr(_renderTexture),
+ 0, 0, size.Width, size.Height);
+ }
+
+ var res = base.BeginDraw(_surface, size, scaling, () =>
+ {
+ _swapChain.Present(1, 0);
+ contextLock?.Dispose();
+ }, true);
+ success = true;
+ return res;
+ }
+ finally
+ {
+ if (!success)
+ {
+ _surface?.Dispose();
+ _surface = null;
+ _renderTexture?.Dispose();
+ _renderTexture = null;
+ contextLock.Dispose();
+ }
+ }
+ }
+
+ public override void Dispose()
+ {
+ base.Dispose();
+ _surface?.Dispose();
+ _renderTexture?.Dispose();
+ }
+}
diff --git a/src/Windows/Avalonia.WinUI/SwapChainPanelTopLevelImpl.cs b/src/Windows/Avalonia.WinUI/SwapChainPanelTopLevelImpl.cs
new file mode 100644
index 0000000000..6c1445fa29
--- /dev/null
+++ b/src/Windows/Avalonia.WinUI/SwapChainPanelTopLevelImpl.cs
@@ -0,0 +1,100 @@
+using System;
+using System.Collections.Generic;
+using global::Avalonia;
+using global::Avalonia.Controls;
+using global::Avalonia.Input;
+using global::Avalonia.Input.Raw;
+using global::Avalonia.OpenGL.Surfaces;
+using global::Avalonia.Platform;
+using global::Avalonia.Platform.Surfaces;
+using global::Avalonia.Rendering.Composition;
+using Size = global::Avalonia.Size;
+using Point = global::Avalonia.Point;
+using Rect = global::Avalonia.Rect;
+using PixelPoint = global::Avalonia.PixelPoint;
+
+namespace Avalonia.WinUI;
+
+internal class SwapChainPanelTopLevelImpl : ITopLevelImpl
+{
+ private readonly IGlPlatformSurface _glSurface;
+ private Size _clientSize;
+ private double _scaling = 1.0;
+
+ public SwapChainPanelTopLevelImpl(IGlPlatformSurface glSurface)
+ {
+ _glSurface = glSurface;
+ var platformGraphics = AvaloniaLocator.Current.GetService();
+ Compositor = new Compositor(platformGraphics);
+ }
+
+ public Size ClientSize
+ {
+ get => _clientSize;
+ set
+ {
+ _clientSize = value;
+ Resized?.Invoke(value, WindowResizeReason.Unspecified);
+ }
+ }
+
+ public double RenderScaling
+ {
+ get => _scaling;
+ set
+ {
+ _scaling = value;
+ ScalingChanged?.Invoke(value);
+ }
+ }
+
+ public double DesktopScaling => _scaling;
+
+ public IPlatformHandle? Handle => null;
+
+ public Compositor Compositor { get; }
+
+ public IPlatformRenderSurface[] Surfaces => [_glSurface];
+
+ public Action? Input { get; set; }
+
+ public Action? Paint { get; set; }
+
+ public Action? Resized { get; set; }
+
+ public Action? ScalingChanged { get; set; }
+
+ public Action? TransparencyLevelChanged { get; set; }
+
+ public Action? Closed { get; set; }
+
+ public Action? LostFocus { get; set; }
+
+ public WindowTransparencyLevel TransparencyLevel => WindowTransparencyLevel.None;
+
+ public AcrylicPlatformCompensationLevels AcrylicCompensationLevels { get; } = new(1, 1, 1);
+
+ public IInputRoot? InputRoot { get; private set; }
+
+ public void SetInputRoot(IInputRoot inputRoot) => InputRoot = inputRoot;
+
+ public Point PointToClient(PixelPoint point) => point.ToPoint(_scaling);
+
+ public PixelPoint PointToScreen(Point point) => PixelPoint.FromPoint(point, _scaling);
+
+ public void SetCursor(ICursorImpl? cursor) { }
+
+ // Uses overlays instead of popups.
+ public IPopupImpl? CreatePopup() => null;
+
+ public void SetTransparencyLevelHint(IReadOnlyList transparencyLevels) { }
+
+ public void SetFrameThemeVariant(PlatformThemeVariant themeVariant) { }
+
+ public object? TryGetFeature(Type featureType) => null;
+
+ public void Dispose()
+ {
+ Closed?.Invoke();
+ }
+}
diff --git a/src/Windows/Avalonia.WinUI/WinUIKeyInterop.cs b/src/Windows/Avalonia.WinUI/WinUIKeyInterop.cs
new file mode 100644
index 0000000000..a7f9ecbb73
--- /dev/null
+++ b/src/Windows/Avalonia.WinUI/WinUIKeyInterop.cs
@@ -0,0 +1,31 @@
+using global::Avalonia.Input;
+using global::Avalonia.Input.Raw;
+using global::Avalonia.Win32.Input;
+using Windows.System;
+
+namespace Avalonia.WinUI;
+
+internal static class WinUIKeyInterop
+{
+ public static Key KeyFromVirtualKey(VirtualKey virtualKey)
+ {
+ // WinUI VirtualKey enum values match Win32 VK_ constants.
+ // Pass keyData=0; modifier disambiguation (L/R shift etc.) won't work
+ // via scan codes, but WinUI doesn't distinguish those anyway.
+ return KeyInterop.KeyFromVirtualKey((int)virtualKey, 0);
+ }
+
+ public static RawInputModifiers ModifiersFromVirtualKeyModifiers(VirtualKeyModifiers modifiers)
+ {
+ var result = RawInputModifiers.None;
+ if (modifiers.HasFlag(VirtualKeyModifiers.Control))
+ result |= RawInputModifiers.Control;
+ if (modifiers.HasFlag(VirtualKeyModifiers.Shift))
+ result |= RawInputModifiers.Shift;
+ if (modifiers.HasFlag(VirtualKeyModifiers.Menu))
+ result |= RawInputModifiers.Alt;
+ if (modifiers.HasFlag(VirtualKeyModifiers.Windows))
+ result |= RawInputModifiers.Meta;
+ return result;
+ }
+}