diff --git a/OpenConsole.sln b/OpenConsole.sln index bb55346956..150d3166f0 100644 --- a/OpenConsole.sln +++ b/OpenConsole.sln @@ -302,30 +302,41 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TerminalAzBridge", "src\cas EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fmt", "src\dep\fmt\fmt.vcxproj", "{6BAE5851-50D5-4934-8D5E-30361A8A40F3}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfTerminalTestNetCore", "src\tools\WpfTerminalTestNetCore\WpfTerminalTestNetCore\WpfTerminalTestNetCore.csproj", "{1588FD7C-241E-4E7D-9113-43735F3E6BAD}" + ProjectSection(ProjectDependencies) = postProject + {A22EC5F6-7851-4B88-AC52-47249D437A52} = {A22EC5F6-7851-4B88-AC52-47249D437A52} + {84848BFA-931D-42CE-9ADF-01EE54DE7890} = {84848BFA-931D-42CE-9ADF-01EE54DE7890} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution AuditMode|Any CPU = AuditMode|Any CPU AuditMode|ARM64 = AuditMode|ARM64 + AuditMode|NET_Test = AuditMode|NET_Test AuditMode|x64 = AuditMode|x64 AuditMode|x86 = AuditMode|x86 Debug|Any CPU = Debug|Any CPU Debug|ARM64 = Debug|ARM64 + Debug|NET_Test = Debug|NET_Test Debug|x64 = Debug|x64 Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU Release|ARM64 = Release|ARM64 + Release|NET_Test = Release|NET_Test Release|x64 = Release|x64 Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {CA5CAD1A-224A-4171-B13A-F16E576FDD12}.AuditMode|Any CPU.ActiveCfg = Debug|x86 {CA5CAD1A-224A-4171-B13A-F16E576FDD12}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {CA5CAD1A-224A-4171-B13A-F16E576FDD12}.AuditMode|NET_Test.ActiveCfg = Debug|x86 {CA5CAD1A-224A-4171-B13A-F16E576FDD12}.AuditMode|x64.ActiveCfg = Release|x64 {CA5CAD1A-224A-4171-B13A-F16E576FDD12}.AuditMode|x86.ActiveCfg = Release|x86 {CA5CAD1A-224A-4171-B13A-F16E576FDD12}.Debug|Any CPU.ActiveCfg = Debug|x86 {CA5CAD1A-224A-4171-B13A-F16E576FDD12}.Debug|ARM64.ActiveCfg = Debug|ARM64 {CA5CAD1A-224A-4171-B13A-F16E576FDD12}.Debug|ARM64.Build.0 = Debug|ARM64 {CA5CAD1A-224A-4171-B13A-F16E576FDD12}.Debug|ARM64.Deploy.0 = Debug|ARM64 + {CA5CAD1A-224A-4171-B13A-F16E576FDD12}.Debug|NET_Test.ActiveCfg = Debug|x86 {CA5CAD1A-224A-4171-B13A-F16E576FDD12}.Debug|x64.ActiveCfg = Debug|x64 {CA5CAD1A-224A-4171-B13A-F16E576FDD12}.Debug|x64.Build.0 = Debug|x64 {CA5CAD1A-224A-4171-B13A-F16E576FDD12}.Debug|x64.Deploy.0 = Debug|x64 @@ -344,11 +355,13 @@ Global {CA5CAD1A-224A-4171-B13A-F16E576FDD12}.Release|x86.Deploy.0 = Release|x86 {9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.AuditMode|x64.ActiveCfg = Release|x64 {9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.AuditMode|x86.ActiveCfg = Release|Win32 {9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.Debug|Any CPU.ActiveCfg = Debug|Win32 {9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.Debug|ARM64.ActiveCfg = Debug|ARM64 {9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.Debug|ARM64.Build.0 = Debug|ARM64 + {9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.Debug|NET_Test.ActiveCfg = Debug|Win32 {9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.Debug|x64.ActiveCfg = Debug|x64 {9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.Debug|x64.Build.0 = Debug|x64 {9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.Debug|x86.ActiveCfg = Debug|Win32 @@ -362,11 +375,13 @@ Global {9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.Release|x86.Build.0 = Release|Win32 {345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.AuditMode|x64.ActiveCfg = Release|x64 {345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.AuditMode|x86.ActiveCfg = Release|Win32 {345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.Debug|Any CPU.ActiveCfg = Debug|Win32 {345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.Debug|ARM64.ActiveCfg = Debug|ARM64 {345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.Debug|ARM64.Build.0 = Debug|ARM64 + {345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.Debug|NET_Test.ActiveCfg = Debug|Win32 {345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.Debug|x64.ActiveCfg = Debug|x64 {345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.Debug|x64.Build.0 = Debug|x64 {345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.Debug|x86.ActiveCfg = Debug|Win32 @@ -380,11 +395,13 @@ Global {345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.Release|x86.Build.0 = Release|Win32 {2FD12FBB-1DDB-46D8-B818-1023C624CACA}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {2FD12FBB-1DDB-46D8-B818-1023C624CACA}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {2FD12FBB-1DDB-46D8-B818-1023C624CACA}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {2FD12FBB-1DDB-46D8-B818-1023C624CACA}.AuditMode|x64.ActiveCfg = Release|x64 {2FD12FBB-1DDB-46D8-B818-1023C624CACA}.AuditMode|x86.ActiveCfg = Release|Win32 {2FD12FBB-1DDB-46D8-B818-1023C624CACA}.Debug|Any CPU.ActiveCfg = Debug|Win32 {2FD12FBB-1DDB-46D8-B818-1023C624CACA}.Debug|ARM64.ActiveCfg = Debug|ARM64 {2FD12FBB-1DDB-46D8-B818-1023C624CACA}.Debug|ARM64.Build.0 = Debug|ARM64 + {2FD12FBB-1DDB-46D8-B818-1023C624CACA}.Debug|NET_Test.ActiveCfg = Debug|Win32 {2FD12FBB-1DDB-46D8-B818-1023C624CACA}.Debug|x64.ActiveCfg = Debug|x64 {2FD12FBB-1DDB-46D8-B818-1023C624CACA}.Debug|x64.Build.0 = Debug|x64 {2FD12FBB-1DDB-46D8-B818-1023C624CACA}.Debug|x86.ActiveCfg = Debug|Win32 @@ -398,12 +415,15 @@ Global {2FD12FBB-1DDB-46D8-B818-1023C624CACA}.Release|x86.Build.0 = Release|Win32 {3AE13314-1939-4DFA-9C14-38CA0834050C}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {3AE13314-1939-4DFA-9C14-38CA0834050C}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {3AE13314-1939-4DFA-9C14-38CA0834050C}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {3AE13314-1939-4DFA-9C14-38CA0834050C}.AuditMode|x64.ActiveCfg = AuditMode|x64 {3AE13314-1939-4DFA-9C14-38CA0834050C}.AuditMode|x64.Build.0 = AuditMode|x64 {3AE13314-1939-4DFA-9C14-38CA0834050C}.AuditMode|x86.ActiveCfg = Release|Win32 {3AE13314-1939-4DFA-9C14-38CA0834050C}.Debug|Any CPU.ActiveCfg = Debug|Win32 {3AE13314-1939-4DFA-9C14-38CA0834050C}.Debug|ARM64.ActiveCfg = Debug|ARM64 {3AE13314-1939-4DFA-9C14-38CA0834050C}.Debug|ARM64.Build.0 = Debug|ARM64 + {3AE13314-1939-4DFA-9C14-38CA0834050C}.Debug|NET_Test.ActiveCfg = Debug|x64 + {3AE13314-1939-4DFA-9C14-38CA0834050C}.Debug|NET_Test.Build.0 = Debug|x64 {3AE13314-1939-4DFA-9C14-38CA0834050C}.Debug|x64.ActiveCfg = Debug|x64 {3AE13314-1939-4DFA-9C14-38CA0834050C}.Debug|x64.Build.0 = Debug|x64 {3AE13314-1939-4DFA-9C14-38CA0834050C}.Debug|x86.ActiveCfg = Debug|Win32 @@ -417,12 +437,14 @@ Global {3AE13314-1939-4DFA-9C14-38CA0834050C}.Release|x86.Build.0 = Release|Win32 {DCF55140-EF6A-4736-A403-957E4F7430BB}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {DCF55140-EF6A-4736-A403-957E4F7430BB}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {DCF55140-EF6A-4736-A403-957E4F7430BB}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {DCF55140-EF6A-4736-A403-957E4F7430BB}.AuditMode|x64.ActiveCfg = AuditMode|x64 {DCF55140-EF6A-4736-A403-957E4F7430BB}.AuditMode|x64.Build.0 = AuditMode|x64 {DCF55140-EF6A-4736-A403-957E4F7430BB}.AuditMode|x86.ActiveCfg = Release|Win32 {DCF55140-EF6A-4736-A403-957E4F7430BB}.Debug|Any CPU.ActiveCfg = Debug|Win32 {DCF55140-EF6A-4736-A403-957E4F7430BB}.Debug|ARM64.ActiveCfg = Debug|ARM64 {DCF55140-EF6A-4736-A403-957E4F7430BB}.Debug|ARM64.Build.0 = Debug|ARM64 + {DCF55140-EF6A-4736-A403-957E4F7430BB}.Debug|NET_Test.ActiveCfg = Debug|Win32 {DCF55140-EF6A-4736-A403-957E4F7430BB}.Debug|x64.ActiveCfg = Debug|x64 {DCF55140-EF6A-4736-A403-957E4F7430BB}.Debug|x64.Build.0 = Debug|x64 {DCF55140-EF6A-4736-A403-957E4F7430BB}.Debug|x86.ActiveCfg = Debug|Win32 @@ -436,12 +458,15 @@ Global {DCF55140-EF6A-4736-A403-957E4F7430BB}.Release|x86.Build.0 = Release|Win32 {1CF55140-EF6A-4736-A403-957E4F7430BB}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {1CF55140-EF6A-4736-A403-957E4F7430BB}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {1CF55140-EF6A-4736-A403-957E4F7430BB}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {1CF55140-EF6A-4736-A403-957E4F7430BB}.AuditMode|x64.ActiveCfg = AuditMode|x64 {1CF55140-EF6A-4736-A403-957E4F7430BB}.AuditMode|x64.Build.0 = AuditMode|x64 {1CF55140-EF6A-4736-A403-957E4F7430BB}.AuditMode|x86.ActiveCfg = Release|Win32 {1CF55140-EF6A-4736-A403-957E4F7430BB}.Debug|Any CPU.ActiveCfg = Debug|Win32 {1CF55140-EF6A-4736-A403-957E4F7430BB}.Debug|ARM64.ActiveCfg = Debug|ARM64 {1CF55140-EF6A-4736-A403-957E4F7430BB}.Debug|ARM64.Build.0 = Debug|ARM64 + {1CF55140-EF6A-4736-A403-957E4F7430BB}.Debug|NET_Test.ActiveCfg = Debug|x64 + {1CF55140-EF6A-4736-A403-957E4F7430BB}.Debug|NET_Test.Build.0 = Debug|x64 {1CF55140-EF6A-4736-A403-957E4F7430BB}.Debug|x64.ActiveCfg = Debug|x64 {1CF55140-EF6A-4736-A403-957E4F7430BB}.Debug|x64.Build.0 = Debug|x64 {1CF55140-EF6A-4736-A403-957E4F7430BB}.Debug|x86.ActiveCfg = Debug|Win32 @@ -455,12 +480,15 @@ Global {1CF55140-EF6A-4736-A403-957E4F7430BB}.Release|x86.Build.0 = Release|Win32 {AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.AuditMode|x64.ActiveCfg = Release|x64 {AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.AuditMode|x64.Build.0 = Release|x64 {AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.AuditMode|x86.ActiveCfg = Release|Win32 {AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.Debug|Any CPU.ActiveCfg = Debug|Win32 {AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.Debug|ARM64.ActiveCfg = Debug|ARM64 {AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.Debug|ARM64.Build.0 = Debug|ARM64 + {AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.Debug|NET_Test.ActiveCfg = Debug|x64 + {AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.Debug|NET_Test.Build.0 = Debug|x64 {AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.Debug|x64.ActiveCfg = Debug|x64 {AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.Debug|x64.Build.0 = Debug|x64 {AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.Debug|x86.ActiveCfg = Debug|Win32 @@ -474,11 +502,13 @@ Global {AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.Release|x86.Build.0 = Release|Win32 {1C959542-BAC2-4E55-9A6D-13251914CBB9}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {1C959542-BAC2-4E55-9A6D-13251914CBB9}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {1C959542-BAC2-4E55-9A6D-13251914CBB9}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {1C959542-BAC2-4E55-9A6D-13251914CBB9}.AuditMode|x64.ActiveCfg = Release|x64 {1C959542-BAC2-4E55-9A6D-13251914CBB9}.AuditMode|x86.ActiveCfg = Release|Win32 {1C959542-BAC2-4E55-9A6D-13251914CBB9}.Debug|Any CPU.ActiveCfg = Debug|Win32 {1C959542-BAC2-4E55-9A6D-13251914CBB9}.Debug|ARM64.ActiveCfg = Debug|ARM64 {1C959542-BAC2-4E55-9A6D-13251914CBB9}.Debug|ARM64.Build.0 = Debug|ARM64 + {1C959542-BAC2-4E55-9A6D-13251914CBB9}.Debug|NET_Test.ActiveCfg = Debug|Win32 {1C959542-BAC2-4E55-9A6D-13251914CBB9}.Debug|x64.ActiveCfg = Debug|x64 {1C959542-BAC2-4E55-9A6D-13251914CBB9}.Debug|x64.Build.0 = Debug|x64 {1C959542-BAC2-4E55-9A6D-13251914CBB9}.Debug|x86.ActiveCfg = Debug|Win32 @@ -492,11 +522,13 @@ Global {1C959542-BAC2-4E55-9A6D-13251914CBB9}.Release|x86.Build.0 = Release|Win32 {06EC74CB-9A12-429C-B551-8562EC954746}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {06EC74CB-9A12-429C-B551-8562EC954746}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {06EC74CB-9A12-429C-B551-8562EC954746}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {06EC74CB-9A12-429C-B551-8562EC954746}.AuditMode|x64.ActiveCfg = Release|x64 {06EC74CB-9A12-429C-B551-8562EC954746}.AuditMode|x86.ActiveCfg = Release|Win32 {06EC74CB-9A12-429C-B551-8562EC954746}.Debug|Any CPU.ActiveCfg = Debug|Win32 {06EC74CB-9A12-429C-B551-8562EC954746}.Debug|ARM64.ActiveCfg = Debug|ARM64 {06EC74CB-9A12-429C-B551-8562EC954746}.Debug|ARM64.Build.0 = Debug|ARM64 + {06EC74CB-9A12-429C-B551-8562EC954746}.Debug|NET_Test.ActiveCfg = Debug|Win32 {06EC74CB-9A12-429C-B551-8562EC954746}.Debug|x64.ActiveCfg = Debug|x64 {06EC74CB-9A12-429C-B551-8562EC954746}.Debug|x64.Build.0 = Debug|x64 {06EC74CB-9A12-429C-B551-8562EC954746}.Debug|x86.ActiveCfg = Debug|Win32 @@ -510,11 +542,13 @@ Global {06EC74CB-9A12-429C-B551-8562EC954746}.Release|x86.Build.0 = Release|Win32 {06EC74CB-9A12-429C-B551-8562EC954747}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {06EC74CB-9A12-429C-B551-8562EC954747}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {06EC74CB-9A12-429C-B551-8562EC954747}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {06EC74CB-9A12-429C-B551-8562EC954747}.AuditMode|x64.ActiveCfg = Release|x64 {06EC74CB-9A12-429C-B551-8562EC954747}.AuditMode|x86.ActiveCfg = Release|Win32 {06EC74CB-9A12-429C-B551-8562EC954747}.Debug|Any CPU.ActiveCfg = Debug|Win32 {06EC74CB-9A12-429C-B551-8562EC954747}.Debug|ARM64.ActiveCfg = Debug|ARM64 {06EC74CB-9A12-429C-B551-8562EC954747}.Debug|ARM64.Build.0 = Debug|ARM64 + {06EC74CB-9A12-429C-B551-8562EC954747}.Debug|NET_Test.ActiveCfg = Debug|Win32 {06EC74CB-9A12-429C-B551-8562EC954747}.Debug|x64.ActiveCfg = Debug|x64 {06EC74CB-9A12-429C-B551-8562EC954747}.Debug|x64.Build.0 = Debug|x64 {06EC74CB-9A12-429C-B551-8562EC954747}.Debug|x86.ActiveCfg = Debug|Win32 @@ -528,11 +562,13 @@ Global {06EC74CB-9A12-429C-B551-8562EC954747}.Release|x86.Build.0 = Release|Win32 {531C23E7-4B76-4C08-8AAD-04164CB628C9}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {531C23E7-4B76-4C08-8AAD-04164CB628C9}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {531C23E7-4B76-4C08-8AAD-04164CB628C9}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {531C23E7-4B76-4C08-8AAD-04164CB628C9}.AuditMode|x64.ActiveCfg = Release|x64 {531C23E7-4B76-4C08-8AAD-04164CB628C9}.AuditMode|x86.ActiveCfg = Release|Win32 {531C23E7-4B76-4C08-8AAD-04164CB628C9}.Debug|Any CPU.ActiveCfg = Debug|Win32 {531C23E7-4B76-4C08-8AAD-04164CB628C9}.Debug|ARM64.ActiveCfg = Debug|ARM64 {531C23E7-4B76-4C08-8AAD-04164CB628C9}.Debug|ARM64.Build.0 = Debug|ARM64 + {531C23E7-4B76-4C08-8AAD-04164CB628C9}.Debug|NET_Test.ActiveCfg = Debug|Win32 {531C23E7-4B76-4C08-8AAD-04164CB628C9}.Debug|x64.ActiveCfg = Debug|x64 {531C23E7-4B76-4C08-8AAD-04164CB628C9}.Debug|x64.Build.0 = Debug|x64 {531C23E7-4B76-4C08-8AAD-04164CB628C9}.Debug|x86.ActiveCfg = Debug|Win32 @@ -546,11 +582,13 @@ Global {531C23E7-4B76-4C08-8AAD-04164CB628C9}.Release|x86.Build.0 = Release|Win32 {531C23E7-4B76-4C08-8BBD-04164CB628C9}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {531C23E7-4B76-4C08-8BBD-04164CB628C9}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {531C23E7-4B76-4C08-8BBD-04164CB628C9}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {531C23E7-4B76-4C08-8BBD-04164CB628C9}.AuditMode|x64.ActiveCfg = Release|x64 {531C23E7-4B76-4C08-8BBD-04164CB628C9}.AuditMode|x86.ActiveCfg = Release|Win32 {531C23E7-4B76-4C08-8BBD-04164CB628C9}.Debug|Any CPU.ActiveCfg = Debug|Win32 {531C23E7-4B76-4C08-8BBD-04164CB628C9}.Debug|ARM64.ActiveCfg = Debug|ARM64 {531C23E7-4B76-4C08-8BBD-04164CB628C9}.Debug|ARM64.Build.0 = Debug|ARM64 + {531C23E7-4B76-4C08-8BBD-04164CB628C9}.Debug|NET_Test.ActiveCfg = Debug|Win32 {531C23E7-4B76-4C08-8BBD-04164CB628C9}.Debug|x64.ActiveCfg = Debug|x64 {531C23E7-4B76-4C08-8BBD-04164CB628C9}.Debug|x64.Build.0 = Debug|x64 {531C23E7-4B76-4C08-8BBD-04164CB628C9}.Debug|x86.ActiveCfg = Debug|Win32 @@ -564,11 +602,13 @@ Global {531C23E7-4B76-4C08-8BBD-04164CB628C9}.Release|x86.Build.0 = Release|Win32 {8CDB8850-7484-4EC7-B45B-181F85B2EE54}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {8CDB8850-7484-4EC7-B45B-181F85B2EE54}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {8CDB8850-7484-4EC7-B45B-181F85B2EE54}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {8CDB8850-7484-4EC7-B45B-181F85B2EE54}.AuditMode|x64.ActiveCfg = Release|x64 {8CDB8850-7484-4EC7-B45B-181F85B2EE54}.AuditMode|x86.ActiveCfg = Release|Win32 {8CDB8850-7484-4EC7-B45B-181F85B2EE54}.Debug|Any CPU.ActiveCfg = Debug|Win32 {8CDB8850-7484-4EC7-B45B-181F85B2EE54}.Debug|ARM64.ActiveCfg = Debug|ARM64 {8CDB8850-7484-4EC7-B45B-181F85B2EE54}.Debug|ARM64.Build.0 = Debug|ARM64 + {8CDB8850-7484-4EC7-B45B-181F85B2EE54}.Debug|NET_Test.ActiveCfg = Debug|Win32 {8CDB8850-7484-4EC7-B45B-181F85B2EE54}.Debug|x64.ActiveCfg = Debug|x64 {8CDB8850-7484-4EC7-B45B-181F85B2EE54}.Debug|x64.Build.0 = Debug|x64 {8CDB8850-7484-4EC7-B45B-181F85B2EE54}.Debug|x86.ActiveCfg = Debug|Win32 @@ -580,11 +620,13 @@ Global {8CDB8850-7484-4EC7-B45B-181F85B2EE54}.Release|x86.ActiveCfg = Release|Win32 {12144E07-FE63-4D33-9231-748B8D8C3792}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {12144E07-FE63-4D33-9231-748B8D8C3792}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {12144E07-FE63-4D33-9231-748B8D8C3792}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {12144E07-FE63-4D33-9231-748B8D8C3792}.AuditMode|x64.ActiveCfg = Release|x64 {12144E07-FE63-4D33-9231-748B8D8C3792}.AuditMode|x86.ActiveCfg = Release|Win32 {12144E07-FE63-4D33-9231-748B8D8C3792}.Debug|Any CPU.ActiveCfg = Debug|Win32 {12144E07-FE63-4D33-9231-748B8D8C3792}.Debug|ARM64.ActiveCfg = Debug|ARM64 {12144E07-FE63-4D33-9231-748B8D8C3792}.Debug|ARM64.Build.0 = Debug|ARM64 + {12144E07-FE63-4D33-9231-748B8D8C3792}.Debug|NET_Test.ActiveCfg = Debug|Win32 {12144E07-FE63-4D33-9231-748B8D8C3792}.Debug|x64.ActiveCfg = Debug|x64 {12144E07-FE63-4D33-9231-748B8D8C3792}.Debug|x64.Build.0 = Debug|x64 {12144E07-FE63-4D33-9231-748B8D8C3792}.Debug|x86.ActiveCfg = Debug|Win32 @@ -598,11 +640,13 @@ Global {12144E07-FE63-4D33-9231-748B8D8C3792}.Release|x86.Build.0 = Release|Win32 {6AF01638-84CF-4B65-9870-484DFFCAC772}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {6AF01638-84CF-4B65-9870-484DFFCAC772}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {6AF01638-84CF-4B65-9870-484DFFCAC772}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {6AF01638-84CF-4B65-9870-484DFFCAC772}.AuditMode|x64.ActiveCfg = Release|x64 {6AF01638-84CF-4B65-9870-484DFFCAC772}.AuditMode|x86.ActiveCfg = Release|Win32 {6AF01638-84CF-4B65-9870-484DFFCAC772}.Debug|Any CPU.ActiveCfg = Debug|Win32 {6AF01638-84CF-4B65-9870-484DFFCAC772}.Debug|ARM64.ActiveCfg = Debug|ARM64 {6AF01638-84CF-4B65-9870-484DFFCAC772}.Debug|ARM64.Build.0 = Debug|ARM64 + {6AF01638-84CF-4B65-9870-484DFFCAC772}.Debug|NET_Test.ActiveCfg = Debug|Win32 {6AF01638-84CF-4B65-9870-484DFFCAC772}.Debug|x64.ActiveCfg = Debug|x64 {6AF01638-84CF-4B65-9870-484DFFCAC772}.Debug|x64.Build.0 = Debug|x64 {6AF01638-84CF-4B65-9870-484DFFCAC772}.Debug|x86.ActiveCfg = Debug|Win32 @@ -616,11 +660,13 @@ Global {6AF01638-84CF-4B65-9870-484DFFCAC772}.Release|x86.Build.0 = Release|Win32 {96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.AuditMode|x64.ActiveCfg = Release|x64 {96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.AuditMode|x86.ActiveCfg = Release|Win32 {96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.Debug|Any CPU.ActiveCfg = Debug|Win32 {96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.Debug|ARM64.ActiveCfg = Debug|ARM64 {96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.Debug|ARM64.Build.0 = Debug|ARM64 + {96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.Debug|NET_Test.ActiveCfg = Debug|Win32 {96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.Debug|x64.ActiveCfg = Debug|x64 {96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.Debug|x64.Build.0 = Debug|x64 {96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.Debug|x86.ActiveCfg = Debug|Win32 @@ -634,11 +680,13 @@ Global {96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.Release|x86.Build.0 = Release|Win32 {F210A4AE-E02A-4BFC-80BB-F50A672FE763}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {F210A4AE-E02A-4BFC-80BB-F50A672FE763}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {F210A4AE-E02A-4BFC-80BB-F50A672FE763}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {F210A4AE-E02A-4BFC-80BB-F50A672FE763}.AuditMode|x64.ActiveCfg = Release|x64 {F210A4AE-E02A-4BFC-80BB-F50A672FE763}.AuditMode|x86.ActiveCfg = Release|Win32 {F210A4AE-E02A-4BFC-80BB-F50A672FE763}.Debug|Any CPU.ActiveCfg = Debug|Win32 {F210A4AE-E02A-4BFC-80BB-F50A672FE763}.Debug|ARM64.ActiveCfg = Debug|ARM64 {F210A4AE-E02A-4BFC-80BB-F50A672FE763}.Debug|ARM64.Build.0 = Debug|ARM64 + {F210A4AE-E02A-4BFC-80BB-F50A672FE763}.Debug|NET_Test.ActiveCfg = Debug|Win32 {F210A4AE-E02A-4BFC-80BB-F50A672FE763}.Debug|x64.ActiveCfg = Debug|x64 {F210A4AE-E02A-4BFC-80BB-F50A672FE763}.Debug|x64.Build.0 = Debug|x64 {F210A4AE-E02A-4BFC-80BB-F50A672FE763}.Debug|x86.ActiveCfg = Debug|Win32 @@ -652,11 +700,13 @@ Global {F210A4AE-E02A-4BFC-80BB-F50A672FE763}.Release|x86.Build.0 = Release|Win32 {5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.AuditMode|x64.ActiveCfg = Release|x64 {5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.AuditMode|x86.ActiveCfg = Release|Win32 {5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.Debug|Any CPU.ActiveCfg = Debug|Win32 {5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.Debug|ARM64.ActiveCfg = Debug|ARM64 {5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.Debug|ARM64.Build.0 = Debug|ARM64 + {5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.Debug|NET_Test.ActiveCfg = Debug|Win32 {5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.Debug|x64.ActiveCfg = Debug|x64 {5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.Debug|x64.Build.0 = Debug|x64 {5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.Debug|x86.ActiveCfg = Debug|Win32 @@ -670,11 +720,13 @@ Global {5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.Release|x86.Build.0 = Release|Win32 {18D09A24-8240-42D6-8CB6-236EEE820262}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {18D09A24-8240-42D6-8CB6-236EEE820262}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {18D09A24-8240-42D6-8CB6-236EEE820262}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {18D09A24-8240-42D6-8CB6-236EEE820262}.AuditMode|x64.ActiveCfg = Release|x64 {18D09A24-8240-42D6-8CB6-236EEE820262}.AuditMode|x86.ActiveCfg = Release|Win32 {18D09A24-8240-42D6-8CB6-236EEE820262}.Debug|Any CPU.ActiveCfg = Debug|Win32 {18D09A24-8240-42D6-8CB6-236EEE820262}.Debug|ARM64.ActiveCfg = Debug|ARM64 {18D09A24-8240-42D6-8CB6-236EEE820262}.Debug|ARM64.Build.0 = Debug|ARM64 + {18D09A24-8240-42D6-8CB6-236EEE820262}.Debug|NET_Test.ActiveCfg = Debug|Win32 {18D09A24-8240-42D6-8CB6-236EEE820262}.Debug|x64.ActiveCfg = Debug|x64 {18D09A24-8240-42D6-8CB6-236EEE820262}.Debug|x64.Build.0 = Debug|x64 {18D09A24-8240-42D6-8CB6-236EEE820262}.Debug|x86.ActiveCfg = Debug|Win32 @@ -688,10 +740,12 @@ Global {18D09A24-8240-42D6-8CB6-236EEE820262}.Release|x86.Build.0 = Release|Win32 {C17E1BF3-9D34-4779-9458-A8EF98CC5662}.AuditMode|Any CPU.ActiveCfg = Debug|ARM64 {C17E1BF3-9D34-4779-9458-A8EF98CC5662}.AuditMode|ARM64.ActiveCfg = Debug|Win32 + {C17E1BF3-9D34-4779-9458-A8EF98CC5662}.AuditMode|NET_Test.ActiveCfg = Debug|ARM64 {C17E1BF3-9D34-4779-9458-A8EF98CC5662}.AuditMode|x64.ActiveCfg = Release|x64 {C17E1BF3-9D34-4779-9458-A8EF98CC5662}.AuditMode|x86.ActiveCfg = Release|Win32 {C17E1BF3-9D34-4779-9458-A8EF98CC5662}.Debug|Any CPU.ActiveCfg = Debug|Win32 {C17E1BF3-9D34-4779-9458-A8EF98CC5662}.Debug|ARM64.ActiveCfg = Debug|Win32 + {C17E1BF3-9D34-4779-9458-A8EF98CC5662}.Debug|NET_Test.ActiveCfg = Debug|Win32 {C17E1BF3-9D34-4779-9458-A8EF98CC5662}.Debug|x64.ActiveCfg = Debug|x64 {C17E1BF3-9D34-4779-9458-A8EF98CC5662}.Debug|x64.Build.0 = Debug|x64 {C17E1BF3-9D34-4779-9458-A8EF98CC5662}.Debug|x86.ActiveCfg = Debug|Win32 @@ -704,10 +758,12 @@ Global {C17E1BF3-9D34-4779-9458-A8EF98CC5662}.Release|x86.Build.0 = Release|Win32 {099193A0-1E43-4BBC-BA7F-7B351E1342DF}.AuditMode|Any CPU.ActiveCfg = Debug|ARM64 {099193A0-1E43-4BBC-BA7F-7B351E1342DF}.AuditMode|ARM64.ActiveCfg = Debug|Win32 + {099193A0-1E43-4BBC-BA7F-7B351E1342DF}.AuditMode|NET_Test.ActiveCfg = Debug|ARM64 {099193A0-1E43-4BBC-BA7F-7B351E1342DF}.AuditMode|x64.ActiveCfg = Release|x64 {099193A0-1E43-4BBC-BA7F-7B351E1342DF}.AuditMode|x86.ActiveCfg = Release|Win32 {099193A0-1E43-4BBC-BA7F-7B351E1342DF}.Debug|Any CPU.ActiveCfg = Debug|Win32 {099193A0-1E43-4BBC-BA7F-7B351E1342DF}.Debug|ARM64.ActiveCfg = Debug|Win32 + {099193A0-1E43-4BBC-BA7F-7B351E1342DF}.Debug|NET_Test.ActiveCfg = Debug|Win32 {099193A0-1E43-4BBC-BA7F-7B351E1342DF}.Debug|x64.ActiveCfg = Debug|x64 {099193A0-1E43-4BBC-BA7F-7B351E1342DF}.Debug|x64.Build.0 = Debug|x64 {099193A0-1E43-4BBC-BA7F-7B351E1342DF}.Debug|x86.ActiveCfg = Debug|Win32 @@ -720,11 +776,13 @@ Global {099193A0-1E43-4BBC-BA7F-7B351E1342DF}.Release|x86.Build.0 = Release|Win32 {FC802440-AD6A-4919-8F2C-7701F2B38D79}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {FC802440-AD6A-4919-8F2C-7701F2B38D79}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {FC802440-AD6A-4919-8F2C-7701F2B38D79}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {FC802440-AD6A-4919-8F2C-7701F2B38D79}.AuditMode|x64.ActiveCfg = Release|x64 {FC802440-AD6A-4919-8F2C-7701F2B38D79}.AuditMode|x86.ActiveCfg = Release|Win32 {FC802440-AD6A-4919-8F2C-7701F2B38D79}.Debug|Any CPU.ActiveCfg = Debug|Win32 {FC802440-AD6A-4919-8F2C-7701F2B38D79}.Debug|ARM64.ActiveCfg = Debug|ARM64 {FC802440-AD6A-4919-8F2C-7701F2B38D79}.Debug|ARM64.Build.0 = Debug|ARM64 + {FC802440-AD6A-4919-8F2C-7701F2B38D79}.Debug|NET_Test.ActiveCfg = Debug|Win32 {FC802440-AD6A-4919-8F2C-7701F2B38D79}.Debug|x64.ActiveCfg = Debug|x64 {FC802440-AD6A-4919-8F2C-7701F2B38D79}.Debug|x64.Build.0 = Debug|x64 {FC802440-AD6A-4919-8F2C-7701F2B38D79}.Debug|x86.ActiveCfg = Debug|Win32 @@ -738,11 +796,13 @@ Global {FC802440-AD6A-4919-8F2C-7701F2B38D79}.Release|x86.Build.0 = Release|Win32 {919544AC-D39B-463F-8414-3C3C67CF727C}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {919544AC-D39B-463F-8414-3C3C67CF727C}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {919544AC-D39B-463F-8414-3C3C67CF727C}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {919544AC-D39B-463F-8414-3C3C67CF727C}.AuditMode|x64.ActiveCfg = Release|x64 {919544AC-D39B-463F-8414-3C3C67CF727C}.AuditMode|x86.ActiveCfg = Release|Win32 {919544AC-D39B-463F-8414-3C3C67CF727C}.Debug|Any CPU.ActiveCfg = Debug|Win32 {919544AC-D39B-463F-8414-3C3C67CF727C}.Debug|ARM64.ActiveCfg = Debug|ARM64 {919544AC-D39B-463F-8414-3C3C67CF727C}.Debug|ARM64.Build.0 = Debug|ARM64 + {919544AC-D39B-463F-8414-3C3C67CF727C}.Debug|NET_Test.ActiveCfg = Debug|Win32 {919544AC-D39B-463F-8414-3C3C67CF727C}.Debug|x64.ActiveCfg = Debug|x64 {919544AC-D39B-463F-8414-3C3C67CF727C}.Debug|x64.Build.0 = Debug|x64 {919544AC-D39B-463F-8414-3C3C67CF727C}.Debug|x86.ActiveCfg = Debug|Win32 @@ -756,11 +816,13 @@ Global {919544AC-D39B-463F-8414-3C3C67CF727C}.Release|x86.Build.0 = Release|Win32 {ED82003F-FC5D-4E94-8B36-F480018ED064}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {ED82003F-FC5D-4E94-8B36-F480018ED064}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {ED82003F-FC5D-4E94-8B36-F480018ED064}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {ED82003F-FC5D-4E94-8B36-F480018ED064}.AuditMode|x64.ActiveCfg = Release|x64 {ED82003F-FC5D-4E94-8B36-F480018ED064}.AuditMode|x86.ActiveCfg = Release|Win32 {ED82003F-FC5D-4E94-8B36-F480018ED064}.Debug|Any CPU.ActiveCfg = Debug|Win32 {ED82003F-FC5D-4E94-8B36-F480018ED064}.Debug|ARM64.ActiveCfg = Debug|ARM64 {ED82003F-FC5D-4E94-8B36-F480018ED064}.Debug|ARM64.Build.0 = Debug|ARM64 + {ED82003F-FC5D-4E94-8B36-F480018ED064}.Debug|NET_Test.ActiveCfg = Debug|Win32 {ED82003F-FC5D-4E94-8B36-F480018ED064}.Debug|x64.ActiveCfg = Debug|x64 {ED82003F-FC5D-4E94-8B36-F480018ED064}.Debug|x64.Build.0 = Debug|x64 {ED82003F-FC5D-4E94-8B36-F480018ED064}.Debug|x86.ActiveCfg = Debug|Win32 @@ -774,11 +836,13 @@ Global {ED82003F-FC5D-4E94-8B36-F480018ED064}.Release|x86.Build.0 = Release|Win32 {06EC74CB-9A12-429C-B551-8532EC964726}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {06EC74CB-9A12-429C-B551-8532EC964726}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {06EC74CB-9A12-429C-B551-8532EC964726}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {06EC74CB-9A12-429C-B551-8532EC964726}.AuditMode|x64.ActiveCfg = Release|x64 {06EC74CB-9A12-429C-B551-8532EC964726}.AuditMode|x86.ActiveCfg = Release|Win32 {06EC74CB-9A12-429C-B551-8532EC964726}.Debug|Any CPU.ActiveCfg = Debug|Win32 {06EC74CB-9A12-429C-B551-8532EC964726}.Debug|ARM64.ActiveCfg = Debug|ARM64 {06EC74CB-9A12-429C-B551-8532EC964726}.Debug|ARM64.Build.0 = Debug|ARM64 + {06EC74CB-9A12-429C-B551-8532EC964726}.Debug|NET_Test.ActiveCfg = Debug|Win32 {06EC74CB-9A12-429C-B551-8532EC964726}.Debug|x64.ActiveCfg = Debug|x64 {06EC74CB-9A12-429C-B551-8532EC964726}.Debug|x64.Build.0 = Debug|x64 {06EC74CB-9A12-429C-B551-8532EC964726}.Debug|x86.ActiveCfg = Debug|Win32 @@ -792,11 +856,13 @@ Global {06EC74CB-9A12-429C-B551-8532EC964726}.Release|x86.Build.0 = Release|Win32 {ED82003F-FC5D-4E94-8B47-F480018ED064}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {ED82003F-FC5D-4E94-8B47-F480018ED064}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {ED82003F-FC5D-4E94-8B47-F480018ED064}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {ED82003F-FC5D-4E94-8B47-F480018ED064}.AuditMode|x64.ActiveCfg = Release|x64 {ED82003F-FC5D-4E94-8B47-F480018ED064}.AuditMode|x86.ActiveCfg = Release|Win32 {ED82003F-FC5D-4E94-8B47-F480018ED064}.Debug|Any CPU.ActiveCfg = Debug|Win32 {ED82003F-FC5D-4E94-8B47-F480018ED064}.Debug|ARM64.ActiveCfg = Debug|ARM64 {ED82003F-FC5D-4E94-8B47-F480018ED064}.Debug|ARM64.Build.0 = Debug|ARM64 + {ED82003F-FC5D-4E94-8B47-F480018ED064}.Debug|NET_Test.ActiveCfg = Debug|Win32 {ED82003F-FC5D-4E94-8B47-F480018ED064}.Debug|x64.ActiveCfg = Debug|x64 {ED82003F-FC5D-4E94-8B47-F480018ED064}.Debug|x64.Build.0 = Debug|x64 {ED82003F-FC5D-4E94-8B47-F480018ED064}.Debug|x86.ActiveCfg = Debug|Win32 @@ -810,11 +876,13 @@ Global {ED82003F-FC5D-4E94-8B47-F480018ED064}.Release|x86.Build.0 = Release|Win32 {06EC74CB-9A12-429C-B551-8562EC964846}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {06EC74CB-9A12-429C-B551-8562EC964846}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {06EC74CB-9A12-429C-B551-8562EC964846}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {06EC74CB-9A12-429C-B551-8562EC964846}.AuditMode|x64.ActiveCfg = Release|x64 {06EC74CB-9A12-429C-B551-8562EC964846}.AuditMode|x86.ActiveCfg = Release|Win32 {06EC74CB-9A12-429C-B551-8562EC964846}.Debug|Any CPU.ActiveCfg = Debug|Win32 {06EC74CB-9A12-429C-B551-8562EC964846}.Debug|ARM64.ActiveCfg = Debug|ARM64 {06EC74CB-9A12-429C-B551-8562EC964846}.Debug|ARM64.Build.0 = Debug|ARM64 + {06EC74CB-9A12-429C-B551-8562EC964846}.Debug|NET_Test.ActiveCfg = Debug|Win32 {06EC74CB-9A12-429C-B551-8562EC964846}.Debug|x64.ActiveCfg = Debug|x64 {06EC74CB-9A12-429C-B551-8562EC964846}.Debug|x64.Build.0 = Debug|x64 {06EC74CB-9A12-429C-B551-8562EC964846}.Debug|x86.ActiveCfg = Debug|Win32 @@ -828,11 +896,13 @@ Global {06EC74CB-9A12-429C-B551-8562EC964846}.Release|x86.Build.0 = Release|Win32 {D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.AuditMode|x64.ActiveCfg = Release|x64 {D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.AuditMode|x86.ActiveCfg = Release|Win32 {D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.Debug|Any CPU.ActiveCfg = Debug|Win32 {D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.Debug|ARM64.ActiveCfg = Debug|ARM64 {D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.Debug|ARM64.Build.0 = Debug|ARM64 + {D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.Debug|NET_Test.ActiveCfg = Debug|Win32 {D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.Debug|x64.ActiveCfg = Debug|x64 {D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.Debug|x64.Build.0 = Debug|x64 {D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.Debug|x86.ActiveCfg = Debug|Win32 @@ -846,11 +916,13 @@ Global {D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.Release|x86.Build.0 = Release|Win32 {C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.AuditMode|x64.ActiveCfg = Release|x64 {C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.AuditMode|x86.ActiveCfg = Release|Win32 {C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.Debug|Any CPU.ActiveCfg = Debug|Win32 {C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.Debug|ARM64.ActiveCfg = Debug|ARM64 {C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.Debug|ARM64.Build.0 = Debug|ARM64 + {C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.Debug|NET_Test.ActiveCfg = Debug|Win32 {C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.Debug|x64.ActiveCfg = Debug|x64 {C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.Debug|x64.Build.0 = Debug|x64 {C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.Debug|x86.ActiveCfg = Debug|Win32 @@ -864,11 +936,13 @@ Global {C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.Release|x86.Build.0 = Release|Win32 {990F2657-8580-4828-943F-5DD657D11842}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {990F2657-8580-4828-943F-5DD657D11842}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {990F2657-8580-4828-943F-5DD657D11842}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {990F2657-8580-4828-943F-5DD657D11842}.AuditMode|x64.ActiveCfg = Release|x64 {990F2657-8580-4828-943F-5DD657D11842}.AuditMode|x86.ActiveCfg = Release|Win32 {990F2657-8580-4828-943F-5DD657D11842}.Debug|Any CPU.ActiveCfg = Debug|Win32 {990F2657-8580-4828-943F-5DD657D11842}.Debug|ARM64.ActiveCfg = Debug|ARM64 {990F2657-8580-4828-943F-5DD657D11842}.Debug|ARM64.Build.0 = Debug|ARM64 + {990F2657-8580-4828-943F-5DD657D11842}.Debug|NET_Test.ActiveCfg = Debug|Win32 {990F2657-8580-4828-943F-5DD657D11842}.Debug|x64.ActiveCfg = Debug|x64 {990F2657-8580-4828-943F-5DD657D11842}.Debug|x64.Build.0 = Debug|x64 {990F2657-8580-4828-943F-5DD657D11842}.Debug|x86.ActiveCfg = Debug|Win32 @@ -882,11 +956,13 @@ Global {990F2657-8580-4828-943F-5DD657D11842}.Release|x86.Build.0 = Release|Win32 {814DBDDE-894E-4327-A6E1-740504850098}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {814DBDDE-894E-4327-A6E1-740504850098}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {814DBDDE-894E-4327-A6E1-740504850098}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {814DBDDE-894E-4327-A6E1-740504850098}.AuditMode|x64.ActiveCfg = Release|x64 {814DBDDE-894E-4327-A6E1-740504850098}.AuditMode|x86.ActiveCfg = Release|Win32 {814DBDDE-894E-4327-A6E1-740504850098}.Debug|Any CPU.ActiveCfg = Debug|Win32 {814DBDDE-894E-4327-A6E1-740504850098}.Debug|ARM64.ActiveCfg = Debug|ARM64 {814DBDDE-894E-4327-A6E1-740504850098}.Debug|ARM64.Build.0 = Debug|ARM64 + {814DBDDE-894E-4327-A6E1-740504850098}.Debug|NET_Test.ActiveCfg = Debug|Win32 {814DBDDE-894E-4327-A6E1-740504850098}.Debug|x64.ActiveCfg = Debug|x64 {814DBDDE-894E-4327-A6E1-740504850098}.Debug|x64.Build.0 = Debug|x64 {814DBDDE-894E-4327-A6E1-740504850098}.Debug|x86.ActiveCfg = Debug|Win32 @@ -900,11 +976,13 @@ Global {814DBDDE-894E-4327-A6E1-740504850098}.Release|x86.Build.0 = Release|Win32 {814CBEEE-894E-4327-A6E1-740504850098}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {814CBEEE-894E-4327-A6E1-740504850098}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {814CBEEE-894E-4327-A6E1-740504850098}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {814CBEEE-894E-4327-A6E1-740504850098}.AuditMode|x64.ActiveCfg = Release|x64 {814CBEEE-894E-4327-A6E1-740504850098}.AuditMode|x86.ActiveCfg = Release|Win32 {814CBEEE-894E-4327-A6E1-740504850098}.Debug|Any CPU.ActiveCfg = Debug|Win32 {814CBEEE-894E-4327-A6E1-740504850098}.Debug|ARM64.ActiveCfg = Debug|ARM64 {814CBEEE-894E-4327-A6E1-740504850098}.Debug|ARM64.Build.0 = Debug|ARM64 + {814CBEEE-894E-4327-A6E1-740504850098}.Debug|NET_Test.ActiveCfg = Debug|Win32 {814CBEEE-894E-4327-A6E1-740504850098}.Debug|x64.ActiveCfg = Debug|x64 {814CBEEE-894E-4327-A6E1-740504850098}.Debug|x64.Build.0 = Debug|x64 {814CBEEE-894E-4327-A6E1-740504850098}.Debug|x86.ActiveCfg = Debug|Win32 @@ -919,6 +997,7 @@ Global {18D09A24-8240-42D6-8CB6-236EEE820263}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {18D09A24-8240-42D6-8CB6-236EEE820263}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64 {18D09A24-8240-42D6-8CB6-236EEE820263}.AuditMode|ARM64.Build.0 = AuditMode|ARM64 + {18D09A24-8240-42D6-8CB6-236EEE820263}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {18D09A24-8240-42D6-8CB6-236EEE820263}.AuditMode|x64.ActiveCfg = AuditMode|x64 {18D09A24-8240-42D6-8CB6-236EEE820263}.AuditMode|x64.Build.0 = AuditMode|x64 {18D09A24-8240-42D6-8CB6-236EEE820263}.AuditMode|x86.ActiveCfg = AuditMode|Win32 @@ -926,6 +1005,8 @@ Global {18D09A24-8240-42D6-8CB6-236EEE820263}.Debug|Any CPU.ActiveCfg = Debug|Win32 {18D09A24-8240-42D6-8CB6-236EEE820263}.Debug|ARM64.ActiveCfg = Debug|ARM64 {18D09A24-8240-42D6-8CB6-236EEE820263}.Debug|ARM64.Build.0 = Debug|ARM64 + {18D09A24-8240-42D6-8CB6-236EEE820263}.Debug|NET_Test.ActiveCfg = Debug|x64 + {18D09A24-8240-42D6-8CB6-236EEE820263}.Debug|NET_Test.Build.0 = Debug|x64 {18D09A24-8240-42D6-8CB6-236EEE820263}.Debug|x64.ActiveCfg = Debug|x64 {18D09A24-8240-42D6-8CB6-236EEE820263}.Debug|x64.Build.0 = Debug|x64 {18D09A24-8240-42D6-8CB6-236EEE820263}.Debug|x86.ActiveCfg = Debug|Win32 @@ -939,11 +1020,13 @@ Global {18D09A24-8240-42D6-8CB6-236EEE820263}.Release|x86.Build.0 = Release|Win32 {990F2657-8580-4828-943F-5DD657D11843}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {990F2657-8580-4828-943F-5DD657D11843}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {990F2657-8580-4828-943F-5DD657D11843}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {990F2657-8580-4828-943F-5DD657D11843}.AuditMode|x64.ActiveCfg = Release|x64 {990F2657-8580-4828-943F-5DD657D11843}.AuditMode|x86.ActiveCfg = Release|Win32 {990F2657-8580-4828-943F-5DD657D11843}.Debug|Any CPU.ActiveCfg = Debug|Win32 {990F2657-8580-4828-943F-5DD657D11843}.Debug|ARM64.ActiveCfg = Debug|ARM64 {990F2657-8580-4828-943F-5DD657D11843}.Debug|ARM64.Build.0 = Debug|ARM64 + {990F2657-8580-4828-943F-5DD657D11843}.Debug|NET_Test.ActiveCfg = Debug|Win32 {990F2657-8580-4828-943F-5DD657D11843}.Debug|x64.ActiveCfg = Debug|x64 {990F2657-8580-4828-943F-5DD657D11843}.Debug|x64.Build.0 = Debug|x64 {990F2657-8580-4828-943F-5DD657D11843}.Debug|x86.ActiveCfg = Debug|Win32 @@ -958,6 +1041,7 @@ Global {0CF235BD-2DA0-407E-90EE-C467E8BBC714}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {0CF235BD-2DA0-407E-90EE-C467E8BBC714}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64 {0CF235BD-2DA0-407E-90EE-C467E8BBC714}.AuditMode|ARM64.Build.0 = AuditMode|ARM64 + {0CF235BD-2DA0-407E-90EE-C467E8BBC714}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {0CF235BD-2DA0-407E-90EE-C467E8BBC714}.AuditMode|x64.ActiveCfg = AuditMode|x64 {0CF235BD-2DA0-407E-90EE-C467E8BBC714}.AuditMode|x64.Build.0 = AuditMode|x64 {0CF235BD-2DA0-407E-90EE-C467E8BBC714}.AuditMode|x86.ActiveCfg = AuditMode|Win32 @@ -965,6 +1049,8 @@ Global {0CF235BD-2DA0-407E-90EE-C467E8BBC714}.Debug|Any CPU.ActiveCfg = Debug|Win32 {0CF235BD-2DA0-407E-90EE-C467E8BBC714}.Debug|ARM64.ActiveCfg = Debug|ARM64 {0CF235BD-2DA0-407E-90EE-C467E8BBC714}.Debug|ARM64.Build.0 = Debug|ARM64 + {0CF235BD-2DA0-407E-90EE-C467E8BBC714}.Debug|NET_Test.ActiveCfg = Debug|x64 + {0CF235BD-2DA0-407E-90EE-C467E8BBC714}.Debug|NET_Test.Build.0 = Debug|x64 {0CF235BD-2DA0-407E-90EE-C467E8BBC714}.Debug|x64.ActiveCfg = Debug|x64 {0CF235BD-2DA0-407E-90EE-C467E8BBC714}.Debug|x64.Build.0 = Debug|x64 {0CF235BD-2DA0-407E-90EE-C467E8BBC714}.Debug|x86.ActiveCfg = Debug|Win32 @@ -979,6 +1065,7 @@ Global {48D21369-3D7B-4431-9967-24E81292CF62}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {48D21369-3D7B-4431-9967-24E81292CF62}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64 {48D21369-3D7B-4431-9967-24E81292CF62}.AuditMode|ARM64.Build.0 = AuditMode|ARM64 + {48D21369-3D7B-4431-9967-24E81292CF62}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {48D21369-3D7B-4431-9967-24E81292CF62}.AuditMode|x64.ActiveCfg = AuditMode|x64 {48D21369-3D7B-4431-9967-24E81292CF62}.AuditMode|x64.Build.0 = AuditMode|x64 {48D21369-3D7B-4431-9967-24E81292CF62}.AuditMode|x86.ActiveCfg = AuditMode|Win32 @@ -986,6 +1073,8 @@ Global {48D21369-3D7B-4431-9967-24E81292CF62}.Debug|Any CPU.ActiveCfg = Debug|Win32 {48D21369-3D7B-4431-9967-24E81292CF62}.Debug|ARM64.ActiveCfg = Debug|ARM64 {48D21369-3D7B-4431-9967-24E81292CF62}.Debug|ARM64.Build.0 = Debug|ARM64 + {48D21369-3D7B-4431-9967-24E81292CF62}.Debug|NET_Test.ActiveCfg = Debug|x64 + {48D21369-3D7B-4431-9967-24E81292CF62}.Debug|NET_Test.Build.0 = Debug|x64 {48D21369-3D7B-4431-9967-24E81292CF62}.Debug|x64.ActiveCfg = Debug|x64 {48D21369-3D7B-4431-9967-24E81292CF62}.Debug|x64.Build.0 = Debug|x64 {48D21369-3D7B-4431-9967-24E81292CF62}.Debug|x86.ActiveCfg = Debug|Win32 @@ -999,12 +1088,14 @@ Global {48D21369-3D7B-4431-9967-24E81292CF62}.Release|x86.Build.0 = Release|Win32 {CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.AuditMode|Any CPU.ActiveCfg = Debug|Win32 {CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.AuditMode|NET_Test.ActiveCfg = Debug|Win32 {CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.AuditMode|x64.ActiveCfg = AuditMode|x64 {CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.AuditMode|x64.Build.0 = AuditMode|x64 {CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.AuditMode|x86.ActiveCfg = Release|Win32 {CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.Debug|Any CPU.ActiveCfg = Debug|Win32 {CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.Debug|ARM64.ActiveCfg = Debug|ARM64 {CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.Debug|ARM64.Build.0 = Debug|ARM64 + {CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.Debug|NET_Test.ActiveCfg = Debug|Win32 {CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.Debug|x64.ActiveCfg = Debug|x64 {CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.Debug|x64.Build.0 = Debug|x64 {CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.Debug|x86.ActiveCfg = Debug|Win32 @@ -1018,12 +1109,15 @@ Global {CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.Release|x86.Build.0 = Release|Win32 {CA5CAD1A-ABCD-429C-B551-8562EC954746}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {CA5CAD1A-ABCD-429C-B551-8562EC954746}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {CA5CAD1A-ABCD-429C-B551-8562EC954746}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {CA5CAD1A-ABCD-429C-B551-8562EC954746}.AuditMode|x64.ActiveCfg = AuditMode|x64 {CA5CAD1A-ABCD-429C-B551-8562EC954746}.AuditMode|x64.Build.0 = AuditMode|x64 {CA5CAD1A-ABCD-429C-B551-8562EC954746}.AuditMode|x86.ActiveCfg = Release|Win32 {CA5CAD1A-ABCD-429C-B551-8562EC954746}.Debug|Any CPU.ActiveCfg = Debug|Win32 {CA5CAD1A-ABCD-429C-B551-8562EC954746}.Debug|ARM64.ActiveCfg = Debug|ARM64 {CA5CAD1A-ABCD-429C-B551-8562EC954746}.Debug|ARM64.Build.0 = Debug|ARM64 + {CA5CAD1A-ABCD-429C-B551-8562EC954746}.Debug|NET_Test.ActiveCfg = Debug|x64 + {CA5CAD1A-ABCD-429C-B551-8562EC954746}.Debug|NET_Test.Build.0 = Debug|x64 {CA5CAD1A-ABCD-429C-B551-8562EC954746}.Debug|x64.ActiveCfg = Debug|x64 {CA5CAD1A-ABCD-429C-B551-8562EC954746}.Debug|x64.Build.0 = Debug|x64 {CA5CAD1A-ABCD-429C-B551-8562EC954746}.Debug|x86.ActiveCfg = Debug|Win32 @@ -1037,11 +1131,13 @@ Global {CA5CAD1A-ABCD-429C-B551-8562EC954746}.Release|x86.Build.0 = Release|Win32 {CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.AuditMode|Any CPU.ActiveCfg = Debug|Win32 {CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.AuditMode|NET_Test.ActiveCfg = Debug|Win32 {CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.AuditMode|x64.ActiveCfg = Release|x64 {CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.AuditMode|x86.ActiveCfg = Release|Win32 {CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.Debug|Any CPU.ActiveCfg = Debug|Win32 {CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.Debug|ARM64.ActiveCfg = Debug|ARM64 {CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.Debug|ARM64.Build.0 = Debug|ARM64 + {CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.Debug|NET_Test.ActiveCfg = Debug|Win32 {CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.Debug|x64.ActiveCfg = Debug|x64 {CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.Debug|x64.Build.0 = Debug|x64 {CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.Debug|x86.ActiveCfg = Debug|Win32 @@ -1055,11 +1151,13 @@ Global {CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.Release|x86.Build.0 = Release|Win32 {CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.AuditMode|Any CPU.ActiveCfg = Debug|x64 {CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.AuditMode|NET_Test.ActiveCfg = Debug|x64 {CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.AuditMode|x64.ActiveCfg = Release|x64 {CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.AuditMode|x86.ActiveCfg = Release|Win32 {CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.Debug|Any CPU.ActiveCfg = Debug|Win32 {CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.Debug|ARM64.ActiveCfg = Debug|ARM64 {CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.Debug|ARM64.Build.0 = Debug|ARM64 + {CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.Debug|NET_Test.ActiveCfg = Debug|Win32 {CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.Debug|x64.ActiveCfg = Debug|x64 {CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.Debug|x64.Build.0 = Debug|x64 {CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.Debug|x86.ActiveCfg = Debug|Win32 @@ -1073,11 +1171,13 @@ Global {CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.Release|x86.Build.0 = Release|Win32 {CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.AuditMode|Any CPU.ActiveCfg = Debug|Win32 {CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.AuditMode|NET_Test.ActiveCfg = Debug|Win32 {CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.AuditMode|x64.ActiveCfg = Release|x64 {CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.AuditMode|x86.ActiveCfg = Release|Win32 {CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.Debug|Any CPU.ActiveCfg = Debug|Win32 {CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.Debug|ARM64.ActiveCfg = Debug|ARM64 {CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.Debug|ARM64.Build.0 = Debug|ARM64 + {CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.Debug|NET_Test.ActiveCfg = Debug|Win32 {CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.Debug|x64.ActiveCfg = Debug|x64 {CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.Debug|x64.Build.0 = Debug|x64 {CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.Debug|x86.ActiveCfg = Debug|Win32 @@ -1091,12 +1191,15 @@ Global {CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.Release|x86.Build.0 = Release|Win32 {CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.AuditMode|Any CPU.ActiveCfg = Debug|Win32 {CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.AuditMode|NET_Test.ActiveCfg = Debug|Win32 {CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.AuditMode|x64.ActiveCfg = AuditMode|x64 {CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.AuditMode|x64.Build.0 = AuditMode|x64 {CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.AuditMode|x86.ActiveCfg = Release|Win32 {CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.Debug|Any CPU.ActiveCfg = Debug|Win32 {CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.Debug|ARM64.ActiveCfg = Debug|ARM64 {CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.Debug|ARM64.Build.0 = Debug|ARM64 + {CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.Debug|NET_Test.ActiveCfg = Debug|x64 + {CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.Debug|NET_Test.Build.0 = Debug|x64 {CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.Debug|x64.ActiveCfg = Debug|x64 {CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.Debug|x64.Build.0 = Debug|x64 {CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.Debug|x86.ActiveCfg = Debug|Win32 @@ -1110,11 +1213,13 @@ Global {CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.Release|x86.Build.0 = Release|Win32 {2C2BEEF4-9333-4D05-B12A-1905CBF112F9}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {2C2BEEF4-9333-4D05-B12A-1905CBF112F9}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64 + {2C2BEEF4-9333-4D05-B12A-1905CBF112F9}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {2C2BEEF4-9333-4D05-B12A-1905CBF112F9}.AuditMode|x64.ActiveCfg = AuditMode|x64 {2C2BEEF4-9333-4D05-B12A-1905CBF112F9}.AuditMode|x86.ActiveCfg = AuditMode|Win32 {2C2BEEF4-9333-4D05-B12A-1905CBF112F9}.Debug|Any CPU.ActiveCfg = Debug|Win32 {2C2BEEF4-9333-4D05-B12A-1905CBF112F9}.Debug|ARM64.ActiveCfg = Debug|ARM64 {2C2BEEF4-9333-4D05-B12A-1905CBF112F9}.Debug|ARM64.Build.0 = Debug|ARM64 + {2C2BEEF4-9333-4D05-B12A-1905CBF112F9}.Debug|NET_Test.ActiveCfg = Debug|Win32 {2C2BEEF4-9333-4D05-B12A-1905CBF112F9}.Debug|x64.ActiveCfg = Debug|x64 {2C2BEEF4-9333-4D05-B12A-1905CBF112F9}.Debug|x64.Build.0 = Debug|x64 {2C2BEEF4-9333-4D05-B12A-1905CBF112F9}.Debug|x86.ActiveCfg = Debug|Win32 @@ -1129,6 +1234,7 @@ Global {EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64 {EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.AuditMode|ARM64.Build.0 = AuditMode|ARM64 + {EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.AuditMode|x64.ActiveCfg = AuditMode|x64 {EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.AuditMode|x64.Build.0 = AuditMode|x64 {EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.AuditMode|x86.ActiveCfg = AuditMode|Win32 @@ -1136,6 +1242,7 @@ Global {EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.Debug|Any CPU.ActiveCfg = Debug|Win32 {EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.Debug|ARM64.ActiveCfg = Debug|ARM64 {EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.Debug|ARM64.Build.0 = Debug|ARM64 + {EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.Debug|NET_Test.ActiveCfg = Debug|Win32 {EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.Debug|x64.ActiveCfg = Debug|x64 {EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.Debug|x64.Build.0 = Debug|x64 {EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.Debug|x86.ActiveCfg = Debug|Win32 @@ -1149,11 +1256,13 @@ Global {EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.Release|x86.Build.0 = Release|Win32 {34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64 + {34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.AuditMode|x64.ActiveCfg = AuditMode|x64 {34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.AuditMode|x86.ActiveCfg = AuditMode|Win32 {34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.Debug|Any CPU.ActiveCfg = Debug|Win32 {34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.Debug|ARM64.ActiveCfg = Debug|ARM64 {34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.Debug|ARM64.Build.0 = Debug|ARM64 + {34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.Debug|NET_Test.ActiveCfg = Debug|Win32 {34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.Debug|x64.ActiveCfg = Debug|x64 {34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.Debug|x64.Build.0 = Debug|x64 {34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.Debug|x86.ActiveCfg = Debug|Win32 @@ -1167,12 +1276,15 @@ Global {34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.Release|x86.Build.0 = Release|Win32 {84848BFA-931D-42CE-9ADF-01EE54DE7890}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {84848BFA-931D-42CE-9ADF-01EE54DE7890}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64 + {84848BFA-931D-42CE-9ADF-01EE54DE7890}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {84848BFA-931D-42CE-9ADF-01EE54DE7890}.AuditMode|x64.ActiveCfg = AuditMode|x64 {84848BFA-931D-42CE-9ADF-01EE54DE7890}.AuditMode|x64.Build.0 = AuditMode|x64 {84848BFA-931D-42CE-9ADF-01EE54DE7890}.AuditMode|x86.ActiveCfg = AuditMode|Win32 {84848BFA-931D-42CE-9ADF-01EE54DE7890}.AuditMode|x86.Build.0 = AuditMode|Win32 {84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|Any CPU.ActiveCfg = Debug|Win32 {84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|NET_Test.ActiveCfg = Debug|x64 + {84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|NET_Test.Build.0 = Debug|x64 {84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|x64.ActiveCfg = Debug|x64 {84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|x64.Build.0 = Debug|x64 {84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|x86.ActiveCfg = Debug|Win32 @@ -1186,6 +1298,7 @@ Global {376FE273-6B84-4EB5-8B30-8DE9D21B022C}.AuditMode|Any CPU.ActiveCfg = Release|Any CPU {376FE273-6B84-4EB5-8B30-8DE9D21B022C}.AuditMode|ARM64.ActiveCfg = Debug|Any CPU {376FE273-6B84-4EB5-8B30-8DE9D21B022C}.AuditMode|ARM64.Build.0 = Debug|Any CPU + {376FE273-6B84-4EB5-8B30-8DE9D21B022C}.AuditMode|NET_Test.ActiveCfg = Release|Any CPU {376FE273-6B84-4EB5-8B30-8DE9D21B022C}.AuditMode|x64.ActiveCfg = Debug|Any CPU {376FE273-6B84-4EB5-8B30-8DE9D21B022C}.AuditMode|x64.Build.0 = Debug|Any CPU {376FE273-6B84-4EB5-8B30-8DE9D21B022C}.AuditMode|x86.ActiveCfg = Debug|Any CPU @@ -1193,6 +1306,8 @@ Global {376FE273-6B84-4EB5-8B30-8DE9D21B022C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {376FE273-6B84-4EB5-8B30-8DE9D21B022C}.Debug|Any CPU.Build.0 = Debug|Any CPU {376FE273-6B84-4EB5-8B30-8DE9D21B022C}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {376FE273-6B84-4EB5-8B30-8DE9D21B022C}.Debug|NET_Test.ActiveCfg = Debug|Any CPU + {376FE273-6B84-4EB5-8B30-8DE9D21B022C}.Debug|NET_Test.Build.0 = Debug|Any CPU {376FE273-6B84-4EB5-8B30-8DE9D21B022C}.Debug|x64.ActiveCfg = Debug|Any CPU {376FE273-6B84-4EB5-8B30-8DE9D21B022C}.Debug|x86.ActiveCfg = Debug|Any CPU {376FE273-6B84-4EB5-8B30-8DE9D21B022C}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -1202,11 +1317,13 @@ Global {376FE273-6B84-4EB5-8B30-8DE9D21B022C}.Release|x86.ActiveCfg = Release|Any CPU {CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64 + {CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.AuditMode|x64.ActiveCfg = AuditMode|x64 {CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.AuditMode|x86.ActiveCfg = AuditMode|Win32 {CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.Debug|Any CPU.ActiveCfg = Debug|Win32 {CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.Debug|ARM64.ActiveCfg = Debug|ARM64 {CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.Debug|ARM64.Build.0 = Debug|ARM64 + {CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.Debug|NET_Test.ActiveCfg = Debug|Win32 {CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.Debug|x64.ActiveCfg = Debug|x64 {CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.Debug|x64.Build.0 = Debug|x64 {CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.Debug|x86.ActiveCfg = Debug|Win32 @@ -1220,11 +1337,13 @@ Global {CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.Release|x86.Build.0 = Release|Win32 {CA5CAD1A-9A12-429C-B551-8562EC954746}.AuditMode|Any CPU.ActiveCfg = Debug|Win32 {CA5CAD1A-9A12-429C-B551-8562EC954746}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {CA5CAD1A-9A12-429C-B551-8562EC954746}.AuditMode|NET_Test.ActiveCfg = Debug|Win32 {CA5CAD1A-9A12-429C-B551-8562EC954746}.AuditMode|x64.ActiveCfg = Release|x64 {CA5CAD1A-9A12-429C-B551-8562EC954746}.AuditMode|x86.ActiveCfg = Release|Win32 {CA5CAD1A-9A12-429C-B551-8562EC954746}.Debug|Any CPU.ActiveCfg = Debug|Win32 {CA5CAD1A-9A12-429C-B551-8562EC954746}.Debug|ARM64.ActiveCfg = Debug|ARM64 {CA5CAD1A-9A12-429C-B551-8562EC954746}.Debug|ARM64.Build.0 = Debug|ARM64 + {CA5CAD1A-9A12-429C-B551-8562EC954746}.Debug|NET_Test.ActiveCfg = Debug|Win32 {CA5CAD1A-9A12-429C-B551-8562EC954746}.Debug|x64.ActiveCfg = Debug|x64 {CA5CAD1A-9A12-429C-B551-8562EC954746}.Debug|x64.Build.0 = Debug|x64 {CA5CAD1A-9A12-429C-B551-8562EC954746}.Debug|x86.ActiveCfg = Debug|Win32 @@ -1238,11 +1357,13 @@ Global {CA5CAD1A-9A12-429C-B551-8562EC954746}.Release|x86.Build.0 = Release|Win32 {CA5CAD1A-B11C-4DDB-A4FE-C3AFAE9B5506}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {CA5CAD1A-B11C-4DDB-A4FE-C3AFAE9B5506}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64 + {CA5CAD1A-B11C-4DDB-A4FE-C3AFAE9B5506}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {CA5CAD1A-B11C-4DDB-A4FE-C3AFAE9B5506}.AuditMode|x64.ActiveCfg = AuditMode|x64 {CA5CAD1A-B11C-4DDB-A4FE-C3AFAE9B5506}.AuditMode|x86.ActiveCfg = AuditMode|Win32 {CA5CAD1A-B11C-4DDB-A4FE-C3AFAE9B5506}.Debug|Any CPU.ActiveCfg = Debug|Win32 {CA5CAD1A-B11C-4DDB-A4FE-C3AFAE9B5506}.Debug|ARM64.ActiveCfg = Debug|ARM64 {CA5CAD1A-B11C-4DDB-A4FE-C3AFAE9B5506}.Debug|ARM64.Build.0 = Debug|ARM64 + {CA5CAD1A-B11C-4DDB-A4FE-C3AFAE9B5506}.Debug|NET_Test.ActiveCfg = Debug|Win32 {CA5CAD1A-B11C-4DDB-A4FE-C3AFAE9B5506}.Debug|x64.ActiveCfg = Debug|x64 {CA5CAD1A-B11C-4DDB-A4FE-C3AFAE9B5506}.Debug|x64.Build.0 = Debug|x64 {CA5CAD1A-B11C-4DDB-A4FE-C3AFAE9B5506}.Debug|x86.ActiveCfg = Debug|Win32 @@ -1257,6 +1378,7 @@ Global {48D21369-3D7B-4431-9967-24E81292CF63}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {48D21369-3D7B-4431-9967-24E81292CF63}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64 {48D21369-3D7B-4431-9967-24E81292CF63}.AuditMode|ARM64.Build.0 = AuditMode|ARM64 + {48D21369-3D7B-4431-9967-24E81292CF63}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {48D21369-3D7B-4431-9967-24E81292CF63}.AuditMode|x64.ActiveCfg = AuditMode|x64 {48D21369-3D7B-4431-9967-24E81292CF63}.AuditMode|x64.Build.0 = AuditMode|x64 {48D21369-3D7B-4431-9967-24E81292CF63}.AuditMode|x86.ActiveCfg = AuditMode|Win32 @@ -1264,6 +1386,7 @@ Global {48D21369-3D7B-4431-9967-24E81292CF63}.Debug|Any CPU.ActiveCfg = Debug|Win32 {48D21369-3D7B-4431-9967-24E81292CF63}.Debug|ARM64.ActiveCfg = Debug|ARM64 {48D21369-3D7B-4431-9967-24E81292CF63}.Debug|ARM64.Build.0 = Debug|ARM64 + {48D21369-3D7B-4431-9967-24E81292CF63}.Debug|NET_Test.ActiveCfg = Debug|Win32 {48D21369-3D7B-4431-9967-24E81292CF63}.Debug|x64.ActiveCfg = Debug|x64 {48D21369-3D7B-4431-9967-24E81292CF63}.Debug|x64.Build.0 = Debug|x64 {48D21369-3D7B-4431-9967-24E81292CF63}.Debug|x86.ActiveCfg = Debug|Win32 @@ -1277,12 +1400,14 @@ Global {48D21369-3D7B-4431-9967-24E81292CF63}.Release|x86.Build.0 = Release|Win32 {CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.AuditMode|Any CPU.ActiveCfg = Release|x64 {CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.AuditMode|ARM64.ActiveCfg = Release|ARM64 + {CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.AuditMode|NET_Test.ActiveCfg = Release|x64 {CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.AuditMode|x64.ActiveCfg = AuditMode|x64 {CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.AuditMode|x64.Build.0 = AuditMode|x64 {CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.AuditMode|x86.ActiveCfg = Release|Win32 {CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.Debug|Any CPU.ActiveCfg = Debug|Win32 {CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.Debug|ARM64.ActiveCfg = Debug|ARM64 {CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.Debug|ARM64.Build.0 = Debug|ARM64 + {CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.Debug|NET_Test.ActiveCfg = Debug|Win32 {CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.Debug|x64.ActiveCfg = Debug|x64 {CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.Debug|x64.Build.0 = Debug|x64 {CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.Debug|x86.ActiveCfg = Debug|Win32 @@ -1300,12 +1425,16 @@ Global {B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.AuditMode|ARM64.ActiveCfg = Release|x64 {B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.AuditMode|ARM64.Build.0 = Release|x64 {B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.AuditMode|ARM64.Deploy.0 = Release|x64 + {B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.AuditMode|NET_Test.ActiveCfg = Release|x64 + {B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.AuditMode|NET_Test.Build.0 = Release|x64 + {B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.AuditMode|NET_Test.Deploy.0 = Release|x64 {B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.AuditMode|x64.ActiveCfg = Release|x64 {B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.AuditMode|x86.ActiveCfg = Release|Win32 {B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.AuditMode|x86.Build.0 = Release|Win32 {B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.AuditMode|x86.Deploy.0 = Release|Win32 {B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.Debug|Any CPU.ActiveCfg = Debug|Win32 {B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.Debug|ARM64.ActiveCfg = Debug|Win32 + {B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.Debug|NET_Test.ActiveCfg = Debug|Win32 {B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.Debug|x64.ActiveCfg = Debug|x64 {B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.Debug|x64.Build.0 = Debug|x64 {B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.Debug|x64.Deploy.0 = Debug|x64 @@ -1325,6 +1454,7 @@ Global {58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64 {58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.AuditMode|ARM64.Build.0 = AuditMode|ARM64 + {58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.AuditMode|x64.ActiveCfg = AuditMode|x64 {58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.AuditMode|x64.Build.0 = AuditMode|x64 {58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.AuditMode|x86.ActiveCfg = AuditMode|Win32 @@ -1332,6 +1462,8 @@ Global {58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.Debug|Any CPU.ActiveCfg = Debug|Win32 {58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.Debug|ARM64.ActiveCfg = Debug|ARM64 {58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.Debug|ARM64.Build.0 = Debug|ARM64 + {58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.Debug|NET_Test.ActiveCfg = Debug|x64 + {58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.Debug|NET_Test.Build.0 = Debug|x64 {58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.Debug|x64.ActiveCfg = Debug|x64 {58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.Debug|x64.Build.0 = Debug|x64 {58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.Debug|x86.ActiveCfg = Debug|Win32 @@ -1346,12 +1478,15 @@ Global {A22EC5F6-7851-4B88-AC52-47249D437A52}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {A22EC5F6-7851-4B88-AC52-47249D437A52}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64 {A22EC5F6-7851-4B88-AC52-47249D437A52}.AuditMode|ARM64.Build.0 = AuditMode|ARM64 + {A22EC5F6-7851-4B88-AC52-47249D437A52}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {A22EC5F6-7851-4B88-AC52-47249D437A52}.AuditMode|x64.ActiveCfg = Release|x64 {A22EC5F6-7851-4B88-AC52-47249D437A52}.AuditMode|x86.ActiveCfg = AuditMode|Win32 {A22EC5F6-7851-4B88-AC52-47249D437A52}.AuditMode|x86.Build.0 = AuditMode|Win32 {A22EC5F6-7851-4B88-AC52-47249D437A52}.Debug|Any CPU.ActiveCfg = Debug|Win32 {A22EC5F6-7851-4B88-AC52-47249D437A52}.Debug|ARM64.ActiveCfg = Debug|ARM64 {A22EC5F6-7851-4B88-AC52-47249D437A52}.Debug|ARM64.Build.0 = Debug|ARM64 + {A22EC5F6-7851-4B88-AC52-47249D437A52}.Debug|NET_Test.ActiveCfg = Debug|x64 + {A22EC5F6-7851-4B88-AC52-47249D437A52}.Debug|NET_Test.Build.0 = Debug|x64 {A22EC5F6-7851-4B88-AC52-47249D437A52}.Debug|x64.ActiveCfg = Debug|x64 {A22EC5F6-7851-4B88-AC52-47249D437A52}.Debug|x64.Build.0 = Debug|x64 {A22EC5F6-7851-4B88-AC52-47249D437A52}.Debug|x86.ActiveCfg = Debug|Win32 @@ -1365,12 +1500,14 @@ Global {A22EC5F6-7851-4B88-AC52-47249D437A52}.Release|x86.Build.0 = Release|Win32 {A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.AuditMode|Any CPU.ActiveCfg = AuditMode|x64 {A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64 + {A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.AuditMode|NET_Test.ActiveCfg = AuditMode|x64 {A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.AuditMode|x64.ActiveCfg = AuditMode|x64 {A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.AuditMode|x86.ActiveCfg = AuditMode|Win32 {A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.Debug|Any CPU.ActiveCfg = Debug|Win32 {A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.Debug|ARM64.ActiveCfg = Debug|ARM64 {A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.Debug|ARM64.Build.0 = Debug|ARM64 {A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.Debug|ARM64.Deploy.0 = Debug|ARM64 + {A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.Debug|NET_Test.ActiveCfg = Debug|Win32 {A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.Debug|x64.ActiveCfg = Debug|x64 {A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.Debug|x64.Build.0 = Debug|x64 {A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.Debug|x64.Deploy.0 = Debug|x64 @@ -1390,12 +1527,14 @@ Global {767268EE-174A-46FE-96F0-EEE698A1BBC9}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {767268EE-174A-46FE-96F0-EEE698A1BBC9}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64 {767268EE-174A-46FE-96F0-EEE698A1BBC9}.AuditMode|ARM64.Build.0 = AuditMode|ARM64 + {767268EE-174A-46FE-96F0-EEE698A1BBC9}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {767268EE-174A-46FE-96F0-EEE698A1BBC9}.AuditMode|x64.ActiveCfg = Release|x64 {767268EE-174A-46FE-96F0-EEE698A1BBC9}.AuditMode|x86.ActiveCfg = AuditMode|Win32 {767268EE-174A-46FE-96F0-EEE698A1BBC9}.AuditMode|x86.Build.0 = AuditMode|Win32 {767268EE-174A-46FE-96F0-EEE698A1BBC9}.Debug|Any CPU.ActiveCfg = Debug|Win32 {767268EE-174A-46FE-96F0-EEE698A1BBC9}.Debug|ARM64.ActiveCfg = Debug|ARM64 {767268EE-174A-46FE-96F0-EEE698A1BBC9}.Debug|ARM64.Build.0 = Debug|ARM64 + {767268EE-174A-46FE-96F0-EEE698A1BBC9}.Debug|NET_Test.ActiveCfg = Debug|Win32 {767268EE-174A-46FE-96F0-EEE698A1BBC9}.Debug|x64.ActiveCfg = Debug|x64 {767268EE-174A-46FE-96F0-EEE698A1BBC9}.Debug|x64.Build.0 = Debug|x64 {767268EE-174A-46FE-96F0-EEE698A1BBC9}.Debug|x86.ActiveCfg = Debug|Win32 @@ -1411,12 +1550,15 @@ Global {A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.AuditMode|Any CPU.Build.0 = Release|x64 {A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.AuditMode|ARM64.ActiveCfg = Release|x64 {A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.AuditMode|ARM64.Build.0 = Release|x64 + {A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.AuditMode|NET_Test.ActiveCfg = Release|x64 + {A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.AuditMode|NET_Test.Build.0 = Release|x64 {A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.AuditMode|x64.ActiveCfg = Release|x64 {A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.AuditMode|x64.Build.0 = Release|x64 {A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.AuditMode|x86.ActiveCfg = Release|Win32 {A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.AuditMode|x86.Build.0 = Release|Win32 {A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.Debug|Any CPU.ActiveCfg = Debug|Win32 {A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.Debug|ARM64.ActiveCfg = Debug|Win32 + {A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.Debug|NET_Test.ActiveCfg = Debug|Win32 {A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.Debug|x64.ActiveCfg = Debug|x64 {A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.Debug|x64.Build.0 = Debug|x64 {A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.Debug|x86.ActiveCfg = Debug|Win32 @@ -1430,12 +1572,14 @@ Global {95B136F9-B238-490C-A7C5-5843C1FECAC4}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {95B136F9-B238-490C-A7C5-5843C1FECAC4}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64 {95B136F9-B238-490C-A7C5-5843C1FECAC4}.AuditMode|ARM64.Build.0 = AuditMode|ARM64 + {95B136F9-B238-490C-A7C5-5843C1FECAC4}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {95B136F9-B238-490C-A7C5-5843C1FECAC4}.AuditMode|x64.ActiveCfg = Release|x64 {95B136F9-B238-490C-A7C5-5843C1FECAC4}.AuditMode|x86.ActiveCfg = AuditMode|Win32 {95B136F9-B238-490C-A7C5-5843C1FECAC4}.AuditMode|x86.Build.0 = AuditMode|Win32 {95B136F9-B238-490C-A7C5-5843C1FECAC4}.Debug|Any CPU.ActiveCfg = Debug|Win32 {95B136F9-B238-490C-A7C5-5843C1FECAC4}.Debug|ARM64.ActiveCfg = Debug|ARM64 {95B136F9-B238-490C-A7C5-5843C1FECAC4}.Debug|ARM64.Build.0 = Debug|ARM64 + {95B136F9-B238-490C-A7C5-5843C1FECAC4}.Debug|NET_Test.ActiveCfg = Debug|Win32 {95B136F9-B238-490C-A7C5-5843C1FECAC4}.Debug|x64.ActiveCfg = Debug|x64 {95B136F9-B238-490C-A7C5-5843C1FECAC4}.Debug|x64.Build.0 = Debug|x64 {95B136F9-B238-490C-A7C5-5843C1FECAC4}.Debug|x86.ActiveCfg = Debug|Win32 @@ -1450,12 +1594,14 @@ Global {024052DE-83FB-4653-AEA4-90790D29D5BD}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {024052DE-83FB-4653-AEA4-90790D29D5BD}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64 {024052DE-83FB-4653-AEA4-90790D29D5BD}.AuditMode|ARM64.Build.0 = AuditMode|ARM64 + {024052DE-83FB-4653-AEA4-90790D29D5BD}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {024052DE-83FB-4653-AEA4-90790D29D5BD}.AuditMode|x64.ActiveCfg = Release|x64 {024052DE-83FB-4653-AEA4-90790D29D5BD}.AuditMode|x86.ActiveCfg = AuditMode|Win32 {024052DE-83FB-4653-AEA4-90790D29D5BD}.AuditMode|x86.Build.0 = AuditMode|Win32 {024052DE-83FB-4653-AEA4-90790D29D5BD}.Debug|Any CPU.ActiveCfg = Debug|Win32 {024052DE-83FB-4653-AEA4-90790D29D5BD}.Debug|ARM64.ActiveCfg = Debug|ARM64 {024052DE-83FB-4653-AEA4-90790D29D5BD}.Debug|ARM64.Build.0 = Debug|ARM64 + {024052DE-83FB-4653-AEA4-90790D29D5BD}.Debug|NET_Test.ActiveCfg = Debug|Win32 {024052DE-83FB-4653-AEA4-90790D29D5BD}.Debug|x64.ActiveCfg = Debug|x64 {024052DE-83FB-4653-AEA4-90790D29D5BD}.Debug|x64.Build.0 = Debug|x64 {024052DE-83FB-4653-AEA4-90790D29D5BD}.Debug|x86.ActiveCfg = Debug|Win32 @@ -1470,12 +1616,14 @@ Global {067F0A06-FCB7-472C-96E9-B03B54E8E18D}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {067F0A06-FCB7-472C-96E9-B03B54E8E18D}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64 {067F0A06-FCB7-472C-96E9-B03B54E8E18D}.AuditMode|ARM64.Build.0 = AuditMode|ARM64 + {067F0A06-FCB7-472C-96E9-B03B54E8E18D}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {067F0A06-FCB7-472C-96E9-B03B54E8E18D}.AuditMode|x64.ActiveCfg = Release|x64 {067F0A06-FCB7-472C-96E9-B03B54E8E18D}.AuditMode|x86.ActiveCfg = AuditMode|Win32 {067F0A06-FCB7-472C-96E9-B03B54E8E18D}.AuditMode|x86.Build.0 = AuditMode|Win32 {067F0A06-FCB7-472C-96E9-B03B54E8E18D}.Debug|Any CPU.ActiveCfg = Debug|Win32 {067F0A06-FCB7-472C-96E9-B03B54E8E18D}.Debug|ARM64.ActiveCfg = Debug|ARM64 {067F0A06-FCB7-472C-96E9-B03B54E8E18D}.Debug|ARM64.Build.0 = Debug|ARM64 + {067F0A06-FCB7-472C-96E9-B03B54E8E18D}.Debug|NET_Test.ActiveCfg = Debug|Win32 {067F0A06-FCB7-472C-96E9-B03B54E8E18D}.Debug|x64.ActiveCfg = Debug|x64 {067F0A06-FCB7-472C-96E9-B03B54E8E18D}.Debug|x64.Build.0 = Debug|x64 {067F0A06-FCB7-472C-96E9-B03B54E8E18D}.Debug|x86.ActiveCfg = Debug|Win32 @@ -1490,6 +1638,7 @@ Global {6BAE5851-50D5-4934-8D5E-30361A8A40F3}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32 {6BAE5851-50D5-4934-8D5E-30361A8A40F3}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64 {6BAE5851-50D5-4934-8D5E-30361A8A40F3}.AuditMode|ARM64.Build.0 = AuditMode|ARM64 + {6BAE5851-50D5-4934-8D5E-30361A8A40F3}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32 {6BAE5851-50D5-4934-8D5E-30361A8A40F3}.AuditMode|x64.ActiveCfg = AuditMode|x64 {6BAE5851-50D5-4934-8D5E-30361A8A40F3}.AuditMode|x64.Build.0 = AuditMode|x64 {6BAE5851-50D5-4934-8D5E-30361A8A40F3}.AuditMode|x86.ActiveCfg = AuditMode|Win32 @@ -1497,6 +1646,8 @@ Global {6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Debug|Any CPU.ActiveCfg = Debug|Win32 {6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Debug|ARM64.ActiveCfg = Debug|ARM64 {6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Debug|ARM64.Build.0 = Debug|ARM64 + {6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Debug|NET_Test.ActiveCfg = Debug|x64 + {6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Debug|NET_Test.Build.0 = Debug|x64 {6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Debug|x64.ActiveCfg = Debug|x64 {6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Debug|x64.Build.0 = Debug|x64 {6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Debug|x86.ActiveCfg = Debug|Win32 @@ -1508,6 +1659,113 @@ Global {6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Release|x64.Build.0 = Release|x64 {6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Release|x86.ActiveCfg = Release|Win32 {6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Release|x86.Build.0 = Release|Win32 + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.AuditMode|Any CPU.ActiveCfg = Debug|Any CPU + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.AuditMode|Any CPU.Build.0 = Debug|Any CPU + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.AuditMode|ARM64.ActiveCfg = Debug|Any CPU + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.AuditMode|ARM64.Build.0 = Debug|Any CPU + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.AuditMode|NET_Test.ActiveCfg = Debug|Any CPU + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.AuditMode|NET_Test.Build.0 = Debug|Any CPU + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.AuditMode|x64.ActiveCfg = Debug|Any CPU + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.AuditMode|x64.Build.0 = Debug|Any CPU + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.AuditMode|x86.ActiveCfg = Debug|Any CPU + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.AuditMode|x86.Build.0 = Debug|Any CPU + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Debug|ARM64.Build.0 = Debug|Any CPU + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Debug|NET_Test.ActiveCfg = Debug|x64 + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Debug|NET_Test.Build.0 = Debug|x64 + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Debug|x64.ActiveCfg = Debug|Any CPU + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Debug|x64.Build.0 = Debug|Any CPU + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Debug|x86.ActiveCfg = Debug|Any CPU + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Debug|x86.Build.0 = Debug|Any CPU + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Release|Any CPU.Build.0 = Release|Any CPU + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Release|ARM64.ActiveCfg = Release|Any CPU + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Release|ARM64.Build.0 = Release|Any CPU + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Release|x64.ActiveCfg = Release|Any CPU + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Release|x64.Build.0 = Release|Any CPU + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Release|x86.ActiveCfg = Release|Any CPU + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Release|x86.Build.0 = Release|Any CPU + + {CA5CAD1A-224A-4171-B13A-F16E576FDD12}.Release|NET_Test.ActiveCfg = Release|x86 + {9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.Release|NET_Test.ActiveCfg = Release|Win32 + {345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.Release|NET_Test.ActiveCfg = Release|Win32 + {2FD12FBB-1DDB-46D8-B818-1023C624CACA}.Release|NET_Test.ActiveCfg = Release|Win32 + {3AE13314-1939-4DFA-9C14-38CA0834050C}.Release|NET_Test.ActiveCfg = Release|x64 + {3AE13314-1939-4DFA-9C14-38CA0834050C}.Release|NET_Test.Build.0 = Release|x64 + {DCF55140-EF6A-4736-A403-957E4F7430BB}.Release|NET_Test.ActiveCfg = Release|Win32 + {1CF55140-EF6A-4736-A403-957E4F7430BB}.Release|NET_Test.ActiveCfg = Release|x64 + {1CF55140-EF6A-4736-A403-957E4F7430BB}.Release|NET_Test.Build.0 = Release|x64 + {AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.Release|NET_Test.ActiveCfg = Release|x64 + {AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.Release|NET_Test.Build.0 = Release|x64 + {1C959542-BAC2-4E55-9A6D-13251914CBB9}.Release|NET_Test.ActiveCfg = Release|Win32 + {06EC74CB-9A12-429C-B551-8562EC954746}.Release|NET_Test.ActiveCfg = Release|Win32 + {06EC74CB-9A12-429C-B551-8562EC954747}.Release|NET_Test.ActiveCfg = Release|Win32 + {531C23E7-4B76-4C08-8AAD-04164CB628C9}.Release|NET_Test.ActiveCfg = Release|Win32 + {531C23E7-4B76-4C08-8BBD-04164CB628C9}.Release|NET_Test.ActiveCfg = Release|Win32 + {8CDB8850-7484-4EC7-B45B-181F85B2EE54}.Release|NET_Test.ActiveCfg = Release|Win32 + {12144E07-FE63-4D33-9231-748B8D8C3792}.Release|NET_Test.ActiveCfg = Release|Win32 + {6AF01638-84CF-4B65-9870-484DFFCAC772}.Release|NET_Test.ActiveCfg = Release|Win32 + {96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.Release|NET_Test.ActiveCfg = Release|Win32 + {F210A4AE-E02A-4BFC-80BB-F50A672FE763}.Release|NET_Test.ActiveCfg = Release|Win32 + {5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.Release|NET_Test.ActiveCfg = Release|Win32 + {18D09A24-8240-42D6-8CB6-236EEE820262}.Release|NET_Test.ActiveCfg = Release|Win32 + {C17E1BF3-9D34-4779-9458-A8EF98CC5662}.Release|NET_Test.ActiveCfg = Release|Win32 + {099193A0-1E43-4BBC-BA7F-7B351E1342DF}.Release|NET_Test.ActiveCfg = Release|Win32 + {FC802440-AD6A-4919-8F2C-7701F2B38D79}.Release|NET_Test.ActiveCfg = Release|Win32 + {919544AC-D39B-463F-8414-3C3C67CF727C}.Release|NET_Test.ActiveCfg = Release|Win32 + {ED82003F-FC5D-4E94-8B36-F480018ED064}.Release|NET_Test.ActiveCfg = Release|Win32 + {06EC74CB-9A12-429C-B551-8532EC964726}.Release|NET_Test.ActiveCfg = Release|Win32 + {ED82003F-FC5D-4E94-8B47-F480018ED064}.Release|NET_Test.ActiveCfg = Release|Win32 + {06EC74CB-9A12-429C-B551-8562EC964846}.Release|NET_Test.ActiveCfg = Release|Win32 + {D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.Release|NET_Test.ActiveCfg = Release|Win32 + {C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.Release|NET_Test.ActiveCfg = Release|Win32 + {990F2657-8580-4828-943F-5DD657D11842}.Release|NET_Test.ActiveCfg = Release|Win32 + {814DBDDE-894E-4327-A6E1-740504850098}.Release|NET_Test.ActiveCfg = Release|Win32 + {814CBEEE-894E-4327-A6E1-740504850098}.Release|NET_Test.ActiveCfg = Release|Win32 + {18D09A24-8240-42D6-8CB6-236EEE820263}.Release|NET_Test.ActiveCfg = Release|x64 + {18D09A24-8240-42D6-8CB6-236EEE820263}.Release|NET_Test.Build.0 = Release|x64 + {990F2657-8580-4828-943F-5DD657D11843}.Release|NET_Test.ActiveCfg = Release|Win32 + {0CF235BD-2DA0-407E-90EE-C467E8BBC714}.Release|NET_Test.ActiveCfg = Release|x64 + {0CF235BD-2DA0-407E-90EE-C467E8BBC714}.Release|NET_Test.Build.0 = Release|x64 + {48D21369-3D7B-4431-9967-24E81292CF62}.Release|NET_Test.ActiveCfg = Release|x64 + {48D21369-3D7B-4431-9967-24E81292CF62}.Release|NET_Test.Build.0 = Release|x64 + {CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.Release|NET_Test.ActiveCfg = Release|Win32 + {CA5CAD1A-ABCD-429C-B551-8562EC954746}.Release|NET_Test.ActiveCfg = Release|x64 + {CA5CAD1A-ABCD-429C-B551-8562EC954746}.Release|NET_Test.Build.0 = Release|x64 + {CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.Release|NET_Test.ActiveCfg = Release|Win32 + {CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.Release|NET_Test.ActiveCfg = Release|Win32 + {CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.Release|NET_Test.ActiveCfg = Release|Win32 + {CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.Release|NET_Test.ActiveCfg = Release|x64 + {CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.Release|NET_Test.Build.0 = Release|x64 + {2C2BEEF4-9333-4D05-B12A-1905CBF112F9}.Release|NET_Test.ActiveCfg = Release|Win32 + {EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.Release|NET_Test.ActiveCfg = Release|Win32 + {34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.Release|NET_Test.ActiveCfg = Release|Win32 + {84848BFA-931D-42CE-9ADF-01EE54DE7890}.Release|NET_Test.ActiveCfg = Release|x64 + {84848BFA-931D-42CE-9ADF-01EE54DE7890}.Release|NET_Test.Build.0 = Release|x64 + {376FE273-6B84-4EB5-8B30-8DE9D21B022C}.Release|NET_Test.ActiveCfg = Release|Any CPU + {376FE273-6B84-4EB5-8B30-8DE9D21B022C}.Release|NET_Test.Build.0 = Release|Any CPU + {CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.Release|NET_Test.ActiveCfg = Release|Win32 + {CA5CAD1A-9A12-429C-B551-8562EC954746}.Release|NET_Test.ActiveCfg = Release|Win32 + {CA5CAD1A-B11C-4DDB-A4FE-C3AFAE9B5506}.Release|NET_Test.ActiveCfg = Release|Win32 + {48D21369-3D7B-4431-9967-24E81292CF63}.Release|NET_Test.ActiveCfg = Release|Win32 + {CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.Release|NET_Test.ActiveCfg = Release|Win32 + {B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.Release|NET_Test.ActiveCfg = Release|Win32 + {58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.Release|NET_Test.ActiveCfg = Release|x64 + {58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.Release|NET_Test.Build.0 = Release|x64 + {A22EC5F6-7851-4B88-AC52-47249D437A52}.Release|NET_Test.ActiveCfg = Release|x64 + {A22EC5F6-7851-4B88-AC52-47249D437A52}.Release|NET_Test.Build.0 = Release|x64 + {A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.Release|NET_Test.ActiveCfg = Release|Win32 + {767268EE-174A-46FE-96F0-EEE698A1BBC9}.Release|NET_Test.ActiveCfg = Release|Win32 + {A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.Release|NET_Test.ActiveCfg = Release|Win32 + {95B136F9-B238-490C-A7C5-5843C1FECAC4}.Release|NET_Test.ActiveCfg = Release|Win32 + {024052DE-83FB-4653-AEA4-90790D29D5BD}.Release|NET_Test.ActiveCfg = Release|Win32 + {067F0A06-FCB7-472C-96E9-B03B54E8E18D}.Release|NET_Test.ActiveCfg = Release|Win32 + {6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Release|NET_Test.ActiveCfg = Release|x64 + {6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Release|NET_Test.Build.0 = Release|x64 + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Release|NET_Test.ActiveCfg = Release|x64 + {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Release|NET_Test.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/common.build.post.props b/src/common.build.post.props index 64ac5f1222..e4039cab2e 100644 --- a/src/common.build.post.props +++ b/src/common.build.post.props @@ -13,7 +13,7 @@ ProgramDatabase - onecoreuap_apiset.lib;d3dcompiler.lib;dwmapi.lib;uxtheme.lib;shlwapi.lib;ntdll.lib;%(AdditionalDependencies) + user32.lib;uiautomationcore.lib;onecoreuap.lib;d3dcompiler.lib;dwmapi.lib;uxtheme.lib;shlwapi.lib;ntdll.lib;%(AdditionalDependencies) diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/App.xaml b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/App.xaml new file mode 100644 index 0000000000..07734522d8 --- /dev/null +++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/App.xaml.cs b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/App.xaml.cs new file mode 100644 index 0000000000..98e01ed806 --- /dev/null +++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/App.xaml.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace WpfTerminalTestNetCore +{ + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application + { + } +} diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/AssemblyInfo.cs b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/AssemblyInfo.cs new file mode 100644 index 0000000000..0cd23b6831 --- /dev/null +++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/AssemblyInfo.cs @@ -0,0 +1,10 @@ +using System.Windows; + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/MainWindow.xaml b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/MainWindow.xaml new file mode 100644 index 0000000000..e7a7ffab18 --- /dev/null +++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/MainWindow.xaml @@ -0,0 +1,13 @@ + + + + + diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/MainWindow.xaml.cs b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/MainWindow.xaml.cs new file mode 100644 index 0000000000..2f0dba9afa --- /dev/null +++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/MainWindow.xaml.cs @@ -0,0 +1,103 @@ +using Microsoft.Terminal.Wpf; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace WpfTerminalTestNetCore +{ + public class PseudoConsoleConnection : Microsoft.Terminal.Wpf.ITerminalConnection + { + private String _command; + private int _initialRows = 25, _initialCols = 80; + PseudoConsole _pty = null; + PseudoConsolePipe _inPipe = null; + PseudoConsolePipe _outPipe = null; + StreamWriter _inputWriter = null; + Process _process; + + public PseudoConsoleConnection(String command, int columns, int rows) + { + _command = command; + _initialCols = columns; + _initialRows = rows; + } + + public event EventHandler TerminalOutput; + + public void Close() + { + _pty.Dispose(); + } + + public void Resize(uint rows, uint columns) + { + _pty?.Resize((short)columns, (short)rows); + } + + public void Start() + { + _inPipe = new PseudoConsolePipe(); + _outPipe = new PseudoConsolePipe(); + _inputWriter = new StreamWriter(new FileStream(_inPipe.WriteSide, FileAccess.Write)); + _pty = PseudoConsole.Create(_inPipe.ReadSide, _outPipe.WriteSide, (short)_initialCols, (short)_initialRows); + _process = ProcessFactory.Start(_command, PseudoConsole.PseudoConsoleThreadAttribute, _pty.Handle); + Task.Run(async () => + { + var outReader = new FileStream(_outPipe.ReadSide, FileAccess.Read); + var bytes = new byte[1024]; + var chars = new char[Encoding.UTF8.GetMaxCharCount(bytes.Length)]; + var decoder = Encoding.UTF8.GetDecoder(); + while (_pty != null) + { + int read = await outReader.ReadAsync(bytes); + if (read == 0) break; + var decoded = decoder.GetChars(bytes, 0, read, chars, 0, false); + TerminalOutput.Invoke(this, new TerminalOutputEventArgs(new String(chars, 0, decoded))); + } + }); + } + + public void WriteInput(string data) + { + _inputWriter.Write(data); + _inputWriter.Flush(); + } + } + /// + /// Interaction logic for MainWindow.xaml + /// + public partial class MainWindow : Window + { + public MainWindow() + { + InitializeComponent(); + Terminal.Loaded += Terminal_Loaded; + } + + private void Terminal_Loaded(object sender, RoutedEventArgs e) + { + var theme = new TerminalTheme + { + DefaultBackground = 0x0c0c0c, + DefaultForeground = 0xcccccc, + CursorStyle = CursorStyle.BlinkingBar, + ColorTable = new uint[] { 0x0C0C0C, 0x1F0FC5, 0x0EA113, 0x009CC1, 0xDA3700, 0x981788, 0xDD963A, 0xCCCCCC, 0x767676, 0x5648E7, 0x0CC616, 0xA5F1F9, 0xFF783B, 0x9E00B4, 0xD6D661, 0xF2F2F2 }, + }; + Terminal.Connection = new PseudoConsoleConnection("c:\\windows\\system32\\windowspowershell\\v1.0\\powershell.exe", Terminal.Columns, Terminal.Rows); + Terminal.SetTheme(theme, "Cascadia Code", 12); + Terminal.Focus(); + } + } +} diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Native/ConsoleApi.cs b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Native/ConsoleApi.cs new file mode 100644 index 0000000000..1c59d8a906 --- /dev/null +++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Native/ConsoleApi.cs @@ -0,0 +1,38 @@ +using Microsoft.Win32.SafeHandles; +using System.Runtime.InteropServices; + +namespace WpfTerminalTestNetCore.Native +{ + /// + /// PInvoke signatures for win32 console api + /// + static class ConsoleApi + { + internal const int STD_OUTPUT_HANDLE = -11; + internal const uint ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x0004; + internal const uint DISABLE_NEWLINE_AUTO_RETURN = 0x0008; + + [DllImport("kernel32.dll", SetLastError = true)] + internal static extern SafeFileHandle GetStdHandle(int nStdHandle); + + [DllImport("kernel32.dll", SetLastError = true)] + internal static extern bool SetConsoleMode(SafeFileHandle hConsoleHandle, uint mode); + + [DllImport("kernel32.dll", SetLastError = true)] + internal static extern bool GetConsoleMode(SafeFileHandle handle, out uint mode); + + internal delegate bool ConsoleEventDelegate(CtrlTypes ctrlType); + + internal enum CtrlTypes : uint + { + CTRL_C_EVENT = 0, + CTRL_BREAK_EVENT, + CTRL_CLOSE_EVENT, + CTRL_LOGOFF_EVENT = 5, + CTRL_SHUTDOWN_EVENT + } + + [DllImport("kernel32.dll", SetLastError = true)] + internal static extern bool SetConsoleCtrlHandler(ConsoleEventDelegate callback, bool add); + } +} diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Native/ProcessApi.cs b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Native/ProcessApi.cs new file mode 100644 index 0000000000..565087dd79 --- /dev/null +++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Native/ProcessApi.cs @@ -0,0 +1,86 @@ +using System; +using System.Runtime.InteropServices; + +namespace WpfTerminalTestNetCore.Native +{ + /// + /// PInvoke signatures for win32 process api + /// + static class ProcessApi + { + internal const uint EXTENDED_STARTUPINFO_PRESENT = 0x00080000; + + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] + internal struct STARTUPINFOEX + { + public STARTUPINFO StartupInfo; + public IntPtr lpAttributeList; + } + + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] + internal struct STARTUPINFO + { + public Int32 cb; + public string lpReserved; + public string lpDesktop; + public string lpTitle; + public Int32 dwX; + public Int32 dwY; + public Int32 dwXSize; + public Int32 dwYSize; + public Int32 dwXCountChars; + public Int32 dwYCountChars; + public Int32 dwFillAttribute; + public Int32 dwFlags; + public Int16 wShowWindow; + public Int16 cbReserved2; + public IntPtr lpReserved2; + public IntPtr hStdInput; + public IntPtr hStdOutput; + public IntPtr hStdError; + } + + [StructLayout(LayoutKind.Sequential)] + internal struct PROCESS_INFORMATION + { + public IntPtr hProcess; + public IntPtr hThread; + public int dwProcessId; + public int dwThreadId; + } + + [StructLayout(LayoutKind.Sequential)] + internal struct SECURITY_ATTRIBUTES + { + public int nLength; + public IntPtr lpSecurityDescriptor; + public int bInheritHandle; + } + + [DllImport("kernel32.dll", SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + internal static extern bool InitializeProcThreadAttributeList( + IntPtr lpAttributeList, int dwAttributeCount, int dwFlags, ref IntPtr lpSize); + + [DllImport("kernel32.dll", SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + internal static extern bool UpdateProcThreadAttribute( + IntPtr lpAttributeList, uint dwFlags, IntPtr attribute, IntPtr lpValue, + IntPtr cbSize, IntPtr lpPreviousValue, IntPtr lpReturnSize); + + [DllImport("kernel32.dll", SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + internal static extern bool CreateProcess( + string lpApplicationName, string lpCommandLine, ref SECURITY_ATTRIBUTES lpProcessAttributes, + ref SECURITY_ATTRIBUTES lpThreadAttributes, bool bInheritHandles, uint dwCreationFlags, + IntPtr lpEnvironment, string lpCurrentDirectory, [In] ref STARTUPINFOEX lpStartupInfo, + out PROCESS_INFORMATION lpProcessInformation); + + [DllImport("kernel32.dll", SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + internal static extern bool DeleteProcThreadAttributeList(IntPtr lpAttributeList); + + [DllImport("kernel32.dll", SetLastError = true)] + internal static extern bool CloseHandle(IntPtr hObject); + } +} diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Native/PseudoConsoleApi.cs b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Native/PseudoConsoleApi.cs new file mode 100644 index 0000000000..ba7ca4048d --- /dev/null +++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Native/PseudoConsoleApi.cs @@ -0,0 +1,41 @@ +using Microsoft.Win32.SafeHandles; +using System; +using System.Runtime.InteropServices; +using static WpfTerminalTestNetCore.Native.ProcessApi; + +namespace WpfTerminalTestNetCore.Native +{ + /// + /// PInvoke signatures for win32 pseudo console api + /// + static class PseudoConsoleApi + { + internal const uint PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE = 0x00020016; + internal const uint PROC_THREAD_ATTRIBUTE_CONSOLE_REFERENCE = 0x0002000A; + + [StructLayout(LayoutKind.Sequential)] + internal struct COORD + { + public short X; + public short Y; + } + + [DllImport("conpty.dll", SetLastError = true)] + internal static extern int CreatePseudoConsole(COORD size, SafeFileHandle hInput, SafeFileHandle hOutput, uint dwFlags, out IntPtr phPC); + + [DllImport("conpty.dll", SetLastError = true)] + internal static extern int ConptyCreateStartupInfo(IntPtr hPC, out STARTUPINFOEX pSiExW); + + [DllImport("conpty.dll", SetLastError = true)] + internal static extern int ConptyDestroyStartupInfo(ref STARTUPINFOEX pSiExW); + + [DllImport("conpty.dll", SetLastError = true)] + internal static extern int ResizePseudoConsole(IntPtr hPC, COORD size); + + [DllImport("conpty.dll", SetLastError = true)] + internal static extern int ClosePseudoConsole(IntPtr hPC); + + [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] + internal static extern bool CreatePipe(out SafeFileHandle hReadPipe, out SafeFileHandle hWritePipe, IntPtr lpPipeAttributes, int nSize); + } +} diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Processes/Process.cs b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Processes/Process.cs new file mode 100644 index 0000000000..2bd33c6f67 --- /dev/null +++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Processes/Process.cs @@ -0,0 +1,72 @@ +using System; +using System.Runtime.InteropServices; +using WpfTerminalTestNetCore.Native; +using static WpfTerminalTestNetCore.Native.ProcessApi; + +namespace WpfTerminalTestNetCore +{ + /// + /// Represents an instance of a process. + /// + internal sealed class Process : IDisposable + { + public Process(STARTUPINFOEX startupInfo, PROCESS_INFORMATION processInfo) + { + StartupInfo = startupInfo; + ProcessInfo = processInfo; + } + + public STARTUPINFOEX StartupInfo { get; } + public PROCESS_INFORMATION ProcessInfo { get; } + + #region IDisposable Support + + private bool disposedValue = false; // To detect redundant calls + + void Dispose(bool disposing) + { + if (!disposedValue) + { + if (disposing) + { + // dispose managed state (managed objects). + } + + // dispose unmanaged state + + // Free the attribute list + var si = StartupInfo; + PseudoConsoleApi.ConptyDestroyStartupInfo(ref si); + + // Close process and thread handles + if (ProcessInfo.hProcess != IntPtr.Zero) + { + CloseHandle(ProcessInfo.hProcess); + } + if (ProcessInfo.hThread != IntPtr.Zero) + { + CloseHandle(ProcessInfo.hThread); + } + + disposedValue = true; + } + } + + ~Process() + { + // Do not change this code. Put cleanup code in Dispose(bool disposing) above. + Dispose(false); + } + + // This code added to correctly implement the disposable pattern. + public void Dispose() + { + // Do not change this code. Put cleanup code in Dispose(bool disposing) above. + Dispose(true); + // use the following line if the finalizer is overridden above. + GC.SuppressFinalize(this); + } + + #endregion + } +} diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Processes/ProcessFactory.cs b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Processes/ProcessFactory.cs new file mode 100644 index 0000000000..9116e80b85 --- /dev/null +++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Processes/ProcessFactory.cs @@ -0,0 +1,52 @@ +using System; +using System.Runtime.InteropServices; +using WpfTerminalTestNetCore.Native; +using static WpfTerminalTestNetCore.Native.ProcessApi; + +namespace WpfTerminalTestNetCore +{ + /// + /// Support for starting and configuring processes. + /// + /// + /// Possible to replace with managed code? The key is being able to provide the PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE attribute + /// + static class ProcessFactory + { + /// + /// Start and configure a process. The return value represents the process and should be disposed. + /// + internal static Process Start(string command, IntPtr attributes, IntPtr hPC) + { + var startupInfo = new STARTUPINFOEX(); + PseudoConsoleApi.ConptyCreateStartupInfo(hPC, out startupInfo); + var processInfo = RunProcess(ref startupInfo, command); + return new Process(startupInfo, processInfo); + } + + private static PROCESS_INFORMATION RunProcess(ref STARTUPINFOEX sInfoEx, string commandLine) + { + int securityAttributeSize = Marshal.SizeOf(); + var pSec = new SECURITY_ATTRIBUTES { nLength = securityAttributeSize }; + var tSec = new SECURITY_ATTRIBUTES { nLength = securityAttributeSize }; + var success = CreateProcess( + lpApplicationName: null, + lpCommandLine: commandLine, + lpProcessAttributes: ref pSec, + lpThreadAttributes: ref tSec, + bInheritHandles: true, + dwCreationFlags: EXTENDED_STARTUPINFO_PRESENT, + lpEnvironment: IntPtr.Zero, + lpCurrentDirectory: null, + lpStartupInfo: ref sInfoEx, + lpProcessInformation: out PROCESS_INFORMATION pInfo + ); + if (!success) + { + throw new InvalidOperationException("Could not create process. " + Marshal.GetLastWin32Error()); + } + + return pInfo; + } + } +} diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Properties/launchSettings.json b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Properties/launchSettings.json new file mode 100644 index 0000000000..95d9270c44 --- /dev/null +++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Properties/launchSettings.json @@ -0,0 +1,11 @@ +{ + "profiles": { + "WpfTerminalTestNetCore": { + "commandName": "Project", + "workingDirectory": "C:\\", + "remoteDebugEnabled": true, + "remoteDebugMachine": "VM81", + "nativeDebugging": true + } + } +} \ No newline at end of file diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/PseudoConsole.cs b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/PseudoConsole.cs new file mode 100644 index 0000000000..bf424ecee4 --- /dev/null +++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/PseudoConsole.cs @@ -0,0 +1,44 @@ +using Microsoft.Win32.SafeHandles; +using System; +using static WpfTerminalTestNetCore.Native.PseudoConsoleApi; + +namespace WpfTerminalTestNetCore +{ + /// + /// Utility functions around the new Pseudo Console APIs + /// + internal sealed class PseudoConsole : IDisposable + { + public static readonly IntPtr PseudoConsoleThreadAttribute = (IntPtr)PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE; + + public IntPtr Handle { get; } + + private PseudoConsole(IntPtr handle) + { + this.Handle = handle; + } + + internal static PseudoConsole Create(SafeFileHandle inputReadSide, SafeFileHandle outputWriteSide, int width, int height) + { + var createResult = CreatePseudoConsole( + new COORD { X = (short)width, Y = (short)height }, + inputReadSide, outputWriteSide, + 0, out IntPtr hPC); + if (createResult != 0) + { + throw new InvalidOperationException("Could not create psuedo console. Error Code " + createResult); + } + return new PseudoConsole(hPC); + } + + public void Resize(short w, short h) + { + ResizePseudoConsole(Handle, new COORD { X = w, Y = h }); + } + + public void Dispose() + { + ClosePseudoConsole(Handle); + } + } +} diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/PseudoConsolePipe.cs b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/PseudoConsolePipe.cs new file mode 100644 index 0000000000..9cefdb8334 --- /dev/null +++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/PseudoConsolePipe.cs @@ -0,0 +1,46 @@ +using Microsoft.Win32.SafeHandles; +using System; +using static WpfTerminalTestNetCore.Native.PseudoConsoleApi; + +namespace WpfTerminalTestNetCore +{ + /// + /// A pipe used to talk to the pseudoconsole, as described in: + /// https://docs.microsoft.com/en-us/windows/console/creating-a-pseudoconsole-session + /// + /// + /// We'll have two instances of this class, one for input and one for output. + /// + internal sealed class PseudoConsolePipe : IDisposable + { + public readonly SafeFileHandle ReadSide; + public readonly SafeFileHandle WriteSide; + + public PseudoConsolePipe() + { + if (!CreatePipe(out ReadSide, out WriteSide, IntPtr.Zero, 0)) + { + throw new InvalidOperationException("failed to create pipe"); + } + } + + #region IDisposable + + void Dispose(bool disposing) + { + if (disposing) + { + ReadSide?.Dispose(); + WriteSide?.Dispose(); + } + } + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + #endregion + } +} diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/WpfTerminalTestNetCore.csproj b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/WpfTerminalTestNetCore.csproj new file mode 100644 index 0000000000..8e5601f688 --- /dev/null +++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/WpfTerminalTestNetCore.csproj @@ -0,0 +1,28 @@ + + + + WinExe + netcoreapp3.1 + true + AnyCPU;x64 + + + + + + + + + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + + diff --git a/src/winconpty/dll/winconpty.def b/src/winconpty/dll/winconpty.def index 1ea7e916ae..1710d6e1ef 100644 --- a/src/winconpty/dll/winconpty.def +++ b/src/winconpty/dll/winconpty.def @@ -2,3 +2,5 @@ EXPORTS CreatePseudoConsole = ConptyCreatePseudoConsole ResizePseudoConsole = ConptyResizePseudoConsole ClosePseudoConsole = ConptyClosePseudoConsole + ConptyCreateStartupInfo + ConptyDestroyStartupInfo diff --git a/src/winconpty/winconpty.cpp b/src/winconpty/winconpty.cpp index ed250b55a6..59a1d43b2c 100644 --- a/src/winconpty/winconpty.cpp +++ b/src/winconpty/winconpty.cpp @@ -4,6 +4,7 @@ #include "precomp.h" #include "winconpty.h" +#include "../server/winbasep.h" #ifdef __INSIDE_WINDOWS #include @@ -189,6 +190,8 @@ HRESULT _CreatePseudoConsole(const HANDLE hToken, L"\\Reference", FALSE)); + pPty->hPtyServer = serverHandle.release(); + pPty->hSignal = signalPipeOurSide.release(); return S_OK; @@ -266,6 +269,12 @@ void _ClosePseudoConsoleMembers(_In_ PseudoConsole* pPty) CloseHandle(pPty->hPtyReference); pPty->hPtyReference = nullptr; } + + if (_HandleIsValid(pPty->hPtyServer)) + { + CloseHandle(pPty->hPtyServer); + pPty->hPtyServer = nullptr; + } } } @@ -386,4 +395,153 @@ extern "C" VOID WINAPI ConptyClosePseudoConsole(_In_ HPCON hPC) } } +extern "C" HRESULT WINAPI ConptyCreateStartupInfo(_In_ HPCON hPC, LPSTARTUPINFOEXW pSiExW) +{ + PseudoConsole* const pPty = (PseudoConsole*)hPC; + auto& siExW{ *pSiExW }; + + siExW = {}; + siExW.StartupInfo.cb = sizeof(STARTUPINFOEX); + siExW.StartupInfo.dwFlags = STARTF_USESTDHANDLES; + + SIZE_T AttributeListSize; + InitializeProcThreadAttributeList(nullptr, + 1, + 0, + &AttributeListSize); + + // Alloc space + auto AttributeList{ wil::make_unique_cotaskmem(AttributeListSize) }; + RETURN_IF_NULL_ALLOC(AttributeList); + + siExW.lpAttributeList = reinterpret_cast(AttributeList.get()); + + // Call second time to actually initialize space. + RETURN_IF_WIN32_BOOL_FALSE(InitializeProcThreadAttributeList(siExW.lpAttributeList, + 1, // This represents the length of the list. We will call UpdateProcThreadAttribute twice so this is 2. + 0, + &AttributeListSize)); + // Set cleanup data for ProcThreadAttributeList if we fail. + auto CleanupProcThreadAttribute = wil::scope_exit([&] { + DeleteProcThreadAttributeList(siExW.lpAttributeList); + }); + + RETURN_IF_WIN32_BOOL_FALSE(UpdateProcThreadAttribute(siExW.lpAttributeList, + 0, + PROC_THREAD_ATTRIBUTE_CONSOLE_REFERENCE, + &pPty->hPtyReference, + sizeof(HANDLE), + NULL, + NULL)); + + AttributeList.release(); + CleanupProcThreadAttribute.release(); + return S_OK; +#if 0 + PseudoConsole* const pPty = (PseudoConsole*)hPC; + auto& siExW{ *pSiExW }; + + wil::unique_handle ClientHandle[3]; + + // Input + RETURN_IF_NTSTATUS_FAILED(CreateClientHandle(ClientHandle[0].addressof(), + pPty->hPtyReference, + L"\\Input", + TRUE)); + + // Output + RETURN_IF_NTSTATUS_FAILED(CreateClientHandle(ClientHandle[1].addressof(), + pPty->hPtyReference, + L"\\Output", + TRUE)); + + // Error is a copy of Output + RETURN_IF_WIN32_BOOL_FALSE(DuplicateHandle(GetCurrentProcess(), + ClientHandle[1].get(), + GetCurrentProcess(), + ClientHandle[2].addressof(), + 0, + TRUE, + DUPLICATE_SAME_ACCESS)); + + // Create the child process. We will temporarily overwrite the values in the + // PEB to force them to be inherited. + + siExW = {}; + siExW.StartupInfo.cb = sizeof(STARTUPINFOEX); + siExW.StartupInfo.dwFlags = STARTF_USESTDHANDLES; + siExW.StartupInfo.hStdInput = ClientHandle[0].get(); + siExW.StartupInfo.hStdOutput = ClientHandle[1].get(); + siExW.StartupInfo.hStdError = ClientHandle[2].get(); + + // Create the extended attributes list that will pass the console server information into the child process. + + // Call first time to find size + SIZE_T AttributeListSize; + InitializeProcThreadAttributeList(nullptr, + 2, + 0, + &AttributeListSize); + + // Alloc space + auto AttributeList{ wil::make_unique_cotaskmem(AttributeListSize) }; + RETURN_IF_NULL_ALLOC(AttributeList); + + siExW.lpAttributeList = reinterpret_cast(AttributeList.get()); + + // Call second time to actually initialize space. + RETURN_IF_WIN32_BOOL_FALSE(InitializeProcThreadAttributeList(siExW.lpAttributeList, + 2, // This represents the length of the list. We will call UpdateProcThreadAttribute twice so this is 2. + 0, + &AttributeListSize)); + // Set cleanup data for ProcThreadAttributeList if we fail. + auto CleanupProcThreadAttribute = wil::scope_exit([&] { + DeleteProcThreadAttributeList(siExW.lpAttributeList); + }); + + RETURN_IF_WIN32_BOOL_FALSE(UpdateProcThreadAttribute(siExW.lpAttributeList, + 0, + PROC_THREAD_ATTRIBUTE_CONSOLE_REFERENCE, + &pPty->hPtyReference, + sizeof(HANDLE), + NULL, + NULL)); + + // UpdateProcThreadAttributes wants this as a bare array of handles and doesn't like our smart structures, + // so set it up for its use. + HANDLE HandleList[4]; + HandleList[0] = siExW.StartupInfo.hStdInput; + HandleList[1] = siExW.StartupInfo.hStdOutput; + HandleList[2] = siExW.StartupInfo.hStdError; + HandleList[3] = pPty->hPtyReference; + + RETURN_IF_WIN32_BOOL_FALSE(UpdateProcThreadAttribute(siExW.lpAttributeList, + 0, + PROC_THREAD_ATTRIBUTE_HANDLE_LIST, + &HandleList[0], + sizeof HandleList, + NULL, + NULL)); + + for (auto& h : ClientHandle) + { + h.release(); + } + AttributeList.release(); + CleanupProcThreadAttribute.release(); + return S_OK; +#endif +} + +extern "C" HRESULT WINAPI ConptyDestroyStartupInfo(LPSTARTUPINFOEXW pSiExW) +{ + DeleteProcThreadAttributeList(pSiExW->lpAttributeList); + CoTaskMemFree(pSiExW->lpAttributeList); + //CloseHandle(pSiExW->StartupInfo.hStdInput); + //CloseHandle(pSiExW->StartupInfo.hStdOutput); + //CloseHandle(pSiExW->StartupInfo.hStdError); + return S_OK; +} + #pragma warning(pop) + diff --git a/src/winconpty/winconpty.h b/src/winconpty/winconpty.h index 53c2279a3f..a8248ecb5c 100644 --- a/src/winconpty/winconpty.h +++ b/src/winconpty/winconpty.h @@ -12,6 +12,7 @@ typedef struct _PseudoConsole HANDLE hSignal; HANDLE hPtyReference; HANDLE hConPtyProcess; + HANDLE hPtyServer; } PseudoConsole; // Signals