diff --git a/.editorconfig b/.editorconfig
index 58328a89..70747a32 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -175,6 +175,7 @@ csharp_style_prefer_method_group_conversion = true:silent
 csharp_style_prefer_top_level_statements = true:silent
 csharp_style_prefer_null_check_over_type_check = true:suggestion
 csharp_style_prefer_local_over_anonymous_function = true:suggestion
+csharp_style_prefer_primary_constructors = true:suggestion
 
 #### Naming styles ####
 [*.{cs,vb}]
@@ -370,4 +371,5 @@ tab_width = 4
 indent_size = 4
 end_of_line = crlf
 dotnet_style_namespace_match_folder = true:suggestion
+dotnet_style_prefer_collection_expression = true:suggestion
 
diff --git a/.github/workflows/JGUZDV.WebApiHost.yml b/.github/workflows/JGUZDV.WebApiHost.yml
new file mode 100644
index 00000000..f2b14c8d
--- /dev/null
+++ b/.github/workflows/JGUZDV.WebApiHost.yml
@@ -0,0 +1,23 @@
+name: JGUZDV.WebApiHost
+
+on:
+  workflow_dispatch:
+    inputs:
+      push-to-nuget:
+        description: Push package to NuGet
+        type: boolean
+
+  pull_request:
+    branches:
+      - main
+    paths:
+      - libraries/JGUZDV.WebApiHost/**
+
+jobs:
+  call_default_build:
+    uses: ./.github/workflows/default_build.yml
+    with:
+      library-name: JGUZDV.WebApiHost
+      push-to-nuget: ${{ inputs.push-to-nuget != '' && inputs.push-to-nuget }}
+    secrets:
+      NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
\ No newline at end of file
diff --git a/AddLibrary.ps1 b/AddLibrary.ps1
new file mode 100644
index 00000000..e6c052b1
--- /dev/null
+++ b/AddLibrary.ps1
@@ -0,0 +1,19 @@
+param(
+    [Parameter(Mandatory = $true, ValueFromPipeline=$true)]
+    [string] $LibraryName,
+
+    [Parameter()]
+    [string] $Template = 'classlib'
+)
+
+process {
+    Push-Location $PSScriptRoot
+
+    Invoke-Expression "dotnet new $Template -n $LibraryName -o ./libraries/$LibraryName/src"
+    Invoke-Expression "dotnet new xunit -n $LibraryName.Tests -o ./libraries/$LibraryName/test"
+
+    Invoke-Expression "dotnet sln . add ./libraries/$LibraryName/src"
+    Invoke-Expression "dotnet sln . add ./libraries/$LibraryName/test"
+
+    Pop-Location
+}
\ No newline at end of file
diff --git a/NuGet-Packages.sln b/NuGet-Packages.sln
index 1e4b055d..54ff87b3 100644
--- a/NuGet-Packages.sln
+++ b/NuGet-Packages.sln
@@ -7,6 +7,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
 	ProjectSection(SolutionItems) = preProject
 		.editorconfig = .editorconfig
 		.gitignore = .gitignore
+		AddLibrary.ps1 = AddLibrary.ps1
 		LICENSE = LICENSE
 	EndProjectSection
 EndProject
@@ -15,294 +16,766 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "libraries", "libraries", "{
 		libraries\Directory.Build.props = libraries\Directory.Build.props
 	EndProjectSection
 EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{5F18EE62-3FBC-42F5-96DC-8C61C3D9EF27}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JGUZDV.ActiveDirectory.ClaimProvider", "JGUZDV.ActiveDirectory.ClaimProvider", "{FBF7BAF0-B8E9-45C5-9B50-7B8DDD607467}"
 EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{50252EFB-8629-4B1D-AC2F-5F29CB6F684D}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.ActiveDirectory.ClaimProvider", "libraries\JGUZDV.ActiveDirectory.ClaimProvider\src\JGUZDV.ActiveDirectory.ClaimProvider.csproj", "{675D258E-525C-4048-8E88-97C5E78ED819}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.AspNetCore.Logging", "libraries\JGUZDV.AspNetCore.Logging\src\JGUZDV.AspNetCore.Logging.csproj", "{311DE251-20A2-42C0-BD6C-2A327221D3C3}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.ActiveDirectory.ClaimProvider.Tests", "libraries\JGUZDV.ActiveDirectory.ClaimProvider\test\JGUZDV.ActiveDirectory.ClaimProvider.Tests.csproj", "{5CE38D63-D07F-46F1-9008-8206AB6F4231}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.AspNetCore.Logging.Tests", "libraries\JGUZDV.AspNetCore.Logging\test\JGUZDV.AspNetCore.Logging.Tests.csproj", "{6D6BD6AF-06E3-4FB2-ADEF-E373D2E94B3E}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JGUZDV.AspNetCore.Authentication.Cookies", "JGUZDV.AspNetCore.Authentication.Cookies", "{ED0A40A7-2790-42F3-822E-C475F021D7D8}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.AspNetCore.DataProtection", "libraries\JGUZDV.AspNetCore.DataProtection\src\JGUZDV.AspNetCore.DataProtection.csproj", "{F840F15F-592B-4E82-BFEB-CA2F3DBA3C2F}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.AspNetCore.Authentication.Cookies", "libraries\JGUZDV.AspNetCore.Authentication.Cookies\src\JGUZDV.AspNetCore.Authentication.Cookies.csproj", "{3848AAF1-D8CA-4C55-A0B6-FCE23DDE8D9C}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.AspNetCore.DataProtection.Tests", "libraries\JGUZDV.AspNetCore.DataProtection\test\JGUZDV.AspNetCore.DataProtection.Tests.csproj", "{97B58430-AAA3-4283-85FC-2BA1ED37514E}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.AspNetCore.Authentication.Cookies.Tests", "libraries\JGUZDV.AspNetCore.Authentication.Cookies\test\JGUZDV.AspNetCore.Authentication.Cookies.Tests.csproj", "{FDFA7DDF-05D0-44F6-9000-71A4DD07BED0}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Linq", "libraries\JGUZDV.Linq\src\JGUZDV.Linq.csproj", "{C551EE51-B06E-4554-9114-763150B8908E}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JGUZDV.AspNetCore.DataProtection", "JGUZDV.AspNetCore.DataProtection", "{F86B6B96-D027-4FF4-931D-69AA0891F539}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Linq.Tests", "libraries\JGUZDV.Linq\test\JGUZDV.Linq.Tests.csproj", "{07AAE83F-56C7-4A9A-9972-7F9BE53D031A}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.AspNetCore.DataProtection", "libraries\JGUZDV.AspNetCore.DataProtection\src\JGUZDV.AspNetCore.DataProtection.csproj", "{29CE7134-3831-4E4A-A502-C84233D1ED35}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.CQRS", "libraries\JGUZDV.CQRS\src\JGUZDV.CQRS.csproj", "{A7A0EDB7-BFE4-4645-A8A3-0D42A5E1002F}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.AspNetCore.DataProtection.Tests", "libraries\JGUZDV.AspNetCore.DataProtection\test\JGUZDV.AspNetCore.DataProtection.Tests.csproj", "{20E70A44-016E-470C-947D-C1FC4161D1FB}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.CQRS.Tests", "libraries\JGUZDV.CQRS\test\JGUZDV.CQRS.Tests.csproj", "{7372528E-F5B9-49C6-8EC4-8F793DFC081D}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JGUZDV.AspNetCore.Logging", "JGUZDV.AspNetCore.Logging", "{458FC9E2-3D73-44AF-BE0A-C5C0F23AFE2B}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.CQRS.AspNetCore", "libraries\JGUZDV.CQRS.AspNetCore\src\JGUZDV.CQRS.AspNetCore.csproj", "{A0A4DB02-4AB6-42FA-8F75-B0A58BCF8E57}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.AspNetCore.Logging", "libraries\JGUZDV.AspNetCore.Logging\src\JGUZDV.AspNetCore.Logging.csproj", "{5D5F2C2A-24CD-4C27-902D-FA439E84AD13}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.CQRS.AspNetCore.Tests", "libraries\JGUZDV.CQRS.AspNetCore\test\JGUZDV.CQRS.AspNetCore.Tests.csproj", "{4B50EE32-BF4F-4FE4-918D-3B35695CD829}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.AspNetCore.Logging.Tests", "libraries\JGUZDV.AspNetCore.Logging\test\JGUZDV.AspNetCore.Logging.Tests.csproj", "{88A3D096-F763-47DB-A94B-040D416746E8}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Extensions.Logging", "libraries\JGUZDV.Extensions.Logging\src\JGUZDV.Extensions.Logging.csproj", "{AB284655-5FE2-4DF9-BCF9-87A8962C086E}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JGUZDV.Blazor.Components", "JGUZDV.Blazor.Components", "{DD6389E2-3940-4E3A-AB5F-3B041AFDCAED}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Extensions.Logging.Tests", "libraries\JGUZDV.Extensions.Logging\test\JGUZDV.Extensions.Logging.Tests.csproj", "{EC5DD74A-C0FB-4310-95FF-F8C9E2817F5C}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Blazor.Components.Samples", "libraries\JGUZDV.Blazor.Components\samples\JGUZDV.Blazor.Components.Samples.csproj", "{FB3900A8-72B4-4186-90A8-9FA9F585C20E}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.L10n", "libraries\JGUZDV.L10n\src\JGUZDV.L10n.csproj", "{175E14F2-E526-4DEA-9E05-AA87E48DBD7D}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Blazor.Components", "libraries\JGUZDV.Blazor.Components\src\JGUZDV.Blazor.Components.csproj", "{73A3EE19-DEE8-4F79-85F5-DE42FE638F16}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.L10n.Tests", "libraries\JGUZDV.L10n\test\JGUZDV.L10n.Tests.csproj", "{D95B0932-CC64-440A-A956-D9D9EF9E1A99}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Blazor.Components.Tests", "libraries\JGUZDV.Blazor.Components\test\JGUZDV.Blazor.Components.Tests.csproj", "{ADADE7CE-4766-4220-AF7B-F51B5C1F334B}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.L10n.EntityFramework", "libraries\JGUZDV.L10n.EntityFramework\src\JGUZDV.L10n.EntityFramework.csproj", "{9610AFDB-AA50-4AFF-80E5-B8CA65D84A8E}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JGUZDV.Blazor.Components.ClaimRequirements", "JGUZDV.Blazor.Components.ClaimRequirements", "{CD85DC7B-D7D3-4DFF-99D1-B7841BD1F4D8}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.L10n.EntityFramework.Tests", "libraries\JGUZDV.L10n.EntityFramework\test\JGUZDV.L10n.EntityFramework.Tests.csproj", "{AECC9062-83E1-4B62-906D-1055E61E71DE}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Blazor.Components.ClaimRequirements", "libraries\JGUZDV.Blazor.Components.ClaimRequirements\src\JGUZDV.Blazor.Components.ClaimRequirements.csproj", "{662FB941-E473-401D-B856-BC6564101B5D}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Extensions.Authorization", "libraries\JGUZDV.Extensions.Authorization\src\JGUZDV.Extensions.Authorization.csproj", "{3DFED352-5E7E-4688-8371-8B55EB800705}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Blazor.Components.ClaimRequirements.Tests", "libraries\JGUZDV.Blazor.Components.ClaimRequirements\test\JGUZDV.Blazor.Components.ClaimRequirements.Tests.csproj", "{8E600186-574C-41F7-AC0F-B8BC61ED03F7}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Extensions.Authorization.Tests", "libraries\JGUZDV.Extensions.Authorization\test\JGUZDV.Extensions.Authorization.Tests.csproj", "{793F6A63-30B3-44BC-A205-50031E27E31C}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JGUZDV.Blazor.Components.L10n", "JGUZDV.Blazor.Components.L10n", "{51FA04BB-81A2-4EA7-B722-CF4A16BA75E8}"
 EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{AA0D0715-5EAE-437A-ABF5-D596B127544B}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Blazor.Components.L10n", "libraries\JGUZDV.Blazor.Components.L10n\src\JGUZDV.Blazor.Components.L10n.csproj", "{C806F47E-41BF-47D8-975B-A19C8EC14E39}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Blazor.Components.Samples", "libraries\JGUZDV.Blazor.Components\samples\JGUZDV.Blazor.Components.Samples.csproj", "{4AAFE071-EC5E-4F28-961C-7BB1259DC452}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Blazor.Components.L10n.Tests", "libraries\JGUZDV.Blazor.Components.L10n\test\JGUZDV.Blazor.Components.L10n.Tests.csproj", "{76CE3554-41C4-402F-805E-C7C90387B8DD}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Blazor.Components", "libraries\JGUZDV.Blazor.Components\src\JGUZDV.Blazor.Components.csproj", "{E5097EE8-6385-4C20-9DE3-8902CEA4FE8B}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JGUZDV.Blazor.StateManagement", "JGUZDV.Blazor.StateManagement", "{31F5F80A-A66E-4443-BA0B-052D5B836CD6}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Blazor.Components.Tests", "libraries\JGUZDV.Blazor.Components\test\JGUZDV.Blazor.Components.Tests.csproj", "{B39492DF-D142-4F68-BAE9-2862D4B2E865}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Blazor.StateManagement", "libraries\JGUZDV.Blazor.StateManagement\src\JGUZDV.Blazor.StateManagement.csproj", "{2C82E6F1-FEDC-46A1-AE8F-AF550CFA52AB}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Extensions.Json", "libraries\JGUZDV.Extensions.Json\src\JGUZDV.Extensions.Json.csproj", "{17C0DC51-C48D-4CAD-BF20-2C1BF7785A08}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Blazor.StateManagement.Tests", "libraries\JGUZDV.Blazor.StateManagement\test\JGUZDV.Blazor.StateManagement.Tests.csproj", "{26405220-3D38-4D2E-867E-DC53130B0FEB}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Extensions.Json.Tests", "libraries\JGUZDV.Extensions.Json\test\JGUZDV.Extensions.Json.Tests.csproj", "{E3623DC7-BE65-4EBD-9E1D-D66BE0502F72}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JGUZDV.Blazor.WasmServerHost", "JGUZDV.Blazor.WasmServerHost", "{1645F9F0-9447-4249-B15C-790FF70E1968}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.ClientStorage", "libraries\JGUZDV.ClientStorage\src\JGUZDV.ClientStorage.csproj", "{5EED8C4F-CE5B-4539-ABCE-5D07F4EE92B1}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Blazor.WasmServerHost", "libraries\JGUZDV.Blazor.WasmServerHost\src\JGUZDV.Blazor.WasmServerHost.csproj", "{4CD5DE24-C829-4038-8875-1C8B63C96EB7}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.ClientStorage.Tests", "libraries\JGUZDV.ClientStorage\test\JGUZDV.ClientStorage.Tests.csproj", "{BB820FE9-4253-428E-A65A-95CF269022E9}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Blazor.WasmServerHost.Tests", "libraries\JGUZDV.Blazor.WasmServerHost\test\JGUZDV.Blazor.WasmServerHost.Tests.csproj", "{DBD08C7B-B0FD-4EBD-8D3E-41EDFDD35EA7}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.ActiveDirectory.ClaimProvider.Tests", "libraries\JGUZDV.ActiveDirectory.ClaimProvider\test\JGUZDV.ActiveDirectory.ClaimProvider.Tests.csproj", "{3B8F0A74-D7DD-4FA7-A6DF-568640868A24}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JGUZDV.ClientStorage", "JGUZDV.ClientStorage", "{BEE249C5-60E0-43AE-BE52-F65A736BCF32}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.ActiveDirectory.ClaimProvider", "libraries\JGUZDV.ActiveDirectory.ClaimProvider\src\JGUZDV.ActiveDirectory.ClaimProvider.csproj", "{1DE8AF4D-4D46-4766-844E-819757AC4E4C}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.ClientStorage", "libraries\JGUZDV.ClientStorage\src\JGUZDV.ClientStorage.csproj", "{5A65ADF6-09D7-4934-92D2-6EA8EB3D3556}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.AspNetCore.Authentication.Cookies", "libraries\JGUZDV.AspNetCore.Authentication.Cookies\src\JGUZDV.AspNetCore.Authentication.Cookies.csproj", "{D0DE2AFA-498B-489B-9DC4-3AFC8CA60EF0}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.ClientStorage.Tests", "libraries\JGUZDV.ClientStorage\test\JGUZDV.ClientStorage.Tests.csproj", "{9A27AAA8-AFE9-43D4-A3C6-E5D3DAC2ED2B}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.AspNetCore.Authentication.Cookies.Tests", "libraries\JGUZDV.AspNetCore.Authentication.Cookies\test\JGUZDV.AspNetCore.Authentication.Cookies.Tests.csproj", "{AADC7783-3155-4905-9524-61EE2E5E01C2}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JGUZDV.CQRS", "JGUZDV.CQRS", "{D2EEC902-ED1E-419F-9BDA-E91C35498B9A}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.OpenIddict.KeyManager", "libraries\JGUZDV.OpenIddict.KeyManager\src\JGUZDV.OpenIddict.KeyManager.csproj", "{115784A8-B2A6-4790-99D3-C41049CBC1C9}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.CQRS", "libraries\JGUZDV.CQRS\src\JGUZDV.CQRS.csproj", "{70C6FC9D-94BC-4394-AA8E-EB4A329FADB0}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.OpenIddict.KeyManager.Tests", "libraries\JGUZDV.OpenIddict.KeyManager\test\JGUZDV.OpenIddict.KeyManager.Tests.csproj", "{397C9A29-83DB-4944-9D4E-93159CDA60B6}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.CQRS.Tests", "libraries\JGUZDV.CQRS\test\JGUZDV.CQRS.Tests.csproj", "{86427769-9110-4A15-894E-264601C062BD}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Blazor.WasmServerHost", "libraries\JGUZDV.Blazor.WasmServerHost\src\JGUZDV.Blazor.WasmServerHost.csproj", "{68E91C38-4D95-4DCE-9BC2-4AE71236B289}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JGUZDV.CQRS.AspNetCore", "JGUZDV.CQRS.AspNetCore", "{449665D2-57FF-4DFC-BB3A-6E397C49CE72}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Blazor.WasmServerHost.Tests", "libraries\JGUZDV.Blazor.WasmServerHost\test\JGUZDV.Blazor.WasmServerHost.Tests.csproj", "{A2AF6E5E-C42E-47A1-AE81-ED81B84C57DD}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.CQRS.AspNetCore", "libraries\JGUZDV.CQRS.AspNetCore\src\JGUZDV.CQRS.AspNetCore.csproj", "{D8484887-7778-4307-B7A1-4E7CDA711E91}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.YARP.SimpleReverseProxy", "libraries\JGUZDV.YARP.SimpleReverseProxy\src\JGUZDV.YARP.SimpleReverseProxy.csproj", "{7D6C1BB8-4E00-4DB0-9063-859A98C69927}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.CQRS.AspNetCore.Tests", "libraries\JGUZDV.CQRS.AspNetCore\test\JGUZDV.CQRS.AspNetCore.Tests.csproj", "{F00F6E41-A1E5-45DA-A579-EA17696CC19A}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.YARP.SimpleReverseProxy.Tests", "libraries\JGUZDV.YARP.SimpleReverseProxy\test\JGUZDV.YARP.SimpleReverseProxy.Tests.csproj", "{2E589423-3B93-4444-830B-8742E6BF8FD1}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JGUZDV.Extensions.Authorization", "JGUZDV.Extensions.Authorization", "{06DEFC5F-DBE4-4B79-B025-08E097216E5A}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.JobHost", "libraries\JGUZDV.JobHost\src\JGUZDV.JobHost.csproj", "{02F83C77-C526-41D5-853B-1E40EF7F5CDA}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Extensions.Authorization", "libraries\JGUZDV.Extensions.Authorization\src\JGUZDV.Extensions.Authorization.csproj", "{F3565C4B-7BF8-4AB5-94B1-2FCD1B5CCF4B}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.JobHost.Tests", "libraries\JGUZDV.JobHost\test\JGUZDV.JobHost.Tests.csproj", "{E081A3D2-23D1-4C02-80F0-2832DCB502EF}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Extensions.Authorization.Tests", "libraries\JGUZDV.Extensions.Authorization\test\JGUZDV.Extensions.Authorization.Tests.csproj", "{64994378-C809-4702-BF71-9CACEFEB47E5}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.ClientStorage.Blazor", "libraries\JGUZDV.ClientStorage.Blazor\JGUZDV.ClientStorage.Blazor.csproj", "{FD6D3808-5542-458E-88C0-4918F074D8A3}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JGUZDV.Extensions.Json", "JGUZDV.Extensions.Json", "{47CC715C-603B-4C1A-88B5-14562727C6E0}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Extensions.Json", "libraries\JGUZDV.Extensions.Json\src\JGUZDV.Extensions.Json.csproj", "{A3E254D9-8D81-4EC3-B52C-55D9354E9955}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Extensions.Json.Tests", "libraries\JGUZDV.Extensions.Json\test\JGUZDV.Extensions.Json.Tests.csproj", "{F05F64E2-8906-4AD1-89E5-5F40A30F55BB}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JGUZDV.Extensions.Logging", "JGUZDV.Extensions.Logging", "{D9C7551A-2F65-4D5F-9D4E-A42704D850B5}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Extensions.Logging", "libraries\JGUZDV.Extensions.Logging\src\JGUZDV.Extensions.Logging.csproj", "{0D48D910-83B8-4FEE-A0AD-E0FB3536BC80}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Extensions.Logging.Tests", "libraries\JGUZDV.Extensions.Logging\test\JGUZDV.Extensions.Logging.Tests.csproj", "{130E8BF8-97A3-468C-80A8-92247DCBFF51}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JGUZDV.JobHost", "JGUZDV.JobHost", "{B06ACF77-B0EF-42F4-BA33-776F7496E2E6}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.JobHost", "libraries\JGUZDV.JobHost\src\JGUZDV.JobHost.csproj", "{57FBEC02-58DA-435C-82FC-BE9EEC064362}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.JobHost.Tests", "libraries\JGUZDV.JobHost\test\JGUZDV.JobHost.Tests.csproj", "{A8DDE01F-50DC-49D1-805B-4F9331A3DDD5}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JGUZDV.L10n", "JGUZDV.L10n", "{D93740E7-7EAB-4B4C-957E-E21CD73AA1BA}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.L10n", "libraries\JGUZDV.L10n\src\JGUZDV.L10n.csproj", "{B385CC10-A10B-4986-8BF3-443658D5C46B}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.L10n.Tests", "libraries\JGUZDV.L10n\test\JGUZDV.L10n.Tests.csproj", "{F8BBA3C2-9DAC-412D-8084-E69F5F2F3018}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JGUZDV.L10n.EntityFramework", "JGUZDV.L10n.EntityFramework", "{E5F92691-2BEB-491C-9219-CBA30A54A3E6}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.L10n.EntityFramework", "libraries\JGUZDV.L10n.EntityFramework\src\JGUZDV.L10n.EntityFramework.csproj", "{67E30962-CD08-4700-B1F8-8E7C029F40CF}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.L10n.EntityFramework.Tests", "libraries\JGUZDV.L10n.EntityFramework\test\JGUZDV.L10n.EntityFramework.Tests.csproj", "{49AA7C6A-AB52-457C-BB9E-C927082DBA34}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JGUZDV.Linq", "JGUZDV.Linq", "{4F001AAE-FC38-4071-94B2-DC33FE5C3735}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Linq", "libraries\JGUZDV.Linq\src\JGUZDV.Linq.csproj", "{33895E03-3FB0-4FE1-9660-A0A8D1F92FDD}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.Linq.Tests", "libraries\JGUZDV.Linq\test\JGUZDV.Linq.Tests.csproj", "{228AB90A-19B5-4678-802C-ECA16AA848ED}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JGUZDV.OpenIddict.KeyManager", "JGUZDV.OpenIddict.KeyManager", "{FAB5A604-6D92-46FA-9B3C-AF6165ED8042}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.OpenIddict.KeyManager", "libraries\JGUZDV.OpenIddict.KeyManager\src\JGUZDV.OpenIddict.KeyManager.csproj", "{6813FD87-FAA4-4572-ABF5-3730726E214B}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.OpenIddict.KeyManager.Tests", "libraries\JGUZDV.OpenIddict.KeyManager\test\JGUZDV.OpenIddict.KeyManager.Tests.csproj", "{C6B6D866-3CD2-4724-BE9C-E70A78C9D9D5}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JGUZDV.YARP.SimpleReverseProxy", "JGUZDV.YARP.SimpleReverseProxy", "{B264316F-1CF0-4CF2-9D21-CB908688960D}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.YARP.SimpleReverseProxy", "libraries\JGUZDV.YARP.SimpleReverseProxy\src\JGUZDV.YARP.SimpleReverseProxy.csproj", "{2EC9B3D0-C6AB-45D7-BF92-8016D83A4010}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.YARP.SimpleReverseProxy.Tests", "libraries\JGUZDV.YARP.SimpleReverseProxy\test\JGUZDV.YARP.SimpleReverseProxy.Tests.csproj", "{2DB861F2-5DEA-481B-BECD-6F00EC8C6802}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JGUZDV.WebApiHost", "JGUZDV.WebApiHost", "{4AADAD6A-4BA0-427E-9EA1-4AFE211C1200}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.WebApiHost", "libraries\JGUZDV.WebApiHost\src\JGUZDV.WebApiHost.csproj", "{53D9AE20-2981-411C-87CD-5DCD71D181B4}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JGUZDV.WebApiHost.Tests", "libraries\JGUZDV.WebApiHost\test\JGUZDV.WebApiHost.Tests.csproj", "{892EA5E4-A98F-4A36-B901-8A1FAB27623E}"
 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
-		{311DE251-20A2-42C0-BD6C-2A327221D3C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{311DE251-20A2-42C0-BD6C-2A327221D3C3}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{311DE251-20A2-42C0-BD6C-2A327221D3C3}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{311DE251-20A2-42C0-BD6C-2A327221D3C3}.Release|Any CPU.Build.0 = Release|Any CPU
-		{6D6BD6AF-06E3-4FB2-ADEF-E373D2E94B3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{6D6BD6AF-06E3-4FB2-ADEF-E373D2E94B3E}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{6D6BD6AF-06E3-4FB2-ADEF-E373D2E94B3E}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{6D6BD6AF-06E3-4FB2-ADEF-E373D2E94B3E}.Release|Any CPU.Build.0 = Release|Any CPU
-		{F840F15F-592B-4E82-BFEB-CA2F3DBA3C2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{F840F15F-592B-4E82-BFEB-CA2F3DBA3C2F}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{F840F15F-592B-4E82-BFEB-CA2F3DBA3C2F}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{F840F15F-592B-4E82-BFEB-CA2F3DBA3C2F}.Release|Any CPU.Build.0 = Release|Any CPU
-		{97B58430-AAA3-4283-85FC-2BA1ED37514E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{97B58430-AAA3-4283-85FC-2BA1ED37514E}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{97B58430-AAA3-4283-85FC-2BA1ED37514E}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{97B58430-AAA3-4283-85FC-2BA1ED37514E}.Release|Any CPU.Build.0 = Release|Any CPU
-		{C551EE51-B06E-4554-9114-763150B8908E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{C551EE51-B06E-4554-9114-763150B8908E}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{C551EE51-B06E-4554-9114-763150B8908E}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{C551EE51-B06E-4554-9114-763150B8908E}.Release|Any CPU.Build.0 = Release|Any CPU
-		{07AAE83F-56C7-4A9A-9972-7F9BE53D031A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{07AAE83F-56C7-4A9A-9972-7F9BE53D031A}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{07AAE83F-56C7-4A9A-9972-7F9BE53D031A}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{07AAE83F-56C7-4A9A-9972-7F9BE53D031A}.Release|Any CPU.Build.0 = Release|Any CPU
-		{A7A0EDB7-BFE4-4645-A8A3-0D42A5E1002F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{A7A0EDB7-BFE4-4645-A8A3-0D42A5E1002F}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{A7A0EDB7-BFE4-4645-A8A3-0D42A5E1002F}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{A7A0EDB7-BFE4-4645-A8A3-0D42A5E1002F}.Release|Any CPU.Build.0 = Release|Any CPU
-		{7372528E-F5B9-49C6-8EC4-8F793DFC081D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{7372528E-F5B9-49C6-8EC4-8F793DFC081D}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{7372528E-F5B9-49C6-8EC4-8F793DFC081D}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{7372528E-F5B9-49C6-8EC4-8F793DFC081D}.Release|Any CPU.Build.0 = Release|Any CPU
-		{A0A4DB02-4AB6-42FA-8F75-B0A58BCF8E57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{A0A4DB02-4AB6-42FA-8F75-B0A58BCF8E57}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{A0A4DB02-4AB6-42FA-8F75-B0A58BCF8E57}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{A0A4DB02-4AB6-42FA-8F75-B0A58BCF8E57}.Release|Any CPU.Build.0 = Release|Any CPU
-		{4B50EE32-BF4F-4FE4-918D-3B35695CD829}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{4B50EE32-BF4F-4FE4-918D-3B35695CD829}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{4B50EE32-BF4F-4FE4-918D-3B35695CD829}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{4B50EE32-BF4F-4FE4-918D-3B35695CD829}.Release|Any CPU.Build.0 = Release|Any CPU
-		{AB284655-5FE2-4DF9-BCF9-87A8962C086E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{AB284655-5FE2-4DF9-BCF9-87A8962C086E}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{AB284655-5FE2-4DF9-BCF9-87A8962C086E}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{AB284655-5FE2-4DF9-BCF9-87A8962C086E}.Release|Any CPU.Build.0 = Release|Any CPU
-		{EC5DD74A-C0FB-4310-95FF-F8C9E2817F5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{EC5DD74A-C0FB-4310-95FF-F8C9E2817F5C}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{EC5DD74A-C0FB-4310-95FF-F8C9E2817F5C}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{EC5DD74A-C0FB-4310-95FF-F8C9E2817F5C}.Release|Any CPU.Build.0 = Release|Any CPU
-		{175E14F2-E526-4DEA-9E05-AA87E48DBD7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{175E14F2-E526-4DEA-9E05-AA87E48DBD7D}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{175E14F2-E526-4DEA-9E05-AA87E48DBD7D}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{175E14F2-E526-4DEA-9E05-AA87E48DBD7D}.Release|Any CPU.Build.0 = Release|Any CPU
-		{D95B0932-CC64-440A-A956-D9D9EF9E1A99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{D95B0932-CC64-440A-A956-D9D9EF9E1A99}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{D95B0932-CC64-440A-A956-D9D9EF9E1A99}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{D95B0932-CC64-440A-A956-D9D9EF9E1A99}.Release|Any CPU.Build.0 = Release|Any CPU
-		{9610AFDB-AA50-4AFF-80E5-B8CA65D84A8E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{9610AFDB-AA50-4AFF-80E5-B8CA65D84A8E}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{9610AFDB-AA50-4AFF-80E5-B8CA65D84A8E}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{9610AFDB-AA50-4AFF-80E5-B8CA65D84A8E}.Release|Any CPU.Build.0 = Release|Any CPU
-		{AECC9062-83E1-4B62-906D-1055E61E71DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{AECC9062-83E1-4B62-906D-1055E61E71DE}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{AECC9062-83E1-4B62-906D-1055E61E71DE}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{AECC9062-83E1-4B62-906D-1055E61E71DE}.Release|Any CPU.Build.0 = Release|Any CPU
-		{3DFED352-5E7E-4688-8371-8B55EB800705}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{3DFED352-5E7E-4688-8371-8B55EB800705}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{3DFED352-5E7E-4688-8371-8B55EB800705}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{3DFED352-5E7E-4688-8371-8B55EB800705}.Release|Any CPU.Build.0 = Release|Any CPU
-		{793F6A63-30B3-44BC-A205-50031E27E31C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{793F6A63-30B3-44BC-A205-50031E27E31C}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{793F6A63-30B3-44BC-A205-50031E27E31C}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{793F6A63-30B3-44BC-A205-50031E27E31C}.Release|Any CPU.Build.0 = Release|Any CPU
-		{4AAFE071-EC5E-4F28-961C-7BB1259DC452}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{4AAFE071-EC5E-4F28-961C-7BB1259DC452}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{4AAFE071-EC5E-4F28-961C-7BB1259DC452}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{4AAFE071-EC5E-4F28-961C-7BB1259DC452}.Release|Any CPU.Build.0 = Release|Any CPU
-		{E5097EE8-6385-4C20-9DE3-8902CEA4FE8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{E5097EE8-6385-4C20-9DE3-8902CEA4FE8B}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{E5097EE8-6385-4C20-9DE3-8902CEA4FE8B}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{E5097EE8-6385-4C20-9DE3-8902CEA4FE8B}.Release|Any CPU.Build.0 = Release|Any CPU
-		{B39492DF-D142-4F68-BAE9-2862D4B2E865}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{B39492DF-D142-4F68-BAE9-2862D4B2E865}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{B39492DF-D142-4F68-BAE9-2862D4B2E865}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{B39492DF-D142-4F68-BAE9-2862D4B2E865}.Release|Any CPU.Build.0 = Release|Any CPU
-		{17C0DC51-C48D-4CAD-BF20-2C1BF7785A08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{17C0DC51-C48D-4CAD-BF20-2C1BF7785A08}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{17C0DC51-C48D-4CAD-BF20-2C1BF7785A08}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{17C0DC51-C48D-4CAD-BF20-2C1BF7785A08}.Release|Any CPU.Build.0 = Release|Any CPU
-		{E3623DC7-BE65-4EBD-9E1D-D66BE0502F72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{E3623DC7-BE65-4EBD-9E1D-D66BE0502F72}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{E3623DC7-BE65-4EBD-9E1D-D66BE0502F72}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{E3623DC7-BE65-4EBD-9E1D-D66BE0502F72}.Release|Any CPU.Build.0 = Release|Any CPU
-		{5EED8C4F-CE5B-4539-ABCE-5D07F4EE92B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{5EED8C4F-CE5B-4539-ABCE-5D07F4EE92B1}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{5EED8C4F-CE5B-4539-ABCE-5D07F4EE92B1}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{5EED8C4F-CE5B-4539-ABCE-5D07F4EE92B1}.Release|Any CPU.Build.0 = Release|Any CPU
-		{BB820FE9-4253-428E-A65A-95CF269022E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{BB820FE9-4253-428E-A65A-95CF269022E9}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{BB820FE9-4253-428E-A65A-95CF269022E9}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{BB820FE9-4253-428E-A65A-95CF269022E9}.Release|Any CPU.Build.0 = Release|Any CPU
-		{3B8F0A74-D7DD-4FA7-A6DF-568640868A24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{3B8F0A74-D7DD-4FA7-A6DF-568640868A24}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{3B8F0A74-D7DD-4FA7-A6DF-568640868A24}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{3B8F0A74-D7DD-4FA7-A6DF-568640868A24}.Release|Any CPU.Build.0 = Release|Any CPU
-		{1DE8AF4D-4D46-4766-844E-819757AC4E4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{1DE8AF4D-4D46-4766-844E-819757AC4E4C}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{1DE8AF4D-4D46-4766-844E-819757AC4E4C}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{1DE8AF4D-4D46-4766-844E-819757AC4E4C}.Release|Any CPU.Build.0 = Release|Any CPU
-		{D0DE2AFA-498B-489B-9DC4-3AFC8CA60EF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{D0DE2AFA-498B-489B-9DC4-3AFC8CA60EF0}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{D0DE2AFA-498B-489B-9DC4-3AFC8CA60EF0}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{D0DE2AFA-498B-489B-9DC4-3AFC8CA60EF0}.Release|Any CPU.Build.0 = Release|Any CPU
-		{AADC7783-3155-4905-9524-61EE2E5E01C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{AADC7783-3155-4905-9524-61EE2E5E01C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{AADC7783-3155-4905-9524-61EE2E5E01C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{AADC7783-3155-4905-9524-61EE2E5E01C2}.Release|Any CPU.Build.0 = Release|Any CPU
-		{115784A8-B2A6-4790-99D3-C41049CBC1C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{115784A8-B2A6-4790-99D3-C41049CBC1C9}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{115784A8-B2A6-4790-99D3-C41049CBC1C9}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{115784A8-B2A6-4790-99D3-C41049CBC1C9}.Release|Any CPU.Build.0 = Release|Any CPU
-		{397C9A29-83DB-4944-9D4E-93159CDA60B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{397C9A29-83DB-4944-9D4E-93159CDA60B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{397C9A29-83DB-4944-9D4E-93159CDA60B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{397C9A29-83DB-4944-9D4E-93159CDA60B6}.Release|Any CPU.Build.0 = Release|Any CPU
-		{68E91C38-4D95-4DCE-9BC2-4AE71236B289}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{68E91C38-4D95-4DCE-9BC2-4AE71236B289}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{68E91C38-4D95-4DCE-9BC2-4AE71236B289}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{68E91C38-4D95-4DCE-9BC2-4AE71236B289}.Release|Any CPU.Build.0 = Release|Any CPU
-		{A2AF6E5E-C42E-47A1-AE81-ED81B84C57DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{A2AF6E5E-C42E-47A1-AE81-ED81B84C57DD}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{A2AF6E5E-C42E-47A1-AE81-ED81B84C57DD}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{A2AF6E5E-C42E-47A1-AE81-ED81B84C57DD}.Release|Any CPU.Build.0 = Release|Any CPU
-		{7D6C1BB8-4E00-4DB0-9063-859A98C69927}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{7D6C1BB8-4E00-4DB0-9063-859A98C69927}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{7D6C1BB8-4E00-4DB0-9063-859A98C69927}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{7D6C1BB8-4E00-4DB0-9063-859A98C69927}.Release|Any CPU.Build.0 = Release|Any CPU
-		{2E589423-3B93-4444-830B-8742E6BF8FD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{2E589423-3B93-4444-830B-8742E6BF8FD1}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{2E589423-3B93-4444-830B-8742E6BF8FD1}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{2E589423-3B93-4444-830B-8742E6BF8FD1}.Release|Any CPU.Build.0 = Release|Any CPU
-		{02F83C77-C526-41D5-853B-1E40EF7F5CDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{02F83C77-C526-41D5-853B-1E40EF7F5CDA}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{02F83C77-C526-41D5-853B-1E40EF7F5CDA}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{02F83C77-C526-41D5-853B-1E40EF7F5CDA}.Release|Any CPU.Build.0 = Release|Any CPU
-		{E081A3D2-23D1-4C02-80F0-2832DCB502EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{E081A3D2-23D1-4C02-80F0-2832DCB502EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{E081A3D2-23D1-4C02-80F0-2832DCB502EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{E081A3D2-23D1-4C02-80F0-2832DCB502EF}.Release|Any CPU.Build.0 = Release|Any CPU
-		{FD6D3808-5542-458E-88C0-4918F074D8A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{FD6D3808-5542-458E-88C0-4918F074D8A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{FD6D3808-5542-458E-88C0-4918F074D8A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{FD6D3808-5542-458E-88C0-4918F074D8A3}.Release|Any CPU.Build.0 = Release|Any CPU
+		{675D258E-525C-4048-8E88-97C5E78ED819}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{675D258E-525C-4048-8E88-97C5E78ED819}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{675D258E-525C-4048-8E88-97C5E78ED819}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{675D258E-525C-4048-8E88-97C5E78ED819}.Debug|x64.Build.0 = Debug|Any CPU
+		{675D258E-525C-4048-8E88-97C5E78ED819}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{675D258E-525C-4048-8E88-97C5E78ED819}.Debug|x86.Build.0 = Debug|Any CPU
+		{675D258E-525C-4048-8E88-97C5E78ED819}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{675D258E-525C-4048-8E88-97C5E78ED819}.Release|Any CPU.Build.0 = Release|Any CPU
+		{675D258E-525C-4048-8E88-97C5E78ED819}.Release|x64.ActiveCfg = Release|Any CPU
+		{675D258E-525C-4048-8E88-97C5E78ED819}.Release|x64.Build.0 = Release|Any CPU
+		{675D258E-525C-4048-8E88-97C5E78ED819}.Release|x86.ActiveCfg = Release|Any CPU
+		{675D258E-525C-4048-8E88-97C5E78ED819}.Release|x86.Build.0 = Release|Any CPU
+		{5CE38D63-D07F-46F1-9008-8206AB6F4231}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{5CE38D63-D07F-46F1-9008-8206AB6F4231}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{5CE38D63-D07F-46F1-9008-8206AB6F4231}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{5CE38D63-D07F-46F1-9008-8206AB6F4231}.Debug|x64.Build.0 = Debug|Any CPU
+		{5CE38D63-D07F-46F1-9008-8206AB6F4231}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{5CE38D63-D07F-46F1-9008-8206AB6F4231}.Debug|x86.Build.0 = Debug|Any CPU
+		{5CE38D63-D07F-46F1-9008-8206AB6F4231}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{5CE38D63-D07F-46F1-9008-8206AB6F4231}.Release|Any CPU.Build.0 = Release|Any CPU
+		{5CE38D63-D07F-46F1-9008-8206AB6F4231}.Release|x64.ActiveCfg = Release|Any CPU
+		{5CE38D63-D07F-46F1-9008-8206AB6F4231}.Release|x64.Build.0 = Release|Any CPU
+		{5CE38D63-D07F-46F1-9008-8206AB6F4231}.Release|x86.ActiveCfg = Release|Any CPU
+		{5CE38D63-D07F-46F1-9008-8206AB6F4231}.Release|x86.Build.0 = Release|Any CPU
+		{3848AAF1-D8CA-4C55-A0B6-FCE23DDE8D9C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{3848AAF1-D8CA-4C55-A0B6-FCE23DDE8D9C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{3848AAF1-D8CA-4C55-A0B6-FCE23DDE8D9C}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{3848AAF1-D8CA-4C55-A0B6-FCE23DDE8D9C}.Debug|x64.Build.0 = Debug|Any CPU
+		{3848AAF1-D8CA-4C55-A0B6-FCE23DDE8D9C}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{3848AAF1-D8CA-4C55-A0B6-FCE23DDE8D9C}.Debug|x86.Build.0 = Debug|Any CPU
+		{3848AAF1-D8CA-4C55-A0B6-FCE23DDE8D9C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{3848AAF1-D8CA-4C55-A0B6-FCE23DDE8D9C}.Release|Any CPU.Build.0 = Release|Any CPU
+		{3848AAF1-D8CA-4C55-A0B6-FCE23DDE8D9C}.Release|x64.ActiveCfg = Release|Any CPU
+		{3848AAF1-D8CA-4C55-A0B6-FCE23DDE8D9C}.Release|x64.Build.0 = Release|Any CPU
+		{3848AAF1-D8CA-4C55-A0B6-FCE23DDE8D9C}.Release|x86.ActiveCfg = Release|Any CPU
+		{3848AAF1-D8CA-4C55-A0B6-FCE23DDE8D9C}.Release|x86.Build.0 = Release|Any CPU
+		{FDFA7DDF-05D0-44F6-9000-71A4DD07BED0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{FDFA7DDF-05D0-44F6-9000-71A4DD07BED0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{FDFA7DDF-05D0-44F6-9000-71A4DD07BED0}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{FDFA7DDF-05D0-44F6-9000-71A4DD07BED0}.Debug|x64.Build.0 = Debug|Any CPU
+		{FDFA7DDF-05D0-44F6-9000-71A4DD07BED0}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{FDFA7DDF-05D0-44F6-9000-71A4DD07BED0}.Debug|x86.Build.0 = Debug|Any CPU
+		{FDFA7DDF-05D0-44F6-9000-71A4DD07BED0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{FDFA7DDF-05D0-44F6-9000-71A4DD07BED0}.Release|Any CPU.Build.0 = Release|Any CPU
+		{FDFA7DDF-05D0-44F6-9000-71A4DD07BED0}.Release|x64.ActiveCfg = Release|Any CPU
+		{FDFA7DDF-05D0-44F6-9000-71A4DD07BED0}.Release|x64.Build.0 = Release|Any CPU
+		{FDFA7DDF-05D0-44F6-9000-71A4DD07BED0}.Release|x86.ActiveCfg = Release|Any CPU
+		{FDFA7DDF-05D0-44F6-9000-71A4DD07BED0}.Release|x86.Build.0 = Release|Any CPU
+		{29CE7134-3831-4E4A-A502-C84233D1ED35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{29CE7134-3831-4E4A-A502-C84233D1ED35}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{29CE7134-3831-4E4A-A502-C84233D1ED35}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{29CE7134-3831-4E4A-A502-C84233D1ED35}.Debug|x64.Build.0 = Debug|Any CPU
+		{29CE7134-3831-4E4A-A502-C84233D1ED35}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{29CE7134-3831-4E4A-A502-C84233D1ED35}.Debug|x86.Build.0 = Debug|Any CPU
+		{29CE7134-3831-4E4A-A502-C84233D1ED35}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{29CE7134-3831-4E4A-A502-C84233D1ED35}.Release|Any CPU.Build.0 = Release|Any CPU
+		{29CE7134-3831-4E4A-A502-C84233D1ED35}.Release|x64.ActiveCfg = Release|Any CPU
+		{29CE7134-3831-4E4A-A502-C84233D1ED35}.Release|x64.Build.0 = Release|Any CPU
+		{29CE7134-3831-4E4A-A502-C84233D1ED35}.Release|x86.ActiveCfg = Release|Any CPU
+		{29CE7134-3831-4E4A-A502-C84233D1ED35}.Release|x86.Build.0 = Release|Any CPU
+		{20E70A44-016E-470C-947D-C1FC4161D1FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{20E70A44-016E-470C-947D-C1FC4161D1FB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{20E70A44-016E-470C-947D-C1FC4161D1FB}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{20E70A44-016E-470C-947D-C1FC4161D1FB}.Debug|x64.Build.0 = Debug|Any CPU
+		{20E70A44-016E-470C-947D-C1FC4161D1FB}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{20E70A44-016E-470C-947D-C1FC4161D1FB}.Debug|x86.Build.0 = Debug|Any CPU
+		{20E70A44-016E-470C-947D-C1FC4161D1FB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{20E70A44-016E-470C-947D-C1FC4161D1FB}.Release|Any CPU.Build.0 = Release|Any CPU
+		{20E70A44-016E-470C-947D-C1FC4161D1FB}.Release|x64.ActiveCfg = Release|Any CPU
+		{20E70A44-016E-470C-947D-C1FC4161D1FB}.Release|x64.Build.0 = Release|Any CPU
+		{20E70A44-016E-470C-947D-C1FC4161D1FB}.Release|x86.ActiveCfg = Release|Any CPU
+		{20E70A44-016E-470C-947D-C1FC4161D1FB}.Release|x86.Build.0 = Release|Any CPU
+		{5D5F2C2A-24CD-4C27-902D-FA439E84AD13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{5D5F2C2A-24CD-4C27-902D-FA439E84AD13}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{5D5F2C2A-24CD-4C27-902D-FA439E84AD13}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{5D5F2C2A-24CD-4C27-902D-FA439E84AD13}.Debug|x64.Build.0 = Debug|Any CPU
+		{5D5F2C2A-24CD-4C27-902D-FA439E84AD13}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{5D5F2C2A-24CD-4C27-902D-FA439E84AD13}.Debug|x86.Build.0 = Debug|Any CPU
+		{5D5F2C2A-24CD-4C27-902D-FA439E84AD13}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{5D5F2C2A-24CD-4C27-902D-FA439E84AD13}.Release|Any CPU.Build.0 = Release|Any CPU
+		{5D5F2C2A-24CD-4C27-902D-FA439E84AD13}.Release|x64.ActiveCfg = Release|Any CPU
+		{5D5F2C2A-24CD-4C27-902D-FA439E84AD13}.Release|x64.Build.0 = Release|Any CPU
+		{5D5F2C2A-24CD-4C27-902D-FA439E84AD13}.Release|x86.ActiveCfg = Release|Any CPU
+		{5D5F2C2A-24CD-4C27-902D-FA439E84AD13}.Release|x86.Build.0 = Release|Any CPU
+		{88A3D096-F763-47DB-A94B-040D416746E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{88A3D096-F763-47DB-A94B-040D416746E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{88A3D096-F763-47DB-A94B-040D416746E8}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{88A3D096-F763-47DB-A94B-040D416746E8}.Debug|x64.Build.0 = Debug|Any CPU
+		{88A3D096-F763-47DB-A94B-040D416746E8}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{88A3D096-F763-47DB-A94B-040D416746E8}.Debug|x86.Build.0 = Debug|Any CPU
+		{88A3D096-F763-47DB-A94B-040D416746E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{88A3D096-F763-47DB-A94B-040D416746E8}.Release|Any CPU.Build.0 = Release|Any CPU
+		{88A3D096-F763-47DB-A94B-040D416746E8}.Release|x64.ActiveCfg = Release|Any CPU
+		{88A3D096-F763-47DB-A94B-040D416746E8}.Release|x64.Build.0 = Release|Any CPU
+		{88A3D096-F763-47DB-A94B-040D416746E8}.Release|x86.ActiveCfg = Release|Any CPU
+		{88A3D096-F763-47DB-A94B-040D416746E8}.Release|x86.Build.0 = Release|Any CPU
+		{FB3900A8-72B4-4186-90A8-9FA9F585C20E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{FB3900A8-72B4-4186-90A8-9FA9F585C20E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{FB3900A8-72B4-4186-90A8-9FA9F585C20E}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{FB3900A8-72B4-4186-90A8-9FA9F585C20E}.Debug|x64.Build.0 = Debug|Any CPU
+		{FB3900A8-72B4-4186-90A8-9FA9F585C20E}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{FB3900A8-72B4-4186-90A8-9FA9F585C20E}.Debug|x86.Build.0 = Debug|Any CPU
+		{FB3900A8-72B4-4186-90A8-9FA9F585C20E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{FB3900A8-72B4-4186-90A8-9FA9F585C20E}.Release|Any CPU.Build.0 = Release|Any CPU
+		{FB3900A8-72B4-4186-90A8-9FA9F585C20E}.Release|x64.ActiveCfg = Release|Any CPU
+		{FB3900A8-72B4-4186-90A8-9FA9F585C20E}.Release|x64.Build.0 = Release|Any CPU
+		{FB3900A8-72B4-4186-90A8-9FA9F585C20E}.Release|x86.ActiveCfg = Release|Any CPU
+		{FB3900A8-72B4-4186-90A8-9FA9F585C20E}.Release|x86.Build.0 = Release|Any CPU
+		{73A3EE19-DEE8-4F79-85F5-DE42FE638F16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{73A3EE19-DEE8-4F79-85F5-DE42FE638F16}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{73A3EE19-DEE8-4F79-85F5-DE42FE638F16}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{73A3EE19-DEE8-4F79-85F5-DE42FE638F16}.Debug|x64.Build.0 = Debug|Any CPU
+		{73A3EE19-DEE8-4F79-85F5-DE42FE638F16}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{73A3EE19-DEE8-4F79-85F5-DE42FE638F16}.Debug|x86.Build.0 = Debug|Any CPU
+		{73A3EE19-DEE8-4F79-85F5-DE42FE638F16}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{73A3EE19-DEE8-4F79-85F5-DE42FE638F16}.Release|Any CPU.Build.0 = Release|Any CPU
+		{73A3EE19-DEE8-4F79-85F5-DE42FE638F16}.Release|x64.ActiveCfg = Release|Any CPU
+		{73A3EE19-DEE8-4F79-85F5-DE42FE638F16}.Release|x64.Build.0 = Release|Any CPU
+		{73A3EE19-DEE8-4F79-85F5-DE42FE638F16}.Release|x86.ActiveCfg = Release|Any CPU
+		{73A3EE19-DEE8-4F79-85F5-DE42FE638F16}.Release|x86.Build.0 = Release|Any CPU
+		{ADADE7CE-4766-4220-AF7B-F51B5C1F334B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{ADADE7CE-4766-4220-AF7B-F51B5C1F334B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{ADADE7CE-4766-4220-AF7B-F51B5C1F334B}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{ADADE7CE-4766-4220-AF7B-F51B5C1F334B}.Debug|x64.Build.0 = Debug|Any CPU
+		{ADADE7CE-4766-4220-AF7B-F51B5C1F334B}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{ADADE7CE-4766-4220-AF7B-F51B5C1F334B}.Debug|x86.Build.0 = Debug|Any CPU
+		{ADADE7CE-4766-4220-AF7B-F51B5C1F334B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{ADADE7CE-4766-4220-AF7B-F51B5C1F334B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{ADADE7CE-4766-4220-AF7B-F51B5C1F334B}.Release|x64.ActiveCfg = Release|Any CPU
+		{ADADE7CE-4766-4220-AF7B-F51B5C1F334B}.Release|x64.Build.0 = Release|Any CPU
+		{ADADE7CE-4766-4220-AF7B-F51B5C1F334B}.Release|x86.ActiveCfg = Release|Any CPU
+		{ADADE7CE-4766-4220-AF7B-F51B5C1F334B}.Release|x86.Build.0 = Release|Any CPU
+		{662FB941-E473-401D-B856-BC6564101B5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{662FB941-E473-401D-B856-BC6564101B5D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{662FB941-E473-401D-B856-BC6564101B5D}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{662FB941-E473-401D-B856-BC6564101B5D}.Debug|x64.Build.0 = Debug|Any CPU
+		{662FB941-E473-401D-B856-BC6564101B5D}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{662FB941-E473-401D-B856-BC6564101B5D}.Debug|x86.Build.0 = Debug|Any CPU
+		{662FB941-E473-401D-B856-BC6564101B5D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{662FB941-E473-401D-B856-BC6564101B5D}.Release|Any CPU.Build.0 = Release|Any CPU
+		{662FB941-E473-401D-B856-BC6564101B5D}.Release|x64.ActiveCfg = Release|Any CPU
+		{662FB941-E473-401D-B856-BC6564101B5D}.Release|x64.Build.0 = Release|Any CPU
+		{662FB941-E473-401D-B856-BC6564101B5D}.Release|x86.ActiveCfg = Release|Any CPU
+		{662FB941-E473-401D-B856-BC6564101B5D}.Release|x86.Build.0 = Release|Any CPU
+		{8E600186-574C-41F7-AC0F-B8BC61ED03F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{8E600186-574C-41F7-AC0F-B8BC61ED03F7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{8E600186-574C-41F7-AC0F-B8BC61ED03F7}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{8E600186-574C-41F7-AC0F-B8BC61ED03F7}.Debug|x64.Build.0 = Debug|Any CPU
+		{8E600186-574C-41F7-AC0F-B8BC61ED03F7}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{8E600186-574C-41F7-AC0F-B8BC61ED03F7}.Debug|x86.Build.0 = Debug|Any CPU
+		{8E600186-574C-41F7-AC0F-B8BC61ED03F7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{8E600186-574C-41F7-AC0F-B8BC61ED03F7}.Release|Any CPU.Build.0 = Release|Any CPU
+		{8E600186-574C-41F7-AC0F-B8BC61ED03F7}.Release|x64.ActiveCfg = Release|Any CPU
+		{8E600186-574C-41F7-AC0F-B8BC61ED03F7}.Release|x64.Build.0 = Release|Any CPU
+		{8E600186-574C-41F7-AC0F-B8BC61ED03F7}.Release|x86.ActiveCfg = Release|Any CPU
+		{8E600186-574C-41F7-AC0F-B8BC61ED03F7}.Release|x86.Build.0 = Release|Any CPU
+		{C806F47E-41BF-47D8-975B-A19C8EC14E39}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{C806F47E-41BF-47D8-975B-A19C8EC14E39}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{C806F47E-41BF-47D8-975B-A19C8EC14E39}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{C806F47E-41BF-47D8-975B-A19C8EC14E39}.Debug|x64.Build.0 = Debug|Any CPU
+		{C806F47E-41BF-47D8-975B-A19C8EC14E39}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{C806F47E-41BF-47D8-975B-A19C8EC14E39}.Debug|x86.Build.0 = Debug|Any CPU
+		{C806F47E-41BF-47D8-975B-A19C8EC14E39}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{C806F47E-41BF-47D8-975B-A19C8EC14E39}.Release|Any CPU.Build.0 = Release|Any CPU
+		{C806F47E-41BF-47D8-975B-A19C8EC14E39}.Release|x64.ActiveCfg = Release|Any CPU
+		{C806F47E-41BF-47D8-975B-A19C8EC14E39}.Release|x64.Build.0 = Release|Any CPU
+		{C806F47E-41BF-47D8-975B-A19C8EC14E39}.Release|x86.ActiveCfg = Release|Any CPU
+		{C806F47E-41BF-47D8-975B-A19C8EC14E39}.Release|x86.Build.0 = Release|Any CPU
+		{76CE3554-41C4-402F-805E-C7C90387B8DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{76CE3554-41C4-402F-805E-C7C90387B8DD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{76CE3554-41C4-402F-805E-C7C90387B8DD}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{76CE3554-41C4-402F-805E-C7C90387B8DD}.Debug|x64.Build.0 = Debug|Any CPU
+		{76CE3554-41C4-402F-805E-C7C90387B8DD}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{76CE3554-41C4-402F-805E-C7C90387B8DD}.Debug|x86.Build.0 = Debug|Any CPU
+		{76CE3554-41C4-402F-805E-C7C90387B8DD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{76CE3554-41C4-402F-805E-C7C90387B8DD}.Release|Any CPU.Build.0 = Release|Any CPU
+		{76CE3554-41C4-402F-805E-C7C90387B8DD}.Release|x64.ActiveCfg = Release|Any CPU
+		{76CE3554-41C4-402F-805E-C7C90387B8DD}.Release|x64.Build.0 = Release|Any CPU
+		{76CE3554-41C4-402F-805E-C7C90387B8DD}.Release|x86.ActiveCfg = Release|Any CPU
+		{76CE3554-41C4-402F-805E-C7C90387B8DD}.Release|x86.Build.0 = Release|Any CPU
+		{2C82E6F1-FEDC-46A1-AE8F-AF550CFA52AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{2C82E6F1-FEDC-46A1-AE8F-AF550CFA52AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{2C82E6F1-FEDC-46A1-AE8F-AF550CFA52AB}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{2C82E6F1-FEDC-46A1-AE8F-AF550CFA52AB}.Debug|x64.Build.0 = Debug|Any CPU
+		{2C82E6F1-FEDC-46A1-AE8F-AF550CFA52AB}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{2C82E6F1-FEDC-46A1-AE8F-AF550CFA52AB}.Debug|x86.Build.0 = Debug|Any CPU
+		{2C82E6F1-FEDC-46A1-AE8F-AF550CFA52AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{2C82E6F1-FEDC-46A1-AE8F-AF550CFA52AB}.Release|Any CPU.Build.0 = Release|Any CPU
+		{2C82E6F1-FEDC-46A1-AE8F-AF550CFA52AB}.Release|x64.ActiveCfg = Release|Any CPU
+		{2C82E6F1-FEDC-46A1-AE8F-AF550CFA52AB}.Release|x64.Build.0 = Release|Any CPU
+		{2C82E6F1-FEDC-46A1-AE8F-AF550CFA52AB}.Release|x86.ActiveCfg = Release|Any CPU
+		{2C82E6F1-FEDC-46A1-AE8F-AF550CFA52AB}.Release|x86.Build.0 = Release|Any CPU
+		{26405220-3D38-4D2E-867E-DC53130B0FEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{26405220-3D38-4D2E-867E-DC53130B0FEB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{26405220-3D38-4D2E-867E-DC53130B0FEB}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{26405220-3D38-4D2E-867E-DC53130B0FEB}.Debug|x64.Build.0 = Debug|Any CPU
+		{26405220-3D38-4D2E-867E-DC53130B0FEB}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{26405220-3D38-4D2E-867E-DC53130B0FEB}.Debug|x86.Build.0 = Debug|Any CPU
+		{26405220-3D38-4D2E-867E-DC53130B0FEB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{26405220-3D38-4D2E-867E-DC53130B0FEB}.Release|Any CPU.Build.0 = Release|Any CPU
+		{26405220-3D38-4D2E-867E-DC53130B0FEB}.Release|x64.ActiveCfg = Release|Any CPU
+		{26405220-3D38-4D2E-867E-DC53130B0FEB}.Release|x64.Build.0 = Release|Any CPU
+		{26405220-3D38-4D2E-867E-DC53130B0FEB}.Release|x86.ActiveCfg = Release|Any CPU
+		{26405220-3D38-4D2E-867E-DC53130B0FEB}.Release|x86.Build.0 = Release|Any CPU
+		{4CD5DE24-C829-4038-8875-1C8B63C96EB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{4CD5DE24-C829-4038-8875-1C8B63C96EB7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{4CD5DE24-C829-4038-8875-1C8B63C96EB7}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{4CD5DE24-C829-4038-8875-1C8B63C96EB7}.Debug|x64.Build.0 = Debug|Any CPU
+		{4CD5DE24-C829-4038-8875-1C8B63C96EB7}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{4CD5DE24-C829-4038-8875-1C8B63C96EB7}.Debug|x86.Build.0 = Debug|Any CPU
+		{4CD5DE24-C829-4038-8875-1C8B63C96EB7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{4CD5DE24-C829-4038-8875-1C8B63C96EB7}.Release|Any CPU.Build.0 = Release|Any CPU
+		{4CD5DE24-C829-4038-8875-1C8B63C96EB7}.Release|x64.ActiveCfg = Release|Any CPU
+		{4CD5DE24-C829-4038-8875-1C8B63C96EB7}.Release|x64.Build.0 = Release|Any CPU
+		{4CD5DE24-C829-4038-8875-1C8B63C96EB7}.Release|x86.ActiveCfg = Release|Any CPU
+		{4CD5DE24-C829-4038-8875-1C8B63C96EB7}.Release|x86.Build.0 = Release|Any CPU
+		{DBD08C7B-B0FD-4EBD-8D3E-41EDFDD35EA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{DBD08C7B-B0FD-4EBD-8D3E-41EDFDD35EA7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{DBD08C7B-B0FD-4EBD-8D3E-41EDFDD35EA7}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{DBD08C7B-B0FD-4EBD-8D3E-41EDFDD35EA7}.Debug|x64.Build.0 = Debug|Any CPU
+		{DBD08C7B-B0FD-4EBD-8D3E-41EDFDD35EA7}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{DBD08C7B-B0FD-4EBD-8D3E-41EDFDD35EA7}.Debug|x86.Build.0 = Debug|Any CPU
+		{DBD08C7B-B0FD-4EBD-8D3E-41EDFDD35EA7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{DBD08C7B-B0FD-4EBD-8D3E-41EDFDD35EA7}.Release|Any CPU.Build.0 = Release|Any CPU
+		{DBD08C7B-B0FD-4EBD-8D3E-41EDFDD35EA7}.Release|x64.ActiveCfg = Release|Any CPU
+		{DBD08C7B-B0FD-4EBD-8D3E-41EDFDD35EA7}.Release|x64.Build.0 = Release|Any CPU
+		{DBD08C7B-B0FD-4EBD-8D3E-41EDFDD35EA7}.Release|x86.ActiveCfg = Release|Any CPU
+		{DBD08C7B-B0FD-4EBD-8D3E-41EDFDD35EA7}.Release|x86.Build.0 = Release|Any CPU
+		{5A65ADF6-09D7-4934-92D2-6EA8EB3D3556}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{5A65ADF6-09D7-4934-92D2-6EA8EB3D3556}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{5A65ADF6-09D7-4934-92D2-6EA8EB3D3556}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{5A65ADF6-09D7-4934-92D2-6EA8EB3D3556}.Debug|x64.Build.0 = Debug|Any CPU
+		{5A65ADF6-09D7-4934-92D2-6EA8EB3D3556}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{5A65ADF6-09D7-4934-92D2-6EA8EB3D3556}.Debug|x86.Build.0 = Debug|Any CPU
+		{5A65ADF6-09D7-4934-92D2-6EA8EB3D3556}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{5A65ADF6-09D7-4934-92D2-6EA8EB3D3556}.Release|Any CPU.Build.0 = Release|Any CPU
+		{5A65ADF6-09D7-4934-92D2-6EA8EB3D3556}.Release|x64.ActiveCfg = Release|Any CPU
+		{5A65ADF6-09D7-4934-92D2-6EA8EB3D3556}.Release|x64.Build.0 = Release|Any CPU
+		{5A65ADF6-09D7-4934-92D2-6EA8EB3D3556}.Release|x86.ActiveCfg = Release|Any CPU
+		{5A65ADF6-09D7-4934-92D2-6EA8EB3D3556}.Release|x86.Build.0 = Release|Any CPU
+		{9A27AAA8-AFE9-43D4-A3C6-E5D3DAC2ED2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{9A27AAA8-AFE9-43D4-A3C6-E5D3DAC2ED2B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{9A27AAA8-AFE9-43D4-A3C6-E5D3DAC2ED2B}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{9A27AAA8-AFE9-43D4-A3C6-E5D3DAC2ED2B}.Debug|x64.Build.0 = Debug|Any CPU
+		{9A27AAA8-AFE9-43D4-A3C6-E5D3DAC2ED2B}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{9A27AAA8-AFE9-43D4-A3C6-E5D3DAC2ED2B}.Debug|x86.Build.0 = Debug|Any CPU
+		{9A27AAA8-AFE9-43D4-A3C6-E5D3DAC2ED2B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{9A27AAA8-AFE9-43D4-A3C6-E5D3DAC2ED2B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{9A27AAA8-AFE9-43D4-A3C6-E5D3DAC2ED2B}.Release|x64.ActiveCfg = Release|Any CPU
+		{9A27AAA8-AFE9-43D4-A3C6-E5D3DAC2ED2B}.Release|x64.Build.0 = Release|Any CPU
+		{9A27AAA8-AFE9-43D4-A3C6-E5D3DAC2ED2B}.Release|x86.ActiveCfg = Release|Any CPU
+		{9A27AAA8-AFE9-43D4-A3C6-E5D3DAC2ED2B}.Release|x86.Build.0 = Release|Any CPU
+		{70C6FC9D-94BC-4394-AA8E-EB4A329FADB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{70C6FC9D-94BC-4394-AA8E-EB4A329FADB0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{70C6FC9D-94BC-4394-AA8E-EB4A329FADB0}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{70C6FC9D-94BC-4394-AA8E-EB4A329FADB0}.Debug|x64.Build.0 = Debug|Any CPU
+		{70C6FC9D-94BC-4394-AA8E-EB4A329FADB0}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{70C6FC9D-94BC-4394-AA8E-EB4A329FADB0}.Debug|x86.Build.0 = Debug|Any CPU
+		{70C6FC9D-94BC-4394-AA8E-EB4A329FADB0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{70C6FC9D-94BC-4394-AA8E-EB4A329FADB0}.Release|Any CPU.Build.0 = Release|Any CPU
+		{70C6FC9D-94BC-4394-AA8E-EB4A329FADB0}.Release|x64.ActiveCfg = Release|Any CPU
+		{70C6FC9D-94BC-4394-AA8E-EB4A329FADB0}.Release|x64.Build.0 = Release|Any CPU
+		{70C6FC9D-94BC-4394-AA8E-EB4A329FADB0}.Release|x86.ActiveCfg = Release|Any CPU
+		{70C6FC9D-94BC-4394-AA8E-EB4A329FADB0}.Release|x86.Build.0 = Release|Any CPU
+		{86427769-9110-4A15-894E-264601C062BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{86427769-9110-4A15-894E-264601C062BD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{86427769-9110-4A15-894E-264601C062BD}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{86427769-9110-4A15-894E-264601C062BD}.Debug|x64.Build.0 = Debug|Any CPU
+		{86427769-9110-4A15-894E-264601C062BD}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{86427769-9110-4A15-894E-264601C062BD}.Debug|x86.Build.0 = Debug|Any CPU
+		{86427769-9110-4A15-894E-264601C062BD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{86427769-9110-4A15-894E-264601C062BD}.Release|Any CPU.Build.0 = Release|Any CPU
+		{86427769-9110-4A15-894E-264601C062BD}.Release|x64.ActiveCfg = Release|Any CPU
+		{86427769-9110-4A15-894E-264601C062BD}.Release|x64.Build.0 = Release|Any CPU
+		{86427769-9110-4A15-894E-264601C062BD}.Release|x86.ActiveCfg = Release|Any CPU
+		{86427769-9110-4A15-894E-264601C062BD}.Release|x86.Build.0 = Release|Any CPU
+		{D8484887-7778-4307-B7A1-4E7CDA711E91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{D8484887-7778-4307-B7A1-4E7CDA711E91}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{D8484887-7778-4307-B7A1-4E7CDA711E91}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{D8484887-7778-4307-B7A1-4E7CDA711E91}.Debug|x64.Build.0 = Debug|Any CPU
+		{D8484887-7778-4307-B7A1-4E7CDA711E91}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{D8484887-7778-4307-B7A1-4E7CDA711E91}.Debug|x86.Build.0 = Debug|Any CPU
+		{D8484887-7778-4307-B7A1-4E7CDA711E91}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{D8484887-7778-4307-B7A1-4E7CDA711E91}.Release|Any CPU.Build.0 = Release|Any CPU
+		{D8484887-7778-4307-B7A1-4E7CDA711E91}.Release|x64.ActiveCfg = Release|Any CPU
+		{D8484887-7778-4307-B7A1-4E7CDA711E91}.Release|x64.Build.0 = Release|Any CPU
+		{D8484887-7778-4307-B7A1-4E7CDA711E91}.Release|x86.ActiveCfg = Release|Any CPU
+		{D8484887-7778-4307-B7A1-4E7CDA711E91}.Release|x86.Build.0 = Release|Any CPU
+		{F00F6E41-A1E5-45DA-A579-EA17696CC19A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{F00F6E41-A1E5-45DA-A579-EA17696CC19A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{F00F6E41-A1E5-45DA-A579-EA17696CC19A}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{F00F6E41-A1E5-45DA-A579-EA17696CC19A}.Debug|x64.Build.0 = Debug|Any CPU
+		{F00F6E41-A1E5-45DA-A579-EA17696CC19A}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{F00F6E41-A1E5-45DA-A579-EA17696CC19A}.Debug|x86.Build.0 = Debug|Any CPU
+		{F00F6E41-A1E5-45DA-A579-EA17696CC19A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{F00F6E41-A1E5-45DA-A579-EA17696CC19A}.Release|Any CPU.Build.0 = Release|Any CPU
+		{F00F6E41-A1E5-45DA-A579-EA17696CC19A}.Release|x64.ActiveCfg = Release|Any CPU
+		{F00F6E41-A1E5-45DA-A579-EA17696CC19A}.Release|x64.Build.0 = Release|Any CPU
+		{F00F6E41-A1E5-45DA-A579-EA17696CC19A}.Release|x86.ActiveCfg = Release|Any CPU
+		{F00F6E41-A1E5-45DA-A579-EA17696CC19A}.Release|x86.Build.0 = Release|Any CPU
+		{F3565C4B-7BF8-4AB5-94B1-2FCD1B5CCF4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{F3565C4B-7BF8-4AB5-94B1-2FCD1B5CCF4B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{F3565C4B-7BF8-4AB5-94B1-2FCD1B5CCF4B}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{F3565C4B-7BF8-4AB5-94B1-2FCD1B5CCF4B}.Debug|x64.Build.0 = Debug|Any CPU
+		{F3565C4B-7BF8-4AB5-94B1-2FCD1B5CCF4B}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{F3565C4B-7BF8-4AB5-94B1-2FCD1B5CCF4B}.Debug|x86.Build.0 = Debug|Any CPU
+		{F3565C4B-7BF8-4AB5-94B1-2FCD1B5CCF4B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{F3565C4B-7BF8-4AB5-94B1-2FCD1B5CCF4B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{F3565C4B-7BF8-4AB5-94B1-2FCD1B5CCF4B}.Release|x64.ActiveCfg = Release|Any CPU
+		{F3565C4B-7BF8-4AB5-94B1-2FCD1B5CCF4B}.Release|x64.Build.0 = Release|Any CPU
+		{F3565C4B-7BF8-4AB5-94B1-2FCD1B5CCF4B}.Release|x86.ActiveCfg = Release|Any CPU
+		{F3565C4B-7BF8-4AB5-94B1-2FCD1B5CCF4B}.Release|x86.Build.0 = Release|Any CPU
+		{64994378-C809-4702-BF71-9CACEFEB47E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{64994378-C809-4702-BF71-9CACEFEB47E5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{64994378-C809-4702-BF71-9CACEFEB47E5}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{64994378-C809-4702-BF71-9CACEFEB47E5}.Debug|x64.Build.0 = Debug|Any CPU
+		{64994378-C809-4702-BF71-9CACEFEB47E5}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{64994378-C809-4702-BF71-9CACEFEB47E5}.Debug|x86.Build.0 = Debug|Any CPU
+		{64994378-C809-4702-BF71-9CACEFEB47E5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{64994378-C809-4702-BF71-9CACEFEB47E5}.Release|Any CPU.Build.0 = Release|Any CPU
+		{64994378-C809-4702-BF71-9CACEFEB47E5}.Release|x64.ActiveCfg = Release|Any CPU
+		{64994378-C809-4702-BF71-9CACEFEB47E5}.Release|x64.Build.0 = Release|Any CPU
+		{64994378-C809-4702-BF71-9CACEFEB47E5}.Release|x86.ActiveCfg = Release|Any CPU
+		{64994378-C809-4702-BF71-9CACEFEB47E5}.Release|x86.Build.0 = Release|Any CPU
+		{A3E254D9-8D81-4EC3-B52C-55D9354E9955}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{A3E254D9-8D81-4EC3-B52C-55D9354E9955}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{A3E254D9-8D81-4EC3-B52C-55D9354E9955}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{A3E254D9-8D81-4EC3-B52C-55D9354E9955}.Debug|x64.Build.0 = Debug|Any CPU
+		{A3E254D9-8D81-4EC3-B52C-55D9354E9955}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{A3E254D9-8D81-4EC3-B52C-55D9354E9955}.Debug|x86.Build.0 = Debug|Any CPU
+		{A3E254D9-8D81-4EC3-B52C-55D9354E9955}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{A3E254D9-8D81-4EC3-B52C-55D9354E9955}.Release|Any CPU.Build.0 = Release|Any CPU
+		{A3E254D9-8D81-4EC3-B52C-55D9354E9955}.Release|x64.ActiveCfg = Release|Any CPU
+		{A3E254D9-8D81-4EC3-B52C-55D9354E9955}.Release|x64.Build.0 = Release|Any CPU
+		{A3E254D9-8D81-4EC3-B52C-55D9354E9955}.Release|x86.ActiveCfg = Release|Any CPU
+		{A3E254D9-8D81-4EC3-B52C-55D9354E9955}.Release|x86.Build.0 = Release|Any CPU
+		{F05F64E2-8906-4AD1-89E5-5F40A30F55BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{F05F64E2-8906-4AD1-89E5-5F40A30F55BB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{F05F64E2-8906-4AD1-89E5-5F40A30F55BB}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{F05F64E2-8906-4AD1-89E5-5F40A30F55BB}.Debug|x64.Build.0 = Debug|Any CPU
+		{F05F64E2-8906-4AD1-89E5-5F40A30F55BB}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{F05F64E2-8906-4AD1-89E5-5F40A30F55BB}.Debug|x86.Build.0 = Debug|Any CPU
+		{F05F64E2-8906-4AD1-89E5-5F40A30F55BB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{F05F64E2-8906-4AD1-89E5-5F40A30F55BB}.Release|Any CPU.Build.0 = Release|Any CPU
+		{F05F64E2-8906-4AD1-89E5-5F40A30F55BB}.Release|x64.ActiveCfg = Release|Any CPU
+		{F05F64E2-8906-4AD1-89E5-5F40A30F55BB}.Release|x64.Build.0 = Release|Any CPU
+		{F05F64E2-8906-4AD1-89E5-5F40A30F55BB}.Release|x86.ActiveCfg = Release|Any CPU
+		{F05F64E2-8906-4AD1-89E5-5F40A30F55BB}.Release|x86.Build.0 = Release|Any CPU
+		{0D48D910-83B8-4FEE-A0AD-E0FB3536BC80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{0D48D910-83B8-4FEE-A0AD-E0FB3536BC80}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{0D48D910-83B8-4FEE-A0AD-E0FB3536BC80}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{0D48D910-83B8-4FEE-A0AD-E0FB3536BC80}.Debug|x64.Build.0 = Debug|Any CPU
+		{0D48D910-83B8-4FEE-A0AD-E0FB3536BC80}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{0D48D910-83B8-4FEE-A0AD-E0FB3536BC80}.Debug|x86.Build.0 = Debug|Any CPU
+		{0D48D910-83B8-4FEE-A0AD-E0FB3536BC80}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{0D48D910-83B8-4FEE-A0AD-E0FB3536BC80}.Release|Any CPU.Build.0 = Release|Any CPU
+		{0D48D910-83B8-4FEE-A0AD-E0FB3536BC80}.Release|x64.ActiveCfg = Release|Any CPU
+		{0D48D910-83B8-4FEE-A0AD-E0FB3536BC80}.Release|x64.Build.0 = Release|Any CPU
+		{0D48D910-83B8-4FEE-A0AD-E0FB3536BC80}.Release|x86.ActiveCfg = Release|Any CPU
+		{0D48D910-83B8-4FEE-A0AD-E0FB3536BC80}.Release|x86.Build.0 = Release|Any CPU
+		{130E8BF8-97A3-468C-80A8-92247DCBFF51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{130E8BF8-97A3-468C-80A8-92247DCBFF51}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{130E8BF8-97A3-468C-80A8-92247DCBFF51}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{130E8BF8-97A3-468C-80A8-92247DCBFF51}.Debug|x64.Build.0 = Debug|Any CPU
+		{130E8BF8-97A3-468C-80A8-92247DCBFF51}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{130E8BF8-97A3-468C-80A8-92247DCBFF51}.Debug|x86.Build.0 = Debug|Any CPU
+		{130E8BF8-97A3-468C-80A8-92247DCBFF51}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{130E8BF8-97A3-468C-80A8-92247DCBFF51}.Release|Any CPU.Build.0 = Release|Any CPU
+		{130E8BF8-97A3-468C-80A8-92247DCBFF51}.Release|x64.ActiveCfg = Release|Any CPU
+		{130E8BF8-97A3-468C-80A8-92247DCBFF51}.Release|x64.Build.0 = Release|Any CPU
+		{130E8BF8-97A3-468C-80A8-92247DCBFF51}.Release|x86.ActiveCfg = Release|Any CPU
+		{130E8BF8-97A3-468C-80A8-92247DCBFF51}.Release|x86.Build.0 = Release|Any CPU
+		{57FBEC02-58DA-435C-82FC-BE9EEC064362}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{57FBEC02-58DA-435C-82FC-BE9EEC064362}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{57FBEC02-58DA-435C-82FC-BE9EEC064362}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{57FBEC02-58DA-435C-82FC-BE9EEC064362}.Debug|x64.Build.0 = Debug|Any CPU
+		{57FBEC02-58DA-435C-82FC-BE9EEC064362}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{57FBEC02-58DA-435C-82FC-BE9EEC064362}.Debug|x86.Build.0 = Debug|Any CPU
+		{57FBEC02-58DA-435C-82FC-BE9EEC064362}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{57FBEC02-58DA-435C-82FC-BE9EEC064362}.Release|Any CPU.Build.0 = Release|Any CPU
+		{57FBEC02-58DA-435C-82FC-BE9EEC064362}.Release|x64.ActiveCfg = Release|Any CPU
+		{57FBEC02-58DA-435C-82FC-BE9EEC064362}.Release|x64.Build.0 = Release|Any CPU
+		{57FBEC02-58DA-435C-82FC-BE9EEC064362}.Release|x86.ActiveCfg = Release|Any CPU
+		{57FBEC02-58DA-435C-82FC-BE9EEC064362}.Release|x86.Build.0 = Release|Any CPU
+		{A8DDE01F-50DC-49D1-805B-4F9331A3DDD5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{A8DDE01F-50DC-49D1-805B-4F9331A3DDD5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{A8DDE01F-50DC-49D1-805B-4F9331A3DDD5}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{A8DDE01F-50DC-49D1-805B-4F9331A3DDD5}.Debug|x64.Build.0 = Debug|Any CPU
+		{A8DDE01F-50DC-49D1-805B-4F9331A3DDD5}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{A8DDE01F-50DC-49D1-805B-4F9331A3DDD5}.Debug|x86.Build.0 = Debug|Any CPU
+		{A8DDE01F-50DC-49D1-805B-4F9331A3DDD5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{A8DDE01F-50DC-49D1-805B-4F9331A3DDD5}.Release|Any CPU.Build.0 = Release|Any CPU
+		{A8DDE01F-50DC-49D1-805B-4F9331A3DDD5}.Release|x64.ActiveCfg = Release|Any CPU
+		{A8DDE01F-50DC-49D1-805B-4F9331A3DDD5}.Release|x64.Build.0 = Release|Any CPU
+		{A8DDE01F-50DC-49D1-805B-4F9331A3DDD5}.Release|x86.ActiveCfg = Release|Any CPU
+		{A8DDE01F-50DC-49D1-805B-4F9331A3DDD5}.Release|x86.Build.0 = Release|Any CPU
+		{B385CC10-A10B-4986-8BF3-443658D5C46B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{B385CC10-A10B-4986-8BF3-443658D5C46B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{B385CC10-A10B-4986-8BF3-443658D5C46B}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{B385CC10-A10B-4986-8BF3-443658D5C46B}.Debug|x64.Build.0 = Debug|Any CPU
+		{B385CC10-A10B-4986-8BF3-443658D5C46B}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{B385CC10-A10B-4986-8BF3-443658D5C46B}.Debug|x86.Build.0 = Debug|Any CPU
+		{B385CC10-A10B-4986-8BF3-443658D5C46B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{B385CC10-A10B-4986-8BF3-443658D5C46B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{B385CC10-A10B-4986-8BF3-443658D5C46B}.Release|x64.ActiveCfg = Release|Any CPU
+		{B385CC10-A10B-4986-8BF3-443658D5C46B}.Release|x64.Build.0 = Release|Any CPU
+		{B385CC10-A10B-4986-8BF3-443658D5C46B}.Release|x86.ActiveCfg = Release|Any CPU
+		{B385CC10-A10B-4986-8BF3-443658D5C46B}.Release|x86.Build.0 = Release|Any CPU
+		{F8BBA3C2-9DAC-412D-8084-E69F5F2F3018}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{F8BBA3C2-9DAC-412D-8084-E69F5F2F3018}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{F8BBA3C2-9DAC-412D-8084-E69F5F2F3018}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{F8BBA3C2-9DAC-412D-8084-E69F5F2F3018}.Debug|x64.Build.0 = Debug|Any CPU
+		{F8BBA3C2-9DAC-412D-8084-E69F5F2F3018}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{F8BBA3C2-9DAC-412D-8084-E69F5F2F3018}.Debug|x86.Build.0 = Debug|Any CPU
+		{F8BBA3C2-9DAC-412D-8084-E69F5F2F3018}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{F8BBA3C2-9DAC-412D-8084-E69F5F2F3018}.Release|Any CPU.Build.0 = Release|Any CPU
+		{F8BBA3C2-9DAC-412D-8084-E69F5F2F3018}.Release|x64.ActiveCfg = Release|Any CPU
+		{F8BBA3C2-9DAC-412D-8084-E69F5F2F3018}.Release|x64.Build.0 = Release|Any CPU
+		{F8BBA3C2-9DAC-412D-8084-E69F5F2F3018}.Release|x86.ActiveCfg = Release|Any CPU
+		{F8BBA3C2-9DAC-412D-8084-E69F5F2F3018}.Release|x86.Build.0 = Release|Any CPU
+		{67E30962-CD08-4700-B1F8-8E7C029F40CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{67E30962-CD08-4700-B1F8-8E7C029F40CF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{67E30962-CD08-4700-B1F8-8E7C029F40CF}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{67E30962-CD08-4700-B1F8-8E7C029F40CF}.Debug|x64.Build.0 = Debug|Any CPU
+		{67E30962-CD08-4700-B1F8-8E7C029F40CF}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{67E30962-CD08-4700-B1F8-8E7C029F40CF}.Debug|x86.Build.0 = Debug|Any CPU
+		{67E30962-CD08-4700-B1F8-8E7C029F40CF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{67E30962-CD08-4700-B1F8-8E7C029F40CF}.Release|Any CPU.Build.0 = Release|Any CPU
+		{67E30962-CD08-4700-B1F8-8E7C029F40CF}.Release|x64.ActiveCfg = Release|Any CPU
+		{67E30962-CD08-4700-B1F8-8E7C029F40CF}.Release|x64.Build.0 = Release|Any CPU
+		{67E30962-CD08-4700-B1F8-8E7C029F40CF}.Release|x86.ActiveCfg = Release|Any CPU
+		{67E30962-CD08-4700-B1F8-8E7C029F40CF}.Release|x86.Build.0 = Release|Any CPU
+		{49AA7C6A-AB52-457C-BB9E-C927082DBA34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{49AA7C6A-AB52-457C-BB9E-C927082DBA34}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{49AA7C6A-AB52-457C-BB9E-C927082DBA34}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{49AA7C6A-AB52-457C-BB9E-C927082DBA34}.Debug|x64.Build.0 = Debug|Any CPU
+		{49AA7C6A-AB52-457C-BB9E-C927082DBA34}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{49AA7C6A-AB52-457C-BB9E-C927082DBA34}.Debug|x86.Build.0 = Debug|Any CPU
+		{49AA7C6A-AB52-457C-BB9E-C927082DBA34}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{49AA7C6A-AB52-457C-BB9E-C927082DBA34}.Release|Any CPU.Build.0 = Release|Any CPU
+		{49AA7C6A-AB52-457C-BB9E-C927082DBA34}.Release|x64.ActiveCfg = Release|Any CPU
+		{49AA7C6A-AB52-457C-BB9E-C927082DBA34}.Release|x64.Build.0 = Release|Any CPU
+		{49AA7C6A-AB52-457C-BB9E-C927082DBA34}.Release|x86.ActiveCfg = Release|Any CPU
+		{49AA7C6A-AB52-457C-BB9E-C927082DBA34}.Release|x86.Build.0 = Release|Any CPU
+		{33895E03-3FB0-4FE1-9660-A0A8D1F92FDD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{33895E03-3FB0-4FE1-9660-A0A8D1F92FDD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{33895E03-3FB0-4FE1-9660-A0A8D1F92FDD}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{33895E03-3FB0-4FE1-9660-A0A8D1F92FDD}.Debug|x64.Build.0 = Debug|Any CPU
+		{33895E03-3FB0-4FE1-9660-A0A8D1F92FDD}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{33895E03-3FB0-4FE1-9660-A0A8D1F92FDD}.Debug|x86.Build.0 = Debug|Any CPU
+		{33895E03-3FB0-4FE1-9660-A0A8D1F92FDD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{33895E03-3FB0-4FE1-9660-A0A8D1F92FDD}.Release|Any CPU.Build.0 = Release|Any CPU
+		{33895E03-3FB0-4FE1-9660-A0A8D1F92FDD}.Release|x64.ActiveCfg = Release|Any CPU
+		{33895E03-3FB0-4FE1-9660-A0A8D1F92FDD}.Release|x64.Build.0 = Release|Any CPU
+		{33895E03-3FB0-4FE1-9660-A0A8D1F92FDD}.Release|x86.ActiveCfg = Release|Any CPU
+		{33895E03-3FB0-4FE1-9660-A0A8D1F92FDD}.Release|x86.Build.0 = Release|Any CPU
+		{228AB90A-19B5-4678-802C-ECA16AA848ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{228AB90A-19B5-4678-802C-ECA16AA848ED}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{228AB90A-19B5-4678-802C-ECA16AA848ED}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{228AB90A-19B5-4678-802C-ECA16AA848ED}.Debug|x64.Build.0 = Debug|Any CPU
+		{228AB90A-19B5-4678-802C-ECA16AA848ED}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{228AB90A-19B5-4678-802C-ECA16AA848ED}.Debug|x86.Build.0 = Debug|Any CPU
+		{228AB90A-19B5-4678-802C-ECA16AA848ED}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{228AB90A-19B5-4678-802C-ECA16AA848ED}.Release|Any CPU.Build.0 = Release|Any CPU
+		{228AB90A-19B5-4678-802C-ECA16AA848ED}.Release|x64.ActiveCfg = Release|Any CPU
+		{228AB90A-19B5-4678-802C-ECA16AA848ED}.Release|x64.Build.0 = Release|Any CPU
+		{228AB90A-19B5-4678-802C-ECA16AA848ED}.Release|x86.ActiveCfg = Release|Any CPU
+		{228AB90A-19B5-4678-802C-ECA16AA848ED}.Release|x86.Build.0 = Release|Any CPU
+		{6813FD87-FAA4-4572-ABF5-3730726E214B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{6813FD87-FAA4-4572-ABF5-3730726E214B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{6813FD87-FAA4-4572-ABF5-3730726E214B}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{6813FD87-FAA4-4572-ABF5-3730726E214B}.Debug|x64.Build.0 = Debug|Any CPU
+		{6813FD87-FAA4-4572-ABF5-3730726E214B}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{6813FD87-FAA4-4572-ABF5-3730726E214B}.Debug|x86.Build.0 = Debug|Any CPU
+		{6813FD87-FAA4-4572-ABF5-3730726E214B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{6813FD87-FAA4-4572-ABF5-3730726E214B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{6813FD87-FAA4-4572-ABF5-3730726E214B}.Release|x64.ActiveCfg = Release|Any CPU
+		{6813FD87-FAA4-4572-ABF5-3730726E214B}.Release|x64.Build.0 = Release|Any CPU
+		{6813FD87-FAA4-4572-ABF5-3730726E214B}.Release|x86.ActiveCfg = Release|Any CPU
+		{6813FD87-FAA4-4572-ABF5-3730726E214B}.Release|x86.Build.0 = Release|Any CPU
+		{C6B6D866-3CD2-4724-BE9C-E70A78C9D9D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{C6B6D866-3CD2-4724-BE9C-E70A78C9D9D5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{C6B6D866-3CD2-4724-BE9C-E70A78C9D9D5}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{C6B6D866-3CD2-4724-BE9C-E70A78C9D9D5}.Debug|x64.Build.0 = Debug|Any CPU
+		{C6B6D866-3CD2-4724-BE9C-E70A78C9D9D5}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{C6B6D866-3CD2-4724-BE9C-E70A78C9D9D5}.Debug|x86.Build.0 = Debug|Any CPU
+		{C6B6D866-3CD2-4724-BE9C-E70A78C9D9D5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{C6B6D866-3CD2-4724-BE9C-E70A78C9D9D5}.Release|Any CPU.Build.0 = Release|Any CPU
+		{C6B6D866-3CD2-4724-BE9C-E70A78C9D9D5}.Release|x64.ActiveCfg = Release|Any CPU
+		{C6B6D866-3CD2-4724-BE9C-E70A78C9D9D5}.Release|x64.Build.0 = Release|Any CPU
+		{C6B6D866-3CD2-4724-BE9C-E70A78C9D9D5}.Release|x86.ActiveCfg = Release|Any CPU
+		{C6B6D866-3CD2-4724-BE9C-E70A78C9D9D5}.Release|x86.Build.0 = Release|Any CPU
+		{2EC9B3D0-C6AB-45D7-BF92-8016D83A4010}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{2EC9B3D0-C6AB-45D7-BF92-8016D83A4010}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{2EC9B3D0-C6AB-45D7-BF92-8016D83A4010}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{2EC9B3D0-C6AB-45D7-BF92-8016D83A4010}.Debug|x64.Build.0 = Debug|Any CPU
+		{2EC9B3D0-C6AB-45D7-BF92-8016D83A4010}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{2EC9B3D0-C6AB-45D7-BF92-8016D83A4010}.Debug|x86.Build.0 = Debug|Any CPU
+		{2EC9B3D0-C6AB-45D7-BF92-8016D83A4010}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{2EC9B3D0-C6AB-45D7-BF92-8016D83A4010}.Release|Any CPU.Build.0 = Release|Any CPU
+		{2EC9B3D0-C6AB-45D7-BF92-8016D83A4010}.Release|x64.ActiveCfg = Release|Any CPU
+		{2EC9B3D0-C6AB-45D7-BF92-8016D83A4010}.Release|x64.Build.0 = Release|Any CPU
+		{2EC9B3D0-C6AB-45D7-BF92-8016D83A4010}.Release|x86.ActiveCfg = Release|Any CPU
+		{2EC9B3D0-C6AB-45D7-BF92-8016D83A4010}.Release|x86.Build.0 = Release|Any CPU
+		{2DB861F2-5DEA-481B-BECD-6F00EC8C6802}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{2DB861F2-5DEA-481B-BECD-6F00EC8C6802}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{2DB861F2-5DEA-481B-BECD-6F00EC8C6802}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{2DB861F2-5DEA-481B-BECD-6F00EC8C6802}.Debug|x64.Build.0 = Debug|Any CPU
+		{2DB861F2-5DEA-481B-BECD-6F00EC8C6802}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{2DB861F2-5DEA-481B-BECD-6F00EC8C6802}.Debug|x86.Build.0 = Debug|Any CPU
+		{2DB861F2-5DEA-481B-BECD-6F00EC8C6802}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{2DB861F2-5DEA-481B-BECD-6F00EC8C6802}.Release|Any CPU.Build.0 = Release|Any CPU
+		{2DB861F2-5DEA-481B-BECD-6F00EC8C6802}.Release|x64.ActiveCfg = Release|Any CPU
+		{2DB861F2-5DEA-481B-BECD-6F00EC8C6802}.Release|x64.Build.0 = Release|Any CPU
+		{2DB861F2-5DEA-481B-BECD-6F00EC8C6802}.Release|x86.ActiveCfg = Release|Any CPU
+		{2DB861F2-5DEA-481B-BECD-6F00EC8C6802}.Release|x86.Build.0 = Release|Any CPU
+		{53D9AE20-2981-411C-87CD-5DCD71D181B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{53D9AE20-2981-411C-87CD-5DCD71D181B4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{53D9AE20-2981-411C-87CD-5DCD71D181B4}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{53D9AE20-2981-411C-87CD-5DCD71D181B4}.Debug|x64.Build.0 = Debug|Any CPU
+		{53D9AE20-2981-411C-87CD-5DCD71D181B4}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{53D9AE20-2981-411C-87CD-5DCD71D181B4}.Debug|x86.Build.0 = Debug|Any CPU
+		{53D9AE20-2981-411C-87CD-5DCD71D181B4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{53D9AE20-2981-411C-87CD-5DCD71D181B4}.Release|Any CPU.Build.0 = Release|Any CPU
+		{53D9AE20-2981-411C-87CD-5DCD71D181B4}.Release|x64.ActiveCfg = Release|Any CPU
+		{53D9AE20-2981-411C-87CD-5DCD71D181B4}.Release|x64.Build.0 = Release|Any CPU
+		{53D9AE20-2981-411C-87CD-5DCD71D181B4}.Release|x86.ActiveCfg = Release|Any CPU
+		{53D9AE20-2981-411C-87CD-5DCD71D181B4}.Release|x86.Build.0 = Release|Any CPU
+		{892EA5E4-A98F-4A36-B901-8A1FAB27623E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{892EA5E4-A98F-4A36-B901-8A1FAB27623E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{892EA5E4-A98F-4A36-B901-8A1FAB27623E}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{892EA5E4-A98F-4A36-B901-8A1FAB27623E}.Debug|x64.Build.0 = Debug|Any CPU
+		{892EA5E4-A98F-4A36-B901-8A1FAB27623E}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{892EA5E4-A98F-4A36-B901-8A1FAB27623E}.Debug|x86.Build.0 = Debug|Any CPU
+		{892EA5E4-A98F-4A36-B901-8A1FAB27623E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{892EA5E4-A98F-4A36-B901-8A1FAB27623E}.Release|Any CPU.Build.0 = Release|Any CPU
+		{892EA5E4-A98F-4A36-B901-8A1FAB27623E}.Release|x64.ActiveCfg = Release|Any CPU
+		{892EA5E4-A98F-4A36-B901-8A1FAB27623E}.Release|x64.Build.0 = Release|Any CPU
+		{892EA5E4-A98F-4A36-B901-8A1FAB27623E}.Release|x86.ActiveCfg = Release|Any CPU
+		{892EA5E4-A98F-4A36-B901-8A1FAB27623E}.Release|x86.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
 	EndGlobalSection
 	GlobalSection(NestedProjects) = preSolution
-		{5F18EE62-3FBC-42F5-96DC-8C61C3D9EF27} = {DA4DE709-E5BC-4B93-88D2-838656C217CE}
-		{50252EFB-8629-4B1D-AC2F-5F29CB6F684D} = {DA4DE709-E5BC-4B93-88D2-838656C217CE}
-		{311DE251-20A2-42C0-BD6C-2A327221D3C3} = {5F18EE62-3FBC-42F5-96DC-8C61C3D9EF27}
-		{6D6BD6AF-06E3-4FB2-ADEF-E373D2E94B3E} = {50252EFB-8629-4B1D-AC2F-5F29CB6F684D}
-		{F840F15F-592B-4E82-BFEB-CA2F3DBA3C2F} = {5F18EE62-3FBC-42F5-96DC-8C61C3D9EF27}
-		{97B58430-AAA3-4283-85FC-2BA1ED37514E} = {50252EFB-8629-4B1D-AC2F-5F29CB6F684D}
-		{C551EE51-B06E-4554-9114-763150B8908E} = {5F18EE62-3FBC-42F5-96DC-8C61C3D9EF27}
-		{07AAE83F-56C7-4A9A-9972-7F9BE53D031A} = {50252EFB-8629-4B1D-AC2F-5F29CB6F684D}
-		{A7A0EDB7-BFE4-4645-A8A3-0D42A5E1002F} = {5F18EE62-3FBC-42F5-96DC-8C61C3D9EF27}
-		{7372528E-F5B9-49C6-8EC4-8F793DFC081D} = {50252EFB-8629-4B1D-AC2F-5F29CB6F684D}
-		{A0A4DB02-4AB6-42FA-8F75-B0A58BCF8E57} = {5F18EE62-3FBC-42F5-96DC-8C61C3D9EF27}
-		{4B50EE32-BF4F-4FE4-918D-3B35695CD829} = {50252EFB-8629-4B1D-AC2F-5F29CB6F684D}
-		{AB284655-5FE2-4DF9-BCF9-87A8962C086E} = {5F18EE62-3FBC-42F5-96DC-8C61C3D9EF27}
-		{EC5DD74A-C0FB-4310-95FF-F8C9E2817F5C} = {50252EFB-8629-4B1D-AC2F-5F29CB6F684D}
-		{175E14F2-E526-4DEA-9E05-AA87E48DBD7D} = {5F18EE62-3FBC-42F5-96DC-8C61C3D9EF27}
-		{D95B0932-CC64-440A-A956-D9D9EF9E1A99} = {50252EFB-8629-4B1D-AC2F-5F29CB6F684D}
-		{9610AFDB-AA50-4AFF-80E5-B8CA65D84A8E} = {5F18EE62-3FBC-42F5-96DC-8C61C3D9EF27}
-		{AECC9062-83E1-4B62-906D-1055E61E71DE} = {50252EFB-8629-4B1D-AC2F-5F29CB6F684D}
-		{3DFED352-5E7E-4688-8371-8B55EB800705} = {5F18EE62-3FBC-42F5-96DC-8C61C3D9EF27}
-		{793F6A63-30B3-44BC-A205-50031E27E31C} = {50252EFB-8629-4B1D-AC2F-5F29CB6F684D}
-		{AA0D0715-5EAE-437A-ABF5-D596B127544B} = {DA4DE709-E5BC-4B93-88D2-838656C217CE}
-		{4AAFE071-EC5E-4F28-961C-7BB1259DC452} = {AA0D0715-5EAE-437A-ABF5-D596B127544B}
-		{E5097EE8-6385-4C20-9DE3-8902CEA4FE8B} = {5F18EE62-3FBC-42F5-96DC-8C61C3D9EF27}
-		{B39492DF-D142-4F68-BAE9-2862D4B2E865} = {50252EFB-8629-4B1D-AC2F-5F29CB6F684D}
-		{17C0DC51-C48D-4CAD-BF20-2C1BF7785A08} = {5F18EE62-3FBC-42F5-96DC-8C61C3D9EF27}
-		{E3623DC7-BE65-4EBD-9E1D-D66BE0502F72} = {50252EFB-8629-4B1D-AC2F-5F29CB6F684D}
-		{5EED8C4F-CE5B-4539-ABCE-5D07F4EE92B1} = {5F18EE62-3FBC-42F5-96DC-8C61C3D9EF27}
-		{BB820FE9-4253-428E-A65A-95CF269022E9} = {50252EFB-8629-4B1D-AC2F-5F29CB6F684D}
-		{3B8F0A74-D7DD-4FA7-A6DF-568640868A24} = {50252EFB-8629-4B1D-AC2F-5F29CB6F684D}
-		{1DE8AF4D-4D46-4766-844E-819757AC4E4C} = {5F18EE62-3FBC-42F5-96DC-8C61C3D9EF27}
-		{D0DE2AFA-498B-489B-9DC4-3AFC8CA60EF0} = {5F18EE62-3FBC-42F5-96DC-8C61C3D9EF27}
-		{AADC7783-3155-4905-9524-61EE2E5E01C2} = {50252EFB-8629-4B1D-AC2F-5F29CB6F684D}
-		{115784A8-B2A6-4790-99D3-C41049CBC1C9} = {5F18EE62-3FBC-42F5-96DC-8C61C3D9EF27}
-		{397C9A29-83DB-4944-9D4E-93159CDA60B6} = {50252EFB-8629-4B1D-AC2F-5F29CB6F684D}
-		{68E91C38-4D95-4DCE-9BC2-4AE71236B289} = {5F18EE62-3FBC-42F5-96DC-8C61C3D9EF27}
-		{A2AF6E5E-C42E-47A1-AE81-ED81B84C57DD} = {50252EFB-8629-4B1D-AC2F-5F29CB6F684D}
-		{7D6C1BB8-4E00-4DB0-9063-859A98C69927} = {5F18EE62-3FBC-42F5-96DC-8C61C3D9EF27}
-		{2E589423-3B93-4444-830B-8742E6BF8FD1} = {50252EFB-8629-4B1D-AC2F-5F29CB6F684D}
-		{02F83C77-C526-41D5-853B-1E40EF7F5CDA} = {5F18EE62-3FBC-42F5-96DC-8C61C3D9EF27}
-		{E081A3D2-23D1-4C02-80F0-2832DCB502EF} = {50252EFB-8629-4B1D-AC2F-5F29CB6F684D}
-		{FD6D3808-5542-458E-88C0-4918F074D8A3} = {5F18EE62-3FBC-42F5-96DC-8C61C3D9EF27}
+		{FBF7BAF0-B8E9-45C5-9B50-7B8DDD607467} = {DA4DE709-E5BC-4B93-88D2-838656C217CE}
+		{675D258E-525C-4048-8E88-97C5E78ED819} = {FBF7BAF0-B8E9-45C5-9B50-7B8DDD607467}
+		{5CE38D63-D07F-46F1-9008-8206AB6F4231} = {FBF7BAF0-B8E9-45C5-9B50-7B8DDD607467}
+		{ED0A40A7-2790-42F3-822E-C475F021D7D8} = {DA4DE709-E5BC-4B93-88D2-838656C217CE}
+		{3848AAF1-D8CA-4C55-A0B6-FCE23DDE8D9C} = {ED0A40A7-2790-42F3-822E-C475F021D7D8}
+		{FDFA7DDF-05D0-44F6-9000-71A4DD07BED0} = {ED0A40A7-2790-42F3-822E-C475F021D7D8}
+		{F86B6B96-D027-4FF4-931D-69AA0891F539} = {DA4DE709-E5BC-4B93-88D2-838656C217CE}
+		{29CE7134-3831-4E4A-A502-C84233D1ED35} = {F86B6B96-D027-4FF4-931D-69AA0891F539}
+		{20E70A44-016E-470C-947D-C1FC4161D1FB} = {F86B6B96-D027-4FF4-931D-69AA0891F539}
+		{458FC9E2-3D73-44AF-BE0A-C5C0F23AFE2B} = {DA4DE709-E5BC-4B93-88D2-838656C217CE}
+		{5D5F2C2A-24CD-4C27-902D-FA439E84AD13} = {458FC9E2-3D73-44AF-BE0A-C5C0F23AFE2B}
+		{88A3D096-F763-47DB-A94B-040D416746E8} = {458FC9E2-3D73-44AF-BE0A-C5C0F23AFE2B}
+		{DD6389E2-3940-4E3A-AB5F-3B041AFDCAED} = {DA4DE709-E5BC-4B93-88D2-838656C217CE}
+		{FB3900A8-72B4-4186-90A8-9FA9F585C20E} = {DD6389E2-3940-4E3A-AB5F-3B041AFDCAED}
+		{73A3EE19-DEE8-4F79-85F5-DE42FE638F16} = {DD6389E2-3940-4E3A-AB5F-3B041AFDCAED}
+		{ADADE7CE-4766-4220-AF7B-F51B5C1F334B} = {DD6389E2-3940-4E3A-AB5F-3B041AFDCAED}
+		{CD85DC7B-D7D3-4DFF-99D1-B7841BD1F4D8} = {DA4DE709-E5BC-4B93-88D2-838656C217CE}
+		{662FB941-E473-401D-B856-BC6564101B5D} = {CD85DC7B-D7D3-4DFF-99D1-B7841BD1F4D8}
+		{8E600186-574C-41F7-AC0F-B8BC61ED03F7} = {CD85DC7B-D7D3-4DFF-99D1-B7841BD1F4D8}
+		{51FA04BB-81A2-4EA7-B722-CF4A16BA75E8} = {DA4DE709-E5BC-4B93-88D2-838656C217CE}
+		{C806F47E-41BF-47D8-975B-A19C8EC14E39} = {51FA04BB-81A2-4EA7-B722-CF4A16BA75E8}
+		{76CE3554-41C4-402F-805E-C7C90387B8DD} = {51FA04BB-81A2-4EA7-B722-CF4A16BA75E8}
+		{31F5F80A-A66E-4443-BA0B-052D5B836CD6} = {DA4DE709-E5BC-4B93-88D2-838656C217CE}
+		{2C82E6F1-FEDC-46A1-AE8F-AF550CFA52AB} = {31F5F80A-A66E-4443-BA0B-052D5B836CD6}
+		{26405220-3D38-4D2E-867E-DC53130B0FEB} = {31F5F80A-A66E-4443-BA0B-052D5B836CD6}
+		{1645F9F0-9447-4249-B15C-790FF70E1968} = {DA4DE709-E5BC-4B93-88D2-838656C217CE}
+		{4CD5DE24-C829-4038-8875-1C8B63C96EB7} = {1645F9F0-9447-4249-B15C-790FF70E1968}
+		{DBD08C7B-B0FD-4EBD-8D3E-41EDFDD35EA7} = {1645F9F0-9447-4249-B15C-790FF70E1968}
+		{BEE249C5-60E0-43AE-BE52-F65A736BCF32} = {DA4DE709-E5BC-4B93-88D2-838656C217CE}
+		{5A65ADF6-09D7-4934-92D2-6EA8EB3D3556} = {BEE249C5-60E0-43AE-BE52-F65A736BCF32}
+		{9A27AAA8-AFE9-43D4-A3C6-E5D3DAC2ED2B} = {BEE249C5-60E0-43AE-BE52-F65A736BCF32}
+		{D2EEC902-ED1E-419F-9BDA-E91C35498B9A} = {DA4DE709-E5BC-4B93-88D2-838656C217CE}
+		{70C6FC9D-94BC-4394-AA8E-EB4A329FADB0} = {D2EEC902-ED1E-419F-9BDA-E91C35498B9A}
+		{86427769-9110-4A15-894E-264601C062BD} = {D2EEC902-ED1E-419F-9BDA-E91C35498B9A}
+		{449665D2-57FF-4DFC-BB3A-6E397C49CE72} = {DA4DE709-E5BC-4B93-88D2-838656C217CE}
+		{D8484887-7778-4307-B7A1-4E7CDA711E91} = {449665D2-57FF-4DFC-BB3A-6E397C49CE72}
+		{F00F6E41-A1E5-45DA-A579-EA17696CC19A} = {449665D2-57FF-4DFC-BB3A-6E397C49CE72}
+		{06DEFC5F-DBE4-4B79-B025-08E097216E5A} = {DA4DE709-E5BC-4B93-88D2-838656C217CE}
+		{F3565C4B-7BF8-4AB5-94B1-2FCD1B5CCF4B} = {06DEFC5F-DBE4-4B79-B025-08E097216E5A}
+		{64994378-C809-4702-BF71-9CACEFEB47E5} = {06DEFC5F-DBE4-4B79-B025-08E097216E5A}
+		{47CC715C-603B-4C1A-88B5-14562727C6E0} = {DA4DE709-E5BC-4B93-88D2-838656C217CE}
+		{A3E254D9-8D81-4EC3-B52C-55D9354E9955} = {47CC715C-603B-4C1A-88B5-14562727C6E0}
+		{F05F64E2-8906-4AD1-89E5-5F40A30F55BB} = {47CC715C-603B-4C1A-88B5-14562727C6E0}
+		{D9C7551A-2F65-4D5F-9D4E-A42704D850B5} = {DA4DE709-E5BC-4B93-88D2-838656C217CE}
+		{0D48D910-83B8-4FEE-A0AD-E0FB3536BC80} = {D9C7551A-2F65-4D5F-9D4E-A42704D850B5}
+		{130E8BF8-97A3-468C-80A8-92247DCBFF51} = {D9C7551A-2F65-4D5F-9D4E-A42704D850B5}
+		{B06ACF77-B0EF-42F4-BA33-776F7496E2E6} = {DA4DE709-E5BC-4B93-88D2-838656C217CE}
+		{57FBEC02-58DA-435C-82FC-BE9EEC064362} = {B06ACF77-B0EF-42F4-BA33-776F7496E2E6}
+		{A8DDE01F-50DC-49D1-805B-4F9331A3DDD5} = {B06ACF77-B0EF-42F4-BA33-776F7496E2E6}
+		{D93740E7-7EAB-4B4C-957E-E21CD73AA1BA} = {DA4DE709-E5BC-4B93-88D2-838656C217CE}
+		{B385CC10-A10B-4986-8BF3-443658D5C46B} = {D93740E7-7EAB-4B4C-957E-E21CD73AA1BA}
+		{F8BBA3C2-9DAC-412D-8084-E69F5F2F3018} = {D93740E7-7EAB-4B4C-957E-E21CD73AA1BA}
+		{E5F92691-2BEB-491C-9219-CBA30A54A3E6} = {DA4DE709-E5BC-4B93-88D2-838656C217CE}
+		{67E30962-CD08-4700-B1F8-8E7C029F40CF} = {E5F92691-2BEB-491C-9219-CBA30A54A3E6}
+		{49AA7C6A-AB52-457C-BB9E-C927082DBA34} = {E5F92691-2BEB-491C-9219-CBA30A54A3E6}
+		{4F001AAE-FC38-4071-94B2-DC33FE5C3735} = {DA4DE709-E5BC-4B93-88D2-838656C217CE}
+		{33895E03-3FB0-4FE1-9660-A0A8D1F92FDD} = {4F001AAE-FC38-4071-94B2-DC33FE5C3735}
+		{228AB90A-19B5-4678-802C-ECA16AA848ED} = {4F001AAE-FC38-4071-94B2-DC33FE5C3735}
+		{FAB5A604-6D92-46FA-9B3C-AF6165ED8042} = {DA4DE709-E5BC-4B93-88D2-838656C217CE}
+		{6813FD87-FAA4-4572-ABF5-3730726E214B} = {FAB5A604-6D92-46FA-9B3C-AF6165ED8042}
+		{C6B6D866-3CD2-4724-BE9C-E70A78C9D9D5} = {FAB5A604-6D92-46FA-9B3C-AF6165ED8042}
+		{B264316F-1CF0-4CF2-9D21-CB908688960D} = {DA4DE709-E5BC-4B93-88D2-838656C217CE}
+		{2EC9B3D0-C6AB-45D7-BF92-8016D83A4010} = {B264316F-1CF0-4CF2-9D21-CB908688960D}
+		{2DB861F2-5DEA-481B-BECD-6F00EC8C6802} = {B264316F-1CF0-4CF2-9D21-CB908688960D}
+		{4AADAD6A-4BA0-427E-9EA1-4AFE211C1200} = {DA4DE709-E5BC-4B93-88D2-838656C217CE}
+		{53D9AE20-2981-411C-87CD-5DCD71D181B4} = {4AADAD6A-4BA0-427E-9EA1-4AFE211C1200}
+		{892EA5E4-A98F-4A36-B901-8A1FAB27623E} = {4AADAD6A-4BA0-427E-9EA1-4AFE211C1200}
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
+		RESX_SortFileContentOnSave = True
+		RESX_NeutralResourcesLanguage = de-DE
 		SolutionGuid = {46ECC226-1874-4539-8589-8B2029909C4A}
 	EndGlobalSection
 EndGlobal
diff --git a/libraries/JGUZDV.AspNetCore.DataProtection/src/Constants.cs b/libraries/JGUZDV.AspNetCore.DataProtection/src/Constants.cs
index 4a0131e9..23d9afe7 100644
--- a/libraries/JGUZDV.AspNetCore.DataProtection/src/Constants.cs
+++ b/libraries/JGUZDV.AspNetCore.DataProtection/src/Constants.cs
@@ -1,6 +1,12 @@
 namespace JGUZDV.AspNetCore.DataProtection;
 
+/// <summary>
+/// Public constants for this package
+/// </summary>
 public static class Constants
 {
+    /// <summary>
+    /// Default section name for the configuration
+    /// </summary>
     public const string DefaultSectionName = "JGUZDV:DataProtection";
 }
diff --git a/libraries/JGUZDV.AspNetCore.DataProtection/src/DataProtectionBuilderExtensions.cs b/libraries/JGUZDV.AspNetCore.DataProtection/src/DataProtectionBuilderExtensions.cs
index c09929a8..980d25f5 100644
--- a/libraries/JGUZDV.AspNetCore.DataProtection/src/DataProtectionBuilderExtensions.cs
+++ b/libraries/JGUZDV.AspNetCore.DataProtection/src/DataProtectionBuilderExtensions.cs
@@ -7,9 +7,14 @@
 
 namespace JGUZDV.AspNetCore.DataProtection;
 
+/// <summary>
+/// Extension methods for configuring data protection.
+/// </summary>
 public static class DataProtectionBuilderExtensions
 {
-
+    /// <summary>
+    /// Configures the data protection system with the specified configuration.
+    /// </summary>
     public static IDataProtectionBuilder UseDataProtectionConfig(this IDataProtectionBuilder builder, IConfigurationSection configuration, IWebHostEnvironment? environment)
     {
         var config = new Configuration();
diff --git a/libraries/JGUZDV.AspNetCore.DataProtection/src/JGUZDVDataProtectionExtensions.cs b/libraries/JGUZDV.AspNetCore.DataProtection/src/JGUZDVDataProtectionExtensions.cs
index e3063509..ca7272c3 100644
--- a/libraries/JGUZDV.AspNetCore.DataProtection/src/JGUZDVDataProtectionExtensions.cs
+++ b/libraries/JGUZDV.AspNetCore.DataProtection/src/JGUZDVDataProtectionExtensions.cs
@@ -6,14 +6,28 @@
 
 namespace Microsoft.Extensions.DependencyInjection;
 
+/// <summary>
+/// Extension methods for configuring data protection.
+/// </summary>
 public static class JGUZDVDataProtectionExtensions
 {
+    /// <summary>
+    /// Adds data protection to the application using the specified configuration.
+    /// </summary>
     public static IDataProtectionBuilder AddJGUZDVDataProtection(this IServiceCollection services, IConfigurationSection configurationSection, IWebHostEnvironment? environment = null) 
         => services.AddDataProtection().UseDataProtectionConfig(configurationSection, environment);
 
+
+    /// <summary>
+    /// Adds data protection to the application using the specified configuration.
+    /// </summary>
     public static IDataProtectionBuilder AddJGUZDVDataProtection(this IServiceCollection services, IConfiguration config, IWebHostEnvironment? environment = null) 
         => services.AddJGUZDVDataProtection(config.GetSection(Constants.DefaultSectionName), environment);
 
+
+    /// <summary>
+    /// Adds data protection to the application using the specified configuration.
+    /// </summary>
     public static IDataProtectionBuilder AddJGUZDVDataProtection(this WebApplicationBuilder builder, string sectionName = Constants.DefaultSectionName) 
         => builder.Services.AddJGUZDVDataProtection(builder.Configuration.GetSection(sectionName), builder.Environment);
 }
diff --git a/libraries/JGUZDV.AspNetCore.Logging/src/Constants.cs b/libraries/JGUZDV.AspNetCore.Logging/src/Constants.cs
deleted file mode 100644
index dcd5563a..00000000
--- a/libraries/JGUZDV.AspNetCore.Logging/src/Constants.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-namespace JGUZDV.AspNetCore.Logging
-{
-    public class Constants
-    {
-        public const string DefaultSectionName = "Logging";
-        public const string DefaultEventLogSource = ".NET Runtime";
-    }
-}
diff --git a/libraries/JGUZDV.AspNetCore.Logging/src/JGUZDVLoggingExtensions.cs b/libraries/JGUZDV.AspNetCore.Logging/src/JGUZDVLoggingExtensions.cs
index 0467e0e6..6c76a0a4 100644
--- a/libraries/JGUZDV.AspNetCore.Logging/src/JGUZDVLoggingExtensions.cs
+++ b/libraries/JGUZDV.AspNetCore.Logging/src/JGUZDVLoggingExtensions.cs
@@ -1,11 +1,16 @@
-using JGUZDV.AspNetCore.Logging;
-using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Builder;
 
 namespace Microsoft.Extensions.DependencyInjection;
 
+/// <summary>
+/// Extension methods for configuring logging.
+/// </summary>
 public static class JGUZDVLoggingExtensions
 {
-    public static WebApplicationBuilder UseJGUZDVLogging(this WebApplicationBuilder builder, string configSectionName = Constants.DefaultSectionName)
+    /// <summary>
+    /// Configures the web host to use the default logging configuration.
+    /// </summary>
+    public static WebApplicationBuilder UseJGUZDVLogging(this WebApplicationBuilder builder, string configSectionName = JGUZDV.Extensions.Logging.Constants.DefaultSectionName)
     {
         builder.Host.UseJGUZDVLogging(configSectionName);
         return builder;
diff --git a/libraries/JGUZDV.Blazor.Components.ClaimRequirements/src/Resources/ClaimRequirementsStrings.fr.resx b/libraries/JGUZDV.Blazor.Components.ClaimRequirements/src/Resources/ClaimRequirementsStrings.fr.resx
new file mode 100644
index 00000000..e1fbef44
--- /dev/null
+++ b/libraries/JGUZDV.Blazor.Components.ClaimRequirements/src/Resources/ClaimRequirementsStrings.fr.resx
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="AddButton.AddClaimRequirement" xml:space="preserve">
+    <value>Ajouter une règle de type/valeur</value>
+  </data>
+  <data name="AddButton.AddClaimRequirementCollection" xml:space="preserve">
+    <value>Ajouter un ensemble de règles</value>
+  </data>
+  <data name="ClaimRequirement.ClaimType" xml:space="preserve">
+    <value>Taper</value>
+  </data>
+  <data name="ClaimRequirement.ClaimValue" xml:space="preserve">
+    <value>Valeur</value>
+  </data>
+  <data name="CollectionEditor.ChooseMatching" xml:space="preserve">
+    <value>Sélectionner un raccourci</value>
+  </data>
+  <data name="CollectionEditor.MatchAll" xml:space="preserve">
+    <value>Tous (ET)</value>
+  </data>
+  <data name="CollectionEditor.MatchAny" xml:space="preserve">
+    <value>Au moins un (OU)</value>
+  </data>
+  <data name="Editor.Delete" xml:space="preserve">
+    <value>Supprimer</value>
+  </data>
+  <data name="Editor.Discard" xml:space="preserve">
+    <value>jeter</value>
+  </data>
+  <data name="Editor.Save" xml:space="preserve">
+    <value>Sauvegarder</value>
+  </data>
+  <data name="ValueEditor.ClaimTypeStringComparison" xml:space="preserve">
+    <value>Comparaison type pour type</value>
+  </data>
+  <data name="ValueEditor.ClaimValueStringComparison" xml:space="preserve">
+    <value>Type de comparaison pour la valeur</value>
+  </data>
+  <data name="ValueEditor.NoWildcardMatch" xml:space="preserve">
+    <value>Désactivez le caractère générique (*)</value>
+  </data>
+  <data name="Viewer.And" xml:space="preserve">
+    <value>ET</value>
+  </data>
+  <data name="Viewer.ClaimUndefined" xml:space="preserve">
+    <value>Aucune règle n'a été définie.</value>
+  </data>
+  <data name="Viewer.ComparisonType" xml:space="preserve">
+    <value>Type de comparaison</value>
+  </data>
+  <data name="Viewer.ComparisonTypes" xml:space="preserve">
+    <value>Types de comparaison</value>
+  </data>
+  <data name="Viewer.Or" xml:space="preserve">
+    <value>OU</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/libraries/JGUZDV.Blazor.Components.ClaimRequirements/test/JGUZDV.Blazor.Components.ClaimRequirements.Tests.csproj b/libraries/JGUZDV.Blazor.Components.ClaimRequirements/test/JGUZDV.Blazor.Components.ClaimRequirements.Tests.csproj
index 0204de92..1a0b8568 100644
--- a/libraries/JGUZDV.Blazor.Components.ClaimRequirements/test/JGUZDV.Blazor.Components.ClaimRequirements.Tests.csproj
+++ b/libraries/JGUZDV.Blazor.Components.ClaimRequirements/test/JGUZDV.Blazor.Components.ClaimRequirements.Tests.csproj
@@ -9,17 +9,4 @@
     <IsTestProject>true</IsTestProject>
   </PropertyGroup>
 
-  <ItemGroup>
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.1" />
-    <PackageReference Include="xunit" Version="2.4.2" />
-    <PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
-      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
-      <PrivateAssets>all</PrivateAssets>
-    </PackageReference>
-    <PackageReference Include="coverlet.collector" Version="3.2.0">
-      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
-      <PrivateAssets>all</PrivateAssets>
-    </PackageReference>
-  </ItemGroup>
-
 </Project>
diff --git a/libraries/JGUZDV.Blazor.Components/src/JGUZDV.Blazor.Components.csproj b/libraries/JGUZDV.Blazor.Components/src/JGUZDV.Blazor.Components.csproj
index 6587a399..253c0b9c 100644
--- a/libraries/JGUZDV.Blazor.Components/src/JGUZDV.Blazor.Components.csproj
+++ b/libraries/JGUZDV.Blazor.Components/src/JGUZDV.Blazor.Components.csproj
@@ -23,8 +23,8 @@
     </ItemGroup>
 
     <ItemGroup>
-        <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="[7.0.0,)" />
-        <PackageReference Include="Microsoft.AspNetCore.Components.Authorization" Version="[7.0.0,)" />
+        <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="[7.0.14,)" />
+        <PackageReference Include="Microsoft.AspNetCore.Components.Authorization" Version="[7.0.14,)" />
         <PackageReference Include="Microsoft.Extensions.Localization.Abstractions" Version="[7.0.0,)" />
         <PackageReference Include="Microsoft.Extensions.Hosting" Version="[7.0.0,)" />
         <PackageReference Include="Microsoft.Bcl.TimeProvider" Version="[8.0.0,)" />
diff --git a/libraries/JGUZDV.Blazor.StateManagement/src/JGUZDV.Blazor.StateManagement.csproj b/libraries/JGUZDV.Blazor.StateManagement/src/JGUZDV.Blazor.StateManagement.csproj
index 93704c1e..b8c24d4d 100644
--- a/libraries/JGUZDV.Blazor.StateManagement/src/JGUZDV.Blazor.StateManagement.csproj
+++ b/libraries/JGUZDV.Blazor.StateManagement/src/JGUZDV.Blazor.StateManagement.csproj
@@ -22,7 +22,7 @@
     </ItemGroup>
 
     <ItemGroup>
-        <PackageReference Include="Microsoft.AspNetCore.Components" Version="[7.0.0,)" />
+        <PackageReference Include="Microsoft.AspNetCore.Components" Version="[7.0.14,)" />
     </ItemGroup>
 
 </Project>
diff --git a/libraries/JGUZDV.Blazor.StateManagement/test/JGUZDV.Blazor.StateManagement.Tests.csproj b/libraries/JGUZDV.Blazor.StateManagement/test/JGUZDV.Blazor.StateManagement.Tests.csproj
index 9be4e2ab..ca492cd2 100644
--- a/libraries/JGUZDV.Blazor.StateManagement/test/JGUZDV.Blazor.StateManagement.Tests.csproj
+++ b/libraries/JGUZDV.Blazor.StateManagement/test/JGUZDV.Blazor.StateManagement.Tests.csproj
@@ -6,21 +6,12 @@
     <Nullable>enable</Nullable>
 
     <IsPackable>false</IsPackable>
+    <IsTestProject>true</IsTestProject>
   </PropertyGroup>
 
   <ItemGroup>
     <PackageReference Include="bunit" Version="1.24.10" />
     <PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.1" />
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.2" />
-    <PackageReference Include="xunit" Version="2.4.2" />
-    <PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
-      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
-      <PrivateAssets>all</PrivateAssets>
-    </PackageReference>
-    <PackageReference Include="coverlet.collector" Version="3.1.2">
-      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
-      <PrivateAssets>all</PrivateAssets>
-    </PackageReference>
   </ItemGroup>
 
   <ItemGroup>
diff --git a/libraries/JGUZDV.CQRS/src/CQRSDecoratorAttribute.cs b/libraries/JGUZDV.CQRS/src/CQRSDecoratorAttribute.cs
index 037d853a..3efbf4bf 100644
--- a/libraries/JGUZDV.CQRS/src/CQRSDecoratorAttribute.cs
+++ b/libraries/JGUZDV.CQRS/src/CQRSDecoratorAttribute.cs
@@ -2,7 +2,7 @@
 {
     /// <summary>
     /// Flags a class as a "Decorator".
-    /// Decorators won't be automatically registered as ICommandHandler<> or IQueryHandler<> during DI setup.
+    /// Decorators won't be automatically registered as ICommandHandler&lt;&gt; or IQueryHandler&lt;&gt; during DI setup.
     /// </summary>
     [AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
     public sealed class CQRSDecoratorAttribute : Attribute { }
diff --git a/libraries/JGUZDV.Extensions.Authorization/src/ClaimRequirement.cs b/libraries/JGUZDV.Extensions.Authorization/src/ClaimRequirement.cs
index 86963f63..07c439b3 100644
--- a/libraries/JGUZDV.Extensions.Authorization/src/ClaimRequirement.cs
+++ b/libraries/JGUZDV.Extensions.Authorization/src/ClaimRequirement.cs
@@ -4,17 +4,32 @@
 
 namespace JGUZDV.Extensions.Authorization;
 
+/// <summary>
+/// Represents a requirement that can be satisfied by a set of claims or a claims principal.
+/// </summary>
 [JsonDerivedType(typeof(ClaimValueRequirement), typeDiscriminator: "Value")]
 [JsonDerivedType(typeof(ClaimRequirementCollection), typeDiscriminator: "List")]
 [JsonDerivedType(typeof(NullRequirement), typeDiscriminator: "Null")]
 public abstract class ClaimRequirement : IEquatable<ClaimRequirement>
 {
+    /// <summary>
+    /// Determines if the requirement is satisfied by the specified principal.
+    /// </summary>
     public virtual bool IsSatisfiedBy(ClaimsPrincipal? principal)
         => IsSatisfiedBy(principal?.Claims);
         
+    /// <summary>
+    /// Determines if the requirement is satisfied by the specified claims.
+    /// </summary>
     public abstract bool IsSatisfiedBy(IEnumerable<Claim>? claims);
 
+    /// <summary>
+    /// Deep clones the requirement.
+    /// </summary>
     public abstract ClaimRequirement Clone();
 
+    /// <summary>
+    /// Determines if the requirement is equal to the specified requirement.
+    /// </summary>
     public abstract bool Equals(ClaimRequirement? other);
 }
diff --git a/libraries/JGUZDV.Extensions.Authorization/src/ClaimRequirementCollection.cs b/libraries/JGUZDV.Extensions.Authorization/src/ClaimRequirementCollection.cs
index ff9b932f..819436b5 100644
--- a/libraries/JGUZDV.Extensions.Authorization/src/ClaimRequirementCollection.cs
+++ b/libraries/JGUZDV.Extensions.Authorization/src/ClaimRequirementCollection.cs
@@ -3,8 +3,14 @@
 
 namespace JGUZDV.Extensions.Authorization;
 
+/// <summary>
+/// Represents a collection of requrements that can be combined with either or or and as combination logic.
+/// </summary>
 public sealed class ClaimRequirementCollection : ClaimRequirement
 {
+    /// <summary>
+    /// Initializes a new instance of the <see cref="ClaimRequirementCollection"/> class.
+    /// </summary>
     [JsonConstructor]
     public ClaimRequirementCollection(List<ClaimRequirement> requirements, RequirementCollectionMatchType matchType)
     {
@@ -12,16 +18,26 @@ public ClaimRequirementCollection(List<ClaimRequirement> requirements, Requireme
         MatchType = matchType;
     }
 
+    /// <summary>
+    /// Initializes a new instance of the <see cref="ClaimRequirementCollection"/> class.
+    /// </summary>
     public ClaimRequirementCollection(RequirementCollectionMatchType matchType, params ClaimRequirement[] requirements)
     {
         Requirements = requirements.ToList();
         MatchType = matchType;
     }
 
+    /// <summary>
+    /// Gets the requirements in the collection.
+    /// </summary>
     public List<ClaimRequirement> Requirements { get; }
-    public RequirementCollectionMatchType MatchType { get; }
 
+    /// <summary>
+    /// Gets the match type for the collection.
+    /// </summary>
+    public RequirementCollectionMatchType MatchType { get; }
 
+    /// <inheritdoc/>
     public override bool IsSatisfiedBy(IEnumerable<Claim>? claims)
         => claims != null && Requirements.Any() &&
         MatchType switch
@@ -31,7 +47,7 @@ public override bool IsSatisfiedBy(IEnumerable<Claim>? claims)
             _ => false
         };
 
-
+    /// <inheritdoc/>
     public sealed override ClaimRequirementCollection Clone()
     {
         var requirements = new List<ClaimRequirement>();
@@ -43,6 +59,7 @@ public sealed override ClaimRequirementCollection Clone()
         return result;
     }
 
+    /// <inheritdoc/>
     public sealed override bool Equals(ClaimRequirement? other)
     {
         if (other is not ClaimRequirementCollection c)
@@ -54,8 +71,18 @@ public sealed override bool Equals(ClaimRequirement? other)
     }
 }
 
+/// <summary>
+/// Represents the match type for a collection of requirements.
+/// </summary>
 public enum RequirementCollectionMatchType
 {
+    /// <summary>
+    /// Requirment can be satisfied if all requirements are satisfied (AND).
+    /// </summary>
     MatchAll,
+
+    /// <summary>
+    /// Requirement can be satisfied if any requirement is satisfied (OR).
+    /// </summary>
     MatchAny
 }
\ No newline at end of file
diff --git a/libraries/JGUZDV.Extensions.Authorization/src/ClaimRequirementOptions.cs b/libraries/JGUZDV.Extensions.Authorization/src/ClaimRequirementOptions.cs
index 6feefd80..0b88fc07 100644
--- a/libraries/JGUZDV.Extensions.Authorization/src/ClaimRequirementOptions.cs
+++ b/libraries/JGUZDV.Extensions.Authorization/src/ClaimRequirementOptions.cs
@@ -3,22 +3,56 @@
 
 namespace JGUZDV.Extensions.Authorization;
 
+/// <summary>
+/// Represents a requirement compatible with the aspnet core options pattern.
+/// </summary>
 public class ClaimRequirementOptions : IValidatableObject
 {
+    /// <summary>
+    /// Gets or sets the match type for the collection (use with Requirements to create a ClaimRequirementCollection).
+    /// </summary>
     public RequirementCollectionMatchType MatchType { get; set; } = RequirementCollectionMatchType.MatchAny;
+
+    /// <summary>
+    /// Gets or sets the requirements in the collection (use with MatchType to create a ClaimRequirementCollection).
+    /// </summary>
     public List<ClaimRequirementOptions>? Requirements { get; set; }
 
 
+    /// <summary>
+    /// Gets or sets a single claim type (use with ClaimValue to create a ClaimValueRequirement).
+    /// </summary>
     public string? ClaimType { get; set; }
+
+    /// <summary>
+    /// Gets or sets a single claim value (use with ClaimType to create a  ClaimValueRequirement).
+    /// </summary>
     public string? ClaimValue { get; set; }
 
 
+    /// <summary>
+    /// Gets or sets a value indicating whether wildcard matching is disabled.
+    /// </summary>
     public bool DisableWildcardMatch { get; set; } = false;
+
+    /// <summary>
+    /// Gets or sets the comparison type for the claim type.
+    /// </summary>
     public StringComparison ClaimTypeComparison { get; set; } = StringComparison.OrdinalIgnoreCase;
+
+    /// <summary>
+    /// Gets or sets the comparison type for the claim value.
+    /// </summary>
     public StringComparison ClaimValueComparison { get; set; } = StringComparison.Ordinal;
 
 
     private ClaimRequirement? _claimRequirement;
+
+    /// <summary>
+    /// Gets the claim requirement represented by the options.
+    /// - Either a ClaimRequirementCollection, if Requirements are defined
+    /// - Or a ClaimValueRequirement, if ClaimType and ClaimValue are defined
+    /// </summary>
     public ClaimRequirement ClaimRequirement { 
         get
         {
@@ -45,9 +79,14 @@ public ClaimRequirement ClaimRequirement {
         }
     }
 
+    /// <summary>
+    /// Determines if the requirement is satisfied by the specified principal.
+    /// </summary>
     public bool SatisfiesRequirement(ClaimsPrincipal principal) => ClaimRequirement.IsSatisfiedBy(principal);
 
-
+    /// <summary>
+    /// Validates the options.
+    /// </summary>
     public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
     {
         if (Requirements != null) {
diff --git a/libraries/JGUZDV.Extensions.Authorization/src/ClaimValueRequirement.cs b/libraries/JGUZDV.Extensions.Authorization/src/ClaimValueRequirement.cs
index 1ebd1a3a..f6423429 100644
--- a/libraries/JGUZDV.Extensions.Authorization/src/ClaimValueRequirement.cs
+++ b/libraries/JGUZDV.Extensions.Authorization/src/ClaimValueRequirement.cs
@@ -3,8 +3,14 @@
 
 namespace JGUZDV.Extensions.Authorization;
 
+/// <summary>
+/// Represents a requirement that is satisfied by a specific claim value and type.
+/// </summary>
 public sealed class ClaimValueRequirement : ClaimRequirement
 {
+    /// <summary>
+    /// Initializes a new instance of the <see cref="ClaimValueRequirement"/> class.
+    /// </summary>
     [JsonConstructor]
     public ClaimValueRequirement(string claimType, string claimValue,
         bool disableWildcardMatch,
@@ -21,19 +27,44 @@ public ClaimValueRequirement(string claimType, string claimValue,
         ClaimValueComparison = claimValueComparison;
     }
 
+    /// <summary>
+    /// Initializes a new instance of the <see cref="ClaimValueRequirement"/> class.
+    /// </summary>
     public ClaimValueRequirement(string claimType, string claimValue) : this(claimType, claimValue, false) { }
 
+    /// <summary>
+    /// Initializes a new instance of the <see cref="ClaimValueRequirement"/> class.
+    /// </summary>
     public ClaimValueRequirement(string claimType, string claimValue, bool disableWildcardMatch)
         : this(claimType, claimValue, disableWildcardMatch, StringComparison.OrdinalIgnoreCase, StringComparison.Ordinal) { }
 
+    /// <summary>
+    /// Gets the claim type that the requirement is satisfied by.
+    /// </summary>
     public string ClaimType { get; }
+
+    /// <summary>
+    /// Gets the claim value that the requirement is satisfied by.
+    /// </summary>
     public string ClaimValue { get; }
 
+
+    /// <summary>
+    /// Gets a value indicating whether wildcard matching is disabled (allows * in ClaimValue or ClaimType).
+    /// </summary>
     public bool DisableWildcardMatch { get; }
+
+    /// <summary>
+    /// Gets the comparison type for the claim type.
+    /// </summary>
     public StringComparison ClaimTypeComparison { get; }
-    public StringComparison ClaimValueComparison { get; }
 
+    /// <summary>
+    /// Gets the comparison type for the claim value.
+    /// </summary>
+    public StringComparison ClaimValueComparison { get; }
 
+    /// <inheritdoc/>
     public sealed override bool IsSatisfiedBy(IEnumerable<Claim>? claims)
         => claims?.Any() == true && claims.Any(c =>
             (c.Type.Equals(ClaimType, ClaimTypeComparison) || (!DisableWildcardMatch && ClaimType.Equals("*"))) &&
@@ -41,7 +72,7 @@ public sealed override bool IsSatisfiedBy(IEnumerable<Claim>? claims)
         );
 
 
-
+    /// <inheritdoc/>
     public sealed override ClaimValueRequirement Clone()
     {
         return new ClaimValueRequirement(
@@ -50,6 +81,7 @@ public sealed override ClaimValueRequirement Clone()
             ClaimTypeComparison, ClaimValueComparison);
     }
 
+    /// <inheritdoc/>
     public sealed override bool Equals(ClaimRequirement? other)
     {
         if (other is not ClaimValueRequirement c)
@@ -62,6 +94,9 @@ public sealed override bool Equals(ClaimRequirement? other)
             ClaimValueComparison == c.ClaimValueComparison;
     }
 
+    /// <summary>
+    /// Creates a new instance of the <see cref="ClaimValueRequirement"/> class from the specified claim.
+    /// </summary>
     public static ClaimValueRequirement FromClaim(Claim claim, bool allowWildcard = false)
         => new(claim.Type, claim.Value, !allowWildcard, StringComparison.Ordinal, StringComparison.Ordinal);
 }
diff --git a/libraries/JGUZDV.Extensions.Authorization/src/ClaimsPrincipalExtension.cs b/libraries/JGUZDV.Extensions.Authorization/src/ClaimsPrincipalExtension.cs
index 7ca1c832..30e6f632 100644
--- a/libraries/JGUZDV.Extensions.Authorization/src/ClaimsPrincipalExtension.cs
+++ b/libraries/JGUZDV.Extensions.Authorization/src/ClaimsPrincipalExtension.cs
@@ -2,8 +2,14 @@
 
 namespace JGUZDV.Extensions.Authorization
 {
+    /// <summary>
+    /// Extension methods for <see cref="ClaimsPrincipal"/>.
+    /// </summary>
     public static class ClaimsPrincipalExtension
     {
+        /// <summary>
+        /// Determines if the current user satisfies the specified requirement.
+        /// </summary>
         public static bool SatisfiesRequirement(this ClaimsPrincipal currentUser, ClaimRequirement requirement) 
             => requirement.IsSatisfiedBy(currentUser);
     }
diff --git a/libraries/JGUZDV.Extensions.Authorization/src/NullRequirement.cs b/libraries/JGUZDV.Extensions.Authorization/src/NullRequirement.cs
index 04b6009c..191f73cb 100644
--- a/libraries/JGUZDV.Extensions.Authorization/src/NullRequirement.cs
+++ b/libraries/JGUZDV.Extensions.Authorization/src/NullRequirement.cs
@@ -2,16 +2,27 @@
 
 namespace JGUZDV.Extensions.Authorization
 {
+    /// <summary>
+    /// Represents a requirement that is never satisfied.
+    /// </summary>
     public class NullRequirement : ClaimRequirement
     {
+        /// <summary>
+        /// Gets a singleton instance of the requirement.
+        /// </summary>
         public static NullRequirement Instance { get; } = new NullRequirement();
 
+        /// <inheritdoc />
         public override NullRequirement Clone()
             => new NullRequirement();
 
+        /// <inheritdoc />
         public override bool Equals(ClaimRequirement? other)
             => other is NullRequirement;
 
+        /// <summary>
+        /// Will always return false for the null requirement.
+        /// </summary>
         public override bool IsSatisfiedBy(IEnumerable<Claim>? principal) 
             => false;
     }
diff --git a/libraries/JGUZDV.Extensions.Json/src/Converters/ClaimsPrincipalConverter.cs b/libraries/JGUZDV.Extensions.Json/src/Converters/ClaimsPrincipalConverter.cs
index ed95dcaa..33ab15af 100644
--- a/libraries/JGUZDV.Extensions.Json/src/Converters/ClaimsPrincipalConverter.cs
+++ b/libraries/JGUZDV.Extensions.Json/src/Converters/ClaimsPrincipalConverter.cs
@@ -4,8 +4,12 @@
 
 namespace JGUZDV.Extensions.Json.Converters
 {
+    /// <summary>
+    /// Converts a <see cref="ClaimsPrincipal"/> to and from JSON.
+    /// </summary>
     public class ClaimsPrincipalConverter : JsonConverter<ClaimsPrincipal>
     {
+        /// <inheritdoc/>
         public override ClaimsPrincipal? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
         {
             if (reader.TokenType is JsonTokenType.Null)
@@ -157,7 +161,7 @@ private static Claim ReadClaim(ref Utf8JsonReader reader)
         }
 
 
-
+        /// <inheritdoc/>
         public override void Write(Utf8JsonWriter writer, ClaimsPrincipal value, JsonSerializerOptions options)
         {
             writer.WriteStartObject();
diff --git a/libraries/JGUZDV.Extensions.Json/src/Converters/DateOnlyConverter.cs b/libraries/JGUZDV.Extensions.Json/src/Converters/DateOnlyConverter.cs
index fd3ac1f1..e24d0d14 100644
--- a/libraries/JGUZDV.Extensions.Json/src/Converters/DateOnlyConverter.cs
+++ b/libraries/JGUZDV.Extensions.Json/src/Converters/DateOnlyConverter.cs
@@ -4,8 +4,12 @@
 
 namespace JGUZDV.Extensions.Json.Converters;
 
+/// <summary>
+/// Converts a <see cref="DateOnly"/> to and from JSON.
+/// </summary>
 public class DateOnlyConverter : JsonConverter<DateOnly>
 {
+    /// <inheritdoc/>
     public override DateOnly Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
     {
         var value = reader.GetString();
@@ -15,6 +19,7 @@ public override DateOnly Read(ref Utf8JsonReader reader, Type typeToConvert, Jso
         return DateOnly.ParseExact(value, "yyyy'-'MM'-'dd");
     }
 
+    /// <inheritdoc/>
     public override void Write(Utf8JsonWriter writer, DateOnly value, JsonSerializerOptions options)
     {
         writer.WriteStringValue(value.ToString("yyyy'-'MM'-'dd"));
diff --git a/libraries/JGUZDV.Extensions.Json/src/Converters/StringTrimmingJsonConverter.cs b/libraries/JGUZDV.Extensions.Json/src/Converters/StringTrimmingJsonConverter.cs
index 743c314e..69f955ae 100644
--- a/libraries/JGUZDV.Extensions.Json/src/Converters/StringTrimmingJsonConverter.cs
+++ b/libraries/JGUZDV.Extensions.Json/src/Converters/StringTrimmingJsonConverter.cs
@@ -3,21 +3,30 @@
 
 namespace JGUZDV.Extensions.Json.Converters;
 
+/// <summary>
+/// Converts a <see cref="string"/> to and from JSON, trimming the value.
+/// </summary>
 public class StringTrimmingJsonConverter : JsonConverter<string>
 {
     private readonly bool _trimToNull;
 
+    /// <summary>
+    /// Initializes a new instance of the <see cref="StringTrimmingJsonConverter"/> class.
+    /// </summary>
+    /// <param name="trimToNull">Decide, if emtpy strings should be replaced with null.</param>
     public StringTrimmingJsonConverter(bool trimToNull = true)
     {
         _trimToNull = trimToNull;
     }
 
+    /// <inheritdoc/>
     public override string? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
     {
         var value = reader.GetString();
         return Trim(value);
     }
 
+    /// <inheritdoc/>
     public override void Write(Utf8JsonWriter writer, string value, JsonSerializerOptions options)
     {
         writer.WriteStringValue(Trim(value));
diff --git a/libraries/JGUZDV.Extensions.Json/src/Converters/TimeOnlyConverter.cs b/libraries/JGUZDV.Extensions.Json/src/Converters/TimeOnlyConverter.cs
index 6146d3e3..13108ca0 100644
--- a/libraries/JGUZDV.Extensions.Json/src/Converters/TimeOnlyConverter.cs
+++ b/libraries/JGUZDV.Extensions.Json/src/Converters/TimeOnlyConverter.cs
@@ -4,8 +4,12 @@
 
 namespace JGUZDV.Extensions.Json.Converters;
 
+/// <summary>
+/// Converts a <see cref="TimeOnly"/> to and from JSON.
+/// </summary>
 public class TimeOnlyConverter : JsonConverter<TimeOnly>
 {
+    /// <inheritdoc/>
     public override TimeOnly Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
     {
         var value = reader.GetString();
@@ -15,6 +19,7 @@ public override TimeOnly Read(ref Utf8JsonReader reader, Type typeToConvert, Jso
         return TimeOnly.ParseExact(value, "HH:mm:ss");
     }
 
+    /// <inheritdoc/>
     public override void Write(Utf8JsonWriter writer, TimeOnly value, JsonSerializerOptions options)
     {
         writer.WriteStringValue(value.ToString("HH:mm:ss"));
diff --git a/libraries/JGUZDV.Extensions.Json/src/JsonSerializerOptionsExtensions.cs b/libraries/JGUZDV.Extensions.Json/src/JsonSerializerOptionsExtensions.cs
index f1425559..a03a2d13 100644
--- a/libraries/JGUZDV.Extensions.Json/src/JsonSerializerOptionsExtensions.cs
+++ b/libraries/JGUZDV.Extensions.Json/src/JsonSerializerOptionsExtensions.cs
@@ -4,14 +4,17 @@
 
 namespace JGUZDV.Extensions.Json;
 
+/// <summary>
+/// Extension methods for <see cref="JsonSerializerOptions"/>.
+/// </summary>
 public static class JsonSerializerOptionsExtensions
 {
     /// <summary>
     /// This will set some default behaviour to JsonSerializerOptions:
-#if NET6_0
-    /// - Add DateOnlyConverter
-    /// - Add TimeOnlyConverter
-#endif
+    /// - if NET6_0:
+    ///   - Add DateOnlyConverter
+    ///   - Add TimeOnlyConverter
+    /// - always:
     /// - Add StringTrimmingJsonConverter
     /// - Set DefaultIgnoreCondition to "WhenWritingNull"
     /// - PropertyNamingPolicy to 'null'
diff --git a/libraries/JGUZDV.Extensions.Logging/src/Constants.cs b/libraries/JGUZDV.Extensions.Logging/src/Constants.cs
index ccaa043d..f85c541b 100644
--- a/libraries/JGUZDV.Extensions.Logging/src/Constants.cs
+++ b/libraries/JGUZDV.Extensions.Logging/src/Constants.cs
@@ -1,8 +1,18 @@
 namespace JGUZDV.Extensions.Logging
 {
+    /// <summary>
+    /// Constants used by the logging extensions.
+    /// </summary>
     public class Constants
     {
+        /// <summary>
+        /// The default section name for logging configuration.
+        /// </summary>
         public const string DefaultSectionName = "Logging";
+
+        /// <summary>
+        /// The default event log source.
+        /// </summary>
         public const string DefaultEventLogSource = ".NET Runtime";
     }
 }
diff --git a/libraries/JGUZDV.Extensions.Logging/src/JGUZDVHostBuilderLoggingExtensions.cs b/libraries/JGUZDV.Extensions.Logging/src/JGUZDVHostBuilderLoggingExtensions.cs
index 6d5c0499..16f3149b 100644
--- a/libraries/JGUZDV.Extensions.Logging/src/JGUZDVHostBuilderLoggingExtensions.cs
+++ b/libraries/JGUZDV.Extensions.Logging/src/JGUZDVHostBuilderLoggingExtensions.cs
@@ -4,25 +4,20 @@
 
 namespace Microsoft.Extensions.DependencyInjection;
 
+/// <summary>
+/// Extension methods for configuring logging.
+/// </summary>
 public static class JGUZDVHostBuilderLoggingExtensions
 {
+    /// <summary>
+    /// Configures the host builder to use the default logging configuration.
+    /// </summary>
     public static IHostBuilder UseJGUZDVLogging(this IHostBuilder hostBuilder)
         => hostBuilder.UseJGUZDVLogging(Constants.DefaultSectionName);
 
+    /// <summary>
+    /// Configures the host builder to use the specified logging configuration.
+    /// </summary>
     public static IHostBuilder UseJGUZDVLogging(this IHostBuilder hostBuilder, string configSectionName)
         => hostBuilder.UseSerilog((ctx, logger) => logger.BuildSerilogLogger(ctx.HostingEnvironment, ctx.Configuration, configSectionName));
-
-/*
-#if NET7_0_OR_GREATER
-    public static HostApplicationBuilder UseJGUZDVLogging(this HostApplicationBuilder applicationBuilder)
-        => applicationBuilder.UseJGUZDVLogging(Constants.DefaultSectionName);
-
-    public static HostApplicationBuilder UseJGUZDVLogging(this HostApplicationBuilder applicationBuilder, string configSectionName)
-    {
-        applicationBuilder
-        applicationBuilder.UseSerilog((ctx, logger) => logger.BuildSerilogLogger(ctx.HostingEnvironment, ctx.Configuration, configSectionName));
-    }
-
-#endif
-*/
 }
\ No newline at end of file
diff --git a/libraries/JGUZDV.Extensions.Logging/src/SerilogHelpers.cs b/libraries/JGUZDV.Extensions.Logging/src/SerilogHelpers.cs
index 1f5d612f..d77c670b 100644
--- a/libraries/JGUZDV.Extensions.Logging/src/SerilogHelpers.cs
+++ b/libraries/JGUZDV.Extensions.Logging/src/SerilogHelpers.cs
@@ -8,7 +8,7 @@
 
 namespace JGUZDV.Extensions.Logging;
 
-public static class SerilogHelpers
+internal static class SerilogHelpers
 {
     internal static void BuildSerilogLogger(this LoggerConfiguration logger, IHostEnvironment hostEnvironment, IConfiguration configuration, string configSectionName)
     {
diff --git a/libraries/JGUZDV.WebApiHost/src/Controllers/FeatureManager.cs b/libraries/JGUZDV.WebApiHost/src/Controllers/FeatureManager.cs
new file mode 100644
index 00000000..6433223e
--- /dev/null
+++ b/libraries/JGUZDV.WebApiHost/src/Controllers/FeatureManager.cs
@@ -0,0 +1,51 @@
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.FeatureManagement;
+
+namespace JGUZDV.WebApiHost.Controllers
+{
+    /// <summary>
+    /// Controller for feauture flags
+    /// </summary>
+    [ApiController]
+    public class FeatureManager : ControllerBase
+    {
+        private readonly IFeatureManager _featureManager;
+
+        /// <summary>
+        /// .ctor
+        /// </summary>
+        public FeatureManager(IFeatureManager featureManager)
+        {
+            _featureManager = featureManager;
+        }
+
+        /// <summary>
+        /// Returns a list of all features and their status for the current user.
+        /// </summary>
+        [HttpGet("app/features")]
+        [Produces<FeatureList>]
+        public async Task<IActionResult> GetFeatures()
+        {
+            var result = new List<Feature>();
+
+            var featureNames = _featureManager.GetFeatureNamesAsync();
+            await foreach(var featureName in featureNames)
+            {
+                var isEnabled = await _featureManager.IsEnabledAsync(featureName);
+                result.Add(new Feature(featureName, isEnabled));
+            }
+
+            return Ok(new FeatureList(result));
+        }
+
+        /// <summary>
+        /// Represents a feature and its status
+        /// </summary>
+        public record Feature(string Name, bool IsEnabled);
+
+        /// <summary>
+        /// Represents a list of features and their status
+        /// </summary>
+        public record FeatureList(IEnumerable<Feature> Features);
+    }
+}
diff --git a/libraries/JGUZDV.WebApiHost/src/Extensions/ConfigurationExtensions.cs b/libraries/JGUZDV.WebApiHost/src/Extensions/ConfigurationExtensions.cs
new file mode 100644
index 00000000..df658385
--- /dev/null
+++ b/libraries/JGUZDV.WebApiHost/src/Extensions/ConfigurationExtensions.cs
@@ -0,0 +1,10 @@
+using Microsoft.Extensions.Configuration;
+
+namespace JGUZDV.Blazor.WasmServerHost.Extensions
+{
+    internal static class ConfigurationExtensions
+    {
+        public static bool HasConfigSection(this IConfiguration configuration, string configSection)
+            => configuration.GetSection(configSection).Exists();
+    }
+}
diff --git a/libraries/JGUZDV.WebApiHost/src/FeatureManagement/ClaimRequirementFeatureFilter.cs b/libraries/JGUZDV.WebApiHost/src/FeatureManagement/ClaimRequirementFeatureFilter.cs
new file mode 100644
index 00000000..15cf7fed
--- /dev/null
+++ b/libraries/JGUZDV.WebApiHost/src/FeatureManagement/ClaimRequirementFeatureFilter.cs
@@ -0,0 +1,33 @@
+using JGUZDV.Extensions.Authorization;
+
+using Microsoft.AspNetCore.Http;
+using Microsoft.Extensions.Configuration;
+using Microsoft.FeatureManagement;
+
+namespace JGUZDV.WebApiHost.FeatureManagement
+{
+    [FilterAlias(nameof(ClaimRequirement))]
+    internal class ClaimRequirementFeatureFilter : IFeatureFilter
+    {
+        private readonly IHttpContextAccessor _httpContextAccessor;
+
+        public ClaimRequirementFeatureFilter(IHttpContextAccessor httpContextAccessor)
+        {
+            _httpContextAccessor = httpContextAccessor;
+        }
+
+        public Task<bool> EvaluateAsync(FeatureFilterEvaluationContext context)
+        {
+            var user = _httpContextAccessor.HttpContext?.User;
+            if(user == null)
+            {
+                return Task.FromResult(false);
+            }
+
+            var requirementOptions = new ClaimRequirementOptions();
+            context.Parameters.Bind(requirementOptions);
+
+            return Task.FromResult(user.SatisfiesRequirement(requirementOptions.ClaimRequirement));
+        }
+    }
+}
diff --git a/libraries/JGUZDV.WebApiHost/src/JGUZDV.WebApiHost.csproj b/libraries/JGUZDV.WebApiHost/src/JGUZDV.WebApiHost.csproj
new file mode 100644
index 00000000..a911b67a
--- /dev/null
+++ b/libraries/JGUZDV.WebApiHost/src/JGUZDV.WebApiHost.csproj
@@ -0,0 +1,38 @@
+<Project Sdk="Microsoft.NET.Sdk.Web">
+
+    <PropertyGroup>
+        <TargetFrameworks>net8.0</TargetFrameworks>
+        <OutputType>Library</OutputType>
+
+        <Nullable>enable</Nullable>
+        <ImplicitUsings>enable</ImplicitUsings>
+
+        <NeutralLanguage>de</NeutralLanguage>
+        <RootNamespace>JGUZDV.WebApiHost</RootNamespace>
+
+        <PackageId>JGUZDV.WebApiHost</PackageId>
+        <IsPackable>true</IsPackable>
+        <Version>1.0.0-beta</Version>
+        <Authors>Thomas Ottenhus</Authors>
+        <Company>Zentrum für Datenverarbeitung - JGU Mainz</Company>
+        <PackageDescription>Host for WebApi Applications based on our other packages</PackageDescription>
+
+        <AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
+
+        <OpenApiGenerateDocuments>false</OpenApiGenerateDocuments>
+    </PropertyGroup>
+
+    <ItemGroup>
+        <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="[8.0.0,)" />
+        <PackageReference Include="Microsoft.Extensions.Caching.SqlServer" Version="[8.0.0,)" />
+        <PackageReference Include="Microsoft.FeatureManagement.AspNetCore" Version="4.0.0-preview" />
+        <PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0" />
+    </ItemGroup>
+
+    <ItemGroup>
+        <ProjectReference Include="..\..\JGUZDV.AspNetCore.DataProtection\src\JGUZDV.AspNetCore.DataProtection.csproj" />
+        <ProjectReference Include="..\..\JGUZDV.AspNetCore.Logging\src\JGUZDV.AspNetCore.Logging.csproj" />
+        <ProjectReference Include="..\..\JGUZDV.Extensions.Authorization\src\JGUZDV.Extensions.Authorization.csproj" />
+        <ProjectReference Include="..\..\JGUZDV.Extensions.Json\src\JGUZDV.Extensions.Json.csproj" />
+    </ItemGroup>
+</Project>
diff --git a/libraries/JGUZDV.WebApiHost/src/Properties/launchSettings.json b/libraries/JGUZDV.WebApiHost/src/Properties/launchSettings.json
new file mode 100644
index 00000000..adad8cbb
--- /dev/null
+++ b/libraries/JGUZDV.WebApiHost/src/Properties/launchSettings.json
@@ -0,0 +1,12 @@
+{
+  "profiles": {
+    "JGUZDV.WebApiHost": {
+      "commandName": "Project",
+      "launchBrowser": true,
+      "environmentVariables": {
+        "ASPNETCORE_ENVIRONMENT": "Development"
+      },
+      "applicationUrl": "https://localhost:52061;http://localhost:52062"
+    }
+  }
+}
\ No newline at end of file
diff --git a/libraries/JGUZDV.WebApiHost/src/README.md b/libraries/JGUZDV.WebApiHost/src/README.md
new file mode 100644
index 00000000..20ff013c
--- /dev/null
+++ b/libraries/JGUZDV.WebApiHost/src/README.md
@@ -0,0 +1,67 @@
+# JGUZDV.Blazor.WasmServerHost
+
+This package is intended to be used as a helper to configure services and the request
+pipeline needed to host a AspNetCore WebAPI application.  
+It's highly opinionated and will use our other packeges to provide a default configuration.
+
+## Usage
+
+**Program.cs**
+```csharp
+var builder = WebApplicationBuilder.Create(args);
+builder.ConfigureWebApiHost(); // You can extend this by using the provided actions
+
+var app = builder.Build();
+
+app.ConfigureWebApiHost();
+app.Run();
+```
+
+To use all features, you need to have configuration sections, each referring to a specific feature:
+
+**appsettings.json**
+```json
+{
+  "Logging": {
+    ... // see https://nuget.org/jguzdv/JGUZDV.AspNetCore.Logging
+  },
+  
+  "JGUZDV":{
+    "DataProtection": {
+    ... // see https://nuget.org/jguzdv/JGUZDV.AspNetCore.DataProtection
+    },
+  },
+
+  "Authentication": {
+    "JwtBearer": { 
+      "Authority": "https://example.com",
+      "Audience": "example",
+      "RequiredScopes": [ "scope1", "scope2" ]
+      "ScopeType": "ClaimTypeOfScopes" // "scope" if empty
+    }
+  },
+
+  "DistributedCache": { // Omit if not needed
+    "ConnectionString": "...",
+    "SchemaName": "...",
+    "TableName": "..."
+  },
+
+  "FeatureManagement": {
+    "Feature1": true,
+    "Feature2": false,
+    "Feature3": {
+        "EnabledFor": [
+        {
+            "Name": "ClaimRequirement",
+            "Parameters": {
+                "ClaimType": "custom-claim",
+                "ClaimValue": "value
+
+                ... // see https://nuget.org/jguzdv/JGUZDV.Extensions.Authorization
+            }
+        } 
+    }
+  },
+}
+```
\ No newline at end of file
diff --git a/libraries/JGUZDV.WebApiHost/src/WebApiHost.cs b/libraries/JGUZDV.WebApiHost/src/WebApiHost.cs
new file mode 100644
index 00000000..260bfea8
--- /dev/null
+++ b/libraries/JGUZDV.WebApiHost/src/WebApiHost.cs
@@ -0,0 +1,283 @@
+using System.IdentityModel.Tokens.Jwt;
+using System.Text.Json.Serialization;
+
+using JGUZDV.Blazor.WasmServerHost.Extensions;
+using JGUZDV.Extensions.Json;
+using JGUZDV.WebApiHost.FeatureManagement;
+
+using Microsoft.AspNetCore.Authentication;
+using Microsoft.AspNetCore.Authentication.JwtBearer;
+using Microsoft.AspNetCore.DataProtection;
+using Microsoft.AspNetCore.Http.Json;
+using Microsoft.Extensions.Logging.Abstractions;
+using Microsoft.FeatureManagement;
+using Microsoft.IdentityModel.Logging;
+
+namespace JGUZDV.WebApiHost;
+
+/// <summary>
+/// WebApiHost is a helper class to configure a WebApiHost with common services and features.
+/// </summary>
+public static partial class WebApiHost
+{
+    /// <summary>
+    /// Default Config Sections for WebApiHost
+    /// </summary>
+    public static class ConfigSections
+    {
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+        public const string Authentication = "Authentication";
+        public const string DataProtection = AspNetCore.DataProtection.Constants.DefaultSectionName;
+        public const string DistributedCache = "DistributedCache";
+        public const string FeatureManagement = "FeatureManagement";
+        public const string Telemetry = "ApplicationInsights";
+#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member
+    }
+
+    /// <summary>
+    /// Configures services of the WebApplicationBuilder:
+    /// - Adds JGUZDVLogging
+    /// - Adds ApiExplorer and Swagger
+    /// - Adds ProblemDetails
+    /// - Adds MVC controllers and sets default JsonOptions (minimal API as well as MVC)
+    /// - Adds RequestLocalization ("de", "en" as default)
+    /// - Adds Distributed Cache
+    /// - Adds Data Protection
+    /// - Adds Authentication and Authorization
+    /// - Adds Feature Management
+    /// - Adds Telemetry
+    /// - Adds HealthChecks
+    /// </summary>
+    public static WebApplicationBuilder ConfigureWebApiHostServices(
+        this WebApplicationBuilder builder,
+        Action<AuthenticationBuilder>? authenticationBuilderAction = null,
+        Action<IDataProtectionBuilder>? dataProtectionBuilderAction = null,
+        Action<IFeatureManagementBuilder>? featureManagementBuilderAction = null,
+        Action<IMvcBuilder>? mvcBuilderAction = null
+        )
+    {
+        var services = builder.Services;
+        var config = builder.Configuration;
+        var environment = builder.Environment;
+
+        JwtSecurityTokenHandler.DefaultMapInboundClaims = false;
+        IdentityModelEventSource.ShowPII = builder.Configuration.GetValue<bool>("ShowPII", false);
+
+        builder.UseJGUZDVLogging();
+
+        var sp = services.BuildServiceProvider();
+        var loggerFactory = sp.GetService<ILoggerFactory>();
+
+        try
+        {
+            var logger = loggerFactory?.CreateLogger(nameof(WebApiHost)) ?? NullLogger.Instance;
+
+            // Enable ApiExplorer
+            services.AddEndpointsApiExplorer();
+            services.AddSwaggerGen();
+
+            // Enable Problem Details
+            services.AddProblemDetails();
+            
+            // Enable MVC controllers
+            var mvcBuilder = services.AddControllers();
+            mvcBuilderAction?.Invoke(mvcBuilder);
+            mvcBuilder.AddJsonOptions(opt =>
+            {
+                opt.JsonSerializerOptions.SetJGUZDVDefaults();
+                opt.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
+            });
+
+            // Set json options for minimal API
+            services.Configure<JsonOptions>(opt =>
+            {
+                opt.SerializerOptions.SetJGUZDVDefaults();
+                opt.SerializerOptions.Converters.Add(new JsonStringEnumConverter());
+            });
+
+
+            // Add Localization for DE, EN and RequestLocaltization
+            services.AddLocalization();
+            var locales = config
+                .GetSection("RequestLocalization:Cultures")
+                .Get<string[]>() ?? ["de", "en"];
+
+            services.AddRequestLocalization(opt => opt
+                .AddSupportedCultures(locales)
+                .AddSupportedUICultures(locales)
+                .SetDefaultCulture(locales[0])
+            );
+
+
+            // Add distributed cache
+            if (environment.IsProduction() && config.HasConfigSection(ConfigSections.DistributedCache))
+            {
+                services.AddDistributedSqlServerCache(opt => config.GetSection(ConfigSections.DistributedCache).Bind(opt));
+            }
+            else
+            {
+                services.AddDistributedMemoryCache();
+            }
+
+            if (!config.HasConfigSection(ConfigSections.DistributedCache))
+                Log.MissingConfig(logger, ConfigSections.DistributedCache);
+
+
+            // Add data protection
+            IDataProtectionBuilder dataProtectionBuilder = 
+                environment.IsProduction() && config.HasConfigSection(ConfigSections.DataProtection)
+                    ? services.AddJGUZDVDataProtection(config, environment)
+                    : services.AddDataProtection();
+
+            dataProtectionBuilderAction?.Invoke(dataProtectionBuilder);
+
+            if (!config.HasConfigSection(ConfigSections.DataProtection))
+                Log.MissingConfig(logger, ConfigSections.DataProtection);
+
+
+            // Add authentication and authorization
+            if (config.HasConfigSection(ConfigSections.Authentication))
+            {
+                var configSection = config.GetSection($"{ConfigSections.Authentication}:JwtBearer");
+
+                var authBuilder = services
+                    .AddAuthentication(opt => opt.DefaultScheme = JwtBearerDefaults.AuthenticationScheme)
+                    .AddJwtBearer(opt =>
+                    {
+                        var validAudiences = configSection.GetSection("ValidAudiences").Get<ICollection<string>?>() ?? [];
+                        var validateAudience = validAudiences?.Count > 0;
+
+                        opt.TokenValidationParameters.ValidateAudience = validateAudience;
+                        opt.TokenValidationParameters.ValidAudiences = validAudiences;
+
+                        config.GetSection(ConfigSections.Authentication).Bind(opt);
+
+                        if (opt.TokenValidationParameters.ValidAudiences?.Any() != true)
+                            Log.NoValidAudiences(logger);
+                    });
+
+                authenticationBuilderAction?.Invoke(authBuilder);
+
+                services.AddAuthorization(opt =>
+                {
+                    var scopes = configSection.GetSection("RequiredScopes").Get<ICollection<string>?>() ?? [];
+                    if (scopes.Count == 0)
+                    {
+                        Log.NoRequiredScopes(logger);
+                    }
+                    else
+                    {
+                        var scopeClaimType = configSection["ScopeType"] ?? "scope";
+
+                        opt.AddPolicy("ScopedDefault", p =>
+                        {
+                            p.RequireAuthenticatedUser();
+                            p.RequireClaim("scope", scopes);
+
+                        });
+                        opt.DefaultPolicy = opt.GetPolicy("ScopedDefault")!;
+                    }
+                });
+            }
+            else
+            {
+                Log.MissingConfig(logger, ConfigSections.Authentication);
+            }
+
+
+            // Feature Management
+            if (config.HasConfigSection(ConfigSections.FeatureManagement))
+            {
+                var featureManagementBuilder = services.AddScopedFeatureManagement(
+                        config.GetSection(ConfigSections.FeatureManagement)
+                    )
+                    .AddFeatureFilter<ClaimRequirementFeatureFilter>();
+
+                featureManagementBuilderAction?.Invoke(featureManagementBuilder);
+            }
+            else
+            {
+                Log.MissingConfig(logger, ConfigSections.FeatureManagement);
+            }
+
+
+            // Telemetry
+            if (config.HasConfigSection(ConfigSections.Telemetry))
+            {
+                // TODO: Add default calls for Telemetry and Healthchecks
+                services.AddHealthChecks();
+            }
+            else
+            {
+                Log.MissingConfig(logger, ConfigSections.Telemetry);
+                services.AddHealthChecks();
+            }
+
+            return builder;
+        }
+        finally
+        {
+            loggerFactory?.Dispose();
+        }
+    }
+
+
+    /// <summary>
+    /// Configures the web application pipeline:
+    /// - Adds DeveloperExceptionPage (in Development)
+    /// - Adds Routing
+    /// - Adds Authentication and Authorization
+    /// - Adds RequestLocalization
+    /// - Adds Controllers
+    /// - Adds HealthChecks
+    /// - Adds Swagger
+    /// - Adds SwaggerUI
+    /// </summary>
+    /// <param name="app"></param>
+    /// <returns></returns>
+    public static WebApplication ConfigureWebApiHost(this WebApplication app)
+    {
+        var conf = app.Configuration;
+        var env = app.Environment;
+
+        if (env.IsDevelopment())
+        {
+            app.UseDeveloperExceptionPage();
+        }
+
+
+        app.UseRouting();
+
+        app.UseAuthentication();
+        app.UseAuthorization();
+
+        app.UseRequestLocalization();
+
+        app.MapControllers();
+        
+        app.MapHealthChecks("/health");
+        app.MapGet("/docs", ctx =>
+        {
+            ctx.Response.Redirect("/swagger");
+            return Task.CompletedTask;
+        });
+
+        app.MapSwagger();
+        app.UseSwaggerUI();
+
+        return app;
+    }
+
+
+    private partial class Log
+    {
+        [LoggerMessage(LogLevel.Information, "Could not find config {configSection}. The corresponding feature will not be added to services or pipeline.")]
+        public static partial void MissingConfig(ILogger logger, string configSection);
+
+        [LoggerMessage(LogLevel.Information, "Could not find config Authentication:JwtBearer:ValidAudiences, audiences will not be considered.")]
+        public static partial void NoValidAudiences(ILogger logger);
+
+        [LoggerMessage(LogLevel.Warning, "Could not find config Authentication:JwtBearer:RequiredScopes, consider addings required scopes to validate the token is meant for us.")]
+        public static partial void NoRequiredScopes(ILogger logger);
+    }
+}
diff --git a/libraries/JGUZDV.WebApiHost/test/GlobalUsings.cs b/libraries/JGUZDV.WebApiHost/test/GlobalUsings.cs
new file mode 100644
index 00000000..8c927eb7
--- /dev/null
+++ b/libraries/JGUZDV.WebApiHost/test/GlobalUsings.cs
@@ -0,0 +1 @@
+global using Xunit;
\ No newline at end of file
diff --git a/libraries/JGUZDV.WebApiHost/test/JGUZDV.WebApiHost.Tests.csproj b/libraries/JGUZDV.WebApiHost/test/JGUZDV.WebApiHost.Tests.csproj
new file mode 100644
index 00000000..5d14fd61
--- /dev/null
+++ b/libraries/JGUZDV.WebApiHost/test/JGUZDV.WebApiHost.Tests.csproj
@@ -0,0 +1,16 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+    <PropertyGroup>
+        <TargetFramework>net8.0</TargetFramework>
+        <ImplicitUsings>enable</ImplicitUsings>
+        <Nullable>enable</Nullable>
+
+        <IsPackable>false</IsPackable>
+        <IsTestProject>true</IsTestProject>
+    </PropertyGroup>
+
+    <ItemGroup>
+        <ProjectReference Include="..\src\JGUZDV.WebApiHost.csproj" />
+    </ItemGroup>
+
+</Project>
diff --git a/libraries/JGUZDV.WebApiHost/test/UnitTest1.cs b/libraries/JGUZDV.WebApiHost/test/UnitTest1.cs
new file mode 100644
index 00000000..22244696
--- /dev/null
+++ b/libraries/JGUZDV.WebApiHost/test/UnitTest1.cs
@@ -0,0 +1,6 @@
+namespace JGUZDV.WebApiHost.Tests;
+
+public class UnitTest1
+{
+    // TODO: Testability noch unklar
+}
\ No newline at end of file