diff --git a/.gitignore b/.gitignore
index a590125ce..597037eca 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,6 +5,7 @@ vue.config.js
task
obj
bin
+!apps/vben5/scripts/**/bin/
Logs
appsettings.Production.json
appsettings.secrets.json
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 73c665396..4a5051a57 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -61,6 +61,7 @@
+
@@ -173,6 +174,10 @@
+
+
+
+
diff --git a/apps/vben5/scripts/turbo-run/bin/turbo-run.mjs b/apps/vben5/scripts/turbo-run/bin/turbo-run.mjs
new file mode 100644
index 000000000..407754d4e
--- /dev/null
+++ b/apps/vben5/scripts/turbo-run/bin/turbo-run.mjs
@@ -0,0 +1,3 @@
+#!/usr/bin/env node
+
+import('../dist/index.mjs');
diff --git a/apps/vben5/scripts/vsh/bin/vsh.mjs b/apps/vben5/scripts/vsh/bin/vsh.mjs
new file mode 100644
index 000000000..407754d4e
--- /dev/null
+++ b/apps/vben5/scripts/vsh/bin/vsh.mjs
@@ -0,0 +1,3 @@
+#!/usr/bin/env node
+
+import('../dist/index.mjs');
diff --git a/aspnet-core/LINGYUN.MicroService.All.sln b/aspnet-core/LINGYUN.MicroService.All.sln
index 1aae176b4..1ed9cfe2b 100644
--- a/aspnet-core/LINGYUN.MicroService.All.sln
+++ b/aspnet-core/LINGYUN.MicroService.All.sln
@@ -1,4 +1,3 @@
-
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
diff --git a/aspnet-core/LINGYUN.MicroService.Common.sln b/aspnet-core/LINGYUN.MicroService.Common.sln
index 028b9c194..fa3327c45 100644
--- a/aspnet-core/LINGYUN.MicroService.Common.sln
+++ b/aspnet-core/LINGYUN.MicroService.Common.sln
@@ -1,988 +1,1237 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.0.31903.59
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "modules", "modules", "{02EA4E78-5891-43BC-944F-3E52FEE032E4}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "common", "common", "{086BE5BE-8594-4DA7-8819-935FEF76DABD}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IM", "modules\realtime-message\LINGYUN.Abp.IM\LINGYUN.Abp.IM.csproj", "{5A87E9DD-3340-44DC-9564-4D8832A0228E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.RealTime", "framework\common\LINGYUN.Abp.RealTime\LINGYUN.Abp.RealTime.csproj", "{E9BE3C65-2AB2-4CE8-8EB9-5C91B329ADB4}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.SignalR.Protocol.Json", "framework\common\LINGYUN.Abp.AspNetCore.SignalR.Protocol.Json\LINGYUN.Abp.AspNetCore.SignalR.Protocol.Json.csproj", "{E9AEC9D6-1FE7-4B00-BAC5-2C3D4B63CCA2}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.SignalR.JwtToken", "framework\common\LINGYUN.Abp.AspNetCore.SignalR\LINGYUN.Abp.AspNetCore.SignalR.JwtToken.csproj", "{304D06E6-41EC-4DCB-AEAE-DBEEC75F9ADC}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BackgroundJobs.Hangfire", "framework\common\LINGYUN.Abp.BackgroundJobs.Hangfire\LINGYUN.Abp.BackgroundJobs.Hangfire.csproj", "{492710E6-EEF5-4390-A474-8FB2412ECBE5}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BlobStoring.Aliyun", "framework\common\LINGYUN.Abp.BlobStoring.Aliyun\LINGYUN.Abp.BlobStoring.Aliyun.csproj", "{CCF1EB86-29BD-4531-BB27-C9111CC67570}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.EventBus.CAP", "framework\common\LINGYUN.Abp.EventBus.CAP\LINGYUN.Abp.EventBus.CAP.csproj", "{7947D559-4288-486B-8FB3-D957CC7EDD32}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.ExceptionHandling", "framework\common\LINGYUN.Abp.ExceptionHandling\LINGYUN.Abp.ExceptionHandling.csproj", "{A4195E41-3919-4C3E-8768-7F277B583D16}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.ExceptionHandling.Emailing", "framework\common\LINGYUN.Abp.ExceptionHandling.Emailing\LINGYUN.Abp.ExceptionHandling.Emailing.csproj", "{60083380-062C-4914-9E4E-5AE6637CCC3F}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.ExceptionHandling.Notifications", "modules\realtime-notifications\LINGYUN.Abp.ExceptionHandling.Notifications\LINGYUN.Abp.ExceptionHandling.Notifications.csproj", "{9C6E9EE2-5C83-4D96-A7B7-32798FEF2845}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Features.LimitValidation", "framework\common\LINGYUN.Abp.Features.LimitValidation\LINGYUN.Abp.Features.LimitValidation.csproj", "{34C1E979-65B9-46F5-B7BA-60F227EBA093}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Features.LimitValidation.Redis", "framework\common\LINGYUN.Abp.Features.LimitValidation.Redis\LINGYUN.Abp.Features.LimitValidation.Redis.csproj", "{80A56461-0ACC-4069-B571-87DCA064B2EF}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Hangfire.Storage.MySql", "framework\common\LINGYUN.Abp.Hangfire.MySqlStorage\LINGYUN.Abp.Hangfire.Storage.MySql.csproj", "{568D2C50-1C31-4C31-89A2-C608FA93C6FD}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Hangfire.Storage.SqlServer", "framework\common\LINGYUN.Abp.Hangfire.Storage.SqlServer\LINGYUN.Abp.Hangfire.Storage.SqlServer.csproj", "{12451B83-18DE-4E93-B98C-509477D53D5E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Location", "framework\common\LINGYUN.Abp.Location\LINGYUN.Abp.Location.csproj", "{AAD0B6A7-847A-4537-A300-50E37F4B70CC}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Location.Baidu", "framework\common\LINGYUN.Abp.Location.Baidu\LINGYUN.Abp.Location.Baidu.csproj", "{5B5C2372-2EAB-4559-BBCB-0C1C9A7158DB}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Location.Tencent", "framework\common\LINGYUN.Abp.Location.Tencent\LINGYUN.Abp.Location.Tencent.csproj", "{2A0C5EF1-CB21-4656-8C32-B5673F6B82D2}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications", "modules\realtime-notifications\LINGYUN.Abp.Notifications\LINGYUN.Abp.Notifications.csproj", "{3021DD8B-EA8F-4A88-BC2C-1BBEDC6255FE}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.SignalR", "modules\realtime-notifications\LINGYUN.Abp.Notifications.SignalR\LINGYUN.Abp.Notifications.SignalR.csproj", "{B31CEE79-45F6-4BB9-9EEB-08843C324B37}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "wechat", "wechat", "{22C61434-D29A-4376-AD56-F5089F3E617A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WeChat", "framework\wechat\LINGYUN.Abp.WeChat\LINGYUN.Abp.WeChat.csproj", "{865D5508-63CD-4D44-9F5B-AE5CD4A43D08}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Settings", "framework\settings\LINGYUN.Abp.Settings\LINGYUN.Abp.Settings.csproj", "{ECAA4B82-A240-4747-888C-FACD8634D389}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Sms.Aliyun", "framework\common\LINGYUN.Abp.Sms.Aliyun\LINGYUN.Abp.Sms.Aliyun.csproj", "{8AF8FD6B-634F-41FA-B421-A4ACFD159FE0}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "alibaba-cloud", "alibaba-cloud", "{7F18BCA5-35BD-41FB-8EFF-801B56E5E414}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "signalr", "signalr", "{E2E7A062-0ABB-41B4-8220-60228446D2C2}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "location", "location", "{EFFAF456-50C1-42C9-836E-E95E7A38D52C}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "realtime", "realtime", "{B91F26C5-B148-4094-B5F1-71E5F945DBED}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "features", "features", "{0D2D7A10-CBA5-4798-BFC7-EB05D1E6B94C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Features.Client", "framework\features\LINGYUN.Abp.Features.Client\LINGYUN.Abp.Features.Client.csproj", "{3B455AA7-B165-4EA0-8870-DB8DA5C76FC5}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.FeatureManagement.Client", "framework\features\LINGYUN.Abp.FeatureManagement.Client\LINGYUN.Abp.FeatureManagement.Client.csproj", "{99F8F254-A76E-43BB-8048-CC17EE1C8527}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tenants", "tenants", "{38E21687-5F19-42C9-9D11-4B1D2EF64EDB}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.Sms", "modules\realtime-notifications\LINGYUN.Abp.Notifications.Sms\LINGYUN.Abp.Notifications.Sms.csproj", "{15FC0C39-A604-491F-91F6-BD44167FC5F6}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WeChat.MiniProgram", "framework\wechat\LINGYUN.Abp.WeChat.MiniProgram\LINGYUN.Abp.WeChat.MiniProgram.csproj", "{9E59B1DB-E0D5-485D-BDA0-B6C31E1358A8}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WeChat.Official", "framework\wechat\LINGYUN.Abp.WeChat.Official\LINGYUN.Abp.WeChat.Official.csproj", "{16942653-B746-4917-B3BF-464C99F8832F}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WeChat.SettingManagement", "framework\wechat\LINGYUN.Abp.WeChat.SettingManagement\LINGYUN.Abp.WeChat.SettingManagement.csproj", "{D0717513-2CEE-4AD5-A1DA-A08EA5DE6DD6}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Core", "framework\common\LINGYUN.Abp.Core\LINGYUN.Abp.Core.csproj", "{A7A28D6C-6EDB-4615-8899-7DE1D435B750}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Aliyun", "framework\cloud-aliyun\LINGYUN.Abp.Aliyun\LINGYUN.Abp.Aliyun.csproj", "{17A8455F-D413-4664-AEFA-1ECAE9ED4B19}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{B86C21A4-73B7-471E-B73A-B4B905EC9435}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TestsBase", "tests\LINGYUN.Abp.TestBase\LINGYUN.Abp.TestsBase.csproj", "{3BAA3D38-96C2-4C4C-B790-AE2997BFDE25}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BlobStoring.Aliyun.Tests", "tests\LINGYUN.Abp.BlobStoring.Aliyun.Tests\LINGYUN.Abp.BlobStoring.Aliyun.Tests.csproj", "{2E35CB93-2E9C-4EE1-845F-72A40271648E}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "console", "console", "{8D2AD50B-DD4B-48A2-88EC-0E8E8236D883}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Encryption.Console", "framework\console\LINGYUN.Abp.Encryption.Console\LINGYUN.Abp.Encryption.Console.csproj", "{8FB74B18-CA5C-4DC3-8DFA-600133A05712}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Aliyun.Tests", "tests\LINGYUN.Abp.Aliyun.Tests\LINGYUN.Abp.Aliyun.Tests.csproj", "{3DBF0975-B09D-49CA-9AF8-69175EDB9D52}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Sms.Aliyun.Tests", "tests\LINGYUN.Abp.Sms.Aliyun.Tests\LINGYUN.Abp.Sms.Aliyun.Tests.csproj", "{93DD5A05-B67A-4E11-BB56-F6B4E7F1489C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Location.Baidu.Tests", "tests\LINGYUN.Abp.Location.Baidu.Tests\LINGYUN.Abp.Location.Baidu.Tests.csproj", "{221725FF-6C01-4F41-9F29-AC04C7D52611}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Location.Tencent.Tests", "tests\LINGYUN.Abp.Location.Tencent.Tests\LINGYUN.Abp.Location.Tencent.Tests.csproj", "{1B494EA1-28CF-4A61-B0BE-70BBA425C316}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.Mvc.Client", "framework\common\LINGYUN.Abp.AspNetCore.Mvc.Client\LINGYUN.Abp.AspNetCore.Mvc.Client.csproj", "{7F767ACF-754A-4EBC-8936-3C1402B6EF82}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "localization", "localization", "{E73A0F8B-2B4B-4CED-82A4-1EE5E0B89744}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Localization.Xml", "framework\localization\LINGYUN.Abp.Localization.Xml\LINGYUN.Abp.Localization.Xml.csproj", "{8CC72F4E-F134-4A43-9037-5D4D1F29B68A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Localization.Xml.Tests", "tests\LINGYUN.Abp.Localization.Xml.Tests\LINGYUN.Abp.Localization.Xml.Tests.csproj", "{94FEA59E-3B6D-41A0-9E44-BA5D6477244F}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dapr", "dapr", "{7FDFB22F-1BFF-4E05-9427-78B7A8461D50}"
- ProjectSection(SolutionItems) = preProject
- framework\dapr\README.md = framework\dapr\README.md
- EndProjectSection
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Actors", "framework\dapr\LINGYUN.Abp.Dapr.Actors\LINGYUN.Abp.Dapr.Actors.csproj", "{C72E0407-06FE-4CAA-86E5-30FF216A7B82}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Actors.AspNetCore", "framework\dapr\LINGYUN.Abp.Dapr.Actors.AspNetCore\LINGYUN.Abp.Dapr.Actors.AspNetCore.csproj", "{E74FF671-6E5E-430C-9211-ED910634DDBE}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Client", "framework\dapr\LINGYUN.Abp.Dapr.Client\LINGYUN.Abp.Dapr.Client.csproj", "{879791A3-BD69-42E4-A3BC-9878EFAADDD1}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "rules", "rules", "{C8891F1A-E6E5-448A-B527-EBFA44D20808}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Rules", "framework\rules\LINGYUN.Abp.Rules\LINGYUN.Abp.Rules.csproj", "{5133D83C-9B23-491C-8780-3F9BBDBD0351}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Rules.NRules", "framework\rules\LINGYUN.Abp.Rules.NRules\LINGYUN.Abp.Rules.NRules.csproj", "{B8E5026B-188F-422F-A1EA-502C4A394585}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Rules.RulesEngine", "framework\rules\LINGYUN.Abp.Rules.RulesEngine\LINGYUN.Abp.Rules.RulesEngine.csproj", "{E861BE01-689D-4637-A5DC-E78E234F83FB}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Rules.RulesEngine.Tests", "tests\LINGYUN.Abp.Rules.RulesEngine.Tests\LINGYUN.Abp.Rules.RulesEngine.Tests.csproj", "{CF253F0A-3A45-40EE-875F-0E57C8968C48}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Rules.NRules.Tests", "tests\LINGYUN.Abp.Rules.NRules.Tests\LINGYUN.Abp.Rules.NRules.Tests.csproj", "{EF03A0A7-A93E-4DEF-A33E-F5A82E995FBF}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Client.Tests", "tests\LINGYUN.Abp.Dapr.Client.Tests\LINGYUN.Abp.Dapr.Client.Tests.csproj", "{9403FC1F-9677-489F-A03A-0B456153EE86}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Tests", "tests\LINGYUN.Abp.Dapr.Tests\LINGYUN.Abp.Dapr.Tests.csproj", "{26E87199-F0AD-4B30-B0E4-080B12E6F8FC}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.AspNetCore.TestHost", "tests\LINGYUN.Abp.Dapr.AspNetCore.TestHost\LINGYUN.Abp.Dapr.AspNetCore.TestHost.csproj", "{8968EDAF-9F5C-4786-AF2A-D3928B70C3EC}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Actors.Tests", "tests\LINGYUN.Abp.Dapr.Actors.Tests\LINGYUN.Abp.Dapr.Actors.Tests.csproj", "{CF30221B-CA7A-42CD-B91A-B7224AB2F38B}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.HttpOverrides", "framework\common\LINGYUN.Abp.AspNetCore.HttpOverrides\LINGYUN.Abp.AspNetCore.HttpOverrides.csproj", "{191BB108-546E-4E70-978E-D6A8149C319C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IM.SignalR", "modules\realtime-message\LINGYUN.Abp.IM.SignalR\LINGYUN.Abp.IM.SignalR.csproj", "{DEB98AD7-9630-4F32-89E6-C1A118D1D18C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.WeChat", "framework\wechat\LINGYUN.Abp.Identity.WeChat\LINGYUN.Abp.Identity.WeChat.csproj", "{00F1D30E-A6F6-464F-A80B-D423CFAA79A3}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "elasticsearch", "elasticsearch", "{358A4FB1-F5DF-433C-9DA7-D27401155AD7}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elasticsearch", "framework\elasticsearch\LINGYUN.Abp.Elasticsearch\LINGYUN.Abp.Elasticsearch.csproj", "{2584D823-53A7-4184-8295-719A41E5B440}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "auditing", "auditing", "{6271EBC0-78F2-4E4F-A646-BBD15BCB0F84}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AuditLogging", "framework\auditing\LINGYUN.Abp.AuditLogging\LINGYUN.Abp.AuditLogging.csproj", "{C1A91534-E84F-4A98-9A78-135988030646}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AuditLogging.Elasticsearch", "framework\auditing\LINGYUN.Abp.AuditLogging.Elasticsearch\LINGYUN.Abp.AuditLogging.Elasticsearch.csproj", "{0CC508D7-480C-4409-842A-A6C10E11ACFD}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AuditLogging.Elasticsearch.Tests", "tests\LINGYUN.Abp.AuditLogging.Elasticsearch.Tests\LINGYUN.Abp.AuditLogging.Elasticsearch.Tests.csproj", "{F8330A1E-6CC3-4E90-8B5C-DCD8FA00CF5C}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "logging", "logging", "{23F4260D-87C1-4AA6-A302-0A8A76D53BA1}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Logging", "framework\logging\LINGYUN.Abp.Logging\LINGYUN.Abp.Logging.csproj", "{CE7E525F-8628-4076-8A2E-B615B944D140}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Logging.Serilog.Elasticsearch", "framework\logging\LINGYUN.Abp.Logging.Serilog.Elasticsearch\LINGYUN.Abp.Logging.Serilog.Elasticsearch.csproj", "{CD556F2A-A96B-43A2-8BB3-6C0EBA27EB02}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Serilog.Enrichers.Application", "framework\logging\LINGYUN.Abp.Serilog.Enrichers.Application\LINGYUN.Abp.Serilog.Enrichers.Application.csproj", "{CCB4AE25-7059-4CA0-A3AB-CBB863A3F672}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Data.DbMigrator", "framework\common\LINGYUN.Abp.Data.DbMigrator\LINGYUN.Abp.Data.DbMigrator.csproj", "{3993A315-B250-4C5D-98C7-90FD06841B66}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "data-protection", "data-protection", "{A0910407-CE69-4DC8-9721-F4324C22EEA8}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.DataProtection", "framework\data-protection\LINGYUN.Abp.DataProtection\LINGYUN.Abp.DataProtection.csproj", "{519BF5DA-30E4-40CF-829A-93F526E2AED8}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.DataProtection.EntityFrameworkCore", "framework\data-protection\LINGYUN.Abp.DataProtection.EntityFrameworkCore\LINGYUN.Abp.DataProtection.EntityFrameworkCore.csproj", "{E16CCB14-E629-48E6-9603-53BBFF185318}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.DataProtection.Tests", "tests\LINGYUN.Abp.DataProtection.Tests\LINGYUN.Abp.DataProtection.Tests.csproj", "{FBE7D8CB-1D99-4342-A953-B9AB46E0B14D}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.EntityFrameworkCore.Tests", "tests\LINGYUN.Abp.EntityFrameworkCore.Tests\LINGYUN.Abp.EntityFrameworkCore.Tests.csproj", "{2F556889-006C-4A9C-8CA3-E31200C06FC9}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr", "framework\dapr\LINGYUN.Abp.Dapr\LINGYUN.Abp.Dapr.csproj", "{73C9A7E7-846D-49E2-B223-E705D6C48BE7}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Wrapper", "framework\common\LINGYUN.Abp.Wrapper\LINGYUN.Abp.Wrapper.csproj", "{328B0863-23BE-43FD-98DD-FF0C92D5BEF0}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "mvc", "mvc", "{F55B987D-1DFF-4EB0-9949-8A7136A7B689}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.Mvc.Wrapper", "framework\mvc\LINGYUN.Abp.AspNetCore.Mvc.Wrapper\LINGYUN.Abp.AspNetCore.Mvc.Wrapper.csproj", "{D72748AF-2CC8-4B5B-9710-ECDE5D812D7F}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.Tests", "tests\LINGYUN.Abp.AspNetCore.Tests\LINGYUN.Abp.AspNetCore.Tests.csproj", "{BD4165DB-F8A4-4715-A05A-CC08F6A18D67}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.Mvc.Tests", "tests\LINGYUN.Abp.AspNetCore.Mvc.Tests\LINGYUN.Abp.AspNetCore.Mvc.Tests.csproj", "{AE5E6DE8-FC02-4633-BA49-C4B8ABADB502}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Wrapper.Tests", "tests\LINGYUN.Abp.Wrapper.Tests\LINGYUN.Abp.Wrapper.Tests.csproj", "{31AED9ED-29BD-4F2F-8D3A-F00CBB9FC73C}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "open-api", "open-api", "{8C688427-DD35-4F0B-86DA-6F536D3852D5}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.OpenApi", "framework\open-api\LINGYUN.Abp.OpenApi\LINGYUN.Abp.OpenApi.csproj", "{2C8A6B4C-D6B2-44FE-9EF5-EC7480D2A6B2}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.OpenApi.Authorization", "framework\open-api\LINGYUN.Abp.OpenApi.Authorization\LINGYUN.Abp.OpenApi.Authorization.csproj", "{3CE350AF-5574-46EC-8120-8542350AED20}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "cli", "cli", "{FE372F22-80A2-4859-9330-949C27CA94ED}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Cli", "framework\cli\LINGYUN.Abp.Cli\LINGYUN.Abp.Cli.csproj", "{33007EF7-BC1D-4B32-ACDA-6B9117200FAD}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Client.Wrapper", "framework\dapr\LINGYUN.Abp.Dapr.Client.Wrapper\LINGYUN.Abp.Dapr.Client.Wrapper.csproj", "{B9592989-9F76-413C-8612-96E8C0CFA041}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "settings", "settings", "{F7878090-7FD6-4A2E-8D61-CAA0997880D7}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.SettingManagement.Application.Contracts", "framework\settings\LINGYUN.Abp.SettingManagement.Application.Contracts\LINGYUN.Abp.SettingManagement.Application.Contracts.csproj", "{7EDBCC52-3089-49F6-A56A-650850C9797E}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "hangfire", "hangfire", "{3A0784A6-AFBF-406F-B79E-9505EB100445}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Hangfire.Dashboard", "framework\common\LINGYUN.Abp.Hangfire.Dashboard\LINGYUN.Abp.Hangfire.Dashboard.csproj", "{FF518E10-C9AB-440C-8E8D-9CFF67A926AC}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Actors.AspNetCore.Wrapper", "framework\dapr\LINGYUN.Abp.Dapr.Actors.AspNetCore.Wrapper\LINGYUN.Abp.Dapr.Actors.AspNetCore.Wrapper.csproj", "{49E0B90B-8635-43D0-B0AB-9D484CAE68B5}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.MultiTenancy.Editions", "framework\tenants\LINGYUN.Abp.MultiTenancy.Editions\LINGYUN.Abp.MultiTenancy.Editions.csproj", "{3FF4CEA0-1555-4D62-AA81-B3B599253F8D}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "webhooks", "webhooks", "{BD97C98B-0B4B-443D-AB29-145A344F46D3}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WebHooks", "modules\webhooks\LINGYUN.Abp.WebHooks\LINGYUN.Abp.WebHooks.csproj", "{AFE75D2B-8853-488B-B5D5-277B58C5DBB2}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "authorization", "authorization", "{3971AD93-BF97-4E05-972D-CB5EB9F6CB88}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Authorization.OrganizationUnits", "framework\authorization\LINGYUN.Abp.Authorization.OrganizationUnits\LINGYUN.Abp.Authorization.OrganizationUnits.csproj", "{D9339CBB-45B9-4701-B2AC-2A75FF20D77B}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.OrganizaztionUnits", "modules\identity\LINGYUN.Abp.Identity.OrganizaztionUnits\LINGYUN.Abp.Identity.OrganizaztionUnits.csproj", "{474AA48F-65F9-436B-A0B1-1E95BD16CA8D}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.DistributedLocking.Dapr", "framework\dapr\LINGYUN.Abp.DistributedLocking.Dapr\LINGYUN.Abp.DistributedLocking.Dapr.csproj", "{C71F6273-BCDE-4A63-A0CF-EAFD1D924DA0}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "pushplus", "pushplus", "{0F5A2591-CE08-4184-A5F3-89F6FB3B2B10}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.PushPlus", "framework\pushplus\LINGYUN.Abp.PushPlus\LINGYUN.Abp.PushPlus.csproj", "{5515C7CA-B512-4E36-A202-49A0158A0E74}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.PushPlus", "modules\realtime-notifications\LINGYUN.Abp.Notifications.PushPlus\LINGYUN.Abp.Notifications.PushPlus.csproj", "{EBA67EAD-4958-46E3-9E0C-8186394D083F}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.Emailing", "modules\realtime-notifications\LINGYUN.Abp.Notifications.Emailing\LINGYUN.Abp.Notifications.Emailing.csproj", "{25891EE2-3166-420F-8408-E458030C4643}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.Common", "modules\realtime-notifications\LINGYUN.Abp.Notifications.Common\LINGYUN.Abp.Notifications.Common.csproj", "{F051C960-AA61-4283-A088-611C0B96C953}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.PushPlus.Tests", "tests\LINGYUN.Abp.PushPlus.Tests\LINGYUN.Abp.PushPlus.Tests.csproj", "{1435711B-D796-42AB-B567-0BB23F02EE08}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "wx-pusher", "wx-pusher", "{7862CE70-76EF-4228-A703-C2E2A9704D14}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WxPusher", "framework\wx-pusher\LINGYUN.Abp.WxPusher\LINGYUN.Abp.WxPusher.csproj", "{1A072FF5-1A7E-4F78-B145-1AB873AEB8FF}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WxPusher.Tests", "tests\LINGYUN.Abp.WxPusher.Tests\LINGYUN.Abp.WxPusher.Tests.csproj", "{88412E3D-21C8-4FF1-8EB3-84CB74094336}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.WxPusher", "framework\wx-pusher\LINGYUN.Abp.Identity.WxPusher\LINGYUN.Abp.Identity.WxPusher.csproj", "{30FA01ED-921A-4E7D-9E83-6719538FB866}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WxPusher.SettingManagement", "framework\wx-pusher\LINGYUN.Abp.WxPusher.SettingManagement\LINGYUN.Abp.WxPusher.SettingManagement.csproj", "{E6FDAD7B-4A7F-4CEB-9891-F8FC4E556C36}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.PushPlus.SettingManagement", "framework\pushplus\LINGYUN.Abp.PushPlus.SettingManagement\LINGYUN.Abp.PushPlus.SettingManagement.csproj", "{4CBB4A0C-6D23-44DD-BAF4-49D69ED35839}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.WxPusher.Tests", "tests\LINGYUN.Abp.Notifications.WxPusher.Tests\LINGYUN.Abp.Notifications.WxPusher.Tests.csproj", "{C2801414-550F-4A25-AD8D-68AC508211DC}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.Tests", "tests\LINGYUN.Abp.Notifications.Tests\LINGYUN.Abp.Notifications.Tests.csproj", "{868A1718-4970-48D2-A256-08EF468302D8}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.WeChat.MiniProgram.Tests", "tests\LINGYUN.Abp.Notifications.WeChat.MiniProgram.Tests\LINGYUN.Abp.Notifications.WeChat.MiniProgram.Tests.csproj", "{B78E53AC-6BB8-402D-90CF-BEF1BD9558EB}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.Core", "modules\realtime-notifications\LINGYUN.Abp.Notifications.Core\LINGYUN.Abp.Notifications.Core.csproj", "{AA039B4E-CE12-43AC-8340-3D52463E971E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Http.Client.Wrapper", "framework\common\LINGYUN.Abp.Http.Client.Wrapper\LINGYUN.Abp.Http.Client.Wrapper.csproj", "{2C5C57FB-70F5-4C20-92FC-39ACD260CEE3}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tui-juhe", "tui-juhe", "{A1C75C3E-67D1-4BCE-89BF-44A735909BD5}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TuiJuhe", "framework\tui-juhe\LINGYUN.Abp.TuiJuhe\LINGYUN.Abp.TuiJuhe.csproj", "{60143C9C-E539-498A-9DBE-B95E6A8301A5}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.TuiJuhe.Tests", "tests\LINGYUN.Abp.Notifications.TuiJuhe.Tests\LINGYUN.Abp.Notifications.TuiJuhe.Tests.csproj", "{641DF0BA-0E79-441D-B328-FDA288A35CDE}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TuiJuhe.Tests", "tests\LINGYUN.Abp.TuiJuhe.Tests\LINGYUN.Abp.TuiJuhe.Tests.csproj", "{2020EA8D-F276-498D-92D1-94D1E25F8E1A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TuiJuhe.SettingManagement", "framework\tui-juhe\LINGYUN.Abp.TuiJuhe.SettingManagement\LINGYUN.Abp.TuiJuhe.SettingManagement.csproj", "{2A3DF8B2-4760-41C4-9337-44FEE29B17CD}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dynamic-queryable", "dynamic-queryable", "{3975D028-3672-4D23-BF77-B7F4A445D44E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Linq.Dynamic.Queryable", "framework\dynamic-queryable\LINGYUN.Linq.Dynamic.Queryable\LINGYUN.Linq.Dynamic.Queryable.csproj", "{5512A359-80E8-440C-B652-7C96F614DD9E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dynamic.Queryable.Application.Contracts", "framework\dynamic-queryable\LINGYUN.Abp.Dynamic.Queryable.Application.Contracts\LINGYUN.Abp.Dynamic.Queryable.Application.Contracts.csproj", "{6A23EE81-0CA7-4CA7-859D-6ADB669DF0E1}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dynamic.Queryable.Application", "framework\dynamic-queryable\LINGYUN.Abp.Dynamic.Queryable.Application\LINGYUN.Abp.Dynamic.Queryable.Application.csproj", "{EC7970DC-A656-46A7-9873-A730FE72B213}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dynamic.Queryable.HttpApi", "framework\dynamic-queryable\LINGYUN.Abp.Dynamic.Queryable.HttpApi\LINGYUN.Abp.Dynamic.Queryable.HttpApi.csproj", "{F515E8FA-449F-4D54-98A7-0F7DF1AA3C94}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Linq.Dynamic.Queryable.Tests", "tests\LINGYUN.Linq.Dynamic.Queryable.Tests\LINGYUN.Linq.Dynamic.Queryable.Tests.csproj", "{E9AD81CA-D992-4F74-BD23-680CF98BE262}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.DynamicQueryable.EntityFrameworkCore.Tests", "tests\LINGYUN.Abp.DynamicQueryable.EntityFrameworkCore.Tests\LINGYUN.Abp.DynamicQueryable.EntityFrameworkCore.Tests.csproj", "{2E29FBF7-CECB-4DF9-9E02-5AFB704DDD10}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Localization.CultureMap", "framework\localization\LINGYUN.Abp.Localization.CultureMap\LINGYUN.Abp.Localization.CultureMap.csproj", "{1206B9FC-0177-4061-A06E-F82B2CC01ACE}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Localization.Persistence", "framework\localization\LINGYUN.Abp.Localization.Persistence\LINGYUN.Abp.Localization.Persistence.csproj", "{E097FAEC-5015-4159-BC00-A737483EFA80}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.Mvc.Localization", "framework\localization\LINGYUN.Abp.AspNetCore.Mvc.Localization\LINGYUN.Abp.AspNetCore.Mvc.Localization.csproj", "{809C86E9-0C70-41E4-B26D-D9AFF34F03D0}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tencent-cloud", "tencent-cloud", "{C12EEBC0-0407-4AEF-81C4-EDF5E22BB00E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Tencent", "framework\cloud-tencent\LINGYUN.Abp.Tencent\LINGYUN.Abp.Tencent.csproj", "{B6A5E070-3A2A-4F53-8391-0CA0C60B7701}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Sms.Tencent", "framework\cloud-tencent\LINGYUN.Abp.Sms.Tencent\LINGYUN.Abp.Sms.Tencent.csproj", "{33CBF722-B166-4B68-9CB3-1293F5C78EF5}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Tencent.QQ", "framework\cloud-tencent\LINGYUN.Abp.Tencent.QQ\LINGYUN.Abp.Tencent.QQ.csproj", "{4CEFE059-B30E-4121-AA12-10EC72709758}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BlobStoring.Tencent", "framework\cloud-tencent\LINGYUN.Abp.BlobStoring.Tencent\LINGYUN.Abp.BlobStoring.Tencent.csproj", "{C9EC8CCF-5CA7-4332-B7B7-FF9B094FA418}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Tencent.TTS", "framework\cloud-tencent\LINGYUN.Abp.Tencent.TTS\LINGYUN.Abp.Tencent.TTS.csproj", "{4059233C-C651-4DA2-A1BC-26196362062A}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{B8DA7627-E691-400A-AE4D-0E151A6EA0F8}"
- ProjectSection(SolutionItems) = preProject
- ..\common.props = ..\common.props
- ..\common.secrets.props = ..\common.secrets.props
- ..\configureawait.props = ..\configureawait.props
- ..\Directory.Build.props = ..\Directory.Build.props
- ..\Directory.Packages.props = ..\Directory.Packages.props
- EndProjectSection
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.Mvc.Idempotent", "framework\mvc\LINGYUN.Abp.AspNetCore.Mvc.Idempotent\LINGYUN.Abp.AspNetCore.Mvc.Idempotent.csproj", "{347413DD-1B30-46B5-87A0-828A11FAA87D}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Idempotent", "framework\common\LINGYUN.Abp.Idempotent\LINGYUN.Abp.Idempotent.csproj", "{13FCEB03-E300-4CE2-A789-78D9F41C903E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.Mvc.Idempotent.Wrapper", "framework\mvc\LINGYUN.Abp.AspNetCore.Mvc.Idempotent.Wrapper\LINGYUN.Abp.AspNetCore.Mvc.Idempotent.Wrapper.csproj", "{8B15AAB5-18BB-4A2E-86F1-4A2F04C9FAFF}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.TuiJuhe", "modules\realtime-notifications\LINGYUN.Abp.Notifications.TuiJuhe\LINGYUN.Abp.Notifications.TuiJuhe.csproj", "{57FCECAF-11F0-46C8-A74B-55C7AE76E8FE}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.WxPusher", "modules\realtime-notifications\LINGYUN.Abp.Notifications.WxPusher\LINGYUN.Abp.Notifications.WxPusher.csproj", "{7433B116-806E-4500-8FF8-6143C4140BFD}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.WeChat.MiniProgram", "modules\realtime-notifications\LINGYUN.Abp.Notifications.WeChat.MiniProgram\LINGYUN.Abp.Notifications.WeChat.MiniProgram.csproj", "{2C01C5C9-F762-4455-AD66-810BEFEE67B5}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5A87E9DD-3340-44DC-9564-4D8832A0228E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5A87E9DD-3340-44DC-9564-4D8832A0228E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5A87E9DD-3340-44DC-9564-4D8832A0228E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5A87E9DD-3340-44DC-9564-4D8832A0228E}.Release|Any CPU.Build.0 = Release|Any CPU
- {E9BE3C65-2AB2-4CE8-8EB9-5C91B329ADB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E9BE3C65-2AB2-4CE8-8EB9-5C91B329ADB4}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E9BE3C65-2AB2-4CE8-8EB9-5C91B329ADB4}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E9BE3C65-2AB2-4CE8-8EB9-5C91B329ADB4}.Release|Any CPU.Build.0 = Release|Any CPU
- {E9AEC9D6-1FE7-4B00-BAC5-2C3D4B63CCA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E9AEC9D6-1FE7-4B00-BAC5-2C3D4B63CCA2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E9AEC9D6-1FE7-4B00-BAC5-2C3D4B63CCA2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E9AEC9D6-1FE7-4B00-BAC5-2C3D4B63CCA2}.Release|Any CPU.Build.0 = Release|Any CPU
- {304D06E6-41EC-4DCB-AEAE-DBEEC75F9ADC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {304D06E6-41EC-4DCB-AEAE-DBEEC75F9ADC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {304D06E6-41EC-4DCB-AEAE-DBEEC75F9ADC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {304D06E6-41EC-4DCB-AEAE-DBEEC75F9ADC}.Release|Any CPU.Build.0 = Release|Any CPU
- {492710E6-EEF5-4390-A474-8FB2412ECBE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {492710E6-EEF5-4390-A474-8FB2412ECBE5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {492710E6-EEF5-4390-A474-8FB2412ECBE5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {492710E6-EEF5-4390-A474-8FB2412ECBE5}.Release|Any CPU.Build.0 = Release|Any CPU
- {CCF1EB86-29BD-4531-BB27-C9111CC67570}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CCF1EB86-29BD-4531-BB27-C9111CC67570}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CCF1EB86-29BD-4531-BB27-C9111CC67570}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CCF1EB86-29BD-4531-BB27-C9111CC67570}.Release|Any CPU.Build.0 = Release|Any CPU
- {7947D559-4288-486B-8FB3-D957CC7EDD32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7947D559-4288-486B-8FB3-D957CC7EDD32}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7947D559-4288-486B-8FB3-D957CC7EDD32}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7947D559-4288-486B-8FB3-D957CC7EDD32}.Release|Any CPU.Build.0 = Release|Any CPU
- {A4195E41-3919-4C3E-8768-7F277B583D16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A4195E41-3919-4C3E-8768-7F277B583D16}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A4195E41-3919-4C3E-8768-7F277B583D16}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A4195E41-3919-4C3E-8768-7F277B583D16}.Release|Any CPU.Build.0 = Release|Any CPU
- {60083380-062C-4914-9E4E-5AE6637CCC3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {60083380-062C-4914-9E4E-5AE6637CCC3F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {60083380-062C-4914-9E4E-5AE6637CCC3F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {60083380-062C-4914-9E4E-5AE6637CCC3F}.Release|Any CPU.Build.0 = Release|Any CPU
- {9C6E9EE2-5C83-4D96-A7B7-32798FEF2845}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9C6E9EE2-5C83-4D96-A7B7-32798FEF2845}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9C6E9EE2-5C83-4D96-A7B7-32798FEF2845}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9C6E9EE2-5C83-4D96-A7B7-32798FEF2845}.Release|Any CPU.Build.0 = Release|Any CPU
- {34C1E979-65B9-46F5-B7BA-60F227EBA093}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {34C1E979-65B9-46F5-B7BA-60F227EBA093}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {34C1E979-65B9-46F5-B7BA-60F227EBA093}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {34C1E979-65B9-46F5-B7BA-60F227EBA093}.Release|Any CPU.Build.0 = Release|Any CPU
- {80A56461-0ACC-4069-B571-87DCA064B2EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {80A56461-0ACC-4069-B571-87DCA064B2EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {80A56461-0ACC-4069-B571-87DCA064B2EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {80A56461-0ACC-4069-B571-87DCA064B2EF}.Release|Any CPU.Build.0 = Release|Any CPU
- {568D2C50-1C31-4C31-89A2-C608FA93C6FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {568D2C50-1C31-4C31-89A2-C608FA93C6FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {568D2C50-1C31-4C31-89A2-C608FA93C6FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {568D2C50-1C31-4C31-89A2-C608FA93C6FD}.Release|Any CPU.Build.0 = Release|Any CPU
- {12451B83-18DE-4E93-B98C-509477D53D5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {12451B83-18DE-4E93-B98C-509477D53D5E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {12451B83-18DE-4E93-B98C-509477D53D5E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {12451B83-18DE-4E93-B98C-509477D53D5E}.Release|Any CPU.Build.0 = Release|Any CPU
- {AAD0B6A7-847A-4537-A300-50E37F4B70CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AAD0B6A7-847A-4537-A300-50E37F4B70CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AAD0B6A7-847A-4537-A300-50E37F4B70CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AAD0B6A7-847A-4537-A300-50E37F4B70CC}.Release|Any CPU.Build.0 = Release|Any CPU
- {5B5C2372-2EAB-4559-BBCB-0C1C9A7158DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5B5C2372-2EAB-4559-BBCB-0C1C9A7158DB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5B5C2372-2EAB-4559-BBCB-0C1C9A7158DB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5B5C2372-2EAB-4559-BBCB-0C1C9A7158DB}.Release|Any CPU.Build.0 = Release|Any CPU
- {2A0C5EF1-CB21-4656-8C32-B5673F6B82D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2A0C5EF1-CB21-4656-8C32-B5673F6B82D2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2A0C5EF1-CB21-4656-8C32-B5673F6B82D2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2A0C5EF1-CB21-4656-8C32-B5673F6B82D2}.Release|Any CPU.Build.0 = Release|Any CPU
- {3021DD8B-EA8F-4A88-BC2C-1BBEDC6255FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3021DD8B-EA8F-4A88-BC2C-1BBEDC6255FE}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3021DD8B-EA8F-4A88-BC2C-1BBEDC6255FE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3021DD8B-EA8F-4A88-BC2C-1BBEDC6255FE}.Release|Any CPU.Build.0 = Release|Any CPU
- {B31CEE79-45F6-4BB9-9EEB-08843C324B37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B31CEE79-45F6-4BB9-9EEB-08843C324B37}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B31CEE79-45F6-4BB9-9EEB-08843C324B37}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B31CEE79-45F6-4BB9-9EEB-08843C324B37}.Release|Any CPU.Build.0 = Release|Any CPU
- {865D5508-63CD-4D44-9F5B-AE5CD4A43D08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {865D5508-63CD-4D44-9F5B-AE5CD4A43D08}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {865D5508-63CD-4D44-9F5B-AE5CD4A43D08}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {865D5508-63CD-4D44-9F5B-AE5CD4A43D08}.Release|Any CPU.Build.0 = Release|Any CPU
- {ECAA4B82-A240-4747-888C-FACD8634D389}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {ECAA4B82-A240-4747-888C-FACD8634D389}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {ECAA4B82-A240-4747-888C-FACD8634D389}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {ECAA4B82-A240-4747-888C-FACD8634D389}.Release|Any CPU.Build.0 = Release|Any CPU
- {8AF8FD6B-634F-41FA-B421-A4ACFD159FE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8AF8FD6B-634F-41FA-B421-A4ACFD159FE0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8AF8FD6B-634F-41FA-B421-A4ACFD159FE0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8AF8FD6B-634F-41FA-B421-A4ACFD159FE0}.Release|Any CPU.Build.0 = Release|Any CPU
- {3B455AA7-B165-4EA0-8870-DB8DA5C76FC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3B455AA7-B165-4EA0-8870-DB8DA5C76FC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3B455AA7-B165-4EA0-8870-DB8DA5C76FC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3B455AA7-B165-4EA0-8870-DB8DA5C76FC5}.Release|Any CPU.Build.0 = Release|Any CPU
- {99F8F254-A76E-43BB-8048-CC17EE1C8527}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {99F8F254-A76E-43BB-8048-CC17EE1C8527}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {99F8F254-A76E-43BB-8048-CC17EE1C8527}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {99F8F254-A76E-43BB-8048-CC17EE1C8527}.Release|Any CPU.Build.0 = Release|Any CPU
- {15FC0C39-A604-491F-91F6-BD44167FC5F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {15FC0C39-A604-491F-91F6-BD44167FC5F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {15FC0C39-A604-491F-91F6-BD44167FC5F6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {15FC0C39-A604-491F-91F6-BD44167FC5F6}.Release|Any CPU.Build.0 = Release|Any CPU
- {9E59B1DB-E0D5-485D-BDA0-B6C31E1358A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9E59B1DB-E0D5-485D-BDA0-B6C31E1358A8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9E59B1DB-E0D5-485D-BDA0-B6C31E1358A8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9E59B1DB-E0D5-485D-BDA0-B6C31E1358A8}.Release|Any CPU.Build.0 = Release|Any CPU
- {16942653-B746-4917-B3BF-464C99F8832F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {16942653-B746-4917-B3BF-464C99F8832F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {16942653-B746-4917-B3BF-464C99F8832F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {16942653-B746-4917-B3BF-464C99F8832F}.Release|Any CPU.Build.0 = Release|Any CPU
- {D0717513-2CEE-4AD5-A1DA-A08EA5DE6DD6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D0717513-2CEE-4AD5-A1DA-A08EA5DE6DD6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D0717513-2CEE-4AD5-A1DA-A08EA5DE6DD6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D0717513-2CEE-4AD5-A1DA-A08EA5DE6DD6}.Release|Any CPU.Build.0 = Release|Any CPU
- {A7A28D6C-6EDB-4615-8899-7DE1D435B750}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A7A28D6C-6EDB-4615-8899-7DE1D435B750}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A7A28D6C-6EDB-4615-8899-7DE1D435B750}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A7A28D6C-6EDB-4615-8899-7DE1D435B750}.Release|Any CPU.Build.0 = Release|Any CPU
- {17A8455F-D413-4664-AEFA-1ECAE9ED4B19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {17A8455F-D413-4664-AEFA-1ECAE9ED4B19}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {17A8455F-D413-4664-AEFA-1ECAE9ED4B19}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {17A8455F-D413-4664-AEFA-1ECAE9ED4B19}.Release|Any CPU.Build.0 = Release|Any CPU
- {3BAA3D38-96C2-4C4C-B790-AE2997BFDE25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3BAA3D38-96C2-4C4C-B790-AE2997BFDE25}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3BAA3D38-96C2-4C4C-B790-AE2997BFDE25}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3BAA3D38-96C2-4C4C-B790-AE2997BFDE25}.Release|Any CPU.Build.0 = Release|Any CPU
- {2E35CB93-2E9C-4EE1-845F-72A40271648E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2E35CB93-2E9C-4EE1-845F-72A40271648E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2E35CB93-2E9C-4EE1-845F-72A40271648E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2E35CB93-2E9C-4EE1-845F-72A40271648E}.Release|Any CPU.Build.0 = Release|Any CPU
- {8FB74B18-CA5C-4DC3-8DFA-600133A05712}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8FB74B18-CA5C-4DC3-8DFA-600133A05712}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8FB74B18-CA5C-4DC3-8DFA-600133A05712}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8FB74B18-CA5C-4DC3-8DFA-600133A05712}.Release|Any CPU.Build.0 = Release|Any CPU
- {3DBF0975-B09D-49CA-9AF8-69175EDB9D52}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3DBF0975-B09D-49CA-9AF8-69175EDB9D52}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3DBF0975-B09D-49CA-9AF8-69175EDB9D52}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3DBF0975-B09D-49CA-9AF8-69175EDB9D52}.Release|Any CPU.Build.0 = Release|Any CPU
- {93DD5A05-B67A-4E11-BB56-F6B4E7F1489C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {93DD5A05-B67A-4E11-BB56-F6B4E7F1489C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {93DD5A05-B67A-4E11-BB56-F6B4E7F1489C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {93DD5A05-B67A-4E11-BB56-F6B4E7F1489C}.Release|Any CPU.Build.0 = Release|Any CPU
- {221725FF-6C01-4F41-9F29-AC04C7D52611}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {221725FF-6C01-4F41-9F29-AC04C7D52611}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {221725FF-6C01-4F41-9F29-AC04C7D52611}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {221725FF-6C01-4F41-9F29-AC04C7D52611}.Release|Any CPU.Build.0 = Release|Any CPU
- {1B494EA1-28CF-4A61-B0BE-70BBA425C316}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1B494EA1-28CF-4A61-B0BE-70BBA425C316}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1B494EA1-28CF-4A61-B0BE-70BBA425C316}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1B494EA1-28CF-4A61-B0BE-70BBA425C316}.Release|Any CPU.Build.0 = Release|Any CPU
- {7F767ACF-754A-4EBC-8936-3C1402B6EF82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7F767ACF-754A-4EBC-8936-3C1402B6EF82}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7F767ACF-754A-4EBC-8936-3C1402B6EF82}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7F767ACF-754A-4EBC-8936-3C1402B6EF82}.Release|Any CPU.Build.0 = Release|Any CPU
- {8CC72F4E-F134-4A43-9037-5D4D1F29B68A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8CC72F4E-F134-4A43-9037-5D4D1F29B68A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8CC72F4E-F134-4A43-9037-5D4D1F29B68A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8CC72F4E-F134-4A43-9037-5D4D1F29B68A}.Release|Any CPU.Build.0 = Release|Any CPU
- {94FEA59E-3B6D-41A0-9E44-BA5D6477244F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {94FEA59E-3B6D-41A0-9E44-BA5D6477244F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {94FEA59E-3B6D-41A0-9E44-BA5D6477244F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {94FEA59E-3B6D-41A0-9E44-BA5D6477244F}.Release|Any CPU.Build.0 = Release|Any CPU
- {C72E0407-06FE-4CAA-86E5-30FF216A7B82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C72E0407-06FE-4CAA-86E5-30FF216A7B82}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C72E0407-06FE-4CAA-86E5-30FF216A7B82}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C72E0407-06FE-4CAA-86E5-30FF216A7B82}.Release|Any CPU.Build.0 = Release|Any CPU
- {E74FF671-6E5E-430C-9211-ED910634DDBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E74FF671-6E5E-430C-9211-ED910634DDBE}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E74FF671-6E5E-430C-9211-ED910634DDBE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E74FF671-6E5E-430C-9211-ED910634DDBE}.Release|Any CPU.Build.0 = Release|Any CPU
- {879791A3-BD69-42E4-A3BC-9878EFAADDD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {879791A3-BD69-42E4-A3BC-9878EFAADDD1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {879791A3-BD69-42E4-A3BC-9878EFAADDD1}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {879791A3-BD69-42E4-A3BC-9878EFAADDD1}.Release|Any CPU.Build.0 = Release|Any CPU
- {5133D83C-9B23-491C-8780-3F9BBDBD0351}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5133D83C-9B23-491C-8780-3F9BBDBD0351}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5133D83C-9B23-491C-8780-3F9BBDBD0351}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5133D83C-9B23-491C-8780-3F9BBDBD0351}.Release|Any CPU.Build.0 = Release|Any CPU
- {B8E5026B-188F-422F-A1EA-502C4A394585}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B8E5026B-188F-422F-A1EA-502C4A394585}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B8E5026B-188F-422F-A1EA-502C4A394585}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B8E5026B-188F-422F-A1EA-502C4A394585}.Release|Any CPU.Build.0 = Release|Any CPU
- {E861BE01-689D-4637-A5DC-E78E234F83FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E861BE01-689D-4637-A5DC-E78E234F83FB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E861BE01-689D-4637-A5DC-E78E234F83FB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E861BE01-689D-4637-A5DC-E78E234F83FB}.Release|Any CPU.Build.0 = Release|Any CPU
- {CF253F0A-3A45-40EE-875F-0E57C8968C48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CF253F0A-3A45-40EE-875F-0E57C8968C48}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CF253F0A-3A45-40EE-875F-0E57C8968C48}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CF253F0A-3A45-40EE-875F-0E57C8968C48}.Release|Any CPU.Build.0 = Release|Any CPU
- {EF03A0A7-A93E-4DEF-A33E-F5A82E995FBF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EF03A0A7-A93E-4DEF-A33E-F5A82E995FBF}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EF03A0A7-A93E-4DEF-A33E-F5A82E995FBF}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EF03A0A7-A93E-4DEF-A33E-F5A82E995FBF}.Release|Any CPU.Build.0 = Release|Any CPU
- {9403FC1F-9677-489F-A03A-0B456153EE86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9403FC1F-9677-489F-A03A-0B456153EE86}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9403FC1F-9677-489F-A03A-0B456153EE86}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9403FC1F-9677-489F-A03A-0B456153EE86}.Release|Any CPU.Build.0 = Release|Any CPU
- {26E87199-F0AD-4B30-B0E4-080B12E6F8FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {26E87199-F0AD-4B30-B0E4-080B12E6F8FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {26E87199-F0AD-4B30-B0E4-080B12E6F8FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {26E87199-F0AD-4B30-B0E4-080B12E6F8FC}.Release|Any CPU.Build.0 = Release|Any CPU
- {8968EDAF-9F5C-4786-AF2A-D3928B70C3EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8968EDAF-9F5C-4786-AF2A-D3928B70C3EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8968EDAF-9F5C-4786-AF2A-D3928B70C3EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8968EDAF-9F5C-4786-AF2A-D3928B70C3EC}.Release|Any CPU.Build.0 = Release|Any CPU
- {CF30221B-CA7A-42CD-B91A-B7224AB2F38B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CF30221B-CA7A-42CD-B91A-B7224AB2F38B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CF30221B-CA7A-42CD-B91A-B7224AB2F38B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CF30221B-CA7A-42CD-B91A-B7224AB2F38B}.Release|Any CPU.Build.0 = Release|Any CPU
- {191BB108-546E-4E70-978E-D6A8149C319C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {191BB108-546E-4E70-978E-D6A8149C319C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {191BB108-546E-4E70-978E-D6A8149C319C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {191BB108-546E-4E70-978E-D6A8149C319C}.Release|Any CPU.Build.0 = Release|Any CPU
- {DEB98AD7-9630-4F32-89E6-C1A118D1D18C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {DEB98AD7-9630-4F32-89E6-C1A118D1D18C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {DEB98AD7-9630-4F32-89E6-C1A118D1D18C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {DEB98AD7-9630-4F32-89E6-C1A118D1D18C}.Release|Any CPU.Build.0 = Release|Any CPU
- {00F1D30E-A6F6-464F-A80B-D423CFAA79A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {00F1D30E-A6F6-464F-A80B-D423CFAA79A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {00F1D30E-A6F6-464F-A80B-D423CFAA79A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {00F1D30E-A6F6-464F-A80B-D423CFAA79A3}.Release|Any CPU.Build.0 = Release|Any CPU
- {2584D823-53A7-4184-8295-719A41E5B440}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2584D823-53A7-4184-8295-719A41E5B440}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2584D823-53A7-4184-8295-719A41E5B440}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2584D823-53A7-4184-8295-719A41E5B440}.Release|Any CPU.Build.0 = Release|Any CPU
- {C1A91534-E84F-4A98-9A78-135988030646}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C1A91534-E84F-4A98-9A78-135988030646}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C1A91534-E84F-4A98-9A78-135988030646}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C1A91534-E84F-4A98-9A78-135988030646}.Release|Any CPU.Build.0 = Release|Any CPU
- {0CC508D7-480C-4409-842A-A6C10E11ACFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0CC508D7-480C-4409-842A-A6C10E11ACFD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0CC508D7-480C-4409-842A-A6C10E11ACFD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0CC508D7-480C-4409-842A-A6C10E11ACFD}.Release|Any CPU.Build.0 = Release|Any CPU
- {F8330A1E-6CC3-4E90-8B5C-DCD8FA00CF5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F8330A1E-6CC3-4E90-8B5C-DCD8FA00CF5C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F8330A1E-6CC3-4E90-8B5C-DCD8FA00CF5C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F8330A1E-6CC3-4E90-8B5C-DCD8FA00CF5C}.Release|Any CPU.Build.0 = Release|Any CPU
- {CE7E525F-8628-4076-8A2E-B615B944D140}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CE7E525F-8628-4076-8A2E-B615B944D140}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CE7E525F-8628-4076-8A2E-B615B944D140}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CE7E525F-8628-4076-8A2E-B615B944D140}.Release|Any CPU.Build.0 = Release|Any CPU
- {CD556F2A-A96B-43A2-8BB3-6C0EBA27EB02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CD556F2A-A96B-43A2-8BB3-6C0EBA27EB02}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CD556F2A-A96B-43A2-8BB3-6C0EBA27EB02}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CD556F2A-A96B-43A2-8BB3-6C0EBA27EB02}.Release|Any CPU.Build.0 = Release|Any CPU
- {CCB4AE25-7059-4CA0-A3AB-CBB863A3F672}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CCB4AE25-7059-4CA0-A3AB-CBB863A3F672}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CCB4AE25-7059-4CA0-A3AB-CBB863A3F672}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CCB4AE25-7059-4CA0-A3AB-CBB863A3F672}.Release|Any CPU.Build.0 = Release|Any CPU
- {3993A315-B250-4C5D-98C7-90FD06841B66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3993A315-B250-4C5D-98C7-90FD06841B66}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3993A315-B250-4C5D-98C7-90FD06841B66}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3993A315-B250-4C5D-98C7-90FD06841B66}.Release|Any CPU.Build.0 = Release|Any CPU
- {519BF5DA-30E4-40CF-829A-93F526E2AED8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {519BF5DA-30E4-40CF-829A-93F526E2AED8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {519BF5DA-30E4-40CF-829A-93F526E2AED8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {519BF5DA-30E4-40CF-829A-93F526E2AED8}.Release|Any CPU.Build.0 = Release|Any CPU
- {E16CCB14-E629-48E6-9603-53BBFF185318}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E16CCB14-E629-48E6-9603-53BBFF185318}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E16CCB14-E629-48E6-9603-53BBFF185318}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E16CCB14-E629-48E6-9603-53BBFF185318}.Release|Any CPU.Build.0 = Release|Any CPU
- {FBE7D8CB-1D99-4342-A953-B9AB46E0B14D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FBE7D8CB-1D99-4342-A953-B9AB46E0B14D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FBE7D8CB-1D99-4342-A953-B9AB46E0B14D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FBE7D8CB-1D99-4342-A953-B9AB46E0B14D}.Release|Any CPU.Build.0 = Release|Any CPU
- {2F556889-006C-4A9C-8CA3-E31200C06FC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2F556889-006C-4A9C-8CA3-E31200C06FC9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2F556889-006C-4A9C-8CA3-E31200C06FC9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2F556889-006C-4A9C-8CA3-E31200C06FC9}.Release|Any CPU.Build.0 = Release|Any CPU
- {73C9A7E7-846D-49E2-B223-E705D6C48BE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {73C9A7E7-846D-49E2-B223-E705D6C48BE7}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {73C9A7E7-846D-49E2-B223-E705D6C48BE7}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {73C9A7E7-846D-49E2-B223-E705D6C48BE7}.Release|Any CPU.Build.0 = Release|Any CPU
- {328B0863-23BE-43FD-98DD-FF0C92D5BEF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {328B0863-23BE-43FD-98DD-FF0C92D5BEF0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {328B0863-23BE-43FD-98DD-FF0C92D5BEF0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {328B0863-23BE-43FD-98DD-FF0C92D5BEF0}.Release|Any CPU.Build.0 = Release|Any CPU
- {D72748AF-2CC8-4B5B-9710-ECDE5D812D7F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D72748AF-2CC8-4B5B-9710-ECDE5D812D7F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D72748AF-2CC8-4B5B-9710-ECDE5D812D7F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D72748AF-2CC8-4B5B-9710-ECDE5D812D7F}.Release|Any CPU.Build.0 = Release|Any CPU
- {BD4165DB-F8A4-4715-A05A-CC08F6A18D67}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BD4165DB-F8A4-4715-A05A-CC08F6A18D67}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BD4165DB-F8A4-4715-A05A-CC08F6A18D67}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BD4165DB-F8A4-4715-A05A-CC08F6A18D67}.Release|Any CPU.Build.0 = Release|Any CPU
- {AE5E6DE8-FC02-4633-BA49-C4B8ABADB502}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AE5E6DE8-FC02-4633-BA49-C4B8ABADB502}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AE5E6DE8-FC02-4633-BA49-C4B8ABADB502}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AE5E6DE8-FC02-4633-BA49-C4B8ABADB502}.Release|Any CPU.Build.0 = Release|Any CPU
- {31AED9ED-29BD-4F2F-8D3A-F00CBB9FC73C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {31AED9ED-29BD-4F2F-8D3A-F00CBB9FC73C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {31AED9ED-29BD-4F2F-8D3A-F00CBB9FC73C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {31AED9ED-29BD-4F2F-8D3A-F00CBB9FC73C}.Release|Any CPU.Build.0 = Release|Any CPU
- {2C8A6B4C-D6B2-44FE-9EF5-EC7480D2A6B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2C8A6B4C-D6B2-44FE-9EF5-EC7480D2A6B2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2C8A6B4C-D6B2-44FE-9EF5-EC7480D2A6B2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2C8A6B4C-D6B2-44FE-9EF5-EC7480D2A6B2}.Release|Any CPU.Build.0 = Release|Any CPU
- {3CE350AF-5574-46EC-8120-8542350AED20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3CE350AF-5574-46EC-8120-8542350AED20}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3CE350AF-5574-46EC-8120-8542350AED20}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3CE350AF-5574-46EC-8120-8542350AED20}.Release|Any CPU.Build.0 = Release|Any CPU
- {33007EF7-BC1D-4B32-ACDA-6B9117200FAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {33007EF7-BC1D-4B32-ACDA-6B9117200FAD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {33007EF7-BC1D-4B32-ACDA-6B9117200FAD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {33007EF7-BC1D-4B32-ACDA-6B9117200FAD}.Release|Any CPU.Build.0 = Release|Any CPU
- {B9592989-9F76-413C-8612-96E8C0CFA041}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B9592989-9F76-413C-8612-96E8C0CFA041}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B9592989-9F76-413C-8612-96E8C0CFA041}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B9592989-9F76-413C-8612-96E8C0CFA041}.Release|Any CPU.Build.0 = Release|Any CPU
- {7EDBCC52-3089-49F6-A56A-650850C9797E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7EDBCC52-3089-49F6-A56A-650850C9797E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7EDBCC52-3089-49F6-A56A-650850C9797E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7EDBCC52-3089-49F6-A56A-650850C9797E}.Release|Any CPU.Build.0 = Release|Any CPU
- {FF518E10-C9AB-440C-8E8D-9CFF67A926AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FF518E10-C9AB-440C-8E8D-9CFF67A926AC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FF518E10-C9AB-440C-8E8D-9CFF67A926AC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FF518E10-C9AB-440C-8E8D-9CFF67A926AC}.Release|Any CPU.Build.0 = Release|Any CPU
- {49E0B90B-8635-43D0-B0AB-9D484CAE68B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {49E0B90B-8635-43D0-B0AB-9D484CAE68B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {49E0B90B-8635-43D0-B0AB-9D484CAE68B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {49E0B90B-8635-43D0-B0AB-9D484CAE68B5}.Release|Any CPU.Build.0 = Release|Any CPU
- {3FF4CEA0-1555-4D62-AA81-B3B599253F8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3FF4CEA0-1555-4D62-AA81-B3B599253F8D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3FF4CEA0-1555-4D62-AA81-B3B599253F8D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3FF4CEA0-1555-4D62-AA81-B3B599253F8D}.Release|Any CPU.Build.0 = Release|Any CPU
- {AFE75D2B-8853-488B-B5D5-277B58C5DBB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AFE75D2B-8853-488B-B5D5-277B58C5DBB2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AFE75D2B-8853-488B-B5D5-277B58C5DBB2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AFE75D2B-8853-488B-B5D5-277B58C5DBB2}.Release|Any CPU.Build.0 = Release|Any CPU
- {D9339CBB-45B9-4701-B2AC-2A75FF20D77B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D9339CBB-45B9-4701-B2AC-2A75FF20D77B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D9339CBB-45B9-4701-B2AC-2A75FF20D77B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D9339CBB-45B9-4701-B2AC-2A75FF20D77B}.Release|Any CPU.Build.0 = Release|Any CPU
- {474AA48F-65F9-436B-A0B1-1E95BD16CA8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {474AA48F-65F9-436B-A0B1-1E95BD16CA8D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {474AA48F-65F9-436B-A0B1-1E95BD16CA8D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {474AA48F-65F9-436B-A0B1-1E95BD16CA8D}.Release|Any CPU.Build.0 = Release|Any CPU
- {C71F6273-BCDE-4A63-A0CF-EAFD1D924DA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C71F6273-BCDE-4A63-A0CF-EAFD1D924DA0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C71F6273-BCDE-4A63-A0CF-EAFD1D924DA0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C71F6273-BCDE-4A63-A0CF-EAFD1D924DA0}.Release|Any CPU.Build.0 = Release|Any CPU
- {5515C7CA-B512-4E36-A202-49A0158A0E74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5515C7CA-B512-4E36-A202-49A0158A0E74}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5515C7CA-B512-4E36-A202-49A0158A0E74}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5515C7CA-B512-4E36-A202-49A0158A0E74}.Release|Any CPU.Build.0 = Release|Any CPU
- {EBA67EAD-4958-46E3-9E0C-8186394D083F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EBA67EAD-4958-46E3-9E0C-8186394D083F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EBA67EAD-4958-46E3-9E0C-8186394D083F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EBA67EAD-4958-46E3-9E0C-8186394D083F}.Release|Any CPU.Build.0 = Release|Any CPU
- {25891EE2-3166-420F-8408-E458030C4643}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {25891EE2-3166-420F-8408-E458030C4643}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {25891EE2-3166-420F-8408-E458030C4643}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {25891EE2-3166-420F-8408-E458030C4643}.Release|Any CPU.Build.0 = Release|Any CPU
- {F051C960-AA61-4283-A088-611C0B96C953}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F051C960-AA61-4283-A088-611C0B96C953}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F051C960-AA61-4283-A088-611C0B96C953}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F051C960-AA61-4283-A088-611C0B96C953}.Release|Any CPU.Build.0 = Release|Any CPU
- {1435711B-D796-42AB-B567-0BB23F02EE08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1435711B-D796-42AB-B567-0BB23F02EE08}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1435711B-D796-42AB-B567-0BB23F02EE08}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1435711B-D796-42AB-B567-0BB23F02EE08}.Release|Any CPU.Build.0 = Release|Any CPU
- {1A072FF5-1A7E-4F78-B145-1AB873AEB8FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1A072FF5-1A7E-4F78-B145-1AB873AEB8FF}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1A072FF5-1A7E-4F78-B145-1AB873AEB8FF}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1A072FF5-1A7E-4F78-B145-1AB873AEB8FF}.Release|Any CPU.Build.0 = Release|Any CPU
- {88412E3D-21C8-4FF1-8EB3-84CB74094336}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {88412E3D-21C8-4FF1-8EB3-84CB74094336}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {88412E3D-21C8-4FF1-8EB3-84CB74094336}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {88412E3D-21C8-4FF1-8EB3-84CB74094336}.Release|Any CPU.Build.0 = Release|Any CPU
- {30FA01ED-921A-4E7D-9E83-6719538FB866}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {30FA01ED-921A-4E7D-9E83-6719538FB866}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {30FA01ED-921A-4E7D-9E83-6719538FB866}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {30FA01ED-921A-4E7D-9E83-6719538FB866}.Release|Any CPU.Build.0 = Release|Any CPU
- {E6FDAD7B-4A7F-4CEB-9891-F8FC4E556C36}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E6FDAD7B-4A7F-4CEB-9891-F8FC4E556C36}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E6FDAD7B-4A7F-4CEB-9891-F8FC4E556C36}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E6FDAD7B-4A7F-4CEB-9891-F8FC4E556C36}.Release|Any CPU.Build.0 = Release|Any CPU
- {4CBB4A0C-6D23-44DD-BAF4-49D69ED35839}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4CBB4A0C-6D23-44DD-BAF4-49D69ED35839}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4CBB4A0C-6D23-44DD-BAF4-49D69ED35839}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4CBB4A0C-6D23-44DD-BAF4-49D69ED35839}.Release|Any CPU.Build.0 = Release|Any CPU
- {C2801414-550F-4A25-AD8D-68AC508211DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C2801414-550F-4A25-AD8D-68AC508211DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C2801414-550F-4A25-AD8D-68AC508211DC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C2801414-550F-4A25-AD8D-68AC508211DC}.Release|Any CPU.Build.0 = Release|Any CPU
- {868A1718-4970-48D2-A256-08EF468302D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {868A1718-4970-48D2-A256-08EF468302D8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {868A1718-4970-48D2-A256-08EF468302D8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {868A1718-4970-48D2-A256-08EF468302D8}.Release|Any CPU.Build.0 = Release|Any CPU
- {B78E53AC-6BB8-402D-90CF-BEF1BD9558EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B78E53AC-6BB8-402D-90CF-BEF1BD9558EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B78E53AC-6BB8-402D-90CF-BEF1BD9558EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B78E53AC-6BB8-402D-90CF-BEF1BD9558EB}.Release|Any CPU.Build.0 = Release|Any CPU
- {AA039B4E-CE12-43AC-8340-3D52463E971E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AA039B4E-CE12-43AC-8340-3D52463E971E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AA039B4E-CE12-43AC-8340-3D52463E971E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AA039B4E-CE12-43AC-8340-3D52463E971E}.Release|Any CPU.Build.0 = Release|Any CPU
- {2C5C57FB-70F5-4C20-92FC-39ACD260CEE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2C5C57FB-70F5-4C20-92FC-39ACD260CEE3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2C5C57FB-70F5-4C20-92FC-39ACD260CEE3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2C5C57FB-70F5-4C20-92FC-39ACD260CEE3}.Release|Any CPU.Build.0 = Release|Any CPU
- {60143C9C-E539-498A-9DBE-B95E6A8301A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {60143C9C-E539-498A-9DBE-B95E6A8301A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {60143C9C-E539-498A-9DBE-B95E6A8301A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {60143C9C-E539-498A-9DBE-B95E6A8301A5}.Release|Any CPU.Build.0 = Release|Any CPU
- {641DF0BA-0E79-441D-B328-FDA288A35CDE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {641DF0BA-0E79-441D-B328-FDA288A35CDE}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {641DF0BA-0E79-441D-B328-FDA288A35CDE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {641DF0BA-0E79-441D-B328-FDA288A35CDE}.Release|Any CPU.Build.0 = Release|Any CPU
- {2020EA8D-F276-498D-92D1-94D1E25F8E1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2020EA8D-F276-498D-92D1-94D1E25F8E1A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2020EA8D-F276-498D-92D1-94D1E25F8E1A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2020EA8D-F276-498D-92D1-94D1E25F8E1A}.Release|Any CPU.Build.0 = Release|Any CPU
- {2A3DF8B2-4760-41C4-9337-44FEE29B17CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2A3DF8B2-4760-41C4-9337-44FEE29B17CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2A3DF8B2-4760-41C4-9337-44FEE29B17CD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2A3DF8B2-4760-41C4-9337-44FEE29B17CD}.Release|Any CPU.Build.0 = Release|Any CPU
- {5512A359-80E8-440C-B652-7C96F614DD9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5512A359-80E8-440C-B652-7C96F614DD9E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5512A359-80E8-440C-B652-7C96F614DD9E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5512A359-80E8-440C-B652-7C96F614DD9E}.Release|Any CPU.Build.0 = Release|Any CPU
- {6A23EE81-0CA7-4CA7-859D-6ADB669DF0E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6A23EE81-0CA7-4CA7-859D-6ADB669DF0E1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6A23EE81-0CA7-4CA7-859D-6ADB669DF0E1}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6A23EE81-0CA7-4CA7-859D-6ADB669DF0E1}.Release|Any CPU.Build.0 = Release|Any CPU
- {EC7970DC-A656-46A7-9873-A730FE72B213}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EC7970DC-A656-46A7-9873-A730FE72B213}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EC7970DC-A656-46A7-9873-A730FE72B213}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EC7970DC-A656-46A7-9873-A730FE72B213}.Release|Any CPU.Build.0 = Release|Any CPU
- {F515E8FA-449F-4D54-98A7-0F7DF1AA3C94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F515E8FA-449F-4D54-98A7-0F7DF1AA3C94}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F515E8FA-449F-4D54-98A7-0F7DF1AA3C94}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F515E8FA-449F-4D54-98A7-0F7DF1AA3C94}.Release|Any CPU.Build.0 = Release|Any CPU
- {E9AD81CA-D992-4F74-BD23-680CF98BE262}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E9AD81CA-D992-4F74-BD23-680CF98BE262}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E9AD81CA-D992-4F74-BD23-680CF98BE262}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E9AD81CA-D992-4F74-BD23-680CF98BE262}.Release|Any CPU.Build.0 = Release|Any CPU
- {2E29FBF7-CECB-4DF9-9E02-5AFB704DDD10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2E29FBF7-CECB-4DF9-9E02-5AFB704DDD10}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2E29FBF7-CECB-4DF9-9E02-5AFB704DDD10}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2E29FBF7-CECB-4DF9-9E02-5AFB704DDD10}.Release|Any CPU.Build.0 = Release|Any CPU
- {1206B9FC-0177-4061-A06E-F82B2CC01ACE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1206B9FC-0177-4061-A06E-F82B2CC01ACE}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1206B9FC-0177-4061-A06E-F82B2CC01ACE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1206B9FC-0177-4061-A06E-F82B2CC01ACE}.Release|Any CPU.Build.0 = Release|Any CPU
- {E097FAEC-5015-4159-BC00-A737483EFA80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E097FAEC-5015-4159-BC00-A737483EFA80}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E097FAEC-5015-4159-BC00-A737483EFA80}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E097FAEC-5015-4159-BC00-A737483EFA80}.Release|Any CPU.Build.0 = Release|Any CPU
- {809C86E9-0C70-41E4-B26D-D9AFF34F03D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {809C86E9-0C70-41E4-B26D-D9AFF34F03D0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {809C86E9-0C70-41E4-B26D-D9AFF34F03D0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {809C86E9-0C70-41E4-B26D-D9AFF34F03D0}.Release|Any CPU.Build.0 = Release|Any CPU
- {B6A5E070-3A2A-4F53-8391-0CA0C60B7701}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B6A5E070-3A2A-4F53-8391-0CA0C60B7701}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B6A5E070-3A2A-4F53-8391-0CA0C60B7701}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B6A5E070-3A2A-4F53-8391-0CA0C60B7701}.Release|Any CPU.Build.0 = Release|Any CPU
- {33CBF722-B166-4B68-9CB3-1293F5C78EF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {33CBF722-B166-4B68-9CB3-1293F5C78EF5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {33CBF722-B166-4B68-9CB3-1293F5C78EF5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {33CBF722-B166-4B68-9CB3-1293F5C78EF5}.Release|Any CPU.Build.0 = Release|Any CPU
- {4CEFE059-B30E-4121-AA12-10EC72709758}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4CEFE059-B30E-4121-AA12-10EC72709758}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4CEFE059-B30E-4121-AA12-10EC72709758}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4CEFE059-B30E-4121-AA12-10EC72709758}.Release|Any CPU.Build.0 = Release|Any CPU
- {C9EC8CCF-5CA7-4332-B7B7-FF9B094FA418}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C9EC8CCF-5CA7-4332-B7B7-FF9B094FA418}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C9EC8CCF-5CA7-4332-B7B7-FF9B094FA418}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C9EC8CCF-5CA7-4332-B7B7-FF9B094FA418}.Release|Any CPU.Build.0 = Release|Any CPU
- {4059233C-C651-4DA2-A1BC-26196362062A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4059233C-C651-4DA2-A1BC-26196362062A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4059233C-C651-4DA2-A1BC-26196362062A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4059233C-C651-4DA2-A1BC-26196362062A}.Release|Any CPU.Build.0 = Release|Any CPU
- {347413DD-1B30-46B5-87A0-828A11FAA87D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {347413DD-1B30-46B5-87A0-828A11FAA87D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {347413DD-1B30-46B5-87A0-828A11FAA87D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {347413DD-1B30-46B5-87A0-828A11FAA87D}.Release|Any CPU.Build.0 = Release|Any CPU
- {13FCEB03-E300-4CE2-A789-78D9F41C903E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {13FCEB03-E300-4CE2-A789-78D9F41C903E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {13FCEB03-E300-4CE2-A789-78D9F41C903E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {13FCEB03-E300-4CE2-A789-78D9F41C903E}.Release|Any CPU.Build.0 = Release|Any CPU
- {8B15AAB5-18BB-4A2E-86F1-4A2F04C9FAFF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8B15AAB5-18BB-4A2E-86F1-4A2F04C9FAFF}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8B15AAB5-18BB-4A2E-86F1-4A2F04C9FAFF}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8B15AAB5-18BB-4A2E-86F1-4A2F04C9FAFF}.Release|Any CPU.Build.0 = Release|Any CPU
- {57FCECAF-11F0-46C8-A74B-55C7AE76E8FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {57FCECAF-11F0-46C8-A74B-55C7AE76E8FE}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {57FCECAF-11F0-46C8-A74B-55C7AE76E8FE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {57FCECAF-11F0-46C8-A74B-55C7AE76E8FE}.Release|Any CPU.Build.0 = Release|Any CPU
- {7433B116-806E-4500-8FF8-6143C4140BFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7433B116-806E-4500-8FF8-6143C4140BFD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7433B116-806E-4500-8FF8-6143C4140BFD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7433B116-806E-4500-8FF8-6143C4140BFD}.Release|Any CPU.Build.0 = Release|Any CPU
- {2C01C5C9-F762-4455-AD66-810BEFEE67B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2C01C5C9-F762-4455-AD66-810BEFEE67B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2C01C5C9-F762-4455-AD66-810BEFEE67B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2C01C5C9-F762-4455-AD66-810BEFEE67B5}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {086BE5BE-8594-4DA7-8819-935FEF76DABD} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {5A87E9DD-3340-44DC-9564-4D8832A0228E} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
- {E9BE3C65-2AB2-4CE8-8EB9-5C91B329ADB4} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
- {E9AEC9D6-1FE7-4B00-BAC5-2C3D4B63CCA2} = {E2E7A062-0ABB-41B4-8220-60228446D2C2}
- {304D06E6-41EC-4DCB-AEAE-DBEEC75F9ADC} = {E2E7A062-0ABB-41B4-8220-60228446D2C2}
- {492710E6-EEF5-4390-A474-8FB2412ECBE5} = {3A0784A6-AFBF-406F-B79E-9505EB100445}
- {CCF1EB86-29BD-4531-BB27-C9111CC67570} = {7F18BCA5-35BD-41FB-8EFF-801B56E5E414}
- {7947D559-4288-486B-8FB3-D957CC7EDD32} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
- {A4195E41-3919-4C3E-8768-7F277B583D16} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
- {60083380-062C-4914-9E4E-5AE6637CCC3F} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
- {9C6E9EE2-5C83-4D96-A7B7-32798FEF2845} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
- {34C1E979-65B9-46F5-B7BA-60F227EBA093} = {0D2D7A10-CBA5-4798-BFC7-EB05D1E6B94C}
- {80A56461-0ACC-4069-B571-87DCA064B2EF} = {0D2D7A10-CBA5-4798-BFC7-EB05D1E6B94C}
- {568D2C50-1C31-4C31-89A2-C608FA93C6FD} = {3A0784A6-AFBF-406F-B79E-9505EB100445}
- {12451B83-18DE-4E93-B98C-509477D53D5E} = {3A0784A6-AFBF-406F-B79E-9505EB100445}
- {AAD0B6A7-847A-4537-A300-50E37F4B70CC} = {EFFAF456-50C1-42C9-836E-E95E7A38D52C}
- {5B5C2372-2EAB-4559-BBCB-0C1C9A7158DB} = {EFFAF456-50C1-42C9-836E-E95E7A38D52C}
- {2A0C5EF1-CB21-4656-8C32-B5673F6B82D2} = {EFFAF456-50C1-42C9-836E-E95E7A38D52C}
- {3021DD8B-EA8F-4A88-BC2C-1BBEDC6255FE} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
- {B31CEE79-45F6-4BB9-9EEB-08843C324B37} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
- {22C61434-D29A-4376-AD56-F5089F3E617A} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {865D5508-63CD-4D44-9F5B-AE5CD4A43D08} = {22C61434-D29A-4376-AD56-F5089F3E617A}
- {ECAA4B82-A240-4747-888C-FACD8634D389} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
- {8AF8FD6B-634F-41FA-B421-A4ACFD159FE0} = {7F18BCA5-35BD-41FB-8EFF-801B56E5E414}
- {7F18BCA5-35BD-41FB-8EFF-801B56E5E414} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {E2E7A062-0ABB-41B4-8220-60228446D2C2} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {EFFAF456-50C1-42C9-836E-E95E7A38D52C} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {B91F26C5-B148-4094-B5F1-71E5F945DBED} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {0D2D7A10-CBA5-4798-BFC7-EB05D1E6B94C} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {3B455AA7-B165-4EA0-8870-DB8DA5C76FC5} = {0D2D7A10-CBA5-4798-BFC7-EB05D1E6B94C}
- {99F8F254-A76E-43BB-8048-CC17EE1C8527} = {0D2D7A10-CBA5-4798-BFC7-EB05D1E6B94C}
- {38E21687-5F19-42C9-9D11-4B1D2EF64EDB} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {15FC0C39-A604-491F-91F6-BD44167FC5F6} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
- {9E59B1DB-E0D5-485D-BDA0-B6C31E1358A8} = {22C61434-D29A-4376-AD56-F5089F3E617A}
- {16942653-B746-4917-B3BF-464C99F8832F} = {22C61434-D29A-4376-AD56-F5089F3E617A}
- {D0717513-2CEE-4AD5-A1DA-A08EA5DE6DD6} = {22C61434-D29A-4376-AD56-F5089F3E617A}
- {A7A28D6C-6EDB-4615-8899-7DE1D435B750} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
- {17A8455F-D413-4664-AEFA-1ECAE9ED4B19} = {7F18BCA5-35BD-41FB-8EFF-801B56E5E414}
- {3BAA3D38-96C2-4C4C-B790-AE2997BFDE25} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {2E35CB93-2E9C-4EE1-845F-72A40271648E} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {8D2AD50B-DD4B-48A2-88EC-0E8E8236D883} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {8FB74B18-CA5C-4DC3-8DFA-600133A05712} = {8D2AD50B-DD4B-48A2-88EC-0E8E8236D883}
- {3DBF0975-B09D-49CA-9AF8-69175EDB9D52} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {93DD5A05-B67A-4E11-BB56-F6B4E7F1489C} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {221725FF-6C01-4F41-9F29-AC04C7D52611} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {1B494EA1-28CF-4A61-B0BE-70BBA425C316} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {7F767ACF-754A-4EBC-8936-3C1402B6EF82} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
- {E73A0F8B-2B4B-4CED-82A4-1EE5E0B89744} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {8CC72F4E-F134-4A43-9037-5D4D1F29B68A} = {E73A0F8B-2B4B-4CED-82A4-1EE5E0B89744}
- {94FEA59E-3B6D-41A0-9E44-BA5D6477244F} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {7FDFB22F-1BFF-4E05-9427-78B7A8461D50} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {C72E0407-06FE-4CAA-86E5-30FF216A7B82} = {7FDFB22F-1BFF-4E05-9427-78B7A8461D50}
- {E74FF671-6E5E-430C-9211-ED910634DDBE} = {7FDFB22F-1BFF-4E05-9427-78B7A8461D50}
- {879791A3-BD69-42E4-A3BC-9878EFAADDD1} = {7FDFB22F-1BFF-4E05-9427-78B7A8461D50}
- {C8891F1A-E6E5-448A-B527-EBFA44D20808} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {5133D83C-9B23-491C-8780-3F9BBDBD0351} = {C8891F1A-E6E5-448A-B527-EBFA44D20808}
- {B8E5026B-188F-422F-A1EA-502C4A394585} = {C8891F1A-E6E5-448A-B527-EBFA44D20808}
- {E861BE01-689D-4637-A5DC-E78E234F83FB} = {C8891F1A-E6E5-448A-B527-EBFA44D20808}
- {CF253F0A-3A45-40EE-875F-0E57C8968C48} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {EF03A0A7-A93E-4DEF-A33E-F5A82E995FBF} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {9403FC1F-9677-489F-A03A-0B456153EE86} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {26E87199-F0AD-4B30-B0E4-080B12E6F8FC} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {8968EDAF-9F5C-4786-AF2A-D3928B70C3EC} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {CF30221B-CA7A-42CD-B91A-B7224AB2F38B} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {191BB108-546E-4E70-978E-D6A8149C319C} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
- {DEB98AD7-9630-4F32-89E6-C1A118D1D18C} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
- {00F1D30E-A6F6-464F-A80B-D423CFAA79A3} = {22C61434-D29A-4376-AD56-F5089F3E617A}
- {358A4FB1-F5DF-433C-9DA7-D27401155AD7} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {2584D823-53A7-4184-8295-719A41E5B440} = {358A4FB1-F5DF-433C-9DA7-D27401155AD7}
- {6271EBC0-78F2-4E4F-A646-BBD15BCB0F84} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {C1A91534-E84F-4A98-9A78-135988030646} = {6271EBC0-78F2-4E4F-A646-BBD15BCB0F84}
- {0CC508D7-480C-4409-842A-A6C10E11ACFD} = {6271EBC0-78F2-4E4F-A646-BBD15BCB0F84}
- {F8330A1E-6CC3-4E90-8B5C-DCD8FA00CF5C} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {23F4260D-87C1-4AA6-A302-0A8A76D53BA1} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {CE7E525F-8628-4076-8A2E-B615B944D140} = {23F4260D-87C1-4AA6-A302-0A8A76D53BA1}
- {CD556F2A-A96B-43A2-8BB3-6C0EBA27EB02} = {23F4260D-87C1-4AA6-A302-0A8A76D53BA1}
- {CCB4AE25-7059-4CA0-A3AB-CBB863A3F672} = {23F4260D-87C1-4AA6-A302-0A8A76D53BA1}
- {3993A315-B250-4C5D-98C7-90FD06841B66} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
- {A0910407-CE69-4DC8-9721-F4324C22EEA8} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {519BF5DA-30E4-40CF-829A-93F526E2AED8} = {A0910407-CE69-4DC8-9721-F4324C22EEA8}
- {E16CCB14-E629-48E6-9603-53BBFF185318} = {A0910407-CE69-4DC8-9721-F4324C22EEA8}
- {FBE7D8CB-1D99-4342-A953-B9AB46E0B14D} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {2F556889-006C-4A9C-8CA3-E31200C06FC9} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {73C9A7E7-846D-49E2-B223-E705D6C48BE7} = {7FDFB22F-1BFF-4E05-9427-78B7A8461D50}
- {328B0863-23BE-43FD-98DD-FF0C92D5BEF0} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
- {F55B987D-1DFF-4EB0-9949-8A7136A7B689} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {D72748AF-2CC8-4B5B-9710-ECDE5D812D7F} = {F55B987D-1DFF-4EB0-9949-8A7136A7B689}
- {BD4165DB-F8A4-4715-A05A-CC08F6A18D67} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {AE5E6DE8-FC02-4633-BA49-C4B8ABADB502} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {31AED9ED-29BD-4F2F-8D3A-F00CBB9FC73C} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {8C688427-DD35-4F0B-86DA-6F536D3852D5} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {2C8A6B4C-D6B2-44FE-9EF5-EC7480D2A6B2} = {8C688427-DD35-4F0B-86DA-6F536D3852D5}
- {3CE350AF-5574-46EC-8120-8542350AED20} = {8C688427-DD35-4F0B-86DA-6F536D3852D5}
- {FE372F22-80A2-4859-9330-949C27CA94ED} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {33007EF7-BC1D-4B32-ACDA-6B9117200FAD} = {FE372F22-80A2-4859-9330-949C27CA94ED}
- {B9592989-9F76-413C-8612-96E8C0CFA041} = {7FDFB22F-1BFF-4E05-9427-78B7A8461D50}
- {F7878090-7FD6-4A2E-8D61-CAA0997880D7} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {7EDBCC52-3089-49F6-A56A-650850C9797E} = {F7878090-7FD6-4A2E-8D61-CAA0997880D7}
- {FF518E10-C9AB-440C-8E8D-9CFF67A926AC} = {3A0784A6-AFBF-406F-B79E-9505EB100445}
- {49E0B90B-8635-43D0-B0AB-9D484CAE68B5} = {7FDFB22F-1BFF-4E05-9427-78B7A8461D50}
- {3FF4CEA0-1555-4D62-AA81-B3B599253F8D} = {38E21687-5F19-42C9-9D11-4B1D2EF64EDB}
- {BD97C98B-0B4B-443D-AB29-145A344F46D3} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {AFE75D2B-8853-488B-B5D5-277B58C5DBB2} = {BD97C98B-0B4B-443D-AB29-145A344F46D3}
- {3971AD93-BF97-4E05-972D-CB5EB9F6CB88} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {D9339CBB-45B9-4701-B2AC-2A75FF20D77B} = {3971AD93-BF97-4E05-972D-CB5EB9F6CB88}
- {474AA48F-65F9-436B-A0B1-1E95BD16CA8D} = {3971AD93-BF97-4E05-972D-CB5EB9F6CB88}
- {C71F6273-BCDE-4A63-A0CF-EAFD1D924DA0} = {7FDFB22F-1BFF-4E05-9427-78B7A8461D50}
- {0F5A2591-CE08-4184-A5F3-89F6FB3B2B10} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {5515C7CA-B512-4E36-A202-49A0158A0E74} = {0F5A2591-CE08-4184-A5F3-89F6FB3B2B10}
- {EBA67EAD-4958-46E3-9E0C-8186394D083F} = {0F5A2591-CE08-4184-A5F3-89F6FB3B2B10}
- {25891EE2-3166-420F-8408-E458030C4643} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
- {F051C960-AA61-4283-A088-611C0B96C953} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
- {1435711B-D796-42AB-B567-0BB23F02EE08} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {7862CE70-76EF-4228-A703-C2E2A9704D14} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {1A072FF5-1A7E-4F78-B145-1AB873AEB8FF} = {7862CE70-76EF-4228-A703-C2E2A9704D14}
- {88412E3D-21C8-4FF1-8EB3-84CB74094336} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {30FA01ED-921A-4E7D-9E83-6719538FB866} = {7862CE70-76EF-4228-A703-C2E2A9704D14}
- {E6FDAD7B-4A7F-4CEB-9891-F8FC4E556C36} = {7862CE70-76EF-4228-A703-C2E2A9704D14}
- {4CBB4A0C-6D23-44DD-BAF4-49D69ED35839} = {0F5A2591-CE08-4184-A5F3-89F6FB3B2B10}
- {C2801414-550F-4A25-AD8D-68AC508211DC} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {868A1718-4970-48D2-A256-08EF468302D8} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {B78E53AC-6BB8-402D-90CF-BEF1BD9558EB} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {AA039B4E-CE12-43AC-8340-3D52463E971E} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
- {2C5C57FB-70F5-4C20-92FC-39ACD260CEE3} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
- {A1C75C3E-67D1-4BCE-89BF-44A735909BD5} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {60143C9C-E539-498A-9DBE-B95E6A8301A5} = {A1C75C3E-67D1-4BCE-89BF-44A735909BD5}
- {641DF0BA-0E79-441D-B328-FDA288A35CDE} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {2020EA8D-F276-498D-92D1-94D1E25F8E1A} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {2A3DF8B2-4760-41C4-9337-44FEE29B17CD} = {A1C75C3E-67D1-4BCE-89BF-44A735909BD5}
- {3975D028-3672-4D23-BF77-B7F4A445D44E} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {5512A359-80E8-440C-B652-7C96F614DD9E} = {3975D028-3672-4D23-BF77-B7F4A445D44E}
- {6A23EE81-0CA7-4CA7-859D-6ADB669DF0E1} = {3975D028-3672-4D23-BF77-B7F4A445D44E}
- {EC7970DC-A656-46A7-9873-A730FE72B213} = {3975D028-3672-4D23-BF77-B7F4A445D44E}
- {F515E8FA-449F-4D54-98A7-0F7DF1AA3C94} = {3975D028-3672-4D23-BF77-B7F4A445D44E}
- {E9AD81CA-D992-4F74-BD23-680CF98BE262} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {2E29FBF7-CECB-4DF9-9E02-5AFB704DDD10} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
- {1206B9FC-0177-4061-A06E-F82B2CC01ACE} = {E73A0F8B-2B4B-4CED-82A4-1EE5E0B89744}
- {E097FAEC-5015-4159-BC00-A737483EFA80} = {E73A0F8B-2B4B-4CED-82A4-1EE5E0B89744}
- {809C86E9-0C70-41E4-B26D-D9AFF34F03D0} = {E73A0F8B-2B4B-4CED-82A4-1EE5E0B89744}
- {C12EEBC0-0407-4AEF-81C4-EDF5E22BB00E} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
- {B6A5E070-3A2A-4F53-8391-0CA0C60B7701} = {C12EEBC0-0407-4AEF-81C4-EDF5E22BB00E}
- {33CBF722-B166-4B68-9CB3-1293F5C78EF5} = {C12EEBC0-0407-4AEF-81C4-EDF5E22BB00E}
- {4CEFE059-B30E-4121-AA12-10EC72709758} = {C12EEBC0-0407-4AEF-81C4-EDF5E22BB00E}
- {C9EC8CCF-5CA7-4332-B7B7-FF9B094FA418} = {C12EEBC0-0407-4AEF-81C4-EDF5E22BB00E}
- {4059233C-C651-4DA2-A1BC-26196362062A} = {C12EEBC0-0407-4AEF-81C4-EDF5E22BB00E}
- {347413DD-1B30-46B5-87A0-828A11FAA87D} = {F55B987D-1DFF-4EB0-9949-8A7136A7B689}
- {13FCEB03-E300-4CE2-A789-78D9F41C903E} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
- {8B15AAB5-18BB-4A2E-86F1-4A2F04C9FAFF} = {F55B987D-1DFF-4EB0-9949-8A7136A7B689}
- {57FCECAF-11F0-46C8-A74B-55C7AE76E8FE} = {A1C75C3E-67D1-4BCE-89BF-44A735909BD5}
- {7433B116-806E-4500-8FF8-6143C4140BFD} = {7862CE70-76EF-4228-A703-C2E2A9704D14}
- {2C01C5C9-F762-4455-AD66-810BEFEE67B5} = {22C61434-D29A-4376-AD56-F5089F3E617A}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {06C707C6-02C0-411A-AD3B-2D0E13787CB8}
- EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.0.31903.59
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "modules", "modules", "{02EA4E78-5891-43BC-944F-3E52FEE032E4}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "common", "common", "{086BE5BE-8594-4DA7-8819-935FEF76DABD}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IM", "modules\realtime-message\LINGYUN.Abp.IM\LINGYUN.Abp.IM.csproj", "{5A87E9DD-3340-44DC-9564-4D8832A0228E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.RealTime", "framework\common\LINGYUN.Abp.RealTime\LINGYUN.Abp.RealTime.csproj", "{E9BE3C65-2AB2-4CE8-8EB9-5C91B329ADB4}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.SignalR.Protocol.Json", "framework\common\LINGYUN.Abp.AspNetCore.SignalR.Protocol.Json\LINGYUN.Abp.AspNetCore.SignalR.Protocol.Json.csproj", "{E9AEC9D6-1FE7-4B00-BAC5-2C3D4B63CCA2}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.SignalR.JwtToken", "framework\common\LINGYUN.Abp.AspNetCore.SignalR\LINGYUN.Abp.AspNetCore.SignalR.JwtToken.csproj", "{304D06E6-41EC-4DCB-AEAE-DBEEC75F9ADC}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BackgroundJobs.Hangfire", "framework\common\LINGYUN.Abp.BackgroundJobs.Hangfire\LINGYUN.Abp.BackgroundJobs.Hangfire.csproj", "{492710E6-EEF5-4390-A474-8FB2412ECBE5}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BlobStoring.Aliyun", "framework\common\LINGYUN.Abp.BlobStoring.Aliyun\LINGYUN.Abp.BlobStoring.Aliyun.csproj", "{CCF1EB86-29BD-4531-BB27-C9111CC67570}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.EventBus.CAP", "framework\common\LINGYUN.Abp.EventBus.CAP\LINGYUN.Abp.EventBus.CAP.csproj", "{7947D559-4288-486B-8FB3-D957CC7EDD32}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.ExceptionHandling", "framework\common\LINGYUN.Abp.ExceptionHandling\LINGYUN.Abp.ExceptionHandling.csproj", "{A4195E41-3919-4C3E-8768-7F277B583D16}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.ExceptionHandling.Emailing", "framework\common\LINGYUN.Abp.ExceptionHandling.Emailing\LINGYUN.Abp.ExceptionHandling.Emailing.csproj", "{60083380-062C-4914-9E4E-5AE6637CCC3F}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.ExceptionHandling.Notifications", "modules\realtime-notifications\LINGYUN.Abp.ExceptionHandling.Notifications\LINGYUN.Abp.ExceptionHandling.Notifications.csproj", "{9C6E9EE2-5C83-4D96-A7B7-32798FEF2845}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Features.LimitValidation", "framework\common\LINGYUN.Abp.Features.LimitValidation\LINGYUN.Abp.Features.LimitValidation.csproj", "{34C1E979-65B9-46F5-B7BA-60F227EBA093}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Features.LimitValidation.Redis", "framework\common\LINGYUN.Abp.Features.LimitValidation.Redis\LINGYUN.Abp.Features.LimitValidation.Redis.csproj", "{80A56461-0ACC-4069-B571-87DCA064B2EF}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Hangfire.Storage.MySql", "framework\common\LINGYUN.Abp.Hangfire.MySqlStorage\LINGYUN.Abp.Hangfire.Storage.MySql.csproj", "{568D2C50-1C31-4C31-89A2-C608FA93C6FD}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Hangfire.Storage.SqlServer", "framework\common\LINGYUN.Abp.Hangfire.Storage.SqlServer\LINGYUN.Abp.Hangfire.Storage.SqlServer.csproj", "{12451B83-18DE-4E93-B98C-509477D53D5E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Location", "framework\common\LINGYUN.Abp.Location\LINGYUN.Abp.Location.csproj", "{AAD0B6A7-847A-4537-A300-50E37F4B70CC}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Location.Baidu", "framework\common\LINGYUN.Abp.Location.Baidu\LINGYUN.Abp.Location.Baidu.csproj", "{5B5C2372-2EAB-4559-BBCB-0C1C9A7158DB}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Location.Tencent", "framework\common\LINGYUN.Abp.Location.Tencent\LINGYUN.Abp.Location.Tencent.csproj", "{2A0C5EF1-CB21-4656-8C32-B5673F6B82D2}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications", "modules\realtime-notifications\LINGYUN.Abp.Notifications\LINGYUN.Abp.Notifications.csproj", "{3021DD8B-EA8F-4A88-BC2C-1BBEDC6255FE}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.SignalR", "modules\realtime-notifications\LINGYUN.Abp.Notifications.SignalR\LINGYUN.Abp.Notifications.SignalR.csproj", "{B31CEE79-45F6-4BB9-9EEB-08843C324B37}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "wechat", "wechat", "{22C61434-D29A-4376-AD56-F5089F3E617A}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WeChat", "framework\wechat\LINGYUN.Abp.WeChat\LINGYUN.Abp.WeChat.csproj", "{865D5508-63CD-4D44-9F5B-AE5CD4A43D08}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Settings", "framework\settings\LINGYUN.Abp.Settings\LINGYUN.Abp.Settings.csproj", "{ECAA4B82-A240-4747-888C-FACD8634D389}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Sms.Aliyun", "framework\common\LINGYUN.Abp.Sms.Aliyun\LINGYUN.Abp.Sms.Aliyun.csproj", "{8AF8FD6B-634F-41FA-B421-A4ACFD159FE0}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "alibaba-cloud", "alibaba-cloud", "{7F18BCA5-35BD-41FB-8EFF-801B56E5E414}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "signalr", "signalr", "{E2E7A062-0ABB-41B4-8220-60228446D2C2}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "location", "location", "{EFFAF456-50C1-42C9-836E-E95E7A38D52C}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "realtime", "realtime", "{B91F26C5-B148-4094-B5F1-71E5F945DBED}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "features", "features", "{0D2D7A10-CBA5-4798-BFC7-EB05D1E6B94C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Features.Client", "framework\features\LINGYUN.Abp.Features.Client\LINGYUN.Abp.Features.Client.csproj", "{3B455AA7-B165-4EA0-8870-DB8DA5C76FC5}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.FeatureManagement.Client", "framework\features\LINGYUN.Abp.FeatureManagement.Client\LINGYUN.Abp.FeatureManagement.Client.csproj", "{99F8F254-A76E-43BB-8048-CC17EE1C8527}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tenants", "tenants", "{38E21687-5F19-42C9-9D11-4B1D2EF64EDB}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.Sms", "modules\realtime-notifications\LINGYUN.Abp.Notifications.Sms\LINGYUN.Abp.Notifications.Sms.csproj", "{15FC0C39-A604-491F-91F6-BD44167FC5F6}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WeChat.MiniProgram", "framework\wechat\LINGYUN.Abp.WeChat.MiniProgram\LINGYUN.Abp.WeChat.MiniProgram.csproj", "{9E59B1DB-E0D5-485D-BDA0-B6C31E1358A8}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WeChat.Official", "framework\wechat\LINGYUN.Abp.WeChat.Official\LINGYUN.Abp.WeChat.Official.csproj", "{16942653-B746-4917-B3BF-464C99F8832F}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WeChat.SettingManagement", "framework\wechat\LINGYUN.Abp.WeChat.SettingManagement\LINGYUN.Abp.WeChat.SettingManagement.csproj", "{D0717513-2CEE-4AD5-A1DA-A08EA5DE6DD6}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Core", "framework\common\LINGYUN.Abp.Core\LINGYUN.Abp.Core.csproj", "{A7A28D6C-6EDB-4615-8899-7DE1D435B750}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Aliyun", "framework\cloud-aliyun\LINGYUN.Abp.Aliyun\LINGYUN.Abp.Aliyun.csproj", "{17A8455F-D413-4664-AEFA-1ECAE9ED4B19}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{B86C21A4-73B7-471E-B73A-B4B905EC9435}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TestsBase", "tests\LINGYUN.Abp.TestBase\LINGYUN.Abp.TestsBase.csproj", "{3BAA3D38-96C2-4C4C-B790-AE2997BFDE25}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BlobStoring.Aliyun.Tests", "tests\LINGYUN.Abp.BlobStoring.Aliyun.Tests\LINGYUN.Abp.BlobStoring.Aliyun.Tests.csproj", "{2E35CB93-2E9C-4EE1-845F-72A40271648E}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "console", "console", "{8D2AD50B-DD4B-48A2-88EC-0E8E8236D883}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Encryption.Console", "framework\console\LINGYUN.Abp.Encryption.Console\LINGYUN.Abp.Encryption.Console.csproj", "{8FB74B18-CA5C-4DC3-8DFA-600133A05712}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Aliyun.Tests", "tests\LINGYUN.Abp.Aliyun.Tests\LINGYUN.Abp.Aliyun.Tests.csproj", "{3DBF0975-B09D-49CA-9AF8-69175EDB9D52}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Sms.Aliyun.Tests", "tests\LINGYUN.Abp.Sms.Aliyun.Tests\LINGYUN.Abp.Sms.Aliyun.Tests.csproj", "{93DD5A05-B67A-4E11-BB56-F6B4E7F1489C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Location.Baidu.Tests", "tests\LINGYUN.Abp.Location.Baidu.Tests\LINGYUN.Abp.Location.Baidu.Tests.csproj", "{221725FF-6C01-4F41-9F29-AC04C7D52611}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Location.Tencent.Tests", "tests\LINGYUN.Abp.Location.Tencent.Tests\LINGYUN.Abp.Location.Tencent.Tests.csproj", "{1B494EA1-28CF-4A61-B0BE-70BBA425C316}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.Mvc.Client", "framework\common\LINGYUN.Abp.AspNetCore.Mvc.Client\LINGYUN.Abp.AspNetCore.Mvc.Client.csproj", "{7F767ACF-754A-4EBC-8936-3C1402B6EF82}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "localization", "localization", "{E73A0F8B-2B4B-4CED-82A4-1EE5E0B89744}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Localization.Xml", "framework\localization\LINGYUN.Abp.Localization.Xml\LINGYUN.Abp.Localization.Xml.csproj", "{8CC72F4E-F134-4A43-9037-5D4D1F29B68A}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Localization.Xml.Tests", "tests\LINGYUN.Abp.Localization.Xml.Tests\LINGYUN.Abp.Localization.Xml.Tests.csproj", "{94FEA59E-3B6D-41A0-9E44-BA5D6477244F}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dapr", "dapr", "{7FDFB22F-1BFF-4E05-9427-78B7A8461D50}"
+ ProjectSection(SolutionItems) = preProject
+ framework\dapr\README.md = framework\dapr\README.md
+ EndProjectSection
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Actors", "framework\dapr\LINGYUN.Abp.Dapr.Actors\LINGYUN.Abp.Dapr.Actors.csproj", "{C72E0407-06FE-4CAA-86E5-30FF216A7B82}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Actors.AspNetCore", "framework\dapr\LINGYUN.Abp.Dapr.Actors.AspNetCore\LINGYUN.Abp.Dapr.Actors.AspNetCore.csproj", "{E74FF671-6E5E-430C-9211-ED910634DDBE}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Client", "framework\dapr\LINGYUN.Abp.Dapr.Client\LINGYUN.Abp.Dapr.Client.csproj", "{879791A3-BD69-42E4-A3BC-9878EFAADDD1}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "rules", "rules", "{C8891F1A-E6E5-448A-B527-EBFA44D20808}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Rules", "framework\rules\LINGYUN.Abp.Rules\LINGYUN.Abp.Rules.csproj", "{5133D83C-9B23-491C-8780-3F9BBDBD0351}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Rules.NRules", "framework\rules\LINGYUN.Abp.Rules.NRules\LINGYUN.Abp.Rules.NRules.csproj", "{B8E5026B-188F-422F-A1EA-502C4A394585}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Rules.RulesEngine", "framework\rules\LINGYUN.Abp.Rules.RulesEngine\LINGYUN.Abp.Rules.RulesEngine.csproj", "{E861BE01-689D-4637-A5DC-E78E234F83FB}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Rules.RulesEngine.Tests", "tests\LINGYUN.Abp.Rules.RulesEngine.Tests\LINGYUN.Abp.Rules.RulesEngine.Tests.csproj", "{CF253F0A-3A45-40EE-875F-0E57C8968C48}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Rules.NRules.Tests", "tests\LINGYUN.Abp.Rules.NRules.Tests\LINGYUN.Abp.Rules.NRules.Tests.csproj", "{EF03A0A7-A93E-4DEF-A33E-F5A82E995FBF}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Client.Tests", "tests\LINGYUN.Abp.Dapr.Client.Tests\LINGYUN.Abp.Dapr.Client.Tests.csproj", "{9403FC1F-9677-489F-A03A-0B456153EE86}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Tests", "tests\LINGYUN.Abp.Dapr.Tests\LINGYUN.Abp.Dapr.Tests.csproj", "{26E87199-F0AD-4B30-B0E4-080B12E6F8FC}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.AspNetCore.TestHost", "tests\LINGYUN.Abp.Dapr.AspNetCore.TestHost\LINGYUN.Abp.Dapr.AspNetCore.TestHost.csproj", "{8968EDAF-9F5C-4786-AF2A-D3928B70C3EC}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Actors.Tests", "tests\LINGYUN.Abp.Dapr.Actors.Tests\LINGYUN.Abp.Dapr.Actors.Tests.csproj", "{CF30221B-CA7A-42CD-B91A-B7224AB2F38B}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.HttpOverrides", "framework\common\LINGYUN.Abp.AspNetCore.HttpOverrides\LINGYUN.Abp.AspNetCore.HttpOverrides.csproj", "{191BB108-546E-4E70-978E-D6A8149C319C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IM.SignalR", "modules\realtime-message\LINGYUN.Abp.IM.SignalR\LINGYUN.Abp.IM.SignalR.csproj", "{DEB98AD7-9630-4F32-89E6-C1A118D1D18C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.WeChat", "framework\wechat\LINGYUN.Abp.Identity.WeChat\LINGYUN.Abp.Identity.WeChat.csproj", "{00F1D30E-A6F6-464F-A80B-D423CFAA79A3}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "elasticsearch", "elasticsearch", "{358A4FB1-F5DF-433C-9DA7-D27401155AD7}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elasticsearch", "framework\elasticsearch\LINGYUN.Abp.Elasticsearch\LINGYUN.Abp.Elasticsearch.csproj", "{2584D823-53A7-4184-8295-719A41E5B440}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "auditing", "auditing", "{6271EBC0-78F2-4E4F-A646-BBD15BCB0F84}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AuditLogging", "framework\auditing\LINGYUN.Abp.AuditLogging\LINGYUN.Abp.AuditLogging.csproj", "{C1A91534-E84F-4A98-9A78-135988030646}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AuditLogging.Elasticsearch", "framework\auditing\LINGYUN.Abp.AuditLogging.Elasticsearch\LINGYUN.Abp.AuditLogging.Elasticsearch.csproj", "{0CC508D7-480C-4409-842A-A6C10E11ACFD}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AuditLogging.Elasticsearch.Tests", "tests\LINGYUN.Abp.AuditLogging.Elasticsearch.Tests\LINGYUN.Abp.AuditLogging.Elasticsearch.Tests.csproj", "{F8330A1E-6CC3-4E90-8B5C-DCD8FA00CF5C}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "logging", "logging", "{23F4260D-87C1-4AA6-A302-0A8A76D53BA1}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Logging", "framework\logging\LINGYUN.Abp.Logging\LINGYUN.Abp.Logging.csproj", "{CE7E525F-8628-4076-8A2E-B615B944D140}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Logging.Serilog.Elasticsearch", "framework\logging\LINGYUN.Abp.Logging.Serilog.Elasticsearch\LINGYUN.Abp.Logging.Serilog.Elasticsearch.csproj", "{CD556F2A-A96B-43A2-8BB3-6C0EBA27EB02}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Serilog.Enrichers.Application", "framework\logging\LINGYUN.Abp.Serilog.Enrichers.Application\LINGYUN.Abp.Serilog.Enrichers.Application.csproj", "{CCB4AE25-7059-4CA0-A3AB-CBB863A3F672}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Data.DbMigrator", "framework\common\LINGYUN.Abp.Data.DbMigrator\LINGYUN.Abp.Data.DbMigrator.csproj", "{3993A315-B250-4C5D-98C7-90FD06841B66}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "data-protection", "data-protection", "{A0910407-CE69-4DC8-9721-F4324C22EEA8}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.DataProtection", "framework\data-protection\LINGYUN.Abp.DataProtection\LINGYUN.Abp.DataProtection.csproj", "{519BF5DA-30E4-40CF-829A-93F526E2AED8}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.DataProtection.EntityFrameworkCore", "framework\data-protection\LINGYUN.Abp.DataProtection.EntityFrameworkCore\LINGYUN.Abp.DataProtection.EntityFrameworkCore.csproj", "{E16CCB14-E629-48E6-9603-53BBFF185318}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.DataProtection.Tests", "tests\LINGYUN.Abp.DataProtection.Tests\LINGYUN.Abp.DataProtection.Tests.csproj", "{FBE7D8CB-1D99-4342-A953-B9AB46E0B14D}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.EntityFrameworkCore.Tests", "tests\LINGYUN.Abp.EntityFrameworkCore.Tests\LINGYUN.Abp.EntityFrameworkCore.Tests.csproj", "{2F556889-006C-4A9C-8CA3-E31200C06FC9}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr", "framework\dapr\LINGYUN.Abp.Dapr\LINGYUN.Abp.Dapr.csproj", "{73C9A7E7-846D-49E2-B223-E705D6C48BE7}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Wrapper", "framework\common\LINGYUN.Abp.Wrapper\LINGYUN.Abp.Wrapper.csproj", "{328B0863-23BE-43FD-98DD-FF0C92D5BEF0}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "mvc", "mvc", "{F55B987D-1DFF-4EB0-9949-8A7136A7B689}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.Mvc.Wrapper", "framework\mvc\LINGYUN.Abp.AspNetCore.Mvc.Wrapper\LINGYUN.Abp.AspNetCore.Mvc.Wrapper.csproj", "{D72748AF-2CC8-4B5B-9710-ECDE5D812D7F}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.Tests", "tests\LINGYUN.Abp.AspNetCore.Tests\LINGYUN.Abp.AspNetCore.Tests.csproj", "{BD4165DB-F8A4-4715-A05A-CC08F6A18D67}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.Mvc.Tests", "tests\LINGYUN.Abp.AspNetCore.Mvc.Tests\LINGYUN.Abp.AspNetCore.Mvc.Tests.csproj", "{AE5E6DE8-FC02-4633-BA49-C4B8ABADB502}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Wrapper.Tests", "tests\LINGYUN.Abp.Wrapper.Tests\LINGYUN.Abp.Wrapper.Tests.csproj", "{31AED9ED-29BD-4F2F-8D3A-F00CBB9FC73C}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "open-api", "open-api", "{8C688427-DD35-4F0B-86DA-6F536D3852D5}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.OpenApi", "framework\open-api\LINGYUN.Abp.OpenApi\LINGYUN.Abp.OpenApi.csproj", "{2C8A6B4C-D6B2-44FE-9EF5-EC7480D2A6B2}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.OpenApi.Authorization", "framework\open-api\LINGYUN.Abp.OpenApi.Authorization\LINGYUN.Abp.OpenApi.Authorization.csproj", "{3CE350AF-5574-46EC-8120-8542350AED20}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "cli", "cli", "{FE372F22-80A2-4859-9330-949C27CA94ED}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Cli", "framework\cli\LINGYUN.Abp.Cli\LINGYUN.Abp.Cli.csproj", "{33007EF7-BC1D-4B32-ACDA-6B9117200FAD}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Client.Wrapper", "framework\dapr\LINGYUN.Abp.Dapr.Client.Wrapper\LINGYUN.Abp.Dapr.Client.Wrapper.csproj", "{B9592989-9F76-413C-8612-96E8C0CFA041}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "settings", "settings", "{F7878090-7FD6-4A2E-8D61-CAA0997880D7}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.SettingManagement.Application.Contracts", "framework\settings\LINGYUN.Abp.SettingManagement.Application.Contracts\LINGYUN.Abp.SettingManagement.Application.Contracts.csproj", "{7EDBCC52-3089-49F6-A56A-650850C9797E}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "hangfire", "hangfire", "{3A0784A6-AFBF-406F-B79E-9505EB100445}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Hangfire.Dashboard", "framework\common\LINGYUN.Abp.Hangfire.Dashboard\LINGYUN.Abp.Hangfire.Dashboard.csproj", "{FF518E10-C9AB-440C-8E8D-9CFF67A926AC}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Actors.AspNetCore.Wrapper", "framework\dapr\LINGYUN.Abp.Dapr.Actors.AspNetCore.Wrapper\LINGYUN.Abp.Dapr.Actors.AspNetCore.Wrapper.csproj", "{49E0B90B-8635-43D0-B0AB-9D484CAE68B5}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.MultiTenancy.Editions", "framework\tenants\LINGYUN.Abp.MultiTenancy.Editions\LINGYUN.Abp.MultiTenancy.Editions.csproj", "{3FF4CEA0-1555-4D62-AA81-B3B599253F8D}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "webhooks", "webhooks", "{BD97C98B-0B4B-443D-AB29-145A344F46D3}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WebHooks", "modules\webhooks\LINGYUN.Abp.WebHooks\LINGYUN.Abp.WebHooks.csproj", "{AFE75D2B-8853-488B-B5D5-277B58C5DBB2}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "authorization", "authorization", "{3971AD93-BF97-4E05-972D-CB5EB9F6CB88}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Authorization.OrganizationUnits", "framework\authorization\LINGYUN.Abp.Authorization.OrganizationUnits\LINGYUN.Abp.Authorization.OrganizationUnits.csproj", "{D9339CBB-45B9-4701-B2AC-2A75FF20D77B}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.OrganizaztionUnits", "modules\identity\LINGYUN.Abp.Identity.OrganizaztionUnits\LINGYUN.Abp.Identity.OrganizaztionUnits.csproj", "{474AA48F-65F9-436B-A0B1-1E95BD16CA8D}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.DistributedLocking.Dapr", "framework\dapr\LINGYUN.Abp.DistributedLocking.Dapr\LINGYUN.Abp.DistributedLocking.Dapr.csproj", "{C71F6273-BCDE-4A63-A0CF-EAFD1D924DA0}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "pushplus", "pushplus", "{0F5A2591-CE08-4184-A5F3-89F6FB3B2B10}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.PushPlus", "framework\pushplus\LINGYUN.Abp.PushPlus\LINGYUN.Abp.PushPlus.csproj", "{5515C7CA-B512-4E36-A202-49A0158A0E74}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.PushPlus", "modules\realtime-notifications\LINGYUN.Abp.Notifications.PushPlus\LINGYUN.Abp.Notifications.PushPlus.csproj", "{EBA67EAD-4958-46E3-9E0C-8186394D083F}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.Emailing", "modules\realtime-notifications\LINGYUN.Abp.Notifications.Emailing\LINGYUN.Abp.Notifications.Emailing.csproj", "{25891EE2-3166-420F-8408-E458030C4643}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.Common", "modules\realtime-notifications\LINGYUN.Abp.Notifications.Common\LINGYUN.Abp.Notifications.Common.csproj", "{F051C960-AA61-4283-A088-611C0B96C953}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.PushPlus.Tests", "tests\LINGYUN.Abp.PushPlus.Tests\LINGYUN.Abp.PushPlus.Tests.csproj", "{1435711B-D796-42AB-B567-0BB23F02EE08}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "wx-pusher", "wx-pusher", "{7862CE70-76EF-4228-A703-C2E2A9704D14}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WxPusher", "framework\wx-pusher\LINGYUN.Abp.WxPusher\LINGYUN.Abp.WxPusher.csproj", "{1A072FF5-1A7E-4F78-B145-1AB873AEB8FF}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WxPusher.Tests", "tests\LINGYUN.Abp.WxPusher.Tests\LINGYUN.Abp.WxPusher.Tests.csproj", "{88412E3D-21C8-4FF1-8EB3-84CB74094336}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.WxPusher", "framework\wx-pusher\LINGYUN.Abp.Identity.WxPusher\LINGYUN.Abp.Identity.WxPusher.csproj", "{30FA01ED-921A-4E7D-9E83-6719538FB866}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WxPusher.SettingManagement", "framework\wx-pusher\LINGYUN.Abp.WxPusher.SettingManagement\LINGYUN.Abp.WxPusher.SettingManagement.csproj", "{E6FDAD7B-4A7F-4CEB-9891-F8FC4E556C36}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.PushPlus.SettingManagement", "framework\pushplus\LINGYUN.Abp.PushPlus.SettingManagement\LINGYUN.Abp.PushPlus.SettingManagement.csproj", "{4CBB4A0C-6D23-44DD-BAF4-49D69ED35839}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.WxPusher.Tests", "tests\LINGYUN.Abp.Notifications.WxPusher.Tests\LINGYUN.Abp.Notifications.WxPusher.Tests.csproj", "{C2801414-550F-4A25-AD8D-68AC508211DC}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.Tests", "tests\LINGYUN.Abp.Notifications.Tests\LINGYUN.Abp.Notifications.Tests.csproj", "{868A1718-4970-48D2-A256-08EF468302D8}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.WeChat.MiniProgram.Tests", "tests\LINGYUN.Abp.Notifications.WeChat.MiniProgram.Tests\LINGYUN.Abp.Notifications.WeChat.MiniProgram.Tests.csproj", "{B78E53AC-6BB8-402D-90CF-BEF1BD9558EB}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.Core", "modules\realtime-notifications\LINGYUN.Abp.Notifications.Core\LINGYUN.Abp.Notifications.Core.csproj", "{AA039B4E-CE12-43AC-8340-3D52463E971E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Http.Client.Wrapper", "framework\common\LINGYUN.Abp.Http.Client.Wrapper\LINGYUN.Abp.Http.Client.Wrapper.csproj", "{2C5C57FB-70F5-4C20-92FC-39ACD260CEE3}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tui-juhe", "tui-juhe", "{A1C75C3E-67D1-4BCE-89BF-44A735909BD5}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TuiJuhe", "framework\tui-juhe\LINGYUN.Abp.TuiJuhe\LINGYUN.Abp.TuiJuhe.csproj", "{60143C9C-E539-498A-9DBE-B95E6A8301A5}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.TuiJuhe.Tests", "tests\LINGYUN.Abp.Notifications.TuiJuhe.Tests\LINGYUN.Abp.Notifications.TuiJuhe.Tests.csproj", "{641DF0BA-0E79-441D-B328-FDA288A35CDE}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TuiJuhe.Tests", "tests\LINGYUN.Abp.TuiJuhe.Tests\LINGYUN.Abp.TuiJuhe.Tests.csproj", "{2020EA8D-F276-498D-92D1-94D1E25F8E1A}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TuiJuhe.SettingManagement", "framework\tui-juhe\LINGYUN.Abp.TuiJuhe.SettingManagement\LINGYUN.Abp.TuiJuhe.SettingManagement.csproj", "{2A3DF8B2-4760-41C4-9337-44FEE29B17CD}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dynamic-queryable", "dynamic-queryable", "{3975D028-3672-4D23-BF77-B7F4A445D44E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Linq.Dynamic.Queryable", "framework\dynamic-queryable\LINGYUN.Linq.Dynamic.Queryable\LINGYUN.Linq.Dynamic.Queryable.csproj", "{5512A359-80E8-440C-B652-7C96F614DD9E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dynamic.Queryable.Application.Contracts", "framework\dynamic-queryable\LINGYUN.Abp.Dynamic.Queryable.Application.Contracts\LINGYUN.Abp.Dynamic.Queryable.Application.Contracts.csproj", "{6A23EE81-0CA7-4CA7-859D-6ADB669DF0E1}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dynamic.Queryable.Application", "framework\dynamic-queryable\LINGYUN.Abp.Dynamic.Queryable.Application\LINGYUN.Abp.Dynamic.Queryable.Application.csproj", "{EC7970DC-A656-46A7-9873-A730FE72B213}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dynamic.Queryable.HttpApi", "framework\dynamic-queryable\LINGYUN.Abp.Dynamic.Queryable.HttpApi\LINGYUN.Abp.Dynamic.Queryable.HttpApi.csproj", "{F515E8FA-449F-4D54-98A7-0F7DF1AA3C94}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Linq.Dynamic.Queryable.Tests", "tests\LINGYUN.Linq.Dynamic.Queryable.Tests\LINGYUN.Linq.Dynamic.Queryable.Tests.csproj", "{E9AD81CA-D992-4F74-BD23-680CF98BE262}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.DynamicQueryable.EntityFrameworkCore.Tests", "tests\LINGYUN.Abp.DynamicQueryable.EntityFrameworkCore.Tests\LINGYUN.Abp.DynamicQueryable.EntityFrameworkCore.Tests.csproj", "{2E29FBF7-CECB-4DF9-9E02-5AFB704DDD10}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Localization.CultureMap", "framework\localization\LINGYUN.Abp.Localization.CultureMap\LINGYUN.Abp.Localization.CultureMap.csproj", "{1206B9FC-0177-4061-A06E-F82B2CC01ACE}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Localization.Persistence", "framework\localization\LINGYUN.Abp.Localization.Persistence\LINGYUN.Abp.Localization.Persistence.csproj", "{E097FAEC-5015-4159-BC00-A737483EFA80}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.Mvc.Localization", "framework\localization\LINGYUN.Abp.AspNetCore.Mvc.Localization\LINGYUN.Abp.AspNetCore.Mvc.Localization.csproj", "{809C86E9-0C70-41E4-B26D-D9AFF34F03D0}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tencent-cloud", "tencent-cloud", "{C12EEBC0-0407-4AEF-81C4-EDF5E22BB00E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Tencent", "framework\cloud-tencent\LINGYUN.Abp.Tencent\LINGYUN.Abp.Tencent.csproj", "{B6A5E070-3A2A-4F53-8391-0CA0C60B7701}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Sms.Tencent", "framework\cloud-tencent\LINGYUN.Abp.Sms.Tencent\LINGYUN.Abp.Sms.Tencent.csproj", "{33CBF722-B166-4B68-9CB3-1293F5C78EF5}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Tencent.QQ", "framework\cloud-tencent\LINGYUN.Abp.Tencent.QQ\LINGYUN.Abp.Tencent.QQ.csproj", "{4CEFE059-B30E-4121-AA12-10EC72709758}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BlobStoring.Tencent", "framework\cloud-tencent\LINGYUN.Abp.BlobStoring.Tencent\LINGYUN.Abp.BlobStoring.Tencent.csproj", "{C9EC8CCF-5CA7-4332-B7B7-FF9B094FA418}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Tencent.TTS", "framework\cloud-tencent\LINGYUN.Abp.Tencent.TTS\LINGYUN.Abp.Tencent.TTS.csproj", "{4059233C-C651-4DA2-A1BC-26196362062A}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{B8DA7627-E691-400A-AE4D-0E151A6EA0F8}"
+ ProjectSection(SolutionItems) = preProject
+ ..\common.props = ..\common.props
+ ..\common.secrets.props = ..\common.secrets.props
+ ..\configureawait.props = ..\configureawait.props
+ ..\Directory.Build.props = ..\Directory.Build.props
+ ..\Directory.Packages.props = ..\Directory.Packages.props
+ EndProjectSection
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.Mvc.Idempotent", "framework\mvc\LINGYUN.Abp.AspNetCore.Mvc.Idempotent\LINGYUN.Abp.AspNetCore.Mvc.Idempotent.csproj", "{347413DD-1B30-46B5-87A0-828A11FAA87D}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Idempotent", "framework\common\LINGYUN.Abp.Idempotent\LINGYUN.Abp.Idempotent.csproj", "{13FCEB03-E300-4CE2-A789-78D9F41C903E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.Mvc.Idempotent.Wrapper", "framework\mvc\LINGYUN.Abp.AspNetCore.Mvc.Idempotent.Wrapper\LINGYUN.Abp.AspNetCore.Mvc.Idempotent.Wrapper.csproj", "{8B15AAB5-18BB-4A2E-86F1-4A2F04C9FAFF}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.TuiJuhe", "modules\realtime-notifications\LINGYUN.Abp.Notifications.TuiJuhe\LINGYUN.Abp.Notifications.TuiJuhe.csproj", "{57FCECAF-11F0-46C8-A74B-55C7AE76E8FE}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.WxPusher", "modules\realtime-notifications\LINGYUN.Abp.Notifications.WxPusher\LINGYUN.Abp.Notifications.WxPusher.csproj", "{7433B116-806E-4500-8FF8-6143C4140BFD}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.WeChat.MiniProgram", "modules\realtime-notifications\LINGYUN.Abp.Notifications.WeChat.MiniProgram\LINGYUN.Abp.Notifications.WeChat.MiniProgram.csproj", "{2C01C5C9-F762-4455-AD66-810BEFEE67B5}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ PostgreSQL|Any CPU = PostgreSQL|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {5A87E9DD-3340-44DC-9564-4D8832A0228E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5A87E9DD-3340-44DC-9564-4D8832A0228E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5A87E9DD-3340-44DC-9564-4D8832A0228E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5A87E9DD-3340-44DC-9564-4D8832A0228E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5A87E9DD-3340-44DC-9564-4D8832A0228E}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {5A87E9DD-3340-44DC-9564-4D8832A0228E}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {E9BE3C65-2AB2-4CE8-8EB9-5C91B329ADB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E9BE3C65-2AB2-4CE8-8EB9-5C91B329ADB4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E9BE3C65-2AB2-4CE8-8EB9-5C91B329ADB4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E9BE3C65-2AB2-4CE8-8EB9-5C91B329ADB4}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E9BE3C65-2AB2-4CE8-8EB9-5C91B329ADB4}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {E9BE3C65-2AB2-4CE8-8EB9-5C91B329ADB4}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {E9AEC9D6-1FE7-4B00-BAC5-2C3D4B63CCA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E9AEC9D6-1FE7-4B00-BAC5-2C3D4B63CCA2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E9AEC9D6-1FE7-4B00-BAC5-2C3D4B63CCA2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E9AEC9D6-1FE7-4B00-BAC5-2C3D4B63CCA2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E9AEC9D6-1FE7-4B00-BAC5-2C3D4B63CCA2}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {E9AEC9D6-1FE7-4B00-BAC5-2C3D4B63CCA2}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {304D06E6-41EC-4DCB-AEAE-DBEEC75F9ADC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {304D06E6-41EC-4DCB-AEAE-DBEEC75F9ADC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {304D06E6-41EC-4DCB-AEAE-DBEEC75F9ADC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {304D06E6-41EC-4DCB-AEAE-DBEEC75F9ADC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {304D06E6-41EC-4DCB-AEAE-DBEEC75F9ADC}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {304D06E6-41EC-4DCB-AEAE-DBEEC75F9ADC}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {492710E6-EEF5-4390-A474-8FB2412ECBE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {492710E6-EEF5-4390-A474-8FB2412ECBE5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {492710E6-EEF5-4390-A474-8FB2412ECBE5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {492710E6-EEF5-4390-A474-8FB2412ECBE5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {492710E6-EEF5-4390-A474-8FB2412ECBE5}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {492710E6-EEF5-4390-A474-8FB2412ECBE5}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {CCF1EB86-29BD-4531-BB27-C9111CC67570}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CCF1EB86-29BD-4531-BB27-C9111CC67570}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CCF1EB86-29BD-4531-BB27-C9111CC67570}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CCF1EB86-29BD-4531-BB27-C9111CC67570}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CCF1EB86-29BD-4531-BB27-C9111CC67570}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {CCF1EB86-29BD-4531-BB27-C9111CC67570}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {7947D559-4288-486B-8FB3-D957CC7EDD32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7947D559-4288-486B-8FB3-D957CC7EDD32}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7947D559-4288-486B-8FB3-D957CC7EDD32}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7947D559-4288-486B-8FB3-D957CC7EDD32}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7947D559-4288-486B-8FB3-D957CC7EDD32}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {7947D559-4288-486B-8FB3-D957CC7EDD32}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {A4195E41-3919-4C3E-8768-7F277B583D16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A4195E41-3919-4C3E-8768-7F277B583D16}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A4195E41-3919-4C3E-8768-7F277B583D16}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A4195E41-3919-4C3E-8768-7F277B583D16}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A4195E41-3919-4C3E-8768-7F277B583D16}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {A4195E41-3919-4C3E-8768-7F277B583D16}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {60083380-062C-4914-9E4E-5AE6637CCC3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {60083380-062C-4914-9E4E-5AE6637CCC3F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {60083380-062C-4914-9E4E-5AE6637CCC3F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {60083380-062C-4914-9E4E-5AE6637CCC3F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {60083380-062C-4914-9E4E-5AE6637CCC3F}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {60083380-062C-4914-9E4E-5AE6637CCC3F}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {9C6E9EE2-5C83-4D96-A7B7-32798FEF2845}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9C6E9EE2-5C83-4D96-A7B7-32798FEF2845}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9C6E9EE2-5C83-4D96-A7B7-32798FEF2845}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9C6E9EE2-5C83-4D96-A7B7-32798FEF2845}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9C6E9EE2-5C83-4D96-A7B7-32798FEF2845}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {9C6E9EE2-5C83-4D96-A7B7-32798FEF2845}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {34C1E979-65B9-46F5-B7BA-60F227EBA093}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {34C1E979-65B9-46F5-B7BA-60F227EBA093}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {34C1E979-65B9-46F5-B7BA-60F227EBA093}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {34C1E979-65B9-46F5-B7BA-60F227EBA093}.Release|Any CPU.Build.0 = Release|Any CPU
+ {34C1E979-65B9-46F5-B7BA-60F227EBA093}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {34C1E979-65B9-46F5-B7BA-60F227EBA093}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {80A56461-0ACC-4069-B571-87DCA064B2EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {80A56461-0ACC-4069-B571-87DCA064B2EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {80A56461-0ACC-4069-B571-87DCA064B2EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {80A56461-0ACC-4069-B571-87DCA064B2EF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {80A56461-0ACC-4069-B571-87DCA064B2EF}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {80A56461-0ACC-4069-B571-87DCA064B2EF}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {568D2C50-1C31-4C31-89A2-C608FA93C6FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {568D2C50-1C31-4C31-89A2-C608FA93C6FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {568D2C50-1C31-4C31-89A2-C608FA93C6FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {568D2C50-1C31-4C31-89A2-C608FA93C6FD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {568D2C50-1C31-4C31-89A2-C608FA93C6FD}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {568D2C50-1C31-4C31-89A2-C608FA93C6FD}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {12451B83-18DE-4E93-B98C-509477D53D5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {12451B83-18DE-4E93-B98C-509477D53D5E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {12451B83-18DE-4E93-B98C-509477D53D5E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {12451B83-18DE-4E93-B98C-509477D53D5E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {12451B83-18DE-4E93-B98C-509477D53D5E}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {12451B83-18DE-4E93-B98C-509477D53D5E}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {AAD0B6A7-847A-4537-A300-50E37F4B70CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {AAD0B6A7-847A-4537-A300-50E37F4B70CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {AAD0B6A7-847A-4537-A300-50E37F4B70CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {AAD0B6A7-847A-4537-A300-50E37F4B70CC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {AAD0B6A7-847A-4537-A300-50E37F4B70CC}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {AAD0B6A7-847A-4537-A300-50E37F4B70CC}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {5B5C2372-2EAB-4559-BBCB-0C1C9A7158DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5B5C2372-2EAB-4559-BBCB-0C1C9A7158DB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5B5C2372-2EAB-4559-BBCB-0C1C9A7158DB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5B5C2372-2EAB-4559-BBCB-0C1C9A7158DB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5B5C2372-2EAB-4559-BBCB-0C1C9A7158DB}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {5B5C2372-2EAB-4559-BBCB-0C1C9A7158DB}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {2A0C5EF1-CB21-4656-8C32-B5673F6B82D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2A0C5EF1-CB21-4656-8C32-B5673F6B82D2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2A0C5EF1-CB21-4656-8C32-B5673F6B82D2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2A0C5EF1-CB21-4656-8C32-B5673F6B82D2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2A0C5EF1-CB21-4656-8C32-B5673F6B82D2}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {2A0C5EF1-CB21-4656-8C32-B5673F6B82D2}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {3021DD8B-EA8F-4A88-BC2C-1BBEDC6255FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3021DD8B-EA8F-4A88-BC2C-1BBEDC6255FE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3021DD8B-EA8F-4A88-BC2C-1BBEDC6255FE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3021DD8B-EA8F-4A88-BC2C-1BBEDC6255FE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3021DD8B-EA8F-4A88-BC2C-1BBEDC6255FE}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {3021DD8B-EA8F-4A88-BC2C-1BBEDC6255FE}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {B31CEE79-45F6-4BB9-9EEB-08843C324B37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B31CEE79-45F6-4BB9-9EEB-08843C324B37}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B31CEE79-45F6-4BB9-9EEB-08843C324B37}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B31CEE79-45F6-4BB9-9EEB-08843C324B37}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B31CEE79-45F6-4BB9-9EEB-08843C324B37}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {B31CEE79-45F6-4BB9-9EEB-08843C324B37}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {865D5508-63CD-4D44-9F5B-AE5CD4A43D08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {865D5508-63CD-4D44-9F5B-AE5CD4A43D08}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {865D5508-63CD-4D44-9F5B-AE5CD4A43D08}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {865D5508-63CD-4D44-9F5B-AE5CD4A43D08}.Release|Any CPU.Build.0 = Release|Any CPU
+ {865D5508-63CD-4D44-9F5B-AE5CD4A43D08}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {865D5508-63CD-4D44-9F5B-AE5CD4A43D08}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {ECAA4B82-A240-4747-888C-FACD8634D389}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {ECAA4B82-A240-4747-888C-FACD8634D389}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {ECAA4B82-A240-4747-888C-FACD8634D389}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {ECAA4B82-A240-4747-888C-FACD8634D389}.Release|Any CPU.Build.0 = Release|Any CPU
+ {ECAA4B82-A240-4747-888C-FACD8634D389}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {ECAA4B82-A240-4747-888C-FACD8634D389}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {8AF8FD6B-634F-41FA-B421-A4ACFD159FE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8AF8FD6B-634F-41FA-B421-A4ACFD159FE0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8AF8FD6B-634F-41FA-B421-A4ACFD159FE0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8AF8FD6B-634F-41FA-B421-A4ACFD159FE0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8AF8FD6B-634F-41FA-B421-A4ACFD159FE0}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {8AF8FD6B-634F-41FA-B421-A4ACFD159FE0}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {3B455AA7-B165-4EA0-8870-DB8DA5C76FC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3B455AA7-B165-4EA0-8870-DB8DA5C76FC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3B455AA7-B165-4EA0-8870-DB8DA5C76FC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3B455AA7-B165-4EA0-8870-DB8DA5C76FC5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3B455AA7-B165-4EA0-8870-DB8DA5C76FC5}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {3B455AA7-B165-4EA0-8870-DB8DA5C76FC5}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {99F8F254-A76E-43BB-8048-CC17EE1C8527}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {99F8F254-A76E-43BB-8048-CC17EE1C8527}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {99F8F254-A76E-43BB-8048-CC17EE1C8527}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {99F8F254-A76E-43BB-8048-CC17EE1C8527}.Release|Any CPU.Build.0 = Release|Any CPU
+ {99F8F254-A76E-43BB-8048-CC17EE1C8527}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {99F8F254-A76E-43BB-8048-CC17EE1C8527}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {15FC0C39-A604-491F-91F6-BD44167FC5F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {15FC0C39-A604-491F-91F6-BD44167FC5F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {15FC0C39-A604-491F-91F6-BD44167FC5F6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {15FC0C39-A604-491F-91F6-BD44167FC5F6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {15FC0C39-A604-491F-91F6-BD44167FC5F6}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {15FC0C39-A604-491F-91F6-BD44167FC5F6}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {9E59B1DB-E0D5-485D-BDA0-B6C31E1358A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9E59B1DB-E0D5-485D-BDA0-B6C31E1358A8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9E59B1DB-E0D5-485D-BDA0-B6C31E1358A8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9E59B1DB-E0D5-485D-BDA0-B6C31E1358A8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9E59B1DB-E0D5-485D-BDA0-B6C31E1358A8}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {9E59B1DB-E0D5-485D-BDA0-B6C31E1358A8}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {16942653-B746-4917-B3BF-464C99F8832F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {16942653-B746-4917-B3BF-464C99F8832F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {16942653-B746-4917-B3BF-464C99F8832F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {16942653-B746-4917-B3BF-464C99F8832F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {16942653-B746-4917-B3BF-464C99F8832F}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {16942653-B746-4917-B3BF-464C99F8832F}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {D0717513-2CEE-4AD5-A1DA-A08EA5DE6DD6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D0717513-2CEE-4AD5-A1DA-A08EA5DE6DD6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D0717513-2CEE-4AD5-A1DA-A08EA5DE6DD6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D0717513-2CEE-4AD5-A1DA-A08EA5DE6DD6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D0717513-2CEE-4AD5-A1DA-A08EA5DE6DD6}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {D0717513-2CEE-4AD5-A1DA-A08EA5DE6DD6}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {A7A28D6C-6EDB-4615-8899-7DE1D435B750}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A7A28D6C-6EDB-4615-8899-7DE1D435B750}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A7A28D6C-6EDB-4615-8899-7DE1D435B750}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A7A28D6C-6EDB-4615-8899-7DE1D435B750}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A7A28D6C-6EDB-4615-8899-7DE1D435B750}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {A7A28D6C-6EDB-4615-8899-7DE1D435B750}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {17A8455F-D413-4664-AEFA-1ECAE9ED4B19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {17A8455F-D413-4664-AEFA-1ECAE9ED4B19}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {17A8455F-D413-4664-AEFA-1ECAE9ED4B19}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {17A8455F-D413-4664-AEFA-1ECAE9ED4B19}.Release|Any CPU.Build.0 = Release|Any CPU
+ {17A8455F-D413-4664-AEFA-1ECAE9ED4B19}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {17A8455F-D413-4664-AEFA-1ECAE9ED4B19}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {3BAA3D38-96C2-4C4C-B790-AE2997BFDE25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3BAA3D38-96C2-4C4C-B790-AE2997BFDE25}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3BAA3D38-96C2-4C4C-B790-AE2997BFDE25}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3BAA3D38-96C2-4C4C-B790-AE2997BFDE25}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3BAA3D38-96C2-4C4C-B790-AE2997BFDE25}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {3BAA3D38-96C2-4C4C-B790-AE2997BFDE25}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {2E35CB93-2E9C-4EE1-845F-72A40271648E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2E35CB93-2E9C-4EE1-845F-72A40271648E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2E35CB93-2E9C-4EE1-845F-72A40271648E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2E35CB93-2E9C-4EE1-845F-72A40271648E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2E35CB93-2E9C-4EE1-845F-72A40271648E}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {2E35CB93-2E9C-4EE1-845F-72A40271648E}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {8FB74B18-CA5C-4DC3-8DFA-600133A05712}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8FB74B18-CA5C-4DC3-8DFA-600133A05712}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8FB74B18-CA5C-4DC3-8DFA-600133A05712}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8FB74B18-CA5C-4DC3-8DFA-600133A05712}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8FB74B18-CA5C-4DC3-8DFA-600133A05712}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {8FB74B18-CA5C-4DC3-8DFA-600133A05712}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {3DBF0975-B09D-49CA-9AF8-69175EDB9D52}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3DBF0975-B09D-49CA-9AF8-69175EDB9D52}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3DBF0975-B09D-49CA-9AF8-69175EDB9D52}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3DBF0975-B09D-49CA-9AF8-69175EDB9D52}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3DBF0975-B09D-49CA-9AF8-69175EDB9D52}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {3DBF0975-B09D-49CA-9AF8-69175EDB9D52}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {93DD5A05-B67A-4E11-BB56-F6B4E7F1489C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {93DD5A05-B67A-4E11-BB56-F6B4E7F1489C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {93DD5A05-B67A-4E11-BB56-F6B4E7F1489C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {93DD5A05-B67A-4E11-BB56-F6B4E7F1489C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {93DD5A05-B67A-4E11-BB56-F6B4E7F1489C}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {93DD5A05-B67A-4E11-BB56-F6B4E7F1489C}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {221725FF-6C01-4F41-9F29-AC04C7D52611}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {221725FF-6C01-4F41-9F29-AC04C7D52611}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {221725FF-6C01-4F41-9F29-AC04C7D52611}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {221725FF-6C01-4F41-9F29-AC04C7D52611}.Release|Any CPU.Build.0 = Release|Any CPU
+ {221725FF-6C01-4F41-9F29-AC04C7D52611}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {221725FF-6C01-4F41-9F29-AC04C7D52611}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {1B494EA1-28CF-4A61-B0BE-70BBA425C316}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1B494EA1-28CF-4A61-B0BE-70BBA425C316}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1B494EA1-28CF-4A61-B0BE-70BBA425C316}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1B494EA1-28CF-4A61-B0BE-70BBA425C316}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1B494EA1-28CF-4A61-B0BE-70BBA425C316}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {1B494EA1-28CF-4A61-B0BE-70BBA425C316}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {7F767ACF-754A-4EBC-8936-3C1402B6EF82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7F767ACF-754A-4EBC-8936-3C1402B6EF82}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7F767ACF-754A-4EBC-8936-3C1402B6EF82}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7F767ACF-754A-4EBC-8936-3C1402B6EF82}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7F767ACF-754A-4EBC-8936-3C1402B6EF82}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {7F767ACF-754A-4EBC-8936-3C1402B6EF82}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {8CC72F4E-F134-4A43-9037-5D4D1F29B68A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8CC72F4E-F134-4A43-9037-5D4D1F29B68A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8CC72F4E-F134-4A43-9037-5D4D1F29B68A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8CC72F4E-F134-4A43-9037-5D4D1F29B68A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8CC72F4E-F134-4A43-9037-5D4D1F29B68A}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {8CC72F4E-F134-4A43-9037-5D4D1F29B68A}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {94FEA59E-3B6D-41A0-9E44-BA5D6477244F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {94FEA59E-3B6D-41A0-9E44-BA5D6477244F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {94FEA59E-3B6D-41A0-9E44-BA5D6477244F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {94FEA59E-3B6D-41A0-9E44-BA5D6477244F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {94FEA59E-3B6D-41A0-9E44-BA5D6477244F}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {94FEA59E-3B6D-41A0-9E44-BA5D6477244F}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {C72E0407-06FE-4CAA-86E5-30FF216A7B82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C72E0407-06FE-4CAA-86E5-30FF216A7B82}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C72E0407-06FE-4CAA-86E5-30FF216A7B82}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C72E0407-06FE-4CAA-86E5-30FF216A7B82}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C72E0407-06FE-4CAA-86E5-30FF216A7B82}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {C72E0407-06FE-4CAA-86E5-30FF216A7B82}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {E74FF671-6E5E-430C-9211-ED910634DDBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E74FF671-6E5E-430C-9211-ED910634DDBE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E74FF671-6E5E-430C-9211-ED910634DDBE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E74FF671-6E5E-430C-9211-ED910634DDBE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E74FF671-6E5E-430C-9211-ED910634DDBE}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {E74FF671-6E5E-430C-9211-ED910634DDBE}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {879791A3-BD69-42E4-A3BC-9878EFAADDD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {879791A3-BD69-42E4-A3BC-9878EFAADDD1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {879791A3-BD69-42E4-A3BC-9878EFAADDD1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {879791A3-BD69-42E4-A3BC-9878EFAADDD1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {879791A3-BD69-42E4-A3BC-9878EFAADDD1}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {879791A3-BD69-42E4-A3BC-9878EFAADDD1}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {5133D83C-9B23-491C-8780-3F9BBDBD0351}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5133D83C-9B23-491C-8780-3F9BBDBD0351}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5133D83C-9B23-491C-8780-3F9BBDBD0351}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5133D83C-9B23-491C-8780-3F9BBDBD0351}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5133D83C-9B23-491C-8780-3F9BBDBD0351}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {5133D83C-9B23-491C-8780-3F9BBDBD0351}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {B8E5026B-188F-422F-A1EA-502C4A394585}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B8E5026B-188F-422F-A1EA-502C4A394585}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B8E5026B-188F-422F-A1EA-502C4A394585}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B8E5026B-188F-422F-A1EA-502C4A394585}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B8E5026B-188F-422F-A1EA-502C4A394585}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {B8E5026B-188F-422F-A1EA-502C4A394585}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {E861BE01-689D-4637-A5DC-E78E234F83FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E861BE01-689D-4637-A5DC-E78E234F83FB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E861BE01-689D-4637-A5DC-E78E234F83FB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E861BE01-689D-4637-A5DC-E78E234F83FB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E861BE01-689D-4637-A5DC-E78E234F83FB}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {E861BE01-689D-4637-A5DC-E78E234F83FB}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {CF253F0A-3A45-40EE-875F-0E57C8968C48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CF253F0A-3A45-40EE-875F-0E57C8968C48}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CF253F0A-3A45-40EE-875F-0E57C8968C48}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CF253F0A-3A45-40EE-875F-0E57C8968C48}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CF253F0A-3A45-40EE-875F-0E57C8968C48}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {CF253F0A-3A45-40EE-875F-0E57C8968C48}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {EF03A0A7-A93E-4DEF-A33E-F5A82E995FBF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EF03A0A7-A93E-4DEF-A33E-F5A82E995FBF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EF03A0A7-A93E-4DEF-A33E-F5A82E995FBF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EF03A0A7-A93E-4DEF-A33E-F5A82E995FBF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EF03A0A7-A93E-4DEF-A33E-F5A82E995FBF}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {EF03A0A7-A93E-4DEF-A33E-F5A82E995FBF}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {9403FC1F-9677-489F-A03A-0B456153EE86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9403FC1F-9677-489F-A03A-0B456153EE86}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9403FC1F-9677-489F-A03A-0B456153EE86}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9403FC1F-9677-489F-A03A-0B456153EE86}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9403FC1F-9677-489F-A03A-0B456153EE86}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {9403FC1F-9677-489F-A03A-0B456153EE86}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {26E87199-F0AD-4B30-B0E4-080B12E6F8FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {26E87199-F0AD-4B30-B0E4-080B12E6F8FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {26E87199-F0AD-4B30-B0E4-080B12E6F8FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {26E87199-F0AD-4B30-B0E4-080B12E6F8FC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {26E87199-F0AD-4B30-B0E4-080B12E6F8FC}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {26E87199-F0AD-4B30-B0E4-080B12E6F8FC}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {8968EDAF-9F5C-4786-AF2A-D3928B70C3EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8968EDAF-9F5C-4786-AF2A-D3928B70C3EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8968EDAF-9F5C-4786-AF2A-D3928B70C3EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8968EDAF-9F5C-4786-AF2A-D3928B70C3EC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8968EDAF-9F5C-4786-AF2A-D3928B70C3EC}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {8968EDAF-9F5C-4786-AF2A-D3928B70C3EC}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {CF30221B-CA7A-42CD-B91A-B7224AB2F38B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CF30221B-CA7A-42CD-B91A-B7224AB2F38B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CF30221B-CA7A-42CD-B91A-B7224AB2F38B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CF30221B-CA7A-42CD-B91A-B7224AB2F38B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CF30221B-CA7A-42CD-B91A-B7224AB2F38B}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {CF30221B-CA7A-42CD-B91A-B7224AB2F38B}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {191BB108-546E-4E70-978E-D6A8149C319C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {191BB108-546E-4E70-978E-D6A8149C319C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {191BB108-546E-4E70-978E-D6A8149C319C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {191BB108-546E-4E70-978E-D6A8149C319C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {191BB108-546E-4E70-978E-D6A8149C319C}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {191BB108-546E-4E70-978E-D6A8149C319C}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {DEB98AD7-9630-4F32-89E6-C1A118D1D18C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DEB98AD7-9630-4F32-89E6-C1A118D1D18C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DEB98AD7-9630-4F32-89E6-C1A118D1D18C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DEB98AD7-9630-4F32-89E6-C1A118D1D18C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DEB98AD7-9630-4F32-89E6-C1A118D1D18C}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {DEB98AD7-9630-4F32-89E6-C1A118D1D18C}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {00F1D30E-A6F6-464F-A80B-D423CFAA79A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {00F1D30E-A6F6-464F-A80B-D423CFAA79A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {00F1D30E-A6F6-464F-A80B-D423CFAA79A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {00F1D30E-A6F6-464F-A80B-D423CFAA79A3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {00F1D30E-A6F6-464F-A80B-D423CFAA79A3}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {00F1D30E-A6F6-464F-A80B-D423CFAA79A3}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {2584D823-53A7-4184-8295-719A41E5B440}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2584D823-53A7-4184-8295-719A41E5B440}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2584D823-53A7-4184-8295-719A41E5B440}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2584D823-53A7-4184-8295-719A41E5B440}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2584D823-53A7-4184-8295-719A41E5B440}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {2584D823-53A7-4184-8295-719A41E5B440}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {C1A91534-E84F-4A98-9A78-135988030646}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C1A91534-E84F-4A98-9A78-135988030646}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C1A91534-E84F-4A98-9A78-135988030646}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C1A91534-E84F-4A98-9A78-135988030646}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C1A91534-E84F-4A98-9A78-135988030646}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {C1A91534-E84F-4A98-9A78-135988030646}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {0CC508D7-480C-4409-842A-A6C10E11ACFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0CC508D7-480C-4409-842A-A6C10E11ACFD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0CC508D7-480C-4409-842A-A6C10E11ACFD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0CC508D7-480C-4409-842A-A6C10E11ACFD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0CC508D7-480C-4409-842A-A6C10E11ACFD}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {0CC508D7-480C-4409-842A-A6C10E11ACFD}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {F8330A1E-6CC3-4E90-8B5C-DCD8FA00CF5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F8330A1E-6CC3-4E90-8B5C-DCD8FA00CF5C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F8330A1E-6CC3-4E90-8B5C-DCD8FA00CF5C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F8330A1E-6CC3-4E90-8B5C-DCD8FA00CF5C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F8330A1E-6CC3-4E90-8B5C-DCD8FA00CF5C}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {F8330A1E-6CC3-4E90-8B5C-DCD8FA00CF5C}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {CE7E525F-8628-4076-8A2E-B615B944D140}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CE7E525F-8628-4076-8A2E-B615B944D140}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CE7E525F-8628-4076-8A2E-B615B944D140}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CE7E525F-8628-4076-8A2E-B615B944D140}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CE7E525F-8628-4076-8A2E-B615B944D140}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {CE7E525F-8628-4076-8A2E-B615B944D140}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {CD556F2A-A96B-43A2-8BB3-6C0EBA27EB02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CD556F2A-A96B-43A2-8BB3-6C0EBA27EB02}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CD556F2A-A96B-43A2-8BB3-6C0EBA27EB02}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CD556F2A-A96B-43A2-8BB3-6C0EBA27EB02}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CD556F2A-A96B-43A2-8BB3-6C0EBA27EB02}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {CD556F2A-A96B-43A2-8BB3-6C0EBA27EB02}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {CCB4AE25-7059-4CA0-A3AB-CBB863A3F672}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CCB4AE25-7059-4CA0-A3AB-CBB863A3F672}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CCB4AE25-7059-4CA0-A3AB-CBB863A3F672}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CCB4AE25-7059-4CA0-A3AB-CBB863A3F672}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CCB4AE25-7059-4CA0-A3AB-CBB863A3F672}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {CCB4AE25-7059-4CA0-A3AB-CBB863A3F672}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {3993A315-B250-4C5D-98C7-90FD06841B66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3993A315-B250-4C5D-98C7-90FD06841B66}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3993A315-B250-4C5D-98C7-90FD06841B66}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3993A315-B250-4C5D-98C7-90FD06841B66}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3993A315-B250-4C5D-98C7-90FD06841B66}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {3993A315-B250-4C5D-98C7-90FD06841B66}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {519BF5DA-30E4-40CF-829A-93F526E2AED8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {519BF5DA-30E4-40CF-829A-93F526E2AED8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {519BF5DA-30E4-40CF-829A-93F526E2AED8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {519BF5DA-30E4-40CF-829A-93F526E2AED8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {519BF5DA-30E4-40CF-829A-93F526E2AED8}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {519BF5DA-30E4-40CF-829A-93F526E2AED8}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {E16CCB14-E629-48E6-9603-53BBFF185318}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E16CCB14-E629-48E6-9603-53BBFF185318}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E16CCB14-E629-48E6-9603-53BBFF185318}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E16CCB14-E629-48E6-9603-53BBFF185318}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E16CCB14-E629-48E6-9603-53BBFF185318}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {E16CCB14-E629-48E6-9603-53BBFF185318}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {FBE7D8CB-1D99-4342-A953-B9AB46E0B14D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FBE7D8CB-1D99-4342-A953-B9AB46E0B14D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FBE7D8CB-1D99-4342-A953-B9AB46E0B14D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FBE7D8CB-1D99-4342-A953-B9AB46E0B14D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FBE7D8CB-1D99-4342-A953-B9AB46E0B14D}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {FBE7D8CB-1D99-4342-A953-B9AB46E0B14D}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {2F556889-006C-4A9C-8CA3-E31200C06FC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2F556889-006C-4A9C-8CA3-E31200C06FC9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2F556889-006C-4A9C-8CA3-E31200C06FC9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2F556889-006C-4A9C-8CA3-E31200C06FC9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2F556889-006C-4A9C-8CA3-E31200C06FC9}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {2F556889-006C-4A9C-8CA3-E31200C06FC9}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {73C9A7E7-846D-49E2-B223-E705D6C48BE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {73C9A7E7-846D-49E2-B223-E705D6C48BE7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {73C9A7E7-846D-49E2-B223-E705D6C48BE7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {73C9A7E7-846D-49E2-B223-E705D6C48BE7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {73C9A7E7-846D-49E2-B223-E705D6C48BE7}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {73C9A7E7-846D-49E2-B223-E705D6C48BE7}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {328B0863-23BE-43FD-98DD-FF0C92D5BEF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {328B0863-23BE-43FD-98DD-FF0C92D5BEF0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {328B0863-23BE-43FD-98DD-FF0C92D5BEF0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {328B0863-23BE-43FD-98DD-FF0C92D5BEF0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {328B0863-23BE-43FD-98DD-FF0C92D5BEF0}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {328B0863-23BE-43FD-98DD-FF0C92D5BEF0}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {D72748AF-2CC8-4B5B-9710-ECDE5D812D7F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D72748AF-2CC8-4B5B-9710-ECDE5D812D7F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D72748AF-2CC8-4B5B-9710-ECDE5D812D7F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D72748AF-2CC8-4B5B-9710-ECDE5D812D7F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D72748AF-2CC8-4B5B-9710-ECDE5D812D7F}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {D72748AF-2CC8-4B5B-9710-ECDE5D812D7F}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {BD4165DB-F8A4-4715-A05A-CC08F6A18D67}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BD4165DB-F8A4-4715-A05A-CC08F6A18D67}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BD4165DB-F8A4-4715-A05A-CC08F6A18D67}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BD4165DB-F8A4-4715-A05A-CC08F6A18D67}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BD4165DB-F8A4-4715-A05A-CC08F6A18D67}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {BD4165DB-F8A4-4715-A05A-CC08F6A18D67}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {AE5E6DE8-FC02-4633-BA49-C4B8ABADB502}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {AE5E6DE8-FC02-4633-BA49-C4B8ABADB502}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {AE5E6DE8-FC02-4633-BA49-C4B8ABADB502}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {AE5E6DE8-FC02-4633-BA49-C4B8ABADB502}.Release|Any CPU.Build.0 = Release|Any CPU
+ {AE5E6DE8-FC02-4633-BA49-C4B8ABADB502}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {AE5E6DE8-FC02-4633-BA49-C4B8ABADB502}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {31AED9ED-29BD-4F2F-8D3A-F00CBB9FC73C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {31AED9ED-29BD-4F2F-8D3A-F00CBB9FC73C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {31AED9ED-29BD-4F2F-8D3A-F00CBB9FC73C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {31AED9ED-29BD-4F2F-8D3A-F00CBB9FC73C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {31AED9ED-29BD-4F2F-8D3A-F00CBB9FC73C}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {31AED9ED-29BD-4F2F-8D3A-F00CBB9FC73C}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {2C8A6B4C-D6B2-44FE-9EF5-EC7480D2A6B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2C8A6B4C-D6B2-44FE-9EF5-EC7480D2A6B2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2C8A6B4C-D6B2-44FE-9EF5-EC7480D2A6B2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2C8A6B4C-D6B2-44FE-9EF5-EC7480D2A6B2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2C8A6B4C-D6B2-44FE-9EF5-EC7480D2A6B2}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {2C8A6B4C-D6B2-44FE-9EF5-EC7480D2A6B2}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {3CE350AF-5574-46EC-8120-8542350AED20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3CE350AF-5574-46EC-8120-8542350AED20}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3CE350AF-5574-46EC-8120-8542350AED20}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3CE350AF-5574-46EC-8120-8542350AED20}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3CE350AF-5574-46EC-8120-8542350AED20}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {3CE350AF-5574-46EC-8120-8542350AED20}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {33007EF7-BC1D-4B32-ACDA-6B9117200FAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {33007EF7-BC1D-4B32-ACDA-6B9117200FAD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {33007EF7-BC1D-4B32-ACDA-6B9117200FAD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {33007EF7-BC1D-4B32-ACDA-6B9117200FAD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {33007EF7-BC1D-4B32-ACDA-6B9117200FAD}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {33007EF7-BC1D-4B32-ACDA-6B9117200FAD}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {B9592989-9F76-413C-8612-96E8C0CFA041}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B9592989-9F76-413C-8612-96E8C0CFA041}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B9592989-9F76-413C-8612-96E8C0CFA041}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B9592989-9F76-413C-8612-96E8C0CFA041}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B9592989-9F76-413C-8612-96E8C0CFA041}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {B9592989-9F76-413C-8612-96E8C0CFA041}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {7EDBCC52-3089-49F6-A56A-650850C9797E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7EDBCC52-3089-49F6-A56A-650850C9797E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7EDBCC52-3089-49F6-A56A-650850C9797E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7EDBCC52-3089-49F6-A56A-650850C9797E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7EDBCC52-3089-49F6-A56A-650850C9797E}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {7EDBCC52-3089-49F6-A56A-650850C9797E}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {FF518E10-C9AB-440C-8E8D-9CFF67A926AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FF518E10-C9AB-440C-8E8D-9CFF67A926AC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FF518E10-C9AB-440C-8E8D-9CFF67A926AC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FF518E10-C9AB-440C-8E8D-9CFF67A926AC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FF518E10-C9AB-440C-8E8D-9CFF67A926AC}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {FF518E10-C9AB-440C-8E8D-9CFF67A926AC}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {49E0B90B-8635-43D0-B0AB-9D484CAE68B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {49E0B90B-8635-43D0-B0AB-9D484CAE68B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {49E0B90B-8635-43D0-B0AB-9D484CAE68B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {49E0B90B-8635-43D0-B0AB-9D484CAE68B5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {49E0B90B-8635-43D0-B0AB-9D484CAE68B5}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {49E0B90B-8635-43D0-B0AB-9D484CAE68B5}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {3FF4CEA0-1555-4D62-AA81-B3B599253F8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3FF4CEA0-1555-4D62-AA81-B3B599253F8D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3FF4CEA0-1555-4D62-AA81-B3B599253F8D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3FF4CEA0-1555-4D62-AA81-B3B599253F8D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3FF4CEA0-1555-4D62-AA81-B3B599253F8D}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {3FF4CEA0-1555-4D62-AA81-B3B599253F8D}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {AFE75D2B-8853-488B-B5D5-277B58C5DBB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {AFE75D2B-8853-488B-B5D5-277B58C5DBB2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {AFE75D2B-8853-488B-B5D5-277B58C5DBB2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {AFE75D2B-8853-488B-B5D5-277B58C5DBB2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {AFE75D2B-8853-488B-B5D5-277B58C5DBB2}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {AFE75D2B-8853-488B-B5D5-277B58C5DBB2}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {D9339CBB-45B9-4701-B2AC-2A75FF20D77B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D9339CBB-45B9-4701-B2AC-2A75FF20D77B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D9339CBB-45B9-4701-B2AC-2A75FF20D77B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D9339CBB-45B9-4701-B2AC-2A75FF20D77B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D9339CBB-45B9-4701-B2AC-2A75FF20D77B}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {D9339CBB-45B9-4701-B2AC-2A75FF20D77B}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {474AA48F-65F9-436B-A0B1-1E95BD16CA8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {474AA48F-65F9-436B-A0B1-1E95BD16CA8D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {474AA48F-65F9-436B-A0B1-1E95BD16CA8D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {474AA48F-65F9-436B-A0B1-1E95BD16CA8D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {474AA48F-65F9-436B-A0B1-1E95BD16CA8D}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {474AA48F-65F9-436B-A0B1-1E95BD16CA8D}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {C71F6273-BCDE-4A63-A0CF-EAFD1D924DA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C71F6273-BCDE-4A63-A0CF-EAFD1D924DA0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C71F6273-BCDE-4A63-A0CF-EAFD1D924DA0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C71F6273-BCDE-4A63-A0CF-EAFD1D924DA0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C71F6273-BCDE-4A63-A0CF-EAFD1D924DA0}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {C71F6273-BCDE-4A63-A0CF-EAFD1D924DA0}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {5515C7CA-B512-4E36-A202-49A0158A0E74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5515C7CA-B512-4E36-A202-49A0158A0E74}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5515C7CA-B512-4E36-A202-49A0158A0E74}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5515C7CA-B512-4E36-A202-49A0158A0E74}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5515C7CA-B512-4E36-A202-49A0158A0E74}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {5515C7CA-B512-4E36-A202-49A0158A0E74}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {EBA67EAD-4958-46E3-9E0C-8186394D083F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EBA67EAD-4958-46E3-9E0C-8186394D083F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EBA67EAD-4958-46E3-9E0C-8186394D083F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EBA67EAD-4958-46E3-9E0C-8186394D083F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EBA67EAD-4958-46E3-9E0C-8186394D083F}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {EBA67EAD-4958-46E3-9E0C-8186394D083F}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {25891EE2-3166-420F-8408-E458030C4643}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {25891EE2-3166-420F-8408-E458030C4643}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {25891EE2-3166-420F-8408-E458030C4643}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {25891EE2-3166-420F-8408-E458030C4643}.Release|Any CPU.Build.0 = Release|Any CPU
+ {25891EE2-3166-420F-8408-E458030C4643}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {25891EE2-3166-420F-8408-E458030C4643}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {F051C960-AA61-4283-A088-611C0B96C953}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F051C960-AA61-4283-A088-611C0B96C953}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F051C960-AA61-4283-A088-611C0B96C953}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F051C960-AA61-4283-A088-611C0B96C953}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F051C960-AA61-4283-A088-611C0B96C953}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {F051C960-AA61-4283-A088-611C0B96C953}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {1435711B-D796-42AB-B567-0BB23F02EE08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1435711B-D796-42AB-B567-0BB23F02EE08}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1435711B-D796-42AB-B567-0BB23F02EE08}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1435711B-D796-42AB-B567-0BB23F02EE08}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1435711B-D796-42AB-B567-0BB23F02EE08}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {1435711B-D796-42AB-B567-0BB23F02EE08}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {1A072FF5-1A7E-4F78-B145-1AB873AEB8FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1A072FF5-1A7E-4F78-B145-1AB873AEB8FF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1A072FF5-1A7E-4F78-B145-1AB873AEB8FF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1A072FF5-1A7E-4F78-B145-1AB873AEB8FF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1A072FF5-1A7E-4F78-B145-1AB873AEB8FF}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {1A072FF5-1A7E-4F78-B145-1AB873AEB8FF}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {88412E3D-21C8-4FF1-8EB3-84CB74094336}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {88412E3D-21C8-4FF1-8EB3-84CB74094336}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {88412E3D-21C8-4FF1-8EB3-84CB74094336}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {88412E3D-21C8-4FF1-8EB3-84CB74094336}.Release|Any CPU.Build.0 = Release|Any CPU
+ {88412E3D-21C8-4FF1-8EB3-84CB74094336}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {88412E3D-21C8-4FF1-8EB3-84CB74094336}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {30FA01ED-921A-4E7D-9E83-6719538FB866}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {30FA01ED-921A-4E7D-9E83-6719538FB866}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {30FA01ED-921A-4E7D-9E83-6719538FB866}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {30FA01ED-921A-4E7D-9E83-6719538FB866}.Release|Any CPU.Build.0 = Release|Any CPU
+ {30FA01ED-921A-4E7D-9E83-6719538FB866}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {30FA01ED-921A-4E7D-9E83-6719538FB866}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {E6FDAD7B-4A7F-4CEB-9891-F8FC4E556C36}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E6FDAD7B-4A7F-4CEB-9891-F8FC4E556C36}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E6FDAD7B-4A7F-4CEB-9891-F8FC4E556C36}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E6FDAD7B-4A7F-4CEB-9891-F8FC4E556C36}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E6FDAD7B-4A7F-4CEB-9891-F8FC4E556C36}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {E6FDAD7B-4A7F-4CEB-9891-F8FC4E556C36}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {4CBB4A0C-6D23-44DD-BAF4-49D69ED35839}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4CBB4A0C-6D23-44DD-BAF4-49D69ED35839}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4CBB4A0C-6D23-44DD-BAF4-49D69ED35839}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4CBB4A0C-6D23-44DD-BAF4-49D69ED35839}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4CBB4A0C-6D23-44DD-BAF4-49D69ED35839}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {4CBB4A0C-6D23-44DD-BAF4-49D69ED35839}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {C2801414-550F-4A25-AD8D-68AC508211DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C2801414-550F-4A25-AD8D-68AC508211DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C2801414-550F-4A25-AD8D-68AC508211DC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C2801414-550F-4A25-AD8D-68AC508211DC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C2801414-550F-4A25-AD8D-68AC508211DC}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {C2801414-550F-4A25-AD8D-68AC508211DC}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {868A1718-4970-48D2-A256-08EF468302D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {868A1718-4970-48D2-A256-08EF468302D8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {868A1718-4970-48D2-A256-08EF468302D8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {868A1718-4970-48D2-A256-08EF468302D8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {868A1718-4970-48D2-A256-08EF468302D8}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {868A1718-4970-48D2-A256-08EF468302D8}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {B78E53AC-6BB8-402D-90CF-BEF1BD9558EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B78E53AC-6BB8-402D-90CF-BEF1BD9558EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B78E53AC-6BB8-402D-90CF-BEF1BD9558EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B78E53AC-6BB8-402D-90CF-BEF1BD9558EB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B78E53AC-6BB8-402D-90CF-BEF1BD9558EB}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {B78E53AC-6BB8-402D-90CF-BEF1BD9558EB}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {AA039B4E-CE12-43AC-8340-3D52463E971E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {AA039B4E-CE12-43AC-8340-3D52463E971E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {AA039B4E-CE12-43AC-8340-3D52463E971E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {AA039B4E-CE12-43AC-8340-3D52463E971E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {AA039B4E-CE12-43AC-8340-3D52463E971E}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {AA039B4E-CE12-43AC-8340-3D52463E971E}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {2C5C57FB-70F5-4C20-92FC-39ACD260CEE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2C5C57FB-70F5-4C20-92FC-39ACD260CEE3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2C5C57FB-70F5-4C20-92FC-39ACD260CEE3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2C5C57FB-70F5-4C20-92FC-39ACD260CEE3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2C5C57FB-70F5-4C20-92FC-39ACD260CEE3}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {2C5C57FB-70F5-4C20-92FC-39ACD260CEE3}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {60143C9C-E539-498A-9DBE-B95E6A8301A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {60143C9C-E539-498A-9DBE-B95E6A8301A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {60143C9C-E539-498A-9DBE-B95E6A8301A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {60143C9C-E539-498A-9DBE-B95E6A8301A5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {60143C9C-E539-498A-9DBE-B95E6A8301A5}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {60143C9C-E539-498A-9DBE-B95E6A8301A5}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {641DF0BA-0E79-441D-B328-FDA288A35CDE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {641DF0BA-0E79-441D-B328-FDA288A35CDE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {641DF0BA-0E79-441D-B328-FDA288A35CDE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {641DF0BA-0E79-441D-B328-FDA288A35CDE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {641DF0BA-0E79-441D-B328-FDA288A35CDE}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {641DF0BA-0E79-441D-B328-FDA288A35CDE}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {2020EA8D-F276-498D-92D1-94D1E25F8E1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2020EA8D-F276-498D-92D1-94D1E25F8E1A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2020EA8D-F276-498D-92D1-94D1E25F8E1A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2020EA8D-F276-498D-92D1-94D1E25F8E1A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2020EA8D-F276-498D-92D1-94D1E25F8E1A}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {2020EA8D-F276-498D-92D1-94D1E25F8E1A}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {2A3DF8B2-4760-41C4-9337-44FEE29B17CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2A3DF8B2-4760-41C4-9337-44FEE29B17CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2A3DF8B2-4760-41C4-9337-44FEE29B17CD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2A3DF8B2-4760-41C4-9337-44FEE29B17CD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2A3DF8B2-4760-41C4-9337-44FEE29B17CD}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {2A3DF8B2-4760-41C4-9337-44FEE29B17CD}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {5512A359-80E8-440C-B652-7C96F614DD9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5512A359-80E8-440C-B652-7C96F614DD9E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5512A359-80E8-440C-B652-7C96F614DD9E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5512A359-80E8-440C-B652-7C96F614DD9E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5512A359-80E8-440C-B652-7C96F614DD9E}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {5512A359-80E8-440C-B652-7C96F614DD9E}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {6A23EE81-0CA7-4CA7-859D-6ADB669DF0E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6A23EE81-0CA7-4CA7-859D-6ADB669DF0E1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6A23EE81-0CA7-4CA7-859D-6ADB669DF0E1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6A23EE81-0CA7-4CA7-859D-6ADB669DF0E1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6A23EE81-0CA7-4CA7-859D-6ADB669DF0E1}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {6A23EE81-0CA7-4CA7-859D-6ADB669DF0E1}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {EC7970DC-A656-46A7-9873-A730FE72B213}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EC7970DC-A656-46A7-9873-A730FE72B213}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EC7970DC-A656-46A7-9873-A730FE72B213}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EC7970DC-A656-46A7-9873-A730FE72B213}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EC7970DC-A656-46A7-9873-A730FE72B213}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {EC7970DC-A656-46A7-9873-A730FE72B213}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {F515E8FA-449F-4D54-98A7-0F7DF1AA3C94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F515E8FA-449F-4D54-98A7-0F7DF1AA3C94}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F515E8FA-449F-4D54-98A7-0F7DF1AA3C94}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F515E8FA-449F-4D54-98A7-0F7DF1AA3C94}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F515E8FA-449F-4D54-98A7-0F7DF1AA3C94}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {F515E8FA-449F-4D54-98A7-0F7DF1AA3C94}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {E9AD81CA-D992-4F74-BD23-680CF98BE262}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E9AD81CA-D992-4F74-BD23-680CF98BE262}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E9AD81CA-D992-4F74-BD23-680CF98BE262}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E9AD81CA-D992-4F74-BD23-680CF98BE262}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E9AD81CA-D992-4F74-BD23-680CF98BE262}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {E9AD81CA-D992-4F74-BD23-680CF98BE262}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {2E29FBF7-CECB-4DF9-9E02-5AFB704DDD10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2E29FBF7-CECB-4DF9-9E02-5AFB704DDD10}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2E29FBF7-CECB-4DF9-9E02-5AFB704DDD10}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2E29FBF7-CECB-4DF9-9E02-5AFB704DDD10}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2E29FBF7-CECB-4DF9-9E02-5AFB704DDD10}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {2E29FBF7-CECB-4DF9-9E02-5AFB704DDD10}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {1206B9FC-0177-4061-A06E-F82B2CC01ACE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1206B9FC-0177-4061-A06E-F82B2CC01ACE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1206B9FC-0177-4061-A06E-F82B2CC01ACE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1206B9FC-0177-4061-A06E-F82B2CC01ACE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1206B9FC-0177-4061-A06E-F82B2CC01ACE}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {1206B9FC-0177-4061-A06E-F82B2CC01ACE}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {E097FAEC-5015-4159-BC00-A737483EFA80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E097FAEC-5015-4159-BC00-A737483EFA80}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E097FAEC-5015-4159-BC00-A737483EFA80}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E097FAEC-5015-4159-BC00-A737483EFA80}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E097FAEC-5015-4159-BC00-A737483EFA80}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {E097FAEC-5015-4159-BC00-A737483EFA80}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {809C86E9-0C70-41E4-B26D-D9AFF34F03D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {809C86E9-0C70-41E4-B26D-D9AFF34F03D0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {809C86E9-0C70-41E4-B26D-D9AFF34F03D0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {809C86E9-0C70-41E4-B26D-D9AFF34F03D0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {809C86E9-0C70-41E4-B26D-D9AFF34F03D0}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {809C86E9-0C70-41E4-B26D-D9AFF34F03D0}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {B6A5E070-3A2A-4F53-8391-0CA0C60B7701}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B6A5E070-3A2A-4F53-8391-0CA0C60B7701}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B6A5E070-3A2A-4F53-8391-0CA0C60B7701}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B6A5E070-3A2A-4F53-8391-0CA0C60B7701}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B6A5E070-3A2A-4F53-8391-0CA0C60B7701}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {B6A5E070-3A2A-4F53-8391-0CA0C60B7701}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {33CBF722-B166-4B68-9CB3-1293F5C78EF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {33CBF722-B166-4B68-9CB3-1293F5C78EF5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {33CBF722-B166-4B68-9CB3-1293F5C78EF5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {33CBF722-B166-4B68-9CB3-1293F5C78EF5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {33CBF722-B166-4B68-9CB3-1293F5C78EF5}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {33CBF722-B166-4B68-9CB3-1293F5C78EF5}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {4CEFE059-B30E-4121-AA12-10EC72709758}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4CEFE059-B30E-4121-AA12-10EC72709758}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4CEFE059-B30E-4121-AA12-10EC72709758}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4CEFE059-B30E-4121-AA12-10EC72709758}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4CEFE059-B30E-4121-AA12-10EC72709758}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {4CEFE059-B30E-4121-AA12-10EC72709758}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {C9EC8CCF-5CA7-4332-B7B7-FF9B094FA418}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C9EC8CCF-5CA7-4332-B7B7-FF9B094FA418}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C9EC8CCF-5CA7-4332-B7B7-FF9B094FA418}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C9EC8CCF-5CA7-4332-B7B7-FF9B094FA418}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C9EC8CCF-5CA7-4332-B7B7-FF9B094FA418}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {C9EC8CCF-5CA7-4332-B7B7-FF9B094FA418}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {4059233C-C651-4DA2-A1BC-26196362062A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4059233C-C651-4DA2-A1BC-26196362062A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4059233C-C651-4DA2-A1BC-26196362062A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4059233C-C651-4DA2-A1BC-26196362062A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4059233C-C651-4DA2-A1BC-26196362062A}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {4059233C-C651-4DA2-A1BC-26196362062A}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {347413DD-1B30-46B5-87A0-828A11FAA87D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {347413DD-1B30-46B5-87A0-828A11FAA87D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {347413DD-1B30-46B5-87A0-828A11FAA87D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {347413DD-1B30-46B5-87A0-828A11FAA87D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {347413DD-1B30-46B5-87A0-828A11FAA87D}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {347413DD-1B30-46B5-87A0-828A11FAA87D}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {13FCEB03-E300-4CE2-A789-78D9F41C903E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {13FCEB03-E300-4CE2-A789-78D9F41C903E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {13FCEB03-E300-4CE2-A789-78D9F41C903E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {13FCEB03-E300-4CE2-A789-78D9F41C903E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {13FCEB03-E300-4CE2-A789-78D9F41C903E}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {13FCEB03-E300-4CE2-A789-78D9F41C903E}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {8B15AAB5-18BB-4A2E-86F1-4A2F04C9FAFF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8B15AAB5-18BB-4A2E-86F1-4A2F04C9FAFF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8B15AAB5-18BB-4A2E-86F1-4A2F04C9FAFF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8B15AAB5-18BB-4A2E-86F1-4A2F04C9FAFF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8B15AAB5-18BB-4A2E-86F1-4A2F04C9FAFF}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {8B15AAB5-18BB-4A2E-86F1-4A2F04C9FAFF}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {57FCECAF-11F0-46C8-A74B-55C7AE76E8FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {57FCECAF-11F0-46C8-A74B-55C7AE76E8FE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {57FCECAF-11F0-46C8-A74B-55C7AE76E8FE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {57FCECAF-11F0-46C8-A74B-55C7AE76E8FE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {57FCECAF-11F0-46C8-A74B-55C7AE76E8FE}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {57FCECAF-11F0-46C8-A74B-55C7AE76E8FE}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {7433B116-806E-4500-8FF8-6143C4140BFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7433B116-806E-4500-8FF8-6143C4140BFD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7433B116-806E-4500-8FF8-6143C4140BFD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7433B116-806E-4500-8FF8-6143C4140BFD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7433B116-806E-4500-8FF8-6143C4140BFD}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {7433B116-806E-4500-8FF8-6143C4140BFD}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ {2C01C5C9-F762-4455-AD66-810BEFEE67B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2C01C5C9-F762-4455-AD66-810BEFEE67B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2C01C5C9-F762-4455-AD66-810BEFEE67B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2C01C5C9-F762-4455-AD66-810BEFEE67B5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2C01C5C9-F762-4455-AD66-810BEFEE67B5}.PostgreSQL|Any CPU.ActiveCfg = PostgreSQL|Any CPU
+ {2C01C5C9-F762-4455-AD66-810BEFEE67B5}.PostgreSQL|Any CPU.Build.0 = PostgreSQL|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {086BE5BE-8594-4DA7-8819-935FEF76DABD} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {5A87E9DD-3340-44DC-9564-4D8832A0228E} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
+ {E9BE3C65-2AB2-4CE8-8EB9-5C91B329ADB4} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
+ {E9AEC9D6-1FE7-4B00-BAC5-2C3D4B63CCA2} = {E2E7A062-0ABB-41B4-8220-60228446D2C2}
+ {304D06E6-41EC-4DCB-AEAE-DBEEC75F9ADC} = {E2E7A062-0ABB-41B4-8220-60228446D2C2}
+ {492710E6-EEF5-4390-A474-8FB2412ECBE5} = {3A0784A6-AFBF-406F-B79E-9505EB100445}
+ {CCF1EB86-29BD-4531-BB27-C9111CC67570} = {7F18BCA5-35BD-41FB-8EFF-801B56E5E414}
+ {7947D559-4288-486B-8FB3-D957CC7EDD32} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
+ {A4195E41-3919-4C3E-8768-7F277B583D16} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
+ {60083380-062C-4914-9E4E-5AE6637CCC3F} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
+ {9C6E9EE2-5C83-4D96-A7B7-32798FEF2845} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
+ {34C1E979-65B9-46F5-B7BA-60F227EBA093} = {0D2D7A10-CBA5-4798-BFC7-EB05D1E6B94C}
+ {80A56461-0ACC-4069-B571-87DCA064B2EF} = {0D2D7A10-CBA5-4798-BFC7-EB05D1E6B94C}
+ {568D2C50-1C31-4C31-89A2-C608FA93C6FD} = {3A0784A6-AFBF-406F-B79E-9505EB100445}
+ {12451B83-18DE-4E93-B98C-509477D53D5E} = {3A0784A6-AFBF-406F-B79E-9505EB100445}
+ {AAD0B6A7-847A-4537-A300-50E37F4B70CC} = {EFFAF456-50C1-42C9-836E-E95E7A38D52C}
+ {5B5C2372-2EAB-4559-BBCB-0C1C9A7158DB} = {EFFAF456-50C1-42C9-836E-E95E7A38D52C}
+ {2A0C5EF1-CB21-4656-8C32-B5673F6B82D2} = {EFFAF456-50C1-42C9-836E-E95E7A38D52C}
+ {3021DD8B-EA8F-4A88-BC2C-1BBEDC6255FE} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
+ {B31CEE79-45F6-4BB9-9EEB-08843C324B37} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
+ {22C61434-D29A-4376-AD56-F5089F3E617A} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {865D5508-63CD-4D44-9F5B-AE5CD4A43D08} = {22C61434-D29A-4376-AD56-F5089F3E617A}
+ {ECAA4B82-A240-4747-888C-FACD8634D389} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
+ {8AF8FD6B-634F-41FA-B421-A4ACFD159FE0} = {7F18BCA5-35BD-41FB-8EFF-801B56E5E414}
+ {7F18BCA5-35BD-41FB-8EFF-801B56E5E414} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {E2E7A062-0ABB-41B4-8220-60228446D2C2} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {EFFAF456-50C1-42C9-836E-E95E7A38D52C} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {B91F26C5-B148-4094-B5F1-71E5F945DBED} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {0D2D7A10-CBA5-4798-BFC7-EB05D1E6B94C} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {3B455AA7-B165-4EA0-8870-DB8DA5C76FC5} = {0D2D7A10-CBA5-4798-BFC7-EB05D1E6B94C}
+ {99F8F254-A76E-43BB-8048-CC17EE1C8527} = {0D2D7A10-CBA5-4798-BFC7-EB05D1E6B94C}
+ {38E21687-5F19-42C9-9D11-4B1D2EF64EDB} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {15FC0C39-A604-491F-91F6-BD44167FC5F6} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
+ {9E59B1DB-E0D5-485D-BDA0-B6C31E1358A8} = {22C61434-D29A-4376-AD56-F5089F3E617A}
+ {16942653-B746-4917-B3BF-464C99F8832F} = {22C61434-D29A-4376-AD56-F5089F3E617A}
+ {D0717513-2CEE-4AD5-A1DA-A08EA5DE6DD6} = {22C61434-D29A-4376-AD56-F5089F3E617A}
+ {A7A28D6C-6EDB-4615-8899-7DE1D435B750} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
+ {17A8455F-D413-4664-AEFA-1ECAE9ED4B19} = {7F18BCA5-35BD-41FB-8EFF-801B56E5E414}
+ {3BAA3D38-96C2-4C4C-B790-AE2997BFDE25} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {2E35CB93-2E9C-4EE1-845F-72A40271648E} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {8D2AD50B-DD4B-48A2-88EC-0E8E8236D883} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {8FB74B18-CA5C-4DC3-8DFA-600133A05712} = {8D2AD50B-DD4B-48A2-88EC-0E8E8236D883}
+ {3DBF0975-B09D-49CA-9AF8-69175EDB9D52} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {93DD5A05-B67A-4E11-BB56-F6B4E7F1489C} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {221725FF-6C01-4F41-9F29-AC04C7D52611} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {1B494EA1-28CF-4A61-B0BE-70BBA425C316} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {7F767ACF-754A-4EBC-8936-3C1402B6EF82} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
+ {E73A0F8B-2B4B-4CED-82A4-1EE5E0B89744} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {8CC72F4E-F134-4A43-9037-5D4D1F29B68A} = {E73A0F8B-2B4B-4CED-82A4-1EE5E0B89744}
+ {94FEA59E-3B6D-41A0-9E44-BA5D6477244F} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {7FDFB22F-1BFF-4E05-9427-78B7A8461D50} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {C72E0407-06FE-4CAA-86E5-30FF216A7B82} = {7FDFB22F-1BFF-4E05-9427-78B7A8461D50}
+ {E74FF671-6E5E-430C-9211-ED910634DDBE} = {7FDFB22F-1BFF-4E05-9427-78B7A8461D50}
+ {879791A3-BD69-42E4-A3BC-9878EFAADDD1} = {7FDFB22F-1BFF-4E05-9427-78B7A8461D50}
+ {C8891F1A-E6E5-448A-B527-EBFA44D20808} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {5133D83C-9B23-491C-8780-3F9BBDBD0351} = {C8891F1A-E6E5-448A-B527-EBFA44D20808}
+ {B8E5026B-188F-422F-A1EA-502C4A394585} = {C8891F1A-E6E5-448A-B527-EBFA44D20808}
+ {E861BE01-689D-4637-A5DC-E78E234F83FB} = {C8891F1A-E6E5-448A-B527-EBFA44D20808}
+ {CF253F0A-3A45-40EE-875F-0E57C8968C48} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {EF03A0A7-A93E-4DEF-A33E-F5A82E995FBF} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {9403FC1F-9677-489F-A03A-0B456153EE86} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {26E87199-F0AD-4B30-B0E4-080B12E6F8FC} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {8968EDAF-9F5C-4786-AF2A-D3928B70C3EC} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {CF30221B-CA7A-42CD-B91A-B7224AB2F38B} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {191BB108-546E-4E70-978E-D6A8149C319C} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
+ {DEB98AD7-9630-4F32-89E6-C1A118D1D18C} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
+ {00F1D30E-A6F6-464F-A80B-D423CFAA79A3} = {22C61434-D29A-4376-AD56-F5089F3E617A}
+ {358A4FB1-F5DF-433C-9DA7-D27401155AD7} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {2584D823-53A7-4184-8295-719A41E5B440} = {358A4FB1-F5DF-433C-9DA7-D27401155AD7}
+ {6271EBC0-78F2-4E4F-A646-BBD15BCB0F84} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {C1A91534-E84F-4A98-9A78-135988030646} = {6271EBC0-78F2-4E4F-A646-BBD15BCB0F84}
+ {0CC508D7-480C-4409-842A-A6C10E11ACFD} = {6271EBC0-78F2-4E4F-A646-BBD15BCB0F84}
+ {F8330A1E-6CC3-4E90-8B5C-DCD8FA00CF5C} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {23F4260D-87C1-4AA6-A302-0A8A76D53BA1} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {CE7E525F-8628-4076-8A2E-B615B944D140} = {23F4260D-87C1-4AA6-A302-0A8A76D53BA1}
+ {CD556F2A-A96B-43A2-8BB3-6C0EBA27EB02} = {23F4260D-87C1-4AA6-A302-0A8A76D53BA1}
+ {CCB4AE25-7059-4CA0-A3AB-CBB863A3F672} = {23F4260D-87C1-4AA6-A302-0A8A76D53BA1}
+ {3993A315-B250-4C5D-98C7-90FD06841B66} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
+ {A0910407-CE69-4DC8-9721-F4324C22EEA8} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {519BF5DA-30E4-40CF-829A-93F526E2AED8} = {A0910407-CE69-4DC8-9721-F4324C22EEA8}
+ {E16CCB14-E629-48E6-9603-53BBFF185318} = {A0910407-CE69-4DC8-9721-F4324C22EEA8}
+ {FBE7D8CB-1D99-4342-A953-B9AB46E0B14D} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {2F556889-006C-4A9C-8CA3-E31200C06FC9} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {73C9A7E7-846D-49E2-B223-E705D6C48BE7} = {7FDFB22F-1BFF-4E05-9427-78B7A8461D50}
+ {328B0863-23BE-43FD-98DD-FF0C92D5BEF0} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
+ {F55B987D-1DFF-4EB0-9949-8A7136A7B689} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {D72748AF-2CC8-4B5B-9710-ECDE5D812D7F} = {F55B987D-1DFF-4EB0-9949-8A7136A7B689}
+ {BD4165DB-F8A4-4715-A05A-CC08F6A18D67} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {AE5E6DE8-FC02-4633-BA49-C4B8ABADB502} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {31AED9ED-29BD-4F2F-8D3A-F00CBB9FC73C} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {8C688427-DD35-4F0B-86DA-6F536D3852D5} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {2C8A6B4C-D6B2-44FE-9EF5-EC7480D2A6B2} = {8C688427-DD35-4F0B-86DA-6F536D3852D5}
+ {3CE350AF-5574-46EC-8120-8542350AED20} = {8C688427-DD35-4F0B-86DA-6F536D3852D5}
+ {FE372F22-80A2-4859-9330-949C27CA94ED} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {33007EF7-BC1D-4B32-ACDA-6B9117200FAD} = {FE372F22-80A2-4859-9330-949C27CA94ED}
+ {B9592989-9F76-413C-8612-96E8C0CFA041} = {7FDFB22F-1BFF-4E05-9427-78B7A8461D50}
+ {F7878090-7FD6-4A2E-8D61-CAA0997880D7} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {7EDBCC52-3089-49F6-A56A-650850C9797E} = {F7878090-7FD6-4A2E-8D61-CAA0997880D7}
+ {FF518E10-C9AB-440C-8E8D-9CFF67A926AC} = {3A0784A6-AFBF-406F-B79E-9505EB100445}
+ {49E0B90B-8635-43D0-B0AB-9D484CAE68B5} = {7FDFB22F-1BFF-4E05-9427-78B7A8461D50}
+ {3FF4CEA0-1555-4D62-AA81-B3B599253F8D} = {38E21687-5F19-42C9-9D11-4B1D2EF64EDB}
+ {BD97C98B-0B4B-443D-AB29-145A344F46D3} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {AFE75D2B-8853-488B-B5D5-277B58C5DBB2} = {BD97C98B-0B4B-443D-AB29-145A344F46D3}
+ {3971AD93-BF97-4E05-972D-CB5EB9F6CB88} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {D9339CBB-45B9-4701-B2AC-2A75FF20D77B} = {3971AD93-BF97-4E05-972D-CB5EB9F6CB88}
+ {474AA48F-65F9-436B-A0B1-1E95BD16CA8D} = {3971AD93-BF97-4E05-972D-CB5EB9F6CB88}
+ {C71F6273-BCDE-4A63-A0CF-EAFD1D924DA0} = {7FDFB22F-1BFF-4E05-9427-78B7A8461D50}
+ {0F5A2591-CE08-4184-A5F3-89F6FB3B2B10} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {5515C7CA-B512-4E36-A202-49A0158A0E74} = {0F5A2591-CE08-4184-A5F3-89F6FB3B2B10}
+ {EBA67EAD-4958-46E3-9E0C-8186394D083F} = {0F5A2591-CE08-4184-A5F3-89F6FB3B2B10}
+ {25891EE2-3166-420F-8408-E458030C4643} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
+ {F051C960-AA61-4283-A088-611C0B96C953} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
+ {1435711B-D796-42AB-B567-0BB23F02EE08} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {7862CE70-76EF-4228-A703-C2E2A9704D14} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {1A072FF5-1A7E-4F78-B145-1AB873AEB8FF} = {7862CE70-76EF-4228-A703-C2E2A9704D14}
+ {88412E3D-21C8-4FF1-8EB3-84CB74094336} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {30FA01ED-921A-4E7D-9E83-6719538FB866} = {7862CE70-76EF-4228-A703-C2E2A9704D14}
+ {E6FDAD7B-4A7F-4CEB-9891-F8FC4E556C36} = {7862CE70-76EF-4228-A703-C2E2A9704D14}
+ {4CBB4A0C-6D23-44DD-BAF4-49D69ED35839} = {0F5A2591-CE08-4184-A5F3-89F6FB3B2B10}
+ {C2801414-550F-4A25-AD8D-68AC508211DC} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {868A1718-4970-48D2-A256-08EF468302D8} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {B78E53AC-6BB8-402D-90CF-BEF1BD9558EB} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {AA039B4E-CE12-43AC-8340-3D52463E971E} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
+ {2C5C57FB-70F5-4C20-92FC-39ACD260CEE3} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
+ {A1C75C3E-67D1-4BCE-89BF-44A735909BD5} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {60143C9C-E539-498A-9DBE-B95E6A8301A5} = {A1C75C3E-67D1-4BCE-89BF-44A735909BD5}
+ {641DF0BA-0E79-441D-B328-FDA288A35CDE} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {2020EA8D-F276-498D-92D1-94D1E25F8E1A} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {2A3DF8B2-4760-41C4-9337-44FEE29B17CD} = {A1C75C3E-67D1-4BCE-89BF-44A735909BD5}
+ {3975D028-3672-4D23-BF77-B7F4A445D44E} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {5512A359-80E8-440C-B652-7C96F614DD9E} = {3975D028-3672-4D23-BF77-B7F4A445D44E}
+ {6A23EE81-0CA7-4CA7-859D-6ADB669DF0E1} = {3975D028-3672-4D23-BF77-B7F4A445D44E}
+ {EC7970DC-A656-46A7-9873-A730FE72B213} = {3975D028-3672-4D23-BF77-B7F4A445D44E}
+ {F515E8FA-449F-4D54-98A7-0F7DF1AA3C94} = {3975D028-3672-4D23-BF77-B7F4A445D44E}
+ {E9AD81CA-D992-4F74-BD23-680CF98BE262} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {2E29FBF7-CECB-4DF9-9E02-5AFB704DDD10} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
+ {1206B9FC-0177-4061-A06E-F82B2CC01ACE} = {E73A0F8B-2B4B-4CED-82A4-1EE5E0B89744}
+ {E097FAEC-5015-4159-BC00-A737483EFA80} = {E73A0F8B-2B4B-4CED-82A4-1EE5E0B89744}
+ {809C86E9-0C70-41E4-B26D-D9AFF34F03D0} = {E73A0F8B-2B4B-4CED-82A4-1EE5E0B89744}
+ {C12EEBC0-0407-4AEF-81C4-EDF5E22BB00E} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
+ {B6A5E070-3A2A-4F53-8391-0CA0C60B7701} = {C12EEBC0-0407-4AEF-81C4-EDF5E22BB00E}
+ {33CBF722-B166-4B68-9CB3-1293F5C78EF5} = {C12EEBC0-0407-4AEF-81C4-EDF5E22BB00E}
+ {4CEFE059-B30E-4121-AA12-10EC72709758} = {C12EEBC0-0407-4AEF-81C4-EDF5E22BB00E}
+ {C9EC8CCF-5CA7-4332-B7B7-FF9B094FA418} = {C12EEBC0-0407-4AEF-81C4-EDF5E22BB00E}
+ {4059233C-C651-4DA2-A1BC-26196362062A} = {C12EEBC0-0407-4AEF-81C4-EDF5E22BB00E}
+ {347413DD-1B30-46B5-87A0-828A11FAA87D} = {F55B987D-1DFF-4EB0-9949-8A7136A7B689}
+ {13FCEB03-E300-4CE2-A789-78D9F41C903E} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
+ {8B15AAB5-18BB-4A2E-86F1-4A2F04C9FAFF} = {F55B987D-1DFF-4EB0-9949-8A7136A7B689}
+ {57FCECAF-11F0-46C8-A74B-55C7AE76E8FE} = {A1C75C3E-67D1-4BCE-89BF-44A735909BD5}
+ {7433B116-806E-4500-8FF8-6143C4140BFD} = {7862CE70-76EF-4228-A703-C2E2A9704D14}
+ {2C01C5C9-F762-4455-AD66-810BEFEE67B5} = {22C61434-D29A-4376-AD56-F5089F3E617A}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {06C707C6-02C0-411A-AD3B-2D0E13787CB8}
+ EndGlobalSection
+EndGlobal
diff --git a/aspnet-core/LINGYUN.MicroService.SingleProject.sln b/aspnet-core/LINGYUN.MicroService.SingleProject.sln
index 7b047fb43..52d53f15c 100644
--- a/aspnet-core/LINGYUN.MicroService.SingleProject.sln
+++ b/aspnet-core/LINGYUN.MicroService.SingleProject.sln
@@ -1,4 +1,3 @@
-
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
diff --git a/aspnet-core/LINGYUN.MicroService.Workflow.sln b/aspnet-core/LINGYUN.MicroService.Workflow.sln
index 5259391cd..be7c2023c 100644
--- a/aspnet-core/LINGYUN.MicroService.Workflow.sln
+++ b/aspnet-core/LINGYUN.MicroService.Workflow.sln
@@ -1,541 +1,555 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.0.31903.59
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "host", "host", "{6CB521FC-AC40-49A6-B9A5-91399CAA59AB}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LY.MicroService.WorkflowManagement.HttpApi.Host", "services\LY.MicroService.WorkflowManagement.HttpApi.Host\LY.MicroService.WorkflowManagement.HttpApi.Host.csproj", "{D5ED348D-D6F0-4093-BD7D-20E05AA1EB7B}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "elsa", "elsa", "{F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa", "modules\elsa\LINGYUN.Abp.Elsa\LINGYUN.Abp.Elsa.csproj", "{17EA5194-BBE8-4CE1-B6F9-DF6829622F38}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Server", "modules\elsa\LINGYUN.Abp.Elsa.Server\LINGYUN.Abp.Elsa.Server.csproj", "{88AA0D46-597E-4969-8382-A3F8054B9409}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.EntityFrameworkCore", "modules\elsa\LINGYUN.Abp.Elsa.EntityFrameworkCore\LINGYUN.Abp.Elsa.EntityFrameworkCore.csproj", "{CAC0D3A2-8BFA-4A84-A7FA-550A3BB16288}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Activities.BlobStoring", "modules\elsa\LINGYUN.Abp.Elsa.Activities.BlobStoring\LINGYUN.Abp.Elsa.Activities.BlobStoring.csproj", "{81CB5141-4FC5-413A-A516-CD65F40465C0}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Activities.Notifications", "modules\elsa\LINGYUN.Abp.Elsa.Activities.Notifications\LINGYUN.Abp.Elsa.Activities.Notifications.csproj", "{F5023AD3-D9C5-40C9-B76A-58D95E441997}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Activities.IM", "modules\elsa\LINGYUN.Abp.Elsa.Activities.IM\LINGYUN.Abp.Elsa.Activities.IM.csproj", "{4FD7B21B-3689-4D4A-BDD2-A07E2DC2E80C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Activities.Sms", "modules\elsa\LINGYUN.Abp.Elsa.Activities.Sms\LINGYUN.Abp.Elsa.Activities.Sms.csproj", "{FF3A193B-6131-4B4D-9729-1BF8A125C0AB}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "common", "common", "{6DA78E72-BA55-4ECF-97DB-6258174D3E2A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.RealTime", "framework\common\LINGYUN.Abp.RealTime\LINGYUN.Abp.RealTime.csproj", "{18A20311-84D8-49C4-B7BA-1187FF25E9BC}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications", "modules\realtime-notifications\LINGYUN.Abp.Notifications\LINGYUN.Abp.Notifications.csproj", "{2C3FABD7-808B-47B5-A194-849A1738E9A2}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IM", "modules\realtime-message\LINGYUN.Abp.IM\LINGYUN.Abp.IM.csproj", "{8BE6BA3E-048E-4FC7-81DD-7FCD29AE2126}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Activities.Emailing", "modules\elsa\LINGYUN.Abp.Elsa.Activities.Emailing\LINGYUN.Abp.Elsa.Activities.Emailing.csproj", "{9E213E6F-77CB-4068-93EB-465C47FDA8FA}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Activities", "modules\elsa\LINGYUN.Abp.Elsa.Activities\LINGYUN.Abp.Elsa.Activities.csproj", "{EEE9DF30-1901-4070-8E03-A8D8A0E10E34}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.Core", "modules\realtime-notifications\LINGYUN.Abp.Notifications.Core\LINGYUN.Abp.Notifications.Core.csproj", "{CE1B9AD0-7CDA-4459-86A3-A3162C1095D9}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Activities.Webhooks", "modules\elsa\LINGYUN.Abp.Elsa.Activities.Webhooks\LINGYUN.Abp.Elsa.Activities.Webhooks.csproj", "{2CA34976-4A80-485C-8572-6004829BB727}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Webhooks.Core", "modules\webhooks\LINGYUN.Abp.Webhooks.Core\LINGYUN.Abp.Webhooks.Core.csproj", "{44E4EBFA-6F25-4FD7-A4B3-536C3A42677C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Webhooks", "modules\webhooks\LINGYUN.Abp.Webhooks\LINGYUN.Abp.Webhooks.csproj", "{6489B162-2B28-42B9-9AD4-EB5CCBB8AE85}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Webhooks.EventBus", "modules\webhooks\LINGYUN.Abp.Webhooks.EventBus\LINGYUN.Abp.Webhooks.EventBus.csproj", "{B6246B7A-4095-433A-B981-5D1E43CDF712}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql", "modules\elsa\LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql\LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql.csproj", "{4B20572A-10E7-4414-943A-974F275677B4}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{035B86BF-DD63-4A78-B8CE-29994860C948}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Tests", "tests\LINGYUN.Abp.Elsa.Tests\LINGYUN.Abp.Elsa.Tests.csproj", "{9F96F261-93F7-47C0-8F07-72CE39CE20A3}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TestsBase", "tests\LINGYUN.Abp.TestBase\LINGYUN.Abp.TestsBase.csproj", "{8395DA41-AF40-4B0D-B36D-FA8A56E75AED}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Activities.Webhooks.Tests", "tests\LINGYUN.Abp.Elsa.Activities.Webhooks.Tests\LINGYUN.Abp.Elsa.Activities.Webhooks.Tests.csproj", "{B3C2AFCC-EE59-4CB4-AB62-B90D60335632}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AuditLogging", "framework\auditing\LINGYUN.Abp.AuditLogging\LINGYUN.Abp.AuditLogging.csproj", "{A03A98B6-19E9-4CCA-9801-AEFCBAAF5B72}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AuditLogging.Elasticsearch", "framework\auditing\LINGYUN.Abp.AuditLogging.Elasticsearch\LINGYUN.Abp.AuditLogging.Elasticsearch.csproj", "{00AB0A7E-578E-469C-B049-BCAA0233A9DD}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.ExceptionHandling", "framework\common\LINGYUN.Abp.ExceptionHandling\LINGYUN.Abp.ExceptionHandling.csproj", "{90B326F6-99DF-4EEC-A480-26C27EE22237}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.ExceptionHandling.Notifications", "modules\realtime-notifications\LINGYUN.Abp.ExceptionHandling.Notifications\LINGYUN.Abp.ExceptionHandling.Notifications.csproj", "{96EBCB1F-DB7B-40BA-B59E-82FC1AE13EA0}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.Common", "modules\realtime-notifications\LINGYUN.Abp.Notifications.Common\LINGYUN.Abp.Notifications.Common.csproj", "{6399C2FB-B063-4BB3-B605-88CE5303198B}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Notifications", "modules\elsa\LINGYUN.Abp.Elsa.Notifications\LINGYUN.Abp.Elsa.Notifications.csproj", "{D2F6105D-D667-46DB-8CDA-89B4D3F69067}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BlobStoring.OssManagement", "modules\oss-management\LINGYUN.Abp.BlobStoring.OssManagement\LINGYUN.Abp.BlobStoring.OssManagement.csproj", "{CE550720-FA77-4FF3-B5F0-A2B7A1781E61}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elasticsearch", "framework\elasticsearch\LINGYUN.Abp.Elasticsearch\LINGYUN.Abp.Elasticsearch.csproj", "{ECA9D3FA-248F-4D0E-A612-FE1CC72241D5}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "oss-management", "oss-management", "{7B82C484-4DDF-45F2-B5FC-DFA9FFC3258B}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.OssManagement.Domain.Shared", "modules\oss-management\LINGYUN.Abp.OssManagement.Domain.Shared\LINGYUN.Abp.OssManagement.Domain.Shared.csproj", "{C2F7971A-CFCE-4BE0-9A3A-805972A5F00B}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.OssManagement.Application.Contracts", "modules\oss-management\LINGYUN.Abp.OssManagement.Application.Contracts\LINGYUN.Abp.OssManagement.Application.Contracts.csproj", "{0DA0B251-66A6-441C-91B3-DFF953C53C4A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.OssManagement.HttpApi.Client", "modules\oss-management\LINGYUN.Abp.OssManagement.HttpApi.Client\LINGYUN.Abp.OssManagement.HttpApi.Client.csproj", "{E71FE3BB-1793-460F-9802-77FB9BBC1356}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "realtime", "realtime", "{54C52918-0B8B-4036-B673-23BE74AFFA95}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "notifications", "notifications", "{927A4A04-56EF-4A0F-B17C-E80ABA78C554}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "message", "message", "{7AF97C49-F445-4D77-9DBF-1A211933A471}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IdGenerator", "framework\common\LINGYUN.Abp.IdGenerator\LINGYUN.Abp.IdGenerator.csproj", "{9A5CDAEF-3767-4924-810E-C2018EFB5124}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "webhooks", "webhooks", "{7C1D7F97-1D2C-47F3-B3E7-8275D57267C4}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Authorization.OrganizationUnits", "framework\authorization\LINGYUN.Abp.Authorization.OrganizationUnits\LINGYUN.Abp.Authorization.OrganizationUnits.csproj", "{EE20EC4E-9C09-485A-8FBF-AF7FE253714D}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.EventBus.CAP", "framework\common\LINGYUN.Abp.EventBus.CAP\LINGYUN.Abp.EventBus.CAP.csproj", "{B08298CE-D261-4990-8458-17341992AD01}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Data.DbMigrator", "framework\common\LINGYUN.Abp.Data.DbMigrator\LINGYUN.Abp.Data.DbMigrator.csproj", "{9D0D219B-AC06-4371-9BA1-630BC00FE0F0}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.ExceptionHandling.Emailing", "framework\common\LINGYUN.Abp.ExceptionHandling.Emailing\LINGYUN.Abp.ExceptionHandling.Emailing.csproj", "{ADFC9BA9-405D-4900-B5A3-D7A6F6EED38B}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Wrapper", "framework\common\LINGYUN.Abp.Wrapper\LINGYUN.Abp.Wrapper.csproj", "{0B7492A2-7B11-4BC1-A55D-5756B74F0055}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Http.Client.Wrapper", "framework\common\LINGYUN.Abp.Http.Client.Wrapper\LINGYUN.Abp.Http.Client.Wrapper.csproj", "{92808D98-A096-4C4D-A038-A1D359812E32}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Localization.CultureMap", "framework\localization\LINGYUN.Abp.Localization.CultureMap\LINGYUN.Abp.Localization.CultureMap.csproj", "{D2019F8C-BD18-4DB5-9C38-1AF511D511FC}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.Mvc.Localization", "framework\localization\LINGYUN.Abp.AspNetCore.Mvc.Localization\LINGYUN.Abp.AspNetCore.Mvc.Localization.csproj", "{57ED879F-2A6F-4618-AD0C-5896CAFA3902}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Serilog.Enrichers.Application", "framework\logging\LINGYUN.Abp.Serilog.Enrichers.Application\LINGYUN.Abp.Serilog.Enrichers.Application.csproj", "{9A21CDDA-E03F-432B-A539-D553B69E1B5E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Serilog.Enrichers.UniqueId", "framework\logging\LINGYUN.Abp.Serilog.Enrichers.UniqueId\LINGYUN.Abp.Serilog.Enrichers.UniqueId.csproj", "{A3CC8323-B8C0-402E-B0CF-F67029E5E9E9}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.Mvc.Wrapper", "framework\mvc\LINGYUN.Abp.AspNetCore.Mvc.Wrapper\LINGYUN.Abp.AspNetCore.Mvc.Wrapper.csproj", "{0DC9EE7D-7A8E-4CC7-AE0B-CBA74B5C3F72}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "localization-management", "localization-management", "{26C224A8-EA29-4FB9-BA1D-9FFA1D8608E7}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Localization.Persistence", "framework\localization\LINGYUN.Abp.Localization.Persistence\LINGYUN.Abp.Localization.Persistence.csproj", "{CBDC2774-72FE-4454-8547-01EF9A63FB08}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.LocalizationManagement.Domain.Shared", "modules\localization-management\LINGYUN.Abp.LocalizationManagement.Domain.Shared\LINGYUN.Abp.LocalizationManagement.Domain.Shared.csproj", "{E2327757-4988-4710-8A67-06A7EEC12DFA}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.LocalizationManagement.Domain", "modules\localization-management\LINGYUN.Abp.LocalizationManagement.Domain\LINGYUN.Abp.LocalizationManagement.Domain.csproj", "{28AFEB19-6CDE-4AD9-9A83-BDCD98C3E386}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.LocalizationManagement.EntityFrameworkCore", "modules\localization-management\LINGYUN.Abp.LocalizationManagement.EntityFrameworkCore\LINGYUN.Abp.LocalizationManagement.EntityFrameworkCore.csproj", "{B281B9FE-8F1F-471C-B399-C1D07DF575E4}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "task-management", "task-management", "{7844FF58-7DBF-46E1-88B7-9764382A4EE9}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BackgroundTasks.Abstractions", "modules\task-management\LINGYUN.Abp.BackgroundTasks.Abstractions\LINGYUN.Abp.BackgroundTasks.Abstractions.csproj", "{927AD997-604B-4553-B768-8BFC595E9D62}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BackgroundTasks", "modules\task-management\LINGYUN.Abp.BackgroundTasks\LINGYUN.Abp.BackgroundTasks.csproj", "{76AF3503-CB33-4DFA-BE4F-F2EBB51EEA07}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BackgroundTasks.Activities", "modules\task-management\LINGYUN.Abp.BackgroundTasks.Activities\LINGYUN.Abp.BackgroundTasks.Activities.csproj", "{F2DEFDB5-29FD-44B9-A22C-A7D857BA60A0}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BackgroundTasks.DistributedLocking", "modules\task-management\LINGYUN.Abp.BackgroundTasks.DistributedLocking\LINGYUN.Abp.BackgroundTasks.DistributedLocking.csproj", "{004C3502-A1E2-4CCC-AB8E-E823FCE3E916}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BackgroundTasks.ExceptionHandling", "modules\task-management\LINGYUN.Abp.BackgroundTasks.ExceptionHandling\LINGYUN.Abp.BackgroundTasks.ExceptionHandling.csproj", "{1E26260F-8D99-4F9D-B20F-4B4B12A315E1}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TaskManagement.Domain.Shared", "modules\task-management\LINGYUN.Abp.TaskManagement.Domain.Shared\LINGYUN.Abp.TaskManagement.Domain.Shared.csproj", "{A675EBDA-0021-406A-A0AA-5B27AF2902E0}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TaskManagement.Domain", "modules\task-management\LINGYUN.Abp.TaskManagement.Domain\LINGYUN.Abp.TaskManagement.Domain.csproj", "{7927F5D8-D950-45E5-B832-894A325445DC}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TaskManagement.EntityFrameworkCore", "modules\task-management\LINGYUN.Abp.TaskManagement.EntityFrameworkCore\LINGYUN.Abp.TaskManagement.EntityFrameworkCore.csproj", "{749899E3-86F3-48FD-AF09-BBFDA8E0EA36}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BackgroundTasks.Quartz", "modules\task-management\LINGYUN.Abp.BackgroundTasks.Quartz\LINGYUN.Abp.BackgroundTasks.Quartz.csproj", "{74500EF4-93FE-4B84-A538-BA94CEE73E92}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "text-templating", "text-templating", "{459DEA84-19F7-49A2-BD23-F5B871DFF92D}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TextTemplating.Domain.Shared", "modules\text-templating\LINGYUN.Abp.TextTemplating.Domain.Shared\LINGYUN.Abp.TextTemplating.Domain.Shared.csproj", "{8420F159-401F-48F9-A206-CA5D5B0B4CDE}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TextTemplating.Domain", "modules\text-templating\LINGYUN.Abp.TextTemplating.Domain\LINGYUN.Abp.TextTemplating.Domain.csproj", "{7E7E8768-198D-400A-B8C4-7E86BB38BE4E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TextTemplating.EntityFrameworkCore", "modules\text-templating\LINGYUN.Abp.TextTemplating.EntityFrameworkCore\LINGYUN.Abp.TextTemplating.EntityFrameworkCore.csproj", "{86C48FB7-09D7-47F5-A6C0-FB7C22A362B2}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.MultiTenancy.Editions", "framework\tenants\LINGYUN.Abp.MultiTenancy.Editions\LINGYUN.Abp.MultiTenancy.Editions.csproj", "{3458DCC4-55CB-424A-A5BF-9DB11F24D41F}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "saas", "saas", "{AD002164-CFB4-4583-BF13-62C815009ADE}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Saas.Domain.Shared", "modules\saas\LINGYUN.Abp.Saas.Domain.Shared\LINGYUN.Abp.Saas.Domain.Shared.csproj", "{A0869700-2CA0-40F1-8AEA-5ADEA1204294}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Saas.Domain", "modules\saas\LINGYUN.Abp.Saas.Domain\LINGYUN.Abp.Saas.Domain.csproj", "{911B7C56-1908-42B5-BCE8-860DE650AE31}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Saas.EntityFrameworkCore", "modules\saas\LINGYUN.Abp.Saas.EntityFrameworkCore\LINGYUN.Abp.Saas.EntityFrameworkCore.csproj", "{CAE0492C-11A3-424C-8613-7DAB83E4FB60}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.HttpOverrides", "framework\common\LINGYUN.Abp.AspNetCore.HttpOverrides\LINGYUN.Abp.AspNetCore.HttpOverrides.csproj", "{4D055853-DE80-4145-BB2F-33EB6B379F5E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Security", "framework\security\LINGYUN.Abp.Security\LINGYUN.Abp.Security.csproj", "{E4783690-052A-4AB0-837E-BDBC77CC7EEC}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Claims.Mapping", "framework\security\LINGYUN.Abp.Claims.Mapping\LINGYUN.Abp.Claims.Mapping.csproj", "{1859E205-88DC-4E08-A0BD-55A045DCC495}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "identity", "identity", "{9C73D4E6-4408-4717-B51C-63C20321D4DA}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.Session", "modules\identity\LINGYUN.Abp.Identity.Session\LINGYUN.Abp.Identity.Session.csproj", "{6ECF678D-6F3A-4084-8538-A86C1D67C703}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.Session.AspNetCore", "modules\identity\LINGYUN.Abp.Identity.Session.AspNetCore\LINGYUN.Abp.Identity.Session.AspNetCore.csproj", "{9FB5E943-7F6F-4281-9C00-E76284B4F1F3}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {D5ED348D-D6F0-4093-BD7D-20E05AA1EB7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D5ED348D-D6F0-4093-BD7D-20E05AA1EB7B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D5ED348D-D6F0-4093-BD7D-20E05AA1EB7B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D5ED348D-D6F0-4093-BD7D-20E05AA1EB7B}.Release|Any CPU.Build.0 = Release|Any CPU
- {17EA5194-BBE8-4CE1-B6F9-DF6829622F38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {17EA5194-BBE8-4CE1-B6F9-DF6829622F38}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {17EA5194-BBE8-4CE1-B6F9-DF6829622F38}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {17EA5194-BBE8-4CE1-B6F9-DF6829622F38}.Release|Any CPU.Build.0 = Release|Any CPU
- {88AA0D46-597E-4969-8382-A3F8054B9409}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {88AA0D46-597E-4969-8382-A3F8054B9409}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {88AA0D46-597E-4969-8382-A3F8054B9409}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {88AA0D46-597E-4969-8382-A3F8054B9409}.Release|Any CPU.Build.0 = Release|Any CPU
- {CAC0D3A2-8BFA-4A84-A7FA-550A3BB16288}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CAC0D3A2-8BFA-4A84-A7FA-550A3BB16288}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CAC0D3A2-8BFA-4A84-A7FA-550A3BB16288}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CAC0D3A2-8BFA-4A84-A7FA-550A3BB16288}.Release|Any CPU.Build.0 = Release|Any CPU
- {81CB5141-4FC5-413A-A516-CD65F40465C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {81CB5141-4FC5-413A-A516-CD65F40465C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {81CB5141-4FC5-413A-A516-CD65F40465C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {81CB5141-4FC5-413A-A516-CD65F40465C0}.Release|Any CPU.Build.0 = Release|Any CPU
- {F5023AD3-D9C5-40C9-B76A-58D95E441997}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F5023AD3-D9C5-40C9-B76A-58D95E441997}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F5023AD3-D9C5-40C9-B76A-58D95E441997}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F5023AD3-D9C5-40C9-B76A-58D95E441997}.Release|Any CPU.Build.0 = Release|Any CPU
- {4FD7B21B-3689-4D4A-BDD2-A07E2DC2E80C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4FD7B21B-3689-4D4A-BDD2-A07E2DC2E80C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4FD7B21B-3689-4D4A-BDD2-A07E2DC2E80C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4FD7B21B-3689-4D4A-BDD2-A07E2DC2E80C}.Release|Any CPU.Build.0 = Release|Any CPU
- {FF3A193B-6131-4B4D-9729-1BF8A125C0AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FF3A193B-6131-4B4D-9729-1BF8A125C0AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FF3A193B-6131-4B4D-9729-1BF8A125C0AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FF3A193B-6131-4B4D-9729-1BF8A125C0AB}.Release|Any CPU.Build.0 = Release|Any CPU
- {18A20311-84D8-49C4-B7BA-1187FF25E9BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {18A20311-84D8-49C4-B7BA-1187FF25E9BC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {18A20311-84D8-49C4-B7BA-1187FF25E9BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {18A20311-84D8-49C4-B7BA-1187FF25E9BC}.Release|Any CPU.Build.0 = Release|Any CPU
- {2C3FABD7-808B-47B5-A194-849A1738E9A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2C3FABD7-808B-47B5-A194-849A1738E9A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2C3FABD7-808B-47B5-A194-849A1738E9A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2C3FABD7-808B-47B5-A194-849A1738E9A2}.Release|Any CPU.Build.0 = Release|Any CPU
- {8BE6BA3E-048E-4FC7-81DD-7FCD29AE2126}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8BE6BA3E-048E-4FC7-81DD-7FCD29AE2126}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8BE6BA3E-048E-4FC7-81DD-7FCD29AE2126}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8BE6BA3E-048E-4FC7-81DD-7FCD29AE2126}.Release|Any CPU.Build.0 = Release|Any CPU
- {9E213E6F-77CB-4068-93EB-465C47FDA8FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9E213E6F-77CB-4068-93EB-465C47FDA8FA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9E213E6F-77CB-4068-93EB-465C47FDA8FA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9E213E6F-77CB-4068-93EB-465C47FDA8FA}.Release|Any CPU.Build.0 = Release|Any CPU
- {EEE9DF30-1901-4070-8E03-A8D8A0E10E34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EEE9DF30-1901-4070-8E03-A8D8A0E10E34}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EEE9DF30-1901-4070-8E03-A8D8A0E10E34}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EEE9DF30-1901-4070-8E03-A8D8A0E10E34}.Release|Any CPU.Build.0 = Release|Any CPU
- {CE1B9AD0-7CDA-4459-86A3-A3162C1095D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CE1B9AD0-7CDA-4459-86A3-A3162C1095D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CE1B9AD0-7CDA-4459-86A3-A3162C1095D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CE1B9AD0-7CDA-4459-86A3-A3162C1095D9}.Release|Any CPU.Build.0 = Release|Any CPU
- {2CA34976-4A80-485C-8572-6004829BB727}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2CA34976-4A80-485C-8572-6004829BB727}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2CA34976-4A80-485C-8572-6004829BB727}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2CA34976-4A80-485C-8572-6004829BB727}.Release|Any CPU.Build.0 = Release|Any CPU
- {44E4EBFA-6F25-4FD7-A4B3-536C3A42677C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {44E4EBFA-6F25-4FD7-A4B3-536C3A42677C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {44E4EBFA-6F25-4FD7-A4B3-536C3A42677C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {44E4EBFA-6F25-4FD7-A4B3-536C3A42677C}.Release|Any CPU.Build.0 = Release|Any CPU
- {6489B162-2B28-42B9-9AD4-EB5CCBB8AE85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6489B162-2B28-42B9-9AD4-EB5CCBB8AE85}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6489B162-2B28-42B9-9AD4-EB5CCBB8AE85}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6489B162-2B28-42B9-9AD4-EB5CCBB8AE85}.Release|Any CPU.Build.0 = Release|Any CPU
- {B6246B7A-4095-433A-B981-5D1E43CDF712}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B6246B7A-4095-433A-B981-5D1E43CDF712}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B6246B7A-4095-433A-B981-5D1E43CDF712}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B6246B7A-4095-433A-B981-5D1E43CDF712}.Release|Any CPU.Build.0 = Release|Any CPU
- {4B20572A-10E7-4414-943A-974F275677B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4B20572A-10E7-4414-943A-974F275677B4}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4B20572A-10E7-4414-943A-974F275677B4}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4B20572A-10E7-4414-943A-974F275677B4}.Release|Any CPU.Build.0 = Release|Any CPU
- {9F96F261-93F7-47C0-8F07-72CE39CE20A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9F96F261-93F7-47C0-8F07-72CE39CE20A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9F96F261-93F7-47C0-8F07-72CE39CE20A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9F96F261-93F7-47C0-8F07-72CE39CE20A3}.Release|Any CPU.Build.0 = Release|Any CPU
- {8395DA41-AF40-4B0D-B36D-FA8A56E75AED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8395DA41-AF40-4B0D-B36D-FA8A56E75AED}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8395DA41-AF40-4B0D-B36D-FA8A56E75AED}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8395DA41-AF40-4B0D-B36D-FA8A56E75AED}.Release|Any CPU.Build.0 = Release|Any CPU
- {B3C2AFCC-EE59-4CB4-AB62-B90D60335632}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B3C2AFCC-EE59-4CB4-AB62-B90D60335632}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B3C2AFCC-EE59-4CB4-AB62-B90D60335632}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B3C2AFCC-EE59-4CB4-AB62-B90D60335632}.Release|Any CPU.Build.0 = Release|Any CPU
- {A03A98B6-19E9-4CCA-9801-AEFCBAAF5B72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A03A98B6-19E9-4CCA-9801-AEFCBAAF5B72}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A03A98B6-19E9-4CCA-9801-AEFCBAAF5B72}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A03A98B6-19E9-4CCA-9801-AEFCBAAF5B72}.Release|Any CPU.Build.0 = Release|Any CPU
- {00AB0A7E-578E-469C-B049-BCAA0233A9DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {00AB0A7E-578E-469C-B049-BCAA0233A9DD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {00AB0A7E-578E-469C-B049-BCAA0233A9DD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {00AB0A7E-578E-469C-B049-BCAA0233A9DD}.Release|Any CPU.Build.0 = Release|Any CPU
- {90B326F6-99DF-4EEC-A480-26C27EE22237}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {90B326F6-99DF-4EEC-A480-26C27EE22237}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {90B326F6-99DF-4EEC-A480-26C27EE22237}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {90B326F6-99DF-4EEC-A480-26C27EE22237}.Release|Any CPU.Build.0 = Release|Any CPU
- {96EBCB1F-DB7B-40BA-B59E-82FC1AE13EA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {96EBCB1F-DB7B-40BA-B59E-82FC1AE13EA0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {96EBCB1F-DB7B-40BA-B59E-82FC1AE13EA0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {96EBCB1F-DB7B-40BA-B59E-82FC1AE13EA0}.Release|Any CPU.Build.0 = Release|Any CPU
- {6399C2FB-B063-4BB3-B605-88CE5303198B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6399C2FB-B063-4BB3-B605-88CE5303198B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6399C2FB-B063-4BB3-B605-88CE5303198B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6399C2FB-B063-4BB3-B605-88CE5303198B}.Release|Any CPU.Build.0 = Release|Any CPU
- {D2F6105D-D667-46DB-8CDA-89B4D3F69067}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D2F6105D-D667-46DB-8CDA-89B4D3F69067}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D2F6105D-D667-46DB-8CDA-89B4D3F69067}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D2F6105D-D667-46DB-8CDA-89B4D3F69067}.Release|Any CPU.Build.0 = Release|Any CPU
- {CE550720-FA77-4FF3-B5F0-A2B7A1781E61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CE550720-FA77-4FF3-B5F0-A2B7A1781E61}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CE550720-FA77-4FF3-B5F0-A2B7A1781E61}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CE550720-FA77-4FF3-B5F0-A2B7A1781E61}.Release|Any CPU.Build.0 = Release|Any CPU
- {ECA9D3FA-248F-4D0E-A612-FE1CC72241D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {ECA9D3FA-248F-4D0E-A612-FE1CC72241D5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {ECA9D3FA-248F-4D0E-A612-FE1CC72241D5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {ECA9D3FA-248F-4D0E-A612-FE1CC72241D5}.Release|Any CPU.Build.0 = Release|Any CPU
- {C2F7971A-CFCE-4BE0-9A3A-805972A5F00B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C2F7971A-CFCE-4BE0-9A3A-805972A5F00B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C2F7971A-CFCE-4BE0-9A3A-805972A5F00B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C2F7971A-CFCE-4BE0-9A3A-805972A5F00B}.Release|Any CPU.Build.0 = Release|Any CPU
- {0DA0B251-66A6-441C-91B3-DFF953C53C4A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0DA0B251-66A6-441C-91B3-DFF953C53C4A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0DA0B251-66A6-441C-91B3-DFF953C53C4A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0DA0B251-66A6-441C-91B3-DFF953C53C4A}.Release|Any CPU.Build.0 = Release|Any CPU
- {E71FE3BB-1793-460F-9802-77FB9BBC1356}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E71FE3BB-1793-460F-9802-77FB9BBC1356}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E71FE3BB-1793-460F-9802-77FB9BBC1356}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E71FE3BB-1793-460F-9802-77FB9BBC1356}.Release|Any CPU.Build.0 = Release|Any CPU
- {9A5CDAEF-3767-4924-810E-C2018EFB5124}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9A5CDAEF-3767-4924-810E-C2018EFB5124}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9A5CDAEF-3767-4924-810E-C2018EFB5124}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9A5CDAEF-3767-4924-810E-C2018EFB5124}.Release|Any CPU.Build.0 = Release|Any CPU
- {EE20EC4E-9C09-485A-8FBF-AF7FE253714D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EE20EC4E-9C09-485A-8FBF-AF7FE253714D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EE20EC4E-9C09-485A-8FBF-AF7FE253714D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EE20EC4E-9C09-485A-8FBF-AF7FE253714D}.Release|Any CPU.Build.0 = Release|Any CPU
- {B08298CE-D261-4990-8458-17341992AD01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B08298CE-D261-4990-8458-17341992AD01}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B08298CE-D261-4990-8458-17341992AD01}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B08298CE-D261-4990-8458-17341992AD01}.Release|Any CPU.Build.0 = Release|Any CPU
- {9D0D219B-AC06-4371-9BA1-630BC00FE0F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9D0D219B-AC06-4371-9BA1-630BC00FE0F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9D0D219B-AC06-4371-9BA1-630BC00FE0F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9D0D219B-AC06-4371-9BA1-630BC00FE0F0}.Release|Any CPU.Build.0 = Release|Any CPU
- {ADFC9BA9-405D-4900-B5A3-D7A6F6EED38B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {ADFC9BA9-405D-4900-B5A3-D7A6F6EED38B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {ADFC9BA9-405D-4900-B5A3-D7A6F6EED38B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {ADFC9BA9-405D-4900-B5A3-D7A6F6EED38B}.Release|Any CPU.Build.0 = Release|Any CPU
- {0B7492A2-7B11-4BC1-A55D-5756B74F0055}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0B7492A2-7B11-4BC1-A55D-5756B74F0055}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0B7492A2-7B11-4BC1-A55D-5756B74F0055}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0B7492A2-7B11-4BC1-A55D-5756B74F0055}.Release|Any CPU.Build.0 = Release|Any CPU
- {92808D98-A096-4C4D-A038-A1D359812E32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {92808D98-A096-4C4D-A038-A1D359812E32}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {92808D98-A096-4C4D-A038-A1D359812E32}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {92808D98-A096-4C4D-A038-A1D359812E32}.Release|Any CPU.Build.0 = Release|Any CPU
- {D2019F8C-BD18-4DB5-9C38-1AF511D511FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D2019F8C-BD18-4DB5-9C38-1AF511D511FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D2019F8C-BD18-4DB5-9C38-1AF511D511FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D2019F8C-BD18-4DB5-9C38-1AF511D511FC}.Release|Any CPU.Build.0 = Release|Any CPU
- {57ED879F-2A6F-4618-AD0C-5896CAFA3902}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {57ED879F-2A6F-4618-AD0C-5896CAFA3902}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {57ED879F-2A6F-4618-AD0C-5896CAFA3902}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {57ED879F-2A6F-4618-AD0C-5896CAFA3902}.Release|Any CPU.Build.0 = Release|Any CPU
- {9A21CDDA-E03F-432B-A539-D553B69E1B5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9A21CDDA-E03F-432B-A539-D553B69E1B5E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9A21CDDA-E03F-432B-A539-D553B69E1B5E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9A21CDDA-E03F-432B-A539-D553B69E1B5E}.Release|Any CPU.Build.0 = Release|Any CPU
- {A3CC8323-B8C0-402E-B0CF-F67029E5E9E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A3CC8323-B8C0-402E-B0CF-F67029E5E9E9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A3CC8323-B8C0-402E-B0CF-F67029E5E9E9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A3CC8323-B8C0-402E-B0CF-F67029E5E9E9}.Release|Any CPU.Build.0 = Release|Any CPU
- {0DC9EE7D-7A8E-4CC7-AE0B-CBA74B5C3F72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0DC9EE7D-7A8E-4CC7-AE0B-CBA74B5C3F72}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0DC9EE7D-7A8E-4CC7-AE0B-CBA74B5C3F72}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0DC9EE7D-7A8E-4CC7-AE0B-CBA74B5C3F72}.Release|Any CPU.Build.0 = Release|Any CPU
- {CBDC2774-72FE-4454-8547-01EF9A63FB08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CBDC2774-72FE-4454-8547-01EF9A63FB08}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CBDC2774-72FE-4454-8547-01EF9A63FB08}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CBDC2774-72FE-4454-8547-01EF9A63FB08}.Release|Any CPU.Build.0 = Release|Any CPU
- {E2327757-4988-4710-8A67-06A7EEC12DFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E2327757-4988-4710-8A67-06A7EEC12DFA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E2327757-4988-4710-8A67-06A7EEC12DFA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E2327757-4988-4710-8A67-06A7EEC12DFA}.Release|Any CPU.Build.0 = Release|Any CPU
- {28AFEB19-6CDE-4AD9-9A83-BDCD98C3E386}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {28AFEB19-6CDE-4AD9-9A83-BDCD98C3E386}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {28AFEB19-6CDE-4AD9-9A83-BDCD98C3E386}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {28AFEB19-6CDE-4AD9-9A83-BDCD98C3E386}.Release|Any CPU.Build.0 = Release|Any CPU
- {B281B9FE-8F1F-471C-B399-C1D07DF575E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B281B9FE-8F1F-471C-B399-C1D07DF575E4}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B281B9FE-8F1F-471C-B399-C1D07DF575E4}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B281B9FE-8F1F-471C-B399-C1D07DF575E4}.Release|Any CPU.Build.0 = Release|Any CPU
- {927AD997-604B-4553-B768-8BFC595E9D62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {927AD997-604B-4553-B768-8BFC595E9D62}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {927AD997-604B-4553-B768-8BFC595E9D62}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {927AD997-604B-4553-B768-8BFC595E9D62}.Release|Any CPU.Build.0 = Release|Any CPU
- {76AF3503-CB33-4DFA-BE4F-F2EBB51EEA07}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {76AF3503-CB33-4DFA-BE4F-F2EBB51EEA07}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {76AF3503-CB33-4DFA-BE4F-F2EBB51EEA07}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {76AF3503-CB33-4DFA-BE4F-F2EBB51EEA07}.Release|Any CPU.Build.0 = Release|Any CPU
- {F2DEFDB5-29FD-44B9-A22C-A7D857BA60A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F2DEFDB5-29FD-44B9-A22C-A7D857BA60A0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F2DEFDB5-29FD-44B9-A22C-A7D857BA60A0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F2DEFDB5-29FD-44B9-A22C-A7D857BA60A0}.Release|Any CPU.Build.0 = Release|Any CPU
- {004C3502-A1E2-4CCC-AB8E-E823FCE3E916}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {004C3502-A1E2-4CCC-AB8E-E823FCE3E916}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {004C3502-A1E2-4CCC-AB8E-E823FCE3E916}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {004C3502-A1E2-4CCC-AB8E-E823FCE3E916}.Release|Any CPU.Build.0 = Release|Any CPU
- {1E26260F-8D99-4F9D-B20F-4B4B12A315E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1E26260F-8D99-4F9D-B20F-4B4B12A315E1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1E26260F-8D99-4F9D-B20F-4B4B12A315E1}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1E26260F-8D99-4F9D-B20F-4B4B12A315E1}.Release|Any CPU.Build.0 = Release|Any CPU
- {A675EBDA-0021-406A-A0AA-5B27AF2902E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A675EBDA-0021-406A-A0AA-5B27AF2902E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A675EBDA-0021-406A-A0AA-5B27AF2902E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A675EBDA-0021-406A-A0AA-5B27AF2902E0}.Release|Any CPU.Build.0 = Release|Any CPU
- {7927F5D8-D950-45E5-B832-894A325445DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7927F5D8-D950-45E5-B832-894A325445DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7927F5D8-D950-45E5-B832-894A325445DC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7927F5D8-D950-45E5-B832-894A325445DC}.Release|Any CPU.Build.0 = Release|Any CPU
- {749899E3-86F3-48FD-AF09-BBFDA8E0EA36}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {749899E3-86F3-48FD-AF09-BBFDA8E0EA36}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {749899E3-86F3-48FD-AF09-BBFDA8E0EA36}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {749899E3-86F3-48FD-AF09-BBFDA8E0EA36}.Release|Any CPU.Build.0 = Release|Any CPU
- {74500EF4-93FE-4B84-A538-BA94CEE73E92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {74500EF4-93FE-4B84-A538-BA94CEE73E92}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {74500EF4-93FE-4B84-A538-BA94CEE73E92}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {74500EF4-93FE-4B84-A538-BA94CEE73E92}.Release|Any CPU.Build.0 = Release|Any CPU
- {8420F159-401F-48F9-A206-CA5D5B0B4CDE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8420F159-401F-48F9-A206-CA5D5B0B4CDE}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8420F159-401F-48F9-A206-CA5D5B0B4CDE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8420F159-401F-48F9-A206-CA5D5B0B4CDE}.Release|Any CPU.Build.0 = Release|Any CPU
- {7E7E8768-198D-400A-B8C4-7E86BB38BE4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7E7E8768-198D-400A-B8C4-7E86BB38BE4E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7E7E8768-198D-400A-B8C4-7E86BB38BE4E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7E7E8768-198D-400A-B8C4-7E86BB38BE4E}.Release|Any CPU.Build.0 = Release|Any CPU
- {86C48FB7-09D7-47F5-A6C0-FB7C22A362B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {86C48FB7-09D7-47F5-A6C0-FB7C22A362B2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {86C48FB7-09D7-47F5-A6C0-FB7C22A362B2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {86C48FB7-09D7-47F5-A6C0-FB7C22A362B2}.Release|Any CPU.Build.0 = Release|Any CPU
- {3458DCC4-55CB-424A-A5BF-9DB11F24D41F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3458DCC4-55CB-424A-A5BF-9DB11F24D41F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3458DCC4-55CB-424A-A5BF-9DB11F24D41F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3458DCC4-55CB-424A-A5BF-9DB11F24D41F}.Release|Any CPU.Build.0 = Release|Any CPU
- {A0869700-2CA0-40F1-8AEA-5ADEA1204294}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A0869700-2CA0-40F1-8AEA-5ADEA1204294}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A0869700-2CA0-40F1-8AEA-5ADEA1204294}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A0869700-2CA0-40F1-8AEA-5ADEA1204294}.Release|Any CPU.Build.0 = Release|Any CPU
- {911B7C56-1908-42B5-BCE8-860DE650AE31}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {911B7C56-1908-42B5-BCE8-860DE650AE31}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {911B7C56-1908-42B5-BCE8-860DE650AE31}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {911B7C56-1908-42B5-BCE8-860DE650AE31}.Release|Any CPU.Build.0 = Release|Any CPU
- {CAE0492C-11A3-424C-8613-7DAB83E4FB60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CAE0492C-11A3-424C-8613-7DAB83E4FB60}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CAE0492C-11A3-424C-8613-7DAB83E4FB60}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CAE0492C-11A3-424C-8613-7DAB83E4FB60}.Release|Any CPU.Build.0 = Release|Any CPU
- {4D055853-DE80-4145-BB2F-33EB6B379F5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4D055853-DE80-4145-BB2F-33EB6B379F5E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4D055853-DE80-4145-BB2F-33EB6B379F5E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4D055853-DE80-4145-BB2F-33EB6B379F5E}.Release|Any CPU.Build.0 = Release|Any CPU
- {E4783690-052A-4AB0-837E-BDBC77CC7EEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E4783690-052A-4AB0-837E-BDBC77CC7EEC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E4783690-052A-4AB0-837E-BDBC77CC7EEC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E4783690-052A-4AB0-837E-BDBC77CC7EEC}.Release|Any CPU.Build.0 = Release|Any CPU
- {1859E205-88DC-4E08-A0BD-55A045DCC495}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1859E205-88DC-4E08-A0BD-55A045DCC495}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1859E205-88DC-4E08-A0BD-55A045DCC495}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1859E205-88DC-4E08-A0BD-55A045DCC495}.Release|Any CPU.Build.0 = Release|Any CPU
- {6ECF678D-6F3A-4084-8538-A86C1D67C703}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6ECF678D-6F3A-4084-8538-A86C1D67C703}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6ECF678D-6F3A-4084-8538-A86C1D67C703}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6ECF678D-6F3A-4084-8538-A86C1D67C703}.Release|Any CPU.Build.0 = Release|Any CPU
- {9FB5E943-7F6F-4281-9C00-E76284B4F1F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9FB5E943-7F6F-4281-9C00-E76284B4F1F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9FB5E943-7F6F-4281-9C00-E76284B4F1F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9FB5E943-7F6F-4281-9C00-E76284B4F1F3}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {D5ED348D-D6F0-4093-BD7D-20E05AA1EB7B} = {6CB521FC-AC40-49A6-B9A5-91399CAA59AB}
- {17EA5194-BBE8-4CE1-B6F9-DF6829622F38} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
- {88AA0D46-597E-4969-8382-A3F8054B9409} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
- {CAC0D3A2-8BFA-4A84-A7FA-550A3BB16288} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
- {81CB5141-4FC5-413A-A516-CD65F40465C0} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
- {F5023AD3-D9C5-40C9-B76A-58D95E441997} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
- {4FD7B21B-3689-4D4A-BDD2-A07E2DC2E80C} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
- {FF3A193B-6131-4B4D-9729-1BF8A125C0AB} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
- {18A20311-84D8-49C4-B7BA-1187FF25E9BC} = {54C52918-0B8B-4036-B673-23BE74AFFA95}
- {2C3FABD7-808B-47B5-A194-849A1738E9A2} = {927A4A04-56EF-4A0F-B17C-E80ABA78C554}
- {8BE6BA3E-048E-4FC7-81DD-7FCD29AE2126} = {7AF97C49-F445-4D77-9DBF-1A211933A471}
- {9E213E6F-77CB-4068-93EB-465C47FDA8FA} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
- {EEE9DF30-1901-4070-8E03-A8D8A0E10E34} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
- {CE1B9AD0-7CDA-4459-86A3-A3162C1095D9} = {927A4A04-56EF-4A0F-B17C-E80ABA78C554}
- {2CA34976-4A80-485C-8572-6004829BB727} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
- {44E4EBFA-6F25-4FD7-A4B3-536C3A42677C} = {7C1D7F97-1D2C-47F3-B3E7-8275D57267C4}
- {6489B162-2B28-42B9-9AD4-EB5CCBB8AE85} = {7C1D7F97-1D2C-47F3-B3E7-8275D57267C4}
- {B6246B7A-4095-433A-B981-5D1E43CDF712} = {7C1D7F97-1D2C-47F3-B3E7-8275D57267C4}
- {4B20572A-10E7-4414-943A-974F275677B4} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
- {9F96F261-93F7-47C0-8F07-72CE39CE20A3} = {035B86BF-DD63-4A78-B8CE-29994860C948}
- {8395DA41-AF40-4B0D-B36D-FA8A56E75AED} = {035B86BF-DD63-4A78-B8CE-29994860C948}
- {B3C2AFCC-EE59-4CB4-AB62-B90D60335632} = {035B86BF-DD63-4A78-B8CE-29994860C948}
- {A03A98B6-19E9-4CCA-9801-AEFCBAAF5B72} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
- {00AB0A7E-578E-469C-B049-BCAA0233A9DD} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
- {90B326F6-99DF-4EEC-A480-26C27EE22237} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
- {96EBCB1F-DB7B-40BA-B59E-82FC1AE13EA0} = {927A4A04-56EF-4A0F-B17C-E80ABA78C554}
- {6399C2FB-B063-4BB3-B605-88CE5303198B} = {927A4A04-56EF-4A0F-B17C-E80ABA78C554}
- {D2F6105D-D667-46DB-8CDA-89B4D3F69067} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
- {CE550720-FA77-4FF3-B5F0-A2B7A1781E61} = {7B82C484-4DDF-45F2-B5FC-DFA9FFC3258B}
- {ECA9D3FA-248F-4D0E-A612-FE1CC72241D5} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
- {C2F7971A-CFCE-4BE0-9A3A-805972A5F00B} = {7B82C484-4DDF-45F2-B5FC-DFA9FFC3258B}
- {0DA0B251-66A6-441C-91B3-DFF953C53C4A} = {7B82C484-4DDF-45F2-B5FC-DFA9FFC3258B}
- {E71FE3BB-1793-460F-9802-77FB9BBC1356} = {7B82C484-4DDF-45F2-B5FC-DFA9FFC3258B}
- {927A4A04-56EF-4A0F-B17C-E80ABA78C554} = {54C52918-0B8B-4036-B673-23BE74AFFA95}
- {7AF97C49-F445-4D77-9DBF-1A211933A471} = {54C52918-0B8B-4036-B673-23BE74AFFA95}
- {9A5CDAEF-3767-4924-810E-C2018EFB5124} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
- {EE20EC4E-9C09-485A-8FBF-AF7FE253714D} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
- {B08298CE-D261-4990-8458-17341992AD01} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
- {9D0D219B-AC06-4371-9BA1-630BC00FE0F0} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
- {ADFC9BA9-405D-4900-B5A3-D7A6F6EED38B} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
- {0B7492A2-7B11-4BC1-A55D-5756B74F0055} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
- {92808D98-A096-4C4D-A038-A1D359812E32} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
- {D2019F8C-BD18-4DB5-9C38-1AF511D511FC} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
- {57ED879F-2A6F-4618-AD0C-5896CAFA3902} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
- {9A21CDDA-E03F-432B-A539-D553B69E1B5E} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
- {A3CC8323-B8C0-402E-B0CF-F67029E5E9E9} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
- {0DC9EE7D-7A8E-4CC7-AE0B-CBA74B5C3F72} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
- {CBDC2774-72FE-4454-8547-01EF9A63FB08} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
- {E2327757-4988-4710-8A67-06A7EEC12DFA} = {26C224A8-EA29-4FB9-BA1D-9FFA1D8608E7}
- {28AFEB19-6CDE-4AD9-9A83-BDCD98C3E386} = {26C224A8-EA29-4FB9-BA1D-9FFA1D8608E7}
- {B281B9FE-8F1F-471C-B399-C1D07DF575E4} = {26C224A8-EA29-4FB9-BA1D-9FFA1D8608E7}
- {927AD997-604B-4553-B768-8BFC595E9D62} = {7844FF58-7DBF-46E1-88B7-9764382A4EE9}
- {76AF3503-CB33-4DFA-BE4F-F2EBB51EEA07} = {7844FF58-7DBF-46E1-88B7-9764382A4EE9}
- {F2DEFDB5-29FD-44B9-A22C-A7D857BA60A0} = {7844FF58-7DBF-46E1-88B7-9764382A4EE9}
- {004C3502-A1E2-4CCC-AB8E-E823FCE3E916} = {7844FF58-7DBF-46E1-88B7-9764382A4EE9}
- {1E26260F-8D99-4F9D-B20F-4B4B12A315E1} = {7844FF58-7DBF-46E1-88B7-9764382A4EE9}
- {A675EBDA-0021-406A-A0AA-5B27AF2902E0} = {7844FF58-7DBF-46E1-88B7-9764382A4EE9}
- {7927F5D8-D950-45E5-B832-894A325445DC} = {7844FF58-7DBF-46E1-88B7-9764382A4EE9}
- {749899E3-86F3-48FD-AF09-BBFDA8E0EA36} = {7844FF58-7DBF-46E1-88B7-9764382A4EE9}
- {74500EF4-93FE-4B84-A538-BA94CEE73E92} = {7844FF58-7DBF-46E1-88B7-9764382A4EE9}
- {8420F159-401F-48F9-A206-CA5D5B0B4CDE} = {459DEA84-19F7-49A2-BD23-F5B871DFF92D}
- {7E7E8768-198D-400A-B8C4-7E86BB38BE4E} = {459DEA84-19F7-49A2-BD23-F5B871DFF92D}
- {86C48FB7-09D7-47F5-A6C0-FB7C22A362B2} = {459DEA84-19F7-49A2-BD23-F5B871DFF92D}
- {3458DCC4-55CB-424A-A5BF-9DB11F24D41F} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
- {A0869700-2CA0-40F1-8AEA-5ADEA1204294} = {AD002164-CFB4-4583-BF13-62C815009ADE}
- {911B7C56-1908-42B5-BCE8-860DE650AE31} = {AD002164-CFB4-4583-BF13-62C815009ADE}
- {CAE0492C-11A3-424C-8613-7DAB83E4FB60} = {AD002164-CFB4-4583-BF13-62C815009ADE}
- {4D055853-DE80-4145-BB2F-33EB6B379F5E} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
- {E4783690-052A-4AB0-837E-BDBC77CC7EEC} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
- {1859E205-88DC-4E08-A0BD-55A045DCC495} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
- {6ECF678D-6F3A-4084-8538-A86C1D67C703} = {9C73D4E6-4408-4717-B51C-63C20321D4DA}
- {9FB5E943-7F6F-4281-9C00-E76284B4F1F3} = {9C73D4E6-4408-4717-B51C-63C20321D4DA}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {6BB7A5DE-DA12-44DC-BC9B-0F6CA524346F}
- EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.0.31903.59
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "host", "host", "{6CB521FC-AC40-49A6-B9A5-91399CAA59AB}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LY.MicroService.WorkflowManagement.HttpApi.Host", "services\LY.MicroService.WorkflowManagement.HttpApi.Host\LY.MicroService.WorkflowManagement.HttpApi.Host.csproj", "{D5ED348D-D6F0-4093-BD7D-20E05AA1EB7B}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "elsa", "elsa", "{F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa", "modules\elsa\LINGYUN.Abp.Elsa\LINGYUN.Abp.Elsa.csproj", "{17EA5194-BBE8-4CE1-B6F9-DF6829622F38}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Server", "modules\elsa\LINGYUN.Abp.Elsa.Server\LINGYUN.Abp.Elsa.Server.csproj", "{88AA0D46-597E-4969-8382-A3F8054B9409}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.EntityFrameworkCore", "modules\elsa\LINGYUN.Abp.Elsa.EntityFrameworkCore\LINGYUN.Abp.Elsa.EntityFrameworkCore.csproj", "{CAC0D3A2-8BFA-4A84-A7FA-550A3BB16288}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Activities.BlobStoring", "modules\elsa\LINGYUN.Abp.Elsa.Activities.BlobStoring\LINGYUN.Abp.Elsa.Activities.BlobStoring.csproj", "{81CB5141-4FC5-413A-A516-CD65F40465C0}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Activities.Notifications", "modules\elsa\LINGYUN.Abp.Elsa.Activities.Notifications\LINGYUN.Abp.Elsa.Activities.Notifications.csproj", "{F5023AD3-D9C5-40C9-B76A-58D95E441997}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Activities.IM", "modules\elsa\LINGYUN.Abp.Elsa.Activities.IM\LINGYUN.Abp.Elsa.Activities.IM.csproj", "{4FD7B21B-3689-4D4A-BDD2-A07E2DC2E80C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Activities.Sms", "modules\elsa\LINGYUN.Abp.Elsa.Activities.Sms\LINGYUN.Abp.Elsa.Activities.Sms.csproj", "{FF3A193B-6131-4B4D-9729-1BF8A125C0AB}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "common", "common", "{6DA78E72-BA55-4ECF-97DB-6258174D3E2A}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.RealTime", "framework\common\LINGYUN.Abp.RealTime\LINGYUN.Abp.RealTime.csproj", "{18A20311-84D8-49C4-B7BA-1187FF25E9BC}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications", "modules\realtime-notifications\LINGYUN.Abp.Notifications\LINGYUN.Abp.Notifications.csproj", "{2C3FABD7-808B-47B5-A194-849A1738E9A2}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IM", "modules\realtime-message\LINGYUN.Abp.IM\LINGYUN.Abp.IM.csproj", "{8BE6BA3E-048E-4FC7-81DD-7FCD29AE2126}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Activities.Emailing", "modules\elsa\LINGYUN.Abp.Elsa.Activities.Emailing\LINGYUN.Abp.Elsa.Activities.Emailing.csproj", "{9E213E6F-77CB-4068-93EB-465C47FDA8FA}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Activities", "modules\elsa\LINGYUN.Abp.Elsa.Activities\LINGYUN.Abp.Elsa.Activities.csproj", "{EEE9DF30-1901-4070-8E03-A8D8A0E10E34}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.Core", "modules\realtime-notifications\LINGYUN.Abp.Notifications.Core\LINGYUN.Abp.Notifications.Core.csproj", "{CE1B9AD0-7CDA-4459-86A3-A3162C1095D9}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Activities.Webhooks", "modules\elsa\LINGYUN.Abp.Elsa.Activities.Webhooks\LINGYUN.Abp.Elsa.Activities.Webhooks.csproj", "{2CA34976-4A80-485C-8572-6004829BB727}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Webhooks.Core", "modules\webhooks\LINGYUN.Abp.Webhooks.Core\LINGYUN.Abp.Webhooks.Core.csproj", "{44E4EBFA-6F25-4FD7-A4B3-536C3A42677C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Webhooks", "modules\webhooks\LINGYUN.Abp.Webhooks\LINGYUN.Abp.Webhooks.csproj", "{6489B162-2B28-42B9-9AD4-EB5CCBB8AE85}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Webhooks.EventBus", "modules\webhooks\LINGYUN.Abp.Webhooks.EventBus\LINGYUN.Abp.Webhooks.EventBus.csproj", "{B6246B7A-4095-433A-B981-5D1E43CDF712}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql", "modules\elsa\LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql\LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql.csproj", "{4B20572A-10E7-4414-943A-974F275677B4}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{035B86BF-DD63-4A78-B8CE-29994860C948}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Tests", "tests\LINGYUN.Abp.Elsa.Tests\LINGYUN.Abp.Elsa.Tests.csproj", "{9F96F261-93F7-47C0-8F07-72CE39CE20A3}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TestsBase", "tests\LINGYUN.Abp.TestBase\LINGYUN.Abp.TestsBase.csproj", "{8395DA41-AF40-4B0D-B36D-FA8A56E75AED}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Activities.Webhooks.Tests", "tests\LINGYUN.Abp.Elsa.Activities.Webhooks.Tests\LINGYUN.Abp.Elsa.Activities.Webhooks.Tests.csproj", "{B3C2AFCC-EE59-4CB4-AB62-B90D60335632}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AuditLogging", "framework\auditing\LINGYUN.Abp.AuditLogging\LINGYUN.Abp.AuditLogging.csproj", "{A03A98B6-19E9-4CCA-9801-AEFCBAAF5B72}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AuditLogging.Elasticsearch", "framework\auditing\LINGYUN.Abp.AuditLogging.Elasticsearch\LINGYUN.Abp.AuditLogging.Elasticsearch.csproj", "{00AB0A7E-578E-469C-B049-BCAA0233A9DD}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.ExceptionHandling", "framework\common\LINGYUN.Abp.ExceptionHandling\LINGYUN.Abp.ExceptionHandling.csproj", "{90B326F6-99DF-4EEC-A480-26C27EE22237}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.ExceptionHandling.Notifications", "modules\realtime-notifications\LINGYUN.Abp.ExceptionHandling.Notifications\LINGYUN.Abp.ExceptionHandling.Notifications.csproj", "{96EBCB1F-DB7B-40BA-B59E-82FC1AE13EA0}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.Common", "modules\realtime-notifications\LINGYUN.Abp.Notifications.Common\LINGYUN.Abp.Notifications.Common.csproj", "{6399C2FB-B063-4BB3-B605-88CE5303198B}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Notifications", "modules\elsa\LINGYUN.Abp.Elsa.Notifications\LINGYUN.Abp.Elsa.Notifications.csproj", "{D2F6105D-D667-46DB-8CDA-89B4D3F69067}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BlobStoring.OssManagement", "modules\oss-management\LINGYUN.Abp.BlobStoring.OssManagement\LINGYUN.Abp.BlobStoring.OssManagement.csproj", "{CE550720-FA77-4FF3-B5F0-A2B7A1781E61}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elasticsearch", "framework\elasticsearch\LINGYUN.Abp.Elasticsearch\LINGYUN.Abp.Elasticsearch.csproj", "{ECA9D3FA-248F-4D0E-A612-FE1CC72241D5}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "oss-management", "oss-management", "{7B82C484-4DDF-45F2-B5FC-DFA9FFC3258B}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.OssManagement.Domain.Shared", "modules\oss-management\LINGYUN.Abp.OssManagement.Domain.Shared\LINGYUN.Abp.OssManagement.Domain.Shared.csproj", "{C2F7971A-CFCE-4BE0-9A3A-805972A5F00B}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.OssManagement.Application.Contracts", "modules\oss-management\LINGYUN.Abp.OssManagement.Application.Contracts\LINGYUN.Abp.OssManagement.Application.Contracts.csproj", "{0DA0B251-66A6-441C-91B3-DFF953C53C4A}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.OssManagement.HttpApi.Client", "modules\oss-management\LINGYUN.Abp.OssManagement.HttpApi.Client\LINGYUN.Abp.OssManagement.HttpApi.Client.csproj", "{E71FE3BB-1793-460F-9802-77FB9BBC1356}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "realtime", "realtime", "{54C52918-0B8B-4036-B673-23BE74AFFA95}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "notifications", "notifications", "{927A4A04-56EF-4A0F-B17C-E80ABA78C554}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "message", "message", "{7AF97C49-F445-4D77-9DBF-1A211933A471}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IdGenerator", "framework\common\LINGYUN.Abp.IdGenerator\LINGYUN.Abp.IdGenerator.csproj", "{9A5CDAEF-3767-4924-810E-C2018EFB5124}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "webhooks", "webhooks", "{7C1D7F97-1D2C-47F3-B3E7-8275D57267C4}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Authorization.OrganizationUnits", "framework\authorization\LINGYUN.Abp.Authorization.OrganizationUnits\LINGYUN.Abp.Authorization.OrganizationUnits.csproj", "{EE20EC4E-9C09-485A-8FBF-AF7FE253714D}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.EventBus.CAP", "framework\common\LINGYUN.Abp.EventBus.CAP\LINGYUN.Abp.EventBus.CAP.csproj", "{B08298CE-D261-4990-8458-17341992AD01}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Data.DbMigrator", "framework\common\LINGYUN.Abp.Data.DbMigrator\LINGYUN.Abp.Data.DbMigrator.csproj", "{9D0D219B-AC06-4371-9BA1-630BC00FE0F0}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.ExceptionHandling.Emailing", "framework\common\LINGYUN.Abp.ExceptionHandling.Emailing\LINGYUN.Abp.ExceptionHandling.Emailing.csproj", "{ADFC9BA9-405D-4900-B5A3-D7A6F6EED38B}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Wrapper", "framework\common\LINGYUN.Abp.Wrapper\LINGYUN.Abp.Wrapper.csproj", "{0B7492A2-7B11-4BC1-A55D-5756B74F0055}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Http.Client.Wrapper", "framework\common\LINGYUN.Abp.Http.Client.Wrapper\LINGYUN.Abp.Http.Client.Wrapper.csproj", "{92808D98-A096-4C4D-A038-A1D359812E32}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Localization.CultureMap", "framework\localization\LINGYUN.Abp.Localization.CultureMap\LINGYUN.Abp.Localization.CultureMap.csproj", "{D2019F8C-BD18-4DB5-9C38-1AF511D511FC}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.Mvc.Localization", "framework\localization\LINGYUN.Abp.AspNetCore.Mvc.Localization\LINGYUN.Abp.AspNetCore.Mvc.Localization.csproj", "{57ED879F-2A6F-4618-AD0C-5896CAFA3902}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Serilog.Enrichers.Application", "framework\logging\LINGYUN.Abp.Serilog.Enrichers.Application\LINGYUN.Abp.Serilog.Enrichers.Application.csproj", "{9A21CDDA-E03F-432B-A539-D553B69E1B5E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Serilog.Enrichers.UniqueId", "framework\logging\LINGYUN.Abp.Serilog.Enrichers.UniqueId\LINGYUN.Abp.Serilog.Enrichers.UniqueId.csproj", "{A3CC8323-B8C0-402E-B0CF-F67029E5E9E9}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.Mvc.Wrapper", "framework\mvc\LINGYUN.Abp.AspNetCore.Mvc.Wrapper\LINGYUN.Abp.AspNetCore.Mvc.Wrapper.csproj", "{0DC9EE7D-7A8E-4CC7-AE0B-CBA74B5C3F72}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "localization-management", "localization-management", "{26C224A8-EA29-4FB9-BA1D-9FFA1D8608E7}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Localization.Persistence", "framework\localization\LINGYUN.Abp.Localization.Persistence\LINGYUN.Abp.Localization.Persistence.csproj", "{CBDC2774-72FE-4454-8547-01EF9A63FB08}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.LocalizationManagement.Domain.Shared", "modules\localization-management\LINGYUN.Abp.LocalizationManagement.Domain.Shared\LINGYUN.Abp.LocalizationManagement.Domain.Shared.csproj", "{E2327757-4988-4710-8A67-06A7EEC12DFA}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.LocalizationManagement.Domain", "modules\localization-management\LINGYUN.Abp.LocalizationManagement.Domain\LINGYUN.Abp.LocalizationManagement.Domain.csproj", "{28AFEB19-6CDE-4AD9-9A83-BDCD98C3E386}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.LocalizationManagement.EntityFrameworkCore", "modules\localization-management\LINGYUN.Abp.LocalizationManagement.EntityFrameworkCore\LINGYUN.Abp.LocalizationManagement.EntityFrameworkCore.csproj", "{B281B9FE-8F1F-471C-B399-C1D07DF575E4}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "task-management", "task-management", "{7844FF58-7DBF-46E1-88B7-9764382A4EE9}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BackgroundTasks.Abstractions", "modules\task-management\LINGYUN.Abp.BackgroundTasks.Abstractions\LINGYUN.Abp.BackgroundTasks.Abstractions.csproj", "{927AD997-604B-4553-B768-8BFC595E9D62}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BackgroundTasks", "modules\task-management\LINGYUN.Abp.BackgroundTasks\LINGYUN.Abp.BackgroundTasks.csproj", "{76AF3503-CB33-4DFA-BE4F-F2EBB51EEA07}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BackgroundTasks.Activities", "modules\task-management\LINGYUN.Abp.BackgroundTasks.Activities\LINGYUN.Abp.BackgroundTasks.Activities.csproj", "{F2DEFDB5-29FD-44B9-A22C-A7D857BA60A0}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BackgroundTasks.DistributedLocking", "modules\task-management\LINGYUN.Abp.BackgroundTasks.DistributedLocking\LINGYUN.Abp.BackgroundTasks.DistributedLocking.csproj", "{004C3502-A1E2-4CCC-AB8E-E823FCE3E916}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BackgroundTasks.ExceptionHandling", "modules\task-management\LINGYUN.Abp.BackgroundTasks.ExceptionHandling\LINGYUN.Abp.BackgroundTasks.ExceptionHandling.csproj", "{1E26260F-8D99-4F9D-B20F-4B4B12A315E1}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TaskManagement.Domain.Shared", "modules\task-management\LINGYUN.Abp.TaskManagement.Domain.Shared\LINGYUN.Abp.TaskManagement.Domain.Shared.csproj", "{A675EBDA-0021-406A-A0AA-5B27AF2902E0}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TaskManagement.Domain", "modules\task-management\LINGYUN.Abp.TaskManagement.Domain\LINGYUN.Abp.TaskManagement.Domain.csproj", "{7927F5D8-D950-45E5-B832-894A325445DC}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TaskManagement.EntityFrameworkCore", "modules\task-management\LINGYUN.Abp.TaskManagement.EntityFrameworkCore\LINGYUN.Abp.TaskManagement.EntityFrameworkCore.csproj", "{749899E3-86F3-48FD-AF09-BBFDA8E0EA36}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BackgroundTasks.Quartz", "modules\task-management\LINGYUN.Abp.BackgroundTasks.Quartz\LINGYUN.Abp.BackgroundTasks.Quartz.csproj", "{74500EF4-93FE-4B84-A538-BA94CEE73E92}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "text-templating", "text-templating", "{459DEA84-19F7-49A2-BD23-F5B871DFF92D}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TextTemplating.Domain.Shared", "modules\text-templating\LINGYUN.Abp.TextTemplating.Domain.Shared\LINGYUN.Abp.TextTemplating.Domain.Shared.csproj", "{8420F159-401F-48F9-A206-CA5D5B0B4CDE}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TextTemplating.Domain", "modules\text-templating\LINGYUN.Abp.TextTemplating.Domain\LINGYUN.Abp.TextTemplating.Domain.csproj", "{7E7E8768-198D-400A-B8C4-7E86BB38BE4E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TextTemplating.EntityFrameworkCore", "modules\text-templating\LINGYUN.Abp.TextTemplating.EntityFrameworkCore\LINGYUN.Abp.TextTemplating.EntityFrameworkCore.csproj", "{86C48FB7-09D7-47F5-A6C0-FB7C22A362B2}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.MultiTenancy.Editions", "framework\tenants\LINGYUN.Abp.MultiTenancy.Editions\LINGYUN.Abp.MultiTenancy.Editions.csproj", "{3458DCC4-55CB-424A-A5BF-9DB11F24D41F}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "saas", "saas", "{AD002164-CFB4-4583-BF13-62C815009ADE}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Saas.Domain.Shared", "modules\saas\LINGYUN.Abp.Saas.Domain.Shared\LINGYUN.Abp.Saas.Domain.Shared.csproj", "{A0869700-2CA0-40F1-8AEA-5ADEA1204294}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Saas.Domain", "modules\saas\LINGYUN.Abp.Saas.Domain\LINGYUN.Abp.Saas.Domain.csproj", "{911B7C56-1908-42B5-BCE8-860DE650AE31}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Saas.EntityFrameworkCore", "modules\saas\LINGYUN.Abp.Saas.EntityFrameworkCore\LINGYUN.Abp.Saas.EntityFrameworkCore.csproj", "{CAE0492C-11A3-424C-8613-7DAB83E4FB60}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.HttpOverrides", "framework\common\LINGYUN.Abp.AspNetCore.HttpOverrides\LINGYUN.Abp.AspNetCore.HttpOverrides.csproj", "{4D055853-DE80-4145-BB2F-33EB6B379F5E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Security", "framework\security\LINGYUN.Abp.Security\LINGYUN.Abp.Security.csproj", "{E4783690-052A-4AB0-837E-BDBC77CC7EEC}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Claims.Mapping", "framework\security\LINGYUN.Abp.Claims.Mapping\LINGYUN.Abp.Claims.Mapping.csproj", "{1859E205-88DC-4E08-A0BD-55A045DCC495}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "identity", "identity", "{9C73D4E6-4408-4717-B51C-63C20321D4DA}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.Session", "modules\identity\LINGYUN.Abp.Identity.Session\LINGYUN.Abp.Identity.Session.csproj", "{6ECF678D-6F3A-4084-8538-A86C1D67C703}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.Session.AspNetCore", "modules\identity\LINGYUN.Abp.Identity.Session.AspNetCore\LINGYUN.Abp.Identity.Session.AspNetCore.csproj", "{9FB5E943-7F6F-4281-9C00-E76284B4F1F3}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.Elsa.EntityFrameworkCore.PostgreSql", "modules\elsa\LINGYUN.Abp.Elsa.EntityFrameworkCore.PostgreSql\LINGYUN.Abp.Elsa.EntityFrameworkCore.PostgreSql.csproj", "{D56851BB-557E-4CF9-B724-8E607EEE9D07}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.Elsa.EntityFrameworkCore.SqlServer", "modules\elsa\LINGYUN.Abp.Elsa.EntityFrameworkCore.SqlServer\LINGYUN.Abp.Elsa.EntityFrameworkCore.SqlServer.csproj", "{22BB3760-8DA1-4714-ADB7-1585A4EB8496}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D5ED348D-D6F0-4093-BD7D-20E05AA1EB7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D5ED348D-D6F0-4093-BD7D-20E05AA1EB7B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D5ED348D-D6F0-4093-BD7D-20E05AA1EB7B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D5ED348D-D6F0-4093-BD7D-20E05AA1EB7B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {17EA5194-BBE8-4CE1-B6F9-DF6829622F38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {17EA5194-BBE8-4CE1-B6F9-DF6829622F38}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {17EA5194-BBE8-4CE1-B6F9-DF6829622F38}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {17EA5194-BBE8-4CE1-B6F9-DF6829622F38}.Release|Any CPU.Build.0 = Release|Any CPU
+ {88AA0D46-597E-4969-8382-A3F8054B9409}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {88AA0D46-597E-4969-8382-A3F8054B9409}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {88AA0D46-597E-4969-8382-A3F8054B9409}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {88AA0D46-597E-4969-8382-A3F8054B9409}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CAC0D3A2-8BFA-4A84-A7FA-550A3BB16288}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CAC0D3A2-8BFA-4A84-A7FA-550A3BB16288}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CAC0D3A2-8BFA-4A84-A7FA-550A3BB16288}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CAC0D3A2-8BFA-4A84-A7FA-550A3BB16288}.Release|Any CPU.Build.0 = Release|Any CPU
+ {81CB5141-4FC5-413A-A516-CD65F40465C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {81CB5141-4FC5-413A-A516-CD65F40465C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {81CB5141-4FC5-413A-A516-CD65F40465C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {81CB5141-4FC5-413A-A516-CD65F40465C0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F5023AD3-D9C5-40C9-B76A-58D95E441997}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F5023AD3-D9C5-40C9-B76A-58D95E441997}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F5023AD3-D9C5-40C9-B76A-58D95E441997}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F5023AD3-D9C5-40C9-B76A-58D95E441997}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4FD7B21B-3689-4D4A-BDD2-A07E2DC2E80C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4FD7B21B-3689-4D4A-BDD2-A07E2DC2E80C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4FD7B21B-3689-4D4A-BDD2-A07E2DC2E80C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4FD7B21B-3689-4D4A-BDD2-A07E2DC2E80C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FF3A193B-6131-4B4D-9729-1BF8A125C0AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FF3A193B-6131-4B4D-9729-1BF8A125C0AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FF3A193B-6131-4B4D-9729-1BF8A125C0AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FF3A193B-6131-4B4D-9729-1BF8A125C0AB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {18A20311-84D8-49C4-B7BA-1187FF25E9BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {18A20311-84D8-49C4-B7BA-1187FF25E9BC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {18A20311-84D8-49C4-B7BA-1187FF25E9BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {18A20311-84D8-49C4-B7BA-1187FF25E9BC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2C3FABD7-808B-47B5-A194-849A1738E9A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2C3FABD7-808B-47B5-A194-849A1738E9A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2C3FABD7-808B-47B5-A194-849A1738E9A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2C3FABD7-808B-47B5-A194-849A1738E9A2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8BE6BA3E-048E-4FC7-81DD-7FCD29AE2126}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8BE6BA3E-048E-4FC7-81DD-7FCD29AE2126}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8BE6BA3E-048E-4FC7-81DD-7FCD29AE2126}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8BE6BA3E-048E-4FC7-81DD-7FCD29AE2126}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9E213E6F-77CB-4068-93EB-465C47FDA8FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9E213E6F-77CB-4068-93EB-465C47FDA8FA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9E213E6F-77CB-4068-93EB-465C47FDA8FA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9E213E6F-77CB-4068-93EB-465C47FDA8FA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EEE9DF30-1901-4070-8E03-A8D8A0E10E34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EEE9DF30-1901-4070-8E03-A8D8A0E10E34}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EEE9DF30-1901-4070-8E03-A8D8A0E10E34}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EEE9DF30-1901-4070-8E03-A8D8A0E10E34}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CE1B9AD0-7CDA-4459-86A3-A3162C1095D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CE1B9AD0-7CDA-4459-86A3-A3162C1095D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CE1B9AD0-7CDA-4459-86A3-A3162C1095D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CE1B9AD0-7CDA-4459-86A3-A3162C1095D9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2CA34976-4A80-485C-8572-6004829BB727}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2CA34976-4A80-485C-8572-6004829BB727}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2CA34976-4A80-485C-8572-6004829BB727}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2CA34976-4A80-485C-8572-6004829BB727}.Release|Any CPU.Build.0 = Release|Any CPU
+ {44E4EBFA-6F25-4FD7-A4B3-536C3A42677C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {44E4EBFA-6F25-4FD7-A4B3-536C3A42677C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {44E4EBFA-6F25-4FD7-A4B3-536C3A42677C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {44E4EBFA-6F25-4FD7-A4B3-536C3A42677C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6489B162-2B28-42B9-9AD4-EB5CCBB8AE85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6489B162-2B28-42B9-9AD4-EB5CCBB8AE85}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6489B162-2B28-42B9-9AD4-EB5CCBB8AE85}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6489B162-2B28-42B9-9AD4-EB5CCBB8AE85}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B6246B7A-4095-433A-B981-5D1E43CDF712}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B6246B7A-4095-433A-B981-5D1E43CDF712}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B6246B7A-4095-433A-B981-5D1E43CDF712}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B6246B7A-4095-433A-B981-5D1E43CDF712}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4B20572A-10E7-4414-943A-974F275677B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4B20572A-10E7-4414-943A-974F275677B4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4B20572A-10E7-4414-943A-974F275677B4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4B20572A-10E7-4414-943A-974F275677B4}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9F96F261-93F7-47C0-8F07-72CE39CE20A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9F96F261-93F7-47C0-8F07-72CE39CE20A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9F96F261-93F7-47C0-8F07-72CE39CE20A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9F96F261-93F7-47C0-8F07-72CE39CE20A3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8395DA41-AF40-4B0D-B36D-FA8A56E75AED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8395DA41-AF40-4B0D-B36D-FA8A56E75AED}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8395DA41-AF40-4B0D-B36D-FA8A56E75AED}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8395DA41-AF40-4B0D-B36D-FA8A56E75AED}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B3C2AFCC-EE59-4CB4-AB62-B90D60335632}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B3C2AFCC-EE59-4CB4-AB62-B90D60335632}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B3C2AFCC-EE59-4CB4-AB62-B90D60335632}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B3C2AFCC-EE59-4CB4-AB62-B90D60335632}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A03A98B6-19E9-4CCA-9801-AEFCBAAF5B72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A03A98B6-19E9-4CCA-9801-AEFCBAAF5B72}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A03A98B6-19E9-4CCA-9801-AEFCBAAF5B72}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A03A98B6-19E9-4CCA-9801-AEFCBAAF5B72}.Release|Any CPU.Build.0 = Release|Any CPU
+ {00AB0A7E-578E-469C-B049-BCAA0233A9DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {00AB0A7E-578E-469C-B049-BCAA0233A9DD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {00AB0A7E-578E-469C-B049-BCAA0233A9DD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {00AB0A7E-578E-469C-B049-BCAA0233A9DD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {90B326F6-99DF-4EEC-A480-26C27EE22237}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {90B326F6-99DF-4EEC-A480-26C27EE22237}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {90B326F6-99DF-4EEC-A480-26C27EE22237}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {90B326F6-99DF-4EEC-A480-26C27EE22237}.Release|Any CPU.Build.0 = Release|Any CPU
+ {96EBCB1F-DB7B-40BA-B59E-82FC1AE13EA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {96EBCB1F-DB7B-40BA-B59E-82FC1AE13EA0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {96EBCB1F-DB7B-40BA-B59E-82FC1AE13EA0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {96EBCB1F-DB7B-40BA-B59E-82FC1AE13EA0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6399C2FB-B063-4BB3-B605-88CE5303198B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6399C2FB-B063-4BB3-B605-88CE5303198B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6399C2FB-B063-4BB3-B605-88CE5303198B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6399C2FB-B063-4BB3-B605-88CE5303198B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D2F6105D-D667-46DB-8CDA-89B4D3F69067}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D2F6105D-D667-46DB-8CDA-89B4D3F69067}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D2F6105D-D667-46DB-8CDA-89B4D3F69067}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D2F6105D-D667-46DB-8CDA-89B4D3F69067}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CE550720-FA77-4FF3-B5F0-A2B7A1781E61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CE550720-FA77-4FF3-B5F0-A2B7A1781E61}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CE550720-FA77-4FF3-B5F0-A2B7A1781E61}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CE550720-FA77-4FF3-B5F0-A2B7A1781E61}.Release|Any CPU.Build.0 = Release|Any CPU
+ {ECA9D3FA-248F-4D0E-A612-FE1CC72241D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {ECA9D3FA-248F-4D0E-A612-FE1CC72241D5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {ECA9D3FA-248F-4D0E-A612-FE1CC72241D5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {ECA9D3FA-248F-4D0E-A612-FE1CC72241D5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C2F7971A-CFCE-4BE0-9A3A-805972A5F00B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C2F7971A-CFCE-4BE0-9A3A-805972A5F00B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C2F7971A-CFCE-4BE0-9A3A-805972A5F00B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C2F7971A-CFCE-4BE0-9A3A-805972A5F00B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0DA0B251-66A6-441C-91B3-DFF953C53C4A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0DA0B251-66A6-441C-91B3-DFF953C53C4A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0DA0B251-66A6-441C-91B3-DFF953C53C4A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0DA0B251-66A6-441C-91B3-DFF953C53C4A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E71FE3BB-1793-460F-9802-77FB9BBC1356}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E71FE3BB-1793-460F-9802-77FB9BBC1356}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E71FE3BB-1793-460F-9802-77FB9BBC1356}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E71FE3BB-1793-460F-9802-77FB9BBC1356}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9A5CDAEF-3767-4924-810E-C2018EFB5124}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9A5CDAEF-3767-4924-810E-C2018EFB5124}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9A5CDAEF-3767-4924-810E-C2018EFB5124}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9A5CDAEF-3767-4924-810E-C2018EFB5124}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EE20EC4E-9C09-485A-8FBF-AF7FE253714D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EE20EC4E-9C09-485A-8FBF-AF7FE253714D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EE20EC4E-9C09-485A-8FBF-AF7FE253714D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EE20EC4E-9C09-485A-8FBF-AF7FE253714D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B08298CE-D261-4990-8458-17341992AD01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B08298CE-D261-4990-8458-17341992AD01}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B08298CE-D261-4990-8458-17341992AD01}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B08298CE-D261-4990-8458-17341992AD01}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9D0D219B-AC06-4371-9BA1-630BC00FE0F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9D0D219B-AC06-4371-9BA1-630BC00FE0F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9D0D219B-AC06-4371-9BA1-630BC00FE0F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9D0D219B-AC06-4371-9BA1-630BC00FE0F0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {ADFC9BA9-405D-4900-B5A3-D7A6F6EED38B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {ADFC9BA9-405D-4900-B5A3-D7A6F6EED38B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {ADFC9BA9-405D-4900-B5A3-D7A6F6EED38B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {ADFC9BA9-405D-4900-B5A3-D7A6F6EED38B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0B7492A2-7B11-4BC1-A55D-5756B74F0055}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0B7492A2-7B11-4BC1-A55D-5756B74F0055}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0B7492A2-7B11-4BC1-A55D-5756B74F0055}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0B7492A2-7B11-4BC1-A55D-5756B74F0055}.Release|Any CPU.Build.0 = Release|Any CPU
+ {92808D98-A096-4C4D-A038-A1D359812E32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {92808D98-A096-4C4D-A038-A1D359812E32}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {92808D98-A096-4C4D-A038-A1D359812E32}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {92808D98-A096-4C4D-A038-A1D359812E32}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D2019F8C-BD18-4DB5-9C38-1AF511D511FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D2019F8C-BD18-4DB5-9C38-1AF511D511FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D2019F8C-BD18-4DB5-9C38-1AF511D511FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D2019F8C-BD18-4DB5-9C38-1AF511D511FC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {57ED879F-2A6F-4618-AD0C-5896CAFA3902}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {57ED879F-2A6F-4618-AD0C-5896CAFA3902}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {57ED879F-2A6F-4618-AD0C-5896CAFA3902}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {57ED879F-2A6F-4618-AD0C-5896CAFA3902}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9A21CDDA-E03F-432B-A539-D553B69E1B5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9A21CDDA-E03F-432B-A539-D553B69E1B5E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9A21CDDA-E03F-432B-A539-D553B69E1B5E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9A21CDDA-E03F-432B-A539-D553B69E1B5E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A3CC8323-B8C0-402E-B0CF-F67029E5E9E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A3CC8323-B8C0-402E-B0CF-F67029E5E9E9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A3CC8323-B8C0-402E-B0CF-F67029E5E9E9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A3CC8323-B8C0-402E-B0CF-F67029E5E9E9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0DC9EE7D-7A8E-4CC7-AE0B-CBA74B5C3F72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0DC9EE7D-7A8E-4CC7-AE0B-CBA74B5C3F72}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0DC9EE7D-7A8E-4CC7-AE0B-CBA74B5C3F72}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0DC9EE7D-7A8E-4CC7-AE0B-CBA74B5C3F72}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CBDC2774-72FE-4454-8547-01EF9A63FB08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CBDC2774-72FE-4454-8547-01EF9A63FB08}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CBDC2774-72FE-4454-8547-01EF9A63FB08}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CBDC2774-72FE-4454-8547-01EF9A63FB08}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E2327757-4988-4710-8A67-06A7EEC12DFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E2327757-4988-4710-8A67-06A7EEC12DFA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E2327757-4988-4710-8A67-06A7EEC12DFA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E2327757-4988-4710-8A67-06A7EEC12DFA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {28AFEB19-6CDE-4AD9-9A83-BDCD98C3E386}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {28AFEB19-6CDE-4AD9-9A83-BDCD98C3E386}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {28AFEB19-6CDE-4AD9-9A83-BDCD98C3E386}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {28AFEB19-6CDE-4AD9-9A83-BDCD98C3E386}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B281B9FE-8F1F-471C-B399-C1D07DF575E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B281B9FE-8F1F-471C-B399-C1D07DF575E4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B281B9FE-8F1F-471C-B399-C1D07DF575E4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B281B9FE-8F1F-471C-B399-C1D07DF575E4}.Release|Any CPU.Build.0 = Release|Any CPU
+ {927AD997-604B-4553-B768-8BFC595E9D62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {927AD997-604B-4553-B768-8BFC595E9D62}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {927AD997-604B-4553-B768-8BFC595E9D62}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {927AD997-604B-4553-B768-8BFC595E9D62}.Release|Any CPU.Build.0 = Release|Any CPU
+ {76AF3503-CB33-4DFA-BE4F-F2EBB51EEA07}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {76AF3503-CB33-4DFA-BE4F-F2EBB51EEA07}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {76AF3503-CB33-4DFA-BE4F-F2EBB51EEA07}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {76AF3503-CB33-4DFA-BE4F-F2EBB51EEA07}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F2DEFDB5-29FD-44B9-A22C-A7D857BA60A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F2DEFDB5-29FD-44B9-A22C-A7D857BA60A0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F2DEFDB5-29FD-44B9-A22C-A7D857BA60A0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F2DEFDB5-29FD-44B9-A22C-A7D857BA60A0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {004C3502-A1E2-4CCC-AB8E-E823FCE3E916}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {004C3502-A1E2-4CCC-AB8E-E823FCE3E916}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {004C3502-A1E2-4CCC-AB8E-E823FCE3E916}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {004C3502-A1E2-4CCC-AB8E-E823FCE3E916}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1E26260F-8D99-4F9D-B20F-4B4B12A315E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1E26260F-8D99-4F9D-B20F-4B4B12A315E1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1E26260F-8D99-4F9D-B20F-4B4B12A315E1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1E26260F-8D99-4F9D-B20F-4B4B12A315E1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A675EBDA-0021-406A-A0AA-5B27AF2902E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A675EBDA-0021-406A-A0AA-5B27AF2902E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A675EBDA-0021-406A-A0AA-5B27AF2902E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A675EBDA-0021-406A-A0AA-5B27AF2902E0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7927F5D8-D950-45E5-B832-894A325445DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7927F5D8-D950-45E5-B832-894A325445DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7927F5D8-D950-45E5-B832-894A325445DC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7927F5D8-D950-45E5-B832-894A325445DC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {749899E3-86F3-48FD-AF09-BBFDA8E0EA36}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {749899E3-86F3-48FD-AF09-BBFDA8E0EA36}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {749899E3-86F3-48FD-AF09-BBFDA8E0EA36}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {749899E3-86F3-48FD-AF09-BBFDA8E0EA36}.Release|Any CPU.Build.0 = Release|Any CPU
+ {74500EF4-93FE-4B84-A538-BA94CEE73E92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {74500EF4-93FE-4B84-A538-BA94CEE73E92}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {74500EF4-93FE-4B84-A538-BA94CEE73E92}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {74500EF4-93FE-4B84-A538-BA94CEE73E92}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8420F159-401F-48F9-A206-CA5D5B0B4CDE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8420F159-401F-48F9-A206-CA5D5B0B4CDE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8420F159-401F-48F9-A206-CA5D5B0B4CDE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8420F159-401F-48F9-A206-CA5D5B0B4CDE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7E7E8768-198D-400A-B8C4-7E86BB38BE4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7E7E8768-198D-400A-B8C4-7E86BB38BE4E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7E7E8768-198D-400A-B8C4-7E86BB38BE4E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7E7E8768-198D-400A-B8C4-7E86BB38BE4E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {86C48FB7-09D7-47F5-A6C0-FB7C22A362B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {86C48FB7-09D7-47F5-A6C0-FB7C22A362B2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {86C48FB7-09D7-47F5-A6C0-FB7C22A362B2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {86C48FB7-09D7-47F5-A6C0-FB7C22A362B2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3458DCC4-55CB-424A-A5BF-9DB11F24D41F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3458DCC4-55CB-424A-A5BF-9DB11F24D41F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3458DCC4-55CB-424A-A5BF-9DB11F24D41F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3458DCC4-55CB-424A-A5BF-9DB11F24D41F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A0869700-2CA0-40F1-8AEA-5ADEA1204294}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A0869700-2CA0-40F1-8AEA-5ADEA1204294}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A0869700-2CA0-40F1-8AEA-5ADEA1204294}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A0869700-2CA0-40F1-8AEA-5ADEA1204294}.Release|Any CPU.Build.0 = Release|Any CPU
+ {911B7C56-1908-42B5-BCE8-860DE650AE31}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {911B7C56-1908-42B5-BCE8-860DE650AE31}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {911B7C56-1908-42B5-BCE8-860DE650AE31}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {911B7C56-1908-42B5-BCE8-860DE650AE31}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CAE0492C-11A3-424C-8613-7DAB83E4FB60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CAE0492C-11A3-424C-8613-7DAB83E4FB60}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CAE0492C-11A3-424C-8613-7DAB83E4FB60}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CAE0492C-11A3-424C-8613-7DAB83E4FB60}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4D055853-DE80-4145-BB2F-33EB6B379F5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4D055853-DE80-4145-BB2F-33EB6B379F5E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4D055853-DE80-4145-BB2F-33EB6B379F5E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4D055853-DE80-4145-BB2F-33EB6B379F5E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E4783690-052A-4AB0-837E-BDBC77CC7EEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E4783690-052A-4AB0-837E-BDBC77CC7EEC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E4783690-052A-4AB0-837E-BDBC77CC7EEC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E4783690-052A-4AB0-837E-BDBC77CC7EEC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1859E205-88DC-4E08-A0BD-55A045DCC495}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1859E205-88DC-4E08-A0BD-55A045DCC495}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1859E205-88DC-4E08-A0BD-55A045DCC495}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1859E205-88DC-4E08-A0BD-55A045DCC495}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6ECF678D-6F3A-4084-8538-A86C1D67C703}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6ECF678D-6F3A-4084-8538-A86C1D67C703}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6ECF678D-6F3A-4084-8538-A86C1D67C703}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6ECF678D-6F3A-4084-8538-A86C1D67C703}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9FB5E943-7F6F-4281-9C00-E76284B4F1F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9FB5E943-7F6F-4281-9C00-E76284B4F1F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9FB5E943-7F6F-4281-9C00-E76284B4F1F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9FB5E943-7F6F-4281-9C00-E76284B4F1F3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D56851BB-557E-4CF9-B724-8E607EEE9D07}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D56851BB-557E-4CF9-B724-8E607EEE9D07}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D56851BB-557E-4CF9-B724-8E607EEE9D07}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D56851BB-557E-4CF9-B724-8E607EEE9D07}.Release|Any CPU.Build.0 = Release|Any CPU
+ {22BB3760-8DA1-4714-ADB7-1585A4EB8496}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {22BB3760-8DA1-4714-ADB7-1585A4EB8496}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {22BB3760-8DA1-4714-ADB7-1585A4EB8496}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {22BB3760-8DA1-4714-ADB7-1585A4EB8496}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {D5ED348D-D6F0-4093-BD7D-20E05AA1EB7B} = {6CB521FC-AC40-49A6-B9A5-91399CAA59AB}
+ {17EA5194-BBE8-4CE1-B6F9-DF6829622F38} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
+ {88AA0D46-597E-4969-8382-A3F8054B9409} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
+ {CAC0D3A2-8BFA-4A84-A7FA-550A3BB16288} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
+ {81CB5141-4FC5-413A-A516-CD65F40465C0} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
+ {F5023AD3-D9C5-40C9-B76A-58D95E441997} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
+ {4FD7B21B-3689-4D4A-BDD2-A07E2DC2E80C} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
+ {FF3A193B-6131-4B4D-9729-1BF8A125C0AB} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
+ {18A20311-84D8-49C4-B7BA-1187FF25E9BC} = {54C52918-0B8B-4036-B673-23BE74AFFA95}
+ {2C3FABD7-808B-47B5-A194-849A1738E9A2} = {927A4A04-56EF-4A0F-B17C-E80ABA78C554}
+ {8BE6BA3E-048E-4FC7-81DD-7FCD29AE2126} = {7AF97C49-F445-4D77-9DBF-1A211933A471}
+ {9E213E6F-77CB-4068-93EB-465C47FDA8FA} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
+ {EEE9DF30-1901-4070-8E03-A8D8A0E10E34} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
+ {CE1B9AD0-7CDA-4459-86A3-A3162C1095D9} = {927A4A04-56EF-4A0F-B17C-E80ABA78C554}
+ {2CA34976-4A80-485C-8572-6004829BB727} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
+ {44E4EBFA-6F25-4FD7-A4B3-536C3A42677C} = {7C1D7F97-1D2C-47F3-B3E7-8275D57267C4}
+ {6489B162-2B28-42B9-9AD4-EB5CCBB8AE85} = {7C1D7F97-1D2C-47F3-B3E7-8275D57267C4}
+ {B6246B7A-4095-433A-B981-5D1E43CDF712} = {7C1D7F97-1D2C-47F3-B3E7-8275D57267C4}
+ {4B20572A-10E7-4414-943A-974F275677B4} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
+ {9F96F261-93F7-47C0-8F07-72CE39CE20A3} = {035B86BF-DD63-4A78-B8CE-29994860C948}
+ {8395DA41-AF40-4B0D-B36D-FA8A56E75AED} = {035B86BF-DD63-4A78-B8CE-29994860C948}
+ {B3C2AFCC-EE59-4CB4-AB62-B90D60335632} = {035B86BF-DD63-4A78-B8CE-29994860C948}
+ {A03A98B6-19E9-4CCA-9801-AEFCBAAF5B72} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
+ {00AB0A7E-578E-469C-B049-BCAA0233A9DD} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
+ {90B326F6-99DF-4EEC-A480-26C27EE22237} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
+ {96EBCB1F-DB7B-40BA-B59E-82FC1AE13EA0} = {927A4A04-56EF-4A0F-B17C-E80ABA78C554}
+ {6399C2FB-B063-4BB3-B605-88CE5303198B} = {927A4A04-56EF-4A0F-B17C-E80ABA78C554}
+ {D2F6105D-D667-46DB-8CDA-89B4D3F69067} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
+ {CE550720-FA77-4FF3-B5F0-A2B7A1781E61} = {7B82C484-4DDF-45F2-B5FC-DFA9FFC3258B}
+ {ECA9D3FA-248F-4D0E-A612-FE1CC72241D5} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
+ {C2F7971A-CFCE-4BE0-9A3A-805972A5F00B} = {7B82C484-4DDF-45F2-B5FC-DFA9FFC3258B}
+ {0DA0B251-66A6-441C-91B3-DFF953C53C4A} = {7B82C484-4DDF-45F2-B5FC-DFA9FFC3258B}
+ {E71FE3BB-1793-460F-9802-77FB9BBC1356} = {7B82C484-4DDF-45F2-B5FC-DFA9FFC3258B}
+ {927A4A04-56EF-4A0F-B17C-E80ABA78C554} = {54C52918-0B8B-4036-B673-23BE74AFFA95}
+ {7AF97C49-F445-4D77-9DBF-1A211933A471} = {54C52918-0B8B-4036-B673-23BE74AFFA95}
+ {9A5CDAEF-3767-4924-810E-C2018EFB5124} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
+ {EE20EC4E-9C09-485A-8FBF-AF7FE253714D} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
+ {B08298CE-D261-4990-8458-17341992AD01} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
+ {9D0D219B-AC06-4371-9BA1-630BC00FE0F0} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
+ {ADFC9BA9-405D-4900-B5A3-D7A6F6EED38B} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
+ {0B7492A2-7B11-4BC1-A55D-5756B74F0055} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
+ {92808D98-A096-4C4D-A038-A1D359812E32} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
+ {D2019F8C-BD18-4DB5-9C38-1AF511D511FC} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
+ {57ED879F-2A6F-4618-AD0C-5896CAFA3902} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
+ {9A21CDDA-E03F-432B-A539-D553B69E1B5E} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
+ {A3CC8323-B8C0-402E-B0CF-F67029E5E9E9} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
+ {0DC9EE7D-7A8E-4CC7-AE0B-CBA74B5C3F72} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
+ {CBDC2774-72FE-4454-8547-01EF9A63FB08} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
+ {E2327757-4988-4710-8A67-06A7EEC12DFA} = {26C224A8-EA29-4FB9-BA1D-9FFA1D8608E7}
+ {28AFEB19-6CDE-4AD9-9A83-BDCD98C3E386} = {26C224A8-EA29-4FB9-BA1D-9FFA1D8608E7}
+ {B281B9FE-8F1F-471C-B399-C1D07DF575E4} = {26C224A8-EA29-4FB9-BA1D-9FFA1D8608E7}
+ {927AD997-604B-4553-B768-8BFC595E9D62} = {7844FF58-7DBF-46E1-88B7-9764382A4EE9}
+ {76AF3503-CB33-4DFA-BE4F-F2EBB51EEA07} = {7844FF58-7DBF-46E1-88B7-9764382A4EE9}
+ {F2DEFDB5-29FD-44B9-A22C-A7D857BA60A0} = {7844FF58-7DBF-46E1-88B7-9764382A4EE9}
+ {004C3502-A1E2-4CCC-AB8E-E823FCE3E916} = {7844FF58-7DBF-46E1-88B7-9764382A4EE9}
+ {1E26260F-8D99-4F9D-B20F-4B4B12A315E1} = {7844FF58-7DBF-46E1-88B7-9764382A4EE9}
+ {A675EBDA-0021-406A-A0AA-5B27AF2902E0} = {7844FF58-7DBF-46E1-88B7-9764382A4EE9}
+ {7927F5D8-D950-45E5-B832-894A325445DC} = {7844FF58-7DBF-46E1-88B7-9764382A4EE9}
+ {749899E3-86F3-48FD-AF09-BBFDA8E0EA36} = {7844FF58-7DBF-46E1-88B7-9764382A4EE9}
+ {74500EF4-93FE-4B84-A538-BA94CEE73E92} = {7844FF58-7DBF-46E1-88B7-9764382A4EE9}
+ {8420F159-401F-48F9-A206-CA5D5B0B4CDE} = {459DEA84-19F7-49A2-BD23-F5B871DFF92D}
+ {7E7E8768-198D-400A-B8C4-7E86BB38BE4E} = {459DEA84-19F7-49A2-BD23-F5B871DFF92D}
+ {86C48FB7-09D7-47F5-A6C0-FB7C22A362B2} = {459DEA84-19F7-49A2-BD23-F5B871DFF92D}
+ {3458DCC4-55CB-424A-A5BF-9DB11F24D41F} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
+ {A0869700-2CA0-40F1-8AEA-5ADEA1204294} = {AD002164-CFB4-4583-BF13-62C815009ADE}
+ {911B7C56-1908-42B5-BCE8-860DE650AE31} = {AD002164-CFB4-4583-BF13-62C815009ADE}
+ {CAE0492C-11A3-424C-8613-7DAB83E4FB60} = {AD002164-CFB4-4583-BF13-62C815009ADE}
+ {4D055853-DE80-4145-BB2F-33EB6B379F5E} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
+ {E4783690-052A-4AB0-837E-BDBC77CC7EEC} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
+ {1859E205-88DC-4E08-A0BD-55A045DCC495} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
+ {6ECF678D-6F3A-4084-8538-A86C1D67C703} = {9C73D4E6-4408-4717-B51C-63C20321D4DA}
+ {9FB5E943-7F6F-4281-9C00-E76284B4F1F3} = {9C73D4E6-4408-4717-B51C-63C20321D4DA}
+ {D56851BB-557E-4CF9-B724-8E607EEE9D07} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
+ {22BB3760-8DA1-4714-ADB7-1585A4EB8496} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {6BB7A5DE-DA12-44DC-BC9B-0F6CA524346F}
+ EndGlobalSection
+EndGlobal
diff --git a/aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/README.EN.md b/aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/README.EN.md
new file mode 100644
index 000000000..7fccd5585
--- /dev/null
+++ b/aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/README.EN.md
@@ -0,0 +1,61 @@
+# LINGYUN.Abp.AuditLogging.Elasticsearch
+
+[简体中文](./README.md) | English
+
+Elasticsearch implementation for the audit logging module.
+
+## Features
+
+* ElasticsearchAuditLogManager - Implements IAuditLogManager, managing audit logs with Elasticsearch
+* ElasticsearchSecurityLogManager - Implements ISecurityLogManager, managing security logs with Elasticsearch
+
+## Module Dependencies
+
+```csharp
+[DependsOn(typeof(AbpAuditLoggingElasticsearchModule))]
+public class YouProjectModule : AbpModule
+{
+ // other
+}
+```
+
+## Configuration Options
+
+* AbpAuditLoggingElasticsearchOptions.IndexPrefix - Index prefix, default is 'auditlogging'
+* AbpAuditLoggingElasticsearchOptions.IndexSettings - Elasticsearch index settings
+
+## Multi-tenancy Support
+
+When integrated with the tenant module, the index will switch based on the tenant:
+- For tenant-specific data: `{prefix}-{index}-{tenantId}`
+- For host data: `{prefix}-{index}`
+
+## appsettings.json
+
+```json
+{
+ "AuditLogging": {
+ "Elasticsearch": {
+ "IndexPrefix": "auditlogging"
+ }
+ }
+}
+```
+
+## Features
+
+1. Audit Log Management
+ - Store and retrieve audit logs in Elasticsearch
+ - Support for entity change tracking
+ - Flexible querying with various filters
+ - Support for extra properties
+
+2. Security Log Management
+ - Store and retrieve security logs in Elasticsearch
+ - Support for security-related events tracking
+ - Comprehensive querying capabilities
+
+3. Index Management
+ - Automatic index initialization
+ - Support for custom index settings
+ - Multi-tenant index isolation
diff --git a/aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/README.md b/aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/README.md
index 3da5f3174..568ac8e03 100644
--- a/aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/README.md
+++ b/aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/README.md
@@ -1,5 +1,7 @@
# LINGYUN.Abp.AuditLogging.Elasticsearch
+简体中文 | [English](./README.EN.md)
+
审计模块 Elasticsearch 实现
ElasticsearchAuditLogManager 实现了 IAuditLogManager, 审计日志由ES管理
@@ -33,6 +35,4 @@ public class YouProjectModule : AbpModule
"IndexPrefix": "auditlogging"
}
}
-}
-
-```
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.EntityFrameworkCore/README.EN.md b/aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.EntityFrameworkCore/README.EN.md
new file mode 100644
index 000000000..30cc539c1
--- /dev/null
+++ b/aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.EntityFrameworkCore/README.EN.md
@@ -0,0 +1,48 @@
+# LINGYUN.Abp.AuditLogging.EntityFrameworkCore
+
+[简体中文](./README.md) | English
+
+EntityFrameworkCore implementation for the audit logging module. This module serves as a bridge, with the actual implementation delegated to the official ABP modules.
+
+## Features
+
+* AuditLogManager - Implements IAuditLogManager, audit logs are managed by the Volo.Abp.AuditLogging module
+* SecurityLogManager - Implements ISecurityLogManager, security logs are managed by the Volo.Abp.Identity module
+
+## Module Dependencies
+
+```csharp
+[DependsOn(typeof(AbpAuditLoggingEntityFrameworkCoreModule))]
+public class YouProjectModule : AbpModule
+{
+ // other
+}
+```
+
+## Configuration
+
+Please follow the configuration guidelines in the Volo.Abp.AuditLogging and Volo.Abp.Identity modules.
+
+## Database Configuration
+
+Configure the connection strings in your appsettings.json:
+
+```json
+{
+ "ConnectionStrings": {
+ "AbpIdentity": "Server=127.0.0.1;Database=Identity;User Id=root;Password=*",
+ "AbpAuditLogging": "Server=127.0.0.1;Database=AuditLogging;User Id=root;Password=*",
+ }
+}
+```
+
+## Features
+
+1. Audit Log Management
+ - Store and retrieve audit logs using EntityFrameworkCore
+ - Support for entity change tracking
+ - Integration with ABP's identity system for security logs
+
+2. Auto Mapping
+ - Automatic mapping configuration for audit log entities
+ - Supports custom mapping profiles through AbpAutoMapperOptions
diff --git a/aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/README.EN.md b/aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/README.EN.md
new file mode 100644
index 000000000..d94976c70
--- /dev/null
+++ b/aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/README.EN.md
@@ -0,0 +1,59 @@
+# LINGYUN.Abp.AuditLogging
+
+Audit logging core module, providing basic functionality and interface definitions for audit logging.
+
+[简体中文](./README.md)
+
+## Features
+
+* Audit logging infrastructure
+* Audit log repository interface definitions
+* Audit log manager interface definitions
+* Support for ignoring specific types in audit logging
+
+## Module Dependencies
+
+```csharp
+[DependsOn(typeof(AbpAuditLoggingModule))]
+public class YouProjectModule : AbpModule
+{
+ // other
+}
+```
+
+## Configuration
+
+```json
+{
+ "Auditing": {
+ "IsEnabled": true, // Enable or disable audit logging
+ "HideErrors": true, // Hide error information in audit logs
+ "IsEnabledForAnonymousUsers": true, // Enable audit logging for anonymous users
+ "IsEnabledForGetRequests": false, // Enable audit logging for GET requests
+ "ApplicationName": null // Application name
+ }
+}
+```
+
+## Basic Usage
+
+1. Reference the module
+2. Configure audit logging options
+3. Implement an audit log storage provider (e.g., EntityFrameworkCore or Elasticsearch)
+
+## Advanced Features
+
+### Ignoring Specific Types
+
+By default, the module ignores audit logs for the following types:
+* CancellationToken
+* CancellationTokenSource
+
+You can add more types to ignore through configuration:
+
+```csharp
+Configure(options =>
+{
+ options.IgnoredTypes.AddIfNotContains(typeof(YourType));
+});
+```
diff --git a/aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/README.md b/aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/README.md
new file mode 100644
index 000000000..a54d1738f
--- /dev/null
+++ b/aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/README.md
@@ -0,0 +1,59 @@
+# LINGYUN.Abp.AuditLogging
+
+审计日志核心模块,提供审计日志的基础功能和接口定义。
+
+[English](./README.EN.md)
+
+## 功能特性
+
+* 审计日志基础设施
+* 审计日志仓储接口定义
+* 审计日志管理器接口定义
+* 支持忽略特定类型的审计日志记录
+
+## 模块引用
+
+```csharp
+[DependsOn(typeof(AbpAuditLoggingModule))]
+public class YouProjectModule : AbpModule
+{
+ // other
+}
+```
+
+## 配置项
+
+```json
+{
+ "Auditing": {
+ "IsEnabled": true, // 是否启用审计日志
+ "HideErrors": true, // 是否隐藏错误信息
+ "IsEnabledForAnonymousUsers": true, // 是否为匿名用户启用审计日志
+ "IsEnabledForGetRequests": false, // 是否为GET请求启用审计日志
+ "ApplicationName": null // 应用程序名称
+ }
+}
+```
+
+## 基本用法
+
+1. 引用模块
+2. 配置审计日志选项
+3. 实现审计日志存储提供者(例如:EntityFrameworkCore或Elasticsearch)
+
+## 高级功能
+
+### 忽略特定类型
+
+默认情况下,模块会忽略以下类型的审计日志:
+* CancellationToken
+* CancellationTokenSource
+
+你可以通过配置添加更多需要忽略的类型:
+
+```csharp
+Configure(options =>
+{
+ options.IgnoredTypes.AddIfNotContains(typeof(YourType));
+});
+```
diff --git a/aspnet-core/framework/auditing/README.md b/aspnet-core/framework/auditing/README.md
new file mode 100644
index 000000000..2f21293a5
--- /dev/null
+++ b/aspnet-core/framework/auditing/README.md
@@ -0,0 +1,113 @@
+# LINGYUN.Abp 审计模块
+
+## 模块概述
+
+审计模块提供了全面的日志记录和审计功能,支持多种存储方式和高度可配置的审计选项。
+
+## 功能特性
+
+### 核心功能
+
+- 审计日志基础设施
+- 审计日志仓储接口定义
+- 审计日志管理器接口定义
+- 支持忽略特定类型的审计日志记录
+
+### 存储支持
+
+- EntityFrameworkCore 实现
+- Elasticsearch 实现
+
+## 模块引用
+
+### 核心模块
+
+```csharp
+[DependsOn(typeof(AbpAuditLoggingModule))]
+public class YouProjectModule : AbpModule
+{
+ // other
+}
+```
+
+### EntityFrameworkCore 模块
+
+```csharp
+[DependsOn(typeof(AbpAuditLoggingEntityFrameworkCoreModule))]
+public class YouProjectModule : AbpModule
+{
+ // other
+}
+```
+
+### Elasticsearch 模块
+
+```csharp
+[DependsOn(typeof(AbpAuditLoggingElasticsearchModule))]
+public class YouProjectModule : AbpModule
+{
+ // other
+}
+```
+
+## 配置选项
+
+### 审计日志配置
+
+```json
+{
+ "Auditing": {
+ "IsEnabled": true, // 是否启用审计日志
+ "HideErrors": true, // 是否隐藏错误信息
+ "IsEnabledForAnonymousUsers": true, // 是否为匿名用户启用审计日志
+ "IsEnabledForGetRequests": false, // 是否为GET请求启用审计日志
+ "ApplicationName": null // 应用程序名称
+ }
+}
+```
+
+### Elasticsearch 配置
+
+```json
+{
+ "AuditLogging": {
+ "Elasticsearch": {
+ "IndexPrefix": "auditlogging" // 索引前缀
+ }
+ }
+}
+```
+
+## 数据库连接配置
+
+```json
+{
+ "ConnectionStrings": {
+ "AbpIdentity": "Server=127.0.0.1;Database=Identity;User Id=root;Password=*",
+ "AbpAuditLogging": "Server=127.0.0.1;Database=AuditLogging;User Id=root;Password=*"
+ }
+}
+```
+
+## 高级功能
+
+### 忽略特定类型
+
+默认情况下,模块会忽略以下类型的审计日志:
+
+- CancellationToken
+- CancellationTokenSource
+
+你可以通过配置添加更多需要忽略的类型:
+
+```csharp
+Configure(options =>
+{
+ options.IgnoredTypes.AddIfNotContains(typeof(YourType));
+});
+```
+
+## 特殊说明
+
+- Elasticsearch 实现支持跨租户,将根据租户自动切换索引
+- EntityFrameworkCore 实现主要作为桥梁,具体实现交由 Abp 官方模块管理
diff --git a/aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.QQ/README.EN.md b/aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.QQ/README.EN.md
new file mode 100644
index 000000000..e615967a7
--- /dev/null
+++ b/aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.QQ/README.EN.md
@@ -0,0 +1,64 @@
+# LINGYUN.Abp.Authentication.QQ
+
+QQ Connect authentication module, integrating QQ login functionality into ABP applications.
+
+## Features
+
+* QQ OAuth2.0 authentication
+* Support for both mobile and PC login
+* Retrieve basic QQ user information (nickname, gender, avatar, etc.)
+* Integration with ABP identity system
+
+## Module Dependencies
+
+```csharp
+[DependsOn(typeof(AbpAuthenticationQQModule))]
+public class YouProjectModule : AbpModule
+{
+ // other
+}
+```
+
+## Configuration
+
+```json
+{
+ "Authentication": {
+ "QQ": {
+ "AppId": "Your QQ Connect AppId",
+ "AppKey": "Your QQ Connect AppKey",
+ "IsMobile": false, // Enable mobile login page
+ "ClaimsIssuer": "connect.qq.com", // Optional, defaults to connect.qq.com
+ "CallbackPath": "/signin-qq", // Optional, defaults to /signin-qq
+ "Scope": ["get_user_info"] // Optional, defaults to get_user_info
+ }
+ }
+}
+```
+
+## Basic Usage
+
+1. Configure QQ Connect Parameters
+ * Apply for an application on QQ Connect platform to get AppId and AppKey
+ * Configure AppId and AppKey in appsettings.json
+
+2. Add QQ Login
+ ```csharp
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ context.Services.AddAuthentication()
+ .AddQQConnect(); // Add QQ login support
+ }
+ ```
+
+## Retrieved User Information
+
+* OpenId - Unique QQ user identifier
+* NickName - User's nickname
+* Gender - User's gender
+* AvatarUrl - User's avatar URL
+
+## More Information
+
+* [QQ Connect Documentation](https://wiki.connect.qq.com/)
+* [ABP Authentication Documentation](https://docs.abp.io/en/abp/latest/Authentication)
diff --git a/aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.QQ/README.md b/aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.QQ/README.md
new file mode 100644
index 000000000..cc73d19c9
--- /dev/null
+++ b/aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.QQ/README.md
@@ -0,0 +1,64 @@
+# LINGYUN.Abp.Authentication.QQ
+
+QQ互联认证模块,集成QQ登录功能到ABP应用程序。
+
+## 功能特性
+
+* QQ OAuth2.0认证
+* 支持移动端和PC端登录
+* 获取QQ用户基本信息(昵称、性别、头像等)
+* 支持与ABP身份系统集成
+
+## 模块引用
+
+```csharp
+[DependsOn(typeof(AbpAuthenticationQQModule))]
+public class YouProjectModule : AbpModule
+{
+ // other
+}
+```
+
+## 配置项
+
+```json
+{
+ "Authentication": {
+ "QQ": {
+ "AppId": "你的QQ互联AppId",
+ "AppKey": "你的QQ互联AppKey",
+ "IsMobile": false, // 是否启用移动端登录页面
+ "ClaimsIssuer": "connect.qq.com", // 可选,默认为 connect.qq.com
+ "CallbackPath": "/signin-qq", // 可选,默认为 /signin-qq
+ "Scope": ["get_user_info"] // 可选,默认为 get_user_info
+ }
+ }
+}
+```
+
+## 基本用法
+
+1. 配置QQ互联参数
+ * 在QQ互联平台申请应用,获取AppId和AppKey
+ * 在appsettings.json中配置AppId和AppKey
+
+2. 添加QQ登录
+ ```csharp
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ context.Services.AddAuthentication()
+ .AddQQConnect(); // 添加QQ登录支持
+ }
+ ```
+
+## 获取的用户信息
+
+* OpenId - QQ用户唯一标识
+* NickName - 用户昵称
+* Gender - 用户性别
+* AvatarUrl - 用户头像URL
+
+## 更多信息
+
+* [QQ互联文档](https://wiki.connect.qq.com/)
+* [ABP认证文档](https://docs.abp.io/en/abp/latest/Authentication)
diff --git a/aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.WeChat/README.EN.md b/aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.WeChat/README.EN.md
new file mode 100644
index 000000000..ae62dc6c1
--- /dev/null
+++ b/aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.WeChat/README.EN.md
@@ -0,0 +1,81 @@
+# LINGYUN.Abp.Authentication.WeChat
+
+WeChat Official Account authentication module, integrating WeChat Official Account login functionality into ABP applications.
+
+## Features
+
+* WeChat Official Account OAuth2.0 authentication
+* Retrieve WeChat user information (nickname, gender, region, avatar, etc.)
+* Support for UnionId mechanism, connecting Official Account and Mini Program account systems
+* Support for WeChat server message verification
+* Integration with ABP identity system
+
+## Module Dependencies
+
+```csharp
+[DependsOn(typeof(AbpAuthenticationWeChatModule))]
+public class YouProjectModule : AbpModule
+{
+ // other
+}
+```
+
+## Configuration
+
+```json
+{
+ "Authentication": {
+ "WeChat": {
+ "AppId": "Your WeChat Official Account AppId",
+ "AppSecret": "Your WeChat Official Account AppSecret",
+ "ClaimsIssuer": "WeChat", // Optional, defaults to WeChat
+ "CallbackPath": "/signin-wechat", // Optional, defaults to /signin-wechat
+ "Scope": ["snsapi_login", "snsapi_userinfo"], // Optional, defaults to snsapi_login and snsapi_userinfo
+ "QrConnect": {
+ "Enabled": false, // Enable PC-side QR code login
+ "Endpoint": "https://open.weixin.qq.com/connect/qrconnect" // PC-side QR code login endpoint
+ }
+ }
+ }
+}
+```
+
+## Basic Usage
+
+1. Configure WeChat Official Account Parameters
+ * Register an Official Account on WeChat Official Account Platform to get AppId and AppSecret
+ * Configure AppId and AppSecret in appsettings.json
+
+2. Add WeChat Login
+ ```csharp
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ context.Services.AddAuthentication()
+ .AddWeChat(); // Add WeChat login support
+ }
+ ```
+
+3. Enable WeChat Server Message Verification (Optional)
+ ```csharp
+ public void Configure(IApplicationBuilder app)
+ {
+ app.UseWeChatSignature(); // Enable WeChat server message verification middleware
+ }
+ ```
+
+## Retrieved User Information
+
+* OpenId - Unique WeChat user identifier
+* UnionId - WeChat Open Platform unique identifier (requires binding to Open Platform)
+* NickName - User's nickname
+* Sex - User's gender
+* Country - User's country
+* Province - User's province
+* City - User's city
+* AvatarUrl - User's avatar URL
+* Privilege - User's privilege information
+
+## More Information
+
+* [WeChat Official Account Platform Documentation](https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html)
+* [ABP Authentication Documentation](https://docs.abp.io/en/abp/latest/Authentication)
diff --git a/aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.WeChat/README.md b/aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.WeChat/README.md
new file mode 100644
index 000000000..af19e67a8
--- /dev/null
+++ b/aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.WeChat/README.md
@@ -0,0 +1,81 @@
+# LINGYUN.Abp.Authentication.WeChat
+
+微信公众号认证模块,集成微信公众号登录功能到ABP应用程序。
+
+## 功能特性
+
+* 微信公众号OAuth2.0认证
+* 支持获取微信用户基本信息(昵称、性别、地区、头像等)
+* 支持UnionId机制,打通公众号与小程序账号体系
+* 支持微信服务器消息验证
+* 支持与ABP身份系统集成
+
+## 模块引用
+
+```csharp
+[DependsOn(typeof(AbpAuthenticationWeChatModule))]
+public class YouProjectModule : AbpModule
+{
+ // other
+}
+```
+
+## 配置项
+
+```json
+{
+ "Authentication": {
+ "WeChat": {
+ "AppId": "你的微信公众号AppId",
+ "AppSecret": "你的微信公众号AppSecret",
+ "ClaimsIssuer": "WeChat", // 可选,默认为 WeChat
+ "CallbackPath": "/signin-wechat", // 可选,默认为 /signin-wechat
+ "Scope": ["snsapi_login", "snsapi_userinfo"], // 可选,默认包含 snsapi_login 和 snsapi_userinfo
+ "QrConnect": {
+ "Enabled": false, // 是否启用PC端扫码登录
+ "Endpoint": "https://open.weixin.qq.com/connect/qrconnect" // PC端扫码登录地址
+ }
+ }
+ }
+}
+```
+
+## 基本用法
+
+1. 配置微信公众号参数
+ * 在微信公众平台申请公众号,获取AppId和AppSecret
+ * 在appsettings.json中配置AppId和AppSecret
+
+2. 添加微信登录
+ ```csharp
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ context.Services.AddAuthentication()
+ .AddWeChat(); // 添加微信登录支持
+ }
+ ```
+
+3. 启用微信服务器消息验证(可选)
+ ```csharp
+ public void Configure(IApplicationBuilder app)
+ {
+ app.UseWeChatSignature(); // 启用微信服务器消息验证中间件
+ }
+ ```
+
+## 获取的用户信息
+
+* OpenId - 微信用户唯一标识
+* UnionId - 微信开放平台唯一标识(需要绑定开放平台)
+* NickName - 用户昵称
+* Sex - 用户性别
+* Country - 国家
+* Province - 省份
+* City - 城市
+* AvatarUrl - 用户头像URL
+* Privilege - 用户特权信息
+
+## 更多信息
+
+* [微信公众平台开发文档](https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html)
+* [ABP认证文档](https://docs.abp.io/en/abp/latest/Authentication)
diff --git a/aspnet-core/framework/authentication/README.md b/aspnet-core/framework/authentication/README.md
new file mode 100644
index 000000000..ce8772b42
--- /dev/null
+++ b/aspnet-core/framework/authentication/README.md
@@ -0,0 +1,99 @@
+# LINGYUN.Abp.Authentication 认证模块
+
+本模块提供第三方社交登录认证功能,目前支持 QQ 和微信公众号登录,并与 ABP 身份系统深度集成。
+
+## 模块概述
+
+认证模块包含两个主要子模块:
+
+1. **QQ 互联认证模块**
+
+ - 支持 QQ OAuth2.0 认证
+ - 适用于移动端和 PC 端登录
+ - 获取用户基本信息(昵称、性别、头像等)
+
+2. **微信公众号认证模块**
+ - 支持微信公众号 OAuth2.0 认证
+ - 获取用户详细信息(昵称、性别、地区、头像等)
+ - 支持 UnionId 机制,打通公众号与小程序账号体系
+
+## 功能特性
+
+- 第三方社交账号登录
+- 获取用户基本信息
+- 与 ABP 身份系统无缝集成
+- 灵活的配置选项
+- 支持多种登录场景(移动端、PC 端)
+
+## 快速开始
+
+### 模块引用
+
+```csharp
+[DependsOn(
+ typeof(AbpAuthenticationQQModule),
+ typeof(AbpAuthenticationWeChatModule)
+)]
+public class YourProjectModule : AbpModule
+{
+ // 其他配置
+}
+```
+
+### 配置示例
+
+在 `appsettings.json` 中配置第三方登录参数:
+
+```json
+{
+ "Authentication": {
+ "QQ": {
+ "AppId": "你的QQ互联AppId",
+ "AppKey": "你的QQ互联AppKey"
+ },
+ "WeChat": {
+ "AppId": "你的微信公众号AppId",
+ "AppSecret": "你的微信公众号AppSecret"
+ }
+ }
+}
+```
+
+### 添加登录支持
+
+```csharp
+public override void ConfigureServices(ServiceConfigurationContext context)
+{
+ context.Services.AddAuthentication()
+ .AddQQConnect() // 添加QQ登录
+ .AddWeChat(); // 添加微信登录
+}
+```
+
+## 支持的用户信息
+
+### QQ 登录获取信息
+
+- OpenId - QQ 用户唯一标识
+- NickName - 用户昵称
+- Gender - 用户性别
+- AvatarUrl - 用户头像 URL
+
+### 微信登录获取信息
+
+- OpenId - 微信用户唯一标识
+- UnionId - 微信开放平台唯一标识
+- NickName - 用户昵称
+- Sex - 用户性别
+- Country, Province, City - 地理信息
+- AvatarUrl - 用户头像 URL
+
+## 参考文档
+
+- [QQ 互联文档](https://wiki.connect.qq.com/)
+- [微信公众平台开发文档](https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html)
+- [ABP 认证文档](https://docs.abp.io/en/abp/latest/Authentication)
+
+## 许可证
+
+遵循项目的开源许可证
diff --git a/aspnet-core/framework/authorization/LINGYUN.Abp.Authorization.OrganizationUnits/README.EN.md b/aspnet-core/framework/authorization/LINGYUN.Abp.Authorization.OrganizationUnits/README.EN.md
new file mode 100644
index 000000000..51f932d07
--- /dev/null
+++ b/aspnet-core/framework/authorization/LINGYUN.Abp.Authorization.OrganizationUnits/README.EN.md
@@ -0,0 +1,73 @@
+# LINGYUN.Abp.Authorization.OrganizationUnits
+
+Organization Unit Authorization Module, providing organization unit-based permission validation functionality.
+
+## Features
+
+* Support for organization unit-based permission validation
+* Provides Organization Unit Permission Value Provider (OrganizationUnitPermissionValueProvider)
+* Support for multiple organization unit permission validation
+* Integration with ABP permission system
+* Organization Unit Claim type extensions
+* Current user organization unit query extensions
+
+## Module Reference
+
+```csharp
+[DependsOn(typeof(AbpAuthorizationOrganizationUnitsModule))]
+public class YouProjectModule : AbpModule
+{
+ // other
+}
+```
+
+## Basic Usage
+
+1. Configure Permission Provider
+ ```csharp
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ Configure(options =>
+ {
+ options.ValueProviders.Add();
+ });
+ }
+ ```
+
+2. Get Current User's Organization Units
+ ```csharp
+ public class YourService
+ {
+ private readonly ICurrentUser _currentUser;
+
+ public YourService(ICurrentUser currentUser)
+ {
+ _currentUser = currentUser;
+ }
+
+ public void YourMethod()
+ {
+ var organizationUnits = _currentUser.FindOrganizationUnits();
+ // Process business logic with organization units
+ }
+ }
+ ```
+
+3. Get Organization Units from ClaimsPrincipal
+ ```csharp
+ public class YourService
+ {
+ public void YourMethod(ClaimsPrincipal principal)
+ {
+ var organizationUnits = principal.FindOrganizationUnits();
+ // Process business logic with organization units
+ }
+ }
+ ```
+
+## More Resources
+
+* [GitHub Repository](https://github.com/colinin/abp-next-admin)
+* [Sample Application](https://github.com/colinin/abp-next-admin/tree/master/aspnet-core/services/LY.MicroService.Applications.Single)
+
+[简体中文](./README.md)
diff --git a/aspnet-core/framework/authorization/LINGYUN.Abp.Authorization.OrganizationUnits/README.md b/aspnet-core/framework/authorization/LINGYUN.Abp.Authorization.OrganizationUnits/README.md
new file mode 100644
index 000000000..3ddc184c9
--- /dev/null
+++ b/aspnet-core/framework/authorization/LINGYUN.Abp.Authorization.OrganizationUnits/README.md
@@ -0,0 +1,73 @@
+# LINGYUN.Abp.Authorization.OrganizationUnits
+
+组织单元权限验证模块,提供基于组织单元的权限验证功能。
+
+## 功能特性
+
+* 支持基于组织单元的权限验证
+* 提供组织单元权限值提供者(OrganizationUnitPermissionValueProvider)
+* 支持多组织单元权限验证
+* 集成ABP权限系统
+* 提供组织单元Claim类型扩展
+* 支持当前用户组织单元查询扩展
+
+## 模块引用
+
+```csharp
+[DependsOn(typeof(AbpAuthorizationOrganizationUnitsModule))]
+public class YouProjectModule : AbpModule
+{
+ // other
+}
+```
+
+## 基本用法
+
+1. 配置权限提供者
+ ```csharp
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ Configure(options =>
+ {
+ options.ValueProviders.Add();
+ });
+ }
+ ```
+
+2. 获取当前用户的组织单元
+ ```csharp
+ public class YourService
+ {
+ private readonly ICurrentUser _currentUser;
+
+ public YourService(ICurrentUser currentUser)
+ {
+ _currentUser = currentUser;
+ }
+
+ public void YourMethod()
+ {
+ var organizationUnits = _currentUser.FindOrganizationUnits();
+ // 使用组织单元进行业务处理
+ }
+ }
+ ```
+
+3. 从ClaimsPrincipal获取组织单元
+ ```csharp
+ public class YourService
+ {
+ public void YourMethod(ClaimsPrincipal principal)
+ {
+ var organizationUnits = principal.FindOrganizationUnits();
+ // 使用组织单元进行业务处理
+ }
+ }
+ ```
+
+## 更多资源
+
+* [GitHub仓库](https://github.com/colinin/abp-next-admin)
+* [示例应用程序](https://github.com/colinin/abp-next-admin/tree/master/aspnet-core/services/LY.MicroService.Applications.Single)
+
+[English](./README.EN.md)
diff --git a/aspnet-core/framework/cli/LINGYUN.Abp.Cli/LINGYUN.Abp.Cli.csproj b/aspnet-core/framework/cli/LINGYUN.Abp.Cli/LINGYUN.Abp.Cli.csproj
index 1982a6cf6..4ca3e578f 100644
--- a/aspnet-core/framework/cli/LINGYUN.Abp.Cli/LINGYUN.Abp.Cli.csproj
+++ b/aspnet-core/framework/cli/LINGYUN.Abp.Cli/LINGYUN.Abp.Cli.csproj
@@ -15,6 +15,8 @@
https://github.com/colinin/abp-next-admin
README.md
+ Debug;Release;PostgreSQL
+ AnyCPU
diff --git a/aspnet-core/framework/cli/LINGYUN.Abp.Cli/README.md b/aspnet-core/framework/cli/LINGYUN.Abp.Cli/README.md
index 91d948a8f..e4268b17e 100644
--- a/aspnet-core/framework/cli/LINGYUN.Abp.Cli/README.md
+++ b/aspnet-core/framework/cli/LINGYUN.Abp.Cli/README.md
@@ -27,8 +27,24 @@ To get a detailed help for a command:
labp help
```
+## Features
+
+* Support for generating TypeScript client proxy code
+ - Axios HTTP client
+ - Vben Admin integration
+ - UniApp integration
+* Support for generating Flutter client proxy code
+ - Dio HTTP client
+ - REST service integration
+* Support for generating view code
+ - Vben Admin view templates
+ - Flutter GetX view templates
+* Custom ABP startup templates
+
## Feedback
Have a question and need feedback?
-- [Github issuses](https://github.com/colinin/abp-next-admin/issuses)
\ No newline at end of file
+- [Github issues](https://github.com/colinin/abp-next-admin/issues)
+
+[简体中文](./README.zh-Hans.md)
\ No newline at end of file
diff --git a/aspnet-core/framework/cli/LINGYUN.Abp.Cli/README.zh-Hans.md b/aspnet-core/framework/cli/LINGYUN.Abp.Cli/README.zh-Hans.md
new file mode 100644
index 000000000..61b716992
--- /dev/null
+++ b/aspnet-core/framework/cli/LINGYUN.Abp.Cli/README.zh-Hans.md
@@ -0,0 +1,50 @@
+# 基于ABP CLI的扩展工具集
+
+提供快速创建模板项目、生成JavaScript库命令等更多功能。
+
+## 开始使用
+
+```shell
+dotnet tool install --global LINGYUN.Abp.Cli
+```
+
+## 使用方法
+
+```shell
+使用方法:
+
+ labp [options]
+
+命令列表:
+
+ > help: 显示命令行帮助。使用 ` labp help ` 获取详细帮助
+ > create: 基于自定义的ABP启动模板生成新的解决方案
+ > generate-proxy: 生成客户端服务代理和DTO以消费HTTP API
+ > generate-view: 从HTTP API代理生成视图代码
+
+获取命令的详细帮助:
+
+ labp help
+```
+
+## 功能特性
+
+* 支持生成TypeScript客户端代理代码
+ - Axios HTTP客户端
+ - Vben Admin集成
+ - UniApp集成
+* 支持生成Flutter客户端代理代码
+ - Dio HTTP客户端
+ - REST服务集成
+* 支持生成视图代码
+ - Vben Admin视图模板
+ - Flutter GetX视图模板
+* 自定义ABP启动模板
+
+## 反馈
+
+有问题需要反馈?
+
+- [Github问题](https://github.com/colinin/abp-next-admin/issues)
+
+[English](./README.md)
diff --git a/aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.Features/README.EN.md b/aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.Features/README.EN.md
new file mode 100644
index 000000000..c21ab1c0b
--- /dev/null
+++ b/aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.Features/README.EN.md
@@ -0,0 +1,37 @@
+# LINGYUN.Abp.Aliyun.Features
+
+Alibaba Cloud service feature management module.
+
+## Features
+
+* Provides feature definitions and management for Alibaba Cloud services
+* Supports enabling/disabling Alibaba Cloud service features
+* Integration with ABP feature management system
+
+## Module Reference
+
+```csharp
+[DependsOn(typeof(AbpAliyunFeaturesModule))]
+public class YouProjectModule : AbpModule
+{
+ // other
+}
+```
+
+## Feature Items
+
+* **Features:AlibabaCloud** - Alibaba Cloud service feature group
+ * **Features:AlibabaCloud:IsEnabled** - Enable/Disable Alibaba Cloud services
+ * Default value: false
+ * Description: Enable to give the application Alibaba Cloud service capabilities
+
+## Configuration Items
+
+This module is mainly used for feature definition and does not contain configuration items.
+
+## Notes
+
+* This module needs to be used in conjunction with the LINGYUN.Abp.Aliyun module
+* After enabling Alibaba Cloud service features, you still need to configure the corresponding service parameters in the LINGYUN.Abp.Aliyun module
+
+[查看中文文档](README.md)
diff --git a/aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.Features/README.md b/aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.Features/README.md
new file mode 100644
index 000000000..72bd17850
--- /dev/null
+++ b/aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.Features/README.md
@@ -0,0 +1,37 @@
+# LINGYUN.Abp.Aliyun.Features
+
+阿里云服务功能管理模块。
+
+## 功能特性
+
+* 提供阿里云服务的功能定义和管理
+* 支持启用/禁用阿里云服务功能
+* 与ABP功能管理系统集成
+
+## 模块引用
+
+```csharp
+[DependsOn(typeof(AbpAliyunFeaturesModule))]
+public class YouProjectModule : AbpModule
+{
+ // other
+}
+```
+
+## 功能项
+
+* **Features:AlibabaCloud** - 阿里云服务功能组
+ * **Features:AlibabaCloud:IsEnabled** - 是否启用阿里云服务
+ * 默认值:false
+ * 描述:启用使应用程序拥有阿里云服务的能力
+
+## 配置项
+
+此模块主要用于功能定义,不包含配置项。
+
+## 注意
+
+* 此模块需要与LINGYUN.Abp.Aliyun模块配合使用
+* 启用阿里云服务功能后,还需要在LINGYUN.Abp.Aliyun模块中配置相应的服务参数
+
+[点击查看英文文档](README.EN.md)
diff --git a/aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/README.EN.md b/aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/README.EN.md
new file mode 100644
index 000000000..0bdc4ab2b
--- /dev/null
+++ b/aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/README.EN.md
@@ -0,0 +1,23 @@
+# LINGYUN.Abp.Aliyun.SettingManagement
+
+Alibaba Cloud configuration management module. By referencing this module, you can manage Alibaba Cloud-related configurations and access the API interfaces published through the gateway aggregation.
+
+API endpoint: api/setting-management/aliyun
+
+## Module Reference
+
+The module should be referenced as needed. It is recommended to reference this module in the configuration management hosting service.
+
+```csharp
+[DependsOn(typeof(AbpAliyunSettingManagementModule))]
+public class YouProjectModule : AbpModule
+{
+ // other
+}
+```
+
+## Note
+
+Since the background management module is responsible for managing all configurations, this module only provides query interfaces.
+
+[查看中文文档](README.md)
diff --git a/aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/README.md b/aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/README.md
index 66baecce3..48e66cdf5 100644
--- a/aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/README.md
+++ b/aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/README.md
@@ -1,12 +1,20 @@
# LINGYUN.Abp.Aliyun.SettingManagement
-阿里云配置管理模块,引用此模块可管理阿里云相关的配置,可通过网关聚合对外公布的API接口
+阿里云配置管理模块,引用此模块可管理阿里云相关的配置,可通过网关聚合对外公布的API接口。
-API接口: api/setting-management/aliyun
+## 功能特性
-## 配置使用
+* 提供阿里云服务配置的查询接口
+* 支持通过API接口获取阿里云配置信息
+* 与ABP设置管理系统集成
-模块按需引用,建议在配置管理承载服务引用此模块
+## API接口
+
+* **GET api/setting-management/aliyun** - 获取阿里云配置信息
+
+## 模块引用
+
+模块按需引用,建议在配置管理承载服务引用此模块。
```csharp
[DependsOn(typeof(AbpAliyunSettingManagementModule))]
@@ -15,6 +23,11 @@ public class YouProjectModule : AbpModule
// other
}
```
+
## 注意
-因后台管理模块负责管理所有配置,此模块仅提供查询接口
+* 因后台管理模块负责管理所有配置,此模块仅提供查询接口
+* 需要与LINGYUN.Abp.Aliyun模块配合使用
+* 建议在配置管理承载服务中引用此模块
+
+[点击查看英文文档](README.EN.md)
diff --git a/aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/README.EN.md b/aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/README.EN.md
new file mode 100644
index 000000000..5fb453139
--- /dev/null
+++ b/aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/README.EN.md
@@ -0,0 +1,144 @@
+# LINGYUN.Abp.Aliyun
+
+Alibaba Cloud SDK integration module.
+
+Reference: [Alibaba Cloud API Documentation](https://help.aliyun.com/document_detail/28763.html)
+
+## Features
+
+- Provides basic SDK integration for Alibaba Cloud services
+- Supports Alibaba Cloud RAM (Resource Access Management) authentication
+- Supports STS Token access
+- Supports Alibaba Cloud SMS service
+- Supports Alibaba Cloud Object Storage Service (OSS)
+- Provides distributed cache support for optimizing high concurrency scenarios
+
+## Module Reference
+
+```csharp
+[DependsOn(typeof(AbpAliyunModule))]
+public class YouProjectModule : AbpModule
+{
+ // other
+}
+```
+
+## Configuration Items
+
+### Authentication Configuration
+
+- **AliyunSettingNames.Authorization.RegionId**
+
+ - Description: Alibaba Cloud service region
+ - Type: Optional
+ - Default value: default
+ - Example: oss-cn-hangzhou
+
+- **AliyunSettingNames.Authorization.AccessKeyId**
+
+ - Description: AccessKey ID of Alibaba Cloud RAM account
+ - Type: Required
+ - How to get: Access Alibaba Cloud Console - Access Control
+
+- **AliyunSettingNames.Authorization.AccessKeySecret**
+ - Description: AccessKey Secret of RAM account
+ - Type: Required
+ - How to get: Access Alibaba Cloud Console - Access Control
+
+### STS Token Configuration
+
+- **AliyunSettingNames.Authorization.UseSecurityTokenService**
+
+ - Description: Whether to use STS Token access
+ - Type: Optional
+ - Default value: false
+ - Recommendation: Recommended to enable for improved security
+
+- **AliyunSettingNames.Authorization.RamRoleArn**
+
+ - Description: Alibaba Cloud RAM role ARN
+ - Type: Required when STS Token is enabled
+ - Format: acs:ram::$accountID:role/$roleName
+
+- **AliyunSettingNames.Authorization.RoleSessionName**
+
+ - Description: Custom token name
+ - Type: Optional
+ - Usage: For access auditing
+
+- **AliyunSettingNames.Authorization.DurationSeconds**
+
+ - Description: Token expiration time
+ - Type: Optional
+ - Default value: 3000
+ - Unit: Seconds
+
+- **AliyunSettingNames.Authorization.Policy**
+ - Description: Permission policy
+ - Type: Optional
+ - Format: JSON string
+
+### SMS Service Configuration
+
+```json
+{
+ "Settings": {
+ "Abp.Aliyun.Sms": {
+ "Domain": "dysmsapi.aliyuncs.com", // API endpoint, default is dysmsapi.aliyuncs.com
+ "Version": "2017-05-25", // API version, default is 2017-05-25
+ "ActionName": "SendSms", // API method name, default is SendSms
+ "DefaultSignName": "", // Default SMS signature
+ "DefaultTemplateCode": "", // Default SMS template code
+ "DefaultPhoneNumber": "", // Default phone number for receiving SMS
+ "VisableErrorToClient": "false" // Whether to show error messages to client
+ }
+ }
+}
+```
+
+## Available Regions
+
+The module supports the following Alibaba Cloud regions:
+
+- China Regions
+
+ - North China 1 (Qingdao) - cn-qingdao
+ - North China 2 (Beijing) - cn-beijing
+ - North China 3 (Zhangjiakou) - cn-zhangjiakou
+ - North China 5 (Hohhot) - cn-huhehaote
+ - East China 1 (Hangzhou) - cn-hangzhou
+ - East China 2 (Shanghai) - cn-shanghai
+ - South China 1 (Shenzhen) - cn-shenzhen
+ - South China 2 (Heyuan) - cn-heyuan
+ - South China 3 (Guangzhou) - cn-guangzhou
+ - Southwest 1 (Chengdu) - cn-chengdu
+
+- Hong Kong and International Regions
+ - Hong Kong - cn-hongkong
+ - US (Silicon Valley) - us-west-1
+ - US (Virginia) - us-east-1
+ - Japan (Tokyo) - ap-northeast-1
+ - South Korea (Seoul) - ap-northeast-2
+ - Singapore - ap-southeast-1
+ - Australia (Sydney) - ap-southeast-2
+ - Malaysia (Kuala Lumpur) - ap-southeast-3
+ - Indonesia (Jakarta) - ap-southeast-5
+ - Philippines (Manila) - ap-southeast-6
+ - Thailand (Bangkok) - ap-southeast-7
+ - India (Mumbai) - ap-south-1
+ - Germany (Frankfurt) - eu-central-1
+ - UK (London) - eu-west-1
+ - UAE (Dubai) - me-east-1
+
+## Performance Optimization
+
+- In high concurrency scenarios, it is recommended to enable distributed caching to improve performance
+- When using STS Token, the token will be automatically cached until expiration
+- It is recommended to set DurationSeconds reasonably to avoid frequent token refreshes
+
+## Related Modules
+
+- [LINGYUN.Abp.Aliyun.SettingManagement](../LINGYUN.Abp.Aliyun.SettingManagement/README.md) - Provides configuration management functionality
+- [LINGYUN.Abp.Aliyun.Features](../LINGYUN.Abp.Aliyun.Features/README.md) - Provides feature management functionality
+
+[查看中文文档](README.md)
diff --git a/aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/README.md b/aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/README.md
index 6cb396563..e9cb61afa 100644
--- a/aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/README.md
+++ b/aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/README.md
@@ -1,12 +1,19 @@
# LINGYUN.Abp.Aliyun
-阿里云sdk集成
+阿里云 SDK 集成模块。
-参照:https://help.aliyun.com/document_detail/28763.html
+参照:[阿里云 API 文档](https://help.aliyun.com/document_detail/28763.html)
-## 配置使用
+## 功能特性
-模块按需引用
+- 提供阿里云服务的基础 SDK 集成
+- 支持阿里云 RAM(访问控制)认证
+- 支持 STS Token 访问
+- 支持阿里云短信服务(SMS)
+- 支持阿里云对象存储(OSS)
+- 提供分布式缓存支持,优化高并发场景
+
+## 模块引用
```csharp
[DependsOn(typeof(AbpAliyunModule))]
@@ -15,17 +22,123 @@ public class YouProjectModule : AbpModule
// other
}
```
+
## 配置项说明
-* AliyunSettingNames.Authorization.RegionId 可选,区域,默认 default
-* AliyunSettingNames.Authorization.AccessKeyId 必须,阿里云RAM账号的AccessKey ID
-* AliyunSettingNames.Authorization.AccessKeySecret 必须,RAM账号的AccessKey Secret
-* AliyunSettingNames.Authorization.UseSecurityTokenService 可选,建议,使用STS Token访问,按照阿里云文档,建议使用Sts Token访问API,默认false
-* AliyunSettingNames.Authorization.RamRoleArn 可选,启用Sts Token之后必须配置,阿里云RAM角色ARN
-* AliyunSettingNames.Authorization.RoleSessionName 可选,启用Sts Token之后的用户自定义令牌名称,用于访问审计
-* AliyunSettingNames.Authorization.DurationSeconds 可选,用户令牌的过期时间,单位为秒,默认3000
-* AliyunSettingNames.Authorization.Policy 可选,权限策略,为json字符串
+### 认证配置
+
+- **AliyunSettingNames.Authorization.RegionId**
+
+ - 说明:阿里云服务区域
+ - 类型:可选
+ - 默认值:default
+ - 示例:oss-cn-hangzhou
+
+- **AliyunSettingNames.Authorization.AccessKeyId**
+
+ - 说明:阿里云 RAM 账号的 AccessKey ID
+ - 类型:必须
+ - 获取方式:访问阿里云控制台-访问控制
+
+- **AliyunSettingNames.Authorization.AccessKeySecret**
+ - 说明:RAM 账号的 AccessKey Secret
+ - 类型:必须
+ - 获取方式:访问阿里云控制台-访问控制
+
+### STS Token 配置
+
+- **AliyunSettingNames.Authorization.UseSecurityTokenService**
+
+ - 说明:是否使用 STS Token 访问
+ - 类型:可选
+ - 默认值:false
+ - 建议:建议开启,提高安全性
+
+- **AliyunSettingNames.Authorization.RamRoleArn**
+
+ - 说明:阿里云 RAM 角色 ARN
+ - 类型:启用 STS Token 时必须
+ - 格式:acs:ram::$accountID:role/$roleName
+
+- **AliyunSettingNames.Authorization.RoleSessionName**
+
+ - 说明:用户自定义令牌名称
+ - 类型:可选
+ - 用途:用于访问审计
+
+- **AliyunSettingNames.Authorization.DurationSeconds**
+
+ - 说明:用户令牌的过期时间
+ - 类型:可选
+ - 默认值:3000
+ - 单位:秒
+
+- **AliyunSettingNames.Authorization.Policy**
+ - 说明:权限策略
+ - 类型:可选
+ - 格式:JSON 字符串
+
+### 短信服务配置
+
+```json
+{
+ "Settings": {
+ "Abp.Aliyun.Sms": {
+ "Domain": "dysmsapi.aliyuncs.com", // API域名,默认为 dysmsapi.aliyuncs.com
+ "Version": "2017-05-25", // API版本,默认为 2017-05-25
+ "ActionName": "SendSms", // API方法名,默认为 SendSms
+ "DefaultSignName": "", // 默认短信签名
+ "DefaultTemplateCode": "", // 默认短信模板代码
+ "DefaultPhoneNumber": "", // 默认接收短信的手机号码
+ "VisableErrorToClient": "false" // 是否向客户端显示错误信息
+ }
+ }
+}
+```
+
+## 可用区域
+
+本模块支持以下阿里云区域:
+
+- 中国区域
+
+ - 华北 1(青岛)- cn-qingdao
+ - 华北 2(北京)- cn-beijing
+ - 华北 3(张家口)- cn-zhangjiakou
+ - 华北 5(呼和浩特)- cn-huhehaote
+ - 华东 1(杭州)- cn-hangzhou
+ - 华东 2(上海)- cn-shanghai
+ - 华南 1(深圳)- cn-shenzhen
+ - 华南 2(河源)- cn-heyuan
+ - 华南 3(广州)- cn-guangzhou
+ - 西南 1(成都)- cn-chengdu
+
+- 香港及海外区域
+ - 香港 - cn-hongkong
+ - 美国(硅谷)- us-west-1
+ - 美国(弗吉尼亚)- us-east-1
+ - 日本(东京)- ap-northeast-1
+ - 韩国(首尔)- ap-northeast-2
+ - 新加坡 - ap-southeast-1
+ - 澳大利亚(悉尼)- ap-southeast-2
+ - 马来西亚(吉隆坡)- ap-southeast-3
+ - 印度尼西亚(雅加达)- ap-southeast-5
+ - 菲律宾(马尼拉)- ap-southeast-6
+ - 泰国(曼谷)- ap-southeast-7
+ - 印度(孟买)- ap-south-1
+ - 德国(法兰克福)- eu-central-1
+ - 英国(伦敦)- eu-west-1
+ - 阿联酋(迪拜)- me-east-1
+
+## 性能优化
+
+- 在高并发场景下,建议开启分布式缓存以提高性能
+- 使用 STS Token 时,Token 会自动缓存到过期前
+- 建议合理设置 DurationSeconds,避免过于频繁的 Token 刷新
+
+## 相关模块
-## 其他
+- [LINGYUN.Abp.Aliyun.SettingManagement](../LINGYUN.Abp.Aliyun.SettingManagement/README.md) - 提供配置管理功能
+- [LINGYUN.Abp.Aliyun.Features](../LINGYUN.Abp.Aliyun.Features/README.md) - 提供功能管理功能
-网络因素在高并发下可能会出现预期外的异常,考虑使用二级缓存
+[点击查看英文文档](README.EN.md)
diff --git a/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.BlobStoring.Tencent/README.EN.md b/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.BlobStoring.Tencent/README.EN.md
new file mode 100644
index 000000000..1d465743a
--- /dev/null
+++ b/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.BlobStoring.Tencent/README.EN.md
@@ -0,0 +1,137 @@
+# LINGYUN.Abp.BlobStoring.Tencent
+
+Tencent Cloud Object Storage (COS) Module, integrating Tencent Cloud Object Storage service into ABP BlobStoring system.
+
+## Features
+
+* Support for Tencent Cloud Object Storage service
+* Multi-tenant configuration support
+* Automatic bucket creation support
+* Bucket referer configuration support
+* Multi-region configuration support
+* File size limit support
+* Tenant-isolated storage support
+
+## Configuration Items
+
+### Basic Configuration
+
+```json
+{
+ "Settings": {
+ "Abp.TencentCloud": {
+ "SecretId": "Your Tencent Cloud SecretId", // Get from Tencent Cloud Console
+ "SecretKey": "Your Tencent Cloud SecretKey", // Get from Tencent Cloud Console
+ "DurationSecond": "600" // Session duration in seconds
+ }
+ }
+}
+```
+
+### Object Storage Configuration
+
+```json
+{
+ "Tencent": {
+ "OSS": {
+ "AppId": "", // Tencent Cloud AppId
+ "Region": "", // Bucket region
+ "BucketName": "", // Bucket name
+ "CreateBucketIfNotExists": false, // Create bucket if not exists
+ "CreateBucketReferer": [] // Referer settings when creating bucket
+ }
+ }
+}
+```
+
+### Bucket Naming Rules
+
+* Only lowercase letters and numbers are supported, i.e., [a-z, 0-9], hyphen "-" and their combinations
+* Cannot start or end with a hyphen (-)
+* The maximum allowed characters for bucket names are affected by the region abbreviation and APPID, with a total limit of 60 characters for the complete request domain
+* For more rules, refer to [Tencent Cloud Bucket Naming Rules](https://cloud.tencent.com/document/product/436/13312)
+
+### Object Naming Rules
+
+* Cannot start with forward slash / or backslash \\
+* ASCII control characters are not supported in object keys: up arrow (↑), down arrow (↓), right arrow (→), left arrow (←)
+* For more rules, refer to [Tencent Cloud Object Naming Rules](https://cloud.tencent.com/document/product/436/13324)
+
+## Basic Usage
+
+1. Add module dependency
+```csharp
+[DependsOn(typeof(AbpBlobStoringTencentCloudModule))]
+public class YourModule : AbpModule
+{
+ // ...
+}
+```
+
+2. Configure Tencent Cloud Object Storage
+```csharp
+Configure(options =>
+{
+ options.Containers.Configure(container =>
+ {
+ container.UseTencentCloud(tencent =>
+ {
+ tencent.AppId = "Your Tencent Cloud AppId";
+ tencent.Region = "ap-guangzhou";
+ tencent.BucketName = "your-bucket-name";
+ tencent.CreateBucketIfNotExists = true;
+ tencent.CreateBucketReferer = new List
+ {
+ "*.example.com",
+ "example.com"
+ };
+ });
+ });
+});
+```
+
+3. Use BLOB storage
+```csharp
+public class YourService
+{
+ private readonly IBlobContainer _blobContainer;
+
+ public YourService(IBlobContainer blobContainer)
+ {
+ _blobContainer = blobContainer;
+ }
+
+ public async Task SaveBlobAsync(string name, Stream stream)
+ {
+ await _blobContainer.SaveAsync(name, stream);
+ }
+
+ public async Task GetBlobAsync(string name)
+ {
+ return await _blobContainer.GetAsync(name);
+ }
+}
+```
+
+## Advanced Features
+
+### Multi-tenant Support
+
+The module supports tenant-isolated storage with the following path format:
+* Host: `host/{blobName}`
+* Tenant: `tenants/{tenantId}/{blobName}`
+
+### Feature Management
+
+The module provides the following feature switches:
+
+* TencentBlobStoring - Controls enabling/disabling of Tencent Cloud Object Storage service
+* TencentBlobStoringMaximumStreamSize - Controls the maximum file size limit (MB) for uploads
+
+## More Documentation
+
+* [Tencent Cloud Object Storage](https://cloud.tencent.com/document/product/436)
+* [Tencent Cloud COS Console](https://console.cloud.tencent.com/cos)
+* [ABP BlobStoring System](https://docs.abp.io/en/abp/latest/Blob-Storing)
+
+[简体中文](./README.md)
diff --git a/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.BlobStoring.Tencent/README.md b/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.BlobStoring.Tencent/README.md
new file mode 100644
index 000000000..e4b304105
--- /dev/null
+++ b/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.BlobStoring.Tencent/README.md
@@ -0,0 +1,137 @@
+# LINGYUN.Abp.BlobStoring.Tencent
+
+腾讯云对象存储(COS)模块,集成腾讯云对象存储服务到ABP BlobStoring系统。
+
+## 功能特性
+
+* 支持腾讯云对象存储服务
+* 支持多租户配置
+* 支持自动创建存储桶(Bucket)
+* 支持存储桶防盗链配置
+* 支持多区域配置
+* 支持文件大小限制
+* 支持按租户隔离存储
+
+## 配置项说明
+
+### 基础配置
+
+```json
+{
+ "Settings": {
+ "Abp.TencentCloud": {
+ "SecretId": "您的腾讯云SecretId", // 从腾讯云控制台获取
+ "SecretKey": "您的腾讯云SecretKey", // 从腾讯云控制台获取
+ "DurationSecond": "600" // 会话持续时长,单位秒
+ }
+ }
+}
+```
+
+### 对象存储配置
+
+```json
+{
+ "Tencent": {
+ "OSS": {
+ "AppId": "", // 腾讯云AppId
+ "Region": "", // 存储桶所在地域
+ "BucketName": "", // 存储桶名称
+ "CreateBucketIfNotExists": false, // 存储桶不存在时是否创建
+ "CreateBucketReferer": [] // 创建存储桶时的防盗链设置
+ }
+ }
+}
+```
+
+### 存储桶命名规范
+
+* 仅支持小写英文字母和数字,即[a-z,0-9]、中划线"-"及其组合
+* 不能以短划线(-)开头或结尾
+* 存储桶名称的最大允许字符受到地域简称和APPID的字符数影响,组成的完整请求域名字符数总计最多60个字符
+* 更多规范请参考[腾讯云存储桶命名规范](https://cloud.tencent.com/document/product/436/13312)
+
+### 对象命名规范
+
+* 不允许以正斜线/或者反斜线\\开头
+* 对象键中不支持ASCII控制字符中的字符上(↑),字符下(↓),字符右(→),字符左(←)
+* 更多规范请参考[腾讯云对象命名规范](https://cloud.tencent.com/document/product/436/13324)
+
+## 基本用法
+
+1. 添加模块依赖
+```csharp
+[DependsOn(typeof(AbpBlobStoringTencentCloudModule))]
+public class YourModule : AbpModule
+{
+ // ...
+}
+```
+
+2. 配置腾讯云对象存储
+```csharp
+Configure(options =>
+{
+ options.Containers.Configure(container =>
+ {
+ container.UseTencentCloud(tencent =>
+ {
+ tencent.AppId = "您的腾讯云AppId";
+ tencent.Region = "ap-guangzhou";
+ tencent.BucketName = "your-bucket-name";
+ tencent.CreateBucketIfNotExists = true;
+ tencent.CreateBucketReferer = new List
+ {
+ "*.example.com",
+ "example.com"
+ };
+ });
+ });
+});
+```
+
+3. 使用BLOB存储
+```csharp
+public class YourService
+{
+ private readonly IBlobContainer _blobContainer;
+
+ public YourService(IBlobContainer blobContainer)
+ {
+ _blobContainer = blobContainer;
+ }
+
+ public async Task SaveBlobAsync(string name, Stream stream)
+ {
+ await _blobContainer.SaveAsync(name, stream);
+ }
+
+ public async Task GetBlobAsync(string name)
+ {
+ return await _blobContainer.GetAsync(name);
+ }
+}
+```
+
+## 高级特性
+
+### 多租户支持
+
+模块支持按租户隔离存储,存储路径格式如下:
+* 宿主:`host/{blobName}`
+* 租户:`tenants/{tenantId}/{blobName}`
+
+### 特性管理
+
+模块提供以下特性开关:
+
+* TencentBlobStoring - 控制腾讯云对象存储服务的启用/禁用
+* TencentBlobStoringMaximumStreamSize - 控制上传文件的最大大小限制(MB)
+
+## 更多文档
+
+* [腾讯云对象存储](https://cloud.tencent.com/document/product/436)
+* [腾讯云COS控制台](https://console.cloud.tencent.com/cos)
+* [ABP BlobStoring系统](https://docs.abp.io/en/abp/latest/Blob-Storing)
+
+[English](./README.EN.md)
diff --git a/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Sms.Tencent/README.EN.md b/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Sms.Tencent/README.EN.md
new file mode 100644
index 000000000..5364e881f
--- /dev/null
+++ b/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Sms.Tencent/README.EN.md
@@ -0,0 +1,128 @@
+# LINGYUN.Abp.Sms.Tencent
+
+Tencent Cloud SMS Service Module, integrating Tencent Cloud SMS service into ABP applications.
+
+## Features
+
+* Support for Tencent Cloud SMS sending functionality
+* Multi-tenant configuration support
+* Default signature and template configuration support
+* Support for batch sending to multiple phone numbers
+* SMS template parameter support
+* Built-in error handling and logging
+
+## Configuration Items
+
+### Basic Configuration
+
+```json
+{
+ "Settings": {
+ "Abp.TencentCloud": {
+ "SecretId": "Your Tencent Cloud SecretId", // Get from Tencent Cloud Console
+ "SecretKey": "Your Tencent Cloud SecretKey", // Get from Tencent Cloud Console
+ "DurationSecond": "600" // Session duration in seconds
+ }
+ }
+}
+```
+
+### SMS Service Configuration
+
+```json
+{
+ "Settings": {
+ "Abp.TencentCloud.Sms": {
+ "AppId": "", // SMS application ID, generated after adding application in SMS console
+ "DefaultSignName": "", // Default SMS signature
+ "DefaultTemplateId": "" // Default SMS template ID
+ }
+ }
+}
+```
+
+## Basic Usage
+
+1. Add module dependency
+```csharp
+[DependsOn(typeof(AbpSmsTencentModule))]
+public class YourModule : AbpModule
+{
+ // ...
+}
+```
+
+2. Configure Tencent Cloud SMS service
+```json
+{
+ "Settings": {
+ "Abp.TencentCloud": {
+ "SecretId": "Your Tencent Cloud SecretId",
+ "SecretKey": "Your Tencent Cloud SecretKey",
+ "DurationSecond": "600"
+ },
+ "Abp.TencentCloud.Sms": {
+ "AppId": "Your SMS Application ID",
+ "DefaultSignName": "Your SMS Signature",
+ "DefaultTemplateId": "Your Default Template ID"
+ }
+ }
+}
+```
+
+3. SMS sending examples
+```csharp
+public class YourService
+{
+ private readonly ISmsSender _smsSender;
+
+ public YourService(ISmsSender smsSender)
+ {
+ _smsSender = smsSender;
+ }
+
+ // Send using default signature and template
+ public async Task SendSmsAsync(string phoneNumber, Dictionary templateParams)
+ {
+ await _smsSender.SendAsync(
+ phoneNumber,
+ nameof(TencentCloudSmsSender),
+ templateParams);
+ }
+
+ // Send using specified signature and template
+ public async Task SendSmsAsync(
+ string signName,
+ string templateCode,
+ string phoneNumber,
+ Dictionary templateParams)
+ {
+ await _smsSender.SendAsync(
+ signName,
+ templateCode,
+ phoneNumber,
+ templateParams);
+ }
+}
+```
+
+## Advanced Features
+
+### Feature Switches
+
+The module provides the following feature switches:
+
+* TencentSms - Controls enabling/disabling of Tencent Cloud SMS service
+
+### Error Handling
+
+* Throws exception when all SMS sending fails
+* Logs warning when partial SMS sending fails
+* Supports viewing detailed failure information, including serial number, phone number, error code, and error message
+
+## More Documentation
+
+* [Tencent Cloud SMS Service](https://cloud.tencent.com/document/product/382)
+* [SMS Console](https://console.cloud.tencent.com/smsv2)
+
+[简体中文](./README.md)
diff --git a/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Sms.Tencent/README.md b/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Sms.Tencent/README.md
new file mode 100644
index 000000000..80dfa5eb4
--- /dev/null
+++ b/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Sms.Tencent/README.md
@@ -0,0 +1,127 @@
+# LINGYUN.Abp.Sms.Tencent
+
+腾讯云短信服务模块,集成腾讯云短信服务到ABP应用程序。
+
+## 功能特性
+
+* 支持腾讯云短信服务的发送功能
+* 支持多租户配置
+* 支持默认签名和模板配置
+* 支持多手机号批量发送
+* 支持短信模板参数传递
+* 内置错误处理和日志记录
+
+## 配置项说明
+
+### 基础配置
+
+```json
+{
+ "Settings": {
+ "Abp.TencentCloud": {
+ "SecretId": "您的腾讯云SecretId", // 从腾讯云控制台获取
+ "SecretKey": "您的腾讯云SecretKey", // 从腾讯云控制台获取
+ "DurationSecond": "600" // 会话持续时长,单位秒
+ }
+ }
+}
+```
+
+### 短信服务配置
+
+```json
+{
+ "Settings": {
+ "Abp.TencentCloud.Sms": {
+ "AppId": "", // 短信应用ID,在短信控制台添加应用后生成
+ "DefaultSignName": "", // 默认短信签名
+ "DefaultTemplateId": "" // 默认短信模板ID
+ }
+ }
+}
+```
+
+## 基本用法
+
+1. 添加模块依赖
+```csharp
+[DependsOn(typeof(AbpSmsTencentModule))]
+public class YourModule : AbpModule
+{
+ // ...
+}
+```
+
+2. 配置腾讯云短信服务
+```json
+{
+ "Settings": {
+ "Abp.TencentCloud": {
+ "SecretId": "您的腾讯云SecretId",
+ "SecretKey": "您的腾讯云SecretKey"
+ },
+ "Abp.TencentCloud.Sms": {
+ "AppId": "您的短信应用ID",
+ "DefaultSignName": "您的短信签名",
+ "DefaultTemplateId": "您的默认模板ID"
+ }
+ }
+}
+```
+
+3. 发送短信示例
+```csharp
+public class YourService
+{
+ private readonly ISmsSender _smsSender;
+
+ public YourService(ISmsSender smsSender)
+ {
+ _smsSender = smsSender;
+ }
+
+ // 使用默认签名和模板发送
+ public async Task SendSmsAsync(string phoneNumber, Dictionary templateParams)
+ {
+ await _smsSender.SendAsync(
+ phoneNumber,
+ nameof(TencentCloudSmsSender),
+ templateParams);
+ }
+
+ // 使用指定签名和模板发送
+ public async Task SendSmsAsync(
+ string signName,
+ string templateCode,
+ string phoneNumber,
+ Dictionary templateParams)
+ {
+ await _smsSender.SendAsync(
+ signName,
+ templateCode,
+ phoneNumber,
+ templateParams);
+ }
+}
+```
+
+## 高级特性
+
+### 特性开关
+
+模块提供以下特性开关:
+
+* TencentSms - 控制腾讯云短信服务的启用/禁用
+
+### 错误处理
+
+* 当所有短信发送失败时,会抛出异常
+* 当部分短信发送失败时,会记录警告日志
+* 支持查看发送失败的详细信息,包括流水号、手机号、错误代码和错误信息
+
+## 更多文档
+
+* [腾讯云短信服务](https://cloud.tencent.com/document/product/382)
+* [短信控制台](https://console.cloud.tencent.com/smsv2)
+
+[English](./README.EN.md)
diff --git a/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Tencent.QQ/README.EN.md b/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Tencent.QQ/README.EN.md
new file mode 100644
index 000000000..cbbec1529
--- /dev/null
+++ b/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Tencent.QQ/README.EN.md
@@ -0,0 +1,81 @@
+# LINGYUN.Abp.Tencent.QQ
+
+Tencent QQ Connect module, integrating QQ Connect service into ABP applications.
+
+## Features
+
+* Support for QQ Connect quick login
+* Multi-tenant configuration support
+* Provides QQ Connect client factory for dynamic client creation
+
+## Configuration Items
+
+### Basic Configuration
+
+```json
+{
+ "Settings": {
+ "Abp.TencentCloud": {
+ "SecretId": "Your Tencent Cloud SecretId", // Get from Tencent Cloud Console
+ "SecretKey": "Your Tencent Cloud SecretKey", // Get from Tencent Cloud Console
+ "DurationSecond": "600" // Session duration in seconds
+ }
+ }
+}
+```
+
+### QQ Connect Configuration
+
+```json
+{
+ "Settings": {
+ "Abp.TencentCloud.QQConnect": {
+ "AppId": "", // QQ Connect AppId, get from QQ Connect Management Center
+ "AppKey": "", // QQ Connect AppKey, get from QQ Connect Management Center
+ "IsMobile": "false" // Whether to use mobile style, default is PC style
+ }
+ }
+}
+```
+
+## Basic Usage
+
+1. Add module dependency
+```csharp
+[DependsOn(typeof(AbpTencentQQModule))]
+public class YourModule : AbpModule
+{
+ // ...
+}
+```
+
+2. Configure QQ Connect service
+
+Refer to the configuration items description above for the corresponding configuration.
+
+3. QQ Connect service usage example
+```csharp
+public class YourService
+{
+ private readonly TencentQQClientFactory _qqClientFactory;
+
+ public YourService(TencentQQClientFactory qqClientFactory)
+ {
+ _qqClientFactory = qqClientFactory;
+ }
+
+ public async Task QQConnectAsync()
+ {
+ var qqClient = await _qqClientFactory.CreateAsync();
+ // Use qqClient to call QQ Connect service APIs
+ // For detailed API usage, please refer to QQ Connect development documentation
+ }
+}
+```
+
+## More Documentation
+
+* [QQ Connect Open Platform](https://connect.qq.com/)
+* [QQ Connect Development Documentation](https://wiki.connect.qq.com/)
+
+[简体中文](./README.md)
diff --git a/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Tencent.QQ/README.md b/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Tencent.QQ/README.md
new file mode 100644
index 000000000..ecbea9a6e
--- /dev/null
+++ b/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Tencent.QQ/README.md
@@ -0,0 +1,81 @@
+# LINGYUN.Abp.Tencent.QQ
+
+腾讯QQ互联模块,集成腾讯QQ互联服务到ABP应用程序。
+
+## 功能特性
+
+* 支持QQ互联快速登录
+* 支持多租户配置
+* 提供QQ互联客户端工厂,支持动态创建客户端
+
+## 配置项说明
+
+### 基础配置
+
+```json
+{
+ "Settings": {
+ "Abp.TencentCloud": {
+ "SecretId": "您的腾讯云SecretId", // 从腾讯云控制台获取
+ "SecretKey": "您的腾讯云SecretKey", // 从腾讯云控制台获取
+ "DurationSecond": "600" // 会话持续时间(秒)
+ }
+ }
+}
+```
+
+### QQ互联配置
+
+```json
+{
+ "Settings": {
+ "Abp.TencentCloud.QQConnect": {
+ "AppId": "", // QQ互联应用ID,从QQ互联管理中心获取
+ "AppKey": "", // QQ互联应用密钥,从QQ互联管理中心获取
+ "IsMobile": "false" // 是否使用移动端样式,默认为PC端样式
+ }
+ }
+}
+```
+
+## 基本用法
+
+1. 添加模块依赖
+```csharp
+[DependsOn(typeof(AbpTencentQQModule))]
+public class YourModule : AbpModule
+{
+ // ...
+}
+```
+
+2. 配置QQ互联服务
+
+参考上述配置项说明进行相应配置。
+
+3. QQ互联服务使用示例
+```csharp
+public class YourService
+{
+ private readonly TencentQQClientFactory _qqClientFactory;
+
+ public YourService(TencentQQClientFactory qqClientFactory)
+ {
+ _qqClientFactory = qqClientFactory;
+ }
+
+ public async Task QQConnectAsync()
+ {
+ var qqClient = await _qqClientFactory.CreateAsync();
+ // 使用qqClient调用QQ互联服务API
+ // 详细API使用方法请参考QQ互联开发文档
+ }
+}
+```
+
+## 更多文档
+
+* [QQ互联开放平台](https://connect.qq.com/)
+* [QQ互联开发文档](https://wiki.connect.qq.com/)
+
+[English](./README.EN.md)
diff --git a/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Tencent.SettingManagement/README.EN.md b/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Tencent.SettingManagement/README.EN.md
new file mode 100644
index 000000000..d5e8be196
--- /dev/null
+++ b/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Tencent.SettingManagement/README.EN.md
@@ -0,0 +1,156 @@
+# LINGYUN.Abp.Tencent.SettingManagement
+
+Tencent Cloud Service Setting Management Module, providing configuration management interface and API for Tencent Cloud services.
+
+## Features
+
+* Provides configuration management interface for Tencent Cloud services
+* Supports global and tenant-level configuration management
+* Supports configuration for the following Tencent Cloud services:
+ * Basic configuration (keys, regions, etc.)
+ * Connection configuration (HTTP method, timeout, proxy, etc.)
+ * SMS service configuration (application ID, default signature, default template, etc.)
+ * QQ Connect configuration (application ID, application key, etc.)
+* Built-in permission management
+* Multi-language localization support
+* Support for all Tencent Cloud available regions
+
+## Permissions
+
+* `TencentCloud` - Tencent Cloud service permission group
+ * `TencentCloud.Settings` - Configure Tencent Cloud service permission
+
+## API Endpoints
+
+### Get Global Configuration
+
+```http
+GET /api/setting-management/tencent/by-global
+```
+
+### Get Current Tenant Configuration
+
+```http
+GET /api/setting-management/tencent/by-current-tenant
+```
+
+## Basic Usage
+
+1. Add module dependency
+```csharp
+[DependsOn(typeof(AbpTencentCloudSettingManagementModule))]
+public class YourModule : AbpModule
+{
+ // ...
+}
+```
+
+2. Configure authorization
+```csharp
+public override void ConfigureServices(ServiceConfigurationContext context)
+{
+ Configure(options =>
+ {
+ options.GrantByDefault(TencentCloudSettingPermissionNames.Settings);
+ });
+}
+```
+
+## Configuration Items
+
+### Basic Configuration
+
+```json
+{
+ "Settings": {
+ "Abp.TencentCloud": {
+ "EndPoint": "ap-guangzhou", // Resource region, default is Guangzhou
+ "SecretId": "Your Tencent Cloud SecretId", // Get from Tencent Cloud Console
+ "SecretKey": "Your Tencent Cloud SecretKey", // Get from Tencent Cloud Console
+ "DurationSecond": "600" // Session duration in seconds
+ }
+ }
+}
+```
+
+### Connection Configuration
+
+```json
+{
+ "Settings": {
+ "Abp.TencentCloud.Connection": {
+ "HttpMethod": "POST", // Request method, default is POST
+ "Timeout": "60", // Connection timeout in seconds
+ "WebProxy": "", // Proxy server address, optional
+ "EndPoint": "" // Specific service domain, required for financial zone services
+ }
+ }
+}
+```
+
+### SMS Service Configuration
+
+```json
+{
+ "Settings": {
+ "Abp.TencentCloud.Sms": {
+ "AppId": "", // SMS application ID, generated after adding application in SMS console
+ "DefaultSignName": "", // Default SMS signature
+ "DefaultTemplateId": "" // Default SMS template ID
+ }
+ }
+}
+```
+
+### QQ Connect Configuration
+
+```json
+{
+ "Settings": {
+ "Abp.TencentCloud.QQConnect": {
+ "AppId": "", // QQ Connect application ID, get from QQ Connect Management Center
+ "AppKey": "", // QQ Connect application key, get from QQ Connect Management Center
+ "IsMobile": "false" // Whether to use mobile style, default is PC style
+ }
+ }
+}
+```
+
+## Available Regions
+
+The module supports the following Tencent Cloud regions:
+
+* China Regions
+ * North China (Beijing) - ap-beijing
+ * Southwest China (Chengdu) - ap-chengdu
+ * Southwest China (Chongqing) - ap-chongqing
+ * South China (Guangzhou) - ap-guangzhou
+ * Hong Kong/Macao/Taiwan (Hong Kong, China) - ap-hongkong
+ * East China (Nanjing) - ap-nanjing
+ * East China (Shanghai) - ap-shanghai
+ * East China (Shanghai Financial) - ap-shanghai-fsi
+ * South China (Shenzhen Financial) - ap-shenzhen-fsi
+
+* Asia Pacific
+ * Bangkok - ap-bangkok
+ * Jakarta - ap-jakarta
+ * Mumbai - ap-mumbai
+ * Seoul - ap-seoul
+ * Singapore - ap-singapore
+ * Tokyo - ap-tokyo
+
+* Europe
+ * Frankfurt - eu-frankfurt
+ * Moscow - eu-moscow
+
+* North America
+ * Virginia - na-ashburn
+ * Silicon Valley - na-siliconvalley
+ * Toronto - na-toronto
+
+## More Documentation
+
+* [Tencent Cloud API Key Management](https://console.cloud.tencent.com/cam/capi)
+* [Tencent Cloud Regions and Availability Zones](https://cloud.tencent.com/document/product/213/6091)
+
+[简体中文](./README.md)
diff --git a/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Tencent.SettingManagement/README.md b/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Tencent.SettingManagement/README.md
new file mode 100644
index 000000000..c5a7997dc
--- /dev/null
+++ b/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Tencent.SettingManagement/README.md
@@ -0,0 +1,156 @@
+# LINGYUN.Abp.Tencent.SettingManagement
+
+腾讯云服务设置管理模块,提供腾讯云服务的配置管理界面和API。
+
+## 功能特性
+
+* 提供腾讯云服务的配置管理界面
+* 支持全局和租户级别的配置管理
+* 支持以下腾讯云服务的配置:
+ * 基础配置(密钥、地域等)
+ * 连接配置(HTTP方法、超时时间、代理等)
+ * 短信服务配置(应用ID、默认签名、默认模板等)
+ * QQ互联配置(应用ID、应用密钥等)
+* 内置权限管理
+* 支持多语言本地化
+* 支持所有腾讯云可用区域的配置
+
+## 权限
+
+* `TencentCloud` - 腾讯云服务权限组
+ * `TencentCloud.Settings` - 配置腾讯云服务权限
+
+## API接口
+
+### 获取全局配置
+
+```http
+GET /api/setting-management/tencent/by-global
+```
+
+### 获取当前租户配置
+
+```http
+GET /api/setting-management/tencent/by-current-tenant
+```
+
+## 基本用法
+
+1. 添加模块依赖
+```csharp
+[DependsOn(typeof(AbpTencentCloudSettingManagementModule))]
+public class YourModule : AbpModule
+{
+ // ...
+}
+```
+
+2. 授权配置
+```csharp
+public override void ConfigureServices(ServiceConfigurationContext context)
+{
+ Configure(options =>
+ {
+ options.GrantByDefault(TencentCloudSettingPermissionNames.Settings);
+ });
+}
+```
+
+## 配置项说明
+
+### 基础配置
+
+```json
+{
+ "Settings": {
+ "Abp.TencentCloud": {
+ "EndPoint": "ap-guangzhou", // 资源所在地域,默认为广州
+ "SecretId": "您的腾讯云SecretId", // 从腾讯云控制台获取
+ "SecretKey": "您的腾讯云SecretKey", // 从腾讯云控制台获取
+ "DurationSecond": "600" // 会话持续时长,单位秒
+ }
+ }
+}
+```
+
+### 连接配置
+
+```json
+{
+ "Settings": {
+ "Abp.TencentCloud.Connection": {
+ "HttpMethod": "POST", // 请求方法,默认POST
+ "Timeout": "60", // 连接超时时间,单位秒
+ "WebProxy": "", // 代理服务器地址,可选
+ "EndPoint": "" // 特定服务的域名,如金融区服务需要指定
+ }
+ }
+}
+```
+
+### 短信服务配置
+
+```json
+{
+ "Settings": {
+ "Abp.TencentCloud.Sms": {
+ "AppId": "", // 短信应用ID,在短信控制台添加应用后生成
+ "DefaultSignName": "", // 默认短信签名
+ "DefaultTemplateId": "" // 默认短信模板ID
+ }
+ }
+}
+```
+
+### QQ互联配置
+
+```json
+{
+ "Settings": {
+ "Abp.TencentCloud.QQConnect": {
+ "AppId": "", // QQ互联应用ID,从QQ互联管理中心获取
+ "AppKey": "", // QQ互联应用密钥,从QQ互联管理中心获取
+ "IsMobile": "false" // 是否使用移动端样式,默认为PC端样式
+ }
+ }
+}
+```
+
+## 可用区域
+
+模块支持以下腾讯云区域:
+
+* 中国区域
+ * 华北地区(北京)- ap-beijing
+ * 西南地区(成都)- ap-chengdu
+ * 西南地区(重庆)- ap-chongqing
+ * 华南地区(广州)- ap-guangzhou
+ * 港澳台地区(中国香港)- ap-hongkong
+ * 华东地区(南京)- ap-nanjing
+ * 华东地区(上海)- ap-shanghai
+ * 华东地区(上海金融)- ap-shanghai-fsi
+ * 华南地区(深圳金融)- ap-shenzhen-fsi
+
+* 亚太地区
+ * 曼谷 - ap-bangkok
+ * 雅加达 - ap-jakarta
+ * 孟买 - ap-mumbai
+ * 首尔 - ap-seoul
+ * 新加坡 - ap-singapore
+ * 东京 - ap-tokyo
+
+* 欧洲地区
+ * 法兰克福 - eu-frankfurt
+ * 莫斯科 - eu-moscow
+
+* 北美地区
+ * 弗吉尼亚 - na-ashburn
+ * 硅谷 - na-siliconvalley
+ * 多伦多 - na-toronto
+
+## 更多文档
+
+* [腾讯云API密钥管理](https://console.cloud.tencent.com/cam/capi)
+* [腾讯云地域和可用区](https://cloud.tencent.com/document/product/213/6091)
+
+[English](./README.EN.md)
diff --git a/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Tencent.TTS/README.EN.md b/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Tencent.TTS/README.EN.md
new file mode 100644
index 000000000..91833c60d
--- /dev/null
+++ b/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Tencent.TTS/README.EN.md
@@ -0,0 +1,93 @@
+# LINGYUN.Abp.Tencent.TTS
+
+Tencent Cloud Text-to-Speech (TTS) Service Module, integrating Tencent Cloud TTS service into ABP applications.
+
+## Features
+
+* Support for Tencent Cloud Text-to-Speech (TTS) service
+* Multi-tenant configuration support
+* Based on Tencent Cloud TTS SDK V20190823
+* Provides TTS client factory for dynamic TTS client creation
+
+## Basic Usage
+
+1. Add module dependency
+```csharp
+[DependsOn(typeof(AbpTencentTTSModule))]
+public class YourModule : AbpModule
+{
+ // ...
+}
+```
+
+2. Configure Tencent Cloud service
+```json
+{
+ "Settings": {
+ "LINGYUN.Abp.Tencent": {
+ "SecretId": "Your Tencent Cloud SecretId",
+ "SecretKey": "Your Tencent Cloud SecretKey"
+ }
+ }
+}
+```
+
+3. TTS service usage example
+```csharp
+public class YourService
+{
+ private readonly TencentCloudTTSClientFactory _ttsClientFactory;
+
+ public YourService(TencentCloudTTSClientFactory ttsClientFactory)
+ {
+ _ttsClientFactory = ttsClientFactory;
+ }
+
+ public async Task TextToSpeechAsync(string text)
+ {
+ var ttsClient = await _ttsClientFactory.CreateAsync();
+ // Use ttsClient to call Tencent Cloud TTS service APIs
+ // For detailed API usage, please refer to Tencent Cloud TTS SDK documentation
+ }
+}
+```
+
+## Configuration Items
+
+### Basic Configuration
+
+```json
+{
+ "Settings": {
+ "Abp.TencentCloud": {
+ "SecretId": "Your Tencent Cloud SecretId", // Get from Tencent Cloud Console
+ "SecretKey": "Your Tencent Cloud SecretKey", // Get from Tencent Cloud Console
+ "DurationSecond": "600" // Session duration in seconds
+ }
+ }
+}
+```
+
+### TTS Service Configuration
+
+```json
+{
+ "Settings": {
+ "Abp.TencentCloud.TTS": {
+ "AppId": "", // TTS application ID
+ "VoiceType": "", // Voice type, default is "0"
+ "Language": "1", // Language, 1-Chinese, 2-English
+ "Speed": "0", // Speech speed, range: -2~2
+ "Volume": "0", // Volume, range: 0~10
+ "ProjectId": "0" // Project ID
+ }
+ }
+}
+```
+
+## More Documentation
+
+* [Tencent Cloud TTS Service](https://cloud.tencent.com/document/product/1073)
+* [Tencent Cloud TTS SDK Documentation](https://cloud.tencent.com/document/product/1073/37927)
+
+[简体中文](./README.md)
diff --git a/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Tencent.TTS/README.md b/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Tencent.TTS/README.md
new file mode 100644
index 000000000..d3e13d3d6
--- /dev/null
+++ b/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Tencent.TTS/README.md
@@ -0,0 +1,93 @@
+# LINGYUN.Abp.Tencent.TTS
+
+腾讯云语音合成服务模块,集成腾讯云语音合成服务到ABP应用程序。
+
+## 功能特性
+
+* 支持腾讯云语音合成服务(TTS)
+* 支持多租户配置
+* 基于腾讯云TTS SDK V20190823
+* 提供TTS客户端工厂,支持动态创建TTS客户端
+
+## 基本用法
+
+1. 添加模块依赖
+```csharp
+[DependsOn(typeof(AbpTencentTTSModule))]
+public class YourModule : AbpModule
+{
+ // ...
+}
+```
+
+2. 配置腾讯云服务
+```json
+{
+ "Settings": {
+ "LINGYUN.Abp.Tencent": {
+ "SecretId": "您的腾讯云SecretId",
+ "SecretKey": "您的腾讯云SecretKey"
+ }
+ }
+}
+```
+
+3. 使用TTS服务示例
+```csharp
+public class YourService
+{
+ private readonly TencentCloudTTSClientFactory _ttsClientFactory;
+
+ public YourService(TencentCloudTTSClientFactory ttsClientFactory)
+ {
+ _ttsClientFactory = ttsClientFactory;
+ }
+
+ public async Task TextToSpeechAsync(string text)
+ {
+ var ttsClient = await _ttsClientFactory.CreateAsync();
+ // 使用ttsClient调用腾讯云TTS服务API
+ // 详细API使用方法请参考腾讯云TTS SDK文档
+ }
+}
+```
+
+## 配置项说明
+
+### 基础配置
+
+```json
+{
+ "Settings": {
+ "Abp.TencentCloud": {
+ "SecretId": "您的腾讯云SecretId", // 从腾讯云控制台获取
+ "SecretKey": "您的腾讯云SecretKey", // 从腾讯云控制台获取
+ "DurationSecond": "600" // 会话持续时间(秒)
+ }
+ }
+}
+```
+
+### TTS服务配置
+
+```json
+{
+ "Settings": {
+ "Abp.TencentCloud.TTS": {
+ "AppId": "", // TTS应用ID
+ "VoiceType": "", // 音色,默认为"0"
+ "Language": "1", // 语言,1-中文,2-英文
+ "Speed": "0", // 语速,范围:-2~2
+ "Volume": "0", // 音量,范围:0~10
+ "ProjectId": "0" // 项目ID
+ }
+ }
+}
+```
+
+## 更多文档
+
+* [腾讯云语音合成服务](https://cloud.tencent.com/document/product/1073)
+* [腾讯云TTS SDK文档](https://cloud.tencent.com/document/product/1073/37927)
+
+[English](./README.EN.md)
diff --git a/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Tencent/README.EN.md b/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Tencent/README.EN.md
new file mode 100644
index 000000000..e042c59a2
--- /dev/null
+++ b/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Tencent/README.EN.md
@@ -0,0 +1,87 @@
+# LINGYUN.Abp.Tencent
+
+Tencent Cloud Service Base Module, providing infrastructure support for other Tencent Cloud service modules.
+
+## Features
+
+* Provides Tencent Cloud SDK client factory, supporting dynamic creation of clients for various Tencent Cloud services
+* Multi-tenant configuration support
+* Built-in localization support (Chinese and English)
+* Unified Tencent Cloud service configuration management
+* Feature management support, enabling/disabling functionalities as needed
+* Region localization display support
+
+## Configuration
+
+### Basic Settings
+
+```json
+{
+ "Settings": {
+ "LINGYUN.Abp.Tencent": {
+ "EndPoint": "ap-guangzhou", // Resource region, default is Guangzhou
+ "SecretId": "Your Tencent Cloud SecretId", // Get from Tencent Cloud Console
+ "SecretKey": "Your Tencent Cloud SecretKey", // Get from Tencent Cloud Console
+ "DurationSecond": "600" // Session duration in seconds
+ }
+ }
+}
+```
+
+### Connection Settings
+
+```json
+{
+ "Settings": {
+ "LINGYUN.Abp.Tencent.Connection": {
+ "HttpMethod": "POST", // Request method, default is POST
+ "Timeout": "60", // Connection timeout in seconds
+ "WebProxy": "" // Proxy server address, optional
+ }
+ }
+}
+```
+
+## Basic Usage
+
+1. Add module dependency
+```csharp
+[DependsOn(typeof(AbpTencentCloudModule))]
+public class YourModule : AbpModule
+{
+ // ...
+}
+```
+
+2. Configure Tencent Cloud service
+```json
+{
+ "Settings": {
+ "LINGYUN.Abp.Tencent": {
+ "SecretId": "Your Tencent Cloud SecretId",
+ "SecretKey": "Your Tencent Cloud SecretKey"
+ }
+ }
+}
+```
+
+## Advanced Features
+
+### Feature Management
+
+The module provides the following feature switches:
+
+* TencentSms - Tencent Cloud SMS service
+* TencentBlobStoring - Tencent Cloud Object Storage service
+ * MaximumStreamSize - Maximum file stream size limit for single upload (MB)
+
+### Multi-tenant Support
+
+All configurations support multi-tenant settings, allowing different Tencent Cloud service parameters for different tenants.
+
+## More Documentation
+
+* [Tencent Cloud API Key Management](https://console.cloud.tencent.com/cam/capi)
+* [Tencent Cloud Regions and Availability Zones](https://cloud.tencent.com/document/product/213/6091)
+
+[简体中文](./README.md)
diff --git a/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Tencent/README.md b/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Tencent/README.md
new file mode 100644
index 000000000..4e6af7322
--- /dev/null
+++ b/aspnet-core/framework/cloud-tencent/LINGYUN.Abp.Tencent/README.md
@@ -0,0 +1,87 @@
+# LINGYUN.Abp.Tencent
+
+腾讯云服务基础模块,为其他腾讯云服务模块提供基础设施支持。
+
+## 功能特性
+
+* 提供腾讯云SDK客户端工厂,支持动态创建腾讯云各项服务的客户端
+* 支持多租户配置
+* 内置多语言本地化支持(中文和英文)
+* 提供统一的腾讯云服务配置管理
+* 支持特性(Feature)管理,可按需启用/禁用功能
+* 支持区域(Region)本地化显示
+
+## 配置项
+
+### 基础配置
+
+```json
+{
+ "Settings": {
+ "LINGYUN.Abp.Tencent": {
+ "EndPoint": "ap-guangzhou", // 资源所在地域,默认为广州
+ "SecretId": "您的腾讯云SecretId", // 从腾讯云控制台获取
+ "SecretKey": "您的腾讯云SecretKey", // 从腾讯云控制台获取
+ "DurationSecond": "600" // 会话持续时长,单位秒
+ }
+ }
+}
+```
+
+### 连接配置
+
+```json
+{
+ "Settings": {
+ "LINGYUN.Abp.Tencent.Connection": {
+ "HttpMethod": "POST", // 请求方法,默认POST
+ "Timeout": "60", // 连接超时时间,单位秒
+ "WebProxy": "" // 代理服务器地址,可选
+ }
+ }
+}
+```
+
+## 基本用法
+
+1. 添加模块依赖
+```csharp
+[DependsOn(typeof(AbpTencentCloudModule))]
+public class YourModule : AbpModule
+{
+ // ...
+}
+```
+
+2. 配置腾讯云服务
+```json
+{
+ "Settings": {
+ "LINGYUN.Abp.Tencent": {
+ "SecretId": "您的腾讯云SecretId",
+ "SecretKey": "您的腾讯云SecretKey"
+ }
+ }
+}
+```
+
+## 高级特性
+
+### 特性管理
+
+模块提供以下特性开关:
+
+* TencentSms - 腾讯云短信服务
+* TencentBlobStoring - 腾讯云对象存储服务
+ * MaximumStreamSize - 单次上传文件流大小限制(MB)
+
+### 多租户支持
+
+所有配置均支持多租户配置,可以为不同租户配置不同的腾讯云服务参数。
+
+## 更多文档
+
+* [腾讯云API密钥管理](https://console.cloud.tencent.com/cam/capi)
+* [腾讯云地域和可用区](https://cloud.tencent.com/document/product/213/6091)
+
+[English](./README.EN.md)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.BackgroundJobs.Hangfire/README.EN.md b/aspnet-core/framework/common/LINGYUN.Abp.BackgroundJobs.Hangfire/README.EN.md
new file mode 100644
index 000000000..6e557659d
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.BackgroundJobs.Hangfire/README.EN.md
@@ -0,0 +1,94 @@
+# LINGYUN.Abp.BackgroundJobs.Hangfire
+
+English | [简体中文](README.md)
+
+## 1. Introduction
+
+`LINGYUN.Abp.BackgroundJobs.Hangfire` is an ABP background job module implemented based on [Hangfire](https://www.hangfire.io/). It provides a reliable background job execution framework that supports immediate, delayed, and recurring task execution.
+
+## 2. Features
+
+* Support for immediate task execution
+* Support for delayed task execution
+* Support for recurring tasks (using Cron expressions)
+* Seamless integration with ABP background job system
+* Job execution status tracking
+* Job retry mechanism
+
+## 3. Installation
+
+```bash
+dotnet add package LINGYUN.Abp.BackgroundJobs.Hangfire
+```
+
+## 4. Usage
+
+1. Add `AbpBackgroundJobsHangfireModule` to your module dependencies:
+
+```csharp
+[DependsOn(typeof(AbpBackgroundJobsHangfireModule))]
+public class YourModule : AbpModule
+{
+}
+```
+
+2. Configure background jobs:
+
+```csharp
+public override void ConfigureServices(ServiceConfigurationContext context)
+{
+ Configure(options =>
+ {
+ options.IsJobExecutionEnabled = true; // Enable job execution
+ });
+}
+```
+
+3. Use background jobs:
+
+```csharp
+public class YourService
+{
+ private readonly IBackgroundJobManager _backgroundJobManager;
+
+ public YourService(IBackgroundJobManager backgroundJobManager)
+ {
+ _backgroundJobManager = backgroundJobManager;
+ }
+
+ public async Task CreateJobAsync()
+ {
+ // Create immediate job
+ await _backgroundJobManager.EnqueueAsync(new YourArgs());
+
+ // Create delayed job
+ await _backgroundJobManager.EnqueueAsync(
+ new YourArgs(),
+ delay: TimeSpan.FromMinutes(5)
+ );
+
+ // Create recurring job
+ await _backgroundJobManager.EnqueueAsync(
+ "0 0 * * *", // Cron expression: Execute at 00:00 every day
+ new YourArgs()
+ );
+ }
+}
+```
+
+## 5. Configuration
+
+### 5.1 Job Configuration
+
+* `AbpBackgroundJobOptions.IsJobExecutionEnabled`: Whether to enable job execution. Default value: `true`
+
+## 6. Dependencies
+
+* Volo.Abp.BackgroundJobs
+* Hangfire.Core
+* Hangfire.AspNetCore
+
+## 7. Documentation and Resources
+
+* [Hangfire Official Documentation](https://docs.hangfire.io/)
+* [ABP Framework Documentation](https://docs.abp.io/)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.BackgroundJobs.Hangfire/README.md b/aspnet-core/framework/common/LINGYUN.Abp.BackgroundJobs.Hangfire/README.md
new file mode 100644
index 000000000..15bed0155
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.BackgroundJobs.Hangfire/README.md
@@ -0,0 +1,94 @@
+# LINGYUN.Abp.BackgroundJobs.Hangfire
+
+[English](README.EN.md) | 简体中文
+
+## 1. 介绍
+
+`LINGYUN.Abp.BackgroundJobs.Hangfire` 是基于 [Hangfire](https://www.hangfire.io/) 实现的ABP后台作业模块。它提供了一个可靠的后台作业执行框架,支持即时任务、延迟任务和周期性任务的执行。
+
+## 2. 功能特性
+
+* 支持即时任务执行
+* 支持延迟任务执行
+* 支持周期性任务(使用Cron表达式)
+* 与ABP后台作业系统无缝集成
+* 支持作业执行状态跟踪
+* 支持作业重试机制
+
+## 3. 安装
+
+```bash
+dotnet add package LINGYUN.Abp.BackgroundJobs.Hangfire
+```
+
+## 4. 使用方法
+
+1. 添加 `AbpBackgroundJobsHangfireModule` 到模块依赖中:
+
+```csharp
+[DependsOn(typeof(AbpBackgroundJobsHangfireModule))]
+public class YourModule : AbpModule
+{
+}
+```
+
+2. 配置后台作业:
+
+```csharp
+public override void ConfigureServices(ServiceConfigurationContext context)
+{
+ Configure(options =>
+ {
+ options.IsJobExecutionEnabled = true; // 启用作业执行
+ });
+}
+```
+
+3. 使用后台作业:
+
+```csharp
+public class YourService
+{
+ private readonly IBackgroundJobManager _backgroundJobManager;
+
+ public YourService(IBackgroundJobManager backgroundJobManager)
+ {
+ _backgroundJobManager = backgroundJobManager;
+ }
+
+ public async Task CreateJobAsync()
+ {
+ // 创建即时任务
+ await _backgroundJobManager.EnqueueAsync(new YourArgs());
+
+ // 创建延迟任务
+ await _backgroundJobManager.EnqueueAsync(
+ new YourArgs(),
+ delay: TimeSpan.FromMinutes(5)
+ );
+
+ // 创建周期性任务
+ await _backgroundJobManager.EnqueueAsync(
+ "0 0 * * *", // Cron表达式:每天0点执行
+ new YourArgs()
+ );
+ }
+}
+```
+
+## 5. 配置项
+
+### 5.1 作业配置
+
+* `AbpBackgroundJobOptions.IsJobExecutionEnabled`: 是否启用作业执行。默认值: `true`
+
+## 6. 依赖项
+
+* Volo.Abp.BackgroundJobs
+* Hangfire.Core
+* Hangfire.AspNetCore
+
+## 7. 文档和资源
+
+* [Hangfire官方文档](https://docs.hangfire.io/)
+* [ABP框架文档](https://docs.abp.io/)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.BackgroundWorkers.Hangfire/README.EN.md b/aspnet-core/framework/common/LINGYUN.Abp.BackgroundWorkers.Hangfire/README.EN.md
new file mode 100644
index 000000000..7dbf9e43b
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.BackgroundWorkers.Hangfire/README.EN.md
@@ -0,0 +1,82 @@
+# LINGYUN.Abp.BackgroundWorkers.Hangfire
+
+English | [简体中文](README.md)
+
+## 1. Introduction
+
+`LINGYUN.Abp.BackgroundWorkers.Hangfire` is an ABP background worker module implemented based on Hangfire. It provides a reliable way to manage and execute long-running background tasks, supporting automatic start, stop, and periodic execution features.
+
+## 2. Features
+
+* Support for automatic start and stop of background workers
+* Support for periodically executing background tasks
+* Seamless integration with ABP background worker system
+* Worker status management
+* Dependency injection support
+
+## 3. Installation
+
+```bash
+dotnet add package LINGYUN.Abp.BackgroundWorkers.Hangfire
+```
+
+## 4. Usage
+
+1. Add `AbpBackgroundWorkersHangfireModule` to your module dependencies:
+
+```csharp
+[DependsOn(typeof(AbpBackgroundWorkersHangfireModule))]
+public class YourModule : AbpModule
+{
+}
+```
+
+2. Create background worker:
+
+```csharp
+public class YourBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
+{
+ public YourBackgroundWorker(
+ AbpAsyncTimer timer,
+ IServiceScopeFactory serviceScopeFactory)
+ : base(timer, serviceScopeFactory)
+ {
+ Timer.Period = 5000; // Execute every 5 seconds
+ }
+
+ protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
+ {
+ // Implement your background task logic here
+ await Task.CompletedTask;
+ }
+}
+```
+
+3. Register background worker:
+
+```csharp
+public override void ConfigureServices(ServiceConfigurationContext context)
+{
+ context.Services.AddTransient();
+ Configure(options =>
+ {
+ options.IsEnabled = true; // Enable background workers
+ });
+}
+```
+
+## 5. Configuration
+
+### 5.1 Worker Configuration
+
+* `AbpBackgroundWorkerOptions.IsEnabled`: Whether to enable background workers. Default value: `true`
+
+## 6. Dependencies
+
+* Volo.Abp.BackgroundWorkers
+* LINGYUN.Abp.BackgroundJobs.Hangfire
+
+## 7. Documentation and Resources
+
+* [Hangfire Official Documentation](https://docs.hangfire.io/)
+* [ABP Framework Documentation](https://docs.abp.io/)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.BackgroundWorkers.Hangfire/README.md b/aspnet-core/framework/common/LINGYUN.Abp.BackgroundWorkers.Hangfire/README.md
new file mode 100644
index 000000000..83127d6c3
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.BackgroundWorkers.Hangfire/README.md
@@ -0,0 +1,82 @@
+# LINGYUN.Abp.BackgroundWorkers.Hangfire
+
+[English](README.EN.md) | 简体中文
+
+## 1. 介绍
+
+`LINGYUN.Abp.BackgroundWorkers.Hangfire` 是一个基于Hangfire实现的ABP后台工作者模块。它提供了一种可靠的方式来管理和执行长期运行的后台任务,支持自动启动、停止和定期执行等功能。
+
+## 2. 功能特性
+
+* 支持后台工作者的自动启动和停止
+* 支持定期执行的后台任务
+* 与ABP后台工作者系统无缝集成
+* 支持工作者状态管理
+* 支持依赖注入
+
+## 3. 安装
+
+```bash
+dotnet add package LINGYUN.Abp.BackgroundWorkers.Hangfire
+```
+
+## 4. 使用方法
+
+1. 添加 `AbpBackgroundWorkersHangfireModule` 到模块依赖中:
+
+```csharp
+[DependsOn(typeof(AbpBackgroundWorkersHangfireModule))]
+public class YourModule : AbpModule
+{
+}
+```
+
+2. 创建后台工作者:
+
+```csharp
+public class YourBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
+{
+ public YourBackgroundWorker(
+ AbpAsyncTimer timer,
+ IServiceScopeFactory serviceScopeFactory)
+ : base(timer, serviceScopeFactory)
+ {
+ Timer.Period = 5000; // 每5秒执行一次
+ }
+
+ protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
+ {
+ // 在这里实现你的后台任务逻辑
+ await Task.CompletedTask;
+ }
+}
+```
+
+3. 注册后台工作者:
+
+```csharp
+public override void ConfigureServices(ServiceConfigurationContext context)
+{
+ context.Services.AddTransient();
+ Configure(options =>
+ {
+ options.IsEnabled = true; // 启用后台工作者
+ });
+}
+```
+
+## 5. 配置项
+
+### 5.1 工作者配置
+
+* `AbpBackgroundWorkerOptions.IsEnabled`: 是否启用后台工作者。默认值: `true`
+
+## 6. 依赖项
+
+* Volo.Abp.BackgroundWorkers
+* LINGYUN.Abp.BackgroundJobs.Hangfire
+
+## 7. 文档和资源
+
+* [Hangfire官方文档](https://docs.hangfire.io/)
+* [ABP框架文档](https://docs.abp.io/)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.BlobStoring.Aliyun/README.EN.md b/aspnet-core/framework/common/LINGYUN.Abp.BlobStoring.Aliyun/README.EN.md
new file mode 100644
index 000000000..745d34c1d
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.BlobStoring.Aliyun/README.EN.md
@@ -0,0 +1,85 @@
+# LINGYUN.Abp.BlobStoring.Aliyun
+
+Aliyun OSS implementation of the ABP framework's object storage provider **IBlobProvider**.
+
+## Features
+
+* Implements ABP's IBlobProvider interface using Aliyun OSS service
+* Supports multi-tenant Blob storage
+* Automatic Bucket creation
+* Configurable Bucket access control
+* STS Token access support
+* Customizable Blob naming strategy
+
+## Module Reference
+
+First, define the **appsettings.json** file:
+
+```json
+{
+ "Aliyun": {
+ "OSS": {
+ "BucketName": "your-bucket-name",
+ "Endpoint": "http://oss-cn-shanghai.aliyuncs.com",
+ "CreateBucketIfNotExists": true
+ }
+ }
+}
+```
+
+Then reference the module in your project:
+
+```csharp
+[DependsOn(typeof(AbpBlobStoringAliyunModule))]
+public class YouProjectModule : AbpModule
+{
+ // other
+}
+```
+
+## Configuration
+
+### OSS Configuration
+
+* **BucketName**
+ * Description: OSS storage space name
+ * Type: Optional
+ * Default: Container name
+
+* **Endpoint**
+ * Description: OSS service access point
+ * Type: Required
+ * Example: http://oss-cn-shanghai.aliyuncs.com
+
+* **CreateBucketIfNotExists**
+ * Description: Whether to automatically create the bucket if it doesn't exist
+ * Type: Optional
+ * Default: false
+
+* **CreateBucketReferer**
+ * Description: Bucket access whitelist
+ * Type: Optional
+
+### Blob Naming Rules
+
+* Container (Bucket) naming rules:
+ * Length must be between 3-63 characters
+ * Can only contain lowercase letters, numbers, and hyphens
+ * Must start with a letter or number
+ * Cannot start or end with a hyphen
+
+* Blob naming rules:
+ * Tenant: `tenants/{tenantId}/{blobName}`
+ * Host: `host/{blobName}`
+
+## Performance Optimization
+
+* Uses distributed caching for STS Token storage
+* Supports data redundancy configuration
+* Configurable Bucket access control for enhanced security
+
+## Related Modules
+
+* [LINGYUN.Abp.Aliyun](../../cloud-aliyun/LINGYUN.Abp.Aliyun/README.md) - Provides Aliyun basic integration
+
+[点击查看中文文档](README.md)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.BlobStoring.Aliyun/README.md b/aspnet-core/framework/common/LINGYUN.Abp.BlobStoring.Aliyun/README.md
index 7973666c7..9d2fb7590 100644
--- a/aspnet-core/framework/common/LINGYUN.Abp.BlobStoring.Aliyun/README.md
+++ b/aspnet-core/framework/common/LINGYUN.Abp.BlobStoring.Aliyun/README.md
@@ -1,12 +1,19 @@
# LINGYUN.Abp.BlobStoring.Aliyun
-abp框架对象存储提供者**IBlobProvider**的阿里云实现
+ABP框架对象存储提供者**IBlobProvider**的阿里云OSS实现。
-## 配置使用
+## 功能特性
-模块按需引用
+* 实现ABP的IBlobProvider接口,使用阿里云OSS服务
+* 支持多租户Blob存储
+* 自动创建Bucket
+* 可配置的Bucket访问控制
+* 支持STS Token访问
+* 可自定义的Blob命名策略
-事先定义**appsettings.json**文件
+## 模块引用
+
+首先定义**appsettings.json**文件:
```json
{
@@ -18,13 +25,61 @@ abp框架对象存储提供者**IBlobProvider**的阿里云实现
}
}
}
-
```
+然后在项目中引用模块:
+
```csharp
[DependsOn(typeof(AbpBlobStoringAliyunModule))]
public class YouProjectModule : AbpModule
{
// other
}
-```
\ No newline at end of file
+```
+
+## 配置说明
+
+### OSS配置
+
+* **BucketName**
+ * 说明:OSS存储空间名称
+ * 类型:可选
+ * 默认值:容器名称
+
+* **Endpoint**
+ * 说明:OSS服务的接入点
+ * 类型:必须
+ * 示例:http://oss-cn-shanghai.aliyuncs.com
+
+* **CreateBucketIfNotExists**
+ * 说明:如果Bucket不存在是否自动创建
+ * 类型:可选
+ * 默认值:false
+
+* **CreateBucketReferer**
+ * 说明:Bucket访问白名单
+ * 类型:可选
+
+### Blob命名规则
+
+* 容器(Bucket)名称规则:
+ * 长度必须在3-63字符之间
+ * 只能包含小写字母、数字和短横线
+ * 必须以字母或数字开头
+ * 不能以短横线开头或结尾
+
+* Blob名称规则:
+ * 租户:`tenants/{tenantId}/{blobName}`
+ * 宿主:`host/{blobName}`
+
+## 性能优化
+
+* 使用分布式缓存存储STS Token
+* 支持数据冗余配置
+* 可配置的Bucket访问控制以提高安全性
+
+## 相关模块
+
+* [LINGYUN.Abp.Aliyun](../../cloud-aliyun/LINGYUN.Abp.Aliyun/README.md) - 提供阿里云基础集成
+
+[Click to view English documentation](README.EN.md)
\ No newline at end of file
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.Core/README.EN.md b/aspnet-core/framework/common/LINGYUN.Abp.Core/README.EN.md
new file mode 100644
index 000000000..2bb4de3eb
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.Core/README.EN.md
@@ -0,0 +1,46 @@
+# LINGYUN.Abp.Core
+
+## Introduction
+
+`LINGYUN.Abp.Core` is a basic core module that provides some common functionalities and extensions.
+
+## Features
+
+* Dynamic Options Provider (`DynamicOptionsProvider`)
+ * Simplifies the complex steps of calling interfaces before using configuration
+ * Supports lazy loading of configuration values
+ * Provides one-time running mechanism to ensure configuration is loaded only once
+
+## Installation
+
+```bash
+dotnet add package LINGYUN.Abp.Core
+```
+
+## Usage
+
+1. Add `[DependsOn(typeof(AbpCommonModule))]` to your module class.
+
+```csharp
+[DependsOn(typeof(AbpCommonModule))]
+public class YourModule : AbpModule
+{
+ // ...
+}
+```
+
+2. Use Dynamic Options Provider:
+
+```csharp
+public class YourOptionsProvider : DynamicOptionsProvider
+{
+ public YourOptionsProvider(IOptions options)
+ : base(options)
+ {
+ }
+}
+```
+
+## Links
+
+* [中文文档](./README.md)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.Core/README.md b/aspnet-core/framework/common/LINGYUN.Abp.Core/README.md
new file mode 100644
index 000000000..6afd486dd
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.Core/README.md
@@ -0,0 +1,46 @@
+# LINGYUN.Abp.Core
+
+## 介绍
+
+`LINGYUN.Abp.Core` 是一个基础核心模块,提供了一些通用的功能和扩展。
+
+## 功能
+
+* 动态选项提供者 (`DynamicOptionsProvider`)
+ * 简化需要在使用配置前自行调用接口的繁复步骤
+ * 支持延迟加载配置值
+ * 提供一次性运行机制,确保配置只被加载一次
+
+## 安装
+
+```bash
+dotnet add package LINGYUN.Abp.Core
+```
+
+## 使用
+
+1. 添加 `[DependsOn(typeof(AbpCommonModule))]` 到你的模块类上。
+
+```csharp
+[DependsOn(typeof(AbpCommonModule))]
+public class YourModule : AbpModule
+{
+ // ...
+}
+```
+
+2. 使用动态选项提供者:
+
+```csharp
+public class YourOptionsProvider : DynamicOptionsProvider
+{
+ public YourOptionsProvider(IOptions options)
+ : base(options)
+ {
+ }
+}
+```
+
+## 链接
+
+* [English document](./README.EN.md)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.ExceptionHandling.Emailing/README.EN.md b/aspnet-core/framework/common/LINGYUN.Abp.ExceptionHandling.Emailing/README.EN.md
new file mode 100644
index 000000000..996edb9c7
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.ExceptionHandling.Emailing/README.EN.md
@@ -0,0 +1,68 @@
+# LINGYUN.Abp.ExceptionHandling.Emailing
+
+An email notification type based on the ABP framework's **IExceptionSubscriber** interface.
+
+## Features
+
+* Supports exception email notifications
+* Supports custom email templates
+* Supports multilingual email content
+* Supports stack trace sending
+* Supports mapping between exception types and recipient mailboxes
+
+## Configuration and Usage
+
+Before use, you need to configure **AbpExceptionHandlingOptions** to define which exceptions need notifications,
+then configure **AbpEmailExceptionHandlingOptions** to define specific exception type notification methods.
+
+```csharp
+ [DependsOn(
+ typeof(AbpEmailingExceptionHandlingModule)
+ )]
+ public class YouProjectModule : AbpModule
+ {
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ // Customize exceptions to handle
+ Configure(options =>
+ {
+ // Add exception types that need to be handled
+ options.Handlers.Add();
+ });
+ // Customize exception types that need email notifications
+ Configure(options =>
+ {
+ // Whether to send stack trace information
+ options.SendStackTrace = true;
+ // Default receiving email for unspecified exception receivers
+ options.DefaultReceiveEmail = "colin.in@foxmail.com";
+ // Specify which email to send for a certain exception type
+ options.HandReceivedException("colin.in@foxmail.com");
+ });
+ }
+ }
+```
+
+## Configuration Options
+
+* `SendStackTrace`: Whether to include exception stack trace in the email
+* `DefaultTitle`: Default email title
+* `DefaultContentHeader`: Default email content header
+* `DefaultContentFooter`: Default email content footer
+* `DefaultReceiveEmail`: Default exception receiving email
+* `Handlers`: Dictionary mapping exception types to receiving emails
+
+## Localization Resources
+
+The module includes localization resources in the following languages:
+* en
+* zh-Hans
+
+## Related Links
+
+* [Base Exception Handling Module](../LINGYUN.Abp.ExceptionHandling/README.EN.md)
+* [Exception Real-time Notification Module](../../../modules/realtime-notifications/LINGYUN.Abp.ExceptionHandling.Notifications/README.EN.md)
+
+## More
+
+For more information and configuration examples, please refer to the [documentation](https://github.com/colinin/abp-next-admin).
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.ExceptionHandling.Emailing/README.md b/aspnet-core/framework/common/LINGYUN.Abp.ExceptionHandling.Emailing/README.md
index c870a6afe..5f448bdbf 100644
--- a/aspnet-core/framework/common/LINGYUN.Abp.ExceptionHandling.Emailing/README.md
+++ b/aspnet-core/framework/common/LINGYUN.Abp.ExceptionHandling.Emailing/README.md
@@ -2,13 +2,20 @@
基于abp框架底层的**IExceptionSubscriber**的邮件通知类型
+## 功能特性
+
+* 支持异常邮件通知
+* 支持自定义邮件模板
+* 支持多语言邮件内容
+* 支持堆栈信息发送
+* 支持异常类型与接收邮箱映射
+
## 配置使用
使用前需要配置**AbpExceptionHandlingOptions**定义需要发送通知的异常
然后配置**AbpEmailExceptionHandlingOptions**定义具体异常类型通知方式
```csharp
-
[DependsOn(
typeof(AbpEmailingExceptionHandlingModule)
)]
@@ -34,4 +41,28 @@
});
}
}
-```
\ No newline at end of file
+```
+
+## 配置项说明
+
+* `SendStackTrace`: 是否在邮件中包含异常堆栈信息
+* `DefaultTitle`: 默认邮件标题
+* `DefaultContentHeader`: 默认邮件内容头部
+* `DefaultContentFooter`: 默认邮件内容底部
+* `DefaultReceiveEmail`: 默认异常接收邮箱
+* `Handlers`: 异常类型与接收邮箱的映射字典
+
+## 本地化资源
+
+模块包含以下语言的本地化资源:
+* en
+* zh-Hans
+
+## 相关链接
+
+* [基础异常处理模块](../LINGYUN.Abp.ExceptionHandling/README.md)
+* [异常实时通知模块](../../../modules/realtime-notifications/LINGYUN.Abp.ExceptionHandling.Notifications/README.md)
+
+## 更多
+
+有关更多信息和配置示例,请参阅[文档](https://github.com/colinin/abp-next-admin)。
\ No newline at end of file
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.ExceptionHandling/README.EN.md b/aspnet-core/framework/common/LINGYUN.Abp.ExceptionHandling/README.EN.md
new file mode 100644
index 000000000..ae1887fd6
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.ExceptionHandling/README.EN.md
@@ -0,0 +1,46 @@
+# LINGYUN.Abp.ExceptionHandling
+
+A secondary extension based on the ABP framework's **IExceptionSubscriber** interface, used for customizing exception notification methods.
+
+## Features
+
+* Provides unified exception handling and notification mechanism
+* Supports custom exception handlers
+* Supports exception notification filtering
+* Supports integration with other notification modules (such as email, real-time notifications, etc.)
+
+## Configuration and Usage
+
+Just configure **AbpExceptionHandlingOptions** to define which exceptions need to send notifications.
+
+```csharp
+ [DependsOn(
+ typeof(AbpExceptionHandlingModule)
+ )]
+ public class YouProjectModule : AbpModule
+ {
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ // Customize exception handling
+ Configure(options =>
+ {
+ // Add exception types that need to be handled
+ options.Handlers.Add();
+ });
+ }
+ }
+```
+
+## Configuration Options
+
+* `Handlers`: List of exception handlers, used to define which exception types need to be handled
+* `HasNotifierError`: Check if an exception needs to send notifications
+
+## Extension Modules
+
+* [LINGYUN.Abp.ExceptionHandling.Emailing](../LINGYUN.Abp.ExceptionHandling.Emailing/README.EN.md): Exception email notification module
+* [LINGYUN.Abp.ExceptionHandling.Notifications](../../../modules/realtime-notifications/LINGYUN.Abp.ExceptionHandling.Notifications/README.EN.md): Exception real-time notification module
+
+## More
+
+For more information and configuration examples, please refer to the [documentation](https://github.com/colinin/abp-next-admin).
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.ExceptionHandling/README.md b/aspnet-core/framework/common/LINGYUN.Abp.ExceptionHandling/README.md
index fb0e77b7a..545130d1c 100644
--- a/aspnet-core/framework/common/LINGYUN.Abp.ExceptionHandling/README.md
+++ b/aspnet-core/framework/common/LINGYUN.Abp.ExceptionHandling/README.md
@@ -2,12 +2,18 @@
基于abp框架底层的**IExceptionSubscriber**实现二次扩展,用于自定义异常通知方式
+## 功能特性
+
+* 提供统一的异常处理和通知机制
+* 支持自定义异常处理程序
+* 支持异常通知筛选
+* 支持与其他通知模块集成(如邮件、实时通知等)
+
## 配置使用
使用前只需配置**AbpExceptionHandlingOptions**定义需要发送通知的异常即可。
```csharp
-
[DependsOn(
typeof(AbpExceptionHandlingModule)
)]
@@ -23,4 +29,18 @@
});
}
}
-```
\ No newline at end of file
+```
+
+## 配置项说明
+
+* `Handlers`: 异常处理程序列表,用于定义需要处理的异常类型
+* `HasNotifierError`: 检查异常是否需要发送通知
+
+## 扩展模块
+
+* [LINGYUN.Abp.ExceptionHandling.Emailing](../LINGYUN.Abp.ExceptionHandling.Emailing/README.md): 异常邮件通知模块
+* [LINGYUN.Abp.ExceptionHandling.Notifications](../../../modules/realtime-notifications/LINGYUN.Abp.ExceptionHandling.Notifications/README.md): 异常实时通知模块
+
+## 更多
+
+有关更多信息和配置示例,请参阅[文档](https://github.com/colinin/abp-next-admin)。
\ No newline at end of file
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.Features.LimitValidation.Redis.Client/README.EN.md b/aspnet-core/framework/common/LINGYUN.Abp.Features.LimitValidation.Redis.Client/README.EN.md
new file mode 100644
index 000000000..a882f9763
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.Features.LimitValidation.Redis.Client/README.EN.md
@@ -0,0 +1,49 @@
+# LINGYUN.Abp.Features.LimitValidation.Redis.Client
+
+Redis-based client feature limit validation component
+
+## Features
+
+* Inherits all functionality from LINGYUN.Abp.Features.LimitValidation.Redis
+* Specifically designed for client application feature limit validation
+* Support client-specific limitation policies
+
+## Configuration and Usage
+
+1. Add module dependency
+
+```csharp
+[DependsOn(typeof(AbpFeaturesValidationRedisClientModule))]
+public class YouProjectModule : AbpModule
+{
+ // other
+}
+```
+
+2. Configure Redis options (same as LINGYUN.Abp.Features.LimitValidation.Redis)
+
+```json
+{
+ "Features": {
+ "Validation": {
+ "Redis": {
+ "Configuration": "127.0.0.1",
+ "InstanceName": "YourInstanceName"
+ }
+ }
+ }
+}
+```
+
+## Usage Example
+
+```csharp
+// Limit a client feature to be called at most 1000 times per day
+[RequiresLimitFeature("YourClientFeature.DailyLimit", "YourClientFeature.Interval", LimitPolicy.Days)]
+public async Task YourClientMethod()
+{
+ // Client business logic
+}
+```
+
+[简体中文](./README.md) | [English](./README.EN.md)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.Features.LimitValidation.Redis.Client/README.md b/aspnet-core/framework/common/LINGYUN.Abp.Features.LimitValidation.Redis.Client/README.md
new file mode 100644
index 000000000..8e8d2f520
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.Features.LimitValidation.Redis.Client/README.md
@@ -0,0 +1,49 @@
+# LINGYUN.Abp.Features.LimitValidation.Redis.Client
+
+基于Redis的客户端功能限制验证组件
+
+## 功能特性
+
+* 继承自LINGYUN.Abp.Features.LimitValidation.Redis的所有功能
+* 专门针对客户端应用的功能限制验证
+* 支持客户端特定的限制策略
+
+## 配置使用
+
+1. 添加模块依赖
+
+```csharp
+[DependsOn(typeof(AbpFeaturesValidationRedisClientModule))]
+public class YouProjectModule : AbpModule
+{
+ // other
+}
+```
+
+2. 配置Redis选项(与LINGYUN.Abp.Features.LimitValidation.Redis相同)
+
+```json
+{
+ "Features": {
+ "Validation": {
+ "Redis": {
+ "Configuration": "127.0.0.1",
+ "InstanceName": "YourInstanceName"
+ }
+ }
+ }
+}
+```
+
+## 使用示例
+
+```csharp
+// 限制客户端某个功能每天最多调用1000次
+[RequiresLimitFeature("YourClientFeature.DailyLimit", "YourClientFeature.Interval", LimitPolicy.Days)]
+public async Task YourClientMethod()
+{
+ // 客户端业务逻辑
+}
+```
+
+[简体中文](./README.md) | [English](./README.EN.md)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.Features.LimitValidation.Redis/README.EN.md b/aspnet-core/framework/common/LINGYUN.Abp.Features.LimitValidation.Redis/README.EN.md
new file mode 100644
index 000000000..669bf36bd
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.Features.LimitValidation.Redis/README.EN.md
@@ -0,0 +1,56 @@
+# LINGYUN.Abp.Features.LimitValidation.Redis
+
+Redis-based feature limit validation component
+
+## Features
+
+* Use Redis to store and validate feature call count limits
+* Support Lua scripts for atomic operations
+* Support multiple limitation policies (minute, hour, day, week, month, year)
+* Support custom Redis configuration options
+
+## Configuration and Usage
+
+1. Add module dependency
+
+```csharp
+[DependsOn(typeof(AbpFeaturesValidationRedisModule))]
+public class YouProjectModule : AbpModule
+{
+ // other
+}
+```
+
+2. Configure Redis options
+
+```json
+{
+ "Features": {
+ "Validation": {
+ "Redis": {
+ "Configuration": "127.0.0.1",
+ "InstanceName": "YourInstanceName"
+ }
+ }
+ }
+}
+```
+
+## Configuration Options
+
+* Configuration: Redis connection string
+* InstanceName: Redis instance name (optional)
+* ConfigurationOptions: Redis configuration options (optional, for more detailed Redis configuration)
+
+## Usage Example
+
+```csharp
+// Limit a method to be called at most 100 times per minute
+[RequiresLimitFeature("YourFeature.MethodLimit", "YourFeature.Interval", LimitPolicy.Minute)]
+public async Task YourMethod()
+{
+ // Business logic
+}
+```
+
+[简体中文](./README.md) | [English](./README.EN.md)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.Features.LimitValidation.Redis/README.md b/aspnet-core/framework/common/LINGYUN.Abp.Features.LimitValidation.Redis/README.md
new file mode 100644
index 000000000..8287b5e16
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.Features.LimitValidation.Redis/README.md
@@ -0,0 +1,56 @@
+# LINGYUN.Abp.Features.LimitValidation.Redis
+
+基于Redis的功能限制验证组件
+
+## 功能特性
+
+* 使用Redis存储和验证功能调用次数限制
+* 支持Lua脚本进行原子性操作
+* 支持多种限制策略(分钟、小时、天、周、月、年)
+* 支持自定义Redis配置选项
+
+## 配置使用
+
+1. 添加模块依赖
+
+```csharp
+[DependsOn(typeof(AbpFeaturesValidationRedisModule))]
+public class YouProjectModule : AbpModule
+{
+ // other
+}
+```
+
+2. 配置Redis选项
+
+```json
+{
+ "Features": {
+ "Validation": {
+ "Redis": {
+ "Configuration": "127.0.0.1",
+ "InstanceName": "YourInstanceName"
+ }
+ }
+ }
+}
+```
+
+## 配置项说明
+
+* Configuration:Redis连接字符串
+* InstanceName:Redis实例名称(可选)
+* ConfigurationOptions:Redis配置选项(可选,用于更详细的Redis配置)
+
+## 使用示例
+
+```csharp
+// 限制某个方法每分钟最多调用100次
+[RequiresLimitFeature("YourFeature.MethodLimit", "YourFeature.Interval", LimitPolicy.Minute)]
+public async Task YourMethod()
+{
+ // 业务逻辑
+}
+```
+
+[简体中文](./README.md) | [English](./README.EN.md)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.Hangfire.Dashboard/README.EN.md b/aspnet-core/framework/common/LINGYUN.Abp.Hangfire.Dashboard/README.EN.md
new file mode 100644
index 000000000..269781fad
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.Hangfire.Dashboard/README.EN.md
@@ -0,0 +1,83 @@
+# LINGYUN.Abp.Hangfire.Dashboard
+
+English | [简体中文](README.md)
+
+## 1. Introduction
+
+`LINGYUN.Abp.Hangfire.Dashboard` is an ABP module for integrating the Hangfire dashboard, providing a user-friendly web interface for monitoring and managing Hangfire background jobs. This module supports permission control and authentication to ensure secure access to the dashboard.
+
+## 2. Features
+
+* Integration with Hangfire dashboard
+* Access control based on ABP permission system
+* Support for loading dashboard in iframe
+* Access token authentication support
+* Dashboard permission caching mechanism
+
+## 3. Installation
+
+```bash
+dotnet add package LINGYUN.Abp.Hangfire.Dashboard
+```
+
+## 4. Usage
+
+1. Add `AbpHangfireDashboardModule` to your module dependencies:
+
+```csharp
+[DependsOn(typeof(AbpHangfireDashboardModule))]
+public class YourModule : AbpModule
+{
+}
+```
+
+2. Configure middleware:
+
+```csharp
+public override void OnApplicationInitialization(ApplicationInitializationContext context)
+{
+ var app = context.GetApplicationBuilder();
+
+ // Add Hangfire authentication middleware
+ app.UseHangfireAuthorication();
+}
+```
+
+3. Configure dashboard options:
+
+```csharp
+public override void ConfigureServices(ServiceConfigurationContext context)
+{
+ PreConfigure(options =>
+ {
+ options.Authorization = new[]
+ {
+ new DashboardAuthorizationFilter("YourPermissionName")
+ };
+ });
+}
+```
+
+## 5. Authentication and Authorization
+
+### 5.1 Authentication Methods
+
+The module supports the following authentication methods:
+* Pass access token via URL parameter: `?access_token=your_token`
+* Pass access token via Cookie
+* Pass access token via Authorization Header
+
+### 5.2 Permission Caching
+
+Permission check results are cached for 5 minutes to improve performance.
+
+## 6. Dependencies
+
+* Volo.Abp.Authorization
+* Volo.Abp.Hangfire
+* Microsoft.Extensions.Caching.Memory
+
+## 7. Documentation and Resources
+
+* [Hangfire Official Documentation](https://docs.hangfire.io/)
+* [ABP Framework Documentation](https://docs.abp.io/)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.Hangfire.Dashboard/README.md b/aspnet-core/framework/common/LINGYUN.Abp.Hangfire.Dashboard/README.md
new file mode 100644
index 000000000..f188aa235
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.Hangfire.Dashboard/README.md
@@ -0,0 +1,83 @@
+# LINGYUN.Abp.Hangfire.Dashboard
+
+[English](README.EN.md) | 简体中文
+
+## 1. 介绍
+
+`LINGYUN.Abp.Hangfire.Dashboard` 是一个用于集成Hangfire仪表板的ABP模块,它提供了一个用户友好的Web界面来监控和管理Hangfire后台作业。该模块支持权限控制和认证,确保仪表板的安全访问。
+
+## 2. 功能特性
+
+* 集成Hangfire仪表板
+* 基于ABP权限系统的访问控制
+* 支持通过iframe加载仪表板
+* 支持访问令牌认证
+* 仪表板权限缓存机制
+
+## 3. 安装
+
+```bash
+dotnet add package LINGYUN.Abp.Hangfire.Dashboard
+```
+
+## 4. 使用方法
+
+1. 添加 `AbpHangfireDashboardModule` 到模块依赖中:
+
+```csharp
+[DependsOn(typeof(AbpHangfireDashboardModule))]
+public class YourModule : AbpModule
+{
+}
+```
+
+2. 配置中间件:
+
+```csharp
+public override void OnApplicationInitialization(ApplicationInitializationContext context)
+{
+ var app = context.GetApplicationBuilder();
+
+ // 添加Hangfire认证中间件
+ app.UseHangfireAuthorication();
+}
+```
+
+3. 配置仪表板选项:
+
+```csharp
+public override void ConfigureServices(ServiceConfigurationContext context)
+{
+ PreConfigure(options =>
+ {
+ options.Authorization = new[]
+ {
+ new DashboardAuthorizationFilter("YourPermissionName")
+ };
+ });
+}
+```
+
+## 5. 认证和授权
+
+### 5.1 认证方式
+
+模块支持以下认证方式:
+* 通过URL参数传递访问令牌: `?access_token=your_token`
+* 通过Cookie传递访问令牌
+* 通过Authorization Header传递访问令牌
+
+### 5.2 权限缓存
+
+权限检查结果会被缓存5分钟,以提高性能。
+
+## 6. 依赖项
+
+* Volo.Abp.Authorization
+* Volo.Abp.Hangfire
+* Microsoft.Extensions.Caching.Memory
+
+## 7. 文档和资源
+
+* [Hangfire官方文档](https://docs.hangfire.io/)
+* [ABP框架文档](https://docs.abp.io/)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.Hangfire.MySqlStorage/README.EN.md b/aspnet-core/framework/common/LINGYUN.Abp.Hangfire.MySqlStorage/README.EN.md
new file mode 100644
index 000000000..b793dfc5b
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.Hangfire.MySqlStorage/README.EN.md
@@ -0,0 +1,77 @@
+# LINGYUN.Abp.Hangfire.Storage.MySql
+
+English | [简体中文](README.md)
+
+## 1. Introduction
+
+`LINGYUN.Abp.Hangfire.Storage.MySql` is an ABP module for configuring Hangfire to use MySQL as storage. This module provides a simple configuration approach to easily use MySQL as Hangfire's persistent storage.
+
+## 2. Features
+
+* Simple MySQL storage configuration
+* Custom connection string support
+* MySQL storage options configuration
+* Seamless integration with ABP configuration system
+
+## 3. Installation
+
+```bash
+dotnet add package LINGYUN.Abp.Hangfire.Storage.MySql
+```
+
+## 4. Usage
+
+1. Add `AbpHangfireMySqlStorageModule` to your module dependencies:
+
+```csharp
+[DependsOn(typeof(AbpHangfireMySqlStorageModule))]
+public class YourModule : AbpModule
+{
+}
+```
+
+2. Configure connection string and storage options in appsettings.json:
+
+```json
+{
+ "Hangfire": {
+ "MySql": {
+ "Connection": "Server=localhost;Database=YourDb;Uid=root;Pwd=123456;",
+ "TablePrefix": "Hangfire",
+ "CommandBatchMaxTimeout": "00:05:00",
+ "SlidingInvisibilityTimeout": "00:05:00",
+ "QueuePollInterval": "00:00:00",
+ "UseRecommendedIsolationLevel": true,
+ "DisableGlobalLocks": true
+ }
+ }
+}
+```
+
+## 5. Configuration
+
+### 5.1 Connection String Configuration
+
+The module looks for connection string in the following order:
+1. `Hangfire:MySql:Connection`
+2. `ConnectionStrings:Default`
+
+### 5.2 Storage Options
+
+* `TablePrefix`: Table prefix for database tables
+* `CommandBatchMaxTimeout`: Maximum timeout for command batches
+* `SlidingInvisibilityTimeout`: Sliding invisibility timeout
+* `QueuePollInterval`: Queue polling interval
+* `UseRecommendedIsolationLevel`: Whether to use recommended isolation level
+* `DisableGlobalLocks`: Whether to disable global locks
+
+## 6. Dependencies
+
+* Volo.Abp.Hangfire
+* Hangfire.MySql.Core
+
+## 7. Documentation and Resources
+
+* [Hangfire Official Documentation](https://docs.hangfire.io/)
+* [Hangfire.MySql.Core Documentation](https://github.com/arnoldasgudas/Hangfire.MySqlStorage)
+* [ABP Framework Documentation](https://docs.abp.io/)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.Hangfire.MySqlStorage/README.md b/aspnet-core/framework/common/LINGYUN.Abp.Hangfire.MySqlStorage/README.md
new file mode 100644
index 000000000..31dc54ba4
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.Hangfire.MySqlStorage/README.md
@@ -0,0 +1,77 @@
+# LINGYUN.Abp.Hangfire.Storage.MySql
+
+[English](README.EN.md) | 简体中文
+
+## 1. 介绍
+
+`LINGYUN.Abp.Hangfire.Storage.MySql` 是一个用于配置Hangfire使用MySQL作为存储的ABP模块。该模块提供了简单的配置方式,让你能够轻松地将MySQL作为Hangfire的持久化存储。
+
+## 2. 功能特性
+
+* 简单的MySQL存储配置
+* 支持自定义连接字符串
+* 支持MySQL存储选项配置
+* 与ABP配置系统无缝集成
+
+## 3. 安装
+
+```bash
+dotnet add package LINGYUN.Abp.Hangfire.Storage.MySql
+```
+
+## 4. 使用方法
+
+1. 添加 `AbpHangfireMySqlStorageModule` 到模块依赖中:
+
+```csharp
+[DependsOn(typeof(AbpHangfireMySqlStorageModule))]
+public class YourModule : AbpModule
+{
+}
+```
+
+2. 在appsettings.json中配置连接字符串和存储选项:
+
+```json
+{
+ "Hangfire": {
+ "MySql": {
+ "Connection": "Server=localhost;Database=YourDb;Uid=root;Pwd=123456;",
+ "TablePrefix": "Hangfire",
+ "CommandBatchMaxTimeout": "00:05:00",
+ "SlidingInvisibilityTimeout": "00:05:00",
+ "QueuePollInterval": "00:00:00",
+ "UseRecommendedIsolationLevel": true,
+ "DisableGlobalLocks": true
+ }
+ }
+}
+```
+
+## 5. 配置项
+
+### 5.1 连接字符串配置
+
+模块会按以下顺序查找连接字符串:
+1. `Hangfire:MySql:Connection`
+2. `ConnectionStrings:Default`
+
+### 5.2 存储选项
+
+* `TablePrefix`: 数据表前缀
+* `CommandBatchMaxTimeout`: 命令批处理最大超时时间
+* `SlidingInvisibilityTimeout`: 滑动不可见超时时间
+* `QueuePollInterval`: 队列轮询间隔
+* `UseRecommendedIsolationLevel`: 是否使用推荐的隔离级别
+* `DisableGlobalLocks`: 是否禁用全局锁
+
+## 6. 依赖项
+
+* Volo.Abp.Hangfire
+* Hangfire.MySql.Core
+
+## 7. 文档和资源
+
+* [Hangfire官方文档](https://docs.hangfire.io/)
+* [Hangfire.MySql.Core文档](https://github.com/arnoldasgudas/Hangfire.MySqlStorage)
+* [ABP框架文档](https://docs.abp.io/)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.Hangfire.Storage.SqlServer/README.EN.md b/aspnet-core/framework/common/LINGYUN.Abp.Hangfire.Storage.SqlServer/README.EN.md
new file mode 100644
index 000000000..1187c9a80
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.Hangfire.Storage.SqlServer/README.EN.md
@@ -0,0 +1,75 @@
+# LINGYUN.Abp.Hangfire.Storage.SqlServer
+
+English | [简体中文](README.md)
+
+## 1. Introduction
+
+`LINGYUN.Abp.Hangfire.Storage.SqlServer` is an ABP module for configuring Hangfire to use SQL Server as storage. This module provides a simple configuration approach to easily use SQL Server as Hangfire's persistent storage.
+
+## 2. Features
+
+* Simple SQL Server storage configuration
+* Custom connection string support
+* SQL Server storage options configuration
+* Seamless integration with ABP configuration system
+
+## 3. Installation
+
+```bash
+dotnet add package LINGYUN.Abp.Hangfire.Storage.SqlServer
+```
+
+## 4. Usage
+
+1. Add `AbpHangfireSqlServerStorageModule` to your module dependencies:
+
+```csharp
+[DependsOn(typeof(AbpHangfireSqlServerStorageModule))]
+public class YourModule : AbpModule
+{
+}
+```
+
+2. Configure connection string and storage options in appsettings.json:
+
+```json
+{
+ "Hangfire": {
+ "SqlServer": {
+ "Connection": "Server=localhost;Database=YourDb;Trusted_Connection=True;",
+ "CommandBatchMaxTimeout": "00:05:00",
+ "SlidingInvisibilityTimeout": "00:05:00",
+ "QueuePollInterval": "00:00:00",
+ "UseRecommendedIsolationLevel": true,
+ "DisableGlobalLocks": true
+ }
+ }
+}
+```
+
+## 5. Configuration
+
+### 5.1 Connection String Configuration
+
+The module looks for connection string in the following order:
+1. `Hangfire:SqlServer:Connection`
+2. `ConnectionStrings:Default`
+
+### 5.2 Storage Options
+
+* `CommandBatchMaxTimeout`: Maximum timeout for command batches
+* `SlidingInvisibilityTimeout`: Sliding invisibility timeout
+* `QueuePollInterval`: Queue polling interval
+* `UseRecommendedIsolationLevel`: Whether to use recommended isolation level
+* `DisableGlobalLocks`: Whether to disable global locks
+
+## 6. Dependencies
+
+* Volo.Abp.Hangfire
+* Hangfire.SqlServer
+
+## 7. Documentation and Resources
+
+* [Hangfire Official Documentation](https://docs.hangfire.io/)
+* [Hangfire.SqlServer Documentation](https://docs.hangfire.io/en/latest/configuration/using-sql-server.html)
+* [ABP Framework Documentation](https://docs.abp.io/)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.Hangfire.Storage.SqlServer/README.md b/aspnet-core/framework/common/LINGYUN.Abp.Hangfire.Storage.SqlServer/README.md
new file mode 100644
index 000000000..076ede94e
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.Hangfire.Storage.SqlServer/README.md
@@ -0,0 +1,75 @@
+# LINGYUN.Abp.Hangfire.Storage.SqlServer
+
+[English](README.EN.md) | 简体中文
+
+## 1. 介绍
+
+`LINGYUN.Abp.Hangfire.Storage.SqlServer` 是一个用于配置Hangfire使用SQL Server作为存储的ABP模块。该模块提供了简单的配置方式,让你能够轻松地将SQL Server作为Hangfire的持久化存储。
+
+## 2. 功能特性
+
+* 简单的SQL Server存储配置
+* 支持自定义连接字符串
+* 支持SQL Server存储选项配置
+* 与ABP配置系统无缝集成
+
+## 3. 安装
+
+```bash
+dotnet add package LINGYUN.Abp.Hangfire.Storage.SqlServer
+```
+
+## 4. 使用方法
+
+1. 添加 `AbpHangfireSqlServerStorageModule` 到模块依赖中:
+
+```csharp
+[DependsOn(typeof(AbpHangfireSqlServerStorageModule))]
+public class YourModule : AbpModule
+{
+}
+```
+
+2. 在appsettings.json中配置连接字符串和存储选项:
+
+```json
+{
+ "Hangfire": {
+ "SqlServer": {
+ "Connection": "Server=localhost;Database=YourDb;Trusted_Connection=True;",
+ "CommandBatchMaxTimeout": "00:05:00",
+ "SlidingInvisibilityTimeout": "00:05:00",
+ "QueuePollInterval": "00:00:00",
+ "UseRecommendedIsolationLevel": true,
+ "DisableGlobalLocks": true
+ }
+ }
+}
+```
+
+## 5. 配置项
+
+### 5.1 连接字符串配置
+
+模块会按以下顺序查找连接字符串:
+1. `Hangfire:SqlServer:Connection`
+2. `ConnectionStrings:Default`
+
+### 5.2 存储选项
+
+* `CommandBatchMaxTimeout`: 命令批处理最大超时时间
+* `SlidingInvisibilityTimeout`: 滑动不可见超时时间
+* `QueuePollInterval`: 队列轮询间隔
+* `UseRecommendedIsolationLevel`: 是否使用推荐的隔离级别
+* `DisableGlobalLocks`: 是否禁用全局锁
+
+## 6. 依赖项
+
+* Volo.Abp.Hangfire
+* Hangfire.SqlServer
+
+## 7. 文档和资源
+
+* [Hangfire官方文档](https://docs.hangfire.io/)
+* [Hangfire.SqlServer文档](https://docs.hangfire.io/en/latest/configuration/using-sql-server.html)
+* [ABP框架文档](https://docs.abp.io/)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.Http.Client.Wrapper/README.EN.md b/aspnet-core/framework/common/LINGYUN.Abp.Http.Client.Wrapper/README.EN.md
new file mode 100644
index 000000000..5830516f3
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.Http.Client.Wrapper/README.EN.md
@@ -0,0 +1,45 @@
+# LINGYUN.Abp.Http.Client.Wrapper
+
+HTTP client wrapper module for automatically adding wrapper request headers in HTTP client requests.
+
+[简体中文](./README.md)
+
+## Features
+
+* Automatic addition of wrapper request headers
+* Integration with ABP HTTP client
+* Support for global wrapper configuration
+
+## Installation
+
+```bash
+dotnet add package LINGYUN.Abp.Http.Client.Wrapper
+```
+
+## Configuration
+
+```csharp
+[DependsOn(typeof(AbpHttpClientWrapperModule))]
+public class YouProjectModule : AbpModule
+{
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ Configure(options =>
+ {
+ // Enable wrapper
+ options.IsEnabled = true;
+ });
+ }
+}
+```
+
+## How It Works
+
+When the wrapper is enabled (`AbpWrapperOptions.IsEnabled = true`), the module automatically adds the `_AbpWrapResult` header to all HTTP client requests.
+When the wrapper is disabled (`AbpWrapperOptions.IsEnabled = false`), the module automatically adds the `_AbpDontWrapResult` header to all HTTP client requests.
+
+This ensures that the HTTP client request results remain consistent with the server-side wrapper configuration.
+
+## Source Code
+
+[LINGYUN.Abp.Http.Client.Wrapper](https://github.com/colinin/abp-next-admin/tree/master/aspnet-core/framework/common/LINGYUN.Abp.Http.Client.Wrapper)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.Http.Client.Wrapper/README.md b/aspnet-core/framework/common/LINGYUN.Abp.Http.Client.Wrapper/README.md
new file mode 100644
index 000000000..4d8b8c220
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.Http.Client.Wrapper/README.md
@@ -0,0 +1,45 @@
+# LINGYUN.Abp.Http.Client.Wrapper
+
+HTTP客户端包装器模块,用于在HTTP客户端请求中自动添加包装器请求头。
+
+[English](./README.EN.md)
+
+## 功能特性
+
+* 自动添加包装器请求头
+* 与ABP HTTP客户端集成
+* 支持全局配置包装器开关
+
+## 安装
+
+```bash
+dotnet add package LINGYUN.Abp.Http.Client.Wrapper
+```
+
+## 配置使用
+
+```csharp
+[DependsOn(typeof(AbpHttpClientWrapperModule))]
+public class YouProjectModule : AbpModule
+{
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ Configure(options =>
+ {
+ // 启用包装器
+ options.IsEnabled = true;
+ });
+ }
+}
+```
+
+## 工作原理
+
+当启用包装器时(`AbpWrapperOptions.IsEnabled = true`),模块会自动为所有HTTP客户端请求添加 `_AbpWrapResult` 请求头。
+当禁用包装器时(`AbpWrapperOptions.IsEnabled = false`),模块会自动为所有HTTP客户端请求添加 `_AbpDontWrapResult` 请求头。
+
+这样可以确保HTTP客户端的请求结果与服务器端的包装配置保持一致。
+
+## 源码位置
+
+[LINGYUN.Abp.Http.Client.Wrapper](https://github.com/colinin/abp-next-admin/tree/master/aspnet-core/framework/common/LINGYUN.Abp.Http.Client.Wrapper)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.IP2Region/README.EN.md b/aspnet-core/framework/common/LINGYUN.Abp.IP2Region/README.EN.md
new file mode 100644
index 000000000..ad65a6fc7
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.IP2Region/README.EN.md
@@ -0,0 +1,106 @@
+# LINGYUN.Abp.IP2Region
+
+## Introduction
+
+`LINGYUN.Abp.IP2Region` is an ABP framework module based on IP2Region, providing IP address query functionality. This module integrates the IP2Region.Net library and provides convenient IP address query services.
+
+## Features
+
+* Provides IP address query service
+* Supports multiple caching strategies
+* Built-in IP database file
+* Supports ABP virtual file system
+
+## Installation
+
+```bash
+dotnet add package LINGYUN.Abp.IP2Region
+```
+
+## Usage
+
+1. Add `[DependsOn(typeof(AbpIP2RegionModule))]` to your module class.
+
+```csharp
+[DependsOn(typeof(AbpIP2RegionModule))]
+public class YourModule : AbpModule
+{
+ // ...
+}
+```
+
+2. Inject and use the IP query service:
+
+```csharp
+public class YourService
+{
+ private readonly ISearcher _searcher;
+
+ public YourService(ISearcher searcher)
+ {
+ _searcher = searcher;
+ }
+
+ public async Task SearchIpInfo(string ip)
+ {
+ return await _searcher.SearchAsync(ip);
+ }
+}
+```
+
+## IP2Region.Net Library Description
+
+### Installation
+
+Install the package with [NuGet](https://www.nuget.org/packages/IP2Region.Net)
+
+```bash
+Install-Package IP2Region.Net
+```
+
+### Usage
+
+```csharp
+using IP2Region.Net.Abstractions;
+using IP2Region.Net.XDB;
+
+ISearcher searcher = new Searcher(CachePolicy , "your xdb file path");
+```
+
+### Cache Policy Description
+| Cache Policy | Description | Thread Safe |
+|-------------------------|------------------------------------------------------------------------------------------------------------|-------------|
+| CachePolicy.Content | Cache the entire `xdb` data. | Yes |
+| CachePolicy.VectorIndex | Cache `vecotorIndex` to speed up queries and reduce system io pressure by reducing one fixed IO operation. | Yes |
+| CachePolicy.File | Completely file-based queries | Yes |
+
+### XDB File Description
+Generate using [maker](https://github.com/lionsoul2014/ip2region/tree/master/maker/csharp), or [download](https://github.com/lionsoul2014/ip2region/blob/master/data/ip2region.xdb) pre-generated xdb files
+
+## Performance
+
+``` ini
+BenchmarkDotNet=v0.13.2, OS=macOS 13.4.1 (c) (22F770820d) [Darwin 22.5.0]
+Apple M1, 1 CPU, 8 logical and 8 physical cores
+.NET SDK=7.0.306
+ [Host] : .NET 6.0.20 (6.0.2023.32017), Arm64 RyuJIT AdvSIMD
+ DefaultJob : .NET 6.0.20 (6.0.2023.32017), Arm64 RyuJIT AdvSIMD
+```
+
+| Method | Mean | Error | StdDev |
+|-------------------------|-----------:|---------:|---------:|
+| CachePolicy_Content | 155.7 ns | 0.46 ns | 0.39 ns |
+| CachePolicy_File | 2,186.8 ns | 34.27 ns | 32.06 ns |
+| CachePolicy_VectorIndex | 1,570.3 ns | 27.53 ns | 22.99 ns |
+
+## Contributing
+Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
+
+Please make sure to update tests as appropriate.
+
+## License
+[Apache License 2.0](https://github.com/lionsoul2014/ip2region/blob/master/LICENSE.md)
+
+## Links
+
+* [中文文档](./README.md)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.IP2Region/README.md b/aspnet-core/framework/common/LINGYUN.Abp.IP2Region/README.md
index 8f8c78c98..da3373d90 100644
--- a/aspnet-core/framework/common/LINGYUN.Abp.IP2Region/README.md
+++ b/aspnet-core/framework/common/LINGYUN.Abp.IP2Region/README.md
@@ -1,8 +1,56 @@
-# IP2Region.Net
+# LINGYUN.Abp.IP2Region
-.NET client library for IP2Region
+## 介绍
-## Installation
+`LINGYUN.Abp.IP2Region` 是一个基于IP2Region的ABP框架模块,提供IP地址查询功能。本模块集成了IP2Region.Net库,提供了便捷的IP地址查询服务。
+
+## 功能
+
+* 提供IP地址查询服务
+* 支持多种缓存策略
+* 内置IP数据库文件
+* 支持ABP虚拟文件系统
+
+## 安装
+
+```bash
+dotnet add package LINGYUN.Abp.IP2Region
+```
+
+## 使用
+
+1. 添加 `[DependsOn(typeof(AbpIP2RegionModule))]` 到你的模块类上。
+
+```csharp
+[DependsOn(typeof(AbpIP2RegionModule))]
+public class YourModule : AbpModule
+{
+ // ...
+}
+```
+
+2. 注入并使用IP查询服务:
+
+```csharp
+public class YourService
+{
+ private readonly ISearcher _searcher;
+
+ public YourService(ISearcher searcher)
+ {
+ _searcher = searcher;
+ }
+
+ public async Task SearchIpInfo(string ip)
+ {
+ return await _searcher.SearchAsync(ip);
+ }
+}
+```
+
+## IP2Region.Net 库说明
+
+### Installation
Install the package with [NuGet](https://www.nuget.org/packages/IP2Region.Net)
@@ -10,7 +58,7 @@ Install the package with [NuGet](https://www.nuget.org/packages/IP2Region.Net)
Install-Package IP2Region.Net
```
-## Usage
+### Usage
```csharp
using IP2Region.Net.Abstractions;
@@ -18,6 +66,7 @@ using IP2Region.Net.XDB;
ISearcher searcher = new Searcher(CachePolicy , "your xdb file path");
```
+
### Cache Policy Description
| Cache Policy | Description | Thread Safe |
|-------------------------|------------------------------------------------------------------------------------------------------------|-------------|
@@ -51,12 +100,14 @@ Apple M1, 1 CPU, 8 logical and 8 physical cores
| CachePolicy_File | 2,186.8 ns | 34.27 ns | 32.06 ns |
| CachePolicy_VectorIndex | 1,570.3 ns | 27.53 ns | 22.99 ns |
-
-
## Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
## License
-[Apache License 2.0](https://github.com/lionsoul2014/ip2region/blob/master/LICENSE.md)
\ No newline at end of file
+[Apache License 2.0](https://github.com/lionsoul2014/ip2region/blob/master/LICENSE.md)
+
+## 链接
+
+* [English document](./README.EN.md)
\ No newline at end of file
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.IdGenerator/README.EN.md b/aspnet-core/framework/common/LINGYUN.Abp.IdGenerator/README.EN.md
new file mode 100644
index 000000000..2f128734c
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.IdGenerator/README.EN.md
@@ -0,0 +1,73 @@
+# LINGYUN.Abp.IdGenerator
+
+## Introduction
+
+`LINGYUN.Abp.IdGenerator` is a distributed ID generator module that implements the Snowflake algorithm to generate distributed unique IDs.
+
+## Features
+
+* Snowflake Algorithm ID Generator (`SnowflakeIdGenerator`)
+ * Support for custom worker ID and datacenter ID
+ * Support for custom sequence bits
+ * Support for time rollback handling
+ * Provides unique ID generation in distributed environments
+
+## Configuration
+
+### SnowflakeIdOptions
+
+* `WorkerIdBits` (default: 5) - Number of bits for worker ID
+* `DatacenterIdBits` (default: 5) - Number of bits for datacenter ID
+* `Sequence` (default: 0) - Initial value for sequence
+* `SequenceBits` (default: 12) - Number of bits for sequence
+* `UsePreviousInTimeRollback` (default: true) - Whether to use previous timestamp when time rolls back
+* `WorkerId` - Worker ID, if not specified, gets from environment variable WORKERID or generates randomly
+* `DatacenterId` - Datacenter ID, if not specified, gets from environment variable DATACENTERID or generates randomly
+
+## Installation
+
+```bash
+dotnet add package LINGYUN.Abp.IdGenerator
+```
+
+## Usage
+
+1. Add `[DependsOn(typeof(AbpIdGeneratorModule))]` to your module class.
+
+```csharp
+[DependsOn(typeof(AbpIdGeneratorModule))]
+public class YourModule : AbpModule
+{
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ Configure(options =>
+ {
+ options.WorkerId = 1;
+ options.DatacenterId = 1;
+ });
+ }
+}
+```
+
+2. Inject and use the ID generator:
+
+```csharp
+public class YourService
+{
+ private readonly IDistributedIdGenerator _idGenerator;
+
+ public YourService(IDistributedIdGenerator idGenerator)
+ {
+ _idGenerator = idGenerator;
+ }
+
+ public long CreateId()
+ {
+ return _idGenerator.Create();
+ }
+}
+```
+
+## Links
+
+* [中文文档](./README.md)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.IdGenerator/README.md b/aspnet-core/framework/common/LINGYUN.Abp.IdGenerator/README.md
new file mode 100644
index 000000000..20f8d2e76
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.IdGenerator/README.md
@@ -0,0 +1,73 @@
+# LINGYUN.Abp.IdGenerator
+
+## 介绍
+
+`LINGYUN.Abp.IdGenerator` 是一个分布式ID生成器模块,主要实现了雪花算法(Snowflake)来生成分布式唯一ID。
+
+## 功能
+
+* 雪花算法ID生成器 (`SnowflakeIdGenerator`)
+ * 支持自定义工作机器ID和数据中心ID
+ * 支持自定义序列号位数
+ * 支持时间回退处理
+ * 提供分布式环境下的唯一ID生成
+
+## 配置项
+
+### SnowflakeIdOptions
+
+* `WorkerIdBits` (默认: 5) - 工作机器ID位数
+* `DatacenterIdBits` (默认: 5) - 数据中心ID位数
+* `Sequence` (默认: 0) - 序列号起始值
+* `SequenceBits` (默认: 12) - 序列号位数
+* `UsePreviousInTimeRollback` (默认: true) - 是否在时间回退时使用上一个时间戳
+* `WorkerId` - 工作机器ID,如未指定则从环境变量WORKERID获取或随机生成
+* `DatacenterId` - 数据中心ID,如未指定则从环境变量DATACENTERID获取或随机生成
+
+## 安装
+
+```bash
+dotnet add package LINGYUN.Abp.IdGenerator
+```
+
+## 使用
+
+1. 添加 `[DependsOn(typeof(AbpIdGeneratorModule))]` 到你的模块类上。
+
+```csharp
+[DependsOn(typeof(AbpIdGeneratorModule))]
+public class YourModule : AbpModule
+{
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ Configure(options =>
+ {
+ options.WorkerId = 1;
+ options.DatacenterId = 1;
+ });
+ }
+}
+```
+
+2. 注入并使用ID生成器:
+
+```csharp
+public class YourService
+{
+ private readonly IDistributedIdGenerator _idGenerator;
+
+ public YourService(IDistributedIdGenerator idGenerator)
+ {
+ _idGenerator = idGenerator;
+ }
+
+ public long CreateId()
+ {
+ return _idGenerator.Create();
+ }
+}
+```
+
+## 链接
+
+* [English document](./README.EN.md)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.Idempotent/README.EN.md b/aspnet-core/framework/common/LINGYUN.Abp.Idempotent/README.EN.md
new file mode 100644
index 000000000..cfee94d1a
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.Idempotent/README.EN.md
@@ -0,0 +1,98 @@
+# LINGYUN.Abp.Idempotent
+
+Interface idempotency check module for preventing duplicate submissions and ensuring interface call idempotency.
+
+## Features
+
+* Automatic idempotency checking
+* Support for custom idempotent key generation
+* Flexible timeout configuration
+* Distributed lock support
+* Multi-language error messages
+* Support for ignoring specific interfaces or methods
+
+## Installation
+
+```bash
+dotnet add package LINGYUN.Abp.Idempotent
+```
+
+## Configuration
+
+```csharp
+[DependsOn(typeof(AbpIdempotentModule))]
+public class YouProjectModule : AbpModule
+{
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ Configure(options =>
+ {
+ // Enable idempotency check globally
+ options.IsEnabled = true;
+ // Default 5-second timeout for each interface
+ options.DefaultTimeout = 5000;
+ // Idempotent token name, passed through HttpHeader
+ options.IdempotentTokenName = "X-With-Idempotent-Token";
+ // HTTP status code when idempotency check fails
+ options.HttpStatusCode = 429;
+ });
+ }
+}
+```
+
+## Configuration Options
+
+* `IsEnabled` - Whether to enable idempotency checking, default: false
+* `DefaultTimeout` - Default idempotency check timeout (milliseconds), default: 5000
+* `IdempotentTokenName` - HTTP header name for idempotency token, default: X-With-Idempotent-Token
+* `HttpStatusCode` - HTTP status code when idempotency check fails, default: 429 (Too Many Requests)
+
+## Usage Examples
+
+### 1. Basic Usage
+
+```csharp
+[Idempotent]
+public class OrderAppService : ApplicationService
+{
+ public async Task CreateAsync(CreateOrderDto input)
+ {
+ // Method will automatically perform idempotency check
+ return await _orderRepository.CreateAsync(input);
+ }
+}
+```
+
+### 2. Custom Idempotent Key
+
+```csharp
+[Idempotent(
+ iodempotentKey: "custom-key",
+ timeout: 10000,
+ keyMap: new[] { "orderId", "userId" })]
+public async Task UpdateAsync(UpdateOrderDto input)
+{
+ return await _orderRepository.UpdateAsync(input);
+}
+```
+
+### 3. Ignore Idempotency Check
+
+```csharp
+[IgnoreIdempotent]
+public async Task QueryAsync(string orderId)
+{
+ return await _orderRepository.GetAsync(orderId);
+}
+```
+
+## Important Notes
+
+1. By default, idempotency checking is enabled for all services inheriting from `ICreateAppService`, `IUpdateAppService`, and `IDeleteAppService`
+2. You can use the `[IgnoreIdempotent]` attribute to ignore idempotency checking for specific methods
+3. Idempotency checking is implemented based on distributed locks to ensure correctness in distributed environments
+4. It is recommended to enable idempotency checking on all interfaces that modify data
+
+## Links
+
+* [中文文档](./README.md)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.Idempotent/README.md b/aspnet-core/framework/common/LINGYUN.Abp.Idempotent/README.md
index 94bf862d4..1646fba3f 100644
--- a/aspnet-core/framework/common/LINGYUN.Abp.Idempotent/README.md
+++ b/aspnet-core/framework/common/LINGYUN.Abp.Idempotent/README.md
@@ -1,6 +1,21 @@
# LINGYUN.Abp.Idempotent
-接口幂等性检查模块
+接口幂等性检查模块,用于防止接口重复提交和确保接口调用的幂等性。
+
+## 功能
+
+* 自动幂等性检查
+* 支持自定义幂等键生成
+* 灵活的超时配置
+* 支持分布式锁
+* 支持多语言错误消息
+* 支持忽略特定接口或方法
+
+## 安装
+
+```bash
+dotnet add package LINGYUN.Abp.Idempotent
+```
## 配置使用
@@ -8,23 +23,76 @@
[DependsOn(typeof(AbpIdempotentModule))]
public class YouProjectModule : AbpModule
{
- public override void ConfigureServices(ServiceConfigurationContext context)
- {
- Configure(options =>
- {
- // 全局启用幂等检查
- options.IsEnabled = true;
- // 默认每个接口提供5秒超时
- options.DefaultTimeout = 5000;
- // 幂等token名称, 通过HttpHeader传递
- options.IdempotentTokenName = "X-With-Idempotent-Token";
- // 幂等校验失败时Http响应代码
- options.HttpStatusCode = 429;
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ Configure(options =>
+ {
+ // 全局启用幂等检查
+ options.IsEnabled = true;
+ // 默认每个接口提供5秒超时
+ options.DefaultTimeout = 5000;
+ // 幂等token名称, 通过HttpHeader传递
+ options.IdempotentTokenName = "X-With-Idempotent-Token";
+ // 幂等校验失败时Http响应代码
+ options.HttpStatusCode = 429;
});
- }
+ }
}
```
+
## 配置项说明
-## 其他
+* `IsEnabled` - 是否启用幂等检查,默认:false
+* `DefaultTimeout` - 默认幂等性检查超时时间(毫秒),默认:5000
+* `IdempotentTokenName` - 幂等性Token的HTTP头名称,默认:X-With-Idempotent-Token
+* `HttpStatusCode` - 幂等性检查失败时的HTTP状态码,默认:429 (Too Many Requests)
+
+## 使用示例
+
+### 1. 基本使用
+
+```csharp
+[Idempotent]
+public class OrderAppService : ApplicationService
+{
+ public async Task CreateAsync(CreateOrderDto input)
+ {
+ // 方法会自动进行幂等性检查
+ return await _orderRepository.CreateAsync(input);
+ }
+}
+```
+
+### 2. 自定义幂等键
+
+```csharp
+[Idempotent(
+ iodempotentKey: "custom-key",
+ timeout: 10000,
+ keyMap: new[] { "orderId", "userId" })]
+public async Task UpdateAsync(UpdateOrderDto input)
+{
+ return await _orderRepository.UpdateAsync(input);
+}
+```
+
+### 3. 忽略幂等性检查
+
+```csharp
+[IgnoreIdempotent]
+public async Task QueryAsync(string orderId)
+{
+ return await _orderRepository.GetAsync(orderId);
+}
+```
+
+## 注意事项
+
+1. 默认对所有继承自 `ICreateAppService`、`IUpdateAppService` 和 `IDeleteAppService` 的服务启用幂等性检查
+2. 可以通过 `[IgnoreIdempotent]` 特性来忽略特定方法的幂等性检查
+3. 幂等性检查基于分布式锁实现,确保在分布式环境中的正确性
+4. 建议在所有修改数据的接口上启用幂等性检查
+
+## 链接
+* [English document](./README.EN.md)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.Location.Baidu/README.EN.md b/aspnet-core/framework/common/LINGYUN.Abp.Location.Baidu/README.EN.md
new file mode 100644
index 000000000..2e59e5e26
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.Location.Baidu/README.EN.md
@@ -0,0 +1,137 @@
+# LINGYUN.Abp.Location.Baidu
+
+## Introduction
+
+`LINGYUN.Abp.Location.Baidu` is a location service implementation module based on Baidu Maps API, providing functionalities such as geocoding, reverse geocoding, IP location, and more.
+
+## Features
+
+* Geocoding: Convert structured addresses into latitude and longitude coordinates
+* Reverse Geocoding: Convert coordinates into structured addresses
+* IP Location: Get location information based on IP addresses
+* POI (Points of Interest) Information: Get information about nearby businesses, restaurants, and other points of interest
+* Road Information: Get information about nearby roads
+* Administrative Region Information: Get detailed administrative region hierarchy information
+
+## Installation
+
+```bash
+dotnet add package LINGYUN.Abp.Location.Baidu
+```
+
+## Configuration
+
+1. Add module dependency:
+
+```csharp
+[DependsOn(typeof(AbpBaiduLocationModule))]
+public class YourModule : AbpModule
+{
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ Configure(options =>
+ {
+ // Set Baidu Maps API key
+ options.AccessKey = "your-baidu-map-ak";
+ // Optional: Set security key (for sn verification)
+ options.SecurityKey = "your-baidu-map-sk";
+ // Optional: Set coordinate system type (default is bd09ll)
+ options.CoordType = "bd09ll";
+ // Optional: Set output format (default is json)
+ options.Output = "json";
+ });
+ }
+}
+```
+
+## Usage
+
+1. Inject and use the location resolution service:
+
+```csharp
+public class YourLocationService
+{
+ private readonly ILocationResolveProvider _locationProvider;
+
+ public YourLocationService(ILocationResolveProvider locationProvider)
+ {
+ _locationProvider = locationProvider;
+ }
+
+ // Geocoding: Convert address to coordinates
+ public async Task GeocodeAsync(string address)
+ {
+ // city parameter is optional, used to specify the city of the address
+ return await _locationProvider.GeocodeAsync(address, "Beijing");
+ }
+
+ // Reverse Geocoding: Convert coordinates to address
+ public async Task ReGeocodeAsync(double lat, double lng)
+ {
+ // radius parameter is optional, specifies search radius (in meters)
+ return await _locationProvider.ReGeocodeAsync(lat, lng, 1000);
+ }
+
+ // IP Geolocation
+ public async Task IPGeocodeAsync(string ipAddress)
+ {
+ return await _locationProvider.IPGeocodeAsync(ipAddress);
+ }
+}
+```
+
+## Response Data Description
+
+### Geocoding Response Data
+
+```json
+{
+ "location": {
+ "lat": 39.915119, // Latitude value
+ "lng": 116.403963 // Longitude value
+ },
+ "precise": 1, // Additional location info, precise match or not (1 for precise, 0 for not precise)
+ "confidence": 80, // Confidence level
+ "comprehension": 100, // Address understanding level
+ "level": "门址" // Address type
+}
+```
+
+### Reverse Geocoding Response Data
+
+```json
+{
+ "location": {
+ "lat": 39.915119, // Latitude value
+ "lng": 116.403963 // Longitude value
+ },
+ "formatted_address": "Dongchangan Street, Dongcheng District, Beijing", // Structured address
+ "business": "Tiananmen", // Business area information
+ "addressComponent": {
+ "country": "China", // Country
+ "province": "Beijing", // Province
+ "city": "Beijing", // City
+ "district": "Dongcheng District", // District
+ "street": "Dongchangan Street", // Street
+ "street_number": "1" // Street number
+ },
+ "pois": [ // Nearby POIs
+ {
+ "name": "Tiananmen", // POI name
+ "type": "Tourist Attraction", // POI type
+ "distance": "100" // Distance (meters)
+ }
+ ],
+ "roads": [ // Nearby roads
+ {
+ "name": "Dongchangan Street", // Road name
+ "distance": "50" // Distance (meters)
+ }
+ ]
+}
+```
+
+## More Information
+
+* [中文文档](./README.md)
+* [Baidu Maps Open Platform](https://lbsyun.baidu.com/)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.Location.Baidu/README.md b/aspnet-core/framework/common/LINGYUN.Abp.Location.Baidu/README.md
new file mode 100644
index 000000000..0fcc51411
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.Location.Baidu/README.md
@@ -0,0 +1,137 @@
+# LINGYUN.Abp.Location.Baidu
+
+## 介绍
+
+`LINGYUN.Abp.Location.Baidu` 是基于百度地图API的位置服务实现模块,提供了地理编码、反向地理编码、IP定位等功能。
+
+## 功能特性
+
+* 地理编码:将详细的结构化地址转换为对应的经纬度坐标
+* 反向地理编码:将经纬度坐标转换为对应的结构化地址
+* IP定位:根据IP地址获取位置信息
+* POI(兴趣点)信息:获取周边的商铺、餐厅等兴趣点信息
+* 道路信息:获取附近的道路信息
+* 行政区划信息:获取详细的行政区划层级信息
+
+## 安装
+
+```bash
+dotnet add package LINGYUN.Abp.Location.Baidu
+```
+
+## 配置
+
+1. 添加模块依赖:
+
+```csharp
+[DependsOn(typeof(AbpBaiduLocationModule))]
+public class YourModule : AbpModule
+{
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ Configure(options =>
+ {
+ // 设置百度地图API密钥
+ options.AccessKey = "your-baidu-map-ak";
+ // 可选:设置安全密钥(sn校验)
+ options.SecurityKey = "your-baidu-map-sk";
+ // 可选:设置坐标系类型(默认为bd09ll)
+ options.CoordType = "bd09ll";
+ // 可选:设置输出格式(默认为json)
+ options.Output = "json";
+ });
+ }
+}
+```
+
+## 使用方法
+
+1. 注入并使用位置解析服务:
+
+```csharp
+public class YourLocationService
+{
+ private readonly ILocationResolveProvider _locationProvider;
+
+ public YourLocationService(ILocationResolveProvider locationProvider)
+ {
+ _locationProvider = locationProvider;
+ }
+
+ // 地理编码:地址转坐标
+ public async Task GeocodeAsync(string address)
+ {
+ // city参数可选,用于指定地址所在城市
+ return await _locationProvider.GeocodeAsync(address, "北京市");
+ }
+
+ // 反向地理编码:坐标转地址
+ public async Task ReGeocodeAsync(double lat, double lng)
+ {
+ // radius参数可选,指定搜索半径(米)
+ return await _locationProvider.ReGeocodeAsync(lat, lng, 1000);
+ }
+
+ // IP地理位置解析
+ public async Task IPGeocodeAsync(string ipAddress)
+ {
+ return await _locationProvider.IPGeocodeAsync(ipAddress);
+ }
+}
+```
+
+## 返回数据说明
+
+### 地理编码返回数据
+
+```json
+{
+ "location": {
+ "lat": 39.915119, // 纬度值
+ "lng": 116.403963 // 经度值
+ },
+ "precise": 1, // 位置的附加信息,是否精确查找(1为精确,0为不精确)
+ "confidence": 80, // 可信度
+ "comprehension": 100, // 地址理解程度
+ "level": "门址" // 地址类型
+}
+```
+
+### 反向地理编码返回数据
+
+```json
+{
+ "location": {
+ "lat": 39.915119, // 纬度值
+ "lng": 116.403963 // 经度值
+ },
+ "formatted_address": "北京市东城区东长安街", // 结构化地址信息
+ "business": "天安门", // 商圈信息
+ "addressComponent": {
+ "country": "中国", // 国家
+ "province": "北京市", // 省份
+ "city": "北京市", // 城市
+ "district": "东城区", // 区县
+ "street": "东长安街", // 街道
+ "street_number": "1号" // 门牌号
+ },
+ "pois": [ // 周边POI信息
+ {
+ "name": "天安门", // POI名称
+ "type": "旅游景点", // POI类型
+ "distance": "100" // 距离(米)
+ }
+ ],
+ "roads": [ // 周边道路信息
+ {
+ "name": "东长安街", // 道路名称
+ "distance": "50" // 距离(米)
+ }
+ ]
+}
+```
+
+## 更多信息
+
+* [English Documentation](./README.EN.md)
+* [百度地图开放平台](https://lbsyun.baidu.com/)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.Location.Tencent/README.EN.md b/aspnet-core/framework/common/LINGYUN.Abp.Location.Tencent/README.EN.md
new file mode 100644
index 000000000..d05ee909e
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.Location.Tencent/README.EN.md
@@ -0,0 +1,144 @@
+# LINGYUN.Abp.Location.Tencent
+
+## Introduction
+
+`LINGYUN.Abp.Location.Tencent` is a location service implementation module based on Tencent Maps API, providing functionalities such as geocoding, reverse geocoding, IP location, and more.
+
+## Features
+
+* Geocoding: Convert structured addresses into latitude and longitude coordinates
+* Reverse Geocoding: Convert coordinates into structured addresses
+* IP Location: Get location information based on IP addresses
+* POI (Points of Interest) Information: Get information about nearby businesses, restaurants, and other points of interest
+* Administrative Region Information: Get detailed administrative region hierarchy information
+* Address Parsing: Intelligent address parsing supporting multiple formats
+
+## Installation
+
+```bash
+dotnet add package LINGYUN.Abp.Location.Tencent
+```
+
+## Configuration
+
+1. Add module dependency:
+
+```csharp
+[DependsOn(typeof(AbpTencentLocationModule))]
+public class YourModule : AbpModule
+{
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ Configure(options =>
+ {
+ // Set Tencent Maps API key
+ options.Key = "your-tencent-map-key";
+ // Optional: Set security key (for SK verification)
+ options.SecretKey = "your-tencent-map-sk";
+ });
+ }
+}
+```
+
+## Usage
+
+1. Inject and use the location resolution service:
+
+```csharp
+public class YourLocationService
+{
+ private readonly ILocationResolveProvider _locationProvider;
+
+ public YourLocationService(ILocationResolveProvider locationProvider)
+ {
+ _locationProvider = locationProvider;
+ }
+
+ // Geocoding: Convert address to coordinates
+ public async Task GeocodeAsync(string address)
+ {
+ // city parameter is optional, used to specify the city of the address
+ return await _locationProvider.GeocodeAsync(address, "Beijing");
+ }
+
+ // Reverse Geocoding: Convert coordinates to address
+ public async Task ReGeocodeAsync(double lat, double lng)
+ {
+ // radius parameter is optional, specifies search radius (in meters)
+ return await _locationProvider.ReGeocodeAsync(lat, lng, 1000);
+ }
+
+ // IP Geolocation
+ public async Task IPGeocodeAsync(string ipAddress)
+ {
+ return await _locationProvider.IPGeocodeAsync(ipAddress);
+ }
+}
+```
+
+## Response Data Description
+
+### Geocoding Response Data
+
+```json
+{
+ "location": {
+ "lat": 39.915119, // Latitude value
+ "lng": 116.403963 // Longitude value
+ },
+ "title": "Tiananmen", // Place name
+ "address": "Dongchangan Street, Dongcheng District, Beijing", // Address
+ "category": "Tourist Attraction", // Category
+ "adcode": "110101", // Administrative region code
+ "similarity": 0.8, // Similarity (0-1)
+ "reliability": 7, // Reliability (1-10)
+ "level": 11 // Address type
+}
+```
+
+### Reverse Geocoding Response Data
+
+```json
+{
+ "location": {
+ "lat": 39.915119, // Latitude value
+ "lng": 116.403963 // Longitude value
+ },
+ "address": "Dongchangan Street, Dongcheng District, Beijing", // Complete address
+ "formatted_addresses": {
+ "recommend": "Tiananmen, Dongcheng District", // Recommended address
+ "rough": "Dongcheng District, Beijing" // Rough address
+ },
+ "address_component": {
+ "nation": "China", // Country
+ "province": "Beijing", // Province
+ "city": "Beijing", // City
+ "district": "Dongcheng District", // District
+ "street": "Dongchangan Street", // Street
+ "street_number": "1" // Street number
+ },
+ "pois": [ // Nearby POIs
+ {
+ "title": "Tiananmen", // POI name
+ "address": "Dongchangan Street, Dongcheng District, Beijing", // POI address
+ "category": "Tourist Attraction", // POI type
+ "distance": 100, // Distance (meters)
+ "_distance": 100.0, // Distance (meters, float)
+ "tel": "", // Phone number
+ "ad_info": { // Administrative region info
+ "adcode": "110101", // Administrative region code
+ "name": "Dongcheng District", // Administrative region name
+ "location": { // Administrative region center point
+ "lat": 39.915119,
+ "lng": 116.403963
+ }
+ }
+ }
+ ]
+}
+```
+
+## More Information
+
+* [中文文档](./README.md)
+* [Tencent Location Service](https://lbs.qq.com/)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.Location.Tencent/README.md b/aspnet-core/framework/common/LINGYUN.Abp.Location.Tencent/README.md
new file mode 100644
index 000000000..384e1b4cd
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.Location.Tencent/README.md
@@ -0,0 +1,144 @@
+# LINGYUN.Abp.Location.Tencent
+
+## 介绍
+
+`LINGYUN.Abp.Location.Tencent` 是基于腾讯地图API的位置服务实现模块,提供了地理编码、反向地理编码、IP定位等功能。
+
+## 功能特性
+
+* 地理编码:将详细的结构化地址转换为对应的经纬度坐标
+* 反向地理编码:将经纬度坐标转换为对应的结构化地址
+* IP定位:根据IP地址获取位置信息
+* POI(兴趣点)信息:获取周边的商铺、餐厅等兴趣点信息
+* 行政区划信息:获取详细的行政区划层级信息
+* 地址解析:智能解析地址信息,支持多种格式
+
+## 安装
+
+```bash
+dotnet add package LINGYUN.Abp.Location.Tencent
+```
+
+## 配置
+
+1. 添加模块依赖:
+
+```csharp
+[DependsOn(typeof(AbpTencentLocationModule))]
+public class YourModule : AbpModule
+{
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ Configure(options =>
+ {
+ // 设置腾讯地图API密钥
+ options.Key = "your-tencent-map-key";
+ // 可选:设置安全密钥(SK校验)
+ options.SecretKey = "your-tencent-map-sk";
+ });
+ }
+}
+```
+
+## 使用方法
+
+1. 注入并使用位置解析服务:
+
+```csharp
+public class YourLocationService
+{
+ private readonly ILocationResolveProvider _locationProvider;
+
+ public YourLocationService(ILocationResolveProvider locationProvider)
+ {
+ _locationProvider = locationProvider;
+ }
+
+ // 地理编码:地址转坐标
+ public async Task GeocodeAsync(string address)
+ {
+ // city参数可选,用于指定地址所在城市
+ return await _locationProvider.GeocodeAsync(address, "北京市");
+ }
+
+ // 反向地理编码:坐标转地址
+ public async Task ReGeocodeAsync(double lat, double lng)
+ {
+ // radius参数可选,指定搜索半径(米)
+ return await _locationProvider.ReGeocodeAsync(lat, lng, 1000);
+ }
+
+ // IP地理位置解析
+ public async Task IPGeocodeAsync(string ipAddress)
+ {
+ return await _locationProvider.IPGeocodeAsync(ipAddress);
+ }
+}
+```
+
+## 返回数据说明
+
+### 地理编码返回数据
+
+```json
+{
+ "location": {
+ "lat": 39.915119, // 纬度值
+ "lng": 116.403963 // 经度值
+ },
+ "title": "天安门", // 地点名称
+ "address": "北京市东城区东长安街", // 地址
+ "category": "旅游景点", // 类别
+ "adcode": "110101", // 行政区划代码
+ "similarity": 0.8, // 相似度(0-1)
+ "reliability": 7, // 可信度(1-10)
+ "level": 11 // 地址类型
+}
+```
+
+### 反向地理编码返回数据
+
+```json
+{
+ "location": {
+ "lat": 39.915119, // 纬度值
+ "lng": 116.403963 // 经度值
+ },
+ "address": "北京市东城区东长安街", // 完整地址
+ "formatted_addresses": {
+ "recommend": "东城区天安门", // 推荐地址
+ "rough": "北京市东城区" // 粗略地址
+ },
+ "address_component": {
+ "nation": "中国", // 国家
+ "province": "北京市", // 省份
+ "city": "北京市", // 城市
+ "district": "东城区", // 区县
+ "street": "东长安街", // 街道
+ "street_number": "1号" // 门牌号
+ },
+ "pois": [ // 周边POI信息
+ {
+ "title": "天安门", // POI名称
+ "address": "北京市东城区东长安街", // POI地址
+ "category": "旅游景点", // POI类型
+ "distance": 100, // 距离(米)
+ "_distance": 100.0, // 距离(米,浮点数)
+ "tel": "", // 电话
+ "ad_info": { // 行政区划信息
+ "adcode": "110101", // 行政区划代码
+ "name": "东城区", // 行政区划名称
+ "location": { // 行政区划中心点
+ "lat": 39.915119,
+ "lng": 116.403963
+ }
+ }
+ }
+ ]
+}
+```
+
+## 更多信息
+
+* [English Documentation](./README.EN.md)
+* [腾讯位置服务](https://lbs.qq.com/)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.Location/README.EN.md b/aspnet-core/framework/common/LINGYUN.Abp.Location/README.EN.md
new file mode 100644
index 000000000..56fd2eee6
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.Location/README.EN.md
@@ -0,0 +1,151 @@
+# LINGYUN.Abp.Location
+
+## Introduction
+
+`LINGYUN.Abp.Location` is a location service foundation module that provides geographic location-related functionality, including geocoding (forward/reverse), distance calculation, and more.
+
+## Features
+
+* Geocoding and Reverse Geocoding
+* IP Geolocation Resolution
+* Location distance calculation (based on Google algorithm, error <0.2m)
+* Location offset calculation
+* Support for POI (Points of Interest) and road information
+* Extensible location resolution providers
+
+## Installation
+
+```bash
+dotnet add package LINGYUN.Abp.Location
+```
+
+## Usage
+
+1. Add module dependency:
+
+```csharp
+[DependsOn(typeof(AbpLocationModule))]
+public class YourModule : AbpModule
+{
+ // ...
+}
+```
+
+2. Inject and use the location resolution service:
+
+```csharp
+public class YourLocationService
+{
+ private readonly ILocationResolveProvider _locationProvider;
+
+ public YourLocationService(ILocationResolveProvider locationProvider)
+ {
+ _locationProvider = locationProvider;
+ }
+
+ // Geocoding: Convert address to coordinates
+ public async Task GeocodeAsync(string address)
+ {
+ return await _locationProvider.GeocodeAsync(address);
+ }
+
+ // Reverse Geocoding: Convert coordinates to address
+ public async Task ReGeocodeAsync(double lat, double lng)
+ {
+ return await _locationProvider.ReGeocodeAsync(lat, lng);
+ }
+
+ // IP Geolocation Resolution
+ public async Task IPGeocodeAsync(string ipAddress)
+ {
+ return await _locationProvider.IPGeocodeAsync(ipAddress);
+ }
+}
+```
+
+## Advanced Usage
+
+### 1. Distance Calculation
+
+```csharp
+// Create location objects
+var location1 = new Location { Latitude = 39.9042, Longitude = 116.4074 }; // Beijing
+var location2 = new Location { Latitude = 31.2304, Longitude = 121.4737 }; // Shanghai
+
+// Calculate distance between two points (in meters)
+double distance = location1.CalcDistance(location2);
+
+// Calculate location offset
+var offset = location1.CalcOffset(1000, 45); // Offset 1000 meters to the northeast
+```
+
+### 2. Calculate Location Offset Range
+
+```csharp
+var location = new Location { Latitude = 39.9042, Longitude = 116.4074 };
+// Calculate offset range for specified distance (meters)
+var position = Location.CalcOffsetDistance(location, 1000); // 1km range
+```
+
+### 3. Custom Location Resolution Provider
+
+```csharp
+public class CustomLocationProvider : ILocationResolveProvider
+{
+ public async Task IPGeocodeAsync(string ipAddress)
+ {
+ // Implement IP geolocation resolution
+ }
+
+ public async Task GeocodeAsync(string address, string city = null)
+ {
+ // Implement geocoding
+ }
+
+ public async Task ReGeocodeAsync(double lat, double lng, int radius = 50)
+ {
+ // Implement reverse geocoding
+ }
+}
+```
+
+## Custom Location Resolution Provider Implementation
+
+To implement a custom location resolution provider:
+
+1. Implement the `ILocationResolveProvider` interface:
+
+```csharp
+public class CustomLocationProvider : ILocationResolveProvider
+{
+ public async Task IPGeocodeAsync(string ipAddress)
+ {
+ // Implement IP geolocation resolution
+ }
+
+ public async Task GeocodeAsync(string address, string city = null)
+ {
+ // Implement geocoding
+ }
+
+ public async Task ReGeocodeAsync(double lat, double lng, int radius = 50)
+ {
+ // Implement reverse geocoding
+ }
+}
+```
+
+2. Register your implementation in your module:
+
+```csharp
+public override void ConfigureServices(ServiceConfigurationContext context)
+{
+ context.Services.AddTransient();
+}
+```
+
+## Links
+
+* [中文文档](./README.md)
+* [Baidu Maps Location Service](./LINGYUN.Abp.Location.Baidu/README.EN.md)
+* [Tencent Maps Location Service](./LINGYUN.Abp.Location.Tencent/README.EN.md)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.Location/README.md b/aspnet-core/framework/common/LINGYUN.Abp.Location/README.md
new file mode 100644
index 000000000..d5b587ee1
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.Location/README.md
@@ -0,0 +1,121 @@
+# LINGYUN.Abp.Location
+
+## 介绍
+
+`LINGYUN.Abp.Location` 是一个位置服务基础模块,提供了地理位置相关的功能,包括地理编码(正向/反向)、距离计算等功能。
+
+## 功能特性
+
+* 地理编码(Geocoding)和反向地理编码(Reverse Geocoding)
+* IP地理位置解析
+* 位置距离计算(基于Google算法,误差<0.2米)
+* 位置偏移量计算
+* 支持POI(兴趣点)和道路信息
+* 可扩展的位置解析提供程序
+
+## 安装
+
+```bash
+dotnet add package LINGYUN.Abp.Location
+```
+
+## 使用方法
+
+1. 添加模块依赖:
+
+```csharp
+[DependsOn(typeof(AbpLocationModule))]
+public class YourModule : AbpModule
+{
+ // ...
+}
+```
+
+2. 注入并使用位置解析服务:
+
+```csharp
+public class YourLocationService
+{
+ private readonly ILocationResolveProvider _locationProvider;
+
+ public YourLocationService(ILocationResolveProvider locationProvider)
+ {
+ _locationProvider = locationProvider;
+ }
+
+ // 地理编码:地址转坐标
+ public async Task GeocodeAsync(string address)
+ {
+ return await _locationProvider.GeocodeAsync(address);
+ }
+
+ // 反向地理编码:坐标转地址
+ public async Task ReGeocodeAsync(double lat, double lng)
+ {
+ return await _locationProvider.ReGeocodeAsync(lat, lng);
+ }
+
+ // IP地理位置解析
+ public async Task IPGeocodeAsync(string ipAddress)
+ {
+ return await _locationProvider.IPGeocodeAsync(ipAddress);
+ }
+}
+```
+
+## 位置计算
+
+模块提供了强大的位置计算功能:
+
+```csharp
+// 创建位置对象
+var location1 = new Location { Latitude = 39.9042, Longitude = 116.4074 }; // 北京
+var location2 = new Location { Latitude = 31.2304, Longitude = 121.4737 }; // 上海
+
+// 计算两点之间的距离(米)
+double distance = location1.CalcDistance(location2);
+
+// 计算位置的偏移
+var offset = location1.CalcOffset(1000, 45); // 向东北方向偏移1000米
+```
+
+## 自定义位置解析提供程序
+
+要实现自定义的位置解析提供程序,需要:
+
+1. 实现 `ILocationResolveProvider` 接口:
+
+```csharp
+public class CustomLocationProvider : ILocationResolveProvider
+{
+ public async Task IPGeocodeAsync(string ipAddress)
+ {
+ // 实现IP地理位置解析
+ }
+
+ public async Task GeocodeAsync(string address, string city = null)
+ {
+ // 实现地理编码
+ }
+
+ public async Task ReGeocodeAsync(double lat, double lng, int radius = 50)
+ {
+ // 实现反向地理编码
+ }
+}
+```
+
+2. 在模块中注册你的实现:
+
+```csharp
+public override void ConfigureServices(ServiceConfigurationContext context)
+{
+ context.Services.AddTransient();
+}
+```
+
+## 更多信息
+
+* [English Documentation](./README.EN.md)
+* [百度地图定位服务](./LINGYUN.Abp.Location.Baidu/README.md)
+* [腾讯地图定位服务](./LINGYUN.Abp.Location.Tencent/README.md)
diff --git a/aspnet-core/framework/common/LINGYUN.Abp.RealTime/README.EN.md b/aspnet-core/framework/common/LINGYUN.Abp.RealTime/README.EN.md
new file mode 100644
index 000000000..239c25779
--- /dev/null
+++ b/aspnet-core/framework/common/LINGYUN.Abp.RealTime/README.EN.md
@@ -0,0 +1,95 @@
+# LINGYUN.Abp.RealTime
+
+## Introduction
+
+`LINGYUN.Abp.RealTime` is a real-time communication foundation module that provides infrastructure for real-time message delivery. This module is mainly used for handling real-time notifications, messages, and event delivery.
+
+## Features
+
+* Real-time event delivery infrastructure
+* Support for localized string handling
+* Distributed event integration
+* Extensible event handling mechanism
+
+## Installation
+
+```bash
+dotnet add package LINGYUN.Abp.RealTime
+```
+
+## Usage
+
+1. Add `[DependsOn(typeof(AbpRealTimeModule))]` to your module class.
+
+```csharp
+[DependsOn(typeof(AbpRealTimeModule))]
+public class YourModule : AbpModule
+{
+ // ...
+}
+```
+
+2. Create real-time event data transfer object:
+
+```csharp
+public class YourRealTimeEto : RealTimeEto
+{
+ public YourRealTimeEto(YourData data)
+ : base(data)
+ {
+ }
+}
+```
+
+3. Use localized strings:
+
+```csharp
+public class LocalizedMessage
+{
+ private readonly LocalizableStringInfo _localizableString;
+
+ public LocalizedMessage()
+ {
+ _localizableString = new LocalizableStringInfo(
+ "YourResource",
+ "MessageKey",
+ new Dictionary