From ff83757ed2b0d3f0d3f37cd4e1872ce4f821d53c Mon Sep 17 00:00:00 2001 From: Berkan Sasmaz Date: Tue, 23 Mar 2021 18:08:42 +0300 Subject: [PATCH 01/72] Add missing localizations --- .../Admin/Localization/Resources/en.json | 12 ++++++++++-- .../Admin/Localization/Resources/tr.json | 12 ++++++++++-- .../Admin/Localization/Resources/zh-Hans.json | 10 +++++++++- .../Commercial/Localization/Resources/en.json | 2 +- .../Commercial/Localization/Resources/zh-Hans.json | 2 +- 5 files changed, 31 insertions(+), 7 deletions(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json index 36e164942c..8481580686 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json @@ -255,7 +255,7 @@ "ProjectDownloads": "Project Downloads", "ShowProjectDownloadsOfOrganization": "Project Downloads", "ShowAuditLogsOfOrganization": "Audit Logs", - "Enum:EntityChangeType:0": "Crated", + "Enum:EntityChangeType:0": "Created", "Enum:EntityChangeType:1": "Updated", "Enum:EntityChangeType:2": "Deleted", "TenantId": "Tenant ID", @@ -263,6 +263,14 @@ "EntityTypeFullName": "Entity type full name", "AuditLogsOf{0}Organization": "Audit logs of \"{0}\" organization", "Permission:EntityChange": "Entity Change", - "Permission:ProjectDownload": "Project Download" + "Permission:ProjectDownload": "Project Download", + "Permission:PaymentRequest": "Payment Request", + "CreatorEmailAddress": "Creator email address", + "EmailSendDate": "Email send date", + "PaymentRequestsOf{0}Organization": "Payment request of \"{0}\" organization", + "PaymentDetails": "Payment Details", + "PaymentProduct": "Payment Product", + "ProductName": "Product Name", + "Code": "Code" } } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json index acec74804e..270d5cbe94 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json @@ -204,7 +204,7 @@ "ProjectDownloads": "Proje İndirmeleri", "ShowProjectDownloadsOfOrganization": "Proje İndirmeleri", "ShowAuditLogsOfOrganization": "Denetim Günlükleri", - "Enum:EntityChangeType:0": "Crated", + "Enum:EntityChangeType:0": "Oluşturuldu", "Enum:EntityChangeType:1": "Güncellendi", "Enum:EntityChangeType:2": "Silindi", "TenantId": "Kiracı Kimliği", @@ -212,6 +212,14 @@ "EntityTypeFullName": "Varlık türü tam adı", "AuditLogsOf{0}Organization": "\"{0}\" kuruluşunun denetim günlükleri", "Permission:EntityChange": "Varlık Değişikliği", - "Permission:ProjectDownload": "Proje Indirme" + "Permission:ProjectDownload": "Proje İndirme", + "Permission:PaymentRequest": "Ödeme isteği", + "CreatorEmailAddress": "Oluşturan kişinin e-posta adresi", + "EmailSendDate": "E-posta gönderme tarihi", + "PaymentRequestsOf{0}Organization": "\"{0}\" kuruluşunun ödeme istekleri", + "PaymentDetails": "Ödeme Detayları", + "PaymentProduct": "Ödeme Ürünü", + "ProductName": "Ürün İsmi", + "Code": "Kod" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json index 83d51d35da..498e30cc06 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json @@ -247,6 +247,14 @@ "EntityTypeFullName": "实体类型全名", "AuditLogsOf{0}Organization": "\"{0}\" 组织的审核日志", "Permission:EntityChange": "实体变更", - "Permission:ProjectDownload": "项目下载" + "Permission:ProjectDownload": "项目下载", + "Permission:PaymentRequest": "支付请求", + "CreatorEmailAddress": "创作者的电子邮件地址", + "EmailSendDate": "电子邮件发送日期", + "PaymentRequestsOf{0}Organization": "\"{0}\" 组织的付款请求", + "PaymentDetails": "付款详情", + "PaymentProduct": "付款产品", + "ProductName": "产品名称", + "Code": "代码" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json index b03d57cee0..d528172873 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json @@ -131,7 +131,7 @@ "HowMayWeHelpYou": "How may we help you", "SendMessage": "Send Message", "Success": "Success", - "WeWillReplyYou.": "Your message is sent! We will reply you in a short time.", + "WeWillReplyYou": "Your message is sent! We will reply you in a short time.", "GoHome": "Go Home", "CreateLiveDemo": "Create Live Demo", "RegisterToTheNewsletter": "Register to the newsletter to get information on happenings about ABP.IO, like new releases.", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json index 0e1e61dba8..6881ab28a9 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json @@ -131,7 +131,7 @@ "HowMayWeHelpYou": "我们如何帮助你", "SendMessage": "发送消息", "Success": "成功", - "WeWillReplyYou.": "你的消息已经发送! 我们会在短时间内给你答复.", + "WeWillReplyYou": "你的消息已经发送! 我们会在短时间内给你答复.", "GoHome": "回到主页面", "CreateLiveDemo": "创建在线演示", "RegisterToTheNewsletter": "注册到时事简报以获取有关ABP.IO的消息,比如新发布的内容.", From 0d8b96383594e5c5d81dddbec6e39ba99d5ce2a4 Mon Sep 17 00:00:00 2001 From: Berkan Sasmaz Date: Tue, 23 Mar 2021 18:18:00 +0300 Subject: [PATCH 02/72] Delete unnecessary spaces --- .../AbpIoLocalization/Admin/Localization/Resources/en.json | 2 +- .../AbpIoLocalization/Admin/Localization/Resources/tr.json | 2 +- .../AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json index 8481580686..73fa29b447 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json @@ -267,7 +267,7 @@ "Permission:PaymentRequest": "Payment Request", "CreatorEmailAddress": "Creator email address", "EmailSendDate": "Email send date", - "PaymentRequestsOf{0}Organization": "Payment request of \"{0}\" organization", + "PaymentRequestsOf{0}Organization": "Payment request of \"{0}\" organization", "PaymentDetails": "Payment Details", "PaymentProduct": "Payment Product", "ProductName": "Product Name", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json index 270d5cbe94..c8f5dd073d 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json @@ -216,7 +216,7 @@ "Permission:PaymentRequest": "Ödeme isteği", "CreatorEmailAddress": "Oluşturan kişinin e-posta adresi", "EmailSendDate": "E-posta gönderme tarihi", - "PaymentRequestsOf{0}Organization": "\"{0}\" kuruluşunun ödeme istekleri", + "PaymentRequestsOf{0}Organization": "\"{0}\" kuruluşunun ödeme istekleri", "PaymentDetails": "Ödeme Detayları", "PaymentProduct": "Ödeme Ürünü", "ProductName": "Ürün İsmi", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json index 498e30cc06..fa09edb444 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json @@ -251,7 +251,7 @@ "Permission:PaymentRequest": "支付请求", "CreatorEmailAddress": "创作者的电子邮件地址", "EmailSendDate": "电子邮件发送日期", - "PaymentRequestsOf{0}Organization": "\"{0}\" 组织的付款请求", + "PaymentRequestsOf{0}Organization": "\"{0}\" 组织的付款请求", "PaymentDetails": "付款详情", "PaymentProduct": "付款产品", "ProductName": "产品名称", From 1577be76d059eab92fdadc55374bda633816e3a6 Mon Sep 17 00:00:00 2001 From: Berkan Sasmaz Date: Tue, 23 Mar 2021 21:35:22 +0300 Subject: [PATCH 03/72] Fix some grammar mistakes --- .../AbpIoLocalization/Admin/Localization/Resources/en.json | 2 +- .../Commercial/Localization/Resources/en.json | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json index 73fa29b447..ce4a41e50f 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json @@ -267,7 +267,7 @@ "Permission:PaymentRequest": "Payment Request", "CreatorEmailAddress": "Creator email address", "EmailSendDate": "Email send date", - "PaymentRequestsOf{0}Organization": "Payment request of \"{0}\" organization", + "PaymentRequestsOf{0}Organization": "Payment requests of \"{0}\" organization", "PaymentDetails": "Payment Details", "PaymentProduct": "Payment Product", "ProductName": "Product Name", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json index d528172873..c3c5f28db2 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json @@ -128,13 +128,13 @@ "YourFullName": "Your full name", "EmailField": "E-mail Address", "YourEmailAddress": "Your e-mail address", - "HowMayWeHelpYou": "How may we help you", + "HowMayWeHelpYou": "How may we help you?", "SendMessage": "Send Message", "Success": "Success", - "WeWillReplyYou": "Your message is sent! We will reply you in a short time.", + "WeWillReplyYou": "Your message has been sent! We will reply to you shortly.", "GoHome": "Go Home", "CreateLiveDemo": "Create Live Demo", - "RegisterToTheNewsletter": "Register to the newsletter to get information on happenings about ABP.IO, like new releases.", + "RegisterToTheNewsletter": "Register for the newsletter to receive information regarding ABP.IO, including new releases etc.", "EnterYourEmailOrLogin": "Enter your e-mail address to create your demo or Login using your existing account.", "ApplicationTemplate": "Application Template", "ApplicationTemplateExplanation": "Application startup template is used to create a new web application.", From 9911485c71a526ad1e8151ce9b977676e6b5252f Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Thu, 25 Mar 2021 12:31:45 +0300 Subject: [PATCH 04/72] Cli add-package: allow to use on solution file resolves https://github.com/abpframework/abp/issues/8188 --- .../Abp/Cli/Commands/AddPackageCommand.cs | 40 +++++----- .../ProjectNugetPackageAdder.cs | 77 ++++++++++++++----- .../SolutionModuleAdder.cs | 2 +- 3 files changed, 81 insertions(+), 38 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddPackageCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddPackageCommand.cs index 96740fa418..b2d407c00f 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddPackageCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddPackageCommand.cs @@ -1,5 +1,6 @@ using System; using System.IO; +using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.Extensions.Logging; @@ -39,6 +40,7 @@ namespace Volo.Abp.Cli.Commands var addSourceCodeToSolutionFile = withSourceCode && commandLineArgs.Options.ContainsKey("add-to-solution-file"); await ProjectNugetPackageAdder.AddAsync( + GetSolutionFile(commandLineArgs), GetProjectFile(commandLineArgs), commandLineArgs.Target, version, @@ -94,30 +96,24 @@ namespace Volo.Abp.Cli.Commands return providedProjectFile; } - var foundProjectFiles = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.csproj"); - if (foundProjectFiles.Length == 1) - { - return foundProjectFiles[0]; - } - - if (foundProjectFiles.Length == 0) - { - throw new CliUsageException("'abp add-package' command should be used inside a folder contaning a .csproj file!"); - } - - //foundProjectFiles.Length > 1 + return Directory.GetFiles(Directory.GetCurrentDirectory(), "*.csproj").FirstOrDefault(); + } - var sb = new StringBuilder("There are multiple project (.csproj) files in the current directory. Please specify one of the files below:"); + protected virtual string GetSolutionFile(CommandLineArgs commandLineArgs) + { + var providedSolutionFile = PathHelper.NormalizePath( + commandLineArgs.Options.GetOrNull( + Options.Solution.Short, + Options.Solution.Long + ) + ); - foreach (var foundProjectFile in foundProjectFiles) + if (!providedSolutionFile.IsNullOrWhiteSpace()) { - sb.AppendLine("* " + foundProjectFile); + return providedSolutionFile; } - sb.AppendLine("Example:"); - sb.AppendLine($"abp add-package {commandLineArgs.Target} -p {foundProjectFiles[0]}"); - - throw new CliUsageException(sb.ToString()); + return Directory.GetFiles(Directory.GetCurrentDirectory(), "*.sln").FirstOrDefault(); } public static class Options @@ -128,6 +124,12 @@ namespace Volo.Abp.Cli.Commands public const string Long = "project"; } + public static class Solution + { + public const string Short = "s"; + public const string Long = "solution"; + } + public static class Version { public const string Short = "v"; diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs index 8665a80bc3..8b08775c93 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs @@ -58,6 +58,7 @@ namespace Volo.Abp.Cli.ProjectModification } public async Task AddAsync( + string solutionFile, string projectFile, string packageName, string version = null, @@ -66,6 +67,7 @@ namespace Volo.Abp.Cli.ProjectModification bool addSourceCodeToSolutionFile = false) { await AddAsync( + solutionFile, projectFile, await FindNugetPackageInfoAsync(packageName), version, @@ -76,6 +78,7 @@ namespace Volo.Abp.Cli.ProjectModification } public async Task AddAsync( + string solutionFile, string projectFile, NugetPackageInfo package, string version = null, @@ -83,6 +86,23 @@ namespace Volo.Abp.Cli.ProjectModification bool withSourceCode = false, bool addSourceCodeToSolutionFile = false) { + if (projectFile == null) + { + if (solutionFile == null) + { + throw new CliUsageException("Couldn't find any project/solution."); + } + + projectFile = GetProjectFile(solutionFile, package); + + if (projectFile == null) + { + throw new CliUsageException("Couldn't find any project/solution."); + } + } + + solutionFile ??= FindSolutionFile(projectFile); + if (version == null) { version = GetAbpVersionOrNull(projectFile); @@ -92,17 +112,30 @@ namespace Volo.Abp.Cli.ProjectModification if (withSourceCode) { - await AddSourceCode(projectFile, package, version); - await ConvertPackageReferenceToProjectReference(projectFile, package); + await AddSourceCode(projectFile, solutionFile, package, version); + await ConvertPackageReferenceToProjectReference(projectFile, solutionFile, package); if (addSourceCodeToSolutionFile) { - await SolutionFileModifier.AddPackageToSolutionFileAsync(package, FindSolutionFile(projectFile)); + await SolutionFileModifier.AddPackageToSolutionFileAsync(package, solutionFile); } } } - private async Task ConvertPackageReferenceToProjectReference(string projectFile, NugetPackageInfo package) + private string GetProjectFile(string solutionFile, NugetPackageInfo package) + { + var projectFiles = Directory.GetFiles(Path.GetDirectoryName(solutionFile), "*.csproj", SearchOption.AllDirectories); + var isSolutionTiered = IsSolutionTiered(projectFiles); + + var projectFile = ProjectFinder.FindNuGetTargetProjectFile( + projectFiles, + isSolutionTiered && package.TieredTarget != NuGetPackageTarget.Undefined + ? package.TieredTarget + : package.Target); + return projectFile; + } + + protected virtual async Task ConvertPackageReferenceToProjectReference(string projectFile,string solutionFile, NugetPackageInfo package) { var content = File.ReadAllText(projectFile); var doc = new XmlDocument() {PreserveWhitespace = true}; @@ -117,7 +150,7 @@ namespace Volo.Abp.Cli.ProjectModification return; } - var downloadedProjectPath = FindRelativeFolderToDownloadPackage(projectFile, package); + var downloadedProjectPath = FindRelativeFolderToDownloadPackage(projectFile, solutionFile, package); var oldNodeIncludeValue = nodes[0]?.Attributes?["Include"]?.Value; if (package.Name == oldNodeIncludeValue) @@ -135,9 +168,9 @@ namespace Volo.Abp.Cli.ProjectModification File.WriteAllText(projectFile, doc.OuterXml); } - private async Task AddSourceCode(string projectFile, NugetPackageInfo package, string version = null) + protected virtual async Task AddSourceCode(string projectFile, string solutionFile, NugetPackageInfo package, string version = null) { - var targetFolder = FindFolderToDownloadPackage(projectFile, package); + var targetFolder = FindFolderToDownloadPackage(solutionFile, package); if (Directory.Exists(targetFolder)) { @@ -147,19 +180,19 @@ namespace Volo.Abp.Cli.ProjectModification await DownloadSourceCode(targetFolder, package, version); } - private string FindFolderToDownloadPackage(string projectFile, NugetPackageInfo package) + protected virtual string FindFolderToDownloadPackage(string solutionFile, NugetPackageInfo package) { - return Path.Combine(FindSolutionFolder(projectFile), "packages", package.Name); + return Path.Combine(Path.GetDirectoryName(solutionFile), "packages", package.Name); } - private string FindRelativeFolderToDownloadPackage(string projectFile, NugetPackageInfo package) + protected virtual string FindRelativeFolderToDownloadPackage(string projectFile, string solutionFile, NugetPackageInfo package) { - var folder = Path.Combine(FindSolutionFolder(projectFile), "packages", package.Name); + var folder = Path.Combine(Path.GetDirectoryName(solutionFile), "packages", package.Name); return new Uri(projectFile).MakeRelativeUri(new Uri(folder)).ToString().Replace("/", "\\"); } - private async Task DownloadSourceCode(string targetFolder, NugetPackageInfo package, string version = null) + protected virtual async Task DownloadSourceCode(string targetFolder, NugetPackageInfo package, string version = null) { await SourceCodeDownloadService.DownloadPackageAsync( package.Name, @@ -168,14 +201,14 @@ namespace Volo.Abp.Cli.ProjectModification ); } - private string FindSolutionFile(string projectFile) + protected virtual string FindSolutionFile(string projectFile) { var folder = FindSolutionFolder(projectFile); return Directory.GetFiles(folder, "*.sln", SearchOption.TopDirectoryOnly).FirstOrDefault(); } - private string FindSolutionFolder(string projectFile) + protected virtual string FindSolutionFolder(string projectFile) { var targetFolder = Path.GetDirectoryName(projectFile); @@ -199,7 +232,7 @@ namespace Volo.Abp.Cli.ProjectModification return targetFolder; } - private async Task AddAsPackageReference(string projectFile, NugetPackageInfo package, string version, + protected virtual async Task AddAsPackageReference(string projectFile, NugetPackageInfo package, string version, bool useDotnetCliToInstall) { var projectFileContent = File.ReadAllText(projectFile); @@ -250,7 +283,7 @@ namespace Volo.Abp.Cli.ProjectModification Logger.LogInformation("Successfully installed."); } - private Task AddUsingDotnetCli(NugetPackageInfo package, string version = null) + protected virtual Task AddUsingDotnetCli(NugetPackageInfo package, string version = null) { var versionOption = version == null ? "" : $" -v {version}"; @@ -259,7 +292,7 @@ namespace Volo.Abp.Cli.ProjectModification return Task.CompletedTask; } - private Task AddToCsprojManuallyAsync(string projectFile, NugetPackageInfo package, string version = null) + protected virtual Task AddToCsprojManuallyAsync(string projectFile, NugetPackageInfo package, string version = null) { var projectFileContent = File.ReadAllText(projectFile); var doc = new XmlDocument() {PreserveWhitespace = true}; @@ -301,7 +334,7 @@ namespace Volo.Abp.Cli.ProjectModification return Task.CompletedTask; } - private string GetAbpVersionOrNull(string projectFile) + protected virtual string GetAbpVersionOrNull(string projectFile) { var projectFileContent = File.ReadAllText(projectFile); @@ -345,5 +378,13 @@ namespace Volo.Abp.Cli.ProjectModification await BundleCommand.ExecuteAsync(args); } + + protected virtual bool IsSolutionTiered(string[] projectFiles) + { + return projectFiles.Select(ProjectFileNameHelper.GetAssemblyNameFromProjectPath) + .Any(p => p.EndsWith(".HttpApi.Host")) + && projectFiles.Select(ProjectFileNameHelper.GetAssemblyNameFromProjectPath) + .Any(p => p.EndsWith(".IdentityServer")); + } } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs index caf47e0a87..56f0bc5003 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs @@ -438,7 +438,7 @@ namespace Volo.Abp.Cli.ProjectModification continue; } - await ProjectNugetPackageAdder.AddAsync(targetProjectFile, nugetPackage, null, useDotnetCliToInstall); + await ProjectNugetPackageAdder.AddAsync(null, targetProjectFile, nugetPackage, null, useDotnetCliToInstall); } var mvcNpmPackages = module.NpmPackages?.Where(p => p.ApplicationType.HasFlag(NpmApplicationType.Mvc)) From c5b8f6ff2a7973fb874716678a297a5926e0ab24 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Thu, 25 Mar 2021 15:57:22 +0300 Subject: [PATCH 05/72] Cli add-module: remove incompatible packages --- .../ProjectModification/NuGetPackageInfo.cs | 6 +++- .../SolutionModuleAdder.cs | 35 +++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NuGetPackageInfo.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NuGetPackageInfo.cs index 6bd6297384..a3905b2006 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NuGetPackageInfo.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NuGetPackageInfo.cs @@ -9,5 +9,9 @@ public NuGetPackageTarget Target { get; set; } public NuGetPackageTarget TieredTarget { get; set; } + + public string MinVersion { get; set; } + + public string MaxVersion { get; set; } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs index caf47e0a87..d19587d198 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs @@ -7,6 +7,7 @@ using System.IO; using System.Linq; using System.Net; using System.Threading.Tasks; +using NuGet.Versioning; using Volo.Abp.Cli.Args; using Volo.Abp.Cli.Commands; using Volo.Abp.Cli.Commands.Services; @@ -91,6 +92,7 @@ namespace Volo.Abp.Cli.ProjectModification Check.NotNull(moduleName, nameof(moduleName)); var module = await GetModuleInfoAsync(moduleName, newTemplate, newProTemplate); + module = RemoveIncompatiblePackages(module, version); Logger.LogInformation( $"Installing module '{module.Name}' to the solution '{Path.GetFileNameWithoutExtension(solutionFile)}'"); @@ -131,6 +133,39 @@ namespace Volo.Abp.Cli.ProjectModification ModifyDbContext(projectFiles, module, skipDbMigrations); } + private ModuleWithMastersInfo RemoveIncompatiblePackages(ModuleWithMastersInfo module, string version) + { + module.NugetPackages.RemoveAll(np => IsPackageInCompatible(np, version)); + return module; + } + + private bool IsPackageInCompatible(NugetPackageInfo package, string version) + { + try + { + if (!string.IsNullOrWhiteSpace(package.MinVersion)) + { + if (SemanticVersion.Parse(package.MinVersion) > SemanticVersion.Parse(version)) + { + return true; + } + } + if (!string.IsNullOrWhiteSpace(package.MaxVersion)) + { + if (SemanticVersion.Parse(package.MaxVersion) < SemanticVersion.Parse(version)) + { + return true; + } + } + + return false; + } + catch (ArgumentException) + { + return false; + } + } + private async Task RunBundleForBlazorAsync(string[] projectFiles, ModuleWithMastersInfo module) { var blazorProject = projectFiles.FirstOrDefault(f => f.EndsWith(".Blazor.csproj")); From 89b5719e762f53bb0a9ea5b3d1d66ec08226fcc3 Mon Sep 17 00:00:00 2001 From: Ilkay Ilknur Date: Fri, 26 Mar 2021 11:46:57 +0300 Subject: [PATCH 06/72] set default value for the Visible property. --- .../src/Volo.Abp.BlazoriseUI/Components/EntityAction.razor.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/EntityAction.razor.cs b/framework/src/Volo.Abp.BlazoriseUI/Components/EntityAction.razor.cs index 822cca49d3..a7cf7b8752 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/EntityAction.razor.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/EntityAction.razor.cs @@ -10,7 +10,7 @@ namespace Volo.Abp.BlazoriseUI.Components public partial class EntityAction : ComponentBase { [Parameter] - public bool Visible { get; set; } + public bool Visible { get; set; } = true; internal bool HasPermission { get; set; } = true; From a589b265ae025b6d5399bb1912f839b298f89432 Mon Sep 17 00:00:00 2001 From: enisn Date: Fri, 26 Mar 2021 12:47:33 +0300 Subject: [PATCH 07/72] CmsKit - Fix wrong Tag type at MongoDbContext --- .../Volo/CmsKit/MongoDB/CmsKitMongoDbContext.cs | 2 +- .../Volo/CmsKit/MongoDB/ICmsKitMongoDbContext.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/CmsKitMongoDbContext.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/CmsKitMongoDbContext.cs index 7034b37f98..3878d0a907 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/CmsKitMongoDbContext.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/CmsKitMongoDbContext.cs @@ -9,7 +9,7 @@ using Volo.CmsKit.Ratings; using Volo.CmsKit.Reactions; using Volo.CmsKit.Tags; using Volo.CmsKit.Users; -using Tag = MongoDB.Driver.Tag; +using Tag = Volo.CmsKit.Tags.Tag; namespace Volo.CmsKit.MongoDB { diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/ICmsKitMongoDbContext.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/ICmsKitMongoDbContext.cs index 1dbbfc0f98..8f6e4625c0 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/ICmsKitMongoDbContext.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/ICmsKitMongoDbContext.cs @@ -9,7 +9,7 @@ using Volo.CmsKit.Ratings; using Volo.CmsKit.Reactions; using Volo.CmsKit.Tags; using Volo.CmsKit.Users; -using Tag = MongoDB.Driver.Tag; +using Tag = Volo.CmsKit.Tags.Tag; namespace Volo.CmsKit.MongoDB { From 29ec1aa4ad789675e4fe3bb6588c2bb85e19646b Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Fri, 26 Mar 2021 18:14:32 +0800 Subject: [PATCH 08/72] Add ConcurrentDictionary GetOrAdd extension methods --- .../Generic/AbpDictionaryExtensions.cs | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/framework/src/Volo.Abp.Core/System/Collections/Generic/AbpDictionaryExtensions.cs b/framework/src/Volo.Abp.Core/System/Collections/Generic/AbpDictionaryExtensions.cs index 2d2ae9d6dc..148b34fa90 100644 --- a/framework/src/Volo.Abp.Core/System/Collections/Generic/AbpDictionaryExtensions.cs +++ b/framework/src/Volo.Abp.Core/System/Collections/Generic/AbpDictionaryExtensions.cs @@ -67,7 +67,7 @@ namespace System.Collections.Generic { return dictionary.TryGetValue(key, out var obj) ? obj : default; } - + /// /// Gets a value from the dictionary with given key. Returns default value if can not find. /// @@ -100,7 +100,7 @@ namespace System.Collections.Generic return dictionary[key] = factory(key); } - + /// /// Gets a value from the dictionary with given key. Returns default value if can not find. /// @@ -114,5 +114,19 @@ namespace System.Collections.Generic { return dictionary.GetOrAdd(key, k => factory()); } + + /// + /// Gets a value from the concurrent dictionary with given key. Returns default value if can not find. + /// + /// Concurrent dictionary to check and get + /// Key to find the value + /// A factory method used to create the value if not found in the dictionary + /// Type of the key + /// Type of the value + /// Value if found, default if can not found. + public static TValue GetOrAdd(this ConcurrentDictionary dictionary, TKey key, Func factory) + { + return dictionary.GetOrAdd(key, k => factory()); + } } -} \ No newline at end of file +} From 35962bdcf38522022037bf6d7db8cc418e44ecc2 Mon Sep 17 00:00:00 2001 From: Ilkay Ilknur Date: Fri, 26 Mar 2021 13:27:30 +0300 Subject: [PATCH 09/72] update attribute message. --- .../src/Volo.Abp.BlazoriseUI/Components/EntityAction.razor.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/EntityAction.razor.cs b/framework/src/Volo.Abp.BlazoriseUI/Components/EntityAction.razor.cs index a7cf7b8752..3cd2192cf6 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/EntityAction.razor.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/EntityAction.razor.cs @@ -24,7 +24,7 @@ namespace Volo.Abp.BlazoriseUI.Components public EventCallback Clicked { get; set; } [Parameter] - [Obsolete("Use IsVisible to hide actions based on permissions. Check the permission yourself. It is more performant. This option might be removed in future versions.")] + [Obsolete("Use Visible to hide actions based on permissions. Check the permission yourself. It is more performant. This option might be removed in future versions.")] public string RequiredPolicy { get; set; } [Parameter] From 6c8d6ad0f146ab927f0d9e30c3937e7b9cd3c548 Mon Sep 17 00:00:00 2001 From: enisn Date: Fri, 26 Mar 2021 13:28:22 +0300 Subject: [PATCH 10/72] CmsKit - Use query with global filters --- .../Volo/CmsKit/MongoDB/Blogs/MongoBlogPostRepository.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogPostRepository.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogPostRepository.cs index b0dfb01ecd..2d43eb3fa5 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogPostRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogPostRepository.cs @@ -64,7 +64,8 @@ namespace Volo.CmsKit.MongoDB.Blogs { var token = GetCancellationToken(cancellationToken); var dbContext = await GetDbContextAsync(token); - var blogPostQueryable = dbContext.Collection().AsQueryable(); + var blogPostQueryable = await GetQueryableAsync(); + var usersQueryable = dbContext.Collection().AsQueryable(); var queryable = blogPostQueryable From 620bfe7a7f57d8942366014c816eec50acdf68ac Mon Sep 17 00:00:00 2001 From: Berkan Sasmaz Date: Fri, 26 Mar 2021 17:10:49 +0300 Subject: [PATCH 11/72] docs: use Visible instead of RequiredPolicy for Blazor --- docs/en/Tutorials/Part-5.md | 6 +++--- .../images/blazor-edit-book-action-2.png | Bin 55999 -> 97829 bytes .../appsettings.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/en/Tutorials/Part-5.md b/docs/en/Tutorials/Part-5.md index 213dd8821b..7ad9aed970 100644 --- a/docs/en/Tutorials/Part-5.md +++ b/docs/en/Tutorials/Part-5.md @@ -516,7 +516,7 @@ Wrap the *New Book* button by an `if` block as shown below: #### Hide the Edit/Delete Actions -`EntityAction` component defines `RequiredPolicy` attribute (parameter) to conditionally show the action based on the user permissions. +`EntityAction` component defines `Visible` attribute (parameter) to conditionally show the action. Update the `EntityActions` section as shown below: @@ -524,11 +524,11 @@ Update the `EntityActions` section as shown below: diff --git a/docs/en/Tutorials/images/blazor-edit-book-action-2.png b/docs/en/Tutorials/images/blazor-edit-book-action-2.png index 70856ab3252f39b3b5464b8fb8c147d5d3a62be8..c3e2b1e0e1c8acfe6b2e3948b2e34cf0b5acbd01 100644 GIT binary patch literal 97829 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 z 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%0AmSa`Bf8JOIw8UdFuP+9K+yu&ABo&XX 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≻Zx$-Zr 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 T>Ac7x;Lk%v^?M}>mQVi=2m+jR literal 55999 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 z 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 SOi%n9iM))8bfu)}r~eJi!*mA# diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/appsettings.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/appsettings.json index 7bd454bab3..af9470930b 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/appsettings.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/appsettings.json @@ -1,6 +1,6 @@ { "ConnectionStrings": { - "Default": "Server=(LocalDb)\\MSSQLLocalDB;Database=MyProjectName;Trusted_Connection=True" + "Default": "Server=localhost,1433;Database=MyProjectName;User=Sa;Password=Berkan8946.;" }, "IdentityServer": { "Clients": { From 54424a25f8fff99603c80858e66a8fd2708f3951 Mon Sep 17 00:00:00 2001 From: Berkan Sasmaz Date: Fri, 26 Mar 2021 17:14:32 +0300 Subject: [PATCH 12/72] Update appsettings.json --- .../src/MyCompanyName.MyProjectName.DbMigrator/appsettings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/appsettings.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/appsettings.json index af9470930b..7bd454bab3 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/appsettings.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/appsettings.json @@ -1,6 +1,6 @@ { "ConnectionStrings": { - "Default": "Server=localhost,1433;Database=MyProjectName;User=Sa;Password=Berkan8946.;" + "Default": "Server=(LocalDb)\\MSSQLLocalDB;Database=MyProjectName;Trusted_Connection=True" }, "IdentityServer": { "Clients": { From ad1576b032b33c9960ffeb6f0b9ce45737c001bf Mon Sep 17 00:00:00 2001 From: enisn Date: Fri, 26 Mar 2021 17:46:49 +0300 Subject: [PATCH 13/72] CmsKit - Remove unnecessarydebugger at updateModal.js --- .../src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Blogs/updateModal.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Blogs/updateModal.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Blogs/updateModal.js index 669a25ee8c..ac91dfe150 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Blogs/updateModal.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Blogs/updateModal.js @@ -2,7 +2,7 @@ $(function () { abp.modals.updateBlog = function () { var initModal = function (publicApi, args) { - debugger; + var $slug = $('#ViewModel_Slug'); $slug.on('change', function () { From a3dba76ddbf5456935056c2a3ab7797d1bad66a2 Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Fri, 26 Mar 2021 19:08:26 +0300 Subject: [PATCH 14/72] feat: improve page component api for ease of use --- .../components/page/src/page.component.html | 46 +++++++++---------- .../components/page/src/page.component.ts | 16 +++++-- .../setting-management.component.html | 2 +- 3 files changed, 36 insertions(+), 28 deletions(-) diff --git a/npm/ng-packs/packages/components/page/src/page.component.html b/npm/ng-packs/packages/components/page/src/page.component.html index ffb01a14bc..71715fd82e 100644 --- a/npm/ng-packs/packages/components/page/src/page.component.html +++ b/npm/ng-packs/packages/components/page/src/page.component.html @@ -1,41 +1,41 @@
- - - - + + - - - - + + - - - - + +
-
-

- {{ title }} -

-
+ +
+

+ {{ title }} +

+
+
-
- -
+ +
+ +
+
-
- -
+ +
+ +
+
diff --git a/npm/ng-packs/packages/components/page/src/page.component.ts b/npm/ng-packs/packages/components/page/src/page.component.ts index 3536dc0357..ff3c01892c 100644 --- a/npm/ng-packs/packages/components/page/src/page.component.ts +++ b/npm/ng-packs/packages/components/page/src/page.component.ts @@ -13,11 +13,19 @@ import { }) export class PageComponent { @Input() title: string; - @Input() record: any; - @Input() titleVisible = true; - @Input() breadcrumbVisible = true; - @Input() toolbarVisible = true; + toolbarVisible = false; + _toolbarData: any; + @Input() set toolbarData(val: any) { + this._toolbarData = val; + this.toolbarVisible = true; + } + + get toolbarData() { + return this._toolbarData; + } + + @Input('breadcrumb') breadcrumbVisible = true; pageParts = { title: PageParts.title, diff --git a/npm/ng-packs/packages/setting-management/src/lib/components/setting-management.component.html b/npm/ng-packs/packages/setting-management/src/lib/components/setting-management.component.html index 90b3fe9c9e..a1334e5f95 100644 --- a/npm/ng-packs/packages/setting-management/src/lib/components/setting-management.component.html +++ b/npm/ng-packs/packages/setting-management/src/lib/components/setting-management.component.html @@ -1,4 +1,4 @@ - +
From 0c5d1a13e1b6c9311e6609c8cd987355d6ced9e1 Mon Sep 17 00:00:00 2001 From: maliming Date: Sun, 28 Mar 2021 15:24:58 +0800 Subject: [PATCH 15/72] Upgrade nuget packages of framework and templates.. Resolve #8228 --- Directory.Build.props | 6 +++--- configureawait.props | 2 +- .../Volo.Abp.AspNetCore.Mvc.UI.csproj | 2 +- .../Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj | 2 +- .../Volo.Abp.AspNetCore.Serilog.csproj | 2 +- framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj | 4 ++-- .../Volo.Abp.BlobStoring.Aliyun.csproj | 2 +- .../Volo.Abp.BlobStoring.Aws.csproj | 4 ++-- .../Volo.Abp.BlobStoring.Azure.csproj | 2 +- framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.csproj | 6 +++--- framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj | 2 +- .../Volo.Abp.EventBus.Rebus/Volo.Abp.EventBus.Rebus.csproj | 4 ++-- .../Volo.Abp.FluentValidation.csproj | 2 +- .../Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj | 2 +- .../Abp/IdentityModel/IdentityModelAuthenticationService.cs | 2 +- framework/src/Volo.Abp.Json/Volo.Abp.Json.csproj | 2 +- framework/src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj | 2 +- framework/src/Volo.Abp.MailKit/Volo.Abp.MailKit.csproj | 2 +- framework/src/Volo.Abp.Minify/Volo.Abp.Minify.csproj | 2 +- framework/src/Volo.Abp.MongoDB/Volo.Abp.MongoDB.csproj | 2 +- framework/src/Volo.Abp.Quartz/Volo.Abp.Quartz.csproj | 6 +++--- .../src/Volo.Abp.Swashbuckle/Volo.Abp.Swashbuckle.csproj | 2 +- .../Volo.Abp.TextTemplating/Volo.Abp.TextTemplating.csproj | 2 +- framework/src/Volo.Abp.Timing/Volo.Abp.Timing.csproj | 2 +- .../Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj | 4 ++-- .../Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj | 2 +- .../Volo.Abp.AspNetCore.Serilog.Tests.csproj | 2 +- .../MyCompanyName.MyProjectName.Application.Tests.csproj | 2 +- .../MyCompanyName.MyProjectName.Domain.Tests.csproj | 2 +- ...mpanyName.MyProjectName.EntityFrameworkCore.Tests.csproj | 2 +- .../MyCompanyName.MyProjectName.MongoDB.Tests.csproj | 4 ++-- .../MyCompanyName.MyProjectName.TestBase.csproj | 4 ++-- .../MyCompanyName.MyProjectName.Web.Tests.csproj | 2 +- templates/module/aspnet-core/common.props | 2 +- .../MyCompanyName.MyProjectName.Application.Tests.csproj | 2 +- .../MyCompanyName.MyProjectName.Domain.Tests.csproj | 2 +- ...mpanyName.MyProjectName.EntityFrameworkCore.Tests.csproj | 2 +- .../MyCompanyName.MyProjectName.MongoDB.Tests.csproj | 4 ++-- .../MyCompanyName.MyProjectName.TestBase.csproj | 4 ++-- 39 files changed, 53 insertions(+), 53 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index d888f2a60a..6dd78ec400 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -5,13 +5,13 @@ 5.0.* - 16.8.3 + 16.9.1 4.2.2 - 4.0.1 + 4.0.3 2.4.1 @@ -23,7 +23,7 @@ 2.4.3 - 2.2.14 + 3.0.0 \ No newline at end of file diff --git a/configureawait.props b/configureawait.props index 791c3e2a57..be2705d3ba 100644 --- a/configureawait.props +++ b/configureawait.props @@ -1,7 +1,7 @@ - + All runtime; build; native; contentfiles; analyzers diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj index a379c8057d..704b51f6b6 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj index 81c4a3e7e6..fb5a3d3ae7 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj @@ -30,7 +30,7 @@ - + diff --git a/framework/src/Volo.Abp.AspNetCore.Serilog/Volo.Abp.AspNetCore.Serilog.csproj b/framework/src/Volo.Abp.AspNetCore.Serilog/Volo.Abp.AspNetCore.Serilog.csproj index 0015b4e237..f42418a107 100644 --- a/framework/src/Volo.Abp.AspNetCore.Serilog/Volo.Abp.AspNetCore.Serilog.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Serilog/Volo.Abp.AspNetCore.Serilog.csproj @@ -22,7 +22,7 @@ - + diff --git a/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj b/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj index a57ac74e62..cd3c6bd2fb 100644 --- a/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj +++ b/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj @@ -15,8 +15,8 @@ - - + + diff --git a/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo.Abp.BlobStoring.Aliyun.csproj b/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo.Abp.BlobStoring.Aliyun.csproj index 25c486d79f..e75ca9f362 100644 --- a/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo.Abp.BlobStoring.Aliyun.csproj +++ b/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo.Abp.BlobStoring.Aliyun.csproj @@ -16,7 +16,7 @@ - + diff --git a/framework/src/Volo.Abp.BlobStoring.Aws/Volo.Abp.BlobStoring.Aws.csproj b/framework/src/Volo.Abp.BlobStoring.Aws/Volo.Abp.BlobStoring.Aws.csproj index d36d2bfbf3..76692b5653 100644 --- a/framework/src/Volo.Abp.BlobStoring.Aws/Volo.Abp.BlobStoring.Aws.csproj +++ b/framework/src/Volo.Abp.BlobStoring.Aws/Volo.Abp.BlobStoring.Aws.csproj @@ -17,8 +17,8 @@ - - + + diff --git a/framework/src/Volo.Abp.BlobStoring.Azure/Volo.Abp.BlobStoring.Azure.csproj b/framework/src/Volo.Abp.BlobStoring.Azure/Volo.Abp.BlobStoring.Azure.csproj index 73a8116e46..3273ae33c8 100644 --- a/framework/src/Volo.Abp.BlobStoring.Azure/Volo.Abp.BlobStoring.Azure.csproj +++ b/framework/src/Volo.Abp.BlobStoring.Azure/Volo.Abp.BlobStoring.Azure.csproj @@ -16,7 +16,7 @@ - + diff --git a/framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.csproj b/framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.csproj index feb1c075d5..1b7603194a 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.csproj +++ b/framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.csproj @@ -13,12 +13,12 @@ - + - + - + diff --git a/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj b/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj index c91b14e67b..15b967b9e4 100644 --- a/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj +++ b/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj @@ -26,7 +26,7 @@ - + diff --git a/framework/src/Volo.Abp.EventBus.Rebus/Volo.Abp.EventBus.Rebus.csproj b/framework/src/Volo.Abp.EventBus.Rebus/Volo.Abp.EventBus.Rebus.csproj index 0a01911990..a1504caa8d 100644 --- a/framework/src/Volo.Abp.EventBus.Rebus/Volo.Abp.EventBus.Rebus.csproj +++ b/framework/src/Volo.Abp.EventBus.Rebus/Volo.Abp.EventBus.Rebus.csproj @@ -19,8 +19,8 @@ - - + + diff --git a/framework/src/Volo.Abp.FluentValidation/Volo.Abp.FluentValidation.csproj b/framework/src/Volo.Abp.FluentValidation/Volo.Abp.FluentValidation.csproj index 772774a77e..f42977cd75 100644 --- a/framework/src/Volo.Abp.FluentValidation/Volo.Abp.FluentValidation.csproj +++ b/framework/src/Volo.Abp.FluentValidation/Volo.Abp.FluentValidation.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj b/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj index 9b1a1c9caf..e835e24e99 100644 --- a/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj +++ b/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.IdentityModel/Volo/Abp/IdentityModel/IdentityModelAuthenticationService.cs b/framework/src/Volo.Abp.IdentityModel/Volo/Abp/IdentityModel/IdentityModelAuthenticationService.cs index 0fb4c32648..cc0b470a1e 100644 --- a/framework/src/Volo.Abp.IdentityModel/Volo/Abp/IdentityModel/IdentityModelAuthenticationService.cs +++ b/framework/src/Volo.Abp.IdentityModel/Volo/Abp/IdentityModel/IdentityModelAuthenticationService.cs @@ -232,7 +232,7 @@ namespace Volo.Abp.IdentityModel { foreach (var pair in configuration.Where(p => p.Key.StartsWith("[o]", StringComparison.OrdinalIgnoreCase))) { - request.Parameters[pair.Key] = pair.Value; + request.Parameters.Add(pair); } return Task.CompletedTask; diff --git a/framework/src/Volo.Abp.Json/Volo.Abp.Json.csproj b/framework/src/Volo.Abp.Json/Volo.Abp.Json.csproj index ef88ab752b..76cbe9f28f 100644 --- a/framework/src/Volo.Abp.Json/Volo.Abp.Json.csproj +++ b/framework/src/Volo.Abp.Json/Volo.Abp.Json.csproj @@ -17,7 +17,7 @@ - + diff --git a/framework/src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj b/framework/src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj index 4f8a94fe8e..b14caecacb 100644 --- a/framework/src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj +++ b/framework/src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj @@ -9,7 +9,7 @@ - + diff --git a/framework/src/Volo.Abp.MailKit/Volo.Abp.MailKit.csproj b/framework/src/Volo.Abp.MailKit/Volo.Abp.MailKit.csproj index edc3752d47..94c9411bc2 100644 --- a/framework/src/Volo.Abp.MailKit/Volo.Abp.MailKit.csproj +++ b/framework/src/Volo.Abp.MailKit/Volo.Abp.MailKit.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.Minify/Volo.Abp.Minify.csproj b/framework/src/Volo.Abp.Minify/Volo.Abp.Minify.csproj index 45302cfab3..6bb0997c87 100644 --- a/framework/src/Volo.Abp.Minify/Volo.Abp.Minify.csproj +++ b/framework/src/Volo.Abp.Minify/Volo.Abp.Minify.csproj @@ -19,7 +19,7 @@ - + diff --git a/framework/src/Volo.Abp.MongoDB/Volo.Abp.MongoDB.csproj b/framework/src/Volo.Abp.MongoDB/Volo.Abp.MongoDB.csproj index aa487ffc4e..1888ddf869 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo.Abp.MongoDB.csproj +++ b/framework/src/Volo.Abp.MongoDB/Volo.Abp.MongoDB.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.Quartz/Volo.Abp.Quartz.csproj b/framework/src/Volo.Abp.Quartz/Volo.Abp.Quartz.csproj index 0fcc4da9f2..3566c9fabb 100644 --- a/framework/src/Volo.Abp.Quartz/Volo.Abp.Quartz.csproj +++ b/framework/src/Volo.Abp.Quartz/Volo.Abp.Quartz.csproj @@ -15,9 +15,9 @@ - - - + + + diff --git a/framework/src/Volo.Abp.Swashbuckle/Volo.Abp.Swashbuckle.csproj b/framework/src/Volo.Abp.Swashbuckle/Volo.Abp.Swashbuckle.csproj index d2d0f0f13a..c7fa0a1d11 100644 --- a/framework/src/Volo.Abp.Swashbuckle/Volo.Abp.Swashbuckle.csproj +++ b/framework/src/Volo.Abp.Swashbuckle/Volo.Abp.Swashbuckle.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.TextTemplating/Volo.Abp.TextTemplating.csproj b/framework/src/Volo.Abp.TextTemplating/Volo.Abp.TextTemplating.csproj index af14f9e42e..506b086a88 100644 --- a/framework/src/Volo.Abp.TextTemplating/Volo.Abp.TextTemplating.csproj +++ b/framework/src/Volo.Abp.TextTemplating/Volo.Abp.TextTemplating.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.Timing/Volo.Abp.Timing.csproj b/framework/src/Volo.Abp.Timing/Volo.Abp.Timing.csproj index 20a4521445..30206bb255 100644 --- a/framework/src/Volo.Abp.Timing/Volo.Abp.Timing.csproj +++ b/framework/src/Volo.Abp.Timing/Volo.Abp.Timing.csproj @@ -25,7 +25,7 @@ - + diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj index 7fa17a9fe7..f47cb2fdaf 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj @@ -8,8 +8,8 @@ - - + + diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj index fb39407b4b..0504414e29 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj @@ -16,7 +16,7 @@ - + diff --git a/framework/test/Volo.Abp.AspNetCore.Serilog.Tests/Volo.Abp.AspNetCore.Serilog.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Serilog.Tests/Volo.Abp.AspNetCore.Serilog.Tests.csproj index 9c96018145..422adb0583 100644 --- a/framework/test/Volo.Abp.AspNetCore.Serilog.Tests/Volo.Abp.AspNetCore.Serilog.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Serilog.Tests/Volo.Abp.AspNetCore.Serilog.Tests.csproj @@ -10,7 +10,7 @@ - + diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.csproj index 1b92fbb738..bb38c32f74 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.csproj @@ -13,7 +13,7 @@ - + diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj index bc1f5389d4..914ca98873 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj @@ -12,7 +12,7 @@ - + diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj index b1cf8ab6e0..dcbb7fe3a6 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj @@ -14,7 +14,7 @@ - + diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj index 06e9ef3430..333f9dd2ea 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj @@ -13,8 +13,8 @@ - - + + diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj index 6e2e2a2071..6c125e3dcf 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj @@ -15,9 +15,9 @@ - + - + diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyCompanyName.MyProjectName.Web.Tests.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyCompanyName.MyProjectName.Web.Tests.csproj index e9f915231a..16b4cb357f 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyCompanyName.MyProjectName.Web.Tests.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyCompanyName.MyProjectName.Web.Tests.csproj @@ -14,7 +14,7 @@ - + diff --git a/templates/module/aspnet-core/common.props b/templates/module/aspnet-core/common.props index 1e88b23715..65d21e54cb 100644 --- a/templates/module/aspnet-core/common.props +++ b/templates/module/aspnet-core/common.props @@ -8,7 +8,7 @@ - + All runtime; build; native; contentfiles; analyzers diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.csproj index 29889c1888..bb28f75669 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.csproj @@ -10,7 +10,7 @@ - + diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj index b2818d0afd..803693448d 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj @@ -8,7 +8,7 @@ - + diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj index 265806176f..27fc557dfd 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj @@ -8,7 +8,7 @@ - + diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj index fb807fa2d1..069545e840 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj @@ -8,8 +8,8 @@ - - + + diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj index 8b8105cb05..621fee5a81 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj @@ -8,9 +8,9 @@ - + - + From 614789c9d731d2d80c9d42d18614d5fad77c342e Mon Sep 17 00:00:00 2001 From: Alper Ebicoglu Date: Sun, 28 Mar 2021 15:51:21 +0300 Subject: [PATCH 16/72] update WeWillReplyYou text --- .../AbpIoLocalization/Commercial/Localization/Resources/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json index ac69491385..7031fb04bc 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json @@ -131,7 +131,7 @@ "HowMayWeHelpYou": "How may we help you?", "SendMessage": "Send Message", "Success": "Success", - "WeWillReplyYou": "Your message has been sent! We will reply to you shortly.", + "WeWillReplyYou": "We received your message and will be in touch shortly.", "GoHome": "Go Home", "CreateLiveDemo": "Create Live Demo", "RegisterToTheNewsletter": "Register for the newsletter to receive information regarding ABP.IO, including new releases etc.", From 2bef2b610b043d1ee7bec6469dd671b3bfea4a2d Mon Sep 17 00:00:00 2001 From: Alper Ebicoglu Date: Sun, 28 Mar 2021 15:52:46 +0300 Subject: [PATCH 17/72] add thankyou --- .../Commercial/Localization/Resources/en.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json index 7031fb04bc..553c308802 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json @@ -287,6 +287,7 @@ "PrivateTicketEmailSupport": "Private ticket & email support", "BuyNow": "Buy Now", "PayViaAmexCard": "How can I pay via my AMEX card?", - "PayViaAmexCardDescription": "The default payment gateway 'Iyzico' may decline some AMEX credit cards due to the security measures. In this case, you can pay through the alternative payment gateway '2Checkout'." + "PayViaAmexCardDescription": "The default payment gateway 'Iyzico' may decline some AMEX credit cards due to the security measures. In this case, you can pay through the alternative payment gateway '2Checkout'.", + "ThankYou": "Thank you" } } From 40e50d78dcb2ff6340c57ee3d2c2fb3a1ea12df5 Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Mon, 29 Mar 2021 10:48:03 +0300 Subject: [PATCH 18/72] feat: rename toolbarData in page component --- npm/ng-packs/packages/components/page/src/page.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/npm/ng-packs/packages/components/page/src/page.component.ts b/npm/ng-packs/packages/components/page/src/page.component.ts index ff3c01892c..49e884fb2c 100644 --- a/npm/ng-packs/packages/components/page/src/page.component.ts +++ b/npm/ng-packs/packages/components/page/src/page.component.ts @@ -16,7 +16,7 @@ export class PageComponent { toolbarVisible = false; _toolbarData: any; - @Input() set toolbarData(val: any) { + @Input('toolbar') set toolbarData(val: any) { this._toolbarData = val; this.toolbarVisible = true; } From c4f172cc1a7e8bc6baa0e7a9fb6f65f57271f2ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Mon, 29 Mar 2021 10:57:16 +0300 Subject: [PATCH 19/72] Update POST.md --- .../2021-03-31 v4_3 Preview/POST.md | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md b/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md index 4ffeb34aee..3357c5ae5e 100644 --- a/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md +++ b/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md @@ -49,11 +49,30 @@ See the [ABP CLI documentation](https://docs.abp.io/en/abp/4.3/CLI) for all the ### CMS Kit -CMS Kit was a module we were working for the last couple of months. It is usable now and we are releasing the initial version with this release. +CMS (Content Management System) Kit was a module we were working for the last couple of months. It is usable now and we are releasing the initial version with this release. We are considering this module as pre-mature. It will be improved in the next versions. The goal to to provide a flexible and extensible CMS infrastructure to .NET community. It currently has the following features; + +* **Pages**: Used to create UI pages with a Markdown + WYSIWYG editor. Once you create a page, it becomes available via URL like `/pages/my-page-url`. +* **Blog**: A built-in blog system that supports multiple blogs with blog posts. +* **Comments**: Allows users to write comments under contents. It is used for blog posts. +* **Tags**: To add tag feature to any type of content/entity. It is used for blog posts. +* **Reactions**: Allows users to react to a content via emojis, like smile, upvote, downvote, etc. +* **Rating**: This component is used to rate a content by users. + +All features are separately usable. For example, you can create an image gallery and reuse the Comments and Tags features for the images. You can enable/disable features individually using the [Global Features System](https://docs.abp.io/en/abp/latest/global-features). + +> We will create a separate blog post for the CMS Kit module, so I keep this short for now. ### Blazor Server Side -TODO +We'd implemented Blazor WebAssembly before. With the version 4.3, we have the Blazor Server Side option too. All the current functionalities are available to the Blazor Server. You can select Blazor Server as the UI type while creating a new solution. + +Example: + +````bash +abp new Acme.BookStore -u blazor-server +```` + +If you write `blazor` as the UI type, it will create Blazor WebAssembly just as before. ### Blazor UI Module Extensibility From 9af87f36c3e7c7229577e248b63a144411c42f76 Mon Sep 17 00:00:00 2001 From: enisn Date: Mon, 29 Mar 2021 10:57:46 +0300 Subject: [PATCH 20/72] CmsKit - Add missing BlogsFeature property --- .../Volo/CmsKit/GlobalFeatures/GlobalCmsKitFeatures.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/GlobalCmsKitFeatures.cs b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/GlobalCmsKitFeatures.cs index adfe84228e..ed0b01e69f 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/GlobalCmsKitFeatures.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/GlobalCmsKitFeatures.cs @@ -10,7 +10,7 @@ namespace Volo.CmsKit.GlobalFeatures public ReactionsFeature Reactions => GetFeature(); public CommentsFeature Comments => GetFeature(); - + public MediaFeature Media => GetFeature(); public RatingsFeature Ratings => GetFeature(); @@ -19,6 +19,8 @@ namespace Volo.CmsKit.GlobalFeatures public PagesFeature Pages => GetFeature(); + public BlogsFeature Blogs => GetFeature(); + public CmsUserFeature User => GetFeature(); public GlobalCmsKitFeatures([NotNull] GlobalFeatureManager featureManager) From c941821881ebe329d572506359d964a60f1202e6 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Mon, 29 Mar 2021 16:02:23 +0800 Subject: [PATCH 21/72] Upgrade nuget packages of framework and templates --- configureawait.props | 2 +- .../Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj | 2 +- .../Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj | 2 +- .../Volo.Abp.AspNetCore.Serilog.Tests.csproj | 2 +- .../MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj | 4 ++-- .../MyCompanyName.MyProjectName.Blazor.Server.csproj | 2 +- .../MyCompanyName.MyProjectName.HttpApi.Host.csproj | 2 +- .../MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj | 2 +- .../MyCompanyName.MyProjectName.IdentityServer.csproj | 2 +- .../MyCompanyName.MyProjectName.Web.Host.csproj | 2 +- .../MyCompanyName.MyProjectName.Web.csproj | 2 +- .../MyCompanyName.MyProjectName.TestBase.csproj | 2 +- .../MyCompanyName.MyProjectName.Web.Tests.csproj | 2 +- templates/module/aspnet-core/common.props | 2 +- .../MyCompanyName.MyProjectName.HttpApi.Host.csproj | 4 ++-- .../MyCompanyName.MyProjectName.IdentityServer.csproj | 2 +- .../MyCompanyName.MyProjectName.Web.Host.csproj | 2 +- .../MyCompanyName.MyProjectName.Web.Unified.csproj | 2 +- .../MyCompanyName.MyProjectName.TestBase.csproj | 2 +- 19 files changed, 21 insertions(+), 21 deletions(-) diff --git a/configureawait.props b/configureawait.props index be2705d3ba..8b0b7f5933 100644 --- a/configureawait.props +++ b/configureawait.props @@ -1,7 +1,7 @@ - + All runtime; build; native; contentfiles; analyzers diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj index f47cb2fdaf..b0cd1e1aeb 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj @@ -9,7 +9,7 @@ - + diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj index 0504414e29..b2515b431e 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj @@ -16,7 +16,7 @@ - + diff --git a/framework/test/Volo.Abp.AspNetCore.Serilog.Tests/Volo.Abp.AspNetCore.Serilog.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Serilog.Tests/Volo.Abp.AspNetCore.Serilog.Tests.csproj index 422adb0583..728ea04844 100644 --- a/framework/test/Volo.Abp.AspNetCore.Serilog.Tests/Volo.Abp.AspNetCore.Serilog.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Serilog.Tests/Volo.Abp.AspNetCore.Serilog.Tests.csproj @@ -10,7 +10,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj index e111a8063d..07cb6303b4 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj @@ -14,7 +14,7 @@ - + @@ -52,4 +52,4 @@ - \ No newline at end of file + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj index 6c8012578e..f443b9dcf2 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj @@ -14,7 +14,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj index 3f2e3a1bd0..ec64f8b082 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj @@ -10,7 +10,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj index 7483325232..b24dc50c4e 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj @@ -10,7 +10,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj index 7c512b79db..56210d82ff 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj @@ -32,7 +32,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj index 147e21ad18..115c35de50 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj @@ -16,7 +16,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj index a0f3449eab..56ec66098c 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj @@ -32,7 +32,7 @@ - + diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj index 6c125e3dcf..dc97795afc 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj @@ -20,7 +20,7 @@ - + diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyCompanyName.MyProjectName.Web.Tests.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyCompanyName.MyProjectName.Web.Tests.csproj index 16b4cb357f..f4e2263bae 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyCompanyName.MyProjectName.Web.Tests.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyCompanyName.MyProjectName.Web.Tests.csproj @@ -15,7 +15,7 @@ - + diff --git a/templates/module/aspnet-core/common.props b/templates/module/aspnet-core/common.props index 65d21e54cb..7f8f815100 100644 --- a/templates/module/aspnet-core/common.props +++ b/templates/module/aspnet-core/common.props @@ -8,7 +8,7 @@ - + All runtime; build; native; contentfiles; analyzers diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj index 1705d64e93..ee2b36f016 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj @@ -10,9 +10,9 @@ - + - + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj index 11905455a4..84a1d50169 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj @@ -8,7 +8,7 @@ - + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj index 2476a0ff07..e4389e0bda 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj @@ -10,7 +10,7 @@ - + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj index 8124338091..ab9d27e450 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj @@ -10,7 +10,7 @@ - + all diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj index 621fee5a81..faf15c5a1f 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj @@ -13,7 +13,7 @@ - + From a7ab6a582dac35cabb66ebc2818f20a3771ba949 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Mon, 29 Mar 2021 12:57:23 +0300 Subject: [PATCH 22/72] Update POST.md --- docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md b/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md index 3357c5ae5e..e22ca308c7 100644 --- a/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md +++ b/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md @@ -64,15 +64,17 @@ All features are separately usable. For example, you can create an image gallery ### Blazor Server Side -We'd implemented Blazor WebAssembly before. With the version 4.3, we have the Blazor Server Side option too. All the current functionalities are available to the Blazor Server. You can select Blazor Server as the UI type while creating a new solution. +We'd implemented Blazor WebAssembly before. With the version 4.3, we have the Blazor Server Side option too. All the current functionalities are available to the Blazor Server. -Example: +You can select Blazor Server as the UI type while creating a new solution. + +**Example:** ````bash abp new Acme.BookStore -u blazor-server ```` -If you write `blazor` as the UI type, it will create Blazor WebAssembly just as before. +If you write `blazor` as the UI type, it will create Blazor WebAssembly just as before. You can also select the Blazor Server on the [get started](https://abp.io/get-started) page. ### Blazor UI Module Extensibility From a4204b350161983362378f6a19d5c5d2262495b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Mon, 29 Mar 2021 12:57:38 +0300 Subject: [PATCH 23/72] Should increment the sequence. --- .../Themes/Basic/NavToolbar.razor.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/NavToolbar.razor.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/NavToolbar.razor.cs index 23f920eb71..4040193b8b 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/NavToolbar.razor.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/NavToolbar.razor.cs @@ -18,11 +18,12 @@ namespace Volo.Abp.AspNetCore.Components.Web.BasicTheme.Themes.Basic ToolbarItemRenders.Clear(); + var sequence = 0; foreach (var item in toolbar.Items) { ToolbarItemRenders.Add(builder => { - builder.OpenComponent(0, item.ComponentType); + builder.OpenComponent(sequence++, item.ComponentType); builder.CloseComponent(); }); } From d90f98461d42d228b1a374e922d8d54a2a9d7fe8 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 29 Mar 2021 15:34:54 +0300 Subject: [PATCH 24/72] Fix DbMigrations PrivateAssets --- ...nyName.MyProjectName.EntityFrameworkCore.DbMigrations.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations.csproj index a8938a59f3..26ae8ce6c3 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations.csproj @@ -13,8 +13,8 @@ - all runtime; build; native; contentfiles; analyzers + compile; contentFiles; build; buildMultitargeting; buildTransitive; analyzers; native From d960d8e8a20fd7b33583e33ffe9129503a957fc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Mon, 29 Mar 2021 16:00:58 +0300 Subject: [PATCH 25/72] Update POST.md --- docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md b/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md index e22ca308c7..ed79fe0398 100644 --- a/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md +++ b/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md @@ -78,15 +78,23 @@ If you write `blazor` as the UI type, it will create Blazor WebAssembly just as ### Blazor UI Module Extensibility -TODO +Module Entity Extensions and some other extensibility features was not supported by the Blazor UI. With this version, we've implemented that system for Blazor UI. + +For anyone wondering what is the module entity extensions, please check [the document](https://docs.abp.io/en/abp/latest/Module-Entity-Extensions) or [this community video](https://community.abp.io/articles/overview-of-abp-framework-4.1-module-extensions-part-1-n04f7bhf). ### Angular UI Resource Owner Password Flow -TODO +Login page was removed from the Angular UI in previous versions, because Authorization Code flow is the recommended approach for SPAs. However, it requires to redirect user to the authentication server, login there and come back to the application. We got many feedback because this brings overhead for simple applications. + +With the version 4.3, Angular UI has an option to use its own login page with resource owner password flow. + +TODO: How to enable it? ### Volo.Abp.EntityFrameworkCore.Oracle Package -TODO +We couldn't update the [Oracle.EntityFrameworkCore](https://www.nuget.org/packages/Oracle.EntityFrameworkCore/) package on .NET 5.0 upgrade since it was not supporting .NET 5.0 at that time. Now, it supports .NET 5.0 and we've upgraded the package. + +See [the documentation](https://docs.abp.io/en/abp/latest/Entity-Framework-Core-Oracle-Official) to learn how to switch to this package for Oracle database. ### Add Basic Theme Into Your Solution From f4a04d952efad161b6df90bddd5cc23566500475 Mon Sep 17 00:00:00 2001 From: enisn Date: Mon, 29 Mar 2021 16:04:59 +0300 Subject: [PATCH 26/72] CmsKit - Add missing HttpClientProxies --- .../Volo/CmsKit/CmsKitCommonHttpApiClientModule.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo/CmsKit/CmsKitCommonHttpApiClientModule.cs b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo/CmsKit/CmsKitCommonHttpApiClientModule.cs index a1eff90aa4..e46e347d22 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo/CmsKit/CmsKitCommonHttpApiClientModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo/CmsKit/CmsKitCommonHttpApiClientModule.cs @@ -1,4 +1,5 @@ -using Volo.Abp.Http.Client; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Http.Client; using Volo.Abp.Modularity; namespace Volo.CmsKit @@ -9,5 +10,12 @@ namespace Volo.CmsKit )] public class CmsKitCommonHttpApiClientModule : AbpModule { + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddHttpClientProxies( + typeof(CmsKitCommonApplicationContractsModule).Assembly, + CmsKitCommonRemoteServiceConsts.RemoteServiceName + ); + } } } From 40f18c67d7a2a91c35852c9891b14d0e95753ce3 Mon Sep 17 00:00:00 2001 From: Mehmet Erim <34455572+mehmet-erim@users.noreply.github.com> Date: Mon, 29 Mar 2021 16:05:55 +0300 Subject: [PATCH 27/72] fix a link URL in account module document --- docs/en/UI/Angular/Account-Module.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/UI/Angular/Account-Module.md b/docs/en/UI/Angular/Account-Module.md index ffa89ec980..17a0e848ef 100644 --- a/docs/en/UI/Angular/Account-Module.md +++ b/docs/en/UI/Angular/Account-Module.md @@ -122,4 +122,4 @@ export const environment = { > Note: The resource owner password flow does not support the two-factor authentication for some technical reasons. -See the [Authorization in Angular UI](./Authorization) document for more details. \ No newline at end of file +See the [Authorization in Angular UI](./Authorization.md) document for more details. From 137526011b288526820184cff9708e2ad1edf95d Mon Sep 17 00:00:00 2001 From: Alper Ebicoglu Date: Mon, 29 Mar 2021 17:47:01 +0300 Subject: [PATCH 28/72] Update POST.md --- .../2021-03-12-Simple-SignalR-Notification/POST.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/POST.md b/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/POST.md index 519a09fa42..7a88adde44 100644 --- a/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/POST.md +++ b/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/POST.md @@ -84,12 +84,13 @@ We added SignalR to the `package.json` but it comes into your `node_modules` fol #### 4- Usage We have completed the implementation part. Let's check if it's running... +We will show the current time which comes from server. +To do this replace the `Index.cshtml` and `Index.cshtml.cs` with the followings: -To do this easily, open your `Index.cshtml` which is in the Pages folder of your Web project. And replace the content with the following. Also replace the `Index.cshtml.cs` as well. +- [Index.cshtml](https://gist.github.com/ebicoglu/f7dc22cca2d353f8bf7f68a03e3395b8#file-index-cshtml) -[Index.cshtml](https://gist.github.com/ebicoglu/f7dc22cca2d353f8bf7f68a03e3395b8#file-index-cshtml) +- [Index.cshtml.cs](https://gist.github.com/ebicoglu/f7dc22cca2d353f8bf7f68a03e3395b8#file-index-cshtml-cs) -[Index.cshtml.cs](https://gist.github.com/ebicoglu/f7dc22cca2d353f8bf7f68a03e3395b8#file-index-cshtml-cs) #### 5- See it in action From 32869d2482951d81cea31c3bb5507c5d7ce159ed Mon Sep 17 00:00:00 2001 From: Alper Ebicoglu Date: Mon, 29 Mar 2021 17:58:02 +0300 Subject: [PATCH 29/72] update signalr result image --- .../result.jpg | Bin 193069 -> 129413 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/result.jpg b/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/result.jpg index 4c9ca0663b4842da390079b319e7214a0f5797eb..2da86ce6fa5fc1209ecccd4865e3d5640a2da354 100644 GIT binary patch literal 129413 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

r_VQ8H30) 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ᓏ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 literal 193069 zcmeFZ3piA3`#(PIk|e2+P-b^Psk{8xLw@B7`o`~4o?-|zbWf4}Sc@9A1swNB4-AD{dF z-1oC2A0>ULHAgJ1Em2FBEJ2+@{-7k?s6$`>_rLY~`jY>x7kqtK@)EUn#dlaKhowul zpuStXWa-)^5*7-LLM@T{{oSa){g!;UbeYt0=@l|7Wsw_7*Py;zvUKTp%a%$>En9}% z9f4d&En6$KZu9N~%N6WBrMCns?zws^d&Sm+MYT%DTEK04PX}F-S-D<$gNmw#rq=cy zJM|3=jg0r196D@aY4xM^5r^ZBPR=J>T)obCpY=KC>lb_}re|j7=AnhfuXHUzE&T_}ekbgo=vs@=_1&^%OP5K1rEAG|SCC`r+GSFkcQ0Re zz+T!jP+`lSt1A=_-pVejmD#%Y7^rkQsAc8)ZTegd!B^6LqwIf1*tP#9%Kkyvf6 zTD5cuBD|$*QCJiVNl?#9aEnWQ@sM7L1jW|}JkL>PmbWrMcV7vr!Qbg7iCrbE>%qs& zc1AQf&#k{9LH!V*EkQ}OQ$%Nz#&i|npSzr4*+MMzj+CDZcZ8u60l)o8oiwi1^$^?* zL%LM!tUn_OSbr(gsh#t(cX?@4aRp%&aStz4S5KjyuHO;jc9s*OyYvXXxB~1_neg#n zC;`@e90E=`kXlM7p3)drXVPsYX*f@h#%09H3e4hy+y|LY1IYo@()oSl-Zu%GLRg z&l%0r*VQm?H?p!cihemlU*mFE<{=(GoWH8vC@kXhTbk6nx0p3WYcWm1fx-U%M%i8N zUAs6qwf_@NF=R9p=?Aye673*cH7`@5K^_dL$ z(Q@vWWB>J}3SC(O%nf~vH1UdufN;~m%}kc*v7u!avxa!x^@I1C6TYf?Nj`?zkNupB zH^vs8e^NMDkqKUIR9hp%i)*S99kOd$l%S&VfkywOxX5Qt0JT5R%}JJ=Bo?-F8kP|X z!g=hMXB9pnqE|4W#r8-+cpg^C*HFmdMfBmK%(s-&1-Ll$I>@r6YG1U5^rs) zAGV>%BuT9ZF|*v?9j7)rZh1m~AhiSMCL9fXlpNMc@YV9~>aZ@$sxl)FXlyULJzAE4 zZyj|{?eVbc#C{`j>^B;0P+(z&D8N)w$33Oy9UO8DM-JL z{k%;U5EaL`uU9kz=sZbXp?TmnIDBpFx6W#O z2`bin4TR^$QB;Vd&M*`F{E*81tj<3sTu#kj2uq4HwR!;AFy|yFua>b=*?G8Gu)HE~ z7!GnRS%5$*l+;3vf{7WA3r%@ZTF; zDMMU?$9)N^-hPg;5@=rDjkvlnf&`^>vR-k4)IZM{h0(2zd#8jo*rvtS&)ENR?#xkD zI^|bi)u&YjCnJ)Nv|Jh;cXOzmqEg1X$oB(u`^Ot^1#Ilt8*146S}TRHs`z#J8T;3p z9nC|)dHxlq{LS>pO8n2&IB^Xi%|tAkqS$|3sLV3)=v^W@RoXF0-sDfeQ2b!Hxm>i( zsYkiv4E)w*b@2mn%-JgH@NIXOyxI*FLT7c~o$Ac)pfYh%djzAcrjQXcoAmf}O_C9& zbdkQbb2?l#BY9`h!(q#yNDX|KP)ajrG{T*mi|^F(arkKJwASeh<2mt(2}Qfm=6)}^ zgNs{4bpw4gTM3HyNQjTZ4lNCkpsv*zNl-VRp1!&7?>uUIE22;S##!7yankBro`u2* zJghtv>ledZoJe?@An(Ee2TCpl*flw*TE$*^m=Izsd)&~0Ev7sfF4VCB@;)y(mj!G) z&0Ep*$aElEu>WPHGYhwxq(v9VRb$tPT)5-G^$~9aD)wq9C|uhe@0iN#X?4fq z%C8N;J+guM?ww7K-sm~lCXRjVi3?H88>=|eKb}3led-O|PI*S8`P%iet}_o36VG{= z*X=0;e3ZBC(|`E+cAoi>go2&Hj=3>kC{wu6)%yFqea0W;yJa?L75z5~VIH=d5Vy0c?Ujr{p$PTh??OQEaaQ?996SjTJWxUo}ECYP|n z<_Yn*dFJIb^{p-K5|m{LvE{<#Dc^Bce$b1Ge2=w}BS(%n$NO@!wxk@neY@qL(k^0U zaI)X-EH#DYA0B-;8t~fOSUuev^fCu*!&yaC>TJmf?Io+i`*U%@4K~BTNUb3Bdd4&@B^H>T_HfAR=4=M_j;** zO~BTAj}2h&4UtwZ6xYzB-u{I{)4jCGt2W)EhB{gqiS4YksGrE*=F}R}yPB>`RO96! zo(7Ed7zF~rr+EPnpyY!B=j*2a;B>vKQvY0LK!Gp+IGDsj%Mn~TP-oGL@aPJZB zfhHyY(7=7!g6jbnx6rLZwe1Ag3N#A&wjbt>JV+f`{rFPF=iG73vV{@{c3BaWvA*m5 zt^_N2!FJ(V^oM&4q9lM1Uf|6yhNY=`7j`D zHm?%+=EdI%t>A7>B7R@QBoZRU%oP14q`#@_Uqbpf*7d(E>FetMmnHo@R{YD|{d4s9 z*P8U#n)FxT@HK({E4uqFIruBO`wh(aD+K?~0|&R|`P?Swb#A^ggzvvtOGU-onI~+# z$)pwHC8)?;oCK9+M46vJ!#_SfGmV3 zx`;pnzWB;@3F-m^@}|TwWK0hfc#w{WDW$ZJ5>y{0uKEYGQ;mx*ymgq4Z8w-{gLQ~k zSWX<@YiPBT`qSNYi%uD^M~qg~#4HwpxjH%Am~jQLy`%mXxfxq3FVe4hPcu)_ih3$R zajhY>z7El5(8VfWk4E@H)IQ2U6724vlf$i{l{aq8^p3qtt!D9Va;tN*N5HQYs_hvD>+M zqxp_5)62>oX-4Z73r~&&S9NNSh(Gp-1GZHZj!d@nURj%jaT?EQcPg!X*u~(sxt(#6 zzcC{Yc5E({!!pU65mj+;d-0C5<;MQk`H=C`!G&3=^z%mb;!lqC)R=Vy(itgO!gM&xi z1+q@+_Hpl0`*TWehUSi7y%AYJ)3qMo-IiA!QHTxM|KNiumK*m-NsqMG3zNC+^~FO* zotkaxCng@WY}J(0;G5=+_s^^ml8X_bSdJLu1kRNg4zFKKrE+cJs@U@EAdZP|$Cdo= za6zd#_P(ZlZa>UTeLi5C8hkiyeZn&S+o!3SGvz}J+~}-R`=WSKgyiL~Xi-4lLvtws zo0aqtH7TEJNC}xumlxie;BWGr%E3lyy!RlbeLAXVD*x+hH;kBh%^?m*P%jhu*of(zb#v>1_ToE8x=*2SH_-8YQh-WxY53a5!+Ro9_s8w{ zsWOD~M1nE`Y7I#S!tK6;bI~0LT042owVX+dYK7(xgNj&%Nz*_+Vf_$e;{;i~%iogk z0Y*_0Ob_s65Y$1A=;a*81~7 zw)(AA;(J_%9PvtR*ZLGLAal+H8znNxcB!YHqoYCio=@(%N{h&)YdU=^Jt%TDDG5&w z?f<^)nsJ)eN*RL-N8VYmd)lZu?qNo6g+>IM+sT!ciE$wX5&A7bG!1f3Rfs@Zq)1?z zn+h;vK7#S;rGi6_kaGx^5KT7~bi{_}Dp1@(*D1<*5t-jr;iA#xvWd*pOs}Fa1 z*SY!~Iw**aiQtZ(9G*XRC~#9L$eC5U?t5`=`oZ3XApJd2+d0a<7IVJi5%+A}4L*nF z)=E&G30l^zjMI~ycD>fEmkKoz=x~k*VV`=q44VX`-t#i2@$jf2llfQ!<>$|?^)$PW znzZLV@~gblw6e5cJl^)9e<0nG5Q{jVG!JQkU4lSsZn{ICrd~z?uN)SaFwOx{9%_)R zH#gIST}M~^P_4nktsbew#gTSAa&`ZKj=pIt>rn~z+5vugm0MTt-OyUvulmE z9R2PM-xoi7R(ws(X8(_;%gb*XdmTo*k((&b2d`nzOfDl*Yduy9a4cY>QKI=)D4EBI zH}w?YS*c_l0po@#f!AcF+T_+Y8*!n@vN@+ZYf5)zo%P`Dmp$%1Y6YXC1yxNIgW(r; z*tJ$=mh?~KXzm@NeKPwSMm`lVZaZ~K;}9SeTeErqvj(urbhH1PqS4m>Z7 zF!nR-R*cHp;<4UrZ~UI!BT5Z>tSnc4`uRX?l>xF+eL0!zoBK{1x+s2z)agjA5|l5a zdui=uiV9iR*L)qK@IZW+IfE;UMnhFLU_0YiW}yePj)`k0nfX5M9yTdUC!>cv)WM9S zc$ZHHjH2`lwXL?;>a}()gZnkF`TMSNXb}8Z*6SgPo?Sq2V2e#xC#>=k|rd7c1;(vFW@Col5fq64WZ+ zqvy&gOP^FL2z4L=OV#Ka_M8NTA~{r;+$Z6n8$3)jprp|{Ig5$SQvXox$^E>aYmrB} zX2xM+*O{;LW0XixNn_Y^l&-Bj<*QiV$(5q>$wwd!q0umahBZjW91#u#a77$KwRC77 zwv+aQ02foeS!hkfH>Udv)C>89*e(eQDa+hQQ+1BTH}oi*>w-1Zx+b~(wZM}*$FgOb zqnGb4*nwM`)>>;Bbd&_810ORwTd&)#d0&L?G=R$!{QMQf1$TFTpsLP#IXVUw=s0|_ zKk+2syyM}F`>E@n2&SWPj;~8ib5{sT;M}Olb8likfFq864T^2pLFGA;I0spn&yXTI zvY`mU_XsAwnygE1kf2HliPheHqe> z$tOX>f=j9MYk-4y98YiE;eBF^A$^Rv(Nb&4wK~thnYEX8@#4K@BveM6ssrPy|qU5hr zE*<8VVsdGRr(N8M6Gsc|J03mnBCdRqUm-mIQ?`|MOldt?z*IP5@O&iYk!RrAf|Xcz zR%4f)qo8y*BY{!8JPuUj0tr}Ov<$XkGA>=7CB$}@zo$bNdrPj=vtvDWRO8qADfnZh zOK^&ibYqXcpbN68Wo-DhqRoR}uk4DAd_vzkY(mahWW-}Gy_5bawbB1zyZIhpY)N?? zCDy}Se4oCZ)__$dUg5X3=jJiu=}SJHvmcr>0j~9d_^YOy3Qvf<8M}y9FWWa;7Cjy{ zIUD!bpS)e*QNwGJU;R^v+h;9HF)`-_Skj{=o#yFy2iy-FKh+X zpm=fCRwbQfyA3{3oie;$$K#jLsxQ!Oq{P?k~8O60~`E`Kb;tzBDzk@ zpAcLq@RCj}U17fSo$%nfUMadpqtNLSF>UTBbk!@EKdwGnmp)L~r?wFCY8%*F`)EaAT-<>(54_dc>_WwK3| z&6179x8G;@PQ58SxopJNr6s9^`Qm88d98BV!mM%wCNgU;RFg|`2Jx(fogLg5CcCq| zp1x5q$?BC?lOdV)MY!=W3Gjv_siCazKRi8Ox=HPzz$)rAI8jqLs;(lqd>40BM=Q=j z5S{kW_sUeLIA*MZHf%Df(PO{~g&%-W%O`o3fqT}vR{RpMCxC{OVLU)4C>KmBBD zQ2p7vPgW9-qJQoo}3e72J8p_Kjl;A?B`Bl_TrpVU{cZG97z zX{zx!-0|2QFIQ^Y5O<^@#m`&O{@4k73q{obcgN=MgNTZ#lH=s_KrjA%k|B1IHu%Fj zd;5hV2`U0GF-6imIwKQhZDBRgD4rD!O?$zM@TDahO6dFO`Htz_cS*w0h2~{<{(8ax zK_29-vkWuFCZNo3ZvXYWf8&sUhlK!Vk%9somxhGX;Cs?Z32I>P=mPqXl?Yn^%fv}g z7ELSw@-f!~rd4J|NqGPTgME8xhF!kUc%D>{3?G=En?wI}xv@$7T7p_v{}MZ6$eR=y zpOK(MTyvTbEhj-?ccURCEbJ)8xAqS0MGDs=NHfQ2392PXfQD7raTHNQ1h94ZKOfN$ zH$6K)r=Haty}XUxF+0zvZo-OBsL4aAdP^jz>~dv*%hW<(m=yrxyaorhN>JY+kjonc zOK}q~$8yDZ@F)DDo(FQCxla%*LEUB3zC>(CinFso?QUSGf|!H^dxQ0C*vp)8Ylb#G zz@FmM=;4?65>(sOQsja5Q4WQ=G5pfFNLpm0jFO<5yWHy$z0=ccC8(!9FO{@!FM{+qDq=^wLW03RQ45&hadh63MWqt>#i!=J}GGfJy_qsS{M)}9_IrK7@=m;vhNC~ZBNJYQAV(RS#Yxc;6yi>;Ky$ z9ulfaBf1)hg_JOu#o$q>JNqA8)%sSF3$-))ze|$x4@n}S-rpq&P^camGkn_l%Z;xn zgQ6*8K5fHX0uQEU}4bq^A*W2O|yGyGl zz^5aU`VsT@hh>ly!y*~MADLPLH^fjW)7OXmMWP}Yz+UKut51#XhKch?51#S(btH;r z6@ki#(lGw6G^Dgo=#NC)?~0oLRZ)>X65v;Y2Mu<8K2ETX2S60rxwePZ!| z=kPdmDgd#6NEWewgjv7azq!o>dQM#yCZ7gC6Lb6wzX?`D$h`8;WFl<5OYvGj5NG*L z#N)am9`_8QT;OXFBG>_~kFX<5c3Fh!qDy?lT^20$OrBg63d7NG*>Vo7k@PbIaR3Nc ze)9m#FLW*f-1H&tRa=5un)_9nrhk_vD!1Mh*MfEQWn@awUfN~y^0V}OIBz> z%;YG^g2N~!+43@7Ift4{ddKD5>QYr5W4cRiM&0mbBUjqPB4~Ggs;kP&5?zvKN=>c2 zwnXEWjl891uO(V7LeY%3-E(@UDP=}u8E<~{7U#jso|#9HcMwlr+c##FJwB4mG|7^)EW)sUFMMFn)vUGB(UObGuw;b3pa%j8g~PTZ}BGTM?1Zs6)frXr0 zA(;(FCg5Q)(Mp0!-+5#^BaM%lp2A;rTYNq>g>=q7m!JrU3OC;>kf3^LD-e^hK#)m_ zSVom0UIddQDE;Gi>;X&ze((#uuYA_KzaMD@^ZsuM%7O9m3^roHgpnrXx7gbBr|F}= zrSF)%g@~a7P;Lva^|qxUzuCOBf0{k^pQw9~6SqL#gV?jiycDAVgZxHqF#j}p;Ge0p zwoslDdBbFz30c6&!@~pV)(i7beZK23X#VuXj5 zoN6o~LVuS(r%C^E(1=ZtVB4OOxV1mTgoKGnV!;ziDQUloF?Ky&;ml>MAjnkrPa49w zgM~DdMeCCKFe1h9J}nldOM31alp=sTcuLg9NoArsZ?M)J1KJioEb{j0ONxef1^BoC zDkNh;Sy4Do?VVdg67PnSdp1RARr~ajr3I9DW1mQ(PrSA_3Cmn?Bq^<`+R^mr z)J45SS!s*Dys>998I)q`+Yb)?PKhzo?2Z!~eflURo@pFBbq0qdRePCgKG1-DCv8kcGF9TTB`g>1qsSzWyd`LysO5 z_=tGcN8nr!dp5?(XNq;o$TE&$`bvpkv=g$(LDq! zL7<^Gx>!H7Fb7y{!OCb48Z((5%U)hgQsh4)?N0R+5cM{`7Z6=%xc0}hZ!o>@rhm{r zP?@lUQ?SBLmpZBIfV2Y@M{FeD2adoxi-(AEb=B5&LO`36gBeQ zo|A)#dvvPwn~LlcSMEtgt6gO|Go9nTRgR>%`^e)&P3n-7w=?nW_c z0LT*a?G&qV0`*K|%S;necs)q9TN}T5#i7{X6?JRkkJ-n2DQ#%jvHihqYmNUNx}Z7z z4ZCQp{XY+q946UPzdHar(SErI1ar-M=XV`X`NhuK`~ju?&)A1AP=})e%_+#r(@T*- z0_6i%qHT*;#4@f7@d8Le012ggf6j?HNYf?74nY;Pzv5Ho3P`SfEeW!onOs~~3J9mU zSooawo@&bLD9_2+}A1-46t#y3zmomz@pR2L`eta<1#BoK2#i?f zE7~uOx*?sr?+OkXrpZT<)rooovSk%VZ@<2BC49;CejDN^8Rvm%yPa?L#7}?E9XmhT zxQFNB<&{#GDRVs6=;yqZFOmWr_uH3fsoR}d$ZY-i=ETj5`F6>KbefT7didjsNh({E z^imJFD=LN&>dW6$V85UNg69lUBCQ!@%16W65JMn~V8^RW<*4R`yvdEDi-hPIIWu#7 ziJwX48@C^xLi@K^0()FmENrzpwdYsN%x8pW%MOTtX854xh+CTG_~KF$u8(lTV}F?i zN55B&c%3_cwFEuBzH`&t%WI(W+8%?pkO*zN%0PcZ+O{rJg$jq~&ChcL0_-NFiCm_= z)-(9Xi^>1Cv~ z<8#BVc&cXVL<`Oq*YB*gfS~B|I0AF2-{9z?P{2u~z)$2T#dy$x25ozoFI+j4wH_)3 zCwZ%S*PAbex)wKKZ98aVW8>8ae(mw-5|`V=INd*j?NqIaF7Q)z$GUR3&u(5;cQ|qI zyPtY(;8$qSLOv4SBEENt(Z!h?gT`qj8OWb!Ysg`l=p}HQD65I#_C?^+-0zbt+DSG% z!iIAmn>k|_NC!2pOB!(&xvGEF0L@%5Qv9vx)&tj}-6Y?GZI8&90Kt zF;q~(@2Wp5^Mbtuhe^N`>NxJxe0=Z{e}j;g)wZLesll^td)r{OkKTzqm3@ex$LP}D zRz76t1N%DvSSg{vqLh}8(FDoIp-yn$mX=9_ zSF>MQ2q9H+vMlB1;YIw-nL>bR=z8|n({tCRrrvWLl7woum7Mf*6HIqEHOe!@zg;6C zz=DcCwoALudw$$eXivh^AvI8aJ7!i+FW~!gsbTM_zYZU3BIFbAAMFrX6C!en!G~`S z>m4e-=)<>{R1Amemi|uMw~kZ2^5|UVr(otM+nBcn{V9Uo z1; z+7#43t(h~;#SU_4OK&yyfAxA_3%Sx}W?^2Nil&75*y8Q%39?BTdWMFY8%2;9_!ED4 zytZo28`(C3-vof#FY%(Mb7He-^BCmvtQ1n0sFjtVQdOrzZ6-{$MPd_h-|#30VcQ+V zH`-ON4hx$>3jF=^?!Cnr(G)b?C^my+d*N)+YI*9=t}4b^{6fEgle8EPq8Z{tH4LQZ z0f($(AJ$_Li|&x1bf)1aZ{}`~W2+Y78W%2h5NR4<<2>#nZio7ZN;{_Ng7_XVnAT`# zj5MS&mLPjd7>O~QnGHtpTgG$~pIW|%|9SCBqsV3v$YM$(FCLNIg}_Y!+{<1pmiN`; z2$8)kZCMIP#Xc;UlUP&qTiJK|6+f{WsQ_zLO^EL?29p{O48v)C=Gdu2S39Qqz+K3o zU(fFTdR7lPOP#76?C)Eg7au@W5j=K(|(9^miN>Km91w~6$9HlMKT1J~nu|tG;R9&>ni>Y3BU9AXkHO?Js*? z$tIewE>v}3@`m12_uFMWZt1_C;d}fE?@OLG*5^pBtG|DU>f@)$$DA)$xt{MOzY-io zR?tSf-C|^6{X=29_dkh@z;(2$7hn^NnaFdf^U9cOlWtcxJ-_wzc;Uw?f6kNbtXPLP>%uvNS?= zf@~oT5GAPaLvT%#1a-t+ z^l4N^C5hUxDaiw_*<0`SAFWOK?)k@xF-I@<@Jrnvn#5Q-d|La%%EV2MF@cNoR7Y*g ztt8vFuYnH|{^3jA|KquTqc!TcHY$1q)G0xs@v9kQgiW11-+)EXv#$1;!(LGa*09upD(~kCz zvN@kQY0f16A+A;KieRa-1oddck`K;2qcLAWF#j;6m_6nq)F-nG!Rfjl6G75TS{z!% z6esZE4PF!BkS$?!Y0&v+x{hzp+OpCk-ehcLQWX7r|6bG# zUWT*!tgktzknIN6rP^p|yszP$ef_-+g?sR_5T~Il(iu=DIp-2p zZP@GKDBB~C?K0d3^I};o)!9mTnaFoTUyR=#*V^&;XkO%df94VogF(y648M*jmA;`5 ztVU=th-w!Yb>x>Ap~Wf8&6Mdm;t=WW5ll;N&cAz%80MJ&hVnf7ebL=` zb5+`iqtb%E&<<`zmpG4!`xxI5PY?2ev3{*_DNGc+4XR?9$X}PBP6J(obGO>ezaOHb z+m@-X6G$V?RX&7HA>WQ6!1uA4=K=xS!xdu_2X};&f3}JP5Q((wb-$3@l zg7Cb^4y{UG3%BD{Hn$`q@07*ED|Yw`G_mrp!!U{QBmxbZXEo)PJt%9hn--dm0H=-W z-uI4whc1ao-2@-0lsUayaR(|J{{ctx(@4{q|g^wGN@vg zsJEjz*Dc-n9v67fr9FkO$Ckx3(mMU?%}qF1-x@V8K8a+89&;A>&oLn2SJ4WPnn2pi zOOj^13?RJhGD@JYBo?#GcOfOGF|tmtAL6-7MKV5plQ(-dfdsq8!DdZRE}UBs46 zxF4Sv&23WSO^yeERXoZ|f;_o-9$!3}V2Tm`G(y({3DG5(>+n+O1~^}jmp0cp2gs7# z1^0ghpH}eLDk4YdUM?vB?8)X*mJr!Y5zr$pw1yn%*hbcD;`u zt}}2Y$eWy~d`4SQ`Afz#<7&>58_d=OrDMdKGlB&}??}Kgam)1r%SgV*2~wjrEny(n zt=l2;4&m7G?AS{=y;U)x7hLYQ*S` z)?5r)D-JlvkSCVcoAl&zjrA@~M)sBf(IN#f`Q;+@rhYhZ6J7zvu<*-2)pAFH5|WMZ z2hs`gZCHjW;LMdk_l4$&|ByD_3|iSySmf;>JG$Bd^lDJw0ZsDoY9D>EtE>0txrmNH zH3GGl$o?csY>AxzA@E`DQzDahhU}b_&TlYzU&JMRce1yec)3>exA!Q@tPb)2Ch?fu0@;*%aN`i zVQf4p49XUsAxS~`PevKb8E4T*KZ2qGCAwFQj)sKHU8AYDMaRK18aU7WzP0)X-3ufY zkd9wN(t!@-d^-Ou{QkI29kK%^aY9Grz^@VtC+^S5LxrFh-+6pkc=B~2xfQzmP)#0w;F+w=MY)aqU5W6rcb zoyD&4H$p3xo-o}X$QPdD(F)q;l5?9TTbl;s9`nR`m?xY%UO|)W!92`4!JU+!R-0r9 zkd2>tM-+V>3s(j;o;t_dMLl*0{Fvc(KS9;FT2noR``W2S$I16jpILEkEKa=KTKjzk8TRCqZB_( zL;PrTk4$*dx^r3D0!ECfjnL^FvrjXR&+dH4$Ab^=^JvS?DVNh%B71&uH_9$wCMzfN zonu4_547s;g)j;)VLC_qddJ#?-XcZF3RK_@B!E@iv~g+SPBLdbT9u>)PPB9C!hBd} z{#@)0tWN=Mspv;R1boZzK5vr`ukc}}z^ZZ4pqI5U>(Aae+Dv?CO|mHTQ&uIXJsS2? z^l=!OFto4d2Ah05+glP;m~!-eK?l{5OD?w4AJNI}?@-&Q6wUfjdsgML z*4o8l3$hKlu}2p21smro1npPB$+;lHM~syKJ0{5S=p;AEaM97^HP4~^eBvRVU4ah| zog{FD*{+NvtdC8hRb3cxqZ-{8exJ6QqFn1e4>*&da#|YNldE`i(y6J>PH;s`;yoH1-Vy6>iLqh#<$c;FGav>;?8ll7=|18rwIy z3hL!jSm+ouSVLbbS|y+`am(Si*b+vPscoN7f=V#o2KrpxRt?<{`Vg`8&iG>GT5PPk zdPj8#l}PXH16aU!w3{L9B?q_zF|76J6c&5cYtNzeKjO!*?-k=5guRge zb+fX(@6rQ;0LrylO4R(7^}xpS@D8R|2v5d9J2@AwpTCl&(~j{J=({e@7KAgqC^6?% zTP}=M8z#vgdAKu0wd7R)Mhll#DsUN-y!O`7x!W{t&s-$deA20L#j(RaH>SQVKlYM` zd%BgBBZoOHJlslM@&2;&oh{(KGQ-?V4FAB&e#tSgK z!<9abNs&Fe%~G5$(kX}lTGirLg;3UgvdAME)%R$aSe9~`N`0@&S1}`)uT*WRHh;;F%I|_aQUd3r3>3|*5v;OE3jxBOV z9?s)Ai_=72$R^G8rxooj!Wv&nDcb+=^^gmW@*1KpINAFB6sRD^Qk2quJN?^bmr|9W z2xTOdp|ln_Hrda!n*mo;g@xkLC4V@i7k*lV&FBoIuP`H=M8)zOJGv2IvMq5F1W<6( zi%1i_{PZvk{6wOR*3RCHn1$0sXr^bi1a)f`3HCmcJ$f;py5#E#&(DQf&_o6?b5@-t zP1~{08QjD7kxZ#~XQ#p#`U3opP!^Hwb8D`!k^Ry8_2*k)FBgu$vWJtBC)}6v%0JGS zZRvnjnZm7OUEX)lomeo3+$+A{?`BCkg(OCug>$vO<*$TJ{J~K2+0Zw{ed8E^-0GT` zvXX)ES?3%5ttQ<<`TbvN%D*ss7Y6+;wYH5<^nRfbCUD5+^lcqp`0o|W~vGO&1Y63K_slSEz}V@T(=_Z1e*n9+C*hr#YvQ=7pjKz%b5 z_;ug@bs_M9NfiPamutJl89*%yyByXgoq^U0_xS=V5frzIr=FWjIwsfz7kG2!R!UIr z6`V0D7?}!wc4vAnn>w&886MWS_^8$M02}wZ+Ja^!$1A_yR;1*6G}n%*Xp-W8JYnZi z+|sCjZfp2!LQXKE1Bibsh;9r@VEet)7ck)w{Mp_Jg zJ@H_NP2{V7UC$bu1Uv5OgWX=!dJ_**%A}<37BzXNv9U1;W~E zSZ_k2x|WzmQWF@xWXPHN^OIJI4uX1Dvt35i*Mbv;JmUb8RW92wwaWl()tTsOm?B1% zwpD&!(LS)F{NTjtyA~VXGQX?7@_KjM?vMLU?cOLA&pZ`~Kas1mx1sfIpuuj%{ElOD z9-W@E8OJ}}QP0;Z2ukYU>UqBb$1Og)ir$ry=Y~fj<^?^i*f=!!118$R-)J2>lmK>f zkE=$^j-3t-AY1|zU5Q6pxp!W@9rZs~s2J{TMO3mJYFdLv{M7vOHhs)T?3_R3(iiUI zhF1`|L4-axTh&(lW`fsqP&xK&bIAv%)a@%^4oAN&@}yCkTF#FyD`k`@<)jYEbE;^q zEZ4aX*bqTE1jRgpa9n(3Zp)_A%9qKS%Ijg>wsHFVii8P$7cMbm{Sy9kTW6e%5z>tY z%St0rmm0Yh58Ba?gkHs5$~UYdE(BN#-REK(3Rm{lrDAA)h2G)Z@VM9} zjFolt(X%%6-BZ&2{3W5)&{E_UGrIHSq1uY%d`lHwg3^lt;>y{)rmG>^t*^7M7L2cp zkGNCN(467z{o20n-QMUsjL?J5^Xht4abXsQ`BVEBdm8yp6ETQtVPpLpJ&Xac^+IHg8au)*`Cl{sX zw|}I29{sVAleI*kJg&u?gtjC#PAbCfM(O>?_uAcoIS=t81NUQmR;Bsplx56v-fj#n(?M5Dk0&FC_ zfn@Xx1RP2lPp|*nQP&p7RHY~TQ@gja1M}TnI%{|*EGd3jJ^H)1-ELB4&Aujac7W&RYD_2LKgC+UA$KhH#$usR~P9qiX zlkfN*aA>efKc0Lv`T2Y|!JV#|dcT{->IKhViM_ysl7;p}=W!#nCj-P>4;d`}WSe_( z*mZm&BW+bxgWh^wzZ1=|@VTBJ-Woo3{z7fgUCm@-!DH-%MfJ3G-NTCj3;F8%n(o8d zj$T&H)iyhhD(;N0jwi0f>d+>T=EgK|DUVQBB(xEofwKE3Ye?qcJ2;BVUUe=lYj+E# z+AJi0)6U7`?WPvNzN-rY{4ZY`*U;5To$9mH%?iD>w#&xl7^YTUnK+Gukm9J+QmBAG zuF>wkw;sKQuIHD!?%`z{f6X`^k(;u|&g<6J)iGCg9y;@NYgVX%>j|0?$+iB}T*DDvgRy+7hJWz(!u>`M zYc4!l%<>efLpD}|7#2>&b%ZWoB>1$5tHZ~dZ*C^-1w75E>vMVTXxqfWL)XmAKg7ko z9;lHa$d#bp?YI5H%KLm!?7*W$s!Icr=30WJ8?fRKL*9Icwa^R!6}lR)<`lo+Bt;Qs zD6w7Y30#~)eU7``e7Xi)mHnyb-mldsyfyb-Ik48YNVFB)%d273>0W7Y{m>p3^{HnI zf0Ej|w^N{_CFIIwof{Hl%VdS^Hn!cHFp=18DXw!dv^PUR^EWW@4%fc?>4R+yY=NET4ZoG4Q#44R{$|%!(Kd$%!w0F zmAxP)ZWgnl6SBcG1X43azU`Igord-9N66hg(b@Is2cMYNRSP*&gBC8RVbepx<0Q0z zP74X-W25OBAN2j@Z`>vw2itEE9t|J-T$*sO!w&x393pgkF<4UBY+xhacjne<%gjQb zES2M5_=z>E{vYn%G^~kqe-p+P5fK#u1tINRHq%v>`c<^$JN zRFbNvo_dzwa^Lq)Tw|_!D=)ekSD_V`Xcd!lTkM`srYPy2_UjM_25#8bm8COZoG11wnW6sh?gu?V@;9Yk#GKrT1Atr=a11Ppo78Y*u$%}UlC z3}cQs_3QsF>1{#a#nW^58wi`wl|XzeVvx6rJYAQyzr74vK89Iu6lsQCY{#E4=NzZU zWno{54*7SNt1D=F`1c*E&W$OnTFcpV{BI+x{1P-C)o9C}P)xHaHi){=fnOMK%AAj> z*JQ+2ly4dR{nTj1CBGVj_MFb3v%5CO_Zr6qefIm(aJT%fxB1>yC#*m{w&~E#hW3Ux z<&nDsvbry4YKWSjDwzn>&gFF$Y{%g)c8#=goa$fKy^Zm*+D4sD{hAw|+3!DniFIpt zxBoU);1w}prSt$oQct9=p}qz7sdA`=C6G>|*Go=CxFNLtCynC`x$6)HC!>h{$ZNzH zfBxbT-&{pcvUc4>)yopyE0nWjsPVhpB9OWNF1Hr)Y1Of5dwTvU?i3t6c%?!R;kQL! zt?Vf|3J7_5c4BF6FFJF6^i0=09DQ=x*3UgKZ{o;cwE;z4SV*i3|2Wjdpm{BS3A@G2 z{1#^J!1ur6Uomf=P#Dndv^8MefWMmY)Q@TJti{(>g*@{U%l#6_-h?hkUQo95NUiw6 zabrSa3_}?Ox&0j-VM>b(wGNRMAMIH@-i!}cGjF+7gm-l5-n?e>33sL|Mmdu&DlT-4 z^>$3)bmzu7Jk8I48I4vl6POBTJd!jnW+^#6zsVdQe^OWX{Nb03;LPF9vH{}#0bZcV z+>T1^E&*wU)Ic{?^q)=FxEf9I%o(09PcHiU zBFo^Ag&VQkTS1aCHFV>VTikUkD^UdB;O!03P#tyMeQ_v=jiQR93@z#gGKnZkElMgr z89497dg>o|`4RD|EPL0TgZZ_6DQd{BkeU=I=J1`# zztP9lsaQDFE&R@hfzfi^tCu|1w+o(CR=l`p@Ov_Gr?V^F59w+C0MtyDfm{zp%>o)e z^DZ*h44SWGofZ)3ea3M(P08O7*HfCVPNHBz17RJ-bXWQw>tOzHk4KM@W`gDm+v^vK z3d?LGt`!+9?+!fp>a+6{G6}4~*K7W~C}C#nJCxA@a^G2B9b%h*8X4T_{o%8VuS%+^ zjmvgStLmI0zcbzIfo#-P;L6wg3ZO$1DdI*<2pf^gV{`AWP3%P>d=>DTx0|erypR1OQH^&lx~!k-CIW zk@alx&L-gepCv9aMYk)%wjjS}S-swY)M9lTxb$-Wy+8Nzl*WAz_||;`cM1Hl{)}P$ z^um7As^05_Yj~&0B-+&2>e{lEz)H2oS$tEr`kAwkF6huMMr*y@hHkbeZ$u{{< z^8b#gvd8kE_OJA}>?{a5kb@p`6R>5Oj3o99k+Om{e2$HWi*?Ci^&tTxpVxN~^TYHW z*Z86Ac@RH*b5`~Ph%B(d`Z>B>4sqm(mm?6Lw?w)I9^zo)!K_4;ks&dqt;(CPOe1Zg zC`G`m&-$rz#) zg$4x@gDfM>Cwoc!Pc39GTdjO5$X`Asl`N@~2<#5zD6wuEAUi9z zwAcmL?;UfXY-!udPU1FP=}`g1r$+qN-+)mtLHvIe0kbnK?S< zw%9nZoYuLb5)Vk)?%+`r%$`dRnwma|(_kTEgXd`G|*vPpc1(_1Yn#-~I&O(pD`+Zi$!;7*+faBjLN|1tVTM&uc`Cq{%7= zv5V^c?v?k0-!~=cD35>bGPYH}_50q`lwUJ$56wL2H!QSynp{9j^G=+v8rfy%V;b+^ z-06mWo~r8@XzeI=r>tJLHB+HT~pSMEP2IEKL+HlpQB>h38$fzUjA&A zUFd%4d1OXn6F^X@S%Kt;FI9=KjUS!(UNj(SHONbRs4tjQAP1xCf!A`g4>ubwd*eQ; zKCn-8;THi*+u%$383T$#uwSsj1z9kkP-{ozrvj*HnH>p?`(}1RdX@^}8v)lI5$Sj$ zk%8Id*td|Hl_1ExNqaMVwSF>|w@RvF++eV{UNLy-h?jo5)b!DZmce0-o)b}S-Ct*v z!l#El^t!B>YMC!hA8bi+-m2Sdlz5^k!)9gfHQ#I16uTqZ6npHR24Ucv$GfQ?kLA^0 z4E?-*aLi2nUP44{ZQ5P$MC*RKhu6+r-=*h%tYk?Pa|QomsUPRJs=Y9&egOD4B9bsR z6JoUrxVP~eK?x(0ivMhdM`)H-aR;iRtf9QxF5BZ^u4jO2PX!y!1S#BpAX{0^T*iI> zZSqVt7YwTzYb(B^C=^hR z_2BjcEvQAAhwJCFJEUQ!^QBJRUt7gB1KZ&7*4*K}E&SM6B}WU-;ds3Z^EM8Y)E{y; z+N^UZun!H``NqIzxAUky?p=UwhRFX>cX9H~y!8+H9?si6RH6f%@ z&Rr}$his>eXz2N+0w*v&e^>58&mz_mLoA2A>7>+AG}*+yO)7;Nm%-JOHz=k;cH$nX zW=ELv5=7Ij%dqfjgSIM6qk#+%2H84jt4LBAt5l21N76lO;54RS;sQ|_39ko=8kdF# zFz-TJRO>UX-cE zB&V(nx$S*uwM#(HlPqoB<9Qk{GG;_Be8&fX>*-OnyVN)CL4JjT&Ha>Yv-n33Naf<> zFrgl`)iD)!IJwX!^t4T?o=UFcx*W>~I~_0Ps4jzbfJn_CLwmVMJt54_uEvD=PQ#cJ zX)ElxPVj$%F7m@~Mf|;ChCRX^#AuT-0yA=2pO_e9Oi&O0Mps3cbxRyYpdi*kk(&o{ z%?LnQs*V&5<5k;m4w%?5o>C_g1ba3Pn9E+&Y@v2*TL2y6;OGqXo2Z6|bQR+ED^k&f zD)kr<<1z$fx<`$O-pt_>V;2&*F*wtl(JYnVl?aC4lr12v^OQPQwz2v9N=39AxMcwu zI1S#g(fT~w_f8y#czSVNebvQM4_TM4Tg%0{{rQ6#E)To`zH5*KxSupyrO#<+ zk`|?R*Xw#5FHqbWaiTqC$Xd@u{dv>VCYyCP=_T`TjTvhbQ;jt4z836dxMv=rH}A4~ z4TKbZG@->5`;Hm|GFQlMhUhi=Ff&?893;ld3$5Xxf!$`ug=to6E@;oYMDqO)<|Fu8GgN&2uuoc&#{ zQU_$CRNy-`PISU2nvfvbZUO=WE*m(rfZhv9bB*5>pj;4Ahvr4(i((9-(<8knKfVw< zXobN~U7(nPaSvn+RhR(`=7W+gAjeZe0i1>|5J@bW9VcKYv|>3i|=%p8*!%lb6R$Hi&T% zN{=D#lcC;=gtvRAqJ~I4EvWLxFX#O-RP!oe5R6qzv z;n~}ztW6`~+x|% zW2KwqB~;2T_{#mk{t^6YsT<9zIF@s)2h{_Xm>K=n1iw7)aNxE+Ml=wF{B1__)!E}} zv#zBzukPIleCd0p5n99MP6L3gymvG32#J4r-(Cvju-c9mzq8YP%HwMnzzDS0RKo3h zaB*gADk3~3z`C+CGuT%-Alt!`^2-d{iTKAUp53sFpk5 zn&N+vnM<|;*z-9kNV#{cRt-d$*5-jdg9c9?ksLxU*R$0rriJAA9?tQPxMVxuhXK@0 zB4X5xB+__dokfG0^L+K&`~LfFy3^7G5vkA{<-b219k|N)!>|~oXq#+`0OS;lO>QeL z))?>1{`t(MRYgU1v3IgGcazNklxx%~qig4(we;eG$VWYx83N%M+VEfpz3hPf5=?S;bD>^?4aR?A-JdwLsx?L1%qO;x3C5jtoN= zkK@tKdYrU}cZR-PzHrRhf9DImi=R{PCzf7$?m=pqA)HwdFh+J0C*DbplGUA&5GW5s z0PXm8;oX5s)Q-WPm>I4zDbORb;hgz>#Z2EuZ39sj%RewI&Di$QzzFN2HsIjg$XYvR zHyErDkR>N_We6sA^xIc=hJNl`ryuF1nUJ6mo68*VuUPy=-}AoihimG0o(H|8ugh0o zbwgNmxQ9N?)p`L;>n{2)fG8wog8^)@Dkqik6E9Qn20kX3d8cvh~sh4_f2@lNyoTmq5w?9DuKZEski1}@SStYx71B58BV6k#r zz`1)7-k{&*0C+n*f+fWog3ZMkHvTTRB7z6a(wz${W~~fTCI!Qw8}$CQSD?Sw0%fgq zu$LA9`a!LYa&YS$bnh$Z_`hF*3ob#J`&BF+d28DL2ALI5b3yeAr4cu6EjT?kl)EzX z?8p`Ewe4TO-8V8DFW=9*7xdLgA9;T6S(5XV8gKT_2V9M}*w_HcUt;Q*C4asYomZYRwC#TMkY=Aa`IL==_2blx_hTb- zii~M=K_F~_=JIzU+m1*!V*w-2zfsDa8>--gejcrT-%B!l#U7hS%hbUhoApOS*5Chg;;726@2|Ey%TOiym`Dvx27nKbJEE%@cCd?EWdJf4Ruxg8VGtLwP zG(2Q@?-Z0<1I!C;HGt1~4c+OP%b_;yQWw|DQck>Zk>%o-6`SbDQI5mKxJ6lV!}1rR zFgo*Y!xiPc(-pEI>2uOx@;j)PCE(`jNa-)!(8dis*|A%KbL|&$F@FT>%rx{^{Xy&@ zCTa@om$g=ZIR-JjpFJMt%gX!Fa7cIu60MK?*Wsdo_yTc%@Z1OhV_JjF&Ec>A9AB3I zAFuj1wI})Ppz?(-LOwC1M=*ammixbbyMi>wxy#E4SB~idFq485kp}8al=G%LzRPV& z1~H*r_3ql6+w0_i7*7VTjB;Gw`-pS-t9Y_^3jQiqCvdfu{1dJR0|?&ofa$nW?oK@Y zAIA$Sxz+O+_*aFUPo#eyFDT>w{fpN&F4Y#Q+Vqa!IZ7|G!VED9L%A#RO6CZppeFk@EAbw11iBD=H0Q2l}$FZj~V#Ws3`KM()>GgNeUkeum&6E9qTUBP1~= zXhEY{$XZexz9heI*aKfsL^_g3^vUtB=qvnSb|CR7neLv^V_%l`RbZgc8PG27GLl_& zytDJvuFxQ5yUwsg$Kgir$Gsm1xJp$FZu7qj{q83*$R}EXa?n_esfQ!_8}rR)^__W_ zyGlYF6YdaQQy%ucv%UcR6p7COUgVqkgO_)JeQ)g&)!!d>o)yk)su{5c`SwDUkUK;- z_2Ri19qIZGu@9r3y@}%R(4SOV^pst~zFFljB*klZ6-%_xF3ieDZOOF*D~gd@`DFX) z2A&pvEr3d2%Ry$3!?A@A1HCXXbW7_0Yd~K&qsVVQ=8=_sO*|~C6KGMt%UQv#yf{OW z0y&{s{aIiC$@d76W2~)OA_8Etdp{js7So)Fv*Tk{HX2p!xA-vRB06wS;pV{EoBm%D zs{zL-nY{r3HjZ|&ed&lnQw$S?hu>yDrJU$Sx4wp7S$9bF1&WDof@5G?dqxm_Q0V&Zk9R^mtU$wqC6wv~O z%nu<25I8L>75WLz(eN2s?voc-UmME2G6?|Jj=?r$$%bVlzjGx1#8&|75`)*>I1 zV|O~=r#C#U(Itk(y##ZkqGEe1|okJ`0O@6OW4b9A#d6}T=TlP3HF$0!i zTRqL1&g7Tp9dfr(_0je}O)8bWc*x$#_Qfvu!>^N7l`_nx1!aXb z3t+Yc#&W6&d5Lp+BUP=k9I+<^Dko^DCI3q8AuO#rl6N?-PrCCRs$5u;2nW{kl&TaT zo*Y1iI9IhbL~5xZ+E(s64mM6j+h#(=WWxxsEGrsG>q4@T14b~n zL0MsdVpr2u#(h8CsEt`OM%{oU(KtGz$snbaf3~7rJZxZCX4V+ z|2J!Ga)~}Pa`aeR${d`W;=R+%$TZ)Ql40U}oBP2-AKovHlVwo6;VEKYFn?%V0;hG< zGD_@oM8;xEBvHtsRT__X2?>eN3d&Xfm`p`*?ibO30Q(-)mx)K!$9P(WWp;r_5JG`8 z42gvM8v_NjB1$p+K1OwT&%0fE#CHm{!#9?ye6f{^t=(OZr!!WB6+@#LX% z2Epix8Ob>S4}a%5s*QQ~?HYdl0NPB|z27{bFMDvOzri*9Z7v)kT$@asn%0|}0SwkK@-;{3wUn@f7 z*wb_eIm{Wr!qfyXN9u#4z4o_P5hPYE@GRi{wxNs33=sG$?#>0VRJU4gue>;3Mk{5- zQJ2A!&5Vs)i5;?Dx)J#-V68(q;wU6Xr}lliHK=~VUPZR52SA*W!E2$Di~QyZ2}Yi; zv{qMoTh8b@h56NWark;IYxSO`$t&SpjW@=m9&_E7P+<3&98R_t6r4l0C)PKm1T;SB zntv2hSaZ_i*x}owCY?61>!Qz!kQY#WsPCa9m37Zbaxy@6Ubo{-F<0IrKdQl!+2t=N z;1eE?9y+@8y8R-P4X?!;e>nSX;}79K>(8-8>eoXvAr4gDogmSWDvC&T^eAkIWaY;( z%*q+U`#?bwBL_+6@4f}rRS$Nv7WS}=cD5T`B6ZW2>p9PJ#jGLt@>aW3c8Ew#twvR0 z0<1D(ELaL{Jih}em_G%8&;lfsilL|@H3~l*pB2DB2je!rn6tNP8tf{3WO-~ zRihBAx_SGO!ATmXgg&uEKwl3yO#`YuIEUOZ(%P>xcKd9V6$7(OMBLkDT6%3KiPSEm z5de%CU>dm-4RW~lF*YafKK&6bOm(Al{xsGiZ{4!5kd_nIzHOua~Z8p0M86;dGvC`YLc)r&?7yr z%J|_}20Oay@Sp|J`Pt1WNnMTpOSo|87S1?i-xoU_k4lhStn%e6%qTid5p`%37nc9| z5B&jdiqmcfNpB}PtmqPiSkHiu8Q3;Ja%DV_uH1yjP!`EDar$8}0kG^GL@a?74Zji3 z5ZqS);ZO+pPX3BKrGv1Wcn1PPw0pvMs^s}0f!4>_ICQ%|X*H^j?6Whj^GK|SlAh4% zW57<(62!YPoK*Lb zGd)=yqwZm!rnvseVbvI>O`*THkJs&-ICmUw)a_=?Mw_C2`*Sdd$mC{CPX&$Q&&=qg z9Y((6!#a-c9%Wr-1#3Ol)bn4CJlWN(;<15nTIY7A`@38h&Wu?+8cDH+Ndjg(Ay~_* z0c-}16&yyKItha+BEms#LkSpAJXsFgj}V7fLkzNqffMx=iz<;7#VB%E6hmFU@I0$< zPP-FDSU#hXxCr6Z;n$Wa2#Ik6I-=cl!AFc>N2-vxW|p^v;9V_W4{Yt?p@xl+uVjKC z@CD9U5y|-$<`$0wghHFH{mE+610y5OpEKCNMIJbCqklVynr*a7@hLanmW=JB43csfT zvaakly1MZR66nrBy%b+;Y(! z!g%Cq5L}qFW|t#7onDomD^{tuzkk`uMOJ3g!CXG_BH}3DAJj2%*00pAKM{#D!WMQm z8pq0nECzlb+DVYFSu&boOp{)X6izrbYJ5$PWW6Vw^Raa#K#-D89E7{?hbW~^CWNt; z0oGrHNWYP~2@chWY0x+!qQ!+qVma7?R_$c9{Q2a7LRfY^$*x-QIg zx*9oRFgOOcvG4@QI4v)PxpnFDUFq>Pnl1QTF@1uS*Gnce;WvnQH)pVY&HTxUWlXZB zTL-!c=^s=d?-Csr-$ndIJDMeSWgxLC1k0m3JT1_P+C|a9#!ukPpR^Q`dt4DEVI7U3!=3Lh7c<%;mZF?8*7==TO#0 zxA_Ofj@eNS-ouBn1s$%p{m&HNb@NDs;an4eUQgmG17jHzr?$gn^sSLD|CFBl`C}tp zjs;P9dUrQj^{AbQBO|gg{^a@=fxgVnKx)J~flz^{O(laS^^YLLdU6I1l!=x_S4?46 zdyEWh?Zln%>swb?UBd#dE)uHTXc`FCq1iwuc*z)L9WmuTC!; z30%a5J4nY!&C1_VH~K@*8THjx?q=+I#R8CuOde!#tfA70@flW(moD6MGc>NsC|{P` zh*y064(A*4I6%SFxk2#k8(;f8J~Ha{c=7tNdXw|MYc760T5{ryZbyvSONv^g+ge&f zTQooE8s2B+?)A@lf45goN_p_?=Z2QPH-u3Xi_3(&cDh`y=kGsn+v2KL5T@(>^7*)h z84}*%RNH)@C9*2twV^FH4vp3y3ckfIQ?KVnp*uyvu~k%5uU!DBVCBFr0`z3~aiL&r z17#D=V?a^O>|D&?Fz5+wB&yMIY!Uu7A3!S+bLST|vF_f*cfQOYdCvL`dz-h!kVK#)d?h*vKwgRiF=dP-sROW-n+eYu)ZJmI}OAyH;NlYAFj`=#3vWzDyrdt1+lRq7=yzPGzW-2goq{HdIiJUY3_Vx1LGu z`PMu1;#Dfw@$o6MpnQ`jm053{1w$qRfJ@%JEq5iW|B#6XvTA5a+E0PUQ(bmhRWNsl zuiyK^T3}Qd;C}ur4_lUFw(`J}qP!xbH_vrk4LkK*@`xK#T$_aJg_gDo+jsU=!PCD; zurNuSh@23KsvLq~RM?zm#=ZHa-KkM~9g+tJ3w3Hq7(emA4>!L;%47SbIAm-POVc(< z=9q!5yTA$t2^Jn_njCnd(~z*nKjT7S*pp$6)JY%b8wg_(6V%R#ahiUZNWNMY~>q=ZwB zVqh%iR?SvKMG*8jJLoaFqJf}{ZV5~yte^nWNHuWrk)6btDyJZc>4=&9E$M#AVMOz= z2%DHJ-h#*kyf}0(vWcRg9#aOX*#SKNa+2yWujFeYOl;^=k5lJlZIz{mvR09&A}mk& zI*Wpe7_3n*Yz+(@z8xUk_xo;D8;9S$qrJK>Q0`vqY8;&U{bW9|_n`fTRa{j)_ur1Y zFs+ngn}HL1*`P&qEyjdlvXj&cJVgTV@;j&?|w~fg|3Ea`U*C^9$id( z)x9q8hLxhaFV|vLRe{DCo8NrD!Ow z%8G9t_R8XNL#1yW`*yNav%DL(|Jv&NploqJwT%s5r(e%t-mWr!YJDI|fLS&|SQlJ% zA{$9K)F7P;J#fmP)f9M)QdARa=J3z5To?qdSX`*;UNcEvTudRr#ZTezOF@7a_SxW!&pXi#f$Dd`#TNJ z(bSo zn}vP8cN%v5OgHpD4rWbRj%dM`)7@>i6P}SPM2yyAK@&+Ld#Uj?6ov4COoM2rO z-5+E%R4a;Qi}qrx&G=`LcE%d4DlOTuoLhXEP zMbXwVp1SlBbr-qJWA-Q#$=8pr>X7O_9`!e_XDp`Jz{X7+%%GkI7EI*htaFs%r#lIVsJYx4(8PFO%hC z!hbGZeww7P%XuF=_}*t-8&`2i`$kK}J$WYVV4E@#tRIC#K%>!$+%2-B&t3SWc>-U6^H6 z8vy|u0KAA#$=stNR(x5aKF4EsK?n>9HKjV~jg{i$%Z0;U3N^@V@StwZGQS#JkKve4 z`Vn|{nMji;x>A78&hG8?t56@<+!j=ZdCS!RMS_E|999(Lc`0uxbe?pB{k)VQS0g_< z&x-!W>!kr@i#Z`<4OwmKwLL?!XDn+g;8Rx!88qr9FNAau1_)Ln9SB!&ahow@lwNc{8Yi&L?utoCyFd);5|>}+h~bl0}$d4=WR>;f*OsTJw5I-f^R z?Bx(6{3*#f| z-D4bWqxRskF_3n<)9*oXf(NRD3Xls;!0<4H)$&4d1VQj(=~2=Oq~(~%t|*Uh{cW?r zPSdr0ysBSZ1qU}1Ri)N4dJ(!f5a7ocx2lXpQ3CC}0z}vhQk&A#B4(}j`ZgB9myzJ1 z&lS)W$@>M&x}ZZ{VVQ>=i`zm^xsC~T(0!M`%JYZspYrnOcQEIo1Xss{gt^EK*orf- zsk`ckAXpoi?(B*Cq7bSXRKHgi!>=|M=Zgpvs*){~P&lQe?r~u^r~$s3%xd!5Bs!4( zh`e~rqti&sjgLbJwPY2~}CPn_oKy-1C%^SKslmd`nz zSI_DWeCv+4S(AFw!lRdFyTn$>DB(n``uSbk6IeLhCjVBmw%emNhQqqMRuvo%D{#$R zM!dffXJBf%w&3vS^M>xMeKFx{>bqpSyHFFUUK@2E87q$LqImlRiRc3Ln?Nl;CgHjb)A$5mzhiH~V*O2;l)R>$?Xtk(bsqs9mmL8j-OrxmqgKzS{9`{_%WVL+IdV7cKW8q1cESHzUQ_GcTxU3Tnji}(a5x#DmKCUM{#gD4 zAmSH~1}InbLEK>JB@(*j`fdkjl;;o9$!yVU2#Lr4x%A$m;&zNaY@vpK}Zc<;r@JGEEkA>5e5q zT$Yx+Hlri)=`ZC481MdP+-Jk4QuB}`9udxs`5cq^p~Cpp*TSD(Y%z}UCgJz)bWvVX zz8?P}?bGeVszvBa7uHJGFRy|hO1XiV1*aaIgVNb1+zR`JGLQh`g|)Aatc)bsADC^f z%kY&-M=`VF{-i3Va8wO{+2ETc#Cnw){hw5VZ&g zNIOUYAVJOnnF)di-5!bvoCKxSa*{0AtCW~Mn}=p0aoq%tjX~rWTg?H?o>b!f*%ZA7 zt~mj42+dlv(#;vcQdt20yIf7#1YhIB4M${v)3M||4S@mHPj4nAQhk#+@`B+ICg|RJ@aH9GteLLU9N*^|EGH5KQ4=+ z{m_&S0>Bl&$SyJbBYAKnl$-aKT`+g;8vE7ngKXvRa&CCe4f=&Fo-Sj0)Kt7ldHObx z!7;7%NE`G3`pcp6)qiy%G#B_s7e>v8f+B$se-)_tHs-kS1{b^q`&Kd_(p3e}vPHX%&UjMWK$oe{##Z+vHD;i9&XVKRU;&N4u|9(y18&$a6KG_ld^Tw7YaUdu4$zg|Ig^qx5;T8#5TeQ7h(gy???Oi^ zi(1n~L%l!EPvC(J-jvCvq;Qa+Fdb>06M`b6Apo%Q;L6aP_oqqrA59o?_+z9?X*1vD ze)tKDA?(5!%CrJ6J7NeuWd`kT1|plKlA{!qIFB;EeH*-FQ3)|PQW5=U>7NJ506G+n z1(WjczmtHqRhvDe%~=@bUVop66_Y_=ZjJOvQTK(XjOq)Qp^To_loyy5<`8&zFnIv{ zl-mi>J_8);Kic-kEc^fhD@@X~l#U!W1k!t*gvp5tt!qHH(u*-P9C?M|uiOVE%rBIi z8-%#iLZ%!Q18{VhAvzR1oz!a{!2`d03$=$SgU&&FWabb9us*;TF$F3?oe;Q~Jp|eX z<`|eLr8ScXp55M+pLbPCsgl-=&23WqryR;%utv;FLKY}@V5PvX>Hv-S^9tbP?rIYd z91E#XB(+VH1_nkXT>DCDtyCLNE-khHzFOp{p`vl`VrY`U=*QfRJzOq~9 z*D3Q)<^Bt`Y$@BnCZuZvrnYM|-iN1Bv_I8Q?vO-aIpZ*wr00?I)BCu*(M0;=YXzPE zOEs_Eu1kGEPw;3Yv1^SAH2NAYig{qzlU&ejsN|52I2-F z-ILMmaVJ}_9=i}&CtB9U`5dUjRk{;{WrqTi~j*Sf5DEUE@}hbrTGbvJi}H6 zKK82|^{|SJ06}D811Z{T?~U`UiLjmai6Rv~A)cZtTEa=1RlC@HRfkq(m;3sOyG3^@ zwa4t#%tU6h|B)RjsgF|9l3GvseJzd5u)7lQ+0rpO$HeCN1CJCRHQ~t|@Op&R0E9L`zy_N@SVQp^=$_wY7~PHY7ZC*9 zcuJ56(`4Ljwj=ow89I8uVL-3T{uaL#a}@si^R7@ked4on@yeYADY?77{B2IAjI`7D z2dAZKgaD>RaG9BN_Dbi$!VON*r`PAKPuZ3_ey1we*eCGKrOOX8D^iAZZS2N$jd%11 z#ejn5e^q{6!mZJv?1w?EDokoxJ1}z=SnwQ0|vS#`8Mpis~Y1PR)BR#rTFQh?h z@T(AREgsiV_$bZDbIgFykX9a^TO46vqxj17?2T!34M_qQz5<6J(~}SXHwC=@Pl$JE&5kbtLzyT6#^U?31?Xy*4?kYAxP~CR z4t;tJq`%mb18lHrJgwSG`pNBoPP@y=eZn>Ph|bi;Uss**484PK3m$47ad`JHCNS~5 z@v#TKOS7_WmIv)SZd>8Xy0$+b>fMGsg4M7Xp+5@dwJU-(6d1eC86&jMQ z0G!B`F#>1|ArU|vTDBS&>wUL>glk_5)Yp3|9B$B0wgJmsA?LeXuRig+T>H^#8C&_h z5@T$)v5*eV_7jhk&l*jGvcZ4oC7Yb25AnuOO!mlou&)z`I;Iw=3)ED!m0cY8!J5z0 zlm@rWcrqq_4W=xDZGO8?R3(2g!95NNY_y+LAs?>oHn4a#YFwFoqN>1f&F`@F)yMvQ zJ)g65$a!@G>);vt&4O`GuVp~hzN&&%!<}#U|L&z7U97t2o|jr-z#2wzj(S|Pu-N6< zOIL@RiN~5vng{od8WlUsjxlyL50P_YYTLi~H+Hk|K8KYQtPeUD8f`Rc)oHPRu+^+< z)W{~rEY)WNp_Kv37&BlIs0+8GYQR2R#TW$@!rBp4zN5aNeDHI_Q^&a-WF#XLc z>RBoQW2X%U(l7JndkhWs^>d&#hQ$i8U;D?yRmC}e>1JI&cTN-rvkU=TxVeF<)g#?n z6hPGw;eUaC9qY5`ObgFS&g*XpjPSXP*4R^zpCeqnj_M_lc z^*vxRNF>1H07fI^UPKton2$n%5nNJH*Se)g z@U;NGFPM!+l|V{{vHq!4%i<#=rU>2Y=Md2M`Kd-%`Om24O$!ZwemqZNe|TF+t9sw; z{yf5qFW0_!CcoI#yyh9&p+Ijs_{Jd5q2)ACDs1%|-Pz3?AHh-!f}9-vb3R|2@M#S) z{N@VEz%!*PQ&AXF4=?Kvvj-sF+3Y##a>Ajf0QT^Jy+LZ7k0c2XgCHGZUhhU&Uv(93 z<}c$lLGd+;NRUAJ_B=ZZ=kNpxuvK2<*Vj5x-Bj_!=wo5w?H;A&_j6tscs2S2Ql`|8 zmQ?8ikApAEHkwdG*I`sfAqBkh$cSh^fEmaa0dg}ejVa5k%*A_MFJkOgEg^# zFjHQj^z{{{en!Nomnpgf!Z5lD%wv$+&j*1G+@kCO*&T^sC89{|+>O0}+xBk5jIHf& zMM^VYe+lu2f|%B-6AVUXAb7-4Sd==<*Yn02nT9yzg8#27z)8BMguxpACs7Hpc;Pc?OMP7&UIDEP!*8GrJP zs~G?Gk(PB9br<*fkxP7KXSobfKcjD}pS1 zKPY#?`c;=$sbMwuZ7fN)VCDh;mWufVDrZwSXksjtXS5`0&);}9f>Qsi)&2{zP*4IG+9u)+$Dpi88NkO6?pgn+(t-+g3n38mraDlgBWAR3{$FHdyFwfWOqn`)Zu>g+AQ!&R)fOj ztbhL?QI2yH^MrSlC_>Nt!lXIekqNwrAyDCEx@~Z)bUv(^`T&aEJN1~*JTk&#F6n@4 z`;@F%V;xeqnz;pV<$*RuT^$2xR3MnC)tW%8;=F`TJRkAXc{7N?dhrct_%E*w2xiSx z%u(@CQv?Q+jf9FV%r|0$^T02t?I8TSr(4dH0WT6-GzX$D?~Z|u$#ixeVjNol;^R@_ zf;aa}BLl4=!BqZCBY9}6-7~N^Jaq@bO}rTmB7UCeymAc%HAg`|ZfHIjRgoZi{r3K8 zz~gskf1?5C!J_iYP$0cgSp=MM8&ZeHoo^7#E0As+!xS^6nY?i(SV}i9&@x=F#sWPK zK467BYWj=)+{zFe0UT_VER`_+3BMc!3Gy@f^aZy9806l6G00z&YzTAOFjIC*#F)RQ z5~barY5rYKU)mY~Y{s;=|4{`WSP%dFY-y5Jz}KMM=|X+GT5_O&_Uis0$#0L!gEa>;ROat`7H}M^;_YudQ)ZsTOwYS! z{?ju5t6Bd)I#wMdZ2T@KoaOh(Qd!Zw`R5b^FPYa85d$SqwV?MNh#iO-=+t*Engd^3 z-U+>qUl9B(DG~Lcd6PFlWz(L8f~EiVgCSHE2(7&0Vk$JNH`!M9ggyQdz|==eMMmNGcC1eGdGL8- z*j1Bv&0p@W0(fG7=fqvEyHi&tDdlZ9Qm9Z9v|p(VJbYi%!~MKAcJ0y!!>0?nZ{E4E z+d0oZ#L=30PQW^sS;6=DL1mdw9``$(xZvdT>E*L^sp+=m zl5*$>1_pN0eCc;N>036s1K`tW^H3Lg4{P5?2jBz|{ zLHx|&fXXg?CJlF8Uk@f;2;$Cn8p^Yc42km9KW#L|sO-|cd=|&KnR>x;MO$MjZ&U7# z6FTnD-HPeaC%Cq}mxivcoazk+B$o>e=n@T~4$eFJj)Jx_!8YveTPDuUer9j~Aeiy7 z&QoOMuF$rrFTiE``#k8#zNA;^l`yocI=7XPldR)fFw$`|UAtOUR^Itg27lXMB<#)= z=zzoxPr$;~1fr(bY9xuz2I6x$od{Im2)oeGjm2CcHEx_yf4TaV*Fz`oq&-C4I$4>r z-n8`13g_K>TS#x+T>I|jn-rz7ne&9ght!i2^9J~Lm(Vvm20)1tRlNI71IE;UDF@M| zu+JH8aaa^bJNYh6b;Zq$dP7U+0>!n_wO#q9CEGm$Z`#XbL>@Hx;y~-n-V(G;>rHiG z{Tr>^dqXpMpV|ud7wC$am&y;#pWI}fYR-um7&a3%e-iw#_fxj@I+v__!omNUg98hi zC|?e6DZ<++CSbR{c^pj)lLW}w_L?}58G|T-vpAL(9VQR~TgV;s6~yxe1!}WS#1l0y z3&~$aj$!8aK<}_#_ z*%Q#zE#OBTS$66le#-($v4Z`MFIAVza3X564yB66t@J;lp4un=78AiWkNRy=rF6GZ z>9cZjv%=+2JsBJuz`t2I!)}Ev9E~2o`iV~V0Uu2`<<9{&2Y)gGVw?TJyZI_YqaId* zo;(LkU2R`QCa7J^OYQ}pOg>6gzNFnzyr)>k-g@Pp+fQz;KCu0VHT!CRICgE3@-kc? z^#rb0u}%lG6bWRLV<4GO8LHG!SLs3DAvk={ay6sDIV<)TIM7l>o)P-O#kQnNW5&_1 zcYddO{;yX)ydTB-nM`zckYNI4dR`zPDf5*ypf_gJ1xui5AkB!V{4+dPTLR+@U+?(% zHv9gu0B-A3y`5WCcR8Nb*c!h>GO>}Ekg{uUqN~n2V(*a@4|}5FmP4k2wDxm+6$SQT z2l2svoP@bt)aQ<@&$fUj>dm=xk*CvNnD0*L)ai zoO3=NWf$uS(m!Ji?bvvQv1D{B*RMR67+bG!$8?V0m>;xdNZ1x7RUZ8&%|XL{2k}Id zHp_Zj+ZweTvB+D9fDC~RarWXjLr}LCpHaRHmcPsG*Ni+p966}5zTQ($ys|)am3i`t zfdIoa#`;%2wH?4BKW#AzV|)}6rHUl5wdR#6oS7lz=i#xMt2bsQF&ZCbU#X)>*gwwQ zYoTn7S-oSe?3s{Lt=6qOOzd(pT3$EaLc{b2sa7}|0RK*W0=qye-AiDPwo)Xkaf8@i z%unzVPDU+tDPlATC{L19Hu~yItaXQ%&_*(e1#SklGVVD1(otUJi~8M03HLkE2kOXL z)7}J`^QJ}FgXJ@y?jUn>b0ZU|+4y|fz9i33O0SktWp>2tT}Q0m?9RMrlYy7qmTP** z{%D4Thh0cV>iZzi*A=RjA=+(IJ~Lm?N>U}Un^z;eU4tWsmot^}LHCR0qf8N0HPi~E z_sG^!SB4sJRVd)$qWX8kcOb6fzV^})km+hxSB{fFyp9KHm!&@TQP2VmRHw`0*)Acb zsS}%@4p7fd^;OkDrJi+U*vuDEWfR2U_9@;2IF@_=OK%WEqgvgIg;`5&l*=ob&oRS_>?~v#n^W^b!b1Bw-+cUM+(u3Iz zS-k}#HI&Zemf12~U*7;Md=7aP_B#8o4mD4H3CW{NVLA(noJnd!G*I=Y-G=)(Rdw#m z8IwU{%edFuCN7-O#z}mz3^YzH^iICzMfcgPBl%ulU0rw$4{witDOQM4osbS>VU?Vb zQ)Jd=64>b?p{!65;k{qlaV*c;0X+PpO~V?r^So<$Qx#z)KJ%C98EsBNCF_+;bpGz_*k`E^y{LY3@7K`ay?)W2BUQ-M;unTWnh$^yb;oEpH) z#;|UN=90Pm%a=x8&LF#V!l|>KLJ0p1kljr$crwCW=R6UVgfgQ^(JRO()#}|~&I}KH zQSMuq?KjtBnE?)<`~c<;kNg!41Fi|guhPs0&V+FqGs^g<;V*-rg(W4*_{SA{a81DN z!d=Y({v25q!O{AVnWkSWaKj*mhMyiG|14HC1A-q%yP4CN7R;S*{uBnV|0%};CcddD zgnRRXoWZ_n@a--C@nqy7tqnK{Kz2p0CEl>Xt&J0$H0LTC4@G0 zg3>koyaD~44f+N*;OWoL?U&<$4tF(#nY(S&!Db2mCmbkJenx7fe7Qs^rU07umrS7( z_!3HO83F;3R7KSA7eF@XF|Q772?M6h$B;S-Pqh&mJ!$3Y;&+7V$yew&Y67XJ95<0h z`hlHOhba|p#J;;z4+@su4zS3LARHgMj?+Y@`Z0eXnhkDEXVK+9z}TO-7@Fz}&PQ}Z zduTw2^iX0#zYH1g^KKS9amc>8x2+&E>EJ_6?LhYKU9{?Txgj2bXYXvkSz?~*I;HpW z?5j7 zv(H|1pvWT9p6sg+U5Ew^y3R;hJMqMzJ=sy9UVUrp?e5!dzU7CM!=?uzM0$|rKfXzz zf!3Ab)>QA{KH#MaA49;PzeZW9VJwHNfDJNmaU?8qw7b9lTjCDyTfHs5^`8jlmRcTx5pwCqh7v{@Bjue&YGM!#i`zOAjAU15B~r;4!9y6BD( z>zkwYL)p=JE9%xJbZ;@wSF?R=t_R{>gHPq85{BYl1)lv9^nQdv8{phCHW0m5ALgC! zRHv1a8JB6F@~A^8tZRPQN>fOCNL>S+z`^QGfMcn!*A&}R#fuc)#htP}EkeFwdK3e%= zGBMZL88!x*D7qTAE_(n4as5^vL>-j3<&Q-t?p+aZ2v8 zOYFL0)5p1v;~JY3uVrex*#z)EDT=vg$@qpC9=N%^J!RA`V4(qdgd~o_$g`)vIjfFoCIhqHr<1de{bzCwxP9L+R69fMv4+O|E1y*{v=5x(6^<_gNyN8=4{(0aRVs$0K6)P;3!Nsc zBfYX2Jx2l%sF<koG=tkV{bAq*tp#)Le2Et zd12r~>iv5F4IT86;Y89Wwm$+3Ukm5=!UJ6)JeAveDoEf_%d%X|vW+M`XBrX<`d zKmT>;Fssg0I3@F*SlqlkYn|66`=s8FnqC2*zcX_sX**GL5TfB1A;(}RwuOXTs2+Te zWhvR%zk+Le_oR+9GYUCye063fq5jThhc#Md&$3f}g2Z(%2Hx=X8;JTOf5P1MvA%Ww z_^=!!RV^spS|c@7+nkf@AR%tA@GySU3PTfpJMZIzH!=@(M=BI&(iQBKPTP4kJ~<;W z4@^90muqU9tdP7?CT_j9>G#$z$PH8L8@a#w>LVwUfX6=QhAxeM19i-Sc3;0) zBl9ng6BFv07hk@9_TpiUEo>$@j;O({T=7sfPFLz+s$x@Djc7Hu`#J)$XjhxCQax+C z>?=Pc-2f%TacWc6Vb*lJj#gn!-b4DSQ#r&Chql=M9v?=roX=<_AfkFYWq9b}2%i_t zdQinwb>%7-JPUc)BfLL}FLNP=dQIfD@b3N+VgVJevVS>V_57Lz87Gw9y4!N-ir-P! zF3O<9D(|0t9PIDEcv{BcRfVwfPqW7@v-f%AkF+j!>#6R&XvCxPe2{63C^Xz>yHoEw9UtesDPy{6j#i(L=nXD^0xqdS=p6kDUR{b`gG`rJGY9 z4RogNI9mL?x;1kszpbQ7px#sVJSNar?`4wMRmq~L3uY}QTf0SW<}ABn1c0XBJ4K2M z_dyqLug;+XLt(75r|wd>|6Rd`vX{12^Y{@9l0 z-@g7ke%3kF`FEi0N6anCcW4b-Aw%Z(E|VY@0eMif4io`eVugEcezpMMV*3zH`3qX2#R;suq;3Lg|U(uMYETMMB`+{auNRe%9TB)^EJ zBwvWcOk)Kiz%DR40Ph9NXu>vJBsr7n5$6Arq$td-Su#eIJXKuIu}bD{qIF+x_>?6n zz~XNkP~e2o%NZ8eGZs(~CXzo1tkrY4bzE1e4Mw;lr8|OMq1Qm>~ z1EFux7~(Jr&n|smG@sKk1#-R*h`t=#9#yWS*AGjBXC>4W3Y_kl8!P zDSEYgcFfea$g$$M<`$cGr#e~tQ_ogD$er1%6QYzA=WSirQMmoYQ+QM|Gse+Q$y8A+ zp2mn$4|A?Ax~s#jp54`)rDC-!*GhUscp{KI0}PF&R>hswmjKoItx(0Pt6G={oMcI> z4KJ5t{6Nx-?E|8d8MP{4;v;>yHZDY^nu>u~y!bxR$ej^MU0hR zLbGFL@{`jW0=8a$9*vouiy-R9*+=A>Qp+Bu?{rsPYxd5Dr)9VOaZr218(lt6b4)(& zAZ=~zlY0ac(yy2=7b(S4!W4&EoY09RUzqCix$xZ*)QZ7#12}OEtP1dBEKPfoOF(YF zKLn0Lao{Q1_1vL1Lmz#T0G;*HuOhix^eKh!q>TO-lzvo@Iq;WM(pk!900wTioBo*0g$cjIB>|m<%_D}IYN)H~B%duWIWN^;m+9t!xWQYVTem>}x z9J6Pn>~@i7q+Hr~1zq)hz_@-O6Sz~(T;k=#;8TYh4tY&w4SM>u8hj>b76U&3L^iKo zW+Gc^q`r!zKcE3qovY7)B<6!hrkVgjAdaQM$pJ_!h4vom@B#6Fk7<--K<;H2E!apy z!vJtug9EW27GE6mP6yaN83%wEE{xIpN6?S}+N`1H^bt_+t2zXtV7S_AiIwFb`Vubm z1`msD>6iX?OOy%jNX3E@f^v{eiP-?^8ZSjcpHBlgrW~;cZ_sn z_Pt@CU^%b+D)P3KHH9dRP?0+`GiV4VpT0p!G#ikL`mOvJh2+V0jE>L5P zV-$_9n_3Bh#|6`->;;||4XeU%l8H8G6eIx+j4kNJeUO8*Fd1{vROFcocn$FGFTK!7 zM~GhS&a5IpJcuxasCIBEt!Dq2AIN@2xf>e8<8UoCY5#m)&)=RGJ(Tg=P3b^J%3e$) zkq_NkPyiXs^ptG*WH(bt>7IvH2yYz+^Uj5srC@&g$Y{Ag>zjmd@KQW#!7u-XG0trH zC_vE31p)j+&nYw}n2r}9S8)vFDiUCe&;|M77UUO{9WwnDw1x(mjVk+uA4ebH#1Bl^hX90a-Fc~u=i0bca`!63D|8sbkKyt1Jv#$>< zg*Ou8v0w^gQ6ZUh`GVXqGQdyMoX>#u$F zh~S1khg>Ep`F{B}0$wZ%BXmOHVGoWRu6QSIxECuJoHio8*iC+UjGv_Y&mj%Z^E#&s zfTm_s3TI0HHKyNGVPPp98O$~W@qe(!{xMh~?xXg?2L~5GC;WQ!*KeDFU@)7&0}4e4 zw>t}NhXEJd@vRI*D3R*{rA4EQY+3}UKi|1z>KWluHf1(w`rF;Af0Lk)$_~mV5xCP$ z{%D!;fd$R~wmp1XZ%pL25hQe+Hw+hSUDzO|5DbAwrI&kv{em*%2u)p`qJw=~VmN%% zkvU8QC*Z>fur67YQ1l%ubz4iU&vsr`#{Tt8iP(~;OBl( zZqzMLw!{iz3%YW{0AVGZv9DvztL!n7GItd{swB?;U`?Epf`yUAVbBMs!sHZI{7w4R zy_n7h>6VzfCMk}ZpW$7@vGuJ(EB0Aw58fKSM+)4z`Hq*VUc(ilgI(@pwer#ndFMm6 zzxOtm;s%5#sNQG^Jp6-Nqt%}Doh|AO$2MJ$wfA$pbi=Mg>X%Xd(3nhJtQTgGimnDH z^fh~^)_{5%3vaxb)?XY8SbB&_p zwfx9>bLkEAEvm+$mMa~rP2{_*;}wOjuVF~mG}d;EZCq6^k6C-XsDrDa8L4o0r~AHZ zS)V&;Cvw?2fi^iT34j17hV!npK?CJfjuQn|O>QFekY5s{vW0g+tu-N?c(Su7*tPhFfH+%0lXi(g>Gsdi$xf=4MD4-1Bvmwei1csrT zqTWbc$4P79qbg;ujT`ob?df&|tnN3snogx{rz=+2!I*LvnoM`uTc4-+2 zr5e$BZ6@bVa7wrdpWi+nR#?MnFOSwfekjL0)6i5j@~K_m<-n4}?JYvrT&H92)trOF zYc%kyhi=SrooR%)f;FLL@GamnT>w>tMH!*$4C-mJ98{|wYIuvd5+eoJ zWZGZ@7fye8zNKInagsr!h?l0SSfrZPp04Jq#`~7!CiM_69jSbG3Cqg_7;itULU{&_ z?-uMqQPjd)Z1%NMJ@|1nf{?lvURz~I$xDzH-BzeGI+7>6?K6}7s$)WcFGgu(9jB0##$MGdr~3YPH&!KdtUanwsUueALI+l3~@UaVPFDFAOxI z4&Vsbq`W~uDzF*eo#oX{ScGb80B3CZG48fb;CU4wb^{k;`s!7-)KFNnosAh6y3>|) z2U+4xEd39vY?n=W^S}UpzJOVw9E1rx^1mqID7f-oV2<%?3 z2;QBz^LSW>Z{}mxdh+BiAD(WMjtix+b!mB^r4C{NJ3KDuO_WE6YCj4!BRh2(8nHot z@N(Xz%J;_W$fo7G`djle#~keEsPFjE_g0nns;|w@2pNj2X>OggJtF!tFjNxwT!tpT z1!K6Cr2vdy(QX*bjY7Lwv*?QfiX`zG8&aS~Kr9(JR-7VT?e++UY^xYE6FcfFfx**P zv#p4$axWXc=07fQ8cZAQnMC#qQ^m$e;<$ArCD?DSP9J~8SZ##wA2Az{PQ3FIM~b8a z-^(IK(^Qs}Gft)P8iNh@4zy`RD}PG#3QYGp((C4>u=STp*QD4Wo=|GhyueeSMI@WU z0UT0OEh^t$Ey>ljq~(Yn^=)-P=GarvX$V_qgriYb4|Ckc9r)R`K9;Hty6e34 zjozdrIm_0Cgq@gnVU$RWPgsXx+_@LaS#kKoZhpLe32}Ghid=eDScr+pr6Sxtsq;|S z+OHy0nX80evldoiJp17`bBHPaEAB_NiQf~{Hi=&|+K0K@;Mt=T-1b!@s95xukEEK} z45z1|$#<}G&&Z*`jl3n?w#57oxZNKyynp+;T67SHkPu*<6qj-y0RImkna9j~Nzw#0 zgMi;`fp(NSdlGiOg4=`}=q1nZCd2@ik&7hogH9vPMr!(fG?@DR4}cF@N1fLV-2za8 z`vm^^Tp=_Atn7qW{Qb~7C>EF>;=r+&<}X67{CA0W|I^Q<-w>PXDs|(LO>D{%`1XfM zkPm=e?L(64&bKy=oV-9-Gm`9Vn(KE5+bY@W5p3wQ5&6||*GC646ED+JP!?_X*)~s06SHXw1wJ|JalLdIr><<`=z0e})x5;WzJUD0UHO*nZ!;bdBzRrWH)i0F_@Qfz%REy)iyWlDrt*eyK@r|1Q^nt?ANI!?ctw*1jfAfws9n zHwPvMTUjTh75kRaBS>-_tq1;_9DK{qHtEE4mw1qmS`;7J(uR3MMf9*}0WfiQIe>}} zeH^P6n!SjbzeYs@x@V4>I3S=tEuJvr3VkXC{-jVM7To|+hu#7+a8EF>fD9#u38<1R zFo=O)cNdu6P0ErGild8sf&jtRxF`miD{@Wxie?9t)m%UdRM z!&Glpy9EUKW_hoz&B;uBV!z6$v$V4Hf^P(G4pS!OAaiOao|~cD!mV&Oi1Y5KJuTw19ar{k*hjmHtf4tfB9~+460M!7f)0y`K!pb5@8NBc>_S? zKOvh7Ke-$J1#lbl|63D{De8B!vbX>RSn|CZmH)VdhN1np+?_J{3f&*kycC|!^36JuCzFAid^fam{o1$*>+c$=dh$j@#n z1TOZba?V}!1sM>5gXsR!k~00uc%vG58c{ev%%X9rqR0q%pvs?Nod$9h0QIK;20 zC4-!S-~4jfk}Bd_cxEq+ud+$ez|7PBXNmeLc;_& zA0BBhS0V~kJj0*6p+%AK()Y^jt;*8_An@! z2mxbQ$cCZg{ipjzq2*|+1e+4oja##odx{rplpkLdq!SJe%-_0s|Hle-DgB7vp+d?J z=#PDuly5k;?2&u@bFoB{CJNzrq%_LF@uD8rlUymzY}g}CqEY;Y^LFHCxrJ4if4)Yk zo7lG3Br{|*=2I`9fQrsjpPT=ye1rKhV3sF@k~zZJ9JC&lE$*sb$ks#^@Gmdo>^grLpJD{pHC3(6ZY+KlQJV!v zTLpVmy=7P2Ka)Re0iLh^W|z1oMKs$^ecc>lBx5&iAiSy;P9Jr;_`|(RaP*5(5X6@1+VIQ!5VHGE~S_j)8uBAt-nnD z$~dc4^|NTttU=zdPq5{tJ10-?S-+Fa^MkqA`e&SAV`<>?%N!{VI}9J4x#v-X{%Ues zf4Fz^yX?3nVx>WhVBxLJktZy=Zgol!cv()t*a@XogVBz!u=%VhrA_7*(px4po=&PC za)2tI;qSLDV#@=5fM8H?MqdW7H;Oy>FM7JEy_;DyJfWRMa2hFRiiSG*LOJv&eO_G! z_n`+lEx&keFYu-wvjcVH4gQaQO)jGQeyRr>W!rj^DOW!0e9r{@Q>csuH8S%~G2W3_5c67BKeAy!K-#RpmcDL-c zH7eBY=A_ind)18F(XRJtT}LzN9D!*%>GaR8^BFjhM#aH>JO^Nxv6(rc-pE9sQrHrK z3G%}WVH)TX#aub6|Do$y4l#p8j;Pr{FbQGJSL+6|1awK|LmHvlLC1A+b6eFL<8;zE z_~0Fmue2g>&5W5|&z%?io++hFJnW89j>?Fwv*q<%<_>2bH9cn&*;^TRu+hgB-Buuw zZq=9qDXsY?^e@BNH3k;|Y;`;wCnTlr<&B`2!@3xdP6k2KjS|z$`0Ck(Ai~>~)>Cr` zNWjVg1{me&8-oiYBS={aWXvS^g#!dw3`Ylmtq&r&xCf#SP61?kXa*s%eocX!?OtCH4gfLokrPKd>nDb_>J8e#34T#zrmQCp0*A zj1CTtY^$(JD4HR%9ScLrvtPoNV7j~i0k?{WU_d=t8gsaK7~#hU^kpBuAY8^E5BH5t zyag(SWr+rTSb>I2Pw}li_-Ozd&7PmIS~!ym%f}FE1X%mVHOxYQd9MVvIj9#}@);n> zJy0Wo)J)->$1TA_{Ozb5odv3vphs`w{#7*In!y9v=XYKR6QS{sB+-k1Dth^26?y~3 z96ygaS163xP31q3)Q_to&}X!B9>$=~dsc2Q=v#Z2Cl3~D*JC1NQN_LKoZ6aHB$K-O zL9R~He6i0v1-5~U%c~`eE}h14t%VERO-CXj|vI)gg;+0 z`}5oXn^f0Vka9zX|=SOikwHi$I$|AQ3u+hj;pqyRrP&B5K0>)HD9!s3;tk zM`YS_OB++MktMiw_*@@;RPsY2$=8oP*hm#YJaR^+KYS+1y;UD>KU-RHA@9)HcN0m6 zhAXQp=Wr7eu-*YQer#YERm4XTgkp9=^+TL~w*7nlP@Zn?+v4D{ZaWYZXF0Wi2y`AE zSu24$JA8r(;^$LVt#mvL_;%!!l$U=w&be!~>&-d%tdYS7n+(%LVqJ>#hYYEt{Ha`F zZd%x0|E_NrLA|x zq=%xoS^0jfj7|yw9p>lUE9nqnPQ~5GE=vxpXi@<%JtXU1QO5jsKex-!= za%9I|=(DyLz_~YoWoM52^Mjiq2VP@@((da4>6C98G;KBuSp*ZfdWZ=K^+Mjgq6Gf7Sr8`>Pz7hxuxR9CG?DtJ8!c?BZwUNV&d|Vh=u0~p zj=qcIt5xpxnW!C5-Lqsg+@1n_UZsB{W-Mxg{84{N~jkcr_+?1E1P{=}#`1Sje!?K9CB$&^ ztwKUOvlah6LE=hq11t%?0U%(6eU0Uz8Fhylur&TGO#Aa-vb`5h$^&4vBtZ3swO>Wr z?AQ|M)_22SMYMn%i@*br>j^W*jj!Y2*D5m5^aDOMlX^d@0~#2ZwQk~7zy?=V=)pj| zhR}z6+W>DW=iJ$r3Y<@2_;XPukYeRQVenkEh3b?j>oiN2|UOfh}d`3sl0Lglws+jB4&vjvIAnskmoq(G_7w8+L z^Z%1J10`EC4J2*i0LJ*hlY+DXxi%qIxV2DQ1RtpQ;4UICGT!(DWkbE8ze)D!cQuWg z=@0)^z<<`W4WA^?m_jfn9Xf741BjIjr;tDaMaGI5px}+iIL|;~0JBr5j&y*GAPA(x z&s-vi;yAsbdw_B{XM9)NAaf??$xtRZI;if$ArVb3` zc^QKFBu6NgMKvRu@UeZOo2cW@4Z?eW0rBAn=xPvX$#@Qfl^@l@0(aa$0a-XuS8T4@ z#_Z!2Ni97Dz7<9|r@E=&$@5xzL7**_br`J016vAF$yl(r#NhrX+MbMTW^&Hy3YDAc zu!s&p9LJYE^Itv2Au1;e>}Tn>yMb}h02Xrt=5H7N^VQvguJecW6w&xWmMp4>jlu}U zN}xJRu*oce+TMqPiKCt3(7^33QXes48!$(2U-^JX10MAkHu>)t{`0L2jA4Z?qO=NZ zmH`|fvQ^162{aN=@NNZL_f_iWN#nH;s~A2G?pQ@=_eZwhgFc@u1*c&EG#_C0*SG(J z`3Hv8cPALbxdYX{WX@c|ET?kbh3*3C=vFwQi%Pww&g^jpr<@)Yd7kmtxBt1mzx%#i z$?zedj{bZDas&ZBTO$X}Xmrm2dvfJz0$*Mo;-nBz*M$?~&u{-!u|n}ADr|)X9A68o>@V;C^L>o)9dUw8roU=isSwO}-MwTq%7TEX$^z#`3i`|2 z|9l63fc?8L+rF=7=pE>DPR`72-;iCu8~?l(S1>W}1$T9qnvcsnHOmpo=9q+6#9ZnIjKa5BX$9?2f5YMfu@ zljK<;dyQ!#o^0?cP+Z3M&agbbt(@jsrQICpS|w>ApZqEK^zrcK95zQjN>tV~X@}^| zx~|L{b!;z2;r>kh64o}DJWl7(tzk_84v~T_o)Db9@0ZiC0AyQ@Vn*+$rQI<*o-?Yl zniGGEHP#~7Ho49qp``jbBlCHgON3LB{Mu7T*B^Huc93P2JeSX)nr=7Q{NDmu zE-GIC0UmaosoQ*G)Pi(i$@F_j?M=aL|44qvYeiIYTO;tc>x`Q!jG%I}!c5?2tjq(p zbov_{q6%_8k~%Qus=PV66lL29vNK<+SYQ5Vd?y zG#bR&GSNx|snF^hfnRbkKH@)&F9c z&qM@DO!~coSUe0OEad8gDq#a8egVA&YPpnmTrpEUr*;t3%kG73dPi4U+q5N_7ya(jPZB%D_Cyih+=Sel{)t9I z1j0YS>@VE;lL4hUT|t{EwZUg=6|*rs>*&Kevhz6US~3nSMX7-M_Kyr0{c@x6D{~H zqG=TlFn|=FE47B=%3G{cMsgZ=MH*`BuT(03@j>VPWFLu_TQ+r(cF(vR>YfEOUX35W zifAGrWCrZ{8$vs7Imq}pg;zqHVH0kZn=r%IcV;RIT@0Ho%j69H2zzo(rN`N{dPhS_`J#Dwm zj`;fY>dcjT)%r&;CQ=kdr3$OWx`jccQR!8*@7ptM8Jy7 zMZxxjnI<0(2Xtw{V~lx{lJ|47Mau__(y+U-Z8Y*@3-?zhtqyW?J*_DgpQl#Sx70e( zOrgizJ9VVM(LD4$BOnE%DQI`Q97^vdV@Pe3MKv1`11@!3;LklDws>33T11RPy2YKV zS6Ray9D&vaQ6nAnTlFkL${bGQ0Vwk&<_zYba$(iTOT$ZA&>8`an4Y5=#vfoB_ z-&RW9?aQko89`tn6bcB#eMMs^^aAY$eCJBCKb(q5*}l{LWIA3_JaiNN>Rh1QQQBL_ zk7)YqQN828^eb37L0XS8!jISvF1ZKdSl!J6gx*Vupq5ZT+t)zWrCN#z*wzKWv3%wR z6RAqW9oiGvT8fmfR;vC~lZt3f8RtV`6vmMg8DFT8EK^Fn@B5;&k&@-wa7npU*p-|) z(kec|1%7XJ5Qol|9WRot#mI%amcT}ArUY`P8vePLavj+_$OH}J)@bGXn?+kz-sX?J zG?wQY=ZRjQS#djf+{V7hXGbS!x}b9#znO;<3q%qof(e{r*chzvaVp-H{IEm`DImBq2w%L5yBbD8Ve$eyT4Iw@S?|R>t z)>_2+-0)lPQ>E+GOba{T);z+E#}$rH{BZPin&vgnc;?F~O1Wg`%p7B36Lq7kvRFpbD z^p}4IbTy!4BO_s@1n5ey+{;62rU)aS1F2&}0NI%OBL1)aefRjnF$A(i8X>+=KX8J9 z7~kDvM12!RrOo@U1O$gIEv>@-OaC+ih&%cfc@DiB;zc9KQM<+~=P5n7UPovUF zVSp#l3Zl<{x>7Mi9zP2WVyUMHg1wllHIx~f>fI<2(?XuP_s3!cQX>uBBjDMBjMiJQ zLI?m>@tj6TVu;)#+kUy3pPBV`{>f+o=5QEK71eJ|N%6V{)#va+DKVzd1lbDR(*mK;CV)}Two(&y2k^+X>Hu&;Ee25WQU4W3 zL@U0N!SvS(!vB5m3CmC>zrRBEYRxjlu$*gl!%%bpil=~K*7=8HWUGT%5^LOvX7!gv zX=Ldpw!z3uDz>5bY*#NeG7Emdo{+4=i4xq~uoosS*GXKzT^5-;a-a6jTc&>prk4DU z$+Hk<7%%sxEC(6w*D23lr|H4r!JIIE;}zhV7A}%fBHeVodMz8bri3a-QdEu8K#mTs zs8;o7rCKztMGpBddxzM(EeJIVoipD0pw7AJM#+n_>D%mXj@sVIGzD~44<(1rCvZDB zPWF3tUpkk$Qu|cese}!xPHd$#4an|e`o2N&{fSFYCJZYT3cMeFin+OG_D1Wu*)7D% z#IP6Iw?5fD-haXCZJc(*`T88TT8kLJ!i2Op)L8h4>Wxzh-3EIKoW0z!9oQ$vTZm1y zp!VSPWqR!drj8(9;vZqG50kTqZdz5?o6hte#8RS3VkLaQPN8+~hBkCvmnsozGw7x< zR;O=9Q&ur@!B-T|Qeo9BGFOAyKqxDnyNLoaCidz(*`#-n9I`w6j6&B{R*0CdF`I4* z`-k2yP2?qJyLjsq3GWY$Z+d(Dx#h|amp;^jz7lZL^D%RSW7!S9QKa!_PFwfG~pYAP%%jg-W_7o^k0;fXC)B=?%$1ScWxT zjd-+a?|7wgfgG-~K6wC?j@~87Al_}a?fWu_7Pj4?hp;r}O)(5#J-?=KfS~NAlllm- zuQ*)73gbxYk#jJGL*Z!&?-|R5+F^d!sRdfcFlz~9k{qc)A zt7vOS(!{GO8OZUR8fxYiawK-#S3O9q54-L|X;1mvg7Id+1gr14ebH*%MDJ*b@8_ttM>H`U9r`Y5-O zS&uGx;KHGYBidO|?MY*CWJlLbzAVd=mTzVSU(IY~Nn9gsZ=0oD=lfNp6Gr-Vy0zR$ zgA-Km?ukMNhbY?q;?CQneLuE$EnTi(y65@P1aC9F^gAcc1)5tt5TyiQL_Y@m;gY;p zwHI2%KE2yZG^g4(IH@^ObKYnN?`m+!4$r)q=VZCFM!v9%oiC`ivPcd{(%tp4U!`p? zBd_-PIJPS{?fcHD6%DZz|DXi z*|84RJ<^8g27m;vbz^<{>ykS@NDT`g7CWAL>bE-$Cz&MMI6Dz!88lNxDEIcs=)v!C8}-e0 zg0cwt2{sQb2s5!)l?X;8ZL~dYmoN{NAvV%^-d#8^AFML*5<7X^U*H{zzr&VpqTv@4 zJ=wf_Y(m6khq_Eg{>dUvKgDw(i_`tC+BdIvL?P-P>jlQ4EacT-$7E@&(7>wGqZ@Vs z>m3q9K(+S|CE*SHq4Gv~#Gm89R*fyit%2{n>|YD1j5zy8fhzCR9gX)dMOVug^o*3v zRl1GO+28i!r#+LR_Ni=tRvBV+dGd=+fy5KmU{q^SsgJ4L;jAc^>$wg|PhLFP4fm_P zv^7_0wT*b%2|LJdnLOl>sk%k&eB5$&)}zM<)+QXclW$r3pyTzK_6*{7>$H`w1_~P1 z)`{C`QZRYN6Yt!kUZw%(gU~#IDmWwHK;AXs<4_}xChvr>H1s%^T&tqZxildQVo&ex zH`P<0#m8|NKQXFzu<*-C9sSxIN;skp`mnL3vvT@z9Z1N4yzvGYWcj&w8TveiGiZRT znbyCNe30XR1>?wI9;kl~3j_prQY!(2^J(#qGnQxMgIZ<`8B;2gdYt186j}Z`C%T>* zL0Nwu#mO;w(~{iETaQ1R8Mb^Hx<<^gi^wxHd|WAQYm1%C17(n}s~S zG{92#jd$*i?C)mmzlh*)-Qlgn?f_tbFRw_W3jF~=-C2^7#?+_;9%96&eJEPsB1CbZ zid=L=s4tk|hg?4A(!xQju+R4b@^Dc3UiA#A7@3-Q3t9EZEw}~1WYyyzr!a6=hJ^(b zR-Y2+t|MShEHtt)K2V8L3$^Fc=K=CTA^3B^?(lmOV3aXL0p6Vtf`jj<&Qpeg%fpvo z8T$iw!C?lYOBoyil?j~9zkfdhU`_PCK2Yz{YxuXJN<2Vo2%SRFOG3!qV)8)Icd{E< z6=Q&m0d!s9HL>a@7t-X>6jEwYZK40z&vQF8iQbx8Z+ZdAF%vfi}%=7;5(fao3`}=;r+yD42pZ7R=Q_b=`_jBLZa$e_k zUL0r}R__PSCJpN&&=|f#0HC|V&@foI&uGdhcw(PPbtMqG8E`3+ck(6Gr@=j(`q_|Kb>1R#hGAl$6@d0%WPlNhBTdLCcwg2GQZK7xxug05>oJcX7r ze^5V3xqw;@1UG%aTliTKrycV>N%{DOhumJyLn`$JL5bWMI4T}o)A;*&Ktl2BK3fJp zatO2^_}DXO7oj@8accS)>9hS1XJ(wj?fH08po8b91z@a+k#I3&ZDJzaAviH|J+Ox_ zdP#@9UVYW=_tPp{C>%SIv`v75pS}W z^K;9HncG^B3>66QlBJPglYC3>0^;El;7(`z&E+Pz#WNFJVxlmRek|rJpaSiNG5rR7 zZXq{;KAZ)f&PIlY6x3|OAo1y`LA*^9KawN(0x>riP>ITCW!A9^!H_dDg9Kz|`w#;v z$q*?DG5HSKMCc}_ZUE(1cnvhUr3Ncr<-D+!Qk1Q`+G_06&lD<+3m)nnt8nD-Lpx|t zktXl=S`i~3p1KHO{xWCYOGp$e#@*##qwZOSx`kcB5UQqz$~G$^X(~+ZFxojK#qIe* zOB%%TiYb_FiaG7ZX|^d(+iGR&Z#AbLJihU)0H-*Zfo7e@fAWXJkzGo#j4+V2_yAC9 zA@i9X&<7G19KOm|46tt=$O}wAR(J)`9z$n^IRMYTMr3(u%lsuUuB*>gK@9^6jy{4R z2I$6ul~nj##=Oo90(f&^CQ#Aq?}6un>UtLoq?7MO5sYSJo*+*OdWq(0B7`CKqld!Y zk4nX0iS((HfRlk^Ed>m7e;Od!C?AC?kHYT|6Cg{R12GuBU{8DrzNR(!|HM^OraiGT(7r2PdTF6Grw zB}mYS6K>F4h%w4Vf(5^EO{+DSfoGjZeTs#{mAX){G!+nLxbzgcQHVu=%BPvc|3+uYf5r@ccWo8lCaqg;z&A?Q1O^QNZXY;n#s1~&{J4RbSod1}h}=VuS~g}ExGTP{^8Xxd@- zv7_R2X(N3kn=tHHSo-{i7uTMqKMXMtU6f!NlM*gtLTZdM%ad75`j9q~`b zFBe_oQ`J3h_Q@F3$qc6pu6U7VP5Y|*@%H7`X*ep8%dP;ofvTVAP zf{`oWonAV66lEnzU#mTlzWZ!YGQRtu1ztf%^YR)le`fCHD!yPIq%NJHOPp{jUXDu} z)K+WIlul<=S~gxDazP$#p>Jz^vlsaf!4>eMe~7DSTg{Ig?cE}OG28HgzuS@2TLBVY z!52*nw<%N#2L+td`;fI{wY|zF!zJ==VOCp@250oi?~Z$5?w%-fMZP{hKBre+RKYS+ z&tx=yuqj^3VXtb569Yk$P7Gt>DwAJHxX?j>a8AglN_!KlI%!B%BC#xmHDt*|-<&|t z^SV8$rD0Rvq^S5r1zO_ebLd0Pgv)kGp|ua6UyVc=m6WuF;MO;RsYj?!I8%n$D{9c5 z#3kUZmzA!`tO%h^zv4O4@HG$sjuykRUUDyU2RN>=s{T)~JGi@8IGR$3Rp;6!7iAa3 z4CY{qrc1^^E3f5l>YzkNc~XYcl;;tS@Sg(KKgOzt4f0D5=_M`+J((Zst3*HVM( zuC_=uN%h>@7;>V#Xhs}<-%785=KHRWr18E4bSVXvZFSF=Lq6*yc`do$>1SBPf@px2(TioBOoNof_9xxi-o{?L{*& zKU{8GZC0lIi*3pSj_Q{O&BB&M(bQKaTM0|-4s|e8R`^gu%Q_OaS8jpcbHuK9=Pc4< zHyNsNUA9(NirT5{_O+PV1e42E@>xmF-ADnyYxHZ+ zU&}xR`1*9wMf%HS8%y;WwbkX)42nNjE4{yUx>C!$LOmuyG4w%nc9nH1oa%G+_9JXH zI#2I5qo-THqDWi1!z-_XDDHZJUcS|iYs{oq;X@L&n3Hg{bc!9KNz)t@Lt{fVPchA{ znlxpL{rtT)!}OXnj^7 zk0j|`WH}gyEt6RlChwwVo*DoKy&Xw1(AVFp9yPS5!+Q5r)cNPURQa&x$V?Mx_2yo? z{Gvxq1naD_K@%?eI#A~Tb@G=oTkA`&qZ08Ef#)?*h247^h-Jk?2;Nu{j=4>p=)$iWie5G6pevJSm z{)&6$YhHB`7qf!Jv5N<_cQloYRCgo6+?7&~#JMu+jCXcI%;jOUW+pY<_s}-3tfta3 z>+RRO@c37-aNY?o9i94=ZGAp}G(Uez>$2-Gt#)SEmiVm}C74#TbnCRu3G#TdN#cfV zYsO82cuS_)6SMeUxwv!_)6})*H6R+%TAK9rpzUSKDOn>P+UESYV(Kx48OG2DMGXvIbf>`fb{8l5|r)wzXQn z`sZ!X%BZA8jW<&l9gwM85#n}py*Dair=@8?zo~ELCU4~gqUX{RWw0v*C8ju|;yU}X z7j>Un@~n*g_<;Dk6B|{p>Zv_BY;IU)p>)+^(c{NE9?#AA+%@Ogu1h8Y^!JKhO8>Me zG_Hy;kc}`nF8d_HMmFY+%%tvr;LY>?w@=xrtn*|rPbyr$3jxa@fDZ3+X`R>{Yr3vAnP{(75hC8Mdw$f~(>?k?cpnS?BQu zg_9##;G2VjXnlMTWDY&b>c&55ppOWanc4vW;B6!2*l?fNGz9=PnI z{~edTWga)5_XDmAKyv!nGnWC7>2Ve{PUkncFHaC;+~+{?e2R!BlrsfCDJ?A}W-E5P zvynp_sPO~qCuQP0k)+a{!UdcXtTb5=af-W_rOP;W+{<-{^q0WOQn@RcgEw4^EE~F* zg<80wZ>lALu7_U?uWTKV zS=Wq3aCI3)O_yy*4}_LLYtN}NogW;mPi@V)yS`M_CG%K*!zVxj&b>ONEP1jhDsl{q zP2_3uh;`ccb{uOx#xcnjwUk%XJCbd3^s(-Xn)A%_@73N8R2O80HAR}bq?Ut?Gz-bz zgVTvbpgLd%wiuz2nuzZkBT*!PjExNwsw`jGT0X4-F`+Dod*tHIGJBmSW*&5GB0a#arqMV<=KI^53A3LZ(Ek3vo<(6C}y*7 zl<4t{;s}#?2N!Mex2bAxUF$<1n}?<(97-bixVW@|$vVU2yHEcS1h&s@EJt`vA8Q;g zaFKfnD>W-;n+$(+Do#wGC7hi`H7Q+>l2njvb6%{NGx{p{h|9?5h?A%9td^8KqYhm! zbcBsyT`P_AP1NOM8d9qW$#XSxz?C|UQlvIiFz zHCa-RC(-Q+MBi*$3r}ee$Mu@Vln=)fRwu+cWz!ws&G3m~LmlynNHEP42JL*I{NXqB z#(|Lm5*mc^!r`T1-hJ>2;u^oWiUtF*+oMRDREs8VdF_(5n{c+V!*+JzO#PWRB1fD( z4zlmbkL}&|vvBajBHfG|d6VseHP~wNK;Cewbs&vUYCDBcE+O)#53S|xW-W(W2Vm*k zS3ihtVm;sY^DCS^z|I@nxKj-<(H)dfHfwu=r6sUDn!ya;Z^e~e(0v#SQ2B>2NCJPw z<@@}Igh4Pjr+HRa0to5!`F}_1#r{xmm^02Fi1cK-VSqnCl~~A{P_v~{8mU~Q$w%7H zLIa827hcZOPVDp-tmVKF2=#GrU6u77KY3dVq1eK&${1;DdC2|b7ogyVaur68^XPmO zo)I&~Mds9wN`o@eRl-ZGKAVrCkF+fvVoibKL>}xlz}*Rc_>S(sfgRZZv@iDuWfMMX zFC0f^f*k8QYZY{tL}{CZ(G?K?<%Otm5`z>u0?1noJ?o0 z2SKNrHr#%B06t*h6f|izWH~`NMVv`mUDO^>;WZoAnkh^6=*2mp`)=1cW zfN;zm4|0K&-hYHG#}W7Q*=P5uUZ94R+@L*oym&%tPUy1m;L!fJ&$fDfihBGy>HgC7 z>lPk)``YmHLbIX;7e#p*7*N%sa6XOm_W_|_l?x_-Z48fx65sGuWHcK-yYq`wd>UBE zDZig~5(ta~>o+NZkA$;7mx8%g1_PpEIfwgy=*)6k zk@gt22KAE_T&LgV0igcbA+eyoB+N1T`7#z^;1KXX8N5@AOeeRnV&)Kwk4tVN}I^+^$ z|B-s|(?TV9Gmhnm2tZ71IR~-kfxRkX$J7<@LUMQGDsY_D%1G{<5MVKr;k6{1K5vNx z0v4zSt<{uL(|t0)?=I_MB*Oth;3t98pwasraKLUXP}4XN7zD}|J0YOwv-*gjKX9mO z+%16AucHIVH{wLr10*dTyBexbN&-3(%g|h7pX&b`uI=i=kQr63oYNQbO=ZnR#eO#s zbixd>PvrwxfIYsTH!lgvUw}mrD|j+{neTYvqet)={D7^f0ElOHJ62#gA`?ii09dneH{Sa#o_{x=bQ)&X(Y4(3Rl?=6u0^K!jIMgYoBy!mk-zPApI%@hq2D$cUzK19Hua$ zo1<7royx7|@O5D~+^7}NbRS}q(Tu9Ee6W64>H4JJwNXG5p!#DE(vxWI_?!JFBv0P* zExEo$%CMBlHG0LZLCU{=C=ATeZ{}VZ`rXh^2XC483Y^=&n|s7>PN=LKoLlHOPXuhr z-<%M^3)mFIZ=ML4*590vb0@GV|GKpAuKQoB_NTpOKeN|&%aLO&9i5l+@e|_3bMT`r zlGr-@lKUZuMg8#+P)`krjmkrdFFk#(p1YI{0@~~|NBF07udh7t~8cDV!!DJ*3 z#q;Wok4^$c7AeY>xMX@seJ&cbg6YCVh_}}?(f>DYek%}5B6^`e^mi=13%k()zsLg^ zkRcdL1$uitkCI^yHW4(0%#^$1-+(l+5l)QRmZMGbak|?3gz8Xqqwnn{52Me9&)67B zuU`pDP+&rBF7bq~Ru5W&m55%1{(C4Vs^)FuNv?aX={JVI(?>~ z{F+Uvi~Z-fZ%-8oYwCTnM7_qqMFW!qB-HrCu;%U_AR)w312OO-%B@L7c{Nwck>J*? z2V0E1@4gXk4G3#;|HOX3v~*R`wfhe}Zk%SW@~^BL3wY3&(hb*Uo|W~OK8~5TDx55Q%;r(kI(ITDA>6I0AT6r0?hDcs#GG(qx+bPG7C@3e$li&N5ta#f~eMq6V;BZNKUKAV&oh2mk^^?t*8+HAQJO~Xl7>+ ztuLQyp=!{Q(?6rH-{zxjt=zOVb>#8UNaqJ8@MwfVTF<+-j8qpaXwi*;31g0$lanws zODyDhQ8u&enR2wzY$OQ>u-xgY_mT%$iyov`;={bfZsjB9Vn1-8@cj3CT}m|==d zOZOUzW;EgogEQr~V{3{(XCE*&I}&AKa4PG7d!Ulg?a-5%FWxH*H+E>13>LT1Z6zG( zK{sG|4QwM`5Z>U0nMz_A(@>wZ$uF@h8tqvwe$0?cnYGUu&1JDSlN%8g62w;{I(FeO zrD_GMNbhOq=3+)~SXjUlQ#<2qUB#%C?N=x8E9sMdR#T^2utIPHV6egxTsg+UNNeAd z42$V%;&RsVQ-u9Jet<1bDxSWjDd?ADZOc9UjM);sAq}S$=ugnSboS00H;kj_rd~pK zpfH0mMA8I&l&2uxto zyPJ6goTli^K9=0e2lRl;co7?2_szs^ToANkM1>ke&9}O#lB)Z>QKWK8Jv`N6e#5{K zBcXTZhw#@q{rSe2<3^JGS2R{PUlGk~${rRmENoJ=9CgF^ExdPoiPO`Lid9}uR&9xR zFKgo_vFLe@Uq85_e>%WoPLj^$2NT53zjRtb3po38aKSW7K zyODZX(2~Mf+5pUNk^^sx@P@U@iGcB$sQ#7xiS0m=5tTA1HWCd1qEq)_JYYxjB{n>fM-JJ?9XG&N0LSkFJNEMCKW#XTUpTQK^P~(+0>DF?T7j+|9~*A`}2G{H6iZ#m%xb$&O}c-nmGr3E0T>iFZ?1P@c6OVgP)y!{`||sV8-iq9`oM$ zWGF+$w1bypu{p{?ML2MGlv!w6L{vnc4=w==pU#32d%y~Q$F}+aaD~L;V*wiiuTs#h|m}TbYeJ$cnDjQ0#fYnim1?}Bg>x3nR6e_^L4{v|MB&fSTx zWZRGZHtu?j-&W*jzY5~imKwleyoZSmuaGc`boG5TAAHW_Cn;0 ziffBr@Xm9jnMT#mqJrb^o$G&m%<)1<<=xVW9%da>k)NdkJ5L}w1YjL5gw7Ul`k&|v zd?V%!0voTDtSR34X#W+mw3}SKhdK8u{|Ga8fUHV9VV9t{J7f zG3afXybqDXC~&G4W;Eq#v!#naGbf}4X$_Bl41JyZTru{H!XVb31@42<{R|8f$Qa$1 zUB5$MLI8VIAm3E?$8d^Y2Qxs?bmV8AA8CS%y!i(9`%9n`fP>5N)3tws<$0cbivA!u zPaA~?KV^lH*}xa3_lA1(IpKi}`->hN1{<`LZykt4cF#g2S@X*Dzyvsl$|Edq=p}sj zo1*Z(Z;inKJ_fvNGztQxwLuzxQ2b1|@WfOX-)!;->EM153c%>`JkS^2XMtypjcr6= zTiK)weDQjq@Z6Wq<~}8lgEvleL6cAS#Pc*jCqg(m+I(oX-c4!Rv<-@pkc`?u69g zYZ?O~V<6J-4&TQE4HU(HyYmIaY)yXsY1`;b?k|-mKwTdhfvBv2ka6zy6dm+Xz;10)+d&_*78^8v zZ_@&HbJ`Ee#%qk7J_(c}X8MSzUfgREWfEY-Y|_(;&rrP23>5FT!wrTInDlg(EY)%L zi^d^P9CP~oRfPI~Z7ye9j3?cLASLowgGsqZZsaWY<3K^bIyCfmcK{wZziqoOUJNc6 z8yna8f^);CfzE*0Fl;Ye=6z*a3X2Y65Pt&MV0F_WG}Xy9j{*E}m-4a>fn zqJLXr=ciD{5S@+t^#)&R1h7`efX_pfzTv^tx8OqNdL9#n#ut~;9zoNBNy3V zuLq|4Z9xv*gN@K%-poik!V=%xt|h7PV<-@C-P372>O|bn_G~7)A`OyO(42DQLqrwFg@dt-GVQ zNNwHJ#*CDomh?X}l867Eq=c!1eMOS`MVeTzHweQAd35}!oYqH|NFu`DouW}F){N}53Q;Ky5gf84>ZR+|4a6tnQh>0c`a`;~#hFLDc8 z8fEb3emOYcqBi<1f@*=j81TZ`3-7h zwP^&)>~n8q{e>9Oa`jU8JT8}Q%$Si@2^Oa43$>dy4|a0aJw5S z);YVZP0Osr()x-Cg^n4*Xt+`Ph+0>rF86S!W|b5|!8rg&6Ttp=NgwRy@gk9+z;wG@ z1W=6oUQ!p8S`oZ#tG?8l2TMwB%wBr(@CdC$$Z(Ww#@u!AQfQ}4UQ^Ry+(O^}PUR<- zyO&-|mw3@`DJf`Z9;RY0Y8@^U7oUA@YjgaDUIh(ZjgoWO&T2DtA52g_vTXw&l$3pk z{s2g3;CU6+OE?xlvrRWD=+6bc7*bf4?$GG^0^41 z>fK=q@H*MJXud!Ew&(bv@T@GyMR%nEzU8kYKd|LD##x8*c5;C)a85^|DiK@Bjl@R6 ziylx34gi<&{ZW7@$X45-!w*hGQ>c!0GeUp#;~v73(jc1I31$L_{}lQ0wB@&}O%9Xl zW@ek?QnN0BzCz$b2HFzRATm+ACtRzHBenfcckaYfLa`8@ci0sCBo8|W)Yd_A#qFZ; z>%yQ+3+oI0@xI%>_Cxx98>R3`rel_}pn?|(7CZwv2MmaE=kki7L=6Nm0@(P=05NK=TN?>%0l)Fjq>rV#?#__jYlT=0xHB7asvO!PqO_s&VaeIwe(Ns{F<{99e|6-%C%e|tfKUHc@nsW z1n-)jvY3@8kpwrYt5GS#@2!MVYQlcbd#PTD);Mx-V713f;py9$%7^gLwyCQ98YRLF*#}ED>Q0!#a+41i|9c+rKl|_RVt3fd z;w$9@)0r2s@ne2jCYhbpUk)5w_Uw|nqcjIzm{Jh=K0xw?q|Kn(K%3UNxz)dSvf}Kd~>!AWY3Q6?@xTS^WZBA2^=_ zJnp~YsfEXg0HWPHO~&GD5qEI}z_mj2MX!D)4`(18ihq`Bd0ucaFeu2Zysjc@q)I8W zrtA@d6EXmD54ls*B=%I#B%z8EYONHUUlMkJindiBuS}GC>eC^t&-6%g!)Ug`vF>wI zNjLMu%*Lv}1g^E)duC?GWxcVK(~A%|Hc4wy-^Ngxi~9UrW{fV$0}4 z%bb7m#==Ff<{^~uPz8mR3Qn2=i3hp?-Ixd>a%=@K{*&(EMwTrqe%@2YMkkuDC_0-) zn{FaDV{!^4KbdX%BvIDJ2#JrUR=0vucfYL;p(iJV{ey)4!jsQyyR*m zyn1w?!C*^0rMoosibIll)mFWhn4w3Fo*nnmvq=LOfy1)z@KW?E;h=JnAsNv|S_rz)S6^8q#cob{eL>c76(KzrV?_zQ zW8B-WqbHB8=K`an#U6UylaAU`%-w_^tKxzS5}qqXu3x$dm>h$)V8JcS);8*A!Qh!U9Jpx z*CI6Gm&99GjYds3#&ox8_3^(1F2qrn0*00NlTtC7qIa!ja9bBCFz1Rnt-k;gmX=q` zQBwYpW_RAB_2?yZ&4cJF5l4%}LG(jjq;sKMAdLv|`HTo!n|3t=`hhXH>kNk5XSrAg-5+(5OH;Ow%BB zpnL=CN*8^F@8%b!dQS@^`d*@O<%=nowG4%CJ;rpiNJs28>LhyNMk_BAVCYc z%okvcAT%f5;roJKZsu5?{e>uF=W zY;_;v01PI*kj9l$isSm0a)}7pB^bgaP&XLOmXiWsb;4tS?a2O{3&#(Ab@^?q!@!l2 z@mT%-ooxwOvE=cw@iF*GaNighrp6Zl;5Y7rc6|V`^zk$F*(gktc7GP{9p`vXw>olR zEKCi;1}#YC`IhpqbjC+>6dz>Pp2B{AgH|MWI_0OHo7hG+$7dXd4qx=Ch1Xua$|1z+ zI`g$ML83wP=jo%NcYjkV`04+P5PdQ*-*1ayp&+1j#uA%00fcIpX!rMs^Q%x{kQJHj#O${AuGYhvI8xkQ7wWJpHRSphG^diLJFVf3u3M{7qIFzV+A zJkQ5n_3F9m>T>qzO7?|k_wMm(!txfPLsZH%tV#-l^cqGc$`D4^J`H?GIk)}GwVh{+ zh%W@+C0@nv!ZPD(x4m5TZun{_AZqf1RsJwUfNN=Kfs~{|+39i4Gxw5`&+e}Aj*ZdulYoX$F>%`M{0*ZXWjeczAo@f&kv z9a->T%cE=GL#*A~A)hPDY-8u+2z$Yai_J+m`)a1`&6z>5b>7}sJVhn-2fF$lW&Q8^ zeUaXN!KC?!r0zTygTU@Xi)ptN@TTNKi;-aklRV7PWPSBXvpL+o(k0>iF}&y1E?Y?j z3cyg8SNf6f(DdAuclP)17wq@Sksq6fag+68UplT;KZe{M-DbHb7xU#{UIzOSjo6M1 z^irPl?!N|A&+l60H7~+%fq!lu>D}_#=$Q(7Ke=fPs<GNdd|6ESw3JHhdY5ISUZ8=k>(`Q55V3Aj<>9Qf8k7o(Wvel=uk{w1G=; z6=ZV|eeChZbhb=&8Frd?8O|Y*`CrpgEC)1vW|b)`e$CrK{s?{3OSb1ugNz^G()Jt> z(4dDPtGbe%_+Mf*B)Q(54!Do;5NJaoW4*`J_)8Gw%u`}%6C0YxxARRn&viFG9T5vs zQU1o;3of_3r?HIzi**4hND6fvkdl81+0kJ7B!}A?(GTtuNno8Sg3I_d3PfW%hPImr zY5TDe4@s^bB?tfpfRtROaxt*dz{CROX@nfl7oZc~d{Q@0=_PQIc&s0rr!h18Bp^&B zQ6~T>;@EiuC#m%UHNXKRdk!?2JC?P*1&+l>pc$NefJ$7&+M0pEg-kwh?^e+_K%E8d z!I>bCiNZ7L*F&yJx2-tZ8dJ*Io)^&hpdN&lzF^j@NcF)DCbY6{P(}J&I=+J1!`AUs?KDMtM>0?QCv<;-4@){zOw$R6Kkvw%>P0p zTvq-ezj^f1^Vc0^tDB+?*;AE;C3ld^Cj{CSY*2M?ZewH126;NJaqGjNPxE;w6_tMz z&iwr%{-b{umC9x3K9lLe5il(&kFM<=KBMMkLtigDkFvIJ44Hb)@)vp|dI*Pzw*Bb>{*d|#kCp!tpdtBf8GsR~<~RVO z_?5Z8TRDgVS{Trj$4C`3TbRj4^fXe(5H$8$kb?u5v*Lau7eu5|KK5;h&Ea=b(L=>K z36BQu6x1X=?rd|Kx_CoxCN48Z{QAZKV{);(x7%5ACMYiPJL*yT-rgn{kz z&fA-^9MH4Y)D&1aavQjwO*}r@1mSz>$kp15NQ_ovK^?RxGT7HMJH=e}=4Isa_SY@X z$F?QEx0!58dr?eP#)zgErBtfC4tF}BD|J}^M)4bwQnO@|tm}a6C54To4Qnj*^(qw< z=015c$86EM6&^i-)%7)IVHY%cse3zWOhnRpMdf79)ufz~6Wmg;Hua5yw&e$7!|i0f zQhJ-QWV2JcG4N79v%fTr)BBE&j;b4yKF&5?I`6frtKQw!nSZFkNI`x>-UxkjYFRtohyV= zUfr}ec|__&)84Y_MK97fNsg=4m<7AGm>6g|WO|n6w{qB5*^s3r>6e5H*#pK#?`mv<9Qc+%g%;$;lx1Tm;oc;S8bZk|2r z*@Hn+Wen&2yB2TTnrzKOwT?m~?@O6FvM(&pIc&O7GhEtRRyyro>Fhk8Vx_uj+YXzy zYS~7za@cdVq(EgS*}ESfr<{B8u1a8+*G98dS5}`tU=kH2Uu~djXtE+B+08_(+N z>mPZ|d=`EAtoU)+y4r(AHfdg$fbTD5?C`%G`9?ukD= zXni&*c~Cv@?&DAG1Dv#2AJ6pjd&Jx{#XMA}cGo&zb-J>2#4AV9bwkYBM;EiD?mpYG z;Np6Vv@Zklcdo2H+M%LWl(E-PYIKQ-p(Z1Kb++p{Lyf8&N9Q)9RBUX%Ex~WNZKCi# zo($mhX_-W75aX9fP$BpG?C~A=A1H2pS~DeFW5a+s$8S09zr@(FErNz2oa+!^`-X^;Zv0X7_+-iR&#T z_mg1-f;GSgK=vUjKt5`hMMvzKr7b)i=4tR7w?H7o`PfBnq|P!48khAAka_|CONJUG zi6T*ml<;H_kGyO>0YG=c(H~)85F7TL7=ZQjeugZfWcC}N;OAANVc$EKhXxrhu+4kRV3Q8XhWFqwi-J z2yP4nb+e*@+7Yu|T=d~g3T*NXD%Yq0l@ah&=z-lo<>kiD@j?M@r)}PpnMoYc33)vv ze)(>uPUSqcsUcits2d!`Q3=1`LXK-ufrTCZ5^yB~&>TO8}FM%0#?aIFdjG-|EC<>x$^`AR_utuEvOCXKN76!|4hNV=jc9HVh=J-C`u$sBB={XODvedN6 zF01`2Mxp7p7%mPGV4bN+gg~}V(2u2qNV0#fx;#pW3ZDAVhu#?&&+`@t500z_l8>B; zt5|@{fJ1(53|M(MKQM~Qe>q_~qOqrS&A@{619m9w>;}NDGVT(@ow|(|Z#aQ$3BL|l!@v61) z1cGTJ+i%Ofh)4OqoM!!>=Wd>MaQ)A-_sjWyxQwHq^UE3kdA_gh?*H}BeE7v;0OrHL zzK3%1);sSxcm~gT@$J(FgC@?&CC}d8s%lR}jm~($+T0ds3d7s;&Dc47u*QEPP5>t| zYe}KAz;zj$xVKsse?&%@bbq1wcOLYwn#GN-!I98;qmR@@{&i_HCw3A^x zT647hLXWiHfUS+KqKg)03_8df2OR~br?Lh)xWH0H)my%pwBzml-pG)Y#>*M`lz_q; zEu5ka+ z0T!ko4qTf{!oy{J90`Va*1bh0VhT5tgQg;)dQ5g_T3(9pmGJBhZq{3AVjdB?QM?ml zbWT0m(KLN?bexm!aof>}=E9EWzgA9&Wr$_)vNqtx@`wSTfZkz#jOCC9FeVA?N>*XF z((MTs`WfAvMDJZo04Go^W?x3Md5%Y`$+Oqqr)$>H-PHe`&y2-#HQc$5+Kl-25`Mw2H? zt~H4oGUypFH?18!ZjlzPsdBujO50JXv*KoyY}cpMC4-TXQ770D0R)HF9bcY%zu6@E zxwoCSmqGLgjV2gF9!^6ANzTE(;Pv8YbW?IFu}MVc_TXLgS$RWn#6Gkc~hWfnIp zYuUZ6tPo3_bK@1k^--L0*;yaUl4e>=htemW|5SBTxfFMEY&CI>5_S=HC+mKXw9iyB zv+w4l2H}?V+2o8$xj<#m4C3X=8%{RfZPDg1%=UjNZRGjki_ZZV34 z3%6d5f9xb7R)Y!VY>&>So|nkUOLIc5)I62$#3@hDIy^0rll=Jj@u3xM=fzqRsv=Ms zwjI@q)t~Fe+6^}5p8vu%VoG+)g^nbWYh*N;>A@qi&7-9Urph-l^-6Nuw240RJqn9^ z_CH2<9BeJ?$luY{ab6eOrn!Q&EU(n<5#hGXDpK=1#>aL$Et7=3J!=#`oz4@rk=7Rt zj@huf*ZV`b#OhPS7vZ-z%i?K4{vN^UhKWR*;Pfpu%SUu#m;n!aL?uVA?p2ZVeEemQ zF2`x?77jwrog{>#^F4?2l6{vj5J8%|yKpz{cCfC~@G`CBZX3ewR!ryx&7DcC&Q1%a zbZ3!Dexg)CoOPsL0i*rF@dEgLUcv77%D79Vcv#7exFbEilF zFP6sWz=vLbuWwpEBFDsB7oPfD_}oK1C)U$%!5hWP7i^9MHW;ycn-8uF8Hs)$^*oSaif+7Jf4v8kXVYDmEAL|UWEzR$qL^L} zES|BySnyJ^imL6C{Np!?$`ZZkt5dZdCtq7zrbNZz6-;lKhNWa?S$FoSO!XJk^H5By z3i?f}@;S`H@O)~(8tW5w+AOV^mA-~$43xhd@zAge?iN5mCvn0oiXKA(J*a&)CUHZf za>kP<7e1G*Xze(0R^yf+ed8oy84FDtjbsLaR5#Rj9s{DuT3cQJOTY=e)K~LGlS@AG z7E!3whtbklZK`aIxmhmD-OCJ%dVmhmG<8~+SMmYg$a1fVt$UDiVQheqZdW^piz;G; zF_%mm#O^C)_Jxk-Z=J9etaLwDsJ(?E*WkdQ2VinkkW2f`1{$aZ@eh;&Cl%rnboMp0 zir6PpPZ)cqzjDzetZ!u^Y6zj_N(Bwud~KM{-I(BQrCNT@kI${aZeY@b3rcK-&2n|5 z!;_QS2Cd89SvyR|gIR84Z`QpiJiKk!hS2R-)bw{}E&h;*F+2JgwQ^zl?V2|_LN;?^ zPbM$cY0d1G6Q?=bJSf}JS*V4{)~yR|tuZ%7p2>-_yL+QFsuvkiVk1`&yFHY*gNeCS zjyUGEbSjPYz8m+6(gie#@blphEkt2WRUiy0)$+s_DdoAidyDH8!pea=&h>-pHAxu? z+L;-0Q>h6tNm zxNeQV1Vo1#2RV`~oHg^XjBH^GD(Ex=i+^k+69^+B5BbS2J!`X4R(01$W#k?0tt=wb znFJKn>{M9EOtG3Z)={l~b;(ZMcuB9=sx^hv5(mvIQ`+s?23xb+t<0V7kTtC@=Ovd# znHx#xff+54^I-HGe639@pVTZsD_f4CUCKR$EH&$OTK# zF`H3u!YL!iU2&GduUJXy;ZSd25x!fVvUVh{=EavvGhe|PToV>9nbmj#$ftHEc>5{L zAi6gJNg0=NX_ger$F4D3b5r(!_lEXPm6_^2kH=mrZPqV%8oi#|(g3UYI@C|}H7KJ) z&?1-pHce7lhG?S(u1|LY(gY*o_w+o1aaSceEn6th8IRE|hbcROAg5ohW#7nLhvku8 z&ONa;b<_Xzfp_g24Z@TaGx;y1oJ~(|!ee#^KMXI{UyB!Ut>GF58 zH5cryGfl9NR~ow9$!z&xc;cz6W^P(ON*`;mJ;vP0g)l%N(U)*n@FGiBrl46yU8G8- zU{7J@cz2<{HE3Vc%}FK>#*wTkq!RY;i(62e*mDs zw%o+`4S`-00GJuN@}W5Jj{ugMMW_aN0Ec?1K|~J0YyB#7c_;{Kp5RpsiQFmYzXaOI-I^&mHTJR>i1?V&tpt?8-bRz0B~8#_Hr=QhxlQOiqc-{UGIcDF<$GIsdh=@LB-vGa^ z3o-&fB>C`0otV6=k@E$`DW5yk-sc=QP#D)B1PZ;_U$~`u4?5rDc^uv4av?r@X5=aP zXO(c4(J}B6fIBB$AU0?6vm03XuY)}bDIB{*0PYSLQ8FK`L4$Spx-HW&l7UamnPbW)r1$^Qm^&E-^s3$4TnL3fn zQ&@aIj=mFyhyH>+d z-tXuH*R3TfyX2$q$LS1qa^GMXX_Bk3>IePiI}PXG|2<#2+U^F@ho5I2~fCHjjHi_*hWK6?y~w zII>S0AE>P(2WINDLwDN*?f+DH0zoti**oqBcre~2-~d`fFS+x{v&2Mok5{clFp)y# zs>{TWAk+Kzg0=;az_yUyLZEq(ngm!E@Ji$$l{P*OXJ@-30fhy94-oAj)BqLq|7k&- zP8g>4)YD%48_NNd=wjo*>}gN3(yaR1Ed8G`01GbUQ(1taP9&wD#e%H1^a`lI1TJjk zxN$jrKB3G<_R_xutnBQtP;)aCIXMlznyClH$jSa5E(~ai*7DMqD=fRL(H4iQq7Lx7N|2oVrcNc&~}Sj3nF>fX`)X?-H2S8YXEf)&r1UT%4Gko8EspG|K*SM1VN`C%?vY-6_u}7T#K!=1A#$Ws(Gu6h|L8r*GA)oL6cYZV{FOHSN3aMuD}RoX z`YlMUlYnVPq{yj~V^MA}28=2o|X90>GlXdck;SX0R z0g(DtLFu0iO8?sX9~7nkE$jP}ogxL*gsi?BbT+`r1B8^90TE|(Y9Dooj3eU2veE2- z=axkAK-Y^?^?m6tH*VpuxlFEwJD_Hst3>|GH*?>Aq&VcEKl+9=;T^YXH0r;0?Lq(r zB{yDdiGu$5YWRP2!=|S}n9kh@NHHWLc_{j~>6MQ@bjZ41#AyQrXaBRhMnN0wPw}jh zSje0qnGPTdtG>c%LjLIM1B+tBnLDIi4j3?80TSV|^#g_T-zy9A&nFa46A%*vmavb{ zzm+Jn2B^=#+0}eR`zvm zwT=7dY@@LmXaNNdZHQ=0Z3Y-baPIIHA==lGW6NSS|NSj=lqVqNFZF1PxfM)^5-=+ggNK zhJJxOSB=gk)=0$Ca_X_h+7)ynq&-(S)I0aS zjPFQu_J_o2_Rb_-v5JXnB5Y`P&|pPcE3#h5=v~UK!$b1!K)6i%#58aXRDI6Yf!e)! z;%tVhNSGrBuJ7cDTeNG;|?G$(OA@@ zBL2Wj)b(igV6RNb*LgFFUJeo$jOj^IoWcPvyQd;clz%|# zFa{qctdMF~g)-(!BP1hfF_r!!2M4Klh$q5=M1*CJG`ILmLSrY{jMX978T>Dr@(`>K z%qWdkjam*8mcY7=qq9)=a;RxEW&BBVC;eD)e=IwB+}8LT8PB8mFeN(ErqH!4bh7J| z*X@?_JB%lema8D^B)X%D-EFO&yvU1JP)!1nC-qFrBIbEN>n4tFXmq#R>vJx-*MdGw z1~o_Aiu>6&L;cdP5z>GYCSm1$K{YR^b2a~A_5Iwg4!%CRyp^wqobhg}c*$&HY?h&( zDjSd&B66`7&u<^cnju3?+5a+$iU!rt#WH&fb73wvDN|6BZkaYv+qI?l! zDW!{OI<8mer)QJ;6K{sf#ekH`Ujrvq$18~jG*@L`Y8c%eaQHU;rVK|N7~Pe__cc9a zb9#{GM?39CdLT5~>`&^Bo4ADdmI8-(C*lQkv%;MDTyhv9C56A9)8SW?Qek1P#tp-8 z=%@#rTNxBJ6{iVgFw-|uC2 z->N`ax7Rb=wz&VwAlCGQ)-{Q|oEXeWCmYgDp(hQ3`H{Z#n{BhcYb><^IoT)1)qf5slTbk!+P$Ofjv> z240%@)e5pZ}IrrOTm=t?i}9wsgCvWbcZ!T^GcEDDCZ?+y}gy&fLX>$zy^02-5<;4;cN(m*CeyaSeno?m;f%i{mye1Yw{o zqj}_(-{Tv|R+MtL*W)Q`94-uI1J3yfBsR{wE?wvz^zA zx~J_DAhRcX;Gjk}2$L$DhtpQeo8q<5m$G&W%DjTrAFH`dNYj8$zF)Fp?uZQgdOu;p|{aG(Kf zk$bzwzRSnYDb$RV4rc4NEPXLx>QkLDVAhh$2~ydv=p{E4QcN1UiTKpj=dQ@-~FYjlw+MarfRJm|EG zJPuQn$6Kg=UB`|52dk@n7)J+xymwlG-9qzG3!2%9X5oT6bXzE^iDUsrjCrQy-Qq#Jr=j~fU#k(K1y$0uR^not)t?K)>4G#Ji z5uRs&^R@|)&B)CVK@(Y@Zd^d0k=i7fJ4T%c7M&rINxpa*@fLx`S<+Qv@&?oxns%4| zQ6=LMZ}}mS6(wn|V*bjyu3o*D`@&A5#>J_gS)@Y7YSb12zHzW(B{yKmLq&TJ%xgAPk4p{HojGK%duaX}tdT`|36IOpga2fZ+^;0a;1_GwkGJ%<W3- zT*R+d2UomX`M`4Rv`cz!=2`4!Y`3}*W0x@PIz%=I-@qNCKF6t})5eFKnMOmVHD&DE zbbI8glBiG1SITmhpLvdW9<1QO-$yU%M)-Zgf!iMXiB~&}o)1j=96Zpkwb0xG*!LL` zV+lD$CSO25pd^|NSXy^*gOD}3n>!q+3DsJ2D6>etxd3SnJ3ekhGDA+k*V)rnX=_Ei zXd)9B(7DFUVq~Q2ElPK6Co1hAZsM3=;b80+9pNliB+iWRQ~q9rF)Aij z_N5X}IGZOSJ%uzd1fgrBn*jD+v(`jf*~UB)QlM>T;GjRmEIf%)G6asrKH*S~K8^%I z5PGWTg&=XqM6}}-d5q&_4XngGlQwFNWV}UK)g)lU8KWB!-xA*;&I0}{TGnA`F-MP& z9gKCWYvHmA?(y3Q%lnxopa-m^g}<^iYbUHl_rkxW=I_e%?hbiO$SUwS9xIt3KnJci z7t99jt((0@4-w@}MynrI_zuTgNVieQu>-kw0{FMPe6xpSouX91Jvvzxzk6sOY?8r6 zN&-#(K-qeSX`!>$gwIfz$}4#j+RczpI`4p{R{0ZuDXOC>abUCM^CL#KtB&NOt_blI zbb4~{y*OQ(?f5bM^n%-=gqdC8-+kMOw^ilnA8k=r$jn`ig9=RET>|p*2CgZ6H^|of zIR@xSBp<46pxi>N55aNZnkzsK*);(RsoX)o9&r)6y)NlD->~1oICEm-!3n2sKYwnL zL)iK^>O<1_E)n?wyAivX9@fFfhjvF5Tc_|`p)8O9;K_MnFt%%RGs6hp(e2*-8uiSp z%xO8Ja`qzbOxXTFHe9JUzi0cu25M454G;B;J>NPLpXGmD#i}=RPbN5PTjh(;%}{=` zRu2|8a^@plBBFs^gkZ)Cn$ZC0X;9+5w;}$@4`{sP8_Kt4-vE?jG2TlpS<+OvEaMy4 z?t0{z$mor_KekN!Xxm+tS(li>UXDshW87#GN1uSB?}T)d=|)ps$t#dlHAWA?se1FE zHuQiJj8^bz%w5)bS5*<_tu?GWLy{@r8RvI3KT?t_nwAr;l`*8)C4_m1{BWBfn2kZ5 zIYLLlZ2o%m43wJ>-J~vlawj;GtZOWcw%iC=Cx@ZC*RVy|7cv9aON&~0$8WhSO9FQL z$MsMI^FrKz$tE4E()`5J4TFN3IkUQa;8RdhI_j&YE*&yUAoq)b?_m*}v4V{5l7ZH5 z^I7|6Cv7WRcE$y4u_?8Bqq10c^!(u9n~}hGQvwV6Lda3Xw4hPN3|scTjv`)z9mg*3%+`d)gC-N0pgYf87dpmXtf}V3gypu*>f`7z zTIEa2@CTqW;_?B`e4d+9aLMsWA%O*@Q%yq|Hpsf$0SMI_w#w|?)H&{0(~ia~AMN=m zLZ8x<>0~PWzP0j+=F4Mk4sqs>>_+$l+)Pw&+RmRwYyvX?=T^dEwOI5Lqg4Dv--yJ) zvjQPwgs6O%wJSpiwS+|~BrMB?a2Gp#IAZH-`w`+^*zM>zV5^o^E$e_Zb>! z1yJIGlbA;v8E+s)LeV>IrOUU}7f+YQcMXldCKBAkV{Yh0?92Xd-yfa3<`3!D_UHnM z&Zen_?myrBoNKr{#Co~1 z;g>+&F2N9bXPA3`S?w6sTYJVg;;*>ujPTB_K`#7#2$KEDp@SLuq zO2Q|xW8$yTAIQw0Tj?tO;F{7mroH~Q6-@silJ;o6vg80L602ccFaI|}dlG=B|EiT2 zxdREGEDMdk9`m8YqwIJ7Zv<5Ffx?Xve={)u4;Xwz^OZJ!>+(}0?2~lXrnl2T5-`=S zx)SgHJCgvu4{0!anweAMSYj5oujqrmb{Q~7c`KJf;$Nh|{^YG2kmPBz*L;8jQ%;cH zS<45s@!&%rq_-b__?~CZp1|gY4G7zUry+dylob6DWqQj$aCKd7gZ%ctydyHs{2gG^ zv+jF4#=Oad)UUEmJ^Kg9`QJV%+8=%ZW86oz*goAkwG2M_cNS1<0q#13aBhmZ=g;9N zKUq%wjO@+A55)RE+m=8@`R-4x_*Y+re|$UQ{;S>a z0bl2E#tY>C_G`N_3{Y8@Ki!>v{NaN}9q@D}CeUkt5r&cm#BT?HUi4(#vEToLr-p*| z0B{B(%0B4suwAHj?uQ3B04B=+kJ})fiue;{|MQPVp5XxRSFR?^8bGo`9{_alU6*&0 zn)Lt*2EJF~v4I}lqaTbvftPE4?3v1cOHv&ifF;3O6a)Ga$1v~k|J6Z zo?fO}JSc~Tt^k=8_pPTU^?|&~didx35=Ogx=GRl4lt2@(T^K)o1wI?F)bI%P@}(V| zJ6yyE4rKXk>vmc{xvTn#)+K(uO-cE>FMi(XJjvu%-#|6%({ylaCf9I^ z*MP1{Zzb#TrJzyAr}9?Df$h!uBd_kg+l%sti9$5x+5b?y>HIts{O_b2clNysxpaYE z@{2_4M9AmLZat!Zv8}V_y-qDa_3?3M-8>e=1nZu85>G-RZp;tn_}M{Al*D`)AMNkK0eq;IMAPv4IEs5tG;1?MYDrQaWO@qa~RZ+mwpU6iep{STVOnIFApV60sP zK&$sUt))r{YB<0_Q{B;(T0_v|_7`%H)l%X+lNu*f`T(L1itdB_yP(1Er!c;KZ>g~CoSyXcxd~5QgQi!*1RoK zx+iJJgNpm#VOlweE4msuB~-JBkb5EXjV%^pA@15lssU5M{szcc{1D7UAd)b>2;GfT z<|CYm{W37Mm3ZI*5~gmM)dXO2bLbIa*Ft0Y@kOq4LgM*vIjS?2Yj0aOwBWzba+3|qa7SR{)+~7!9-SN7T zXgHKjP2v#?LISan42b^{{5mVSi$bSPunPua3D@FplS55q;9tAPiY31TO>iw?HXsdr zi2xY%qR+G!Xm+J>S80lJCW-(t%Z_|rUXC)$HJRrWE|`f}M6C+&Rxg$t9+Bbjo)nnd z#9t3ZW#u`ZzrlatWERSqv4SmX3pM#s{^C&Rn}z~;_hF~NLz;EdTaiAoU=e?DNH?H7 znUm)EqT8h?8TP5~wPV%W+~p=<{ebN{xmm6sUWR^!cXes52E!1+!_Ag|-TiZFlswpW zjmdM9HXSNrGNdGnI19UJf<`lgt1)@KWJ=9ZLXjd)vM@BWrYOl_gw&{A**;Ff(DJvp z@my~XX5%hKgn94kh!`Pz-mj~yyPv!6yMPx z^s?6=k}rfKbv(eYW?o?SAB6g}^Ts4vxBS1Y(g2IaGk||FR*9Wj!UKo;d6&(=ComY~ z>BL6jm<{dBd!5;_Kw!11>sRLN*Nk;2sgW{Khs~k0^^UM`}+@ zo_bZSkT33~?U~%wWsjMmZFLH2Aex0%#a?erTVT#!K%2tM*NM;h^lc!o8sbztUci5O zOnnjcgyPi1B$T3biBrzaxJlmx+n^?pBvrd=fN6>PsEBjXl`uKUfw%|_k`gRwK|5i7 ztwLZHG8L5pCy1GP=qc)5THxEp?5qo52H_oqEOY{5bTzws5I5^LSq4Kwu5e7|(l_t(R=xG8fF;csbI=eAn^P0Y*o?5%NuAm?sJj#wF4JP?A&lvL9fc72g7tK& zg42whOJ^Vl6x>T#4A*3`k?~dgo`RwWgMpSZzh4Jsulsh(DniED^C%2!h{27%L8&s! zWX0VViIh#r`tIWz*f_ru_!BGirg$m0B2U zkXVSW7qrs#p|^^{EU?^?%!X@*Xg7xfSt_bXhRje;bLRMi8PZ##j+bfIqxdT}Gd4^G zG?fZ9b#!gtga!$Nq8s_xYNSoIxD$V@WQc6);MuQ+9UC~a1A=>Xpz3DoMa%iEAXiP008g`O=dF3xu-I2q(fVMK;x2 zsoGZDJ;YyF4qGRNMP85d)R_V!CBbw2zaEDC@5wzx<*OT0k)Yp!E`dFp1Lr?%(;CsT z{E)00!MRHl8Y~w>+~$W7?@)b}%TcBwBK#UQC<4<#XOb6%1nNVhDLj%gjuL|#ADJuO zQ`0``U_kNE+>5L=R3Ru8a#T6w=3&JkP@Mz%WBZqzy^)p2tVIEbeJM@_nOBPj{U*h! zOh7x(6kb&hO%KW7sB%S#S8Ra0Ya8A)jEiIss&`cDOwaoCwN#z7v#PycUisAF42ZOI6>DOU%{ z(7h0jKX3<`ka$*u*po)LX2N@E3EQJCp<9RcW#QkurP1YyuwXFvD`VIOH%}p@tL+uOWSX|y_HP>*6VUC^CI>2At z9+9@Q&zFacs!2;|di7I`^y+Q^JDf79Q<}fm8JSM=s;G1Hkd_Tc&SIXLIcU8{2T+PX zl?lQ2np>dnPFy68gv2VwbtP6O#4%c6qO}6_KR{{kb$A2Us8 zMLy80g*9G+l-Ffr93y}nYeE0@d#raXxqv765R%oN8D7` zaiZ+f(os-=TIE2g4Wt?E6+NDuB(fnsmL90JfW!03n(qyou@mX>cb^ZC4I=eC)r@Y_ z)JWXSfPu%y^Fsq|`4u`-f=_QS{(`It6rliJg{0A!V2>m^kS%C}28^1yXesIi1vQxZ zF_XOgIwLNtPP8*tpkE_^L^^+yC*kVto*sm%jLK0Hm%eyhAX#o{awV?L!2v^pFeCf! z3~?6mzoeZ3`Q}0pOF*WB5Y>|je0>C~TH}Motc70ZVbTdp>FZ&~#4`NXCmHK0xvQ?c zZ34QWVN=F(-hC*O6O6Z2bCSBZlpZ^x&Y>(bGq`Z;&SedJVGNH;5y zUlna4rA1^R1{QwrPtLT@DFPB-OX_JPvO0(F3^sK%7F zU+fK2Q}9Phx{=Ggwa2-Le?5OgC(m}gQ|Aol)3>m#%TaB+eRMa(N~!dm&yd6yBGkiz z2b?GAWUJSbZ)zS^W&L_>O%lm2xD9=D?8*maK^Eq1-eG=qcdAF0a^1&E8o9 zf=>oNgsNbVIKs2`L5WHEDrO?50xKdXla1(ZFs3QnRA}=B@r1t##1vBXDY4;~aAOv+ zPgL#+JS;^Kuz8;>f~z+mlN%9M4q=y~?y6wANAaNnKTg6}bLUByZy3)QGkKX>Q0iE# zvVii@SP{jZ-UbvjevETBLd=2^QN1!(`1r}YmD8l9G_KHcWjTCNM!?Wm!mL0ew(G;r z(#Y%Xo||{nc(GE)NqRc*pr-xg0^CqE!ci(CZ*Pl(yw$HR&rPE1m(p_fcB0M-b3L*i zx(Ug+Eh(gJR%xr3%Z->7tD*GbGetv5ZyPfYI?B!PTTNM!)j&;Bx~OM+wF{_XDmlU) zEZeDQ`0bqmzp@-P#lq%5=kP0VOxG&-4;$W2{LgJEfNoucI%8(EUz3Qan zWGvktN;*fAou4<(B!1hvy0e~e_A`!m?lshL`g_FOzqLo?Cl-#TGUl{b;&f=uSh>r*q-RX$$7yz6^r7EnU zwsp#w0AkYGqr%0`gP}bzWen_ZnEL;I>t)3FV6j{=n!{9_;-)ePNb|mux942wuXI` zUoY?b7&&2o{1+o4Ayxu0m}^WUsaPXkMd%S301uUY7pUOeHleS{7VmtJ;8)qow?vr2 zz4YBkJasOI3Rdjxfk^S8-2fPu4{b!PN=jfXS7hvdUKj z7SnFwLFjd&LXhrQJr#YnGPQOcy6u>1 z>8wHA$9L{;)yBKm*zTg;IbM&d$QQ6n#iAkV#W!?YDoC1-gW^Tx4&w#~j_XYL+Cig{i!@WGxPgb0R-XEWR}(Yqw~D<(yM?t7hY0W&TFcL5wmcvm%h zsXzVOD{t$&85s&suekb2<{X|cG~EE&^AV%VdWYnTDyR$UrvTa`iZ^+$v%8bNRYfwQ zQJbdlM!ksR;V!ukbivX}XKMAQ^Mr@Y8E6p15#?|eG${SULSGXX(>Js-?93mP4zFMd zb1mTG?cFqQFW6q!JIs{?n_euefSp1nw#a;Bmpv3r6Ci_3OYF?#%q<#<_)J*DJsWd%j9JRf;p z7E)$8|B6-GS!Zx`d;-9G#}+axObQgtq+H8;2-r$bR6$Mgt5xaw(|F23f^I9i3Gc23 z2E}$6rIbK(*g}?NRjeePCp=Q=wEQ^tu8=vd}XF?7okvpciTh`wR^7ZeloTfiBtNB>X;3dI@R!tGjy+%X{9NPXQ(0>(!Z+ZwbOk7 z_p>^UZ$tBMGL%1~rS6uYPIylh75G#sg@aC3`BC&AvKRDF99LL^h5E@;Xpyh>WmGPq zm9ZSjQWQ0U_CLC#yo*3M3<}%dvToAy71qgi5uQEd#JA`!|9I1;UQ0w{-8e$oE08+i z3__!(*eouYzyH)b(&A}ArI>RnSV$z}k&SH?>%Ii0~m(YFzjr@a^3i-?)5PB0J`Ofy&+zL?4 z%~E}1Y4{L6SfcK6v3oJ3b%3q|Ab6WfUvJv9soDoSKLVhdPn7JXFW!(bpv8ETS>7jl zNcXi)eC^<}TfI$+cLCY6M;p%_VmIfmKr*PR(Io>6U8u5}h2IL;psY)gqjLwR_m!VxbAMTx|8Cev$h^ojpu3x% zZHMlU0V9 zi!AL0<>}g`W2wY>Kmy-7TA{SQl$3FcLRco~I!nm^oZ~W+XED7GIsaBAZj#KPsg>AE z=vF0jKBFzxv|cigzAc5s+C&QjSSRoeg?kf;ml%)XW4^G{OAt*NYgY?>YJw6I098$%Z1ng8$17Wk29&;;TsK%wRfLgdsMO;EVE$iE#)H|buc!B3uOglR5 z+b-*U-7mQ@XqK4~W5>GfH4)WW(GYg0r$=*s;zCsy~9xetwak&h1{%!eJ*$8Lj+HAP^Ae#=+`sO;h-f@!~5wD3?F=!o1w?d~IK zXO01sWnX6{Zss%bO@G=J3vzSr1{uMIrjj|Ex8VHlwT@nyk9W@NeOE9!;$0TnYmfM8 z^^oH*^H7zHsbm7;q+p)y7=~3vaC!vTPc2ks?^Wl+Lj)^0H$xF-yc_D8V5R)w6*Z&^ zysTszH_Pq^`)I8?9N2UHLhC;`Fnvz3)h7nos*TvOcRnJ&OJ4_>Ua}V~9FX6Wai@2p zPDo{35$bY@c1+Zzor7Fg=^KoSdd*-{c6jAvl4L(rm2pF;93U(mtTySzNymRd-Sv>& z6pMpYP=l4=U1rgWzUd^GqJeGru)ILpOgYHc^~b$dH-xCk7c-elsHk@#eX9&_O$|{$ zY0=vy<#|Obn9J@Cz}A5Xvlwy0=ux7Xiz4Lnx(_{e(TSh)=>s8ftCH01EM%r4k5Px6QJvsI9FQEP-sRb9suiP)2bg-1+)J5nkn>;$k)<6#860eN4?_l*4T^3K z@pWPAODC=BWE&zV&o?;46Gbuxw)ugkn76r%R^5<0AL5+luRzMla8wCw*RJX!)gl2m z9TO{viP$A&{6)0#=2)Jk1CpckABhwGK)cfX8UQ!1B;vp??zd+CIz)zKskbRWWa01~ zhW&T<((?VH2pe({-*6Aw3$4MzzS#IwvL_#?{rWBZ^9 z!42A;3BU&EvX8fvh@ALWe|X@E?Ww5K+tHYuNYlKeH06yaKY3cBrNE_@r~(+kdZS=E^BJJUa6bP zT)qg2Q^;0e;J$8rItbd}Zo&aFDkDHEv!@>c5&t>{RKk@m5 z6M?OyrU(o{(3?r~RAbV3@x?Fbi`(qR(oD&aUAd}s=8!mWc@s~r>MLlw|v@pu`nK+WG-gRheQHP?U!hL=WDtHRgp##TM`gvm_jnM zx{<3J?2+fGnlCxq2Th(=BjQM=@^;ur9(zBGVbdeA$s<_-)5L_6qvH~cSh*2%gZUW` zrjLn)j+lE&Bd_7(z@x_rv5UKdvkj`1R93E?ly5Oez#%{8u7kH+RWJ<(81tDrbPrf? zp}Dr0HY6gLL21nyD*0k$PoHp#eQ_+_v&l1$c0v^pYd~xkRDNsrZSK6R04d!U+A`#d zG~@*nO?YeJ^^ykDnhtP$V89+t?){?GuCx*}3rSVECysk!j0Ss6Dg!Ll4U8`YT_|@Rn9)8aA`HAN>y&u`E)NqouD^U+}vcMpsWtNh3p6(kB^@;b=ty}Mw zeh-U9)WtMx!%nY5L+KHiy;`VUTLZB#+K(b0paa`bkrpN2-8TMvCBYimr>0&MU>yGSs1@CI zbI_BRL=P!*J<-)3JXJE#yGrU%YVM^o{^`QFzyF58nNQc8HBO%!$Ws2lOnU$K*ZuMj zk?!*fhX1{H|9kH~Gx_-c{hoD;h}b)WYc; zo4c$FDEy`BsQagaWsD6~{92jueyMitK)L&wF#Wp951O9LVVW1ji_nt7)~oO4d8YooNm1gRK_Qcb|s&3vzNBuL~J`?&JC-#5MFZr2AZ z-e4S`u3zP0v0jtW%pAi)Vy%%A_r1=Rj`)vW&yco}9qC69>a;setu>T`vF8=d*C6+4 z+%$PQdfHJzO`-#a@_b?svz%CtA4RDja0P_%!l>e$6fvkJBU^P@}r7V|D0Jf0@(x^8xun4>NhW@Rl&Ed8-DF)(;1>B?6x zMs<@9U&$!KQCLMWjeC}ly|Bg|hFHUO#}riK(9JZa8rS?2-%vgnJ8@rkxF@=p?kqrD z@_Uh=TB1w+`={!0h=v zu$Lm)Jwm_mbGL#SE}9#Wn6%ul+DjvR@!Ulo)~Wne9_kGeB#6^fq`k8Cy-xOJC=O6` zBR;-`KxHuQ%o6ku{eaP$^Y($sEGGdI@Z<^N*lw_E5pR$?YK$y9VeAA&N{?5OleHV$ zwN|Jba!N%?W$F`vCLBHvmgkrtA=m0bM!kFi-VH7h#WFHkLe}H&K%qdgYyTN~2l6$0l%rElFJ=LVd~`8$%3pV)`Ph4%9fg1jnux~%qUy?iPy!CeDV~hD zHt|t zlozCWLS5hst*H1Y-x*5YU_auaIcy z*hDQPz7zqdV&tk)u4r_@GZ2`Vp)||46QM|q(m9Me;uJ7`oqbJ(S%{?c_}|mEbcAmh zkCW5W z)9Ap_H^Whc^F`LyvkUwjVv1XSy^?UD=#^7ZgUvKMrJA!Cb%AqK+;hLnZbFfQ6rQ27 z7MD=nyAVFkJzvzZ=6+@8_b}l5n9{mP?0uD;xQLerNqUGx*o6!FB5M!FtK(R@W~+%N zb8KY&p!i!P5@xDK8>x$cx$kvnUsyMRsQfl`GIv88&l8>{5*UqCFbzZG#)QQn-l}_O zB$0L#?2Q2CYU@~9c(ah)G0Ytg*za5vIw^TTlV}sPO96Q1egF(G?Ph=c1~1{Bf(?9d z=3n>gJLJT=$nT7VGrQCmE^D}6Z*)^Z1K^lqSH&24n6r@DgH~oUpz=g;)*j>p^tza$zekiuwG}PQtSgVQh$D}j9%28RfdCTGp0gdsD znmtF3>{mB=Fz+I6qpmX||| z!I)^D{y@upqAEjjo9#Yr}4T{CcJ&k?vT4 zY;FXSXhu@jx|@jiwl>r;zhGoURzS-ROf2ddh>d+Y=-4iaW1gn^Bg`$CAT0x2 zOr{Wv>>3oHJ^Ma-y;t|QOzZ>G1c4IU$-}B77X_w-RWv7ZQlKs30>CIlNQN5y=v$C@ zb%343RW`=e8|*cPsENFNT#8=afS=vv0;ETkUI!bCV_gb=dK1F8sscVqsb#2J!A^_2?(*^_ zk3yuZaY~P9EKzH)&3;Y4`vv458qAKEjQzbvQ1wwV)amyJN(w3;VXTMZxz}o+Op}rv z=HXj%qKDtoPuEtx4(K^keY$ViVjT%9aCR%-6v2R|qyf*adcIOVn|8(nYEG%9&N^(D zlke+xEOd>(XPom=V&sC63hBuRjosrd-665@Kxth0v&Hov1l?v`8Uy|uz%8C5f3M>h z!3?I5$D9zr_L^hN5Cpq25q$Q$*Sx#|>TITk3X)VOC6^BfTS?FeE-S(|0i7VXj)>m$O*9DuxJRvtg?vT@t zl9toAw?&MmQ|c-N|~)g3NpGV0F)`w?h{FXWa7#_$Aq>;gXH_APRv62 z18U=m3^A8tP*-4`j&6m9zFrjKlvc*UB!u%#{QK`A&P{}QZ|s#;8LHIzz!Jy27>B#n zd3P;G*_Y57l1w=g6LvcoB>CmJX<^aSGFpksRK!fSv`=lyT>yJY($OQhv%}-l2*Khy zgQQE_6Xsl>I}`FrxXW9Y|DjVhIS`Uh^YQGo8`o!g*YRa`Wp?ZJIdFHKBQn8CGzjBpD4U4)#V) ze}RuI2%u3w;G@oH5%+eC)p>8Lk>U!=K{~HoCyiv!q~(YNi_mD;w23jJ z9UpV^5R%n&4<$;um8n>)906trW-nO)3ZFqU7q-}4$u(&oj_|OLH+2US=aM>;xN#eK zd)Oau0QSevM(2$)=XsV##XV>@%~Zu|A}4BBLsnTTfc$Fhp-8c?&i!yF9jDSn$wl1~ z7T)z1eLFapxibc%m_1b=T*g9O8>+Nx+RT3S3|M{m!F?IsgHjrJPjij1e8A5q-QLS? zs3|Hoh|QRVI8MZLu8a?J@XR63K~`!vcov3E#FkYbze6$QZ|<-{#HwrKBTP|j60fGR zv+8n;!cfkWv$#m2u^Zq@VU>MCNm6#-bE^HVX}d&7x*yIg z&I=d_3{NFqE(v%+Qy=v5i<4CQO7!_ZS4Ej%mORa(XXZ@XAVFU6BbbJ;V8W1R70ePz zEc%(4a66u^>3KjBqNYv|Y${=mCiM_)=9A{wlF-S(O)>}nZ7Ru9+K>H?C(MbMs;nD1 zb(TZV1s|>Zk5xIgsO=bSg4QPtT#HbYVR1VAQJ3+k^i7Lx}K`W3OpO5JyM8Y}Arsbkmj z>&{C=ZOuadaCX2AFKqu(< zWMVk#TG(%v`7;i0L%cY4jkmQx!xHVAKYqC+qDEX#)~6+CjUGoz3~7S>9dznV)C%B6 zcODa2w&AZO4Vt)puvOw6Hv^6`$7PdrziixV|7((wZ57Aln*BFF_Q!^wzi3na(Q5gJ zv+PL|v7E)igItZ>lHBQK6 zX3f3sb>F{3`XhzzQtiw_zhN0BRqLeG5Xbz7rp8<}E+-{)rz`h*AYLtVkrpr2ZdVmr z6Pkb|4KohA0lvL2{o~0_N8>EtrYcUO$U=)n;#5V^0Y=`CKGi50qxFQEcE^b?yROPM zfh-axt2J`e5W}Wju!D3DAV%JP{&mo03N43i=D*bf(|{!*e`5F#z#dBU4LSuA?-Ub! z05$=<8m!Y}8s}sOc5{Dvr=wkw*IvT2o=_K|ZKq>^1=s+w1Wrnk1;X74H6=x~nviDp z<%LZ~{G$xyIPBlwbXDl=M?3C`a2~u+@)jUxfzbp9H&1%OkwSct{k14=S68^Vb8Dl_ zyfiQL2wAr8Chj@ivw&1Rc7|X|vNSLF;i9j%SMdAKK0VxFm@|4s!9#`iEd`r>res`i z5>mx&Xq^ZA3tfqI-gpHsj*jo&42UWt$}U!>k`S-m8l&(^UC3NM(iOM~N>5N0x)Tn- z=Wp^zvUyi4Y?f>6aT}j^MhNz5wj1puL; z1X@>@r9_!u_Dv=A%TVrOz8fWQMQdWwq%kT1uyn+h4*CDewr<0^I49o=wWLazpA7~- z?bUom$EF-?pA?O8tzOF*w{u9-8F_DbdA*^1YdRgdDVOn9Qv`GJbfo3-YZLYQtq6-8 zQAjHum)SYsh9XjZ9PAFYTY4S1FfuGE>AU?9;DI0=uYs9ji4n`ua&i@doGsuca2U&= z$Q##`iS{Rxsf?v?q*B)ez5-71Kn5bo(WekPaWztHlFiR2 z+pLyEWF4Dma%oZ#u8&7>mmnD<^+!WFmhF0gzAO{Xq-Apn--Mrt-93Wt+qC26f+t zv}u2DU)k)eb=Lg3hgt!nMq473N#UEPm@;EkE|TdD4WtN6ixF8p-L##)SH=DUksND} za6ev$ThDLT8=pda3H(ydK0a$NY!Rz<>YuPCecc=-725k}_N1_SiQT2O&HX%UWJ##d zUjGY{&`+FC$4QI5)ofiJIhTg1YgSlq8S%>07>_<3=2(U%Pc0}OouF(GzD}3=JZ0wk z=6!B9J0Yx!!wgogXX1iX$ zy7aA<>eO`AUT;HNJRXDcfKjPioE*HwvL$VF19sSxk;}v*h)12wGgiA}>2BraImKH{Y6Rz_Sylu867W7&I#cp?ra3}Ws_N>W9w!y5N?yON|LWnFw{{xb-f7(c2rCWL_#f%sRp2=n zfTaXfw&Y7`D4)&<3aXxqqUcxkh1y3HE&eE;xsy7@sh?npmSNq)g2D>qUU4?bb0@by z_|YSJ#bWmR&u;&JA80_wN(O~!P6N)WT6bR%3GdQI_VZT0P_`yyh(B$s28~JIhQ62V(r|IhFE%_7&y zY~!(1*oJBU0~d7pOn2r@^B?-te1Fz!V3+X7KZ!vK)gJUH1q!l@F8b$&CFdZ8(&!BzT9(c&St zu(5gSn%4%>wR!vmB2s;ch|iXcZ(y?>-23SONaH3W|fux zUS^7WuWz0S0{pT+w*_S7D1Mn^Yw~gJDfFs!&k+E;Tsnab!e4X3B$_z&u`fZdRQ*Vs zM3J7~H!nq;&RjU=xM@=3aPbi$MLx#6y_` zy?I7~I49W+HdrBYw}|e`u9wM^`S=7EhFe=is!M&<)R-{yF(5hz$MQFY-|%a_5*880 zjJ`4%`L`zI|I(JU34?n2%jCxV=<>G=JGyrV_KU;MW#~HVD>zFz&8p73cm!4Six4fP z=&icxKIDLH!%DT>L*gV)j_SLUM~Y+}EPrOn;NI^U%I-bg^iRIh+WiNSDc!Juehflg z7upQV@=NcN^!Dw+?H8Tci-jDU%KQbV)~9I>Qm6;J9K)h1_F>Hi9g~#94OzS2cc0$l z=Pa3BahyFiY``#sYa)+J%3L}`VBb=~aD{}Gg~LF5;i0{7&Pk+ce|v<^rfa`cyCOUQ z(|>{u5bSj_&by+i13)TwF~26N=hQWsUL08J>`K3UHyvN%BK9KA9~K%5q}WTvgEIqS zZklM3(_N?D;6uU=J^=+lJ{uctQ{nuFK}l1* zNU;XNKOXMe3UiYkQL)*pN}y@6{EHD8p)NYr=ukA(@Fk?5KEeB2vGJ9-T%Nl+5U^r@H#aWdog}Xw(k#>y!>I09)RP zHP4;{Scu&DsZ>w6F*%1;72w+txE%JDC-EIjy(EA)ycTMBJh-TZp!P(rD0OSXTT?(D zc7x&A8$c6#!^|W;FKMWsv_S@y+rC$*i2RgHip zZaRAY`M&~)@9)?Cbb9uM&K?^U+^_swljv^;uDV9q{ewQlfBzI{x&8NE{n-Zl@4Wgy z{n!6ahW~pe!@b1>6*tX^nn?UoxRrk3EoE|~=8|H%t~CkwO&i6Db`fMmeCh(k%eSj+ zB<7g0Teb1avLT-Rnl!bY*NEL+hm3EpjmwUe+P;>_>p|11F3=SoNW_xiR`odu)bJMc zv*U1E1aM=e2B+O!(*B?lX;#UTMX0h=8&IK_35_Wm?5DT}Bsjk??6KF}QK4$^T*`J)yvP=4w5tXODkh!d@mRLpw^3Wog2N5W4uW%VV0ij>apz7Jz1=mFZxZHIb!mypnjeP%hY3X^dhq9D z#CZCM?wEdcD<-4et+4C*{;>em05?{2;SYlzqXv-atk>mDQsd>N)Ag9xnMm~=IS_{j zdKVP{sn0eXnpt)0fYQsGs$b^5tx4>{SO@7dD~@t^mrA~`?ikBCHHoy8KRV;8JD~}q zZ-uAp@$q`IE};eKC~~_AbUzti({~_K3a*j&kJ6ho=|_byCn6$Damkrp>ZH$NUUB%@ z)N@+^Q6}rzml9^beeWjO*?|+t8aPyQfcTmc3N&*Y264sf44H4Jf3w;dR4Gr{#!=ev#O`hKm9EE;i*F#N;)odr^tx@@BR0C)pr&a0asE^ z{JQI;@4dK7Prvx_<}ZVsCA@gS(I20_dAu`y!}E%3VXI<)^8RvLtk4ngf8R~__myh! z`WF0r{Zi!mZ+4<32tiz0E>usOL{dNpGVW9-_Gsadlyj&>o#}0NL|Po)>=oa$ND7$J zUmmGztIzJ`0c|SZ7kKsdUf|fcQaNleG?E2zQXGL7P_PHgPM`ug1?&!`w{wqg8<<3W z?{pQ11vk7XVQTMvvN!sk*SoD=Rr9Zf53N5)D+=)PmhiJ&0SrlMZ_f{~JyB96iSWi8 z<6qMp?kF1>T+gq0Dk`Z;^CvgkHIsrWs`$^Z@87ce*8cOUs>{be;rl1Lv+?r~7lnDO zvh^JhuJDb;p$8dQh?C4%0(2`%PfINa>NT07FHP*!X{8V`1-CwgX)HKOQ8E{WSc(!A zuy4xLn4QWq{@9rZJ;*m9*rZM|Ee` zWgN~4gN?+Ts^B`5b*S(g-Lof-1heZ_fjpn&B2kJ zN)+qSF~{qpZkRHD8N3`>bvY$>XeK>pW6{HRLs2nV`oe7qna67QWr@Z`yH6Z3J159m zU-^TvFm_1Y-8*n2Kj{twE*yNjis*- z+^Wl&BCv>-`o(fm37v@SqolXiG1d#Ci6}&}SK<_>48R|*sLVJanJoIT%h$ztc|~HQ z_$0r>ujfQ(*`(yj`JIc3g7phgaIRvkyj01(PAs)Zq|mJt7SDj+CmWKhlOS|GAqBr6 zyyozX?A0p(aNwdYJh`ytr%%(D)m=-yEd*6?qCR=mdz+NSs5XDv9Ev zi|8dlp!_nP+U~R|H{If^TQ4aQq)4)BQ&gC3+CA&B#Z4 zU~)r7S5vQtf;oBzu6{uTfR0cv2cnp`G=i5RS|&uF20DL~JX&?5D`?|HJfsC5Z$Clb zrCJwR6!L23TxrvW-?%}T%sf)njdErCN425)8{OTqiEfwvi*eBXF8|E>jEbHKfw!_Z z?8Zc}=fTp>;;{?AK_;l$Kr9=WOn9i=h=2MT^xce9)@)Smf-Yv=M{t-0 z2&~X$F{}n(7WWKS6!~& zVo*JJ*MnM2M`tfn(LeHompz!K$o?UVmk<_#tk~pwPXf#`3pZ=Le2m zl`|amDbVG^xrHo_pjOguslUm-Vn2yqL~@Dhdlvqa=f~ITnV8i2!e#W|m(Lg6JdSvs?!X>U zwAcZ7$p$6ni%`oumDvMzfex9VbiA%@h4*?g<#BU=>oPzia0pu;!dXqit?yjBKR9(` zhFxB^4Ba@wd{@vE#Svp+FgQVG$&^vyf?l488Ni4TP5%2HBdAML8TTA z&X27Mju$vUrHyiyn{hh*43Y@5?q^l{0rx(A~I0-0He{8rZm zz;Y(VbZe;kC=#u<@+y-~WqH1&Yed)ON7rqqUJY! zDZ4Qf$qFy5`Ce@`|6=ilvAmje*_&_qY07b_QC9A$;_q&h6{1-5FokHjd{}n)X7u{1 z;<#YNNH3L;(LTN){GH%KZ0_n}LIAI*HUzXJU&n+TE7 zklgrJ&;|;53e0=fX^v_gQyMdPsW@|79E=KtrMEKB;_B8p??U>%>C}3frz$r&4pI4T z+@uV=xCi{Omk&dvmxee%K6Yf+jG+SaA_c|z!=NmU<+u}Hgv+20#zY=MgQ7bVIz6-R_%cPK=rHI4t0PDc`)|9t^_yr8Z$V8fl4 zg2dmqhpb66PDy(sveV-jEzD)wOU1Ork4GU^s^Bctbrcy=@yv#qDC}H{#(`Gg4?C4t zK!yG4gnq8g0R>aWI|QR%jA&2`M}PrGd7OJ1$f~SK5?Z?45BezlHwOx}NmVerdm5wg zNkGgR*L(nW6n%*ecmRk=EI5&n7fxUsoErBoqbiexsn525GT z(+Q6dT+b=UKSXXwKakt{m_SyJeKGt4imzWw8#sUj_fyTZJG+XetZD!!V}rWpQ4eWJ z58+X3a6$d~47U|j;L{XT8T92IjzxLf_8%mxf2(%YUVwZ@Z^It@f$BnIGv#<4(~`=- zAY27V1{RED@912w1JVWwXe%rbA9Ov!?_?!0K#9~!cc1R{IJAfY5Zy-c7#xn8S?78| zzqZ}UJ6dyW5?4LdC1xhbCRlhfCOI2lf?zWkvC1*GKyE#LC2kFkyk7-^FRp%_bSP^b5R;M9tRr>9S=d#cR zc{KLn_K3`A|93y1e%BmXP+L)ctVizmNgC<=u~{kSV@9j{QL@t78KY~0D~3;SHgIc# z!2j$+S;ftVyU6*&&0*dsvt_ST4{{q-knug|EwI|FyvwijL2S)UCG%0J~t zs-k2Sa|=l7a<#L$xijo{>eMN}JwN%${QPQfzMzmPUxtaP)J3G_Ti1G8eznQqi_Yc$ z!!P>(vVX5c_bdPzH4~(C3S$*Pf8?m{DR-a+*%wSJ;!vcIa7{aXGZlJ6i9QMCbylQ= z7vVmNU6zLO2n`~T3XXR5a}5x@@?y0Lv;1Yh+_DErRD)bwEH`2}(VC7z(#-yz2Tx(? zGuTrcxCFUUjO6yeVL>0iy%|nTwj5~awR&OcDXs~}u~g( zEgHGndk-IU6y?#@b9Teu@+h0LyMKjHHv-0f3prm-x_2J>wDq8L+O+oEjlzEgXRN(^ zaJVa2mn$?D!;y8OFI4aoKUTeb<&bMOKPN=Cg{7oK@7HX+ljD!%lViw@Ra;V+{ZwPJ zi*Q91>rX*UAT;5PCc-W(Z3|gkb^cNQF82<`OD6Md-n+igsH_k9S@~c?ZZVUX!wfUY zN=-=pHzq9d%9Y3;;2xO_7-X%VwlMwWrxy#cB~|xJ4N#`~cZ3;3LUZR&{0R|%px45$* z>qBC}yeuVq5y>Jl!#OW+#OH_B2g4aLAAT`HEgSrS?4n;6SLgaGZcS%+i|w9Hr*|NA zc9hNOKw@br1MSAg>fQ95p~Or-dH8j#GoEj+D< zE{Cy%ZVwlT<*aNMm`nmPIJrubb>cwOTgQpTNMZf-u~1iC!&rL4CFKsfUCxM)a4w|h zKN^|_ifhVN>(ex9oh+>er8dbfbuNM52{-aJ$LPy}cdWzq{=?6d=w+us(`ZXkc=ZCj z;-vOCSMh812GQGbfp-C7$-E&I8fW%@;M8Y%iqn52S4E25CT#p^VC%d;LwvLhdN0k$ z&UAP;w{`aO+cfK!2u2hGV=Wpttv4K;Mz^}xr~Uq|6F$+Ek@rZuuaohWzM0Fn0BNTo zvaI!BJH<(p4^!)TspxrHLuf+$5zm?^!tN^Q9?ss(7j%{_=<;vBSJN&IC>|x2yNv!} z5C%oo6RpSSo+>+F`(O^&%S|FkPZ*1|0H(XWf_I;f#@5)M$RG{7L`$BF}f1&udl1$BU#dJgK0%ToN z)#@wvBFiXbvCkL!wj9wj7jqZq>1`jmX24o|GqO1hnvnq5@ENFg0vJyYf&z)*_f4>e7(+MoyYT~IblT>5$r(NEjRFC!p#02x5Y0!4%PI_-kM+iC7&(vQ(J)!#Kx| zff9+pfm|3kZ2t9WoLqeuIe=+sZoTHxMO=b)QB|LLq`R(a{KH@_&IvJ63|!yP7M|A? zLB<=Li}D!SDVh7*0ZO*SpyQR zmgu-zQVva3Z)4iY*hsrBsdc4f*E}T2JV!rj_7G_W4UFX-{FUKFm?r#uteH_=1}-~N;bwMN1>B$b$N;^`OIq-^0^MeZSqq?GYnB)s9$ku9D zO%9dJB&!RJ3$N%~qREsWUwpZQX4JUV9&Cjz>M-yL|uSn~m2WCgpr< zVDO0f*Cc=!$yuKWp`5H*))C=(c|fFfIzhjR7#elCFgho+ z99S~)l_J9st}$cd`@xwvSnlt!86j=YXYv=&g z^lBk~_SfFOie2n|Q09B>Ksd(ipt}9;ST?}`Y3S=apGZERF^`J6y}XDThMl+nRb}Fp z`?lwbpA1g*G`k@Y)^3O4RmU5GubgX+2D&@GH?h9APab|%HXzJc|@=Fh+}nqLEPjTF~@)^|u4VV6XmBZ|<3BRWFAUY16g- z0F{YCG3)TKtyl!5(0~&{-5O;}a2>ZN<$ zO!X)nSvE(7hq4fkp6-OwIx&|rkq_uu<7lU&9aDA=XzvcEn1j?(lI%okUmi2;L$k}x zptE0ce2-r_;%Wc;rz3mUefptcJ+IAfyDA8UD)VJ6ka^iPQVNpH+8x!WegpTQbGQ7`(acnB2w5Ri{HZTj00 zyCQ_6Vk16%b79*wreX=)$`&bBJ+qKQEMS`eUYQLz*RImAxuSPk7qG42zhj0H+4xpx z5ZmH_Sr1?x_Kvw%IZt}ZUe=r_e=Zw&ZpiQY_t$S$oa?`~$q?L$&pu~$C^(P#+0($x z2E}`qhKWTkH-y$BOz0sr12Q;kh!!4PLaW7}YZ?wl0y zjfu~QF}KI6C@sHbg^?qjIdOt81rt3~A#06yB8+9(fwE~beRCKi-7ht-a72je!U$ZH zcI3^}F$ardH#m}*e~}wFKpRj0J@II;Xlo^aF#5+ zr6@_H{gFNUK+V}hLcK&1uJam=lrhx_sd*FcoZOftp*}?NwH^AG5B(-?k9JA>f^SDs zYqWRU_fMC<&+PbooQe#z{>yaDvLikVbr!wTuK|h+EI|;p z;L~(@x>UvjfMT-{SGH{O5%0$L@19`O~ml9-YaP*47n$Rx+a9quZZ#S|QqIFX4Zw(q8Yne%G) zbNu^*9ql+`bmJdPfL>Z;6WA)8=cy>h;+cY;DIzOyeL2LwQN(C?C<9lIBuBADx}X2dQ+r!)8RFQoiGrhe>?Lvc>2=vLR0dnh0e@cDS$ zUD%{`f+rL%DcW@kf;AG^z?9+4U{NX$XH6rX(AU8Z1#0e%Cx8Wq_)U0fOw?@3qf=M> zrdbi0s4ZzKnAk1|8Ae;OTkxM*v@`e#pKXBYj9qSYjnv9yg}<2mZbNt+sBFQWPM zjB=*&vZ@a}7GGpWI6L6y*E%Y8$y*XrTs!zvsNs=kE(R-Rr$V#G z7x0ZJ!@aO40dWb#T&G|o3uzZM4H<)I(V_dG=Pg01dpF&zcE=y>m z-3@<8&tyJ&Rj!V-+4vkV7Pa2!c*g@N$>Eo0;`e?akeIz@^ zqFXyulv|OpAZRG$pDg?8%|ZLu-Xi&5IMVq0FYnIFZa#{f(YMr zWV{=@bpMm9hQMfIcJh(?5GnNUq$J!KOMB{&G2HkYu|$hO;uejmjYr6nd(ywHOmqL; zf9-b1WoK4Ct$ykm1RqycT*WOwOanpH4qv~OMtl)yd2Qts<E)Kr z31=UZtKQ^AM`E3&u0E;xp_W-=^~olA58AEyH&y5~=0fck0DuJ~l~UHW7a(G#wQU{H zpm6X#*cD;bx{Pco^A~2P1mz7yRzwAIGkfOqB5E#LyXNd88z4{!N|=UZ_++udWU49Ek+Aa3^iM;#X_*Qj_GC=6s*j9f+|-Gp3uqonUXs=< zPwN0@7g6sQNgr*zsUQH8lz){-oE|mgfbxX%H#RGD5A};^?OhF=Kr<;lpcoVHxLJEV zjC>Z#RE`WY?4TzW+fH%K=$qSmY9AHS$&g?=tccG}(xbX*1A9Ayt0ao2!phsnCFz4- z41BI$#S)`aY>W`med0);QH?aO0`xg}C~}nVb-I;`z+yN+>PphwqW2lZWUMi4D%P99 z1uV?Dr$Wh;*EbO@h6IX-XGeJN_u?_v^Etth_`M3$3b1-+qf21l_$l-l6E%E{xH0Ro zL!R#6me)u#2~t3$Na}E)Y^avxSC-zL96Q#x!?8E8zGpbYyL0?*Bq{P6qjaF!^_Q~R z-|7$JQ?CaDzlH{qBk&d>vW>awUa#7WDN!Q!1V!zop^g^)I3kwWUcdM3WAWH`*EEbc zrMo5YUvs@skxo{(mekbs`S<$Q&iNq!Osy#j1&C7?DfV=)hXe)B0&xb)GQ4`d`M+o* z`-mu9p+zFbrk!9O5<5PAO!Fe6eT@jxS4~{3O3Tv!ELE$%!gd|fJ;0hOsfm4GA>4kv zG5sw3Te5;SmdEmHXBg7~>3>?F#}zWQJWoaMGABWAA{_5>ghGsFALb%HRj8_0CAIX4Z3Fv z_h34+$I`4fJx5KZ;$QAWVLw~3=^ea>n*Z6eIs`5%)M7-WVd|ImdTKoMOWDhYg-g2d zZI~jQSm|K#3&@N`lAHL=Ft2D;er$=)F^im za@MO_8qwl4%IT7ykzDwGd%$TO+q+!Qv4#GyqvCcjIqV0dKFsaABSz_;yV-+%ct9qM z2bws>jc8LrL?QDGVpSVxF4dBhEtf_uvkP>06x_u_9LvViN6hnsYQIEYjN08*8qIz- zR2B1EPS}S}&gG?VUYdqSozDw;LaJi$@>|qdZYQ3Vbv)UEtvvH_ly@&}SW5khrp(4T zFF4EG5|Vqzg>uXBhi?sN6`zR-ffIWTXtUqA*@f=^p0w+~x8T3G;M0F^!T;}Wfp2x& z&bekD&7Jsx-vNAUZUtJ)&;85jp7GSDJk1XJ59NGhj^@yiXwIm1t7f;Bf$V_A>f-Ea zbqoZQe^`E=scYcNHQ;{$E*+&1S+*#F%7+hn@fz5@dhes2Vcb^kLDRtn5s!wBgr=3N zEAY8}fsg($z^9`Thvxt!QDpPip#fvN2b8Ji0_Wz|MRbo!0DRnwxT#}78EMQE-!PFH z6*HcrSv$lv#W^&oi1ASabpY0_Z%Oa7);(sdrCT6B3g<(`yc`-{(WG@CUeDOV&!Gj^ zO-H@S!Qa4Aw~g4WEw}_VtN)F7Yg~}y{T5g8=XlpM*s%;Z?I8qK@z}E97xE-|X?hX7 zPGMWeP0~Ae3J9pW<2-G+?g7JMh_Ml=fiVYQ<01SqoP9_j$n=91MTZGiBT={t6?!R= z7TIu1-~K78K&wB=>@QdSVUS*S-W0&*1mpK$o9y7uQU+JRrMQI^BeqF;umpl{i!S5tx%I*q|hI``1+%c_Tqj_Trw|RFh%63J)6d!C@-m za`F0%G%mScG{2!=@k7Ot_W`u;(a%mfp^_|t44g_NlPmgCmBjAjDp0m74Hlaa#K7u_ zn+hPG6Wsvdl=iK@lqUb?2GsvF(b9>rvELy-7FO!e@pMk3~b`2G@e?*wa+( zx5VR5-_p0{4HI)1e|@WFzhv~6Q0WVsZyAGavW__25nEd)l>U6kfb9=z9?l4S5iF z`~k6~jxqQ~oX}svu8V5Devz)(pgS|`q0AZ@eqO*hAQz!H@ zQ}y2v*)pSAP-BgJ!AzEyv1EE%?biTkul*4crO=m#!Dy8N#w4vrl2z1LzrELKABpWB zkOUZ`H?&@3NNqt>rI)l5-Z``^}q>2Z!HlPi7eKM5TGU|$UFQ(Ax*G1z@wU7sOx zN8?80HD&;01Yr?ktn$4kTtid&LIZ371C#YAP^=H_{48IO5?I78BOp7w8Umf#>8AH+ zb_ZbVyxz3f=(96-J`8g|emVn~5ItR+qnX6K~?2%oGp@g$T>=tp_l`8A@qMU(rt zJOL6YJXANSZ!Tv<&Z?T10}V8Y_ycKC(<`SoNp^`?V!c`&-<_6aLaVQb`Ih1+kuc7>}qdCYY&3=6|eid#t zJq$?&(#2oUnwsRs!tL}!V2TpNfj}FND&{VtTOzxZ7$XvQF`%B|mufGxVf5>Uh${fh zAX7Yp60ewGd`TnJ;TH*lz|!Xh7bJt}nmk@cT|$z%qzH_L0jb}Jz7Ltu?ClK=T!oNe zvBIo8Ss_nm7{Z>7_+((XiZxTAz?^_=Z|DI?y!P?|4W4e^hTB0u+JRe1`yB{P1)6nD zv6H-^$bO3(P8btfw0|3aVkwf*dXiH&!y97$&tN|*@}~eWpBbYIRJrM7cvz*T!RiWF zUW+dEc?4ZLB*7A3!+wGc=S1JviQT1G;242e<&e0moY*YlLeY6@q9rwME%!yX6~a=A zST=Z=pdK%JjP&dTm8RH-K*=$C96|fd?oxQPbrE64O+b&ZH^N&3AdxGSanN&5=hDMhWi|9suG((vJ+G# z398mK|0Ua*mHVJp=s8Q3lrRS2*fyH$s)dF$&Td_X5TK(KggAz| z_7r51EZjDz->l2J04iU@T=NJ~ylZ(To$jurvTbaT>MMC5=Cfq=HeYcLBWJJBw_Kcj zrpUtAzxBT2&hEwi=TOb?)o#`$Dxsz{t%WM3HPNUJIFhlGK>es@ovN$;4+A4wuXY3M z?~jDR9!3?W33;gK(fdwai{_TpWKa6E70tJQW3m#Mv|1tnbfIXy zcEO3goD^Ag_-4P(NWmIATR_GcKWh`5Qi`!QD{x-{L%kT&qi+XF^uI{UEZQcmQer$_ zfDEIgO+?oI$FR1#oq1Lyvjsq4p_w)i#=j`+F`k$^BA++u5UeDyv^z8lhlGo|^k0xf zbIW)O0AxkK9l3)65`~(}z-MADtuN+cbG?3Cni7CS}C4+q=7jw{>^H z?8PT=OWDaxl6=u16Y_4I8)9D7mjg3TycKSuZ-b0RW9}noRa5|QCm$V|F#<_QUL9i% z&0o3U$+LI81uR>L)qt4`=$Lb#%&hwgc~N$|px1lm?q8Oh*^7^I;2O@DexOqKvm-a& zwN+~hK=gVLaiAXH09TR5=XP89cY>B-0>D*rulBjX6Aip&NTfm@2V{UzGOK#-mm4Jl zLx4VD#YPkn74in6DIEs|^bW*70L-nd^L7r~{0oI>UHnDdx*?oV8w105%~%G+d2%ZWOZ zQ*Uneb60p$^O5M2HM;a!8N;lhp(@Kz!MlF8S{IMOhCzP7q09+*$~*WThFJ~%6W8Ak zO^Xca$D^Uh{m?`b27`5>K0e)}C04=uqPg;fEn8M|d|A8yg-^a;dG5|d?r`g>p{}Z? zYxJ`ZNKbVIM?2{bN)zWg`RnUwoLY0Bn$KsoWbeP1(vp2r@;c+B(!1xu%_Zhmfu9Kk zYeGfO2FBLhAJQ*{0MHXnctXQ?>3%Na5Z^ioDE(Ph;H6t4*rlX)M@_4OM@PQ=9eLdQ zD|-1PGtS2CIdSRXv&f}~q0A)_S$6e-U$swWrdMW`LXo2(dgs!&bbO4)I)pigdEVVq zeeW$cL|(G7CITV=4-jKIzFj{Dy!bD&zv;prhvfYOsn}o$*R==9fsOqnnSKbVpJ_^y zABKH6*zDD?^k(VAP4(VG8 z&5$!9*ogv*2W)mA7WQpKEvB6n`*D+ttoA^^Ad$)|S}fKjcjzsRPTv8W*FfAl8B@Dv zrm|DUya?@7Kwye0JT~Ga9LU->kvK31& zk5GE_ZQK%RrN$SN#@Ij;sY9QqG(6QerGrhKe4+MaCu8Yw-xkDQb6|+E3AyuV5a@B@ z6NGCKRc)XdlBM{y1M3DvLa%3A0uyoMV$VrI*;_$aLCr++g^{UC|8e^Lc2;@05b~`@ zLq5?ILqIUsThaFdfPo%QUs3}(hJoPo9Xv4Ru4p0dM!XbmOw{1ayi(Xm{Tvz?+nZ0H z)28))GAvq7Co0$p+-K-|qVcKT1|=prBe>xv8Fif}aMHP*Kw-WGpr2-x*8Dy5cPaZX zqpMhdl_44I=K-*iWd-0B~(i>-3zzYbC)tcqjW2y9Hc;Q){?pwae;$><*nk{Ww5Fg-CjcHO5pSl& z6w}B`dp~rtz$yC4`$75Q3xYWjN`TK!RE*I{%uA0#{K`cpE&9|a-9xyqo|eLUMBP;% zvRMzs(-Z$84NP>Ek7mLpA9o`W4`@wl;6+{o=P-lW-SS%bJOC%M_63-(xx5d$WZ^o* zWsj?GeQF@^7_3&V$D3pA7*2U*a0-&E{sC&OPxVq_%hQ3C_(h8SWYM-?b$k1H-Chb# z9lIx2iE0S2Q!jw#@m%T$u`WuHiN4e3O9(Y8%6ktapUyE>!Z;4R1#J%OuI(XqleOEQ zw{7LU=T%YwgK%jwx7kQt>X>aOb^K_a4>QvLnzjFRH0M)_#$LNd=%eG|mJM^Cu^UnE zz-*srkSCkcJ%HqQ0yYK^YOQ~Uh=6+$tZ6$T zA+2(#h)FFfwG^XLMS>)?79m7TEg%s>Qbh;{Ay=hJg+io=s0dMx3LycKkhT;#go6Yj zr&i<;v$smvB|GW6I^Iv$Gv257_jlai$`~Cg*(-akHUD$|CUirPzvGX7(3V3dc;)SX zLsjyP$B{|k5bZ$H;WHhorG7RaiCn0bo+9E(kX;S{!|6vixiK1&6*EnqdcGX421E_Q z`>ao(`CRe21b3N#s;wc%o3&j-992X^DV;rMI)7jAsL|ds1nm<efJ7!>p2nVB3lMd&)RaS483}UrcO^rjy~Mh=qctrZO)zCxh=G@90(bYVcRYU-Dfo zy#y;b1uXDY;O$-2*_xkdBtlgg1TU8V6@z9e$B|$|3nX@6ln!#|<(XQ1u9B2NcrP-( zm{Z`*0@PyZO%Xnnp4tU^c{dE{3uLJRF}HTaE~Xs?A4a;Z`lLv z&F~A{V^ACVny`8T32r9-ChN_XOBU`Hq;&IPmIyD1#~tQvkULap)sl3s-cIzCBL4_sx%$zvqX9X+b9_vuQWg`WY zsT~cb(<^2yu4R)lGH3SRuEjqQ9~s)|VkwQVHz z>&HOV<2#`KtSC>O$d5Tarshj|*W6Z&%n{eo$ObMN;F*t-bZLehi+`9i%A7fz)f)=w zd*)vmiz=sz-ELLI6?>GPu6U)~n^{(LhvpnzD&pUzrJm(8Tr0Cmt4@+bY->Oc?cs+} zk)vY=*0(hZk4je4oZrv**A21fpYQK6Bv#8%R;ampmuhxL*&=gwRRh#~jkQvjPVQ|N z*Lzff5x(=>a2q5!fly)hlVbDjpySYMSNbPN+8GTM`~2iMk|JF&6bN@Lypd~2Hk7gW z)RHk6Y!oxPnOOE=3ZreRl!Xic{nIVZmKCA}b#*k#4ZK&+=M10`GNZ0j zYcI&;#r0^TK*e=lq{45Hclfbf-D~Q9?d1Q*zE0$ev4C*D(o9#YG6Tpx@>x9mK%v3t zvG5gB7!rx=qCRi^VmREG4qvQ*zhUm_v{+MfaSp6KY8%XoDQ8|DU^BKdxGmf~pcPt6CW7=xN|P3-^S`r%Cb zM-pAc#2QP7lJPF5Se}Rzu*(n|1aguysG|ngx@+S4`R|0GI`LI|Dk}uKQPrthd~ybd zy^ZuHYQ{-j5g!@`f2maWK*S~Qf<1hNM#hRKhW3=1*|TTjyZD5JGpt-&#_ z%m!9=-v@cM&ixaOD3Sc)yX>rm)Q=8!sO4g7r}oxGbDRs z+ZST>XP{95iQ3`^OS zy52Dx<90Zrz=C0UDLC=`(JZ+ph*IFEy&FvGb z`&nt_GXQV&j-;$GZm)x64PtwTc9=XNyThzD-hxz8mlE7+@KF)(9nvz~J20t7f`Pkb zs3_;_qOZ^?NC)nbs!G=*e=OcR|s>Qc+zHgowvFSQP5k49<6qojN%)=?mSmhEz8 z0y!G>tg#F&cxLJbK~dMqY0B1qicuH&xJe3)=slrO0OQHfsWKKkrQ)j=9}%cvZ#4(E zyR8P#31D16L#3L~d#NgSgem@Cy7~$AywaSY@Q}b(83p zoh*|1My+VmA$Y8lvgfh+@p)oAV>Iew21Eo|&y|hht4FB(yl>IOoZ5%8eySxzNh@Y4 zr?YnGaO(vvaG~4pXjbO4Xa4(0_1`}&Mj{}p)-e0AcpYI+oCqxM*);1;QZAXAe;z%p z!z*pHxY?DpXc*`%&rg$Ipes|j{4TyVApjXWhI|hdOn3-~l4{&_-0vFr8+|%aogIu&XkfZo3K?&+{FXK;ONa{MpZ^UIk1SEso z(Gw?G!AKaKadOz#L~{Ji<8d?SqG`ojGg}YkMMwShuA25$+Zwj|zkh@O{%JAN1{fw( z#1^J%3>h5FNz1tSk^FK6YW(0Jt54GU5pXC=~e)_OMH5*k*4`VnYy`cq)BQQRHd0yo! zGACyfHxwF};)vb;hxhbO)?ss{IHos`=;mu1ddOS>bcYqp6DpZAJ_o4Q-NxU{Wy#`< ziEU6pD|i7|>~G>TRMtDhz=EAk=3PP4(*y|j(^ket5+v3{}||giMYYg!Cw~5N<|*WR3cXU;9h+=MAwRCj7*9%fXN5#(HPv28ST6*A6yxwuNueC z9B%3Zctif`__D2FPV6+Bz|ky)K4))Pk<*7VVL9sXR!eErq}wqH#E+};0pQ8T zcp4N`fIC|%9+UwHE=MeQ-0U*mQbQ9Jc88udA`!tbK!fv|Q8Lsk zb9Ik^NqI?B`xnupqs)Vo?Zv_g59hL{+O)HSez&|i@&BrSp#;R$bimS;^7o?UY$EC~ z2=FpIV+?e@O^0`3N;J};Kt>=H(r4NI#X9gjDD{}n3)ly%s@!aWjjEvso_d&>%TA92lDh?CV*#1)2{&RTkL z>+zNi=SDw$;a+D0?jb;UF(;Xx>ypc~D@V0EAzmb<8N`1==m%t~ZsnMA6 z-hVyOVJ+J&BgDtOQjRNY2a*B%lSW5$yzfTZ!|sw#GN%EphxZbC(3uc6peTdfRp@Bn(}sZ3DOPTOfL}}?4awpSy*L}1+FGfJk|k* zyvmVf4WBWt8+b=_0;H#{Jg&i;jfuR9wB1HORh+M7d?iv;0f(~CwSwh`bzJ_Eu`Vw( z?~>{_;a1ZjOSfEYeND7}j5i7rV3ef;oVYYz4jpoQ3*O|H-}SCW!;t_WmVuhoIeccB zTR+R%^f{BKF*h`k_YaSxs;&m5r2)BgG2O5TnxUs=m2lE`5c@FyqD5T+xfkwiu#T=; z4$i9fg!e36f!6KSoVAv|K+9#*UScrN#&AN z5YtjNqDE3K>zRWNFGdqGFi+uUq*JB*N-a`e0-k@P%E8kb(`#A z{i&#UZ)U>W2JsQ}Ur%<2`z-DjSuwGzW{>W;SZ{6GG=}cu8yjF%?i?o@2Pvpa?!rMF zE5F{Xvh95}zTF9jN!f3v9oe>n=z+wFaSBQp`2B+y^g5gah(sprkDiuv7(_(Y2Y}pl zN#ruYI%@vu9aH3L`BmKD*%7wq6tRgjdxr;mbxq*G+n`%ucSwEm9Vh=FC|QP#;tD2N zJM$@Qoo`^-)X)|RPmRvBcxDZckcRxIud4q2ddYj9a?)Hz@a%;b#x#d-KtNVa(Af~J z$?>Xsc_w=^8|14T{=7VLaJYfzgqXDWO!hL?KJey!*-6d)mJ;=9B)nT29exx}FS+uBWk;NUQuY zb!NDJH2wl&C3$m-4kLulj~c1=HUH^y!0Fq+Nt_`QNdAj z^<7TiLEvAp@&>8sKNnF2Tw<&dkpPb1-;3N>)LM2wduKWw_(2?j=V4F#8-&{-UiK$w zDon>{nq>xXm44^Nv!aRIkVJJ)6qV`g>JT=FpF}{3U(S+*vz=Z~osxd_v-OzQll0NM zELZ$-h!X=K0KBx|2xa;G=nHfg7y(0A9aqY+W|0sFFfA3YOU}o4idOXrIZ&uP5T9xJ zfH@;8+XM5jvQC3L0nW{@G*tF;ns}Xv2TH#22a!*8pEN&tH2BVZJlQMjn$5fTX;LL?D#L0w~|IbPKM z_abMcyNeGXRa#7zYK8C!VOfX<$|xzZ&Y7vAm~RV@ zLg6}&#E_$MX0HY{UIbexww;u1`N&)W{{2z%Kyik}8nNm!0uU@KSWTN_*pJbU2)d{k zbQw6MoD*#-l(OH0Vx^!WI|yo%NmU6`oI30*T*>kiBZrISUD4s4DXA|DwV^hKb?gyU zBOnmG$0U;bX2tbMt%fWPHYf^iC4-Hvye4UwfA|f-2^s0UsCZ7DZi@JzC!sq2LiF1S z4|68xYs0!J)yj9jo&&=(GVzMP=!0g2agT*J-v^%?Bcp87KrLYt$#sO6+(wrXSBiEq z@lsI$9GlOuk5a8iy5*qy1Qf~H%$O3#F9dxv5pWc)hM*?Ao&n`0~5j_^() zBZ83w!-YCh0c)3*`kj&_Gh~QeN;>)V z_^Sk;ak^rLT*VCvy8z)kig2sI%mQ>D4>h`^2LkS=SifGwb6^%lw>H8)PqjD);A)(x zP>UTY3yj%uQz%l@$yqM)n5H(wjOeYkz3W(Bh$0P|Io5|~TOESaj77jB@DNFnxOqc2 zxH8Uib|-bU@Ho^hCI8t~sQqZJTr0jzaULQ#Pl@aYQNOAg_7;AZKgIKhG%Ao(z7~)6 zwi8^COpRcrSnBP~_IyrDCFZhDs2T)%t9$6tX2^KuEW-{|>+mTq z7A(Y&Fr0xSal*Oq`0$;+hI~R8{RF-D6cPz6Roo8#>gLQKt4Z?nQ`Da7X{8`XctOj_ zrue}J8!s$tyrZ1Y7i~s^VQemoqZ6#zn_s}cTgvGoc#Qa625jrIH=8RCE6yd)npSOS z5a&8S6xkJ?68DMe0%e|L!U5jFUQ}s)Q!l^d)oPHM4spoWL%9`*2`3O?}(0w*T?1}Rsj4JSSOjH50H43blA;CLD&xH zeB%1+2tO2I5OdD4you5>iZ9| zgD&ks>rLzbK?&G_AtI*TVh3aOi|@qo*UkMH6r$U6*ZhQYE+JHwLfDjdG~vV~rH_?X z&F%}Z1VSh3YbL;1tZy0&2F+r@)UxX>u0b zIHM)4WVQ^Cn9fd;-Ux%$REH_TPN=qgaw^3bfj1Xv!!V(PqF=Z4o=G=SA5Z&_Ty%Ir z{v9M`z)DK#ng}xA+aeyGBPnqboYiJTrepl0D=;+F<(6k+=y$d^oRZa`|7^GmmkmN6 zVWL*k@#(T%@WGn90MLIGjeuH4I#i4GdZNZ2qSQZ}F2mYx9vfaF^*XCsXK^P=K4P6tyz}>>FJGXa zG$L*mKgN}te23Rb!5)Q)@Fydhcf>VSipiFS5~;v;{I}4)lPDJPs|C4|i*$*+Q(%27hoa1zNr&dpoVXjn9Tv&5cA+yQltfUc< z0~%<)O>jr-U(ZNd7;>>KbB{5KEA7^BFmd0++sCt=2R1*w;$~}cE7_I~e3HWq6c|JvN6e0^iCJZvkPx5;twGrku=WZ`+F`is zp08mn!zjy>J!TfCnL|zt8j`5ldeg^ZDPy$~;hr37^p2Gk2V@B&?z}3)4+}ho(4$rH z3xzi2uTsUc8q;pN*jBg_;vR#t!1xhEa7Gjz{Ix6XH$_VR4QX=M?!EX{T3l9Z@fr5P3(#ou(+l^gZNFGAhP|YGEQ&W#EIs6~W|<>T zLzL=Z`p1K!bu`N=sHQDn!Hm+d%Dn1E&;vSGFinChf$+Wq4f#r60S0lN)rgJcKXECA zv{Yc?K#$%FVbscAa@G*MkX8*&ALchv1AIn=?FhXbOtf?0SmSp{K#CflbrDddfQrny zT;>LqRa{UDaJ=<#gtd8EJ&y-y9r`7p@?C+(z<60PL%P=w0A$%1B>DDproVRblX+aW zs&1s6nk#lhv0zyQie*_yCiF)8Y^I|gi89^?!8aT;cz@YoP~sts1j7aIVIdysnlzms zION;wSOY-suM4}1y_&e%KZoCC`5)wEalYn{PIic$grV?Ti8Ei;20Z20gi(n)0alV= zI%!dOLn;|zdrRMY(9=OQ82XHH?G3tq_{50Bn99C!m$tx@nDTdpG!8UexHB3_;N9JO z+qx51H==K?v<#PRGgl>T_g7neJa8Pg8XHR`Nhh1{$F?jk|op3mb@%%wus!nV1evgP&@) zLN`tVcd5oA{W8ooVW|I8*i$2r=Et_<>O_TbVLKJHhIl9A!D^QVE~VCcb30wyLMe|G zTLy*EZjYgaIrCEH-T6+V^TR+MS05CD@8jFEtx!9p`7U~RKzQMFaxw$X>lAH(NYYRq z20a9iTy9KYNZjni!^uRusitDXWnr|Yhat)8dMkDA4o%nO2Ok_v-oUuiF!z?h4U?D0vo3&X6V9z{)1G@YF z#W|59!HAxoI-l__J^VO;Me-T+(*PD}s?M?W#LyFH02Ub)C0TWc{su6~o>)E*=*J-! z2^p*Rf`OR4iWLK<=)F8ZgrJ8&&9gI?)HUH>AYnD=CP1`w0HW7Jg>6Wo9pw^_n4wA zYpIy21+0;8SBMgL}>Y=CF+Q4qTOI+7mOqmb7Hm4 zR~{DJ(v*zjjJLoA@k4b@K10e%yne0$Gp#fS( z2uX|R`!qEU%RHlLmIzkR2zwg)4R{n&JI!%DeA!wwtB_#t*Htilm$;jyK zID#A9)xTG($`ySuja!?%VX_HmwV9%|aC+nogk~t|WUM{}F%$@HFAg&>5JRmvG7w13|5g=a9JA-p{ zw>Hd5T80I?KrJ)&izphphf`@T==pNdUrp388{N4gf-4B_S)Q?%iOuB(kq=U@R^0=7LNKt_(uN%ktiBl{T* zHM{4kd4Y(;!~s*oNNp*x9cIfHJnn0=Q5&_HAv;3HHQc;W4$NY(I1l7%#ImCZMIPR7 zS;y>3Pm?%@3EF$Uoj(dcm?}Ph-y@^u)qHBoWrpyxW{X{;38$H#H9*!HmfIR$XW)MA zdX6>|1on3KZ-Z3xssba$FZb}}QIJfDjP zDt@~Ev(B`WzWLjCyaQf)Pc>1BbD%KgvV~=ULb(U=&5LRavDo*nd4B0p9K{t}>Gp0X z{Cbyp<+mOs#0RwIV&0%R~KTl zg)X}LK`S-QFu;Kkm0pogpb%+qHqlN`crR{ZIl`@pWdCxV{W}5sq@i)px8uQRnCavT zR&d54FvdTj(3H*@D`Ri>j9Y%?V2KH&Y$c~Fk9Uo;3T#BJ8-(7lyDl~>$RR~TRPO1r zc(fEr%hte^M&50dF!b=Ona6e+qluOcXfD5dW!Y8(Flnbb^n~RV_gH~9jnnir&ZmGo zbcR1l4TUW{*helQUn6V*d~Xe7UED=)n5UImmJYC}>Rwwivg>15#E0s1+STIK39L)l zs}E~Xzx&8b{0e-YFt|J?NxWtzu(DJp-8t97nAJm}!09c+IL84JJO&f5+VF6$gyBlF zxSD?^>}GO01}2a!uTLAr>zLu1m-#S3-cGa&;@mIUcK$pVdhdotGJ`lCw?_g2WVGUF zo3Q04tCzg1I9K)-WS8+A6eUr&irvtQ$Ys+(Rss@S&fKF7(64=n2s*!Ef@}VL7>IVK z>cJH^Zo6ptl-ssOButa;+2OV+qr*XoE*8UXg_<d15<^FWA94ngCmc zilAj?c_(8g>NVDG-IK^Mj9GpS1!;LxB$Gw9iCf7IqL< zy>1k9i5rAI79Y6k8eVwjc3g^h#k-o&4u8V?&^JP;0e+!kDrclEH{LMMYjJkbT`jBo zMfX#-7`N`5CE%wi@AX?il6wf3n+f8Hg{_3f@Mh13k((!yhiXLW7fmwvd>kY28u%kLdd>RV)!?E9H968kXmf1;+~E>8PFH zWap5y50nUnAv{nq9U>(uLyd?2;X-^4oxN2v73hFe0k6sIFUfT8G)ZwY7u`kEmG0>E zshAVpFyYw00fj{$vULO>(TH1DO5QOYTCr?6lInd+@7$+|cKM3^}e2wrly=$h4P0jk` zG&o#h*-`TGV34=pa1PuusT&kKHPpOM#Y`{M7I|jQ2BleN-f143TcX^4)A;hx$Aqtt zYWS_L7vT8;gRB(X(r}{1sH1|YNuW_1s2~&+L&C6DBL#EirbgHVNn4o1i6KAugW7LGU&j&gfXc%Wloh-14~#+m*wgb$108h!$?vo9k0per+cy zz11MNRQIwOwgQ8PwXacczuFqjQ(oUU=3LzT-N&wKIJig(V+@!+JhRE2>F^WB)OY<%V%2f%!e+_6mp$q>yizJBdz6T4a+Vx$TVZ0_aQf zeS#MRS*>rnb93hHdvq-Bpwlo3NPjF>UH32VdP1TaAV!YGeLA5M8F(w9E_waV+p{ATY!r`n zfaLObfsA}KMK}H-E2>h3e*Osd;}ryLuS8Rj?z`xwk*#p)PZtSZBRKVeB55{Z<#VP) zy0+`QA9dpt2Q$lxxpbeD_As=zsfLr5c7YUb{sD0B6UdUTg;N$Mx;Iga&thRT94z@2 z(Sfjud3Mhq2+fYqP-7gQb2@kH!nO}VOqHIC$qV^v(Ly~P21k*y_s7mB4HXkWk$rjw{PqEYaey0(N>P%g@M8Ls!Ja z`aT9>Qyjqw66e46eYF)Pa)nOX@d$a@`T@VQ)_Q+3=326N8EZG_$g0}^&3i+Bpk##n zQf>crzy8w>c%?WNb9r98{59KZhRl-^*C9(LLCKoq+b(efL(bXAI;@!MAyVqW$*?Al zzY(Rvp;3rRqdy~2TKH$~BWJ$o6K$Frv0%#v7Hekm{kIK&IP12$AH}PQt6mZ8`sR8l zrca@lrOS(|CYZh81P-Ps546e`Yd5yc7l<}7^JH!T@Zq1^L8He>n3$cMPJX3+G4b2S z?^((8>|N+Fm;~;T4on-3s?)F}UbV{Nh-8F9MIc;XwhL($AVk?h2q4HUixUw-aakOj zBvJ-@kHYeva!P5P3x+h+_n6gMYUjOS(=lPwz|TX9(CcZul0VID!jy6(ARM``!vPIz zze41QRIBG@q-*>|jTl=rwn$3Z0}p=>)l0at`9O?}WF1dkCG@%tRu?e2%E8$|QYCRC zApLh_TT+H8n+D%`-P=(yD5@GHEJD|b5g8rUdhtMHVy({dEbz{R4Wffn+6gxBPs#)N zT}71?z#<4&^Rg*84(!~6i2A)ie>XD8^K0!H3JuF5{!-bXXBihR~3@dsnh^x>wo>%?=OHwm~G)A)DV_uYWSiBYQx)XMBuCk8nxWcC3 zm#VcKbp?M7kSanX%Fp@r2jn@#xcp!_5gX)Ei|&LxDouybGYF$%A9UszG{nnc9iYJu z#*5}_B7fGY*8aITG(oc*8h_nt+QkeHD?BoYZxF1VW;>USd|q_QBsqx?Au44!8NVi8 zc_4E_@GzcZ<5zmnV6jg>k7$?k%-ZJ1-!*G_ zFYkEcry2@Q&Z#p1NRNF_&0ICZ;Z;PHoU#S^9-B*WLcc|15JNsp*#YO5wsG@(lEm4n z6(V;gfV3RuX`@2-Y-sFVMJwCV0F~W0+7d#??P=$BOf0ek68l|?59=^6jDaH^y4lR% z@#PaCh`YCHi@HiMN}M(z$Fh`Jts!QK-lxzV7pUAMzBLWE%;G&m_yCMg#*ipkM4;-b z@Q8TTJGxVXZvug_Atdd=^oMa9xe`@Arx850-GIdurL~suE}!7n&r7zmywb7RNgQ6; zt|2sC!&^;d;>jZq8^gTX-HnH#IbO~jXICJYI%?GV(ZaBzzL)&Z3?g#lQ9FivmiMQI@ehL35> z4c|Fo3%gaDK4JIp>jmF|UMqq}iPU-H0-F!<!g)s=YJ6mV>UtOFB+&*(QkEQMz-8QQ0(*Kv)w;S)LdCIODM5-SJ0{ z2Yjp32yfM@_TDShMI%x@^lZQ=KLWQs%SqQ!*D?iKka+MwXvkBsBWcW~Y_#*U{TklrTg`k2 zpaq}NVy^{7R4{+WgCp2R&=^xY6D?K{HUQs%^bzyhq&{K{a7Wa=TCn}GPakv$llw0H z#NPO~WJL`MW`4iC3p;3v%3|Qy!$f;Pd&R5|ISqw(rW!g08O6O4fepLQ&A(9RQ+bD} zkWjWF+`G((@LiZk;?rT5ZC zx)>Sa6&6BVsz)a5oR9**IQzhe^FsmCN-LLAGs*&?XJWTo_u~ZjK!tEfhryZYptbvM zzQw1$I!<}VIV9(yJ~`j>s8Hc|62GJB`f@dT+_a6|Q|1p_xG-M2a02YQg$EeRd;IcH zI?_s4Q#ZsDF>|h3Wv9~JlzBP_-MvfQE z92khHUoH`&zMV)<5u0Q$8zU z*@G7c?y7#Z`D{zno|{J<(2^7rowm>@$oT^~19($Zd%VyKgsBJsaqBA=Cj=iKVl7wM z>SvRH2pu=E5t`3KL1&tc6gW55ocFGo>%mEyQ-@V6W>n7!cJP7O;*0#0x!8O{e=QO! zO~q%S2Q;pp(L)Vs`aNMF;8b}Esh8X=!v1IPlcGq_)vGlujV~VN*M&so6C|<;*Ot-^ z56Lyvr{$A}Gfj@@QK+%u5i>%^nC;et-ePZv<1g=es$l^82q_DVVnA;tEy9-9H!7YZ ziv3`8Q23nLe0cDyA&*P1g~w0VL@`^#bH1t@@*C^k@Ltn3tI=c}s0?XRS@{BZT*zgS z15*(#Mly((g`o**(lyRnVHCvIoI7zsnfdbZLly=3{tmk*5ix1R=;rP(ix~yygrShn zGaR?&&$&hc4`6ks{FP0ucgRilcf+44$d{K&?-6o zG^2`H(G@7VMLSbPbG&%-o2XX{r!J<0ZIdC7Y@lA9aO33j>#)X+PiVuU1%4MG z6Sx|>FkGSy>Uz(7`OCUN%NF#QDC=3*LKJu@&G>UQg4NAq`r5A)=UHjmnfk4bv+uV6 zFaCP%lXoLcPySv+s;dD9s-rqaKE)g2as6gWvF&2pAScHg+E(*U`To|HLD6<(`Xj$E z&#)_o$bq^2^{v3>G?ugkU!>k2=@TOU;{Ln3y$%h660~B zXO6xaBXFg)_*E>dxtis!QGuAY!U(!W@Epyq5n&WiGwAcgx?Wi;X5Dm)_}cl}ts`V*GljqPW`?G_#;IXu+$y*~X-^nodVA6@K5T1>{ zgon{@(s3>mmWbdU)fI~y2qXStc`rWII+HICG)OpHXVA_-teher_^CN?;;BZQ<(&1i z@#gAtLcfR8^)kkVMy%csb~w^l2T^!XMrSjwVYPTI8Vae7LjL72|?Q@8f&EAbjq7X(*4INXlcj$)+JM&FpnA-hz z&)&NafVqsAPh7)^?Z&JX72acnZ61DRdDA<>X%JqhU=KTUxLc8YZ92W3;D`9>@Q!lm z?ePINE<|HkNw=&44VMYahfR_|QNB9gU0#=ecto1o*i{WuDo)7Hed90OY5$?!go4lU zw;*!k4xmCTF_79ojTmRN_f(m@GZlN~yrm!F7@M;&>k&@pJT^t-#M64$RH5rc6C>KJ z8qN4Y%i9ycF#tQ`)*(fo4xf)1_BB&fUz|ya0&(X$fqWdmSa@O5KQAC#X<(D<>;hvT#j#@YbbjBnb(6MSfOshH-xy5SefDX}6cN zc9`o$+h{~PU)NY&h-3xBt{!5@aBIOgH6J4n^ak*;%^(B>@CVTGKlwSRQ>I#XDTMCTV_~;>`q7-umWU?{kyxVxES&76F;6y98Srgoq;s zk_8S37@YpSs7Xj&KR4F1d~`=cRC=iHAEn|5NAu08xP`Fm={yqj7MV0H85ju7JLxOE zGW~M*$9sBREPd35gO9PZl>&5KALp#tIZo`zim90*cs}jp(4tewkXvhd6=JQ;dK3h> zkGLsLJto&b6ct5N?t zAv7V@sMe@JmqSyDu4JVzaD0?)8PGRG^at%d{qr=LP^iVZj55n!&y$-QM;^X2ucLhv zM@z1zUF?0(LAUO7E}FdoSA79+PJ+z0DBD~Dsc(s z3C*`TFBh<_mspU{40-FrKld z#azjv0$-0Lm7{l6_kTSSQM*y>iafXU(A(ImDR^#Vip?90sQt~>VX5$k+Ml4 z+;g8J@j%bynFzhI&`J+6=DEf!(miT5rM@cu@-4pRd`zRs|6JLNo^N8>hb=2Ciom&% z{6-srGT8XFqLGo!cI^{-X-gA3RrO*$RxMuhB2MI768WT0GY}N41`gtFWn9n)^OjU3 z4U~jbBjBQRV0a5QGgf?KQ}fA>gO;d_JVa9U>LzC;dKz}o0o5+$9tg+bFP~U2wTl<~ zsg!qn57Z%%mFPi;BYBl%utta{%{P+8*_J(nb0571^A-@$o7e(*WIzRbKbe=chzhmo zRxj0=W;R7^po(6PdT0D5-tlwye(lU(W(TAp?(2DZ^y zE(5Z}`wEr|{FOKPRgXUaKiGr>!+A6MOZW0=f{|l`j(=Fqf*Z~JsUcP(l%kpcE}5x* z3Wt=y?p+H*rTI0J&k5_0_=)Ara_))7)+@h}aLlT3Xg=%Q-Qo}L*JfF~+WL!aLqh@! zN;TvN{VnZBc>G-NM%1Md>g|-*nalqKNvwB_oDY%eu7#S(*+1`34~yKR!`pX)iqZxD zoJypE)Hmm4Sf$zrJCFy%e*fk1V*<^oXdwcFx;ie?M|&zjdY{+TpD)|&s>q;^Y0Qz{o-x9a8C@dntpMf9`J zj^s}TJ05CU(h_#scqJEXSyTg}XC>x4Nz|)irxV>8PYKnEMTX`(TnyJNHcy(7u?L7i z@(pvX-mfI8CjRX)k(vM1cG#c?41|Mk-O?^%c6T>mS<#3^w505Q=` zyCquudc>Arp1drkbJ-iJHCql0Gnk)|k&g#N0haECE#UCvTN4TW zVu*p-CeZGUMj~##RHPIvl1(tXt(@u8X-hqx5YS1%4K|1|w2{Dky}qD?aVc?!zND5d zQ#rE^K{^sbs?UTo8q4a!D z30alxhp~$r`A_BR!pg{K9^t#aMaIX70516imUpPGs%+5p@SA5Ut)uwCuhqcB4>rQO z^k>am?{YPmb@W0eNpg|XP;~81e}dnJ^S)!Crmi@v4Vs&cl6)TqH2?FH(nNDEVLogK zy+Aib(g;}Cd3r|kD`7G7%4BD8ra*S7(RPmvl*4UD(ygYruf=x1nt=!EtnG;z&9MpI(&>q|S_0MH_b+@v9gA;?mEzr)*T)W8x{D1R7iI!RitTQ^ z5eZCm)f`osy%n7)G3|YluNyUQ@9cC?>0G-Vet%3EgqCKh50PDP&N5COt zQs>ekS^mo#X{YbA+(8k$TM5&z)Jm>=c|Ruc=P~*y`xoMd1|yPbE0FU?AI1^aC8^d; zQFcOGR7=J2)#A(|{|Wz=>!5He@fBw!SOMxgZ-F*?wz@XnVSGA5Ihhf(Rb!^jc?X9N zIvfcd4?j}&(i>ykjWpf{wtj4e-m;thdrNI0Og*FkZo8B+JmO*sXBuRL_v`w<6gT$c zj=;V7V)Y&H7O9&iZ>=r&Zpx`4BUe#z+Nxc_X&xgo4zT2l7Q;l|W=PdJjsyRV;L8EShw6kL1%2E6&a!O-4JvzC z%Dp>8TNW1c9ccSznvM-5*=+YqKcSL}{E;(XlhgL@IW*W9)!gbx+zn6}LCBvv&Z0Qn zYLGBK#@aC?+^T8&ESlW4J7~8lISR>IFwbrCV{U~5@&R&Feg7t)VE&X!xlgC3-&P`G zV9&4Oo=-@K>HAVqti*V?%+JOG`+@V_%b;dc2e>#j(XRrDneUu*gQ7L;;dwG6KS{8R z+Wi2;_O-9`@#wm?22TD!TydsMHeNc}<$~KdkyGnQ^V#yY^2K7qLWq8^E;>Xj<7fJ? z*UC+J8KEBn%QvhVM8FiMB=U7id%JYCZ8_;b%_=Ut2blk?Rr) z?KBrSX7biK&;22G;>3+QsGGYO4ydPsufU8GN_v`~G-(KfRy#S?gKvx4!kR{^8Oi=9sh3-q+sOb^Qjn zZg9?6(icsQkem7_*_Z2Af%C-joe!FARafI%Sc#=0o0C4Y7={m3R@XmnxFJ=bCR!g+ zLi7U((0Se&+KNq^;WXDB5z227ws4#jmX!rD1T4_$cw3`eVlD=}mJat&Eoq{}V)9#N z`*34XbLC+*2Mf__S~)l)Oqm8oO^W7TFO9Maw`%`Mde|f2#G|ol^Uyc4ix>FX zeT=AXM&do7qk*22%PgY5r~7L-*6>Ky>B>;pa@qUW+ zqg=C6mrQvA&5Xy&dRgfpOsn@jVRt){+j?6`>|-g5*;EFJ3QS_j6$*cFJhcJ=v{t~A zOZ&z(KY`-(9V9!&jp`+;HBQrcDP(g%y0Hr=phCtmx2)}MMgv@ydH1Ai>`B_n2CH=? zV>{GR7w9_~mUIsQ!>fhX0H0%P45aLMS#B!(JuuWn?$tITZ$%VgEy)<% zGr*0A2Gn~gsPStA-FPphD{thSsV14^zkE&g_n4x3KZM*8Uy}))!dWvmHK3&rM##&! zc#pG>7|tBI(>U350`y|o0RiWNk>L!(`ccBdv#>;BSX3qKJP8(|IU|sUp*Qt(?uXx} z51CRzyQuY~duwkZjz<9iQP^J^hTe`Y9nH5z6X8rbkW+6pHC7arAhVl#?Y``MFWC5` zXHv+jEf$ey`NGqRwU6_y1$NFAox1%>u4`yUZxbxxJv(0#awbqVBvjc)D#Pp*OF0tS zs}HTsIhf1CD7Apx$9zs+rrIzmoBbNtM3+0VRBleRfe+4KI7M{1d9#~y3N?316D})d{dJ*euXc^@IQmBGiT;z}REr)yrpVO3*)b5Jzs>Zd zSl=8@Ww>I~Hk^Oq5sH$Kb4qoS+H7EO@O7{cZ@Yp*C5d~jF`ATWfd7wC?`vm}W7JnZ zpWQ)sG${_Ke8AI6=|p2Rciht~MV=T0bdR55`cEiupAREw`0(LcxF<7~_t}az=^C9E zoE-pvq{QE>X2tXh0&f((u)OhI^-Ne{UY&SOAj zqci`^VO^P2t&{n8msOSDlg3{k^?UeyE|)s$ISdB=YAsnpG}F0v3YIZ8_2Orhg}f*m zW4dK3eKWX%m1tzs1#2d*p7e;Z3FI%PxRiTIO7T0~!V&B9*k#!L$if@`4?{wIA_~wS zqsVsX4Gj)$SNx8~#62@4_`wMNPA?PpkMI5CB1MZd_JHPKkxSWNbw* zmjPO$H3@vPxoEaLuQ*MxvRFh~D%(zjYvk$_op%{(-SP22o6i6KXwKjbY+6;rT9L#m zhr{NVQa3lfbOEaR6;O+MK^VO$z+RK2|0UNK>B&=gJBq_+_Yh1B-T4map8mK@UPKq( zH~Jo91>&e%QV@t9lyBjOmgd%Q3>L(>BUi7>Vk}{|z?qbZgQ^j7`Fs9Q7Ew`?%$Sc< zK5GYhge8&KRG0Ul2k5GZYawOw33&XAxXc&>ONan1)2pKstLn6C|#gcXe>#ylKmjDgy!LfiW{)p zO_Af%@|JY%TAc@gWSp1H?ni@w_5ll_g$Q6lIbssbQiK;OWG0ls_0@3V;O+Y%C=r-A z3pY#xI_82n|cFyh@&P1eX4B5%%_J)l+%sag#fp7q2PPjyu0m$<%Z5d zGr(@LHS=Emv1ulpQ>NRGf+TN_F}kx1Ej?tnxYqC-u`JZ*-HRrysi))}u6Hl0LPA1@ z#)ahoKXbfxFCX|<%H~axZRp{mM!|}99+zNiXln8EOL-`-PnPekEPH2mJK@1F)HeDjX%`G&0t(dd%~RtSU`_e9naWejhf4X@QvLvv{qElxS_}8;WM;eZ%+Cgd+ErANvbia#z$iZcE;O z%`R>TuurqX-O#LJoh!n-#w3i|IiNQ{G$u4CqZpwu5jZnc2``Zs;qA*%Clb|h$czij z2WqJ`AV4hW^T@(+oppYSBf==${1}r0I&Ghw$5YRnFFB7ckx)Mr08*|JO+cL@ z1!O4Vpz55#yYeguKqUFJOvbtdMKq9Ap_9cSgQf7tZ$aoxqT3AJy1TY`^KFO0pEKd4 zj^S@At-o0;qj+k5G_32|=tl0#)Ld@ET#J0HFBE(cP|EPBsPEAEDDqCoJyd5ExD|aP z)0Icx5LiP}J2cs_AnYN%Q(m1+O}Ka#DjXr3@zo1Ptv44qYOdXgh+vd_f5)0QTYzI6 z1zp7nJ*+18GL9&){a#9J3oqT^43jQT5Y`MbfKa-;fiNzL=dc66bqBTJH7Ks=QL;P} zJCEVn9jo7AAbo*q#l5w<7SSHQ)>OqUx;Y9mF(7*s7AHnVE`)!DQtzYZ#BoeZeW5$| zf@C|QAI_Kza1GS|B3Kh8Gowv%9YeeDvxc;K+Fs=F%aXMv(Pe}51ktqTAMc@s7vcP<5YzA9_I+V;2xlt1q_!(~1U7)&n|4)UUpbKU+XA-Gv+m zWS;wooxo+_U{#0PM$GYK1=MUC2b$fP3OYVQp9Oa+dy{p34`n+03Rum0~9fizpq-ss@BWkj2}4bPm@YGNo7*y1Uf?EV=Gb2NWZmBh0K?Rz>>) z9Eh&5hv>Sc+HG_;ILt;`UXo$>e(uB!&fHkyn_Xoj)QP zIvJmxI>}o)LN<0A;9WAT7qsKu0aG9Z7U!?UF5yD*Lh2d8Ix;bZ;g(~0-6NGJum}zw zo1P}D>~d>3^AR4*;pf)?Y;5O%fU+08 z)+<;6|Dt*%9fHipLb5YzR2?scmRThtoFZ6;7PkmiBd0?=M;roMTAP{XJ@s=a$Mj|I4E|0WbMEBkQCiU(##@-9 z@$MBYiQ<@N`=Pht<@FIttVt9W;|49pqzLU|-vASzg(@6>`IPJnl3bVpRrfYK*1;c+ z3`%IQ(g%M3bVxQ|w>gg=#1`2(bWEjB2Gc;vK@*6m)9|b0xD)~g?S%pQc|R;?xO#}5 zfWC-S$(?SYVve-qx16UQ6z8xc*em4fnrB%*Oot=RgLf5_yb$#_Z48{P=7z%S#q8kZ zBbU`Y_mw8$_WG*&i*vKia_NpkftdedHcNlO;@tj*xdz zxqB))6*cL`FFmoK`#=$eFUxI=$23b{P49;5LF`~`hfAs`q`o+1e~1Kxr)E!J{bEWJ z-2xBL=wnUsO5lbDb-ApntGZ?DPr4Rc*-4{r;HtQHlcqKPsOkY@UmJ6yR2#ssWJ?Ik z_{pTUljX3n>TV%Q3g}R^fN0k*HnZYdfXJ(TFxXfPEbX4!Xx z8{U@;&1Y@|HVlBGR_}?Ms(Fg?ibgik1v4K>EYS=zlWLmeueE3PFjwgx#A2;?3oOv> z#!0%b@6w$Pbm|h|b4t~;#C!IkUi>lYgE6b{d0jkT@TyoLd()Mexuew=4x*B8l8^ML z-6&b-e3QP-AN*j``ytOpIDVkw}8fDqfWaWsdJt1son#24`&BwqV%a2cWR;h0D7v<<$swB+5X>vfzz>6v`> zg?_1zHfYZ$qdQqF!`x8dXY(78e_lE>?-eu@Ap|I+J0_EdF@OGyp}UhfVt)*nH{AMU zr2F9#uKm!TKLhko|8z$q;m&>k@*(!0Z~6Dv_zxm8f4`LfD7o|ZX#AfajeB4X?_6RO zBqd<=C4z^}5_CI!`l z$jwrPd8;S1a!fkMtcq>zqfjM)pHx1i1NBSyTyXa3C?l-!Q6yZ*JXq7kI6?T?v2D@# z!HzrKwp7)bZG^N==(M^|eHcCVP#0Q-IA$FL7VuYdxleVES> z4vh>uD1X6G%_3&;ChJPc=A(oqHE87KhBEqrv4Q5=K+Z*ZZW=$RSRosLG!&S038+|l zgdy1(Ct+F^Rp*ls0Rd55p>_R<2Ph=~rgj9=$Af`j4d{F00S+CG^g%B^{I=FZoOKS= zr~$Y|K3I$OLHO^JOC=6J=`1i!w0=k|Gsb_7m<@vxF=#`p`;9?vTLmJemB4*;x|TJO zSp=}?HP|es#W-g^KIoiwb0|GdQ-Y?$WchEXeN(L<1$>l+h55|&QMElOa*oNHanCD; zjYxfK89gIUD#G=jlY30athIWP&MMJlw1=KqdCS*d*;iK8Zr9{X93e5 z9SB75#QA%LKn3MGN-hMA=V@_+qZoHz_bpm}mo8M8a#HzQ@igwpjO;37XQEtYxqH@3 zCQ)SzhhsAZOHnIq*6}XFT2$)SHN`dA)ehV_DE+>DZrla3X4la1aQF7}U`Lrv4?WTV zH+K;n+CcG?y(nr1w7lzy?vaXzrESL^dHO%y1*{NCZLsNXz9;RCZ6D2 zn~{iwsTOGJaEqN&CnG}Z*f%1W#|J0SceL4|QQ0}PG$>l-*b)M0!=l{WwD*iNhGnoU zt!i|#HTphmSE6iHul)_80D?H4u^kXWiBWm$as6J3B3=EEj*F4^H#ZBMQViR0Gj8$$zNmjICoQx@Lz^YmoKIR9lm7jT)m4I>ZbO%0*%82o;t%nbBxdeo zHyYf~AUSS18q@+RekD|SB02C$$J9J-gOl8H#kt|=mWB{W1qUaFcYq2(JEBbIRD7v%zdKH2^ z_?&{6qQYMUhoOCZMAG~Rb2Y=e8d}6KNBgw9QLCou@a1qrYMor2DO+rCjw152lL>3k zT(MzeC*JoF2^@8siB>vN5&d)DkZD(e<}Q77oqBg<8#a*P15#gepu1HplCknV5K8o* z8!)vrwHJkB+T7G;XsLMmK#ZrpS#>MroMJ1(>F#)-U=ASFmW)p4xZF@kZI1$3p8jhM z7>#Lu<>m_Hm0&F&w7ix8b2n$#p}pk_?4l!pp6|jvUpJp957r&z$bZjw5VpMsZ8X#x zy4oW!$sKx|Eza{5-THx28z=Ho+lA5r#pc@_(f%s;jxc7x#1=Ird8D1(|1nW}$+-(WH zjZBNo#wPihyH9FiG4Xgs4A$IT*l#0&_(D;GjaXPwELjfv$>!6rHLfO#}4BbKy;{$!B;Ku~<_4tm1B z>k@#?5362iy+Fq|5)cLN4C;=zxf4@8nT4RQ*v(vTXyx#&o`L0$E|TuM6ZF!`Y@cQe}5ggLWj>q$fAKT+#y(8%egwiaD|s-#wVmj_FoQ2C;amfK91_s)Aj~y%5tgFkT2N2D zwK?2bUjRZzaZ~s#SlS}%D`>m}Jcyb&ACCb&ELP5~lp>UM zw62@5UPstiZ;7C!BS?UhbMg+h7;DB{1zOd*RfVWbLu|W|%kM4^w)1(W!6w>WsRr@u;MW7MTVFB`p(?m|s8Avr2Lf}> zEK!_rDL(G5&K)+*7!A?XBr0&r=^5|5yj}OEwu)-Qxv`Na&#bLs??dJmn`X1z$W{H- z{L<*r*fSk~-^Z{+?M z&4PJPP&NXi+2TcvZ-BNocXc!VB5(8u-3}CBo#toBSZooXUP2Zd-c}=K+~ZYcdYW&#Mno20-%SRK^^nw2^FHf3_4oC&__SRG20D zFdFi*^ll$rCh2$7t)wV;)}w^^ZGg*%Uh8--+15~Qr0q0VsYQMSXLgdMNBGyh_=F|S zYabbwp+U&O=I}4ztX|FT@pe$JAh@8k#&}*6i50%CzU^H_kDGcPs+QQrX1_-uYLfgp%Qr|%_agOd> zaZGkE*~DIdTP0Zkf-6O0dd1e)IMgDvfQ(usKzBn&ehdpXwDpE#D>~~SXL1h_8l3ZVtFD=7YRj{HT`kMx3X+VGJI=|bS>=2Aji zn;`@!>8}+e3p#11fYX$&(EIMMsP6q;xY9CGU%{NU6DIFM^_G0Z_#pbZ{6PZchMnx~ zCm4f$FQ3-e2AA1u_fNBD zqpjbf$#QQ@OO7cgqs$F5?=#Vw5LeI_O8~Oq2yM3CnjPNfo{<+ZyyZk&`tj-Wd-mok z$Y#-=87(JnbHCXnR{ueQ$Di2|dZCk?MW~gsW@4*0%;jkTvx95_7~epj#*`R^?VFaf znz=iOcDg8FY39*>grF~=I|D3A#ok^!dvseB(A60W5JP0i;TzB!4-zx?1Fd@8 zqL4vfV4@-WlCVTJq8a?^IxSWT;N`uHt&oPijGlX_ODO-U>zQ})zR#OeG-r9emzH=G z<=;mu6`7_d_H{D07Nc>^Aq`m-Bk>yuYZ^LrI~6J?p9YwG1;3rhawM5Y8I~cDY3E56 zD9h&vKXLZ%uE}vq=0D1vi817)AkH!u!yLynoevFJ&=-5Z#?TH7k$wGOy9RJ}-J2YU zc(CwTB;gQ1sW%aA&{k2%$#>J@@cA%w&0T6WvRRY!OHOtADYvYk38t}jTMTyjTYZ@@ zB8$`rv=LgMG#Q4uY~0SH4#{pNo6svYr#f`2iW(8GMk~R*6nQ&yrJ-#Qc$+_fnpVY~ zvnyA0KSnQpuez5?upnE;3`Lv1%sQw^0bYXny__Y)2y#|6c{X!ttHK$$%V$nvESarA zL^F3=QaGIQhLvIPVC-_%`uFQ7hPLjqGqJc-p((?pkg*Lv;D&}hYt zA)(Fa2O#soPstWHV8niu0@>?+VPmK|>6UCc4d8}}MPo>Xzpwc-c; zM~)0iX&*3+ygAG^>=*Tph)j%~MLfmpKhY>y*g>!y8MH=SwK(uYzVRid8(J5JmKVoZ z|GW_}6#>gH69B`rn6pq4T;K~gYtoBCQD*}Ib==!i)b2jd9;L`VI;-*$nhAY?768{Y zVfz3KN+y2`R zV(g0X-m}kXWpv=PJ4Le`eB*OM4jSBVqAT89N_;M-Esn}}gC#8d33;weg)>DfcXZ$b zb@Nrjl$5`~kw?ght^C zowIh!c!8n~hsFQy;VZ%5yFP6F)MH9p_JG?h?;p1*_g2M3A@P}RU zU;tM>`eyV5*oV{aeZr_1IIks=fk@!LTfz+D#ho8vvo&MZrM1|>NrAf z#$E!riOKZ7jW*bFCaYGYe#MJDFZ|jAk8aMNN|mtFW3Vk@Hx9tx}_!j|55j<0i5db?g*S z>SmhjHuXS}w*`RMY6a}yX)J>yn0k~3k7mx2f}Z*W4-sTEMmA?)3S+`IR`>E=QNE7} zvZgK7?uHuOt2kH&DXZQIUi{5xhZR#`H+c>oZrp4w$#AQC8O^e=u^c4?0N+F#*)bX2IPdnaP_YQO~e7-M`WOCE%-cSJ%YJ!${gd znJC{0!6muhCNw{IrDr$WVY(yR89NInx~Lllm0GWZ)j0#I>QVwHuJUDh-P4+rH-#8C z&MUPhy$d>xOM$HFNpOs&N!u7d-PmAq1ib-Pjv2G5mX-`QnoBvfMygX2m@>kv1_ytj z&%u0??~SJAdvHQ45aJb9mTn#F6$qd9j350P%{zUvjjz5BPV7)0Ngg?&RFM1QM4njP z;&Y85a~{<^V351d<1)ZjIZKO;0)3eQnA4Ke6%V`}h@;0qW3>%*Ea3sV9D|*2eWI)D*;{5j#h)=C$EBYf_VK zq+vb)1_6kK8%os%&<7+T(upiCn1tm`fW<<3MzaByl)dQ;FIe4ZSPq)ora&rWarEFU z@LvL>vmPF-22$JtEZyb($EE|({mw5dm)^SV+%3Zxnmn);lbqQjLM!1Z;{0HSZM$xc zmV6YQtvQdR7J$qQv>B|2;iw%J*~`5n8roV9(B$&D zWy9aXq^tJ848^-F{1UUH+m>{oqJ8p>Pf%Bpc5_}~Fu;IL+a0aEXc@TCFE-ZW=9fQ6 zaW}s_K+IlvV7K;y#OCP&=9V^sHCp5)e6{1F1Uu(ZeXNq4lK(~bdG#{JVFAiD<0QZy z%^pJI^K3IT>BC3Sg_*(^!e%WGJJuG49#AOe$I{QQOGa~?Zutd{8u-X5wg(`7D5zfy z1`j>y#S_a$VA95O3teO4V_*Dy;5T#Ee<&|@|30s5V0-`kXLrnkcA!F7Ev{vWR8HR@ zm;st$J%b=bONO=(D`Hz|D%q@24xE-)7xwYYtq`nzn1v31{w-}JXhyADMFt@O9NL4#n8o@edz{AO3f@Cghf#6k zKiVBmMZpc44_3g7>xRY_|Q!@HAywLLTc+d6k zLL!^5t=gX3>||Oz%|wpNJ?}=Czh1APZ8%BT7^r9F{UQXK-9D* zc}hAVOUdbN<_(xUBV(xq>lgvPfo8z~M5H-PiLA;cT`^!oUN&xx6GN!qJH(xJ`4X}C zlhHDIjmYo?%=xTI{lZ7<*kr)8#nKj|>_b`y)wJdU>uxZqWUNMZypzgvw-Hvn8Xyt- z%BU_p$G*1%p)Xw5P&ttR*Kf_rbjD*MOaB=BN&uh4nsd(!C-eu19*xtUKaHBl0KLUq z&)t5PJ*XYfC;3-(TM;OI8;pM2!tVEN@&t5sOy9VYbD6R3J0Om&i-6g{-lX2E$XQkN zOMhw&kM1AXF=Fy5R>au6VBU2!|rISV0!%6iXk778-dIYN}AuLwCZG^^o z*Rb|Pa7X>tGJ1tUsQUnFpM`&I6AzVtOda!gc`p1IVOliJj z1)SaNO_AiBDn2KFz=(W6rk@y!laSKG7sF8UsqXjZ-4U>C?0}6WO^KPUbAqelv$AGh z1M@gi8e?5Se@Jxyt>V}Ov)jdkgWLa5DuqczOGaG5DAOGkYR%9(g_^}@5BMsG&9bG2 ze_jaRs?VuETo!{hVI0wJ@rOG_i%>M9u!ps3I;M3W09ytSX-uhAH@@)~<*$PcPZ5?P zJEK=a`z+xOhF-80Wfh>law$NoMTLJ+-V3&!WI4BKlp7Zzm#ui+eC)nop%Jq|^FpOcUqX55sswm{E+l(k{@)Nmv4i|!TEjDf>~!L&vC#9w%K>Lu$(tSa7li7uh z#sSJk(V!I~$X4W1F1mkvp4ZPDmmij9g1VdHHgYSk@KwyrgQVB8N?hh$kXI~YkhCTe z#6&|)R+7aWOHkBr+`6(GI@JJt`*3r{4H#IE4tE^En}R8j9)g|7E|Cn$mX9zuAups& zdYl5d0^scvkkyz)=w_|h4hJ_>Sr{?9gMI{O0ggzzM0W(KX|&x$whm?Ngy&`zp_ySI z>4kZU;$)pSbZ4wWLZg(?9VGy0bt)a!DgyJC{+@ZPBn+r__-5Q`=dW6uTjrgmJ1|iE zj;xxcb*I;~i)rsqjPx zAfKAXAlx{VDdsBoEB4DD5TkAj+<2)j`{!P^(uM3-Ea`pgV0xx#rj#Dbobaa+g)sr=sJy87 zTeppKsY^UMo>lg}@csop+B$Oc14m_FY!KT4=&9vpZTKtZZ-dLxS!WghD5_}#G@)_g zl^kM|3CD&UHa58GvT9P8etiJl3@sg$y?8|Vei>I5Tw9-gxU1l!<4^BT8EMoh`Q9Lf zE`*hhWD7`cf=r8eXaIgIV0#(NNg2!);9v%V%N5YEQgtY`CM|+x+EaJ+$qH{GbiHJh zbEa17&{QAJ_{ZynG2Ie`Gtu{mF41h)r)~gU0Y?gU1;ZaMm8VPyF$7zbBj-(IDb;-} zpt3s1xw~DS%gZ9phoV4|3(dtx77s+%M)2e6VTxo+vnoaQ<~$=#SB!E7Y5 znsHX2M{qzz$`+ntIWZ!an8sO*_fY^-2}vWiAE@<{=Q+Ev`xc7^Evw+4v5WD}g)#XX zko?=)ZRifCJRcwAQ6=S$&JsPV;F;<6u_c@PvFz9Y>)*i6bYpZImN(TzcT_|s5mvuJ z-$@#4Wt!$*5zS_dXvUyeY0mJ#HhLU%y*kh5k@vONj8$8HJw}WK@?7hcS|7gz{dzM0 z;y#%l-s)?gKU6S9<6V!&Aq8?_%Lrj{lqW{q0JI!cmmv^3sSU%a#fYE=_%veD1nb7h z^Us??;_t_LJ>Lt5ifU`&xx72*T$|i+jByO}uugz&i?vA%j1u~N*Ip$wYgE`sP3h5c>Jpwuld)zUEp^*L~&2HQ|_rJPi zGa2*?IGEtX*kw95I5GoNpsHSEvrM7f4qpF&=*N(e za0l(iLo`)@%b?Sd`hTweqNu_8(t@w<{a^pBJv!cfH@kH@IfoNZ&5wbY84KX2Q$cL%Uw; z*QF~ea6@exf$Y9_K}};Q_e^I?_=>Ko)~p~!fGE006Cb8TlkQc zF6F}!Drp7)WnPXCV!6vKfUx<9MKouT&XI8QA-K52{P~agVx1uv8md-)GP+gu=a=!( zw~>}bUSe>hlQbuhgAB*YdYIP?G}$}o;|fUZ?a^Wl+(CdyRip-!5{to%gajqI@2o{| z8Iv5l@G-&4MBKs0!Vfz4V|NFtE2e3sq2CgU?kxDP?d-_+F8z;Y$jnz?{ChXOppn1- z`;t#a#9LU@`N=1vx7>eu7k>}_pH{%XtcU+yaQb`d{aY`=zZc%Wth9f*{Cna3z3~3s zHvD(k`7i8iyZ;Wl|2GBQ!=GQL=Ci;0b{mXtVGU?~{0zm6awaVv16!_E$gmacB$!)M zynzIbQybrzBr>ej^FE7vm>lVN|ETH(*|!^t!li`l;uXpUyawL9k{x-C*7kog+AHAS z3}1IAXNwE9Xh&JeY6KBpb|<52Xrf9$GsX?fmb-AR#8OL?EXjB0qbY!N=m0=;rM96h z`3rlih>PfP%^N{IX(=%pvpjgD|7}sRoMTqlQ*bwQG}}{f{qAVEZO5}vZU2)P^LzSK;i&G1)zH}W?lyv-DxU8l2?oZwKAG!oVkq7q2y91W_Hr)|8 zZshO~FYR@xJZKsH@?^n3QO@O$zCT6M4c72*Q~Xmi9M&JRgCEm(cu%MJpL4&1Z)jTk z%EHaEqI8=MydCBwL?SH1{Da37yd`K)r{<3Sh62Eb32W)0O5-#hTNOPty0Q+<9D1>G zglUV+d6bQ7w(4-ZQu+8|&hXCmvh$#YI@X`n{l2m+I%uYO>a7lDM50fDVSELuPXzc+ z1z8oV#gj_tF|9!z8>TQ{8eRh_srfWM$rMfUpC1ce4k`eB+!oH4B&CcsGg%wX0rnKr zl122)M$f8S<$}9+j&4>AdMjzDeWY%YtGt(W27g3}>yv1)+koYWtxLiuBNUY1s(S9e zm7yGRCmwgVQ4{8*NSPW3EuNn916X(G92;7dzUaMw!j{MU-lawziZ5~T?s1=t z7KQ>J2~g_wQ$h<+$BDsNXf|NGWT>}+1i$z|n3rLZdJ%vno8(KixJJ7bZve`5DP^G8 z@N4JcM}p^Pvu=)SX-kPCVW6>Tu%oj-8T~>KcJzJ}PN?sA=q<_qfDsayzYv;yHD$OZ z43KJfL5&-WLD3kOmaMs_XP*X>htf3o6-*M@aB-Sj=&^#)d~=|p&1HC>P}rL6g?nx& zwYY_T$AGLp3De&vNi2A?Ig3^#G0T`?oI6@J2x>2;h<3pzqxMnea}Ii4Xe|7rocEHP z!GZm8VAvWPLL1|auL@7$Y-Mzo!u0K1UJBsN3{Gp_0hXyvn%ncLR%#HCSH&d*9@`*S z&Nd#I_8iQjaOtvU%Xp9Esst{1Pj%N+>k+leKKo$@G;|FM`v(LmfN`xYn9EDi=>RZT zULt`hg3&nwJTtyC_}faG64LEMEJY%+uNc?3x+sRbQ)F!8)vLLy&Lp~ouScKL0* zmZu7PY&XzMnz5oopk$tJ|H)_=!<*z2D+QNilSdM9fQ1u6|N4_r=ZW5#5Iq>_|NOuO z1{|6_xiu_ms~#*m3C1Tz|NUx_oP<3AbslgmCC z$pyq?VAE=Bi@)(-_WVG205;2%f!pV4YMWkU3tx;__P5E7lo-Nib>NI45XK{^G zE&gOAJ@b^f3~IC?4qeZm)j9d%V6(6?TN7}tTmhNTJ@#@8;Mr8}kcPbo=;@Zj($w=Z zr#%8;X<_TXuD8OV|MP>vqXbmci~Be^mF?RZP|*X=pbUhhrtwCgFRU(cp|7Y zy!=R0agWtM{t3X}{!h%7KV1L%<^J{G{(tt$*?%z&*i=Qa-lU!g;)WCyvOcoFistmm zw$Wxb2(rNf;o_HlG8!!(*E=&S0V^8Sr$8fqPzt}JJO81 zTK9re1%i!t?O*(rcTEOo(gi>?!M=s}{bckKOCF7ZA`@o`M=EB>pw&|apZH`{Bmtpk zM*0`=#8>AbnQ;1K#0I-EsuuLt8{AYJM=hY7YuQaI7q~ z&KY#BD5RG1A>fcQmcJOW<@8OFGAx52#08m~SuzS56XuDx)DyCp^8B&iC<(XY|7z|0 z4+pK+PmUeHYQ8~$Gn|`xK7b}Y(Eoy`D!AbX=iZQW<^f1Tgo0!qb0fv&SZ5X0Mm$}6 zbK>sOUnEqjQ_2DHcZqKX>(NhL^Q1DzBpv!1IwN~U(}e0Xg=cu^ z8Vh|6!HSbwtRSf(3NY5n7MTU(n7#_X3Q5*b?QF3KnO@gS>=Tjf*7r7AlU^}j;eHir zgZj!0(s!qHpv!^z?iM9C;^^{&E`?dY!LJ^??W?|c(5ChFDLTGl)7^!8Njs8%UVp-V zYr^jG-4-`?|FC_}6CNZcEx`V7{?Vnc{(M6A{qymd!_vUYo&mrkkP#d|3xpNYL;#iYOML% z@2vI<#;GI+*#;TkL;UUWqbYCJaON21+;e%izVz02o5Wwe^qZZdA!C@0`CCv5T(G?o zrNX3LAc@Fi1Zh{H7?BJ(0)vvoBD#-HuK^FJ?{Q*w3c()1USdFsE@S~N3%K3LShuiC z33ej}S0ubLK@MEE#Rt*QeF&2+cmC!fGnUzcod*ro%3u=2vfBuh9Z5h^cfL|;JWgDK z-;T_sEke}_>?OXJRv)^*t=?I_d~N&hK*v6s!}=i@WysLVAx*QLtFLoyr$DpZX{I!g}u^+QJywlJh3EeySnV6`=Kikk!yHedzdswv+ka zvRcV-yAVFh(=Q`_uFj;eK|OiK?E%PhvH*S}3mRzz?k7^+1_mfmwHK0)fGiJV3{3lY zX+-qOFh?iVhk}|!_%>3!rhk?dN#ZtK&IM{a;=<=DcsgQrkxX?zpj5ePF0TJGF8HL% zsZrpBHVoy;uEtqmE%8D37+&Zok8!*w5;wt5Ly<>duLN zS{isw1<;U^JhKt{TnjS6ntU>vjNT8Da~t5TU=0Q%*#K&h!6?Y83wE>7G&*s{fw3JF zy&Ul%X@F3~Mk??OKt zZRan5C8^BygJ|-0eHL?Nvo>UW!!QZuC`~=WYJo|x-bsng;Ad@umQe`iJrI?Oc~(8> zfCOc@WeU@CR#G=OQ;X|RMo4$ssS z8mdt>{MOkGe7#~ZU}-`_|6p$H0yXp`yA8lni{V~?+W6~}>Kzp9zJh1fP!u0nfl_B5 zK#WyRLn>oY@1R3X&aW@->6RmoX$HHoTm8|Q!N`V9K9OJc*=^A08CFqbe6vF3Vg1eG zdNi*LIG`U!Y#N~&P^C;0%+KUp5mu^Mrx^euO}=DO1~ny~)9#F3JoY1Sl4RHrMZ_=A z*@38&;s{~Q8#Fl>`N{NLGl}}qSm#F5t)P4|+JymC6Zr`_WXM`i{5R9*Kd+u)ou9-4 zYS+%J1U)1Y3Raku17?rbUvpf4jmBJ{^F@6S8xk5?fMQxaB|z}Q1|;59j_k<@Gr5Lhv# zwchGf>ZGmxVPXB_?$hq-C6w!LVyry|rb4|+smq})|L&px&2;(iubJ-npl7s9Y$ed# z0P8Rb@G-v0cZ4xXf^`5zX9we&u&IP~z?>4i17LarA`ncs*$;c9Rpq%hgYTc6f_H*z z_8{0)el?)NGS=1%y1^;|A9OkvGH}S6!3#iF1jLaO?2MWGY`C{c;H3Z29fPIog~!!> zklf>vz)g6S`DHlj0i2$v;htedBv2eR4_AwcORIS4As!iwC5+I5F<{J>4&&t6Z2V5T z^O>qTlW~8Wx>sw5p?@K9|>9oLYU$f1xo%pl&fcnjcimw8%m$wYBtUPh`MusjC zW=*_RQi!SKD)tqw@WdaC#XzaPv@zegQx~Q^F5)s~S3&(96pp2!RL`OSr8%qxjTr6x z*z^W*yZPD*&E#;6L}dt(U0 z!Y*dcqT_%vkH8uwYSis`3wT%@Fw}5PK7Bj zBAR0PX>m;tCN^+ag7E8new=Oqq3JKTN#DPW2#U`_@gp}8upOBH^6`_=?N3If@kc>N zWQzhfLxjG;>Y~9$L;T|-*i!Y^xLOO{al}_;0nb)oTZkBDSN;Ye%)3H7^$pAuJM0qiD!x+a}cs$Eh0j2BC@#vE%q-pOtFYD`UnX#>DBrS=$-WMgD zJvA3$vz?(RXhC#;c)G*% z!YnX|vj@M_=Lus-m&sp(#Tts~<0v-s6p8Uej5Fv~a6)~hYzhRSk=+z6AjAw39;3&G zvLf7RODX%`kl_|ORW3{Q40~S$==ro#^s6xs4EdR?ym|T(kYNGcxxs~* zntl2^1Q&)awu(@v#AL|Ivn8OJl=MCQbPUtBOJEZtu!Rj^z^}+Ev(p7D4B{+!U2uaoW*8KM$-Z}N$vPpY?UY)HpbIe|J^5FA|_m;{u1#+<%v-g*BhW#({@7q!_ zX+M-*SRGrwbfe+r)m1D}VD2yd8E?Dqzh{n5o`E;9lbB9JI)5e6j*xkn9>+p$T2^d! zVPO(i<2Oq`*6#wE3AW0YmcM=f^h`j~ONXofJR4l5^m=wo&Jyj4z5md!^UCi(JLvc9 zKZI{MXn-~l;n1_6j9Nqfe5Jqh$!Jq65KY7#`eeju#poi7kJy82)3oo!T8SGs^ft0)Lj z6rvzROAAzm%m^5TkfTzh6fr6)8YCID2nht1BS@+tM?{FAz&O@2Vj)sM3J9@6pb932 zkkBboJ_1C7kgqDrhnyo4&qxwyd)K;m-P`+n)~vfOzq4|ZygO&_v)}jK&+{MD#{cn= z^Iu>-0`n1=kHCBc<|8m4f%yph%OmiCDSH5FtOLz$Ak%5F6;UlA<#S(ZEMJ4B0c|aK zIQlKns@cDHShneP)6Zr3&#og~O(EdqKmJgl0$=HPt&gZ0P2|G)h4zEhtV$zDYh@bX>SsoZrc%Zk6SM4Kgbdi`te z+&aszJog@+2PbSdqG^|4J1O2z#3e#ga6ga8>piQH!8lsUp^QIUBSpGFkzp!CN?73Q zKXMYDigcdQ7GxsEnVpg*Wql)a(zCBo)oAs4B+MwrhHkxVrYuuI@hJGcCZ%i==^8_vwJZQE|F92EdLTBLH5eH+Tl>pK> z3-*;S#G87-rb%;2oj)zZ(ggfE{j|L)w7Iv{L*JDg5$h*Yt7LVHWd{a)C&f|(KPf|S zI&sPE!@wjkx>uyFQ?`cdr*j1>0q}GB5^w9x zaHM3i)TQ?hH%_0C{$=kQ?^N@~h`WvV`Wk;`h9ySsedADHSIP_xCgZiH8B*!0a;kBp42|f_Be#4=!943J_sJ9j+jFHFvqW5 z;OO%v@yR;mOpBH=L{%^r&Q9Um0#8bAbFviggbHFI)F8K9)l~_i8+t@LzilcivB`mx zaQSp!^eNA+4~~Zy3~^$B+}->=#o4qD-6fgZK7OWHn8)+7biWf^NvbbHRoQRgOx`-a z4mis3F__1ZqDZu~P!C-y^;Hr*oYTRus0Sn1d&Wir1Vb&_Q4#7PlQ>rt8l3YDLWd#j zq*MgpnaSo#@}df?O(pI2`w7wl$+LJk+)(o8UT+XmF7y-g;wSVCP_}*Olu-!Ou0hY^psOPp5E=(a|bn(N<*>S22p)F63e#!Iup^V-@vzYKJ*GOVnRxl^RR@Itkt?59HGV{;vs zG3PUc?SdDZoGu%J2U~6dKQm8sg4o_d%$X{~Vsu5O^=|`BMiSn#3jN&W`Tgo6oHEeO zT=7NfxsBb9p4X}-&T9DF;2&5PUqscw^}+~9t+t@d;5waSgjY1)gx9j((nhOw4;gwA zz*f3&aG?_MKtLpG&f+vJ6S!gx?SQKmbpo!L2+W_gTtj3s-txYb_!5`#U-q$C>y-c> z3>=IK!acZ6fmD9T4@+-xgl$I2L$v)A7VCE4NB=&}-d%!)}`G{u+P@j)d91?ln=Y;uDTn5I}6|S-LYF2=kL9ZZi z&3KM$?73n3X@^JzGJ0c@au(gCUu17{C=i^+C$R_(aOTaZ0(;Lf#qwc!-GmFFugdrn zy24!jhH(BZeIW*G1=bip0(mp)iUKJ_cOHE!cFItg_u#oiJ4IDQy#REK%y`VMj=K@l zeXTpU(J4!z-jX@D>m@H3Nj;!ubS1n}Q*mS9O^jM+7my)b;> zjplqHzui@kd8qhRNma|={0h6i=C3}B2nyU4Nn?74kNa>NJ)ouF ztz7Jkr1L48P1{iopXZ9Dx1Zi|yjYQofcj|t%?xH`LNV9aeXQ(-agYI-!a&aItjV_p zqv{J6nwFvX0^VxQSi4GM8{dLeqIiWs#OR=|8hNR)X*~!ue$unPWd<`yb{$|uA8a*DlWEVaH zrL~VH&L$12imTe~7r!zpBa2>!neSMFuofC3<|8RaYSGdDY2Fg9ABGwrds962<0%B+ zL3ipUXVhS_FI%v4@w$!E**wxY$>j$}M^_!Yjh$AUEs_bA(7S!i!aNhK{j710I>nXb zXzr@`NfyT!rB>Km^n@WrL3DoM9)RNW{c*X#M16nmxXBxZFTgqvWl|$Mqz%G}y^dM{ zXA~?UBg99=`2~VSqxW^xHM~A}xqny8(bDl}9(Q}D$Ru62gE?ELvF5C7Q~v`6C(p4w z>Pjfndth1EK6?* z7d>R`OTDPDetAiL^~lxoO*IPAlh~zJ-<)u5jr+!QXWz(X2UVOD`VIg#o}qZ%o|_;w zv<$m}dPr%vg?e0;c*8w3xd_O0%(no1eAJ=8H6RX&l0N9j0p3Uw7$!d?o3bKOpARfB z#8udqL}*RIw-m}i+Q@O@+VL~A+;b_tgsF}2KgM7%)OAtst^P9cn~#n0GtgZN)tI6O z^!G5dz6+Iv_osrUU-uw$r6f@U)@d{}r)p8I2d6&%eoL`Za4btb-lfvwppGZ4e*%l zwIyM@Q2d2fS7LVRv^|t9jPIX?bBmL%zHCx=^zyv00OXp&1#UN!=s+zOEKvk+{Jht) zuJgnXrtQ6H_J@=*+Sf{Q@Rl333B?5^HCV*KUY}n&D<{ObhdpU6ZaZDsG|k?^gQBK~ zm$R|LxedH-$*MO*YXIjSU5!4!Ud8oCCM^yKS7Xonl$(wP)Tue1uR9`?vxEiXqn_9f z1GJEHO-}!4psq1;^#pw>O0TQKVrUQgQishkU$lzvHQm3m@EHW=wPs^2iZf>Nbwrua zc3ezSi8paPv?K)~M{I|dLH6WrTHFPmC&DWca*v{dOBBzSqxR^TB0XUhCvLXOQLWS! zWTqK#PUAdJ71=Lk11Cr~SXpcOyyr|K74z{Lb_&fXkWV|grTP~7n$akmM+xE3)eUJFX&50DZS;J{_*Vxx6i3IW&F2FeNmtQ4Bl z+Y7or@*mS+T~H^^_GrR8_)_bqHHq#{KmiO;{qYBs$(q|d&=jx;SmG@oW6c$Zx%-ve zQ2kKaWxyXj*`e1=EoCF|^nPwgRs9X&1g&av244`ZbsM`B(2_bco3gwM84v+~5Hq0m z;m+8TM^c_H1dsFa0Q&?rLULT;J*H%(m;kVzDWD0(k=N}4$>AKzYNSKHRP4)AiA6p1p}ILU31(A-}z2msV=KZLl%DCTnW?q{Ny2hkmh)UBhBzL<2g_63JHp z_@vavy{f7m&4kmcneGdevy4lY4d}`83Jy^g z9jz*tTAcfmlNyPO)uW?Ki__iSN#A;(idpC)Y;SQjEybAHZcv!BZQTaz7<>jUH6q1< z6C#tK(TRc~mw@u1n4$N;Vo<<75i5E9xPaGN!%AvL!VB&Abzo;RoK}BW;;O;@(X;ts7*7uq#K`n$l4UXd+tbt#< zSuwu<;dk!~``u-&d3j~Od)NQEY|o;1^IzvbV>%z5|N2YL|9AfT9XWqz&CfgYv-13! z^RZ~Trtinkfs@!(hyEJ!1Ls=oVEp~&0#shbPfD#_ z4a2YE4s519+4TDBrVUN_l_A!)H#W$s4^-zq9`*d@M0V+#-qf07ti5Tao)34Qv^~7F zZEGIHs9PQPlX%ks^lIIO!?eBCd(xhsD(&mdCqo{|cUY%qcHN2prCOQq@=HVVcjk+( b?fc)+^1Ox1rv5*G6z6~A|9w~{^nU1{uHY^J From e27aac3db2e4f5b6ccf237020faca0507da7f65a Mon Sep 17 00:00:00 2001 From: Berkan Sasmaz Date: Mon, 29 Mar 2021 18:04:35 +0300 Subject: [PATCH 30/72] Add missing localizations --- .../AbpIoLocalization/Admin/Localization/Resources/en.json | 4 ++-- .../AbpIoLocalization/Admin/Localization/Resources/tr.json | 4 ++-- .../Admin/Localization/Resources/zh-Hans.json | 4 ++-- .../Commercial/Localization/Resources/en.json | 3 ++- .../Commercial/Localization/Resources/tr.json | 3 ++- .../Commercial/Localization/Resources/zh-Hans.json | 3 ++- 6 files changed, 12 insertions(+), 9 deletions(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json index ce4a41e50f..5167f46080 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json @@ -261,13 +261,13 @@ "TenantId": "Tenant ID", "ChangeTime": "Change time", "EntityTypeFullName": "Entity type full name", - "AuditLogsOf{0}Organization": "Audit logs of \"{0}\" organization", + "AuditLogsFor{0}Organization": "Audit logs for \"{0}\" organization", "Permission:EntityChange": "Entity Change", "Permission:ProjectDownload": "Project Download", "Permission:PaymentRequest": "Payment Request", "CreatorEmailAddress": "Creator email address", "EmailSendDate": "Email send date", - "PaymentRequestsOf{0}Organization": "Payment requests of \"{0}\" organization", + "PaymentRequestsFor{0}Organization": "Payment requests for \"{0}\" organization", "PaymentDetails": "Payment Details", "PaymentProduct": "Payment Product", "ProductName": "Product Name", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json index c8f5dd073d..d6f086c1f6 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json @@ -210,13 +210,13 @@ "TenantId": "Kiracı Kimliği", "ChangeTime": "Değişiklik Zamanı", "EntityTypeFullName": "Varlık türü tam adı", - "AuditLogsOf{0}Organization": "\"{0}\" kuruluşunun denetim günlükleri", + "AuditLogsFor{0}Organization": "\"{0}\" kuruluşu için denetim günlükleri", "Permission:EntityChange": "Varlık Değişikliği", "Permission:ProjectDownload": "Proje İndirme", "Permission:PaymentRequest": "Ödeme isteği", "CreatorEmailAddress": "Oluşturan kişinin e-posta adresi", "EmailSendDate": "E-posta gönderme tarihi", - "PaymentRequestsOf{0}Organization": "\"{0}\" kuruluşunun ödeme istekleri", + "PaymentRequestsFor{0}Organization": "\"{0}\" kuruluşu için ödeme istekleri", "PaymentDetails": "Ödeme Detayları", "PaymentProduct": "Ödeme Ürünü", "ProductName": "Ürün İsmi", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json index fa09edb444..46ba210b74 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json @@ -245,13 +245,13 @@ "TenantId": "租户ID", "ChangeTime": "变更时间", "EntityTypeFullName": "实体类型全名", - "AuditLogsOf{0}Organization": "\"{0}\" 组织的审核日志", + "AuditLogsFor{0}Organization": "\"{0}\" 组织的审核日志", "Permission:EntityChange": "实体变更", "Permission:ProjectDownload": "项目下载", "Permission:PaymentRequest": "支付请求", "CreatorEmailAddress": "创作者的电子邮件地址", "EmailSendDate": "电子邮件发送日期", - "PaymentRequestsOf{0}Organization": "\"{0}\" 组织的付款请求", + "PaymentRequestsFor{0}Organization": "\"{0}\" 组织的付款请求", "PaymentDetails": "付款详情", "PaymentProduct": "付款产品", "ProductName": "产品名称", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json index 553c308802..9b30514f03 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json @@ -288,6 +288,7 @@ "BuyNow": "Buy Now", "PayViaAmexCard": "How can I pay via my AMEX card?", "PayViaAmexCardDescription": "The default payment gateway 'Iyzico' may decline some AMEX credit cards due to the security measures. In this case, you can pay through the alternative payment gateway '2Checkout'.", - "ThankYou": "Thank you" + "ThankYou": "Thank you", + "InvalidReCaptchaErrorMessage": "There was an error verifying reCAPTCHA. Please try again." } } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json index 90db761f1b..e49c82c6fd 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json @@ -30,6 +30,7 @@ "UserNameNotFound": "{0} kullanıcı adı ile bir kullanıcı yok", "SuccessfullyAddedToNewsletter": "Bültenimize abone olduğunuz için teşekkürler!", "MyProfile": "Profilim", - "EmailNotValid": "Lütfen uygun bir e-posta adresi giriniz" + "EmailNotValid": "Lütfen uygun bir e-posta adresi giriniz", + "InvalidReCaptchaErrorMessage": "ReCAPTCHA doğrulanırken hata oluştu, lütfen tekrar deneyin." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json index 3a2bb858d6..789e377e9d 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json @@ -287,6 +287,7 @@ "PrivateTicketEmailSupport": "私有票和email支持", "BuyNow": "现在购买", "PayViaAmexCard": "我如何通过我的AMEX卡付款?", - "PayViaAmexCardDescription": "由于安全措施,默认付款网关“ Iyzico”可能会拒绝某些AMEX信用卡。 在这种情况下,您可以通过备用付款网关“ 2Checkout”付款。" + "PayViaAmexCardDescription": "由于安全措施,默认付款网关“ Iyzico”可能会拒绝某些AMEX信用卡。 在这种情况下,您可以通过备用付款网关“ 2Checkout”付款。", + "InvalidReCaptchaErrorMessage": "验证reCAPTCHA时出错,请重试。" } } From a9f31c7f95d8c3f8090d309dd843f2806168c55c Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Mon, 29 Mar 2021 18:28:08 +0300 Subject: [PATCH 31/72] fix: incorrect baseUrl when there is no tenant --- .../core/src/lib/utils/multi-tenancy-utils.ts | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/utils/multi-tenancy-utils.ts b/npm/ng-packs/packages/core/src/lib/utils/multi-tenancy-utils.ts index 390a46db8e..dbcb2c8517 100644 --- a/npm/ng-packs/packages/core/src/lib/utils/multi-tenancy-utils.ts +++ b/npm/ng-packs/packages/core/src/lib/utils/multi-tenancy-utils.ts @@ -41,41 +41,40 @@ export async function parseTenantFromUrl(injector: Injector) { }), ) .toPromise(); + } else { + /** + * If there is no tenant, we still have to clean up {0}. from baseUrl to avoid incorrect http requests. + */ + setEnvironment(injector, '', tenancyPlaceholder + '.'); } return Promise.resolve(); } -function setEnvironment(injector: Injector, tenancyName: string) { +function setEnvironment(injector: Injector, tenancyName: string, placeholder = tenancyPlaceholder) { const environmentService = injector.get(EnvironmentService); const environment = clone(environmentService.getEnvironment()) as Environment; if (environment.application.baseUrl) { environment.application.baseUrl = environment.application.baseUrl.replace( - tenancyPlaceholder, + placeholder, tenancyName, ); } if (environment.oAuthConfig.redirectUri) { environment.oAuthConfig.redirectUri = environment.oAuthConfig.redirectUri.replace( - tenancyPlaceholder, + placeholder, tenancyName, ); } - environment.oAuthConfig.issuer = environment.oAuthConfig.issuer.replace( - tenancyPlaceholder, - tenancyName, - ); + environment.oAuthConfig.issuer = environment.oAuthConfig.issuer.replace(placeholder, tenancyName); Object.keys(environment.apis).forEach(api => { Object.keys(environment.apis[api]).forEach(key => { - environment.apis[api][key] = environment.apis[api][key].replace( - tenancyPlaceholder, - tenancyName, - ); + environment.apis[api][key] = environment.apis[api][key].replace(placeholder, tenancyName); }); }); From 77e57afdc6975c5d5cff48d8c7bd36f84c2de67e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Mon, 29 Mar 2021 18:43:16 +0300 Subject: [PATCH 32/72] Update POST.md --- .../2021-03-31 v4_3 Preview/POST.md | 40 ++++++++++++++++--- 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md b/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md index ed79fe0398..e943696340 100644 --- a/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md +++ b/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md @@ -58,7 +58,7 @@ CMS (Content Management System) Kit was a module we were working for the last co * **Reactions**: Allows users to react to a content via emojis, like smile, upvote, downvote, etc. * **Rating**: This component is used to rate a content by users. -All features are separately usable. For example, you can create an image gallery and reuse the Comments and Tags features for the images. You can enable/disable features individually using the [Global Features System](https://docs.abp.io/en/abp/latest/global-features). +All features are separately usable. For example, you can create an image gallery and reuse the Comments and Tags features for the images. You can enable/disable features individually using the [Global Features System](https://docs.abp.io/en/abp/4.3/global-features). > We will create a separate blog post for the CMS Kit module, so I keep this short for now. @@ -80,24 +80,52 @@ If you write `blazor` as the UI type, it will create Blazor WebAssembly just as Module Entity Extensions and some other extensibility features was not supported by the Blazor UI. With this version, we've implemented that system for Blazor UI. -For anyone wondering what is the module entity extensions, please check [the document](https://docs.abp.io/en/abp/latest/Module-Entity-Extensions) or [this community video](https://community.abp.io/articles/overview-of-abp-framework-4.1-module-extensions-part-1-n04f7bhf). +For anyone wondering what is the module entity extensions, please check [the document](https://docs.abp.io/en/abp/4.3/Module-Entity-Extensions) or [this community video](https://community.abp.io/articles/overview-of-abp-framework-4.1-module-extensions-part-1-n04f7bhf). ### Angular UI Resource Owner Password Flow Login page was removed from the Angular UI in previous versions, because Authorization Code flow is the recommended approach for SPAs. However, it requires to redirect user to the authentication server, login there and come back to the application. We got many feedback because this brings overhead for simple applications. -With the version 4.3, Angular UI has an option to use its own login page with resource owner password flow. - -TODO: How to enable it? +With the version 4.3, Angular UI has an option to use its own login page with resource owner password flow. Please refer to [the documentation](https://github.com/abpframework/abp/blob/dev/docs/en/UI/Angular/Account-Module.md) to learn how to make it working. ### Volo.Abp.EntityFrameworkCore.Oracle Package We couldn't update the [Oracle.EntityFrameworkCore](https://www.nuget.org/packages/Oracle.EntityFrameworkCore/) package on .NET 5.0 upgrade since it was not supporting .NET 5.0 at that time. Now, it supports .NET 5.0 and we've upgraded the package. -See [the documentation](https://docs.abp.io/en/abp/latest/Entity-Framework-Core-Oracle-Official) to learn how to switch to this package for Oracle database. +See [the documentation](https://docs.abp.io/en/abp/4.3/Entity-Framework-Core-Oracle-Official) to learn how to switch to this package for Oracle database. ### Add Basic Theme Into Your Solution +ABP Framework provides a strong theming system. However, the default theme, named the Basic Theme, has a non-styled, base Bootstrap UI. It is expected that you override styles and UI components of that theme in a serious application. + +There are some articles (see for [mvc](https://community.abp.io/articles/creating-a-new-ui-theme-by-copying-the-basic-theme-for-mvc-ui-yt9b18io) & [blazor](https://community.abp.io/articles/creating-a-new-ui-theme-by-copying-the-basic-theme-for-blazor-ui-qaf5ho1b)) to explain how to include the Basic Theme's source code into your solution to fully modify it. However, it still requires some manual work. + +With this version, ABP CLI providing a command to add the Basic Theme's source code into your solution. Run the following command in a command-line terminal inside the root directory of your solution: + +**MVC UI** + +````bash +abp add-package Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic --with-source-code --add-to-solution +```` + +**Blazor Web Assembly UI** + +````bash +abp add-package Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme --with-source-code --add-to-solution +abp add-package Volo.Abp.AspNetCore.Components.Web.BasicTheme --with-source-code --add-to-solution +```` + +**Blazor Server UI** + +````bash +abp add-package Volo.Abp.AspNetCore.Components.Server.BasicTheme --with-source-code --add-to-solution +abp add-package Volo.Abp.AspNetCore.Components.Web.BasicTheme --with-source-code --add-to-solution +```` + +As you see, Blazor UI developers should add two packages. The Basic Theme consists of two packages for the Blazor UI: one for wasm / server and one shared. + +**Angular UI** + TODO ### IInitLogger From 32c524712da040225d3f9ec5e8dffff5c7b38b0d Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 29 Mar 2021 20:23:02 +0300 Subject: [PATCH 33/72] Cli: fix project finder blazor --- .../Volo/Abp/Cli/ProjectModification/ProjectFinder.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectFinder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectFinder.cs index d0925c6d0d..7cc0423892 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectFinder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectFinder.cs @@ -51,10 +51,10 @@ namespace Volo.Abp.Cli.ProjectModification return FindProjectEndsWith(projectFiles, assemblyNames, ".Blazor"); case NuGetPackageTarget.BlazorWebAssembly: var BlazorWebAssemblyTargetProject = FindProjectEndsWith(projectFiles, assemblyNames, ".Blazor"); - return !BlazorProjectTypeChecker.IsBlazorServerProject(BlazorWebAssemblyTargetProject) ? BlazorWebAssemblyTargetProject : null; + return BlazorWebAssemblyTargetProject != null && !BlazorProjectTypeChecker.IsBlazorServerProject(BlazorWebAssemblyTargetProject) ? BlazorWebAssemblyTargetProject : null; case NuGetPackageTarget.BlazorServer: var BlazorServerTargetProject = FindProjectEndsWith(projectFiles, assemblyNames, ".Blazor"); - return BlazorProjectTypeChecker.IsBlazorServerProject(BlazorServerTargetProject) ? BlazorServerTargetProject : null; + return BlazorServerTargetProject != null && BlazorProjectTypeChecker.IsBlazorServerProject(BlazorServerTargetProject) ? BlazorServerTargetProject : null; default: return null; } From 5d986892b32437de779bb09ad3e8017cd7bb6750 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Mon, 29 Mar 2021 21:51:37 +0300 Subject: [PATCH 34/72] Updated blog posts for 4.3 release. --- .../POST.md | 7 ++++ .../2021-03-31 v4_3 Preview/POST.md | 33 +++++++++++++++++-- 2 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/POST.md diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/POST.md b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/POST.md new file mode 100644 index 0000000000..032f80be3d --- /dev/null +++ b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/POST.md @@ -0,0 +1,7 @@ +# ABP Commercial 4.3 RC Has Been Published + +TODO + +## Feedback + +Please check out the ABP Commercial 4.3 RC to help us to release a more stable version. **The planned release date for the 4.3.0 final version is April 15, 2021**. \ No newline at end of file diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md b/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md index e943696340..4bd74d6043 100644 --- a/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md +++ b/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md @@ -15,10 +15,16 @@ Beside the new features above, we've done many performance improvements, enhance This version was a big development journey for us; [150+ issues](https://github.com/abpframework/abp/issues?q=is%3Aopen+is%3Aissue+milestone%3A4.3-preview) resolved, [260+ PRs](https://github.com/abpframework/abp/pulls?q=is%3Aopen+is%3Apr+milestone%3A4.3-preview) merged and 1,600+ commits done only in the [main framework repository](https://github.com/abpframework/abp). **Thanks to the ABP Framework team and all the contributors.** +> ABP Commercial 4.3 RC has also been published. We will write a separate blog post for it. + ## The Migration Guide We normally don't make breaking changes in feature versions. However, this version has some small **breaking changes** mostly related to Blazor UI WebAssembly & Server separation. **Please check the [migration guide](https://docs.abp.io/en/abp/4.3/Migration-Guides/Abp-4_3) before starting with the version 4.3**. +## Known Issues + +There are some minor issues those will be fixed in the stable release. You can see the known issues [here](https://github.com/abpframework/abp/issues?q=is%3Aopen+is%3Aissue+milestone%3A4.3-final). + ## Get Started With The 4.3 RC If you want to try the version 4.3 today, follow the steps below; @@ -60,7 +66,7 @@ CMS (Content Management System) Kit was a module we were working for the last co All features are separately usable. For example, you can create an image gallery and reuse the Comments and Tags features for the images. You can enable/disable features individually using the [Global Features System](https://docs.abp.io/en/abp/4.3/global-features). -> We will create a separate blog post for the CMS Kit module, so I keep this short for now. +> We will create a separate blog post for the CMS Kit module, so I keep it short here. ### Blazor Server Side @@ -130,11 +136,32 @@ TODO ### IInitLogger -TODO +In ASP.NET Core, logging is not possible before the dependency injection phase is completed. For example, you can't write log in `ConfigureServices` method. However, we sometimes need to write logs in this stage. + +Introducing the `IInitLogger` service, which allows to write logs inside the `ConfigureServices` method. + +**Example:** + +````csharp +public class MyModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + var logger = context.Services.GetInitLogger(); + logger.LogInformation("Some log..."); + } +} +```` + +Logs are written once the service registration phase is completed. It stores the written logs in memory, then write logs to the actual `ILogger` when it is ready. + +> Notice: Startup templates come with [Serilog](https://serilog.net/) pre-installed. So, you can write logs everywhere by directly using its static API (ex: `Log.Information("...");`). The `InitLogger` is a way to write pre-initialization logs without depending a particular logging library. So, it makes it very handy to write logs inside reusable modules. ### Multi-Lingual Entities -TODO +ABP's [localization system](https://docs.abp.io/en/abp/latest/Localization) works well when you want to localizer your application UI. However, in some applications, you may also need to localize your data. For example, if you have a *Product* entity, you may need to show Product's *Description* property in the current user's language. *Multi-Language Entities* provides a pattern to localize your entities. + +TODO: EXAMPLE ### Other News From 3bfbc5c2a710cc362d7c4d6722f6db3fd31a73b3 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Tue, 30 Mar 2021 07:24:17 +0800 Subject: [PATCH 35/72] Add mssing settingmanagement packages --- nupkg/common.ps1 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nupkg/common.ps1 b/nupkg/common.ps1 index 006f5c79d4..cea7664613 100644 --- a/nupkg/common.ps1 +++ b/nupkg/common.ps1 @@ -260,12 +260,16 @@ $projects = ( "modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.WebAssembly", # modules/setting-management + "modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts", + "modules/setting-management/src/Volo.Abp.SettingManagement.Application", "modules/setting-management/src/Volo.Abp.SettingManagement.Blazor", "modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.Server", "modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.WebAssembly", "modules/setting-management/src/Volo.Abp.SettingManagement.Domain", "modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared", "modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore", + "modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi.Client", + "modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi", "modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB", "modules/setting-management/src/Volo.Abp.SettingManagement.Web", From e4800bc2181fbdaecb61297b33503b2c2c50e4e3 Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 30 Mar 2021 10:19:24 +0800 Subject: [PATCH 36/72] Add RemoteStreamContent to handle remote stream.. --- .../Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs index 136c9e42ef..dd96ad98a2 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs +++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs @@ -106,7 +106,8 @@ namespace Volo.Abp.Http.Client.DynamicProxying { var responseContent = await MakeRequestAsync(invocation); - if (typeof(T) == typeof(IRemoteStreamContent)) + if (typeof(T) == typeof(IRemoteStreamContent) || + typeof(T) == typeof(RemoteStreamContent)) { /* returning a class that holds a reference to response * content just to be sure that GC does not dispose of From 7a503833fe88987485a4e9284dd92d4dad09924d Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 30 Mar 2021 11:08:55 +0800 Subject: [PATCH 37/72] Add RemoteStreamContent class type to RemoteStreamContentInputFormatter. --- .../Mvc/ContentFormatters/RemoteStreamContentInputFormatter.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentInputFormatter.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentInputFormatter.cs index ba07e28f77..340544f79d 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentInputFormatter.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentInputFormatter.cs @@ -15,7 +15,8 @@ namespace Volo.Abp.AspNetCore.Mvc.ContentFormatters protected override bool CanReadType(Type type) { - return typeof(IRemoteStreamContent) == type; + return type == typeof(IRemoteStreamContent) || + type == typeof(RemoteStreamContent); } public override Task ReadRequestBodyAsync(InputFormatterContext context) From 2e9b3e6d19a1fa0f297dda8bb17b3ad69d305f9d Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 30 Mar 2021 12:00:19 +0800 Subject: [PATCH 38/72] Check stream CanSeek before change Position. --- .../RemoteStreamContentOutputFormatter.cs | 6 +++++- .../System/IO/AbpStreamExtensions.cs | 15 ++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentOutputFormatter.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentOutputFormatter.cs index 685822a4b6..188306227a 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentOutputFormatter.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentOutputFormatter.cs @@ -28,7 +28,11 @@ namespace Volo.Abp.AspNetCore.Mvc.ContentFormatters using (var stream = remoteStream.GetStream()) { - stream.Position = 0; + if (stream.CanSeek) + { + stream.Position = 0; + } + await stream.CopyToAsync(context.HttpContext.Response.Body); } } diff --git a/framework/src/Volo.Abp.Core/System/IO/AbpStreamExtensions.cs b/framework/src/Volo.Abp.Core/System/IO/AbpStreamExtensions.cs index bd85773a9b..62ad5a53b5 100644 --- a/framework/src/Volo.Abp.Core/System/IO/AbpStreamExtensions.cs +++ b/framework/src/Volo.Abp.Core/System/IO/AbpStreamExtensions.cs @@ -9,7 +9,10 @@ namespace System.IO { using (var memoryStream = new MemoryStream()) { - stream.Position = 0; + if (stream.CanSeek) + { + stream.Position = 0; + } stream.CopyTo(memoryStream); return memoryStream.ToArray(); } @@ -19,7 +22,10 @@ namespace System.IO { using (var memoryStream = new MemoryStream()) { - stream.Position = 0; + if (stream.CanSeek) + { + stream.Position = 0; + } await stream.CopyToAsync(memoryStream, cancellationToken); return memoryStream.ToArray(); } @@ -27,7 +33,10 @@ namespace System.IO public static Task CopyToAsync(this Stream stream, Stream destination, CancellationToken cancellationToken) { - stream.Position = 0; + if (stream.CanSeek) + { + stream.Position = 0; + } return stream.CopyToAsync( destination, 81920, //this is already the default value, but needed to set to be able to pass the cancellationToken From a9218b4e0f51d8196915907f775109032595a959 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 30 Mar 2021 09:24:15 +0300 Subject: [PATCH 39/72] Update blog posts. --- .../POST.md | 48 ++++++++++++++++++- .../2021-03-31 v4_3 Preview/POST.md | 16 +++++-- 2 files changed, 60 insertions(+), 4 deletions(-) diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/POST.md b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/POST.md index 032f80be3d..0c2dda3c05 100644 --- a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/POST.md +++ b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/POST.md @@ -1,7 +1,53 @@ # ABP Commercial 4.3 RC Has Been Published +ABP Commercial version 4.3 RC (Release Candidate) has been published alongside ABP Framework 4.3. RC (TODO: link). I will introduce the new features in this blog post. Here, a list of highlights for this release; + +* The **microservice starter template** is getting more mature. We've also added a **service template** to easily add new microservices to the solution. +* New option for the application starter template to have a **separate database schema for tenant databases**. +* New **Forms** module to create surveys +* **Enable/disable modules** per edition/tenant. +* **Lepton theme** and **Account module**'s source codes are available with the Team License too. + +Here, some other features already covered in the ABP Framework announcement, but worth to mention here since they are also implemented for the ABP Commercial; + +* **Blazor UI server-side** support + +* **Email setting** management UI +* **Module extensibility** system is now available for the **Blazor UI** too. + +> This post doesn't cover the features and changes done on the ABP Framework side. Please also see the **ABP Framework 4.3. RC blog post** (TODO: link). + +## The Migration Guide + +**This upgrade requires some manual work documented in [the migration guide](https://docs.abp.io/en/commercial/4.3/migration-guides/v4_3).** Please read the guide carefully. Even if your application doesn't break on upgrade, you should apply the changes to not have problems with the future releases. + +## What's New With The ABP Commercial 4.3 + +### The Microservice Starter Template + +TODO + +### Separate Tenant Schema + TODO +### Forms Module + +TODO + +### Lepton Theme + +TODO + +### Team License Source Code for Modules + +TODO + +### Other Features/Changes + +* ABP Suite now supports to define *required* navigation properties on code generation. + ## Feedback -Please check out the ABP Commercial 4.3 RC to help us to release a more stable version. **The planned release date for the 4.3.0 final version is April 15, 2021**. \ No newline at end of file +Please check out the ABP Commercial 4.3 RC to help us to release a more stable version. **The planned release date for the 4.3.0 final version is April 15, 2021**. + diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md b/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md index 4bd74d6043..bd052e0041 100644 --- a/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md +++ b/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md @@ -19,7 +19,7 @@ This version was a big development journey for us; [150+ issues](https://github. ## The Migration Guide -We normally don't make breaking changes in feature versions. However, this version has some small **breaking changes** mostly related to Blazor UI WebAssembly & Server separation. **Please check the [migration guide](https://docs.abp.io/en/abp/4.3/Migration-Guides/Abp-4_3) before starting with the version 4.3**. +We normally don't make breaking changes in feature versions. However, this version has some small **breaking changes** mostly related to Blazor UI WebAssembly & Server separation. **Please check the [migration guide](https://docs.abp.io/en/abp/4.3/Migration-Guides/Abp-4_3) while upgrading to the version 4.3**. ## Known Issues @@ -80,7 +80,13 @@ You can select Blazor Server as the UI type while creating a new solution. abp new Acme.BookStore -u blazor-server ```` -If you write `blazor` as the UI type, it will create Blazor WebAssembly just as before. You can also select the Blazor Server on the [get started](https://abp.io/get-started) page. +If you write `blazor` as the UI type, it will create Blazor WebAssembly just as before. + +> You can also select the Blazor Server on the [get started](https://abp.io/get-started) page. + +Blazor Server applications are actually mixed applications; You can mix the server-side MVC / Razor Pages with the Blazor SPA. This brings an interesting opportunity: MVC / Razor Pages modules can work seamlessly in the Blazor Server applications. For example, CMS Kit module has no Blazor UI yet, but you can use its MVC UI inside your Blazor Server application. + +> Blazor Server UI has a `--tiered` option just [like](https://docs.abp.io/en/abp/latest/Startup-Templates/Application#tiered-structure) the MVC / Razor Pages UI. This can be used to separate HTTP API server from UI server (UI application doesn't directly connect to the database). ### Blazor UI Module Extensibility @@ -88,6 +94,10 @@ Module Entity Extensions and some other extensibility features was not supported For anyone wondering what is the module entity extensions, please check [the document](https://docs.abp.io/en/abp/4.3/Module-Entity-Extensions) or [this community video](https://community.abp.io/articles/overview-of-abp-framework-4.1-module-extensions-part-1-n04f7bhf). +### Email Setting Management UI + +TODO + ### Angular UI Resource Owner Password Flow Login page was removed from the Angular UI in previous versions, because Authorization Code flow is the recommended approach for SPAs. However, it requires to redirect user to the authentication server, login there and come back to the application. We got many feedback because this brings overhead for simple applications. @@ -163,7 +173,7 @@ ABP's [localization system](https://docs.abp.io/en/abp/latest/Localization) work TODO: EXAMPLE -### Other News +### Other Features/Changes * [#7423](https://github.com/abpframework/abp/issues/7423) MongoDB repository base aggregation API. * [#8163](https://github.com/abpframework/abp/issues/8163) Ignoring files on minification for MVC UI. From b1b9af0656216e39fe9d62420250d3fc00a47735 Mon Sep 17 00:00:00 2001 From: Alper Ebicoglu Date: Tue, 30 Mar 2021 11:33:55 +0300 Subject: [PATCH 40/72] add virtual keyword to allow overrides --- .../Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs index 0d2722574c..99e732cf9c 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs @@ -517,7 +517,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB ); } - public async Task> GetMongoQueryableAsync(CancellationToken cancellationToken = default) + public virtual async Task> GetMongoQueryableAsync(CancellationToken cancellationToken = default) { cancellationToken = GetCancellationToken(cancellationToken); @@ -531,7 +531,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB ); } - public async Task> GetAggregateAsync(CancellationToken cancellationToken = default) + public virtual async Task> GetAggregateAsync(CancellationToken cancellationToken = default) { cancellationToken = GetCancellationToken(cancellationToken); From b3aa34666c4baf55eb384332ba323a87b64f0e79 Mon Sep 17 00:00:00 2001 From: enisn Date: Tue, 30 Mar 2021 11:41:40 +0300 Subject: [PATCH 41/72] CmsKit - Fix remote service names for Admin.HttpApi --- .../Volo/CmsKit/Admin/Blogs/BlogAdminController.cs | 2 +- .../Volo/CmsKit/Admin/Blogs/BlogFeatureAdminController.cs | 2 +- .../Volo/CmsKit/Admin/Blogs/BlogPostAdminController.cs | 2 +- .../Volo/CmsKit/Admin/Comments/CommentAdminController.cs | 2 +- .../Admin/MediaDescriptors/MediaDescriptorAdminController.cs | 2 +- .../Volo/CmsKit/Admin/Pages/PageAdminController.cs | 2 +- .../Volo/CmsKit/Admin/Tags/EntityTagAdminController.cs | 2 +- .../Volo/CmsKit/Admin/Tags/TagAdminController.cs | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogAdminController.cs index 5e8067ed6f..5c4d2fe22e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogAdminController.cs @@ -11,7 +11,7 @@ using Volo.CmsKit.Permissions; namespace Volo.CmsKit.Admin.Blogs { [RequiresGlobalFeature(typeof(BlogsFeature))] - [RemoteService(Name = CmsKitCommonRemoteServiceConsts.RemoteServiceName)] + [RemoteService(Name = CmsKitAdminRemoteServiceConsts.RemoteServiceName)] [Area("cms-kit")] [Authorize(CmsKitAdminPermissions.Blogs.Default)] [Route("api/cms-kit-admin/blogs")] diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogFeatureAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogFeatureAdminController.cs index 46cdf2fe54..65ed95f646 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogFeatureAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogFeatureAdminController.cs @@ -12,7 +12,7 @@ using Volo.CmsKit.Permissions; namespace Volo.CmsKit.Admin.Blogs { [RequiresGlobalFeature(typeof(BlogsFeature))] - [RemoteService(Name = CmsKitCommonRemoteServiceConsts.RemoteServiceName)] + [RemoteService(Name = CmsKitAdminRemoteServiceConsts.RemoteServiceName)] [Area("cms-kit")] [Authorize(CmsKitAdminPermissions.Blogs.Features)] [Route("api/cms-kit-admin/blogs/{blogId}/features")] diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogPostAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogPostAdminController.cs index a9b0727c17..72f16c5ef2 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogPostAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogPostAdminController.cs @@ -11,7 +11,7 @@ using Volo.CmsKit.Permissions; namespace Volo.CmsKit.Admin.Blogs { [RequiresGlobalFeature(typeof(BlogsFeature))] - [RemoteService(Name = CmsKitCommonRemoteServiceConsts.RemoteServiceName)] + [RemoteService(Name = CmsKitAdminRemoteServiceConsts.RemoteServiceName)] [Area("cms-kit")] [Authorize(CmsKitAdminPermissions.BlogPosts.Default)] [Route("api/cms-kit-admin/blogs/blog-posts")] diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Comments/CommentAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Comments/CommentAdminController.cs index 91482d137a..e74e413534 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Comments/CommentAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Comments/CommentAdminController.cs @@ -12,7 +12,7 @@ namespace Volo.CmsKit.Admin.Comments { [Authorize(CmsKitAdminPermissions.Comments.Default)] [RequiresGlobalFeature(typeof(CommentsFeature))] - [RemoteService(Name = CmsKitCommonRemoteServiceConsts.RemoteServiceName)] + [RemoteService(Name = CmsKitAdminRemoteServiceConsts.RemoteServiceName)] [Area("cms-kit")] [Route("api/cms-kit-admin/comments")] public class CommentAdminController : CmsKitAdminController, ICommentAdminAppService diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorAdminController.cs index 91cd5170a5..da84dc8a3d 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorAdminController.cs @@ -12,7 +12,7 @@ using Volo.CmsKit.Permissions; namespace Volo.CmsKit.Admin.MediaDescriptors { [RequiresGlobalFeature(typeof(MediaFeature))] - [RemoteService(Name = CmsKitCommonRemoteServiceConsts.RemoteServiceName)] + [RemoteService(Name = CmsKitAdminRemoteServiceConsts.RemoteServiceName)] [Area("cms-kit")] [Route("api/cms-kit-admin/media")] public class MediaDescriptorAdminController : CmsKitAdminController, IMediaDescriptorAdminAppService diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Pages/PageAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Pages/PageAdminController.cs index 810f09330f..3b11c3f850 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Pages/PageAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Pages/PageAdminController.cs @@ -11,7 +11,7 @@ using Volo.CmsKit.Permissions; namespace Volo.CmsKit.Admin.Pages { [RequiresGlobalFeature(typeof(PagesFeature))] - [RemoteService(Name = CmsKitCommonRemoteServiceConsts.RemoteServiceName)] + [RemoteService(Name = CmsKitAdminRemoteServiceConsts.RemoteServiceName)] [Area("cms-kit")] [Authorize(CmsKitAdminPermissions.Pages.Default)] [Route("api/cms-kit-admin/pages")] diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Tags/EntityTagAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Tags/EntityTagAdminController.cs index 532fae8554..80f483c856 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Tags/EntityTagAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Tags/EntityTagAdminController.cs @@ -9,7 +9,7 @@ using Volo.CmsKit.Permissions; namespace Volo.CmsKit.Admin.Tags { [RequiresGlobalFeature(typeof(TagsFeature))] - [RemoteService(Name = CmsKitCommonRemoteServiceConsts.RemoteServiceName)] + [RemoteService(Name = CmsKitAdminRemoteServiceConsts.RemoteServiceName)] [Area("cms-kit")] [Route("api/cms-kit-admin/entity-tags")] public class EntityTagAdminController : CmsKitAdminController, IEntityTagAdminAppService diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Tags/TagAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Tags/TagAdminController.cs index 4655c60bd6..064fc203aa 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Tags/TagAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Tags/TagAdminController.cs @@ -14,7 +14,7 @@ using Volo.CmsKit.Tags; namespace Volo.CmsKit.Admin.Tags { [RequiresGlobalFeature(typeof(TagsFeature))] - [RemoteService(Name = CmsKitCommonRemoteServiceConsts.RemoteServiceName)] + [RemoteService(Name = CmsKitAdminRemoteServiceConsts.RemoteServiceName)] [Area("cms-kit")] [Authorize(CmsKitAdminPermissions.Tags.Default)] [Route("api/cms-kit-admin/tags")] From 2a488c8366945e9ec79d780a628ec4a40db4a7ad Mon Sep 17 00:00:00 2001 From: enisn Date: Tue, 30 Mar 2021 11:42:32 +0300 Subject: [PATCH 42/72] CmsKit - Add missing application part for CommonHttpApi --- .../Volo/CmsKit/CmsKitCommonHttpApiModule.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo/CmsKit/CmsKitCommonHttpApiModule.cs b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo/CmsKit/CmsKitCommonHttpApiModule.cs index b839fe9ef7..e94344d1a0 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo/CmsKit/CmsKitCommonHttpApiModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo/CmsKit/CmsKitCommonHttpApiModule.cs @@ -1,4 +1,5 @@ using Localization.Resources.AbpUi; +using Microsoft.Extensions.DependencyInjection; using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.Localization; using Volo.Abp.Modularity; @@ -12,6 +13,15 @@ namespace Volo.CmsKit )] public class CmsKitCommonHttpApiModule : AbpModule { + + public override void PreConfigureServices(ServiceConfigurationContext context) + { + PreConfigure(mvcBuilder => + { + mvcBuilder.AddApplicationPartIfNotExists(typeof(CmsKitCommonHttpApiModule).Assembly); + }); + } + public override void ConfigureServices(ServiceConfigurationContext context) { Configure(options => From e349e854557e36304a350375bc572bedfe39ad4a Mon Sep 17 00:00:00 2001 From: enisn Date: Tue, 30 Mar 2021 11:42:55 +0300 Subject: [PATCH 43/72] CmsKit - Add missing GlobalFeature for BlogFeature --- .../Volo/CmsKit/Blogs/BlogFeatureAppService.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Blogs/BlogFeatureAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Blogs/BlogFeatureAppService.cs index f5a796a33b..5f6a38c95c 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Blogs/BlogFeatureAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Blogs/BlogFeatureAppService.cs @@ -2,9 +2,12 @@ using System; using System.Threading.Tasks; using Volo.Abp.Caching; +using Volo.Abp.GlobalFeatures; +using Volo.CmsKit.GlobalFeatures; namespace Volo.CmsKit.Blogs { + [RequiresGlobalFeature(typeof(BlogsFeature))] public class BlogFeatureAppService : CmsKitAppServiceBase, IBlogFeatureAppService { protected virtual IBlogFeatureRepository BlogFeatureRepository { get; } From 8e10ff6198d6144de1b489ddd9d0a36a20e1d78e Mon Sep 17 00:00:00 2001 From: enisn Date: Tue, 30 Mar 2021 11:43:29 +0300 Subject: [PATCH 44/72] CmsKit - Fix remote service name for TagPublicController --- .../Volo/CmsKit/Public/Tags/TagPublicController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Tags/TagPublicController.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Tags/TagPublicController.cs index b1f18e2511..7d36b60160 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Tags/TagPublicController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Tags/TagPublicController.cs @@ -9,7 +9,7 @@ using Volo.CmsKit.Tags; namespace Volo.CmsKit.Public.Tags { [RequiresGlobalFeature(typeof(TagsFeature))] - [RemoteService(Name = CmsKitCommonRemoteServiceConsts.RemoteServiceName)] + [RemoteService(Name = CmsKitPublicRemoteServiceConsts.RemoteServiceName)] [Area("cms-kit")] [Route("api/cms-kit-public/tags")] public class TagPublicController : CmsKitPublicControllerBase, ITagAppService From 7171d074df9b94117cd919cbb9e360365660902d Mon Sep 17 00:00:00 2001 From: enisn Date: Tue, 30 Mar 2021 11:44:03 +0300 Subject: [PATCH 45/72] CmsKit - Add missing IApplicationService to Common ApplicationServices --- .../Volo/CmsKit/Admin/Tags/IEntityTagAdminAppService.cs | 3 ++- .../Volo/CmsKit/Blogs/IBlogFeatureAppService.cs | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/IEntityTagAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/IEntityTagAdminAppService.cs index a6660a324f..1c42d3cf92 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/IEntityTagAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/IEntityTagAdminAppService.cs @@ -1,8 +1,9 @@ using System.Threading.Tasks; +using Volo.Abp.Application.Services; namespace Volo.CmsKit.Admin.Tags { - public interface IEntityTagAdminAppService + public interface IEntityTagAdminAppService : IApplicationService { Task AddTagToEntityAsync(EntityTagCreateDto input); diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Blogs/IBlogFeatureAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Blogs/IBlogFeatureAppService.cs index 968a820ae9..52a1dbd71a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Blogs/IBlogFeatureAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Blogs/IBlogFeatureAppService.cs @@ -1,9 +1,10 @@ using System; using System.Threading.Tasks; +using Volo.Abp.Application.Services; namespace Volo.CmsKit.Blogs { - public interface IBlogFeatureAppService + public interface IBlogFeatureAppService : IApplicationService { Task GetOrDefaultAsync(Guid blogId, string featureName); } From bbcf7f4781f417962d78f3aa3689b8e92b915457 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 30 Mar 2021 11:52:20 +0300 Subject: [PATCH 46/72] Completed initial blog post for abp commercial release. --- .../POST.md | 56 ++++++++++++++++-- .../abp-suite-separate-tenant-schema.png | Bin 0 -> 9332 bytes .../forms-answer.png | Bin 0 -> 21942 bytes .../forms-edit-report.png | Bin 0 -> 121732 bytes .../2021-03-31 v4_3 Preview/POST.md | 3 +- 5 files changed, 52 insertions(+), 7 deletions(-) create mode 100644 docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/abp-suite-separate-tenant-schema.png create mode 100644 docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/forms-answer.png create mode 100644 docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/forms-edit-report.png diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/POST.md b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/POST.md index 0c2dda3c05..51d3666478 100644 --- a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/POST.md +++ b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/POST.md @@ -25,23 +25,67 @@ Here, some other features already covered in the ABP Framework announcement, but ### The Microservice Starter Template -TODO +We'd introduced an initial version of the [microservice starter template](https://docs.abp.io/en/commercial/4.3/startup-templates/microservice/index) in the [previous version](https://blog.abp.io/abp/ABP-IO-Platform-v4-2-RC-Has-Been-Released). It is getting more mature with this release. We've done a lot of improvements and changes including; + +* New **"service" template** to add new microservices for the solution. Still requires some manual work to integrate to other services and gateways, however it makes the progress very easy and straightforward. +* Added [Tye](https://github.com/dotnet/tye) configuration to develop and test the solution easier. +* Added [Prometheus](https://prometheus.io/), [Grafana](https://grafana.com/) integrations for monitoring the solution. +* **Automatic database migrations**. Every microservice automatically checks and migrates/seeds its own database on startup (concurrency issues are resolved for multiple instance case). For multi-tenant systems, tenant databases are also upgraded by queue. +* For multi-tenant systems, **databases are created on the fly** for new tenants those have separate connection strings. +* Created **separate solution (`.sln`) file** for each microservice, gateway and application. In this way, you can focus on what you are working on. The main (roof) solution file only includes the executable projects in these solutions. +* All microservices are converted to the standard **layered module structure** which makes easier to align with ABP application development practices. + +After this release, we will be preparing microservice development guides based on this startup solution. ### Separate Tenant Schema -TODO +ABP's multi-tenancy system allows to create dedicated databases for tenants. However, the application startup solution comes with a single database migration path, hence it has a single database schema. As a result, tenant databases have some host-related tables. These tables are not used for tenants, they are always empty. However, their existence may disturb us as a clean developer. + +With this release, the application startup template provides an option to address this problem. So, if you want, you can have a separate migration path for tenant databases. Of course, this has a cost; You will have two DbContexts for migration purposes, which brings additional complexity to your solution. We've done our best to reduce this complexity and also added a README file into the migration assembly. If you prefer this approach, please check that README file. + +You can specify the new `--separate-tenant-schema` parameter while you are creating a new solution using the [ABP CLI](https://docs.abp.io/en/abp/4.3/CLI): + +````bash +abp new Acme.BookStore --separate-tenant-schema +```` + +If you prefer the [ABP Suite](https://docs.abp.io/en/commercial/latest/abp-suite/create-solution) to create solutions, you can check the *Separated tenant schema* option. + +![abp-suite-separate-tenant-schema](abp-suite-separate-tenant-schema.png) ### Forms Module -TODO +*Forms* is a new module that is being introduced with this version. It looks like the Google Forms application; You dynamically create forms on the UI and send it to people to answer. Then you can get statistics/report and export answers to a CSV file. + +Forms module currently supports the following question types; + +* **Free text** +* Selecting a **single option** from a **dropdown** list or a **radio button** list +* **Multiple choice**: Selecting multiple options from a checkbox list + +**Screenshot: editing form and questions - view responses** + +![forms-edit-report](forms-edit-report.png) + +**Screenshot: answering to the form** + +![forms-answer](forms-answer.png) -### Lepton Theme -TODO ### Team License Source Code for Modules -TODO +Team License users can't access the source code of modules and themes as a license restriction. You have to buy Business or Enterprise license to be able to download full source code of any module/theme. + +However, we got many feedbacks from Team License customers that they need to source code of the account module and the lepton theme. We see that customization of these two modules is highly necessary for most of our customers. + +With this version, we decided to allow Team License holders to download the source code of the **Account Module** and the **Lepton Theme**, so they can freely customize them based on their requirements. + +Remember that; when you include the source code in your own solution, it is your responsibility if you want to upgrade them when we release new versions (while you don't have to upgrade them). + +### Lepton Theme Public Website Layout + +We'd added a public website application in the application starter template in previous versions. It was using the public website layout of the Lepton Theme. We realized that the layout of this application is customized or completely changed in most of the solutions. So, with this version, the layout is included inside the application in the downloaded solution. You can freely change it. Before, you had to download it separately and include into your solution manually. ### Other Features/Changes diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/abp-suite-separate-tenant-schema.png b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/abp-suite-separate-tenant-schema.png new file mode 100644 index 0000000000000000000000000000000000000000..ae80e744f4576794b0aa64b08e9408bc849ae62d GIT binary patch literal 9332 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

NNpZo51>4vYTI}+uKg5{|ZF?gl;> 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 literal 0 HcmV?d00001 diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md b/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md index bd052e0041..4379563937 100644 --- a/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md +++ b/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md @@ -176,9 +176,10 @@ TODO: EXAMPLE ### Other Features/Changes * [#7423](https://github.com/abpframework/abp/issues/7423) MongoDB repository base aggregation API. -* [#8163](https://github.com/abpframework/abp/issues/8163) Ignoring files on minification for MVC UI. +* [#8163](https://github.com/abpframework/abp/issues/8163) Ignoring given files on minification for MVC UI. * [#7799](https://github.com/abpframework/abp/pull/7799) Added `RequiredPermissionName` to `ApplicationMenuItem` for MVC & Blazor UI to easily show/hide menu items based on user permissions. Also added `RequiredPermissionName` to `ToolbarItem` for the MVC UI for the same purpose. * [#7523](https://github.com/abpframework/abp/pull/7523) Add more bundle methods to the distributed cache. +* [#8013](https://github.com/abpframework/abp/pull/8013) Handle `JsonProperty` attribute on Angular proxy generation. See the [4.3 milestone](https://github.com/abpframework/abp/milestone/49) on GitHub for all changes made on this version. From 1957a76285a7620e48b5d37bef8ca84a08c5cd9e Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Tue, 30 Mar 2021 13:41:53 +0300 Subject: [PATCH 47/72] Cli: add-package with source code for Angular --- .../Abp/Cli/Commands/AddPackageCommand.cs | 88 ++++++++++--- .../Services/SourceCodeDownloadService.cs | 60 ++++++++- .../ProjectBuilding/AbpIoSourceCodeStore.cs | 2 +- .../NpmPackageProjectBuildPipelineBuilder.cs | 18 +++ ...ugetPackageProjectBuildPipelineBuilder.cs} | 2 +- .../Building/ProjectBuildContext.cs | 14 ++- .../INpmPackageInfoProvider.cs | 10 ++ .../ProjectBuilding/ModuleProjectBuilder.cs | 1 + .../ProjectBuilding/NpmPackageInfoProvider.cs | 62 +++++++++ .../NpmPackageProjectBuilder.cs | 110 ++++++++++++++++ .../NugetPackageInfoProvider.cs | 2 +- ...ilder.cs => NugetPackageProjectBuilder.cs} | 13 +- .../Cli/ProjectBuilding/SourceCodeTypes.cs | 4 +- .../ProjectBuilding/TemplateProjectBuilder.cs | 1 + ...CodeAdder.cs => AngularSourceCodeAdder.cs} | 32 ++++- .../ProjectNpmPackageAdder.cs | 118 +++++++++++++++++- .../ProjectNugetPackageAdder.cs | 2 +- .../SolutionModuleAdder.cs | 12 +- 18 files changed, 496 insertions(+), 55 deletions(-) create mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/NpmPackageProjectBuildPipelineBuilder.cs rename framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/{PackageProjectBuildPipelineBuilder.cs => NugetPackageProjectBuildPipelineBuilder.cs} (91%) create mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/INpmPackageInfoProvider.cs create mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/NpmPackageInfoProvider.cs create mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/NpmPackageProjectBuilder.cs rename framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/{PackageProjectBuilder.cs => NugetPackageProjectBuilder.cs} (90%) rename framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/{AngularModuleSourceCodeAdder.cs => AngularSourceCodeAdder.cs} (90%) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddPackageCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddPackageCommand.cs index b2d407c00f..bebc854208 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddPackageCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddPackageCommand.cs @@ -18,9 +18,12 @@ namespace Volo.Abp.Cli.Commands protected ProjectNugetPackageAdder ProjectNugetPackageAdder { get; } - public AddPackageCommand(ProjectNugetPackageAdder projectNugetPackageAdder) + public ProjectNpmPackageAdder ProjectNpmPackageAdder { get; } + + public AddPackageCommand(ProjectNugetPackageAdder projectNugetPackageAdder, ProjectNpmPackageAdder projectNpmPackageAdder) { ProjectNugetPackageAdder = projectNugetPackageAdder; + ProjectNpmPackageAdder = projectNpmPackageAdder; Logger = NullLogger.Instance; } @@ -35,19 +38,42 @@ namespace Volo.Abp.Cli.Commands ); } + var isAngularPackage = false; + var isNugetPackage = true; + + if (commandLineArgs.Target.StartsWith("@")) + { + isAngularPackage = true; + isNugetPackage = false; + } + var version = commandLineArgs.Options.GetOrNull(Options.Version.Short, Options.Version.Long); var withSourceCode =commandLineArgs.Options.ContainsKey(Options.SourceCode.Long); - var addSourceCodeToSolutionFile = withSourceCode && commandLineArgs.Options.ContainsKey("add-to-solution-file"); - - await ProjectNugetPackageAdder.AddAsync( - GetSolutionFile(commandLineArgs), - GetProjectFile(commandLineArgs), - commandLineArgs.Target, - version, - true, - withSourceCode, - addSourceCodeToSolutionFile - ); + + if (isNugetPackage) + { + var addSourceCodeToSolutionFile = withSourceCode && commandLineArgs.Options.ContainsKey("add-to-solution-file"); + + await ProjectNugetPackageAdder.AddAsync( + GetSolutionFile(commandLineArgs), + GetProjectFile(commandLineArgs), + commandLineArgs.Target, + version, + true, + withSourceCode, + addSourceCodeToSolutionFile + ); + } + else if (isAngularPackage) + { + await ProjectNpmPackageAdder.AddAngularPackageAsync( + GetAngularDirectory(commandLineArgs), + commandLineArgs.Target, + version, + withSourceCode + ); + } + } public string GetUsageInfo() @@ -56,7 +82,7 @@ namespace Volo.Abp.Cli.Commands sb.AppendLine(""); sb.AppendLine("'add-package' command is used to add an ABP package to a project."); - sb.AppendLine("It should be used in a folder containing a .csproj file."); + sb.AppendLine("It should be used in a folder containing a .csproj file, .sln file or angular.json."); sb.AppendLine(""); sb.AppendLine("Usage:"); sb.AppendLine(""); @@ -64,13 +90,18 @@ namespace Volo.Abp.Cli.Commands sb.AppendLine(""); sb.AppendLine("Options:"); sb.AppendLine(""); - sb.AppendLine(" -p|--project Specify the project file explicitly."); - sb.AppendLine(" -v|--version Specify the version of the package. Default is your project's ABP version or latest ABP version."); + sb.AppendLine(" -p|--project Specify the project file explicitly. (Only available for Nuget packages)"); + sb.AppendLine(" -s|--solution Specify the project file explicitly. (Only available for Nuget packages)"); + sb.AppendLine(" --with-source-code Downloads the source code of the Npm/Nuget package and make other projects depends on it."); + sb.AppendLine(" --add-to-solution-file Adds the downloaded project to .sln file, if source code is downloaded. (Only available for Nuget packages)"); + sb.AppendLine(" -ad|--angular-directory Specify the Angular project directory explicitly. (Only available for Angular packages)"); + sb.AppendLine(" -v|--version Specify the version of the package. Default is your project's ABP version or latest ABP version."); sb.AppendLine(""); sb.AppendLine("Examples:"); sb.AppendLine(""); - sb.AppendLine(" abp add-package Volo.Abp.FluentValidation Adds the package to the current project."); - sb.AppendLine(" abp add-package Volo.Abp.FluentValidation -p Acme.BookStore.Application Adds the package to the given project."); + sb.AppendLine(" abp add-package Volo.Abp.FluentValidation Adds the nuget package to the current project."); + sb.AppendLine(" abp add-package Volo.Abp.FluentValidation -p Acme.BookStore.Application Adds the nuget package to the given project."); + sb.AppendLine(" abp add-package @abp/ng.theme.basic Adds the npm package to the given angular project."); sb.AppendLine(""); sb.AppendLine("See the documentation for more info: https://docs.abp.io/en/abp/latest/CLI"); @@ -116,6 +147,23 @@ namespace Volo.Abp.Cli.Commands return Directory.GetFiles(Directory.GetCurrentDirectory(), "*.sln").FirstOrDefault(); } + protected virtual string GetAngularDirectory(CommandLineArgs commandLineArgs) + { + var providedAngularDirectory = PathHelper.NormalizePath( + commandLineArgs.Options.GetOrNull( + Options.AngularDirectory.Short, + Options.AngularDirectory.Long + ) + ); + + if (!providedAngularDirectory.IsNullOrWhiteSpace()) + { + return providedAngularDirectory; + } + + return Directory.GetCurrentDirectory(); + } + public static class Options { public static class Project @@ -130,6 +178,12 @@ namespace Volo.Abp.Cli.Commands public const string Long = "solution"; } + public static class AngularDirectory + { + public const string Short = "ad"; + public const string Long = "angular-directory"; + } + public static class Version { public const string Short = "v"; diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/SourceCodeDownloadService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/SourceCodeDownloadService.cs index ad1c5cb7fe..088cadb707 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/SourceCodeDownloadService.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/SourceCodeDownloadService.cs @@ -17,13 +17,17 @@ namespace Volo.Abp.Cli.Commands.Services public class SourceCodeDownloadService : ITransientDependency { public ModuleProjectBuilder ModuleProjectBuilder { get; } - public PackageProjectBuilder PackageProjectBuilder { get; } + public NugetPackageProjectBuilder NugetPackageProjectBuilder { get; } + public NpmPackageProjectBuilder NpmPackageProjectBuilder { get; } public ILogger Logger { get; set; } - public SourceCodeDownloadService(ModuleProjectBuilder moduleProjectBuilder, PackageProjectBuilder packageProjectBuilder) + public SourceCodeDownloadService(ModuleProjectBuilder moduleProjectBuilder, + NugetPackageProjectBuilder nugetPackageProjectBuilder, + NpmPackageProjectBuilder npmPackageProjectBuilder) { ModuleProjectBuilder = moduleProjectBuilder; - PackageProjectBuilder = packageProjectBuilder; + NugetPackageProjectBuilder = nugetPackageProjectBuilder; + NpmPackageProjectBuilder = npmPackageProjectBuilder; Logger = NullLogger.Instance; } @@ -92,13 +96,13 @@ namespace Volo.Abp.Cli.Commands.Services Logger.LogInformation($"'{moduleName}' has been successfully downloaded to '{outputFolder}'"); } - public async Task DownloadPackageAsync(string packageName, string outputFolder, string version) + public async Task DownloadNugetPackageAsync(string packageName, string outputFolder, string version) { Logger.LogInformation("Downloading source code of " + packageName); Logger.LogInformation("Version: " + version); Logger.LogInformation("Output folder: " + outputFolder); - var result = await PackageProjectBuilder.BuildAsync( + var result = await NugetPackageProjectBuilder.BuildAsync( new ProjectBuildArgs( SolutionName.Parse(packageName), packageName, @@ -113,12 +117,56 @@ namespace Volo.Abp.Cli.Commands.Services var zipEntry = zipInputStream.GetNextEntry(); while (zipEntry != null) { - if (IsAngularTestFile(zipEntry.Name)) + var fullZipToPath = Path.Combine(outputFolder, zipEntry.Name); + var directoryName = Path.GetDirectoryName(fullZipToPath); + + if (!string.IsNullOrEmpty(directoryName)) + { + Directory.CreateDirectory(directoryName); + } + + var fileName = Path.GetFileName(fullZipToPath); + if (fileName.Length == 0) { zipEntry = zipInputStream.GetNextEntry(); continue; } + var buffer = new byte[4096]; // 4K is optimum + using (var streamWriter = File.Create(fullZipToPath)) + { + StreamUtils.Copy(zipInputStream, streamWriter, buffer); + } + + zipEntry = zipInputStream.GetNextEntry(); + } + } + } + + Logger.LogInformation($"'{packageName}' has been successfully downloaded to '{outputFolder}'"); + } + + public async Task DownloadNpmPackageAsync(string packageName, string outputFolder, string version) + { + Logger.LogInformation("Downloading source code of " + packageName); + Logger.LogInformation("Version: " + version); + Logger.LogInformation("Output folder: " + outputFolder); + + var result = await NpmPackageProjectBuilder.BuildAsync( + new ProjectBuildArgs( + SolutionName.Parse(packageName), + packageName, + version + ) + ); + + using (var templateFileStream = new MemoryStream(result.ZipContent)) + { + using (var zipInputStream = new ZipInputStream(templateFileStream)) + { + var zipEntry = zipInputStream.GetNextEntry(); + while (zipEntry != null) + { var fullZipToPath = Path.Combine(outputFolder, zipEntry.Name); var directoryName = Path.GetDirectoryName(fullZipToPath); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs index 29ea93bd3d..fdafa7c01c 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs @@ -91,7 +91,7 @@ namespace Volo.Abp.Cli.ProjectBuilding return new TemplateFile(File.ReadAllBytes(Path.Combine(templateSource, name + "-" + version + ".zip")), version, latestVersion, nugetVersion); } - var localCacheFile = Path.Combine(CliPaths.TemplateCache, name + "-" + version + ".zip"); + var localCacheFile = Path.Combine(CliPaths.TemplateCache, name.Replace("/",".") + "-" + version + ".zip"); #if DEBUG if (File.Exists(localCacheFile)) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/NpmPackageProjectBuildPipelineBuilder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/NpmPackageProjectBuildPipelineBuilder.cs new file mode 100644 index 0000000000..4c28f08ccd --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/NpmPackageProjectBuildPipelineBuilder.cs @@ -0,0 +1,18 @@ +using Volo.Abp.Cli.ProjectBuilding.Building.Steps; +using Volo.Abp.Cli.ProjectBuilding.Templates; + +namespace Volo.Abp.Cli.ProjectBuilding.Building +{ + public static class NpmPackageProjectBuildPipelineBuilder + { + public static ProjectBuildPipeline Build(ProjectBuildContext context) + { + var pipeline = new ProjectBuildPipeline(context); + + pipeline.Steps.Add(new FileEntryListReadStep()); + pipeline.Steps.Add(new CreateProjectResultZipStep()); + + return pipeline; + } + } +} diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/PackageProjectBuildPipelineBuilder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/NugetPackageProjectBuildPipelineBuilder.cs similarity index 91% rename from framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/PackageProjectBuildPipelineBuilder.cs rename to framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/NugetPackageProjectBuildPipelineBuilder.cs index 79245dfaec..0bc074e7b8 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/PackageProjectBuildPipelineBuilder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/NugetPackageProjectBuildPipelineBuilder.cs @@ -3,7 +3,7 @@ using Volo.Abp.Cli.ProjectBuilding.Templates; namespace Volo.Abp.Cli.ProjectBuilding.Building { - public static class PackageProjectBuildPipelineBuilder + public static class NugetPackageProjectBuildPipelineBuilder { public static ProjectBuildPipeline Build(ProjectBuildContext context) { diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ProjectBuildContext.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ProjectBuildContext.cs index b6c2baec88..6b1f606e28 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ProjectBuildContext.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ProjectBuildContext.cs @@ -17,24 +17,28 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building public ModuleInfo Module { get; } - public NugetPackageInfo Package { get; } + public NugetPackageInfo NugetPackage { get; } + + public NpmPackageInfo NpmPackage { get; } public FileEntryList Files { get; set; } public ProjectResult Result { get; set; } - + public List Symbols { get; } //TODO: Fill the symbols, like "UI-Angular", "CMS-KIT"! - + public ProjectBuildContext( TemplateInfo template, ModuleInfo module, - NugetPackageInfo package, + NugetPackageInfo nugetPackage, + NpmPackageInfo npmPackage, [NotNull] TemplateFile templateFile, [NotNull] ProjectBuildArgs buildArgs) { Template = template; Module = module; - Package = package; + NugetPackage = nugetPackage; + NpmPackage = npmPackage; TemplateFile = Check.NotNull(templateFile, nameof(templateFile)); BuildArgs = Check.NotNull(buildArgs, nameof(buildArgs)); Symbols = new List(); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/INpmPackageInfoProvider.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/INpmPackageInfoProvider.cs new file mode 100644 index 0000000000..130afa4a60 --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/INpmPackageInfoProvider.cs @@ -0,0 +1,10 @@ +using System.Threading.Tasks; +using Volo.Abp.Cli.ProjectModification; + +namespace Volo.Abp.Cli.ProjectBuilding +{ + public interface INpmPackageInfoProvider + { + Task GetAsync(string name); + } +} diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ModuleProjectBuilder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ModuleProjectBuilder.cs index 029b687015..e621c58acc 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ModuleProjectBuilder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ModuleProjectBuilder.cs @@ -68,6 +68,7 @@ namespace Volo.Abp.Cli.ProjectBuilding null, moduleInfo, null, + null, templateFile, args ); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/NpmPackageInfoProvider.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/NpmPackageInfoProvider.cs new file mode 100644 index 0000000000..458a419840 --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/NpmPackageInfoProvider.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Volo.Abp.Json; +using Volo.Abp.Cli.Http; +using Volo.Abp.Cli.ProjectModification; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Threading; + +namespace Volo.Abp.Cli.ProjectBuilding +{ + public class NpmPackageInfoProvider : INpmPackageInfoProvider, ITransientDependency + { + public IJsonSerializer JsonSerializer { get; } + public ICancellationTokenProvider CancellationTokenProvider { get; } + public IRemoteServiceExceptionHandler RemoteServiceExceptionHandler { get; } + + private readonly CliHttpClientFactory _cliHttpClientFactory; + + public NpmPackageInfoProvider( + IJsonSerializer jsonSerializer, + ICancellationTokenProvider cancellationTokenProvider, + IRemoteServiceExceptionHandler remoteServiceExceptionHandler, + CliHttpClientFactory cliHttpClientFactory) + { + JsonSerializer = jsonSerializer; + CancellationTokenProvider = cancellationTokenProvider; + RemoteServiceExceptionHandler = remoteServiceExceptionHandler; + _cliHttpClientFactory = cliHttpClientFactory; + } + + public async Task GetAsync(string name) + { + var packageList = await GetPackageListInternalAsync(); + + var package = packageList.FirstOrDefault(m => m.Name == name); + + if (package == null) + { + throw new Exception("Package is not found or downloadable!"); + } + + return package; + } + + private async Task> GetPackageListInternalAsync() + { + var client = _cliHttpClientFactory.CreateClient(); + + using (var responseMessage = await client.GetAsync( + $"{CliUrls.WwwAbpIo}api/download/npmPackages/", + CancellationTokenProvider.Token + )) + { + await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(responseMessage); + var result = await responseMessage.Content.ReadAsStringAsync(); + return JsonSerializer.Deserialize>(result); + } + } + } +} diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/NpmPackageProjectBuilder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/NpmPackageProjectBuilder.cs new file mode 100644 index 0000000000..d60e76d9a7 --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/NpmPackageProjectBuilder.cs @@ -0,0 +1,110 @@ +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; +using Microsoft.Extensions.Options; +using System; +using System.Linq; +using System.Threading.Tasks; +using Volo.Abp.Cli.Commands; +using Volo.Abp.Cli.Licensing; +using Volo.Abp.Cli.ProjectBuilding.Analyticses; +using Volo.Abp.Cli.ProjectBuilding.Building; +using Volo.Abp.Cli.ProjectModification; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Json; + +namespace Volo.Abp.Cli.ProjectBuilding +{ + public class NpmPackageProjectBuilder : IProjectBuilder, ITransientDependency + { + public ILogger Logger { get; set; } + protected ISourceCodeStore SourceCodeStore { get; } + protected INpmPackageInfoProvider NpmPackageInfoProvider { get; } + protected ICliAnalyticsCollect CliAnalyticsCollect { get; } + protected AbpCliOptions Options { get; } + protected IJsonSerializer JsonSerializer { get; } + protected IApiKeyService ApiKeyService { get; } + + public NpmPackageProjectBuilder(ISourceCodeStore sourceCodeStore, + INpmPackageInfoProvider npmPackageInfoProvider, + ICliAnalyticsCollect cliAnalyticsCollect, + IOptions options, + IJsonSerializer jsonSerializer, + IApiKeyService apiKeyService) + { + SourceCodeStore = sourceCodeStore; + NpmPackageInfoProvider = npmPackageInfoProvider; + CliAnalyticsCollect = cliAnalyticsCollect; + Options = options.Value; + JsonSerializer = jsonSerializer; + ApiKeyService = apiKeyService; + + Logger = NullLogger.Instance; + } + + public async Task BuildAsync(ProjectBuildArgs args) + { + var packageInfo = await GetPackageInfoAsync(args); + + var templateFile = await SourceCodeStore.GetAsync( + args.TemplateName, + SourceCodeTypes.NpmPackage, + args.Version, + null, + args.ExtraProperties.ContainsKey(GetSourceCommand.Options.Preview.Long) + ); + + var apiKeyResult = await ApiKeyService.GetApiKeyOrNullAsync(); + if (apiKeyResult?.ApiKey != null) + { + args.ExtraProperties["api-key"] = apiKeyResult.ApiKey; + } + + if (apiKeyResult?.LicenseCode != null) + { + args.ExtraProperties["license-code"] = apiKeyResult.LicenseCode; + } + + var context = new ProjectBuildContext( + null, + null, + null, + packageInfo, + templateFile, + args + ); + + NpmPackageProjectBuildPipelineBuilder.Build(context).Execute(); + + // Exclude unwanted or known options. + var options = args.ExtraProperties + .Where(x => !x.Key.Equals(CliConsts.Command, StringComparison.InvariantCultureIgnoreCase)) + .Where(x => !x.Key.Equals(NewCommand.Options.OutputFolder.Long, StringComparison.InvariantCultureIgnoreCase) && + !x.Key.Equals(NewCommand.Options.OutputFolder.Short, StringComparison.InvariantCultureIgnoreCase)) + .Where(x => !x.Key.Equals(NewCommand.Options.Version.Long, StringComparison.InvariantCultureIgnoreCase) && + !x.Key.Equals(NewCommand.Options.Version.Short, StringComparison.InvariantCultureIgnoreCase)) + .Where(x => !x.Key.Equals(NewCommand.Options.TemplateSource.Short, StringComparison.InvariantCultureIgnoreCase) && + !x.Key.Equals(NewCommand.Options.TemplateSource.Long, StringComparison.InvariantCultureIgnoreCase)) + .Select(x => x.Key).ToList(); + + await CliAnalyticsCollect.CollectAsync(new CliAnalyticsCollectInputDto + { + Tool = Options.ToolName, + Command = args.ExtraProperties.ContainsKey(CliConsts.Command) ? args.ExtraProperties[CliConsts.Command] : "", + DatabaseProvider = null, + IsTiered = null, + UiFramework = null, + Options = JsonSerializer.Serialize(options), + ProjectName = null, + TemplateName = args.TemplateName, + TemplateVersion = templateFile.Version + }); + + return new ProjectBuildResult(context.Result.ZipContent, args.TemplateName); + } + + private async Task GetPackageInfoAsync(ProjectBuildArgs args) + { + return await NpmPackageInfoProvider.GetAsync(args.TemplateName); + } + } +} diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/NugetPackageInfoProvider.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/NugetPackageInfoProvider.cs index 06c39e66f7..af1bee7d23 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/NugetPackageInfoProvider.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/NugetPackageInfoProvider.cs @@ -49,7 +49,7 @@ namespace Volo.Abp.Cli.ProjectBuilding var client = _cliHttpClientFactory.CreateClient(); using (var responseMessage = await client.GetAsync( - $"{CliUrls.WwwAbpIo}api/download/packages/", + $"{CliUrls.WwwAbpIo}api/download/nugetPackages/", CancellationTokenProvider.Token )) { diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/PackageProjectBuilder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/NugetPackageProjectBuilder.cs similarity index 90% rename from framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/PackageProjectBuilder.cs rename to framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/NugetPackageProjectBuilder.cs index 04518332a4..c68a45e080 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/PackageProjectBuilder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/NugetPackageProjectBuilder.cs @@ -14,9 +14,9 @@ using Volo.Abp.Json; namespace Volo.Abp.Cli.ProjectBuilding { - public class PackageProjectBuilder : IProjectBuilder, ITransientDependency + public class NugetPackageProjectBuilder : IProjectBuilder, ITransientDependency { - public ILogger Logger { get; set; } + public ILogger Logger { get; set; } protected ISourceCodeStore SourceCodeStore { get; } protected INugetPackageInfoProvider NugetPackageInfoProvider { get; } protected ICliAnalyticsCollect CliAnalyticsCollect { get; } @@ -24,7 +24,7 @@ namespace Volo.Abp.Cli.ProjectBuilding protected IJsonSerializer JsonSerializer { get; } protected IApiKeyService ApiKeyService { get; } - public PackageProjectBuilder(ISourceCodeStore sourceCodeStore, + public NugetPackageProjectBuilder(ISourceCodeStore sourceCodeStore, INugetPackageInfoProvider nugetPackageInfoProvider, ICliAnalyticsCollect cliAnalyticsCollect, IOptions options, @@ -38,7 +38,7 @@ namespace Volo.Abp.Cli.ProjectBuilding JsonSerializer = jsonSerializer; ApiKeyService = apiKeyService; - Logger = NullLogger.Instance; + Logger = NullLogger.Instance; } public async Task BuildAsync(ProjectBuildArgs args) @@ -47,7 +47,7 @@ namespace Volo.Abp.Cli.ProjectBuilding var templateFile = await SourceCodeStore.GetAsync( args.TemplateName, - SourceCodeTypes.Package, + SourceCodeTypes.NugetPackage, args.Version, null, args.ExtraProperties.ContainsKey(GetSourceCommand.Options.Preview.Long) @@ -68,11 +68,12 @@ namespace Volo.Abp.Cli.ProjectBuilding null, null, packageInfo, + null, templateFile, args ); - PackageProjectBuildPipelineBuilder.Build(context).Execute(); + NugetPackageProjectBuildPipelineBuilder.Build(context).Execute(); // Exclude unwanted or known options. var options = args.ExtraProperties diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/SourceCodeTypes.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/SourceCodeTypes.cs index 813ffe6b54..014f1959f0 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/SourceCodeTypes.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/SourceCodeTypes.cs @@ -6,6 +6,8 @@ public const string Module = "module"; - public const string Package = "package"; + public const string NugetPackage = "nugetPackage"; + + public const string NpmPackage = "npmPackage"; } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs index 5823c3c488..0f224a20cb 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs @@ -106,6 +106,7 @@ namespace Volo.Abp.Cli.ProjectBuilding templateInfo, null, null, + null, templateFile, args ); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/AngularModuleSourceCodeAdder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/AngularSourceCodeAdder.cs similarity index 90% rename from framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/AngularModuleSourceCodeAdder.cs rename to framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/AngularSourceCodeAdder.cs index 08912f2f25..fdd4d58652 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/AngularModuleSourceCodeAdder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/AngularSourceCodeAdder.cs @@ -11,16 +11,16 @@ using Volo.Abp.DependencyInjection; namespace Volo.Abp.Cli.ProjectModification { - public class AngularModuleSourceCodeAdder : ITransientDependency + public class AngularSourceCodeAdder : ITransientDependency { public ILogger Logger { get; set; } - public AngularModuleSourceCodeAdder() + public AngularSourceCodeAdder() { Logger = NullLogger.Instance; } - public async Task AddAsync(string solutionFilePath, string angularPath) + public async Task AddFromModuleAsync(string solutionFilePath, string angularPath) { try { @@ -36,7 +36,7 @@ namespace Volo.Abp.Cli.ProjectModification await AddPathsToTsConfigAsync(angularPath, angularProjectsPath, projects); await CreateTsConfigProdJsonAsync(angularPath); await AddScriptsToPackageJsonAsync(angularPath); - await AddProjectToAngularJsonAsync(angularPath, projects); + await AddProjectsToAngularJsonAsync(angularPath, projects); } catch (Exception e) { @@ -44,7 +44,29 @@ namespace Volo.Abp.Cli.ProjectModification } } - private async Task AddProjectToAngularJsonAsync(string angularPath, List projects) + public async Task AddAsync(string angularPath, NpmPackageInfo package) + { + try + { + var angularProjectsPath = Path.Combine(angularPath, "projects"); + + var projects = new List + { + package.Name.RemovePreFix("@").Replace("/","-") + }; + + await AddPathsToTsConfigAsync(angularPath, angularProjectsPath, projects); + await CreateTsConfigProdJsonAsync(angularPath); + await AddScriptsToPackageJsonAsync(angularPath); + await AddProjectsToAngularJsonAsync(angularPath, projects); + } + catch (Exception e) + { + Logger.LogError("Unable to add angular source code: " + e.Message + Environment.NewLine + e.StackTrace); + } + } + + private async Task AddProjectsToAngularJsonAsync(string angularPath, List projects) { var angularJsonFilePath = Path.Combine(angularPath, "angular.json"); var fileContent = File.ReadAllText(angularJsonFilePath); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNpmPackageAdder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNpmPackageAdder.cs index 7ed15f7b86..a0ee3b463a 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNpmPackageAdder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNpmPackageAdder.cs @@ -1,23 +1,107 @@ -using System.IO; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net; using System.Threading.Tasks; +using System.Xml; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; +using Volo.Abp.Cli.Args; +using Volo.Abp.Cli.Commands; +using Volo.Abp.Cli.Commands.Services; +using Volo.Abp.Cli.Http; +using Volo.Abp.Cli.ProjectBuilding; using Volo.Abp.Cli.Utils; using Volo.Abp.DependencyInjection; using Volo.Abp.IO; +using Volo.Abp.Json; namespace Volo.Abp.Cli.ProjectModification { public class ProjectNpmPackageAdder : ITransientDependency { + public IJsonSerializer JsonSerializer { get; } + public SourceCodeDownloadService SourceCodeDownloadService { get; } + public AngularSourceCodeAdder AngularSourceCodeAdder { get; } + public IRemoteServiceExceptionHandler RemoteServiceExceptionHandler { get; } + private readonly CliHttpClientFactory _cliHttpClientFactory; public ILogger Logger { get; set; } - public ProjectNpmPackageAdder() + public ProjectNpmPackageAdder(CliHttpClientFactory cliHttpClientFactory, + IJsonSerializer jsonSerializer, + SourceCodeDownloadService sourceCodeDownloadService, + AngularSourceCodeAdder angularSourceCodeAdder, + IRemoteServiceExceptionHandler remoteServiceExceptionHandler) { + JsonSerializer = jsonSerializer; + SourceCodeDownloadService = sourceCodeDownloadService; + AngularSourceCodeAdder = angularSourceCodeAdder; + RemoteServiceExceptionHandler = remoteServiceExceptionHandler; + _cliHttpClientFactory = cliHttpClientFactory; Logger = NullLogger.Instance; } - public Task AddAsync(string directory, NpmPackageInfo npmPackage, bool skipGulpCommand = false) + public async Task AddAngularPackageAsync(string directory, string npmPackageName, string version = null, bool withSourceCode = false) + { + await AddAngularPackageAsync( + directory, + await FindNpmPackageInfoAsync(npmPackageName), + version, + withSourceCode + ); + } + + public async Task AddAngularPackageAsync(string directory, NpmPackageInfo npmPackage, string version = null, bool withSourceCode = false) + { + var packageJsonFilePath = Path.Combine(directory, "package.json"); + if (!File.Exists(packageJsonFilePath)) + { + Logger.LogError($"package.json not found!"); + return; + } + + Logger.LogInformation($"Installing '{npmPackage.Name}' package to the project '{packageJsonFilePath}'..."); + + if (!File.ReadAllText(packageJsonFilePath).Contains($"\"{npmPackage.Name}\"")) + { + var versionPostfix = version != null ? $"@{version}" : string.Empty; + + using (DirectoryHelper.ChangeCurrentDirectory(directory)) + { + Logger.LogInformation("yarn add " + npmPackage.Name + versionPostfix); + CmdHelper.RunCmd("yarn add " + npmPackage.Name + versionPostfix); + } + } + else + { + Logger.LogInformation($"'{npmPackage.Name}' is already installed."); + } + + if (withSourceCode) + { + await DownloadAngularSourceCode(directory, npmPackage, version); + await AngularSourceCodeAdder.AddAsync(directory, npmPackage); + } + } + + protected virtual async Task DownloadAngularSourceCode(string angularDirectory, NpmPackageInfo package, string version = null) + { + var targetFolder = Path.Combine(angularDirectory, "projects", package.Name.RemovePreFix("@").Replace("/","-")); + + if (Directory.Exists(targetFolder)) + { + Directory.Delete(targetFolder, true); + } + + await SourceCodeDownloadService.DownloadNpmPackageAsync( + package.Name, + targetFolder, + version + ); + } + + public Task AddMvcPackageAsync(string directory, NpmPackageInfo npmPackage, string version = null, bool skipGulpCommand = false) { var packageJsonFilePath = Path.Combine(directory, "package.json"); if (!File.Exists(packageJsonFilePath) || @@ -29,11 +113,12 @@ namespace Volo.Abp.Cli.ProjectModification Logger.LogInformation($"Installing '{npmPackage.Name}' package to the project '{packageJsonFilePath}'..."); + var versionPostfix = version != null ? $"@{version}" : string.Empty; using (DirectoryHelper.ChangeCurrentDirectory(directory)) { - Logger.LogInformation("yarn add " + npmPackage.Name); - CmdHelper.RunCmd("yarn add " + npmPackage.Name); + Logger.LogInformation("yarn add " + npmPackage.Name + versionPostfix); + CmdHelper.RunCmd("yarn add " + npmPackage.Name + versionPostfix); if (skipGulpCommand) { @@ -46,5 +131,28 @@ namespace Volo.Abp.Cli.ProjectModification return Task.CompletedTask; } + + private async Task FindNpmPackageInfoAsync(string packageName) + { + + var url = $"{CliUrls.WwwAbpIo}api/app/npmPackage/byName/?name=" + packageName; + var client = _cliHttpClientFactory.CreateClient(); + + using (var response = await client.GetAsync(url, _cliHttpClientFactory.GetCancellationToken())) + { + if (!response.IsSuccessStatusCode) + { + if (response.StatusCode == HttpStatusCode.NotFound) + { + throw new CliUsageException($"'{packageName}' npm package could not be found!"); + } + + await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(response); + } + + var responseContent = await response.Content.ReadAsStringAsync(); + return JsonSerializer.Deserialize(responseContent); + } + } } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs index 8b08775c93..7d9f81056f 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs @@ -194,7 +194,7 @@ namespace Volo.Abp.Cli.ProjectModification protected virtual async Task DownloadSourceCode(string targetFolder, NugetPackageInfo package, string version = null) { - await SourceCodeDownloadService.DownloadPackageAsync( + await SourceCodeDownloadService.DownloadNugetPackageAsync( package.Name, targetFolder, version diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs index c3b13d7e07..4e66954dcc 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs @@ -27,7 +27,7 @@ namespace Volo.Abp.Cli.ProjectModification public SourceCodeDownloadService SourceCodeDownloadService { get; } public SolutionFileModifier SolutionFileModifier { get; } public NugetPackageToLocalReferenceConverter NugetPackageToLocalReferenceConverter { get; } - public AngularModuleSourceCodeAdder AngularModuleSourceCodeAdder { get; } + public AngularSourceCodeAdder AngularSourceCodeAdder { get; } public NewCommand NewCommand { get; } public BundleCommand BundleCommand { get; } @@ -55,7 +55,7 @@ namespace Volo.Abp.Cli.ProjectModification SourceCodeDownloadService sourceCodeDownloadService, SolutionFileModifier solutionFileModifier, NugetPackageToLocalReferenceConverter nugetPackageToLocalReferenceConverter, - AngularModuleSourceCodeAdder angularModuleSourceCodeAdder, + AngularSourceCodeAdder angularSourceCodeAdder, NewCommand newCommand, BundleCommand bundleCommand, CliHttpClientFactory cliHttpClientFactory) @@ -71,7 +71,7 @@ namespace Volo.Abp.Cli.ProjectModification SourceCodeDownloadService = sourceCodeDownloadService; SolutionFileModifier = solutionFileModifier; NugetPackageToLocalReferenceConverter = nugetPackageToLocalReferenceConverter; - AngularModuleSourceCodeAdder = angularModuleSourceCodeAdder; + AngularSourceCodeAdder = angularSourceCodeAdder; NewCommand = newCommand; BundleCommand = bundleCommand; _cliHttpClientFactory = cliHttpClientFactory; @@ -327,7 +327,7 @@ namespace Volo.Abp.Cli.ProjectModification { foreach (var npmPackage in angularPackages) { - await ProjectNpmPackageAdder.AddAsync(angularPath, npmPackage, true); + await ProjectNpmPackageAdder.AddAngularPackageAsync(angularPath, npmPackage); } } } @@ -347,7 +347,7 @@ namespace Volo.Abp.Cli.ProjectModification MoveAngularFolderInNewTemplate(modulesFolderInSolution, moduleName); } - await AngularModuleSourceCodeAdder.AddAsync(solutionFilePath, angularPath); + await AngularSourceCodeAdder.AddFromModuleAsync(solutionFilePath, angularPath); } private static void DeleteAngularDirectoriesInModulesFolder(string modulesFolderInSolution) @@ -490,7 +490,7 @@ namespace Volo.Abp.Cli.ProjectModification { foreach (var npmPackage in mvcNpmPackages) { - await ProjectNpmPackageAdder.AddAsync(Path.GetDirectoryName(targetProject), npmPackage); + await ProjectNpmPackageAdder.AddMvcPackageAsync(Path.GetDirectoryName(targetProject), npmPackage, null, true); } } } From 4bb08ba410d642ce851756f1c4b2de6a7ac1651c Mon Sep 17 00:00:00 2001 From: Mehmet Erim <34455572+mehmet-erim@users.noreply.github.com> Date: Tue, 30 Mar 2021 14:03:07 +0300 Subject: [PATCH 48/72] Update Account-Module.md --- docs/en/UI/Angular/Account-Module.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/en/UI/Angular/Account-Module.md b/docs/en/UI/Angular/Account-Module.md index 17a0e848ef..0227a53b62 100644 --- a/docs/en/UI/Angular/Account-Module.md +++ b/docs/en/UI/Angular/Account-Module.md @@ -2,7 +2,7 @@ Angular UI account module is available as of v4.3. It contains some pages (login, register, manage your profile, etc.). -If you implement the account module to your project; +If you add the account module to your project; - "Manage your profile" link in the current user dropdown on the top bar will redirect the user to a page in the account module. - You can switch the authentication flow to the resource owner password flow. @@ -93,15 +93,15 @@ export class AppRoutingModule {} ### Manage Profile Page -Before v4.3, the "Manage Your Profile" link in the current user dropdown on the top bar redirected the user to MVC's profile management page. As of v4.3, if you implemented the account module to your project, the same link will land on a page in the Angular UI account module instead. +Before v4.3, the "Manage Your Profile" link in the current user dropdown on the top bar redirected the user to MVC's profile management page. As of v4.3, if you added the account module to your project, the same link will land on a page in the Angular UI account module instead. ### My Security Logs Page [COMMERCIAL] -Before v4.3, the "My Security Logs" link in the current user dropdown on the top bar redirected the user to MVC's my security logs page. As of v4.3, if you implemented the account module to your project, the same link will land on a page in the Angular UI account public module instead. +Before v4.3, the "My Security Logs" link in the current user dropdown on the top bar redirected the user to MVC's my security logs page. As of v4.3, if you added the account module to your project, the same link will land on a page in the Angular UI account public module instead. ### Resource Owner Password Flow -OAuth is preconfigured as authorization code flow in Angular application templates by default. If you implemented the account module to your project, you can switch the flow to resource owner password flow by changing the OAuth configuration in the _environment.ts_ files as shown below: +OAuth is preconfigured as authorization code flow in Angular application templates by default. If you added the account module to your project, you can switch the flow to resource owner password flow by changing the OAuth configuration in the _environment.ts_ files as shown below: ```js import { Config } from '@abp/ng.core'; From e84d1848a082f194db844d3b377c7fa743dd06f0 Mon Sep 17 00:00:00 2001 From: enisn Date: Tue, 30 Mar 2021 14:09:03 +0300 Subject: [PATCH 49/72] CmsKit - Add missing IApplicationService --- .../CmsKit/Admin/Blogs/IBlogFeatureAdminAppService.cs | 3 ++- .../Volo/CmsKit/Public/Blogs/IBlogPostPublicAppService.cs | 6 ++---- .../Volo/CmsKit/Public/Pages/IPagePublicAppService.cs | 8 +++++--- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/IBlogFeatureAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/IBlogFeatureAdminAppService.cs index 008081367d..b6be3b3a47 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/IBlogFeatureAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/IBlogFeatureAdminAppService.cs @@ -3,11 +3,12 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Volo.Abp.Application.Services; using Volo.CmsKit.Blogs; namespace Volo.CmsKit.Admin.Blogs { - public interface IBlogFeatureAdminAppService + public interface IBlogFeatureAdminAppService : IApplicationService { Task SetAsync(Guid blogId, BlogFeatureInputDto dto); diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Blogs/IBlogPostPublicAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Blogs/IBlogPostPublicAppService.cs index 4709e1219c..b74cc70dbf 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Blogs/IBlogPostPublicAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Blogs/IBlogPostPublicAppService.cs @@ -1,13 +1,11 @@ using JetBrains.Annotations; -using System; -using System.Collections.Generic; using System.Threading.Tasks; using Volo.Abp.Application.Dtos; -using Volo.Abp.Content; +using Volo.Abp.Application.Services; namespace Volo.CmsKit.Public.Blogs { - public interface IBlogPostPublicAppService + public interface IBlogPostPublicAppService : IApplicationService { Task> GetListAsync([NotNull] string blogSlug, PagedAndSortedResultRequestDto input); diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Pages/IPagePublicAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Pages/IPagePublicAppService.cs index 1e37e92b71..a8be796f5d 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Pages/IPagePublicAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Pages/IPagePublicAppService.cs @@ -1,10 +1,12 @@ -using System.Threading.Tasks; -using JetBrains.Annotations; +using JetBrains.Annotations; +using System.Threading.Tasks; +using Volo.Abp.Application.Services; namespace Volo.CmsKit.Public.Pages { - public interface IPagePublicAppService + public interface IPagePublicAppService : IApplicationService { Task FindBySlugAsync([NotNull] string slug); } +} } \ No newline at end of file From 0285b1b1996bbe4e22935b9402d2ed3bb8c41cde Mon Sep 17 00:00:00 2001 From: enisn Date: Tue, 30 Mar 2021 14:30:39 +0300 Subject: [PATCH 50/72] CmsKit - Code Formatting at IPagePublicAppService.cs --- .../Volo/CmsKit/Public/Pages/IPagePublicAppService.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Pages/IPagePublicAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Pages/IPagePublicAppService.cs index a8be796f5d..f81887d360 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Pages/IPagePublicAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Pages/IPagePublicAppService.cs @@ -8,5 +8,4 @@ namespace Volo.CmsKit.Public.Pages { Task FindBySlugAsync([NotNull] string slug); } -} } \ No newline at end of file From 61830f44e629291aab339cc5905cfcf6c1ef6973 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 30 Mar 2021 15:18:43 +0300 Subject: [PATCH 51/72] Completed abp commercial blog post for 4.3 release. --- .../POST.md | 48 +++++++++++++++++- .../account-lepton-source.png | Bin 0 -> 126115 bytes .../cms-kit-menu.png | Bin 0 -> 27555 bytes .../cms-kit-selection.png | Bin 0 -> 8448 bytes .../enable-disable-features.png | Bin 0 -> 28491 bytes .../new-tenant-modal.png | Bin 0 -> 34609 bytes .../tenant-db-migrate.png | Bin 0 -> 16802 bytes 7 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/account-lepton-source.png create mode 100644 docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/cms-kit-menu.png create mode 100644 docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/cms-kit-selection.png create mode 100644 docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/enable-disable-features.png create mode 100644 docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/new-tenant-modal.png create mode 100644 docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/tenant-db-migrate.png diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/POST.md b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/POST.md index 51d3666478..f36951541f 100644 --- a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/POST.md +++ b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/POST.md @@ -35,7 +35,7 @@ We'd introduced an initial version of the [microservice starter template](https: * Created **separate solution (`.sln`) file** for each microservice, gateway and application. In this way, you can focus on what you are working on. The main (roof) solution file only includes the executable projects in these solutions. * All microservices are converted to the standard **layered module structure** which makes easier to align with ABP application development practices. -After this release, we will be preparing microservice development guides based on this startup solution. +After this release, **we will be preparing microservice development guides** based on this startup solution. ### Separate Tenant Schema @@ -53,7 +53,39 @@ If you prefer the [ABP Suite](https://docs.abp.io/en/commercial/latest/abp-suite ![abp-suite-separate-tenant-schema](abp-suite-separate-tenant-schema.png) -### Forms Module +### Creating Tenant Databases On The Fly + +With this release, separate tenant database feature becomes more mature. When you create a new tenant with specifying a connection string, the **new database is automatically created** with all the tables and the initial seed data if available. So, tenants can immediately start to use the new database. With this change, tenant connection string textboxes comes in the tenant creation modal: + +![new-tenant-modal](new-tenant-modal.png) + +In addition, we've added an "**Apply database migrations**" action to the tenant management UI to manually trigger the database creation & migration in case of you have a problem with automatic migration: + +![tenant-db-migrate](tenant-db-migrate.png) + +Automatic migration only tries one time. If it fails, it writes the exception log and discards this request. For example, this can be happen if the connection string is wrong or the database server is not available. In this case, you can manually retry with this action. + +> Note that this feature requires to **make changes in your solution**, if you are upgrading from an old version. Because, the tenant database creation and migration code is located in the application startup template. See the [version 4.3 migration guide](https://docs.abp.io/en/commercial/4.3/migration-guides/v4_3) for details. + +### New Module: CMS Kit + +CMS Kit module initial version has been released with this version. As stated in the ABP Framework 4.3 announcement post (TODO: link), it should be considered as pre-mature for now. + +For ABP Commercial application startup template, we are providing an option to include the CMS Kit into the solution while creating new solutions: + +![cms-kit-selection](cms-kit-selection.png) + +It is available only if you select the *Public web site* option. Once you include CMS Kit, a *Cms* item is shown on the menu menu: + +![cms-kit-menu](cms-kit-menu.png) + +Each CMS Kit feature can be individually enabled/disabled, using the global feature system. Once you disable a feature, it becomes completely invisible, even the related tables are not included in your database. + +CMS Kit features are separated into two categories: Open source (free) features and pro (commercial) features. For now, only newsletter and contact form features are commercial. By the time, we will add more free and commercial features. + +> We will create a separate blog post for the CMS Kit module, so I keep it short here. + +### New Module: Forms *Forms* is a new module that is being introduced with this version. It looks like the Google Forms application; You dynamically create forms on the UI and send it to people to answer. Then you can get statistics/report and export answers to a CSV file. @@ -81,15 +113,27 @@ However, we got many feedbacks from Team License customers that they need to sou With this version, we decided to allow Team License holders to download the source code of the **Account Module** and the **Lepton Theme**, so they can freely customize them based on their requirements. +You can **Replace these modules with their source code** using the ABP Suite: + +![account-lepton-source](account-lepton-source.png) + Remember that; when you include the source code in your own solution, it is your responsibility if you want to upgrade them when we release new versions (while you don't have to upgrade them). ### Lepton Theme Public Website Layout We'd added a public website application in the application starter template in previous versions. It was using the public website layout of the Lepton Theme. We realized that the layout of this application is customized or completely changed in most of the solutions. So, with this version, the layout is included inside the application in the downloaded solution. You can freely change it. Before, you had to download it separately and include into your solution manually. +### Enable/Disable Modules + +With this release, all modules can be enabled/disabled per edition/tenant. You can allow/disallow modules when you click *Features* action for an edition or tenant: + +![enable-disable-features](enable-disable-features.png) + ### Other Features/Changes * ABP Suite now supports to define *required* navigation properties on code generation. +* **Blazor server-side** (with tiered option) is added for the application and microservice starter templates. +* An **"Email"** tab has been added to the Settings page to configure the email settings. ## Feedback diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/account-lepton-source.png b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/account-lepton-source.png new file mode 100644 index 0000000000000000000000000000000000000000..befdc83eb4731be94de31947493c29f9e1a35d8f GIT binary patch literal 126115 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 R7+q;qNe=jem9%;I{{zM21Hb?P literal 0 HcmV?d00001 diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/cms-kit-menu.png b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/cms-kit-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..e8120946f401453b524cb43c0632ea17bbb9654d GIT binary patch literal 27555 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 KUMc#`@BaWO*m~Ij literal 0 HcmV?d00001 diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/cms-kit-selection.png b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/cms-kit-selection.png new file mode 100644 index 0000000000000000000000000000000000000000..47552a3e2543940cf7099da8e06649fd344f8ecb GIT binary patch literal 8448 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 literal 0 HcmV?d00001 diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/enable-disable-features.png b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/enable-disable-features.png new file mode 100644 index 0000000000000000000000000000000000000000..9718c806f71dbc85c3fd2b65654113742600b372 GIT binary patch literal 28491 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 MGX?QN#LIX81EIvr%m4rY literal 0 HcmV?d00001 diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/tenant-db-migrate.png b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/tenant-db-migrate.png new file mode 100644 index 0000000000000000000000000000000000000000..59efac5add86ca74a0c18ce3ee4cc0b431989067 GIT binary patch literal 16802 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 G;C}#v6VurM literal 0 HcmV?d00001 From d1cbfe1a4648a2b645ff46e2e15d7732c9980656 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 30 Mar 2021 15:36:22 +0300 Subject: [PATCH 52/72] Email Setting Management UI section to the blog post --- .../Blog-Posts/2021-03-31 v4_3 Preview/POST.md | 8 ++++++-- .../email-settings-page.png | Bin 0 -> 24455 bytes 2 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 docs/en/Blog-Posts/2021-03-31 v4_3 Preview/email-settings-page.png diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md b/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md index 4379563937..b2cd267622 100644 --- a/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md +++ b/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md @@ -13,7 +13,7 @@ We are super excited to announce the ABP Framework 4.3 RC (Release Candidate). H Beside the new features above, we've done many performance improvements, enhancements and bug fixes on the current features. See the [4.3 milestone](https://github.com/abpframework/abp/milestone/49) on GitHub for all changes made on this version. -This version was a big development journey for us; [150+ issues](https://github.com/abpframework/abp/issues?q=is%3Aopen+is%3Aissue+milestone%3A4.3-preview) resolved, [260+ PRs](https://github.com/abpframework/abp/pulls?q=is%3Aopen+is%3Apr+milestone%3A4.3-preview) merged and 1,600+ commits done only in the [main framework repository](https://github.com/abpframework/abp). **Thanks to the ABP Framework team and all the contributors.** +This version was a big development journey for us; [~160 issues](https://github.com/abpframework/abp/issues?q=is%3Aopen+is%3Aissue+milestone%3A4.3-preview) resolved, [~300 PRs](https://github.com/abpframework/abp/pulls?q=is%3Aopen+is%3Apr+milestone%3A4.3-preview) merged and **~1,700 commits** done only in the [main framework repository](https://github.com/abpframework/abp). **Thanks to the ABP Framework team and all the contributors.** > ABP Commercial 4.3 RC has also been published. We will write a separate blog post for it. @@ -96,7 +96,11 @@ For anyone wondering what is the module entity extensions, please check [the doc ### Email Setting Management UI -TODO +With this release, a new item is added to the main menu to navigate to the setting management page. This page contains the email setting management UI, as shown below: + +![email-settings-page](email-settings-page.png) + +The setting page is provided by the [setting management module](https://docs.abp.io/en/abp/4.3/Modules/Setting-Management) and it is extensible; You can add your own tabs to this page for your application settings. ### Angular UI Resource Owner Password Flow diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/email-settings-page.png b/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/email-settings-page.png new file mode 100644 index 0000000000000000000000000000000000000000..d2eda14b2a1d1c0c6338bd1b50c47d3ae17185a0 GIT binary patch literal 24455 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 z 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 literal 0 HcmV?d00001 From f1f3aa7f7f8d962afb2707f037a1a7902e4b7662 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 30 Mar 2021 15:42:25 +0300 Subject: [PATCH 53/72] Fix typo. --- .../Abp/MultiLingualObject/MultiLingualObjectManager.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/MultiLingualObjectManager.cs b/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/MultiLingualObjectManager.cs index dc6a82a28d..db2b373d70 100644 --- a/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/MultiLingualObjectManager.cs +++ b/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/MultiLingualObjectManager.cs @@ -55,7 +55,7 @@ namespace Volo.Abp.MultiLingualObject if (fallbackToParentCultures) { translation = - GeTranslationBasedOnCulturalRecursive( + GetTranslationBasedOnCulturalRecursive( CultureInfo.CurrentUICulture.Parent, multiLingual.Translations, 0); if (translation != null) { @@ -75,7 +75,7 @@ namespace Volo.Abp.MultiLingualObject return translation; } - protected virtual TTranslation GeTranslationBasedOnCulturalRecursive( + protected virtual TTranslation GetTranslationBasedOnCulturalRecursive( CultureInfo culture, ICollection translations, int currentDepth) where TTranslation : class, IMultiLingualTranslation { @@ -88,7 +88,7 @@ namespace Volo.Abp.MultiLingualObject var translation = translations.FirstOrDefault(pt => pt.Language.Equals(culture.Name, StringComparison.OrdinalIgnoreCase)); return translation ?? - GeTranslationBasedOnCulturalRecursive(culture.Parent, + GetTranslationBasedOnCulturalRecursive(culture.Parent, translations, currentDepth + 1); } } From ad4a4fabb703ac45229372ad71d1e89c602a60d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 30 Mar 2021 15:42:32 +0300 Subject: [PATCH 54/72] Update POST.md --- docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md b/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md index b2cd267622..7d7c71e28e 100644 --- a/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md +++ b/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md @@ -146,7 +146,11 @@ As you see, Blazor UI developers should add two packages. The Basic Theme consis **Angular UI** -TODO +Execute the following command in a terminal inside the `angular` folder of your solution: + +````bash +abp add-package @abp/ng.theme.basic --with-source-code +```` ### IInitLogger From 1cdd5485f47596f9ce4c955fe6b090aca35fa345 Mon Sep 17 00:00:00 2001 From: Alper Ebicoglu Date: Tue, 30 Mar 2021 16:04:36 +0300 Subject: [PATCH 55/72] Revised grammar --- .../POST.md | 54 +++++++++---------- 1 file changed, 26 insertions(+), 28 deletions(-) diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/POST.md b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/POST.md index f36951541f..50aab3559b 100644 --- a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/POST.md +++ b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/POST.md @@ -2,13 +2,13 @@ ABP Commercial version 4.3 RC (Release Candidate) has been published alongside ABP Framework 4.3. RC (TODO: link). I will introduce the new features in this blog post. Here, a list of highlights for this release; -* The **microservice starter template** is getting more mature. We've also added a **service template** to easily add new microservices to the solution. +* The **microservice starter template** is getting more mature. We've also added a **service template** to add new microservices to the solution. * New option for the application starter template to have a **separate database schema for tenant databases**. * New **Forms** module to create surveys * **Enable/disable modules** per edition/tenant. -* **Lepton theme** and **Account module**'s source codes are available with the Team License too. +* **Lepton theme** and **Account module**'s source codes are available with the Team License. -Here, some other features already covered in the ABP Framework announcement, but worth to mention here since they are also implemented for the ABP Commercial; +Here, some other features already covered in the ABP Framework announcement, but worth mentioning here since they are also implemented for the ABP Commercial; * **Blazor UI server-side** support @@ -19,29 +19,29 @@ Here, some other features already covered in the ABP Framework announcement, but ## The Migration Guide -**This upgrade requires some manual work documented in [the migration guide](https://docs.abp.io/en/commercial/4.3/migration-guides/v4_3).** Please read the guide carefully. Even if your application doesn't break on upgrade, you should apply the changes to not have problems with the future releases. +**This upgrade requires some manual work documented in [the migration guide](https://docs.abp.io/en/commercial/4.3/migration-guides/v4_3).** Please read the guide carefully. Even if your application doesn't break on upgrade, you should apply the changes to avoid future release problems. ## What's New With The ABP Commercial 4.3 ### The Microservice Starter Template -We'd introduced an initial version of the [microservice starter template](https://docs.abp.io/en/commercial/4.3/startup-templates/microservice/index) in the [previous version](https://blog.abp.io/abp/ABP-IO-Platform-v4-2-RC-Has-Been-Released). It is getting more mature with this release. We've done a lot of improvements and changes including; +We'd introduced an initial version of the [microservice starter template](https://docs.abp.io/en/commercial/4.3/startup-templates/microservice/index) in the [previous version](https://blog.abp.io/abp/ABP-IO-Platform-v4-2-RC-Has-Been-Released). It is getting more mature with this release. We've made a lot of improvements and changes, including; -* New **"service" template** to add new microservices for the solution. Still requires some manual work to integrate to other services and gateways, however it makes the progress very easy and straightforward. +* New **"service" template** to add new microservices for the solution. It still requires some manual work to integrate to other services and gateways; however, it makes progress very easy and straightforward. * Added [Tye](https://github.com/dotnet/tye) configuration to develop and test the solution easier. * Added [Prometheus](https://prometheus.io/), [Grafana](https://grafana.com/) integrations for monitoring the solution. -* **Automatic database migrations**. Every microservice automatically checks and migrates/seeds its own database on startup (concurrency issues are resolved for multiple instance case). For multi-tenant systems, tenant databases are also upgraded by queue. -* For multi-tenant systems, **databases are created on the fly** for new tenants those have separate connection strings. -* Created **separate solution (`.sln`) file** for each microservice, gateway and application. In this way, you can focus on what you are working on. The main (roof) solution file only includes the executable projects in these solutions. -* All microservices are converted to the standard **layered module structure** which makes easier to align with ABP application development practices. +* **Automatic database migrations**. Every microservice automatically checks and migrates/seeds its database on startup (concurrency issues are resolved for multiple instances). For multi-tenant systems, tenant databases are also upgraded by the queue. +* For multi-tenant systems, **databases are being created on the fly** for new tenants with separate connection strings. +* Created **separate solution (`.sln`) file** for each microservice, gateway, and application. In this way, you can focus on what you are working on. The main (roof) solution file only includes the executable projects in these solutions. +* All microservices are converted to the standard **layered module structure**, making it easier to align with ABP application development practices. After this release, **we will be preparing microservice development guides** based on this startup solution. ### Separate Tenant Schema -ABP's multi-tenancy system allows to create dedicated databases for tenants. However, the application startup solution comes with a single database migration path, hence it has a single database schema. As a result, tenant databases have some host-related tables. These tables are not used for tenants, they are always empty. However, their existence may disturb us as a clean developer. +ABP's multi-tenancy system allows to the creation of dedicated databases for tenants. However, the application startup solution comes with a single database migration path; hence it has a single database schema. As a result, tenant databases have some host-related tables. These tables are not used for tenants, and they are always empty. However, their existence may disturb us as a clean developer. -With this release, the application startup template provides an option to address this problem. So, if you want, you can have a separate migration path for tenant databases. Of course, this has a cost; You will have two DbContexts for migration purposes, which brings additional complexity to your solution. We've done our best to reduce this complexity and also added a README file into the migration assembly. If you prefer this approach, please check that README file. +With this release, the application startup template provides an option to address this problem. So, if you want, you can have a separate migration path for tenant databases. Of course, this has a cost; You will have two DbContexts for migration purposes, bringing additional complexity to your solution. We've done our best to reduce this complexity and added a README file into the migration assembly. If you prefer this approach, please check that README file. You can specify the new `--separate-tenant-schema` parameter while you are creating a new solution using the [ABP CLI](https://docs.abp.io/en/abp/4.3/CLI): @@ -55,39 +55,39 @@ If you prefer the [ABP Suite](https://docs.abp.io/en/commercial/latest/abp-suite ### Creating Tenant Databases On The Fly -With this release, separate tenant database feature becomes more mature. When you create a new tenant with specifying a connection string, the **new database is automatically created** with all the tables and the initial seed data if available. So, tenants can immediately start to use the new database. With this change, tenant connection string textboxes comes in the tenant creation modal: +With this release, the separate tenant database feature becomes more mature. When you create a new tenant with specifying a connection string, the **new database is automatically created** with all the tables and the initial seed data if available. So, tenants can immediately start to use the new database. With this change, tenant connection string textboxes come in the tenant creation modal: ![new-tenant-modal](new-tenant-modal.png) -In addition, we've added an "**Apply database migrations**" action to the tenant management UI to manually trigger the database creation & migration in case of you have a problem with automatic migration: +Besides, we've added an "**Apply database migrations**" action to the tenant management UI to manually trigger the database creation & migration in case you have a problem with automatic migration: ![tenant-db-migrate](tenant-db-migrate.png) -Automatic migration only tries one time. If it fails, it writes the exception log and discards this request. For example, this can be happen if the connection string is wrong or the database server is not available. In this case, you can manually retry with this action. +Automatic migration only tries one time. If it fails, it writes the exception log and discards this request. For example, this can happen if the connection string is wrong or the database server is not available. In this case, you can manually retry with this action. -> Note that this feature requires to **make changes in your solution**, if you are upgrading from an old version. Because, the tenant database creation and migration code is located in the application startup template. See the [version 4.3 migration guide](https://docs.abp.io/en/commercial/4.3/migration-guides/v4_3) for details. +> Note that this feature requires to **make changes in your solution**, if you upgrade from an older version. Because the tenant database creation and migration code are located in the application startup template. See the [version 4.3 migration guide](https://docs.abp.io/en/commercial/4.3/migration-guides/v4_3) for details. ### New Module: CMS Kit -CMS Kit module initial version has been released with this version. As stated in the ABP Framework 4.3 announcement post (TODO: link), it should be considered as pre-mature for now. +CMS Kit module initial version has been released with this version. As stated in the ABP Framework 4.3 announcement post (TODO: link), it should be considered premature for now. For ABP Commercial application startup template, we are providing an option to include the CMS Kit into the solution while creating new solutions: ![cms-kit-selection](cms-kit-selection.png) -It is available only if you select the *Public web site* option. Once you include CMS Kit, a *Cms* item is shown on the menu menu: +It is available only if you select the *Public web site* option. Once you include CMS Kit, a *Cms* item is shown on the menu: ![cms-kit-menu](cms-kit-menu.png) -Each CMS Kit feature can be individually enabled/disabled, using the global feature system. Once you disable a feature, it becomes completely invisible, even the related tables are not included in your database. +Each CMS Kit feature can be individually enabled/disabled, using the global feature system. Once you disable a feature, it becomes completely invisible; even the related tables are not included in your database. CMS Kit features are separated into two categories: Open source (free) features and pro (commercial) features. For now, only newsletter and contact form features are commercial. By the time, we will add more free and commercial features. -> We will create a separate blog post for the CMS Kit module, so I keep it short here. +> We will create a separate blog post for the CMS Kit module, so I keep it short. ### New Module: Forms -*Forms* is a new module that is being introduced with this version. It looks like the Google Forms application; You dynamically create forms on the UI and send it to people to answer. Then you can get statistics/report and export answers to a CSV file. +*Forms* is a new module that is being introduced with this version. It looks like the Google Forms application; You dynamically create forms on the UI and send them to people to answer. Then you can get statistics/report and export answers to a CSV file. Forms module currently supports the following question types; @@ -107,21 +107,19 @@ Forms module currently supports the following question types; ### Team License Source Code for Modules -Team License users can't access the source code of modules and themes as a license restriction. You have to buy Business or Enterprise license to be able to download full source code of any module/theme. +Team License users can't access the source code of modules and themes as a license restriction. You have to buy a Business or Enterprise license to download any module/theme's full source code. However, we got a lot of feedback from the Team License owners on the source code of the account module and the lepton theme. We see that customization of these two modules is highly necessary for most of our customers. -However, we got many feedbacks from Team License customers that they need to source code of the account module and the lepton theme. We see that customization of these two modules is highly necessary for most of our customers. - -With this version, we decided to allow Team License holders to download the source code of the **Account Module** and the **Lepton Theme**, so they can freely customize them based on their requirements. +With this version, we decided to allow Team License holders to download the source code of the **Account Module** and the **Lepton Theme** to freely customize them based on their requirements. You can **Replace these modules with their source code** using the ABP Suite: ![account-lepton-source](account-lepton-source.png) -Remember that; when you include the source code in your own solution, it is your responsibility if you want to upgrade them when we release new versions (while you don't have to upgrade them). +Remember that; when you include the source code in your solution, it is your responsibility to upgrade them when we release new versions (while you don't have to upgrade them). ### Lepton Theme Public Website Layout -We'd added a public website application in the application starter template in previous versions. It was using the public website layout of the Lepton Theme. We realized that the layout of this application is customized or completely changed in most of the solutions. So, with this version, the layout is included inside the application in the downloaded solution. You can freely change it. Before, you had to download it separately and include into your solution manually. +We'd added a public website application in the application starter template in the previous versions. It was using the public website layout of the Lepton Theme. We realized that the layout of this application is customized or completely changed in most of the solutions. So, with this version, the layout is included inside the application in the downloaded solution. You can freely change it. Before, you had to download it separately and include it in your solution manually. ### Enable/Disable Modules @@ -131,7 +129,7 @@ With this release, all modules can be enabled/disabled per edition/tenant. You c ### Other Features/Changes -* ABP Suite now supports to define *required* navigation properties on code generation. +* ABP Suite now supports defining *required* navigation properties on code generation. * **Blazor server-side** (with tiered option) is added for the application and microservice starter templates. * An **"Email"** tab has been added to the Settings page to configure the email settings. From 916929c90325ce14beaf72fac55f0fa19399df78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 30 Mar 2021 16:09:23 +0300 Subject: [PATCH 56/72] Refactor MultiLingualObjectManager --- .../IMultiLingualObjectManager.cs | 8 ++--- .../MultiLingualObjectManager.cs | 32 ++++++++++--------- 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/IMultiLingualObjectManager.cs b/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/IMultiLingualObjectManager.cs index e6ddc840e5..48128648a0 100644 --- a/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/IMultiLingualObjectManager.cs +++ b/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/IMultiLingualObjectManager.cs @@ -6,15 +6,15 @@ namespace Volo.Abp.MultiLingualObject { TTranslation GetTranslation( TMultiLingual multiLingual, - bool fallbackToParentCultures = true, - string culture = null) + string culture = null, + bool fallbackToParentCultures = true) where TMultiLingual : IHasMultiLingual where TTranslation : class, IMultiLingualTranslation; Task GetTranslationAsync( TMultiLingual multiLingual, - bool fallbackToParentCultures = true, - string culture = null) + string culture = null, + bool fallbackToParentCultures = true) where TMultiLingual : IHasMultiLingual where TTranslation : class, IMultiLingualTranslation; } diff --git a/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/MultiLingualObjectManager.cs b/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/MultiLingualObjectManager.cs index db2b373d70..ed41778fd5 100644 --- a/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/MultiLingualObjectManager.cs +++ b/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/MultiLingualObjectManager.cs @@ -23,25 +23,25 @@ namespace Volo.Abp.MultiLingualObject public TTranslation GetTranslation( TMultiLingual multiLingual, - bool fallbackToParentCultures = true, - string culture = null) + string culture = null, + bool fallbackToParentCultures = true) where TMultiLingual : IHasMultiLingual where TTranslation : class, IMultiLingualTranslation { return AsyncHelper.RunSync(() => - GetTranslationAsync(multiLingual, fallbackToParentCultures, culture)); + GetTranslationAsync(multiLingual, culture, fallbackToParentCultures)); } public virtual async Task GetTranslationAsync( TMultiLingual multiLingual, - bool fallbackToParentCultures = true, - string culture = null) + string culture = null, + bool fallbackToParentCultures = true) where TMultiLingual : IHasMultiLingual where TTranslation : class, IMultiLingualTranslation { culture ??= CultureInfo.CurrentUICulture.Name; - if (multiLingual.Translations == null || !multiLingual.Translations.Any()) + if (multiLingual.Translations.IsNullOrEmpty()) { return null; } @@ -54,9 +54,12 @@ namespace Volo.Abp.MultiLingualObject if (fallbackToParentCultures) { - translation = - GetTranslationBasedOnCulturalRecursive( - CultureInfo.CurrentUICulture.Parent, multiLingual.Translations, 0); + translation = GetTranslationBasedOnCulturalRecursive( + CultureInfo.CurrentUICulture.Parent, + multiLingual.Translations, + 0 + ); + if (translation != null) { return translation; @@ -79,17 +82,16 @@ namespace Volo.Abp.MultiLingualObject CultureInfo culture, ICollection translations, int currentDepth) where TTranslation : class, IMultiLingualTranslation { - if (culture == null || culture.Name.IsNullOrWhiteSpace() || translations.IsNullOrEmpty() || + if (culture == null || + culture.Name.IsNullOrWhiteSpace() || + translations.IsNullOrEmpty() || currentDepth > MaxCultureFallbackDepth) { return null; } - var translation = translations.FirstOrDefault(pt => - pt.Language.Equals(culture.Name, StringComparison.OrdinalIgnoreCase)); - return translation ?? - GetTranslationBasedOnCulturalRecursive(culture.Parent, - translations, currentDepth + 1); + var translation = translations.FirstOrDefault(pt => pt.Language.Equals(culture.Name, StringComparison.OrdinalIgnoreCase)); + return translation ?? GetTranslationBasedOnCulturalRecursive(culture.Parent, translations, currentDepth + 1); } } } From 12fa0d810f383c7cf364f14b1f5948a7c390be2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 30 Mar 2021 16:18:17 +0300 Subject: [PATCH 57/72] Remove sync usage of IMultiLingualObjectManager --- .../IMultiLingualObjectManager.cs | 7 - .../MultiLingualObjectManager.cs | 11 -- .../MultiLingualObjectManager_Tests.cs | 11 -- .../MultiLingualObject_Tests.cs | 132 ------------------ 4 files changed, 161 deletions(-) delete mode 100644 framework/test/Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject/MultiLingualObject_Tests.cs diff --git a/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/IMultiLingualObjectManager.cs b/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/IMultiLingualObjectManager.cs index 48128648a0..7cd860f9ef 100644 --- a/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/IMultiLingualObjectManager.cs +++ b/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/IMultiLingualObjectManager.cs @@ -4,13 +4,6 @@ namespace Volo.Abp.MultiLingualObject { public interface IMultiLingualObjectManager { - TTranslation GetTranslation( - TMultiLingual multiLingual, - string culture = null, - bool fallbackToParentCultures = true) - where TMultiLingual : IHasMultiLingual - where TTranslation : class, IMultiLingualTranslation; - Task GetTranslationAsync( TMultiLingual multiLingual, string culture = null, diff --git a/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/MultiLingualObjectManager.cs b/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/MultiLingualObjectManager.cs index ed41778fd5..f8e653120a 100644 --- a/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/MultiLingualObjectManager.cs +++ b/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/MultiLingualObjectManager.cs @@ -21,17 +21,6 @@ namespace Volo.Abp.MultiLingualObject SettingProvider = settingProvider; } - public TTranslation GetTranslation( - TMultiLingual multiLingual, - string culture = null, - bool fallbackToParentCultures = true) - where TMultiLingual : IHasMultiLingual - where TTranslation : class, IMultiLingualTranslation - { - return AsyncHelper.RunSync(() => - GetTranslationAsync(multiLingual, culture, fallbackToParentCultures)); - } - public virtual async Task GetTranslationAsync( TMultiLingual multiLingual, string culture = null, diff --git a/framework/test/Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject/MultiLingualObjectManager_Tests.cs b/framework/test/Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject/MultiLingualObjectManager_Tests.cs index 269bf91b54..d23d3153b1 100644 --- a/framework/test/Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject/MultiLingualObjectManager_Tests.cs +++ b/framework/test/Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject/MultiLingualObjectManager_Tests.cs @@ -40,17 +40,6 @@ namespace Volo.Abp.MultiLingualObject _book.Translations.Add(zh); } - [Fact] - public void GetTranslation() - { - using (CultureHelper.Use("en-us")) - { - var translation = _multiLingualObjectManager.GetTranslation(_book); - - translation.Name.ShouldBe("C# in Depth"); - } - } - [Fact] public async Task GetTranslationAsync() { diff --git a/framework/test/Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject/MultiLingualObject_Tests.cs b/framework/test/Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject/MultiLingualObject_Tests.cs deleted file mode 100644 index 917a11a2a8..0000000000 --- a/framework/test/Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject/MultiLingualObject_Tests.cs +++ /dev/null @@ -1,132 +0,0 @@ -using System; -using System.Collections.Generic; -using Microsoft.Extensions.DependencyInjection; -using Shouldly; -using Volo.Abp.DependencyInjection; -using Volo.Abp.Localization; -using Volo.Abp.MultiLingualObject.TestObjects; -using Volo.Abp.ObjectMapping; -using Volo.Abp.Testing; -using Xunit; - -namespace Volo.Abp.MultiLingualObject -{ - public class MultiLingualObject_Tests : AbpIntegratedTest - { - private readonly IObjectMapper _objectMapper; - private readonly MultiLingualBook _book; - - public MultiLingualObject_Tests() - { - _objectMapper = ServiceProvider.GetRequiredService(); - - var id = Guid.NewGuid(); - _book = new MultiLingualBook(id, 100) - { - Translations = new List() - }; - - var en = new MultiLingualBookTranslation - { - Language = "en", - Name = "C# in Depth", - }; - var zh = new MultiLingualBookTranslation - { - Language = "zh-Hans", - Name = "深入理解C#", - }; - - _book.Translations.Add(en); - _book.Translations.Add(zh); - } - - protected override void SetAbpApplicationCreationOptions(AbpApplicationCreationOptions options) - { - options.UseAutofac(); - } - - [Fact] - public void Should_Map_Current_UI_Culture() - { - using (CultureHelper.Use("zh-Hans")) - { - var bookDto = _objectMapper.Map(_book); - - bookDto.Name.ShouldBe("深入理解C#"); - bookDto.Price.ShouldBe(_book.Price); - bookDto.Id.ShouldBe(_book.Id); - } - } - - [Fact] - public void Should_Map_Fallback_UI_Culture() - { - using (CultureHelper.Use("en-us")) - { - var bookDto = _objectMapper.Map(_book); - - bookDto.Name.ShouldBe("C# in Depth"); - bookDto.Price.ShouldBe(_book.Price); - bookDto.Id.ShouldBe(_book.Id); - } - } - - [Fact] - public void Should_Map_Default_Language() - { - using (CultureHelper.Use("tr")) - { - var bookDto = _objectMapper.Map(_book); - - bookDto.Name.ShouldBe("C# in Depth"); - bookDto.Price.ShouldBe(_book.Price); - bookDto.Id.ShouldBe(_book.Id); - } - } - - [Fact] - public void NoTranslations_ShouldStillMapObject() - { - _book.Translations.Clear(); - - using (CultureHelper.Use("tr")) - { - var bookDto = _objectMapper.Map(_book); - - bookDto.Name.ShouldBeNull(); - bookDto.Price.ShouldBe(_book.Price); - bookDto.Id.ShouldBe(_book.Id); - } - } - } - - public class MultiLingualBookObjectMapper : IObjectMapper, - ITransientDependency - { - private readonly IMultiLingualObjectManager _multiLingualObjectManager; - - public MultiLingualBookObjectMapper(IMultiLingualObjectManager multiLingualObjectManager) - { - _multiLingualObjectManager = multiLingualObjectManager; - } - - public MultiLingualBookDto Map(MultiLingualBook source) - { - var translation = - _multiLingualObjectManager.GetTranslation(source); - - return new MultiLingualBookDto - { - Price = source.Price, - Id = source.Id, - Name = translation?.Name - }; - } - - public MultiLingualBookDto Map(MultiLingualBook source, MultiLingualBookDto destination) - { - return default; - } - } -} From 310bdbe2441a9526901688614704f7530253d53a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 30 Mar 2021 16:23:41 +0300 Subject: [PATCH 58/72] Fixed module dependency. --- .../Volo/Abp/AutoMapper/AbpAutoMapperModule.cs | 4 +++- .../Volo/Abp/AutoMapper/AutoMapperTestModule.cs | 3 +-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs b/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs index 3969a04a1a..2e53215689 100644 --- a/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs +++ b/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs @@ -4,6 +4,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using Volo.Abp.Auditing; using Volo.Abp.Modularity; +using Volo.Abp.MultiLingualObject; using Volo.Abp.ObjectExtending; using Volo.Abp.ObjectMapping; @@ -12,7 +13,8 @@ namespace Volo.Abp.AutoMapper [DependsOn( typeof(AbpObjectMappingModule), typeof(AbpObjectExtendingModule), - typeof(AbpAuditingModule) + typeof(AbpAuditingModule), + typeof(AbpMultiLingualObjectModule) )] public class AbpAutoMapperModule : AbpModule { diff --git a/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapperTestModule.cs b/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapperTestModule.cs index 6e9fb10bf2..605319ccff 100644 --- a/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapperTestModule.cs +++ b/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapperTestModule.cs @@ -6,8 +6,7 @@ namespace Volo.Abp.AutoMapper { [DependsOn( typeof(AbpAutoMapperModule), - typeof(AbpObjectExtendingTestModule), - typeof(AbpMultiLingualObjectModule) + typeof(AbpObjectExtendingTestModule) )] public class AutoMapperTestModule : AbpModule { From 81bda24a700484dfb530ec99e04f17ab3016436e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 30 Mar 2021 16:28:27 +0300 Subject: [PATCH 59/72] Remove usage of multilingual entities. --- .../AbpAutoMapperMultiLingualDtoExtensions.cs | 54 --------- .../Volo.Abp.AutoMapper.csproj | 1 - .../Abp/AutoMapper/AbpAutoMapperModule.cs | 6 +- .../Volo.Abp.Ddd.Domain.csproj | 1 - .../Volo/Abp/Domain/AbpDddDomainModule.cs | 2 - .../AbpAutoMapperMultiLingualDto_Tests.cs | 114 ------------------ 6 files changed, 1 insertion(+), 177 deletions(-) delete mode 100644 framework/src/Volo.Abp.AutoMapper/AutoMapper/AbpAutoMapperMultiLingualDtoExtensions.cs delete mode 100644 framework/test/Volo.Abp.AutoMapper.Tests/AutoMapper/AbpAutoMapperMultiLingualDto_Tests.cs diff --git a/framework/src/Volo.Abp.AutoMapper/AutoMapper/AbpAutoMapperMultiLingualDtoExtensions.cs b/framework/src/Volo.Abp.AutoMapper/AutoMapper/AbpAutoMapperMultiLingualDtoExtensions.cs deleted file mode 100644 index 83cb2b35b9..0000000000 --- a/framework/src/Volo.Abp.AutoMapper/AutoMapper/AbpAutoMapperMultiLingualDtoExtensions.cs +++ /dev/null @@ -1,54 +0,0 @@ -using Volo.Abp.MultiLingualObject; -using Volo.Abp.Threading; - -namespace AutoMapper -{ - public static class AbpAutoMapperMultiLingualDtoExtensions - { - public static CreateMultiLingualMapResult CreateMultiLingualMap(this Profile profile) - where TTranslation : class, IMultiLingualTranslation - where TSource : IHasMultiLingual - { - - return new( - profile.CreateMap().BeforeMap>(), - profile.CreateMap()); - } - } - - public class AbpMultiLingualMapperAction : IMappingAction - where TTranslation : class, IMultiLingualTranslation - where TSource : IHasMultiLingual - { - private readonly IMultiLingualObjectManager _multiLingualObjectManager; - - public AbpMultiLingualMapperAction(IMultiLingualObjectManager multiLingualObjectManager) - { - _multiLingualObjectManager = multiLingualObjectManager; - } - - public void Process(TSource source, TDestination destination, ResolutionContext context) - { - var translation = AsyncHelper.RunSync(() => _multiLingualObjectManager.GetTranslationAsync(source)); - if (translation != null) - { - context.Mapper.Map(translation, destination); - } - } - } - - public class CreateMultiLingualMapResult - { - public IMappingExpression EntityMap { get; } - - public IMappingExpression TranslateMap { get; } - - public CreateMultiLingualMapResult( - IMappingExpression entityMap, - IMappingExpression translateMap) - { - EntityMap = entityMap; - TranslateMap = translateMap; - } - } -} diff --git a/framework/src/Volo.Abp.AutoMapper/Volo.Abp.AutoMapper.csproj b/framework/src/Volo.Abp.AutoMapper/Volo.Abp.AutoMapper.csproj index 4a5f44f937..9f028d31ee 100644 --- a/framework/src/Volo.Abp.AutoMapper/Volo.Abp.AutoMapper.csproj +++ b/framework/src/Volo.Abp.AutoMapper/Volo.Abp.AutoMapper.csproj @@ -16,7 +16,6 @@ - diff --git a/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs b/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs index 2e53215689..cb576ba1de 100644 --- a/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs +++ b/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs @@ -4,7 +4,6 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using Volo.Abp.Auditing; using Volo.Abp.Modularity; -using Volo.Abp.MultiLingualObject; using Volo.Abp.ObjectExtending; using Volo.Abp.ObjectMapping; @@ -13,8 +12,7 @@ namespace Volo.Abp.AutoMapper [DependsOn( typeof(AbpObjectMappingModule), typeof(AbpObjectExtendingModule), - typeof(AbpAuditingModule), - typeof(AbpMultiLingualObjectModule) + typeof(AbpAuditingModule) )] public class AbpAutoMapperModule : AbpModule { @@ -29,8 +27,6 @@ namespace Volo.Abp.AutoMapper context.Services.AddSingleton(CreateMappings); context.Services.AddSingleton(provider => provider.GetRequiredService()); - - context.Services.AddTransient(typeof(AbpMultiLingualMapperAction<,,>)); } private MapperAccessor CreateMappings(IServiceProvider serviceProvider) diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo.Abp.Ddd.Domain.csproj b/framework/src/Volo.Abp.Ddd.Domain/Volo.Abp.Ddd.Domain.csproj index e676f24313..87879334af 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo.Abp.Ddd.Domain.csproj +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo.Abp.Ddd.Domain.csproj @@ -20,7 +20,6 @@ - diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/AbpDddDomainModule.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/AbpDddDomainModule.cs index 0ebbe859bd..523a6ee4f2 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/AbpDddDomainModule.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/AbpDddDomainModule.cs @@ -6,7 +6,6 @@ using Volo.Abp.EventBus; using Volo.Abp.ExceptionHandling; using Volo.Abp.Guids; using Volo.Abp.Modularity; -using Volo.Abp.MultiLingualObject; using Volo.Abp.MultiTenancy; using Volo.Abp.ObjectMapping; using Volo.Abp.Specifications; @@ -26,7 +25,6 @@ namespace Volo.Abp.Domain typeof(AbpTimingModule), typeof(AbpUnitOfWorkModule), typeof(AbpObjectMappingModule), - typeof(AbpMultiLingualObjectModule), typeof(AbpExceptionHandlingModule), typeof(AbpSpecificationsModule) )] diff --git a/framework/test/Volo.Abp.AutoMapper.Tests/AutoMapper/AbpAutoMapperMultiLingualDto_Tests.cs b/framework/test/Volo.Abp.AutoMapper.Tests/AutoMapper/AbpAutoMapperMultiLingualDto_Tests.cs deleted file mode 100644 index 0efb72625b..0000000000 --- a/framework/test/Volo.Abp.AutoMapper.Tests/AutoMapper/AbpAutoMapperMultiLingualDto_Tests.cs +++ /dev/null @@ -1,114 +0,0 @@ -using System; -using System.Collections.Generic; -using Microsoft.Extensions.DependencyInjection; -using Shouldly; -using Volo.Abp; -using Volo.Abp.AutoMapper; -using Volo.Abp.Localization; -using Volo.Abp.MultiLingualObject.TestObjects; -using Volo.Abp.Testing; -using Xunit; - -namespace AutoMapper -{ - public class AbpAutoMapperMultiLingualDto_Tests : AbpIntegratedTest - { - private readonly Volo.Abp.ObjectMapping.IObjectMapper _objectMapper; - private readonly MultiLingualBook _book; - - public AbpAutoMapperMultiLingualDto_Tests() - { - _objectMapper = ServiceProvider.GetRequiredService(); - - var id = Guid.NewGuid(); - _book = new MultiLingualBook(id, 100) - { - Translations = new List() - }; - - var en = new MultiLingualBookTranslation - { - Language = "en", - Name = "C# in Depth", - }; - var zh = new MultiLingualBookTranslation - { - Language = "zh-Hans", - Name = "深入理解C#", - }; - - _book.Translations.Add(en); - _book.Translations.Add(zh); - } - - protected override void SetAbpApplicationCreationOptions(AbpApplicationCreationOptions options) - { - options.UseAutofac(); - } - - [Fact] - public void Should_Map_Current_UI_Culture() - { - using (CultureHelper.Use("zh-Hans")) - { - var bookDto = _objectMapper.Map(_book); - - bookDto.Name.ShouldBe("深入理解C#"); - bookDto.Price.ShouldBe(_book.Price); - bookDto.Id.ShouldBe(_book.Id); - } - } - - [Fact] - public void Should_Map_Fallback_UI_Culture() - { - using (CultureHelper.Use("en-us")) - { - var bookDto = _objectMapper.Map(_book); - - bookDto.Name.ShouldBe("C# in Depth"); - bookDto.Price.ShouldBe(_book.Price); - bookDto.Id.ShouldBe(_book.Id); - } - } - - [Fact] - public void Should_Map_Default_Language() - { - using (CultureHelper.Use("tr")) - { - var bookDto = _objectMapper.Map(_book); - - bookDto.Name.ShouldBe("C# in Depth"); - bookDto.Price.ShouldBe(_book.Price); - bookDto.Id.ShouldBe(_book.Id); - } - } - - [Fact] - public void NoTranslations_ShouldStillMapObject() - { - _book.Translations.Clear(); - - using (CultureHelper.Use("tr")) - { - var bookDto = _objectMapper.Map(_book); - - bookDto.Name.ShouldBeNull(); - bookDto.Price.ShouldBe(_book.Price); - bookDto.Id.ShouldBe(_book.Id); - } - } - } - - public class BookProfile : Profile - { - public BookProfile() - { - var mapResult = this.CreateMultiLingualMap(); - - mapResult.EntityMap.ValidateMemberList(MemberList.None); - mapResult.TranslateMap.ValidateMemberList(MemberList.None); - } - } -} From 69976559bf118e96a12254d6224835b31aeabf4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 30 Mar 2021 16:29:58 +0300 Subject: [PATCH 60/72] Update common.ps1 --- nupkg/common.ps1 | 1 - 1 file changed, 1 deletion(-) diff --git a/nupkg/common.ps1 b/nupkg/common.ps1 index cea7664613..9fd545dc35 100644 --- a/nupkg/common.ps1 +++ b/nupkg/common.ps1 @@ -147,7 +147,6 @@ $projects = ( "framework/src/Volo.Abp.Validation", "framework/src/Volo.Abp.VirtualFileSystem", "framework/src/Volo.Abp.Kafka", - "framework/src/Volo.Abp.MultiLingualObject", "framework/src/Volo.Abp.Swashbuckle", # modules/account From 70d5347bd553fe7e6c2918a4da07eea2f7696753 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 30 Mar 2021 16:31:22 +0300 Subject: [PATCH 61/72] Update docs-nav.json --- docs/en/docs-nav.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json index ec3341c623..efca73a484 100644 --- a/docs/en/docs-nav.json +++ b/docs/en/docs-nav.json @@ -376,10 +376,6 @@ "text": "Entities & Aggregate Roots", "path": "Entities.md" }, - { - "text": "Multi-Lingual-Entities", - "path": "Multi-Lingual-Entities.md" - }, { "text": "Value Objects", "path": "Value-Objects.md" From 16d5d71a4a9c86da2b788cec4968f04e5ac7b58a Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Tue, 30 Mar 2021 16:34:35 +0300 Subject: [PATCH 62/72] Update AddPackageCommand.cs --- .../Volo/Abp/Cli/Commands/AddPackageCommand.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddPackageCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddPackageCommand.cs index bebc854208..ba3293013f 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddPackageCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddPackageCommand.cs @@ -91,7 +91,7 @@ namespace Volo.Abp.Cli.Commands sb.AppendLine("Options:"); sb.AppendLine(""); sb.AppendLine(" -p|--project Specify the project file explicitly. (Only available for Nuget packages)"); - sb.AppendLine(" -s|--solution Specify the project file explicitly. (Only available for Nuget packages)"); + sb.AppendLine(" -s|--solution Specify the solution file explicitly. (Only available for Nuget packages)"); sb.AppendLine(" --with-source-code Downloads the source code of the Npm/Nuget package and make other projects depends on it."); sb.AppendLine(" --add-to-solution-file Adds the downloaded project to .sln file, if source code is downloaded. (Only available for Nuget packages)"); sb.AppendLine(" -ad|--angular-directory Specify the Angular project directory explicitly. (Only available for Angular packages)"); From d7d764253a657fbb92cf2507d31a5bdbfc91ac05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 30 Mar 2021 16:36:27 +0300 Subject: [PATCH 63/72] Rename multilanguage objects. --- framework/Volo.Abp.sln | 4 ++-- .../Volo/Abp/MultiLingualObject/IHasMultiLingual.cs | 10 ---------- .../MultiLingualObject/IMultiLingualTranslation.cs | 7 ------- .../FodyWeavers.xml | 0 .../FodyWeavers.xsd | 0 .../Volo.Abp.MultiLingualObjects.csproj} | 1 - .../AbpMultiLingualObjectsModule.cs} | 4 ++-- .../Abp/MultiLingualObjects/IMultiLingualObject.cs | 10 ++++++++++ .../IMultiLingualObjectManager.cs | 6 +++--- .../Abp/MultiLingualObjects/IObjectTranslation.cs | 7 +++++++ .../MultiLingualObjects}/MultiLingualObjectManager.cs | 9 ++++----- .../Volo.Abp.AutoMapper.Tests.csproj | 2 +- .../Volo/Abp/AutoMapper/AutoMapperTestModule.cs | 1 - .../TestObjects/MultiLingualBookTranslation.cs | 11 ----------- .../Volo.Abp.MultiLingualObjects.Tests.csproj} | 2 +- .../AbpMultiLingualObjectsTestModule.cs} | 9 ++++----- .../MultiLingualObjectManager_Tests.cs | 6 +++--- .../TestObjects/MultiLingualBook.cs | 4 ++-- .../TestObjects/MultiLingualBookDto.cs | 2 +- .../TestObjects/MultiLingualBookTranslation.cs | 9 +++++++++ 20 files changed, 49 insertions(+), 55 deletions(-) delete mode 100644 framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/IHasMultiLingual.cs delete mode 100644 framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/IMultiLingualTranslation.cs rename framework/src/{Volo.Abp.MultiLingualObject => Volo.Abp.MultiLingualObjects}/FodyWeavers.xml (100%) rename framework/src/{Volo.Abp.MultiLingualObject => Volo.Abp.MultiLingualObjects}/FodyWeavers.xsd (100%) rename framework/src/{Volo.Abp.MultiLingualObject/Volo.Abp.MultiLingualObject.csproj => Volo.Abp.MultiLingualObjects/Volo.Abp.MultiLingualObjects.csproj} (92%) rename framework/src/{Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/AbpMultiLingualObjectModule.cs => Volo.Abp.MultiLingualObjects/Volo/Abp/MultiLingualObjects/AbpMultiLingualObjectsModule.cs} (57%) create mode 100644 framework/src/Volo.Abp.MultiLingualObjects/Volo/Abp/MultiLingualObjects/IMultiLingualObject.cs rename framework/src/{Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject => Volo.Abp.MultiLingualObjects/Volo/Abp/MultiLingualObjects}/IMultiLingualObjectManager.cs (63%) create mode 100644 framework/src/Volo.Abp.MultiLingualObjects/Volo/Abp/MultiLingualObjects/IObjectTranslation.cs rename framework/src/{Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject => Volo.Abp.MultiLingualObjects/Volo/Abp/MultiLingualObjects}/MultiLingualObjectManager.cs (91%) delete mode 100644 framework/test/Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject/TestObjects/MultiLingualBookTranslation.cs rename framework/test/{Volo.Abp.MultiLingualObject.Tests/Volo.Abp.MultiLingualObject.Tests.csproj => Volo.Abp.MultiLingualObjects.Tests/Volo.Abp.MultiLingualObjects.Tests.csproj} (93%) rename framework/test/{Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject/AbpMultiLingualObjectTestModule.cs => Volo.Abp.MultiLingualObjects.Tests/Volo/Abp/MultiLingualObjects/AbpMultiLingualObjectsTestModule.cs} (60%) rename framework/test/{Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject => Volo.Abp.MultiLingualObjects.Tests/Volo/Abp/MultiLingualObjects}/MultiLingualObjectManager_Tests.cs (93%) rename framework/test/{Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject => Volo.Abp.MultiLingualObjects.Tests/Volo/Abp/MultiLingualObjects}/TestObjects/MultiLingualBook.cs (72%) rename framework/test/{Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject => Volo.Abp.MultiLingualObjects.Tests/Volo/Abp/MultiLingualObjects}/TestObjects/MultiLingualBookDto.cs (79%) create mode 100644 framework/test/Volo.Abp.MultiLingualObjects.Tests/Volo/Abp/MultiLingualObjects/TestObjects/MultiLingualBookTranslation.cs diff --git a/framework/Volo.Abp.sln b/framework/Volo.Abp.sln index fb631f3ee5..67d2fa2573 100644 --- a/framework/Volo.Abp.sln +++ b/framework/Volo.Abp.sln @@ -331,9 +331,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.GlobalFeatures", " EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.GlobalFeatures.Tests", "test\Volo.Abp.GlobalFeatures.Tests\Volo.Abp.GlobalFeatures.Tests.csproj", "{231F1581-AA21-44C3-BF27-51EB3AD5355C}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.MultiLingualObject", "src\Volo.Abp.MultiLingualObject\Volo.Abp.MultiLingualObject.csproj", "{C9142DED-1F6C-4385-A37D-81E46B233306}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.MultiLingualObjects", "src\Volo.Abp.MultiLingualObjects\Volo.Abp.MultiLingualObjects.csproj", "{C9142DED-1F6C-4385-A37D-81E46B233306}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.MultiLingualObject.Tests", "test\Volo.Abp.MultiLingualObject.Tests\Volo.Abp.MultiLingualObject.Tests.csproj", "{A30D63B0-E952-4052-BAEE-38B8BF924093}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.MultiLingualObjects.Tests", "test\Volo.Abp.MultiLingualObjects.Tests\Volo.Abp.MultiLingualObjects.Tests.csproj", "{A30D63B0-E952-4052-BAEE-38B8BF924093}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Http.Client.IdentityModel.WebAssembly", "src\Volo.Abp.Http.Client.IdentityModel.WebAssembly\Volo.Abp.Http.Client.IdentityModel.WebAssembly.csproj", "{3D35A1E0-A9A1-404F-9B55-5F1A7EB6D5B8}" EndProject diff --git a/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/IHasMultiLingual.cs b/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/IHasMultiLingual.cs deleted file mode 100644 index 8ea05ecabd..0000000000 --- a/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/IHasMultiLingual.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Collections.Generic; - -namespace Volo.Abp.MultiLingualObject -{ - public interface IHasMultiLingual - where TTranslation : class, IMultiLingualTranslation - { - ICollection Translations { get; set; } - } -} diff --git a/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/IMultiLingualTranslation.cs b/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/IMultiLingualTranslation.cs deleted file mode 100644 index 3676e08b44..0000000000 --- a/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/IMultiLingualTranslation.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Volo.Abp.MultiLingualObject -{ - public interface IMultiLingualTranslation - { - string Language { get; set; } - } -} diff --git a/framework/src/Volo.Abp.MultiLingualObject/FodyWeavers.xml b/framework/src/Volo.Abp.MultiLingualObjects/FodyWeavers.xml similarity index 100% rename from framework/src/Volo.Abp.MultiLingualObject/FodyWeavers.xml rename to framework/src/Volo.Abp.MultiLingualObjects/FodyWeavers.xml diff --git a/framework/src/Volo.Abp.MultiLingualObject/FodyWeavers.xsd b/framework/src/Volo.Abp.MultiLingualObjects/FodyWeavers.xsd similarity index 100% rename from framework/src/Volo.Abp.MultiLingualObject/FodyWeavers.xsd rename to framework/src/Volo.Abp.MultiLingualObjects/FodyWeavers.xsd diff --git a/framework/src/Volo.Abp.MultiLingualObject/Volo.Abp.MultiLingualObject.csproj b/framework/src/Volo.Abp.MultiLingualObjects/Volo.Abp.MultiLingualObjects.csproj similarity index 92% rename from framework/src/Volo.Abp.MultiLingualObject/Volo.Abp.MultiLingualObject.csproj rename to framework/src/Volo.Abp.MultiLingualObjects/Volo.Abp.MultiLingualObjects.csproj index d6df31e1ed..da83bc80f4 100644 --- a/framework/src/Volo.Abp.MultiLingualObject/Volo.Abp.MultiLingualObject.csproj +++ b/framework/src/Volo.Abp.MultiLingualObjects/Volo.Abp.MultiLingualObjects.csproj @@ -5,7 +5,6 @@ netstandard2.0 - Volo.Abp.MultiLingualObject Volo.Abp.MultiLingualObject $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false diff --git a/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/AbpMultiLingualObjectModule.cs b/framework/src/Volo.Abp.MultiLingualObjects/Volo/Abp/MultiLingualObjects/AbpMultiLingualObjectsModule.cs similarity index 57% rename from framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/AbpMultiLingualObjectModule.cs rename to framework/src/Volo.Abp.MultiLingualObjects/Volo/Abp/MultiLingualObjects/AbpMultiLingualObjectsModule.cs index 120cf7bac1..248a0eff75 100644 --- a/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/AbpMultiLingualObjectModule.cs +++ b/framework/src/Volo.Abp.MultiLingualObjects/Volo/Abp/MultiLingualObjects/AbpMultiLingualObjectsModule.cs @@ -1,11 +1,11 @@ using Volo.Abp.Localization; using Volo.Abp.Modularity; -namespace Volo.Abp.MultiLingualObject +namespace Volo.Abp.MultiLingualObjects { [DependsOn( typeof(AbpLocalizationModule))] - public class AbpMultiLingualObjectModule : AbpModule + public class AbpMultiLingualObjectsModule : AbpModule { } } diff --git a/framework/src/Volo.Abp.MultiLingualObjects/Volo/Abp/MultiLingualObjects/IMultiLingualObject.cs b/framework/src/Volo.Abp.MultiLingualObjects/Volo/Abp/MultiLingualObjects/IMultiLingualObject.cs new file mode 100644 index 0000000000..31a82f1b06 --- /dev/null +++ b/framework/src/Volo.Abp.MultiLingualObjects/Volo/Abp/MultiLingualObjects/IMultiLingualObject.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace Volo.Abp.MultiLingualObjects +{ + public interface IMultiLingualObject + where TTranslation : class, IObjectTranslation + { + ICollection Translations { get; set; } + } +} diff --git a/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/IMultiLingualObjectManager.cs b/framework/src/Volo.Abp.MultiLingualObjects/Volo/Abp/MultiLingualObjects/IMultiLingualObjectManager.cs similarity index 63% rename from framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/IMultiLingualObjectManager.cs rename to framework/src/Volo.Abp.MultiLingualObjects/Volo/Abp/MultiLingualObjects/IMultiLingualObjectManager.cs index 7cd860f9ef..8a649cd51a 100644 --- a/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/IMultiLingualObjectManager.cs +++ b/framework/src/Volo.Abp.MultiLingualObjects/Volo/Abp/MultiLingualObjects/IMultiLingualObjectManager.cs @@ -1,6 +1,6 @@ using System.Threading.Tasks; -namespace Volo.Abp.MultiLingualObject +namespace Volo.Abp.MultiLingualObjects { public interface IMultiLingualObjectManager { @@ -8,7 +8,7 @@ namespace Volo.Abp.MultiLingualObject TMultiLingual multiLingual, string culture = null, bool fallbackToParentCultures = true) - where TMultiLingual : IHasMultiLingual - where TTranslation : class, IMultiLingualTranslation; + where TMultiLingual : IMultiLingualObject + where TTranslation : class, IObjectTranslation; } } diff --git a/framework/src/Volo.Abp.MultiLingualObjects/Volo/Abp/MultiLingualObjects/IObjectTranslation.cs b/framework/src/Volo.Abp.MultiLingualObjects/Volo/Abp/MultiLingualObjects/IObjectTranslation.cs new file mode 100644 index 0000000000..c1a8caa492 --- /dev/null +++ b/framework/src/Volo.Abp.MultiLingualObjects/Volo/Abp/MultiLingualObjects/IObjectTranslation.cs @@ -0,0 +1,7 @@ +namespace Volo.Abp.MultiLingualObjects +{ + public interface IObjectTranslation + { + string Language { get; set; } + } +} diff --git a/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/MultiLingualObjectManager.cs b/framework/src/Volo.Abp.MultiLingualObjects/Volo/Abp/MultiLingualObjects/MultiLingualObjectManager.cs similarity index 91% rename from framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/MultiLingualObjectManager.cs rename to framework/src/Volo.Abp.MultiLingualObjects/Volo/Abp/MultiLingualObjects/MultiLingualObjectManager.cs index f8e653120a..e7185ec0c4 100644 --- a/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/MultiLingualObjectManager.cs +++ b/framework/src/Volo.Abp.MultiLingualObjects/Volo/Abp/MultiLingualObjects/MultiLingualObjectManager.cs @@ -6,9 +6,8 @@ using System.Threading.Tasks; using Volo.Abp.DependencyInjection; using Volo.Abp.Localization; using Volo.Abp.Settings; -using Volo.Abp.Threading; -namespace Volo.Abp.MultiLingualObject +namespace Volo.Abp.MultiLingualObjects { public class MultiLingualObjectManager : IMultiLingualObjectManager, ITransientDependency { @@ -25,8 +24,8 @@ namespace Volo.Abp.MultiLingualObject TMultiLingual multiLingual, string culture = null, bool fallbackToParentCultures = true) - where TMultiLingual : IHasMultiLingual - where TTranslation : class, IMultiLingualTranslation + where TMultiLingual : IMultiLingualObject + where TTranslation : class, IObjectTranslation { culture ??= CultureInfo.CurrentUICulture.Name; @@ -69,7 +68,7 @@ namespace Volo.Abp.MultiLingualObject protected virtual TTranslation GetTranslationBasedOnCulturalRecursive( CultureInfo culture, ICollection translations, int currentDepth) - where TTranslation : class, IMultiLingualTranslation + where TTranslation : class, IObjectTranslation { if (culture == null || culture.Name.IsNullOrWhiteSpace() || diff --git a/framework/test/Volo.Abp.AutoMapper.Tests/Volo.Abp.AutoMapper.Tests.csproj b/framework/test/Volo.Abp.AutoMapper.Tests/Volo.Abp.AutoMapper.Tests.csproj index 37ffca1657..2bedb82ed5 100644 --- a/framework/test/Volo.Abp.AutoMapper.Tests/Volo.Abp.AutoMapper.Tests.csproj +++ b/framework/test/Volo.Abp.AutoMapper.Tests/Volo.Abp.AutoMapper.Tests.csproj @@ -13,7 +13,7 @@ - + diff --git a/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapperTestModule.cs b/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapperTestModule.cs index 605319ccff..fcc9918dd4 100644 --- a/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapperTestModule.cs +++ b/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapperTestModule.cs @@ -1,5 +1,4 @@ using Volo.Abp.Modularity; -using Volo.Abp.MultiLingualObject; using Volo.Abp.ObjectExtending; namespace Volo.Abp.AutoMapper diff --git a/framework/test/Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject/TestObjects/MultiLingualBookTranslation.cs b/framework/test/Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject/TestObjects/MultiLingualBookTranslation.cs deleted file mode 100644 index 5f35554078..0000000000 --- a/framework/test/Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject/TestObjects/MultiLingualBookTranslation.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System; - -namespace Volo.Abp.MultiLingualObject.TestObjects -{ - public class MultiLingualBookTranslation : IMultiLingualTranslation - { - public string Name { get; set; } - - public string Language { get; set; } - } -} diff --git a/framework/test/Volo.Abp.MultiLingualObject.Tests/Volo.Abp.MultiLingualObject.Tests.csproj b/framework/test/Volo.Abp.MultiLingualObjects.Tests/Volo.Abp.MultiLingualObjects.Tests.csproj similarity index 93% rename from framework/test/Volo.Abp.MultiLingualObject.Tests/Volo.Abp.MultiLingualObject.Tests.csproj rename to framework/test/Volo.Abp.MultiLingualObjects.Tests/Volo.Abp.MultiLingualObjects.Tests.csproj index 52d2f7ac2f..164a5da272 100644 --- a/framework/test/Volo.Abp.MultiLingualObject.Tests/Volo.Abp.MultiLingualObject.Tests.csproj +++ b/framework/test/Volo.Abp.MultiLingualObjects.Tests/Volo.Abp.MultiLingualObjects.Tests.csproj @@ -9,7 +9,7 @@ - + diff --git a/framework/test/Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject/AbpMultiLingualObjectTestModule.cs b/framework/test/Volo.Abp.MultiLingualObjects.Tests/Volo/Abp/MultiLingualObjects/AbpMultiLingualObjectsTestModule.cs similarity index 60% rename from framework/test/Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject/AbpMultiLingualObjectTestModule.cs rename to framework/test/Volo.Abp.MultiLingualObjects.Tests/Volo/Abp/MultiLingualObjects/AbpMultiLingualObjectsTestModule.cs index f8f79a3065..d563a6aab3 100644 --- a/framework/test/Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject/AbpMultiLingualObjectTestModule.cs +++ b/framework/test/Volo.Abp.MultiLingualObjects.Tests/Volo/Abp/MultiLingualObjects/AbpMultiLingualObjectsTestModule.cs @@ -1,21 +1,20 @@ -using Autofac.Extensions.DependencyInjection; -using Volo.Abp.Autofac; +using Volo.Abp.Autofac; using Volo.Abp.Localization; using Volo.Abp.Modularity; using Volo.Abp.ObjectMapping; using Volo.Abp.Settings; -namespace Volo.Abp.MultiLingualObject +namespace Volo.Abp.MultiLingualObjects { [DependsOn( typeof(AbpAutofacModule), typeof(AbpLocalizationModule), typeof(AbpSettingsModule), typeof(AbpObjectMappingModule), - typeof(AbpMultiLingualObjectModule), + typeof(AbpMultiLingualObjectsModule), typeof(AbpTestBaseModule) )] - public class AbpMultiLingualObjectTestModule : AbpModule + public class AbpMultiLingualObjectsTestModule : AbpModule { } } diff --git a/framework/test/Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject/MultiLingualObjectManager_Tests.cs b/framework/test/Volo.Abp.MultiLingualObjects.Tests/Volo/Abp/MultiLingualObjects/MultiLingualObjectManager_Tests.cs similarity index 93% rename from framework/test/Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject/MultiLingualObjectManager_Tests.cs rename to framework/test/Volo.Abp.MultiLingualObjects.Tests/Volo/Abp/MultiLingualObjects/MultiLingualObjectManager_Tests.cs index d23d3153b1..d3d5ae3617 100644 --- a/framework/test/Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject/MultiLingualObjectManager_Tests.cs +++ b/framework/test/Volo.Abp.MultiLingualObjects.Tests/Volo/Abp/MultiLingualObjects/MultiLingualObjectManager_Tests.cs @@ -4,13 +4,13 @@ using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; using Shouldly; using Volo.Abp.Localization; -using Volo.Abp.MultiLingualObject.TestObjects; +using Volo.Abp.MultiLingualObjects.TestObjects; using Volo.Abp.Testing; using Xunit; -namespace Volo.Abp.MultiLingualObject +namespace Volo.Abp.MultiLingualObjects { - public class MultiLingualObjectManager_Tests : AbpIntegratedTest + public class MultiLingualObjectManager_Tests : AbpIntegratedTest { private readonly IMultiLingualObjectManager _multiLingualObjectManager; private readonly MultiLingualBook _book; diff --git a/framework/test/Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject/TestObjects/MultiLingualBook.cs b/framework/test/Volo.Abp.MultiLingualObjects.Tests/Volo/Abp/MultiLingualObjects/TestObjects/MultiLingualBook.cs similarity index 72% rename from framework/test/Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject/TestObjects/MultiLingualBook.cs rename to framework/test/Volo.Abp.MultiLingualObjects.Tests/Volo/Abp/MultiLingualObjects/TestObjects/MultiLingualBook.cs index d12022a44b..2dcae93b73 100644 --- a/framework/test/Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject/TestObjects/MultiLingualBook.cs +++ b/framework/test/Volo.Abp.MultiLingualObjects.Tests/Volo/Abp/MultiLingualObjects/TestObjects/MultiLingualBook.cs @@ -1,9 +1,9 @@ using System; using System.Collections.Generic; -namespace Volo.Abp.MultiLingualObject.TestObjects +namespace Volo.Abp.MultiLingualObjects.TestObjects { - public class MultiLingualBook : IHasMultiLingual + public class MultiLingualBook : IMultiLingualObject { public MultiLingualBook(Guid id, decimal price) { diff --git a/framework/test/Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject/TestObjects/MultiLingualBookDto.cs b/framework/test/Volo.Abp.MultiLingualObjects.Tests/Volo/Abp/MultiLingualObjects/TestObjects/MultiLingualBookDto.cs similarity index 79% rename from framework/test/Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject/TestObjects/MultiLingualBookDto.cs rename to framework/test/Volo.Abp.MultiLingualObjects.Tests/Volo/Abp/MultiLingualObjects/TestObjects/MultiLingualBookDto.cs index 8814f9a855..fe5868074f 100644 --- a/framework/test/Volo.Abp.MultiLingualObject.Tests/Volo/Abp/MultiLingualObject/TestObjects/MultiLingualBookDto.cs +++ b/framework/test/Volo.Abp.MultiLingualObjects.Tests/Volo/Abp/MultiLingualObjects/TestObjects/MultiLingualBookDto.cs @@ -1,6 +1,6 @@ using System; -namespace Volo.Abp.MultiLingualObject.TestObjects +namespace Volo.Abp.MultiLingualObjects.TestObjects { public class MultiLingualBookDto { diff --git a/framework/test/Volo.Abp.MultiLingualObjects.Tests/Volo/Abp/MultiLingualObjects/TestObjects/MultiLingualBookTranslation.cs b/framework/test/Volo.Abp.MultiLingualObjects.Tests/Volo/Abp/MultiLingualObjects/TestObjects/MultiLingualBookTranslation.cs new file mode 100644 index 0000000000..e1b85df173 --- /dev/null +++ b/framework/test/Volo.Abp.MultiLingualObjects.Tests/Volo/Abp/MultiLingualObjects/TestObjects/MultiLingualBookTranslation.cs @@ -0,0 +1,9 @@ +namespace Volo.Abp.MultiLingualObjects.TestObjects +{ + public class MultiLingualBookTranslation : IObjectTranslation + { + public string Name { get; set; } + + public string Language { get; set; } + } +} From cc0c174006ba69fe80e634f323ea1a9fe704df5d Mon Sep 17 00:00:00 2001 From: Ilkay Ilknur Date: Tue, 30 Mar 2021 16:37:39 +0300 Subject: [PATCH 64/72] render toolbar childcontent for backwards compatibility. --- .../Layout/PageHeader.razor | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor index aec0eada09..d874da0901 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor @@ -32,6 +32,11 @@ } + @if (Toolbar == null) + { + @ChildContent + } + @foreach (var toolbarItemRender in ToolbarItemRenders) { From 131dece60a1b92df9784961723e15e183f78037a Mon Sep 17 00:00:00 2001 From: Ilkay Ilknur Date: Tue, 30 Mar 2021 16:37:55 +0300 Subject: [PATCH 65/72] remove unused parameter. --- .../Layout/PageHeader.razor.cs | 3 --- 1 file changed, 3 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor.cs index fb2db1b8a2..7806aa4b44 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor.cs @@ -31,9 +31,6 @@ namespace Volo.Abp.AspNetCore.Components.Web.Theming.Layout [Parameter] public PageToolbar Toolbar { get; set; } - [Parameter] - public string PageName { get; set; } - public PageHeader() { BreadcrumbItems = new List(); From 18dbffca56f0192dc1554c72d7cd07cce7154f41 Mon Sep 17 00:00:00 2001 From: Alper Ebicoglu Date: Tue, 30 Mar 2021 16:38:27 +0300 Subject: [PATCH 66/72] Update AddPackageCommand.cs --- .../Volo/Abp/Cli/Commands/AddPackageCommand.cs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddPackageCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddPackageCommand.cs index ba3293013f..f644706bd9 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddPackageCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddPackageCommand.cs @@ -90,18 +90,18 @@ namespace Volo.Abp.Cli.Commands sb.AppendLine(""); sb.AppendLine("Options:"); sb.AppendLine(""); - sb.AppendLine(" -p|--project Specify the project file explicitly. (Only available for Nuget packages)"); - sb.AppendLine(" -s|--solution Specify the solution file explicitly. (Only available for Nuget packages)"); - sb.AppendLine(" --with-source-code Downloads the source code of the Npm/Nuget package and make other projects depends on it."); - sb.AppendLine(" --add-to-solution-file Adds the downloaded project to .sln file, if source code is downloaded. (Only available for Nuget packages)"); - sb.AppendLine(" -ad|--angular-directory Specify the Angular project directory explicitly. (Only available for Angular packages)"); - sb.AppendLine(" -v|--version Specify the version of the package. Default is your project's ABP version or latest ABP version."); + sb.AppendLine(" -p|--project Specifies the project file explicitly. (Only available for NuGet packages)"); + sb.AppendLine(" -s|--solution Specifies the solution file explicitly. (Only available for NuGet packages)"); + sb.AppendLine(" --with-source-code Downloads the source code of the NPM/NuGet package and make other projects depends on it."); + sb.AppendLine(" --add-to-solution-file Adds the downloaded project to the .sln file, when source code is downloaded. (Only available for NuGet packages)"); + sb.AppendLine(" -ad|--angular-directory Specifies the Angular project directory explicitly. (Only available for Angular packages)"); + sb.AppendLine(" -v|--version Specifies the version of the package. Default is your project's ABP version or latest ABP version."); sb.AppendLine(""); sb.AppendLine("Examples:"); sb.AppendLine(""); - sb.AppendLine(" abp add-package Volo.Abp.FluentValidation Adds the nuget package to the current project."); - sb.AppendLine(" abp add-package Volo.Abp.FluentValidation -p Acme.BookStore.Application Adds the nuget package to the given project."); - sb.AppendLine(" abp add-package @abp/ng.theme.basic Adds the npm package to the given angular project."); + sb.AppendLine(" abp add-package Volo.Abp.FluentValidation Adds the NuGet package to the current project."); + sb.AppendLine(" abp add-package Volo.Abp.FluentValidation -p Acme.BookStore.Application Adds the NuGet package to the given project."); + sb.AppendLine(" abp add-package @abp/ng.theme.basic Adds the NPM package to the given corresponding project."); sb.AppendLine(""); sb.AppendLine("See the documentation for more info: https://docs.abp.io/en/abp/latest/CLI"); From d20203fcdc1231b2e11522c7fbdedd838d2cd603 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 30 Mar 2021 16:43:56 +0300 Subject: [PATCH 67/72] Update POST.md --- docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md b/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md index 7d7c71e28e..bf9f86a6d2 100644 --- a/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md +++ b/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md @@ -9,7 +9,6 @@ We are super excited to announce the ABP Framework 4.3 RC (Release Candidate). H * **Volo.Abp.EntityFrameworkCore.Oracle** package is now compatible with .NET 5. * CLI support to easily add the **Basic Theme** into the solution. * New **IInitLogger** service to write logs before dependency injection phase completed. -* Infrastructure for **multi-lingual entities**. Beside the new features above, we've done many performance improvements, enhancements and bug fixes on the current features. See the [4.3 milestone](https://github.com/abpframework/abp/milestone/49) on GitHub for all changes made on this version. @@ -175,12 +174,6 @@ Logs are written once the service registration phase is completed. It stores the > Notice: Startup templates come with [Serilog](https://serilog.net/) pre-installed. So, you can write logs everywhere by directly using its static API (ex: `Log.Information("...");`). The `InitLogger` is a way to write pre-initialization logs without depending a particular logging library. So, it makes it very handy to write logs inside reusable modules. -### Multi-Lingual Entities - -ABP's [localization system](https://docs.abp.io/en/abp/latest/Localization) works well when you want to localizer your application UI. However, in some applications, you may also need to localize your data. For example, if you have a *Product* entity, you may need to show Product's *Description* property in the current user's language. *Multi-Language Entities* provides a pattern to localize your entities. - -TODO: EXAMPLE - ### Other Features/Changes * [#7423](https://github.com/abpframework/abp/issues/7423) MongoDB repository base aggregation API. From a43c68bbffc865bf58f4cfea26a07eeaae780f49 Mon Sep 17 00:00:00 2001 From: Ilkay Ilknur Date: Tue, 30 Mar 2021 16:45:16 +0300 Subject: [PATCH 68/72] pageheader namespace change added. --- docs/en/Migration-Guides/Abp-4_3.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/en/Migration-Guides/Abp-4_3.md b/docs/en/Migration-Guides/Abp-4_3.md index c4541a6581..6464455011 100644 --- a/docs/en/Migration-Guides/Abp-4_3.md +++ b/docs/en/Migration-Guides/Abp-4_3.md @@ -1,3 +1,6 @@ # ABP Framework 4.x to 4.3 Migration Guide -TODO \ No newline at end of file +## Blazor UI + +- `PageHeader` component has been moved to the`Volo.Abp.AspNetCore.Components.Web.Theming.Layout` namespace. + From eca862c803dadd55998736381d68742b8e773c9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 30 Mar 2021 16:46:05 +0300 Subject: [PATCH 69/72] Create POST.md --- docs/en/Blog-Posts/2021-04-05 CmsKit/POST.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 docs/en/Blog-Posts/2021-04-05 CmsKit/POST.md diff --git a/docs/en/Blog-Posts/2021-04-05 CmsKit/POST.md b/docs/en/Blog-Posts/2021-04-05 CmsKit/POST.md new file mode 100644 index 0000000000..ad8b89faa0 --- /dev/null +++ b/docs/en/Blog-Posts/2021-04-05 CmsKit/POST.md @@ -0,0 +1,3 @@ +# Introducing the CMS Kit Module for the ABP Framework + +TODO... \ No newline at end of file From e0f3ecc59c2a63fb8d1ef39a4f4c826b51220ba3 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Tue, 30 Mar 2021 22:32:46 +0800 Subject: [PATCH 70/72] Remove Multi-Lingual-Entities.md --- docs/zh-Hans/Multi-Lingual-Entities.md | 100 ------------------------- docs/zh-Hans/docs-nav.json | 4 - 2 files changed, 104 deletions(-) delete mode 100644 docs/zh-Hans/Multi-Lingual-Entities.md diff --git a/docs/zh-Hans/Multi-Lingual-Entities.md b/docs/zh-Hans/Multi-Lingual-Entities.md deleted file mode 100644 index 2deff4e38f..0000000000 --- a/docs/zh-Hans/Multi-Lingual-Entities.md +++ /dev/null @@ -1,100 +0,0 @@ -# 多语言实体 - -ABP框架为多语言实体定义了两个基本接口用于翻译实体的标准模型. - -## IHasMultiLingual - -`IHasMultiLingual` 接口用于标记多语言实体. 通过 `IHasMultiLingual` 接口被标记为多语言的实体定义与语言无关的信息. 多语言实体包含翻译集合,其中包含与语言有关的信息. - -示例: - -```csharp -public class Product : Entity, IMultiLingualEntity -{ - public decimal Price { get; set; } - - public ICollection Translations { get; set; } -} -``` - -## IMultiLingualTranslation - -`IMultiLingualTranslation` 接口用于标记多语言实体的翻译. 通过 `IHasMultiLingual` 接口被标记为的翻译实体定义与语言有关的信息. 翻译实体包含 `Language` 字段,用于翻译的语言代码. - -示例: - -```csharp -public class ProductTranslation : Entity, IMultiLingualTranslation -{ - public string Name { get; set; } - - public string Language { get; set; } -} -``` - -## 映射为DTO对象 - -ABP提供了[对象到对象的映射](Object-To-Object-Mapping.md)系统,你可以通过实现 `IObjectMapper` 接口将多语言实体映射为DTO. - -示例: - -```csharp -public class MultiLingualProductObjectMapper : IObjectMapper, ITransientDependency -{ - private readonly IMultiLingualObjectManager _multiLingualObjectManager; - - public MultiLingualProductObjectMapper(IMultiLingualObjectManager multiLingualObjectManager) - { - _multiLingualObjectManager = multiLingualObjectManager; - } - - public ProductDto Map(Product source) - { - var translation = _multiLingualObjectManager.GetTranslation(source); - - return new ProductDto - { - Price = source.Price, - Id = source.Id, - Name = translation?.Name - }; - } - - public ProductDto Map(Product source, ProductDto destination) - { - return default; - } -} - -``` - -### AutoMapper集成 - -ABP提供了 `CreateMultiLingualMap` 扩展方法用于将多语言实体映射为DTO. - -示例: - -```csharp -public class ProductProfile : Profile -{ - public ProductProfile() - { - var mapResult = this.CreateMultiLingualMap(); - } -} -``` - -`CreateMultiLingualMap` 扩展方法返回了一个类型为 `CreateMultiLingualMapResult` 的对象,它包含 `EntityMap` 和 `TranslationMap` 字段. 这些字段可以用于自定义多语言映射. - -示例: - -```csharp -this.CreateMultiLingualMap(context) - .EntityMap.ForMember(dest => dest.ProductCount, opt => opt.MapFrom(src => src.Products.Count)); -``` - -## IMultiLingualObjectManager - -`IMultiLingualObjectManager` 接口定义了 `GetTranslation` 和 `GetTranslationAsync` 方法用于获取实体当前的翻译对象. - -`IMultiLingualObjectManager` 的默认实现首先使用当前的UI语言寻找翻译, 如果当前的UI语言没有对应的翻译, 那么会搜索默认语言设置(参阅[设置](Settings.md))用于寻找翻译. 如果默认语言没有对应的翻译, 那么它会返回已存在翻译集合中的第一个翻译对象. diff --git a/docs/zh-Hans/docs-nav.json b/docs/zh-Hans/docs-nav.json index 241633caf5..4f47dd2760 100644 --- a/docs/zh-Hans/docs-nav.json +++ b/docs/zh-Hans/docs-nav.json @@ -354,10 +354,6 @@ "text": "实体&聚合根", "path": "Entities.md" }, - { - "text": "多语言实体", - "path": "Multi-Lingual-Entities.md" - }, { "text": "值对象" }, From d84514b827bbd23d588e4f5c1f4bbfa344190382 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 30 Mar 2021 17:43:49 +0300 Subject: [PATCH 71/72] Documented Blazor UI changes. --- docs/en/Migration-Guides/Abp-4_3.md | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/docs/en/Migration-Guides/Abp-4_3.md b/docs/en/Migration-Guides/Abp-4_3.md index 6464455011..ddc40189a0 100644 --- a/docs/en/Migration-Guides/Abp-4_3.md +++ b/docs/en/Migration-Guides/Abp-4_3.md @@ -2,5 +2,30 @@ ## Blazor UI -- `PageHeader` component has been moved to the`Volo.Abp.AspNetCore.Components.Web.Theming.Layout` namespace. +Implemented the Blazor Server Side support with this release. It required some packages and namespaces arrangements. **Existing Blazor (WebAssembly) applications should done the changes explained in this section**. +### Namespace Changes + +- `AbpBlazorMessageLocalizerHelper` -> moved to Volo.Abp.AspNetCore.Components.Web +- `AbpRouterOptions` -> moved to Volo.Abp.AspNetCore.Components.Web.Theming.Routing +- `AbpToolbarOptions` and `IToolbarContributor` -> moved to Volo.Abp.AspNetCore.Components.Web.Theming.Toolbars +- `IAbpUtilsService` -> moved to Volo.Abp.AspNetCore.Components.Web +- `PageHeader` -> moved to `Volo.Abp.AspNetCore.Components.Web.Theming.Layout`. + +In practice, if your application is broken because of the `Volo.Abp.AspNetCore.Components.WebAssembly.*` namespace, please try to switch to `Volo.Abp.AspNetCore.Components.Web.*` namespace. + +Remember to change namespaces in the `_Imports.razor` files. + +### Package Changes + +No change on the framework packages, but **module packages are separated as Web Assembly & Server**; + +* Use `Volo.Abp.Identity.Blazor.WebAssembly` NuGet package instead of `Volo.Abp.Identity.Blazor` package. Also, change `AbpIdentityBlazorModule` usage to `AbpIdentityBlazorWebAssemblyModule` in the `[DependsOn]` attribute on your module class. +* Use `Volo.Abp.TenantManagement.Blazor.WebAssembly` NuGet package instead of `Volo.Abp.TenantManagement.Blazor` package. Also, change `AbpTenantManagementBlazorModule` usage to `AbpTenantManagementBlazorWebAssemblyModule` in the `[DependsOn]` attribute on your module class. +* Use `Volo.Abp.PermissionManagement.Blazor.WebAssembly` NuGet package instead of `Volo.Abp.PermissionManagement.Blazor` package. Also, change `AbpPermissionManagementBlazorModule` usage to `AbpPermissionManagementBlazorWebAssemblyModule` in the `[DependsOn]` attribute on your module class. +* Use `Volo.Abp.SettingManagement.Blazor.WebAssembly` NuGet package instead of `Volo.Abp.SettingManagement.Blazor` package. Also, change `AbpSettingManagementBlazorModule` usage to `AbpSettingManagementBlazorWebAssemblyModule` in the `[DependsOn]` attribute on your module class. +* Use `Volo.Abp.FeatureManagement.Blazor.WebAssembly` NuGet package instead of `Volo.Abp.FeatureManagement.Blazor` package. Also, change `AbpFeatureManagementBlazorModule` usage to `AbpFeatureManagementBlazorWebAssemblyModule` in the `[DependsOn]` attribute on your module class. + +### Other Changes + +* `EntityAction.RequiredPermission` has been marked as obsolete, because of performance reasons. It is suggested to use the `Visible` property by checking the permission/policy yourself and assigning to a variable. \ No newline at end of file From 0d365f903421ab817448ecd1b20d95bc49112759 Mon Sep 17 00:00:00 2001 From: Alper Ebicoglu Date: Tue, 30 Mar 2021 17:49:50 +0300 Subject: [PATCH 72/72] revised grammar --- .../2021-03-31 v4_3 Preview/POST.md | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md b/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md index bf9f86a6d2..cfb9bf0eed 100644 --- a/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md +++ b/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md @@ -1,6 +1,6 @@ # ABP Framework 4.3 RC Has Been Published -We are super excited to announce the ABP Framework 4.3 RC (Release Candidate). Here, a list of highlights for this release; +We are super excited to announce the ABP Framework 4.3 RC (Release Candidate). Here, a list of highlights of this release; * **CMS Kit** module initial release. * **Blazor UI server-side** support. @@ -10,7 +10,7 @@ We are super excited to announce the ABP Framework 4.3 RC (Release Candidate). H * CLI support to easily add the **Basic Theme** into the solution. * New **IInitLogger** service to write logs before dependency injection phase completed. -Beside the new features above, we've done many performance improvements, enhancements and bug fixes on the current features. See the [4.3 milestone](https://github.com/abpframework/abp/milestone/49) on GitHub for all changes made on this version. +Besides the new features above, we've done many performance improvements, enhancements and bug fixes on the current features. See the [4.3 milestone](https://github.com/abpframework/abp/milestone/49) on GitHub for all changes made on this version. This version was a big development journey for us; [~160 issues](https://github.com/abpframework/abp/issues?q=is%3Aopen+is%3Aissue+milestone%3A4.3-preview) resolved, [~300 PRs](https://github.com/abpframework/abp/pulls?q=is%3Aopen+is%3Apr+milestone%3A4.3-preview) merged and **~1,700 commits** done only in the [main framework repository](https://github.com/abpframework/abp). **Thanks to the ABP Framework team and all the contributors.** @@ -18,17 +18,17 @@ This version was a big development journey for us; [~160 issues](https://github. ## The Migration Guide -We normally don't make breaking changes in feature versions. However, this version has some small **breaking changes** mostly related to Blazor UI WebAssembly & Server separation. **Please check the [migration guide](https://docs.abp.io/en/abp/4.3/Migration-Guides/Abp-4_3) while upgrading to the version 4.3**. +We normally don't make breaking changes in feature versions. However, this version has some small **breaking changes** mostly related to Blazor UI WebAssembly & Server separation. **Please check the [migration guide](https://docs.abp.io/en/abp/4.3/Migration-Guides/Abp-4_3) while upgrading to version 4.3**. ## Known Issues -There are some minor issues those will be fixed in the stable release. You can see the known issues [here](https://github.com/abpframework/abp/issues?q=is%3Aopen+is%3Aissue+milestone%3A4.3-final). +Some minor issues will be fixed in the stable release. You can see the known issues [here](https://github.com/abpframework/abp/issues?q=is%3Aopen+is%3Aissue+milestone%3A4.3-final). ## Get Started With The 4.3 RC -If you want to try the version 4.3 today, follow the steps below; +If you want to try version 4.3 today, follow the steps below; -1) **Upgrade** the ABP CLI to the version `4.3.0-rc.1` using a command line terminal: +1) **Upgrade** the ABP CLI to the version `4.3.0-rc.1` using a command-line terminal: ````bash dotnet tool update Volo.Abp.Cli -g --version 4.3.0-rc.1 @@ -54,22 +54,22 @@ See the [ABP CLI documentation](https://docs.abp.io/en/abp/4.3/CLI) for all the ### CMS Kit -CMS (Content Management System) Kit was a module we were working for the last couple of months. It is usable now and we are releasing the initial version with this release. We are considering this module as pre-mature. It will be improved in the next versions. The goal to to provide a flexible and extensible CMS infrastructure to .NET community. It currently has the following features; +CMS (Content Management System) Kit was a module we worked on for the last couple of months. It is usable now, and we are releasing the initial version with this release. We are considering this module as pre-mature. It will be improved in the next versions. The goal to provide a flexible and extensible CMS infrastructure to .NET community. It currently has the following features; * **Pages**: Used to create UI pages with a Markdown + WYSIWYG editor. Once you create a page, it becomes available via URL like `/pages/my-page-url`. * **Blog**: A built-in blog system that supports multiple blogs with blog posts. * **Comments**: Allows users to write comments under contents. It is used for blog posts. -* **Tags**: To add tag feature to any type of content/entity. It is used for blog posts. -* **Reactions**: Allows users to react to a content via emojis, like smile, upvote, downvote, etc. -* **Rating**: This component is used to rate a content by users. +* **Tags**: To add tag feature to any content/entity. It is used for blog posts. +* **Reactions**: Allows users to react to content via emojis, like a smile, upvote, downvote, etc. +* **Rating**: This component is used to rate content by users. All features are separately usable. For example, you can create an image gallery and reuse the Comments and Tags features for the images. You can enable/disable features individually using the [Global Features System](https://docs.abp.io/en/abp/4.3/global-features). -> We will create a separate blog post for the CMS Kit module, so I keep it short here. +> We will create a separate blog post for the CMS Kit module, so I keep it short. ### Blazor Server Side -We'd implemented Blazor WebAssembly before. With the version 4.3, we have the Blazor Server Side option too. All the current functionalities are available to the Blazor Server. +We'd implemented Blazor WebAssembly before. With version 4.3, we have the Blazor Server-Side option too. All the current functionalities are available to the Blazor Server. You can select Blazor Server as the UI type while creating a new solution. @@ -83,15 +83,15 @@ If you write `blazor` as the UI type, it will create Blazor WebAssembly just as > You can also select the Blazor Server on the [get started](https://abp.io/get-started) page. -Blazor Server applications are actually mixed applications; You can mix the server-side MVC / Razor Pages with the Blazor SPA. This brings an interesting opportunity: MVC / Razor Pages modules can work seamlessly in the Blazor Server applications. For example, CMS Kit module has no Blazor UI yet, but you can use its MVC UI inside your Blazor Server application. +Blazor Server applications are mixed applications; You can mix the server-side MVC / Razor Pages with the Blazor SPA. This brings an interesting opportunity: MVC / Razor Pages modules can work seamlessly in the Blazor Server applications. For example, the CMS Kit module has no Blazor UI yet, but you can use its MVC UI inside your Blazor Server application. -> Blazor Server UI has a `--tiered` option just [like](https://docs.abp.io/en/abp/latest/Startup-Templates/Application#tiered-structure) the MVC / Razor Pages UI. This can be used to separate HTTP API server from UI server (UI application doesn't directly connect to the database). +> Blazor Server UI has a `--tiered` option just [like](https://docs.abp.io/en/abp/latest/Startup-Templates/Application#tiered-structure) the MVC / Razor Pages UI. This can be used to separate the HTTP API server from the UI server (UI application doesn't directly connect to the database). ### Blazor UI Module Extensibility Module Entity Extensions and some other extensibility features was not supported by the Blazor UI. With this version, we've implemented that system for Blazor UI. -For anyone wondering what is the module entity extensions, please check [the document](https://docs.abp.io/en/abp/4.3/Module-Entity-Extensions) or [this community video](https://community.abp.io/articles/overview-of-abp-framework-4.1-module-extensions-part-1-n04f7bhf). +For anyone wondering what the module entity extensions is, please check [the document](https://docs.abp.io/en/abp/4.3/Module-Entity-Extensions) or [this community video](https://community.abp.io/articles/overview-of-abp-framework-4.1-module-extensions-part-1-n04f7bhf). ### Email Setting Management UI @@ -99,25 +99,25 @@ With this release, a new item is added to the main menu to navigate to the setti ![email-settings-page](email-settings-page.png) -The setting page is provided by the [setting management module](https://docs.abp.io/en/abp/4.3/Modules/Setting-Management) and it is extensible; You can add your own tabs to this page for your application settings. +The setting page is provided by the [setting management module](https://docs.abp.io/en/abp/4.3/Modules/Setting-Management), and it is extensible; You can add your tabs to this page for your application settings. ### Angular UI Resource Owner Password Flow -Login page was removed from the Angular UI in previous versions, because Authorization Code flow is the recommended approach for SPAs. However, it requires to redirect user to the authentication server, login there and come back to the application. We got many feedback because this brings overhead for simple applications. +The login page was removed from the Angular UI in previous versions because Authorization Code flow is the recommended approach for SPAs. However, it requires redirecting the user to the authentication server, logging there, and returning to the application. We got a lot of feedback because this brings overhead for simple applications. -With the version 4.3, Angular UI has an option to use its own login page with resource owner password flow. Please refer to [the documentation](https://github.com/abpframework/abp/blob/dev/docs/en/UI/Angular/Account-Module.md) to learn how to make it working. +With version 4.3, Angular UI can use its login page with resource owner password flow. Please refer to [the documentation](https://github.com/abpframework/abp/blob/dev/docs/en/UI/Angular/Account-Module.md) to learn how to make it work. ### Volo.Abp.EntityFrameworkCore.Oracle Package We couldn't update the [Oracle.EntityFrameworkCore](https://www.nuget.org/packages/Oracle.EntityFrameworkCore/) package on .NET 5.0 upgrade since it was not supporting .NET 5.0 at that time. Now, it supports .NET 5.0 and we've upgraded the package. -See [the documentation](https://docs.abp.io/en/abp/4.3/Entity-Framework-Core-Oracle-Official) to learn how to switch to this package for Oracle database. +See [the documentation](https://docs.abp.io/en/abp/4.3/Entity-Framework-Core-Oracle-Official) to learn how to switch to this package for the Oracle database. ### Add Basic Theme Into Your Solution -ABP Framework provides a strong theming system. However, the default theme, named the Basic Theme, has a non-styled, base Bootstrap UI. It is expected that you override styles and UI components of that theme in a serious application. +ABP Framework provides a strong theming system. However, the default theme, named the Basic Theme, has a non-styled, base Bootstrap UI. It is expected that you override the styles and UI components of that theme in a serious application. -There are some articles (see for [mvc](https://community.abp.io/articles/creating-a-new-ui-theme-by-copying-the-basic-theme-for-mvc-ui-yt9b18io) & [blazor](https://community.abp.io/articles/creating-a-new-ui-theme-by-copying-the-basic-theme-for-blazor-ui-qaf5ho1b)) to explain how to include the Basic Theme's source code into your solution to fully modify it. However, it still requires some manual work. +There are some articles (see for [mvc](https://community.abp.io/articles/creating-a-new-ui-theme-by-copying-the-basic-theme-for-mvc-ui-yt9b18io) & [blazor](https://community.abp.io/articles/creating-a-new-ui-theme-by-copying-the-basic-theme-for-blazor-ui-qaf5ho1b)) to explain how to include the Basic Theme's source code into your solution to modify it fully. However, it still requires some manual work. With this version, ABP CLI providing a command to add the Basic Theme's source code into your solution. Run the following command in a command-line terminal inside the root directory of your solution: @@ -141,7 +141,7 @@ abp add-package Volo.Abp.AspNetCore.Components.Server.BasicTheme --with-source-c abp add-package Volo.Abp.AspNetCore.Components.Web.BasicTheme --with-source-code --add-to-solution ```` -As you see, Blazor UI developers should add two packages. The Basic Theme consists of two packages for the Blazor UI: one for wasm / server and one shared. +As you see, Blazor UI developers should add two packages. The Basic Theme consists of two packages for the Blazor UI: one for wasm/server and one shared. **Angular UI** @@ -155,7 +155,7 @@ abp add-package @abp/ng.theme.basic --with-source-code In ASP.NET Core, logging is not possible before the dependency injection phase is completed. For example, you can't write log in `ConfigureServices` method. However, we sometimes need to write logs in this stage. -Introducing the `IInitLogger` service, which allows to write logs inside the `ConfigureServices` method. +We are introducing the `IInitLogger` service, which allows writing logs inside the `ConfigureServices` method. **Example:** @@ -170,9 +170,9 @@ public class MyModule : AbpModule } ```` -Logs are written once the service registration phase is completed. It stores the written logs in memory, then write logs to the actual `ILogger` when it is ready. +Logs are written once the service registration phase is completed. It stores the written logs in memory and then writes logs to the actual `ILogger` when ready. -> Notice: Startup templates come with [Serilog](https://serilog.net/) pre-installed. So, you can write logs everywhere by directly using its static API (ex: `Log.Information("...");`). The `InitLogger` is a way to write pre-initialization logs without depending a particular logging library. So, it makes it very handy to write logs inside reusable modules. +> Notice: Startup templates come with [Serilog](https://serilog.net/) pre-installed. So, you can write logs everywhere by directly using its static API (ex: `Log.Information("...");`). The `InitLogger` is a way to write pre-initialization logs without depending on a particular logging library. So, it makes it very handy to write logs inside reusable modules. ### Other Features/Changes @@ -186,4 +186,4 @@ See the [4.3 milestone](https://github.com/abpframework/abp/milestone/49) on Git ## Feedback -Please check out the ABP Framework 4.3 RC and [provide feedback](https://github.com/abpframework/abp/issues/new) to help us to release a more stable version. **The planned release date for the [4.3.0 final](https://github.com/abpframework/abp/milestone/50) version is April 15, 2021**. \ No newline at end of file +Please check out the ABP Framework 4.3 RC and [provide feedback](https://github.com/abpframework/abp/issues/new) to help us release a more stable version. **The planned release date for the [4.3.0 final](https://github.com/abpframework/abp/milestone/50) version is April 15, 2021**.