diff --git a/docs/utilities/metadata.md b/docs/utilities/metadata.md new file mode 100644 index 00000000..e648b110 --- /dev/null +++ b/docs/utilities/metadata.md @@ -0,0 +1,117 @@ +--- +title: Lambda Metadata +description: Utility +--- + + +The Lambda Metadata utility provides access to the Lambda Metadata Endpoint (LMDS), giving you execution environment metadata like Availability Zone ID. + +## Key features + +* Retrieve Lambda execution environment metadata +* Automatic caching for the sandbox lifetime +* Thread-safe access +* Native AOT compatible + +## Installation + +```bash +dotnet add package AWS.Lambda.Powertools.Metadata +``` + +## Getting started + +```csharp +using AWS.Lambda.Powertools.Metadata; + +public class Function +{ + public string Handler(object input, ILambdaContext context) + { + var azId = LambdaMetadata.AvailabilityZoneId; + return $"Running in AZ: {azId}"; + } +} +``` + +## Available metadata + +| Property | Type | Description | +|-----------------------|-----------|--------------------------------------------------------------------------| +| `AvailabilityZoneId` | `string?` | The AZ where the function is running (e.g., `use1-az1`), or `null` when unavailable | + +## Error handling + +```csharp +using AWS.Lambda.Powertools.Metadata; +using AWS.Lambda.Powertools.Metadata.Exceptions; + +try +{ + var azId = LambdaMetadata.AvailabilityZoneId; +} +catch (LambdaMetadataException ex) +{ + Console.WriteLine($"Failed to get metadata: {ex.Message}"); + + if (ex.StatusCode != -1) + Console.WriteLine($"HTTP Status: {ex.StatusCode}"); +} +``` + +## Refreshing metadata + +Metadata remains constant for the Lambda sandbox lifetime. If you need to force a refresh: + +```csharp +LambdaMetadata.Refresh(); +``` + +## Thread safety + +`LambdaMetadata.AvailabilityZoneId` is thread-safe. You can access it from multiple concurrent invocations without race conditions. + +## Use cases + +### Multi-AZ routing + +```csharp +using AWS.Lambda.Powertools.Metadata; + +public class Function +{ + public async Task Handler(OrderRequest request, ILambdaContext context) + { + var endpoint = LambdaMetadata.AvailabilityZoneId switch + { + "use1-az1" => "https://service-az1.internal", + "use1-az2" => "https://service-az2.internal", + _ => "https://service.internal" + }; + + return await ProcessOrder(request, endpoint); + } +} +``` + +### Logging + +```csharp +using AWS.Lambda.Powertools.Logging; +using AWS.Lambda.Powertools.Metadata; + +public class Function +{ + public Function() + { + Logger.AppendKey("az_id", LambdaMetadata.AvailabilityZoneId); + } + + [Logging] + public string Handler(object input, ILambdaContext context) + { + Logger.LogInformation("Processing request"); + return "Success"; + } +} +``` diff --git a/libraries/AWS.Lambda.Powertools.sln b/libraries/AWS.Lambda.Powertools.sln index 7b472cce..d613a621 100644 --- a/libraries/AWS.Lambda.Powertools.sln +++ b/libraries/AWS.Lambda.Powertools.sln @@ -1,783 +1,809 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.3.32929.385 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{73C9B1E5-3893-47E8-B373-17E5F5D7E6F5}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Common", "src\AWS.Lambda.Powertools.Common\AWS.Lambda.Powertools.Common.csproj", "{ACED222F-BDEB-48B6-BA6E-A28659080766}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Logging", "src\AWS.Lambda.Powertools.Logging\AWS.Lambda.Powertools.Logging.csproj", "{7A6A2996-1F41-4C94-A0A2-3AE963247243}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Metrics", "src\AWS.Lambda.Powertools.Metrics\AWS.Lambda.Powertools.Metrics.csproj", "{3BA6251D-DE4E-4547-AAA9-25F4BA04C636}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Tracing", "src\AWS.Lambda.Powertools.Tracing\AWS.Lambda.Powertools.Tracing.csproj", "{1A3AC28C-3AEE-40FE-B229-9E38BB609547}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1CFF5568-8486-475F-81F6-06105C437528}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Logging.Tests", "tests\AWS.Lambda.Powertools.Logging.Tests\AWS.Lambda.Powertools.Logging.Tests.csproj", "{B68A0D0A-4785-48CB-864F-29E3A8ACA526}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Metrics.Tests", "tests\AWS.Lambda.Powertools.Metrics.Tests\AWS.Lambda.Powertools.Metrics.Tests.csproj", "{A422C742-2CF9-409D-BDAE-15825AB62113}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Tracing.Tests", "tests\AWS.Lambda.Powertools.Tracing.Tests\AWS.Lambda.Powertools.Tracing.Tests.csproj", "{A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Common.Tests", "tests\AWS.Lambda.Powertools.Common.Tests\AWS.Lambda.Powertools.Common.Tests.csproj", "{4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.BatchProcessing", "src\AWS.Lambda.Powertools.BatchProcessing\AWS.Lambda.Powertools.BatchProcessing.csproj", "{F8B4100F-4014-4A1E-8130-D281453B79ED}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.BatchProcessing.Tests", "tests\AWS.Lambda.Powertools.BatchProcessing.Tests\AWS.Lambda.Powertools.BatchProcessing.Tests.csproj", "{12B940EF-A5D3-459D-BD36-A603834D1F7D}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Idempotency", "src\AWS.Lambda.Powertools.Idempotency\AWS.Lambda.Powertools.Idempotency.csproj", "{B7AC87DF-9705-47D9-AC00-C230E577CA5D}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Idempotency.Tests", "tests\AWS.Lambda.Powertools.Idempotency.Tests\AWS.Lambda.Powertools.Idempotency.Tests.csproj", "{3E1D77BD-70AF-4767-B00A-4A321D5AB2C3}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Parameters", "src\AWS.Lambda.Powertools.Parameters\AWS.Lambda.Powertools.Parameters.csproj", "{1ECB31E8-2EF0-41E2-8C71-CB9876D207F0}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Parameters.Tests", "tests\AWS.Lambda.Powertools.Parameters.Tests\AWS.Lambda.Powertools.Parameters.Tests.csproj", "{386A9769-59BF-4BE3-99D4-A9603E300729}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.JMESPath", "src\AWS.Lambda.Powertools.JMESPath\AWS.Lambda.Powertools.JMESPath.csproj", "{4F5020DB-9856-4A6F-B2CB-2C213FD749BC}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.JMESPath.Tests", "tests\AWS.Lambda.Powertools.JMESPath.Tests\AWS.Lambda.Powertools.JMESPath.Tests.csproj", "{B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "e2e", "e2e", "{A19E6CBD-8078-49F9-849E-2E484BFAF324}" - ProjectSection(SolutionItems) = preProject - tests\e2e\Readme.md = tests\e2e\Readme.md - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Infra", "Infra", "{93DEAC72-245F-4FC9-A7B5-DAE7EF7E1AB7}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Functions", "Functions", "{CDAE55EB-9438-4F54-B7ED-931D64324D5F}" - ProjectSection(SolutionItems) = preProject - tests\e2e\functions\payload.json = tests\e2e\functions\payload.json - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Infra", "tests\e2e\infra\Infra.csproj", "{AA532674-A61C-41E6-8F9A-ED53D79AF1EC}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Core", "Core", "{AAFA39E9-66A3-4B9A-AFE9-EAF74A85A7F0}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtils", "tests\e2e\functions\TestUtils\TestUtils.csproj", "{3C6162D7-0162-4BC2-BBF5-0554539A81CD}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Logging", "Logging", "{4EAB66F9-C9CB-4E8A-BEE6-A14CD7FDE02F}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Metrics", "Metrics", "{BA495B95-C463-4759-AA9D-34C6614B3511}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tracing", "Tracing", "{3C9FA701-31FF-4747-B324-E0D252EAFD63}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Function", "tests\e2e\functions\core\logging\Function\src\Function\Function.csproj", "{DEA5A48E-BC47-4E87-858C-282860CA196E}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Function.Tests", "tests\e2e\functions\core\logging\Function\test\Function.Tests\Function.Tests.csproj", "{45D90299-D29F-4380-8FE8-98DF70508290}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AOT-Function", "tests\e2e\functions\core\logging\AOT-Function\src\AOT-Function\AOT-Function.csproj", "{E0DEFF37-3706-4F61-98CA-904E2F964605}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Function", "tests\e2e\functions\core\metrics\Function\src\Function\Function.csproj", "{F858D526-7919-472B-8992-D627A4F3987C}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Function.Tests", "tests\e2e\functions\core\metrics\Function\test\Function.Tests\Function.Tests.csproj", "{92669F13-F9C9-479F-ABA1-163D93ABCF95}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AOT-Function", "tests\e2e\functions\core\metrics\AOT-Function\src\AOT-Function\AOT-Function.csproj", "{CC30B576-10ED-4DB2-A6C7-3A603E671523}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Function", "tests\e2e\functions\core\tracing\Function\src\Function\Function.csproj", "{D22576BE-3D83-47C1-8B35-947C0B6DA8ED}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Function.Tests", "tests\e2e\functions\core\tracing\Function\test\Function.Tests\Function.Tests.csproj", "{8DDAFE37-ED59-4710-9415-8EBA44CC6437}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AOT-Function", "tests\e2e\functions\core\tracing\AOT-Function\src\AOT-Function\AOT-Function.csproj", "{8DDED681-AE8D-45EB-A22E-2FFB88620F9B}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfraAot", "tests\e2e\infra-aot\InfraAot.csproj", "{24AC34AD-AEC9-4CFB-BB01-C3C81938AB95}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfraShared", "tests\e2e\InfraShared\InfraShared.csproj", "{D303B458-9D84-4DDF-8781-2C0211672329}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Idempotency", "Idempotency", "{FB2C7DA3-6FCE-429D-86F9-5775D0231EC6}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Function", "tests\e2e\functions\idempotency\Function\src\Function\Function.csproj", "{9AF99F6D-E8E7-443F-A965-D55B8E388836}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Function.Tests", "tests\e2e\functions\idempotency\Function\test\Function.Tests\Function.Tests.csproj", "{FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AOT-FunctionPayloadSubsetTest", "tests\e2e\functions\idempotency\AOT-Function\src\AOT-FunctionPayloadSubsetTest\AOT-FunctionPayloadSubsetTest.csproj", "{ACA789EA-BD38-490B-A7F8-6A3A86985025}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AOT-FunctionHandlerTest", "tests\e2e\functions\idempotency\AOT-Function\src\AOT-FunctionHandlerTest\AOT-FunctionHandlerTest.csproj", "{E71C48D2-AD56-4177-BBD7-6BB859A40C92}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AOT-FunctionMethodAttributeTest", "tests\e2e\functions\idempotency\AOT-Function\src\AOT-FunctionMethodAttributeTest\AOT-FunctionMethodAttributeTest.csproj", "{CC8CFF43-DC72-464C-A42D-55E023DE8500}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Metrics.AspNetCore", "src\AWS.Lambda.Powertools.Metrics.AspNetCore\AWS.Lambda.Powertools.Metrics.AspNetCore.csproj", "{A2AD98B1-2BED-4864-B573-77BE7B52FED2}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Metrics.AspNetCore.Tests", "tests\AWS.Lambda.Powertools.Metrics.AspNetCore.Tests\AWS.Lambda.Powertools.Metrics.AspNetCore.Tests.csproj", "{F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Metrics", "Metrics", "{A566F2D7-F8FE-466A-8306-85F266B7E656}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AOT-Function-ILogger", "tests\e2e\functions\core\logging\AOT-Function-ILogger\src\AOT-Function-ILogger\AOT-Function-ILogger.csproj", "{7FC6DD65-0352-4139-8D08-B25C0A0403E3}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.EventHandler.Tests", "tests\AWS.Lambda.Powertools.EventHandler.Tests\AWS.Lambda.Powertools.EventHandler.Tests.csproj", "{61374D8E-F77C-4A31-AE07-35DAF1847369}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.EventHandler", "src\AWS.Lambda.Powertools.EventHandler\AWS.Lambda.Powertools.EventHandler.csproj", "{F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.EventHandler.Resolvers.BedrockAgentFunction", "src\AWS.Lambda.Powertools.EventHandler.Resolvers.BedrockAgentFunction\AWS.Lambda.Powertools.EventHandler.Resolvers.BedrockAgentFunction.csproj", "{281F7EB5-ACE5-458F-BC88-46A8899DF3BA}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.EventHandler.Resolvers.BedrockAgentFunction.AspNetCore", "src\AWS.Lambda.Powertools.EventHandler.Resolvers.BedrockAgentFunction.AspNetCore\AWS.Lambda.Powertools.EventHandler.Resolvers.BedrockAgentFunction.AspNetCore.csproj", "{8A22F22E-D10A-4897-A89A-DC76C267F6BB}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Kafka", "src\AWS.Lambda.Powertools.Kafka\AWS.Lambda.Powertools.Kafka.csproj", "{5B0DDE6F-ED16-452F-90D3-F0B6086D51B3}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Kafka.Tests", "tests\AWS.Lambda.Powertools.Kafka.Tests\AWS.Lambda.Powertools.Kafka.Tests.csproj", "{FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Kafka.Avro", "src\AWS.Lambda.Powertools.Kafka.Avro\AWS.Lambda.Powertools.Kafka.Avro.csproj", "{25F0929B-2E04-4ED6-A0ED-5379A0A755B0}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Kafka.Json", "src\AWS.Lambda.Powertools.Kafka.Json\AWS.Lambda.Powertools.Kafka.Json.csproj", "{9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Kafka.Protobuf", "src\AWS.Lambda.Powertools.Kafka.Protobuf\AWS.Lambda.Powertools.Kafka.Protobuf.csproj", "{B640DB80-C982-407B-A2EC-CD29AC77DDB8}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.ModuleInitializer.Tests", "tests\AWS.Lambda.Powertools.ModuleInitializer.Tests\AWS.Lambda.Powertools.ModuleInitializer.Tests.csproj", "{E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.ConcurrencyTests", "tests\AWS.Lambda.Powertools.ConcurrencyTests\AWS.Lambda.Powertools.ConcurrencyTests.csproj", "{D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5}" -EndProject - -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {ACED222F-BDEB-48B6-BA6E-A28659080766}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {ACED222F-BDEB-48B6-BA6E-A28659080766}.Debug|Any CPU.Build.0 = Debug|Any CPU - {ACED222F-BDEB-48B6-BA6E-A28659080766}.Debug|x64.ActiveCfg = Debug|Any CPU - {ACED222F-BDEB-48B6-BA6E-A28659080766}.Debug|x64.Build.0 = Debug|Any CPU - {ACED222F-BDEB-48B6-BA6E-A28659080766}.Debug|x86.ActiveCfg = Debug|Any CPU - {ACED222F-BDEB-48B6-BA6E-A28659080766}.Debug|x86.Build.0 = Debug|Any CPU - {ACED222F-BDEB-48B6-BA6E-A28659080766}.Release|Any CPU.ActiveCfg = Release|Any CPU - {ACED222F-BDEB-48B6-BA6E-A28659080766}.Release|Any CPU.Build.0 = Release|Any CPU - {ACED222F-BDEB-48B6-BA6E-A28659080766}.Release|x64.ActiveCfg = Release|Any CPU - {ACED222F-BDEB-48B6-BA6E-A28659080766}.Release|x64.Build.0 = Release|Any CPU - {ACED222F-BDEB-48B6-BA6E-A28659080766}.Release|x86.ActiveCfg = Release|Any CPU - {ACED222F-BDEB-48B6-BA6E-A28659080766}.Release|x86.Build.0 = Release|Any CPU - {7A6A2996-1F41-4C94-A0A2-3AE963247243}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7A6A2996-1F41-4C94-A0A2-3AE963247243}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7A6A2996-1F41-4C94-A0A2-3AE963247243}.Debug|x64.ActiveCfg = Debug|Any CPU - {7A6A2996-1F41-4C94-A0A2-3AE963247243}.Debug|x64.Build.0 = Debug|Any CPU - {7A6A2996-1F41-4C94-A0A2-3AE963247243}.Debug|x86.ActiveCfg = Debug|Any CPU - {7A6A2996-1F41-4C94-A0A2-3AE963247243}.Debug|x86.Build.0 = Debug|Any CPU - {7A6A2996-1F41-4C94-A0A2-3AE963247243}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7A6A2996-1F41-4C94-A0A2-3AE963247243}.Release|Any CPU.Build.0 = Release|Any CPU - {7A6A2996-1F41-4C94-A0A2-3AE963247243}.Release|x64.ActiveCfg = Release|Any CPU - {7A6A2996-1F41-4C94-A0A2-3AE963247243}.Release|x64.Build.0 = Release|Any CPU - {7A6A2996-1F41-4C94-A0A2-3AE963247243}.Release|x86.ActiveCfg = Release|Any CPU - {7A6A2996-1F41-4C94-A0A2-3AE963247243}.Release|x86.Build.0 = Release|Any CPU - {3BA6251D-DE4E-4547-AAA9-25F4BA04C636}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3BA6251D-DE4E-4547-AAA9-25F4BA04C636}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3BA6251D-DE4E-4547-AAA9-25F4BA04C636}.Debug|x64.ActiveCfg = Debug|Any CPU - {3BA6251D-DE4E-4547-AAA9-25F4BA04C636}.Debug|x64.Build.0 = Debug|Any CPU - {3BA6251D-DE4E-4547-AAA9-25F4BA04C636}.Debug|x86.ActiveCfg = Debug|Any CPU - {3BA6251D-DE4E-4547-AAA9-25F4BA04C636}.Debug|x86.Build.0 = Debug|Any CPU - {3BA6251D-DE4E-4547-AAA9-25F4BA04C636}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3BA6251D-DE4E-4547-AAA9-25F4BA04C636}.Release|Any CPU.Build.0 = Release|Any CPU - {3BA6251D-DE4E-4547-AAA9-25F4BA04C636}.Release|x64.ActiveCfg = Release|Any CPU - {3BA6251D-DE4E-4547-AAA9-25F4BA04C636}.Release|x64.Build.0 = Release|Any CPU - {3BA6251D-DE4E-4547-AAA9-25F4BA04C636}.Release|x86.ActiveCfg = Release|Any CPU - {3BA6251D-DE4E-4547-AAA9-25F4BA04C636}.Release|x86.Build.0 = Release|Any CPU - {1A3AC28C-3AEE-40FE-B229-9E38BB609547}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1A3AC28C-3AEE-40FE-B229-9E38BB609547}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1A3AC28C-3AEE-40FE-B229-9E38BB609547}.Debug|x64.ActiveCfg = Debug|Any CPU - {1A3AC28C-3AEE-40FE-B229-9E38BB609547}.Debug|x64.Build.0 = Debug|Any CPU - {1A3AC28C-3AEE-40FE-B229-9E38BB609547}.Debug|x86.ActiveCfg = Debug|Any CPU - {1A3AC28C-3AEE-40FE-B229-9E38BB609547}.Debug|x86.Build.0 = Debug|Any CPU - {1A3AC28C-3AEE-40FE-B229-9E38BB609547}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1A3AC28C-3AEE-40FE-B229-9E38BB609547}.Release|Any CPU.Build.0 = Release|Any CPU - {1A3AC28C-3AEE-40FE-B229-9E38BB609547}.Release|x64.ActiveCfg = Release|Any CPU - {1A3AC28C-3AEE-40FE-B229-9E38BB609547}.Release|x64.Build.0 = Release|Any CPU - {1A3AC28C-3AEE-40FE-B229-9E38BB609547}.Release|x86.ActiveCfg = Release|Any CPU - {1A3AC28C-3AEE-40FE-B229-9E38BB609547}.Release|x86.Build.0 = Release|Any CPU - {B68A0D0A-4785-48CB-864F-29E3A8ACA526}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B68A0D0A-4785-48CB-864F-29E3A8ACA526}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B68A0D0A-4785-48CB-864F-29E3A8ACA526}.Debug|x64.ActiveCfg = Debug|Any CPU - {B68A0D0A-4785-48CB-864F-29E3A8ACA526}.Debug|x64.Build.0 = Debug|Any CPU - {B68A0D0A-4785-48CB-864F-29E3A8ACA526}.Debug|x86.ActiveCfg = Debug|Any CPU - {B68A0D0A-4785-48CB-864F-29E3A8ACA526}.Debug|x86.Build.0 = Debug|Any CPU - {B68A0D0A-4785-48CB-864F-29E3A8ACA526}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B68A0D0A-4785-48CB-864F-29E3A8ACA526}.Release|Any CPU.Build.0 = Release|Any CPU - {B68A0D0A-4785-48CB-864F-29E3A8ACA526}.Release|x64.ActiveCfg = Release|Any CPU - {B68A0D0A-4785-48CB-864F-29E3A8ACA526}.Release|x64.Build.0 = Release|Any CPU - {B68A0D0A-4785-48CB-864F-29E3A8ACA526}.Release|x86.ActiveCfg = Release|Any CPU - {B68A0D0A-4785-48CB-864F-29E3A8ACA526}.Release|x86.Build.0 = Release|Any CPU - {A422C742-2CF9-409D-BDAE-15825AB62113}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A422C742-2CF9-409D-BDAE-15825AB62113}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A422C742-2CF9-409D-BDAE-15825AB62113}.Debug|x64.ActiveCfg = Debug|Any CPU - {A422C742-2CF9-409D-BDAE-15825AB62113}.Debug|x64.Build.0 = Debug|Any CPU - {A422C742-2CF9-409D-BDAE-15825AB62113}.Debug|x86.ActiveCfg = Debug|Any CPU - {A422C742-2CF9-409D-BDAE-15825AB62113}.Debug|x86.Build.0 = Debug|Any CPU - {A422C742-2CF9-409D-BDAE-15825AB62113}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A422C742-2CF9-409D-BDAE-15825AB62113}.Release|Any CPU.Build.0 = Release|Any CPU - {A422C742-2CF9-409D-BDAE-15825AB62113}.Release|x64.ActiveCfg = Release|Any CPU - {A422C742-2CF9-409D-BDAE-15825AB62113}.Release|x64.Build.0 = Release|Any CPU - {A422C742-2CF9-409D-BDAE-15825AB62113}.Release|x86.ActiveCfg = Release|Any CPU - {A422C742-2CF9-409D-BDAE-15825AB62113}.Release|x86.Build.0 = Release|Any CPU - {A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5}.Debug|x64.ActiveCfg = Debug|Any CPU - {A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5}.Debug|x64.Build.0 = Debug|Any CPU - {A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5}.Debug|x86.ActiveCfg = Debug|Any CPU - {A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5}.Debug|x86.Build.0 = Debug|Any CPU - {A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5}.Release|Any CPU.Build.0 = Release|Any CPU - {A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5}.Release|x64.ActiveCfg = Release|Any CPU - {A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5}.Release|x64.Build.0 = Release|Any CPU - {A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5}.Release|x86.ActiveCfg = Release|Any CPU - {A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5}.Release|x86.Build.0 = Release|Any CPU - {4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E}.Debug|x64.ActiveCfg = Debug|Any CPU - {4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E}.Debug|x64.Build.0 = Debug|Any CPU - {4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E}.Debug|x86.ActiveCfg = Debug|Any CPU - {4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E}.Debug|x86.Build.0 = Debug|Any CPU - {4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E}.Release|Any CPU.Build.0 = Release|Any CPU - {4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E}.Release|x64.ActiveCfg = Release|Any CPU - {4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E}.Release|x64.Build.0 = Release|Any CPU - {4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E}.Release|x86.ActiveCfg = Release|Any CPU - {4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E}.Release|x86.Build.0 = Release|Any CPU - {F8B4100F-4014-4A1E-8130-D281453B79ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F8B4100F-4014-4A1E-8130-D281453B79ED}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F8B4100F-4014-4A1E-8130-D281453B79ED}.Debug|x64.ActiveCfg = Debug|Any CPU - {F8B4100F-4014-4A1E-8130-D281453B79ED}.Debug|x64.Build.0 = Debug|Any CPU - {F8B4100F-4014-4A1E-8130-D281453B79ED}.Debug|x86.ActiveCfg = Debug|Any CPU - {F8B4100F-4014-4A1E-8130-D281453B79ED}.Debug|x86.Build.0 = Debug|Any CPU - {F8B4100F-4014-4A1E-8130-D281453B79ED}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F8B4100F-4014-4A1E-8130-D281453B79ED}.Release|Any CPU.Build.0 = Release|Any CPU - {F8B4100F-4014-4A1E-8130-D281453B79ED}.Release|x64.ActiveCfg = Release|Any CPU - {F8B4100F-4014-4A1E-8130-D281453B79ED}.Release|x64.Build.0 = Release|Any CPU - {F8B4100F-4014-4A1E-8130-D281453B79ED}.Release|x86.ActiveCfg = Release|Any CPU - {F8B4100F-4014-4A1E-8130-D281453B79ED}.Release|x86.Build.0 = Release|Any CPU - {12B940EF-A5D3-459D-BD36-A603834D1F7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {12B940EF-A5D3-459D-BD36-A603834D1F7D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {12B940EF-A5D3-459D-BD36-A603834D1F7D}.Debug|x64.ActiveCfg = Debug|Any CPU - {12B940EF-A5D3-459D-BD36-A603834D1F7D}.Debug|x64.Build.0 = Debug|Any CPU - {12B940EF-A5D3-459D-BD36-A603834D1F7D}.Debug|x86.ActiveCfg = Debug|Any CPU - {12B940EF-A5D3-459D-BD36-A603834D1F7D}.Debug|x86.Build.0 = Debug|Any CPU - {12B940EF-A5D3-459D-BD36-A603834D1F7D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {12B940EF-A5D3-459D-BD36-A603834D1F7D}.Release|Any CPU.Build.0 = Release|Any CPU - {12B940EF-A5D3-459D-BD36-A603834D1F7D}.Release|x64.ActiveCfg = Release|Any CPU - {12B940EF-A5D3-459D-BD36-A603834D1F7D}.Release|x64.Build.0 = Release|Any CPU - {12B940EF-A5D3-459D-BD36-A603834D1F7D}.Release|x86.ActiveCfg = Release|Any CPU - {12B940EF-A5D3-459D-BD36-A603834D1F7D}.Release|x86.Build.0 = Release|Any CPU - {B7AC87DF-9705-47D9-AC00-C230E577CA5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B7AC87DF-9705-47D9-AC00-C230E577CA5D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B7AC87DF-9705-47D9-AC00-C230E577CA5D}.Debug|x64.ActiveCfg = Debug|Any CPU - {B7AC87DF-9705-47D9-AC00-C230E577CA5D}.Debug|x64.Build.0 = Debug|Any CPU - {B7AC87DF-9705-47D9-AC00-C230E577CA5D}.Debug|x86.ActiveCfg = Debug|Any CPU - {B7AC87DF-9705-47D9-AC00-C230E577CA5D}.Debug|x86.Build.0 = Debug|Any CPU - {B7AC87DF-9705-47D9-AC00-C230E577CA5D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B7AC87DF-9705-47D9-AC00-C230E577CA5D}.Release|Any CPU.Build.0 = Release|Any CPU - {B7AC87DF-9705-47D9-AC00-C230E577CA5D}.Release|x64.ActiveCfg = Release|Any CPU - {B7AC87DF-9705-47D9-AC00-C230E577CA5D}.Release|x64.Build.0 = Release|Any CPU - {B7AC87DF-9705-47D9-AC00-C230E577CA5D}.Release|x86.ActiveCfg = Release|Any CPU - {B7AC87DF-9705-47D9-AC00-C230E577CA5D}.Release|x86.Build.0 = Release|Any CPU - {3E1D77BD-70AF-4767-B00A-4A321D5AB2C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3E1D77BD-70AF-4767-B00A-4A321D5AB2C3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3E1D77BD-70AF-4767-B00A-4A321D5AB2C3}.Debug|x64.ActiveCfg = Debug|Any CPU - {3E1D77BD-70AF-4767-B00A-4A321D5AB2C3}.Debug|x64.Build.0 = Debug|Any CPU - {3E1D77BD-70AF-4767-B00A-4A321D5AB2C3}.Debug|x86.ActiveCfg = Debug|Any CPU - {3E1D77BD-70AF-4767-B00A-4A321D5AB2C3}.Debug|x86.Build.0 = Debug|Any CPU - {3E1D77BD-70AF-4767-B00A-4A321D5AB2C3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3E1D77BD-70AF-4767-B00A-4A321D5AB2C3}.Release|Any CPU.Build.0 = Release|Any CPU - {3E1D77BD-70AF-4767-B00A-4A321D5AB2C3}.Release|x64.ActiveCfg = Release|Any CPU - {3E1D77BD-70AF-4767-B00A-4A321D5AB2C3}.Release|x64.Build.0 = Release|Any CPU - {3E1D77BD-70AF-4767-B00A-4A321D5AB2C3}.Release|x86.ActiveCfg = Release|Any CPU - {3E1D77BD-70AF-4767-B00A-4A321D5AB2C3}.Release|x86.Build.0 = Release|Any CPU - {1ECB31E8-2EF0-41E2-8C71-CB9876D207F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1ECB31E8-2EF0-41E2-8C71-CB9876D207F0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1ECB31E8-2EF0-41E2-8C71-CB9876D207F0}.Debug|x64.ActiveCfg = Debug|Any CPU - {1ECB31E8-2EF0-41E2-8C71-CB9876D207F0}.Debug|x64.Build.0 = Debug|Any CPU - {1ECB31E8-2EF0-41E2-8C71-CB9876D207F0}.Debug|x86.ActiveCfg = Debug|Any CPU - {1ECB31E8-2EF0-41E2-8C71-CB9876D207F0}.Debug|x86.Build.0 = Debug|Any CPU - {1ECB31E8-2EF0-41E2-8C71-CB9876D207F0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1ECB31E8-2EF0-41E2-8C71-CB9876D207F0}.Release|Any CPU.Build.0 = Release|Any CPU - {1ECB31E8-2EF0-41E2-8C71-CB9876D207F0}.Release|x64.ActiveCfg = Release|Any CPU - {1ECB31E8-2EF0-41E2-8C71-CB9876D207F0}.Release|x64.Build.0 = Release|Any CPU - {1ECB31E8-2EF0-41E2-8C71-CB9876D207F0}.Release|x86.ActiveCfg = Release|Any CPU - {1ECB31E8-2EF0-41E2-8C71-CB9876D207F0}.Release|x86.Build.0 = Release|Any CPU - {386A9769-59BF-4BE3-99D4-A9603E300729}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {386A9769-59BF-4BE3-99D4-A9603E300729}.Debug|Any CPU.Build.0 = Debug|Any CPU - {386A9769-59BF-4BE3-99D4-A9603E300729}.Debug|x64.ActiveCfg = Debug|Any CPU - {386A9769-59BF-4BE3-99D4-A9603E300729}.Debug|x64.Build.0 = Debug|Any CPU - {386A9769-59BF-4BE3-99D4-A9603E300729}.Debug|x86.ActiveCfg = Debug|Any CPU - {386A9769-59BF-4BE3-99D4-A9603E300729}.Debug|x86.Build.0 = Debug|Any CPU - {386A9769-59BF-4BE3-99D4-A9603E300729}.Release|Any CPU.ActiveCfg = Release|Any CPU - {386A9769-59BF-4BE3-99D4-A9603E300729}.Release|Any CPU.Build.0 = Release|Any CPU - {386A9769-59BF-4BE3-99D4-A9603E300729}.Release|x64.ActiveCfg = Release|Any CPU - {386A9769-59BF-4BE3-99D4-A9603E300729}.Release|x64.Build.0 = Release|Any CPU - {386A9769-59BF-4BE3-99D4-A9603E300729}.Release|x86.ActiveCfg = Release|Any CPU - {386A9769-59BF-4BE3-99D4-A9603E300729}.Release|x86.Build.0 = Release|Any CPU - {4F5020DB-9856-4A6F-B2CB-2C213FD749BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4F5020DB-9856-4A6F-B2CB-2C213FD749BC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4F5020DB-9856-4A6F-B2CB-2C213FD749BC}.Debug|x64.ActiveCfg = Debug|Any CPU - {4F5020DB-9856-4A6F-B2CB-2C213FD749BC}.Debug|x64.Build.0 = Debug|Any CPU - {4F5020DB-9856-4A6F-B2CB-2C213FD749BC}.Debug|x86.ActiveCfg = Debug|Any CPU - {4F5020DB-9856-4A6F-B2CB-2C213FD749BC}.Debug|x86.Build.0 = Debug|Any CPU - {4F5020DB-9856-4A6F-B2CB-2C213FD749BC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4F5020DB-9856-4A6F-B2CB-2C213FD749BC}.Release|Any CPU.Build.0 = Release|Any CPU - {4F5020DB-9856-4A6F-B2CB-2C213FD749BC}.Release|x64.ActiveCfg = Release|Any CPU - {4F5020DB-9856-4A6F-B2CB-2C213FD749BC}.Release|x64.Build.0 = Release|Any CPU - {4F5020DB-9856-4A6F-B2CB-2C213FD749BC}.Release|x86.ActiveCfg = Release|Any CPU - {4F5020DB-9856-4A6F-B2CB-2C213FD749BC}.Release|x86.Build.0 = Release|Any CPU - {B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1}.Debug|x64.ActiveCfg = Debug|Any CPU - {B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1}.Debug|x64.Build.0 = Debug|Any CPU - {B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1}.Debug|x86.ActiveCfg = Debug|Any CPU - {B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1}.Debug|x86.Build.0 = Debug|Any CPU - {B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1}.Release|Any CPU.Build.0 = Release|Any CPU - {B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1}.Release|x64.ActiveCfg = Release|Any CPU - {B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1}.Release|x64.Build.0 = Release|Any CPU - {B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1}.Release|x86.ActiveCfg = Release|Any CPU - {B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1}.Release|x86.Build.0 = Release|Any CPU - {AA532674-A61C-41E6-8F9A-ED53D79AF1EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AA532674-A61C-41E6-8F9A-ED53D79AF1EC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AA532674-A61C-41E6-8F9A-ED53D79AF1EC}.Debug|x64.ActiveCfg = Debug|Any CPU - {AA532674-A61C-41E6-8F9A-ED53D79AF1EC}.Debug|x64.Build.0 = Debug|Any CPU - {AA532674-A61C-41E6-8F9A-ED53D79AF1EC}.Debug|x86.ActiveCfg = Debug|Any CPU - {AA532674-A61C-41E6-8F9A-ED53D79AF1EC}.Debug|x86.Build.0 = Debug|Any CPU - {AA532674-A61C-41E6-8F9A-ED53D79AF1EC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AA532674-A61C-41E6-8F9A-ED53D79AF1EC}.Release|Any CPU.Build.0 = Release|Any CPU - {AA532674-A61C-41E6-8F9A-ED53D79AF1EC}.Release|x64.ActiveCfg = Release|Any CPU - {AA532674-A61C-41E6-8F9A-ED53D79AF1EC}.Release|x64.Build.0 = Release|Any CPU - {AA532674-A61C-41E6-8F9A-ED53D79AF1EC}.Release|x86.ActiveCfg = Release|Any CPU - {AA532674-A61C-41E6-8F9A-ED53D79AF1EC}.Release|x86.Build.0 = Release|Any CPU - {3C6162D7-0162-4BC2-BBF5-0554539A81CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3C6162D7-0162-4BC2-BBF5-0554539A81CD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3C6162D7-0162-4BC2-BBF5-0554539A81CD}.Debug|x64.ActiveCfg = Debug|Any CPU - {3C6162D7-0162-4BC2-BBF5-0554539A81CD}.Debug|x64.Build.0 = Debug|Any CPU - {3C6162D7-0162-4BC2-BBF5-0554539A81CD}.Debug|x86.ActiveCfg = Debug|Any CPU - {3C6162D7-0162-4BC2-BBF5-0554539A81CD}.Debug|x86.Build.0 = Debug|Any CPU - {3C6162D7-0162-4BC2-BBF5-0554539A81CD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3C6162D7-0162-4BC2-BBF5-0554539A81CD}.Release|Any CPU.Build.0 = Release|Any CPU - {3C6162D7-0162-4BC2-BBF5-0554539A81CD}.Release|x64.ActiveCfg = Release|Any CPU - {3C6162D7-0162-4BC2-BBF5-0554539A81CD}.Release|x64.Build.0 = Release|Any CPU - {3C6162D7-0162-4BC2-BBF5-0554539A81CD}.Release|x86.ActiveCfg = Release|Any CPU - {3C6162D7-0162-4BC2-BBF5-0554539A81CD}.Release|x86.Build.0 = Release|Any CPU - {DEA5A48E-BC47-4E87-858C-282860CA196E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DEA5A48E-BC47-4E87-858C-282860CA196E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DEA5A48E-BC47-4E87-858C-282860CA196E}.Debug|x64.ActiveCfg = Debug|Any CPU - {DEA5A48E-BC47-4E87-858C-282860CA196E}.Debug|x64.Build.0 = Debug|Any CPU - {DEA5A48E-BC47-4E87-858C-282860CA196E}.Debug|x86.ActiveCfg = Debug|Any CPU - {DEA5A48E-BC47-4E87-858C-282860CA196E}.Debug|x86.Build.0 = Debug|Any CPU - {DEA5A48E-BC47-4E87-858C-282860CA196E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DEA5A48E-BC47-4E87-858C-282860CA196E}.Release|Any CPU.Build.0 = Release|Any CPU - {DEA5A48E-BC47-4E87-858C-282860CA196E}.Release|x64.ActiveCfg = Release|Any CPU - {DEA5A48E-BC47-4E87-858C-282860CA196E}.Release|x64.Build.0 = Release|Any CPU - {DEA5A48E-BC47-4E87-858C-282860CA196E}.Release|x86.ActiveCfg = Release|Any CPU - {DEA5A48E-BC47-4E87-858C-282860CA196E}.Release|x86.Build.0 = Release|Any CPU - {45D90299-D29F-4380-8FE8-98DF70508290}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {45D90299-D29F-4380-8FE8-98DF70508290}.Debug|Any CPU.Build.0 = Debug|Any CPU - {45D90299-D29F-4380-8FE8-98DF70508290}.Debug|x64.ActiveCfg = Debug|Any CPU - {45D90299-D29F-4380-8FE8-98DF70508290}.Debug|x64.Build.0 = Debug|Any CPU - {45D90299-D29F-4380-8FE8-98DF70508290}.Debug|x86.ActiveCfg = Debug|Any CPU - {45D90299-D29F-4380-8FE8-98DF70508290}.Debug|x86.Build.0 = Debug|Any CPU - {45D90299-D29F-4380-8FE8-98DF70508290}.Release|Any CPU.ActiveCfg = Release|Any CPU - {45D90299-D29F-4380-8FE8-98DF70508290}.Release|Any CPU.Build.0 = Release|Any CPU - {45D90299-D29F-4380-8FE8-98DF70508290}.Release|x64.ActiveCfg = Release|Any CPU - {45D90299-D29F-4380-8FE8-98DF70508290}.Release|x64.Build.0 = Release|Any CPU - {45D90299-D29F-4380-8FE8-98DF70508290}.Release|x86.ActiveCfg = Release|Any CPU - {45D90299-D29F-4380-8FE8-98DF70508290}.Release|x86.Build.0 = Release|Any CPU - {E0DEFF37-3706-4F61-98CA-904E2F964605}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E0DEFF37-3706-4F61-98CA-904E2F964605}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E0DEFF37-3706-4F61-98CA-904E2F964605}.Debug|x64.ActiveCfg = Debug|Any CPU - {E0DEFF37-3706-4F61-98CA-904E2F964605}.Debug|x64.Build.0 = Debug|Any CPU - {E0DEFF37-3706-4F61-98CA-904E2F964605}.Debug|x86.ActiveCfg = Debug|Any CPU - {E0DEFF37-3706-4F61-98CA-904E2F964605}.Debug|x86.Build.0 = Debug|Any CPU - {E0DEFF37-3706-4F61-98CA-904E2F964605}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E0DEFF37-3706-4F61-98CA-904E2F964605}.Release|Any CPU.Build.0 = Release|Any CPU - {E0DEFF37-3706-4F61-98CA-904E2F964605}.Release|x64.ActiveCfg = Release|Any CPU - {E0DEFF37-3706-4F61-98CA-904E2F964605}.Release|x64.Build.0 = Release|Any CPU - {E0DEFF37-3706-4F61-98CA-904E2F964605}.Release|x86.ActiveCfg = Release|Any CPU - {E0DEFF37-3706-4F61-98CA-904E2F964605}.Release|x86.Build.0 = Release|Any CPU - {F858D526-7919-472B-8992-D627A4F3987C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F858D526-7919-472B-8992-D627A4F3987C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F858D526-7919-472B-8992-D627A4F3987C}.Debug|x64.ActiveCfg = Debug|Any CPU - {F858D526-7919-472B-8992-D627A4F3987C}.Debug|x64.Build.0 = Debug|Any CPU - {F858D526-7919-472B-8992-D627A4F3987C}.Debug|x86.ActiveCfg = Debug|Any CPU - {F858D526-7919-472B-8992-D627A4F3987C}.Debug|x86.Build.0 = Debug|Any CPU - {F858D526-7919-472B-8992-D627A4F3987C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F858D526-7919-472B-8992-D627A4F3987C}.Release|Any CPU.Build.0 = Release|Any CPU - {F858D526-7919-472B-8992-D627A4F3987C}.Release|x64.ActiveCfg = Release|Any CPU - {F858D526-7919-472B-8992-D627A4F3987C}.Release|x64.Build.0 = Release|Any CPU - {F858D526-7919-472B-8992-D627A4F3987C}.Release|x86.ActiveCfg = Release|Any CPU - {F858D526-7919-472B-8992-D627A4F3987C}.Release|x86.Build.0 = Release|Any CPU - {92669F13-F9C9-479F-ABA1-163D93ABCF95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {92669F13-F9C9-479F-ABA1-163D93ABCF95}.Debug|Any CPU.Build.0 = Debug|Any CPU - {92669F13-F9C9-479F-ABA1-163D93ABCF95}.Debug|x64.ActiveCfg = Debug|Any CPU - {92669F13-F9C9-479F-ABA1-163D93ABCF95}.Debug|x64.Build.0 = Debug|Any CPU - {92669F13-F9C9-479F-ABA1-163D93ABCF95}.Debug|x86.ActiveCfg = Debug|Any CPU - {92669F13-F9C9-479F-ABA1-163D93ABCF95}.Debug|x86.Build.0 = Debug|Any CPU - {92669F13-F9C9-479F-ABA1-163D93ABCF95}.Release|Any CPU.ActiveCfg = Release|Any CPU - {92669F13-F9C9-479F-ABA1-163D93ABCF95}.Release|Any CPU.Build.0 = Release|Any CPU - {92669F13-F9C9-479F-ABA1-163D93ABCF95}.Release|x64.ActiveCfg = Release|Any CPU - {92669F13-F9C9-479F-ABA1-163D93ABCF95}.Release|x64.Build.0 = Release|Any CPU - {92669F13-F9C9-479F-ABA1-163D93ABCF95}.Release|x86.ActiveCfg = Release|Any CPU - {92669F13-F9C9-479F-ABA1-163D93ABCF95}.Release|x86.Build.0 = Release|Any CPU - {CC30B576-10ED-4DB2-A6C7-3A603E671523}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CC30B576-10ED-4DB2-A6C7-3A603E671523}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CC30B576-10ED-4DB2-A6C7-3A603E671523}.Debug|x64.ActiveCfg = Debug|Any CPU - {CC30B576-10ED-4DB2-A6C7-3A603E671523}.Debug|x64.Build.0 = Debug|Any CPU - {CC30B576-10ED-4DB2-A6C7-3A603E671523}.Debug|x86.ActiveCfg = Debug|Any CPU - {CC30B576-10ED-4DB2-A6C7-3A603E671523}.Debug|x86.Build.0 = Debug|Any CPU - {CC30B576-10ED-4DB2-A6C7-3A603E671523}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CC30B576-10ED-4DB2-A6C7-3A603E671523}.Release|Any CPU.Build.0 = Release|Any CPU - {CC30B576-10ED-4DB2-A6C7-3A603E671523}.Release|x64.ActiveCfg = Release|Any CPU - {CC30B576-10ED-4DB2-A6C7-3A603E671523}.Release|x64.Build.0 = Release|Any CPU - {CC30B576-10ED-4DB2-A6C7-3A603E671523}.Release|x86.ActiveCfg = Release|Any CPU - {CC30B576-10ED-4DB2-A6C7-3A603E671523}.Release|x86.Build.0 = Release|Any CPU - {D22576BE-3D83-47C1-8B35-947C0B6DA8ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D22576BE-3D83-47C1-8B35-947C0B6DA8ED}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D22576BE-3D83-47C1-8B35-947C0B6DA8ED}.Debug|x64.ActiveCfg = Debug|Any CPU - {D22576BE-3D83-47C1-8B35-947C0B6DA8ED}.Debug|x64.Build.0 = Debug|Any CPU - {D22576BE-3D83-47C1-8B35-947C0B6DA8ED}.Debug|x86.ActiveCfg = Debug|Any CPU - {D22576BE-3D83-47C1-8B35-947C0B6DA8ED}.Debug|x86.Build.0 = Debug|Any CPU - {D22576BE-3D83-47C1-8B35-947C0B6DA8ED}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D22576BE-3D83-47C1-8B35-947C0B6DA8ED}.Release|Any CPU.Build.0 = Release|Any CPU - {D22576BE-3D83-47C1-8B35-947C0B6DA8ED}.Release|x64.ActiveCfg = Release|Any CPU - {D22576BE-3D83-47C1-8B35-947C0B6DA8ED}.Release|x64.Build.0 = Release|Any CPU - {D22576BE-3D83-47C1-8B35-947C0B6DA8ED}.Release|x86.ActiveCfg = Release|Any CPU - {D22576BE-3D83-47C1-8B35-947C0B6DA8ED}.Release|x86.Build.0 = Release|Any CPU - {8DDAFE37-ED59-4710-9415-8EBA44CC6437}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8DDAFE37-ED59-4710-9415-8EBA44CC6437}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8DDAFE37-ED59-4710-9415-8EBA44CC6437}.Debug|x64.ActiveCfg = Debug|Any CPU - {8DDAFE37-ED59-4710-9415-8EBA44CC6437}.Debug|x64.Build.0 = Debug|Any CPU - {8DDAFE37-ED59-4710-9415-8EBA44CC6437}.Debug|x86.ActiveCfg = Debug|Any CPU - {8DDAFE37-ED59-4710-9415-8EBA44CC6437}.Debug|x86.Build.0 = Debug|Any CPU - {8DDAFE37-ED59-4710-9415-8EBA44CC6437}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8DDAFE37-ED59-4710-9415-8EBA44CC6437}.Release|Any CPU.Build.0 = Release|Any CPU - {8DDAFE37-ED59-4710-9415-8EBA44CC6437}.Release|x64.ActiveCfg = Release|Any CPU - {8DDAFE37-ED59-4710-9415-8EBA44CC6437}.Release|x64.Build.0 = Release|Any CPU - {8DDAFE37-ED59-4710-9415-8EBA44CC6437}.Release|x86.ActiveCfg = Release|Any CPU - {8DDAFE37-ED59-4710-9415-8EBA44CC6437}.Release|x86.Build.0 = Release|Any CPU - {8DDED681-AE8D-45EB-A22E-2FFB88620F9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8DDED681-AE8D-45EB-A22E-2FFB88620F9B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8DDED681-AE8D-45EB-A22E-2FFB88620F9B}.Debug|x64.ActiveCfg = Debug|Any CPU - {8DDED681-AE8D-45EB-A22E-2FFB88620F9B}.Debug|x64.Build.0 = Debug|Any CPU - {8DDED681-AE8D-45EB-A22E-2FFB88620F9B}.Debug|x86.ActiveCfg = Debug|Any CPU - {8DDED681-AE8D-45EB-A22E-2FFB88620F9B}.Debug|x86.Build.0 = Debug|Any CPU - {8DDED681-AE8D-45EB-A22E-2FFB88620F9B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8DDED681-AE8D-45EB-A22E-2FFB88620F9B}.Release|Any CPU.Build.0 = Release|Any CPU - {8DDED681-AE8D-45EB-A22E-2FFB88620F9B}.Release|x64.ActiveCfg = Release|Any CPU - {8DDED681-AE8D-45EB-A22E-2FFB88620F9B}.Release|x64.Build.0 = Release|Any CPU - {8DDED681-AE8D-45EB-A22E-2FFB88620F9B}.Release|x86.ActiveCfg = Release|Any CPU - {8DDED681-AE8D-45EB-A22E-2FFB88620F9B}.Release|x86.Build.0 = Release|Any CPU - {24AC34AD-AEC9-4CFB-BB01-C3C81938AB95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {24AC34AD-AEC9-4CFB-BB01-C3C81938AB95}.Debug|Any CPU.Build.0 = Debug|Any CPU - {24AC34AD-AEC9-4CFB-BB01-C3C81938AB95}.Debug|x64.ActiveCfg = Debug|Any CPU - {24AC34AD-AEC9-4CFB-BB01-C3C81938AB95}.Debug|x64.Build.0 = Debug|Any CPU - {24AC34AD-AEC9-4CFB-BB01-C3C81938AB95}.Debug|x86.ActiveCfg = Debug|Any CPU - {24AC34AD-AEC9-4CFB-BB01-C3C81938AB95}.Debug|x86.Build.0 = Debug|Any CPU - {24AC34AD-AEC9-4CFB-BB01-C3C81938AB95}.Release|Any CPU.ActiveCfg = Release|Any CPU - {24AC34AD-AEC9-4CFB-BB01-C3C81938AB95}.Release|Any CPU.Build.0 = Release|Any CPU - {24AC34AD-AEC9-4CFB-BB01-C3C81938AB95}.Release|x64.ActiveCfg = Release|Any CPU - {24AC34AD-AEC9-4CFB-BB01-C3C81938AB95}.Release|x64.Build.0 = Release|Any CPU - {24AC34AD-AEC9-4CFB-BB01-C3C81938AB95}.Release|x86.ActiveCfg = Release|Any CPU - {24AC34AD-AEC9-4CFB-BB01-C3C81938AB95}.Release|x86.Build.0 = Release|Any CPU - {D303B458-9D84-4DDF-8781-2C0211672329}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D303B458-9D84-4DDF-8781-2C0211672329}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D303B458-9D84-4DDF-8781-2C0211672329}.Debug|x64.ActiveCfg = Debug|Any CPU - {D303B458-9D84-4DDF-8781-2C0211672329}.Debug|x64.Build.0 = Debug|Any CPU - {D303B458-9D84-4DDF-8781-2C0211672329}.Debug|x86.ActiveCfg = Debug|Any CPU - {D303B458-9D84-4DDF-8781-2C0211672329}.Debug|x86.Build.0 = Debug|Any CPU - {D303B458-9D84-4DDF-8781-2C0211672329}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D303B458-9D84-4DDF-8781-2C0211672329}.Release|Any CPU.Build.0 = Release|Any CPU - {D303B458-9D84-4DDF-8781-2C0211672329}.Release|x64.ActiveCfg = Release|Any CPU - {D303B458-9D84-4DDF-8781-2C0211672329}.Release|x64.Build.0 = Release|Any CPU - {D303B458-9D84-4DDF-8781-2C0211672329}.Release|x86.ActiveCfg = Release|Any CPU - {D303B458-9D84-4DDF-8781-2C0211672329}.Release|x86.Build.0 = Release|Any CPU - {9AF99F6D-E8E7-443F-A965-D55B8E388836}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9AF99F6D-E8E7-443F-A965-D55B8E388836}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9AF99F6D-E8E7-443F-A965-D55B8E388836}.Debug|x64.ActiveCfg = Debug|Any CPU - {9AF99F6D-E8E7-443F-A965-D55B8E388836}.Debug|x64.Build.0 = Debug|Any CPU - {9AF99F6D-E8E7-443F-A965-D55B8E388836}.Debug|x86.ActiveCfg = Debug|Any CPU - {9AF99F6D-E8E7-443F-A965-D55B8E388836}.Debug|x86.Build.0 = Debug|Any CPU - {9AF99F6D-E8E7-443F-A965-D55B8E388836}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9AF99F6D-E8E7-443F-A965-D55B8E388836}.Release|Any CPU.Build.0 = Release|Any CPU - {9AF99F6D-E8E7-443F-A965-D55B8E388836}.Release|x64.ActiveCfg = Release|Any CPU - {9AF99F6D-E8E7-443F-A965-D55B8E388836}.Release|x64.Build.0 = Release|Any CPU - {9AF99F6D-E8E7-443F-A965-D55B8E388836}.Release|x86.ActiveCfg = Release|Any CPU - {9AF99F6D-E8E7-443F-A965-D55B8E388836}.Release|x86.Build.0 = Release|Any CPU - {FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC}.Debug|x64.ActiveCfg = Debug|Any CPU - {FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC}.Debug|x64.Build.0 = Debug|Any CPU - {FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC}.Debug|x86.ActiveCfg = Debug|Any CPU - {FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC}.Debug|x86.Build.0 = Debug|Any CPU - {FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC}.Release|Any CPU.Build.0 = Release|Any CPU - {FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC}.Release|x64.ActiveCfg = Release|Any CPU - {FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC}.Release|x64.Build.0 = Release|Any CPU - {FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC}.Release|x86.ActiveCfg = Release|Any CPU - {FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC}.Release|x86.Build.0 = Release|Any CPU - {ACA789EA-BD38-490B-A7F8-6A3A86985025}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {ACA789EA-BD38-490B-A7F8-6A3A86985025}.Debug|Any CPU.Build.0 = Debug|Any CPU - {ACA789EA-BD38-490B-A7F8-6A3A86985025}.Debug|x64.ActiveCfg = Debug|Any CPU - {ACA789EA-BD38-490B-A7F8-6A3A86985025}.Debug|x64.Build.0 = Debug|Any CPU - {ACA789EA-BD38-490B-A7F8-6A3A86985025}.Debug|x86.ActiveCfg = Debug|Any CPU - {ACA789EA-BD38-490B-A7F8-6A3A86985025}.Debug|x86.Build.0 = Debug|Any CPU - {ACA789EA-BD38-490B-A7F8-6A3A86985025}.Release|Any CPU.ActiveCfg = Release|Any CPU - {ACA789EA-BD38-490B-A7F8-6A3A86985025}.Release|Any CPU.Build.0 = Release|Any CPU - {ACA789EA-BD38-490B-A7F8-6A3A86985025}.Release|x64.ActiveCfg = Release|Any CPU - {ACA789EA-BD38-490B-A7F8-6A3A86985025}.Release|x64.Build.0 = Release|Any CPU - {ACA789EA-BD38-490B-A7F8-6A3A86985025}.Release|x86.ActiveCfg = Release|Any CPU - {ACA789EA-BD38-490B-A7F8-6A3A86985025}.Release|x86.Build.0 = Release|Any CPU - {E71C48D2-AD56-4177-BBD7-6BB859A40C92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E71C48D2-AD56-4177-BBD7-6BB859A40C92}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E71C48D2-AD56-4177-BBD7-6BB859A40C92}.Debug|x64.ActiveCfg = Debug|Any CPU - {E71C48D2-AD56-4177-BBD7-6BB859A40C92}.Debug|x64.Build.0 = Debug|Any CPU - {E71C48D2-AD56-4177-BBD7-6BB859A40C92}.Debug|x86.ActiveCfg = Debug|Any CPU - {E71C48D2-AD56-4177-BBD7-6BB859A40C92}.Debug|x86.Build.0 = Debug|Any CPU - {E71C48D2-AD56-4177-BBD7-6BB859A40C92}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E71C48D2-AD56-4177-BBD7-6BB859A40C92}.Release|Any CPU.Build.0 = Release|Any CPU - {E71C48D2-AD56-4177-BBD7-6BB859A40C92}.Release|x64.ActiveCfg = Release|Any CPU - {E71C48D2-AD56-4177-BBD7-6BB859A40C92}.Release|x64.Build.0 = Release|Any CPU - {E71C48D2-AD56-4177-BBD7-6BB859A40C92}.Release|x86.ActiveCfg = Release|Any CPU - {E71C48D2-AD56-4177-BBD7-6BB859A40C92}.Release|x86.Build.0 = Release|Any CPU - {CC8CFF43-DC72-464C-A42D-55E023DE8500}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CC8CFF43-DC72-464C-A42D-55E023DE8500}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CC8CFF43-DC72-464C-A42D-55E023DE8500}.Debug|x64.ActiveCfg = Debug|Any CPU - {CC8CFF43-DC72-464C-A42D-55E023DE8500}.Debug|x64.Build.0 = Debug|Any CPU - {CC8CFF43-DC72-464C-A42D-55E023DE8500}.Debug|x86.ActiveCfg = Debug|Any CPU - {CC8CFF43-DC72-464C-A42D-55E023DE8500}.Debug|x86.Build.0 = Debug|Any CPU - {CC8CFF43-DC72-464C-A42D-55E023DE8500}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CC8CFF43-DC72-464C-A42D-55E023DE8500}.Release|Any CPU.Build.0 = Release|Any CPU - {CC8CFF43-DC72-464C-A42D-55E023DE8500}.Release|x64.ActiveCfg = Release|Any CPU - {CC8CFF43-DC72-464C-A42D-55E023DE8500}.Release|x64.Build.0 = Release|Any CPU - {CC8CFF43-DC72-464C-A42D-55E023DE8500}.Release|x86.ActiveCfg = Release|Any CPU - {CC8CFF43-DC72-464C-A42D-55E023DE8500}.Release|x86.Build.0 = Release|Any CPU - {A2AD98B1-2BED-4864-B573-77BE7B52FED2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A2AD98B1-2BED-4864-B573-77BE7B52FED2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A2AD98B1-2BED-4864-B573-77BE7B52FED2}.Debug|x64.ActiveCfg = Debug|Any CPU - {A2AD98B1-2BED-4864-B573-77BE7B52FED2}.Debug|x64.Build.0 = Debug|Any CPU - {A2AD98B1-2BED-4864-B573-77BE7B52FED2}.Debug|x86.ActiveCfg = Debug|Any CPU - {A2AD98B1-2BED-4864-B573-77BE7B52FED2}.Debug|x86.Build.0 = Debug|Any CPU - {A2AD98B1-2BED-4864-B573-77BE7B52FED2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A2AD98B1-2BED-4864-B573-77BE7B52FED2}.Release|Any CPU.Build.0 = Release|Any CPU - {A2AD98B1-2BED-4864-B573-77BE7B52FED2}.Release|x64.ActiveCfg = Release|Any CPU - {A2AD98B1-2BED-4864-B573-77BE7B52FED2}.Release|x64.Build.0 = Release|Any CPU - {A2AD98B1-2BED-4864-B573-77BE7B52FED2}.Release|x86.ActiveCfg = Release|Any CPU - {A2AD98B1-2BED-4864-B573-77BE7B52FED2}.Release|x86.Build.0 = Release|Any CPU - {F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB}.Debug|x64.ActiveCfg = Debug|Any CPU - {F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB}.Debug|x64.Build.0 = Debug|Any CPU - {F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB}.Debug|x86.ActiveCfg = Debug|Any CPU - {F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB}.Debug|x86.Build.0 = Debug|Any CPU - {F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB}.Release|Any CPU.Build.0 = Release|Any CPU - {F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB}.Release|x64.ActiveCfg = Release|Any CPU - {F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB}.Release|x64.Build.0 = Release|Any CPU - {F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB}.Release|x86.ActiveCfg = Release|Any CPU - {F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB}.Release|x86.Build.0 = Release|Any CPU - {7FC6DD65-0352-4139-8D08-B25C0A0403E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7FC6DD65-0352-4139-8D08-B25C0A0403E3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7FC6DD65-0352-4139-8D08-B25C0A0403E3}.Debug|x64.ActiveCfg = Debug|Any CPU - {7FC6DD65-0352-4139-8D08-B25C0A0403E3}.Debug|x64.Build.0 = Debug|Any CPU - {7FC6DD65-0352-4139-8D08-B25C0A0403E3}.Debug|x86.ActiveCfg = Debug|Any CPU - {7FC6DD65-0352-4139-8D08-B25C0A0403E3}.Debug|x86.Build.0 = Debug|Any CPU - {7FC6DD65-0352-4139-8D08-B25C0A0403E3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7FC6DD65-0352-4139-8D08-B25C0A0403E3}.Release|Any CPU.Build.0 = Release|Any CPU - {7FC6DD65-0352-4139-8D08-B25C0A0403E3}.Release|x64.ActiveCfg = Release|Any CPU - {7FC6DD65-0352-4139-8D08-B25C0A0403E3}.Release|x64.Build.0 = Release|Any CPU - {7FC6DD65-0352-4139-8D08-B25C0A0403E3}.Release|x86.ActiveCfg = Release|Any CPU - {7FC6DD65-0352-4139-8D08-B25C0A0403E3}.Release|x86.Build.0 = Release|Any CPU - {61374D8E-F77C-4A31-AE07-35DAF1847369}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {61374D8E-F77C-4A31-AE07-35DAF1847369}.Debug|Any CPU.Build.0 = Debug|Any CPU - {61374D8E-F77C-4A31-AE07-35DAF1847369}.Debug|x64.ActiveCfg = Debug|Any CPU - {61374D8E-F77C-4A31-AE07-35DAF1847369}.Debug|x64.Build.0 = Debug|Any CPU - {61374D8E-F77C-4A31-AE07-35DAF1847369}.Debug|x86.ActiveCfg = Debug|Any CPU - {61374D8E-F77C-4A31-AE07-35DAF1847369}.Debug|x86.Build.0 = Debug|Any CPU - {61374D8E-F77C-4A31-AE07-35DAF1847369}.Release|Any CPU.ActiveCfg = Release|Any CPU - {61374D8E-F77C-4A31-AE07-35DAF1847369}.Release|Any CPU.Build.0 = Release|Any CPU - {61374D8E-F77C-4A31-AE07-35DAF1847369}.Release|x64.ActiveCfg = Release|Any CPU - {61374D8E-F77C-4A31-AE07-35DAF1847369}.Release|x64.Build.0 = Release|Any CPU - {61374D8E-F77C-4A31-AE07-35DAF1847369}.Release|x86.ActiveCfg = Release|Any CPU - {61374D8E-F77C-4A31-AE07-35DAF1847369}.Release|x86.Build.0 = Release|Any CPU - {F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE}.Debug|x64.ActiveCfg = Debug|Any CPU - {F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE}.Debug|x64.Build.0 = Debug|Any CPU - {F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE}.Debug|x86.ActiveCfg = Debug|Any CPU - {F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE}.Debug|x86.Build.0 = Debug|Any CPU - {F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE}.Release|Any CPU.Build.0 = Release|Any CPU - {F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE}.Release|x64.ActiveCfg = Release|Any CPU - {F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE}.Release|x64.Build.0 = Release|Any CPU - {F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE}.Release|x86.ActiveCfg = Release|Any CPU - {F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE}.Release|x86.Build.0 = Release|Any CPU - {281F7EB5-ACE5-458F-BC88-46A8899DF3BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {281F7EB5-ACE5-458F-BC88-46A8899DF3BA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {281F7EB5-ACE5-458F-BC88-46A8899DF3BA}.Debug|x64.ActiveCfg = Debug|Any CPU - {281F7EB5-ACE5-458F-BC88-46A8899DF3BA}.Debug|x64.Build.0 = Debug|Any CPU - {281F7EB5-ACE5-458F-BC88-46A8899DF3BA}.Debug|x86.ActiveCfg = Debug|Any CPU - {281F7EB5-ACE5-458F-BC88-46A8899DF3BA}.Debug|x86.Build.0 = Debug|Any CPU - {281F7EB5-ACE5-458F-BC88-46A8899DF3BA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {281F7EB5-ACE5-458F-BC88-46A8899DF3BA}.Release|Any CPU.Build.0 = Release|Any CPU - {281F7EB5-ACE5-458F-BC88-46A8899DF3BA}.Release|x64.ActiveCfg = Release|Any CPU - {281F7EB5-ACE5-458F-BC88-46A8899DF3BA}.Release|x64.Build.0 = Release|Any CPU - {281F7EB5-ACE5-458F-BC88-46A8899DF3BA}.Release|x86.ActiveCfg = Release|Any CPU - {281F7EB5-ACE5-458F-BC88-46A8899DF3BA}.Release|x86.Build.0 = Release|Any CPU - {8A22F22E-D10A-4897-A89A-DC76C267F6BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8A22F22E-D10A-4897-A89A-DC76C267F6BB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8A22F22E-D10A-4897-A89A-DC76C267F6BB}.Debug|x64.ActiveCfg = Debug|Any CPU - {8A22F22E-D10A-4897-A89A-DC76C267F6BB}.Debug|x64.Build.0 = Debug|Any CPU - {8A22F22E-D10A-4897-A89A-DC76C267F6BB}.Debug|x86.ActiveCfg = Debug|Any CPU - {8A22F22E-D10A-4897-A89A-DC76C267F6BB}.Debug|x86.Build.0 = Debug|Any CPU - {8A22F22E-D10A-4897-A89A-DC76C267F6BB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8A22F22E-D10A-4897-A89A-DC76C267F6BB}.Release|Any CPU.Build.0 = Release|Any CPU - {8A22F22E-D10A-4897-A89A-DC76C267F6BB}.Release|x64.ActiveCfg = Release|Any CPU - {8A22F22E-D10A-4897-A89A-DC76C267F6BB}.Release|x64.Build.0 = Release|Any CPU - {8A22F22E-D10A-4897-A89A-DC76C267F6BB}.Release|x86.ActiveCfg = Release|Any CPU - {8A22F22E-D10A-4897-A89A-DC76C267F6BB}.Release|x86.Build.0 = Release|Any CPU - {5B0DDE6F-ED16-452F-90D3-F0B6086D51B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5B0DDE6F-ED16-452F-90D3-F0B6086D51B3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5B0DDE6F-ED16-452F-90D3-F0B6086D51B3}.Debug|x64.ActiveCfg = Debug|Any CPU - {5B0DDE6F-ED16-452F-90D3-F0B6086D51B3}.Debug|x64.Build.0 = Debug|Any CPU - {5B0DDE6F-ED16-452F-90D3-F0B6086D51B3}.Debug|x86.ActiveCfg = Debug|Any CPU - {5B0DDE6F-ED16-452F-90D3-F0B6086D51B3}.Debug|x86.Build.0 = Debug|Any CPU - {5B0DDE6F-ED16-452F-90D3-F0B6086D51B3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5B0DDE6F-ED16-452F-90D3-F0B6086D51B3}.Release|Any CPU.Build.0 = Release|Any CPU - {5B0DDE6F-ED16-452F-90D3-F0B6086D51B3}.Release|x64.ActiveCfg = Release|Any CPU - {5B0DDE6F-ED16-452F-90D3-F0B6086D51B3}.Release|x64.Build.0 = Release|Any CPU - {5B0DDE6F-ED16-452F-90D3-F0B6086D51B3}.Release|x86.ActiveCfg = Release|Any CPU - {5B0DDE6F-ED16-452F-90D3-F0B6086D51B3}.Release|x86.Build.0 = Release|Any CPU - {FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645}.Debug|x64.ActiveCfg = Debug|Any CPU - {FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645}.Debug|x64.Build.0 = Debug|Any CPU - {FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645}.Debug|x86.ActiveCfg = Debug|Any CPU - {FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645}.Debug|x86.Build.0 = Debug|Any CPU - {FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645}.Release|Any CPU.Build.0 = Release|Any CPU - {FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645}.Release|x64.ActiveCfg = Release|Any CPU - {FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645}.Release|x64.Build.0 = Release|Any CPU - {FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645}.Release|x86.ActiveCfg = Release|Any CPU - {FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645}.Release|x86.Build.0 = Release|Any CPU - {25F0929B-2E04-4ED6-A0ED-5379A0A755B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {25F0929B-2E04-4ED6-A0ED-5379A0A755B0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {25F0929B-2E04-4ED6-A0ED-5379A0A755B0}.Debug|x64.ActiveCfg = Debug|Any CPU - {25F0929B-2E04-4ED6-A0ED-5379A0A755B0}.Debug|x64.Build.0 = Debug|Any CPU - {25F0929B-2E04-4ED6-A0ED-5379A0A755B0}.Debug|x86.ActiveCfg = Debug|Any CPU - {25F0929B-2E04-4ED6-A0ED-5379A0A755B0}.Debug|x86.Build.0 = Debug|Any CPU - {25F0929B-2E04-4ED6-A0ED-5379A0A755B0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {25F0929B-2E04-4ED6-A0ED-5379A0A755B0}.Release|Any CPU.Build.0 = Release|Any CPU - {25F0929B-2E04-4ED6-A0ED-5379A0A755B0}.Release|x64.ActiveCfg = Release|Any CPU - {25F0929B-2E04-4ED6-A0ED-5379A0A755B0}.Release|x64.Build.0 = Release|Any CPU - {25F0929B-2E04-4ED6-A0ED-5379A0A755B0}.Release|x86.ActiveCfg = Release|Any CPU - {25F0929B-2E04-4ED6-A0ED-5379A0A755B0}.Release|x86.Build.0 = Release|Any CPU - {9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E}.Debug|x64.ActiveCfg = Debug|Any CPU - {9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E}.Debug|x64.Build.0 = Debug|Any CPU - {9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E}.Debug|x86.ActiveCfg = Debug|Any CPU - {9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E}.Debug|x86.Build.0 = Debug|Any CPU - {9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E}.Release|Any CPU.Build.0 = Release|Any CPU - {9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E}.Release|x64.ActiveCfg = Release|Any CPU - {9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E}.Release|x64.Build.0 = Release|Any CPU - {9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E}.Release|x86.ActiveCfg = Release|Any CPU - {9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E}.Release|x86.Build.0 = Release|Any CPU - {B640DB80-C982-407B-A2EC-CD29AC77DDB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B640DB80-C982-407B-A2EC-CD29AC77DDB8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B640DB80-C982-407B-A2EC-CD29AC77DDB8}.Debug|x64.ActiveCfg = Debug|Any CPU - {B640DB80-C982-407B-A2EC-CD29AC77DDB8}.Debug|x64.Build.0 = Debug|Any CPU - {B640DB80-C982-407B-A2EC-CD29AC77DDB8}.Debug|x86.ActiveCfg = Debug|Any CPU - {B640DB80-C982-407B-A2EC-CD29AC77DDB8}.Debug|x86.Build.0 = Debug|Any CPU - {B640DB80-C982-407B-A2EC-CD29AC77DDB8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B640DB80-C982-407B-A2EC-CD29AC77DDB8}.Release|Any CPU.Build.0 = Release|Any CPU - {B640DB80-C982-407B-A2EC-CD29AC77DDB8}.Release|x64.ActiveCfg = Release|Any CPU - {B640DB80-C982-407B-A2EC-CD29AC77DDB8}.Release|x64.Build.0 = Release|Any CPU - {B640DB80-C982-407B-A2EC-CD29AC77DDB8}.Release|x86.ActiveCfg = Release|Any CPU - {B640DB80-C982-407B-A2EC-CD29AC77DDB8}.Release|x86.Build.0 = Release|Any CPU - {E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B}.Debug|x64.ActiveCfg = Debug|Any CPU - {E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B}.Debug|x64.Build.0 = Debug|Any CPU - {E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B}.Debug|x86.ActiveCfg = Debug|Any CPU - {E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B}.Debug|x86.Build.0 = Debug|Any CPU - {E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B}.Release|Any CPU.Build.0 = Release|Any CPU - {E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B}.Release|x64.ActiveCfg = Release|Any CPU - {E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B}.Release|x64.Build.0 = Release|Any CPU - {E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B}.Release|x86.ActiveCfg = Release|Any CPU - {E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B}.Release|x86.Build.0 = Release|Any CPU - - {D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5}.Debug|x64.ActiveCfg = Debug|Any CPU - {D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5}.Debug|x64.Build.0 = Debug|Any CPU - {D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5}.Debug|x86.ActiveCfg = Debug|Any CPU - {D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5}.Debug|x86.Build.0 = Debug|Any CPU - {D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5}.Release|Any CPU.Build.0 = Release|Any CPU - {D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5}.Release|x64.ActiveCfg = Release|Any CPU - {D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5}.Release|x64.Build.0 = Release|Any CPU - {D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5}.Release|x86.ActiveCfg = Release|Any CPU - {D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5}.Release|x86.Build.0 = Release|Any CPU - EndGlobalSection - - GlobalSection(NestedProjects) = preSolution - {ACED222F-BDEB-48B6-BA6E-A28659080766} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} - {7A6A2996-1F41-4C94-A0A2-3AE963247243} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} - {3BA6251D-DE4E-4547-AAA9-25F4BA04C636} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} - {1A3AC28C-3AEE-40FE-B229-9E38BB609547} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} - {B68A0D0A-4785-48CB-864F-29E3A8ACA526} = {1CFF5568-8486-475F-81F6-06105C437528} - {4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E} = {1CFF5568-8486-475F-81F6-06105C437528} - {A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5} = {1CFF5568-8486-475F-81F6-06105C437528} - {1ECB31E8-2EF0-41E2-8C71-CB9876D207F0} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} - {386A9769-59BF-4BE3-99D4-A9603E300729} = {1CFF5568-8486-475F-81F6-06105C437528} - {B7AC87DF-9705-47D9-AC00-C230E577CA5D} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} - {F8B4100F-4014-4A1E-8130-D281453B79ED} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} - {12B940EF-A5D3-459D-BD36-A603834D1F7D} = {1CFF5568-8486-475F-81F6-06105C437528} - {3E1D77BD-70AF-4767-B00A-4A321D5AB2C3} = {1CFF5568-8486-475F-81F6-06105C437528} - {4F5020DB-9856-4A6F-B2CB-2C213FD749BC} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} - {B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1} = {1CFF5568-8486-475F-81F6-06105C437528} - {A19E6CBD-8078-49F9-849E-2E484BFAF324} = {1CFF5568-8486-475F-81F6-06105C437528} - {93DEAC72-245F-4FC9-A7B5-DAE7EF7E1AB7} = {A19E6CBD-8078-49F9-849E-2E484BFAF324} - {CDAE55EB-9438-4F54-B7ED-931D64324D5F} = {A19E6CBD-8078-49F9-849E-2E484BFAF324} - {AA532674-A61C-41E6-8F9A-ED53D79AF1EC} = {93DEAC72-245F-4FC9-A7B5-DAE7EF7E1AB7} - {AAFA39E9-66A3-4B9A-AFE9-EAF74A85A7F0} = {CDAE55EB-9438-4F54-B7ED-931D64324D5F} - {3C6162D7-0162-4BC2-BBF5-0554539A81CD} = {CDAE55EB-9438-4F54-B7ED-931D64324D5F} - {4EAB66F9-C9CB-4E8A-BEE6-A14CD7FDE02F} = {AAFA39E9-66A3-4B9A-AFE9-EAF74A85A7F0} - {BA495B95-C463-4759-AA9D-34C6614B3511} = {AAFA39E9-66A3-4B9A-AFE9-EAF74A85A7F0} - {3C9FA701-31FF-4747-B324-E0D252EAFD63} = {AAFA39E9-66A3-4B9A-AFE9-EAF74A85A7F0} - {DEA5A48E-BC47-4E87-858C-282860CA196E} = {4EAB66F9-C9CB-4E8A-BEE6-A14CD7FDE02F} - {45D90299-D29F-4380-8FE8-98DF70508290} = {4EAB66F9-C9CB-4E8A-BEE6-A14CD7FDE02F} - {E0DEFF37-3706-4F61-98CA-904E2F964605} = {4EAB66F9-C9CB-4E8A-BEE6-A14CD7FDE02F} - {F858D526-7919-472B-8992-D627A4F3987C} = {BA495B95-C463-4759-AA9D-34C6614B3511} - {92669F13-F9C9-479F-ABA1-163D93ABCF95} = {BA495B95-C463-4759-AA9D-34C6614B3511} - {CC30B576-10ED-4DB2-A6C7-3A603E671523} = {BA495B95-C463-4759-AA9D-34C6614B3511} - {D22576BE-3D83-47C1-8B35-947C0B6DA8ED} = {3C9FA701-31FF-4747-B324-E0D252EAFD63} - {8DDAFE37-ED59-4710-9415-8EBA44CC6437} = {3C9FA701-31FF-4747-B324-E0D252EAFD63} - {8DDED681-AE8D-45EB-A22E-2FFB88620F9B} = {3C9FA701-31FF-4747-B324-E0D252EAFD63} - {24AC34AD-AEC9-4CFB-BB01-C3C81938AB95} = {93DEAC72-245F-4FC9-A7B5-DAE7EF7E1AB7} - {D303B458-9D84-4DDF-8781-2C0211672329} = {93DEAC72-245F-4FC9-A7B5-DAE7EF7E1AB7} - {FB2C7DA3-6FCE-429D-86F9-5775D0231EC6} = {CDAE55EB-9438-4F54-B7ED-931D64324D5F} - {9AF99F6D-E8E7-443F-A965-D55B8E388836} = {FB2C7DA3-6FCE-429D-86F9-5775D0231EC6} - {FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC} = {FB2C7DA3-6FCE-429D-86F9-5775D0231EC6} - {ACA789EA-BD38-490B-A7F8-6A3A86985025} = {FB2C7DA3-6FCE-429D-86F9-5775D0231EC6} - {E71C48D2-AD56-4177-BBD7-6BB859A40C92} = {FB2C7DA3-6FCE-429D-86F9-5775D0231EC6} - {CC8CFF43-DC72-464C-A42D-55E023DE8500} = {FB2C7DA3-6FCE-429D-86F9-5775D0231EC6} - {A2AD98B1-2BED-4864-B573-77BE7B52FED2} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} - {A566F2D7-F8FE-466A-8306-85F266B7E656} = {1CFF5568-8486-475F-81F6-06105C437528} - {F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB} = {A566F2D7-F8FE-466A-8306-85F266B7E656} - {A422C742-2CF9-409D-BDAE-15825AB62113} = {A566F2D7-F8FE-466A-8306-85F266B7E656} - {7FC6DD65-0352-4139-8D08-B25C0A0403E3} = {4EAB66F9-C9CB-4E8A-BEE6-A14CD7FDE02F} - {61374D8E-F77C-4A31-AE07-35DAF1847369} = {1CFF5568-8486-475F-81F6-06105C437528} - {F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} - {281F7EB5-ACE5-458F-BC88-46A8899DF3BA} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} - {8A22F22E-D10A-4897-A89A-DC76C267F6BB} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} - {5B0DDE6F-ED16-452F-90D3-F0B6086D51B3} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} - {FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645} = {1CFF5568-8486-475F-81F6-06105C437528} - {25F0929B-2E04-4ED6-A0ED-5379A0A755B0} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} - {9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} - {B640DB80-C982-407B-A2EC-CD29AC77DDB8} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} - {E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B} = {1CFF5568-8486-475F-81F6-06105C437528} - - {D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5} = {1CFF5568-8486-475F-81F6-06105C437528} - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.3.32929.385 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{73C9B1E5-3893-47E8-B373-17E5F5D7E6F5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Common", "src\AWS.Lambda.Powertools.Common\AWS.Lambda.Powertools.Common.csproj", "{ACED222F-BDEB-48B6-BA6E-A28659080766}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Logging", "src\AWS.Lambda.Powertools.Logging\AWS.Lambda.Powertools.Logging.csproj", "{7A6A2996-1F41-4C94-A0A2-3AE963247243}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Metrics", "src\AWS.Lambda.Powertools.Metrics\AWS.Lambda.Powertools.Metrics.csproj", "{3BA6251D-DE4E-4547-AAA9-25F4BA04C636}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Tracing", "src\AWS.Lambda.Powertools.Tracing\AWS.Lambda.Powertools.Tracing.csproj", "{1A3AC28C-3AEE-40FE-B229-9E38BB609547}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1CFF5568-8486-475F-81F6-06105C437528}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Logging.Tests", "tests\AWS.Lambda.Powertools.Logging.Tests\AWS.Lambda.Powertools.Logging.Tests.csproj", "{B68A0D0A-4785-48CB-864F-29E3A8ACA526}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Metrics.Tests", "tests\AWS.Lambda.Powertools.Metrics.Tests\AWS.Lambda.Powertools.Metrics.Tests.csproj", "{A422C742-2CF9-409D-BDAE-15825AB62113}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Tracing.Tests", "tests\AWS.Lambda.Powertools.Tracing.Tests\AWS.Lambda.Powertools.Tracing.Tests.csproj", "{A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Common.Tests", "tests\AWS.Lambda.Powertools.Common.Tests\AWS.Lambda.Powertools.Common.Tests.csproj", "{4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.BatchProcessing", "src\AWS.Lambda.Powertools.BatchProcessing\AWS.Lambda.Powertools.BatchProcessing.csproj", "{F8B4100F-4014-4A1E-8130-D281453B79ED}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.BatchProcessing.Tests", "tests\AWS.Lambda.Powertools.BatchProcessing.Tests\AWS.Lambda.Powertools.BatchProcessing.Tests.csproj", "{12B940EF-A5D3-459D-BD36-A603834D1F7D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Idempotency", "src\AWS.Lambda.Powertools.Idempotency\AWS.Lambda.Powertools.Idempotency.csproj", "{B7AC87DF-9705-47D9-AC00-C230E577CA5D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Idempotency.Tests", "tests\AWS.Lambda.Powertools.Idempotency.Tests\AWS.Lambda.Powertools.Idempotency.Tests.csproj", "{3E1D77BD-70AF-4767-B00A-4A321D5AB2C3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Parameters", "src\AWS.Lambda.Powertools.Parameters\AWS.Lambda.Powertools.Parameters.csproj", "{1ECB31E8-2EF0-41E2-8C71-CB9876D207F0}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Parameters.Tests", "tests\AWS.Lambda.Powertools.Parameters.Tests\AWS.Lambda.Powertools.Parameters.Tests.csproj", "{386A9769-59BF-4BE3-99D4-A9603E300729}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.JMESPath", "src\AWS.Lambda.Powertools.JMESPath\AWS.Lambda.Powertools.JMESPath.csproj", "{4F5020DB-9856-4A6F-B2CB-2C213FD749BC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.JMESPath.Tests", "tests\AWS.Lambda.Powertools.JMESPath.Tests\AWS.Lambda.Powertools.JMESPath.Tests.csproj", "{B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "e2e", "e2e", "{A19E6CBD-8078-49F9-849E-2E484BFAF324}" + ProjectSection(SolutionItems) = preProject + tests\e2e\Readme.md = tests\e2e\Readme.md + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Infra", "Infra", "{93DEAC72-245F-4FC9-A7B5-DAE7EF7E1AB7}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Functions", "Functions", "{CDAE55EB-9438-4F54-B7ED-931D64324D5F}" + ProjectSection(SolutionItems) = preProject + tests\e2e\functions\payload.json = tests\e2e\functions\payload.json + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Infra", "tests\e2e\infra\Infra.csproj", "{AA532674-A61C-41E6-8F9A-ED53D79AF1EC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Core", "Core", "{AAFA39E9-66A3-4B9A-AFE9-EAF74A85A7F0}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtils", "tests\e2e\functions\TestUtils\TestUtils.csproj", "{3C6162D7-0162-4BC2-BBF5-0554539A81CD}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Logging", "Logging", "{4EAB66F9-C9CB-4E8A-BEE6-A14CD7FDE02F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Metrics", "Metrics", "{BA495B95-C463-4759-AA9D-34C6614B3511}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tracing", "Tracing", "{3C9FA701-31FF-4747-B324-E0D252EAFD63}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Function", "tests\e2e\functions\core\logging\Function\src\Function\Function.csproj", "{DEA5A48E-BC47-4E87-858C-282860CA196E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Function.Tests", "tests\e2e\functions\core\logging\Function\test\Function.Tests\Function.Tests.csproj", "{45D90299-D29F-4380-8FE8-98DF70508290}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AOT-Function", "tests\e2e\functions\core\logging\AOT-Function\src\AOT-Function\AOT-Function.csproj", "{E0DEFF37-3706-4F61-98CA-904E2F964605}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Function", "tests\e2e\functions\core\metrics\Function\src\Function\Function.csproj", "{F858D526-7919-472B-8992-D627A4F3987C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Function.Tests", "tests\e2e\functions\core\metrics\Function\test\Function.Tests\Function.Tests.csproj", "{92669F13-F9C9-479F-ABA1-163D93ABCF95}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AOT-Function", "tests\e2e\functions\core\metrics\AOT-Function\src\AOT-Function\AOT-Function.csproj", "{CC30B576-10ED-4DB2-A6C7-3A603E671523}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Function", "tests\e2e\functions\core\tracing\Function\src\Function\Function.csproj", "{D22576BE-3D83-47C1-8B35-947C0B6DA8ED}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Function.Tests", "tests\e2e\functions\core\tracing\Function\test\Function.Tests\Function.Tests.csproj", "{8DDAFE37-ED59-4710-9415-8EBA44CC6437}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AOT-Function", "tests\e2e\functions\core\tracing\AOT-Function\src\AOT-Function\AOT-Function.csproj", "{8DDED681-AE8D-45EB-A22E-2FFB88620F9B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfraAot", "tests\e2e\infra-aot\InfraAot.csproj", "{24AC34AD-AEC9-4CFB-BB01-C3C81938AB95}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfraShared", "tests\e2e\InfraShared\InfraShared.csproj", "{D303B458-9D84-4DDF-8781-2C0211672329}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Idempotency", "Idempotency", "{FB2C7DA3-6FCE-429D-86F9-5775D0231EC6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Function", "tests\e2e\functions\idempotency\Function\src\Function\Function.csproj", "{9AF99F6D-E8E7-443F-A965-D55B8E388836}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Function.Tests", "tests\e2e\functions\idempotency\Function\test\Function.Tests\Function.Tests.csproj", "{FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AOT-FunctionPayloadSubsetTest", "tests\e2e\functions\idempotency\AOT-Function\src\AOT-FunctionPayloadSubsetTest\AOT-FunctionPayloadSubsetTest.csproj", "{ACA789EA-BD38-490B-A7F8-6A3A86985025}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AOT-FunctionHandlerTest", "tests\e2e\functions\idempotency\AOT-Function\src\AOT-FunctionHandlerTest\AOT-FunctionHandlerTest.csproj", "{E71C48D2-AD56-4177-BBD7-6BB859A40C92}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AOT-FunctionMethodAttributeTest", "tests\e2e\functions\idempotency\AOT-Function\src\AOT-FunctionMethodAttributeTest\AOT-FunctionMethodAttributeTest.csproj", "{CC8CFF43-DC72-464C-A42D-55E023DE8500}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Metrics.AspNetCore", "src\AWS.Lambda.Powertools.Metrics.AspNetCore\AWS.Lambda.Powertools.Metrics.AspNetCore.csproj", "{A2AD98B1-2BED-4864-B573-77BE7B52FED2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Metrics.AspNetCore.Tests", "tests\AWS.Lambda.Powertools.Metrics.AspNetCore.Tests\AWS.Lambda.Powertools.Metrics.AspNetCore.Tests.csproj", "{F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Metrics", "Metrics", "{A566F2D7-F8FE-466A-8306-85F266B7E656}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AOT-Function-ILogger", "tests\e2e\functions\core\logging\AOT-Function-ILogger\src\AOT-Function-ILogger\AOT-Function-ILogger.csproj", "{7FC6DD65-0352-4139-8D08-B25C0A0403E3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.EventHandler.Tests", "tests\AWS.Lambda.Powertools.EventHandler.Tests\AWS.Lambda.Powertools.EventHandler.Tests.csproj", "{61374D8E-F77C-4A31-AE07-35DAF1847369}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.EventHandler", "src\AWS.Lambda.Powertools.EventHandler\AWS.Lambda.Powertools.EventHandler.csproj", "{F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.EventHandler.Resolvers.BedrockAgentFunction", "src\AWS.Lambda.Powertools.EventHandler.Resolvers.BedrockAgentFunction\AWS.Lambda.Powertools.EventHandler.Resolvers.BedrockAgentFunction.csproj", "{281F7EB5-ACE5-458F-BC88-46A8899DF3BA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.EventHandler.Resolvers.BedrockAgentFunction.AspNetCore", "src\AWS.Lambda.Powertools.EventHandler.Resolvers.BedrockAgentFunction.AspNetCore\AWS.Lambda.Powertools.EventHandler.Resolvers.BedrockAgentFunction.AspNetCore.csproj", "{8A22F22E-D10A-4897-A89A-DC76C267F6BB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Kafka", "src\AWS.Lambda.Powertools.Kafka\AWS.Lambda.Powertools.Kafka.csproj", "{5B0DDE6F-ED16-452F-90D3-F0B6086D51B3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Kafka.Tests", "tests\AWS.Lambda.Powertools.Kafka.Tests\AWS.Lambda.Powertools.Kafka.Tests.csproj", "{FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Kafka.Avro", "src\AWS.Lambda.Powertools.Kafka.Avro\AWS.Lambda.Powertools.Kafka.Avro.csproj", "{25F0929B-2E04-4ED6-A0ED-5379A0A755B0}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Kafka.Json", "src\AWS.Lambda.Powertools.Kafka.Json\AWS.Lambda.Powertools.Kafka.Json.csproj", "{9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Kafka.Protobuf", "src\AWS.Lambda.Powertools.Kafka.Protobuf\AWS.Lambda.Powertools.Kafka.Protobuf.csproj", "{B640DB80-C982-407B-A2EC-CD29AC77DDB8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.ModuleInitializer.Tests", "tests\AWS.Lambda.Powertools.ModuleInitializer.Tests\AWS.Lambda.Powertools.ModuleInitializer.Tests.csproj", "{E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.ConcurrencyTests", "tests\AWS.Lambda.Powertools.ConcurrencyTests\AWS.Lambda.Powertools.ConcurrencyTests.csproj", "{D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Metadata", "src\AWS.Lambda.Powertools.Metadata\AWS.Lambda.Powertools.Metadata.csproj", "{6B978BB7-6C6E-481A-BE21-2E9E93B06AA0}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWS.Lambda.Powertools.Metadata.Tests", "tests\AWS.Lambda.Powertools.Metadata.Tests\AWS.Lambda.Powertools.Metadata.Tests.csproj", "{B2ED85F6-FDBA-4AD7-8C13-1BF8BF464938}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {ACED222F-BDEB-48B6-BA6E-A28659080766}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ACED222F-BDEB-48B6-BA6E-A28659080766}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ACED222F-BDEB-48B6-BA6E-A28659080766}.Debug|x64.ActiveCfg = Debug|Any CPU + {ACED222F-BDEB-48B6-BA6E-A28659080766}.Debug|x64.Build.0 = Debug|Any CPU + {ACED222F-BDEB-48B6-BA6E-A28659080766}.Debug|x86.ActiveCfg = Debug|Any CPU + {ACED222F-BDEB-48B6-BA6E-A28659080766}.Debug|x86.Build.0 = Debug|Any CPU + {ACED222F-BDEB-48B6-BA6E-A28659080766}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ACED222F-BDEB-48B6-BA6E-A28659080766}.Release|Any CPU.Build.0 = Release|Any CPU + {ACED222F-BDEB-48B6-BA6E-A28659080766}.Release|x64.ActiveCfg = Release|Any CPU + {ACED222F-BDEB-48B6-BA6E-A28659080766}.Release|x64.Build.0 = Release|Any CPU + {ACED222F-BDEB-48B6-BA6E-A28659080766}.Release|x86.ActiveCfg = Release|Any CPU + {ACED222F-BDEB-48B6-BA6E-A28659080766}.Release|x86.Build.0 = Release|Any CPU + {7A6A2996-1F41-4C94-A0A2-3AE963247243}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7A6A2996-1F41-4C94-A0A2-3AE963247243}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7A6A2996-1F41-4C94-A0A2-3AE963247243}.Debug|x64.ActiveCfg = Debug|Any CPU + {7A6A2996-1F41-4C94-A0A2-3AE963247243}.Debug|x64.Build.0 = Debug|Any CPU + {7A6A2996-1F41-4C94-A0A2-3AE963247243}.Debug|x86.ActiveCfg = Debug|Any CPU + {7A6A2996-1F41-4C94-A0A2-3AE963247243}.Debug|x86.Build.0 = Debug|Any CPU + {7A6A2996-1F41-4C94-A0A2-3AE963247243}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7A6A2996-1F41-4C94-A0A2-3AE963247243}.Release|Any CPU.Build.0 = Release|Any CPU + {7A6A2996-1F41-4C94-A0A2-3AE963247243}.Release|x64.ActiveCfg = Release|Any CPU + {7A6A2996-1F41-4C94-A0A2-3AE963247243}.Release|x64.Build.0 = Release|Any CPU + {7A6A2996-1F41-4C94-A0A2-3AE963247243}.Release|x86.ActiveCfg = Release|Any CPU + {7A6A2996-1F41-4C94-A0A2-3AE963247243}.Release|x86.Build.0 = Release|Any CPU + {3BA6251D-DE4E-4547-AAA9-25F4BA04C636}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3BA6251D-DE4E-4547-AAA9-25F4BA04C636}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3BA6251D-DE4E-4547-AAA9-25F4BA04C636}.Debug|x64.ActiveCfg = Debug|Any CPU + {3BA6251D-DE4E-4547-AAA9-25F4BA04C636}.Debug|x64.Build.0 = Debug|Any CPU + {3BA6251D-DE4E-4547-AAA9-25F4BA04C636}.Debug|x86.ActiveCfg = Debug|Any CPU + {3BA6251D-DE4E-4547-AAA9-25F4BA04C636}.Debug|x86.Build.0 = Debug|Any CPU + {3BA6251D-DE4E-4547-AAA9-25F4BA04C636}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3BA6251D-DE4E-4547-AAA9-25F4BA04C636}.Release|Any CPU.Build.0 = Release|Any CPU + {3BA6251D-DE4E-4547-AAA9-25F4BA04C636}.Release|x64.ActiveCfg = Release|Any CPU + {3BA6251D-DE4E-4547-AAA9-25F4BA04C636}.Release|x64.Build.0 = Release|Any CPU + {3BA6251D-DE4E-4547-AAA9-25F4BA04C636}.Release|x86.ActiveCfg = Release|Any CPU + {3BA6251D-DE4E-4547-AAA9-25F4BA04C636}.Release|x86.Build.0 = Release|Any CPU + {1A3AC28C-3AEE-40FE-B229-9E38BB609547}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1A3AC28C-3AEE-40FE-B229-9E38BB609547}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1A3AC28C-3AEE-40FE-B229-9E38BB609547}.Debug|x64.ActiveCfg = Debug|Any CPU + {1A3AC28C-3AEE-40FE-B229-9E38BB609547}.Debug|x64.Build.0 = Debug|Any CPU + {1A3AC28C-3AEE-40FE-B229-9E38BB609547}.Debug|x86.ActiveCfg = Debug|Any CPU + {1A3AC28C-3AEE-40FE-B229-9E38BB609547}.Debug|x86.Build.0 = Debug|Any CPU + {1A3AC28C-3AEE-40FE-B229-9E38BB609547}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1A3AC28C-3AEE-40FE-B229-9E38BB609547}.Release|Any CPU.Build.0 = Release|Any CPU + {1A3AC28C-3AEE-40FE-B229-9E38BB609547}.Release|x64.ActiveCfg = Release|Any CPU + {1A3AC28C-3AEE-40FE-B229-9E38BB609547}.Release|x64.Build.0 = Release|Any CPU + {1A3AC28C-3AEE-40FE-B229-9E38BB609547}.Release|x86.ActiveCfg = Release|Any CPU + {1A3AC28C-3AEE-40FE-B229-9E38BB609547}.Release|x86.Build.0 = Release|Any CPU + {B68A0D0A-4785-48CB-864F-29E3A8ACA526}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B68A0D0A-4785-48CB-864F-29E3A8ACA526}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B68A0D0A-4785-48CB-864F-29E3A8ACA526}.Debug|x64.ActiveCfg = Debug|Any CPU + {B68A0D0A-4785-48CB-864F-29E3A8ACA526}.Debug|x64.Build.0 = Debug|Any CPU + {B68A0D0A-4785-48CB-864F-29E3A8ACA526}.Debug|x86.ActiveCfg = Debug|Any CPU + {B68A0D0A-4785-48CB-864F-29E3A8ACA526}.Debug|x86.Build.0 = Debug|Any CPU + {B68A0D0A-4785-48CB-864F-29E3A8ACA526}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B68A0D0A-4785-48CB-864F-29E3A8ACA526}.Release|Any CPU.Build.0 = Release|Any CPU + {B68A0D0A-4785-48CB-864F-29E3A8ACA526}.Release|x64.ActiveCfg = Release|Any CPU + {B68A0D0A-4785-48CB-864F-29E3A8ACA526}.Release|x64.Build.0 = Release|Any CPU + {B68A0D0A-4785-48CB-864F-29E3A8ACA526}.Release|x86.ActiveCfg = Release|Any CPU + {B68A0D0A-4785-48CB-864F-29E3A8ACA526}.Release|x86.Build.0 = Release|Any CPU + {A422C742-2CF9-409D-BDAE-15825AB62113}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A422C742-2CF9-409D-BDAE-15825AB62113}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A422C742-2CF9-409D-BDAE-15825AB62113}.Debug|x64.ActiveCfg = Debug|Any CPU + {A422C742-2CF9-409D-BDAE-15825AB62113}.Debug|x64.Build.0 = Debug|Any CPU + {A422C742-2CF9-409D-BDAE-15825AB62113}.Debug|x86.ActiveCfg = Debug|Any CPU + {A422C742-2CF9-409D-BDAE-15825AB62113}.Debug|x86.Build.0 = Debug|Any CPU + {A422C742-2CF9-409D-BDAE-15825AB62113}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A422C742-2CF9-409D-BDAE-15825AB62113}.Release|Any CPU.Build.0 = Release|Any CPU + {A422C742-2CF9-409D-BDAE-15825AB62113}.Release|x64.ActiveCfg = Release|Any CPU + {A422C742-2CF9-409D-BDAE-15825AB62113}.Release|x64.Build.0 = Release|Any CPU + {A422C742-2CF9-409D-BDAE-15825AB62113}.Release|x86.ActiveCfg = Release|Any CPU + {A422C742-2CF9-409D-BDAE-15825AB62113}.Release|x86.Build.0 = Release|Any CPU + {A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5}.Debug|x64.ActiveCfg = Debug|Any CPU + {A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5}.Debug|x64.Build.0 = Debug|Any CPU + {A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5}.Debug|x86.ActiveCfg = Debug|Any CPU + {A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5}.Debug|x86.Build.0 = Debug|Any CPU + {A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5}.Release|Any CPU.Build.0 = Release|Any CPU + {A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5}.Release|x64.ActiveCfg = Release|Any CPU + {A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5}.Release|x64.Build.0 = Release|Any CPU + {A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5}.Release|x86.ActiveCfg = Release|Any CPU + {A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5}.Release|x86.Build.0 = Release|Any CPU + {4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E}.Debug|x64.ActiveCfg = Debug|Any CPU + {4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E}.Debug|x64.Build.0 = Debug|Any CPU + {4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E}.Debug|x86.ActiveCfg = Debug|Any CPU + {4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E}.Debug|x86.Build.0 = Debug|Any CPU + {4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E}.Release|Any CPU.Build.0 = Release|Any CPU + {4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E}.Release|x64.ActiveCfg = Release|Any CPU + {4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E}.Release|x64.Build.0 = Release|Any CPU + {4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E}.Release|x86.ActiveCfg = Release|Any CPU + {4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E}.Release|x86.Build.0 = Release|Any CPU + {F8B4100F-4014-4A1E-8130-D281453B79ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F8B4100F-4014-4A1E-8130-D281453B79ED}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F8B4100F-4014-4A1E-8130-D281453B79ED}.Debug|x64.ActiveCfg = Debug|Any CPU + {F8B4100F-4014-4A1E-8130-D281453B79ED}.Debug|x64.Build.0 = Debug|Any CPU + {F8B4100F-4014-4A1E-8130-D281453B79ED}.Debug|x86.ActiveCfg = Debug|Any CPU + {F8B4100F-4014-4A1E-8130-D281453B79ED}.Debug|x86.Build.0 = Debug|Any CPU + {F8B4100F-4014-4A1E-8130-D281453B79ED}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F8B4100F-4014-4A1E-8130-D281453B79ED}.Release|Any CPU.Build.0 = Release|Any CPU + {F8B4100F-4014-4A1E-8130-D281453B79ED}.Release|x64.ActiveCfg = Release|Any CPU + {F8B4100F-4014-4A1E-8130-D281453B79ED}.Release|x64.Build.0 = Release|Any CPU + {F8B4100F-4014-4A1E-8130-D281453B79ED}.Release|x86.ActiveCfg = Release|Any CPU + {F8B4100F-4014-4A1E-8130-D281453B79ED}.Release|x86.Build.0 = Release|Any CPU + {12B940EF-A5D3-459D-BD36-A603834D1F7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12B940EF-A5D3-459D-BD36-A603834D1F7D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {12B940EF-A5D3-459D-BD36-A603834D1F7D}.Debug|x64.ActiveCfg = Debug|Any CPU + {12B940EF-A5D3-459D-BD36-A603834D1F7D}.Debug|x64.Build.0 = Debug|Any CPU + {12B940EF-A5D3-459D-BD36-A603834D1F7D}.Debug|x86.ActiveCfg = Debug|Any CPU + {12B940EF-A5D3-459D-BD36-A603834D1F7D}.Debug|x86.Build.0 = Debug|Any CPU + {12B940EF-A5D3-459D-BD36-A603834D1F7D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {12B940EF-A5D3-459D-BD36-A603834D1F7D}.Release|Any CPU.Build.0 = Release|Any CPU + {12B940EF-A5D3-459D-BD36-A603834D1F7D}.Release|x64.ActiveCfg = Release|Any CPU + {12B940EF-A5D3-459D-BD36-A603834D1F7D}.Release|x64.Build.0 = Release|Any CPU + {12B940EF-A5D3-459D-BD36-A603834D1F7D}.Release|x86.ActiveCfg = Release|Any CPU + {12B940EF-A5D3-459D-BD36-A603834D1F7D}.Release|x86.Build.0 = Release|Any CPU + {B7AC87DF-9705-47D9-AC00-C230E577CA5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B7AC87DF-9705-47D9-AC00-C230E577CA5D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B7AC87DF-9705-47D9-AC00-C230E577CA5D}.Debug|x64.ActiveCfg = Debug|Any CPU + {B7AC87DF-9705-47D9-AC00-C230E577CA5D}.Debug|x64.Build.0 = Debug|Any CPU + {B7AC87DF-9705-47D9-AC00-C230E577CA5D}.Debug|x86.ActiveCfg = Debug|Any CPU + {B7AC87DF-9705-47D9-AC00-C230E577CA5D}.Debug|x86.Build.0 = Debug|Any CPU + {B7AC87DF-9705-47D9-AC00-C230E577CA5D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B7AC87DF-9705-47D9-AC00-C230E577CA5D}.Release|Any CPU.Build.0 = Release|Any CPU + {B7AC87DF-9705-47D9-AC00-C230E577CA5D}.Release|x64.ActiveCfg = Release|Any CPU + {B7AC87DF-9705-47D9-AC00-C230E577CA5D}.Release|x64.Build.0 = Release|Any CPU + {B7AC87DF-9705-47D9-AC00-C230E577CA5D}.Release|x86.ActiveCfg = Release|Any CPU + {B7AC87DF-9705-47D9-AC00-C230E577CA5D}.Release|x86.Build.0 = Release|Any CPU + {3E1D77BD-70AF-4767-B00A-4A321D5AB2C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3E1D77BD-70AF-4767-B00A-4A321D5AB2C3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3E1D77BD-70AF-4767-B00A-4A321D5AB2C3}.Debug|x64.ActiveCfg = Debug|Any CPU + {3E1D77BD-70AF-4767-B00A-4A321D5AB2C3}.Debug|x64.Build.0 = Debug|Any CPU + {3E1D77BD-70AF-4767-B00A-4A321D5AB2C3}.Debug|x86.ActiveCfg = Debug|Any CPU + {3E1D77BD-70AF-4767-B00A-4A321D5AB2C3}.Debug|x86.Build.0 = Debug|Any CPU + {3E1D77BD-70AF-4767-B00A-4A321D5AB2C3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3E1D77BD-70AF-4767-B00A-4A321D5AB2C3}.Release|Any CPU.Build.0 = Release|Any CPU + {3E1D77BD-70AF-4767-B00A-4A321D5AB2C3}.Release|x64.ActiveCfg = Release|Any CPU + {3E1D77BD-70AF-4767-B00A-4A321D5AB2C3}.Release|x64.Build.0 = Release|Any CPU + {3E1D77BD-70AF-4767-B00A-4A321D5AB2C3}.Release|x86.ActiveCfg = Release|Any CPU + {3E1D77BD-70AF-4767-B00A-4A321D5AB2C3}.Release|x86.Build.0 = Release|Any CPU + {1ECB31E8-2EF0-41E2-8C71-CB9876D207F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1ECB31E8-2EF0-41E2-8C71-CB9876D207F0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1ECB31E8-2EF0-41E2-8C71-CB9876D207F0}.Debug|x64.ActiveCfg = Debug|Any CPU + {1ECB31E8-2EF0-41E2-8C71-CB9876D207F0}.Debug|x64.Build.0 = Debug|Any CPU + {1ECB31E8-2EF0-41E2-8C71-CB9876D207F0}.Debug|x86.ActiveCfg = Debug|Any CPU + {1ECB31E8-2EF0-41E2-8C71-CB9876D207F0}.Debug|x86.Build.0 = Debug|Any CPU + {1ECB31E8-2EF0-41E2-8C71-CB9876D207F0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1ECB31E8-2EF0-41E2-8C71-CB9876D207F0}.Release|Any CPU.Build.0 = Release|Any CPU + {1ECB31E8-2EF0-41E2-8C71-CB9876D207F0}.Release|x64.ActiveCfg = Release|Any CPU + {1ECB31E8-2EF0-41E2-8C71-CB9876D207F0}.Release|x64.Build.0 = Release|Any CPU + {1ECB31E8-2EF0-41E2-8C71-CB9876D207F0}.Release|x86.ActiveCfg = Release|Any CPU + {1ECB31E8-2EF0-41E2-8C71-CB9876D207F0}.Release|x86.Build.0 = Release|Any CPU + {386A9769-59BF-4BE3-99D4-A9603E300729}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {386A9769-59BF-4BE3-99D4-A9603E300729}.Debug|Any CPU.Build.0 = Debug|Any CPU + {386A9769-59BF-4BE3-99D4-A9603E300729}.Debug|x64.ActiveCfg = Debug|Any CPU + {386A9769-59BF-4BE3-99D4-A9603E300729}.Debug|x64.Build.0 = Debug|Any CPU + {386A9769-59BF-4BE3-99D4-A9603E300729}.Debug|x86.ActiveCfg = Debug|Any CPU + {386A9769-59BF-4BE3-99D4-A9603E300729}.Debug|x86.Build.0 = Debug|Any CPU + {386A9769-59BF-4BE3-99D4-A9603E300729}.Release|Any CPU.ActiveCfg = Release|Any CPU + {386A9769-59BF-4BE3-99D4-A9603E300729}.Release|Any CPU.Build.0 = Release|Any CPU + {386A9769-59BF-4BE3-99D4-A9603E300729}.Release|x64.ActiveCfg = Release|Any CPU + {386A9769-59BF-4BE3-99D4-A9603E300729}.Release|x64.Build.0 = Release|Any CPU + {386A9769-59BF-4BE3-99D4-A9603E300729}.Release|x86.ActiveCfg = Release|Any CPU + {386A9769-59BF-4BE3-99D4-A9603E300729}.Release|x86.Build.0 = Release|Any CPU + {4F5020DB-9856-4A6F-B2CB-2C213FD749BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4F5020DB-9856-4A6F-B2CB-2C213FD749BC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4F5020DB-9856-4A6F-B2CB-2C213FD749BC}.Debug|x64.ActiveCfg = Debug|Any CPU + {4F5020DB-9856-4A6F-B2CB-2C213FD749BC}.Debug|x64.Build.0 = Debug|Any CPU + {4F5020DB-9856-4A6F-B2CB-2C213FD749BC}.Debug|x86.ActiveCfg = Debug|Any CPU + {4F5020DB-9856-4A6F-B2CB-2C213FD749BC}.Debug|x86.Build.0 = Debug|Any CPU + {4F5020DB-9856-4A6F-B2CB-2C213FD749BC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4F5020DB-9856-4A6F-B2CB-2C213FD749BC}.Release|Any CPU.Build.0 = Release|Any CPU + {4F5020DB-9856-4A6F-B2CB-2C213FD749BC}.Release|x64.ActiveCfg = Release|Any CPU + {4F5020DB-9856-4A6F-B2CB-2C213FD749BC}.Release|x64.Build.0 = Release|Any CPU + {4F5020DB-9856-4A6F-B2CB-2C213FD749BC}.Release|x86.ActiveCfg = Release|Any CPU + {4F5020DB-9856-4A6F-B2CB-2C213FD749BC}.Release|x86.Build.0 = Release|Any CPU + {B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1}.Debug|x64.ActiveCfg = Debug|Any CPU + {B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1}.Debug|x64.Build.0 = Debug|Any CPU + {B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1}.Debug|x86.ActiveCfg = Debug|Any CPU + {B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1}.Debug|x86.Build.0 = Debug|Any CPU + {B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1}.Release|Any CPU.Build.0 = Release|Any CPU + {B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1}.Release|x64.ActiveCfg = Release|Any CPU + {B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1}.Release|x64.Build.0 = Release|Any CPU + {B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1}.Release|x86.ActiveCfg = Release|Any CPU + {B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1}.Release|x86.Build.0 = Release|Any CPU + {AA532674-A61C-41E6-8F9A-ED53D79AF1EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AA532674-A61C-41E6-8F9A-ED53D79AF1EC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AA532674-A61C-41E6-8F9A-ED53D79AF1EC}.Debug|x64.ActiveCfg = Debug|Any CPU + {AA532674-A61C-41E6-8F9A-ED53D79AF1EC}.Debug|x64.Build.0 = Debug|Any CPU + {AA532674-A61C-41E6-8F9A-ED53D79AF1EC}.Debug|x86.ActiveCfg = Debug|Any CPU + {AA532674-A61C-41E6-8F9A-ED53D79AF1EC}.Debug|x86.Build.0 = Debug|Any CPU + {AA532674-A61C-41E6-8F9A-ED53D79AF1EC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AA532674-A61C-41E6-8F9A-ED53D79AF1EC}.Release|Any CPU.Build.0 = Release|Any CPU + {AA532674-A61C-41E6-8F9A-ED53D79AF1EC}.Release|x64.ActiveCfg = Release|Any CPU + {AA532674-A61C-41E6-8F9A-ED53D79AF1EC}.Release|x64.Build.0 = Release|Any CPU + {AA532674-A61C-41E6-8F9A-ED53D79AF1EC}.Release|x86.ActiveCfg = Release|Any CPU + {AA532674-A61C-41E6-8F9A-ED53D79AF1EC}.Release|x86.Build.0 = Release|Any CPU + {3C6162D7-0162-4BC2-BBF5-0554539A81CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3C6162D7-0162-4BC2-BBF5-0554539A81CD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3C6162D7-0162-4BC2-BBF5-0554539A81CD}.Debug|x64.ActiveCfg = Debug|Any CPU + {3C6162D7-0162-4BC2-BBF5-0554539A81CD}.Debug|x64.Build.0 = Debug|Any CPU + {3C6162D7-0162-4BC2-BBF5-0554539A81CD}.Debug|x86.ActiveCfg = Debug|Any CPU + {3C6162D7-0162-4BC2-BBF5-0554539A81CD}.Debug|x86.Build.0 = Debug|Any CPU + {3C6162D7-0162-4BC2-BBF5-0554539A81CD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3C6162D7-0162-4BC2-BBF5-0554539A81CD}.Release|Any CPU.Build.0 = Release|Any CPU + {3C6162D7-0162-4BC2-BBF5-0554539A81CD}.Release|x64.ActiveCfg = Release|Any CPU + {3C6162D7-0162-4BC2-BBF5-0554539A81CD}.Release|x64.Build.0 = Release|Any CPU + {3C6162D7-0162-4BC2-BBF5-0554539A81CD}.Release|x86.ActiveCfg = Release|Any CPU + {3C6162D7-0162-4BC2-BBF5-0554539A81CD}.Release|x86.Build.0 = Release|Any CPU + {DEA5A48E-BC47-4E87-858C-282860CA196E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DEA5A48E-BC47-4E87-858C-282860CA196E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DEA5A48E-BC47-4E87-858C-282860CA196E}.Debug|x64.ActiveCfg = Debug|Any CPU + {DEA5A48E-BC47-4E87-858C-282860CA196E}.Debug|x64.Build.0 = Debug|Any CPU + {DEA5A48E-BC47-4E87-858C-282860CA196E}.Debug|x86.ActiveCfg = Debug|Any CPU + {DEA5A48E-BC47-4E87-858C-282860CA196E}.Debug|x86.Build.0 = Debug|Any CPU + {DEA5A48E-BC47-4E87-858C-282860CA196E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DEA5A48E-BC47-4E87-858C-282860CA196E}.Release|Any CPU.Build.0 = Release|Any CPU + {DEA5A48E-BC47-4E87-858C-282860CA196E}.Release|x64.ActiveCfg = Release|Any CPU + {DEA5A48E-BC47-4E87-858C-282860CA196E}.Release|x64.Build.0 = Release|Any CPU + {DEA5A48E-BC47-4E87-858C-282860CA196E}.Release|x86.ActiveCfg = Release|Any CPU + {DEA5A48E-BC47-4E87-858C-282860CA196E}.Release|x86.Build.0 = Release|Any CPU + {45D90299-D29F-4380-8FE8-98DF70508290}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {45D90299-D29F-4380-8FE8-98DF70508290}.Debug|Any CPU.Build.0 = Debug|Any CPU + {45D90299-D29F-4380-8FE8-98DF70508290}.Debug|x64.ActiveCfg = Debug|Any CPU + {45D90299-D29F-4380-8FE8-98DF70508290}.Debug|x64.Build.0 = Debug|Any CPU + {45D90299-D29F-4380-8FE8-98DF70508290}.Debug|x86.ActiveCfg = Debug|Any CPU + {45D90299-D29F-4380-8FE8-98DF70508290}.Debug|x86.Build.0 = Debug|Any CPU + {45D90299-D29F-4380-8FE8-98DF70508290}.Release|Any CPU.ActiveCfg = Release|Any CPU + {45D90299-D29F-4380-8FE8-98DF70508290}.Release|Any CPU.Build.0 = Release|Any CPU + {45D90299-D29F-4380-8FE8-98DF70508290}.Release|x64.ActiveCfg = Release|Any CPU + {45D90299-D29F-4380-8FE8-98DF70508290}.Release|x64.Build.0 = Release|Any CPU + {45D90299-D29F-4380-8FE8-98DF70508290}.Release|x86.ActiveCfg = Release|Any CPU + {45D90299-D29F-4380-8FE8-98DF70508290}.Release|x86.Build.0 = Release|Any CPU + {E0DEFF37-3706-4F61-98CA-904E2F964605}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E0DEFF37-3706-4F61-98CA-904E2F964605}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E0DEFF37-3706-4F61-98CA-904E2F964605}.Debug|x64.ActiveCfg = Debug|Any CPU + {E0DEFF37-3706-4F61-98CA-904E2F964605}.Debug|x64.Build.0 = Debug|Any CPU + {E0DEFF37-3706-4F61-98CA-904E2F964605}.Debug|x86.ActiveCfg = Debug|Any CPU + {E0DEFF37-3706-4F61-98CA-904E2F964605}.Debug|x86.Build.0 = Debug|Any CPU + {E0DEFF37-3706-4F61-98CA-904E2F964605}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E0DEFF37-3706-4F61-98CA-904E2F964605}.Release|Any CPU.Build.0 = Release|Any CPU + {E0DEFF37-3706-4F61-98CA-904E2F964605}.Release|x64.ActiveCfg = Release|Any CPU + {E0DEFF37-3706-4F61-98CA-904E2F964605}.Release|x64.Build.0 = Release|Any CPU + {E0DEFF37-3706-4F61-98CA-904E2F964605}.Release|x86.ActiveCfg = Release|Any CPU + {E0DEFF37-3706-4F61-98CA-904E2F964605}.Release|x86.Build.0 = Release|Any CPU + {F858D526-7919-472B-8992-D627A4F3987C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F858D526-7919-472B-8992-D627A4F3987C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F858D526-7919-472B-8992-D627A4F3987C}.Debug|x64.ActiveCfg = Debug|Any CPU + {F858D526-7919-472B-8992-D627A4F3987C}.Debug|x64.Build.0 = Debug|Any CPU + {F858D526-7919-472B-8992-D627A4F3987C}.Debug|x86.ActiveCfg = Debug|Any CPU + {F858D526-7919-472B-8992-D627A4F3987C}.Debug|x86.Build.0 = Debug|Any CPU + {F858D526-7919-472B-8992-D627A4F3987C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F858D526-7919-472B-8992-D627A4F3987C}.Release|Any CPU.Build.0 = Release|Any CPU + {F858D526-7919-472B-8992-D627A4F3987C}.Release|x64.ActiveCfg = Release|Any CPU + {F858D526-7919-472B-8992-D627A4F3987C}.Release|x64.Build.0 = Release|Any CPU + {F858D526-7919-472B-8992-D627A4F3987C}.Release|x86.ActiveCfg = Release|Any CPU + {F858D526-7919-472B-8992-D627A4F3987C}.Release|x86.Build.0 = Release|Any CPU + {92669F13-F9C9-479F-ABA1-163D93ABCF95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {92669F13-F9C9-479F-ABA1-163D93ABCF95}.Debug|Any CPU.Build.0 = Debug|Any CPU + {92669F13-F9C9-479F-ABA1-163D93ABCF95}.Debug|x64.ActiveCfg = Debug|Any CPU + {92669F13-F9C9-479F-ABA1-163D93ABCF95}.Debug|x64.Build.0 = Debug|Any CPU + {92669F13-F9C9-479F-ABA1-163D93ABCF95}.Debug|x86.ActiveCfg = Debug|Any CPU + {92669F13-F9C9-479F-ABA1-163D93ABCF95}.Debug|x86.Build.0 = Debug|Any CPU + {92669F13-F9C9-479F-ABA1-163D93ABCF95}.Release|Any CPU.ActiveCfg = Release|Any CPU + {92669F13-F9C9-479F-ABA1-163D93ABCF95}.Release|Any CPU.Build.0 = Release|Any CPU + {92669F13-F9C9-479F-ABA1-163D93ABCF95}.Release|x64.ActiveCfg = Release|Any CPU + {92669F13-F9C9-479F-ABA1-163D93ABCF95}.Release|x64.Build.0 = Release|Any CPU + {92669F13-F9C9-479F-ABA1-163D93ABCF95}.Release|x86.ActiveCfg = Release|Any CPU + {92669F13-F9C9-479F-ABA1-163D93ABCF95}.Release|x86.Build.0 = Release|Any CPU + {CC30B576-10ED-4DB2-A6C7-3A603E671523}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CC30B576-10ED-4DB2-A6C7-3A603E671523}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CC30B576-10ED-4DB2-A6C7-3A603E671523}.Debug|x64.ActiveCfg = Debug|Any CPU + {CC30B576-10ED-4DB2-A6C7-3A603E671523}.Debug|x64.Build.0 = Debug|Any CPU + {CC30B576-10ED-4DB2-A6C7-3A603E671523}.Debug|x86.ActiveCfg = Debug|Any CPU + {CC30B576-10ED-4DB2-A6C7-3A603E671523}.Debug|x86.Build.0 = Debug|Any CPU + {CC30B576-10ED-4DB2-A6C7-3A603E671523}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CC30B576-10ED-4DB2-A6C7-3A603E671523}.Release|Any CPU.Build.0 = Release|Any CPU + {CC30B576-10ED-4DB2-A6C7-3A603E671523}.Release|x64.ActiveCfg = Release|Any CPU + {CC30B576-10ED-4DB2-A6C7-3A603E671523}.Release|x64.Build.0 = Release|Any CPU + {CC30B576-10ED-4DB2-A6C7-3A603E671523}.Release|x86.ActiveCfg = Release|Any CPU + {CC30B576-10ED-4DB2-A6C7-3A603E671523}.Release|x86.Build.0 = Release|Any CPU + {D22576BE-3D83-47C1-8B35-947C0B6DA8ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D22576BE-3D83-47C1-8B35-947C0B6DA8ED}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D22576BE-3D83-47C1-8B35-947C0B6DA8ED}.Debug|x64.ActiveCfg = Debug|Any CPU + {D22576BE-3D83-47C1-8B35-947C0B6DA8ED}.Debug|x64.Build.0 = Debug|Any CPU + {D22576BE-3D83-47C1-8B35-947C0B6DA8ED}.Debug|x86.ActiveCfg = Debug|Any CPU + {D22576BE-3D83-47C1-8B35-947C0B6DA8ED}.Debug|x86.Build.0 = Debug|Any CPU + {D22576BE-3D83-47C1-8B35-947C0B6DA8ED}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D22576BE-3D83-47C1-8B35-947C0B6DA8ED}.Release|Any CPU.Build.0 = Release|Any CPU + {D22576BE-3D83-47C1-8B35-947C0B6DA8ED}.Release|x64.ActiveCfg = Release|Any CPU + {D22576BE-3D83-47C1-8B35-947C0B6DA8ED}.Release|x64.Build.0 = Release|Any CPU + {D22576BE-3D83-47C1-8B35-947C0B6DA8ED}.Release|x86.ActiveCfg = Release|Any CPU + {D22576BE-3D83-47C1-8B35-947C0B6DA8ED}.Release|x86.Build.0 = Release|Any CPU + {8DDAFE37-ED59-4710-9415-8EBA44CC6437}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8DDAFE37-ED59-4710-9415-8EBA44CC6437}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8DDAFE37-ED59-4710-9415-8EBA44CC6437}.Debug|x64.ActiveCfg = Debug|Any CPU + {8DDAFE37-ED59-4710-9415-8EBA44CC6437}.Debug|x64.Build.0 = Debug|Any CPU + {8DDAFE37-ED59-4710-9415-8EBA44CC6437}.Debug|x86.ActiveCfg = Debug|Any CPU + {8DDAFE37-ED59-4710-9415-8EBA44CC6437}.Debug|x86.Build.0 = Debug|Any CPU + {8DDAFE37-ED59-4710-9415-8EBA44CC6437}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8DDAFE37-ED59-4710-9415-8EBA44CC6437}.Release|Any CPU.Build.0 = Release|Any CPU + {8DDAFE37-ED59-4710-9415-8EBA44CC6437}.Release|x64.ActiveCfg = Release|Any CPU + {8DDAFE37-ED59-4710-9415-8EBA44CC6437}.Release|x64.Build.0 = Release|Any CPU + {8DDAFE37-ED59-4710-9415-8EBA44CC6437}.Release|x86.ActiveCfg = Release|Any CPU + {8DDAFE37-ED59-4710-9415-8EBA44CC6437}.Release|x86.Build.0 = Release|Any CPU + {8DDED681-AE8D-45EB-A22E-2FFB88620F9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8DDED681-AE8D-45EB-A22E-2FFB88620F9B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8DDED681-AE8D-45EB-A22E-2FFB88620F9B}.Debug|x64.ActiveCfg = Debug|Any CPU + {8DDED681-AE8D-45EB-A22E-2FFB88620F9B}.Debug|x64.Build.0 = Debug|Any CPU + {8DDED681-AE8D-45EB-A22E-2FFB88620F9B}.Debug|x86.ActiveCfg = Debug|Any CPU + {8DDED681-AE8D-45EB-A22E-2FFB88620F9B}.Debug|x86.Build.0 = Debug|Any CPU + {8DDED681-AE8D-45EB-A22E-2FFB88620F9B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8DDED681-AE8D-45EB-A22E-2FFB88620F9B}.Release|Any CPU.Build.0 = Release|Any CPU + {8DDED681-AE8D-45EB-A22E-2FFB88620F9B}.Release|x64.ActiveCfg = Release|Any CPU + {8DDED681-AE8D-45EB-A22E-2FFB88620F9B}.Release|x64.Build.0 = Release|Any CPU + {8DDED681-AE8D-45EB-A22E-2FFB88620F9B}.Release|x86.ActiveCfg = Release|Any CPU + {8DDED681-AE8D-45EB-A22E-2FFB88620F9B}.Release|x86.Build.0 = Release|Any CPU + {24AC34AD-AEC9-4CFB-BB01-C3C81938AB95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {24AC34AD-AEC9-4CFB-BB01-C3C81938AB95}.Debug|Any CPU.Build.0 = Debug|Any CPU + {24AC34AD-AEC9-4CFB-BB01-C3C81938AB95}.Debug|x64.ActiveCfg = Debug|Any CPU + {24AC34AD-AEC9-4CFB-BB01-C3C81938AB95}.Debug|x64.Build.0 = Debug|Any CPU + {24AC34AD-AEC9-4CFB-BB01-C3C81938AB95}.Debug|x86.ActiveCfg = Debug|Any CPU + {24AC34AD-AEC9-4CFB-BB01-C3C81938AB95}.Debug|x86.Build.0 = Debug|Any CPU + {24AC34AD-AEC9-4CFB-BB01-C3C81938AB95}.Release|Any CPU.ActiveCfg = Release|Any CPU + {24AC34AD-AEC9-4CFB-BB01-C3C81938AB95}.Release|Any CPU.Build.0 = Release|Any CPU + {24AC34AD-AEC9-4CFB-BB01-C3C81938AB95}.Release|x64.ActiveCfg = Release|Any CPU + {24AC34AD-AEC9-4CFB-BB01-C3C81938AB95}.Release|x64.Build.0 = Release|Any CPU + {24AC34AD-AEC9-4CFB-BB01-C3C81938AB95}.Release|x86.ActiveCfg = Release|Any CPU + {24AC34AD-AEC9-4CFB-BB01-C3C81938AB95}.Release|x86.Build.0 = Release|Any CPU + {D303B458-9D84-4DDF-8781-2C0211672329}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D303B458-9D84-4DDF-8781-2C0211672329}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D303B458-9D84-4DDF-8781-2C0211672329}.Debug|x64.ActiveCfg = Debug|Any CPU + {D303B458-9D84-4DDF-8781-2C0211672329}.Debug|x64.Build.0 = Debug|Any CPU + {D303B458-9D84-4DDF-8781-2C0211672329}.Debug|x86.ActiveCfg = Debug|Any CPU + {D303B458-9D84-4DDF-8781-2C0211672329}.Debug|x86.Build.0 = Debug|Any CPU + {D303B458-9D84-4DDF-8781-2C0211672329}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D303B458-9D84-4DDF-8781-2C0211672329}.Release|Any CPU.Build.0 = Release|Any CPU + {D303B458-9D84-4DDF-8781-2C0211672329}.Release|x64.ActiveCfg = Release|Any CPU + {D303B458-9D84-4DDF-8781-2C0211672329}.Release|x64.Build.0 = Release|Any CPU + {D303B458-9D84-4DDF-8781-2C0211672329}.Release|x86.ActiveCfg = Release|Any CPU + {D303B458-9D84-4DDF-8781-2C0211672329}.Release|x86.Build.0 = Release|Any CPU + {9AF99F6D-E8E7-443F-A965-D55B8E388836}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9AF99F6D-E8E7-443F-A965-D55B8E388836}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9AF99F6D-E8E7-443F-A965-D55B8E388836}.Debug|x64.ActiveCfg = Debug|Any CPU + {9AF99F6D-E8E7-443F-A965-D55B8E388836}.Debug|x64.Build.0 = Debug|Any CPU + {9AF99F6D-E8E7-443F-A965-D55B8E388836}.Debug|x86.ActiveCfg = Debug|Any CPU + {9AF99F6D-E8E7-443F-A965-D55B8E388836}.Debug|x86.Build.0 = Debug|Any CPU + {9AF99F6D-E8E7-443F-A965-D55B8E388836}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9AF99F6D-E8E7-443F-A965-D55B8E388836}.Release|Any CPU.Build.0 = Release|Any CPU + {9AF99F6D-E8E7-443F-A965-D55B8E388836}.Release|x64.ActiveCfg = Release|Any CPU + {9AF99F6D-E8E7-443F-A965-D55B8E388836}.Release|x64.Build.0 = Release|Any CPU + {9AF99F6D-E8E7-443F-A965-D55B8E388836}.Release|x86.ActiveCfg = Release|Any CPU + {9AF99F6D-E8E7-443F-A965-D55B8E388836}.Release|x86.Build.0 = Release|Any CPU + {FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC}.Debug|x64.ActiveCfg = Debug|Any CPU + {FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC}.Debug|x64.Build.0 = Debug|Any CPU + {FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC}.Debug|x86.ActiveCfg = Debug|Any CPU + {FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC}.Debug|x86.Build.0 = Debug|Any CPU + {FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC}.Release|Any CPU.Build.0 = Release|Any CPU + {FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC}.Release|x64.ActiveCfg = Release|Any CPU + {FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC}.Release|x64.Build.0 = Release|Any CPU + {FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC}.Release|x86.ActiveCfg = Release|Any CPU + {FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC}.Release|x86.Build.0 = Release|Any CPU + {ACA789EA-BD38-490B-A7F8-6A3A86985025}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ACA789EA-BD38-490B-A7F8-6A3A86985025}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ACA789EA-BD38-490B-A7F8-6A3A86985025}.Debug|x64.ActiveCfg = Debug|Any CPU + {ACA789EA-BD38-490B-A7F8-6A3A86985025}.Debug|x64.Build.0 = Debug|Any CPU + {ACA789EA-BD38-490B-A7F8-6A3A86985025}.Debug|x86.ActiveCfg = Debug|Any CPU + {ACA789EA-BD38-490B-A7F8-6A3A86985025}.Debug|x86.Build.0 = Debug|Any CPU + {ACA789EA-BD38-490B-A7F8-6A3A86985025}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ACA789EA-BD38-490B-A7F8-6A3A86985025}.Release|Any CPU.Build.0 = Release|Any CPU + {ACA789EA-BD38-490B-A7F8-6A3A86985025}.Release|x64.ActiveCfg = Release|Any CPU + {ACA789EA-BD38-490B-A7F8-6A3A86985025}.Release|x64.Build.0 = Release|Any CPU + {ACA789EA-BD38-490B-A7F8-6A3A86985025}.Release|x86.ActiveCfg = Release|Any CPU + {ACA789EA-BD38-490B-A7F8-6A3A86985025}.Release|x86.Build.0 = Release|Any CPU + {E71C48D2-AD56-4177-BBD7-6BB859A40C92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E71C48D2-AD56-4177-BBD7-6BB859A40C92}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E71C48D2-AD56-4177-BBD7-6BB859A40C92}.Debug|x64.ActiveCfg = Debug|Any CPU + {E71C48D2-AD56-4177-BBD7-6BB859A40C92}.Debug|x64.Build.0 = Debug|Any CPU + {E71C48D2-AD56-4177-BBD7-6BB859A40C92}.Debug|x86.ActiveCfg = Debug|Any CPU + {E71C48D2-AD56-4177-BBD7-6BB859A40C92}.Debug|x86.Build.0 = Debug|Any CPU + {E71C48D2-AD56-4177-BBD7-6BB859A40C92}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E71C48D2-AD56-4177-BBD7-6BB859A40C92}.Release|Any CPU.Build.0 = Release|Any CPU + {E71C48D2-AD56-4177-BBD7-6BB859A40C92}.Release|x64.ActiveCfg = Release|Any CPU + {E71C48D2-AD56-4177-BBD7-6BB859A40C92}.Release|x64.Build.0 = Release|Any CPU + {E71C48D2-AD56-4177-BBD7-6BB859A40C92}.Release|x86.ActiveCfg = Release|Any CPU + {E71C48D2-AD56-4177-BBD7-6BB859A40C92}.Release|x86.Build.0 = Release|Any CPU + {CC8CFF43-DC72-464C-A42D-55E023DE8500}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CC8CFF43-DC72-464C-A42D-55E023DE8500}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CC8CFF43-DC72-464C-A42D-55E023DE8500}.Debug|x64.ActiveCfg = Debug|Any CPU + {CC8CFF43-DC72-464C-A42D-55E023DE8500}.Debug|x64.Build.0 = Debug|Any CPU + {CC8CFF43-DC72-464C-A42D-55E023DE8500}.Debug|x86.ActiveCfg = Debug|Any CPU + {CC8CFF43-DC72-464C-A42D-55E023DE8500}.Debug|x86.Build.0 = Debug|Any CPU + {CC8CFF43-DC72-464C-A42D-55E023DE8500}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CC8CFF43-DC72-464C-A42D-55E023DE8500}.Release|Any CPU.Build.0 = Release|Any CPU + {CC8CFF43-DC72-464C-A42D-55E023DE8500}.Release|x64.ActiveCfg = Release|Any CPU + {CC8CFF43-DC72-464C-A42D-55E023DE8500}.Release|x64.Build.0 = Release|Any CPU + {CC8CFF43-DC72-464C-A42D-55E023DE8500}.Release|x86.ActiveCfg = Release|Any CPU + {CC8CFF43-DC72-464C-A42D-55E023DE8500}.Release|x86.Build.0 = Release|Any CPU + {A2AD98B1-2BED-4864-B573-77BE7B52FED2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A2AD98B1-2BED-4864-B573-77BE7B52FED2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A2AD98B1-2BED-4864-B573-77BE7B52FED2}.Debug|x64.ActiveCfg = Debug|Any CPU + {A2AD98B1-2BED-4864-B573-77BE7B52FED2}.Debug|x64.Build.0 = Debug|Any CPU + {A2AD98B1-2BED-4864-B573-77BE7B52FED2}.Debug|x86.ActiveCfg = Debug|Any CPU + {A2AD98B1-2BED-4864-B573-77BE7B52FED2}.Debug|x86.Build.0 = Debug|Any CPU + {A2AD98B1-2BED-4864-B573-77BE7B52FED2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A2AD98B1-2BED-4864-B573-77BE7B52FED2}.Release|Any CPU.Build.0 = Release|Any CPU + {A2AD98B1-2BED-4864-B573-77BE7B52FED2}.Release|x64.ActiveCfg = Release|Any CPU + {A2AD98B1-2BED-4864-B573-77BE7B52FED2}.Release|x64.Build.0 = Release|Any CPU + {A2AD98B1-2BED-4864-B573-77BE7B52FED2}.Release|x86.ActiveCfg = Release|Any CPU + {A2AD98B1-2BED-4864-B573-77BE7B52FED2}.Release|x86.Build.0 = Release|Any CPU + {F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB}.Debug|x64.ActiveCfg = Debug|Any CPU + {F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB}.Debug|x64.Build.0 = Debug|Any CPU + {F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB}.Debug|x86.ActiveCfg = Debug|Any CPU + {F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB}.Debug|x86.Build.0 = Debug|Any CPU + {F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB}.Release|Any CPU.Build.0 = Release|Any CPU + {F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB}.Release|x64.ActiveCfg = Release|Any CPU + {F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB}.Release|x64.Build.0 = Release|Any CPU + {F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB}.Release|x86.ActiveCfg = Release|Any CPU + {F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB}.Release|x86.Build.0 = Release|Any CPU + {7FC6DD65-0352-4139-8D08-B25C0A0403E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7FC6DD65-0352-4139-8D08-B25C0A0403E3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7FC6DD65-0352-4139-8D08-B25C0A0403E3}.Debug|x64.ActiveCfg = Debug|Any CPU + {7FC6DD65-0352-4139-8D08-B25C0A0403E3}.Debug|x64.Build.0 = Debug|Any CPU + {7FC6DD65-0352-4139-8D08-B25C0A0403E3}.Debug|x86.ActiveCfg = Debug|Any CPU + {7FC6DD65-0352-4139-8D08-B25C0A0403E3}.Debug|x86.Build.0 = Debug|Any CPU + {7FC6DD65-0352-4139-8D08-B25C0A0403E3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7FC6DD65-0352-4139-8D08-B25C0A0403E3}.Release|Any CPU.Build.0 = Release|Any CPU + {7FC6DD65-0352-4139-8D08-B25C0A0403E3}.Release|x64.ActiveCfg = Release|Any CPU + {7FC6DD65-0352-4139-8D08-B25C0A0403E3}.Release|x64.Build.0 = Release|Any CPU + {7FC6DD65-0352-4139-8D08-B25C0A0403E3}.Release|x86.ActiveCfg = Release|Any CPU + {7FC6DD65-0352-4139-8D08-B25C0A0403E3}.Release|x86.Build.0 = Release|Any CPU + {61374D8E-F77C-4A31-AE07-35DAF1847369}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {61374D8E-F77C-4A31-AE07-35DAF1847369}.Debug|Any CPU.Build.0 = Debug|Any CPU + {61374D8E-F77C-4A31-AE07-35DAF1847369}.Debug|x64.ActiveCfg = Debug|Any CPU + {61374D8E-F77C-4A31-AE07-35DAF1847369}.Debug|x64.Build.0 = Debug|Any CPU + {61374D8E-F77C-4A31-AE07-35DAF1847369}.Debug|x86.ActiveCfg = Debug|Any CPU + {61374D8E-F77C-4A31-AE07-35DAF1847369}.Debug|x86.Build.0 = Debug|Any CPU + {61374D8E-F77C-4A31-AE07-35DAF1847369}.Release|Any CPU.ActiveCfg = Release|Any CPU + {61374D8E-F77C-4A31-AE07-35DAF1847369}.Release|Any CPU.Build.0 = Release|Any CPU + {61374D8E-F77C-4A31-AE07-35DAF1847369}.Release|x64.ActiveCfg = Release|Any CPU + {61374D8E-F77C-4A31-AE07-35DAF1847369}.Release|x64.Build.0 = Release|Any CPU + {61374D8E-F77C-4A31-AE07-35DAF1847369}.Release|x86.ActiveCfg = Release|Any CPU + {61374D8E-F77C-4A31-AE07-35DAF1847369}.Release|x86.Build.0 = Release|Any CPU + {F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE}.Debug|x64.ActiveCfg = Debug|Any CPU + {F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE}.Debug|x64.Build.0 = Debug|Any CPU + {F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE}.Debug|x86.ActiveCfg = Debug|Any CPU + {F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE}.Debug|x86.Build.0 = Debug|Any CPU + {F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE}.Release|Any CPU.Build.0 = Release|Any CPU + {F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE}.Release|x64.ActiveCfg = Release|Any CPU + {F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE}.Release|x64.Build.0 = Release|Any CPU + {F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE}.Release|x86.ActiveCfg = Release|Any CPU + {F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE}.Release|x86.Build.0 = Release|Any CPU + {281F7EB5-ACE5-458F-BC88-46A8899DF3BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {281F7EB5-ACE5-458F-BC88-46A8899DF3BA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {281F7EB5-ACE5-458F-BC88-46A8899DF3BA}.Debug|x64.ActiveCfg = Debug|Any CPU + {281F7EB5-ACE5-458F-BC88-46A8899DF3BA}.Debug|x64.Build.0 = Debug|Any CPU + {281F7EB5-ACE5-458F-BC88-46A8899DF3BA}.Debug|x86.ActiveCfg = Debug|Any CPU + {281F7EB5-ACE5-458F-BC88-46A8899DF3BA}.Debug|x86.Build.0 = Debug|Any CPU + {281F7EB5-ACE5-458F-BC88-46A8899DF3BA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {281F7EB5-ACE5-458F-BC88-46A8899DF3BA}.Release|Any CPU.Build.0 = Release|Any CPU + {281F7EB5-ACE5-458F-BC88-46A8899DF3BA}.Release|x64.ActiveCfg = Release|Any CPU + {281F7EB5-ACE5-458F-BC88-46A8899DF3BA}.Release|x64.Build.0 = Release|Any CPU + {281F7EB5-ACE5-458F-BC88-46A8899DF3BA}.Release|x86.ActiveCfg = Release|Any CPU + {281F7EB5-ACE5-458F-BC88-46A8899DF3BA}.Release|x86.Build.0 = Release|Any CPU + {8A22F22E-D10A-4897-A89A-DC76C267F6BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8A22F22E-D10A-4897-A89A-DC76C267F6BB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8A22F22E-D10A-4897-A89A-DC76C267F6BB}.Debug|x64.ActiveCfg = Debug|Any CPU + {8A22F22E-D10A-4897-A89A-DC76C267F6BB}.Debug|x64.Build.0 = Debug|Any CPU + {8A22F22E-D10A-4897-A89A-DC76C267F6BB}.Debug|x86.ActiveCfg = Debug|Any CPU + {8A22F22E-D10A-4897-A89A-DC76C267F6BB}.Debug|x86.Build.0 = Debug|Any CPU + {8A22F22E-D10A-4897-A89A-DC76C267F6BB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8A22F22E-D10A-4897-A89A-DC76C267F6BB}.Release|Any CPU.Build.0 = Release|Any CPU + {8A22F22E-D10A-4897-A89A-DC76C267F6BB}.Release|x64.ActiveCfg = Release|Any CPU + {8A22F22E-D10A-4897-A89A-DC76C267F6BB}.Release|x64.Build.0 = Release|Any CPU + {8A22F22E-D10A-4897-A89A-DC76C267F6BB}.Release|x86.ActiveCfg = Release|Any CPU + {8A22F22E-D10A-4897-A89A-DC76C267F6BB}.Release|x86.Build.0 = Release|Any CPU + {5B0DDE6F-ED16-452F-90D3-F0B6086D51B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5B0DDE6F-ED16-452F-90D3-F0B6086D51B3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5B0DDE6F-ED16-452F-90D3-F0B6086D51B3}.Debug|x64.ActiveCfg = Debug|Any CPU + {5B0DDE6F-ED16-452F-90D3-F0B6086D51B3}.Debug|x64.Build.0 = Debug|Any CPU + {5B0DDE6F-ED16-452F-90D3-F0B6086D51B3}.Debug|x86.ActiveCfg = Debug|Any CPU + {5B0DDE6F-ED16-452F-90D3-F0B6086D51B3}.Debug|x86.Build.0 = Debug|Any CPU + {5B0DDE6F-ED16-452F-90D3-F0B6086D51B3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5B0DDE6F-ED16-452F-90D3-F0B6086D51B3}.Release|Any CPU.Build.0 = Release|Any CPU + {5B0DDE6F-ED16-452F-90D3-F0B6086D51B3}.Release|x64.ActiveCfg = Release|Any CPU + {5B0DDE6F-ED16-452F-90D3-F0B6086D51B3}.Release|x64.Build.0 = Release|Any CPU + {5B0DDE6F-ED16-452F-90D3-F0B6086D51B3}.Release|x86.ActiveCfg = Release|Any CPU + {5B0DDE6F-ED16-452F-90D3-F0B6086D51B3}.Release|x86.Build.0 = Release|Any CPU + {FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645}.Debug|x64.ActiveCfg = Debug|Any CPU + {FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645}.Debug|x64.Build.0 = Debug|Any CPU + {FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645}.Debug|x86.ActiveCfg = Debug|Any CPU + {FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645}.Debug|x86.Build.0 = Debug|Any CPU + {FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645}.Release|Any CPU.Build.0 = Release|Any CPU + {FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645}.Release|x64.ActiveCfg = Release|Any CPU + {FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645}.Release|x64.Build.0 = Release|Any CPU + {FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645}.Release|x86.ActiveCfg = Release|Any CPU + {FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645}.Release|x86.Build.0 = Release|Any CPU + {25F0929B-2E04-4ED6-A0ED-5379A0A755B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {25F0929B-2E04-4ED6-A0ED-5379A0A755B0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {25F0929B-2E04-4ED6-A0ED-5379A0A755B0}.Debug|x64.ActiveCfg = Debug|Any CPU + {25F0929B-2E04-4ED6-A0ED-5379A0A755B0}.Debug|x64.Build.0 = Debug|Any CPU + {25F0929B-2E04-4ED6-A0ED-5379A0A755B0}.Debug|x86.ActiveCfg = Debug|Any CPU + {25F0929B-2E04-4ED6-A0ED-5379A0A755B0}.Debug|x86.Build.0 = Debug|Any CPU + {25F0929B-2E04-4ED6-A0ED-5379A0A755B0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {25F0929B-2E04-4ED6-A0ED-5379A0A755B0}.Release|Any CPU.Build.0 = Release|Any CPU + {25F0929B-2E04-4ED6-A0ED-5379A0A755B0}.Release|x64.ActiveCfg = Release|Any CPU + {25F0929B-2E04-4ED6-A0ED-5379A0A755B0}.Release|x64.Build.0 = Release|Any CPU + {25F0929B-2E04-4ED6-A0ED-5379A0A755B0}.Release|x86.ActiveCfg = Release|Any CPU + {25F0929B-2E04-4ED6-A0ED-5379A0A755B0}.Release|x86.Build.0 = Release|Any CPU + {9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E}.Debug|x64.ActiveCfg = Debug|Any CPU + {9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E}.Debug|x64.Build.0 = Debug|Any CPU + {9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E}.Debug|x86.ActiveCfg = Debug|Any CPU + {9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E}.Debug|x86.Build.0 = Debug|Any CPU + {9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E}.Release|Any CPU.Build.0 = Release|Any CPU + {9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E}.Release|x64.ActiveCfg = Release|Any CPU + {9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E}.Release|x64.Build.0 = Release|Any CPU + {9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E}.Release|x86.ActiveCfg = Release|Any CPU + {9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E}.Release|x86.Build.0 = Release|Any CPU + {B640DB80-C982-407B-A2EC-CD29AC77DDB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B640DB80-C982-407B-A2EC-CD29AC77DDB8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B640DB80-C982-407B-A2EC-CD29AC77DDB8}.Debug|x64.ActiveCfg = Debug|Any CPU + {B640DB80-C982-407B-A2EC-CD29AC77DDB8}.Debug|x64.Build.0 = Debug|Any CPU + {B640DB80-C982-407B-A2EC-CD29AC77DDB8}.Debug|x86.ActiveCfg = Debug|Any CPU + {B640DB80-C982-407B-A2EC-CD29AC77DDB8}.Debug|x86.Build.0 = Debug|Any CPU + {B640DB80-C982-407B-A2EC-CD29AC77DDB8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B640DB80-C982-407B-A2EC-CD29AC77DDB8}.Release|Any CPU.Build.0 = Release|Any CPU + {B640DB80-C982-407B-A2EC-CD29AC77DDB8}.Release|x64.ActiveCfg = Release|Any CPU + {B640DB80-C982-407B-A2EC-CD29AC77DDB8}.Release|x64.Build.0 = Release|Any CPU + {B640DB80-C982-407B-A2EC-CD29AC77DDB8}.Release|x86.ActiveCfg = Release|Any CPU + {B640DB80-C982-407B-A2EC-CD29AC77DDB8}.Release|x86.Build.0 = Release|Any CPU + {E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B}.Debug|x64.ActiveCfg = Debug|Any CPU + {E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B}.Debug|x64.Build.0 = Debug|Any CPU + {E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B}.Debug|x86.ActiveCfg = Debug|Any CPU + {E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B}.Debug|x86.Build.0 = Debug|Any CPU + {E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B}.Release|Any CPU.Build.0 = Release|Any CPU + {E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B}.Release|x64.ActiveCfg = Release|Any CPU + {E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B}.Release|x64.Build.0 = Release|Any CPU + {E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B}.Release|x86.ActiveCfg = Release|Any CPU + {E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B}.Release|x86.Build.0 = Release|Any CPU + {D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5}.Debug|x64.ActiveCfg = Debug|Any CPU + {D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5}.Debug|x64.Build.0 = Debug|Any CPU + {D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5}.Debug|x86.ActiveCfg = Debug|Any CPU + {D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5}.Debug|x86.Build.0 = Debug|Any CPU + {D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5}.Release|Any CPU.Build.0 = Release|Any CPU + {D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5}.Release|x64.ActiveCfg = Release|Any CPU + {D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5}.Release|x64.Build.0 = Release|Any CPU + {D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5}.Release|x86.ActiveCfg = Release|Any CPU + {D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5}.Release|x86.Build.0 = Release|Any CPU + {6B978BB7-6C6E-481A-BE21-2E9E93B06AA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6B978BB7-6C6E-481A-BE21-2E9E93B06AA0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6B978BB7-6C6E-481A-BE21-2E9E93B06AA0}.Debug|x64.ActiveCfg = Debug|Any CPU + {6B978BB7-6C6E-481A-BE21-2E9E93B06AA0}.Debug|x64.Build.0 = Debug|Any CPU + {6B978BB7-6C6E-481A-BE21-2E9E93B06AA0}.Debug|x86.ActiveCfg = Debug|Any CPU + {6B978BB7-6C6E-481A-BE21-2E9E93B06AA0}.Debug|x86.Build.0 = Debug|Any CPU + {6B978BB7-6C6E-481A-BE21-2E9E93B06AA0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6B978BB7-6C6E-481A-BE21-2E9E93B06AA0}.Release|Any CPU.Build.0 = Release|Any CPU + {6B978BB7-6C6E-481A-BE21-2E9E93B06AA0}.Release|x64.ActiveCfg = Release|Any CPU + {6B978BB7-6C6E-481A-BE21-2E9E93B06AA0}.Release|x64.Build.0 = Release|Any CPU + {6B978BB7-6C6E-481A-BE21-2E9E93B06AA0}.Release|x86.ActiveCfg = Release|Any CPU + {6B978BB7-6C6E-481A-BE21-2E9E93B06AA0}.Release|x86.Build.0 = Release|Any CPU + {B2ED85F6-FDBA-4AD7-8C13-1BF8BF464938}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B2ED85F6-FDBA-4AD7-8C13-1BF8BF464938}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B2ED85F6-FDBA-4AD7-8C13-1BF8BF464938}.Debug|x64.ActiveCfg = Debug|Any CPU + {B2ED85F6-FDBA-4AD7-8C13-1BF8BF464938}.Debug|x64.Build.0 = Debug|Any CPU + {B2ED85F6-FDBA-4AD7-8C13-1BF8BF464938}.Debug|x86.ActiveCfg = Debug|Any CPU + {B2ED85F6-FDBA-4AD7-8C13-1BF8BF464938}.Debug|x86.Build.0 = Debug|Any CPU + {B2ED85F6-FDBA-4AD7-8C13-1BF8BF464938}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B2ED85F6-FDBA-4AD7-8C13-1BF8BF464938}.Release|Any CPU.Build.0 = Release|Any CPU + {B2ED85F6-FDBA-4AD7-8C13-1BF8BF464938}.Release|x64.ActiveCfg = Release|Any CPU + {B2ED85F6-FDBA-4AD7-8C13-1BF8BF464938}.Release|x64.Build.0 = Release|Any CPU + {B2ED85F6-FDBA-4AD7-8C13-1BF8BF464938}.Release|x86.ActiveCfg = Release|Any CPU + {B2ED85F6-FDBA-4AD7-8C13-1BF8BF464938}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {ACED222F-BDEB-48B6-BA6E-A28659080766} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} + {7A6A2996-1F41-4C94-A0A2-3AE963247243} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} + {3BA6251D-DE4E-4547-AAA9-25F4BA04C636} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} + {1A3AC28C-3AEE-40FE-B229-9E38BB609547} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} + {B68A0D0A-4785-48CB-864F-29E3A8ACA526} = {1CFF5568-8486-475F-81F6-06105C437528} + {A422C742-2CF9-409D-BDAE-15825AB62113} = {A566F2D7-F8FE-466A-8306-85F266B7E656} + {A040AED5-BBB8-4BFA-B2A5-BBD82817B8A5} = {1CFF5568-8486-475F-81F6-06105C437528} + {4EC48E6A-45B5-4E25-ABBD-C23FE2BD6E1E} = {1CFF5568-8486-475F-81F6-06105C437528} + {F8B4100F-4014-4A1E-8130-D281453B79ED} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} + {12B940EF-A5D3-459D-BD36-A603834D1F7D} = {1CFF5568-8486-475F-81F6-06105C437528} + {B7AC87DF-9705-47D9-AC00-C230E577CA5D} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} + {3E1D77BD-70AF-4767-B00A-4A321D5AB2C3} = {1CFF5568-8486-475F-81F6-06105C437528} + {1ECB31E8-2EF0-41E2-8C71-CB9876D207F0} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} + {386A9769-59BF-4BE3-99D4-A9603E300729} = {1CFF5568-8486-475F-81F6-06105C437528} + {4F5020DB-9856-4A6F-B2CB-2C213FD749BC} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} + {B1A91FDB-A843-4CE5-A1AC-2ED48A158AA1} = {1CFF5568-8486-475F-81F6-06105C437528} + {A19E6CBD-8078-49F9-849E-2E484BFAF324} = {1CFF5568-8486-475F-81F6-06105C437528} + {93DEAC72-245F-4FC9-A7B5-DAE7EF7E1AB7} = {A19E6CBD-8078-49F9-849E-2E484BFAF324} + {CDAE55EB-9438-4F54-B7ED-931D64324D5F} = {A19E6CBD-8078-49F9-849E-2E484BFAF324} + {AA532674-A61C-41E6-8F9A-ED53D79AF1EC} = {93DEAC72-245F-4FC9-A7B5-DAE7EF7E1AB7} + {AAFA39E9-66A3-4B9A-AFE9-EAF74A85A7F0} = {CDAE55EB-9438-4F54-B7ED-931D64324D5F} + {3C6162D7-0162-4BC2-BBF5-0554539A81CD} = {CDAE55EB-9438-4F54-B7ED-931D64324D5F} + {4EAB66F9-C9CB-4E8A-BEE6-A14CD7FDE02F} = {AAFA39E9-66A3-4B9A-AFE9-EAF74A85A7F0} + {BA495B95-C463-4759-AA9D-34C6614B3511} = {AAFA39E9-66A3-4B9A-AFE9-EAF74A85A7F0} + {3C9FA701-31FF-4747-B324-E0D252EAFD63} = {AAFA39E9-66A3-4B9A-AFE9-EAF74A85A7F0} + {DEA5A48E-BC47-4E87-858C-282860CA196E} = {4EAB66F9-C9CB-4E8A-BEE6-A14CD7FDE02F} + {45D90299-D29F-4380-8FE8-98DF70508290} = {4EAB66F9-C9CB-4E8A-BEE6-A14CD7FDE02F} + {E0DEFF37-3706-4F61-98CA-904E2F964605} = {4EAB66F9-C9CB-4E8A-BEE6-A14CD7FDE02F} + {F858D526-7919-472B-8992-D627A4F3987C} = {BA495B95-C463-4759-AA9D-34C6614B3511} + {92669F13-F9C9-479F-ABA1-163D93ABCF95} = {BA495B95-C463-4759-AA9D-34C6614B3511} + {CC30B576-10ED-4DB2-A6C7-3A603E671523} = {BA495B95-C463-4759-AA9D-34C6614B3511} + {D22576BE-3D83-47C1-8B35-947C0B6DA8ED} = {3C9FA701-31FF-4747-B324-E0D252EAFD63} + {8DDAFE37-ED59-4710-9415-8EBA44CC6437} = {3C9FA701-31FF-4747-B324-E0D252EAFD63} + {8DDED681-AE8D-45EB-A22E-2FFB88620F9B} = {3C9FA701-31FF-4747-B324-E0D252EAFD63} + {24AC34AD-AEC9-4CFB-BB01-C3C81938AB95} = {93DEAC72-245F-4FC9-A7B5-DAE7EF7E1AB7} + {D303B458-9D84-4DDF-8781-2C0211672329} = {93DEAC72-245F-4FC9-A7B5-DAE7EF7E1AB7} + {FB2C7DA3-6FCE-429D-86F9-5775D0231EC6} = {CDAE55EB-9438-4F54-B7ED-931D64324D5F} + {9AF99F6D-E8E7-443F-A965-D55B8E388836} = {FB2C7DA3-6FCE-429D-86F9-5775D0231EC6} + {FBCE2C8A-2F64-4B62-8CF1-D4A14C19A5CC} = {FB2C7DA3-6FCE-429D-86F9-5775D0231EC6} + {ACA789EA-BD38-490B-A7F8-6A3A86985025} = {FB2C7DA3-6FCE-429D-86F9-5775D0231EC6} + {E71C48D2-AD56-4177-BBD7-6BB859A40C92} = {FB2C7DA3-6FCE-429D-86F9-5775D0231EC6} + {CC8CFF43-DC72-464C-A42D-55E023DE8500} = {FB2C7DA3-6FCE-429D-86F9-5775D0231EC6} + {A2AD98B1-2BED-4864-B573-77BE7B52FED2} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} + {F8F80477-1EAD-4C5C-A329-CBC0A60C7CAB} = {A566F2D7-F8FE-466A-8306-85F266B7E656} + {A566F2D7-F8FE-466A-8306-85F266B7E656} = {1CFF5568-8486-475F-81F6-06105C437528} + {7FC6DD65-0352-4139-8D08-B25C0A0403E3} = {4EAB66F9-C9CB-4E8A-BEE6-A14CD7FDE02F} + {61374D8E-F77C-4A31-AE07-35DAF1847369} = {1CFF5568-8486-475F-81F6-06105C437528} + {F4B8D5AF-D3CA-4910-A14D-E5BAEF0FD1DE} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} + {281F7EB5-ACE5-458F-BC88-46A8899DF3BA} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} + {8A22F22E-D10A-4897-A89A-DC76C267F6BB} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} + {5B0DDE6F-ED16-452F-90D3-F0B6086D51B3} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} + {FDBDB9F8-B3E2-4ACA-9FC6-E12FF3D95645} = {1CFF5568-8486-475F-81F6-06105C437528} + {25F0929B-2E04-4ED6-A0ED-5379A0A755B0} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} + {9E2B8160-3E76-4B33-86AB-DE35A5FCDB1E} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} + {B640DB80-C982-407B-A2EC-CD29AC77DDB8} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} + {E1F2A3B4-C5D6-7E8F-9A0B-1C2D3E4F5A6B} = {1CFF5568-8486-475F-81F6-06105C437528} + {D2951A1A-D0EF-4CA4-AB4D-5ABAEFD164F5} = {1CFF5568-8486-475F-81F6-06105C437528} + {6B978BB7-6C6E-481A-BE21-2E9E93B06AA0} = {73C9B1E5-3893-47E8-B373-17E5F5D7E6F5} + {B2ED85F6-FDBA-4AD7-8C13-1BF8BF464938} = {1CFF5568-8486-475F-81F6-06105C437528} + EndGlobalSection +EndGlobal diff --git a/libraries/src/AWS.Lambda.Powertools.Metadata/AWS.Lambda.Powertools.Metadata.csproj b/libraries/src/AWS.Lambda.Powertools.Metadata/AWS.Lambda.Powertools.Metadata.csproj new file mode 100644 index 00000000..fd59f9e9 --- /dev/null +++ b/libraries/src/AWS.Lambda.Powertools.Metadata/AWS.Lambda.Powertools.Metadata.csproj @@ -0,0 +1,21 @@ + + + + + enable + enable + AWS.Lambda.Powertools.Metadata + Powertools for AWS Lambda (.NET) - Lambda Metadata package. Provides access to Lambda execution environment metadata from the Lambda Metadata Endpoint (LMDS). + AWS.Lambda.Powertools.Metadata + AWS.Lambda.Powertools.Metadata + true + + + + + + + + + + diff --git a/libraries/src/AWS.Lambda.Powertools.Metadata/Exceptions/LambdaMetadataException.cs b/libraries/src/AWS.Lambda.Powertools.Metadata/Exceptions/LambdaMetadataException.cs new file mode 100644 index 00000000..39378bf6 --- /dev/null +++ b/libraries/src/AWS.Lambda.Powertools.Metadata/Exceptions/LambdaMetadataException.cs @@ -0,0 +1,66 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +namespace AWS.Lambda.Powertools.Metadata.Exceptions; + +/// +/// Exception thrown when the Lambda Metadata Endpoint is unavailable or returns an error. +/// +/// This exception may be thrown when: +/// +/// The metadata endpoint environment variables are not set +/// The metadata endpoint returns a non-200 status code +/// Network errors occur when connecting to the endpoint +/// The response cannot be parsed +/// +/// +/// +public class LambdaMetadataException : Exception +{ + /// + /// Gets the HTTP status code from the metadata endpoint. + /// Returns -1 if not applicable. + /// + public int StatusCode { get; } + + /// + /// Constructs a new exception with the specified message. + /// + /// The error message. + public LambdaMetadataException(string message) : base(message) + { + StatusCode = -1; + } + + /// + /// Constructs a new exception with the specified message and cause. + /// + /// The error message. + /// The underlying cause. + public LambdaMetadataException(string message, Exception innerException) : base(message, innerException) + { + StatusCode = -1; + } + + /// + /// Constructs a new exception with the specified message and HTTP status code. + /// + /// The error message. + /// The HTTP status code from the metadata endpoint. + public LambdaMetadataException(string message, int statusCode) : base(message) + { + StatusCode = statusCode; + } +} diff --git a/libraries/src/AWS.Lambda.Powertools.Metadata/Internal/IMetadataFetcher.cs b/libraries/src/AWS.Lambda.Powertools.Metadata/Internal/IMetadataFetcher.cs new file mode 100644 index 00000000..fc437c48 --- /dev/null +++ b/libraries/src/AWS.Lambda.Powertools.Metadata/Internal/IMetadataFetcher.cs @@ -0,0 +1,27 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +namespace AWS.Lambda.Powertools.Metadata.Internal; + +/// +/// Internal interface for fetching Lambda metadata. +/// +internal interface IMetadataFetcher +{ + /// + /// Fetches metadata from the Lambda Metadata Endpoint. + /// + MetadataValues Fetch(); +} diff --git a/libraries/src/AWS.Lambda.Powertools.Metadata/Internal/LambdaMetadataSerializerContext.cs b/libraries/src/AWS.Lambda.Powertools.Metadata/Internal/LambdaMetadataSerializerContext.cs new file mode 100644 index 00000000..b90be24d --- /dev/null +++ b/libraries/src/AWS.Lambda.Powertools.Metadata/Internal/LambdaMetadataSerializerContext.cs @@ -0,0 +1,30 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +using System.Text.Json.Serialization; + +namespace AWS.Lambda.Powertools.Metadata.Internal; + +/// +/// Source-generated JSON serializer context for AOT compatibility. +/// +[JsonSourceGenerationOptions( + PropertyNamingPolicy = JsonKnownNamingPolicy.Unspecified, + DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull, + WriteIndented = false)] +[JsonSerializable(typeof(MetadataValues))] +internal partial class LambdaMetadataSerializerContext : JsonSerializerContext +{ +} diff --git a/libraries/src/AWS.Lambda.Powertools.Metadata/Internal/MetadataFetcher.cs b/libraries/src/AWS.Lambda.Powertools.Metadata/Internal/MetadataFetcher.cs new file mode 100644 index 00000000..c85dfeec --- /dev/null +++ b/libraries/src/AWS.Lambda.Powertools.Metadata/Internal/MetadataFetcher.cs @@ -0,0 +1,106 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +using System.Net; +using System.Text.Json; +using AWS.Lambda.Powertools.Metadata.Exceptions; + +namespace AWS.Lambda.Powertools.Metadata.Internal; + +/// +/// Fetches metadata from the Lambda Metadata Endpoint (LMDS). +/// +internal sealed class MetadataFetcher : IMetadataFetcher +{ + private const string EnvMetadataApi = "AWS_LAMBDA_METADATA_API"; + private const string EnvMetadataToken = "AWS_LAMBDA_METADATA_TOKEN"; + private const string ApiVersion = "2026-01-15"; + private const string MetadataPath = "/metadata/execution-environment"; + + private readonly HttpClient _httpClient; + + public MetadataFetcher() : this(CreateHttpClient()) + { + } + + internal MetadataFetcher(HttpClient httpClient) + { + _httpClient = httpClient; + } + + private static HttpClient CreateHttpClient() + { + return new HttpClient(new HttpClientHandler + { + AutomaticDecompression = DecompressionMethods.None + }) + { + Timeout = TimeSpan.FromSeconds(1) + }; + } + + public MetadataValues Fetch() + { + var (token, url) = GetEndpointInfo(); + + try + { + using var request = new HttpRequestMessage(HttpMethod.Get, url); + request.Headers.Add("Authorization", $"Bearer {token}"); + + using var response = _httpClient.Send(request); + return ProcessResponse(response); + } + catch (LambdaMetadataException) + { + throw; + } + catch (Exception ex) + { + throw new LambdaMetadataException($"Failed to fetch Lambda metadata: {ex.Message}", ex); + } + } + + private static (string token, string url) GetEndpointInfo() + { + var token = Environment.GetEnvironmentVariable(EnvMetadataToken); + var api = Environment.GetEnvironmentVariable(EnvMetadataApi); + + if (string.IsNullOrEmpty(token)) + throw new LambdaMetadataException( + $"Lambda metadata token not available. Ensure {EnvMetadataToken} is set."); + + if (string.IsNullOrEmpty(api)) + throw new LambdaMetadataException( + $"Lambda metadata API endpoint not available. Ensure {EnvMetadataApi} is set."); + + return (token, $"http://{api}/{ApiVersion}{MetadataPath}"); + } + + private static MetadataValues ProcessResponse(HttpResponseMessage response) + { + if (!response.IsSuccessStatusCode) + { + var error = response.Content.ReadAsStringAsync().GetAwaiter().GetResult(); + throw new LambdaMetadataException( + $"Metadata request failed with status {(int)response.StatusCode}: {error}", + (int)response.StatusCode); + } + + var body = response.Content.ReadAsStringAsync().GetAwaiter().GetResult(); + return JsonSerializer.Deserialize(body, LambdaMetadataSerializerContext.Default.MetadataValues) + ?? throw new LambdaMetadataException("Failed to deserialize Lambda metadata response."); + } +} diff --git a/libraries/src/AWS.Lambda.Powertools.Metadata/InternalsVisibleTo.cs b/libraries/src/AWS.Lambda.Powertools.Metadata/InternalsVisibleTo.cs new file mode 100644 index 00000000..fc2655a6 --- /dev/null +++ b/libraries/src/AWS.Lambda.Powertools.Metadata/InternalsVisibleTo.cs @@ -0,0 +1,20 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +using System.Runtime.CompilerServices; + +[assembly: InternalsVisibleTo("AWS.Lambda.Powertools.Metadata.Tests")] +[assembly: InternalsVisibleTo("AWS.Lambda.Powertools.ConcurrencyTests")] +[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] diff --git a/libraries/src/AWS.Lambda.Powertools.Metadata/LambdaMetadata.cs b/libraries/src/AWS.Lambda.Powertools.Metadata/LambdaMetadata.cs new file mode 100644 index 00000000..192ea100 --- /dev/null +++ b/libraries/src/AWS.Lambda.Powertools.Metadata/LambdaMetadata.cs @@ -0,0 +1,122 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +using System.Text.Json.Serialization; +using AWS.Lambda.Powertools.Metadata.Exceptions; +using AWS.Lambda.Powertools.Metadata.Internal; + +namespace AWS.Lambda.Powertools.Metadata; + +/// +/// Provides access to Lambda execution environment metadata from the Lambda Metadata Endpoint (LMDS). +/// +/// Metadata is automatically fetched on first access and cached for the Lambda sandbox lifetime. +/// +/// +/// +/// +/// var azId = LambdaMetadata.AvailabilityZoneId; +/// +/// +public static class LambdaMetadata +{ + private static readonly object Lock = new(); + private static volatile MetadataValues? _cached; + private static IMetadataFetcher _fetcher = new MetadataFetcher(); + + /// + /// Gets the Availability Zone ID where the Lambda function is executing. + /// + /// Example value: "use1-az1" + /// + /// Thrown if the metadata endpoint is unavailable or returns an error. + /// + public static string? AvailabilityZoneId => GetCached().AvailabilityZoneId; + + /// + /// Forces a refresh of the cached metadata. + /// + /// In most cases, you don't need this since metadata remains constant for the + /// Lambda sandbox lifetime. + /// + /// + /// + /// Thrown if the metadata endpoint is unavailable or returns an error. + /// + public static void Refresh() + { + lock (Lock) + { + _cached = _fetcher.Fetch(); + } + } + + private static MetadataValues GetCached() + { + var instance = _cached; + if (instance is not null) + return instance; + + lock (Lock) + { + instance = _cached; + if (instance is not null) + return instance; + + var newInstance = _fetcher.Fetch(); + _cached = newInstance; + return newInstance; + } + } + + /// + /// Sets the metadata fetcher (for testing only). + /// + internal static void SetFetcher(IMetadataFetcher fetcher) + { + lock (Lock) + { + _fetcher = fetcher; + _cached = null; + } + } + + /// + /// Resets the cached instance (for testing only). + /// + internal static void Reset() + { + lock (Lock) + { + _cached = null; + } + } +} + +/// +/// Internal class for JSON deserialization of metadata values. +/// +internal sealed class MetadataValues +{ + [JsonPropertyName("AvailabilityZoneID")] + public string? AvailabilityZoneId { get; init; } + + public MetadataValues() { } + + public MetadataValues(string? availabilityZoneId) + { + AvailabilityZoneId = availabilityZoneId; + } +} diff --git a/libraries/src/AWS.Lambda.Powertools.Metadata/README.md b/libraries/src/AWS.Lambda.Powertools.Metadata/README.md new file mode 100644 index 00000000..1e42af4f --- /dev/null +++ b/libraries/src/AWS.Lambda.Powertools.Metadata/README.md @@ -0,0 +1,49 @@ +# AWS.Lambda.Powertools.Metadata + +Powertools for AWS Lambda (.NET) - Lambda Metadata utility. + +Provides access to Lambda execution environment metadata from the Lambda Metadata Endpoint (LMDS). + +## Installation + +```bash +dotnet add package AWS.Lambda.Powertools.Metadata +``` + +## Usage + +```csharp +using AWS.Lambda.Powertools.Metadata; + +public class Function +{ + public string Handler(object input, ILambdaContext context) + { + var azId = LambdaMetadata.AvailabilityZoneId; + return $"Running in AZ: {azId}"; + } +} +``` + +## Available Metadata + +| Property | Description | Example | +|----------|-------------|---------| +| `AvailabilityZoneId` | The AZ where the function is executing | `use1-az1` | + +## Error Handling + +```csharp +try +{ + var azId = LambdaMetadata.AvailabilityZoneId; +} +catch (AWS.Lambda.Powertools.Metadata.Exceptions.LambdaMetadataException ex) +{ + Console.WriteLine($"Failed: {ex.Message}"); +} +``` + +## License + +Apache License 2.0 diff --git a/libraries/tests/AWS.Lambda.Powertools.Metadata.Tests/AWS.Lambda.Powertools.Metadata.Tests.csproj b/libraries/tests/AWS.Lambda.Powertools.Metadata.Tests/AWS.Lambda.Powertools.Metadata.Tests.csproj new file mode 100644 index 00000000..af6353a8 --- /dev/null +++ b/libraries/tests/AWS.Lambda.Powertools.Metadata.Tests/AWS.Lambda.Powertools.Metadata.Tests.csproj @@ -0,0 +1,31 @@ + + + + enable + enable + AWS.Lambda.Powertools.Metadata.Tests + AWS.Lambda.Powertools.Metadata.Tests + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + diff --git a/libraries/tests/AWS.Lambda.Powertools.Metadata.Tests/Exceptions/LambdaMetadataExceptionTests.cs b/libraries/tests/AWS.Lambda.Powertools.Metadata.Tests/Exceptions/LambdaMetadataExceptionTests.cs new file mode 100644 index 00000000..c49b3ac8 --- /dev/null +++ b/libraries/tests/AWS.Lambda.Powertools.Metadata.Tests/Exceptions/LambdaMetadataExceptionTests.cs @@ -0,0 +1,62 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +using AWS.Lambda.Powertools.Metadata.Exceptions; +using FluentAssertions; +using Xunit; + +namespace AWS.Lambda.Powertools.Metadata.Tests.Exceptions; + +public class LambdaMetadataExceptionTests +{ + [Fact] + public void Constructor_WithMessage_Should_SetMessage() + { + // When + var exception = new LambdaMetadataException("Test message"); + + // Then + exception.Message.Should().Be("Test message"); + exception.StatusCode.Should().Be(-1); + exception.InnerException.Should().BeNull(); + } + + [Fact] + public void Constructor_WithMessageAndCause_Should_SetBoth() + { + // Given + var cause = new InvalidOperationException("Root cause"); + + // When + var exception = new LambdaMetadataException("Test message", cause); + + // Then + exception.Message.Should().Be("Test message"); + exception.InnerException.Should().BeSameAs(cause); + exception.StatusCode.Should().Be(-1); + } + + [Fact] + public void Constructor_WithMessageAndStatusCode_Should_SetBoth() + { + // When + var exception = new LambdaMetadataException("Test message", 500); + + // Then + exception.Message.Should().Be("Test message"); + exception.StatusCode.Should().Be(500); + exception.InnerException.Should().BeNull(); + } +} diff --git a/libraries/tests/AWS.Lambda.Powertools.Metadata.Tests/Internal/MetadataFetcherTests.cs b/libraries/tests/AWS.Lambda.Powertools.Metadata.Tests/Internal/MetadataFetcherTests.cs new file mode 100644 index 00000000..70af3c06 --- /dev/null +++ b/libraries/tests/AWS.Lambda.Powertools.Metadata.Tests/Internal/MetadataFetcherTests.cs @@ -0,0 +1,182 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +using System.Net; +using AWS.Lambda.Powertools.Metadata.Exceptions; +using AWS.Lambda.Powertools.Metadata.Internal; +using FluentAssertions; +using Xunit; + +namespace AWS.Lambda.Powertools.Metadata.Tests.Internal; + +public class MetadataFetcherTests : IDisposable +{ + public MetadataFetcherTests() + { + Environment.SetEnvironmentVariable("AWS_LAMBDA_METADATA_TOKEN", "test-token"); + Environment.SetEnvironmentVariable("AWS_LAMBDA_METADATA_API", "localhost:8080"); + } + + public void Dispose() + { + Environment.SetEnvironmentVariable("AWS_LAMBDA_METADATA_TOKEN", null); + Environment.SetEnvironmentVariable("AWS_LAMBDA_METADATA_API", null); + } + + [Fact] + public void Fetch_ThrowsWhenTokenMissing() + { + Environment.SetEnvironmentVariable("AWS_LAMBDA_METADATA_TOKEN", null); + + var fetcher = new MetadataFetcher(); + var act = () => fetcher.Fetch(); + act.Should().Throw() + .WithMessage("*AWS_LAMBDA_METADATA_TOKEN*"); + } + + [Fact] + public void Fetch_ThrowsWhenApiMissing() + { + Environment.SetEnvironmentVariable("AWS_LAMBDA_METADATA_API", null); + + var fetcher = new MetadataFetcher(); + var act = () => fetcher.Fetch(); + act.Should().Throw() + .WithMessage("*AWS_LAMBDA_METADATA_API*"); + } + + [Fact] + public void Fetch_ReturnsMetadata_WhenSuccessful() + { + var handler = new MockHandler(new HttpResponseMessage(HttpStatusCode.OK) + { + Content = new StringContent("{\"AvailabilityZoneID\":\"use1-az1\"}") + }); + var fetcher = new MetadataFetcher(new HttpClient(handler)); + + var result = fetcher.Fetch(); + + result.AvailabilityZoneId.Should().Be("use1-az1"); + } + + [Fact] + public void Fetch_ThrowsWithStatusCode_WhenHttpError() + { + var handler = new MockHandler(new HttpResponseMessage(HttpStatusCode.Forbidden) + { + Content = new StringContent("access denied") + }); + var fetcher = new MetadataFetcher(new HttpClient(handler)); + + var act = () => fetcher.Fetch(); + + act.Should().Throw() + .Where(e => e.Message.Contains("403") && e.Message.Contains("access denied")) + .Where(e => e.StatusCode == 403); + } + + [Fact] + public void Fetch_WrapsGenericException() + { + var handler = new MockHandler(new InvalidOperationException("connection refused")); + var fetcher = new MetadataFetcher(new HttpClient(handler)); + + var act = () => fetcher.Fetch(); + + act.Should().Throw() + .WithMessage("*connection refused*") + .WithInnerException(); + } + + [Fact] + public void Fetch_ThrowsWhenDeserializationReturnsNull() + { + var handler = new MockHandler(new HttpResponseMessage(HttpStatusCode.OK) + { + Content = new StringContent("null") + }); + var fetcher = new MetadataFetcher(new HttpClient(handler)); + + var act = () => fetcher.Fetch(); + + act.Should().Throw() + .WithMessage("*deserialize*"); + } + + [Fact] + public void Fetch_SetsAuthorizationHeader() + { + var handler = new MockHandler(new HttpResponseMessage(HttpStatusCode.OK) + { + Content = new StringContent("{\"AvailabilityZoneID\":\"use1-az1\"}") + }); + var fetcher = new MetadataFetcher(new HttpClient(handler)); + + fetcher.Fetch(); + + handler.LastRequest.Should().NotBeNull(); + handler.LastRequest!.Headers.Authorization.Should().NotBeNull(); + handler.LastRequest.Headers.Authorization!.Scheme.Should().Be("Bearer"); + handler.LastRequest.Headers.Authorization.Parameter.Should().Be("test-token"); + } + + [Fact] + public void Fetch_UsesCorrectUrl() + { + var handler = new MockHandler(new HttpResponseMessage(HttpStatusCode.OK) + { + Content = new StringContent("{\"AvailabilityZoneID\":\"use1-az1\"}") + }); + var fetcher = new MetadataFetcher(new HttpClient(handler)); + + fetcher.Fetch(); + + handler.LastRequest!.RequestUri!.ToString() + .Should().Be("http://localhost:8080/2026-01-15/metadata/execution-environment"); + } + + [Fact] + public void Fetch_RethrowsLambdaMetadataException() + { + var handler = new MockHandler(new LambdaMetadataException("original error")); + var fetcher = new MetadataFetcher(new HttpClient(handler)); + + var act = () => fetcher.Fetch(); + + act.Should().Throw() + .WithMessage("original error") + .Where(e => e.InnerException == null); + } + + private class MockHandler : HttpMessageHandler + { + private readonly HttpResponseMessage? _response; + private readonly Exception? _exception; + public HttpRequestMessage? LastRequest { get; private set; } + + public MockHandler(HttpResponseMessage response) => _response = response; + public MockHandler(Exception exception) => _exception = exception; + + protected override HttpResponseMessage Send(HttpRequestMessage request, CancellationToken cancellationToken) + { + LastRequest = request; + if (_exception is not null) throw _exception; + return _response!; + } + + protected override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) + => Task.FromResult(Send(request, cancellationToken)); + } +} diff --git a/libraries/tests/AWS.Lambda.Powertools.Metadata.Tests/LambdaMetadataCollection.cs b/libraries/tests/AWS.Lambda.Powertools.Metadata.Tests/LambdaMetadataCollection.cs new file mode 100644 index 00000000..d8dcbbed --- /dev/null +++ b/libraries/tests/AWS.Lambda.Powertools.Metadata.Tests/LambdaMetadataCollection.cs @@ -0,0 +1,27 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +using Xunit; + +namespace AWS.Lambda.Powertools.Metadata.Tests; + +/// +/// Collection definition to ensure tests that use the static LambdaMetadata +/// run sequentially and don't interfere with each other. +/// +[CollectionDefinition("LambdaMetadata", DisableParallelization = true)] +public class LambdaMetadataCollection +{ +} diff --git a/libraries/tests/AWS.Lambda.Powertools.Metadata.Tests/LambdaMetadataConcurrencyTests.cs b/libraries/tests/AWS.Lambda.Powertools.Metadata.Tests/LambdaMetadataConcurrencyTests.cs new file mode 100644 index 00000000..5abff27f --- /dev/null +++ b/libraries/tests/AWS.Lambda.Powertools.Metadata.Tests/LambdaMetadataConcurrencyTests.cs @@ -0,0 +1,70 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +using AWS.Lambda.Powertools.Metadata.Internal; +using FluentAssertions; +using NSubstitute; +using Xunit; + +namespace AWS.Lambda.Powertools.Metadata.Tests; + +[Collection("LambdaMetadata")] +public class LambdaMetadataConcurrencyTests : IDisposable +{ + private readonly IMetadataFetcher _mockFetcher; + + public LambdaMetadataConcurrencyTests() + { + _mockFetcher = Substitute.For(); + LambdaMetadata.SetFetcher(_mockFetcher); + } + + public void Dispose() + { + LambdaMetadata.Reset(); + } + + [Fact] + public async Task AvailabilityZoneId_IsThreadSafe() + { + // Arrange + _mockFetcher.Fetch().Returns(new MetadataValues("use1-az1")); + + const int threadCount = 50; + var startSignal = new TaskCompletionSource(); + var tasks = new List>(); + + // Act + for (var i = 0; i < threadCount; i++) + { + tasks.Add(Task.Run(async () => + { + await startSignal.Task; + return LambdaMetadata.AvailabilityZoneId; + })); + } + + startSignal.SetResult(true); + var results = await Task.WhenAll(tasks); + + // Assert + foreach (var result in results) + { + result.Should().Be("use1-az1"); + } + + _mockFetcher.Received(1).Fetch(); + } +} diff --git a/libraries/tests/AWS.Lambda.Powertools.Metadata.Tests/LambdaMetadataTests.cs b/libraries/tests/AWS.Lambda.Powertools.Metadata.Tests/LambdaMetadataTests.cs new file mode 100644 index 00000000..025da45f --- /dev/null +++ b/libraries/tests/AWS.Lambda.Powertools.Metadata.Tests/LambdaMetadataTests.cs @@ -0,0 +1,121 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +using AWS.Lambda.Powertools.Metadata.Exceptions; +using AWS.Lambda.Powertools.Metadata.Internal; +using FluentAssertions; +using NSubstitute; +using Xunit; + +namespace AWS.Lambda.Powertools.Metadata.Tests; + +[Collection("LambdaMetadata")] +public class LambdaMetadataTests : IDisposable +{ + private readonly IMetadataFetcher _mockFetcher; + + public LambdaMetadataTests() + { + _mockFetcher = Substitute.For(); + LambdaMetadata.SetFetcher(_mockFetcher); + } + + public void Dispose() + { + LambdaMetadata.Reset(); + } + + [Fact] + public void AvailabilityZoneId_ReturnsValue() + { + // Arrange + _mockFetcher.Fetch().Returns(new MetadataValues("use1-az1")); + + // Act + var result = LambdaMetadata.AvailabilityZoneId; + + // Assert + result.Should().Be("use1-az1"); + } + + [Fact] + public void AvailabilityZoneId_CachesValue() + { + // Arrange + _mockFetcher.Fetch().Returns(new MetadataValues("use1-az1")); + + // Act + var first = LambdaMetadata.AvailabilityZoneId; + var second = LambdaMetadata.AvailabilityZoneId; + + // Assert + first.Should().Be(second); + _mockFetcher.Received(1).Fetch(); + } + + [Fact] + public void AvailabilityZoneId_ThrowsOnError() + { + // Arrange + _mockFetcher.Fetch().Returns(_ => throw new LambdaMetadataException("Test error")); + + // Act & Assert + var act = () => LambdaMetadata.AvailabilityZoneId; + act.Should().Throw().WithMessage("Test error"); + } + + [Fact] + public void AvailabilityZoneId_ThrowsWithStatusCode() + { + // Arrange + _mockFetcher.Fetch().Returns(_ => throw new LambdaMetadataException("Server error", 500)); + + // Act & Assert + var act = () => LambdaMetadata.AvailabilityZoneId; + act.Should().Throw().Where(e => e.StatusCode == 500); + } + + [Fact] + public void Refresh_FetchesNewValue() + { + // Arrange + _mockFetcher.Fetch().Returns( + new MetadataValues("use1-az1"), + new MetadataValues("use1-az2")); + + // Act + var first = LambdaMetadata.AvailabilityZoneId; + LambdaMetadata.Refresh(); + var second = LambdaMetadata.AvailabilityZoneId; + + // Assert + first.Should().Be("use1-az1"); + second.Should().Be("use1-az2"); + _mockFetcher.Received(2).Fetch(); + } + + [Fact] + public void AvailabilityZoneId_ReturnsNullWhenNotSet() + { + // Arrange + _mockFetcher.Fetch().Returns(new MetadataValues(null)); + + // Act + var result = LambdaMetadata.AvailabilityZoneId; + + // Assert + result.Should().BeNull(); + } +} diff --git a/mkdocs.yml b/mkdocs.yml index c4df475c..0fa231fe 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -28,6 +28,7 @@ nav: - core/event_handler/appsync_events.md - core/event_handler/bedrock_agent_function.md - utilities/parameters.md + - utilities/metadata.md - utilities/jmespath-functions.md - utilities/kafka.md - Resources: @@ -132,6 +133,7 @@ plugins: - utilities/idempotency.md - utilities/batch-processing.md - utilities/parameters.md + - utilities/metadata.md - utilities/jmespath-functions.md - core/event_handler/appsync_events.md - core/event_handler/bedrock_agent_function.md