From 35c1d810c4e4dc4b9aef2db5baf23bf474181f7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mehmet=20Tu=CC=88ken?= Date: Wed, 18 Dec 2019 02:22:08 +0300 Subject: [PATCH 001/222] [framework] fix mongo.exe dispose --- .../Volo/Abp/MongoDB/AbpMongoDbTestModule.cs | 7 ++---- .../Abp/MongoDB/Auditing/Auditing_Tests.cs | 2 ++ .../MultiTenant_Creation_Tests.cs | 2 ++ .../DataFiltering/MultiTenant_Filter_Tests.cs | 2 ++ .../DataFiltering/SoftDelete_Filter_Tests.cs | 2 ++ .../MongoDB/DataFiltering/SoftDelete_Tests.cs | 2 ++ .../MongoDB/Domain/ConcurrencyStamp_Tests.cs | 2 ++ .../MongoDB/Domain/ExtraProperties_Tests.cs | 2 ++ .../DomainEvents/DomainEvents_Tests.cs | 2 ++ .../DomainEvents/EntityChangeEvents_Tests.cs | 2 ++ .../Volo/Abp/MongoDB/MongoDbFixture.cs | 25 +++++++++++++++++++ .../Volo/Abp/MongoDB/MongoTestCollection.cs | 10 ++++++++ .../Repositories/Repository_Basic_Tests.cs | 1 + .../Repository_Basic_Tests_With_Int_Pk.cs | 1 + .../Repository_Queryable_Tests.cs | 2 ++ .../Repository_Specifications_Tests.cs | 2 ++ .../Abp/MongoDB/Uow/Uow_Completed_Tests.cs | 3 ++- 17 files changed, 63 insertions(+), 6 deletions(-) create mode 100644 framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoDbFixture.cs create mode 100644 framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoTestCollection.cs diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/AbpMongoDbTestModule.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/AbpMongoDbTestModule.cs index 86620366b3..112ecaf34d 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/AbpMongoDbTestModule.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/AbpMongoDbTestModule.cs @@ -1,6 +1,5 @@ using System; using Microsoft.Extensions.DependencyInjection; -using Mongo2Go; using Volo.Abp.Data; using Volo.Abp.Modularity; using Volo.Abp.TestApp; @@ -15,13 +14,11 @@ namespace Volo.Abp.MongoDB )] public class AbpMongoDbTestModule : AbpModule { - private static readonly MongoDbRunner MongoDbRunner = MongoDbRunner.Start(); - public override void ConfigureServices(ServiceConfigurationContext context) { - var connectionString = MongoDbRunner.ConnectionString.EnsureEndsWith('/') + + var connectionString = MongoDbFixture.GetConnectionString().EnsureEndsWith('/') + "Db_" + - Guid.NewGuid().ToString("N"); + Guid.NewGuid().ToString("N"); Configure(options => { diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Auditing/Auditing_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Auditing/Auditing_Tests.cs index c5d7b87752..e20cceaf0e 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Auditing/Auditing_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Auditing/Auditing_Tests.cs @@ -1,7 +1,9 @@ using Volo.Abp.TestApp.Testing; +using Xunit; namespace Volo.Abp.MongoDB.Auditing { + [Collection("MongoDB Collection")] public class Auditing_Tests : Auditing_Tests { diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/MultiTenant_Creation_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/MultiTenant_Creation_Tests.cs index a1ee94a943..3e4e532f5a 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/MultiTenant_Creation_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/MultiTenant_Creation_Tests.cs @@ -1,7 +1,9 @@ using Volo.Abp.TestApp.Testing; +using Xunit; namespace Volo.Abp.MongoDB.DataFiltering { + [Collection("MongoDB Collection")] public class MultiTenant_Creation_Tests : MultiTenant_Creation_Tests { diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/MultiTenant_Filter_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/MultiTenant_Filter_Tests.cs index c23761a05c..c4ace6f1fe 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/MultiTenant_Filter_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/MultiTenant_Filter_Tests.cs @@ -1,7 +1,9 @@ using Volo.Abp.TestApp.Testing; +using Xunit; namespace Volo.Abp.MongoDB.DataFiltering { + [Collection("MongoDB Collection")] public class MultiTenant_Filter_Tests : MultiTenant_Filter_Tests { diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/SoftDelete_Filter_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/SoftDelete_Filter_Tests.cs index 3636b998bb..6a6167133b 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/SoftDelete_Filter_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/SoftDelete_Filter_Tests.cs @@ -1,7 +1,9 @@ using Volo.Abp.TestApp.Testing; +using Xunit; namespace Volo.Abp.MongoDB.DataFiltering { + [Collection("MongoDB Collection")] public class SoftDelete_Filter_Tests : SoftDelete_Filter_Tests { diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/SoftDelete_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/SoftDelete_Tests.cs index fdd8ec1a5e..f3d9d75c9e 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/SoftDelete_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/SoftDelete_Tests.cs @@ -1,7 +1,9 @@ using Volo.Abp.TestApp.Testing; +using Xunit; namespace Volo.Abp.MongoDB.DataFiltering { + [Collection("MongoDB Collection")] public class SoftDelete_Tests : SoftDelete_Tests { diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Domain/ConcurrencyStamp_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Domain/ConcurrencyStamp_Tests.cs index 117cd5dde1..4882e43c13 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Domain/ConcurrencyStamp_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Domain/ConcurrencyStamp_Tests.cs @@ -1,7 +1,9 @@ using Volo.Abp.TestApp.Testing; +using Xunit; namespace Volo.Abp.MongoDB.Domain { + [Collection("MongoDB Collection")] public class ConcurrencyStamp_Tests : ConcurrencyStamp_Tests { diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Domain/ExtraProperties_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Domain/ExtraProperties_Tests.cs index b389ad61b9..9a4675e24f 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Domain/ExtraProperties_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Domain/ExtraProperties_Tests.cs @@ -1,7 +1,9 @@ using Volo.Abp.TestApp.Testing; +using Xunit; namespace Volo.Abp.MongoDB.Domain { + [Collection("MongoDB Collection")] public class ExtraProperties_Tests : ExtraProperties_Tests { diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DomainEvents/DomainEvents_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DomainEvents/DomainEvents_Tests.cs index b01cb690f6..a9f232b989 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DomainEvents/DomainEvents_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DomainEvents/DomainEvents_Tests.cs @@ -1,7 +1,9 @@ using Volo.Abp.TestApp.Testing; +using Xunit; namespace Volo.Abp.MongoDB.DomainEvents { + [Collection("MongoDB Collection")] public class DomainEvents_Tests : DomainEvents_Tests { } diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DomainEvents/EntityChangeEvents_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DomainEvents/EntityChangeEvents_Tests.cs index 0df187f34e..3f4882b524 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DomainEvents/EntityChangeEvents_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DomainEvents/EntityChangeEvents_Tests.cs @@ -1,7 +1,9 @@ using Volo.Abp.TestApp.Testing; +using Xunit; namespace Volo.Abp.MongoDB.DomainEvents { + [Collection("MongoDB Collection")] public class EntityChangeEvents_Tests : EntityChangeEvents_Tests { diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoDbFixture.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoDbFixture.cs new file mode 100644 index 0000000000..0e483febab --- /dev/null +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoDbFixture.cs @@ -0,0 +1,25 @@ +using System; +using Mongo2Go; + +namespace Volo.Abp.MongoDB +{ + public class MongoDbFixture : IDisposable + { + public static MongoDbRunner MongoDbRunner; + + public MongoDbFixture() + { + MongoDbRunner = MongoDbRunner.Start(); + } + + public static string GetConnectionString() + { + return MongoDbRunner.ConnectionString; + } + + public void Dispose() + { + MongoDbRunner?.Dispose(); + } + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoTestCollection.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoTestCollection.cs new file mode 100644 index 0000000000..2d57ed24fa --- /dev/null +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoTestCollection.cs @@ -0,0 +1,10 @@ +using Xunit; + +namespace Volo.Abp.MongoDB +{ + [CollectionDefinition("MongoDB Collection")] + public class MongoTestCollection : ICollectionFixture + { + + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests.cs index 72774be545..112044d22d 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests.cs @@ -9,6 +9,7 @@ using Xunit; namespace Volo.Abp.MongoDB.Repositories { + [Collection("MongoDB Collection")] public class Repository_Basic_Tests : Repository_Basic_Tests { [Fact] diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests_With_Int_Pk.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests_With_Int_Pk.cs index 58914e8e50..a3ae87cf58 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests_With_Int_Pk.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests_With_Int_Pk.cs @@ -3,6 +3,7 @@ using Xunit; namespace Volo.Abp.MongoDB.Repositories { + [Collection("MongoDB Collection")] public class Repository_Basic_Tests_With_Int_Pk : Repository_Basic_Tests_With_Int_Pk { [Fact(Skip = "Int PKs are not working for MongoDb")] diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Queryable_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Queryable_Tests.cs index d396471bed..f75a5b4a34 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Queryable_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Queryable_Tests.cs @@ -1,7 +1,9 @@ using Volo.Abp.TestApp.Testing; +using Xunit; namespace Volo.Abp.MongoDB.Repositories { + [Collection("MongoDB Collection")] public class Repository_Queryable_Tests : Repository_Queryable_Tests { diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Specifications_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Specifications_Tests.cs index 6529b4c5a9..c0a4439f09 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Specifications_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Specifications_Tests.cs @@ -1,7 +1,9 @@ using Volo.Abp.TestApp.Testing; +using Xunit; namespace Volo.Abp.MongoDB.Repositories { + [Collection("MongoDB Collection")] public class Repository_Specifications_Tests : Repository_Specifications_Tests { } diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Uow/Uow_Completed_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Uow/Uow_Completed_Tests.cs index 4773644885..00bae8dc12 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Uow/Uow_Completed_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Uow/Uow_Completed_Tests.cs @@ -1,9 +1,10 @@ using Volo.Abp.TestApp.Testing; +using Xunit; namespace Volo.Abp.MongoDB.Uow { + [Collection("MongoDB Collection")] public class Uow_Completed_Tests : Uow_Completed_Tests { - } } \ No newline at end of file From ca57cf3ea70fa551026d8de09bb115da26e63d3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mehmet=20Tu=CC=88ken?= Date: Wed, 18 Dec 2019 02:39:10 +0300 Subject: [PATCH 002/222] refactor --- .../Volo/Abp/MongoDB/AbpMongoDbTestModule.cs | 2 +- .../Volo/Abp/MongoDB/Auditing/Auditing_Tests.cs | 2 +- .../DataFiltering/MultiTenant_Creation_Tests.cs | 2 +- .../DataFiltering/MultiTenant_Filter_Tests.cs | 2 +- .../DataFiltering/SoftDelete_Filter_Tests.cs | 2 +- .../Abp/MongoDB/DataFiltering/SoftDelete_Tests.cs | 2 +- .../Abp/MongoDB/Domain/ConcurrencyStamp_Tests.cs | 2 +- .../Abp/MongoDB/Domain/ExtraProperties_Tests.cs | 2 +- .../Abp/MongoDB/DomainEvents/DomainEvents_Tests.cs | 2 +- .../DomainEvents/EntityChangeEvents_Tests.cs | 2 +- .../Volo/Abp/MongoDB/MongoDbFixture.cs | 13 ++----------- .../Volo/Abp/MongoDB/MongoTestCollection.cs | 4 ++-- .../MongoDB/Repositories/Repository_Basic_Tests.cs | 2 +- .../Repository_Basic_Tests_With_Int_Pk.cs | 2 +- .../Repositories/Repository_Queryable_Tests.cs | 2 +- .../Repositories/Repository_Specifications_Tests.cs | 2 +- .../Volo/Abp/MongoDB/Uow/Uow_Completed_Tests.cs | 2 +- .../Volo/Abp/AuditLogging/MongoDB/MongoDbFixture.cs | 7 +++++++ .../Abp/AuditLogging/MongoDB/MongoTestCollection.cs | 7 +++++++ 19 files changed, 33 insertions(+), 28 deletions(-) create mode 100644 modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoDbFixture.cs create mode 100644 modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoTestCollection.cs diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/AbpMongoDbTestModule.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/AbpMongoDbTestModule.cs index 112ecaf34d..cfa7b033b7 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/AbpMongoDbTestModule.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/AbpMongoDbTestModule.cs @@ -16,7 +16,7 @@ namespace Volo.Abp.MongoDB { public override void ConfigureServices(ServiceConfigurationContext context) { - var connectionString = MongoDbFixture.GetConnectionString().EnsureEndsWith('/') + + var connectionString = MongoDbFixture.ConnectionString.EnsureEndsWith('/') + "Db_" + Guid.NewGuid().ToString("N"); diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Auditing/Auditing_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Auditing/Auditing_Tests.cs index e20cceaf0e..b08c2120a4 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Auditing/Auditing_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Auditing/Auditing_Tests.cs @@ -3,7 +3,7 @@ using Xunit; namespace Volo.Abp.MongoDB.Auditing { - [Collection("MongoDB Collection")] + [Collection(MongoTestCollection.Name)] public class Auditing_Tests : Auditing_Tests { diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/MultiTenant_Creation_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/MultiTenant_Creation_Tests.cs index 3e4e532f5a..0ab365a568 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/MultiTenant_Creation_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/MultiTenant_Creation_Tests.cs @@ -3,7 +3,7 @@ using Xunit; namespace Volo.Abp.MongoDB.DataFiltering { - [Collection("MongoDB Collection")] + [Collection(MongoTestCollection.Name)] public class MultiTenant_Creation_Tests : MultiTenant_Creation_Tests { diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/MultiTenant_Filter_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/MultiTenant_Filter_Tests.cs index c4ace6f1fe..c32b640e03 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/MultiTenant_Filter_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/MultiTenant_Filter_Tests.cs @@ -3,7 +3,7 @@ using Xunit; namespace Volo.Abp.MongoDB.DataFiltering { - [Collection("MongoDB Collection")] + [Collection(MongoTestCollection.Name)] public class MultiTenant_Filter_Tests : MultiTenant_Filter_Tests { diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/SoftDelete_Filter_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/SoftDelete_Filter_Tests.cs index 6a6167133b..5de6caf661 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/SoftDelete_Filter_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/SoftDelete_Filter_Tests.cs @@ -3,7 +3,7 @@ using Xunit; namespace Volo.Abp.MongoDB.DataFiltering { - [Collection("MongoDB Collection")] + [Collection(MongoTestCollection.Name)] public class SoftDelete_Filter_Tests : SoftDelete_Filter_Tests { diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/SoftDelete_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/SoftDelete_Tests.cs index f3d9d75c9e..bffb38f858 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/SoftDelete_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DataFiltering/SoftDelete_Tests.cs @@ -3,7 +3,7 @@ using Xunit; namespace Volo.Abp.MongoDB.DataFiltering { - [Collection("MongoDB Collection")] + [Collection(MongoTestCollection.Name)] public class SoftDelete_Tests : SoftDelete_Tests { diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Domain/ConcurrencyStamp_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Domain/ConcurrencyStamp_Tests.cs index 4882e43c13..88bf889b7c 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Domain/ConcurrencyStamp_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Domain/ConcurrencyStamp_Tests.cs @@ -3,7 +3,7 @@ using Xunit; namespace Volo.Abp.MongoDB.Domain { - [Collection("MongoDB Collection")] + [Collection(MongoTestCollection.Name)] public class ConcurrencyStamp_Tests : ConcurrencyStamp_Tests { diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Domain/ExtraProperties_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Domain/ExtraProperties_Tests.cs index 9a4675e24f..5f8f8784c3 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Domain/ExtraProperties_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Domain/ExtraProperties_Tests.cs @@ -3,7 +3,7 @@ using Xunit; namespace Volo.Abp.MongoDB.Domain { - [Collection("MongoDB Collection")] + [Collection(MongoTestCollection.Name)] public class ExtraProperties_Tests : ExtraProperties_Tests { diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DomainEvents/DomainEvents_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DomainEvents/DomainEvents_Tests.cs index a9f232b989..ed480a229e 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DomainEvents/DomainEvents_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DomainEvents/DomainEvents_Tests.cs @@ -3,7 +3,7 @@ using Xunit; namespace Volo.Abp.MongoDB.DomainEvents { - [Collection("MongoDB Collection")] + [Collection(MongoTestCollection.Name)] public class DomainEvents_Tests : DomainEvents_Tests { } diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DomainEvents/EntityChangeEvents_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DomainEvents/EntityChangeEvents_Tests.cs index 3f4882b524..184142d77c 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DomainEvents/EntityChangeEvents_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/DomainEvents/EntityChangeEvents_Tests.cs @@ -3,7 +3,7 @@ using Xunit; namespace Volo.Abp.MongoDB.DomainEvents { - [Collection("MongoDB Collection")] + [Collection(MongoTestCollection.Name)] public class EntityChangeEvents_Tests : EntityChangeEvents_Tests { diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoDbFixture.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoDbFixture.cs index 0e483febab..f401d0d6d4 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoDbFixture.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoDbFixture.cs @@ -5,18 +5,9 @@ namespace Volo.Abp.MongoDB { public class MongoDbFixture : IDisposable { - public static MongoDbRunner MongoDbRunner; + private static readonly MongoDbRunner MongoDbRunner = MongoDbRunner.Start(); + public static readonly string ConnectionString = MongoDbRunner.ConnectionString; - public MongoDbFixture() - { - MongoDbRunner = MongoDbRunner.Start(); - } - - public static string GetConnectionString() - { - return MongoDbRunner.ConnectionString; - } - public void Dispose() { MongoDbRunner?.Dispose(); diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoTestCollection.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoTestCollection.cs index 2d57ed24fa..ae23dc9450 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoTestCollection.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoTestCollection.cs @@ -2,9 +2,9 @@ using Xunit; namespace Volo.Abp.MongoDB { - [CollectionDefinition("MongoDB Collection")] + [CollectionDefinition(Name)] public class MongoTestCollection : ICollectionFixture { - + public const string Name = "MongoDB Collection"; } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests.cs index 112044d22d..64af3aa855 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests.cs @@ -9,7 +9,7 @@ using Xunit; namespace Volo.Abp.MongoDB.Repositories { - [Collection("MongoDB Collection")] + [Collection(MongoTestCollection.Name)] public class Repository_Basic_Tests : Repository_Basic_Tests { [Fact] diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests_With_Int_Pk.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests_With_Int_Pk.cs index a3ae87cf58..2b8be02617 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests_With_Int_Pk.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests_With_Int_Pk.cs @@ -3,7 +3,7 @@ using Xunit; namespace Volo.Abp.MongoDB.Repositories { - [Collection("MongoDB Collection")] + [Collection(MongoTestCollection.Name)] public class Repository_Basic_Tests_With_Int_Pk : Repository_Basic_Tests_With_Int_Pk { [Fact(Skip = "Int PKs are not working for MongoDb")] diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Queryable_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Queryable_Tests.cs index f75a5b4a34..05ffb6ae27 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Queryable_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Queryable_Tests.cs @@ -3,7 +3,7 @@ using Xunit; namespace Volo.Abp.MongoDB.Repositories { - [Collection("MongoDB Collection")] + [Collection(MongoTestCollection.Name)] public class Repository_Queryable_Tests : Repository_Queryable_Tests { diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Specifications_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Specifications_Tests.cs index c0a4439f09..4670ac5d00 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Specifications_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Specifications_Tests.cs @@ -3,7 +3,7 @@ using Xunit; namespace Volo.Abp.MongoDB.Repositories { - [Collection("MongoDB Collection")] + [Collection(MongoTestCollection.Name)] public class Repository_Specifications_Tests : Repository_Specifications_Tests { } diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Uow/Uow_Completed_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Uow/Uow_Completed_Tests.cs index 00bae8dc12..cef724b9bd 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Uow/Uow_Completed_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Uow/Uow_Completed_Tests.cs @@ -3,7 +3,7 @@ using Xunit; namespace Volo.Abp.MongoDB.Uow { - [Collection("MongoDB Collection")] + [Collection(MongoTestCollection.Name)] public class Uow_Completed_Tests : Uow_Completed_Tests { } diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoDbFixture.cs b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoDbFixture.cs new file mode 100644 index 0000000000..cc2f90e01d --- /dev/null +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoDbFixture.cs @@ -0,0 +1,7 @@ +namespace Volo.Abp.AuditLogging.MongoDB +{ + public class MongoDbFixture + { + + } +} \ No newline at end of file diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoTestCollection.cs b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoTestCollection.cs new file mode 100644 index 0000000000..4ed185cb9c --- /dev/null +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoTestCollection.cs @@ -0,0 +1,7 @@ +namespace Volo.Abp.AuditLogging.MongoDB +{ + public class MongoTestCollection + { + + } +} \ No newline at end of file From 1645483bd0b2cce12eb53934c2728184d49e2f3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mehmet=20Tu=CC=88ken?= Date: Wed, 18 Dec 2019 02:40:06 +0300 Subject: [PATCH 003/222] [modules/auditlogging] fix mongo.exe dispose --- .../MongoDB/AbpAuditLoggingMongoDbTestModule.cs | 4 +--- .../AuditLogging/MongoDB/AuditLogRepository_Tests.cs | 2 ++ .../AuditLogging/MongoDB/AuditStore_Basic_Tests.cs | 5 ++++- .../Volo/Abp/AuditLogging/MongoDB/MongoDbFixture.cs | 11 ++++++++++- .../Abp/AuditLogging/MongoDB/MongoTestCollection.cs | 7 +++++-- 5 files changed, 22 insertions(+), 7 deletions(-) diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AbpAuditLoggingMongoDbTestModule.cs b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AbpAuditLoggingMongoDbTestModule.cs index 7c70d720ec..b57c204818 100644 --- a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AbpAuditLoggingMongoDbTestModule.cs +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AbpAuditLoggingMongoDbTestModule.cs @@ -12,11 +12,9 @@ namespace Volo.Abp.AuditLogging.MongoDB )] public class AbpAuditLoggingMongoDbTestModule : AbpModule { - private static readonly MongoDbRunner MongoDbRunner = MongoDbRunner.Start(); - public override void ConfigureServices(ServiceConfigurationContext context) { - var connectionString = MongoDbRunner.ConnectionString.EnsureEndsWith('/') + + var connectionString = MongoDbFixture.ConnectionString.EnsureEndsWith('/') + "Db_" + Guid.NewGuid().ToString("N"); diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AuditLogRepository_Tests.cs b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AuditLogRepository_Tests.cs index ffcc2094ab..a0edd58a45 100644 --- a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AuditLogRepository_Tests.cs +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AuditLogRepository_Tests.cs @@ -1,9 +1,11 @@ using System; using System.Collections.Generic; using System.Text; +using Xunit; namespace Volo.Abp.AuditLogging.MongoDB { + [Collection(MongoTestCollection.Name)] public class AuditLogRepository_Tests : AuditLogRepository_Tests { diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AuditStore_Basic_Tests.cs b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AuditStore_Basic_Tests.cs index fa7a41ecfd..ad590c61e1 100644 --- a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AuditStore_Basic_Tests.cs +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AuditStore_Basic_Tests.cs @@ -1,5 +1,8 @@ -namespace Volo.Abp.AuditLogging.MongoDB +using Xunit; + +namespace Volo.Abp.AuditLogging.MongoDB { + [Collection(MongoTestCollection.Name)] public class AuditStore_Basic_Tests : AuditStore_Basic_Tests { diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoDbFixture.cs b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoDbFixture.cs index cc2f90e01d..33803c1af4 100644 --- a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoDbFixture.cs +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoDbFixture.cs @@ -1,7 +1,16 @@ +using System; +using Mongo2Go; + namespace Volo.Abp.AuditLogging.MongoDB { - public class MongoDbFixture + public class MongoDbFixture : IDisposable { + private static readonly MongoDbRunner MongoDbRunner = MongoDbRunner.Start(); + public static readonly string ConnectionString = MongoDbRunner.ConnectionString; + public void Dispose() + { + MongoDbRunner?.Dispose(); + } } } \ No newline at end of file diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoTestCollection.cs b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoTestCollection.cs index 4ed185cb9c..1d89caa8b0 100644 --- a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoTestCollection.cs +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoTestCollection.cs @@ -1,7 +1,10 @@ +using Xunit; + namespace Volo.Abp.AuditLogging.MongoDB { - public class MongoTestCollection + [CollectionDefinition(Name)] + public class MongoTestCollection : ICollectionFixture { - + public const string Name = "MongoDB Collection"; } } \ No newline at end of file From 734059d9ff727aec681fe5693be6beddbab1ef9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mehmet=20Tu=CC=88ken?= Date: Wed, 18 Dec 2019 02:46:26 +0300 Subject: [PATCH 004/222] [modules/backgroundjobs] fix mongo.exe dispose --- .../AbpBackgroundJobsMongoDbTestModule.cs | 6 +----- .../MongoDB/BackgroundJobRepositoryTests.cs | 5 ++++- .../Abp/BackgroundJobs/MongoDB/MongoDbFixture.cs | 16 ++++++++++++++++ .../MongoDB/MongoTestCollection.cs | 10 ++++++++++ 4 files changed, 31 insertions(+), 6 deletions(-) create mode 100644 modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/MongoDbFixture.cs create mode 100644 modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/MongoTestCollection.cs diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/AbpBackgroundJobsMongoDbTestModule.cs b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/AbpBackgroundJobsMongoDbTestModule.cs index 4147917829..07be76b792 100644 --- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/AbpBackgroundJobsMongoDbTestModule.cs +++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/AbpBackgroundJobsMongoDbTestModule.cs @@ -1,6 +1,4 @@ using System; -using Microsoft.Extensions.DependencyInjection; -using Mongo2Go; using Volo.Abp.Data; using Volo.Abp.Modularity; @@ -12,11 +10,9 @@ namespace Volo.Abp.BackgroundJobs.MongoDB )] public class AbpBackgroundJobsMongoDbTestModule : AbpModule { - private static readonly MongoDbRunner MongoDbRunner = MongoDbRunner.Start(); - public override void ConfigureServices(ServiceConfigurationContext context) { - var connectionString = MongoDbRunner.ConnectionString.EnsureEndsWith('/') + + var connectionString = MongoDbFixture.ConnectionString.EnsureEndsWith('/') + "Db_" + Guid.NewGuid().ToString("N"); diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/BackgroundJobRepositoryTests.cs b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/BackgroundJobRepositoryTests.cs index 429cf4821f..f3827c50e2 100644 --- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/BackgroundJobRepositoryTests.cs +++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/BackgroundJobRepositoryTests.cs @@ -1,5 +1,8 @@ -namespace Volo.Abp.BackgroundJobs.MongoDB +using Xunit; + +namespace Volo.Abp.BackgroundJobs.MongoDB { + [Collection((MongoTestCollection.Name))] public class BackgroundJobRepositoryTests : BackgroundJobRepository_Tests { diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/MongoDbFixture.cs b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/MongoDbFixture.cs new file mode 100644 index 0000000000..3ae1d8fc10 --- /dev/null +++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/MongoDbFixture.cs @@ -0,0 +1,16 @@ +using System; +using Mongo2Go; + +namespace Volo.Abp.BackgroundJobs.MongoDB +{ + public class MongoDbFixture : IDisposable + { + private static readonly MongoDbRunner MongoDbRunner = MongoDbRunner.Start(); + public static readonly string ConnectionString = MongoDbRunner.ConnectionString; + + public void Dispose() + { + MongoDbRunner?.Dispose(); + } + } +} \ No newline at end of file diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/MongoTestCollection.cs b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/MongoTestCollection.cs new file mode 100644 index 0000000000..0096ae6f10 --- /dev/null +++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/MongoTestCollection.cs @@ -0,0 +1,10 @@ +using Xunit; + +namespace Volo.Abp.BackgroundJobs.MongoDB +{ + [CollectionDefinition(Name)] + public class MongoTestCollection : ICollectionFixture + { + public const string Name = "MongoDB Collection"; + } +} \ No newline at end of file From db4a558f064113306872643fa967fd73410b987d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mehmet=20Tu=CC=88ken?= Date: Wed, 18 Dec 2019 02:48:07 +0300 Subject: [PATCH 005/222] remove unused usings --- .../AuditLogging/MongoDB/AbpAuditLoggingMongoDbTestModule.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AbpAuditLoggingMongoDbTestModule.cs b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AbpAuditLoggingMongoDbTestModule.cs index b57c204818..5cac32faae 100644 --- a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AbpAuditLoggingMongoDbTestModule.cs +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AbpAuditLoggingMongoDbTestModule.cs @@ -1,6 +1,4 @@ using System; -using Microsoft.Extensions.DependencyInjection; -using Mongo2Go; using Volo.Abp.Data; using Volo.Abp.Modularity; From 4adaf68123aa4d86db728b4755575db64a7e22dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mehmet=20Tu=CC=88ken?= Date: Wed, 18 Dec 2019 02:55:26 +0300 Subject: [PATCH 006/222] [modules/blogging] fix mongo.exe dispose --- .../Volo/Blogging/Blogs/BlogRepository_Tests.cs | 2 ++ .../Blogging/Comments/CommentRepository_Tests.cs | 2 ++ .../MongoDB/BloggingMongoDBTestModule.cs | 6 +----- .../Volo/Blogging/MongoDB/MongoDbFixture.cs | 16 ++++++++++++++++ .../Volo/Blogging/MongoDB/MongoTestCollection.cs | 10 ++++++++++ .../Volo/Blogging/Posts/PostRepository_Tests.cs | 2 ++ .../Volo/Blogging/Tagging/TagRepository_Tests.cs | 2 ++ 7 files changed, 35 insertions(+), 5 deletions(-) create mode 100644 modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/MongoDbFixture.cs create mode 100644 modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/MongoTestCollection.cs diff --git a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/Blogs/BlogRepository_Tests.cs b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/Blogs/BlogRepository_Tests.cs index 76044f257c..060d3b86fc 100644 --- a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/Blogs/BlogRepository_Tests.cs +++ b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/Blogs/BlogRepository_Tests.cs @@ -1,8 +1,10 @@ using Volo.Blogging.Blogs; using Volo.Blogging.MongoDB; +using Xunit; namespace Volo.Blogging { + [Collection(MongoTestCollection.Name)] public class BlogRepository_Tests : BlogRepository_Tests { } diff --git a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/Comments/CommentRepository_Tests.cs b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/Comments/CommentRepository_Tests.cs index a001f9b0d9..d956cf1b15 100644 --- a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/Comments/CommentRepository_Tests.cs +++ b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/Comments/CommentRepository_Tests.cs @@ -1,8 +1,10 @@ using Volo.Blogging.Comments; using Volo.Blogging.MongoDB; +using Xunit; namespace Volo.Blogging { + [Collection(MongoTestCollection.Name)] public class CommentRepository_Tests : CommentRepository_Tests { } diff --git a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/BloggingMongoDBTestModule.cs b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/BloggingMongoDBTestModule.cs index 4c4b34ef54..1e68cebf21 100644 --- a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/BloggingMongoDBTestModule.cs +++ b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/BloggingMongoDBTestModule.cs @@ -1,6 +1,4 @@ using System; -using Mongo2Go; -using Volo.Abp; using Volo.Abp.Data; using Volo.Abp.Modularity; @@ -12,11 +10,9 @@ namespace Volo.Blogging.MongoDB )] public class BloggingMongoDbTestModule : AbpModule { - private static readonly MongoDbRunner MongoDbRunner = MongoDbRunner.Start(); - public override void ConfigureServices(ServiceConfigurationContext context) { - var connectionString = MongoDbRunner.ConnectionString.EnsureEndsWith('/') + + var connectionString = MongoDbFixture.ConnectionString.EnsureEndsWith('/') + "Db_" + Guid.NewGuid().ToString("N"); diff --git a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/MongoDbFixture.cs b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/MongoDbFixture.cs new file mode 100644 index 0000000000..d5fbfb4451 --- /dev/null +++ b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/MongoDbFixture.cs @@ -0,0 +1,16 @@ +using System; +using Mongo2Go; + +namespace Volo.Blogging.MongoDB +{ + public class MongoDbFixture : IDisposable + { + private static readonly MongoDbRunner MongoDbRunner = MongoDbRunner.Start(); + public static readonly string ConnectionString = MongoDbRunner.ConnectionString; + + public void Dispose() + { + MongoDbRunner?.Dispose(); + } + } +} \ No newline at end of file diff --git a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/MongoTestCollection.cs b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/MongoTestCollection.cs new file mode 100644 index 0000000000..f075e5dd07 --- /dev/null +++ b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/MongoTestCollection.cs @@ -0,0 +1,10 @@ +using Xunit; + +namespace Volo.Blogging.MongoDB +{ + [CollectionDefinition(Name)] + public class MongoTestCollection : ICollectionFixture + { + public const string Name = "MongoDB Collection"; + } +} \ No newline at end of file diff --git a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/Posts/PostRepository_Tests.cs b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/Posts/PostRepository_Tests.cs index d0e13ba403..814f0d206e 100644 --- a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/Posts/PostRepository_Tests.cs +++ b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/Posts/PostRepository_Tests.cs @@ -1,8 +1,10 @@ using Volo.Blogging.Posts; using Volo.Blogging.MongoDB; +using Xunit; namespace Volo.Blogging { + [Collection(MongoTestCollection.Name)] public class PostRepository_Tests : PostRepository_Tests { } diff --git a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/Tagging/TagRepository_Tests.cs b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/Tagging/TagRepository_Tests.cs index 8f13c6c6b0..66cb0d52c5 100644 --- a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/Tagging/TagRepository_Tests.cs +++ b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/Tagging/TagRepository_Tests.cs @@ -1,8 +1,10 @@ using Volo.Blogging.Tagging; using Volo.Blogging.MongoDB; +using Xunit; namespace Volo.Blogging { + [Collection(MongoTestCollection.Name)] public class TagRepository_Tests : TagRepository_Tests { } From 8bf5a24fbc40e01ebc8fd56bc7d17557cfd1168e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mehmet=20Tu=CC=88ken?= Date: Wed, 18 Dec 2019 03:14:34 +0300 Subject: [PATCH 007/222] [modules/docs] fix mongo.exe dispose --- .../Volo/Docs/MongoDB/DocsMongoDBTestModule.cs | 6 +----- .../Volo/Docs/MongoDB/MongoDbFixture.cs | 16 ++++++++++++++++ .../Volo/Docs/MongoDB/MongoTestCollection.cs | 10 ++++++++++ .../Volo/Docs/Project/ProjectRepository_Tests.cs | 2 ++ 4 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/MongoDbFixture.cs create mode 100644 modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/MongoTestCollection.cs diff --git a/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/DocsMongoDBTestModule.cs b/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/DocsMongoDBTestModule.cs index c5fef83ddb..b31f9b5acd 100644 --- a/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/DocsMongoDBTestModule.cs +++ b/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/DocsMongoDBTestModule.cs @@ -1,6 +1,4 @@ using System; -using Mongo2Go; -using Volo.Abp; using Volo.Abp.Data; using Volo.Abp.Modularity; @@ -12,11 +10,9 @@ namespace Volo.Docs.MongoDB )] public class DocsMongoDBTestModule : AbpModule { - private static readonly MongoDbRunner MongoDbRunner = MongoDbRunner.Start(); - public override void ConfigureServices(ServiceConfigurationContext context) { - var connectionString = MongoDbRunner.ConnectionString.EnsureEndsWith('/') + + var connectionString = MongoDbFixture.ConnectionString.EnsureEndsWith('/') + "Db_" + Guid.NewGuid().ToString("N"); diff --git a/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/MongoDbFixture.cs b/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/MongoDbFixture.cs new file mode 100644 index 0000000000..fc920813ab --- /dev/null +++ b/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/MongoDbFixture.cs @@ -0,0 +1,16 @@ +using System; +using Mongo2Go; + +namespace Volo.Docs.MongoDB +{ + public class MongoDbFixture : IDisposable + { + private static readonly MongoDbRunner MongoDbRunner = MongoDbRunner.Start(); + public static readonly string ConnectionString = MongoDbRunner.ConnectionString; + + public void Dispose() + { + MongoDbRunner?.Dispose(); + } + } +} \ No newline at end of file diff --git a/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/MongoTestCollection.cs b/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/MongoTestCollection.cs new file mode 100644 index 0000000000..86505c5a73 --- /dev/null +++ b/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/MongoTestCollection.cs @@ -0,0 +1,10 @@ +using Xunit; + +namespace Volo.Docs.MongoDB +{ + [CollectionDefinition(Name)] + public class MongoTestCollection : ICollectionFixture + { + public const string Name = "MongoDB Collection"; + } +} \ No newline at end of file diff --git a/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/Project/ProjectRepository_Tests.cs b/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/Project/ProjectRepository_Tests.cs index 6f2df01a11..696dd31185 100644 --- a/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/Project/ProjectRepository_Tests.cs +++ b/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/Project/ProjectRepository_Tests.cs @@ -1,7 +1,9 @@ using Volo.Docs.MongoDB; +using Xunit; namespace Volo.Docs.Project { + [Collection(MongoTestCollection.Name)] public class ProjectRepository_Tests : ProjectRepository_Tests { } From 993d5c5a09320c92a9c4fa8bbf7bd0c22e385943 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mehmet=20Tu=CC=88ken?= Date: Wed, 18 Dec 2019 03:24:53 +0300 Subject: [PATCH 008/222] [modules/featuremanagement] fix mongo.exe dispose --- .../AbpFeatureManagementMongoDbTestModule.cs | 5 +---- .../MongoDB/FeatureManagementStore_Tests.cs | 5 ++--- .../MongoDB/FeatureValueRepositoryTests.cs | 5 ++++- .../FeatureManagement/MongoDB/MongoDbFixture.cs | 16 ++++++++++++++++ .../MongoDB/MongoTestCollection.cs | 10 ++++++++++ 5 files changed, 33 insertions(+), 8 deletions(-) create mode 100644 modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/MongoDbFixture.cs create mode 100644 modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/MongoTestCollection.cs diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/AbpFeatureManagementMongoDbTestModule.cs b/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/AbpFeatureManagementMongoDbTestModule.cs index 00b5b22871..04d4ac916f 100644 --- a/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/AbpFeatureManagementMongoDbTestModule.cs +++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/AbpFeatureManagementMongoDbTestModule.cs @@ -1,5 +1,4 @@ using System; -using Mongo2Go; using Volo.Abp.Data; using Volo.Abp.Modularity; @@ -11,11 +10,9 @@ namespace Volo.Abp.FeatureManagement.MongoDB )] public class AbpFeatureManagementMongoDbTestModule : AbpModule { - private static readonly MongoDbRunner MongoDbRunner = MongoDbRunner.Start(); - public override void ConfigureServices(ServiceConfigurationContext context) { - var connectionString = MongoDbRunner.ConnectionString.EnsureEndsWith('/') + + var connectionString = MongoDbFixture.ConnectionString.EnsureEndsWith('/') + "Db_" + Guid.NewGuid().ToString("N"); diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/FeatureManagementStore_Tests.cs b/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/FeatureManagementStore_Tests.cs index 7df6e3516b..0337bc8822 100644 --- a/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/FeatureManagementStore_Tests.cs +++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/FeatureManagementStore_Tests.cs @@ -1,9 +1,8 @@ -using System; -using System.Collections.Generic; -using System.Text; +using Xunit; namespace Volo.Abp.FeatureManagement.MongoDB { + [Collection(MongoTestCollection.Name)] public class FeatureManagementStore_Tests : FeatureManagementStore_Tests { diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/FeatureValueRepositoryTests.cs b/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/FeatureValueRepositoryTests.cs index 6184e4c90f..9654d8ab27 100644 --- a/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/FeatureValueRepositoryTests.cs +++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/FeatureValueRepositoryTests.cs @@ -1,5 +1,8 @@ -namespace Volo.Abp.FeatureManagement.MongoDB +using Xunit; + +namespace Volo.Abp.FeatureManagement.MongoDB { + [Collection(MongoTestCollection.Name)] public class FeatureValueRepositoryTests : FeatureValueRepository_Tests { diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/MongoDbFixture.cs b/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/MongoDbFixture.cs new file mode 100644 index 0000000000..bfd7fa9c04 --- /dev/null +++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/MongoDbFixture.cs @@ -0,0 +1,16 @@ +using System; +using Mongo2Go; + +namespace Volo.Abp.FeatureManagement.MongoDB +{ + public class MongoDbFixture : IDisposable + { + private static readonly MongoDbRunner MongoDbRunner = MongoDbRunner.Start(); + public static readonly string ConnectionString = MongoDbRunner.ConnectionString; + + public void Dispose() + { + MongoDbRunner?.Dispose(); + } + } +} \ No newline at end of file diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/MongoTestCollection.cs b/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/MongoTestCollection.cs new file mode 100644 index 0000000000..c8a6e1c58c --- /dev/null +++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/MongoTestCollection.cs @@ -0,0 +1,10 @@ +using Xunit; + +namespace Volo.Abp.FeatureManagement.MongoDB +{ + [CollectionDefinition(Name)] + public class MongoTestCollection : ICollectionFixture + { + public const string Name = "MongoDB Collection"; + } +} \ No newline at end of file From 96f7b57ab73611c1eec297329d1042808a21d7a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mehmet=20Tu=CC=88ken?= Date: Wed, 18 Dec 2019 03:28:49 +0300 Subject: [PATCH 009/222] [modules/identity] fix mongo.exe dispose --- .../MongoDB/AbpIdentityMongoDbTestModule.cs | 6 +----- .../MongoDB/IdentityClaimTypeRepository_Tests.cs | 5 ++++- .../Identity/MongoDB/IdentityDataSeeder_Tests.cs | 5 ++++- .../MongoDB/IdentityRoleRepository_Tests.cs | 5 ++++- .../MongoDB/IdentityUserRepository_Tests.cs | 5 ++++- .../MongoDB/Identity_Repository_Resolve_Tests.cs | 5 ++++- .../Volo/Abp/Identity/MongoDB/MongoDbFixture.cs | 16 ++++++++++++++++ .../Abp/Identity/MongoDB/MongoTestCollection.cs | 10 ++++++++++ 8 files changed, 47 insertions(+), 10 deletions(-) create mode 100644 modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/MongoDbFixture.cs create mode 100644 modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/MongoTestCollection.cs diff --git a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbTestModule.cs b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbTestModule.cs index 6e9f3806a2..f730e5f445 100644 --- a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbTestModule.cs +++ b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbTestModule.cs @@ -1,6 +1,4 @@ using System; -using Microsoft.Extensions.DependencyInjection; -using Mongo2Go; using Volo.Abp.Data; using Volo.Abp.Modularity; using Volo.Abp.PermissionManagement.MongoDB; @@ -14,11 +12,9 @@ namespace Volo.Abp.Identity.MongoDB )] public class AbpIdentityMongoDbTestModule : AbpModule { - private static readonly MongoDbRunner MongoDbRunner = MongoDbRunner.Start(); - public override void ConfigureServices(ServiceConfigurationContext context) { - var connectionString = MongoDbRunner.ConnectionString.EnsureEndsWith('/') + + var connectionString = MongoDbFixture.ConnectionString.EnsureEndsWith('/') + "Db_" + Guid.NewGuid().ToString("N"); diff --git a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/IdentityClaimTypeRepository_Tests.cs b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/IdentityClaimTypeRepository_Tests.cs index b7926aae00..cc66856c06 100644 --- a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/IdentityClaimTypeRepository_Tests.cs +++ b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/IdentityClaimTypeRepository_Tests.cs @@ -1,5 +1,8 @@ -namespace Volo.Abp.Identity.MongoDB +using Xunit; + +namespace Volo.Abp.Identity.MongoDB { + [Collection(MongoTestCollection.Name)] public class IdentityClaimTypeRepository_Tests : IdentityClaimTypeRepository_Tests { diff --git a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/IdentityDataSeeder_Tests.cs b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/IdentityDataSeeder_Tests.cs index e97269c7e2..d614807395 100644 --- a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/IdentityDataSeeder_Tests.cs +++ b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/IdentityDataSeeder_Tests.cs @@ -1,5 +1,8 @@ -namespace Volo.Abp.Identity.MongoDB +using Xunit; + +namespace Volo.Abp.Identity.MongoDB { + [Collection(MongoTestCollection.Name)] public class IdentityDataSeeder_Tests : IdentityDataSeeder_Tests { diff --git a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/IdentityRoleRepository_Tests.cs b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/IdentityRoleRepository_Tests.cs index 4873aa7298..8fde9dbb2c 100644 --- a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/IdentityRoleRepository_Tests.cs +++ b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/IdentityRoleRepository_Tests.cs @@ -1,5 +1,8 @@ -namespace Volo.Abp.Identity.MongoDB +using Xunit; + +namespace Volo.Abp.Identity.MongoDB { + [Collection(MongoTestCollection.Name)] public class IdentityRoleRepository_Tests : IdentityRoleRepository_Tests { diff --git a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/IdentityUserRepository_Tests.cs b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/IdentityUserRepository_Tests.cs index 214d8f6986..e29a216ca7 100644 --- a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/IdentityUserRepository_Tests.cs +++ b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/IdentityUserRepository_Tests.cs @@ -1,5 +1,8 @@ -namespace Volo.Abp.Identity.MongoDB +using Xunit; + +namespace Volo.Abp.Identity.MongoDB { + [Collection(MongoTestCollection.Name)] public class IdentityUserRepository_Tests : IdentityUserRepository_Tests { diff --git a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/Identity_Repository_Resolve_Tests.cs b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/Identity_Repository_Resolve_Tests.cs index 5d6742adef..42020a4170 100644 --- a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/Identity_Repository_Resolve_Tests.cs +++ b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/Identity_Repository_Resolve_Tests.cs @@ -1,5 +1,8 @@ -namespace Volo.Abp.Identity.MongoDB +using Xunit; + +namespace Volo.Abp.Identity.MongoDB { + [Collection(MongoTestCollection.Name)] public class Identity_Repository_Resolve_Tests : Identity_Repository_Resolve_Tests { } diff --git a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/MongoDbFixture.cs b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/MongoDbFixture.cs new file mode 100644 index 0000000000..26de0a9399 --- /dev/null +++ b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/MongoDbFixture.cs @@ -0,0 +1,16 @@ +using System; +using Mongo2Go; + +namespace Volo.Abp.Identity.MongoDB +{ + public class MongoDbFixture : IDisposable + { + private static readonly MongoDbRunner MongoDbRunner = MongoDbRunner.Start(); + public static readonly string ConnectionString = MongoDbRunner.ConnectionString; + + public void Dispose() + { + MongoDbRunner?.Dispose(); + } + } +} \ No newline at end of file diff --git a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/MongoTestCollection.cs b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/MongoTestCollection.cs new file mode 100644 index 0000000000..ae01262908 --- /dev/null +++ b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/MongoTestCollection.cs @@ -0,0 +1,10 @@ +using Xunit; + +namespace Volo.Abp.Identity.MongoDB +{ + [CollectionDefinition(Name)] + public class MongoTestCollection : ICollectionFixture + { + public const string Name = "MongoDB Collection"; + } +} \ No newline at end of file From 18344cbdae4780a372b083dbc4f3129aaef15eeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mehmet=20Tu=CC=88ken?= Date: Wed, 18 Dec 2019 03:37:57 +0300 Subject: [PATCH 010/222] [modules/identityserver] fix mongo.exe dispose --- .../AbpIdentityServerMongoDbTestModule.cs | 5 +---- .../ApiResourceRepository_Tests.cs | 4 +++- .../Abp/IdentityServer/ClientRepository_Tests.cs | 5 ++--- .../IdentityResourceRepository_Tests.cs | 5 ++--- .../Volo/Abp/IdentityServer/MongoDbFixture.cs | 16 ++++++++++++++++ .../Abp/IdentityServer/MongoTestCollection.cs | 10 ++++++++++ .../PersistentGrantRepository_Tests.cs | 5 ++--- 7 files changed, 36 insertions(+), 14 deletions(-) create mode 100644 modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/MongoDbFixture.cs create mode 100644 modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/MongoTestCollection.cs diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/AbpIdentityServerMongoDbTestModule.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/AbpIdentityServerMongoDbTestModule.cs index ebfa34404d..d1721c720f 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/AbpIdentityServerMongoDbTestModule.cs +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/AbpIdentityServerMongoDbTestModule.cs @@ -1,5 +1,4 @@ using System; -using Mongo2Go; using Volo.Abp.Data; using Volo.Abp.Identity.MongoDB; using Volo.Abp.IdentityServer.MongoDB; @@ -15,11 +14,9 @@ namespace Volo.Abp.IdentityServer )] public class AbpIdentityServerMongoDbTestModule : AbpModule { - private static readonly MongoDbRunner MongoDbRunner = MongoDbRunner.Start(); - public override void ConfigureServices(ServiceConfigurationContext context) { - var connectionString = MongoDbRunner.ConnectionString.EnsureEndsWith('/') + + var connectionString = MongoDbFixture.ConnectionString.EnsureEndsWith('/') + "Db_" + Guid.NewGuid().ToString("N"); diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/ApiResourceRepository_Tests.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/ApiResourceRepository_Tests.cs index 032505266d..dfe00ab4dd 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/ApiResourceRepository_Tests.cs +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/ApiResourceRepository_Tests.cs @@ -1,6 +1,8 @@ - +using Xunit; + namespace Volo.Abp.IdentityServer { + [Collection(MongoTestCollection.Name)] public class ApiResourceRepository_Tests : ApiResourceRepository_Tests { } diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/ClientRepository_Tests.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/ClientRepository_Tests.cs index 29b006cd99..766448daeb 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/ClientRepository_Tests.cs +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/ClientRepository_Tests.cs @@ -1,9 +1,8 @@ -using System; -using System.Collections.Generic; -using System.Text; +using Xunit; namespace Volo.Abp.IdentityServer { + [Collection(MongoTestCollection.Name)] public class ClientRepository_Tests : ClientRepository_Tests { diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/IdentityResourceRepository_Tests.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/IdentityResourceRepository_Tests.cs index 2b44b2c6a0..36ca210b36 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/IdentityResourceRepository_Tests.cs +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/IdentityResourceRepository_Tests.cs @@ -1,9 +1,8 @@ -using System; -using System.Collections.Generic; -using System.Text; +using Xunit; namespace Volo.Abp.IdentityServer { + [Collection(MongoTestCollection.Name)] public class IdentityResourceRepository_Tests : IdentityResourceRepository_Tests { } diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/MongoDbFixture.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/MongoDbFixture.cs new file mode 100644 index 0000000000..22bbf08ef4 --- /dev/null +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/MongoDbFixture.cs @@ -0,0 +1,16 @@ +using System; +using Mongo2Go; + +namespace Volo.Abp.IdentityServer +{ + public class MongoDbFixture : IDisposable + { + private static readonly MongoDbRunner MongoDbRunner = MongoDbRunner.Start(); + public static readonly string ConnectionString = MongoDbRunner.ConnectionString; + + public void Dispose() + { + MongoDbRunner?.Dispose(); + } + } +} \ No newline at end of file diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/MongoTestCollection.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/MongoTestCollection.cs new file mode 100644 index 0000000000..8ac0a73624 --- /dev/null +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/MongoTestCollection.cs @@ -0,0 +1,10 @@ +using Xunit; + +namespace Volo.Abp.IdentityServer +{ + [CollectionDefinition(Name)] + public class MongoTestCollection : ICollectionFixture + { + public const string Name = "MongoDB Collection"; + } +} \ No newline at end of file diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/PersistentGrantRepository_Tests.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/PersistentGrantRepository_Tests.cs index fd2763dc6c..834d18fcf9 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/PersistentGrantRepository_Tests.cs +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/PersistentGrantRepository_Tests.cs @@ -1,9 +1,8 @@ -using System; -using System.Collections.Generic; -using System.Text; +using Xunit; namespace Volo.Abp.IdentityServer { + [Collection(MongoTestCollection.Name)] public class PersistentGrantRepository_Tests : PersistentGrantRepository_Tests { From cf995af8bf534a1ee329c620d5623c56a2406f26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mehmet=20Tu=CC=88ken?= Date: Wed, 18 Dec 2019 03:38:33 +0300 Subject: [PATCH 011/222] [modules/permissionmanagement] fix mongo.exe dispose --- .../AbpPermissionManagementMongoDbTestModule.cs | 5 +---- .../MongoDb/MongoDbFixture.cs | 16 ++++++++++++++++ .../MongoDb/MongoTestCollection.cs | 10 ++++++++++ .../MongoDb/PermissionGrantRepository_Tests.cs | 5 ++++- 4 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/MongoDbFixture.cs create mode 100644 modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/MongoTestCollection.cs diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/AbpPermissionManagementMongoDbTestModule.cs b/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/AbpPermissionManagementMongoDbTestModule.cs index d3d4d5d6e9..8e3c7b2c22 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/AbpPermissionManagementMongoDbTestModule.cs +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/AbpPermissionManagementMongoDbTestModule.cs @@ -1,5 +1,4 @@ using System; -using Mongo2Go; using Volo.Abp.Data; using Volo.Abp.Modularity; @@ -10,11 +9,9 @@ namespace Volo.Abp.PermissionManagement.MongoDB typeof(AbpPermissionManagementTestBaseModule))] public class AbpPermissionManagementMongoDbTestModule : AbpModule { - private static readonly MongoDbRunner MongoDbRunner = MongoDbRunner.Start(); - public override void ConfigureServices(ServiceConfigurationContext context) { - var connectionString = MongoDbRunner.ConnectionString.EnsureEndsWith('/') + + var connectionString = MongoDbFixture.ConnectionString.EnsureEndsWith('/') + "Db_" + Guid.NewGuid().ToString("N"); diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/MongoDbFixture.cs b/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/MongoDbFixture.cs new file mode 100644 index 0000000000..3a09e6e1a4 --- /dev/null +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/MongoDbFixture.cs @@ -0,0 +1,16 @@ +using System; +using Mongo2Go; + +namespace Volo.Abp.PermissionManagement.MongoDB +{ + public class MongoDbFixture : IDisposable + { + private static readonly MongoDbRunner MongoDbRunner = MongoDbRunner.Start(); + public static readonly string ConnectionString = MongoDbRunner.ConnectionString; + + public void Dispose() + { + MongoDbRunner?.Dispose(); + } + } +} \ No newline at end of file diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/MongoTestCollection.cs b/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/MongoTestCollection.cs new file mode 100644 index 0000000000..a1f2eb6558 --- /dev/null +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/MongoTestCollection.cs @@ -0,0 +1,10 @@ +using Xunit; + +namespace Volo.Abp.PermissionManagement.MongoDB +{ + [CollectionDefinition(Name)] + public class MongoTestCollection : ICollectionFixture + { + public const string Name = "MongoDB Collection"; + } +} \ No newline at end of file diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/PermissionGrantRepository_Tests.cs b/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/PermissionGrantRepository_Tests.cs index 98db0640c5..dd3c42da15 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/PermissionGrantRepository_Tests.cs +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/PermissionGrantRepository_Tests.cs @@ -1,5 +1,8 @@ -namespace Volo.Abp.PermissionManagement.MongoDB +using Xunit; + +namespace Volo.Abp.PermissionManagement.MongoDB { + [Collection(MongoTestCollection.Name)] public class PermissionGrantRepository_Tests : PermissionGrantRepository_Tests { From be9b73b83528a3e19964bae8940b2226d8092280 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mehmet=20Tu=CC=88ken?= Date: Wed, 18 Dec 2019 03:42:34 +0300 Subject: [PATCH 012/222] [modules/settingmanagement] fix mongo.exe dispose --- .../AbpSettingManagementMongoDbTestModule.cs | 5 +---- .../SettingManagement/MongoDB/MongoDbFixture.cs | 16 ++++++++++++++++ .../MongoDB/MongoTestCollection.cs | 10 ++++++++++ .../MongoDB/SettingRepository_Tests.cs | 5 ++++- 4 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoDbFixture.cs create mode 100644 modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoTestCollection.cs diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/AbpSettingManagementMongoDbTestModule.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/AbpSettingManagementMongoDbTestModule.cs index 1b9faefdbd..ec221eba15 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/AbpSettingManagementMongoDbTestModule.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/AbpSettingManagementMongoDbTestModule.cs @@ -1,5 +1,4 @@ using System; -using Mongo2Go; using Volo.Abp.Data; using Volo.Abp.Modularity; @@ -11,11 +10,9 @@ namespace Volo.Abp.SettingManagement.MongoDB )] public class AbpSettingManagementMongoDbTestModule : AbpModule { - private static readonly MongoDbRunner MongoDbRunner = MongoDbRunner.Start(); - public override void ConfigureServices(ServiceConfigurationContext context) { - var connectionString = MongoDbRunner.ConnectionString.EnsureEndsWith('/') + + var connectionString = MongoDbFixture.ConnectionString.EnsureEndsWith('/') + "Db_" + Guid.NewGuid().ToString("N"); diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoDbFixture.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoDbFixture.cs new file mode 100644 index 0000000000..31ccdcc4f7 --- /dev/null +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoDbFixture.cs @@ -0,0 +1,16 @@ +using System; +using Mongo2Go; + +namespace Volo.Abp.SettingManagement.MongoDB +{ + public class MongoDbFixture : IDisposable + { + private static readonly MongoDbRunner MongoDbRunner = MongoDbRunner.Start(); + public static readonly string ConnectionString = MongoDbRunner.ConnectionString; + + public void Dispose() + { + MongoDbRunner?.Dispose(); + } + } +} \ No newline at end of file diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoTestCollection.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoTestCollection.cs new file mode 100644 index 0000000000..11ed1cbb55 --- /dev/null +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoTestCollection.cs @@ -0,0 +1,10 @@ +using Xunit; + +namespace Volo.Abp.SettingManagement.MongoDB +{ + [CollectionDefinition(Name)] + public class MongoTestCollection : ICollectionFixture + { + public const string Name = "MongoDB Collection"; + } +} \ No newline at end of file diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/SettingRepository_Tests.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/SettingRepository_Tests.cs index 7e35eff799..a1a2d1428c 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/SettingRepository_Tests.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/SettingRepository_Tests.cs @@ -1,5 +1,8 @@ -namespace Volo.Abp.SettingManagement.MongoDB +using Xunit; + +namespace Volo.Abp.SettingManagement.MongoDB { + [Collection(MongoTestCollection.Name)] public class SettingRepository_Tests : SettingRepository_Tests { From 7fa2dbc886bf93b0e303f9257fd1766924749eb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mehmet=20Tu=CC=88ken?= Date: Wed, 18 Dec 2019 03:45:39 +0300 Subject: [PATCH 013/222] [modules/tenantmanagement] fix mongo.exe dispose --- .../AbpTenantManagementMongoDbTestModule.cs | 6 +----- .../TenantManagement/MongoDb/MongoDbFixture.cs | 16 ++++++++++++++++ .../MongoDb/MongoTestCollection.cs | 10 ++++++++++ .../MongoDb/TenantRepository_Tests.cs | 5 ++++- 4 files changed, 31 insertions(+), 6 deletions(-) create mode 100644 modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/MongoDbFixture.cs create mode 100644 modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/MongoTestCollection.cs diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/AbpTenantManagementMongoDbTestModule.cs b/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/AbpTenantManagementMongoDbTestModule.cs index 911839d510..9584ec2d44 100644 --- a/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/AbpTenantManagementMongoDbTestModule.cs +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/AbpTenantManagementMongoDbTestModule.cs @@ -1,6 +1,4 @@ using System; -using Microsoft.Extensions.DependencyInjection; -using Mongo2Go; using Volo.Abp.Data; using Volo.Abp.Modularity; @@ -12,11 +10,9 @@ namespace Volo.Abp.TenantManagement.MongoDB )] public class AbpTenantManagementMongoDbTestModule : AbpModule { - private static readonly MongoDbRunner MongoDbRunner = MongoDbRunner.Start(); - public override void ConfigureServices(ServiceConfigurationContext context) { - var connectionString = MongoDbRunner.ConnectionString.EnsureEndsWith('/') + + var connectionString = MongoDbFixture.ConnectionString.EnsureEndsWith('/') + "Db_" + Guid.NewGuid().ToString("N"); diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/MongoDbFixture.cs b/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/MongoDbFixture.cs new file mode 100644 index 0000000000..be115d9dff --- /dev/null +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/MongoDbFixture.cs @@ -0,0 +1,16 @@ +using System; +using Mongo2Go; + +namespace Volo.Abp.TenantManagement.MongoDB +{ + public class MongoDbFixture : IDisposable + { + private static readonly MongoDbRunner MongoDbRunner = MongoDbRunner.Start(); + public static readonly string ConnectionString = MongoDbRunner.ConnectionString; + + public void Dispose() + { + MongoDbRunner?.Dispose(); + } + } +} \ No newline at end of file diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/MongoTestCollection.cs b/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/MongoTestCollection.cs new file mode 100644 index 0000000000..1719b7dbdd --- /dev/null +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/MongoTestCollection.cs @@ -0,0 +1,10 @@ +using Xunit; + +namespace Volo.Abp.TenantManagement.MongoDB +{ + [CollectionDefinition(Name)] + public class MongoTestCollection : ICollectionFixture + { + public const string Name = "MongoDB Collection"; + } +} \ No newline at end of file diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/TenantRepository_Tests.cs b/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/TenantRepository_Tests.cs index b1ae97b021..0a980be37d 100644 --- a/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/TenantRepository_Tests.cs +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/TenantRepository_Tests.cs @@ -1,5 +1,8 @@ -namespace Volo.Abp.TenantManagement.MongoDB +using Xunit; + +namespace Volo.Abp.TenantManagement.MongoDB { + [Collection(MongoTestCollection.Name)] public class TenantRepository_Tests : TenantRepository_Tests { From 6f0db0b9b0a7d3734f72d1e79adffe710901d150 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mehmet=20Tu=CC=88ken?= Date: Wed, 18 Dec 2019 03:58:14 +0300 Subject: [PATCH 014/222] [templates/app] fix mongo.exe dispose --- .../MongoDb/MongoDbFixture.cs | 16 ++++++++++++++++ .../MongoDb/MongoTestCollection.cs | 10 ++++++++++ .../MongoDb/MyProjectNameMongoDbTestModule.cs | 5 +---- .../MongoDb/Samples/SampleRepositoryTests.cs | 1 + 4 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MongoDbFixture.cs create mode 100644 templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MongoTestCollection.cs diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MongoDbFixture.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MongoDbFixture.cs new file mode 100644 index 0000000000..0feac4eebf --- /dev/null +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MongoDbFixture.cs @@ -0,0 +1,16 @@ +using System; +using Mongo2Go; + +namespace MyCompanyName.MyProjectName.MongoDB +{ + public class MongoDbFixture : IDisposable + { + private static readonly MongoDbRunner MongoDbRunner = MongoDbRunner.Start(); + public static readonly string ConnectionString = MongoDbRunner.ConnectionString; + + public void Dispose() + { + MongoDbRunner?.Dispose(); + } + } +} \ No newline at end of file diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MongoTestCollection.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MongoTestCollection.cs new file mode 100644 index 0000000000..42c85760c3 --- /dev/null +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MongoTestCollection.cs @@ -0,0 +1,10 @@ +using Xunit; + +namespace MyCompanyName.MyProjectName.MongoDB +{ + [CollectionDefinition(Name)] + public class MongoTestCollection : ICollectionFixture + { + public const string Name = "MongoDB Collection"; + } +} \ No newline at end of file diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MyProjectNameMongoDbTestModule.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MyProjectNameMongoDbTestModule.cs index 270ad2102c..bcaf7494a7 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MyProjectNameMongoDbTestModule.cs +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MyProjectNameMongoDbTestModule.cs @@ -1,5 +1,4 @@ using System; -using Mongo2Go; using Volo.Abp.Data; using Volo.Abp.Modularity; @@ -11,11 +10,9 @@ namespace MyCompanyName.MyProjectName.MongoDB )] public class MyProjectNameMongoDbTestModule : AbpModule { - private static readonly MongoDbRunner MongoDbRunner = MongoDbRunner.Start(); - public override void ConfigureServices(ServiceConfigurationContext context) { - var connectionString = MongoDbRunner.ConnectionString.EnsureEndsWith('/') + + var connectionString = MongoDbFixture.ConnectionString.EnsureEndsWith('/') + "Db_" + Guid.NewGuid().ToString("N"); diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/Samples/SampleRepositoryTests.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/Samples/SampleRepositoryTests.cs index 27095ec117..17d8007c16 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/Samples/SampleRepositoryTests.cs +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/Samples/SampleRepositoryTests.cs @@ -13,6 +13,7 @@ namespace MyCompanyName.MyProjectName.MongoDB.Samples * (like default AppUser repository IRepository here). * Only test your custom repository methods. */ + [Collection(MongoTestCollection.Name)] public class SampleRepositoryTests : MyProjectNameMongoDbTestBase { private readonly IRepository _appUserRepository; From e44efcb803659f07001b648afe8c58334581e84f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mehmet=20Tu=CC=88ken?= Date: Wed, 18 Dec 2019 04:01:55 +0300 Subject: [PATCH 015/222] [templates/module] fix mongo.exe dispose --- .../MongoDB/MongoDbFixture.cs | 16 ++++++++++++++++ .../MongoDB/MongoTestCollection.cs | 10 ++++++++++ .../MongoDB/MyProjectNameMongoDbTestModule.cs | 6 +----- .../MongoDB/Samples/SampleRepository_Tests.cs | 2 ++ 4 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MongoDbFixture.cs create mode 100644 templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MongoTestCollection.cs diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MongoDbFixture.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MongoDbFixture.cs new file mode 100644 index 0000000000..0feac4eebf --- /dev/null +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MongoDbFixture.cs @@ -0,0 +1,16 @@ +using System; +using Mongo2Go; + +namespace MyCompanyName.MyProjectName.MongoDB +{ + public class MongoDbFixture : IDisposable + { + private static readonly MongoDbRunner MongoDbRunner = MongoDbRunner.Start(); + public static readonly string ConnectionString = MongoDbRunner.ConnectionString; + + public void Dispose() + { + MongoDbRunner?.Dispose(); + } + } +} \ No newline at end of file diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MongoTestCollection.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MongoTestCollection.cs new file mode 100644 index 0000000000..42c85760c3 --- /dev/null +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MongoTestCollection.cs @@ -0,0 +1,10 @@ +using Xunit; + +namespace MyCompanyName.MyProjectName.MongoDB +{ + [CollectionDefinition(Name)] + public class MongoTestCollection : ICollectionFixture + { + public const string Name = "MongoDB Collection"; + } +} \ No newline at end of file diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MyProjectNameMongoDbTestModule.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MyProjectNameMongoDbTestModule.cs index 149db59bcc..f29c713c05 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MyProjectNameMongoDbTestModule.cs +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MyProjectNameMongoDbTestModule.cs @@ -1,6 +1,4 @@ using System; -using Mongo2Go; -using Volo.Abp; using Volo.Abp.Data; using Volo.Abp.Modularity; @@ -12,11 +10,9 @@ namespace MyCompanyName.MyProjectName.MongoDB )] public class MyProjectNameMongoDbTestModule : AbpModule { - private static readonly MongoDbRunner MongoDbRunner = MongoDbRunner.Start(); - public override void ConfigureServices(ServiceConfigurationContext context) { - var connectionString = MongoDbRunner.ConnectionString.EnsureEndsWith('/') + + var connectionString = MongoDbFixture.ConnectionString.EnsureEndsWith('/') + "Db_" + Guid.NewGuid().ToString("N"); diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/Samples/SampleRepository_Tests.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/Samples/SampleRepository_Tests.cs index 6522b9884e..c16c416b2c 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/Samples/SampleRepository_Tests.cs +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/Samples/SampleRepository_Tests.cs @@ -1,7 +1,9 @@ using MyCompanyName.MyProjectName.Samples; +using Xunit; namespace MyCompanyName.MyProjectName.MongoDB.Samples { + [Collection(MongoTestCollection.Name)] public class SampleRepository_Tests : SampleRepository_Tests { /* Don't write custom repository tests here, instead write to From 623c5915c76d62230f70a5fae62b067416218164 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mehmet=20Tu=CC=88ken?= Date: Sat, 28 Dec 2019 01:30:28 +0300 Subject: [PATCH 016/222] Revert "Delete main.yml" This reverts commit a04fbeb1b52fa5e4d16880e58f78152b596e39c6. --- .github/workflows/main.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000000..123cc3ea62 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,24 @@ +name: 'Main' +on: + pull_request: + paths: + - 'framework/**' + - 'modules/**' + branches: + - dev +jobs: + build-test: + runs-on: windows-latest + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-dotnet@master + with: + dotnet-version: '3.0.100' + + - name: Build All + run: .\build-all.ps1 + shell: pwsh + + - name: Test All + run: .\test-all.ps1 + shell: pwsh From 505cd17467c006acfe835ae46545159245d2e8f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mehmet=20Tu=CC=88ken?= Date: Sat, 28 Dec 2019 01:31:10 +0300 Subject: [PATCH 017/222] ci check all push and pr --- .github/workflows/main.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 123cc3ea62..d2412d0b08 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -4,8 +4,12 @@ on: paths: - 'framework/**' - 'modules/**' - branches: - - dev + - 'templates/**' + push: + paths: + - 'framework/**' + - 'modules/**' + - 'templates/**' jobs: build-test: runs-on: windows-latest From c30c4aa603306fc8c857dec92af0dde9341e9c46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mehmet=20Tu=CC=88ken?= Date: Sat, 28 Dec 2019 06:59:10 +0300 Subject: [PATCH 018/222] update dotnet version --- .github/workflows/main.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d2412d0b08..a75e3f2cf5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,15 +1,15 @@ -name: 'Main' +name: "Main" on: pull_request: paths: - - 'framework/**' - - 'modules/**' - - 'templates/**' + - "framework/**" + - "modules/**" + - "templates/**" push: paths: - - 'framework/**' - - 'modules/**' - - 'templates/**' + - "framework/**" + - "modules/**" + - "templates/**" jobs: build-test: runs-on: windows-latest @@ -17,8 +17,8 @@ jobs: - uses: actions/checkout@v1 - uses: actions/setup-dotnet@master with: - dotnet-version: '3.0.100' - + dotnet-version: "3.1.100" + - name: Build All run: .\build-all.ps1 shell: pwsh From c0d6582986007fb20a9fbce5fb3f1c97a1ee8592 Mon Sep 17 00:00:00 2001 From: Mehmet Perk Date: Thu, 16 Jan 2020 22:35:07 +0300 Subject: [PATCH 019/222] MethodInvocationAuthorizationService should check Roles --- .../MethodInvocationAuthorizationService.cs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs index 1e063f1f0e..82a0f9c2d1 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs @@ -64,20 +64,26 @@ namespace Volo.Abp.Authorization protected async Task CheckAsync(IAuthorizeData authorizationAttribute) { - if (authorizationAttribute.Policy == null) + if (authorizationAttribute.Policy != null) { - //TODO: Can we find a better, unified, way of checking if current request has been authenticated - if (!_currentUser.IsAuthenticated && !_currentClient.IsAuthenticated) + await _authorizationService.CheckAsync(authorizationAttribute.Policy).ConfigureAwait(false); + } + else if (authorizationAttribute.Roles != null) + { + if(_currentUser.IsInRole(authorizationAttribute.Roles) == false) { - throw new AbpAuthorizationException("Authorization failed! User has not logged in."); + throw new AbpAuthorizationException("Authorization failed! Given roles has not granted: " + authorizationAttribute.Roles); } } else { - await _authorizationService.CheckAsync(authorizationAttribute.Policy).ConfigureAwait(false); + //TODO: Can we find a better, unified, way of checking if current request has been authenticated + if (!_currentUser.IsAuthenticated && !_currentClient.IsAuthenticated) + { + throw new AbpAuthorizationException("Authorization failed! User has not logged in."); + } } - //TODO: What about roles and other props? } } } \ No newline at end of file From 5016ba69a3cfc4e87e9db5fe651325cafcacc766 Mon Sep 17 00:00:00 2001 From: Mehmet Perk Date: Thu, 16 Jan 2020 23:33:05 +0300 Subject: [PATCH 020/222] authorization tests with role --- .../Volo/Abp/Authorization/Authorization_Tests.cs | 9 +++++++++ .../Authorization/TestServices/IMyAuthorizedService1.cs | 2 ++ .../Authorization/TestServices/MyAuthorizedService1.cs | 6 ++++++ 3 files changed, 17 insertions(+) diff --git a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/Authorization_Tests.cs b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/Authorization_Tests.cs index 2950c7c92a..3968d1baf5 100644 --- a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/Authorization_Tests.cs +++ b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/Authorization_Tests.cs @@ -52,5 +52,14 @@ namespace Volo.Abp.Authorization { _permissionDefinitionManager.GetGroups().Count.ShouldBe(1); } + + [Fact] + public async Task Should_Not_Allow_To_Call_Method_If_Has_No_Role_ProtectedByRole_Async() + { + await Assert.ThrowsAsync(async () => + { + await _myAuthorizedService1.ProtectedByRole().ConfigureAwait(false); + }).ConfigureAwait(false); + } } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/IMyAuthorizedService1.cs b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/IMyAuthorizedService1.cs index b3841c4fed..077934c0d2 100644 --- a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/IMyAuthorizedService1.cs +++ b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/IMyAuthorizedService1.cs @@ -11,5 +11,7 @@ namespace Volo.Abp.Authorization.TestServices Task ProtectedByClass(); Task ProtectedByClassAsync(); + + Task ProtectedByRole(); } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/MyAuthorizedService1.cs b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/MyAuthorizedService1.cs index 6d64ed80dd..07ccfa7deb 100644 --- a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/MyAuthorizedService1.cs +++ b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/MyAuthorizedService1.cs @@ -30,5 +30,11 @@ namespace Volo.Abp.Authorization.TestServices await Task.Delay(10).ConfigureAwait(false); return 42; } + + [Authorize(Roles = "MyRole")] + public virtual Task ProtectedByRole() + { + return Task.FromResult(42); + } } } \ No newline at end of file From 85f956f5aed8b50f5949fcd9ac325607f8a23d4d Mon Sep 17 00:00:00 2001 From: mperk Date: Sun, 19 Jan 2020 01:03:21 +0300 Subject: [PATCH 021/222] authorize check with combine --- .../MethodInvocationAuthorizationService.cs | 29 +++++-------------- .../Abp/Authorization/Authorization_Tests.cs | 16 ++++++++++ .../TestServices/IMyAuthorizedService1.cs | 2 ++ .../TestServices/MyAuthorizedService1.cs | 7 +++++ 4 files changed, 33 insertions(+), 21 deletions(-) diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs index 82a0f9c2d1..b2e06c0207 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs @@ -14,15 +14,18 @@ namespace Volo.Abp.Authorization private readonly IAuthorizationService _authorizationService; private readonly ICurrentUser _currentUser; private readonly ICurrentClient _currentClient; + private readonly IAbpAuthorizationPolicyProvider _abpAuthorizationPolicyProvider; public MethodInvocationAuthorizationService( IAuthorizationService authorizationService, ICurrentUser currentUser, - ICurrentClient currentClient) + ICurrentClient currentClient, + IAbpAuthorizationPolicyProvider abpAuthorizationPolicyProvider) { _authorizationService = authorizationService; _currentUser = currentUser; _currentClient = currentClient; + _abpAuthorizationPolicyProvider = abpAuthorizationPolicyProvider; } public async Task CheckAsync(MethodInvocationAuthorizationContext context) @@ -64,26 +67,10 @@ namespace Volo.Abp.Authorization protected async Task CheckAsync(IAuthorizeData authorizationAttribute) { - if (authorizationAttribute.Policy != null) - { - await _authorizationService.CheckAsync(authorizationAttribute.Policy).ConfigureAwait(false); - } - else if (authorizationAttribute.Roles != null) - { - if(_currentUser.IsInRole(authorizationAttribute.Roles) == false) - { - throw new AbpAuthorizationException("Authorization failed! Given roles has not granted: " + authorizationAttribute.Roles); - } - } - else - { - //TODO: Can we find a better, unified, way of checking if current request has been authenticated - if (!_currentUser.IsAuthenticated && !_currentClient.IsAuthenticated) - { - throw new AbpAuthorizationException("Authorization failed! User has not logged in."); - } - } - + var authorizationPolicy = await AuthorizationPolicy.CombineAsync( + _abpAuthorizationPolicyProvider, + new List { authorizationAttribute }); + await _authorizationService.CheckAsync(authorizationPolicy).ConfigureAwait(false); } } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/Authorization_Tests.cs b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/Authorization_Tests.cs index 3968d1baf5..827f7b676e 100644 --- a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/Authorization_Tests.cs +++ b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/Authorization_Tests.cs @@ -61,5 +61,21 @@ namespace Volo.Abp.Authorization await _myAuthorizedService1.ProtectedByRole().ConfigureAwait(false); }).ConfigureAwait(false); } + + [Fact] + public async Task Should_Allow_To_Call_Method_If_Has_No_Role_ProtectedByRole_Async() + { + int result = await _myAuthorizedService1.ProtectedByRole().ConfigureAwait(false); + result.ShouldBe(42); + } + + [Fact] + public async Task Should_Not_Allow_To_Call_Method_If_Has_No_Role_ProtectedByScheme_Async() + { + await Assert.ThrowsAsync(async () => + { + await _myAuthorizedService1.ProtectedByScheme().ConfigureAwait(false); + }).ConfigureAwait(false); + } } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/IMyAuthorizedService1.cs b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/IMyAuthorizedService1.cs index 077934c0d2..6c4042168c 100644 --- a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/IMyAuthorizedService1.cs +++ b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/IMyAuthorizedService1.cs @@ -13,5 +13,7 @@ namespace Volo.Abp.Authorization.TestServices Task ProtectedByClassAsync(); Task ProtectedByRole(); + + Task ProtectedByScheme(); } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/MyAuthorizedService1.cs b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/MyAuthorizedService1.cs index 07ccfa7deb..a25227babf 100644 --- a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/MyAuthorizedService1.cs +++ b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/MyAuthorizedService1.cs @@ -36,5 +36,12 @@ namespace Volo.Abp.Authorization.TestServices { return Task.FromResult(42); } + + [Authorize(AuthenticationSchemes = "Bearer")] + [Authorize(Roles = "MyRole")] + public virtual Task ProtectedByScheme() + { + return Task.FromResult(42); + } } } \ No newline at end of file From 9617efc5e977c1894aeff00f423643a53d0fda90 Mon Sep 17 00:00:00 2001 From: mperk Date: Mon, 20 Jan 2020 15:07:39 +0300 Subject: [PATCH 022/222] change authorization service to abpauthorization service --- .../MethodInvocationAuthorizationService.cs | 16 +++++----------- .../Abp/Authorization/Authorization_Tests.cs | 7 ------- 2 files changed, 5 insertions(+), 18 deletions(-) diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs index b2e06c0207..4d0589486b 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs @@ -11,21 +11,15 @@ namespace Volo.Abp.Authorization { public class MethodInvocationAuthorizationService : IMethodInvocationAuthorizationService, ITransientDependency { - private readonly IAuthorizationService _authorizationService; - private readonly ICurrentUser _currentUser; - private readonly ICurrentClient _currentClient; private readonly IAbpAuthorizationPolicyProvider _abpAuthorizationPolicyProvider; + private readonly IAbpAuthorizationService _abpAuthorizationService; public MethodInvocationAuthorizationService( - IAuthorizationService authorizationService, - ICurrentUser currentUser, - ICurrentClient currentClient, - IAbpAuthorizationPolicyProvider abpAuthorizationPolicyProvider) + IAbpAuthorizationPolicyProvider abpAuthorizationPolicyProvider, + IAbpAuthorizationService abpAuthorizationService) { - _authorizationService = authorizationService; - _currentUser = currentUser; - _currentClient = currentClient; _abpAuthorizationPolicyProvider = abpAuthorizationPolicyProvider; + _abpAuthorizationService = abpAuthorizationService; } public async Task CheckAsync(MethodInvocationAuthorizationContext context) @@ -70,7 +64,7 @@ namespace Volo.Abp.Authorization var authorizationPolicy = await AuthorizationPolicy.CombineAsync( _abpAuthorizationPolicyProvider, new List { authorizationAttribute }); - await _authorizationService.CheckAsync(authorizationPolicy).ConfigureAwait(false); + await _abpAuthorizationService.CheckAsync(authorizationPolicy).ConfigureAwait(false); } } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/Authorization_Tests.cs b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/Authorization_Tests.cs index 827f7b676e..9be90dc045 100644 --- a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/Authorization_Tests.cs +++ b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/Authorization_Tests.cs @@ -62,13 +62,6 @@ namespace Volo.Abp.Authorization }).ConfigureAwait(false); } - [Fact] - public async Task Should_Allow_To_Call_Method_If_Has_No_Role_ProtectedByRole_Async() - { - int result = await _myAuthorizedService1.ProtectedByRole().ConfigureAwait(false); - result.ShouldBe(42); - } - [Fact] public async Task Should_Not_Allow_To_Call_Method_If_Has_No_Role_ProtectedByScheme_Async() { From cfba92293294b523fe1683ab9c1d309d1a7e73f9 Mon Sep 17 00:00:00 2001 From: Mehmet Perk Date: Mon, 20 Jan 2020 21:04:31 +0300 Subject: [PATCH 023/222] authorization tests with role --- .../Authorization/AuthorizationTestBase.cs | 25 +++++++++++++++-- .../Abp/Authorization/Authorization_Tests.cs | 14 ++++++++-- .../TestServices/IMyAuthorizedService1.cs | 3 --- .../IMyAuthorizedServiceWithRole.cs | 13 +++++++++ .../TestServices/MyAuthorizedService1.cs | 15 +---------- .../MyAuthorizedServiceWithRole.cs | 27 +++++++++++++++++++ 6 files changed, 76 insertions(+), 21 deletions(-) create mode 100644 framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/IMyAuthorizedServiceWithRole.cs create mode 100644 framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/MyAuthorizedServiceWithRole.cs diff --git a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/AuthorizationTestBase.cs b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/AuthorizationTestBase.cs index 8ab051d97e..5cf9976e46 100644 --- a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/AuthorizationTestBase.cs +++ b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/AuthorizationTestBase.cs @@ -1,4 +1,10 @@ -using Volo.Abp.Testing; +using Microsoft.Extensions.DependencyInjection; +using NSubstitute; +using System.Collections.Generic; +using System.Security.Claims; +using System.Threading; +using Volo.Abp.Security.Claims; +using Volo.Abp.Testing; namespace Volo.Abp.Authorization { @@ -8,5 +14,20 @@ namespace Volo.Abp.Authorization { options.UseAutofac(); } + + protected override void AfterAddApplication(IServiceCollection services) + { + var claims = new List() { + new Claim(AbpClaimTypes.UserName, "Douglas"), + new Claim(AbpClaimTypes.UserId, "1fcf46b2-28c3-48d0-8bac-fa53268a2775"), + new Claim(AbpClaimTypes.Role, "MyRole") + }; + + var identity = new ClaimsIdentity(claims); + var claimsPrincipal = new ClaimsPrincipal(identity); + var principalAccessor = Substitute.For(); + principalAccessor.Principal.Returns(ci => claimsPrincipal); + Thread.CurrentPrincipal = claimsPrincipal; + } } -} \ No newline at end of file +} diff --git a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/Authorization_Tests.cs b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/Authorization_Tests.cs index 9be90dc045..e886d2f1c4 100644 --- a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/Authorization_Tests.cs +++ b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/Authorization_Tests.cs @@ -9,11 +9,13 @@ namespace Volo.Abp.Authorization public class Authorization_Tests : AuthorizationTestBase { private readonly IMyAuthorizedService1 _myAuthorizedService1; + private readonly IMyAuthorizedServiceWithRole _myAuthorizedServiceWithRole; private readonly IPermissionDefinitionManager _permissionDefinitionManager; public Authorization_Tests() { _myAuthorizedService1 = GetRequiredService(); + _myAuthorizedServiceWithRole = GetRequiredService(); _permissionDefinitionManager = GetRequiredService(); } @@ -58,16 +60,24 @@ namespace Volo.Abp.Authorization { await Assert.ThrowsAsync(async () => { - await _myAuthorizedService1.ProtectedByRole().ConfigureAwait(false); + await _myAuthorizedServiceWithRole.ProtectedByAnotherRole().ConfigureAwait(false); }).ConfigureAwait(false); } + [Fact] + public async Task Should_Allow_To_Call_Method_If_Has_No_Role_ProtectedByRole_Async() + { + int result = await _myAuthorizedServiceWithRole.ProtectedByRole().ConfigureAwait(false); + result.ShouldBe(42); + } + + [Fact] public async Task Should_Not_Allow_To_Call_Method_If_Has_No_Role_ProtectedByScheme_Async() { await Assert.ThrowsAsync(async () => { - await _myAuthorizedService1.ProtectedByScheme().ConfigureAwait(false); + await _myAuthorizedServiceWithRole.ProtectedByScheme().ConfigureAwait(false); }).ConfigureAwait(false); } } diff --git a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/IMyAuthorizedService1.cs b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/IMyAuthorizedService1.cs index 6c4042168c..4c693993cf 100644 --- a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/IMyAuthorizedService1.cs +++ b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/IMyAuthorizedService1.cs @@ -12,8 +12,5 @@ namespace Volo.Abp.Authorization.TestServices Task ProtectedByClassAsync(); - Task ProtectedByRole(); - - Task ProtectedByScheme(); } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/IMyAuthorizedServiceWithRole.cs b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/IMyAuthorizedServiceWithRole.cs new file mode 100644 index 0000000000..52b860d774 --- /dev/null +++ b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/IMyAuthorizedServiceWithRole.cs @@ -0,0 +1,13 @@ +using System.Threading.Tasks; + +namespace Volo.Abp.Authorization.TestServices +{ + public interface IMyAuthorizedServiceWithRole + { + Task ProtectedByRole(); + + Task ProtectedByScheme(); + + Task ProtectedByAnotherRole(); + } +} diff --git a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/MyAuthorizedService1.cs b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/MyAuthorizedService1.cs index a25227babf..02f234fe99 100644 --- a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/MyAuthorizedService1.cs +++ b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/MyAuthorizedService1.cs @@ -30,18 +30,5 @@ namespace Volo.Abp.Authorization.TestServices await Task.Delay(10).ConfigureAwait(false); return 42; } - - [Authorize(Roles = "MyRole")] - public virtual Task ProtectedByRole() - { - return Task.FromResult(42); - } - - [Authorize(AuthenticationSchemes = "Bearer")] - [Authorize(Roles = "MyRole")] - public virtual Task ProtectedByScheme() - { - return Task.FromResult(42); - } } -} \ No newline at end of file +} diff --git a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/MyAuthorizedServiceWithRole.cs b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/MyAuthorizedServiceWithRole.cs new file mode 100644 index 0000000000..d660b040c1 --- /dev/null +++ b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/MyAuthorizedServiceWithRole.cs @@ -0,0 +1,27 @@ +using Microsoft.AspNetCore.Authorization; +using System.Threading.Tasks; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.Authorization.TestServices +{ + [Authorize(Roles = "MyRole")] + public class MyAuthorizedServiceWithRole : IMyAuthorizedServiceWithRole, ITransientDependency + { + public virtual Task ProtectedByRole() + { + return Task.FromResult(42); + } + + [Authorize(Roles = "MyAnotherRole")] + public virtual Task ProtectedByAnotherRole() + { + return Task.FromResult(42); + } + + [Authorize(AuthenticationSchemes = "Bearer")] + public virtual Task ProtectedByScheme() + { + return Task.FromResult(42); + } + } +} From 583cdbac1cba2c7ad756200d469bb4470f97294c Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 21 Jan 2020 10:08:17 +0800 Subject: [PATCH 024/222] Check all authorization attributes at the same time. --- .../MethodInvocationAuthorizationService.cs | 20 +++++-------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs index 4d0589486b..b0d53355fc 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs @@ -3,9 +3,7 @@ using System.Linq; using System.Reflection; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; -using Volo.Abp.Clients; using Volo.Abp.DependencyInjection; -using Volo.Abp.Users; namespace Volo.Abp.Authorization { @@ -29,10 +27,10 @@ namespace Volo.Abp.Authorization return; } - foreach (var authorizationAttribute in GetAuthorizationDataAttributes(context.Method)) - { - await CheckAsync(authorizationAttribute).ConfigureAwait(false); - } + var authorizationPolicy = await AuthorizationPolicy.CombineAsync(_abpAuthorizationPolicyProvider, + GetAuthorizationDataAttributes(context.Method)).ConfigureAwait(false); + + await _abpAuthorizationService.CheckAsync(authorizationPolicy).ConfigureAwait(false); } protected virtual bool AllowAnonymous(MethodInvocationAuthorizationContext context) @@ -46,7 +44,7 @@ namespace Volo.Abp.Authorization .GetCustomAttributes(true) .OfType(); - if (methodInfo.IsPublic) + if (methodInfo.IsPublic && methodInfo.DeclaringType != null) { attributes = attributes .Union( @@ -58,13 +56,5 @@ namespace Volo.Abp.Authorization return attributes; } - - protected async Task CheckAsync(IAuthorizeData authorizationAttribute) - { - var authorizationPolicy = await AuthorizationPolicy.CombineAsync( - _abpAuthorizationPolicyProvider, - new List { authorizationAttribute }); - await _abpAuthorizationService.CheckAsync(authorizationPolicy).ConfigureAwait(false); - } } } \ No newline at end of file From 9f2b49c2d5a6c365845cf93e1e8caa13a610408d Mon Sep 17 00:00:00 2001 From: maliming Date: Wed, 19 Feb 2020 16:42:05 +0800 Subject: [PATCH 025/222] Fix build error. --- .../Abp/Authorization/MethodInvocationAuthorizationService.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs index 6518b7ad75..32fd611b9a 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs @@ -27,7 +27,8 @@ namespace Volo.Abp.Authorization return; } - var authorizationPolicy = await AuthorizationPolicy.CombineAsync(_abpAuthorizationPolicyProvider, GetAuthorizationDataAttributes(context.Method)) + var authorizationPolicy = await AuthorizationPolicy.CombineAsync(_abpAuthorizationPolicyProvider, + GetAuthorizationDataAttributes(context.Method)); await _abpAuthorizationService.CheckAsync(authorizationPolicy); } From 88b8f6ed836f2675ad562c27cb759ee20848d824 Mon Sep 17 00:00:00 2001 From: maliming Date: Wed, 4 Mar 2020 09:18:39 +0800 Subject: [PATCH 026/222] Check if authorizationPolicy is null. --- .../Authorization/MethodInvocationAuthorizationService.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs index 32fd611b9a..6293c0d034 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs @@ -29,6 +29,11 @@ namespace Volo.Abp.Authorization var authorizationPolicy = await AuthorizationPolicy.CombineAsync(_abpAuthorizationPolicyProvider, GetAuthorizationDataAttributes(context.Method)); + if (authorizationPolicy == null) + { + return; + } + await _abpAuthorizationService.CheckAsync(authorizationPolicy); } From ebe165ad1b3ba1502dddab04b759c74ed8edd239 Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 13:33:13 +0300 Subject: [PATCH 027/222] Create ru.json for Volo.Abp.Validation --- .../Volo/Abp/Validation/Localization/ru.json | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ru.json diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ru.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ru.json new file mode 100644 index 0000000000..a2023691a8 --- /dev/null +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ru.json @@ -0,0 +1,34 @@ +{ + "culture": "ru", + "texts": { + "'{0}' and '{1}' do not match.": "'{0}' и '{1}' не совпадают.", + "The {0} field is not a valid credit card number.": "The {0} field is not a valid credit card number.", + "{0} is not valid.": "{0} is not valid.", + "The {0} field is not a valid e-mail address.": "The {0} field is not a valid e-mail address.", + "The {0} field only accepts files with the following extensions: {1}": "The {0} field only accepts files with the following extensions: {1}", + "The field {0} must be a string or array type with a maximum length of '{1}'.": "The field {0} must be a string or array type with a maximum length of '{1}'.", + "The field {0} must be a string or array type with a minimum length of '{1}'.": "The field {0} must be a string or array type with a minimum length of '{1}'.", + "The {0} field is not a valid phone number.": "The {0} field is not a valid phone number.", + "The field {0} must be between {1} and {2}.": "The field {0} must be between {1} and {2}.", + "The field {0} must match the regular expression '{1}'.": "The field {0} must match the regular expression '{1}'.", + "The {0} field is required.": "The {0} field is required.", + "The field {0} must be a string with a maximum length of {1}.": "The field {0} must be a string with a maximum length of {1}.", + "The field {0} must be a string with a minimum length of {2} and a maximum length of {1}.": "The field {0} must be a string with a minimum length of {2} and a maximum length of {1}.", + "The {0} field is not a valid fully-qualified http, https, or ftp URL.": "The {0} field is not a valid fully-qualified http, https, or ftp URL.", + "The field {0} is invalid.": "The field {0} is invalid.", + "ThisFieldIsNotAValidCreditCardNumber.": "This field is not a valid credit card number.", + "ThisFieldIsNotValid.": "This field is not valid.", + "ThisFieldIsNotAValidEmailAddress.": "This field is not a valid e-mail address.", + "ThisFieldOnlyAcceptsFilesWithTheFollowingExtensions:{0}": "This field only accepts files with the following extensions: {0}", + "ThisFieldMustBeAStringOrArrayTypeWithAMaximumLengthoOf{0}": "This field must be a string or array type with a maximum length of '{0}'.", + "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "This field must be a string or array type with a minimum length of '{0}'.", + "ThisFieldIsNotAValidPhoneNumber.": "This field is not a valid phone number.", + "ThisFieldMustBeBetween{0}And{1}": "This field must be between {0} and {1}.", + "ThisFieldMustMatchTheRegularExpression{0}": "This field must match the regular expression '{0}'.", + "ThisFieldIsRequired.": "This field is required.", + "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "This field must be a string with a maximum length of {0}.", + "ThisFieldMustBeAStringWithAMinimumLengthOf{1}AndAMaximumLengthOf{0}": "This field must be a string with a minimum length of {1} and a maximum length of {0}.", + "ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "This field is not a valid fully-qualified http, https, or ftp URL.", + "ThisFieldIsInvalid.": "This field is invalid." + } +} From befca94445f2ad3f7abf83a6b7895484404f443e Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 14:44:25 +0300 Subject: [PATCH 028/222] Update ru.json for Volo.Abp.Validation --- .../Volo/Abp/Validation/Localization/ru.json | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ru.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ru.json index a2023691a8..6272fdf534 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ru.json +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ru.json @@ -2,33 +2,33 @@ "culture": "ru", "texts": { "'{0}' and '{1}' do not match.": "'{0}' и '{1}' не совпадают.", - "The {0} field is not a valid credit card number.": "The {0} field is not a valid credit card number.", - "{0} is not valid.": "{0} is not valid.", - "The {0} field is not a valid e-mail address.": "The {0} field is not a valid e-mail address.", - "The {0} field only accepts files with the following extensions: {1}": "The {0} field only accepts files with the following extensions: {1}", - "The field {0} must be a string or array type with a maximum length of '{1}'.": "The field {0} must be a string or array type with a maximum length of '{1}'.", - "The field {0} must be a string or array type with a minimum length of '{1}'.": "The field {0} must be a string or array type with a minimum length of '{1}'.", - "The {0} field is not a valid phone number.": "The {0} field is not a valid phone number.", - "The field {0} must be between {1} and {2}.": "The field {0} must be between {1} and {2}.", - "The field {0} must match the regular expression '{1}'.": "The field {0} must match the regular expression '{1}'.", - "The {0} field is required.": "The {0} field is required.", - "The field {0} must be a string with a maximum length of {1}.": "The field {0} must be a string with a maximum length of {1}.", - "The field {0} must be a string with a minimum length of {2} and a maximum length of {1}.": "The field {0} must be a string with a minimum length of {2} and a maximum length of {1}.", - "The {0} field is not a valid fully-qualified http, https, or ftp URL.": "The {0} field is not a valid fully-qualified http, https, or ftp URL.", - "The field {0} is invalid.": "The field {0} is invalid.", - "ThisFieldIsNotAValidCreditCardNumber.": "This field is not a valid credit card number.", - "ThisFieldIsNotValid.": "This field is not valid.", - "ThisFieldIsNotAValidEmailAddress.": "This field is not a valid e-mail address.", - "ThisFieldOnlyAcceptsFilesWithTheFollowingExtensions:{0}": "This field only accepts files with the following extensions: {0}", - "ThisFieldMustBeAStringOrArrayTypeWithAMaximumLengthoOf{0}": "This field must be a string or array type with a maximum length of '{0}'.", - "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "This field must be a string or array type with a minimum length of '{0}'.", - "ThisFieldIsNotAValidPhoneNumber.": "This field is not a valid phone number.", - "ThisFieldMustBeBetween{0}And{1}": "This field must be between {0} and {1}.", - "ThisFieldMustMatchTheRegularExpression{0}": "This field must match the regular expression '{0}'.", - "ThisFieldIsRequired.": "This field is required.", - "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "This field must be a string with a maximum length of {0}.", - "ThisFieldMustBeAStringWithAMinimumLengthOf{1}AndAMaximumLengthOf{0}": "This field must be a string with a minimum length of {1} and a maximum length of {0}.", - "ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "This field is not a valid fully-qualified http, https, or ftp URL.", - "ThisFieldIsInvalid.": "This field is invalid." + "The {0} field is not a valid credit card number.": "Поле {0} не содержит действительный номер кредитной карты.", + "{0} is not valid.": "Значение {0} недействительно.", + "The {0} field is not a valid e-mail address.": "Поле {0} не содержит действительный адрес электронной почты.", + "The {0} field only accepts files with the following extensions: {1}": "В поле {0} вы можете загрузить файлы следующих форматов: {1}", + "The field {0} must be a string or array type with a maximum length of '{1}'.": "Поле {0} должно иметь тип строки или массива с максимальной длиной '{1}'.", + "The field {0} must be a string or array type with a minimum length of '{1}'.": "Поле {0} должно иметь тип строки или массива с минимальной длиной '{1}'.", + "The {0} field is not a valid phone number.": "Поле {0} не содержит действительный номер телефона.", + "The field {0} must be between {1} and {2}.": "Поле {0} должно находиться между {1} и {2}.", + "The field {0} must match the regular expression '{1}'.": "Поле {0} должно соответствовать регулярному выражению '{1}'.", + "The {0} field is required.": "Поле {0} необходимо заполнить.", + "The field {0} must be a string with a maximum length of {1}.": "Поле {0} должно быть строкой с максимальной длиной {1}.", + "The field {0} must be a string with a minimum length of {2} and a maximum length of {1}.": "Поле {0} должно быть строкой с минимальной длиной {2} и максимальной длиной {1}.", + "The {0} field is not a valid fully-qualified http, https, or ftp URL.": "Поле {0} не является действительным полным http, https или ftp адресом.", + "The field {0} is invalid.": "Значение в поле {0} недопустимо.", + "ThisFieldIsNotAValidCreditCardNumber.": "Это поле не содержит действительный номер кредитной карты.", + "ThisFieldIsNotValid.": "Значение в этом поле недействительно.", + "ThisFieldIsNotAValidEmailAddress.": "Это поле не содержит действительный адрес электронной почты.", + "ThisFieldOnlyAcceptsFilesWithTheFollowingExtensions:{0}": "Вы можете загрузить файлы только следующих форматов: {0}", + "ThisFieldMustBeAStringOrArrayTypeWithAMaximumLengthoOf{0}": "Это поле должно иметь тип строки или массива с максимальной длиной '{0}'.", + "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "Это поле должно иметь тип строки или массива с минимальной длиной '{0}'.", + "ThisFieldIsNotAValidPhoneNumber.": "Это поле не содержит действительный номер телефона.", + "ThisFieldMustBeBetween{0}And{1}": "Это поле должно быть между {0} и {1}.", + "ThisFieldMustMatchTheRegularExpression{0}": "Это поле должно соответствовать регулярному выражению '{0}'.", + "ThisFieldIsRequired.": "Это обязательное поле.", + "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "Это поле должно быть строкой с максимальной длиной {0}.", + "ThisFieldMustBeAStringWithAMinimumLengthOf{1}AndAMaximumLengthOf{0}": "Это поле должно быть строкой с минимальной длиной {1} и максимальной длиной {0}.", + "ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "Значение в поле не является действительным полным http, https или ftp адресом.", + "ThisFieldIsInvalid.": "Значение в этом поле недопустимо." } } From 7c577d195ce7515fe10aad8b59032051bea64485 Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 15:27:18 +0300 Subject: [PATCH 029/222] Create ru.json for Volo.Abp.UI --- .../Localization/Resources/AbpUi/ru.json | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ru.json diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ru.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ru.json new file mode 100644 index 0000000000..7b48db1a3a --- /dev/null +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ru.json @@ -0,0 +1,62 @@ +{ + "culture": "ru", + "texts": { + "InternalServerErrorMessage": "Во время запроса произошла внутренняя ошибка!", + "ValidationErrorMessage": "Ваш запрос недействителен!", + "ValidationNarrativeErrorMessageTitle": "При проверке были обнаружены следующие ошибки.", + "DefaultErrorMessage": "Произошла ошибка!", + "DefaultErrorMessageDetail": "Сведения об ошибке не были предоставлены сервером.", + "DefaultErrorMessage401": "Вы не авторизированы!", + "DefaultErrorMessage401Detail": "Вы должны Войти, чтобы выполнить эту операцию.", + "DefaultErrorMessage403": "Вы не авторизованы!", + "DefaultErrorMessage403Detail": "У вас нет доступа к выполнению этой операции!", + "DefaultErrorMessage404": "Ресурс не найден!", + "DefaultErrorMessage404Detail": "Запрошенный ресурс не удалось найти на сервере!", + "EntityNotFoundErrorMessage": "Нет объекта {0} с id = {1}!", + "Languages": "Языки", + "Error": "Ошибка", + "AreYouSure": "Вы уверены?", + "Cancel": "Отмена", + "Yes": "Да", + "No": "Нет", + "Ok": "ОК", + "Close": "Закрыть", + "Save": "Сохранить", + "SavingWithThreeDot": "Сохранение...", + "Actions": "Действия", + "Delete": "Удалить", + "Edit": "Редактировать", + "Refresh": "Обновить", + "Language": "Язык", + "LoadMore": "Загрузить еще", + "ProcessingWithThreeDot": "Обработка...", + "LoadingWithThreeDot": "Загрузка...", + "Welcome": "Добро пожаловать", + "Login": "Войти", + "Register": "Зарегистрироваться", + "Logout": "Выйти", + "Submit": "Подтвердить", + "Back": "Назад", + "PagerSearch": "Поиск", + "PagerNext": "Следующее", + "PagerPrevious": "Предыдущее", + "PagerFirst": "Первая", + "PagerLast": "Последняя", + "PagerInfo": "Записи с _START_ до _END_ из _TOTAL_ записей", + "PagerInfoEmpty": "Записи с 0 до 0 из 0 записей.", + "PagerInfoFiltered": "(отфильтровано из _MAX_ записей)", + "NoDataAvailableInDatatable": "Данные в таблице отсутствуют", + "PagerShowMenuEntries": "Показать _MENU_ записей", + "DatatableActionDropdownDefaultText": "Действия", + "ChangePassword": "Изменить пароль", + "PersonalInfo": "Мой профиль", + "AreYouSureYouWantToCancelEditingWarningMessage": "У вас есть несохраненные изменения.", + "UnhandledException": "Непредвиденная ошибка!", + "401Message": "Неавторизованный", + "403Message": "В доступе отказано", + "404Message": "Страница не найдена", + "500Message": "Внутренняя ошибка сервера", + "GoHomePage": "Вернуться на главную страницу", + "GoBack": "Вернуться назад" + } +} From 8b6969415658cae921768b3aa4c1c7118321af29 Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 15:55:59 +0300 Subject: [PATCH 030/222] Create ru.json for Volo.Abp.UI.Navigation --- .../Volo/Abp/Ui/Navigation/Localization/Resource/ru.json | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Localization/Resource/ru.json diff --git a/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Localization/Resource/ru.json b/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Localization/Resource/ru.json new file mode 100644 index 0000000000..2a76578396 --- /dev/null +++ b/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Localization/Resource/ru.json @@ -0,0 +1,6 @@ +{ + "culture": "ru", + "texts": { + "Menu:Administration": "Администрирование" + } +} From bc35b98ba0502b0c50db66f1336a75e43328d77b Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 16:18:32 +0300 Subject: [PATCH 031/222] Create ru.json for Volo.Abp.Localization --- .../Abp/Localization/Resources/AbpLocalization/ru.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/ru.json diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/ru.json b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/ru.json new file mode 100644 index 0000000000..3f00c8994b --- /dev/null +++ b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/ru.json @@ -0,0 +1,7 @@ +{ + "culture": "ru", + "texts": { + "DisplayName:Abp.Localization.DefaultLanguage": "Язык по умолчанию", + "Description:Abp.Localization.DefaultLanguage": "Язык приложения по умолчанию." + } +} From 653924c11087f628a6d81c5ef57c5fffb7ce3f1c Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 16:59:59 +0300 Subject: [PATCH 032/222] Create ru.json for Volo.Abp.Emailing --- .../Volo/Abp/Emailing/Localization/ru.json | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/ru.json diff --git a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/ru.json b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/ru.json new file mode 100644 index 0000000000..249baa61b2 --- /dev/null +++ b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/ru.json @@ -0,0 +1,23 @@ +{ + "culture": "ru", + "texts": { + "DisplayName:Abp.Mailing.DefaultFromAddress": "Адрес отправления по умолчанию", + "DisplayName:Abp.Mailing.DefaultFromDisplayName": "Имя отправителя по умолчанию", + "DisplayName:Abp.Mailing.Smtp.Host": "Сервер", + "DisplayName:Abp.Mailing.Smtp.Port": "Порт", + "DisplayName:Abp.Mailing.Smtp.UserName": "Имя пользователя", + "DisplayName:Abp.Mailing.Smtp.Password": "Пароль", + "DisplayName:Abp.Mailing.Smtp.Domain": "Домен", + "DisplayName:Abp.Mailing.Smtp.EnableSsl": "Включить SSL", + "DisplayName:Abp.Mailing.Smtp.UseDefaultCredentials": "Использовать учетные данные по умолчанию", + "Description:Abp.Mailing.DefaultFromAddress": "Отправление по умолчанию от адреса.", + "Description:Abp.Mailing.DefaultFromDisplayName": "Имя отправителя по умолчанию.", + "Description:Abp.Mailing.Smtp.Host": "Имя или IP- адрес сервера, используемого для отправки по протоколу SMTP.", + "Description:Abp.Mailing.Smtp.Port": "Порт, используемый для отправки по протоколу SMTP.", + "Description:Abp.Mailing.Smtp.UserName": "Имя пользователя для SMTP-сервера.", + "Description:Abp.Mailing.Smtp.Password": "Пароль для SMTP-сервера.", + "Description:Abp.Mailing.Smtp.Domain": "Домен или имя компьютера, от которого производится SMTP-запрос.", + "Description:Abp.Mailing.Smtp.EnableSsl": "Использовать SSL для подключения к SMTP-серверу.", + "Description:Abp.Mailing.Smtp.UseDefaultCredentials": "Использовать учетные данные для SMTP по умолчанию." + } +} From 9f86a1c6480a65b4f1a39afbd3335a57d7329940 Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 17:09:55 +0300 Subject: [PATCH 033/222] Added ru.json For Volo.Abp.Ddd.Application.Contracts --- .../Abp/Application/Localization/Resources/AbpDdd/ru.json | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Localization/Resources/AbpDdd/ru.json diff --git a/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Localization/Resources/AbpDdd/ru.json b/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Localization/Resources/AbpDdd/ru.json new file mode 100644 index 0000000000..b84f77f8b3 --- /dev/null +++ b/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Localization/Resources/AbpDdd/ru.json @@ -0,0 +1,6 @@ +{ + "culture": "ru", + "texts": { + "MaxResultCountExceededExceptionMessage": "{0} не может быть больше {1}! Увеличьте {2}.{3} на стороне сервера, чтобы получить больше результатов." + } +} From edd36dc240b1b559f60c2cf07dcd313cece95f66 Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 18:12:11 +0300 Subject: [PATCH 034/222] Create ru.json for Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy --- .../Mvc/UI/MultiTenancy/Localization/ru.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/ru.json diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/ru.json b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/ru.json new file mode 100644 index 0000000000..04b2e5cf85 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/ru.json @@ -0,0 +1,12 @@ +{ + "culture": "ru", + "texts": { + "GivenTenantIsNotAvailable": "Данный арендатор недоступен: {0}", + "Tenant": "Арендатор", + "Switch": "переключиться", + "Name": "Имя", + "SwitchTenantHint": "Оставьте поле Имя пустым, чтобы переключиться на администратора.", + "SwitchTenant": "Сменить арендатора", + "NotSelected": "Не выбрано" + } +} From 4d3ce4b7dbbffd56017f454a6bcc82f7bde17f0e Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 18:38:13 +0300 Subject: [PATCH 035/222] Create ru.json for Volo.Blogging.Domain.Shared --- .../Blogging/Localization/Resources/ru.json | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/ru.json diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/ru.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/ru.json new file mode 100644 index 0000000000..898d363cef --- /dev/null +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/ru.json @@ -0,0 +1,47 @@ +{ + "culture": "ru", + "texts": { + "Menu:Blogs": "Блоги", + "Menu:BlogManagement": "Управление блогом", + "Title": "Заголовок", + "Delete": "Удалить", + "Reply": "Ответить", + "ReplyTo": "Ответить {0}", + "ContinueReading": "Продолжить чтение", + "DaysAgo": "{0} дней назад", + "YearsAgo": "{0} лет назад", + "MonthsAgo": "{0} месяцев назад", + "WeeksAgo": "{0} недель назад", + "MinutesAgo": "{0} минут назад", + "SecondsAgo": "{0} секунд назад", + "HoursAgo": "{0} часов назад", + "Now": "сейчас", + "Content": "Содержание", + "SeeAll": "Увидеть все", + "PopularTags": "Популярные тэги", + "WiewsWithCount": "{0} просмотров", + "LastPosts": "Последние записи", + "LeaveComment": "Оставить комментарий", + "TagsInThisArticle": "Теги в этой статье", + "Posts": "Записи", + "Edit": "Редактировать", + "BLOG": "БЛОГ", + "CommentDeletionWarningMessage": "Комментарий будет удален.", + "PostDeletionWarningMessage": "Запись будет удалена.", + "BlogDeletionWarningMessage": "Блог будет удален.", + "AreYouSure": "Вы уверены?", + "CommentWithCount": "{0} комментариев", + "Comment": "Комментарий", + "ShareOnTwitter": "Поделиться в Twitter", + "CoverImage": "Обложка", + "CreateANewPost": "Создать новый пост", + "CreateANewBlog": "Создать новый блог", + "WhatIsNew": "Что нового?", + "Name": "Имя", + "ShortName": "Фамилия", + "CreationTime": "Время создания", + "Description": "Описание", + "Blogs": "Блоги", + "Tags": "Теги" + } +} From 7d60e9af3fbdf4bba2cd573a7b91b18d57acc86e Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 19:07:54 +0300 Subject: [PATCH 036/222] Added ru.json for Volo.Docs.Admin.Application.Contracts --- .../Docs/ApplicationContracts/ru.json | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/ru.json diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/ru.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/ru.json new file mode 100644 index 0000000000..ba2680892c --- /dev/null +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/ru.json @@ -0,0 +1,37 @@ +{ + "culture": "ru", + "texts": { + "Permission:DocumentManagement": "Управление документацией", + "Permission:Projects": "Проекты", + "Permission:Edit": "Редактировать", + "Permission:Delete": "Удалить", + "Permission:Create": "Создать", + "Permission:Documents": "Документы", + "Menu:DocumentManagement": "Документы", + "Menu:ProjectManagement": "Проекты", + "CreateANewProject": "Создать проекты", + "Edit": "Редактировать", + "Create": "Создать", + "Pull": "Получить", + "Projects": "Проекты", + "Name": "Название", + "ShortName": "Сокращенное название", + "DocumentStoreType": "Тип системы хранения", + "Format": "Формат", + "ShortNameInfoText": "Будет использоваться для уникального URL.", + "DisplayName:Name": "Название", + "DisplayName:ShortName": "Сокращенное название", + "DisplayName:Format": "Формат", + "DisplayName:DefaultDocumentName": "Имя документа по умолчанию", + "DisplayName:NavigationDocumentName": "Имя документа для навигации", + "DisplayName:MinimumVersion": "Минимальная версия", + "DisplayName:MainWebsiteUrl": "URL основного веб-сайта", + "DisplayName:LatestVersionBranchName": "Название ветки последней версии", + "DisplayName:GitHubRootUrl": "Корневой URL-адрес GitHub", + "DisplayName:GitHubAccessToken": "Маркер доступа для GitHub", + "DisplayName:GitHubUserAgent": "Заголовок User-Agent для GitHub", + "DisplayName:All": "Получить все", + "DisplayName:LanguageCode": "Код языка", + "DisplayName:Version": "Версия" + } +} From 0f546ed8ef16c427ffeea8cbe2e3c83078284985 Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 19:24:34 +0300 Subject: [PATCH 037/222] Added ru.json for VoloDocs.Web --- .../Localization/Resources/VoloDocs/Web/ru.json | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/ru.json diff --git a/modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/ru.json b/modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/ru.json new file mode 100644 index 0000000000..e0e5094cc1 --- /dev/null +++ b/modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/ru.json @@ -0,0 +1,10 @@ +{ + "culture": "ru", + "texts": { + "DocsTitle": "VoloDocs", + "WelcomeVoloDocs": "Добро пожаловать в VoloDocs!", + "NoProjectWarning": "Отсутствует определение проекта!", + "CreateYourFirstProject": "Нажмите здесь, чтобы добавить свой первый проект", + "NoProject": "Нет проекта!" + } +} From ef3d83fa47018c2a455156e6e526faf2c2a84ddc Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 19:28:54 +0300 Subject: [PATCH 038/222] Added ru.json for Volo.Abp.FeatureManagement.Domain.Shared --- .../Volo/Abp/FeatureManagement/Localization/Domain/ru.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ru.json diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ru.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ru.json new file mode 100644 index 0000000000..3945762269 --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ru.json @@ -0,0 +1,7 @@ +{ + "culture": "ru", + "texts": { + "Features": "Функциональные возможности", + "NoFeatureFoundMessage": "Нет доступных функциональных возможностей." + } +} From a191a4a5f1eab99bb881f31a246653c8d5fb40e9 Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 21:04:22 +0300 Subject: [PATCH 039/222] Added ru.json for Volo.Abp.IdentityServer.Domain.Shared --- .../IdentityServer/Localization/Resources/ru.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/ru.json diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/ru.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/ru.json new file mode 100644 index 0000000000..808962d8e5 --- /dev/null +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/ru.json @@ -0,0 +1,12 @@ +{ + "culture": "ru", + "texts": { + "Volo.IdentityServer:DuplicateIdentityResourceName": "Имя ресурса идентификации уже существует: {Name}", + "Volo.IdentityServer:DuplicateApiResourceName": "Имя ресурса API уже существует: {Name}", + "Volo.IdentityServer:DuplicateClientId": "Параметр ClientID уже существует: {ClientId}", + "UserLockedOut": "Учетная запись пользователя была заблокирована из-за неудачных попыток входа в систему. Пожалуйста, попробуйте позже.", + "InvalidUserNameOrPassword": "Неверное имя пользователя или пароль!", + "LoginIsNotAllowed": "У вас нет разрешения на вход в систему. Необходимо подтвердить свой адрес электронной почты/номер телефона.", + "InvalidUsername": "Неверное имя пользователя или пароль!" + } +} From 87d41f9ac26c493e03d93ac120b76791bbc748d4 Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 21:24:03 +0300 Subject: [PATCH 040/222] Added ru.json for Volo.Abp.Identity.Domain.Shared --- .../Volo/Abp/Identity/Localization/ru.json | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ru.json diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ru.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ru.json new file mode 100644 index 0000000000..1df7b63bfe --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ru.json @@ -0,0 +1,102 @@ +{ + "culture": "ru", + "texts": { + "Menu:IdentityManagement": "Управление идентификацией", + "Users": "Пользователи", + "NewUser": "Новый пользователь", + "UserName": "Имя пользователя", + "EmailAddress": "Адрес электронной почты", + "PhoneNumber": "Номер телефона", + "UserInformations": "Информация о пользователе", + "DisplayName:IsDefault": "По умолчанию", + "DisplayName:IsStatic": "Статичная", + "DisplayName:IsPublic": "Доступно", + "Roles": "Роли", + "Password": "Пароль", + "PersonalInfo": "Мой профиль", + "PersonalSettings": "Персональные настройки", + "UserDeletionConfirmationMessage": "Пользователь '{0}' будет удален. Вы подтверждаете это?", + "RoleDeletionConfirmationMessage": "Роль '{0}' будет удалена. Вы подтверждаете это?", + "DisplayName:RoleName": "Название роли", + "DisplayName:UserName": "Имя пользователя", + "DisplayName:Name": "Имя", + "DisplayName:Surname": "Фамилия", + "DisplayName:Password": "Пароль", + "DisplayName:Email": "Адрес электронной почты", + "DisplayName:PhoneNumber": "Номер телефона", + "DisplayName:TwoFactorEnabled": "Двухфакторная проверка подлинности", + "DisplayName:LockoutEnabled": "Заблокировать учетную запись после неудачных попыток входа", + "NewRole": "Новая роль", + "RoleName": "Имя роли", + "CreationTime": "Время создания", + "Permissions": "Разрешения", + "DisplayName:CurrentPassword": "Текущий пароль", + "DisplayName:NewPassword": "Новый пароль", + "DisplayName:NewPasswordConfirm": "Подтверждение нового пароля", + "PasswordChangedMessage": "Ваш пароль был успешно изменен.", + "PersonalSettingsSavedMessage": "Ваши персональные настройки были успешно сохранены.", + "Identity.DefaultError": "Возникла непредвиденная ошибка.", + "Identity.ConcurrencyFailure": "Ошибка оптимального управления многопоточностью, объект был изменен.", + "Identity.DuplicateEmail": "Электронная почта '{0}' уже зарегистрирована.", + "Identity.DuplicateRoleName": "Имя роли '{0}' уже занято.", + "Identity.DuplicateUserName": "Имя пользователя '{0}' уже занято.", + "Identity.InvalidEmail": "Адрес электронной почты '{0}' недействителен.", + "Identity.InvalidPasswordHasherCompatibilityMode": "Предоставленный PasswordHasherCompatibilityMode недействителен.", + "Identity.InvalidPasswordHasherIterationCount": "Число итераций должно быть положительным целым числом.", + "Identity.InvalidRoleName": "Имя роли '{0}' недопустимо.", + "Identity.InvalidToken": "Недопустимый маркер.", + "Identity.InvalidUserName": "Имя пользователя '{0}' недопустимо и может содержать только буквы или цифры.", + "Identity.LoginAlreadyAssociated": "Пользователь с таким логином уже существует.", + "Identity.PasswordMismatch": "Неверный пароль.", + "Identity.PasswordRequiresDigit": "Пароль должен содержать по крайней мере одну цифру.", + "Identity.PasswordRequiresLower": "Пароль должен содержать хотя бы одну строчную букву.", + "Identity.PasswordRequiresNonAlphanumeric": "Пароль должен иметь по крайней мере один не буквенно-цифровой символ.", + "Identity.PasswordRequiresUpper": "Пароль должен иметь хотя бы одну букву верхнего регистра.", + "Identity.PasswordTooShort": "Пароль должен содержать не менее {0} символов.", + "Identity.RoleNotFound": "Роль {0} не существует.", + "Identity.UserAlreadyHasPassword": "У пользователя уже установлен пароль.", + "Identity.UserAlreadyInRole": "Пользователь уже имеет роль '{0}'.", + "Identity.UserLockedOut": "Пользователь временно заблокирован.", + "Identity.UserLockoutNotEnabled": "Блокировка не активирована для этого пользователя.", + "Identity.UserNameNotFound": "Пользователь {0} не существует.", + "Identity.UserNotInRole": "Пользователь не имеет роль '{0}'.", + "Identity.PasswordConfirmationFailed": "Пароли не совпадают.", + "Identity.StaticRoleRenamingErrorMessage": "Статические роли не могут быть переименованы.", + "Identity.StaticRoleDeletionErrorMessage": "Статические роли не могут быть удалены.", + "Volo.Abp.Identity:010001": "Вы не можете удалить свой собственный аккаунт!", + "Permission:IdentityManagement": "Управление идентификацией", + "Permission:RoleManagement": "Управление ролями", + "Permission:Create": "Создать", + "Permission:Edit": "Редактировать", + "Permission:Delete": "Удалить", + "Permission:ChangePermissions": "Изменить разрешения", + "Permission:UserManagement": "Управление пользователями", + "Permission:UserLookup": "Поиск пользователя", + "DisplayName:Abp.Identity.Password.RequiredLength": "Требуемая длина", + "DisplayName:Abp.Identity.Password.RequiredUniqueChars": "Обязательное количество уникальных символов", + "DisplayName:Abp.Identity.Password.RequireNonAlphanumeric": "Обязательный не буквенно-цифровой символ", + "DisplayName:Abp.Identity.Password.RequireLowercase": "Обязательный символ нижнего регистра", + "DisplayName:Abp.Identity.Password.RequireUppercase": "Обязательный символ верхнего регистра", + "DisplayName:Abp.Identity.Password.RequireDigit": "Требуемая цифра", + "DisplayName:Abp.Identity.Lockout.AllowedForNewUsers": "Включено для новых пользователей", + "DisplayName:Abp.Identity.Lockout.LockoutDuration": "Длительность блокировки (секунды)", + "DisplayName:Abp.Identity.Lockout.MaxFailedAccessAttempts": "Максимальное количество неудачных попыток доступа", + "DisplayName:Abp.Identity.SignIn.RequireConfirmedEmail": "Требуется подтверждение электронной почты", + "DisplayName:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Требуется подтверждение номера телефона", + "DisplayName:Abp.Identity.User.IsUserNameUpdateEnabled": "Пользователь может изменять имя", + "DisplayName:Abp.Identity.User.IsEmailUpdateEnabled": "Электронная почта может быть изменена", + "Description:Abp.Identity.Password.RequiredLength": "Минимальная длина пароля.", + "Description:Abp.Identity.Password.RequiredUniqueChars": "Минимальное количество уникальных символов, которые должен содержать пароль.", + "Description:Abp.Identity.Password.RequireNonAlphanumeric": "Если пароли должны содержать не буквенно- цифровой символ.", + "Description:Abp.Identity.Password.RequireLowercase": "Если пароли должны содержать строчные символы ASCII.", + "Description:Abp.Identity.Password.RequireUppercase": "Если пароли должны содержать символ ASCII в верхнем регистре.", + "Description:Abp.Identity.Password.RequireDigit": "Если пароли должны содержать цифру.", + "Description:Abp.Identity.Lockout.AllowedForNewUsers": "Может ли новый пользователь быть заблокирован.", + "Description:Abp.Identity.Lockout.LockoutDuration": "Длительность блокировки пользователя.", + "Description:Abp.Identity.Lockout.MaxFailedAccessAttempts": "Число неудачных попыток доступа, после которых пользователь будет заблокирован.", + "Description:Abp.Identity.SignIn.RequireConfirmedEmail": "Требуется ли для входа подтвержденный адрес электронной почты.", + "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Требуется ли для входа в систему подтвержденный номер телефона.", + "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Может ли пользователь обновить имя пользователя.", + "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Может ли электронная почта быть обновлена пользователем." + } +} From e45c8edc1e9f8323007f2d93d1124102819a964f Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 21:33:17 +0300 Subject: [PATCH 041/222] Added ru.json for Volo.Abp.PermissionManagement.Domain.Shared --- .../PermissionManagement/Localization/Domain/ru.json | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ru.json diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ru.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ru.json new file mode 100644 index 0000000000..33291e66a0 --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ru.json @@ -0,0 +1,10 @@ +{ + "culture": "ru", + "texts": { + "Permissions": "Разрешения", + "OnlyProviderPermissons": "Только этот провайдер", + "All": "Все", + "SelectAllInAllTabs": "Предоставить все разрешения", + "SelectAllInThisTab": "Выбрать все" + } +} From 52e5dcae94ab723039ab79cf92f229b81d8eb970 Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 21:35:57 +0300 Subject: [PATCH 042/222] Added ru.json for Volo.Abp.SettingManagement.Domain.Shared --- .../Localization/Resources/AbpSettingManagement/ru.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ru.json diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ru.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ru.json new file mode 100644 index 0000000000..3b23b1d04a --- /dev/null +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ru.json @@ -0,0 +1,7 @@ +{ + "culture": "ru", + "texts": { + "Settings": "Настройки", + "SuccessfullySaved": "Успешно сохранено" + } +} From 462f3f3f79546845cab34b17c6f65a23144171c0 Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 21:40:53 +0300 Subject: [PATCH 043/222] Added ru.json for Volo.Abp.TenantManagement.Domain.Shared --- .../Localization/Resources/ru.json | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/ru.json diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/ru.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/ru.json new file mode 100644 index 0000000000..dd8f0c3847 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/ru.json @@ -0,0 +1,20 @@ +{ + "culture": "ru", + "texts": { + "Menu:TenantManagement": "Управление арендаторами", + "Tenants": "Арендаторы", + "NewTenant": "Новый арендатор", + "TenantName": "Имя арендатора", + "DisplayName:TenantName": "Имя арендатора", + "TenantDeletionConfirmationMessage": "Арендатор '{0}' будет удален. Вы подтверждаете это?", + "ConnectionStrings": "Строки подключения", + "DisplayName:DefaultConnectionString": "Строка подключения по умолчанию", + "DisplayName:UseSharedDatabase": "Использование общей базы данных", + "Permission:TenantManagement": "Управление арендаторами", + "Permission:Create": "Создать", + "Permission:Edit": "Редактировать", + "Permission:Delete": "Удалить", + "Permission:ManageConnectionStrings": "Управление строками подключения", + "Permission:ManageFeatures": "Управление функциями" + } +} From e967bcb80b743fb317308157039ff46e8c121e9d Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 21:54:23 +0300 Subject: [PATCH 044/222] Added ru.json for Volo.Abp.Account.Application.Contracts --- .../Account/Localization/Resources/ru.json | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/ru.json diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/ru.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/ru.json new file mode 100644 index 0000000000..7f366bd782 --- /dev/null +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/ru.json @@ -0,0 +1,45 @@ +{ + "culture": "ru", + "texts": { + "UserName": "Имя пользователя", + "EmailAddress": "Адрес электронной почты", + "UserNameOrEmailAddress": "Имя пользователя или адрес электронной почты", + "Password": "Пароль", + "RememberMe": "Запомнить меня", + "UseAnotherServiceToLogin": "Использовать сторонний сервис для входа", + "UserLockedOutMessage": "Пользователь заблокирован из-за большого количества попыток входа. Пожалуйста, попробуйте позднее.", + "InvalidUserNameOrPassword": "Неправильные имя пользователя и/или пароль!", + "LoginIsNotAllowed": "Вы не можете войти. Вам необходимо подтвердить электронную почту или телефон.", + "SelfRegistrationDisabledMessage": "Самостоятельная регистрация не предусмотрена. Пожалуйста, свяжитесь с администраром для получения доступа.", + "LocalLoginDisabledMessage": "Локальный вход отключен.", + "Login": "Войти", + "Cancel": "Отмена", + "Register": "Регистрация", + "AreYouANewUser": "Новый пользователь?", + "AlreadyRegistered": "Уже зарегистрированы?", + "InvalidLoginRequest": "Неправильный запрос", + "ThereAreNoLoginSchemesConfiguredForThisClient": "Не найдено схемы для входа с текущим клиентским приложением.", + "LogInUsingYourProviderAccount": "Войти использую свой {0} аккаунт", + "DisplayName:CurrentPassword": "Текущий пароль", + "DisplayName:NewPassword": "Новый пароль", + "DisplayName:NewPasswordConfirm": "Повторите новый пароль", + "PasswordChangedMessage": "Ваш пароль успешно изменен.", + "DisplayName:UserName": "Имя пользователя", + "DisplayName:Email": "Email", + "DisplayName:Name": "Имя", + "DisplayName:Surname": "Фамилия", + "DisplayName:Password": "Пароль", + "DisplayName:EmailAddress": "Электронная почта", + "DisplayName:PhoneNumber": "Номер телефона", + "PersonalSettings": "Персональные настройки", + "PersonalSettingsSaved": "Персональные настройки сохранены", + "PasswordChanged": "Пароль изменен", + "NewPasswordConfirmFailed": "Пожалуйста подтвердите новый пароль.", + "Manage": "Управление учетной записью", + "ManageYourProfile": "Настройки", + "DisplayName:Abp.Account.IsSelfRegistrationEnabled": "Самостоятельная регистрация включена", + "Description:Abp.Account.IsSelfRegistrationEnabled": "Позволяет новым пользователям регистрироваться самостоятельно.", + "DisplayName:Abp.Account.EnableLocalLogin": "Вход с помощью локальной учетной записи приложения", + "Description:Abp.Account.EnableLocalLogin": "Указывает на то, разрешено ли пользователям входить с помощью локальной учетной записи приложения." + } +} From 9a690afddf3b5c4a417ec414a1bbed1a6d2529db Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 13:33:13 +0300 Subject: [PATCH 045/222] Create ru.json for Volo.Abp.Validation --- .../Volo/Abp/Validation/Localization/ru.json | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ru.json diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ru.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ru.json new file mode 100644 index 0000000000..a2023691a8 --- /dev/null +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ru.json @@ -0,0 +1,34 @@ +{ + "culture": "ru", + "texts": { + "'{0}' and '{1}' do not match.": "'{0}' и '{1}' не совпадают.", + "The {0} field is not a valid credit card number.": "The {0} field is not a valid credit card number.", + "{0} is not valid.": "{0} is not valid.", + "The {0} field is not a valid e-mail address.": "The {0} field is not a valid e-mail address.", + "The {0} field only accepts files with the following extensions: {1}": "The {0} field only accepts files with the following extensions: {1}", + "The field {0} must be a string or array type with a maximum length of '{1}'.": "The field {0} must be a string or array type with a maximum length of '{1}'.", + "The field {0} must be a string or array type with a minimum length of '{1}'.": "The field {0} must be a string or array type with a minimum length of '{1}'.", + "The {0} field is not a valid phone number.": "The {0} field is not a valid phone number.", + "The field {0} must be between {1} and {2}.": "The field {0} must be between {1} and {2}.", + "The field {0} must match the regular expression '{1}'.": "The field {0} must match the regular expression '{1}'.", + "The {0} field is required.": "The {0} field is required.", + "The field {0} must be a string with a maximum length of {1}.": "The field {0} must be a string with a maximum length of {1}.", + "The field {0} must be a string with a minimum length of {2} and a maximum length of {1}.": "The field {0} must be a string with a minimum length of {2} and a maximum length of {1}.", + "The {0} field is not a valid fully-qualified http, https, or ftp URL.": "The {0} field is not a valid fully-qualified http, https, or ftp URL.", + "The field {0} is invalid.": "The field {0} is invalid.", + "ThisFieldIsNotAValidCreditCardNumber.": "This field is not a valid credit card number.", + "ThisFieldIsNotValid.": "This field is not valid.", + "ThisFieldIsNotAValidEmailAddress.": "This field is not a valid e-mail address.", + "ThisFieldOnlyAcceptsFilesWithTheFollowingExtensions:{0}": "This field only accepts files with the following extensions: {0}", + "ThisFieldMustBeAStringOrArrayTypeWithAMaximumLengthoOf{0}": "This field must be a string or array type with a maximum length of '{0}'.", + "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "This field must be a string or array type with a minimum length of '{0}'.", + "ThisFieldIsNotAValidPhoneNumber.": "This field is not a valid phone number.", + "ThisFieldMustBeBetween{0}And{1}": "This field must be between {0} and {1}.", + "ThisFieldMustMatchTheRegularExpression{0}": "This field must match the regular expression '{0}'.", + "ThisFieldIsRequired.": "This field is required.", + "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "This field must be a string with a maximum length of {0}.", + "ThisFieldMustBeAStringWithAMinimumLengthOf{1}AndAMaximumLengthOf{0}": "This field must be a string with a minimum length of {1} and a maximum length of {0}.", + "ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "This field is not a valid fully-qualified http, https, or ftp URL.", + "ThisFieldIsInvalid.": "This field is invalid." + } +} From d8a3d324a87280c7ed990e9dcc581bace3413eb4 Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 14:44:25 +0300 Subject: [PATCH 046/222] Update ru.json for Volo.Abp.Validation --- .../Volo/Abp/Validation/Localization/ru.json | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ru.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ru.json index a2023691a8..6272fdf534 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ru.json +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ru.json @@ -2,33 +2,33 @@ "culture": "ru", "texts": { "'{0}' and '{1}' do not match.": "'{0}' и '{1}' не совпадают.", - "The {0} field is not a valid credit card number.": "The {0} field is not a valid credit card number.", - "{0} is not valid.": "{0} is not valid.", - "The {0} field is not a valid e-mail address.": "The {0} field is not a valid e-mail address.", - "The {0} field only accepts files with the following extensions: {1}": "The {0} field only accepts files with the following extensions: {1}", - "The field {0} must be a string or array type with a maximum length of '{1}'.": "The field {0} must be a string or array type with a maximum length of '{1}'.", - "The field {0} must be a string or array type with a minimum length of '{1}'.": "The field {0} must be a string or array type with a minimum length of '{1}'.", - "The {0} field is not a valid phone number.": "The {0} field is not a valid phone number.", - "The field {0} must be between {1} and {2}.": "The field {0} must be between {1} and {2}.", - "The field {0} must match the regular expression '{1}'.": "The field {0} must match the regular expression '{1}'.", - "The {0} field is required.": "The {0} field is required.", - "The field {0} must be a string with a maximum length of {1}.": "The field {0} must be a string with a maximum length of {1}.", - "The field {0} must be a string with a minimum length of {2} and a maximum length of {1}.": "The field {0} must be a string with a minimum length of {2} and a maximum length of {1}.", - "The {0} field is not a valid fully-qualified http, https, or ftp URL.": "The {0} field is not a valid fully-qualified http, https, or ftp URL.", - "The field {0} is invalid.": "The field {0} is invalid.", - "ThisFieldIsNotAValidCreditCardNumber.": "This field is not a valid credit card number.", - "ThisFieldIsNotValid.": "This field is not valid.", - "ThisFieldIsNotAValidEmailAddress.": "This field is not a valid e-mail address.", - "ThisFieldOnlyAcceptsFilesWithTheFollowingExtensions:{0}": "This field only accepts files with the following extensions: {0}", - "ThisFieldMustBeAStringOrArrayTypeWithAMaximumLengthoOf{0}": "This field must be a string or array type with a maximum length of '{0}'.", - "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "This field must be a string or array type with a minimum length of '{0}'.", - "ThisFieldIsNotAValidPhoneNumber.": "This field is not a valid phone number.", - "ThisFieldMustBeBetween{0}And{1}": "This field must be between {0} and {1}.", - "ThisFieldMustMatchTheRegularExpression{0}": "This field must match the regular expression '{0}'.", - "ThisFieldIsRequired.": "This field is required.", - "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "This field must be a string with a maximum length of {0}.", - "ThisFieldMustBeAStringWithAMinimumLengthOf{1}AndAMaximumLengthOf{0}": "This field must be a string with a minimum length of {1} and a maximum length of {0}.", - "ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "This field is not a valid fully-qualified http, https, or ftp URL.", - "ThisFieldIsInvalid.": "This field is invalid." + "The {0} field is not a valid credit card number.": "Поле {0} не содержит действительный номер кредитной карты.", + "{0} is not valid.": "Значение {0} недействительно.", + "The {0} field is not a valid e-mail address.": "Поле {0} не содержит действительный адрес электронной почты.", + "The {0} field only accepts files with the following extensions: {1}": "В поле {0} вы можете загрузить файлы следующих форматов: {1}", + "The field {0} must be a string or array type with a maximum length of '{1}'.": "Поле {0} должно иметь тип строки или массива с максимальной длиной '{1}'.", + "The field {0} must be a string or array type with a minimum length of '{1}'.": "Поле {0} должно иметь тип строки или массива с минимальной длиной '{1}'.", + "The {0} field is not a valid phone number.": "Поле {0} не содержит действительный номер телефона.", + "The field {0} must be between {1} and {2}.": "Поле {0} должно находиться между {1} и {2}.", + "The field {0} must match the regular expression '{1}'.": "Поле {0} должно соответствовать регулярному выражению '{1}'.", + "The {0} field is required.": "Поле {0} необходимо заполнить.", + "The field {0} must be a string with a maximum length of {1}.": "Поле {0} должно быть строкой с максимальной длиной {1}.", + "The field {0} must be a string with a minimum length of {2} and a maximum length of {1}.": "Поле {0} должно быть строкой с минимальной длиной {2} и максимальной длиной {1}.", + "The {0} field is not a valid fully-qualified http, https, or ftp URL.": "Поле {0} не является действительным полным http, https или ftp адресом.", + "The field {0} is invalid.": "Значение в поле {0} недопустимо.", + "ThisFieldIsNotAValidCreditCardNumber.": "Это поле не содержит действительный номер кредитной карты.", + "ThisFieldIsNotValid.": "Значение в этом поле недействительно.", + "ThisFieldIsNotAValidEmailAddress.": "Это поле не содержит действительный адрес электронной почты.", + "ThisFieldOnlyAcceptsFilesWithTheFollowingExtensions:{0}": "Вы можете загрузить файлы только следующих форматов: {0}", + "ThisFieldMustBeAStringOrArrayTypeWithAMaximumLengthoOf{0}": "Это поле должно иметь тип строки или массива с максимальной длиной '{0}'.", + "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "Это поле должно иметь тип строки или массива с минимальной длиной '{0}'.", + "ThisFieldIsNotAValidPhoneNumber.": "Это поле не содержит действительный номер телефона.", + "ThisFieldMustBeBetween{0}And{1}": "Это поле должно быть между {0} и {1}.", + "ThisFieldMustMatchTheRegularExpression{0}": "Это поле должно соответствовать регулярному выражению '{0}'.", + "ThisFieldIsRequired.": "Это обязательное поле.", + "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "Это поле должно быть строкой с максимальной длиной {0}.", + "ThisFieldMustBeAStringWithAMinimumLengthOf{1}AndAMaximumLengthOf{0}": "Это поле должно быть строкой с минимальной длиной {1} и максимальной длиной {0}.", + "ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "Значение в поле не является действительным полным http, https или ftp адресом.", + "ThisFieldIsInvalid.": "Значение в этом поле недопустимо." } } From b558021f5adece98207d1d97f66e77b5ac5b894d Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 15:27:18 +0300 Subject: [PATCH 047/222] Create ru.json for Volo.Abp.UI --- .../Localization/Resources/AbpUi/ru.json | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ru.json diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ru.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ru.json new file mode 100644 index 0000000000..7b48db1a3a --- /dev/null +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ru.json @@ -0,0 +1,62 @@ +{ + "culture": "ru", + "texts": { + "InternalServerErrorMessage": "Во время запроса произошла внутренняя ошибка!", + "ValidationErrorMessage": "Ваш запрос недействителен!", + "ValidationNarrativeErrorMessageTitle": "При проверке были обнаружены следующие ошибки.", + "DefaultErrorMessage": "Произошла ошибка!", + "DefaultErrorMessageDetail": "Сведения об ошибке не были предоставлены сервером.", + "DefaultErrorMessage401": "Вы не авторизированы!", + "DefaultErrorMessage401Detail": "Вы должны Войти, чтобы выполнить эту операцию.", + "DefaultErrorMessage403": "Вы не авторизованы!", + "DefaultErrorMessage403Detail": "У вас нет доступа к выполнению этой операции!", + "DefaultErrorMessage404": "Ресурс не найден!", + "DefaultErrorMessage404Detail": "Запрошенный ресурс не удалось найти на сервере!", + "EntityNotFoundErrorMessage": "Нет объекта {0} с id = {1}!", + "Languages": "Языки", + "Error": "Ошибка", + "AreYouSure": "Вы уверены?", + "Cancel": "Отмена", + "Yes": "Да", + "No": "Нет", + "Ok": "ОК", + "Close": "Закрыть", + "Save": "Сохранить", + "SavingWithThreeDot": "Сохранение...", + "Actions": "Действия", + "Delete": "Удалить", + "Edit": "Редактировать", + "Refresh": "Обновить", + "Language": "Язык", + "LoadMore": "Загрузить еще", + "ProcessingWithThreeDot": "Обработка...", + "LoadingWithThreeDot": "Загрузка...", + "Welcome": "Добро пожаловать", + "Login": "Войти", + "Register": "Зарегистрироваться", + "Logout": "Выйти", + "Submit": "Подтвердить", + "Back": "Назад", + "PagerSearch": "Поиск", + "PagerNext": "Следующее", + "PagerPrevious": "Предыдущее", + "PagerFirst": "Первая", + "PagerLast": "Последняя", + "PagerInfo": "Записи с _START_ до _END_ из _TOTAL_ записей", + "PagerInfoEmpty": "Записи с 0 до 0 из 0 записей.", + "PagerInfoFiltered": "(отфильтровано из _MAX_ записей)", + "NoDataAvailableInDatatable": "Данные в таблице отсутствуют", + "PagerShowMenuEntries": "Показать _MENU_ записей", + "DatatableActionDropdownDefaultText": "Действия", + "ChangePassword": "Изменить пароль", + "PersonalInfo": "Мой профиль", + "AreYouSureYouWantToCancelEditingWarningMessage": "У вас есть несохраненные изменения.", + "UnhandledException": "Непредвиденная ошибка!", + "401Message": "Неавторизованный", + "403Message": "В доступе отказано", + "404Message": "Страница не найдена", + "500Message": "Внутренняя ошибка сервера", + "GoHomePage": "Вернуться на главную страницу", + "GoBack": "Вернуться назад" + } +} From fe00608d6df0b45e422a3b6279cba81c392d2716 Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 15:55:59 +0300 Subject: [PATCH 048/222] Create ru.json for Volo.Abp.UI.Navigation --- .../Volo/Abp/Ui/Navigation/Localization/Resource/ru.json | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Localization/Resource/ru.json diff --git a/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Localization/Resource/ru.json b/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Localization/Resource/ru.json new file mode 100644 index 0000000000..2a76578396 --- /dev/null +++ b/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Localization/Resource/ru.json @@ -0,0 +1,6 @@ +{ + "culture": "ru", + "texts": { + "Menu:Administration": "Администрирование" + } +} From 1edb1e237be4b70f1c3e05a99d7255657a9113f9 Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 16:18:32 +0300 Subject: [PATCH 049/222] Create ru.json for Volo.Abp.Localization --- .../Abp/Localization/Resources/AbpLocalization/ru.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/ru.json diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/ru.json b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/ru.json new file mode 100644 index 0000000000..3f00c8994b --- /dev/null +++ b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/ru.json @@ -0,0 +1,7 @@ +{ + "culture": "ru", + "texts": { + "DisplayName:Abp.Localization.DefaultLanguage": "Язык по умолчанию", + "Description:Abp.Localization.DefaultLanguage": "Язык приложения по умолчанию." + } +} From c8d8cda55aa5ba831237fe1c56144e6008720e99 Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 16:59:59 +0300 Subject: [PATCH 050/222] Create ru.json for Volo.Abp.Emailing --- .../Volo/Abp/Emailing/Localization/ru.json | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/ru.json diff --git a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/ru.json b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/ru.json new file mode 100644 index 0000000000..249baa61b2 --- /dev/null +++ b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/ru.json @@ -0,0 +1,23 @@ +{ + "culture": "ru", + "texts": { + "DisplayName:Abp.Mailing.DefaultFromAddress": "Адрес отправления по умолчанию", + "DisplayName:Abp.Mailing.DefaultFromDisplayName": "Имя отправителя по умолчанию", + "DisplayName:Abp.Mailing.Smtp.Host": "Сервер", + "DisplayName:Abp.Mailing.Smtp.Port": "Порт", + "DisplayName:Abp.Mailing.Smtp.UserName": "Имя пользователя", + "DisplayName:Abp.Mailing.Smtp.Password": "Пароль", + "DisplayName:Abp.Mailing.Smtp.Domain": "Домен", + "DisplayName:Abp.Mailing.Smtp.EnableSsl": "Включить SSL", + "DisplayName:Abp.Mailing.Smtp.UseDefaultCredentials": "Использовать учетные данные по умолчанию", + "Description:Abp.Mailing.DefaultFromAddress": "Отправление по умолчанию от адреса.", + "Description:Abp.Mailing.DefaultFromDisplayName": "Имя отправителя по умолчанию.", + "Description:Abp.Mailing.Smtp.Host": "Имя или IP- адрес сервера, используемого для отправки по протоколу SMTP.", + "Description:Abp.Mailing.Smtp.Port": "Порт, используемый для отправки по протоколу SMTP.", + "Description:Abp.Mailing.Smtp.UserName": "Имя пользователя для SMTP-сервера.", + "Description:Abp.Mailing.Smtp.Password": "Пароль для SMTP-сервера.", + "Description:Abp.Mailing.Smtp.Domain": "Домен или имя компьютера, от которого производится SMTP-запрос.", + "Description:Abp.Mailing.Smtp.EnableSsl": "Использовать SSL для подключения к SMTP-серверу.", + "Description:Abp.Mailing.Smtp.UseDefaultCredentials": "Использовать учетные данные для SMTP по умолчанию." + } +} From 4fa0f1e5806d75517f0701bc15c1c302f737492c Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 17:09:55 +0300 Subject: [PATCH 051/222] Added ru.json For Volo.Abp.Ddd.Application.Contracts --- .../Abp/Application/Localization/Resources/AbpDdd/ru.json | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Localization/Resources/AbpDdd/ru.json diff --git a/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Localization/Resources/AbpDdd/ru.json b/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Localization/Resources/AbpDdd/ru.json new file mode 100644 index 0000000000..b84f77f8b3 --- /dev/null +++ b/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Localization/Resources/AbpDdd/ru.json @@ -0,0 +1,6 @@ +{ + "culture": "ru", + "texts": { + "MaxResultCountExceededExceptionMessage": "{0} не может быть больше {1}! Увеличьте {2}.{3} на стороне сервера, чтобы получить больше результатов." + } +} From 5269468ce04da4f06b0d866dff2729ac2d14d135 Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 18:12:11 +0300 Subject: [PATCH 052/222] Create ru.json for Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy --- .../Mvc/UI/MultiTenancy/Localization/ru.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/ru.json diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/ru.json b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/ru.json new file mode 100644 index 0000000000..04b2e5cf85 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/ru.json @@ -0,0 +1,12 @@ +{ + "culture": "ru", + "texts": { + "GivenTenantIsNotAvailable": "Данный арендатор недоступен: {0}", + "Tenant": "Арендатор", + "Switch": "переключиться", + "Name": "Имя", + "SwitchTenantHint": "Оставьте поле Имя пустым, чтобы переключиться на администратора.", + "SwitchTenant": "Сменить арендатора", + "NotSelected": "Не выбрано" + } +} From 6cad7ce02ab831ca9a8a9e60d3752e5786cc6654 Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 18:38:13 +0300 Subject: [PATCH 053/222] Create ru.json for Volo.Blogging.Domain.Shared --- .../Blogging/Localization/Resources/ru.json | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/ru.json diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/ru.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/ru.json new file mode 100644 index 0000000000..898d363cef --- /dev/null +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/ru.json @@ -0,0 +1,47 @@ +{ + "culture": "ru", + "texts": { + "Menu:Blogs": "Блоги", + "Menu:BlogManagement": "Управление блогом", + "Title": "Заголовок", + "Delete": "Удалить", + "Reply": "Ответить", + "ReplyTo": "Ответить {0}", + "ContinueReading": "Продолжить чтение", + "DaysAgo": "{0} дней назад", + "YearsAgo": "{0} лет назад", + "MonthsAgo": "{0} месяцев назад", + "WeeksAgo": "{0} недель назад", + "MinutesAgo": "{0} минут назад", + "SecondsAgo": "{0} секунд назад", + "HoursAgo": "{0} часов назад", + "Now": "сейчас", + "Content": "Содержание", + "SeeAll": "Увидеть все", + "PopularTags": "Популярные тэги", + "WiewsWithCount": "{0} просмотров", + "LastPosts": "Последние записи", + "LeaveComment": "Оставить комментарий", + "TagsInThisArticle": "Теги в этой статье", + "Posts": "Записи", + "Edit": "Редактировать", + "BLOG": "БЛОГ", + "CommentDeletionWarningMessage": "Комментарий будет удален.", + "PostDeletionWarningMessage": "Запись будет удалена.", + "BlogDeletionWarningMessage": "Блог будет удален.", + "AreYouSure": "Вы уверены?", + "CommentWithCount": "{0} комментариев", + "Comment": "Комментарий", + "ShareOnTwitter": "Поделиться в Twitter", + "CoverImage": "Обложка", + "CreateANewPost": "Создать новый пост", + "CreateANewBlog": "Создать новый блог", + "WhatIsNew": "Что нового?", + "Name": "Имя", + "ShortName": "Фамилия", + "CreationTime": "Время создания", + "Description": "Описание", + "Blogs": "Блоги", + "Tags": "Теги" + } +} From 1c04dce4a37561e982b1599d4209cdd4c0322339 Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 19:07:54 +0300 Subject: [PATCH 054/222] Added ru.json for Volo.Docs.Admin.Application.Contracts --- .../Docs/ApplicationContracts/ru.json | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/ru.json diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/ru.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/ru.json new file mode 100644 index 0000000000..ba2680892c --- /dev/null +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/ru.json @@ -0,0 +1,37 @@ +{ + "culture": "ru", + "texts": { + "Permission:DocumentManagement": "Управление документацией", + "Permission:Projects": "Проекты", + "Permission:Edit": "Редактировать", + "Permission:Delete": "Удалить", + "Permission:Create": "Создать", + "Permission:Documents": "Документы", + "Menu:DocumentManagement": "Документы", + "Menu:ProjectManagement": "Проекты", + "CreateANewProject": "Создать проекты", + "Edit": "Редактировать", + "Create": "Создать", + "Pull": "Получить", + "Projects": "Проекты", + "Name": "Название", + "ShortName": "Сокращенное название", + "DocumentStoreType": "Тип системы хранения", + "Format": "Формат", + "ShortNameInfoText": "Будет использоваться для уникального URL.", + "DisplayName:Name": "Название", + "DisplayName:ShortName": "Сокращенное название", + "DisplayName:Format": "Формат", + "DisplayName:DefaultDocumentName": "Имя документа по умолчанию", + "DisplayName:NavigationDocumentName": "Имя документа для навигации", + "DisplayName:MinimumVersion": "Минимальная версия", + "DisplayName:MainWebsiteUrl": "URL основного веб-сайта", + "DisplayName:LatestVersionBranchName": "Название ветки последней версии", + "DisplayName:GitHubRootUrl": "Корневой URL-адрес GitHub", + "DisplayName:GitHubAccessToken": "Маркер доступа для GitHub", + "DisplayName:GitHubUserAgent": "Заголовок User-Agent для GitHub", + "DisplayName:All": "Получить все", + "DisplayName:LanguageCode": "Код языка", + "DisplayName:Version": "Версия" + } +} From bb9ab67e765b82b047417036c79842ac39db2f93 Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 19:24:34 +0300 Subject: [PATCH 055/222] Added ru.json for VoloDocs.Web --- .../Localization/Resources/VoloDocs/Web/ru.json | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/ru.json diff --git a/modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/ru.json b/modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/ru.json new file mode 100644 index 0000000000..e0e5094cc1 --- /dev/null +++ b/modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/ru.json @@ -0,0 +1,10 @@ +{ + "culture": "ru", + "texts": { + "DocsTitle": "VoloDocs", + "WelcomeVoloDocs": "Добро пожаловать в VoloDocs!", + "NoProjectWarning": "Отсутствует определение проекта!", + "CreateYourFirstProject": "Нажмите здесь, чтобы добавить свой первый проект", + "NoProject": "Нет проекта!" + } +} From 728c05903b2588026bf810cd65d80c271b06f63a Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 19:28:54 +0300 Subject: [PATCH 056/222] Added ru.json for Volo.Abp.FeatureManagement.Domain.Shared --- .../Volo/Abp/FeatureManagement/Localization/Domain/ru.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ru.json diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ru.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ru.json new file mode 100644 index 0000000000..3945762269 --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ru.json @@ -0,0 +1,7 @@ +{ + "culture": "ru", + "texts": { + "Features": "Функциональные возможности", + "NoFeatureFoundMessage": "Нет доступных функциональных возможностей." + } +} From 22f28fb0f04f326aa46b1870e875a7c75f1da0bc Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 21:04:22 +0300 Subject: [PATCH 057/222] Added ru.json for Volo.Abp.IdentityServer.Domain.Shared --- .../IdentityServer/Localization/Resources/ru.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/ru.json diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/ru.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/ru.json new file mode 100644 index 0000000000..808962d8e5 --- /dev/null +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/ru.json @@ -0,0 +1,12 @@ +{ + "culture": "ru", + "texts": { + "Volo.IdentityServer:DuplicateIdentityResourceName": "Имя ресурса идентификации уже существует: {Name}", + "Volo.IdentityServer:DuplicateApiResourceName": "Имя ресурса API уже существует: {Name}", + "Volo.IdentityServer:DuplicateClientId": "Параметр ClientID уже существует: {ClientId}", + "UserLockedOut": "Учетная запись пользователя была заблокирована из-за неудачных попыток входа в систему. Пожалуйста, попробуйте позже.", + "InvalidUserNameOrPassword": "Неверное имя пользователя или пароль!", + "LoginIsNotAllowed": "У вас нет разрешения на вход в систему. Необходимо подтвердить свой адрес электронной почты/номер телефона.", + "InvalidUsername": "Неверное имя пользователя или пароль!" + } +} From b78a4923b29de5f6c733162ef9ef5fdbb6bdcf52 Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 21:24:03 +0300 Subject: [PATCH 058/222] Added ru.json for Volo.Abp.Identity.Domain.Shared --- .../Volo/Abp/Identity/Localization/ru.json | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ru.json diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ru.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ru.json new file mode 100644 index 0000000000..1df7b63bfe --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ru.json @@ -0,0 +1,102 @@ +{ + "culture": "ru", + "texts": { + "Menu:IdentityManagement": "Управление идентификацией", + "Users": "Пользователи", + "NewUser": "Новый пользователь", + "UserName": "Имя пользователя", + "EmailAddress": "Адрес электронной почты", + "PhoneNumber": "Номер телефона", + "UserInformations": "Информация о пользователе", + "DisplayName:IsDefault": "По умолчанию", + "DisplayName:IsStatic": "Статичная", + "DisplayName:IsPublic": "Доступно", + "Roles": "Роли", + "Password": "Пароль", + "PersonalInfo": "Мой профиль", + "PersonalSettings": "Персональные настройки", + "UserDeletionConfirmationMessage": "Пользователь '{0}' будет удален. Вы подтверждаете это?", + "RoleDeletionConfirmationMessage": "Роль '{0}' будет удалена. Вы подтверждаете это?", + "DisplayName:RoleName": "Название роли", + "DisplayName:UserName": "Имя пользователя", + "DisplayName:Name": "Имя", + "DisplayName:Surname": "Фамилия", + "DisplayName:Password": "Пароль", + "DisplayName:Email": "Адрес электронной почты", + "DisplayName:PhoneNumber": "Номер телефона", + "DisplayName:TwoFactorEnabled": "Двухфакторная проверка подлинности", + "DisplayName:LockoutEnabled": "Заблокировать учетную запись после неудачных попыток входа", + "NewRole": "Новая роль", + "RoleName": "Имя роли", + "CreationTime": "Время создания", + "Permissions": "Разрешения", + "DisplayName:CurrentPassword": "Текущий пароль", + "DisplayName:NewPassword": "Новый пароль", + "DisplayName:NewPasswordConfirm": "Подтверждение нового пароля", + "PasswordChangedMessage": "Ваш пароль был успешно изменен.", + "PersonalSettingsSavedMessage": "Ваши персональные настройки были успешно сохранены.", + "Identity.DefaultError": "Возникла непредвиденная ошибка.", + "Identity.ConcurrencyFailure": "Ошибка оптимального управления многопоточностью, объект был изменен.", + "Identity.DuplicateEmail": "Электронная почта '{0}' уже зарегистрирована.", + "Identity.DuplicateRoleName": "Имя роли '{0}' уже занято.", + "Identity.DuplicateUserName": "Имя пользователя '{0}' уже занято.", + "Identity.InvalidEmail": "Адрес электронной почты '{0}' недействителен.", + "Identity.InvalidPasswordHasherCompatibilityMode": "Предоставленный PasswordHasherCompatibilityMode недействителен.", + "Identity.InvalidPasswordHasherIterationCount": "Число итераций должно быть положительным целым числом.", + "Identity.InvalidRoleName": "Имя роли '{0}' недопустимо.", + "Identity.InvalidToken": "Недопустимый маркер.", + "Identity.InvalidUserName": "Имя пользователя '{0}' недопустимо и может содержать только буквы или цифры.", + "Identity.LoginAlreadyAssociated": "Пользователь с таким логином уже существует.", + "Identity.PasswordMismatch": "Неверный пароль.", + "Identity.PasswordRequiresDigit": "Пароль должен содержать по крайней мере одну цифру.", + "Identity.PasswordRequiresLower": "Пароль должен содержать хотя бы одну строчную букву.", + "Identity.PasswordRequiresNonAlphanumeric": "Пароль должен иметь по крайней мере один не буквенно-цифровой символ.", + "Identity.PasswordRequiresUpper": "Пароль должен иметь хотя бы одну букву верхнего регистра.", + "Identity.PasswordTooShort": "Пароль должен содержать не менее {0} символов.", + "Identity.RoleNotFound": "Роль {0} не существует.", + "Identity.UserAlreadyHasPassword": "У пользователя уже установлен пароль.", + "Identity.UserAlreadyInRole": "Пользователь уже имеет роль '{0}'.", + "Identity.UserLockedOut": "Пользователь временно заблокирован.", + "Identity.UserLockoutNotEnabled": "Блокировка не активирована для этого пользователя.", + "Identity.UserNameNotFound": "Пользователь {0} не существует.", + "Identity.UserNotInRole": "Пользователь не имеет роль '{0}'.", + "Identity.PasswordConfirmationFailed": "Пароли не совпадают.", + "Identity.StaticRoleRenamingErrorMessage": "Статические роли не могут быть переименованы.", + "Identity.StaticRoleDeletionErrorMessage": "Статические роли не могут быть удалены.", + "Volo.Abp.Identity:010001": "Вы не можете удалить свой собственный аккаунт!", + "Permission:IdentityManagement": "Управление идентификацией", + "Permission:RoleManagement": "Управление ролями", + "Permission:Create": "Создать", + "Permission:Edit": "Редактировать", + "Permission:Delete": "Удалить", + "Permission:ChangePermissions": "Изменить разрешения", + "Permission:UserManagement": "Управление пользователями", + "Permission:UserLookup": "Поиск пользователя", + "DisplayName:Abp.Identity.Password.RequiredLength": "Требуемая длина", + "DisplayName:Abp.Identity.Password.RequiredUniqueChars": "Обязательное количество уникальных символов", + "DisplayName:Abp.Identity.Password.RequireNonAlphanumeric": "Обязательный не буквенно-цифровой символ", + "DisplayName:Abp.Identity.Password.RequireLowercase": "Обязательный символ нижнего регистра", + "DisplayName:Abp.Identity.Password.RequireUppercase": "Обязательный символ верхнего регистра", + "DisplayName:Abp.Identity.Password.RequireDigit": "Требуемая цифра", + "DisplayName:Abp.Identity.Lockout.AllowedForNewUsers": "Включено для новых пользователей", + "DisplayName:Abp.Identity.Lockout.LockoutDuration": "Длительность блокировки (секунды)", + "DisplayName:Abp.Identity.Lockout.MaxFailedAccessAttempts": "Максимальное количество неудачных попыток доступа", + "DisplayName:Abp.Identity.SignIn.RequireConfirmedEmail": "Требуется подтверждение электронной почты", + "DisplayName:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Требуется подтверждение номера телефона", + "DisplayName:Abp.Identity.User.IsUserNameUpdateEnabled": "Пользователь может изменять имя", + "DisplayName:Abp.Identity.User.IsEmailUpdateEnabled": "Электронная почта может быть изменена", + "Description:Abp.Identity.Password.RequiredLength": "Минимальная длина пароля.", + "Description:Abp.Identity.Password.RequiredUniqueChars": "Минимальное количество уникальных символов, которые должен содержать пароль.", + "Description:Abp.Identity.Password.RequireNonAlphanumeric": "Если пароли должны содержать не буквенно- цифровой символ.", + "Description:Abp.Identity.Password.RequireLowercase": "Если пароли должны содержать строчные символы ASCII.", + "Description:Abp.Identity.Password.RequireUppercase": "Если пароли должны содержать символ ASCII в верхнем регистре.", + "Description:Abp.Identity.Password.RequireDigit": "Если пароли должны содержать цифру.", + "Description:Abp.Identity.Lockout.AllowedForNewUsers": "Может ли новый пользователь быть заблокирован.", + "Description:Abp.Identity.Lockout.LockoutDuration": "Длительность блокировки пользователя.", + "Description:Abp.Identity.Lockout.MaxFailedAccessAttempts": "Число неудачных попыток доступа, после которых пользователь будет заблокирован.", + "Description:Abp.Identity.SignIn.RequireConfirmedEmail": "Требуется ли для входа подтвержденный адрес электронной почты.", + "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Требуется ли для входа в систему подтвержденный номер телефона.", + "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Может ли пользователь обновить имя пользователя.", + "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Может ли электронная почта быть обновлена пользователем." + } +} From 9900e15dfeb65f0d01359520dbb4a99ee06fdc05 Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 21:33:17 +0300 Subject: [PATCH 059/222] Added ru.json for Volo.Abp.PermissionManagement.Domain.Shared --- .../PermissionManagement/Localization/Domain/ru.json | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ru.json diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ru.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ru.json new file mode 100644 index 0000000000..33291e66a0 --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ru.json @@ -0,0 +1,10 @@ +{ + "culture": "ru", + "texts": { + "Permissions": "Разрешения", + "OnlyProviderPermissons": "Только этот провайдер", + "All": "Все", + "SelectAllInAllTabs": "Предоставить все разрешения", + "SelectAllInThisTab": "Выбрать все" + } +} From f69c5138923244f00e434ec0bf137352fc130b86 Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 21:35:57 +0300 Subject: [PATCH 060/222] Added ru.json for Volo.Abp.SettingManagement.Domain.Shared --- .../Localization/Resources/AbpSettingManagement/ru.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ru.json diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ru.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ru.json new file mode 100644 index 0000000000..3b23b1d04a --- /dev/null +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ru.json @@ -0,0 +1,7 @@ +{ + "culture": "ru", + "texts": { + "Settings": "Настройки", + "SuccessfullySaved": "Успешно сохранено" + } +} From a905ae45ec0348688f6443a457cfcafc5e53ac9d Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 21:40:53 +0300 Subject: [PATCH 061/222] Added ru.json for Volo.Abp.TenantManagement.Domain.Shared --- .../Localization/Resources/ru.json | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/ru.json diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/ru.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/ru.json new file mode 100644 index 0000000000..dd8f0c3847 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/ru.json @@ -0,0 +1,20 @@ +{ + "culture": "ru", + "texts": { + "Menu:TenantManagement": "Управление арендаторами", + "Tenants": "Арендаторы", + "NewTenant": "Новый арендатор", + "TenantName": "Имя арендатора", + "DisplayName:TenantName": "Имя арендатора", + "TenantDeletionConfirmationMessage": "Арендатор '{0}' будет удален. Вы подтверждаете это?", + "ConnectionStrings": "Строки подключения", + "DisplayName:DefaultConnectionString": "Строка подключения по умолчанию", + "DisplayName:UseSharedDatabase": "Использование общей базы данных", + "Permission:TenantManagement": "Управление арендаторами", + "Permission:Create": "Создать", + "Permission:Edit": "Редактировать", + "Permission:Delete": "Удалить", + "Permission:ManageConnectionStrings": "Управление строками подключения", + "Permission:ManageFeatures": "Управление функциями" + } +} From 03215c2114b32b98ef427e00187dcf72b2d97407 Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Fri, 6 Mar 2020 21:54:23 +0300 Subject: [PATCH 062/222] Added ru.json for Volo.Abp.Account.Application.Contracts --- .../Account/Localization/Resources/ru.json | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/ru.json diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/ru.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/ru.json new file mode 100644 index 0000000000..7f366bd782 --- /dev/null +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/ru.json @@ -0,0 +1,45 @@ +{ + "culture": "ru", + "texts": { + "UserName": "Имя пользователя", + "EmailAddress": "Адрес электронной почты", + "UserNameOrEmailAddress": "Имя пользователя или адрес электронной почты", + "Password": "Пароль", + "RememberMe": "Запомнить меня", + "UseAnotherServiceToLogin": "Использовать сторонний сервис для входа", + "UserLockedOutMessage": "Пользователь заблокирован из-за большого количества попыток входа. Пожалуйста, попробуйте позднее.", + "InvalidUserNameOrPassword": "Неправильные имя пользователя и/или пароль!", + "LoginIsNotAllowed": "Вы не можете войти. Вам необходимо подтвердить электронную почту или телефон.", + "SelfRegistrationDisabledMessage": "Самостоятельная регистрация не предусмотрена. Пожалуйста, свяжитесь с администраром для получения доступа.", + "LocalLoginDisabledMessage": "Локальный вход отключен.", + "Login": "Войти", + "Cancel": "Отмена", + "Register": "Регистрация", + "AreYouANewUser": "Новый пользователь?", + "AlreadyRegistered": "Уже зарегистрированы?", + "InvalidLoginRequest": "Неправильный запрос", + "ThereAreNoLoginSchemesConfiguredForThisClient": "Не найдено схемы для входа с текущим клиентским приложением.", + "LogInUsingYourProviderAccount": "Войти использую свой {0} аккаунт", + "DisplayName:CurrentPassword": "Текущий пароль", + "DisplayName:NewPassword": "Новый пароль", + "DisplayName:NewPasswordConfirm": "Повторите новый пароль", + "PasswordChangedMessage": "Ваш пароль успешно изменен.", + "DisplayName:UserName": "Имя пользователя", + "DisplayName:Email": "Email", + "DisplayName:Name": "Имя", + "DisplayName:Surname": "Фамилия", + "DisplayName:Password": "Пароль", + "DisplayName:EmailAddress": "Электронная почта", + "DisplayName:PhoneNumber": "Номер телефона", + "PersonalSettings": "Персональные настройки", + "PersonalSettingsSaved": "Персональные настройки сохранены", + "PasswordChanged": "Пароль изменен", + "NewPasswordConfirmFailed": "Пожалуйста подтвердите новый пароль.", + "Manage": "Управление учетной записью", + "ManageYourProfile": "Настройки", + "DisplayName:Abp.Account.IsSelfRegistrationEnabled": "Самостоятельная регистрация включена", + "Description:Abp.Account.IsSelfRegistrationEnabled": "Позволяет новым пользователям регистрироваться самостоятельно.", + "DisplayName:Abp.Account.EnableLocalLogin": "Вход с помощью локальной учетной записи приложения", + "Description:Abp.Account.EnableLocalLogin": "Указывает на то, разрешено ли пользователям входить с помощью локальной учетной записи приложения." + } +} From 0ac721c9ee26805412ce218ffcbe1195971720ee Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Tue, 10 Mar 2020 15:52:28 +0300 Subject: [PATCH 063/222] Added ru.json for template --- .../Localization/MyProjectName/ru.json | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/Localization/MyProjectName/ru.json diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/Localization/MyProjectName/ru.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/Localization/MyProjectName/ru.json new file mode 100644 index 0000000000..8464e44344 --- /dev/null +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/Localization/MyProjectName/ru.json @@ -0,0 +1,8 @@ +{ + "culture": "ru", + "texts": { + "Menu:Home": "Главная", + "Welcome": "Добро пожаловать", + "LongWelcomeMessage": "Добро пожаловать в приложение. Этот запущенный проект основан на фреймворке ABP. Для получения дополнительной информации посетите сайт abp.io." + } +} From 4c192da10b49deb01e7f6b01ce05c5b1a84ad644 Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Tue, 10 Mar 2020 16:30:39 +0300 Subject: [PATCH 064/222] Added Russian language definiton to app and module templates --- .../MyProjectNameHttpApiHostModule.cs | 1 + .../MyProjectNameHttpApiHostModule.cs | 1 + .../MyProjectNameIdentityServerModule.cs | 1 + .../MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs | 1 + .../MyProjectNameHttpApiHostModule.cs | 1 + .../MyProjectNameIdentityServerModule.cs | 1 + .../MyProjectNameWebUnifiedModule.cs | 1 + 7 files changed, 7 insertions(+) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs index 6cdc617690..edbece71e0 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs @@ -111,6 +111,7 @@ namespace MyCompanyName.MyProjectName options.Languages.Add(new LanguageInfo("cs", "cs", "Čeština")); options.Languages.Add(new LanguageInfo("en", "en", "English")); options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português")); + options.Languages.Add(new LanguageInfo("ru", "ru", "Русский")); options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe")); options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文")); options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文")); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs index 80aa44c647..27a5485c05 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs @@ -120,6 +120,7 @@ namespace MyCompanyName.MyProjectName options.Languages.Add(new LanguageInfo("cs", "cs", "Čeština")); options.Languages.Add(new LanguageInfo("en", "en", "English")); options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português")); + options.Languages.Add(new LanguageInfo("ru", "ru", "Русский")); options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe")); options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文")); options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文")); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs index c20e77adf1..9a17f5e3ba 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs @@ -59,6 +59,7 @@ namespace MyCompanyName.MyProjectName options.Languages.Add(new LanguageInfo("cs", "cs", "Čeština")); options.Languages.Add(new LanguageInfo("en", "en", "English")); options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português")); + options.Languages.Add(new LanguageInfo("ru", "ru", "Русский")); options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe")); options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文")); options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文")); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs index 89cf3c1358..4a588d4945 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs @@ -152,6 +152,7 @@ namespace MyCompanyName.MyProjectName.Web options.Languages.Add(new LanguageInfo("cs", "cs", "Čeština")); options.Languages.Add(new LanguageInfo("en", "en", "English")); options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português")); + options.Languages.Add(new LanguageInfo("ru", "ru", "Русский")); options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe")); options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文")); options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文")); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs index 3bfa9a36bf..bb63eed520 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs @@ -86,6 +86,7 @@ namespace MyCompanyName.MyProjectName options.Languages.Add(new LanguageInfo("cs", "cs", "Čeština")); options.Languages.Add(new LanguageInfo("en", "en", "English")); options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português")); + options.Languages.Add(new LanguageInfo("ru", "ru", "Русский")); options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe")); options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文")); options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文")); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs index b92fe455b5..1085d796f5 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs @@ -97,6 +97,7 @@ namespace MyCompanyName.MyProjectName options.Languages.Add(new LanguageInfo("cs", "cs", "Čeština")); options.Languages.Add(new LanguageInfo("en", "en", "English")); options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português")); + options.Languages.Add(new LanguageInfo("ru", "ru", "Русский")); options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe")); options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文")); options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文")); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs index cdd5de9398..c7daebdc7b 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs @@ -97,6 +97,7 @@ namespace MyCompanyName.MyProjectName options.Languages.Add(new LanguageInfo("cs", "cs", "Čeština")); options.Languages.Add(new LanguageInfo("en", "en", "English")); options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português (Brasil)")); + options.Languages.Add(new LanguageInfo("ru", "ru", "Русский")); options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe")); options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文")); options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文")); From 2568f8214d9f250df3a05275a997b02167832f48 Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Tue, 10 Mar 2020 19:09:05 +0300 Subject: [PATCH 065/222] Added ru.json for Account --- .../Account/Localization/Resources/ru.json | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/ru.json diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/ru.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/ru.json new file mode 100644 index 0000000000..a39240b02e --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/ru.json @@ -0,0 +1,13 @@ +{ + "culture": "ru", + "texts": { + "Account": "Аккаунт", + "Welcome": "Добро пожаловать", + "UseOneOfTheFollowingLinksToContinue": "Для продолжения используйте одну из следующих ссылок", + "FrameworkHomePage": "Главная страница фреймворка", + "FrameworkDocumentation": "Документация фреймворка", + "OfficialBlog": "Официальный блог", + "CommercialHomePage": "Главная страница коммерческой версии", + "CommercialSupportWebSite": "Сайт коммерческой поддержки" + } +} From 97f57bf6429cda566d938abdba4edd5bfc4b6fee Mon Sep 17 00:00:00 2001 From: Roman Rybalko Date: Tue, 10 Mar 2020 20:15:43 +0300 Subject: [PATCH 066/222] Added ru.json for AbpIoLocalization/Admin --- .../Admin/Localization/Resources/ru.json | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/ru.json diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/ru.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/ru.json new file mode 100644 index 0000000000..38b4e728f8 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/ru.json @@ -0,0 +1,90 @@ +{ + "culture": "ru", + "texts": { + "Permission:Organizations": "Организации", + "Permission:Manage": "Управление организациями", + "Permission:NpmPackages": "Пакеты NPM", + "Permission:NugetPackages": "Пакеты NuGet", + "Permission:Maintenance": "Обслуживание", + "Permission:Maintain": "Обслуживать", + "Permission:ClearCaches": "Очистить кэш", + "Permission:Modules": "Модули", + "Permission:Packages": "Пакеты", + "Permission:Edit": "Редактировать", + "Permission:Delete": "Удалить", + "Permission:Create": "Создать", + "Menu:Organizations": "Организации", + "Menu:Packages": "Пакеты", + "NpmPackageDeletionWarningMessage": "Этот пакет NPM будет удален. Вы подтверждаете это?", + "NugetPackageDeletionWarningMessage": "Этот пакет NuGet будет удален. Вы подтверждаете это?", + "ModuleDeletionWarningMessage": "Этот модуль будет удален. Вы подтверждаете это?", + "Name": "Имя", + "DisplayName": "Отображаемое имя", + "ShortDescription": "Краткое описание", + "NameFilter": "Имя", + "CreationTime": "Время создания", + "IsPro": "Is pro", + "EfCoreConfigureMethodName": "Настроить имя метода", + "IsProFilter": "Is pro", + "ApplicationType": "Тип приложения", + "Target": "Цель", + "TargetFilter": "Цель", + "ModuleClass": "Класс модуля", + "NugetPackageTarget.DomainShared": "Domain Shared", + "NugetPackageTarget.Domain": "Domain", + "NugetPackageTarget.Application": "Application", + "NugetPackageTarget.ApplicationContracts": "Application Contracts", + "NugetPackageTarget.HttpApi": "Http Api", + "NugetPackageTarget.HttpApiClient": "Http Api Client", + "NugetPackageTarget.Web": "Web", + "NugetPackageTarget.EntityFrameworkCore": "DeleteAllEntityFramework Core", + "NugetPackageTarget.MongoDB": "MongoDB", + "Edit": "Редактировать", + "Delete": "Удалить", + "Refresh": "Обновить", + "NpmPackages": "NPM пакеты", + "NugetPackages": "NuGet пакеты", + "NpmPackageCount": "Количество пакетов NPM", + "NugetPackageCount": "Количество пакетов NuGet", + "Module": "Модули", + "ModuleInfo": "Информация о модуле", + "CreateANpmPackage": "Создать пакет NPM", + "CreateAModule": "Создать модуль", + "CreateANugetPackage": "Создать пакет NuGet", + "AddNew": "Добавить новый", + "PackageAlreadyExist{0}": "\"{0}\" пакет уже существует.", + "ModuleAlreadyExist{0}": "\"{0}\" модуль уже добавлен.", + "ClearCache": "Очистить кэш", + "SuccessfullyCleared": "Успешно очищено", + "Menu:NpmPackages": "Пакеты NPM", + "Menu:Modules": "Модули", + "Menu:Maintenance": "Поддержка", + "Menu:NugetPackages": "Пакеты NuGet", + "CreateAnOrganization": "Создать организацию", + "Organizations": "Организации", + "LongName": "Полное название", + "LicenseType": "Тип лицензии", + "LicenseStartTime": "Время начала действия лицензии", + "LicenseEndTime": "Время окончания действия лицензии", + "AllowedDeveloperCount": "Разрешенное количество разработчиков", + "UserNameOrEmailAddress": "Имя пользователя или адрес электронной почты", + "AddOwner": "Добавить владельца", + "UserName": "Имя пользователя", + "Email": "Электронная почта", + "Developers": "Разработчики", + "AddDeveloper": "Добавить разработчика", + "Create": "Создать", + "UserNotFound": "Пользователь не обнаружен", + "{0}WillBeRemovedFromMembers": "{0} будет удален из членов", + "Computers": "Компьютеры", + "UniqueComputerId": "Уникальный id компьютера", + "LastSeenDate": "Дата последнего визита", + "{0}Computer{1}WillBeRemovedFromRecords": "Компьютер {0} ({1}) будет удален из записей", + "OrganizationDeletionWarningMessage": "Организация будет удалена", + "This{0}AlreadyExistInThisOrganization": "{0} уже существует в данной организации", + "AreYouSureYouWantToDeleteAllComputers": "Вы уверены, что хотите удалить все компьютеры?", + "DeleteAll": "Удалить все", + "DoYouWantToCreateNewUser": "Вы хотите создать нового пользователя?", + "MasterModules": "Мастер модулей" + } +} From 12053115dbb4b39713889a92f0bffc691118c798 Mon Sep 17 00:00:00 2001 From: Oliver Cooper Date: Fri, 20 Mar 2020 16:35:32 +0000 Subject: [PATCH 067/222] Add Angular 9 '@Injectable()' to tutorials and book store sample. --- docs/en/Tutorials/Part-1.md | 2 ++ docs/en/Tutorials/Part-2.md | 4 ++++ docs/pt-BR/Tutorials/Angular/Part-I.md | 2 ++ .../angular/src/app/store/states/books.state.ts | 2 ++ 4 files changed, 10 insertions(+) diff --git a/docs/en/Tutorials/Part-1.md b/docs/en/Tutorials/Part-1.md index 20b64f3189..1711c21e25 100644 --- a/docs/en/Tutorials/Part-1.md +++ b/docs/en/Tutorials/Part-1.md @@ -982,11 +982,13 @@ import { GetBooks } from '../actions/books.actions'; import { Books } from '../models/books'; import { BooksService } from '../../books/shared/books.service'; import { tap } from 'rxjs/operators'; +import { Injectable } from '@angular/core'; @State({ name: 'BooksState', defaults: { books: {} } as Books.State, }) +@Injectable() export class BooksState { @Selector() static getBooks(state: Books.State) { diff --git a/docs/en/Tutorials/Part-2.md b/docs/en/Tutorials/Part-2.md index 08e17e0e3f..8bf3cb053b 100644 --- a/docs/en/Tutorials/Part-2.md +++ b/docs/en/Tutorials/Part-2.md @@ -574,11 +574,13 @@ import { GetBooks, CreateUpdateBook } from '../actions/books.actions'; //<== add import { Books } from '../models/books'; import { BooksService } from '../../books/shared/books.service'; import { tap } from 'rxjs/operators'; +import { Injectable } from '@angular/core'; @State({ name: 'BooksState', defaults: { books: {} } as Books.State, }) +@Injectable() export class BooksState { @Selector() static getBooks(state: Books.State) { @@ -1330,11 +1332,13 @@ import { GetBooks, CreateUpdateBook, DeleteBook } from '../actions/books.actions import { Books } from '../models/books'; import { BooksService } from '../../books/shared/books.service'; import { tap } from 'rxjs/operators'; +import { Injectable } from '@angular/core'; @State({ name: 'BooksState', defaults: { books: {} } as Books.State, }) +@Injectable() export class BooksState { @Selector() static getBooks(state: Books.State) { diff --git a/docs/pt-BR/Tutorials/Angular/Part-I.md b/docs/pt-BR/Tutorials/Angular/Part-I.md index 05e8a1b7e1..7fbe0827ce 100644 --- a/docs/pt-BR/Tutorials/Angular/Part-I.md +++ b/docs/pt-BR/Tutorials/Angular/Part-I.md @@ -537,11 +537,13 @@ import { GetBooks } from '../actions/books.actions'; import { Books } from '../models/books'; import { BooksService } from '../../books/shared/books.service'; import { tap } from 'rxjs/operators'; +import { Injectable } from '@angular/core'; @State({ name: 'BooksState', defaults: { books: {} } as Books.State, }) +@Injectable() export class BooksState { @Selector() static getBooks(state: Books.State) { diff --git a/samples/BookStore-Angular-MongoDb/angular/src/app/store/states/books.state.ts b/samples/BookStore-Angular-MongoDb/angular/src/app/store/states/books.state.ts index f2d1c78d90..54ecaeb155 100644 --- a/samples/BookStore-Angular-MongoDb/angular/src/app/store/states/books.state.ts +++ b/samples/BookStore-Angular-MongoDb/angular/src/app/store/states/books.state.ts @@ -7,11 +7,13 @@ import { import { Books } from "../models/books"; import { BooksService } from "../../books/shared/books.service"; import { tap } from "rxjs/operators"; +import { Injectable } from '@angular/core'; @State({ name: "BooksState", defaults: { books: {} } as Books.State }) +@Injectable() export class BooksState { @Selector() static getBooks(state: Books.State) { From f2d3b712247111a6c869fb85457dca734b7b2985 Mon Sep 17 00:00:00 2001 From: maliming Date: Wed, 25 Mar 2020 18:08:13 +0800 Subject: [PATCH 068/222] Introducing DynamicProxyIgnoreTypes. Resolve #3180 --- .../AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs | 6 +++++ .../Auditing/AuditingInterceptorRegistrar.cs | 3 ++- .../AuthorizationInterceptorRegistrar.cs | 3 ++- .../DynamicProxy/DynamicProxyIgnoreTypes.cs | 24 +++++++++++++++++++ .../Features/FeatureInterceptorRegistrar.cs | 3 ++- .../Abp/Uow/UnitOfWorkInterceptorRegistrar.cs | 3 ++- .../ValidationInterceptorRegistrar.cs | 3 ++- .../AbpAuthorizationTestModule.cs | 4 +++- ...plicationService_FluentValidation_Tests.cs | 4 +++- .../ApplicationService_Validation_Tests.cs | 4 +++- 10 files changed, 49 insertions(+), 8 deletions(-) create mode 100644 framework/src/Volo.Abp.Core/Volo/Abp/DynamicProxy/DynamicProxyIgnoreTypes.cs diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs index 21a675ddc4..e609b0a601 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs @@ -12,6 +12,7 @@ using System; using System.Collections.Generic; using System.Linq; using System.Reflection; +using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.Extensions.Hosting; using Volo.Abp.ApiVersioning; using Volo.Abp.AspNetCore.Mvc.Conventions; @@ -20,6 +21,7 @@ using Volo.Abp.AspNetCore.Mvc.Json; using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AspNetCore.VirtualFileSystem; using Volo.Abp.DependencyInjection; +using Volo.Abp.DynamicProxy; using Volo.Abp.Http.Modeling; using Volo.Abp.Localization; using Volo.Abp.Modularity; @@ -38,6 +40,10 @@ namespace Volo.Abp.AspNetCore.Mvc { public override void PreConfigureServices(ServiceConfigurationContext context) { + DynamicProxyIgnoreTypes.IgnoreTypes.AddIfNotContains(typeof(ControllerBase)); + DynamicProxyIgnoreTypes.IgnoreTypes.AddIfNotContains(typeof(PageModel)); + DynamicProxyIgnoreTypes.IgnoreTypes.AddIfNotContains(typeof(ViewComponent)); + context.Services.AddConventionalRegistrar(new AbpAspNetCoreMvcConventionalRegistrar()); } diff --git a/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingInterceptorRegistrar.cs b/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingInterceptorRegistrar.cs index 94920fe1be..6790995331 100644 --- a/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingInterceptorRegistrar.cs +++ b/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingInterceptorRegistrar.cs @@ -1,6 +1,7 @@ using System; using System.Linq; using Volo.Abp.DependencyInjection; +using Volo.Abp.DynamicProxy; namespace Volo.Abp.Auditing { @@ -8,7 +9,7 @@ namespace Volo.Abp.Auditing { public static void RegisterIfNeeded(IOnServiceRegistredContext context) { - if (ShouldIntercept(context.ImplementationType)) + if (ShouldIntercept(context.ImplementationType) && !DynamicProxyIgnoreTypes.Contains(context.ImplementationType)) { context.Interceptors.TryAdd(); } diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AuthorizationInterceptorRegistrar.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AuthorizationInterceptorRegistrar.cs index 69a285ddc8..b44c299b28 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AuthorizationInterceptorRegistrar.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AuthorizationInterceptorRegistrar.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Reflection; using Microsoft.AspNetCore.Authorization; using Volo.Abp.DependencyInjection; +using Volo.Abp.DynamicProxy; namespace Volo.Abp.Authorization { @@ -10,7 +11,7 @@ namespace Volo.Abp.Authorization { public static void RegisterIfNeeded(IOnServiceRegistredContext context) { - if (ShouldIntercept(context.ImplementationType)) + if (ShouldIntercept(context.ImplementationType) && !DynamicProxyIgnoreTypes.Contains(context.ImplementationType)) { context.Interceptors.TryAdd(); } diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/DynamicProxy/DynamicProxyIgnoreTypes.cs b/framework/src/Volo.Abp.Core/Volo/Abp/DynamicProxy/DynamicProxyIgnoreTypes.cs new file mode 100644 index 0000000000..5eae6ef092 --- /dev/null +++ b/framework/src/Volo.Abp.Core/Volo/Abp/DynamicProxy/DynamicProxyIgnoreTypes.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Volo.Abp.DynamicProxy +{ + /// + /// Castle's dynamic proxy class feature will have performance issues for some components, such as the controller of Asp net core MVC. + /// For related discussions, see: https://github.com/castleproject/Core/issues/486 https://github.com/abpframework/abp/issues/3180 + /// The Abp framework may enable interceptors for certain components (UOW, Auditing, Authorization, etc.), which requires dynamic proxy classes, but will cause application performance to decline. + /// We need to use other methods for the controller to implement interception, such as middleware or MVC / Page filters. + /// So we provide some ignored types to avoid enabling dynamic proxy classes. + /// By default it is empty. When you use middleware or filters for these components in your application, you can add these types to the list. + /// + public static class DynamicProxyIgnoreTypes + { + public static List IgnoreTypes { get; } = new List(); + + public static bool Contains(Type type, bool includeDerivedTypes = true) + { + return includeDerivedTypes ? IgnoreTypes.Any(t => t.IsAssignableFrom(type)) : IgnoreTypes.Contains(type); + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Features/Volo/Abp/Features/FeatureInterceptorRegistrar.cs b/framework/src/Volo.Abp.Features/Volo/Abp/Features/FeatureInterceptorRegistrar.cs index 8cb6cd7ea5..b2caa734b5 100644 --- a/framework/src/Volo.Abp.Features/Volo/Abp/Features/FeatureInterceptorRegistrar.cs +++ b/framework/src/Volo.Abp.Features/Volo/Abp/Features/FeatureInterceptorRegistrar.cs @@ -2,6 +2,7 @@ using System.Linq; using System.Reflection; using Volo.Abp.DependencyInjection; +using Volo.Abp.DynamicProxy; namespace Volo.Abp.Features { @@ -9,7 +10,7 @@ namespace Volo.Abp.Features { public static void RegisterIfNeeded(IOnServiceRegistredContext context) { - if (ShouldIntercept(context.ImplementationType)) + if (ShouldIntercept(context.ImplementationType) && !DynamicProxyIgnoreTypes.Contains(context.ImplementationType)) { context.Interceptors.TryAdd(); } diff --git a/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWorkInterceptorRegistrar.cs b/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWorkInterceptorRegistrar.cs index 849ca8ffd8..c01e760d58 100644 --- a/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWorkInterceptorRegistrar.cs +++ b/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWorkInterceptorRegistrar.cs @@ -1,5 +1,6 @@ using System.Reflection; using Volo.Abp.DependencyInjection; +using Volo.Abp.DynamicProxy; namespace Volo.Abp.Uow { @@ -7,7 +8,7 @@ namespace Volo.Abp.Uow { public static void RegisterIfNeeded(IOnServiceRegistredContext context) { - if (UnitOfWorkHelper.IsUnitOfWorkType(context.ImplementationType.GetTypeInfo())) + if (UnitOfWorkHelper.IsUnitOfWorkType(context.ImplementationType.GetTypeInfo()) && !DynamicProxyIgnoreTypes.Contains(context.ImplementationType)) { context.Interceptors.TryAdd(); } diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ValidationInterceptorRegistrar.cs b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ValidationInterceptorRegistrar.cs index 81f6eb6597..187f64436e 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ValidationInterceptorRegistrar.cs +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ValidationInterceptorRegistrar.cs @@ -1,4 +1,5 @@ using Volo.Abp.DependencyInjection; +using Volo.Abp.DynamicProxy; namespace Volo.Abp.Validation { @@ -6,7 +7,7 @@ namespace Volo.Abp.Validation { public static void RegisterIfNeeded(IOnServiceRegistredContext context) { - if (typeof(IValidationEnabled).IsAssignableFrom(context.ImplementationType)) + if (typeof(IValidationEnabled).IsAssignableFrom(context.ImplementationType) && !DynamicProxyIgnoreTypes.Contains(context.ImplementationType)) { context.Interceptors.TryAdd(); } diff --git a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/AbpAuthorizationTestModule.cs b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/AbpAuthorizationTestModule.cs index 51337ae871..492a36f8b9 100644 --- a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/AbpAuthorizationTestModule.cs +++ b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/AbpAuthorizationTestModule.cs @@ -1,6 +1,7 @@ using Microsoft.Extensions.DependencyInjection; using Volo.Abp.Authorization.TestServices; using Volo.Abp.Autofac; +using Volo.Abp.DynamicProxy; using Volo.Abp.Modularity; namespace Volo.Abp.Authorization @@ -13,7 +14,8 @@ namespace Volo.Abp.Authorization { context.Services.OnRegistred(onServiceRegistredContext => { - if (typeof(IMyAuthorizedService1).IsAssignableFrom(onServiceRegistredContext.ImplementationType)) + if (typeof(IMyAuthorizedService1).IsAssignableFrom(onServiceRegistredContext.ImplementationType) && + !DynamicProxyIgnoreTypes.Contains(onServiceRegistredContext.ImplementationType)) { onServiceRegistredContext.Interceptors.TryAdd(); } diff --git a/framework/test/Volo.Abp.FluentValidation.Tests/Volo/Abp/FluentValidation/ApplicationService_FluentValidation_Tests.cs b/framework/test/Volo.Abp.FluentValidation.Tests/Volo/Abp/FluentValidation/ApplicationService_FluentValidation_Tests.cs index 5bf11b6d5e..a93eabda1d 100644 --- a/framework/test/Volo.Abp.FluentValidation.Tests/Volo/Abp/FluentValidation/ApplicationService_FluentValidation_Tests.cs +++ b/framework/test/Volo.Abp.FluentValidation.Tests/Volo/Abp/FluentValidation/ApplicationService_FluentValidation_Tests.cs @@ -5,6 +5,7 @@ using Microsoft.Extensions.DependencyInjection; using Shouldly; using Volo.Abp.Autofac; using Volo.Abp.DependencyInjection; +using Volo.Abp.DynamicProxy; using Volo.Abp.Modularity; using Volo.Abp.Testing; using Volo.Abp.Validation; @@ -108,7 +109,8 @@ namespace Volo.Abp.FluentValidation { context.Services.OnRegistred(onServiceRegistredContext => { - if (typeof(IMyAppService).IsAssignableFrom(onServiceRegistredContext.ImplementationType)) + if (typeof(IMyAppService).IsAssignableFrom(onServiceRegistredContext.ImplementationType) && + !DynamicProxyIgnoreTypes.Contains(onServiceRegistredContext.ImplementationType)) { onServiceRegistredContext.Interceptors.TryAdd(); } diff --git a/framework/test/Volo.Abp.Validation.Tests/Volo/Abp/Validation/ApplicationService_Validation_Tests.cs b/framework/test/Volo.Abp.Validation.Tests/Volo/Abp/Validation/ApplicationService_Validation_Tests.cs index 0d13867819..de9067e2f7 100644 --- a/framework/test/Volo.Abp.Validation.Tests/Volo/Abp/Validation/ApplicationService_Validation_Tests.cs +++ b/framework/test/Volo.Abp.Validation.Tests/Volo/Abp/Validation/ApplicationService_Validation_Tests.cs @@ -8,6 +8,7 @@ using Shouldly; using Volo.Abp.Application.Dtos; using Volo.Abp.Autofac; using Volo.Abp.DependencyInjection; +using Volo.Abp.DynamicProxy; using Volo.Abp.Modularity; using Volo.Abp.Testing; using Xunit; @@ -198,7 +199,8 @@ namespace Volo.Abp.Validation { context.Services.OnRegistred(onServiceRegistredContext => { - if (typeof(IMyAppService).IsAssignableFrom(onServiceRegistredContext.ImplementationType)) + if (typeof(IMyAppService).IsAssignableFrom(onServiceRegistredContext.ImplementationType) && + !DynamicProxyIgnoreTypes.Contains(onServiceRegistredContext.ImplementationType)) { onServiceRegistredContext.Interceptors.TryAdd(); } From 1475940d853379a867bef3d899c9000199144a95 Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 27 Mar 2020 10:24:51 +0800 Subject: [PATCH 069/222] Refactor. --- .../Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs | 8 ++++---- .../Abp/Auditing/AuditingInterceptorRegistrar.cs | 7 ++++++- .../AuthorizationInterceptorRegistrar.cs | 6 +++--- .../Volo/Abp/DynamicProxy/DynamicProxyIgnoreTypes.cs | 12 +++++++++--- .../Volo/Abp/Features/FeatureInterceptorRegistrar.cs | 7 ++++--- .../Volo/Abp/Uow/UnitOfWorkInterceptorRegistrar.cs | 10 ++++++++-- .../Abp/Validation/ValidationInterceptorRegistrar.cs | 10 ++++++++-- 7 files changed, 42 insertions(+), 18 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs index e609b0a601..668e7a77dc 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs @@ -40,10 +40,10 @@ namespace Volo.Abp.AspNetCore.Mvc { public override void PreConfigureServices(ServiceConfigurationContext context) { - DynamicProxyIgnoreTypes.IgnoreTypes.AddIfNotContains(typeof(ControllerBase)); - DynamicProxyIgnoreTypes.IgnoreTypes.AddIfNotContains(typeof(PageModel)); - DynamicProxyIgnoreTypes.IgnoreTypes.AddIfNotContains(typeof(ViewComponent)); - + DynamicProxyIgnoreTypes.Add(); + DynamicProxyIgnoreTypes.Add(); + DynamicProxyIgnoreTypes.Add(); + context.Services.AddConventionalRegistrar(new AbpAspNetCoreMvcConventionalRegistrar()); } diff --git a/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingInterceptorRegistrar.cs b/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingInterceptorRegistrar.cs index 6790995331..a407335f3d 100644 --- a/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingInterceptorRegistrar.cs +++ b/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingInterceptorRegistrar.cs @@ -9,7 +9,7 @@ namespace Volo.Abp.Auditing { public static void RegisterIfNeeded(IOnServiceRegistredContext context) { - if (ShouldIntercept(context.ImplementationType) && !DynamicProxyIgnoreTypes.Contains(context.ImplementationType)) + if (ShouldIntercept(context.ImplementationType)) { context.Interceptors.TryAdd(); } @@ -17,6 +17,11 @@ namespace Volo.Abp.Auditing private static bool ShouldIntercept(Type type) { + if (DynamicProxyIgnoreTypes.Contains(type)) + { + return false; + } + if (ShouldAuditTypeByDefault(type)) { return true; diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AuthorizationInterceptorRegistrar.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AuthorizationInterceptorRegistrar.cs index b44c299b28..e33a8fca7e 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AuthorizationInterceptorRegistrar.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AuthorizationInterceptorRegistrar.cs @@ -11,7 +11,7 @@ namespace Volo.Abp.Authorization { public static void RegisterIfNeeded(IOnServiceRegistredContext context) { - if (ShouldIntercept(context.ImplementationType) && !DynamicProxyIgnoreTypes.Contains(context.ImplementationType)) + if (ShouldIntercept(context.ImplementationType)) { context.Interceptors.TryAdd(); } @@ -19,8 +19,8 @@ namespace Volo.Abp.Authorization private static bool ShouldIntercept(Type type) { - return type.IsDefined(typeof(AuthorizeAttribute), true) || - AnyMethodHasAuthorizeAttribute(type); + return !DynamicProxyIgnoreTypes.Contains(type) && + (type.IsDefined(typeof(AuthorizeAttribute), true) || AnyMethodHasAuthorizeAttribute(type)); } private static bool AnyMethodHasAuthorizeAttribute(Type implementationType) diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/DynamicProxy/DynamicProxyIgnoreTypes.cs b/framework/src/Volo.Abp.Core/Volo/Abp/DynamicProxy/DynamicProxyIgnoreTypes.cs index 5eae6ef092..6cdefb6705 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/DynamicProxy/DynamicProxyIgnoreTypes.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/DynamicProxy/DynamicProxyIgnoreTypes.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Volo.Abp.Threading; namespace Volo.Abp.DynamicProxy { @@ -14,11 +15,16 @@ namespace Volo.Abp.DynamicProxy /// public static class DynamicProxyIgnoreTypes { - public static List IgnoreTypes { get; } = new List(); - + private static HashSet IgnoredTypes { get; } = new HashSet(); + + public static void Add() + { + IgnoredTypes.Locking(() => IgnoredTypes.AddIfNotContains(typeof(T))); + } + public static bool Contains(Type type, bool includeDerivedTypes = true) { - return includeDerivedTypes ? IgnoreTypes.Any(t => t.IsAssignableFrom(type)) : IgnoreTypes.Contains(type); + return includeDerivedTypes ? IgnoredTypes.Any(t => t.IsAssignableFrom(type)) : IgnoredTypes.Contains(type); } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Features/Volo/Abp/Features/FeatureInterceptorRegistrar.cs b/framework/src/Volo.Abp.Features/Volo/Abp/Features/FeatureInterceptorRegistrar.cs index b2caa734b5..c20b98c143 100644 --- a/framework/src/Volo.Abp.Features/Volo/Abp/Features/FeatureInterceptorRegistrar.cs +++ b/framework/src/Volo.Abp.Features/Volo/Abp/Features/FeatureInterceptorRegistrar.cs @@ -10,7 +10,7 @@ namespace Volo.Abp.Features { public static void RegisterIfNeeded(IOnServiceRegistredContext context) { - if (ShouldIntercept(context.ImplementationType) && !DynamicProxyIgnoreTypes.Contains(context.ImplementationType)) + if (ShouldIntercept(context.ImplementationType)) { context.Interceptors.TryAdd(); } @@ -18,8 +18,9 @@ namespace Volo.Abp.Features private static bool ShouldIntercept(Type type) { - return type.IsDefined(typeof(RequiresFeatureAttribute), true) || - AnyMethodHasRequiresFeatureAttribute(type); + return !DynamicProxyIgnoreTypes.Contains(type) && + (type.IsDefined(typeof(RequiresFeatureAttribute), true) || + AnyMethodHasRequiresFeatureAttribute(type)); } private static bool AnyMethodHasRequiresFeatureAttribute(Type implementationType) diff --git a/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWorkInterceptorRegistrar.cs b/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWorkInterceptorRegistrar.cs index c01e760d58..5331cb1d0e 100644 --- a/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWorkInterceptorRegistrar.cs +++ b/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWorkInterceptorRegistrar.cs @@ -1,4 +1,5 @@ -using System.Reflection; +using System; +using System.Reflection; using Volo.Abp.DependencyInjection; using Volo.Abp.DynamicProxy; @@ -8,10 +9,15 @@ namespace Volo.Abp.Uow { public static void RegisterIfNeeded(IOnServiceRegistredContext context) { - if (UnitOfWorkHelper.IsUnitOfWorkType(context.ImplementationType.GetTypeInfo()) && !DynamicProxyIgnoreTypes.Contains(context.ImplementationType)) + if (ShouldIntercept(context.ImplementationType)) { context.Interceptors.TryAdd(); } } + + private static bool ShouldIntercept(Type type) + { + return !DynamicProxyIgnoreTypes.Contains(type) && UnitOfWorkHelper.IsUnitOfWorkType(type.GetTypeInfo()); + } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ValidationInterceptorRegistrar.cs b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ValidationInterceptorRegistrar.cs index 187f64436e..1474efd710 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ValidationInterceptorRegistrar.cs +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ValidationInterceptorRegistrar.cs @@ -1,4 +1,5 @@ -using Volo.Abp.DependencyInjection; +using System; +using Volo.Abp.DependencyInjection; using Volo.Abp.DynamicProxy; namespace Volo.Abp.Validation @@ -7,10 +8,15 @@ namespace Volo.Abp.Validation { public static void RegisterIfNeeded(IOnServiceRegistredContext context) { - if (typeof(IValidationEnabled).IsAssignableFrom(context.ImplementationType) && !DynamicProxyIgnoreTypes.Contains(context.ImplementationType)) + if (ShouldIntercept(context.ImplementationType)) { context.Interceptors.TryAdd(); } } + + private static bool ShouldIntercept(Type type) + { + return !DynamicProxyIgnoreTypes.Contains(type) && typeof(IValidationEnabled).IsAssignableFrom(type); + } } } \ No newline at end of file From 0b1606f40bc9d207b73844ad56b2c7cf43806c2e Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 27 Mar 2020 11:20:17 +0800 Subject: [PATCH 070/222] Add AbpAuditPageFilter, AbpFeaturePageFilter, AbpUowPageFilter, AbpExceptionPageFilter. --- .../ActionDescriptorExtensions.cs | 31 +++++ .../AspNetCore/Mvc/AbpMvcOptionsExtensions.cs | 13 +- .../Mvc/Auditing/AbpAuditPageFilter.cs | 103 ++++++++++++++++ .../AbpExceptionPageFilter.cs | 112 ++++++++++++++++++ .../Mvc/Features/AbpFeaturePageFilter.cs | 44 +++++++ .../AspNetCore/Mvc/Uow/AbpUowPageFilter.cs | 105 ++++++++++++++++ 6 files changed, 406 insertions(+), 2 deletions(-) create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Auditing/AbpAuditPageFilter.cs create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionPageFilter.cs create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Features/AbpFeaturePageFilter.cs create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Uow/AbpUowPageFilter.cs diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Microsoft/AspNetCore/Mvc/Abstractions/ActionDescriptorExtensions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Microsoft/AspNetCore/Mvc/Abstractions/ActionDescriptorExtensions.cs index fb992cb4af..97b5a6c61b 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Microsoft/AspNetCore/Mvc/Abstractions/ActionDescriptorExtensions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Microsoft/AspNetCore/Mvc/Abstractions/ActionDescriptorExtensions.cs @@ -1,6 +1,7 @@ using System; using System.Reflection; using Microsoft.AspNetCore.Mvc.Controllers; +using Microsoft.AspNetCore.Mvc.RazorPages; using Volo.Abp; using Volo.Abp.AspNetCore.Mvc; @@ -37,5 +38,35 @@ namespace Microsoft.AspNetCore.Mvc.Abstractions { return actionDescriptor is ControllerActionDescriptor; } + + public static PageActionDescriptor AsPageActionDescriptor(this ActionDescriptor actionDescriptor) + { + if (!actionDescriptor.IsPageAction()) + { + throw new AbpException($"{nameof(actionDescriptor)} should be type of {typeof(PageActionDescriptor).AssemblyQualifiedName}"); + } + + return actionDescriptor as PageActionDescriptor; + } + + public static MethodInfo GetPageActionMethodInfo(this ActionDescriptor actionDescriptor) + { + return actionDescriptor.AsPageActionDescriptor().GetMethodInfo(); + } + + public static Type GetPageActionReturnType(this PageActionDescriptor actionDescriptor) + { + return actionDescriptor.GetPageActionMethodInfo().ReturnType; + } + + public static bool HasObjectResult(this PageActionDescriptor actionDescriptor) + { + return ActionResultHelper.IsObjectResult(actionDescriptor.GetReturnType()); + } + + public static bool IsPageAction(this ActionDescriptor actionDescriptor) + { + return actionDescriptor is PageActionDescriptor; + } } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpMvcOptionsExtensions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpMvcOptionsExtensions.cs index 4aedf0b087..64d9daca93 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpMvcOptionsExtensions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpMvcOptionsExtensions.cs @@ -16,7 +16,8 @@ namespace Volo.Abp.AspNetCore.Mvc public static void AddAbp(this MvcOptions options, IServiceCollection services) { AddConventions(options, services); - AddFilters(options); + AddActionFilters(options); + AddPageFilters(options); AddModelBinders(options); AddMetadataProviders(options, services); } @@ -26,7 +27,7 @@ namespace Volo.Abp.AspNetCore.Mvc options.Conventions.Add(new AbpServiceConventionWrapper(services)); } - private static void AddFilters(MvcOptions options) + private static void AddActionFilters(MvcOptions options) { options.Filters.AddService(typeof(AbpAuditActionFilter)); options.Filters.AddService(typeof(AbpNoContentActionFilter)); @@ -36,6 +37,14 @@ namespace Volo.Abp.AspNetCore.Mvc options.Filters.AddService(typeof(AbpExceptionFilter)); } + private static void AddPageFilters(MvcOptions options) + { + options.Filters.AddService(typeof(AbpAuditPageFilter)); + options.Filters.AddService(typeof(AbpFeaturePageFilter)); + options.Filters.AddService(typeof(AbpUowPageFilter)); + options.Filters.AddService(typeof(AbpExceptionPageFilter)); + } + private static void AddModelBinders(MvcOptions options) { options.ModelBinderProviders.Insert(0, new AbpDateTimeModelBinderProvider()); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Auditing/AbpAuditPageFilter.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Auditing/AbpAuditPageFilter.cs new file mode 100644 index 0000000000..23e94790e9 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Auditing/AbpAuditPageFilter.cs @@ -0,0 +1,103 @@ +using System; +using System.Diagnostics; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc.Abstractions; +using Microsoft.AspNetCore.Mvc.Filters; +using Microsoft.Extensions.Options; +using Volo.Abp.Aspects; +using Volo.Abp.Auditing; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.AspNetCore.Mvc.Auditing +{ + public class AbpAuditPageFilter : IAsyncPageFilter, ITransientDependency + { + protected AbpAuditingOptions Options { get; } + private readonly IAuditingHelper _auditingHelper; + private readonly IAuditingManager _auditingManager; + + public AbpAuditPageFilter(IOptions options, IAuditingHelper auditingHelper, IAuditingManager auditingManager) + { + Options = options.Value; + _auditingHelper = auditingHelper; + _auditingManager = auditingManager; + } + + public Task OnPageHandlerSelectionAsync(PageHandlerSelectedContext context) + { + return Task.CompletedTask; + } + + public async Task OnPageHandlerExecutionAsync(PageHandlerExecutingContext context, PageHandlerExecutionDelegate next) + { + if (context.HandlerMethod == null || !ShouldSaveAudit(context, out var auditLog, out var auditLogAction)) + { + await next(); + return; + } + + using (AbpCrossCuttingConcerns.Applying(context.HandlerInstance, AbpCrossCuttingConcerns.Auditing)) + { + var stopwatch = Stopwatch.StartNew(); + + try + { + var result = await next(); + + if (result.Exception != null && !result.ExceptionHandled) + { + auditLog.Exceptions.Add(result.Exception); + } + } + catch (Exception ex) + { + auditLog.Exceptions.Add(ex); + throw; + } + finally + { + stopwatch.Stop(); + auditLogAction.ExecutionDuration = Convert.ToInt32(stopwatch.Elapsed.TotalMilliseconds); + auditLog.Actions.Add(auditLogAction); + } + } + } + + private bool ShouldSaveAudit(PageHandlerExecutingContext context, out AuditLogInfo auditLog, out AuditLogActionInfo auditLogAction) + { + auditLog = null; + auditLogAction = null; + + if (!Options.IsEnabled) + { + return false; + } + + if (!context.ActionDescriptor.IsPageAction()) + { + return false; + } + + var auditLogScope = _auditingManager.Current; + if (auditLogScope == null) + { + return false; + } + + if (!_auditingHelper.ShouldSaveAudit(context.ActionDescriptor.GetMethodInfo(), true)) + { + return false; + } + + auditLog = auditLogScope.Log; + auditLogAction = _auditingHelper.CreateAuditLogAction( + auditLog, + context.ActionDescriptor.AsControllerActionDescriptor().ControllerTypeInfo.AsType(), + context.ActionDescriptor.AsControllerActionDescriptor().MethodInfo, + context.HandlerArguments + ); + + return true; + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionPageFilter.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionPageFilter.cs new file mode 100644 index 0000000000..8aa45688ca --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionPageFilter.cs @@ -0,0 +1,112 @@ +using System; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Abstractions; +using Microsoft.AspNetCore.Mvc.Filters; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; +using Volo.Abp.AspNetCore.ExceptionHandling; +using Volo.Abp.DependencyInjection; +using Volo.Abp.ExceptionHandling; +using Volo.Abp.Http; +using Volo.Abp.Json; + +namespace Volo.Abp.AspNetCore.Mvc.ExceptionHandling +{ + public class AbpExceptionPageFilter : IAsyncPageFilter, ITransientDependency + { + public ILogger Logger { get; set; } + + private readonly IExceptionToErrorInfoConverter _errorInfoConverter; + private readonly IHttpExceptionStatusCodeFinder _statusCodeFinder; + private readonly IJsonSerializer _jsonSerializer; + + public AbpExceptionPageFilter( + IExceptionToErrorInfoConverter errorInfoConverter, + IHttpExceptionStatusCodeFinder statusCodeFinder, + IJsonSerializer jsonSerializer) + { + _errorInfoConverter = errorInfoConverter; + _statusCodeFinder = statusCodeFinder; + _jsonSerializer = jsonSerializer; + + Logger = NullLogger.Instance; + } + + + public Task OnPageHandlerSelectionAsync(PageHandlerSelectedContext context) + { + return Task.CompletedTask; + } + + public async Task OnPageHandlerExecutionAsync(PageHandlerExecutingContext context, PageHandlerExecutionDelegate next) + { + if (context.HandlerMethod == null || !ShouldHandleException(context)) + { + await next(); + return; + } + + var pageHandlerExecutedContext = await next(); + if (pageHandlerExecutedContext.Exception == null) + { + return;; + } + + await HandleAndWrapException(pageHandlerExecutedContext); + } + + protected virtual bool ShouldHandleException(PageHandlerExecutingContext context) + { + //TODO: Create DontWrap attribute to control wrapping..? + + if (context.ActionDescriptor.IsPageAction() && + context.ActionDescriptor.HasObjectResult()) + { + return true; + } + + if (context.HttpContext.Request.CanAccept(MimeTypes.Application.Json)) + { + return true; + } + + if (context.HttpContext.Request.IsAjax()) + { + return true; + } + + return false; + } + + protected virtual async Task HandleAndWrapException(PageHandlerExecutedContext context) + { + //TODO: Trigger an AbpExceptionHandled event or something like that. + + context.HttpContext.Response.Headers.Add(AbpHttpConsts.AbpErrorFormat, "true"); + context.HttpContext.Response.StatusCode = (int)_statusCodeFinder.GetStatusCode(context.HttpContext, context.Exception); + + var remoteServiceErrorInfo = _errorInfoConverter.Convert(context.Exception); + + context.Result = new ObjectResult(new RemoteServiceErrorResponse(remoteServiceErrorInfo)); + + var logLevel = context.Exception.GetLogLevel(); + + Logger.LogWithLevel(logLevel, $"---------- {nameof(RemoteServiceErrorInfo)} ----------"); + Logger.LogWithLevel(logLevel, _jsonSerializer.Serialize(remoteServiceErrorInfo, indented: true)); + Logger.LogException(context.Exception, logLevel); + + await context.HttpContext + .RequestServices + .GetRequiredService() + .NotifyAsync( + new ExceptionNotificationContext(context.Exception) + ); + + context.Exception = null; //Handled! + } + + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Features/AbpFeaturePageFilter.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Features/AbpFeaturePageFilter.cs new file mode 100644 index 0000000000..ceb117d2ff --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Features/AbpFeaturePageFilter.cs @@ -0,0 +1,44 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc.Abstractions; +using Microsoft.AspNetCore.Mvc.Filters; +using Volo.Abp.Aspects; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Features; + +namespace Volo.Abp.AspNetCore.Mvc.Features +{ + public class AbpFeaturePageFilter : IAsyncPageFilter, ITransientDependency + { + private readonly IMethodInvocationFeatureCheckerService _methodInvocationAuthorizationService; + + public AbpFeaturePageFilter(IMethodInvocationFeatureCheckerService methodInvocationAuthorizationService) + { + _methodInvocationAuthorizationService = methodInvocationAuthorizationService; + } + + public Task OnPageHandlerSelectionAsync(PageHandlerSelectedContext context) + { + return Task.CompletedTask; + } + + public async Task OnPageHandlerExecutionAsync(PageHandlerExecutingContext context, PageHandlerExecutionDelegate next) + { + if (context.HandlerMethod == null || !context.ActionDescriptor.IsPageAction()) + { + await next(); + return; + } + + var methodInfo = context.ActionDescriptor.GetMethodInfo(); + + using (AbpCrossCuttingConcerns.Applying(context.HandlerInstance, AbpCrossCuttingConcerns.FeatureChecking)) + { + await _methodInvocationAuthorizationService.CheckAsync( + new MethodInvocationFeatureCheckerContext(methodInfo) + ); + + await next(); + } + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Uow/AbpUowPageFilter.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Uow/AbpUowPageFilter.cs new file mode 100644 index 0000000000..aeed982173 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Uow/AbpUowPageFilter.cs @@ -0,0 +1,105 @@ +using System; +using System.Net.Http; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc.Abstractions; +using Microsoft.AspNetCore.Mvc.Filters; +using Microsoft.Extensions.Options; +using Volo.Abp.AspNetCore.Uow; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Uow; + +namespace Volo.Abp.AspNetCore.Mvc.Uow +{ + public class AbpUowPageFilter : IAsyncPageFilter, ITransientDependency + { + private readonly IUnitOfWorkManager _unitOfWorkManager; + private readonly AbpUnitOfWorkDefaultOptions _defaultOptions; + + public AbpUowPageFilter(IUnitOfWorkManager unitOfWorkManager, IOptions options) + { + _unitOfWorkManager = unitOfWorkManager; + _defaultOptions = options.Value; + } + public Task OnPageHandlerSelectionAsync(PageHandlerSelectedContext context) + { + return Task.CompletedTask; + } + + public async Task OnPageHandlerExecutionAsync(PageHandlerExecutingContext context, PageHandlerExecutionDelegate next) + { + if (context.HandlerMethod == null || !context.ActionDescriptor.IsPageAction()) + { + await next(); + return; + } + + var methodInfo = context.ActionDescriptor.GetMethodInfo(); + var unitOfWorkAttr = UnitOfWorkHelper.GetUnitOfWorkAttributeOrNull(methodInfo); + + context.HttpContext.Items["_AbpActionInfo"] = new AbpActionInfoInHttpContext + { + IsObjectResult = context.ActionDescriptor.HasObjectResult() + }; + + if (unitOfWorkAttr?.IsDisabled == true) + { + await next(); + return; + } + + var options = CreateOptions(context, unitOfWorkAttr); + + //Trying to begin a reserved UOW by AbpUnitOfWorkMiddleware + if (_unitOfWorkManager.TryBeginReserved(AbpUnitOfWorkMiddleware.UnitOfWorkReservationName, options)) + { + var result = await next(); + if (!Succeed(result)) + { + await RollbackAsync(context); + } + + return; + } + + //Begin a new, independent unit of work + using (var uow = _unitOfWorkManager.Begin(options)) + { + var result = await next(); + if (Succeed(result)) + { + await uow.CompleteAsync(context.HttpContext.RequestAborted); + } + } + } + + private AbpUnitOfWorkOptions CreateOptions(PageHandlerExecutingContext context, UnitOfWorkAttribute unitOfWorkAttribute) + { + var options = new AbpUnitOfWorkOptions(); + + unitOfWorkAttribute?.SetOptions(options); + + if (unitOfWorkAttribute?.IsTransactional == null) + { + options.IsTransactional = _defaultOptions.CalculateIsTransactional( + autoValue: !string.Equals(context.HttpContext.Request.Method, HttpMethod.Get.Method, StringComparison.OrdinalIgnoreCase) + ); + } + + return options; + } + + private async Task RollbackAsync(PageHandlerExecutingContext context) + { + var currentUow = _unitOfWorkManager.Current; + if (currentUow != null) + { + await currentUow.RollbackAsync(context.HttpContext.RequestAborted); + } + } + + private static bool Succeed(PageHandlerExecutedContext result) + { + return result.Exception == null || result.ExceptionHandled; + } + } +} \ No newline at end of file From fd5eda2b7f533aa4b0cf51a7384c8ebfd15293da Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 27 Mar 2020 16:32:21 +0800 Subject: [PATCH 071/222] Add unit tests for razor page filters. --- .../ActionDescriptorExtensions.cs | 25 ------- .../AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs | 7 +- .../AspNetCore/Mvc/AbpMvcOptionsExtensions.cs | 2 +- .../Mvc/Auditing/AbpAuditPageFilter.cs | 6 +- .../AbpExceptionPageFilter.cs | 2 +- .../Mvc/Features/AbpFeaturePageFilter.cs | 2 +- .../AspNetCore/Mvc/Uow/AbpUowPageFilter.cs | 4 +- .../Volo.Abp.AspNetCore.Mvc.Tests.csproj | 19 ++++++ .../Mvc/AbpAspNetCoreMvcTestModule.cs | 10 ++- .../Mvc/Auditing/AuditTestController_Tests.cs | 1 + .../Mvc/Auditing/AuditTestPage.cshtml | 19 ++++++ .../Mvc/Auditing/AuditTestPage.cshtml.cs | 33 ++++++++++ .../Mvc/Auditing/AuditTestPage_Tests.cs | 65 +++++++++++++++++++ .../ExceptionTestController_Tests.cs | 4 ++ .../ExceptionTestPage.cshtml | 19 ++++++ .../ExceptionTestPage.cshtml.cs | 18 +++++ .../ExceptionTestPage_Tests.cs | 56 ++++++++++++++++ .../Mvc/Features/FeatureTestPage.cshtml | 19 ++++++ .../Mvc/Features/FeatureTestPage.cshtml.cs | 27 ++++++++ .../Mvc/Features/FeatureTestPage_Tests.cs | 34 ++++++++++ ...WorkPageFilter_Exception_Rollback_Tests.cs | 37 +++++++++++ .../Mvc/Uow/UnitOfWorkPageFilter_Tests.cs | 22 +++++++ .../Mvc/Uow/UnitOfWorkTestPage.cshtml | 19 ++++++ .../Mvc/Uow/UnitOfWorkTestPage.cshtml.cs | 54 +++++++++++++++ 24 files changed, 469 insertions(+), 35 deletions(-) create mode 100644 framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Auditing/AuditTestPage.cshtml create mode 100644 framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Auditing/AuditTestPage.cshtml.cs create mode 100644 framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Auditing/AuditTestPage_Tests.cs create mode 100644 framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/ExceptionTestPage.cshtml create mode 100644 framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/ExceptionTestPage.cshtml.cs create mode 100644 framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/ExceptionTestPage_Tests.cs create mode 100644 framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Features/FeatureTestPage.cshtml create mode 100644 framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Features/FeatureTestPage.cshtml.cs create mode 100644 framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Features/FeatureTestPage_Tests.cs create mode 100644 framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Uow/UnitOfWorkPageFilter_Exception_Rollback_Tests.cs create mode 100644 framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Uow/UnitOfWorkPageFilter_Tests.cs create mode 100644 framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Uow/UnitOfWorkTestPage.cshtml create mode 100644 framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Uow/UnitOfWorkTestPage.cshtml.cs diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Microsoft/AspNetCore/Mvc/Abstractions/ActionDescriptorExtensions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Microsoft/AspNetCore/Mvc/Abstractions/ActionDescriptorExtensions.cs index 97b5a6c61b..f54375c844 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Microsoft/AspNetCore/Mvc/Abstractions/ActionDescriptorExtensions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Microsoft/AspNetCore/Mvc/Abstractions/ActionDescriptorExtensions.cs @@ -38,31 +38,6 @@ namespace Microsoft.AspNetCore.Mvc.Abstractions { return actionDescriptor is ControllerActionDescriptor; } - - public static PageActionDescriptor AsPageActionDescriptor(this ActionDescriptor actionDescriptor) - { - if (!actionDescriptor.IsPageAction()) - { - throw new AbpException($"{nameof(actionDescriptor)} should be type of {typeof(PageActionDescriptor).AssemblyQualifiedName}"); - } - - return actionDescriptor as PageActionDescriptor; - } - - public static MethodInfo GetPageActionMethodInfo(this ActionDescriptor actionDescriptor) - { - return actionDescriptor.AsPageActionDescriptor().GetMethodInfo(); - } - - public static Type GetPageActionReturnType(this PageActionDescriptor actionDescriptor) - { - return actionDescriptor.GetPageActionMethodInfo().ReturnType; - } - - public static bool HasObjectResult(this PageActionDescriptor actionDescriptor) - { - return ActionResultHelper.IsObjectResult(actionDescriptor.GetReturnType()); - } public static bool IsPageAction(this ActionDescriptor actionDescriptor) { diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs index 668e7a77dc..4d970acd45 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.ApplicationParts; using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.AspNetCore.Mvc.Filters; @@ -12,7 +12,9 @@ using System; using System.Collections.Generic; using System.Linq; using System.Reflection; +using Microsoft.AspNetCore.Mvc.Razor; using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure; using Microsoft.Extensions.Hosting; using Volo.Abp.ApiVersioning; using Volo.Abp.AspNetCore.Mvc.Conventions; @@ -114,6 +116,9 @@ namespace Volo.Abp.AspNetCore.Mvc //Use DI to create view components context.Services.Replace(ServiceDescriptor.Singleton()); + //Use DI to create razor page + context.Services.Replace(ServiceDescriptor.Singleton()); + //Add feature providers var partManager = context.Services.GetSingletonInstance(); var application = context.Services.GetSingletonInstance(); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpMvcOptionsExtensions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpMvcOptionsExtensions.cs index 64d9daca93..f1225f1abf 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpMvcOptionsExtensions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpMvcOptionsExtensions.cs @@ -39,10 +39,10 @@ namespace Volo.Abp.AspNetCore.Mvc private static void AddPageFilters(MvcOptions options) { + options.Filters.AddService(typeof(AbpExceptionPageFilter)); options.Filters.AddService(typeof(AbpAuditPageFilter)); options.Filters.AddService(typeof(AbpFeaturePageFilter)); options.Filters.AddService(typeof(AbpUowPageFilter)); - options.Filters.AddService(typeof(AbpExceptionPageFilter)); } private static void AddModelBinders(MvcOptions options) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Auditing/AbpAuditPageFilter.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Auditing/AbpAuditPageFilter.cs index 23e94790e9..6e9996574c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Auditing/AbpAuditPageFilter.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Auditing/AbpAuditPageFilter.cs @@ -84,7 +84,7 @@ namespace Volo.Abp.AspNetCore.Mvc.Auditing return false; } - if (!_auditingHelper.ShouldSaveAudit(context.ActionDescriptor.GetMethodInfo(), true)) + if (!_auditingHelper.ShouldSaveAudit(context.HandlerMethod.MethodInfo, true)) { return false; } @@ -92,8 +92,8 @@ namespace Volo.Abp.AspNetCore.Mvc.Auditing auditLog = auditLogScope.Log; auditLogAction = _auditingHelper.CreateAuditLogAction( auditLog, - context.ActionDescriptor.AsControllerActionDescriptor().ControllerTypeInfo.AsType(), - context.ActionDescriptor.AsControllerActionDescriptor().MethodInfo, + context.HandlerMethod.GetType(), + context.HandlerMethod.MethodInfo, context.HandlerArguments ); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionPageFilter.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionPageFilter.cs index 8aa45688ca..fb0a7c5a1f 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionPageFilter.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionPageFilter.cs @@ -63,7 +63,7 @@ namespace Volo.Abp.AspNetCore.Mvc.ExceptionHandling //TODO: Create DontWrap attribute to control wrapping..? if (context.ActionDescriptor.IsPageAction() && - context.ActionDescriptor.HasObjectResult()) + ActionResultHelper.IsObjectResult(context.HandlerMethod.MethodInfo.ReturnType)) { return true; } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Features/AbpFeaturePageFilter.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Features/AbpFeaturePageFilter.cs index ceb117d2ff..83e26ace9c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Features/AbpFeaturePageFilter.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Features/AbpFeaturePageFilter.cs @@ -29,7 +29,7 @@ namespace Volo.Abp.AspNetCore.Mvc.Features return; } - var methodInfo = context.ActionDescriptor.GetMethodInfo(); + var methodInfo = context.HandlerMethod.MethodInfo; using (AbpCrossCuttingConcerns.Applying(context.HandlerInstance, AbpCrossCuttingConcerns.FeatureChecking)) { diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Uow/AbpUowPageFilter.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Uow/AbpUowPageFilter.cs index aeed982173..993a12b0e7 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Uow/AbpUowPageFilter.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Uow/AbpUowPageFilter.cs @@ -33,12 +33,12 @@ namespace Volo.Abp.AspNetCore.Mvc.Uow return; } - var methodInfo = context.ActionDescriptor.GetMethodInfo(); + var methodInfo = context.HandlerMethod.MethodInfo; var unitOfWorkAttr = UnitOfWorkHelper.GetUnitOfWorkAttributeOrNull(methodInfo); context.HttpContext.Items["_AbpActionInfo"] = new AbpActionInfoInHttpContext { - IsObjectResult = context.ActionDescriptor.HasObjectResult() + IsObjectResult = ActionResultHelper.IsObjectResult(context.HandlerMethod.MethodInfo.ReturnType) }; if (unitOfWorkAttr?.IsDisabled == true) diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj index ddb3f5bc44..d47b369902 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj @@ -24,6 +24,7 @@ + @@ -39,6 +40,24 @@ PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs index 5e74ec4bfa..39b7d9af5f 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs @@ -1,6 +1,9 @@ -using System; +using System; +using System.Linq; using Localization.Resources.AbpUi; using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Mvc.ApplicationModels; +using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.AspNetCore.Mvc.Authorization; using Volo.Abp.AspNetCore.Mvc.Localization; @@ -73,6 +76,11 @@ namespace Volo.Abp.AspNetCore.Mvc options.Languages.Add(new LanguageInfo("en", "en", "English")); options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe")); }); + + Configure(options => + { + options.RootDirectory = "/Volo/Abp/AspNetCore/Mvc"; + }); } public override void OnApplicationInitialization(ApplicationInitializationContext context) diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Auditing/AuditTestController_Tests.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Auditing/AuditTestController_Tests.cs index 49bc689e14..3f934d5fe8 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Auditing/AuditTestController_Tests.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Auditing/AuditTestController_Tests.cs @@ -51,6 +51,7 @@ namespace Volo.Abp.AspNetCore.Mvc.Auditing await _auditingStore.Received().SaveAsync(Arg.Any()); } + [Fact] public async Task Should_Trigger_Middleware_And_AuditLog_Exception_When_Returns_Object() { diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Auditing/AuditTestPage.cshtml b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Auditing/AuditTestPage.cshtml new file mode 100644 index 0000000000..bf85af77ef --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Auditing/AuditTestPage.cshtml @@ -0,0 +1,19 @@ +@page +@model Volo.Abp.AspNetCore.Mvc.Auditing.AuditTestPage + +@{ + Layout = null; +} + + + + + + + + +
+ +
+ + \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Auditing/AuditTestPage.cshtml.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Auditing/AuditTestPage.cshtml.cs new file mode 100644 index 0000000000..6425d6585b --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Auditing/AuditTestPage.cshtml.cs @@ -0,0 +1,33 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.Extensions.Options; +using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; +using Volo.Abp.Auditing; + +namespace Volo.Abp.AspNetCore.Mvc.Auditing +{ + public class AuditTestPage : AbpPageModel + { + private readonly AbpAuditingOptions _options; + + public AuditTestPage(IOptions options) + { + _options = options.Value; + } + + public IActionResult OnGetAuditSuccessForGetRequests() + { + return new OkResult(); + } + + public IActionResult OnGetAuditFailForGetRequests() + { + throw new UserFriendlyException("Exception occurred!"); + } + + public ObjectResult OnGetAuditFailForGetRequestsReturningObject() + { + throw new UserFriendlyException("Exception occurred!"); + } + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Auditing/AuditTestPage_Tests.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Auditing/AuditTestPage_Tests.cs new file mode 100644 index 0000000000..7d5298e253 --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Auditing/AuditTestPage_Tests.cs @@ -0,0 +1,65 @@ +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.DependencyInjection.Extensions; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Options; +using NSubstitute; +using Volo.Abp.Auditing; +using Xunit; + +namespace Volo.Abp.AspNetCore.Mvc.Auditing +{ + public class AuditTestPage_Tests : AspNetCoreMvcTestBase + { + private readonly AbpAuditingOptions _options; + private IAuditingStore _auditingStore; + + public AuditTestPage_Tests() + { + _options = ServiceProvider.GetRequiredService>().Value; + _auditingStore = ServiceProvider.GetRequiredService(); + } + + protected override void ConfigureServices(HostBuilderContext context, IServiceCollection services) + { + _auditingStore = Substitute.For(); + services.Replace(ServiceDescriptor.Singleton(_auditingStore)); + base.ConfigureServices(context, services); + } + + [Fact] + public async Task Should_Trigger_Middleware_And_AuditLog_Success_For_GetRequests() + { + _options.IsEnabledForGetRequests = true; + _options.AlwaysLogOnException = false; + await GetResponseAsync("/Auditing/AuditTestPage?handler=AuditSuccessForGetRequests"); + await _auditingStore.Received().SaveAsync(Arg.Any()); + } + + [Fact] + public async Task Should_Trigger_Middleware_And_AuditLog_Exception_Always() + { + _options.IsEnabled = true; + _options.AlwaysLogOnException = true; + + try + { + await GetResponseAsync("/Auditing/AuditTestPage?handler=AuditFailForGetRequests", System.Net.HttpStatusCode.Forbidden); + } + catch { } + + await _auditingStore.Received().SaveAsync(Arg.Any()); + } + + [Fact] + public async Task Should_Trigger_Middleware_And_AuditLog_Exception_When_Returns_Object() + { + _options.IsEnabled = true; + _options.AlwaysLogOnException = true; + + await GetResponseAsync("/Auditing/AuditTestPage?handler=AuditFailForGetRequestsReturningObject", System.Net.HttpStatusCode.Forbidden); + + await _auditingStore.Received().SaveAsync(Arg.Any()); + } + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/ExceptionTestController_Tests.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/ExceptionTestController_Tests.cs index 0de46fbe55..46cdd073e7 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/ExceptionTestController_Tests.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/ExceptionTestController_Tests.cs @@ -30,9 +30,11 @@ namespace Volo.Abp.AspNetCore.Mvc.ExceptionHandling result.Error.ShouldNotBeNull(); result.Error.Message.ShouldBe("This is a sample exception!"); +#pragma warning disable 4014 _fakeExceptionSubscriber .Received() .HandleAsync(Arg.Any()); +#pragma warning restore 4014 } [Fact] @@ -44,9 +46,11 @@ namespace Volo.Abp.AspNetCore.Mvc.ExceptionHandling ) ); +#pragma warning disable 4014 _fakeExceptionSubscriber .DidNotReceive() .HandleAsync(Arg.Any()); +#pragma warning restore 4014 } } } diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/ExceptionTestPage.cshtml b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/ExceptionTestPage.cshtml new file mode 100644 index 0000000000..7ba36da037 --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/ExceptionTestPage.cshtml @@ -0,0 +1,19 @@ +@page +@model Volo.Abp.AspNetCore.Mvc.ExceptionHandling.ExceptionTestPage + +@{ + Layout = null; +} + + + + + + + + +
+ +
+ + \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/ExceptionTestPage.cshtml.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/ExceptionTestPage.cshtml.cs new file mode 100644 index 0000000000..717d31effe --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/ExceptionTestPage.cshtml.cs @@ -0,0 +1,18 @@ +using Microsoft.AspNetCore.Mvc; +using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; + +namespace Volo.Abp.AspNetCore.Mvc.ExceptionHandling +{ + public class ExceptionTestPage : AbpPageModel + { + public void OnGetUserFriendlyException1() + { + throw new UserFriendlyException("This is a sample exception!"); + } + + public IActionResult OnGetUserFriendlyException2() + { + throw new UserFriendlyException("This is a sample exception!"); + } + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/ExceptionTestPage_Tests.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/ExceptionTestPage_Tests.cs new file mode 100644 index 0000000000..7013c0c676 --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/ExceptionTestPage_Tests.cs @@ -0,0 +1,56 @@ +using System.Net; +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using NSubstitute; +using Shouldly; +using Volo.Abp.ExceptionHandling; +using Volo.Abp.Http; +using Xunit; + +namespace Volo.Abp.AspNetCore.Mvc.ExceptionHandling +{ + public class ExceptionTestPage_Tests : AspNetCoreMvcTestBase + { + private IExceptionSubscriber _fakeExceptionSubscriber; + + protected override void ConfigureServices(HostBuilderContext context, IServiceCollection services) + { + base.ConfigureServices(context, services); + + _fakeExceptionSubscriber = Substitute.For(); + + services.AddSingleton(_fakeExceptionSubscriber); + } + + [Fact] + public async Task Should_Return_RemoteServiceErrorResponse_For_UserFriendlyException_For_Void_Return_Value() + { + var result = await GetResponseAsObjectAsync("/ExceptionHandling/ExceptionTestPage?handler=UserFriendlyException1", HttpStatusCode.Forbidden); + result.Error.ShouldNotBeNull(); + result.Error.Message.ShouldBe("This is a sample exception!"); + +#pragma warning disable 4014 + _fakeExceptionSubscriber + .Received() + .HandleAsync(Arg.Any()); +#pragma warning restore 4014 + } + + [Fact] + public async Task Should_Not_Handle_Exceptions_For_ActionResult_Return_Values() + { + await Assert.ThrowsAsync( + async () => await GetResponseAsObjectAsync( + "/ExceptionHandling/ExceptionTestPage?handler=UserFriendlyException2" + ) + ); + +#pragma warning disable 4014 + _fakeExceptionSubscriber + .DidNotReceive() + .HandleAsync(Arg.Any()); +#pragma warning restore 4014 + } + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Features/FeatureTestPage.cshtml b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Features/FeatureTestPage.cshtml new file mode 100644 index 0000000000..8f0450becb --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Features/FeatureTestPage.cshtml @@ -0,0 +1,19 @@ +@page +@model Volo.Abp.AspNetCore.Mvc.Features.FeatureTestPage + +@{ + Layout = null; +} + + + + + + + + +
+ +
+ + \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Features/FeatureTestPage.cshtml.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Features/FeatureTestPage.cshtml.cs new file mode 100644 index 0000000000..6a051a29ee --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Features/FeatureTestPage.cshtml.cs @@ -0,0 +1,27 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; +using Volo.Abp.Features; + +namespace Volo.Abp.AspNetCore.Mvc.Features +{ + public class FeatureTestPage : AbpPageModel + { + [RequiresFeature("AllowedFeature")] + public Task OnGetAllowedFeatureAsync() + { + return Task.CompletedTask; + } + + [RequiresFeature("NotAllowedFeature")] + public void OnGetNotAllowedFeature() + { + + } + + public ObjectResult OnGetNoFeature() + { + return new ObjectResult(42); + } + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Features/FeatureTestPage_Tests.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Features/FeatureTestPage_Tests.cs new file mode 100644 index 0000000000..91226f1938 --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Features/FeatureTestPage_Tests.cs @@ -0,0 +1,34 @@ +using System.Net; +using System.Threading.Tasks; +using Xunit; + +namespace Volo.Abp.AspNetCore.Mvc.Features +{ + public class FeatureTestPage_Tests : AspNetCoreMvcTestBase + { + [Fact] + public async Task Should_Allow_Enabled_Features() + { + await GetResponseAsStringAsync( + "/Features/FeatureTestPage?handler=AllowedFeature" + ); + } + + [Fact] + public async Task Should_Not_Allow_Not_Enabled_Features() + { + await GetResponseAsStringAsync( + "/Features/FeatureTestPage?handler=NotAllowedFeature", + HttpStatusCode.Unauthorized + ); + } + + [Fact] + public async Task Should_Allow_Actions_With_No_Feature() + { + await GetResponseAsStringAsync( + "/Features/FeatureTestPage?handler=NoFeature" + ); + } + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Uow/UnitOfWorkPageFilter_Exception_Rollback_Tests.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Uow/UnitOfWorkPageFilter_Exception_Rollback_Tests.cs new file mode 100644 index 0000000000..b09d3ca2c9 --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Uow/UnitOfWorkPageFilter_Exception_Rollback_Tests.cs @@ -0,0 +1,37 @@ +using System.Linq; +using System.Net; +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Shouldly; +using Volo.Abp.Http; +using Volo.Abp.Json; +using Xunit; + +namespace Volo.Abp.AspNetCore.Mvc.Uow +{ + public class UnitOfWorkPageFilter_Exception_Rollback_Tests : AspNetCoreMvcTestBase + { + [Fact] + public async Task Should_Rollback_Transaction_For_Handled_Exceptions() + { + var result = await GetResponseAsObjectAsync("/Uow/UnitOfWorkTestPage?handler=HandledException", HttpStatusCode.Forbidden); + result.Error.ShouldNotBeNull(); + result.Error.Message.ShouldBe("This is a sample exception!"); + } + + [Fact] + public async Task Should_Gracefully_Handle_Exceptions_On_Complete() + { + var response = await GetResponseAsync("/Uow/UnitOfWorkTestPage?handler=ExceptionOnComplete", HttpStatusCode.Forbidden); + + response.Headers.GetValues(AbpHttpConsts.AbpErrorFormat).FirstOrDefault().ShouldBe("true"); + + var resultAsString = await response.Content.ReadAsStringAsync(); + + var result = ServiceProvider.GetRequiredService().Deserialize(resultAsString); + + result.Error.ShouldNotBeNull(); + result.Error.Message.ShouldBe(TestUnitOfWorkConfig.ExceptionOnCompleteMessage); + } + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Uow/UnitOfWorkPageFilter_Tests.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Uow/UnitOfWorkPageFilter_Tests.cs new file mode 100644 index 0000000000..820ccf91b7 --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Uow/UnitOfWorkPageFilter_Tests.cs @@ -0,0 +1,22 @@ +using System.Threading.Tasks; +using Shouldly; +using Xunit; + +namespace Volo.Abp.AspNetCore.Mvc.Uow +{ + public class UnitOfWorkPageFilter_Tests: AspNetCoreMvcTestBase + { + [Fact] + public async Task Get_Actions_Should_Not_Be_Transactional() + { + await GetResponseAsStringAsync("/Uow/UnitOfWorkTestPage?handler=RequiresUow"); + } + + [Fact] + public async Task Non_Get_Actions_Should_Be_Transactional() + { + var result = await Client.PostAsync("/Uow/UnitOfWorkTestPage?handler=RequiresUow", null); + result.IsSuccessStatusCode.ShouldBeTrue(); + } + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Uow/UnitOfWorkTestPage.cshtml b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Uow/UnitOfWorkTestPage.cshtml new file mode 100644 index 0000000000..da30a64818 --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Uow/UnitOfWorkTestPage.cshtml @@ -0,0 +1,19 @@ +@page +@model Volo.Abp.AspNetCore.Mvc.Uow.UnitOfWorkTestPage + +@{ + Layout = null; +} + + + + + + + + +
+ +
+ + \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Uow/UnitOfWorkTestPage.cshtml.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Uow/UnitOfWorkTestPage.cshtml.cs new file mode 100644 index 0000000000..ce54e8d34f --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Uow/UnitOfWorkTestPage.cshtml.cs @@ -0,0 +1,54 @@ +using Microsoft.AspNetCore.Mvc; +using Shouldly; +using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; +using Volo.Abp.Uow; + +namespace Volo.Abp.AspNetCore.Mvc.Uow +{ + [IgnoreAntiforgeryToken] + public class UnitOfWorkTestPage : AbpPageModel + { + private readonly TestUnitOfWorkConfig _testUnitOfWorkConfig; + + public UnitOfWorkTestPage(TestUnitOfWorkConfig testUnitOfWorkConfig) + { + _testUnitOfWorkConfig = testUnitOfWorkConfig; + } + + public IActionResult OnGetRequiresUow() + { + CurrentUnitOfWork.ShouldNotBeNull(); + CurrentUnitOfWork.Options.IsTransactional.ShouldBeFalse(); + + return Content("OK"); + } + + public IActionResult OnPostRequiresUow() + { + CurrentUnitOfWork.ShouldNotBeNull(); + CurrentUnitOfWork.Options.IsTransactional.ShouldBeTrue(); + + return Content("OK"); + } + + [UnitOfWork(isTransactional: true)] + public void OnGetHandledException() + { + CurrentUnitOfWork.ShouldNotBeNull(); + CurrentUnitOfWork.Options.IsTransactional.ShouldBeTrue(); + + throw new UserFriendlyException("This is a sample exception!"); + } + + public ObjectResult OnGetExceptionOnComplete() + { + CurrentUnitOfWork.ShouldNotBeNull(); + CurrentUnitOfWork.Options.IsTransactional.ShouldBeFalse(); + + _testUnitOfWorkConfig.ThrowExceptionOnComplete = true; + + //Prevent rendering of pages. + return new ObjectResult(""); + } + } +} \ No newline at end of file From 406d1cdb9b22c22d028043790d2f0bfc8aed015a Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 27 Mar 2020 16:34:21 +0800 Subject: [PATCH 072/222] Remove ViewComponent in DynamicProxyIgnoreTypes. --- .../Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs index 4d970acd45..b3f70b161d 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs @@ -44,7 +44,6 @@ namespace Volo.Abp.AspNetCore.Mvc { DynamicProxyIgnoreTypes.Add(); DynamicProxyIgnoreTypes.Add(); - DynamicProxyIgnoreTypes.Add(); context.Services.AddConventionalRegistrar(new AbpAspNetCoreMvcConventionalRegistrar()); } From abda1104aed9ec70b2a08e6ced5399b1cdf29f80 Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 27 Mar 2020 21:23:30 +0800 Subject: [PATCH 073/222] Add authorization unit test for razor page. --- .../Volo.Abp.AspNetCore.Mvc.Tests.csproj | 4 ++ .../Mvc/Authorization/AuthTestPage.cshtml | 19 +++++++++ .../Mvc/Authorization/AuthTestPage.cshtml.cs | 18 +++++++++ .../Mvc/Authorization/AuthTestPage_Tests.cs | 40 +++++++++++++++++++ 4 files changed, 81 insertions(+) create mode 100644 framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Authorization/AuthTestPage.cshtml create mode 100644 framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Authorization/AuthTestPage.cshtml.cs create mode 100644 framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Authorization/AuthTestPage_Tests.cs diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj index d47b369902..bb841bc085 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj @@ -57,6 +57,10 @@ true PreserveNewest + + true + PreserveNewest + diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Authorization/AuthTestPage.cshtml b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Authorization/AuthTestPage.cshtml new file mode 100644 index 0000000000..cf94310510 --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Authorization/AuthTestPage.cshtml @@ -0,0 +1,19 @@ +@page +@model Volo.Abp.AspNetCore.Mvc.Authorization.AuthTestPage + +@{ + Layout = null; +} + + + + + + + + +
+ +
+ + \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Authorization/AuthTestPage.cshtml.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Authorization/AuthTestPage.cshtml.cs new file mode 100644 index 0000000000..5ae66edb5f --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Authorization/AuthTestPage.cshtml.cs @@ -0,0 +1,18 @@ +using System; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; + +namespace Volo.Abp.AspNetCore.Mvc.Authorization +{ + [Authorize] + public class AuthTestPage : AbpPageModel + { + public static Guid FakeUserId { get; } = Guid.NewGuid(); + + public ActionResult OnGet() + { + return Content("OK"); + } + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Authorization/AuthTestPage_Tests.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Authorization/AuthTestPage_Tests.cs new file mode 100644 index 0000000000..ec8a043fbe --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Authorization/AuthTestPage_Tests.cs @@ -0,0 +1,40 @@ +using System.Security.Claims; +using System.Threading.Tasks; +using Shouldly; +using Volo.Abp.AspNetCore.TestBase; +using Volo.Abp.Autofac; +using Volo.Abp.MemoryDb; +using Volo.Abp.Modularity; +using Volo.Abp.Security.Claims; +using Xunit; + +namespace Volo.Abp.AspNetCore.Mvc.Authorization +{ + [DependsOn( + typeof(AbpAspNetCoreTestBaseModule), + typeof(AbpMemoryDbTestModule), + typeof(AbpAspNetCoreMvcModule), + typeof(AbpAutofacModule) + )] + public class AuthTestPage_Tests: AspNetCoreMvcTestBase + { + private readonly FakeUserClaims _fakeRequiredService; + + public AuthTestPage_Tests() + { + _fakeRequiredService = GetRequiredService(); + } + + [Fact] + public async Task Should_Call_Simple_Authorized_Method_With_Authenticated_User() + { + _fakeRequiredService.Claims.AddRange(new[] + { + new Claim(AbpClaimTypes.UserId, AuthTestController.FakeUserId.ToString()) + }); + + var result = await GetResponseAsStringAsync("/Authorization/AuthTestPage"); + result.ShouldBe("OK"); + } + } +} \ No newline at end of file From 65a7ea84a2173a1b900f4426d0b2dd799750d19e Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 30 Mar 2020 14:54:03 +0800 Subject: [PATCH 074/222] Removed UnitOfWork attribute in razor page model. --- .../src/Volo.Abp.Account.Web/Pages/Account/Login.cshtml.cs | 3 --- .../src/Volo.Abp.Account.Web/Pages/Account/Register.cshtml.cs | 1 - 2 files changed, 4 deletions(-) diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Login.cshtml.cs b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Login.cshtml.cs index 014088983a..db0cf372d7 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Login.cshtml.cs +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Login.cshtml.cs @@ -87,7 +87,6 @@ namespace Volo.Abp.Account.Web.Pages.Account return Page(); } - [UnitOfWork] //TODO: Will be removed when we implement action filter public virtual async Task OnPostAsync(string action) { await CheckLocalLoginAsync(); @@ -140,7 +139,6 @@ namespace Volo.Abp.Account.Web.Pages.Account return RedirectSafely(ReturnUrl, ReturnUrlHash); } - [UnitOfWork] public virtual async Task OnPostExternalLogin(string provider) { var redirectUrl = Url.Page("./Login", pageHandler: "ExternalLoginCallback", values: new { ReturnUrl, ReturnUrlHash }); @@ -150,7 +148,6 @@ namespace Volo.Abp.Account.Web.Pages.Account return await Task.FromResult(Challenge(properties, provider)); } - [UnitOfWork] public virtual async Task OnGetExternalLoginCallbackAsync(string returnUrl = "", string returnUrlHash = "", string remoteError = null) { //TODO: Did not implemented Identity Server 4 sample for this method (see ExternalLoginCallback in Quickstart of IDS4 sample) diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Register.cshtml.cs b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Register.cshtml.cs index 0cb71f2ed9..db085d6587 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Register.cshtml.cs +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Register.cshtml.cs @@ -36,7 +36,6 @@ namespace Volo.Abp.Account.Web.Pages.Account await CheckSelfRegistrationAsync(); } - [UnitOfWork] //TODO: Will be removed when we implement action filter public virtual async Task OnPostAsync() { ValidateModel(); From ea9118dfee97fd2583d0d3da3a89876df73a69e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leon=20Ko=C5=A1ak?= Date: Tue, 31 Mar 2020 08:51:27 +0200 Subject: [PATCH 075/222] Slovenian translations for Volo.Abp.UI --- .../Localization/Resources/AbpUi/sl.json | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sl.json diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sl.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sl.json new file mode 100644 index 0000000000..641de8a242 --- /dev/null +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sl.json @@ -0,0 +1,62 @@ +{ + "culture": "sl", + "texts": { + "InternalServerErrorMessage": "Zgodila se je napaka na strežniku!", + "ValidationErrorMessage": "Vaš zahtevek ni veljaven!", + "ValidationNarrativeErrorMessageTitle": "Pri preverjanju so bile zaznane sledeče napake.", + "DefaultErrorMessage": "Zgodila se je napaka!", + "DefaultErrorMessageDetail": "Strežnik ni poslal podrobnosti o napaki.", + "DefaultErrorMessage401": "Niste prijavljeni!", + "DefaultErrorMessage401Detail": "Za izvedbo te operacije se morate prijaviti.", + "DefaultErrorMessage403": "Nimate pravic!", + "DefaultErrorMessage403Detail": "Nimate dovoljenja za izvedbo te operacije!", + "DefaultErrorMessage404": "Vir ni bil najden!", + "DefaultErrorMessage404Detail": "Zahtevanega vira ni bilo mogoče najti na strežniku!", + "EntityNotFoundErrorMessage": "Ni entitete {0} z id-jem = {1}!", + "Languages": "Jeziki", + "Error": "Napaka", + "AreYouSure": "Ali ste prepričani?", + "Cancel": "Prekliči", + "Yes": "Da", + "No": "Ne", + "Ok": "V redu", + "Close": "Zapri", + "Save": "Shrani", + "SavingWithThreeDot": "Shranjujem...", + "Actions": "Dejanja", + "Delete": "Izbriši", + "Edit": "Uredi", + "Refresh": "Osveži", + "Language": "Jezik", + "LoadMore": "Naloži več", + "ProcessingWithThreeDot": "Procesiram...", + "LoadingWithThreeDot": "Nalagam...", + "Welcome": "Dobrodošli", + "Login": "Prijava", + "Register": "Registracija", + "Logout": "Odjava", + "Submit": "Pošlji", + "Back": "Nazaj", + "PagerSearch": "Iskanje", + "PagerNext": "Naslednja", + "PagerPrevious": "Prejšnja", + "PagerFirst": "Prva", + "PagerLast": "Zadnja", + "PagerInfo": "Prikazanih _START_ do _END_ od _TOTAL_ zapisov", + "PagerInfoEmpty": "Prikazanih 0 do 0 od 0 zapisov", + "PagerInfoFiltered": "(filtrirano od vseh _MAX_ zapisov)", + "NoDataAvailableInDatatable": "V tabeli ni na voljo podatkov", + "PagerShowMenuEntries": "Prikaži _MENU_ zapise", + "DatatableActionDropdownDefaultText": "Dejanja", + "ChangePassword": "Zamenjaj geslo", + "PersonalInfo": "Moj profil", + "AreYouSureYouWantToCancelEditingWarningMessage": "Imate neshranjene spremembe.", + "UnhandledException": "Neobravnavana napaka!", + "401Message": "Nepooblaščeno", + "403Message": "Prepovedano", + "404Message": "Strani ni mogoče najti", + "500Message": "Napaka na strani strežnika", + "GoHomePage": "Pojdi na osnovno stran", + "GoBack": "Nazaj" + } +} From a5d8452934e13b49f16c767ee473b2eea5362211 Mon Sep 17 00:00:00 2001 From: fmpfmp Date: Thu, 2 Apr 2020 10:32:45 +0800 Subject: [PATCH 076/222] add Feature Management Module Description add Feature Management Module Description --- docs/zh-Hans/Modules/Index.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/zh-Hans/Modules/Index.md b/docs/zh-Hans/Modules/Index.md index 9b44967c53..fb07b5b001 100644 --- a/docs/zh-Hans/Modules/Index.md +++ b/docs/zh-Hans/Modules/Index.md @@ -16,6 +16,7 @@ ABP是一个 **模块化的应用程序框架** 由十多个 **nuget packages** * **Background Jobs**: 用于在使用默认后台作业管理器时保存后台作业. * **Blogging**: 用于创建精美的博客. ABP的[博客](https://blog.abp.io/) 就使用了此模块. * [**Docs**](Docs.md): 用于创建技术文档页面. ABP的[文档](https://abp.io/documents/) 就使用了此模块. +* **Feature Management**: 用于保存和管理功能. * **Identity**: 基于Microsoft Identity管理角色,用户和他们的权限. * **Identity Server**: 集成了IdentityServer4. * **Permission Management**: 用于保存权限. @@ -27,4 +28,4 @@ ABP是一个 **模块化的应用程序框架** 由十多个 **nuget packages** ## 商业应用模块 -[ABP商业](https://commercial.abp.io/)许可证在ABP框架上提供了额外的预构建应用程序模块. 参见ABP商业版提供的[模块列表](https://commercial.abp.io/module). \ No newline at end of file +[ABP商业](https://commercial.abp.io/)许可证在ABP框架上提供了额外的预构建应用程序模块. 参见ABP商业版提供的[模块列表](https://commercial.abp.io/module). From 8df24a62fd35acd64b7f1f79a8c30f74c6d20805 Mon Sep 17 00:00:00 2001 From: Oliver Cooper Date: Thu, 2 Apr 2020 17:44:17 +0100 Subject: [PATCH 077/222] Add Quartz StartupDelay option. --- .../Volo/Abp/Quartz/AbpQuartzModule.cs | 9 ++++++++- .../Volo/Abp/Quartz/AbpQuartzPreOptions.cs | 11 ++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.Quartz/Volo/Abp/Quartz/AbpQuartzModule.cs b/framework/src/Volo.Abp.Quartz/Volo/Abp/Quartz/AbpQuartzModule.cs index c16ab14f4d..615009f914 100644 --- a/framework/src/Volo.Abp.Quartz/Volo/Abp/Quartz/AbpQuartzModule.cs +++ b/framework/src/Volo.Abp.Quartz/Volo/Abp/Quartz/AbpQuartzModule.cs @@ -1,4 +1,5 @@ using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; using Quartz; using Quartz.Impl; using Quartz.Spi; @@ -20,9 +21,15 @@ namespace Volo.Abp.Quartz public override void OnApplicationInitialization(ApplicationInitializationContext context) { + var options = context.ServiceProvider.GetRequiredService>().Value; + _scheduler = context.ServiceProvider.GetService(); _scheduler.JobFactory = context.ServiceProvider.GetService(); - _scheduler.Start(); + + if (options.StartDelay != null && options.StartDelay.Ticks > 0) + _scheduler.StartDelayed(options.StartDelay); + else + _scheduler.Start(); } public override void OnApplicationShutdown(ApplicationShutdownContext context) diff --git a/framework/src/Volo.Abp.Quartz/Volo/Abp/Quartz/AbpQuartzPreOptions.cs b/framework/src/Volo.Abp.Quartz/Volo/Abp/Quartz/AbpQuartzPreOptions.cs index e86f993d1d..9e48744d96 100644 --- a/framework/src/Volo.Abp.Quartz/Volo/Abp/Quartz/AbpQuartzPreOptions.cs +++ b/framework/src/Volo.Abp.Quartz/Volo/Abp/Quartz/AbpQuartzPreOptions.cs @@ -1,14 +1,23 @@ -using System.Collections.Specialized; +using System; +using System.Collections.Specialized; namespace Volo.Abp.Quartz { public class AbpQuartzPreOptions { + /// + /// The quartz configuration. Available properties can be found within Quartz.Impl.StdSchedulerFactory. + /// public NameValueCollection Properties { get; set; } + /// + /// How long Quartz should wait before starting. Default: 0. + /// + public TimeSpan StartDelay { get; set; } public AbpQuartzPreOptions() { Properties = new NameValueCollection(); + StartDelay = new TimeSpan(0); } } } From b0f954036be466f40c35166ab321118429d24826 Mon Sep 17 00:00:00 2001 From: Oliver Cooper Date: Fri, 3 Apr 2020 07:30:40 +0000 Subject: [PATCH 078/222] Added braces and removed null check on StartDelay. --- .../src/Volo.Abp.Quartz/Volo/Abp/Quartz/AbpQuartzModule.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Quartz/Volo/Abp/Quartz/AbpQuartzModule.cs b/framework/src/Volo.Abp.Quartz/Volo/Abp/Quartz/AbpQuartzModule.cs index 615009f914..ccd0327ecf 100644 --- a/framework/src/Volo.Abp.Quartz/Volo/Abp/Quartz/AbpQuartzModule.cs +++ b/framework/src/Volo.Abp.Quartz/Volo/Abp/Quartz/AbpQuartzModule.cs @@ -26,10 +26,14 @@ namespace Volo.Abp.Quartz _scheduler = context.ServiceProvider.GetService(); _scheduler.JobFactory = context.ServiceProvider.GetService(); - if (options.StartDelay != null && options.StartDelay.Ticks > 0) + if (options.StartDelay.Ticks > 0) + { _scheduler.StartDelayed(options.StartDelay); + } else + { _scheduler.Start(); + } } public override void OnApplicationShutdown(ApplicationShutdownContext context) From fb8dee5cccff615c8f92b8734a292721986294ea Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 7 Apr 2020 11:13:42 +0800 Subject: [PATCH 079/222] Enhance EntityHelper's TrySetId method. Resolve #3461 --- .../Volo/Abp/Domain/Entities/EntityHelper.cs | 46 +++++++++++-------- .../Abp/Domain/Entities/EntityHelper_Tests.cs | 19 ++++++++ 2 files changed, 47 insertions(+), 18 deletions(-) diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/EntityHelper.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/EntityHelper.cs index 2b38059ef8..5233f2accc 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/EntityHelper.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/EntityHelper.cs @@ -1,5 +1,7 @@ using System; +using System.Collections.Concurrent; using System.Collections.Generic; +using System.Linq; using System.Linq.Expressions; using System.Reflection; using JetBrains.Annotations; @@ -95,32 +97,40 @@ namespace Volo.Abp.Domain.Entities var lambdaBody = Expression.Equal(leftExpression, rightExpression); return Expression.Lambda>(lambdaBody, lambdaParam); } - + + private static readonly ConcurrentDictionary CachedPropertyInfo = + new ConcurrentDictionary(); + public static void TrySetId( IEntity entity, Func idFactory, bool checkForDisableGuidGenerationAttribute = false) { - //TODO: Can be optimized (by caching per entity type)? - var entityType = entity.GetType(); - var idProperty = entityType.GetProperty( - nameof(entity.Id) - ); + var property = CachedPropertyInfo.GetOrAdd( + entity.GetType().FullName + checkForDisableGuidGenerationAttribute, () => + { + var entityType = entity.GetType(); + var idProperty = entityType.GetProperties() + .Where(x => x.GetSetMethod(true) != null) + .FirstOrDefault(x => x.Name == nameof(entity.Id)); - if (idProperty == null || idProperty.GetSetMethod(true) == null) - { - return; - } + if (idProperty == null) + { + return null; + } - if (checkForDisableGuidGenerationAttribute) - { - if (idProperty.IsDefined(typeof(DisableIdGenerationAttribute), true)) - { - return; - } - } + if (checkForDisableGuidGenerationAttribute) + { + if (idProperty.IsDefined(typeof(DisableIdGenerationAttribute), true)) + { + return null; + } + } + + return idProperty; + }); - idProperty.SetValue(entity, idFactory()); + property?.SetValue(entity, idFactory()); } } } diff --git a/framework/test/Volo.Abp.Ddd.Tests/Volo/Abp/Domain/Entities/EntityHelper_Tests.cs b/framework/test/Volo.Abp.Ddd.Tests/Volo/Abp/Domain/Entities/EntityHelper_Tests.cs index 2ad6a45b05..8d405f6907 100644 --- a/framework/test/Volo.Abp.Ddd.Tests/Volo/Abp/Domain/Entities/EntityHelper_Tests.cs +++ b/framework/test/Volo.Abp.Ddd.Tests/Volo/Abp/Domain/Entities/EntityHelper_Tests.cs @@ -1,4 +1,5 @@ using System; +using System.ComponentModel; using Shouldly; using Xunit; @@ -33,6 +34,15 @@ namespace Volo.Abp.Domain.Entities myEntityDisablesIdGeneration.Id.ShouldBe(default); } + [Fact] + public static void SetId_NewIdFromBaseClass() + { + var idValue = Guid.NewGuid(); + var myNewIdEntity = new NewIdEntity(); + EntityHelper.TrySetId(myNewIdEntity, () => idValue, true); + myNewIdEntity.Id.ShouldBe(idValue); + } + private class MyEntityDerivedFromAggregateRoot : AggregateRoot { @@ -53,5 +63,14 @@ namespace Volo.Abp.Domain.Entities [DisableIdGeneration] public override Guid Id { get; protected set; } } + + public class NewIdEntity : Entity + { + public new Guid Id + { + get => base.Id; + set => base.Id = value; + } + } } } From c1e969cc3cdd619c436d6bfa281a6139451d2d00 Mon Sep 17 00:00:00 2001 From: Weihan Li Date: Tue, 7 Apr 2020 11:38:36 +0800 Subject: [PATCH 080/222] update IsRelational extension for EntityFramework --- .../Volo/Abp/EntityFrameworkCore/DatabaseFacadeExtensions.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/DatabaseFacadeExtensions.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/DatabaseFacadeExtensions.cs index f663f43a0d..fbea680be1 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/DatabaseFacadeExtensions.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/DatabaseFacadeExtensions.cs @@ -8,7 +8,9 @@ namespace Volo.Abp.EntityFrameworkCore { public static bool IsRelational(this DatabaseFacade database) { - return database.GetInfrastructure().GetService() != null; +#pragma warning disable EF1001 // Internal EF Core API usage. + return ((IDatabaseFacadeDependenciesAccessor)database).Dependencies is IRelationalDatabaseFacadeDependencies; +#pragma warning restore EF1001 // Internal EF Core API usage. } } } From d6ca9ac7ec8a2c68f2d7b7082373a951cdaca2bf Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 7 Apr 2020 18:00:14 +0800 Subject: [PATCH 081/222] Dynamic C# proxying enhancements for culture sensitive types. --- .../DynamicHttpProxyInterceptor.cs | 18 +++++------------- .../Http/Client/DynamicProxying/UrlBuilder.cs | 12 ++++++++---- 2 files changed, 13 insertions(+), 17 deletions(-) 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 d5d90ed182..8d6f570309 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 @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Globalization; using System.Linq; @@ -106,20 +106,12 @@ namespace Volo.Abp.Http.Client.DynamicProxying private async Task MakeRequestAndGetResultAsync(IAbpMethodInvocation invocation) { var responseAsString = await MakeRequestAsync(invocation); - - //TODO: Think on that - if (TypeHelper.IsPrimitiveExtended(typeof(T), true)) + + if (typeof(T) == typeof(string)) { - if (typeof(DateTime).IsAssignableFrom(typeof(T))) - { - return (T)(object)DateTime.Parse(responseAsString.Trim('\"'), CultureInfo.InvariantCulture); - } - else - { - return (T)Convert.ChangeType(responseAsString, typeof(T)); - } + responseAsString = responseAsString.EnsureStartsWith('"').EnsureEndsWith('"'); } - + return JsonSerializer.Deserialize(responseAsString); } diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/UrlBuilder.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/UrlBuilder.cs index dae7853e08..162da88f16 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/UrlBuilder.cs +++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/UrlBuilder.cs @@ -6,6 +6,7 @@ using System.Text; using JetBrains.Annotations; using Volo.Abp.Http.Modeling; using Volo.Abp.Http.ProxyScripting.Generators; +using Volo.Abp.Localization; using Volo.Abp.Reflection; namespace Volo.Abp.Http.Client.DynamicProxying @@ -104,12 +105,15 @@ namespace Volo.Abp.Http.Client.DynamicProxying private static string ConvertValueToString([NotNull] object value) { - if (value is DateTime dateTimeValue) + using (CultureHelper.Use(CultureInfo.InvariantCulture)) { - return dateTimeValue.ToUniversalTime().ToString("u"); - } + if (value is DateTime dateTimeValue) + { + return dateTimeValue.ToUniversalTime().ToString("u"); + } - return value.ToString(); + return value.ToString(); + } } } } From 4ac6be3845d9847240bce7676ba33ef23e405753 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Wed, 8 Apr 2020 12:06:17 +0300 Subject: [PATCH 082/222] docs: update getting started documentation --- docs/en/Getting-Started-Angular-Template.md | 128 +----- ...Getting-Started-AspNetCore-MVC-Template.md | 106 +---- .../Getting-Started-With-Startup-Templates.md | 6 +- docs/en/Getting-Started.md | 407 ++++++++++++++++++ docs/en/docs-nav.json | 12 +- docs/en/images/bookstore-home.png | Bin 0 -> 11607 bytes docs/en/images/bookstore-login.png | Bin 0 -> 46319 bytes docs/en/images/db-migrator-output.png | Bin 0 -> 11903 bytes ...ackage-manager-console-update-database.png | Bin 0 -> 6441 bytes docs/en/images/rn-environment-local-ip.png | Bin 0 -> 76834 bytes docs/en/images/rn-expo-interface.png | Bin 0 -> 77529 bytes docs/en/images/rn-host-local-ip.png | Bin 0 -> 174828 bytes docs/en/images/rn-login-iphone.png | Bin 0 -> 36281 bytes docs/en/images/rn-tiered-local-ip.png | Bin 0 -> 223128 bytes docs/en/images/solution-files-mvc.png | Bin 0 -> 185410 bytes docs/en/images/solution-files-non-mvc.png | Bin 0 -> 5658 bytes docs/en/images/swagger-ui.png | Bin 0 -> 1071656 bytes .../vs-app-solution-structure-mongodb.png | Bin 0 -> 365764 bytes .../vs-app-solution-structure-tiered.png | Bin 0 -> 434378 bytes docs/en/images/vs-app-solution-structure.png | Bin 0 -> 410389 bytes .../vs-spa-app-backend-structure-mongodb.png | Bin 0 -> 344596 bytes .../images/vs-spa-app-backend-structure.png | Bin 0 -> 398563 bytes 22 files changed, 422 insertions(+), 237 deletions(-) create mode 100644 docs/en/Getting-Started.md create mode 100644 docs/en/images/bookstore-home.png create mode 100644 docs/en/images/bookstore-login.png create mode 100644 docs/en/images/db-migrator-output.png create mode 100644 docs/en/images/package-manager-console-update-database.png create mode 100644 docs/en/images/rn-environment-local-ip.png create mode 100644 docs/en/images/rn-expo-interface.png create mode 100644 docs/en/images/rn-host-local-ip.png create mode 100644 docs/en/images/rn-login-iphone.png create mode 100644 docs/en/images/rn-tiered-local-ip.png create mode 100644 docs/en/images/solution-files-mvc.png create mode 100644 docs/en/images/solution-files-non-mvc.png create mode 100644 docs/en/images/swagger-ui.png create mode 100644 docs/en/images/vs-app-solution-structure-mongodb.png create mode 100644 docs/en/images/vs-app-solution-structure-tiered.png create mode 100644 docs/en/images/vs-app-solution-structure.png create mode 100644 docs/en/images/vs-spa-app-backend-structure-mongodb.png create mode 100644 docs/en/images/vs-spa-app-backend-structure.png diff --git a/docs/en/Getting-Started-Angular-Template.md b/docs/en/Getting-Started-Angular-Template.md index 22d672d97a..9beb84bcef 100644 --- a/docs/en/Getting-Started-Angular-Template.md +++ b/docs/en/Getting-Started-Angular-Template.md @@ -1,126 +1,8 @@ -## Getting Started With the Angular Application Template +# Getting Started with the Startup Templates -This tutorial explains how to create a new Angular application using the startup template, configure and run it. +See the following tutorials to learn how to get started with the ABP Framework using the pre-built application startup templates: -### Creating a New Project +* [Getting Started With the ASP.NET Core MVC / Razor Pages UI](Getting-Started?UI=MVC&DB=EF&Tiered=No) +* [Getting Started with the Angular UI](Getting-Started?UI=NG&DB=EF&Tiered=No) -This tutorial uses **ABP CLI** to create a new project. See the [Get Started](https://abp.io/get-started) page for other options. - -Install the ABP CLI using a command line window, if you've not installed before: - -````bash -dotnet tool install -g Volo.Abp.Cli -```` - -Use `abp new` command in an empty folder to create your project: - -````bash -abp new Acme.BookStore -u angular -```` - -> You can use different level of namespaces; e.g. BookStore, Acme.BookStore or Acme.Retail.BookStore. - -`-u angular` option specifies the UI framework to be Angular. Default database provider is EF Core. See the [CLI documentation](CLI.md) for all available options. - -#### Pre Requirements - -The created solution requires; - -* [Visual Studio 2019 (v16.4+)](https://visualstudio.microsoft.com/vs/) -* [.NET Core 3.0+](https://www.microsoft.com/net/download/dotnet-core/) -* [Node v12+](https://nodejs.org) -* [Yarn v1.19+](https://classic.yarnpkg.com/) - -### The Solution Structure - -Open the solution in **Visual Studio**: - -![bookstore-visual-studio-solution](images/bookstore-visual-studio-solution-for-spa.png) - -The solution has a layered structure (based on [Domain Driven Design](Domain-Driven-Design.md)) and contains unit & integration test projects properly configured to work with **EF Core** & **SQLite in-memory** database. - -> See the [Application Template Document](Startup-Templates/Application.md) to understand the solution structure in details. - -### Database Connection String - -Check the **connection string** in the `appsettings.json` file under the `.HttpApi.Host` project: - -````json -{ - "ConnectionStrings": { - "Default": "Server=localhost;Database=BookStore;Trusted_Connection=True" - } -} -```` - -The solution is configured to use **Entity Framework Core** with **MS SQL Server**. EF Core supports [various](https://docs.microsoft.com/en-us/ef/core/providers/) database providers, so you can use another DBMS if you want. Change the connection string if you need. - -### Create Database & Apply Database Migrations - -You have two options to create the database. - -#### Using the DbMigrator Application - -The solution contains a console application (named `Acme.BookStore.DbMigrator` in this sample) that can create database, apply migrations and seed initial data. It is useful on development as well as on production environment. - -> `.DbMigrator` project has its own `appsettings.json`. So, if you have changed the connection string above, you should also change this one. - -Right click to the `.DbMigrator` project and select **Set as StartUp Project**: - -![set-as-startup-project](images/set-as-startup-project.png) - -Hit F5 (or Ctrl+F5) to run the application. It will have an output like shown below: - -![set-as-startup-project](images/db-migrator-app.png) - -#### Using EF Core Update-Database Command - -Ef Core has `Update-Database` command which creates database if necessary and applies pending migrations. Right click to the `.HttpApi.Host` project and select **Set as StartUp Project**: - -![set-as-startup-project](images/set-as-startup-project.png) - -Open the **Package Manager Console**, select `.EntityFrameworkCore.DbMigrations` project as the **Default Project** and run the `Update-Database` command: - -![pcm-update-database](images/pcm-update-database-v2.png) - -This will create a new database based on the configured connection string. - -> Using the `.DbMigrator` tool is the suggested way, because it also seeds the initial data to be able to properly run the web application. - -### Running the Application - -#### Run the API Host (Server Side) - -Ensure that the `.HttpApi.Host` project is the startup project and run the application which will open a Swagger UI: - -![bookstore-homepage](images/bookstore-swagger-ui-host.png) - -You can see the application APIs and test them here. Get [more info](https://swagger.io/tools/swagger-ui/) about the Swagger UI. - -##### Authorization for the Swagger UI - -Most of the application APIs require authentication & authorization. If you want to test authorized APIs, manually go to the `/Account/Login` page, enter `admin` as the username and `1q2w3E*` as the password to login to the application. Then you will be able to execute authorized APIs too. - -#### Run the Angular Application (Client Side) - -Go to the `angular` folder, open a command line terminal, type the `yarn` command (we suggest the [yarn](https://yarnpkg.com) package manager while `npm install` will also work in most cases) - -````bash -yarn -```` - -Once all node modules are loaded, execute `yarn start` or `npm start` command: - -````bash -yarn start -```` - -Open your favorite browser and go to `localhost:4200` URL. Initial username is `admin` and password is `1q2w3E*`. - -The startup template includes the **identity management** and **tenant management** modules. Once you login, the Administration menu will be available where you can manage **tenants**, **roles**, **users** and their **permissions**. - -> We recommend [Visual Studio Code](https://code.visualstudio.com/) as the editor for the Angular project, but you are free to use your favorite editor. - -### What's Next? - -* [Application development tutorial](Tutorials/Part-1) + \ No newline at end of file diff --git a/docs/en/Getting-Started-AspNetCore-MVC-Template.md b/docs/en/Getting-Started-AspNetCore-MVC-Template.md index d074e8aaef..9beb84bcef 100644 --- a/docs/en/Getting-Started-AspNetCore-MVC-Template.md +++ b/docs/en/Getting-Started-AspNetCore-MVC-Template.md @@ -1,104 +1,8 @@ -## Getting Started With the ASP.NET Core MVC Template +# Getting Started with the Startup Templates -This tutorial explains how to create a new ASP.NET Core MVC web application using the startup template, configure and run it. +See the following tutorials to learn how to get started with the ABP Framework using the pre-built application startup templates: -### Creating a New Project +* [Getting Started With the ASP.NET Core MVC / Razor Pages UI](Getting-Started?UI=MVC&DB=EF&Tiered=No) +* [Getting Started with the Angular UI](Getting-Started?UI=NG&DB=EF&Tiered=No) -This tutorial uses **ABP CLI** to create a new project. See the [Get Started](https://abp.io/get-started) page for other options. - -Install the ABP CLI using a command line window, if you've not installed before: - -````bash -dotnet tool install -g Volo.Abp.Cli -```` - -Use `abp new` command in an empty folder to create your project: - -````bash -abp new Acme.BookStore -```` - -> You can use different level of namespaces; e.g. BookStore, Acme.BookStore or Acme.Retail.BookStore. - -`new` command creates a **layered MVC application** with **Entity Framework Core** as the database provider. However, it has additional options. See the [CLI documentation](CLI.md) for all available options. - -#### Pre Requirements - -The created solution requires; - -* [Visual Studio 2019 (v16.4+)](https://visualstudio.microsoft.com/vs/) -* [.NET Core 3.0+](https://www.microsoft.com/net/download/dotnet-core/) -* [Node v12+](https://nodejs.org) -* [Yarn v1.19+](https://classic.yarnpkg.com/) - -### The Solution Structure - -Open the solution in **Visual Studio**: - -![bookstore-visual-studio-solution](images/bookstore-visual-studio-solution-v3.png) - -The solution has a layered structure (based on [Domain Driven Design](Domain-Driven-Design.md)) and contains unit & integration test projects properly configured to work with **EF Core** & **SQLite in-memory** database. - -> See [Application template document](Startup-Templates/Application.md) to understand the solution structure in details. - -### Database Connection String - -Check the **connection string** in the `appsettings.json` file under the `.Web` project: - -````json -{ - "ConnectionStrings": { - "Default": "Server=localhost;Database=BookStore;Trusted_Connection=True" - } -} -```` - -The solution is configured to use **Entity Framework Core** with **MS SQL Server**. EF Core supports [various](https://docs.microsoft.com/en-us/ef/core/providers/) database providers, so you can use another DBMS if you want. Change the connection string if you need. - -### Create Database & Apply Database Migrations - -You have two options to create the database. - -#### Using the DbMigrator Application - -The solution contains a console application (named `Acme.BookStore.DbMigrator` in this sample) that can create database, apply migrations and seed initial data. It is useful on development as well as on production environment. - -> `.DbMigrator` project has its own `appsettings.json`. So, if you have changed the connection string above, you should also change this one. - -Right click to the `.DbMigrator` project and select **Set as StartUp Project**: - -![set-as-startup-project](images/set-as-startup-project.png) - -Hit F5 (or Ctrl+F5) to run the application. It will have an output like shown below: - -![set-as-startup-project](images/db-migrator-app.png) - -#### Using EF Core Update-Database Command - -Ef Core has `Update-Database` command which creates database if necessary and applies pending migrations. Right click to the `.Web` project and select **Set as StartUp Project**: - -![set-as-startup-project](images/set-as-startup-project.png) - -Open the **Package Manager Console**, select `.EntityFrameworkCore.DbMigrations` project as the **Default Project** and run the `Update-Database` command: - -![pcm-update-database](images/pcm-update-database-v2.png) - -This will create a new database based on the configured connection string. - -> Using the `.Migrator` tool is the suggested way, because it also seeds the initial data to be able to properly run the web application. - -### Running the Application - -Ensure that the `.Web` project is the startup project. Run the application which will open the **home** page in your browser: - -![bookstore-homepage](images/bookstore-homepage.png) - -Click the **Login** button, enter `admin` as the username and `1q2w3E*` as the password to login to the application. - -The startup template includes the **identity management** and **tenant management** modules. Once you login, the Administration menu will be available where you can manage **tenants**, **roles**, **users** and their **permissions**. User management page is shown below: - -![bookstore-user-management](images/bookstore-user-management-v2.png) - -### What's Next? - -* [Application development tutorial](Tutorials/Part-1.md) + \ No newline at end of file diff --git a/docs/en/Getting-Started-With-Startup-Templates.md b/docs/en/Getting-Started-With-Startup-Templates.md index 19442ec81e..be2bb201b8 100644 --- a/docs/en/Getting-Started-With-Startup-Templates.md +++ b/docs/en/Getting-Started-With-Startup-Templates.md @@ -2,5 +2,7 @@ See the following tutorials to learn how to get started with the ABP Framework using the pre-built application startup templates: -* [Getting Started With the ASP.NET Core MVC / Razor Pages UI](Getting-Started-AspNetCore-MVC-Template.md) -* [Getting Started with the Angular UI](Getting-Started-Angular-Template.md) \ No newline at end of file +* [Getting Started With the ASP.NET Core MVC / Razor Pages UI](Getting-Started?UI=MVC&DB=EF&Tiered=No) +* [Getting Started with the Angular UI](Getting-Started?UI=NG&DB=EF&Tiered=No) + + \ No newline at end of file diff --git a/docs/en/Getting-Started.md b/docs/en/Getting-Started.md new file mode 100644 index 0000000000..07e55f553e --- /dev/null +++ b/docs/en/Getting-Started.md @@ -0,0 +1,407 @@ +# Getting started + +````json +//[doc-params] +{ + "UI": ["MVC","NG"], + "DB": ["EF", "Mongo"], + "Tiered": ["Yes", "No"] +} +```` + +This tutorial explains how to create a new {{if UI == "MVC"}} ASP.NET Core MVC web {{else if UI == "NG"}} Angular {{end}} application using the startup template, configure and run it. + + +## Setup your development environment + +First things first! Let's setup your development environment before creating the first project. + +### Pre-requirements + +The following tools should be installed on your development machine: + +* [Visual Studio 2019 (v16.4+)](https://visualstudio.microsoft.com/vs/) for Windows / [Visual Studio for Mac](https://visualstudio.microsoft.com/vs/mac/). +* [.NET Core 3.0+](https://www.microsoft.com/net/download/dotnet-core/) + +* [Node v12+](https://nodejs.org) +* [Yarn v1.19+](https://classic.yarnpkg.com/) + +> You can use another editor instead of Visual Studio as long as it supports .NET Core and ASP.NET Core. + +### Install the ABP CLI + +[ABP CLI](./CLI.md) is a command line interface that is used to authenticate and automate some tasks for ABP based applications. + +> ABP CLI is a free & open source tool for [the ABP framework](https://abp.io/). + +First, you need to install the ABP CLI using the following command: + +````shell +dotnet tool install -g Volo.Abp.Cli +```` + +If you've already installed, you can update it using the following command: + +````shell +dotnet tool update -g Volo.Abp.Cli +```` + +## Create a new project + +> This document assumes that you prefer to use **{{ UI_Value }}** as the UI framework and **{{ DB_Value }}** as the database provider. For other options, please change the preference on top of this document. + +### Using the ABP CLI to create a new project + +Use the `new` command of the ABP CLI to create a new project: + +````shell +abp new Acme.BookStore -t app{{if UI == "NG"}} -u angular {{end}}{{if DB == "Mongo"}} -d mongodb{{end}}{{if Tiered == "Yes" && UI != "NG"}} --tiered {{else if Tiered == "Yes" && UI == "NG"}}--separate-identity-server{{end}} +```` + +* `-t` argument specifies the [startup template](Startup-Templates/Application.md) name. `app` is the startup template that contains the essential [ABP Modules](Modules/Index.md) pre-installed and configured for you. + +{{ if UI == "NG" }} + +* `-u` argument specifies the UI framework, `angular` in this case. + +{{ if Tiered == "Yes" }} + +* `--separate-identity-server` argument is used to separate the identity server application from the API host application. If not specified, you will have a single endpoint. + +{{ end }} + +{{ end }} + +{{ if DB == "Mongo" }} + +* `-d` argument specifies the database provider, `mongodb` in this case. + +{{ end }} + +{{ if Tiered == "Yes" && UI != "NG" }} + +* `--tiered` argument is used to create N-tiered solution where authentication server, UI and API layers are physically separated. + +{{ end }} + +> You can use different level of namespaces; e.g. BookStore, Acme.BookStore or Acme.Retail.BookStore. + +#### ABP CLI commands & options + +[ABP CLI document](./CLI.md) covers all of the available commands and options for the ABP CLI. See the [ABP Startup Templates](Startup-Templates/Index.md) document for other templates. + +## The solution structure + +{{ if UI == "MVC" }} + +After creating your project, you will have the following solution folders & files: + +![](images/solution-files-mvc.png) + +You will see the following solution structure when you open the `.sln` file in the Visual Studio: + +{{if DB == "Mongo"}} + +![vs-default-app-solution-structure](images/vs-app-solution-structure-mongodb.png) + +{{else}} + +![vs-default-app-solution-structure](images/vs-app-solution-structure{{if Tiered == "Yes"}}-tiered{{end}}.png) + +{{end}} + +{{ else if UI == "NG" }} +There are three folders in the created solution: + +![](images/solution-files-non-mvc.png) + +* `angular` folder contains the Angular UI application. +* `aspnet-core` folder contains the backend solution. +* `react-native` folder contains the React Native UI application. + +Open the `.sln` (Visual Studio solution) file under the `aspnet-core` folder: + +![vs-angular-app-backend-solution-structure](images/vs-spa-app-backend-structure{{if DB == "Mongo"}}-mongodb{{end}}.png) + +{{ end }} + +> ###### About the projects in your solution +> +> Your solution may have slightly different structure based on your **UI**, **database** and other preferences. + +The solution has a layered structure (based on [Domain Driven Design](./Domain-Driven-Design.md)) and also contains unit & integration test projects. + +{{ if DB == "EF" }} + +Integration tests projects are properly configured to work with **EF Core** & **SQLite in-memory** database. + +{{ else if DB == "Mongo" }} + +Integration tests projects are properly configured to work with in-memory **MongoDB** database created per test (used [Mongo2Go](https://github.com/Mongo2Go/Mongo2Go) library). + +{{ end }} + +> See the [application template document](Startup-Templates/Application.md) to understand the solution structure in details. + +## Create the database + +### Database connection string + +Check the **connection string** in the `appsettings.json` file under the {{if UI == "MVC"}}{{if Tiered == "Yes"}}`.IdentityServer` and `.HttpApi.Host` projects{{else}}`.Web` project{{end}}{{else if UI == "NG" }}`.HttpApi.Host` project{{end}}: + +{{ if DB == "EF" }} + +````json +"ConnectionStrings": { + "Default": "Server=localhost;Database=BookStore;Trusted_Connection=True" +} +```` + +The solution is configured to use **Entity Framework Core** with **MS SQL Server**. EF Core supports [various](https://docs.microsoft.com/en-us/ef/core/providers/) database providers, so you can use any supported DBMS. See [the Entity Framework integration document](https://docs.abp.io/en/abp/latest/Entity-Framework-Core) to learn how to switch to another DBMS. + +### Apply the migrations + +The solution uses the [Entity Framework Core Code First Migrations](https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/?tabs=dotnet-core-cli). So, you need to apply migrations to create the database. There are two ways of applying the database migrations. + +#### Apply migrations using the DbMigrator + +The solution comes with a `.DbMigrator` console application which applies migrations and also seed the initial data. It is useful on development as well as on production environment. + +> `.DbMigrator` project has its own `appsettings.json`. So, if you have changed the connection string above, you should also change this one. + +Right click to the `.DbMigrator` project and select **Set as StartUp Project** + +![set-as-startup-project](images/set-as-startup-project.png) + + Hit F5 (or Ctrl+F5) to run the application. It will have an output like shown below: + + ![db-migrator-output](images/db-migrator-output.png) + +> Initial seed data creates the `admin` user in the database which is then used to login to the application. So, you need to use `.DbMigrator` at least once for a new database. + +#### Using EF Core Update-Database command + +Ef Core has `Update-Database` command which creates database if necessary and applies pending migrations. + +{{ if UI == "MVC" }} + +Right click to the {{if Tiered == "Yes"}}`.IdentityServer`{{else}}`.Web`{{end}} project and select **Set as StartUp project**: + +{{ else if UI != "MVC" }} + +Right click to the `.HttpApi.Host` project and select **Set as StartUp Project**: + +{{ end }} + +![set-as-startup-project](images/set-as-startup-project.png) + +Open the **Package Manager Console**, select `.EntityFrameworkCore.DbMigrations` project as the **Default Project** and run the `Update-Database` command: + +![package-manager-console-update-database](images/package-manager-console-update-database.png) + +This will create a new database based on the configured connection string. + +> Using the `.Migrator` tool is the suggested way, because it also seeds the initial data to be able to properly run the web application. + +{{ else if DB == "Mongo" }} + +````json +"ConnectionStrings": { + "Default": "mongodb://localhost:27017/BookStore" +} +```` + +The solution is configured to use **MongoDB** in your local computer, so you need to have a MongoDB server instance up and running or change the connection string to another MongoDB server. + +### Seed initial data + +The solution comes with a `.DbMigrator` console application which seeds the initial data. It is useful on development as well as on production environment. + +> `.DbMigrator` project has its own `appsettings.json`. So, if you have changed the connection string above, you should also change this one. + +Right click to the `.DbMigrator` project and select **Set as StartUp Project** + +![set-as-startup-project](images/set-as-startup-project.png) + + Hit F5 (or Ctrl+F5) to run the application. It will have an output like shown below: + + ![db-migrator-output](images/db-migrator-output.png) + +> Initial seed data creates the `admin` user in the database which is then used to login to the application. So, you need to use `.DbMigrator` at least once for a new database. + +{{ end }} + +## Run the application + +{{ if UI == "MVC" }} + +{{ if Tiered == "Yes" }} + +Ensure that the `.IdentityServer` project is the startup project. Run the application which will open a **login** page in your browser. + +> Use Ctrl+F5 in Visual Studio (instead of F5) to run the application without debugging. If you don't have a debug purpose, this will be faster. + +You can login, but you cannot enter to the main application here. This is just the authentication server. + +Ensure that the `.HttpApi.Host` project is the startup project and run the application which will open a **Swagger UI** in your browser. + +![swagger-ui](images/swagger-ui.png) + +This is the API application that is used by the web application. + +Lastly, ensure that the `.Web` project is the startup project and run the application which will open a **welcome** page in your browser + +![mvc-tiered-app-home](images/bookstore-home.png) + +Click to the **login** button which will redirect you to the `Identity Server` to login to the application: + +![bookstore-login](images/bookstore-login.png) + +{{ else }} + +Ensure that the `.Web` project is the startup project. Run the application which will open the **login** page in your browser: + +> Use Ctrl+F5 in Visual Studio (instead of F5) to run the application without debugging. If you don't have a debug purpose, this will be faster. + +![bookstore-login](images/bookstore-login.png) + +{{ end }} + +{{ else if UI != "MVC" }} + +#### Running the HTTP API Host (server-side) + +{{ if Tiered == "Yes" }} + +Ensure that the `.IdentityServer` project is the startup project. Run the application which will open a **login** page in your browser. + +> Use Ctrl+F5 in Visual Studio (instead of F5) to run the application without debugging. If you don't have a debug purpose, this will be faster. + +You can login, but you cannot enter to the main application here. This is just the authentication server. + +{{ end }} + +Ensure that the `.HttpApi.Host` project is the startup project and run the application which will open a Swagger UI: + +{{ if Tiered == "No" }} + +> Use Ctrl+F5 in Visual Studio (instead of F5) to run the application without debugging. If you don't have a debug purpose, this will be faster. + +{{ end }} + +![swagger-ui](images/swagger-ui.png) + +You can see the application APIs and test them here. Get [more info](https://swagger.io/tools/swagger-ui/) about the Swagger UI. + +> ##### Authorization for the Swagger UI +> +> Most of the HTTP APIs require authentication & authorization. If you want to test authorized APIs, manually go to the `/Account/Login` page, enter `admin` as the username and `1q2w3E*` as the password to login to the application. Then you will be able to execute authorized APIs too. + +{{ end }} + +{{ if UI == "NG" }} +#### Running the Angular application (client-side) + +Go to the `angular` folder, open a command line terminal, type the `yarn` command (we suggest to the [yarn](https://yarnpkg.com/) package manager while `npm install` will also work in most cases) + +```bash +yarn +``` + +Once all node modules are loaded, execute `yarn start` (or `npm start`) command: + +```bash +yarn start +``` + +Wait `Angular CLI` to launch `Webpack` dev-server with `BrowserSync`. +This will take care of compiling your `TypeScript` code, and automatically reloading your browser. +After it finishes, `Angular Live Development Server` will be listening on localhost:4200, +open your web browser and navigate to [localhost:4200](http://localhost:4200/) + + + +![bookstore-login](images/bookstore-login.png) + +{{ end }} + +Enter **admin** as the username and **1q2w3E*** as the password to login to the application: + +![bookstore-home](images/bookstore-home.png) + +The application is up and running. You can start developing your application based on this startup template. + +#### Mobile Development + +ABP platform provide [React Native](https://reactnative.dev/) template to develop mobile applications. + +>The solution includes the React Native application in the `react-native` folder as default. If you don't plan to develop a mobile application with React Native, you can ignore this step and delete the `react-native` folder. + +The React Native application running on an Android emulator or a physical phone cannot connect to the backend on `localhost`. To fix this problem, it is necessary to run backend on the local IP. + +{{ if Tiered == "No"}} +![React Native host project local IP entry](images/rn-host-local-ip.png) + +* Open the `appsettings.json` in the `.HttpApi.Host` folder. Replace the `localhost` address on the `SelfUrl` and `Authority` properties with your local IP address. +* Open the `launchSettings.json` in the `.HttpApi.Host/Properties` folder. Replace the `localhost` address on the `applicationUrl` properties with your local IP address. + +{{ else if Tiered == "Yes" }} + +![React Native tiered project local IP entry](images/rn-tiered-local-ip.png) + +* Open the `appsettings.json` in the `.IdentityServer` folder. Replace the `localhost` address on the `SelfUrl` property with your local IP address. +* Open the `launchSettings.json` in the `.IdentityServer/Properties` folder. Replace the `localhost` address on the `applicationUrl` properties with your local IP address. +* Open the `appsettings.json` in the `.HttpApi.Host` folder. Replace the `localhost` address on the `Authority` property with your local IP address. +* Open the `launchSettings.json` in the `.HttpApi.Host/Properties` folder. Replace the `localhost` address on the `applicationUrl` properties with your local IP address. + +{{ end }} + +Run the backend as described in the [**Running the HTTP API Host (server-side)**](#running-the-http-api-host-server-side) section. + +> React Native application does not trust the auto-generated .NET HTTPS certificate, you should use the HTTP during development. + +Go to the `react-native` folder, open a command line terminal, type the `yarn` command (we suggest to the [yarn](https://yarnpkg.com/) package manager while `npm install` will also work in most cases): + +```bash +yarn +``` + +* Open the `Environment.js` in the `react-native` folder and replace the `localhost` address on the `apiUrl` and `issuer` properties with your local IP address as shown below: + +![react native environment local IP](images/rn-environment-local-ip.png) + +{{ if Tiered == "Yes" }} + +> Make sure that `issuer` matches the running address of the `.IdentityServer` project, `apiUrl` matches the running address of the `.HttpApi.Host` project. + +{{else}} + +> Make sure that `issuer` and `apiUrl` matches the running address of the `.HttpApi.Host` project. + +{{ end }} + +Once all node modules are loaded, execute `yarn start` (or `npm start`) command: + +```bash +yarn start +``` + +Wait Expo CLI to start. Expo CLI opens the management interface on the `http://localhost:19002/` address. + +![expo-interface](images/rn-expo-interface.png) + +In the above management interface, you can start the application with an Android emulator, an iOS simulator or a physical phone by the scan the QR code with the [Expo Client](https://expo.io/tools#client). + +> See the [Android Studio Emulator](https://docs.expo.io/versions/v36.0.0/workflow/android-studio-emulator/), [iOS Simulator](https://docs.expo.io/versions/v36.0.0/workflow/ios-simulator/) documents on expo.io. + +![React Native login screen on iPhone 11](images/rn-login-iphone.png) + +Enter **admin** as the username and **1q2w3E*** as the password to login to the application. + +The application is up and running. You can continue to develop your application based on this startup template. + +> The [application startup template](startup-templates/application/index.md) includes the TenantManagement and Identity modules. + +## What's next? + +[Application development tutorial](tutorials/book-store/part-1.md) diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json index 471e215e3a..753368fd02 100644 --- a/docs/en/docs-nav.json +++ b/docs/en/docs-nav.json @@ -5,17 +5,7 @@ "items": [ { "text": "From Startup Templates", - "path": "Getting-Started-With-Startup-Templates.md", - "items": [ - { - "text": "Application with MVC (Razor Pages) UI", - "path": "Getting-Started-AspNetCore-MVC-Template.md" - }, - { - "text": "Application with Angular UI", - "path": "Getting-Started-Angular-Template.md" - } - ] + "path": "Getting-Started.md" }, { "text": "From Empty Projects", diff --git a/docs/en/images/bookstore-home.png b/docs/en/images/bookstore-home.png new file mode 100644 index 0000000000000000000000000000000000000000..5e5b512220edcb578d9b09bf1471388d4fe57684 GIT binary patch literal 11607 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 literal 0 HcmV?d00001 diff --git a/docs/en/images/bookstore-login.png b/docs/en/images/bookstore-login.png new file mode 100644 index 0000000000000000000000000000000000000000..cd8bfa9bf93a8bf761c725d751d7cc0149b0008b GIT binary patch literal 46319 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 literal 0 HcmV?d00001 diff --git a/docs/en/images/rn-environment-local-ip.png b/docs/en/images/rn-environment-local-ip.png new file mode 100644 index 0000000000000000000000000000000000000000..7e60efff2f41ec482734ffae37a25ff213d03065 GIT binary patch literal 76834 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

+%5we-eR&((K|l^WjFMFkzN0$E3NqLC2GT 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 literal 0 HcmV?d00001 diff --git a/docs/en/images/rn-expo-interface.png b/docs/en/images/rn-expo-interface.png new file mode 100644 index 0000000000000000000000000000000000000000..f1f405ebf4f20db6a33910c09c7d2253754aeedf GIT binary patch literal 77529 zcma%j2V7H0yLUiP3{q4gEJ)K;Bs4{eAWcwFktPYfibyZgTL`Ft4a9;dy=Z_02)z>! zR1l;Ip;zg>6A0~_xV!g#@BI{3e?m-h&Y77r=b7hUo_VaHrpy3khe99_hU?cZ--196 z_(LH3a_RPicP{T2aDYIl7_60)G_ETt@n|?Z-nF)~fI!Z?FgG=Qc}?(4joA@X)0%n# zeyFp@tw)cZ-7-a2R(#_5R`E6dTYS`8L&E_!=7A~*%~^JsZ^@SmxGSJM~X zy7lx`z%ns9eTJ1@ybw%`h(4}4UEri3*GB?RaGHy z@R|-nO?3pa54@rRe<8uv5SpK_A&}GHHyF~FL68IB_Yv?aG?BJC-A;^#M{!E4IfA}4r$e#O;R_Jppg29J`Xvjva1u$b`K6LL@< z9v&IzJ9njTUB3GF;oyI=C#+muouoxXJUl#vJ`ua z;A-Y6vA%blSw08ES!}b?d>fbT;={VxH3Pl z^uIp*PdooQP{Z2O!cOqtr; zq}83RK|{?bgD7`SM&$o{@9*!+h)_oOzefD8+xhcda6jdsG9v#oH{_r%$xCGrhyvvL zJEcXL9i(C%B%X& z1;SdCBjFr7H64#XWY-@GtI+98B@Y4J9Phw%{USjh{QcOIdmIDK*bzw-5W*L}Hwys& zL42r)mU8*QMbN<;-;2m$rlMh1fc)-9{3f-m_i`rPy5ss_$G+cv>wgZfxg2oK*x2~= z>Qg!1y_@w~%O5)6d_PNS*FIB5BrKI00kNEnNif-ah@@ywjP%6TAO3x({%Ni#g6Ed5 z?%M>TB!fLq3!xr4{AhS=EW*+!|H?ln`2E1uXix?DH#Bi575x4?e>X5-5qkN_lP9$$ zOx^$DR^EwMc>mtQv|#+mo`dGE;6-~4T_^Bmb}LugjjqM?y@n_lH6UzByT6bIsag8y;cC< zk!eMw+Z|6*6Io?pz zZtTaf zGuwizGT*AX5+Uom@R_w6i^Tb!56nq`dz5dj<_tZT?~5?;91L{-bXd6~{?Y?qZcg*{ z#SzSibSRg1hQ-%NtYa`E=OnTAx%_saBe~|}^R+pTepEYodBPm4&!{?f{DM<_`Q~&^ zqwkh@yPXr7-J}=<4{*AMnV?I}GY{=K%fb{c-Mg2?6l|z>+@sGcd1a=%oynt7mh?$>`h_x=wfUE4 zSu^?F4ehuaYh!Wfe9Jgge(P#rU|_!cjK0b0NQBANs*%z9D4zW|^?H-)jjTIgk3`9%3F*37l~+TLPee_ZE;VfXG$&qJ-QJk%p6<*^D#6BaUUXk> zSBVf_S?R*4MoDNVt8w~l%oNzygz>uXY>}b_ndCQ}`mdt&bMA)7t_?hBHvie*C7LNi z@01w#F6#xxkD`0d*9uyAI(6Zt2m9T>o{H!=-zZ~#-m*aqncwH$ZSUT5uUd~Z+ndxg z^d)3zo;3VQJ^$+~z73_SbMmAf7YXa{e`;B!F(Xw6ZRxD5sKjKJdx~6Ct2NhrYIuX! z)?L+P(OWC+GfB_opiz#?8;f-!q>4hVWHl}}frrA5nZhd9m1SN+w=g zx4RsTjuN+h6Wm{0${kV)y9en*fJ}ebs|UiZG-zV^Ib(Gq``j&d%X=W;fH&kKdfPW{r(ilu z>`pdy7q3##n#{+TiyrylNoy|G;jGQ*~#{@Hf{J0&5)~#a^=CkqWxfgt(l|#brY+%mPX#G=dnz^iME<(3ZLC=qB zUoaL&IZw|z({@DCuV<9ZE)F^55w+!#@AZVJ9K&Q^WAWpY=BnE(z{Y#iBf6NI5^N;p z<@?84W6oQu^-LPohiv?KD&l=1t>`|Hg-(8JxuqFuSf7O}LdAKF{z31u^`=Y}s%+x7 zZXqAKitKhMnepYWKWLbrYGPx8S_zk5HXM^(`gVQ>i_7?~f|uDQmG9U~_IV}+7fQ!c z_qs*}C3A_}yl%8TPR<1fck;#g9`SfPgE)qOBnvdU@3qwO1eCt4?ffBh<($u|o&1VK zw_VP4qqT);6-~B=KjZ?vBfHVn--n2R zw4)l3EvqZx#VfQvyi`|UpkS2GDS$(81Qcrr*K<++q8v^aA0$ z!h1tsj%}ovloRmnO>_EO#t~ioAL&>4R&~8Ijy=9CxatjsLVqxR;GWB5PvsQ&OTncUU35m_8b;T5^^idI#$JQHx*s3^X-g5K}a(#*U)LVmy3v`pSH| zg-fPy;_Ta z9$Ym)Io2EAXLduV+oe%fwSTg?XHq&=A1u&m=$&oMl!ivSEoHi^%v96w5<+T(0`4>G z54Ty|6Q|?R=%r=xReLA;nPpbOrnN>*dg4!}yD&O|P2@oF?a$Duo}wI1-}#SRpAhFYIaaqkwA3hH&?vVdNS2m)2hxD6O9z78CN{Nq#BMH89XLKf{5Ub4#QOpH zVH4!Xx*+qCc@O#*=ezh=$gr?UAVBgIr0uz^XI*LvRB0GK>aSA1B|BQIDGq|H#g+&r}~?Vpg>uznPB2y|K@!mms8v zk_H|yUFBY=G_g;y>9MGLvn~hQO27_>3+TMTj;gu})~ly68&v7pHkbr&J5#zA!%1sR} zX8&Gf-<^-)O+;_6TlU}UEp{_r$F*bQk&v{(Xz`vUN*25DaY(S)3!#~|9)vtsnmPke zz%|@UPfB{aGSzMnA#5bm!>|OI+GOC6$dyBpJ#|>l2>h90P%w*e582vnDn6iviuIh~ zb=u$0TO0(TzD~PLn%Z1y6v?aK$0TElFI{{R^4v?h>_fY~4h(Cf| zb3~j@cZ7-G9}+{7yTF#=cm?C@9rNY6yaz-=RTLos-~{XYF*cYnP_Y9R78EehX6!w2N`81SnA>6B{zEC> zs$2wj36lRnaT@9uG<9`lx*zBAyB%yn^vI*&4hsA!=<~+S6ph7V+{FIHd9biYEHIe; z_diA(;~agavx0-mlsVmA+f(9IlM<8OtJA8}518aKRYb~K+pRh5Rd(tBKjWIh9&qh? z_xqFmoBJg7vUQ>RTgt#R67i&yT|8o6h|hv#KEe znY-WKnxz{Qt10aE~Jm*ryKBi?ib_ef)ih$-!(rUM30myZ_4)R5t zb~~1r3F&55ko5BH-mT2`b~nf@-2`uLO}~Gowm9H8QXAg9G;ZkK<5a~!Xau>|ZGiQ1 z%eQ76^Xr65-ew5og0=lKqwKOqIoFEnrQ6ao$#H(!@>>(?T$4dFFkuttuc!P%K$ap- zI}F7TCtFj^_1$~j+5_ux!v)mVM#0lR>4NM#*K3zbSG#N-;h%Z)m$Pz`;) z)NoN`Bt0v4>}Qf&iw8-2{j$aVre#9m1SV?pLq^t>r^h7xHrFyE z`}ar!haW2ZNfR37Ee_^M9?s=2&&<5hsiyc7U-Z0tnp z7{PjX8ZOQ)yJ0IqmKz$vd9m%ZdaRvfzi*Dth#%k(xK`nU+9iv%0;;H%h1Lje^yWGC zGX)?ukFbs5ipmkZxzX4!NQneOc zwAw}^dfOaeq%2B*T1QE}9&y$+OD|3;ztL~lEoq{}1LrI8JR&0aTlgzxQ{eESYC*?& z4*bbTE#0d1W5JI}T~A10vf`Kat}J-fVLM+(4>`Cv8ifncG%wGJletvnrs zE#Yq7$F0 zP{{|RyQ;j?7w1Zk9@9Iq4>^JLHmJHgwe^1Rv%1{+9To9AMH$ygs)OsYq@E#?Nc7Es za>Dz0zzuca{Z??9Z}*&&&lEl&Av%~xa5tD@ELf`BlGVAnrKJF}Qco}ofUUxrjR?L) zU^Q+;F!TUQ$%-{sP3gQXmr*^vA;@pWi#a`dngNx^r25#g4mophA}e+?Ptx!kPm<0*|IyP8By2M0;D^?b@QOUc*KNS*rbW@BZ$QUX$y z4~!oOn2XC<@K+#@#RX6r8$KBjSG`S1F#>}FV5tSi^lFDh=i$t!75`z;%z!i>br3_zGu<E^vpnc7mI z=@hA^WrZ71=S_m&FgKWLOP39knM_H#>9T}Pz2OGf5IOX0SDvjb4Z=SS!z}tRl-))T zh6D7(s@r2ft5{P8WSWyf)k%Sy6ok;&j`KnT?u7TAU7&U15HVG&THrP8bag(3A01A@ zgz1{Ov&Bl=B|DW_HpUKGeDBBJmjevJR>I&*Epdi8)MuDZ;o~5EZU5svl?12}j2wiK zi}jf;!VF@G%hF=Kug>j=%!A2i^COh=Vi3_UI-A$w!~+UGVw77mjmyzF(8Njwg2*vh z?NUB``F3&R7H<6=Y!j~WJpEzYd~>^zM+~Re@QVd^%RhF>@+bqUC!!HwaZWSPMp~!6 z)XN3mia0d^AgvuG$2s8GrSlOVit4n8(DNGIrzX*8J3d9!F|o&*%5F^Oq$_O-H?tmdjQjbvy=_or$cToobc8Z9L2woCxb?UUiewQ73cD_{F zpvu`c^iJ6UMXhV-<}0l0+h&x&c6KhOQBKa#<1L>Q(rtNuu*!aZ;N$j4fRitB%f`x1 zyv(CjelHEK2p*<$1j4E_`k9}O09NPHmq?e|H+*Zot$tP)Eb8gg;`8ma25>x@$czbz z`d*xAt{p6UH4gC12YSC&PIfGPio7MTVBU4?wujV)jN6!2EHP5zAEJ(wUu{jZ*F z5P-wsjL5uj7v0d8*A$j|;Tqa7XKcRriVahvc$#~s=>;MoO_`^KhR*-|OlTALF8OWE z6)GlwffDKqtOWJYnn9@5|qzpO5qI@o)gK@eM>tA^G#Ct9!OUVU+$X zjq7OtN$*F$Wd#2D;Qgrz<|gZNS^q*gTBm;T0XZ$&;h{ZezlIT@ z*ouq$yfQfUY_8hR3FX52nRfR$MClAslhWKFqp`?6o6AQb`S=_KSoc(niJCmO5C{Y( zKFW3%zWMKdID_W8=zRJ&ZADNzrlTqnQ}-`Us{%UaGUewC_|@G5kwyqD^u&utuw%!x z&8dYs0mRTW1q3dsE>gzJS=gAX{oy~s;uj~I}HAnWt!2HfISNv)VvJqtF3kL)FhE?+*ywlf1yU%YDD5FzARkF0)(s@%fF; zqP(mQ?g{f-sA=-Z0cyHCB?@$YZk$;Gj=C8d7u>z_O+>bK5&uB^9`8=Z1GLg`F)|{; zlAcv?d5mFFG80H@_BnU!7u(INL(+4f@@oVhrw}?dcLT^PQwBTRTQg5Z2$>X~tC$73 zJ=u&mk?$X+0B!(!UUy++MA*fwOey>^0LSYNA?)JWfM@IiJVzP;LLV6O{IvU;;CCm!gE?$T8gG? z000R7DJmV6Yt*6Lp6r(zNJurAG_k^Fw4vX-+FKaN?2D1icl1u5+9iG0;H2rwbF>`# z5-Q-9dj9UW`F0d}wbRNdl|f+sKBSP^YWhBe`rWDc%%yN0M)tX zeBn2d%v&E1aCZPIe0BqvR5m2=Wvh`WFt@naDS%S$nHv}~nVz=dJ2M^T&sUiBtMP!y zRRu!8_D26sq~fp=lWZ%{+9pdpraPKfK`syQ>Bh~C@uvz^K@3Z7ma$$KS&+?c%Pgx7 zW@T6aVA@9lM1MESiRbL%wFUI@xkfS%_+mXP8uqwI{XTmnHS(Rn%;_(k~Q{Y7aAsEySXI1#Xm9Y7he>qn7d@VIAcjzG!un+8Nf zUh5!~o_+=}J|cNHMJls_MAF{pyQCT=?S^%1!6F5i&{bq%qv8(U;Nw52=KZPml{)Js zxKW5VU|+}w33QhqFnEN7a+eIOw3`$FpcP3y0+=5`{m&dFs-0t#!HR>xg%Y9v0c*aZ zN-R<4M&+ieQxI{geJ$bIo%k8We&Dj`^BSY5^IQ6LTo2lR9{`3E72@PjH;mc}?|s1C zS4r=A$a*-)zmG=N{R$-D8S{8+s#Y#phw~P*jQg}M$a+beMbyg3{kB}Dv@ua#h|jqA zBEX=^9e2GD+mOVYP^E+{9I?J~Z&s zTwf!DRNKyeXCKvT?Dw7$VhV6eqoqG~*@MXZ&A>hnx$Kt6SLVI4SgT)uF>TV4Haj&E z{uFsG9d%S3$z|JNDf=?-&i(^jp7GXeR!A1xZBwc5yR7T+&a_Y#Mh#lSq7+Jik-+=I z?Zq226#LH}S_W8sFh&D%(QEMzQ!s45E!_|ZCib@ul<#c&Om*fY>x=`ARNPyT0qtAO z>2cX4dFe8$`FQ2l2C0DCZ|&phn{Nk7tTPN5>eFgX^4ii3Hr&>p{waU;ITt5`Hc+s} zw_1Ixpl_94MUdIM#aeSm_X(HC*tHN)K0A(q~zP0Z_Ujp%HO$jyi_-uDGrz zUU@nlaDeL(L2dO8h#g$5T&_)*B%Ft@`K)$Y&ZOluWK)=OkCx~!P%AC*`VpMXZRDg{ zoLnyfIH3Bk>|APIxRVVGJpiFLN=Uy}90y*SD-iFUv?L!lSR zwp(i;Y^V~eC)l2W;Dv}0RH_%*MS>CPVz!E62~a4a zt=+yve;}n6av}P`u3Vgg+hHKPH=j+|h$|GhVSJdRR}#u87$}NmxagwMRTE)=9bPGitpLnc+i5e0o9S0d)?f4@1J&8 z>{z%9@n4MY!OPCm-v6epT~L{Z$Lv6JB0k77+{VyTpXQXBHR(I{%z`OtZzF6PPDf;eATVnLg(|OiVwYxI6C@ z{;VUbcP3K9n|1J`7j>edJRZgcVP+j)@Y#QOUBLG7$P z*%N^4qkiK0&Q=rhlf7p{7znA~|7o*AK3yvoSvOleCAqg{P5Se z=gcXlDhZGp+5%6c>|)JH_vx(aH=xwi5i|}>DF}cyV=0~`kfz3MKd8GE? z6z=wCfV=F_n?u}5!P_ly+jl6IX#4!m)5U_sS6FuySHD1i3R(sJMWzvufS%h}ira~{ zT2eJO21;Oyk}Am>DDuFlZoqV0a(#d}4M~-we|%y2^Fv^Fdsn%0R9z;k^)7kweke}F zJKB#tvD&Jo-Z_OY=jy$RZfE&X4l+IWHa*Mrh)c^Ko;IAj_HICVAl&@TdjY!89s-0LF~kjs-MB2f*pFE$4ZvjsNK~3H@O{9GD`v3fYz3_w10B9@}jlI5-@U0*=RV^lOh=*|=(O;c?O=M4uPt+0=X znHYotf-^P1Wp$ z;=uq@sH{4I33*xM3cMWqq>+p80Xgz`lI$H7v1NyB6-`h4StLnM zbxxV~ZI&uZYQTS=Z!;h&ZtEC(ec%MpXBA9bA9-NwNg5w5W`dTCkil(R3#)+MZ?XT{ z<9dj8k|Ien8KmFPDpMn=u%!0vKg2d*azvwlMGAQ>!z{bS8mhb!xDS<}(4J0uci#<_ zbxDX=l&6~Q!_~LbB`ouNOVG+I8zZ7RPS28Ma`Rw!fkSVXJpG_2Suuzj)oUwGOU80( zr=%w&y6vodU<;v%7x^-tLm?)}`7_-GB&a!R74{xCv6M#Aoo1EyrIr76-p4aV1Fe+* z^R7|j#96RbhGG1%TP)8$YloliMpj+LRU*w2R*~Zvh#E2VT^BH>03uTRN<< zCfE@Avel7R1-sVLl;zDuF~&+VDOltJje%)4H{|{e+N6Y3a;9THVfz*_5G#Sy8cB$3 z6S&-d{8IwIFH#)a1zOB{%yHQuyc6q(p!ipH>fvvZk5a$#W&650K2Mwjj(ps+#4FKGufKP>dtO(y>AEI`MDSR7Q@4CM;n^ z4YxF!up-p&TfX1ZiqEjs)XK~1BVix5NAP~P_T~~5g@zg1o^c8+jjYolt|eggNg7r1xLPkj$VmX}F!yPF7iAE+X8m*n=Od3A zxZInfKTmdkDp%)SUJf|J$7=PzDTb&K4S2Nu@ij0q(hX<(!w^j_z7=W8Zm{q!Z4UT?vY43C%=}^A*hfAc%$7hiV1~6zLW(0XQ!0N@T>5A=Zr}M!_);d5?;2|qE4WWsx>@?l2WHg7r8p4= z$BgoT;xR0+>y&XpL)z2yw2(%lg}+YhG6QL#`AuF@LSW`+>d_+fk`vUFcs{%mU<2%~ zPvVw_f8vU_m6{PU7He&+id?p^(Ylags!`S55GC2@P&9IkvizbN^pGU}3pd*ky=f?x zhpCFXW@e=*1g9ZPXf<|xEi0fk+oG=YiTG-1WJ^J*>QXdzQfpAp3R*(kUW_R3xKB&J zSwvuoS1t~J-^KspDOtF?15@+{`8di!%PDzd0Z>ss@-Sa4R;Lc;ZIjZkL4~dD>Ckp( z8$5fnAYapB6-;LClA^{=1Di|tStp9aWzqMm>~k-GF(qB|YD|)*=1M{83altx?xS9xiLL@9YX|7CwW^bx>>j`dNJr1`V1*Ok6tZy~A% zY##jpIc*Sfgq+Tt4xAga#|$pv;zbeKwqBkw4Ig1W@QyYaj14<=5s(QdruA*2(A!IK za?|$Hm4KG-5qKb;mVrgWB8?10hjT|?huA;vxn1y>WN4O7&ftBrV*LF$4qJ26gP_l; z6_6FAuI*NgjezxF3o=V_~4uAQZh%p$j$LCF}OcLA;I<*F3p9HEcoYC1o>#RIP{Vymz)ZFv7yq% z0vlrOgMRtVL8fiJwo;-^RWOreU^m$pH&J&SJ6{GO#Ae=Xk+GzGS1aBq&ZR8QwccjX zcTzdAF*WFEyN^2Z({DJU8p8nUt&`lmPNRK1-XK_{(jvZ63L42x^-wk8qTwSg#}mvR z8PJy5M7HZFO=4`I2pH7Z=_4&6wKAbI$1=Ig{%J;gX&zKW>1~oN0fZ#f_K&7>_4PO} zH>D1@$<$;r^JjILg@*^eu#4)d1|;h{EwO@yHZuo!LK8S}aLuLASpXg6{J%5=L98d$ER30BTwDa#fwlsoY&bnPy#yDDE8b=+97L9 zsBsD5P@Lh}e#}v?bZJr_mLjl5?59VH*^b}ILyU!blzP_vKpp#G&suVG?!{5H3%teG zK=4;WZUJ}AQ(3V7=YvYPPRf)UFKdpFW2wRN)AfNu0a>~>w+ZPT;OO%Dkl8lny%GpT zzQS44kpN(5#s$>*spZM_xS-UOTCC{2)0dilvpT!bF5bW*o~%57NV(tfSenY?;TF&P zK^2_Idu;1XyGVNN@VtrrD({>au-nKQGFX@+O8O}Y07}fn79&>w6$|YGwdw{rWimoPglQxDvCxbfblr+yvs0znqk+X$ zk?tNAQvn2VtEr!xc6(t|E~C~*+juCud+MoA@fi78b;+2wy4Co?d|+ty##Aisi0mu5 zF^i2F+h3#ql(+t(3?Z%WbZ$}Ix;4L4K3VvL^GO*6&kR#{vP1aF;cX6#RDrHo{o|4j z(K<(Pz}X({KG)YPz$U58eL;Da?$iE?A{V6L!M~xs#j_V;|Lg_uf7!oz`2c2!a%GQm z#b2LJivmP*ABFDVADVlJz_CFAPcT1#mLF z0W+wYb0ebRgug%VJ$&P!+Km)R(GReqbt1+FCGAbK(Af!7>ht?XrCG=JW)+!J6a(n0 zEH7L^J;P z#eO-PQ{Vyjfo%pWEm2J=(3gl(0J2gVfIk##s6p24z`SQJQotfKZ-Kf>J|HixbFD-#-AVZv-4?75Hzs#QR7_6eqYwry$Fpwu#Rq%OkeLiG4B z^ra+#oLZQh3lK_eF5&roLt28&!nvY zC+dQRWVCWPq3d+Mb&8cZ17~lB(MA0JHg}-8bMfGfO4@KwV1L?Pv)WZ;2;--wsd(qi zHxA4Q2whVke6#_}qE_Bqu64^zVlfoGLdzQX5lZnc+QuEwg;hXZlv;d0vP(Gf0N5=KeS3SZN+1NrZW}wOVST(rzHv9IFF@!Nv*tBLN>-AsX9}tXxKp`2B>@o??6 zU6dtoZqY08pkPwVfp!aos3*{rN{_x$FS!W(HirLojFbz8+u`fWQ*A&*WO5aMxCF8} zU$!wPVTPd|zz%?F`+K^>)!#FlvFvT7;cI+Q>3_Z=6#F3hS%$q z+12a!4DMl;gZ%()%?K4VA;`=k-2n9#A@DFg4O5}5q!3}Rp8+Y5LC>+wV*{lE%%7*8 zm2y8b(c!jxDY!&|KcVNqkGjZF))+YLkHB(ilf;p)z`i#cPG7eW%Tp6?YdFuZjZ&!mIU-1 zee^oFrv#os_rF^9tH&uNi26lhVxo;_r=jScVKB_+=Z+iy`pnOE3>h4yBlgq?iui#k zvB=A$XwRrkY3}Cc=D%((Fmd{jUJEGxK9Kx1Vm5GQenG)BOhkjlE|cJIcDsn;p)7Kf zFJj+okxBXTbHHqT*A1oj9^H%7pt%=GF9r5m6a#F8K?{hR3>71LwN_!4j96>0cch5XLC`b9ut zOBBZn;7h-Qx}VaJH#)2LL3LM?-_AzA&Z?P!Zz-j2NVs@B5jw~1SPf`sJ;3MvNWZQ3 zhJF*6g?{d|VW`s#YB5_j(!ioQ(&eZnLCNH2fc;3#>yc1%!RweCE)RgAt0UHT@vB(D z-SfY0>9s$Z`K=$fWgQ1op$1A7a;K@(Yw6Z=z%={xgZh3eU?U4PRtDQ%sG>9?nEPr(m zJB2kgfSx_muCN2j%_Hg049IS;4XGyBU%C{KZc^Tdx%uuk@WNv`L9w8=p`jfGaR|gX z*YZ>prE?FL6&3) zmacbYfZlE%8T<+qqEV6-7p263`(m2PssT#VDT$Icy>jWqxZt{UO}N&8hM>BgHJ6&* zT}{~T?%y7rOW)qwFnD@QsC01w)Yu7+V9dF_#}l|DCS&D5rJEleN@|c&Ue?c4W>O{F z;&ajNs85Dxd+O!giA}Yn{CS(+6ZHB>(s^>pto29n`Lo%aISH8s%rFw zW_0y-)43IrH!x9S8iB^LdE5K>!*X?t4R@f}Tq$RJk>)5J+!qD>#M^{IKy{YMLrFV; zX<8f8>i%6EtU)JO9SRVfsCx;2Nm;m`xt3$DK$DyJjLcgvYKoyxz<{9 z;X%FxP(iun1)kLzP~^EX2IXgo2D8h9OWUT#AYDgmEuqP9Fc53FV#pMD*(Uo{vSJCv z)YTxjVMp2H08cNkCbMwa<7Ic;&gNLIQVrNIr;G8z0AvG{Vb65g;`4y#khn1qKCNa- zH`N`Ct2{yL(B%hG%H|t2py0dd!5FC9xw?VjxgZwU2Q7h}5H>FDcyNifenJfSq#bM} z!42$~aTCY0(t)#)OCLwpYk*R9UhQ278V68&tQd zsg1n&W>$0Uh)$v9MC?Um|H>baI2ZL3N)^wF(^de{wVYBhsk#!YDL<07iZj`&Ew_sw z^j-1O^h^^u^bo#+AR(%o*4@ga@qPVJCRhe8kYqKzG!Sp$yfMVRGj5`x@wvRRB4FPE zoABV*j%6!vNG7D4W^Qz@s0S?al|G7de6-&z46r`>?i(HLU=E_L4}~c)E(~bJ1p)=^ zjQ1l1s^#nqRD5ORv6RbbVKb<`I@&AWc@z~e3`o->yuub@?+Vs?Aju8mgk%+T@`bm=z zs9#sefN4idK7gjA#$k2TP#G3c_~y-I>l9>QD0w3V1v?IR0+R4m=@Q3PdzL%={($ko zAK=HHp3%59lA-{rT?z9R-swC;fG)}dm8jKR=*@fm%0x#{^?zeI!KSj~#toxq@EOFt z0-)2Z=kc2&S27!tZ^(-W=0L59lx;UkK(v!p(B^rGO_kOPi1E#fgC9k@rOV-J-9W-` zj7%9ibLJN012Y+@>EcL3?2{!R)33IiIm3W_tRHWB3z=5zp2sYRW!J5e=CcK$CmuH? z(9NPfC7Wofk}-*|v_L8X8W}%5de4N?#6+F-2$>t5bw{9j-TJ zmiN?;#`pto8UPfLxnw-sxvW5IIu> zoOKx?_wYr_v{_uwFbg~Zi4@|q$MNW)TF3NM6Rf?0n%Y(-6Sh+(&l{__s%xQ+eJ@Ie zvWTaZC^{M8d&^{^-#lg#V3&vyIsA-UzHcs}(g*ceIlOT)ijb1+ zJaVHSIhfODIjBPam5kwB-fm(QS}xG|SiBu%?Mj{Jx*aqw%a(BoHb(YIyDckSe00V8>#t-|=&3BmyY(>Urs#ThtoMNgGl%AiU=;Nx0v@f8Mh zRI(0*gZujtCUhOG7|1+D;cU_gh=i-d)G!>|lberwSZ>2}pD_FZGo6e@e(}i?C3A6< z!k52~T}_CNR3tEOPv%wX2D;j$&Zasd7L}@Q1Y-vClnPnjeBKa}6z?5#Y6SA1T+_xS z;#X;HE73ODv~O?5W3|6XE%&usDyW*6HbtCtMNNpkJ2Q;XO`A7_=~61TD7c zBy8;=#>}NEEKVO&9;lBG#9AI- z!nO_!?>nNaJnT&>R$a+B7{eplXZXWX- zQ#yDGFFdC%T9iP2yrhcEh!oLQHCb*_nmbT`9Va64Ndg(7bCWJNxndP_bR1aOTWY(-oD8Pwe&h6K(~ z*qle=4qlqF6%o)+Rb~=N=F`VVQpwsjV{cg}wizCy@ImDz=Yj|Me+jLkjKD6A^=b_V z4=b3e&{+xJqE(Ny6cr1!Hk(CkF%D)bo}h(7LyBD|epI~)8nmn;yjwQ-_>7Dn(5mXS zd21xg6rNekXhf3VUSMKEBNvVz}|#1iC`g5mKqlg+K`6isc_TG^Z7#MC@P});F^sx0D`J zBYMzwvoDqaiVeeCF3#fCiFtB|VFD+jV&!R5hE^OYO+zpUDU~^jxjM4hND*a)d}1%- zVY#(e=AJsKyD}D8*EsfWfKr35yi>?zc0XO!@Wx0T&!+fGfbsLGw~TUV@fuEZ!A=x$ z6*tt{z{-+S$r!0LSS7rWShmq#zCE(VxD?DcRW9dPoJ{eFG|u44g}QcLYpGq&H%N7p zF4$JHzUHze8^Vb#OEdR0nuHuQw)#Yc8U@+3H$JTW?3{Pw=g{L}rtP`M9Bcc-obEsA zYsr-Vb(O{$Jj4YOq4R78_$h~I!~`?oEn;_)xgrdmA2;6nBWS;N6At5rYB?y#5)W5^ zCPXNH00NI?k6X3-HL7H4cH~pJl~yge2nV+NIxgsi`ZEP*^9WUIyYeg&FEZ1o64XAuJkCmNVy<{lnZdz5i-sn_O_ zWnd6{qArt=j_C(XLVTWyv}*eipBb~b%$vwaXhCIWfiymd|G7Q3vTgG#uOTSQ(Q1Jb zZmpokn-YvqVf~GSjFINRSd+B0XoGs|i0qz{OTk0^R^B0;(!K5wZ}n>Rp9$fvx-p6; z00+|6`E*h-yq|dAfNfGQyaMV?jP?9+km-Q<@;$a~U6VU>bFBSmzA`cRWQbgUh}lTT zklHCYgLJ;9JTt_v+Td7;+^Sci4_5BWMYVAsEWtXqyWIrcyK`*Zw@ZCa1WCf!M5-88 zNlei*kr#t!Q~O*Zx&Oifl{aBFLk1-rY@7j(#C$hK~T6*n2xBO(Y;c%M%whzdonc4 zDFo`rmHB7w(%@|8v#k3x>aRx$pigp$+uQ*h_X@V=i6?GS6V_~2Gx6kjQsTyV55TVi zNO3kFL1ZGfash`YJTW?s%77~)<$`!|NdoYR>tJUBnM245!%o#Ik*V|V;gwjcub@Xy z_1S{-8!b}3lEuXe`n1TKUl?iAn$%o0ru-((XFwznNwzypw|ZMLjjo{i05P0~4R+&1 z-fM(+jn!wx5z^vCke{>%-i(#9|1f}+rUr!wH=Yx)?FIlIxx2$c&2A zgAYhINS7cj;V2=}-64&Xbi=zgbLZZ- zo{+IrKslL=Yn!=;nB?O_iZ9Fo*{S!xr*Bqy<_6SMjlw|}xKDnUx{TpvKbL=afWIn6 zYBx@)?n=t-)&0lN=D+c*HufWJ@9te&(AuN&*FVSjS9hTtX!o;JesEd-St`HOiTxN? z{p-efPi@gYoho`scC5_oSShW5f_3oJ!n-YCyoXdk6Sjt1CJ4mQ_;re{doD zZx29&lJ%r5{cTGE{-|oE{sRySajtu)r{8x0`asQM-3-*I#1}WA;PnJt66;z7FbjuS zZ$=azkN--EK9zPAGm`- z0@mp#Q^DWWAsBoLt)kPe>Qr5#X7bQk9L97ae-}+ew_gf^IBQoZaJWp&D^I^fOoCJ=o>XCr3nFLt@<66RLSog1MKbLe6X#gQ5Qc zjVPUb_~~$Br%QuRYY)S&^XeIs-EdXVu-S6Lj7r3KWx%C%d1+skw1tTd+wjEG!IUhw zdq49y&*~l0r+(%fG{hBu*^|H^s+WJ-BrLZw_aKG_2P9wfyrH_de zLqxbP@p~5?`E^9Ca2Rh-O;Myl6U@mP_Q!2>d1X79(LWP;aDZVY$QKBSvt-0IS^($n$;5@yav(;MzB14&HoEOQIM@ zk5fH)cZF~Ct#`ebG#jtv;s=*)p7n--Q)x_0OuXRU8b*<4AMbdHCdp zheOwdbf&5dD=VwDDmd}0yS9Q;bHLg<2q;1m8a#4eSY~iG-=;@~-(7sW1fX6Y1H}ND zo0ks5ef;Cidehe)+pMvc>@7cS&c2IKN$oCpZp$Gdv+VcM!Xf;e-DtF5J$O-jWwmO% z1yc)x3)k%BY+!MjLkVQ4AO7YdqqEzxCpGWIb#QBxeP4M|x*Zr@v-W9HSKTeZ1eCHX zuWJ}A3~Tvfp}s4ObT^~J!kgA(xi2U+d609Q9?1Lk1<|0Mtp;Bl4cbm#%?Th@&=>$VNB?G&xZ%shpTHn2M`SIi|F z*)w;6f#N8b3CeJ!>f(P0g1)(4KQY-Cc{j~LxtuY~Q|stwD3q>ySoRb-ZmOTAc9{0u zefhsPn}5%CZ5L5ORaI4&f$Y#V*j-#mUfu78Fe{YQv&4kK(T#$*YuD~y$h6diqb~AH zGCR;MQz1KAX`}pUv6ZmRxyvn$EYUsq2Ht76i z01Pp89T)?}Pq4Fww#ymQt319R9bmQBmr@x8Pr|=%X6k+=NK!hz3@!_U3`^j-*uWPJ zMJ2%r(BF?j#ZMaaL9*~d<;F4t9tNHV*Y=!wTk7J)2Ywp2W)`WK3jcZ25V0iDb$=l1 z7JcnQLviH`SeYSbj`#%P$L*l9$bb1h3l)vz=OrVZPAbW&I9d;edw0~H$mh zr_eC3%V<`8JXmab&=`QA7=YbYt&=2Ng#nM$0|ZbS^b@k05AC3~djnc)SQSoEZnL9~ z;0QgsOcaN%!$PPgdvyjMb@ehyU?!{Y<~k4`yKKILFIkl|U74`^aXxe1vE^1u9ul_) zh6>C4HghA?+6)HHzf$>LFRLAmT3JtJZOp_XL(tgvPGS~pC0Z( zn2y$PRt@gH3B$7}Qy!8PJQ>b%3CuT!qd(~+om}hPYaKT7Dp@z}x;dTzSG+01-Sx(= z21oQmk}>4X;w2nIn%F<@7esl9B2j0;Ka3@EuoDvTDV<_c=5D?FyL!2*JC*I8Fd&td zwB(<(S>xt#7y_MH{y}qfaKPuCo%xhZW83-%lsFW}Jp@2H6b%9EV4Jvwp@G}ryT@v+ zjaeodo`M7PCe$wVi79yr^S-T#+`cN4NeiI3%HUUKNTe?W``@H_8v*_WLL5TKqmeKz z1U5ix$6X zKhn&N(*}&kssu-R0j#a&C{?Vg({>rEPSV9iXGR5bd8HwfaZN*OXtR-g6>o7g4=b?>g;K1YSZtY%C#*#6qxh&lFa1jKfao2cK$)dI8mx832|B_NolY zI}?;+5?cO^KK z8Y$vrCy1?tV6C222?r3?I-oo5hlgu5pp4uGd80AOpD9*@%L)r=^pK~4CKnHrsN;-x z*jwm)!NPcy-*l>RQmMH8DJ?j0I;_CXAKDG=A;^g9+xPe6#7a1{bgQ^?MvUR*anU~X z5hp5ik!@=A>JV5x2qfoyPZ$O6ZH@2&_I%@Z-6#*$q86dYik@;j-<}6AA!n8b*w%ay zha>jYJn%XyuK^@A9S@qu+`v`G%|*xAT)LFj9&50jm;U{iU!{NrU@of(hmdJf{2H7L zmBZTO3+;;1tUk=n!-0=e7TEa3w_DK4;TIo{R{FBpM>-!pC2vWH-}fZ-*JBq>g+U$9 z($+6_CAXEI%a_uSotLkPk(-z_?pC569E#P_Cn#6fWj|f$&p(r3tg}4WE@)BKmg~)a z-C_#jg8=XOiC@8e*O8wwv}`{6SPMNb?dnFB0m#R!UB~bvP20Q}5liw{!KDCTDm}Q7 zsU)4Yc+WB<$@=K2+V^`(eay!uiF-qn4HrUAAF(AAhFbY3z-Y3RT6QLn4(c7;<_x+Z zO5{pp%()=k_~$j9()MT*|A3QJea7<1iAVo@BjG{&l}pDvcpma!PZY6iSkzG^k~$4E zSF%)vBmWgw|7}r;a8u|e6Bz31j+8cB=G^9P{`&n$+*ZgKWj~J@&ca@4$Ra;cYIbR- z0sZ$m=|?LDyqe6zjG{%J!4yNdZE1gLNOYSu@vnJuA&bN5ky^V=Zuh|d3aM&o_M8X` z3i{BWUx`9O(lZypwlM~(pqFGWRbAEtG1Dku$C41XEw2j9R(i(-8Rn5~7C=O?SP$Ob zT-|B?Crc}#1Cid#;}0d$ZfrnvsCtN%!lqni;ea(P*i6pumVyQhPu3^5zheN`V^O;VF?!IFmddNCPr%Ea_jkKY22JTXJzcbqPNDVFu&1 zYXL7`zO+lxDss?6G0JrO(Z2`$|C;bW*HE7KGa_S48>*qJ&pt8`7td7V3D`*9r?Hr^ zbWsbNIDm|!TJl>?H~4!8H?q=_`4ra0W|2$xi{G3E+&C=JDN0L6M@RM)I6g6{kc-pt z`aa)ow}i`fiQc{8q?Y-ivP1w@#|243pcYvK>fm@4l~<81i}jsViH*|zd+`Tx&nHmC zxws3rzgJ?2f_32lE;{P5nnK$ugjH`*fa}>3D;FkE{W!J2m)V0}k9zeWrB7+*BLCUH zzK#ERNoDG7MLyq`Y^rI>4lJw%wO0?2$C}+VVF=s)OA@g>s>?z`)%D=&&=q)*F66KF z_W*xRcxsT!rwISX9>V$A3m`(5KEU!$M0TWZ$yHY9cXyGb=1t~u4~`f{;M~qbo%Q5;D(y(I@^bex0SyW zIGGY3JSmjl^$b*@uWQ6fvfisQJP8U6EIq+iUFJA;cIadQne;&RV$T@mQ1T2{`_~($#9taBEYwEKiqoY4&B0urI4gENvGZ5aoG` zSlAKcCNC?Po!<6+ZC%Z2`haqoW82MbKbb#Q^T>I^rq(jW?dRjq!9v;PGd&;FIJ(en z|7_@&BKwr7PMnbV_w)YqA4G_W5@cj#&g{FkZ->oIo~Gg4KacV6j}Z+9NzTs{*M`+9fU0GWCIy7xS`bAednC@p{2PjlD)1W1pP~ADb<3 z3;g$-|HB`gNcP_*%zMs$Qv&nm8e_K(ULkr)PRyGlk~%BTdPm?B_9_?Y+K&oJUB9p! zV?VuXU_ijHGTeEb|Nd$SA|I8j@psO2>eP_D}&p-u{lhfza!PA(J z3ZJyaji{d)jGNom5IzPS;u8m}xx;bn}y zMC8K=eV?V&EVAiiE)uD8cZo+x3YAZ99}>cKU@)|LSKQSbF>mh3xd4&O`_ucJvA)t> zgci*5aAsLh<$v7a)B4%39#RU6Ur$+KKIy(UqR5r1`z;UV#KqY{RA{luNPu-_5jdsq zQ&v+|{Yv77J=!Vx7DAGb7V9f}u+P8%B6#;P+2<)RAK|+yJi*WGmBhUl3uMwT*Bjhe zlT@@~3&C&Om9hVP(;{~O`ly&WTLQ7`_Ul}v>wq$3Yh$##Fn)yo>gy?a)@w(!u|Giq zr#A^69v;+~FKR2OX+n0uKeLBKL^$mb`s{ln65ig}sQlZ7=R56PO&lISGgxP*`p*m| z6@Ardhgp+4b$5N3B>(yj8}BJtMH5q4?+LDR=4c$CHg6cn?qRMEk?=yaAN5RW&0&7> zZzQ&6EzDdtPt3UHL6h@|l|`^n3fzwF1p%Tw}%PWnnpO2nUz?6i+5 zmtFpu!OYCeer7OcpZ$9<*WJD&=bWC+he`h+d4atNI~{pPlu@)Bd$2dx!`o|X<-O#e zV;)`vPAe3!KJAMf>o7lmdAhAxbNO_1KjvZ~`mTZ!-_=P`SZg*+pG?VN8~%xX6E>%Y4zdH7uhfEdE1dqB0GKd`#YmAFb9ZR`lXfzBlwgPW z;2>esMWWNcV1I%~B;wm!TfgkI2}+%krxCO<|A{^1G7d`1C7#Nl)q4-1v8wzanQ!j<1N7l=c{@rQ`^JK=q# zOh&LsS|WZZo|4WLbjKcBNjAK_vr}MDjQipa4`dzyWq`4CXP<9Z5NweL3cLnDXSnOW zbpjkZiX2=Q3!xnZU6s|t4#-KG|3kgx#Bimt*Xa$5%5}oB=r6R8T>Mtng76y1V??ie9+bAH(lfM3d0y&0` zL31xgJqP>`b;~Y`22f{Ss9QA39rPUq^HjJoZ#f~}2~h3+?Z(9EIEPTD@8;0Zfqrn# zXI&p;cMKR<<+ssc=+fyXmC6?eBF`w$I%M!87^nx)zQ!OC9cgK4*;lfLy}-%QgvKTE zu0&``LQ-=2T<3;@jAEeA@QumZkf)pAOxgf&eQ?2R2fIvEXW^wU~J zAdfU76wuz^678$X)CElyle=`*K+eGK==pWD>uCq;qT8_GY~`iob^XI<8>i$PSCj(5 zGIFLM5|k3+ppt2t7W_lJxmh_h--q2bO&RL~eF*A;B6< zPd^DvS!p3&9HOY@0q1JA=WZwUH0{&Yd)C1R*m6#Z_I-$xWlt#5(Y%N37h{`lsj)83 z{}0vjZ{d)L97UYi9^*&Z+}&36hk0uRW(S`4(|Zck2fnk1CNT}Lb^}roDtO+@7~kvh zb`;is09(OaeOe5uOU3DHFW&;oh@TaxOQYOH%Q7nl?><)O+ zDtxhfu@Qry%AE&3WG-Dm7!o>6?ox+*ll9=KYMPHeE?xp&)d0~GmIE|tqST`G=IT0> zW^R@gO+|QrPp-m^llF58p>oBv<(qMzaM3wHBos2`|H{0;K8{ZB)-aa^mxv_eZ>y9Vw?}bjmXGHfrQEm{s%0Xg`Zw;1r z)9(aDKQGXP%&pIVqcY4njSR1Qa#$Ctx`4h>59Sn$c0vif^liEDAcIph$LYOt@xAU$ zoyV9Hd~^yGJXAAax$%jb8iVm%xjo(TvGP*g>`qhZmF~qtKZhT`pB%WZZ6arvk~ zRbpClv_XnFxzT0?=#hqFCMFjm92Bn5^cP>EYdbDEt*g*RRdJ;UHWzEXQHkn}?$Ri>!`FF|!;4$VEr|B^~;v;7fnDkmc1v{qPoeMx25`pra}y<6f$3h%@CAqitR6;ejS ze?Rnfk#cna_xN2L7Y?;w9zNskCTQ9*R@A5{J^1{|_#Nui&eDziI_T7O`PL$Q{gg^>QOVrW%8M%uZ_zeN=98i@Z~Nu6^FTsp>nsXri4hOO&RzX zdsU}pn=;^6fv#(hUe+JKzt_TddUBL;`=J@)S+K-WO!0PGD%5o@gwhe8l$?_gE9-Ql zm^!7Z%vdH&_Daw{%5j{W+NYM|DT^E}hd$OUeLY)ytYZ187)j1C9f*=DY@5X_9*z%E z^+bK=TG)pp(n@<{YWtc)%(ltj#7H?ujD$hVfuw%18GSTFXr)tVB>HhTX z$m%bY$vNy^pVN8_(|V?Jm;&MKAjya0$FUwSP8;BiEL6<;GOTW?dtUzz(S%~Keu!ly zeYYq>82v8lrrK$HU<&3=<&@&|+l`r-65O21nu>C0!$imX`6#93D4P{TX)8Fz_gHjf zO=NY%NVDa>wb=aj>Vs}tuvu$aVHti2*ZTR~#>>c(p1TacZBO?=$u3!(yCgw&<1bvM zH?-dwjLlcE8L(T9*s>h&Ow}qQXec%=K{c`E(cZv#_t3wIn4Vbc z$)@n5KY2i+pz!{q*lFf75wG=m@xMhs|1hwV*FH#I7}yneKZ77y}1tQ`x$He zC+vb8DjB@ksdn~81mGHC&B!AdQw@K01eH*(?vT?F0R#X*-A_OOClI4q%;Q8;LS5|q z$mYp|G<UY3T^db+8>0AXU)Dt=eb!k*ekY^{wRuA zP!7f*)Qs%kWlLcBBK;Be`wTxoG`_2I&llPqN^&Vj4%NI+5LDSl|F*OAJU6xWL5o2_g@Vg4K^+K{NjMteUYeg8gH& zkfKIgv}ka50mr(3%(u^;8j?Yj+|n2cQ(~hvVImJINorZ~A6eVK1oro-r%o$>6#HaS zdi>Fizw%@o$iVASrfg&nwqZ)pG12v2%=ckX3HXCEQsQNB@`}Cp`DHXrm~hQ-F{#`Q z#4G0;fA_f_j-4=C;P|7Q0CCteJ`x^y3(>rwhFKNoC>-ct%3FXi`u>_pqfqKK?i=9^ zVE7hB0qMb9cF{U35|Q+e)1+1MjU|nOI6xK{r=vWpxfceB&Mr7!Q!+f;kH z!gk6P*v6bBDUU%Wc!J0HZbI`}M@IXcH_f+oJTf4}dMgo!%<%NU0cI5WSjnEe5fvu?XyY{<+sI_|i-t@_pNss2o~U5oWPxbz$2%s=kh`*!3Kh$mv=Qdk$* zCP$7v3bD8qs^xC~#~#XoWz;g{&&-S$b&wc^fh3{&p#piW-xfC(DF8B15{jB!svHJS z+gO8GU&Dg=<}JBKE|RDu&!*aU!~6BSrD;7Fob&4xEDIqjQ2`SnlFB+Dr3O49Zz`{& zbD?@V!Kz>nQDt`Ci$@Hvgn`H?;Fq(AGEUhqWhM-nI>A;8haHzbQ)>l#T8sLa73Y9) zU&(pQlf#LYMLy)sx&b5E6qQjv{=;>00|rIndv2_dr=nV?qHlCh(t}xp{-%uss@}!?li1k z?-cYtfHo@{oT@IV5Qx+94`tSgQ4I=}q{f}YF_+nehOMPw)V3{A51zDTA0kw`h$hg>hsBeiz@_K!nE|3VNtnqmMdF%Pyyj9-idt2KjSbYO{==HGJytRc;AC(!av^VCJf?Yk!GYd&S=_B%zJdm zg0n@i-8z^!hSspBf1x{{V42-v_+hPpUZ?TUG23cCqSY^;naW%5lL_|WUoNXv=Wb20@)NiD_4hD!A; zS6iC;7>fJ-5%Mrl&otUXc|t7OA}1KC5Tl@QkwgWnP$LGPYM<>*d#NB*XUaUww-@X-Nxel=daiRe`e$O)w&L)zaE_i{qQ%@(P`z*UVm;*PBr z1ABjL+!K$-X#=J#*6JC=9tv~JLiEIH%54O<%k>(LF#(axyUi;( z%E-EAAC23uL9ycu>?8Ji5E)AguaC-^-JIm+YqE2Z`lbt;l$I<(*)+9T<{(pHEepo|2U*6f@E!vMCga zW!**76r*tZ!yms;4ScV^t<9s#z#K)s+FI&WOWHtJeqsW)OM?PdUt`?$iMLr2R$_|F zu!JnfjwrmKX7zQz@o;q-e^w8muDD%B`^QlgWyY2)iIh^3Dut3&C>Agym7KL>k9O`@ zdm#-kC=tGNoxM+9p(#FZ#?nD;_Ub{n+bv~t$_)@(+7^;Yi-Pm1Hz0bEaRNjr=%=v`-QF&HQdnhEJl4!&?68?KVyfHuR z_+i+w&re0D@i!m5RQXyKgfZ&#t8Q9rbc~)lhH0_WZ!=nZc-oPaPbEyIj zef~1VN>t{NeO0QNTX#!UFM19nN}R%uplhsJT^6HzS|hkv*|H@lZN29_*x#qZ(qo5C zfanN%Vyc_vX{o50w<}xE5{tXOTyv;f^gB=CjU{yxYTLQe^p>=@Pdg}x7h20K!|WHz z{UY^qb@3NG-_AkzAur~DRH#s!!|^#ZU{OpB`MF!pZCqYX4I^e?EvOZK@$9ZnMXJ&- z9FnbB$t~O;G735)rW7*UAtNFq{wiqz0Zf&&R2ff56B1|T@14#eiA+0b%yJD$mpm8o z9MvEo73>zGDL4jeOq++vy{skj#0sb=Zou)~vXnRYSixrv47-LHEOd1GiB`uhj1nq+ zcf95;6g6r42m*zf0UNN^>wkr`IQfv3S|5WA! zfgY`vFjj7ba)EH?eeQSg*7bh(Cr@((p2eIwqVHEl7P8qi-=D$^o#OT)GU8`73VO`Z zEKWlfk!Mx)+qP8vt^1=zbhN`pcigv~D0G#^7hA|F8zDIZ=0%CV0w9Ga5WmGlGa7Rk z`=|SEh&t(unp!f=*zSOs@yS7^7V=1s0XyWqanq?3#e*P?%#@9k8^Z(4#wUFjY@0$j z-(Z3u?n-|`h)<7?;QPnFL$>G5R14~4$$}<(ta;&Msl6Sv=JCNMGsAr8Ar0nhgSD`_ zuXT6MYW{&sm>h1TcvtSYMIhI#Yluk$fCw}GtbB;R+`?V#i8(T&yhUe-J*0bKhhO^h zZRJGqv-joBVD9DwPO^yQ6>EB8Cm2y~3r3s|oh-+iN?44wdW20J$ql~*DegvY#iP); zDoF9Or&%XxQu&c`zCT}6{nfG{2zN?U!mtPPXCm|tSziZlPQ_?Nz4ZWO7yy+bFItDC zZ?Xq;0h&S*`N@oFKE7ICHNya~9quH4>bVT{AVbpe*xlGmH|Fi1s9v}1_eq3+Rk!0C*)BQ#n{b9@jJ&n`mK_{*M0EBK*J zg`Xbu`mEBa0u&E{q%wFi_I7A=_{LXNKiF%Kp-`+hU{xR$NI9k21YZk0h- z`h$1i^|hH?gmtk(L}^_a=X)p-$>(dfaxQx|0Lj+Y;oPq1`8))@3oFaE)Vq(9GiTQM z$KPE`ydz-t`B&~r;&uO7P~xU`ZX%hh&IHu#^$M4Vq@h!hq0rQJ0`WiVID;f{&1d=f znKQN^Gfsfa-XaMWYT_9WCATo!zi=~8=4}aSVU@Ucnzxg*19$<n0g_9Vk(*GtfOnQU;5^pU0uElb5DR}_w*JIB-BQ#;5lMiG71nu5VI2h z#iyO5wQYr5e{wxn4M*Y&1BDKbC9&*?`ps*i@`Biq1b_kt={bV)(w9GLg8b z5d+{uzCK{bojY3tBJbCcQn|V)g>wBId>P3l)rwkZSpeqcU8WkQL*kv7sKK}-b$M&6pC$M^S5*j#zktU`4Tdl+B$h<7Q6jvw1|Y7f z{3LUZvi4;lBE08yQCCk~cNcsHQpK5g2|7qN8bs5%tLLYBgiC0PMcp`}O1!G^wH{Bw zem=IfgPRE#rMd*=8v|D&Gl&7}kw7%@d6>=j`24adB-3Sf=-<#)s8cT{DIY-DICznO z{3E#xTLpJ6OeFI?@a=Tzz8xcOX*J?*2YyMAuv@`XH$lVM^7CuVUitWs9t9@!_!aQb z=5h2aD^34;)Rw_f=gx3z5O=~0o!o(TrXG0RJS7hK(EC+!GW*+0sx1C7t7^1~Z-7Pn z(3yCh;J9Xkjy}7&F6b~jvr&Y9=P{U0pZlTmV#UCuiJ)&d?o2Y|)jjk9G_1b#HdYtKROQ{-bzgkn~SU6>Z;Ir&B_JS{r<4C7Ts?nXL1 z_06QTSVQHsQq96?L9YPFP*`42`y}=2bCed}il?YCFsh7{ zbAmhy3k*m5(wv92eHJL!J3cz&M$cl z0>5I46Hq*V_i%5#*wi08Op-bRU{Yf1u&3xk6Ol539H-6U9p2#Zer0}3o+!*3Bl0}i zlDEkuKeA=RJPL{SnMaCbMnpuAI$t8&;g_Jymlly@wXWIWB{FV_j`*!5KJR#!M?fML zve1b_xXg?U^LDEe5!ed<%}P`W)?d$uYEc91D?vrbh6p7Zj|;d`en)ZAI&@^e0j6lQ zDt<0}TKvvg+^DCo^(5LqI;1sL1ho%+h6FQOTNbJq6ZO1S$1tBz=~lQ>dJ)+E8>l{Q zd(eQK4OSMX!VW>8EE_TpMJ?}UXeBWRv9LSmBuYe3Ro2eoU-=1bqFe_lexC+Jc=g}{ z(7sU5V4oWD8DSMT!G+e~`yPMLO`k9;0`#3xZ@fD1yf)7II!S?l18UBF=Q9;1+uX_U zlzd31Ygb%k7uf$Og3g-{a;yeKdD(J~fe1CR;xj+;;YUr*2W!^ByD10<)uXje2qsR` zm=qsH<{TPAp3{OCyc)Mii4d`rwN&j;$b5%HGdG&&v;d8mgZgPC8?A~U45aX-W zcuw^uy|0!+wpx>>s8)wNsq+N<%SNGh$H}pU+nRhS>pz@@Z-m*+NRG|(;FghP*>We) zCjE;jE99rr%4kPXZqh>c62dw5E;uNXYfb`h6Cq2gWo`pY$N>aABLd7JmBEwiK9Zu372vSIuw|nUx?8_IajX6)3!5HEgeT!B$y~AyIVbZN>SU> znVji1E_`QaXRvoO{;nV@sS<{M1mOH@~Fz{21?(~|(W$_2bEJ`%1Kbo^7BFh9JmZ`cF2(gWEublD z?h@ZMAzaY|3`q_~HYlVu1izL_9mC9~TfBICXqPj1=Di%42d?=`=sJrpVG>yOy-~WG z&iw56L5QEriF;A}pi-U!IW@2K3bfoAC?165IFwl@%9RWC`0)|$Z$X7wS>g3L^RMS) z-+ue-Jk0Q5{571F202`?pRN5MxnE=WaOud8rJEdyEPon*_X zy$VdO`)reL*B@oHOSRi+(>aj$JB+FIe6?&k`wU9WopvcewV%KpTRmQuUX7pAKpru%sSWhltx(bQJ?>TErJaT(K@4`|60=1AK&>_LO+6)AV z6qrR3a;gHMQIXq$4qUTHJyT1Ba_Ru@%3M2MK`-Y*(ez$;>5s$p><-gz`IV*}kI0C- z;}pB0$<&rhAwW|xbBH6W@{Iy&tlcW(@#;akDFs3){d9P$@;PH0pgzu!R72^gJIC<& znBDmCd_>q>cmHg7wOZ%bULwrHKv4B=y5BS0eWQ%HnRQ4N{Ly9)s2q1R+6h!55aKq9 zxXU)+uh#&ZNysgzQ8a&TG$}9HD5_fkS28m4Y-gZE=j6#YFH5M0fj68r@!;-5Ja?1Q z(2iusMpBDtx0>44Fs#h9ps%xGD*4Uov|$sLZ=H3wSgz36E{M&b3Q^VSIq?TZ;vEQ1 z|8NL6*HmR*ouv9u*!jB3S{C}L4(#`XBlq+A7U0%{`*}zPv6owy7W(E8BxnvhOziEi z*05Y|AXKJ%mCGv&W%+rK4m2PKB}lo$z~84>SK*slg_3f0X)fZ0v1e1;5{Q4|^upKa zuMUusPCr&(EUm9aNN$?&G#nAr9!H}-SwgN^AzWhGh`)@>f&m?)j5r)vRA_8BOS?Zo zh~9Av06n)c;B?)0U3dIE2JoiCh5%Gw6sNii+}I{cwfL(MJ0PpuW^6pans4lFR>h4n zk<9ge+wsHHt4GCu6KaR@j$dL%e>Wl#pDcndUdw^lX_UEPH7SsUT}QoDWIP|zu!>E8%OJaKRQ3A{7usoH)bhG({&%$M$Mn^OesCnN6F zS02XRL?KU@-BX%$Q9!Ta;Nn`X=zr3h-pzNGJtkf^AAEWycXN^Gq4BX}@(lZ+1eWAV zBz#5wqEzFaqnBPq_R>lE-X*w_zMqYRh=}a^AFqh7{6@T|e4p2KQTdBE?#`IEa8Fqn z8Cb}v$XQt4w0tqV<{)^};xq4*wc+C0Y_sj5fBKdt&YW89(5z{Af*JXa+=Zyp^2cXx zi|r<1D@SXWhLmJtUZCpbKQPVyeRZcpNHVxr*iH#k0Tf<9cyI9nKyeuXM$_ z_AWvihFU>re0Tr&$RV4)7^#2GX#adnk&gXdm8oQjO!;M0&a){PN3JtaT4FgKSm)>(-eU%}&^ksts5{d*j75X-+``#=7n z{U%y5EBC7~2Xw-bo?BR0c-r|^#vgm0C(g;Mca}cUM5K>;h_WyDE+Ma8MAvw42958p zBWKF`wdL8p`CNypLk0Oi3;~lq(MEsol=r- zxA+ET3qZ@{o0Bpl!c#hXEcw>)e&aHCp=uyKf9swU!umXEnB`e~q$~pL7+B@toJ6{f zXe0YEwJmSs_YbQQqcP!c(Ql(Y!W)TQF0}!dE=Zqm-s%>fKnSY3LHe4% zEvxtlVp!-n4N;sEn>Q3}2lOWh$M-#M4)k8UA;zDG@60Shf+7d%4eLB$`@BC*Yd=>v z_mVq5Le6IrqJTg|r~nZZ*arW2Rv}QPSO>9&N}!Ov%@)%N0t;V_llJz|@@bsZ!95d7 zys<3>lNO^;`y4l8+x$`ExN)ffd@gGee09d56g=D(FL6;k3}1{BLIklj-|=}Av`yN= z2*C(p7;i<1ibjx%khrLM##%c7R%}#{0I9eE#=1T4&5oM6d$Z5l!L-C6P9eYFrrAh@ zvu{6DT*5LC;mU8I-0o3!F*T}{R}Stzxg?UHzMtRM1-CrJaVX=-+}-Iz10*%9Lr02) zIm%G1e}~$qhUw7taTHgy^#V=g@l%bp+00aX*7pa-;QnXzphtDvl$`PlVIa=j*#yGL zVnvH>gOwAsoqSl6ke(pyxS8%(z%p3W` zMK2ai*$)orsM|pR`mnrOf~<_BK262&ft%}aoFXc?H>y-3e@p>K-zp$0Y*mT>O$2vWIIYX31OQJSqzS0t% ze|Z7$cjIkrZIu{|KA-LucPm~3cjdBi`;8jpka#N;vZM` z(!41-T45xP-p2~o?Yfu{fqCGM?T0SlWF@G%Zl?L?yJCX@ou6&gKbvmm8(I7l_vZ`Dn$xZV*HfcT9VxO*OR^f2D|~LXc1SkxvL0FF1&mnsqw$`+v75W> z0D8IaQWlru@x4moh}dsW^;lCX60IN&sF*{Q@B%34r`o779F7v@9P=xji)M)cMhUa; z;$9&ryEGt@$pSDvSe%X#CqpV4-KoWJntqg8av*0CIZ~?{WH!~4tEl78sP=yv>2C40o9VuXx->p2UzNyOOjX92M2dd02INh0EaijYEe#q6#Niww^(pS^ z>T0V2jhd4+#+?lKEOpGZ|3t%R`7RGb)Yq3xRqsh zd}woVb3^N?RntwCDw2;1Re{;JDe_c1?*9I3`hZceXF{9Ab1}l)bYv;tR`%+&T&S2f zmny@T$9nh+I11us-J<0xqp$rB_cCn+2w0o0089~j^Rf|`8=p_mt$|!+hWx0wK$vcw z5le%Bd?JMrgHhBV8~!?Op}nP$%hn@0JW4dvbdYktX+zv(%9H7Xk>7bqHUOG>3PMa3 z%|3h5eZ@W6EMv5(K?Yd?M8>27q!_L@zGvmL&xF%+P&K8X#?B2O!J16UyL3`O>t(K~ zR{NSd3u$n6Ty+~VHp)qTO$;HqtMYAJ(xl6sS^$h1~?Npe=mr~POq;SmxRHq*7k^^ok4C^d@$p2oZKRv`fz?OS6 zwAbTnmu{|sgFVX>^#tM;4$UGeVM%BS{@vjZUmv7GVleRJ&Qy+2Li_|L6^Tv@lXnsH zU><1QqkVt-Q_|@)F&Q&6m$UgJ4@&WLcCSyU55ukFots%emJ(2-TXMft{l(X@8;*ii zt@`0v=;a)CNZ`jumbL(P6{^+V=5{(fl!aQExl3{D)=?91)?_|aC}h+27??mxqplH2^n5m8WKTW6y=ly`15T5Q@yfEdaSYD{M%#)!B}l})IDMZu z4D@gIO^`EKp5jA3>ci&$){ z`pdOuz0)kG77G^(o_O}!rGBfipET3!FvymH*4^?BcVtpgCY%SwwR)sI);KB6j*6dy zw)Az>t6imUVh-P1V4x{Cq(SuLqtyZ%0IMEYoB_BE?cd^!7g#=7LO zJE`q=v8&4d^{_&f8eo0zjeeYxdp1aIJVL;rJwwQ^ zv{QSt$4UqR$?0Q}+P0v(uJWBM1iAjD-*e6vp8Me&Cit6Z$Ivx$5BW;?ixXrFtu$UPInoW>CX8yg!%<kd$`d`VFQ%7>r-V+LbNHuaq1nY#6|ncQi@wDG3`QE~Z` zMdN06_;#{#y^ zEo$2cyA+7kk_j{4>xpr#f_@`Oj>PJa`aB9&g`Z~)_Ug}K0acysd}K7V?c|}WW(0^VLaXcsNc}pV zsK!9^lYh)d|Gbt{HR(twpM`$3AbZ|s>!2QitgjZM3u;@KTgQdzQdPc1Ag`tqx` z{{*(~$AA$yuvxZmu?G}^PSm!xw)_^8LpvBHWs#g?Gc@2l?Tt;~gaN;7JpJy?ZG=5} zvf;Oxe17hEp%f$=oXv}^QwyH}yf?dxp7S*3b@^_>ON$k1rf&qhOVq9jcO^9j=j^F3irhbg`nE&Q@cgP_neN47_mf>H_H$ z20ZB0d}PG%I$=C#44V{T)%hdk-FMzUd{ExA^qW}s%;N6#szc^1MMiO{cwNnRcdsmv zn%oHH;a~+rkvoc3arU_w?mu_U!4A(eCA)6lL8c3~3*(o~hAPR*yO#noD&Jl<32;G? ze|%yh^M~x%SVrmU>JWbJ61fL6*)!|myMO(5U-@)d&71Q|_0aJ9rE#n@Mo~pfO=Qmx zT{kLE5ppNUC*y&Wb^S4e`s`byK~|F|&>^SXf$lgpaX%DYfbZrZL0GnAt!*#$M}D!+%7{tAWB3X;9IN%&T7 z5v#{6Y+u-{RVFNHol>F~xjRlo!KUti#z?1pID)~EnI0!-)8B13I$~v@>?YOQ8haZ< zccUxh)YsQ+r{MBRWG``XeGPDy9)!^2`8z2V#ZG$M*ceI^t;E0$L}rPh!>u*oI7goAx3UooPu$%T=o-Ll<<2tIXWr{I($2>#F57( zgz#~CoD?p!W9zOA$rIb@ay!1in#owCkQ9x#p$QX_+L0J155Y=3b!j4 zG-xU>q_{k=p0)kNw4h(*ZQoStlCw&6U2zJ8J;?`oFICB`1pkN_-P30+cE%uosOaSU zKE9Q}OOIrEiGw!{nxdw@3iVlIw)O zF^5Pu8n7Xrj+V8AONm%KW{AqC5lDNydheB@wdGK&^z*Yj&^C z_H3^Aj0$h`3)iFC!o%v|fbRJe%V@A9;Y2-o^xm0#N-ny>kkm69x_G~N`8HCT@(uax z%y?=-Yg~uLsQFFPVu=`qn!;b)=soS zm>RMn`g(A83cX410KPVIknpGlav7+uOj;HNp}u%Y+Do4fu-^b$hmG&CdkkvJWIuB4K! z`L-;X7HxRfj(hc@HR*~N9*XyU<XBWB|alY5SiDb>TH_>wL z`KB=oq($=DTTFK|1YIU^RJK71s zE7j>a0#zV#nXaX^v)>e%60#P0S^cVX4R1}AOat_N9H!)%Za15HQ&fhs4b@Z4x#(ta z4>oIuiSIC33O@Y4H=L|nJBA;?QlKqLAu;ncunf&hbMC6Yt#R3#)QFeT4KUzFE~|b_ zqWo#la4-(i$FEOK(O>(D>&WYU-V+09dEMMS>~=72b=2iY!<$zpuf2ZRM?GA#U8MT{ zTJ2YT*sNQ;FrUtCZC!id8&wa=UaKFgDag%9v`1LZ?9xC4#WBwRc2=q1!QyDNA;nLG zYLy+$ts(=kvDNpFyqWqLq*kt1S+%9hdIcFQONUOF9U8-MHJ_fmkt!c}imJ@gxivhi z)Sc&5Ii-TymIb7zyOgJ(b2H9YL}8ac46yClm6{y#hDpP9bXQaLH;3rQ0X|y?nXO8#xGoADtr^P$J>xnEIabW8@)i0>hi z7Lb$sg$5o%TG>B7k9fm_r}{&in9JJsh`i8uS0UF7_8l0`y1{K_sHI{lDZZl|K>+xx7P zk{$3)d7x-0T-CX;2uKuefj(Wu#Jj&NL>N?)~$#yPLb15|hwuZPdU#k`0Gw#6KAO;Qbs7I&B?|Stb zJSY8ycmZXM=;xW0I;4}#syRKULo}d9oXaG5OZMgxk$N;$BB(&&;Q@B^uPa$0WVn*r$N% z5as`fxcI-)6o*uy`u*uK(RaHJmwj2jR7oUj@z;UGeat5#dN8a5{M2NI>w9wHZPy(t z<%0)#q0IN?%{i{BNyrUr-#a;69Xaf_W%lM*Qu3BTl)GUQ9N|=dRS1Y zh`QC^7~%S7(jxJriJ^E7USn_++6ucyXzwSl2Uure zd%gT*#J=?RLh(a`8H>0!tAxdyD*_y~9+Lub>nM{MdZh+Z9}K6woYcsLp_?9Hh}P=GK?)5KBMj3DPt zcWc?H(>cvy_-sAztD!g8-wp|wAI{9N7&`z7yNVBhVUaeI5Z&APK|&H!xC^l=Rih>t`XG$53fwoZSEmMvF4npue^ z8jm6EI6oH^6}1TI_)u8^B%%@G=QgAat9^tl`%C5vfp$`GX?gkm&oQXLk1w2q#?X1Y zxgP*DR)qgww!S7dV|%4?3|7`?Zc$dV@VI>?leH#u3Z0G<-tu?a=f=GQQc;%dJ*W{6 zvDy?Jp0nKPj|_=C`z!S1Q19y8j)TS8gQ}db>wTk{3F$YknWnd@Z%eg^&TXu=C<^%I zgv+ed3{<1)gp5bD8~-m1j^>yoDDB=P+5E(^ea3CtR9`VAHA?~UhK4AKj|SyH1vCMH zzui_pu_!^M^K_v4tW%>)%YJ}WE&>J5JE$@rOlw&mb^snA~^bKcg>0B^pd~U zY@2V{v=k;Z&b0R3)A3W(FEue)uXeI&xy7|T+1tz|5N_XTeqp`$dv;6PKvd`-8&e~T zc@EdES!xY;$*lab@+m=PDT&782z1ykS`}*zm608!dk21=h#M4~uFkn)aR{|jF<6uR z8upisVrzDWf=zse`x3CdrUZQUwFl0ggnZ~HL}-$0Xfo<71Da)C zBU7*?`c9`@SZccz1xj-^Q9B}Xo?8*v<%Iv;MbroZ{6_C-YKIGU$#a0lQ)#X2ibVOO z9^@0`vsTYVuU%V~S@(cOyKFJ`{^ycI{!Sxl+GcA`8Es^2f2~0+mLFB4Yojzv{6}U{ z4#9n`UjLpbQlMS4Dr!Nqh?5!UqpkvgU2eU1OeR#_VgQP)Xm+^*%X-tZ76g?qgSaMS zzYnRqF4GDEeT)vr&E4C1#Ko7cru-mOnu}ks*TciTOD$FZ`z+O#Ci8Ov$;tsaR}yxg zZQxYAn-C|ljjC48^*a55WzgJctiE*9i^U_unl}PKDdn2>qZk96@COh0I35{bi z&>%gS_?FbQ2$1%L)FM%CW5hO+1Ev0Zw52!yDXu*kez#`mBSKf)dh&~9``0th&e(F) zgWxqB@Zm-B&?Z;lc(WVZ#q&kgyOv2DMW?@z7@iC&Sg zC0r>QQ}mRVTSmZBzS0wlR`PNa2*RL#S3cg6Lu~k%+^7}DSe%3_gl=8*2LZL3YFkMu z{|*IokpLjSc;xPD2O96w=9|@Xx0YseLg`x>O}F&(9RB%RrG2uQi%+tl|CxOc0_*VB zGS@C!c}*XxVyC}RX9i3co?_hjpS0kA<@j^bE1vUs#(g}a zuPtuu*wfP=QtCUR$9pg`AJ8Q!x&d0c5yIY;w>g{*{RirHqhm05G#mLEc|T`?SoiMQ zm}dF9x&|#{jUmNYiJZFS=Ai^R+}WW9ol2H1`3sWTxt;TqrR|!7hAbOeP>iKbL-AkX zLgLIe3_*@^bBBKStOG-+%OYhv3XlnTvzDXoO`}XqzwUK7C|%R@&R>__Ip`hA7=2rT zMcnnFQ&5$Trhtr$Zuw^PFEas41@Ibq5gSw$@- z0Bwnwnmx-MALlHiYnZgCV^J9YPxClNf;pxc$DY2=Pobx?Rn#)z)D~EZNH?ELx>FPp z`Jm8Zl#MJnme?LR0Cmz>XpsI9fXStr2y#(p#9x4XWNc_P^;ULE zf%Py#4Q30_RA#lzxeIj{%a&Zz&iN1|&8Af`Tj4>;lA)Q{H>^r;!c;&|A_i>D3qCQ)xh69s{+o%^tmG{UA{qE1v=OZsPW0>Iz z26CSQ4#B{Jn_l6XI@?pmvh`F-0cT)z`Sol!+ql1%A&hO{KCHj9-m&uLp4!9evh=MU z1Pm7ehT27F(^!Sz<`JugxU9pR zd375lELyDG>2d2q%Wi&dglDaHSbDS=rINJ~rxh~V54`FYzb{HQNi$h|i?sLXsGKrh z(sYQo6a9Hx_s^&nraZ>z163EogbH7ZxU?3?+YgN@!ipD04KI^fbEH9{KR}Oq zr?S7e`3^--ozVls(>DivPI<2EnoX#WY`pw#r{EAEsPrWkp;R)qkJsFO;SgCkBNH*2XpZ(etF zqoZs&cO3Ya95k94+tQ;~E4i}je$|;yEV(bF)g-KXE%z|d-Sz5=6mgd+6Y!l=MJ+RT}e6dC_ym zUmHR~rU&$o`;Xpd|EujY(1%0BFq^HrU{&KiYK0&eLPm8#-|d@kuE=qkxE?bo;0rN@ zuv4l$Am_@@n%S<$6x2_@U9T)(sQ$FWR{8Sxl3+8dt-aemdmu%&p?C@KSGq z$t`)BxPJR=i!pO)mCCo~d83rljk)zTcZ}vJl>$G~4LaoqPLGfAGbp6DxV$vlctUH`in$ zMl5RxVQ2RAiDO`b`OWcUj5-L?_Nc(lZ)-l4)sUuq_je4Lg`e&pCg~bzcT|cc(kiP$ z2AKE{g#+=d|zrP3fW_eVy8}aslXAgs)3cUV+r;)d9!q z!1C)$_eu8-v`?XYP6%H~(j$BnYwAVKxc;iho#RV?9=@{2M(oB}>A0%IeVB7CP&Bqg z_JZ3}XXno_Y-SA73o%3|V|8DQ>Fnw0VLm5#aL*LdZVk}30B>zQX@zUWC~hHHb|L?~ zomXQcMC5iHFeH={uHUo12)7DHnXBu}?;c>dMDP>jJlyvaNoD;1jyZvoB;pc-jW)rL zLE7fu09gLz%@BM*?Gz0o+b;n43L$#V@wNLN?Q?& zgaxn!*#f#WLD_9W^}6|X_`v2#G`r;%TQv&MeJx!Ly@vn5-pH6P(igtuKe=SruA-i8 z)soxr@2*Mk|HIRvulDjG(IFXti?n)db$G8W0bb3&ON2MP0qCYH&*)E&{#L;V1; z-?;Mw9pgiKO?@{z5pY&BBKskTNq}TRrfYh4_&?RhCZv(hLRFv_bNK-0Urf>8O75*f z&8$^)B6AQ;tOPZxyQuQz{gaBuKfFKV#{e{jA9A2jle+QGofLcJ+=Am+C#fkFG=Wu` zak#k6y>4KFMdN9D6M6vH{~pzW-Tc%y&OrKO5o%gI2--Xj^*wI=<;YoAt}SR67x3_V zJcj0^M8T*ZTVQs2$Fe!Ne;l}5QB$1iT9|e}w7dyFfL>|E4Cl6#bzSCqLj;(QOgplLdyn~UjAr@noowj#dhn=R}3y^J%qrZF)$CfR<0ZY@<)iZ7vFY^eV+#e zsZ_WjhgKsv@ietd43nrdDi{iQT8=abZ^of&&6qeTQ#vW*i^ zTQkZ7j9+9~zp-0+E@uC88=44ZT%zW#u~U@fXqZQsv>9e~tLJh0#j7MlYAeovFdC&^Y-T^=_o4cEOLF~MGfPU{9W7q&m zFo}NKzxhKn;R@@KZzy-e`&ZA7E=O<&@Rg;83CXTZTY5;!?QH3ANCOG$m>CrDpf_M^ zqkP9@eJR5uQvLgF;LaU~J`Zzy3+To`T^?JO`a?Fk*0Dn?(1?6Lq}P|jR832M0F_Bf z*lL~8TnT7|Ig_mwJM6w67I!vFh9#wsx{)Jf{WjP%6^=33!LA0@C^uI@*5k1)66xN_ zlXW6Z3rQkM!jp+3XtGcCfx*?Re`eiRifsY6ZuCjb+x&wI_wWKnMGlTdNi=6HIx!Rk2^@ceQ;ZS1k;9FU(5dUf$uNw-8FM z8JywDxdp=zl;C{pBCzt}s^0TUZffHid4#A&{BWgoTk7zNIndE6>u+>-WGM_fMgl?v zxm0bP$$iv{m$6c|q}tbGB)J9IABYB`nHI)v2>~xlp|F`9|2mGb;Kr$UyBQ}V0he2C z6Fu9*)q%A)1sT-~oxDxDOHe11a%S`tbZCS_Yl-H_vkf)+8kMhWEuYrNG9wo8e9J(c zK#?xRLi?H0L9L^`g)NDxUN9O)S>56VF;>@xw)$+Ha)f=@t*E1(kG#~SE6M376_`3N z9wP6zyx6L2?7~w%ADnRwI%{OJUJU<~jrxQ#khZXZcRPgFqZ9FdZqe+2o^YW-YO0Z{ zpUFJurZ)5jsZ7O3%x1bGc(oYwvQx^k>-<7+Mq6rJkwi$pABT&YB`VVCFuDLvD~VAD z#fwge5f-PvTmI5|#pHRa2k7HX5#VRR&XKmT z03qK|KfqZ5y6Vc$Dymk*3lcKbP~+o%N5A*V)5{yp{_a7$Rsq_DfIj=nZnk;nb!qkO z9LmY};TGLvj;_xi-{lB1H4hj(T+hI@yoQ>Hvl-alo}m2)7`9omMtz`JB=fMnvVEKfmba7h5|CAfzVW`A zT7NxxC>r1iqh?xBVcW`;SpiWdsPdK`SC7kVu;vg##9s+2NkO~z&EIu|y-TGAb(=YV zV(Nd%NyVic6%mUQSq|{sGG+%xsPA=jUbR|*j*kwDoMQ3gm<1{U)$NFKFKJuDt|0_J z0%Oq+932P{^Et3Oz|nU!GA>X!FceXOIM+aX76R)aRLXnQJaGC4Rd8Z}qhF+%e z-m8%wGb}v@!T>;&dH*kvz-@@8H;6BMa1F6 zsQTwzD6eih`pqqbO#7}mMueFU;vv626h`>t(nEXTFxMG^=s`Ldh~S>c)DCg-CqEqAMV(1T z0WLF`XTk=s=goI4N9*WZNE#!=vrp#NZA`4mQ2h#6ZA=MRC}YnP(_DK(*zC2sopMV) z-kRZBq=cQ9MM{-Or?jH&5WbIe=pa+`({;IkBC;6vJso-Qs4rPt&}7*AbF4AZW!B7E zx-W$9=2oxPbe4+-2C`q>zFeNU-;}R*pg_bjbILLe{xFUiu{^HtG#Z>8?I`bb?i7+YGjO9F6x;_&AFVpF)uokMAu`mQt5_K8QVwD zI0{*IE16nI@bYhg_4~3sxyxquDQ=#z4KXG=YFm~rT{e<>1k{Ku1gSqWa0N0^&U?o9 z5}K?T`}leLb@IOz9=fOGS)p~{%0B=2vdq2QS%N*)XX=V7`>>!wBHrmMvKI$DCD-P{ zCHIW?Q8+Wraf6rUz_bvH&7Lp0dwlUV$er($w;aNZ_;bR+ows+1{jqnbiNda$12mHM zKTcu}!`(*^*=>)`>k7Jtk;g$F5qTQgqa|#9+#`a^7NLH*WuCp?L;~|0Y|~*vxa3M# zxH#s@nV*E3<-ZAoAS|?rE`5WE$!@y0+h%Z2_3Vi~&%=KL+xPgDmiN;6H?+DrzrrmI z@B|~*f9~Sx_wOY#BsgEHQ*<1TOhzgC*!T8Hh7Xqy?lHhzo}>38V2`W2CWwIQyZp8T2YGO;Y2I@2|>$Sf#EXQacH&$CNyL!=s`ojwUAHH~VS^ zTsJERoHxJFdsj_ul~iS5oYacW1BX&@1!p1oG3Z6j_1=28`s%jdbheNL;pxFkEu!1) z!qI~16=Ie5tQ$ePsW3xAwbd_VINrx({i)<% zDaA>D?7cVW<|>zV3zt8bQz1_9vz?Ag#U(NP^A+reKT|5&Q%%*Ip`* z&8Z7Ghu4rxa=zAi7^Bw;ot^cApj)=zI}^#Sz6JtBW@`IKL{Jmky8xQ)(m&#ARFZ^z zio?c2oF&@t+-#h?kQpLq+Lq3lr=6bUpqpE*UvIaxm~2$ytgo8lQCic+viI8H4ar{k zPT!uzmKWAD+PEq}b~Q8BixIi936EL{DrW4kbv+3#4k%zGwOgu**tJK97RA7z4^utk z4RV10UiyFWZjkS;Jf7jTZy$H`)l28q9zX*vF<6z*jhJGBTSw_6P;jisgtq^cee$!Z zZ%Wj?r72V1A^q-bi^?_Uur@~hw7lHqF^Ro(J)xcQl%L$+$##yHhzM9aC4ko^rFa6c zMaKY9)jXOPyNZ<{-3N~a{E$SW!aM9OW>ABp6eFdC{md9U)Wq~Po9gu5!iUb{@3c2a zq)z$2!hYuc6NEdHkGWO$UbNk(FkFl2Y;8T)>4XJUM*b3%Qi=fNuFawL*B|mRYTSp% z@}3T;o}w{fjJq|QaoUj{!wMW_Fai{n|Jj1?Sb-BD-cAwjSXx@ft+xwcF9EqvEM&u( zs=gn>UL(Ym&-9<(}Y;8x%_$Tr%eSZ?8;b($M`X zO+ny#T&|r6#eQxaZNMznSRdD@tsJV$!FlZX6$4;>SuDB9m|uxQv#U zMIPM$h~1F4kMNe9hCctT?yNTU*B-sE0yVsoZfA(xu;K>7=BWvG5c%AzWJNj;D1Jgu z?K_`17L7DI0Byb>G#Sshwef1;eg{?Mzr~k=MbKsG_pn`EYr{B%6nV3)C?%d=K z{(bsWZS{d~^FEABgnled!3$y8{7ZK1cV=yRfvbX|i-wO*1F!e{HtjTsVfERSjnL?Dj;6$w6+-C zSxA$HU5e3C%)R%jlKT+$f*obJ6eIRoJONXUg7td>-csL%BZ`UG>&k$*z8{T?$z!ep zfsP8K|KHpVq~Ac|E0$^9eYY2UG$}W*1Q!gr!BJ#fXIT>>iRn=d%AfpnOgf~xr)Vbb z!SOJeNV!#$D!i?oo-%ga^umdca=DfIrVhEw>dOAw>&e3D+GFC~9c^c8o+q`zU+L9* zZ=g>u-Y~n|P+F46;L(^zXuZ!L=~2V{s{59NDjqx!&SF;H%pP-RY+razStdw5Sip=d zVx|#nBWarJ!QYs7JNlCp#4z$#(3b!#yG`&ril_|zUMF59qQLr)&pxBvxrr%D zNF5BoPP!Rf0`fv;%II*+ZD4JZLV%L7ThAY3Ee8pX9pqk$O-7W6MRg*5@rC-u6^z$M zKN)cBs@Z_v+1o_U_}1K1Xa{E%i$ zv6h(`rPbRT3>IdJy_(#?A!6-6e>0@?;4^GDxv8k1%h+zy;9RY4x@l;wC;i1_Iwi!Z zeL}xc(A2A57()u#sqdRDJKW7I#AMTi*L%u(L+!gLDPJfN8T0~AfS;_V(&i{e0%>=D zdFgJDOm$$YI1-#WTMVv%IC>-ot3PS?5#1L-r%ulu|3YL2aV_9bD6nM)xKFq}dq&QO z5t&kqOqA-WAcgp%DnUA%WX^5v;bdcdyNi0gH>HO&jCGqe`7+xcUSCxA_R!UA)Tntq+Q0hPK3~7wD2gADD9E>(Jf=yiu4tC)cMDF>1)r+d zxs@7?;?<714cYC2riJMtb0*ddb;7xRU8!?NjMCHhZcjVP5QWbSx!e4!$eu{BLhkb( zX$I9EE$ofC9|Q5+??V$|*orXjG^CP+a(yu*2E{(VLy5wIH9Z|$`<@9yq2~YItKB&M zJCChcCG$69E-MS1pKGrpNDl-f^eAwD?N^)9K&#O(oCxGQ2(Y4F8L|;QZr37MFd4?uF+K zj^H9l9=|>{b>UK0j<@v{e~F8YGmd>f!l!WSL$XU_P)nN z;nV3Ah}`PvYgN`2H(6u%LhOT!j|s$=Npe4-+MBHgv;b_w4;rf#2PHQmx4Ut(g06{H z@CmkmUlD=Z(8%-TkJoK`YhQMyBuFKfIWCjU?y#KPkes2q={yC2EmzLj^+H{80)Odt zGQ-~(o8UwDfo$=<#BbQ&*%X5JOO-N9x!Z;A0^V?nxJPws;BXyEhLxw<>5&UXBJ+xUtx z+}c9uZH%2nJ5!-THvip9%Vc^2lOPKW6E&fvXIkmDGj_I}1gA&~@}Xj^)Q7zTj;t>? z$~=CBgkoRD`r#76)qywDLKypydRF{K;^4vJ=}07fAAev(rB20EQ*`fz+ZDtJ@+nmX zE`do|^QGTyri)CfQ^dK14cp2k(wQ=U9GBzC7-vb74Lrxl)19z@;ed7@{eUa*b-F=@ z{WyNQ&jD?J(;HI~aj;2G(tmzs{F2yJ>1?1%Q_d)28$QA~861_;%tP2aQ1Ai{f#zQ! zMB=>GgCO4j;%4|V1-h#kD~5hDcu447*&4aZLCk=TlP!xY7n6&{3%SuBti7Q?q0T5S zFu~|0OhfBSZ({JBOO7`-{pO3XIkrqT=|6Ji@5s5>GVi?=6^ppm{;kL|_hUp}aPXBU zUyR-X?1j_vs_6TpiH;=WE`RQMtSzgkChOhmTP2He!*nd#*Hi0r*;a9$>py9m9|ABT#*^WFa$a5ppGSN-cn&M0J$#5proh3&^cm*2FSHYdcW!> z5|LPXP{^*7(L~12-Ir(0SAC&COdzNTu42dek699#sX#8o_R^tPk3Ig>BW!y|%1;Su zl+(GINCf{UoD{cvDVy70*#?7JI%VYjdE$MTCG8Eq$bc8%cKPeEo(03< z*dh>Vy}jFioqR#6cFs*&EK`Rq{RGagUO zW6;LUY_|u}5V_sCgPl0%9~3XKFz@i6_MS@Ad7a&e!9;Ap4{o$4g# zllMXV$I6~(HW&J6UmBLPiWO(iG-;=;9m9|of;p1Ao`npTy|)nbiv|a{srol1wXsE| z!k%otFSBpPjz~q7mZD&zIJWj1b`H6R4#d;^;7=k)f`{_+>GcS{jDJKg#;SoZ!YY-SeU-_>E(UU)TV>o=cf&wfEw&FZ9v^f#)869nM}^ z(~q@tld0p`dtC|b;8pakA4(z;^qq%TfB)ME3_u;qn6;Co?z3=v`VAvzgf5GL?>m1g z0b9|>*b#c22@@D;3Un3-ukkY*GWPGYv1J|~^8jKOA-$L(BG<8=9GtOisJ(@)0`A`i zDQ;UMN{ymBUToxx+z;&S$;L)gk5?~N-AYU%pDs4D3u zHMS3W2UpxTGwikI@3C%U%=D8XjEKr;imk{tZY(;&QZ_xGqM1?j7wrdPfkMb>D;t~E z(yjGqJ@>8kmHH`s8;1C!pPHmSwl{|xr>6&sb2f(FZ%%}k|14YoG|3;oXf6Ef*H75n zif=f9+a<3ho~-V9FM|4kLj!A)W*bten~8$)SHD$j!R*G)M$gfo1yzgVhkp#ee&%mX?cr=A z=CB$d>rrhhG%~yHvf9PKAM|~l!H-VXLqNZ5Q!9LLLPrvuGX3hW@3MWeWoz$?OWj&a iofh(Xq&Lp5=-=0~J?1T`Cbkd$xhki0DgA=M-~R`s+sxDe literal 0 HcmV?d00001 diff --git a/docs/en/images/rn-host-local-ip.png b/docs/en/images/rn-host-local-ip.png new file mode 100644 index 0000000000000000000000000000000000000000..8691d749e54ceef42c64a52108f41b6c028dd7db GIT binary patch literal 174828 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�ig2g}>e}$2?V&X`)M~igD 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 F{{REA?!W*5 literal 0 HcmV?d00001 diff --git a/docs/en/images/rn-login-iphone.png b/docs/en/images/rn-login-iphone.png new file mode 100644 index 0000000000000000000000000000000000000000..2da1d246013c02da44dec89b66c1e6f031f36914 GIT binary patch literal 36281 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 Iit73PKZ2C_3;+NC literal 0 HcmV?d00001 diff --git a/docs/en/images/rn-tiered-local-ip.png b/docs/en/images/rn-tiered-local-ip.png new file mode 100644 index 0000000000000000000000000000000000000000..35168455abcf864173bdf22966ce89e503711352 GIT binary patch literal 223128 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ΜfAh*l84%oh`z+4Ntr*RL)u6jmhMvDZC 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

J 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

C7J+xy{> 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

aaNqr0)Ow%&*l%(1=Vkqb~$)q`R)Dx0B-!1IL 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 literal 0 HcmV?d00001 diff --git a/docs/en/images/swagger-ui.png b/docs/en/images/swagger-ui.png new file mode 100644 index 0000000000000000000000000000000000000000..7f52269474ff41a5ee8effc0df548234496a99cb GIT binary patch literal 1071656 zcmeF42VfOd*2iD(Exq?fDk0QB=tX)j7F6u6WnDjYb#>R?(cN`*5$j?HL_|TFbV5RU z@4Y84ujKVQGv9f6X@n4hQVg6CU#8r-v{GV|AG;RpXO3vYRXMhow7{7+vQ-e#uJf@zE9&0hOVC2jL-Pd-cc^Yepr zxFG=~fCP{L5Fn1dsp{KmthMx*>qle%(AuYzPuS0!RP}AOQyfly>|* zKmter2_OL^a9t5#T~cf43>sTNXL9Ip7ipvHCW^3MQU=2(e(%poU-rfV44)FOA^{|T z1dsp{Kmr#hFjARk^XXpk%)n_JSum3;r8DR>i;mKFkWFW8ZFzR1g1mT9m;wnP0VIF~ zkN^_6@&qm(Eze-n!*Ajw+{|^4WHH!-YebPWT^m`s&r-b8Y*bN$FXJ&1Kmter2_OL^ zaCHe>MB0TOjB$7JqE>LZB8Nl%LK`^ho3rg1AD9&7b`X2qkN^@u0#}XzxD8>T5H}=n zBNL!VY8bU0&LPj0GA2F5k6OlMFfRfSEc?J@HeX6V_M$;qMO-BHsJeXUv)yGF3oxo4 z8CLejAs}#L`zDIv(=kSf8xpu736OS5*I{YO&=S_64eJY9@X$e?{Z`A!qM{yu{Be~^1v!8lK&R8~+qbW=vGMM^?}l62+S;I70G)uG zoSZFNwuFa=Z`!m8`T;y158MWCyzvI~5?+4!ZN_iZ%&1%+awRU2NKR~h6g~Onre>~L1!B99{9%;AQi6KVm1}E)3<_g7NFRRpD zc6)!v-FcD0;<&oXXe42^5gZm>-K8N0=S=7EMPebROWkE72ridL*sOFG*F`4Ms?}!O zIW|LYfxqu3eAVdnMvJ4P57q=vz!wX67tPUZG?;9ZR4VHG%CnkHI)mB4Um{{L9j9$J zE0YOfLql6j!xaIhh)!p=kz%Qs%VN?f3cj_>R!7?zOr}^YVl!wOt)9*03;CSk^1*9J z;8F+-E$t$2W?!@lnA~~=69k(p8seLU#i968Qq#&LN%%wPNg(!Nz`}M`eSdl|-(P+8 z)#smoe)sO(1qB6QWLH;L-*?}AV63avYLIy_vS-emxoz7vu;wRBm;m-S=rW#J~UjZxCq{NOcSaPibi>6nZJFFf9_edIVtB*PIo% z-?DPPn?zvHC=UMk_0D}Kt>?-sq*;6SBZ(fC*Is>FZXCXDbeVU=L-(!!>C=x(+T_D0 z?Z3)kCM?|W#L}_P{Qc$nmd^h34q4*PUa|3kTbAfmEtzGFNx?2JzWP>cr)FRp8jUr6 z=KA}V$Gq|K8zz^~jSG{%{o)IT|HRjxxpnK`UpQF{Zm7$>5thS0?AV`K1^Ln$3|BAz z2Ohj5#6vuMFY9nl|H>Suvk~z9W3fO-pA) z|AwB!pyKcl2{;K1E$stGwJJ~Y)3!-sZZg8Uv-@6kowiAA3qNJd-v{zP5|5j`?w*2KPCaD zSM+mFKdPwAIC&x~W_-&15C5g1rsi~Uvry_56yQskv~>;5Hj?u2_6zbggXKqKumS>u zT_pVWrn*kGqg&1934?=!_#9?iQ(c#lHf#R+wM*yKoju*C)#wZsXRBR2ef_=N=_FBC zTd6ZTja|nTI)fD)7Qtgd{=VU%!CVe3Vnz4x4fJ-GXcZj|t#ViYsO2kHifO8Ef81Tx zq^<&tI-kcwd?L!GTEmf<4kUS?bqMzs8On+ z6uwv%6zI>U5p^}ydb5oykVJ&|cXTM+y*zCOb$wIokd6vx&4>P^NOh+|;1l!2rUk~X z_AMWLdgx5a-ODDlRF!8I)^LQMMh>`N0&KlO!WA;Fr7x-(xx#RyHbBm za|w>rRi4SHRzGy#og7{Bk0*-C!vb;-?l@AaVhP=s&mC8komJDKa`Ez;o}5UUmB)@{ zv$z~O&t+<2NJe_5+C;^U8y6Sq0})8ht)sCjHLuaropt0`#>{bHOo~*>6`s-K?praf zAob{{JN8VB^=fZxchjMnG4vz7q0WMf8jRb%CWAhKIknoy|MBvqNN+pEB)S^6e*FEc8A)uObm{u_MRk?M z)opO2Yf!@GH=ma<364NqmviuycRyBY9g|rY9R5u=-}~@}h1xC^OX5kRSwZzm3zI=^`_Ee%uW9jN-h5ItJ}HI@kZzpjS60`!sH(L7ybFs4ewS}7^HsB|NXfD7cNC-b=Kwm`@JnjS;Xdd zo^NaE;0lGVLi%U_d~Mh9{Bxm<=t!%Q=jIoiG@W{a8y)7`R++!~y>H!vLanOoGx;^o zKD=trmtUQ&)rNS9PMpfnY}y3h3^ucV-}gHUD^2&0oxt;SCv=%V>^V3iIcei2#1>?~mh+qu=mUeG`?a62Rdkh0}unq9`1&+6jU!!j;gFi#s^!qeoPa-hU zGH#U~9P{H=8Um9n4cS~U=Etwo_l?fODt0#G5CeRm!eCBs-MUpOl|u9z*wPSM2XYV2 za`4AzWo5yBLP7!<ws^*3+c46+VA1Q>9C_St9u*1f?v{#$Ro1t+1IaLd5P;yx1i0}>$Q zmG6DHO%OQlA1}Z5<|{9*x@o46&78G#Lwq3bKX1MKg}vK-_`HlO}Ex% z?0M$dzpJ^Cx2;_qJ!RgSS@A!A`N8wAZO*T1)OI!gwD+{tsQO~dmWuiw4?UAXm1drN z_pP^2m$f9P%y5x8J=8R*SJ3)3YeAr2dHMDHDn}G7SL}A{U3Zz9a$oqziy770+c)0a zntwdAtf?aJ%tv4R2>k(>Ou}R`1tN(|!20In|7<^+KWW-5e>YbyPv|0(DO#EiA5GV` zRDb;8CvAGWtE-DZAYQh9(^xcXbvOmz7l1n5=|JZz#;n)(Zlk{LB6K-M*~3BquY!D6gVr$(r>~Ja%8SC;L=Z z5kXOk*1Fw4rA?SUD>~RSA$j)ww=NM=y08BC<$GJdZPePvCPcXV2F_1O$j!`&oHX+< zkKMawPJC8orc!Gm8QhgOuUj-FG%vqAAZ*OIu`$-p`uys4r`coGE3=F1W8!1RCB{qH z)||pB(s6;zJAU}D&%E}<-puI>=ZDI0D!^}h&ez*r@D~KuE{rOJ-a#PQ(@#GQXTWp) z+uAv_8Lw#~V4}NowK{MRh};R%PBUv5vhGqGE`#p=CydD3O>~2b=^kohvHNX!RV`uG z_8)>19h~LRBLUmnSyvc*2k{19`>nU$3Ipq(eDVqOTGG?gAq);odT1Nm0>kJKXb18P z0dUi&Pj~t)z}*gg8W3x+-oZ8CjFg8u4m_2XN9XGF2Hr9|ap?-nUufMky>^;h&4f1t! zR?OAK*Uw!VwDzH?%kE<`S&dy$i6P!Lb!UEdX+=xt=KQl1#h4TT(@hAiMgty!?z`yV zcMpsj7ZDywcXMYr?8u&uzCYqW-eUca{1+Jf?mFuyhidxD7B^Yvo4*^MR(3B7QQmgeH<^mEvv=-{Zv zlFXc(61AOI-P8rawW6#xlCTtKr`6RpC=51^pr@;GsqjN$C;#p7RWzIalYhN;_}G~w zR|^;hjx}tdjqnvfI#%+8FAc{j2pH}jspE;n(P3Vhr_Rht3@*<&rDl3O`Rp@vW9QRP zzH%bBava-{48B`Pl48Q03>w@DryLbyvD`&G8fAb??F7N(iq_t`VT_;DS?7kT%JRBa zL(Q)A19Yp|qB(tbd2%TDMv|ATdg}ItEC#S-+EvY$+CWTyy%Gox4hGZri6@?bxbO!b zeDHw>9sv3KZH*mT+7*>{lZu3u=AD@`Iga0dqlQ6|@b}TL*>KXVXTYj9JaNBk2|58S z+4g~d?O;hi_uO;v2LZ$GP|@h<=tGANffF5s8AKPP8Y1nWAc$TEFFtr6zyWVG8eyOu z0^=Yt%y)ypIOxSd8n^{~_7Lh0(hkNqqy$9=_dFQ-ka+Rp#n5{I)BM1J18_TZ5gvKu z5m0v+<%b-=NdPCoa{zy!&US&@9;V1aAV18T>pSVZgr7*@+7giZM!xvkvuA$!Zuh}d zb(ayWJvN=**d*_0VQ=~1LxqWAQP#5Jnmgt@s;M(5l{!<^k*{|g%$3Nbiq;0U|0K3# zT3A$2J3}^i=A@j{$Kh|-8H3Mdw_6}woxz{8bVGtK|E1Tq#4f#atcN!R-TCg#pfxI0 zx`@c}0Y2*Z$YAKkTTPZuxw@>j=#y{vF?j-WS9?RJ)|q(FC-k>L1P7g@bt@wiy7*G5 zsk;MVx0{;eO^I<~Vc`KCb{9WSQDt7E(ebrG61M(tnDg=((TSFtqR+Nj35!0rs$=Z@ zsYy}1Q@Oj|+wwnCXN%XE#0d$p^?BL9{IIJkLsH&uUNt|CtT`of58QO$%J<&*D7~P@ zn_=7g!|tl`5zpokAX_y7hnoVA5}!Fd3q1CE{xZr2k5^_I71UN^A- zR73HZLm6eO*4?*a<3l82uPsdf`D8|yP`O~zbN4>@Fu@iosladk)^Q zWVLtHbT2QLFW-M<`|-o6Rm&fK`sG`Uq_>!Qv#y{--C$u#@BhnV#y4M2Evu(dwx-5r zkk|GXbwa7V8V?3nYBq>7T6|`o})VQcXSUT6s zm3NEU&LFAr$;mdEU!TM?`Qlk~W_pErb$dmJY80NkkqCfWDWZG(osGWWV)Jeh%vGOD zIK6L)Q`E7Wi#TD)X0b>A?Un#S(TMygoHOB2}#Y}5ub-lpV zH!{$@svdDoSeDGVl<3J?ad`E;VPtW;yN^2D;Z zF=0*BWpa%rI$<28?+d# z;h0Z0XuF`a!?@DKKMBTe#ULjqF{9%!s*I$1fro2J4JdCe{ zQU20PFF{;hZf-94|6$=f@bkl@)~sh z(sIYtNZ`s6xYbg>>bi*qxU#55mOH$M(oWb&$HX33ZU;9caN`oNlXe1T!Cb&yKAg-0 zGn_S zTNw<9jR!ZoGYu#%Oo4?}ZeUm)7Px~@`M!H$S$c5JLohs;>?tWJ@Ck|G?K34MB{0J+ zF)~`_29;beB$Ebpicl(PnWvcv6G!_eXD7ngQt1Hd{5b%%d&2+?-1Iotpja0NIn57=Nh90Jgv zGobVk{suvCU?Rh$H4s-&XgCAOKvrQfJD42@!VJ<5?|uUT27?=Jfeog%A3S&v-US2e z-n{e9J221=v*SSio&5%gvxCgx5TqJ%2E!dH0u$t%w?pP2?I8BBHcowgJzRn{>A}kX z_S(antbD*+dl*2+aa2{ryJ6{e5G7O3iRx)TRoP{c#v?IFm9%fltmcsLK0ajs$uH{yl_ zu2%wI1ttxIF@^~+u<$PPzMloSjq<84i9|`=p2CX!$dpC7T#S4 z`;gdK2XH4qwoqZX1U0#M3o!)}Kmter2_S(#41ud5?SmQ%>JADDY7P48T(@peg7Xg{ zCAjxt0ovi55$E5AXOI9AKmter3EX%Dev5PdcTxgfha4{H6>XsCP6zw%EE;b|0!RP} zAOR$B-4p0}Nz8TMPHZ3&KmwzKz`xf_K0L}}0Y(RCtmTbD0A>D0dD7TUB!C2v01~)S z2yA}s$!AgDZKmter30z$Qn_qkKS=9Hd%N$EX0!RP} zAOR$Bg$bavUtz$QJrY0yNB{{S0ou&YMGe;^764@)fBTRC5|ns2_OL^fYOe?14sY~AOR$R1gwqRjM00|%gBrwVdjAEG|Wu&pXNB{{S z0VIF~t_lH^_N#&!3qb-%00|%gByhC|ptN5t(pU}>Kmter2_S*1LI9=xvSL0KHung| z0$f(4m>Cj40!RP}{0;&r^S=Wg-iic}01`j~NZ^l00Hytp_e`)xNB{{S0VIF~eh-1o zuRZxJ>ih2@i1#7^B!C2v0227a5n%n{YJ?TKd<33rdn^0WV*x0NvRG^;lgVZ$NRm9i zI!q>$!(j^rd=`s&{?*Yuv0S}G;}X2?33Qpuq;rNzjF*rA5E{)tJONp zWxRCV6R=oqXR`{@GV<*9Ar$@m=F23ah4ZI}hX&H={kAm-c}~keb6VcF5SsIExui2J z20zwwV@mL=9H#h^Zp6e$00|%gB;X`~R{IV8n?TWMd4**e*@eUCI$tdDb``d^c35l< zM}3!8f9U8LnM~s0=Hg^WQA9=O&YV`zbuEYG=_yX&F}XIoQm!vD*$t3}#dPzLjOWlT zOe6> zNB{{SfsqrqkhD_&kH#RhztOSF}^7i+4 z5psvilpMC)r}nnvz5tYd3brp#YK+^3t%z(?aSeE_`_UNv^UFD2GCs=hvy&Q zC*+>@m`I|zp;2QR>~W!kUz@{mb9Z+UpYwF&O^uy86SR*nk_HBNvwC^xbo%VvVvA*P zK7Axu9Dd5o8L_^+@4nyHq3-dqtGl$h`K5DbPH~RA!{B;u+XoiAhRya#3EwhCHr8P6 zk6RbL&ieN$&QxJ%|Qj@c?=n)VgUtoSOk^-OOpfTohk^q3L8HB=m8v>OF1US7kK z1?t8HQU8;Hd!ETjui8|gNH1*vB+PY*3qP{2R=9%%kN^@u0wW}Fo__S)M^@*Y_`kPz zg3_F~(HTspSRzfBIO&dCmWTPco|oXVozSaW-+A?o@^(E}B>VGoe_J>%xL2MA7h%$= z_x-s0`+cdM8sorgAd_P!PPzNebumHi1J7HG+RQU)DyHZ1IY}4Fb71(ZmojaPpS#Vh z?oHG4v$no@Vv@ntMFPhi`W&UP1a^WvA0F!#x373bt)|jLwsuAIYYF(+HTi^bw{IczqIL8sZR=G^qt@BR17x=wxHU6uJ6Z@>A^&Hw$Tx^=K( z^`*IXJ5+0BQ9-@Z*>I~tdonf4ObpS*>LW972ZG~lHk(?hICc2Y+wXtTqU>q)z%+eL zgG|*L4Ft#co}oHB+5{fHfnKiR5g~S+MrX0qmldDPtR~386)+f#@XvXp%2WZp1n>^{ zh++)-yjEQ;L0LL=ht)R1R~*7(2M5dI8WcNA6^A?|b6q)ZHcLT;I>X=NPiqo(1qnUm zhBAY>q`2efP@lheam+Q!vyRMYG`XR$w_^Ac2_OL^fCMgqz=f>#{wx@5?!<``M7@4- zo7q@bQ`;ohkc7RiDDO~u*&PeVU0cIf-%)U>q1 zI*KH!OY#q%%70*W3Wz;yzwX|BJfnWFSoOE~TJDi{+u8Iioypc)396=~u&PB9A1LcR zGx(>6Z%}NMKg>>pC!$t%mRHuBZ6NVPMQ-MS)Jb=*NWS32HHt>q`*hurt-ecD-)V@A zi{iPt)D)f7c4-RLy66NCr`8TExVx{=gODIC-IpAP;0~bEyU$Y&&j2KI6HjsHNYqSU zA;l8#qWvW?9rBZBs~@hHObv3G7w++(w0dsgzhufBPru$i=5($lhTTb3+hPzIC9Xtp>-$!alc zwK@nR5b}F_E;O3OY-(?9ZSCv=aS@6oL4kf!v4Alk!~pIxTO860b!O7+wbivMgVo#D zFVNS+;V7ViUfMd^T3gzcRy!${%KZI(95D*cI$i8juWCDbroc{83@Y5{e|;*99}OpS3xvrI*n$o?@CSbd^*;1VVN?^&;5RP zHkF~N3Uj}UP8pbIBmn4rdA>RKt)puoD&67$? zXSg7O%V2=COZg%FIy30!3Y1N3>sB{Mjph)|!5icUKP zQU~A3y?0WSuB&s;4|`5$m3AmKRvQ5^Zepo)!qjQ27S9g$b#offj?@&TmbV^0c=&K? zo#) zvwAD(?&J6PUmqVA?5dHs?fq%*;WGtljgg=z=!f_Q1g%`XeAcAsi}qlEOI2ZheTNRJ zC-n@NljQ%?!8AK*%Q>5)SeoK3>FK_li{zXm7xVM4JlvcNIt=3k|^a-tM`{&7~Z@^a&<@ds5uVm8vPNjNroc{~q-g+)e zRMx(wL3ujd?WQTA|AN@fl9reB1Oap3{Uy_#`Qs-NKmter30x9^OO|$$uyx5>vx@3L zT`2+#(o$2`^5mcIitJ5!PGd-W)~O?(eSfISXlHWxb62dLo*2fY)BOSh1Z;-Z zLKqZH@BZ_{d9$ZYPKpI*0FTR_zIb)Y;?>=mIHqT-&Bn&Y7M;1r>#NhK;h$@m#t~pZ zlEs;)U;WoM`G80Qv)QcG6xG($*0-*I__q1nZtsE)JlKuR;C412H~>QcuqqqmZ!i$9 zE@C*`_VK4brlDy1MG>8*PvOdC}CE3w2qX%_J?llV@^_&|{)AV<%5tIos#> ziA>1RSJk>`eCRneE_49x?DIDa*c~#thr3I3WJpe4DfE7v35;EepZ6XnO%1I%4@Ok)*9mOl>V~YP}g8?~`UPST=Qx)9p;! zOgq2&=1`VH*Cno=3l`0r92eYHSG9Nlv8rZeO;PUK?{nXKh8VZrnwX2LRxA{4;(sK*`%y0$a?=%(Th*r0-Bo7aK`v$NCE z>lF^A35*yMAMO`8CIWo#9Sx=b`S2Uib%-|)i;iElbhf*Ik#ja}|FJB+*|2Z>H~xWs zt7pay^pLl=v@lpKPcJXRVvI~m3KTQ}P}%)@ut@`VYZ?k5f%JbJdotW$rn z?YrQB$72JBn_SRXRhD1T1Qp|nUFJ+n^bPZz5aoS1uZgmoj{TZCH8xPn8}4~Q@5E#@ zl;vgqdbX!`lHQ>N5Mz!;Zz))~ay? z|HB;jAeY%wgI{1VoC6L6Q{g@mKmter30$1Oa8lvC8_e{IveNT%qI(8}ESxii%kBx- zYOO9lo$F9*wm`D}j*aUVOk#tJJ25UM+~;pEZ|&4u>k2c|OIznA`l}ksj-*#WN(P(1 z@t(Vv&xq%+7!$_DM1}dh^7 zn6JwKy{LZ*aZR%_Dcoz&O>kJA zo%Y5n^}qtc=nOhteM6I4>&OIFbe)tuQNq8-BNhtz^Jgc^Wa6^&T8&n3v)c#x-kl|O z#{satJ>AD8!jlSy!+|y7FeNjB-*6Mel*zx*S{iMHk)oXwtT!<6ko$BROyT2;IlhtZ ztK+=x60v=TOm^d(Jo#njY>WlCah^A}6bW200vFMM3zti^)mFauuMaJcJTzxQ82Fqk z%gYp9j^SIMkf>Qx;z8qK-(d~MPnr__^S-Qln7WpgT{u0~v%IKSWpYHhy9Ye_v;qP;1#y{R{wo}WN|+|-#jB}b2BMIV8HKV#~I_?XB}g$mZ0 zhq%H)xxpa>NJ=DPPY+kY1zZArw)=R$zko=08j4MJ1sy-}ckTSKu%=zv-n{jr|M_@< z&)KcLq1gfh#x$C@zpredU!B1Yi}Gh>*V`ysTYH<)Y;I_hJ8eW5FPCuozr-Q>EG*EM zPA_+af48*uj{7=FbwuNdvJD7*Q&PZ9g zaE4USJEqc?;sQJ1rH2>84Eb)D3*0fpX&B{~aD(9A5ZCY&5P}z|z6~ zgQaJ^`zFPCd4`0Ac#4?Mzx`Qzmr2#ym{;Be((a5`ha16d3t#aAbAUH`I*(x%wqu@j zZ&FxK?VNOucYpSrfb~`SlJ#UorwauFv&l$U4L|KUm=LkP7U*3eE^oh`E)wFeIz9GDB2>(FBsgdBh=I}~!51(2GaYjn;&C(U1c_z{E( zc4te$6g+4C%GSD!!rB!n(dSl>mY6bs(}vm3(RIgSv~0Fm409AjY-WGA$(aLwA^{|T z1dzZDL16Q1Pd+=8*j&8vbZ;-1o5g9TnJB`dR62%wg{~q{YfxpqR&TMBf&n(Urc={x z)YBwlF^|oXi3JY*r)V0D7VP;xOO&(|Dz#&Ub=YK58JkWYxC)-g&G&(gi}&u_S=p+o z$jdsNH*M|g1jq)~pZ(vUQ(r2b>}_A z2cO61aU5ZM1Zmaj`xmu?GkT-J*geOd$>fTq=e)Fx#bgZ_gQoNOB1c$0jV5sMxqs6d zmw_t*be9Rv1@XDDg59SbA1Zlsc419V*g8e(w2m-WgaB?Jn09!~SlDS4i zhMhA=G3ZV_L;}B;0DI9|H;e`Ny%h0&BycSVoIjR(v06}+&1yNDk=fSO9aGKVy1F^c z>Cn(IqHce1eMMuHSG?cJ&(^1@bffVt%S{Tc;Eht zCdXQ?&JC>Ys^Z)Z@QTAmXSlh-_telE&((d5zvC)tHK(R!8mzqwrcqR3PHt_5QLYOS`DKFxFG=~fCP{L61Xsdi(Bw^i+=l8 zUr8MD?bu++RE??=-WH}ecgM#01tvr~qRPUeqoabnGD@2bs`jtG+Qr?t++D)A8nuV_ z{Z!j&1k+aL8#ZfF1UR1k$HXTDyXV$+TJ?(0{?`E$4UH{a9^c!;B{^l{(cEg4 z!B&xz{>5(pg~>4xgr{t-{dUiB12_jD-Y#Vtc>kR_4EZT=5114mv^TAaFm>(tejjJe zJU0=yqqc1O_rEkK^f1}&o`?P7Bl^eg`!dm~+Ea7Nx(^wN)8;(=zzWW}J+98WqGw)s zzqQLun$*Wqiz3#|7;d&(U%t451dsp{Kms=;fs0E!VKpB<@XL^JSRCPoTQ|f8dcai> zwtMbe)A7#db)CA>ob;!Qa>YU(3>-UGkCl1)Kl;c$&X_Qs#Phy;Z+YWi+v?@oqKs32 z%g+=Fcvh3qXtsjAE%WlE0W&4aebI)k1%`s!K+XkVZ0#w=)tnHCjt{Dzx~YJ@yWAq zt!v!+{YiLx+^%h(AJ_$h*EECP0ISM^pFeie%sbc295~`Is0cV@umx*xUQ=GbwY){0 zd+JC@<{2TM0|5XQ8v!!{;wDa=J+Xfhz`)xp3Udpp+TaXZ=sJJ)BuVc|uYGC!BNI{* zLcTv$1_23aCr>PzH8#@i0$%>UdvFH{AOR$R1a4FU%zymjA49dBQZ&_^&a2^Y;GN;; z{DTlNfdCxX?(t*C-TS9|ZkjU28FmJlxO(|dn-tg8+0msnSj-lK$qWn3@c4p+2~!^X z^Lhn4^!6WB6RonE3cmABjStgw`@nv2hr~)oGIx#88m7`RtHF}d{Gh4x3;O61A zc;(7J-?zq9(4(d`rG-Vc?SRE6C}jHNu>(iJVZEHhm=JYGhoVbwv07ke84NFoBrdZS zE`98t)vg0)67)hR?dBi8-C3(JLWWUelU6U9e*P=nVRo2+OB5AXkqjoR2k+`18XxSD znU>b3wZL7$QE^kpM-3kvUy_+tCD%h@?|`tG(-V1pYuWWy1AiicQAc2l^q*N63oz;) z8&>$L6QEnIj<>O#znKl%cEylGyp8~Kc$o`$%VGX=pLX`e?o)!OZ3ffo^I@JXFJTEgSB59>cQRacu5T`yDk)o1A+nq{k)|TL2op= zqilGAoV=~2pr}l#v+($$h^WZuFh6H!#W4j>rK+o|g9YhfYMxl;5*-x|bJKX7epiQ1 ztx{?oF$Y|}(9_+eub0!?EYhIW)YaD2Hg*^-Hoiy{78V*BSaw3Wbbdtvbkr zARR@(r?WT!N0BsBchOdRPthhv(GH|`I|(%;NJkpT#F-nM*Tbu8DXOPp-S4fl*&P`| zqns^;N;)g=$OShffCP{L5}8nX)|$MxsA*lLngVSM2^0h{?P*Om2AyK?*>gkLCrUwTY5v~a zi7xa{a!o;QtmGgz$z)`e8{#7b4865jON(`(*er&K?XcAK2Exo_5IWn}6=nvLmJrIX zYcx-b5u7N{M~@M*H8vxM)!Aw8Fj58^ZT(b9Yojr<%}&}W4-ftXSL)Xq3yn^*^O)(11g zsPt;f?0C`QNUqvQWLKFqBt681nO$jW(UMFaYuQ+#T4@XL=eqN#a=ERf+3GG~`FrxG zhjQWV?a-R`E}K-$QmAZ38Y3Q(@flniS*x@uyKH66)=Gt4%%ih;%tSwq&0wo)v86ZL z*G-iq2e7-e#3?8`L9{fQ3on)_sxvnmsW1;#MZKv~Znra-tHudI=%EO;fzWB~twu7+ zmlG&uI8gjK8F(c+kL`F@ z4EVV@EIOA%XVNGz;H4s#Ou~xt;qaI=5tm6LsM;s3=};vge#)a z13f|b=%C{YEl45VRl@S&(st$O(i$ujoi^5=b*$L%O9{LMm7Wm5wHoZz?T**biFphm zhYo|_U~@}YG%(GjOq#13SH^QlE}cPxt04Rag6=71SWQG_r=87V_=uPRZfppH3-{-M z1@G&|2Hl1CwP_46hEHSj>9KB%UD>+h)n<}SpWx3rQe^n0$fUJVWBfR58v!A7S}P?L zK+y~uoy@2-wHq9Y4ea$*1rn6BJ9s_n1I>Jt;drO#fic%UVR}n*JAh=uxnBWRMVWsFI z7M&!?oO&~l$Et5N2ZRU(28*7~G#hPlinTFG0O=t&4>1$o+}dTONw_p)cjf?IXC%PB z7IjN0l+|UXTm*EjnG*9EU^2_K1Q`8rBbz}}=}EDGX)=>6HXYuSuF{bvf)aum&Y+5F zEhLB8-eD2Cas64OnxI+C_7*E+(*zNuSD8sS5tGZH>8zAYz)Cf zK1VDX2_OL^fCP}hjW)4Hk_AkN^@u0!U!A6SyKWKiZ*S{gD6? zKmter35;F>DD9*7*($F2q<_82_OL^fCP}h=p}H&Nc)qE^1jYGJ(h|DkN^_6fe4_?-#`x= zn~DUG01`j~Hv$2a_8Z|TV;hkG5NWBQ^pFAOR$R1du>40hIP$68IAd zjEulT4GYUL7GPwoFclI&0@s`X%KSBd1XuwifCP{L5qpkt9p00~@e0=JxH$uSn-YE#GZ z{s;t6=Kly!0qcMSkN^@u0!ZMp5nx?vPA08t*Umlloq7g~Gj-0~+2bSnaya?Ro>PU5 zNz>-tloG?b^gcs-ZPB)!$88jiFLhnNZe^f{s4wRW?vVEMUk@G0t%;v9edX+N)%j<4 z9LyxCp5zP`%hShq>XZo)!M>b}RmiASoj!3Yx2%c5=1!fNqAbfUYBkKgX~ER7VHYf& zM(b>>{_^_+Y?=QpYZrS+xfDsN)k>1dcbADQM#B%=chswh#Vc1NhIZy#JWOV589)a=T!9QaFoFcUGvjyyV!4LZM&6{An?lT1ASmWt=#5 z==d49k;xSWj!6iZlhBjzaCuP%ou<7*9-uctDn)D4iIZveK5g&5@!+qix8Hr|@|p3& zcQ$g4ANcpj`xtz2fWJ?qO0Q9=+T~ik**aX|G@9LNk;^+dgwRedh~7C%19ySTLeRBF!h z8Sy;UAaSSE3VFLi=j!3<;VNOkMFxA`np@_s>C48k;}@0i++%l$xD2(T{pkLKznm`m z`ipPFL!OEYbnQ+@spRc)m7c-j1qS%=*gXWQYwFE*@}`Ar9=mfMmq};Ln|LRUM(^#l zI18{@j15g~6ocdE=Plr};iOM^?3-`C1UrtD7Q>;vhw|$5Qx-e?20WqU;U{3y?|@7w zN~ck`b|^_2)62)(MIso~JkoA$ZEe$;>^^>eQW0;^RmciAB!C32BLcHzx4?H`Fm2Ji z*=w((W?@r?C2;7_A)QXQdi81sW3atxFc`l1=9}c?M0de1+N){>rA5fhM1SPZF$4}7!twBBr|(-}dLF&l4P85ioa{gW*R&Q` z3%=*prANQtR?wiLY~&ALf6>-7_m*WTJ3jxYN=|IpbVqWGuhpbaJ$B@WUrsCaW*S8k zNL^R1T|F;3UchBl7M=d&^I!d9$4PA+r*q1*MvG5S_+5A1niT1KX%7=qBLO6U1dzZV zkASbQ?~5LEsXy||FF*X6Ls2w?uB)uP^4EjE<~N%+Y*-Z= zAT7vD`|yjO3|7)vsv{pW89OdMVN7JOkDEm!&&aPKx~~y7b6rhcVSeuJ18L)@&sjca zyu7LQt8L#E)XHfTscdg6DXVOjt9wV=&uN9w)hjmKkFr~;YZ^(Cs>nIBW!q0ireyWn zmGhIM3eTSYXxko@(Jq!q1$>7^E)a;_-CS67qNSm}q`bPb%K#^xMf|kq03{2$dDVQT zRe$#M>0?=CP@=`CE3c@ktZlXsG>OcG%VvVXE|y4KBtjZVG}P9XR@A68WWd zEhuBpMv&x!H5)drU3lBwo0cbsYdc$yrslzj_eC~3Q!15!t6Qtnk~Z!B{U;O#>$3G5 z7S2gtvwr=!5ZB7${G8IJB^z#=9v=uA-#0!tRYF_I%*JTb3 z*t&J=_U+sM`Okma?RKS7`TX$hLhLT)GHunh%{*5R0gF~&Sy9)f^pN;D@1?OgA$}f?Lg=iZFhADms@6^g zd2#WhtX7A3vY0HJPTQi=Lk4@k`1J60XgH~qciC*r*3M3fc5$+iMeM}w}% zd4_c_07rcX?!%!;+tDo7bA@gZK|bA0V1$N+fSs?CH_0_U9R#7wMI_`vVm_A*Fh|fd zM?ttD0VIF~E)Rj{ip~^aEWqVqdC^?L!^1(^Uw-*zQ2maM4uwMT=9_PNd3jy*#@~=& zm>>Q{S(lh_)K1n$=R3lHzsTv>IEAx)DJ$ci+LlZ_~;8FyHw<{nP&%?t5 za&~HGRNPoUSBIcFHaasZXhg0N2A$<>P*2UBw~zF*yWQ|Sdx_dvTqW%3q<%k5t-irmo|ud7$gzF$s|Y zZqC}+t%ftH*{yZe1?5c(CWJaq*4I{d8B;tZ+@_XBt;y!*?zZE1WPP!Bx}~aG-2$$SSVQIeWHaNwT!3Fmqv9{iH~5CS|Lw zXtdLrp?<#1UR@lLj@@dmEXX`t*2)!0CnZG*Wzs-5adDkIa%|Gg^Acz_Q+7@vPwE~X z;&-Jrl`ruP@s(sXYKkfvVgp2{=8{Y3!1J@x^xKyorUUkHU&LVS5he)X$)3ybn- zAOR$R1kNGw+*fjN`r^6(=RmpC13FB@8^JxWD2qmCv~YNQSDCnH%((kDi^-tY=t;-G zw!2y1r88P#f*6ysc4-YT`CKLyvzQK*&p&_x0)b8Ow`Vv1KYQl^9@TLz{(HCgDru!v?-J@rfDpYm zgALdiY>bU@%m4Ykyd+L@;*^&-iDNs76UT8cV8Ha=K@yTs?;Z6n?P_~(ckh2zLP7{( z0~V(E+>cLt@7$R)XMT6tGjrz5+*+mejko?h#gApMICwlhpUWO{%#&ulUT?9pxqP%$ zjLl-w=sj!Mh7Yu?oz3A01>9?W?`WqxgTZV^cLgHh@D?>Fzfq?(S{)p|(6gxwN$NBj zi<1xtggg$@WY8PTHdKX(k2)flNv}ie(mj^~4&ksP{c$QoDiP7BIO!(zI=#i=Vsp3x zE=#A?I$WesB;v4!gAz!))v7aia0!rFtSfUCcAHtFHBlK%FNqMbby&@6J=*Y>Df1GI zGzC6^01yBIKmZ8bEPY3U&!T; zNff00h2?z^LQ=n=-X0U!VbfWWO1m_P8Rp!+Ho z;5#z&x5^Rn0|6ia1b_e#00Os10G#u;#|=sW0U!VbfB+DB0zd!=00AH{o`6^+qS2`1Q_=OC zufOu@4Ohe6%)3=5kO@gZ00;m9AOHk_z?~;B`g)e@tD0cwKD_q~f%cGbqZgrHd6)Y2 zB_|{0|8k1&uYCa~qtPG(2mk>f00e-*BoROc9&PqUrBa8se7p92DnnI_H}lA@BLi=+ zx_XTijg?B=Su;OLtpqVZ00;m9AOHluHw0)DT*Pz-3Y>g4dR_c@JB~1ncg~|xyVd3> zSI{Ipnja6lo&96KH*le$KmZ5;0U!VbzIy_05>r_)rNNcxcJH-G>T00KY&2;40KR2(NfR^D@r3$+_> z=0`GJQFYLQpKYZmEZDs>|4yf1F;a3)u$w(z_q&A`>IDKo00;m9AaEB544drhEB*%a zSf#+Lm3M5ge7!n1m!dG^(OzV*@ZNDN+??K!3kU!KAOHk_z?~;Be%^gtjW*Y~gnQ!B z<;GAz0USU82mk>f00e-*^#s1bv|nEUQtkqQPr@6wK`g*s01s6H0U!Vb?sozYrkN*Q zww9I-JBkeawg=hY)uGaxzpWSyvzm169lhUPp>MAVNB{yr00;nq2b;hhG3{P_Y(+G_ zDFJ^d0{0sV!cPkFTn_)+7>CRG*!+mADJVT$FnP24B-!0i{K=Pxbr#1>KRieN`BT}2 zwJ7j#Y!R15^Z5s#)ORY!CZcnabPo>nHMe$HtoCuYZg5GKXP?-0ILm#5+t(+%Y?ku} z_f@p@U8B(T`7q3&R<^XXsr05B0;~#_FRd&Ktj$k8YrC|H0!5 zjcKG#(xg+VwZ@T4&!@|wKX%|?eQWR7L^uZmKmZ5;fxAm!@=be?H}+rCu_TerZZpTp zi62hGrF1O9hfJ3`&8DHlY<3ZDtHolnTBZk)K`bjub-E^PK@(60?JB;9p|xn{0kOo-n&Ic}#t@8sd%{{F3|j{b4CCcLy86q$K-Gcu;pC%ipj zB91edEE@HjHxsJPKljET|8laRcEWyx+vPaB_wzsf<(-c|`s|A@4{L3n?hchoV=$TH z7EX-Q0&Q=|VlXNANSDj)%02qkj>Fm4c9(D_lZo~~99I@DfdCKy0zlv{61diwO@<=r z!5G!%{J4bFxM=QhKXVla*UOW5Huye55~-d1PO4O^40pj!8~mwQTnC70WJ` zG-jVXd}5E8>*c?2@jOLCer|cYNXRo9O+1Ng$%+;6kpajulWwA}DBmRtPL2&lP3vkX zJANuhsWS^@fe$^rf~IZWvG)RvC!{(p4hm!X?D_LDQmlg=yLKHKP#aTOq47b!hz#-* z5H1Ao%7JzqblOZsIaxV{H8_*Xze7XIg!9~H{PAXfx=F#;r!QSnq*g z$YC=TW}nY5X>ijyvllK-PYNqNfAT~@y@by-TkTP)Gap_yo6VT~uipqE_yht#00;m9 z4}r-ad-;nnosp_?vr@vDE2CHeQiearW5B(9s6U&}_~in||EAM<6r4h(Q-*fO#VIrj zjWKCPp0F3@7KBZmDf8H7jLzi5C8sS|G*?139X)=5WC()2I5pLERFU7zwAf2051!1a z#AvLvS#yF!)XrYTs2xRRdz!1eEv)q9$e}?r?i&;_d*0kxX;bpfoM>oQve_J}%i6B6 zq-M;dn!CUJa=*|&QrFws*fE$oGo9m5@AzVOzs`o_*e%A3dBsy_&5`mM=#njzBu}5Q zc=0?-Z}rLSa`-#|2AI?ER{!u7k~&%s@hL`@o<96+wr(qv^8`KKSQ5 z@1cMHdH=JvUR_;b)}Euektu1R-XfjB<3jJKE#0x_w0~4W`qbE_lFUPA3hZ`ETWgEj zU^VJAJzc$evlVdV|9AgMX>o|F9Fuxr%9Ze%C;(wohfj-NJ(JW;@Qcn z-d=-cc=mx37#1BJ>>~>dTexH)>WHxDG&)~0f8lI~U8~UOJt|^kZQl9aNAn{Sr^W<} zc75_uRl7MLZ?jRWT@YSylpk&v3EZ?9}0(sNibhgp5$d_mg$rP84; zf=#c=&(18Z>u|UTG+S*kBU38GXx!BsA6+~(Dm_~M);~YRm|~$oFn`V3hZd$85<~v_ z_mA7V6#k;XwyOMYhxgWLk*I@1x}A*`Wk*iuX-qbU)e`Pw5_ks$`bt&o$Ss>zQ%U5- zf4jE2V^%^~N?KY&X})E|tHI)nV&da%PLBhgN}~&Sl!BV7@btwS)+{4!n!%nvl-}B0 zGpI3kv|R4SF_zGq=629IlC>K*b~iV~KJ@sijHu!MlYeLw4cBHDcMP|b#T5qnd;2-$ zi(roNfX$G}MyNTA>(It{d zy~X^_%eCnJc+1mbJwtZV-CkK-)}o%jawVbeJ)2XeQK|X`c8A?unqM5i#ak;1tQcD? z5@3YABriW)#_g^yw2~}uFOl7>$<42vF>kS8$PsPVt4^ND4Tw!!;LpoEecEm|=!_Pm zYF|t3#rz7PTiw*FpE1?jtXHX3TD{3)W2ibhyQN-U0x#b=^L@uWJ-6IXURhCDRvqk8 zx3~7G!ZqqhA32ZR5|x-5As6&^c9J}an{X)l`zC@D#TKIRIh(3f4)*n_95!2D zPY>5kc!`-hz1eP}>huP^!DKU2j3$f8VKA%v?GA@(pudyP@b&X$QZO2wX6RA0TyEC( zw6p!9!hLxwywIe{n1;Y95C8%|00>Mrfj3`&?cqetSU5e#(|8H$!6%311zr~LfziduWzp{E34~B%2=>s(TwVxLmz&! zuSaE6_qF5~l!@hGVFBLPBEh}oa${f1;X^0t+Io?aJuPjii&uw9u=A(STq-E*R~duD zqkQ?!&p!OLW6<2yRCg)Am@W?R=Mta&=e^SxYwR{_O=(#}mmyNlI(hP8i^;8A~5tG$W?u!pX9xUZdS*9q6v>=r@{NNhxuhaq)}S zHtaU9l%n+IBe4LtDFTWC0U!Vb?pFd@8_uOT_$=D>uX-Q8J5$g_Jn`r<4r4?h3OySm85!~;ySC@GnOCn`k}-2SpXG_{yEY5TjoZ!r zAAWFP)uzqia?xn%>#~jB@tmO9fR>u_ci;OgdfL1N3+Kdy%26K!rJvvbxsEsG(dE;} z<{l%8)GE3^`_G5{Zol;p&zqV&g-ILMd`uRk&<(;5ugP>J+tsw;Qdh4>va z6w2q(bM$0H=}`qn%TB;;B-2P9&-KXph@cT2u3p0#5C8%|00`U`fmSW_bXRh2^LQm$VWhT~MWXQ(|{M`YTZ;HlKBb{)yRwz`UYdd{D<$( zTCpC*?TyWe&c})}sQX<^p@=Y7HMAxsO}R3!eNC2erLSI&l{1n$K5hK5W&B6obwiR9dTo@=GT6%YUdKmZ6#CV@LLYM)F6Zy;;JQTq+@LNX8l0zd!=0D%XM zz}Jl0zroplZ$?1fU`Y9(JvM01eNG@t-S-s40^H{h5!43)_dS7cF!ORgNgtWQzDL@M zY`hm6<6iITzen@~HGlvR00KY&2;5Zy6U@8gC{ldni18vcS@w00KY&2mpca4S^f^v&Wlu6kUZJ@}q{FMa41#+!+Di8&1$rAOHk_01yBI z_XB~U#bC&2UmcB)YCVBNUd+KYwyV~CG%K6{0U&U{6F7eH%wHiE;C_FKpg$0}mH@Kx zPJ(36JWIQ;xAfyj@MuN67njm+cD8C5KHTf`Un?7~fB+Bx0zd!=0DO|W z&S#=GdrmN1AHOILsYeim)8*2b-2-N{L(7D(7yWJ<0kr`EAOHk_01yBIBLt`viiC~H z_-GSU8g-(*;3hEbs4UuC4DCvbj^XnWY48aIfB+Bx0zd!=+)V<*?)2eJXD1x8BjqMG z?RQgas2d0Xf$tT8pR6!BAr|0!^~j;I-zk9!{Po{y{ZJVY00KY&2mk>fFsTH7T`g6 zlF$Z3;LX=xc@=Cud=-EI5C8%|00=x#1i-XEP>&ND0|bBo5C8%|08Bf42Y>(&00KY& z2s}^(z_dS5j}saL1c1N;NT4)zjSgY~9>53t-82cz{CC3{Y5@X300;m9An+X#0Mq^* zfre^;01yBIKmZ7QHw3`6e>a?=79aowfB+Bx0^bnFmvL-<+ zz<-VW=TOlAOHk_01&vB2^i++n;{n9x+g@tF6A2%EPB=6uMV~=O%xhq_Tr_B zrbUew$UJu7Vr6IQ++{20#L;fO|IpV`_32j^oFv8(N;hs?7wp3ym3(_As^;o<_nh|* z2z%nORSdiOgHQK3sG?1qHw1gLZ$}_W8uVJTo%HpQ5)SLp0|%>GRf`{9HzzUhcBGAz zaXG9FwRL3`wVnN1DuWdj6P-RICD2EV<0Cn4dHvT{QOYKwAq9mx((nf?5u3rUi+ zn2cJT!RBz?p0wdoPMh)YSG#r}%h#H0!zr0rc_+`s{`6=6Z%Ux#wwv#;81{a->rhU; zx1T&fPMDoeytu>J(-OW`cpY1y0m$>}pC+FfgX|d#cA_{hUt@Mg#>6PQ+M3Es+6LE0`EakTnzR_St^G;{haVW=%eZ#@PPm-C z-Q8v7D|uvI0*f}zx{(^CqJPjJk;!CIA?4be zcB`?ovma;if&*j>+W5gC&)fg^e|T-QI&^|M6W!gtdb6F*WCaEJa~M}pAPxI^dUYln zg+}v{`Fe|a!=;Kc&lgp-%i?FEOFE0Q`GuD@j}?cZR_nX_lukG9EtC031=nhaxe4b$ zU%$p^lgZ^?A|AR+x}A9^k9@c%lOy)svT4nN^f<#n=l;Ei@~Udy|7729e)5br-@}I_ z3AI9@P#e&gJ|IBOV>7O)7Q-A?b9Ya_ouq|^1hN^PhTE*VuHFHR%6a~kA16$D)tD^^NCti?O|{U*zR0lL}B1hFRehsyAXK;d|OexC(P~ z3#(d}#}4;<80(&Xe%-ZlEk<2W-=Kpay?tcf*F8$oO$_w)Y7BN%iH~GF$!jIS6%YUd zK;T{{aO%`4G``xfVFQIS-fwC$nRe{hk&%&+l!O);PTFy6rrk2wT~O2M#%Yf{zV6cA z&+{7-gzjQ#qs8X* z4~>5I*^PlJIaY+XJ*%w@NhEcm7#1W8PECV&4AOPJ$}<$uEBt zz{dwVFMs&auG)@43XSd;6c#4N8oRWs9^1S;BRK2ufxQ>1Qx~q-x^6Bq_-DTQ>~MbT zj77^fKQvo2Q1h2R?-qxIatKpFMdP%^tG7LzwrBg!g6a;Jn?$U*Lg~YgtzSJq<;+3@qf?U2gDV}hCI&zI;;HlD=$scl>5PYt7vc!tJ4Q#c0#KmZ8b>jd8V*RjlN zVgZ7Jf`0eA-#Hu(Wa(Kf)~NmlgW;Wb-f3%Vd+f2tMiVFHWUPVyW`WHO4ZVYUmNaBm zYHVtJC>pF)mXztO*EpyzH#Eqi6P|u@wE(wfo<4oxYzeY_7L%c+r7iR9g*t`ni6#-vzD3Y+JpI9TJ*|Scc+;_T&K(&rJ2&b*BwY{ai z$Leqs4)gK7dk>y1@eYmMy5;d1F@7~=g`e&`qP05nFPuD?T`u$wf9}~$3(~^++glGD zIjb_+#S$+ehk;`_Unr8xq*RO?=9Ctyo7*nsoc1crbhI2wC+7{N^fxrB~lUJ^WEhMMgD$Xbc$Qq--}o&kzL2guKKdS zy|=4XVVb{u#nw%$xP*S+uH6UDmpa`fVK+B7w-@GLDyScPY~#AbP-%Bt%l@P1jaJm- zfddEt0U&U{5|}b&3Nr26w{PFSe?LJCTQ&??`oI7E@0TxMMz_4Yye7GAZ@&J@tG6_a zcbAuz8SU?%r4xv z_DZFrijAIV`@3>W8);n0v(Il%3=qyt3W-X&91t48V^F8gS@L7A2;ZI4TXph;t{-C{3;vo7Qh$zlesDeti5lZ|^*N z`ohw=iNo0llD_HbjcH-h5Vp0ru2VVCZ?iis8okX<(C8eY@ajwjj#IhZD-H;QqWx5M zC6y<6{>5i!#mil`G@EX4PiEbz?DFLB6&}f?TN)CBy!!$=p=_<)b+)d9?_+)OR9i#&RAOHmJMFKdEBNPAn>#rkIj+~xbwrnw*%^!XAQCV5p-~RTu;Naj% zSNaxAyIt3xU*3k%SfK%4J-z)lDnG!R+c+>#T-}l!Ash7p1O>dB2Jnq6p_z?g#| z+*B&UN%nPhsLc*hpkGvkA8I!pRS_F`Fsr7qsoCvbK2!qt^9$fI=tvHq&qjF&H*yzz z-C-~)^hSp`($C-9vm!z08;TYX^cqcHS7yvTzQj8+Snkmq!vtc9%u7_3ed^1mj=lkf z!R}&mNHpUyCj0nPyHVfVsle&X2jjwV1B8Sog=v@Jo`p%bGr#-u94GvxX7@~;lG(j_Iz?6*X*LDq$Z{X24tQ) zKlbj#=Y-SYLet1NbJ$p+*3lRgDozrF%XP&jAuH}N*2uPBX@TdQCzf#7bgj{(Q0Zf2 zSB9lFqw2)Tyr8&*gy>+W!-3SKQt34Mm11E zQ$3i5is3Zc_~6B_6To0InJf=iG-FV3`uIP#pRkdP_=MQ$GkngU&i_W|xtk!+Q^Roz zgK@dT!tm4@bQ zIcz49%;obWA|A3NH5D~RWblU%!r42BW`R8(Y0ZGfg;9LOq7l1~X;qrxd3*y}YHfEi zB@*d%QHodOU>JuZWHD(Dv@F}=F-%U2;nJm|n#MM(Lzi`-*kH#VdE&_*{$R_J*>N6+ z!8aZ(k*}2Layokl)W|BML#rOJSe;C+P$C&0>ONMO#K$kxPwIAB(fozp;#oE3cDWkL zOTXHGN2|)zDl{{WV*ZFe<)F)rp&9kz-qKiUH+jxt30W+P2`%ay zYP-v-Qt7W+=V7sg6Lq?fJkn&gUg@Wdk&avx=*nr<|a0&!~01$Yf2%u4DYHBJn@PGKjAEKh7 z?p)h$G|C-cqhU~4R?~{%^z~b}Jv0OL06d4&qW#@3|InmXlvOvUM)(XTHk6eXR;SF0 z^*MJw$6zC8#K-bkS2`1#{?3z`MbECATatgNy;sZk3ybm>c2<=lGbZo}`Pt833X=^x zv$6Kd+~2&ttGl_OxmO)Kyfn@2ym0DVO1KZlHjq`)OkuJUrbLd8>6>fH^GZ_}B>A7u zLJRj?@o7^yG^&1Bq3izo$b%ySy>sdY&YdrQV&$~j+|0kee?S-z{eQpPYBbrA#X)P( zxOC!tVX?u6jc%%gqrL)3TCEPN)q;;*K8|x|Wh7Pa%{zVkCWJ@}T6zy2 zJ^#|CrP{6rG~-TT3Fl`dkM?Osgx&0?k1QzIUs~SLnVDPh*plSJGiTeB$TL6uHJ}Rw z9@c%G?fohPUE5yN*mu2YAFc_RXR~J!J4s_Qxh(ube!1S}q>V&^QgF``x7n-~vza;K z+CeD{u5e~rTxMnGxf7@3Lw!Oe)KjO=_v;*KOH+M>TtYW28~y?TAOHj&SOUmtxp?v7 zJKemSHSNuH6-_-Fp?~z8lt`(>GcD>lB*J+!r!*fa&AFKW#6#)BY2H%y`)|GRrp19K zOe2%0ZGChxnvEX5B@hT|vrlf=yTj=uMBZ`~(dNr>AGlbI2Hdlfr^bc_@R(OT{Gu5% z!(_)B22?qPHPMU0JjJODs%7BEFaOwTbKng2qSb4brbi=3^{`|SD>|H!?&*g%M$uL``i<{e|~=Oi;vJh4zvCtvH*# z?4g&QTz=i6{jr76AkEsj&@b5=d_ltOzvyYeUh^9uS}P-x7QIg4K2`Y@MC zGmPeg6CeNtfB+Eq76fk6w7dCU0h_mMlK2JsNk+%9s9MULWvi&tNH>Fr40-D8`Aq+~ zDO0E721R3gADb^pPKgf~3XdArP~;o>^0rmott}Q8H99UfCM`$r{YGgZas~_y9jUbSPd>%8C_4vqzCj@=3DGFH9Zk^>=Z~J6zG+T) zbwdY@D@sm|3-pzsbWvdBbI)uNc**!IDvc`L^uz`imE$W$k#~4tWa6)1`)NgGy-IIo zvbnMGv0;I}XvTN(Bafr?Xic38j!-fsCS2Ls+}>{(ju4!&V8u`Qa#Xum=7-j%&tJMc zIKhBo2~kBHfppU|&!o?uQ{UX>Ao0N9kc8L>0namrmHLJ~@#F>bYYTefVZ z@=?g0=MwGYJAJ{jps4u9%dHBHkwRw%hlE5&28;Mtrs4e~<6rs3j~nV6yZSUVHa9vp zDl*icIka0(!nBO%`N08^u|tu0)P!lXo)d)0qhgW0WO2nSA9*;{K!kdGydYdJzs*lR z=BBWv914n-2#!tt)h{GW|8*E?ZrANO**h zZm+Iy4~&XIYtDs|pr^KOqKmyGL!pZ}l`(tSYN2mPOP2zT#gmd^l&y_z14c0eN3nwO z8H-+}3cJuAxMC?N%E| z|Fh3*Wbs8q-5N|P58U+R;{;Q}=iJ(kJE+NU00AHX1isG%aJ1I$J7|Ap?%7|x@riHD ztUtZ>qHN5%ubZjbtZ4tmt8dmSt&4rPC5*%Zyz%y5rbk^}edm!w*!TSB-S>|bFW#`_ z)orV;I0|m2g70e{gR*Dmo}(^?AZcn!OsKEAyXlQLKOA&0fB)A%rGFcPR2+B=KIcZdFn!*md}l00AHX1Rf9q z-_ZzOs~o6mXk`h!lH(&;^c&8IPYBgzGgnsC>uf~I)MV+97x!v5(%sqIgu?E8gF@rO zN5b{Q(2C z1Oh++2mk>faQ_pywE^_~-`>e?!Kvq?SB}I2Otx&02Lyls5C8%|;9C*^Gyg3CLUAAf z1b_e#00Q?G0Wj_N*7E>ufB+Bx0zd!=d`kjg+P@`0C=LXG01yBIK;YgY0H*!kdLEOZ z&8f=ZZ4e7E86-gl5C8%|;Jzm?!FqS6(`7Ik(GGO?edC}3KmZ5;0U!Vb9$W%qkr2K3 zbAtB0`T8rb!pgV_z(5iZ00KY&2mpcmm%s!=_uf zaH|B6jYsc`r_<@^FFLL-KHkhD8}D>F`}FQE6OACLFadu(GDraeKmZ5;0U&S}380sz z(J1a9p2JT_qa!=UmqSfe$x$lJNu0)t4_dH$C$0{?U{1~_QO^SoAaJ_`b}RkoLM*`T z(t~n900`W31kg|%S@;Rn8gJ%NM}YK<`>!0mMtpBQRd2tC%sd6hA|>P_(F6}H{m5g2 zPapsUfB+Eq9un}F?1`-Vc+)-(O`{4|n#ZNx{mTXwJ|_t0F|Kw&?!Hc-0T2KJKmZ5; zfqR3%_<8qnTG@$l3HQXM%Z(1P}lMKmZ5;fqRX>H<Ks^FUx2rt+Oi`U>=KMKVEBJ;p>+bhIuu0;#Ji3UAV)jN3(?ILKqnR6C ziWy0`^67Rt$_p;F44CH4pX28(8h7{lOQcfv@xxuzh(*`mySWsrL79_Nq&3kj>}zjmQMzVNPZ)jF4wLqak3JPA z&Re@EZK78)OlC_#77zdeK;TXjn0(Wo5P&@rK~}e!_bP~K;j9(W^vi0rdY;7ej(=BK z(R?|H;c6FGrL(XY*#DcuZ)!E4?{sMiK88(>3&Elv%*w5t{m2VK4#Q2jbXu*=?xfHd z5~-NtcB<4`j6$OzW9ugQLJ^P4!bw7<)W)P{&;+v4-+IKIB%H;$d6KaB$UxL9A)oaNpTo8r%z@Fg#=?x3ysMU3Her|-ek2i=ro7ZNoTM`A`yMq0%Mq=zqPzo z_sG^X)IyitrqdhjP8Wm45sL+c-J;eSs5AyfINdl^C=xL!#Gp!tQ<0K{i^K&&A&-L= zDUw#Rv9hR8VH2bzMxe)rnx@t1qElwlggz7$g)r11AzV&9YOj-^(-|~69Tl~iO$LM6 zjp1CrK*;BiZennt>(r4W2^fzO;m<*h5pZp0gPSQ_x?~=odu25wNxDr2y~%8&BPB(A zgiEW@pw*HT9K~f)L=p*$G4VIYX|rf_2EvUonREu5$LBDecB@vaCrFA&EM_xlR*~;SZscyU7O_4}M6vC<1>+KE~oyii5MX0RJ zY^*5C$*OmT$fXPhT_TmxaJSZAPRW=fkOkl)Bpo)ZPNyd@3VI?O7Q^BZZ9%VMa=8cu zP3TekPXFHo`9J^&0D;>iF!2xcZ3-JImJ)uLPn@Y!)?X0ipBP1^-1R*=EXsdhs-=Cvy1f9iQ zz47T3IrjG7J}|p!RNQT|6HzHMwmi9B&UJqL_rEvx8zN^ejEM-OQ?LAHo3zT@lKMqY zz07AJO0In$znfp%<0Qzar1Y&@H)LdF95|M_f9H0C-pCQjmakcDZp}Y+sgcWJS(EQd<3#JkFF<7eSISq#bz4Z@xi~Vnw9bCOG83} z(a_dS*h{m|>^*!zW3qF3ynx7r|9)om;axi}mNcL)LU2sd%P&92b?Xj(xvRcI(fr~2 zCusC(i&sClacOPd>GyVBV2fqX|JXl;>rt}za@FTM_O+B>ge){ZZ zo?O+ObNanKnH)CDX1DuACcgaA(-N9>_s$(9HC=*$V2jx*@(JM5$s;>=9?Pxa`-DVB zM@t2$i{`v|bnlUKMP>)dW>U;{JS{DzwxlX-`m$~7Q{VdiU!)0hfAYfmtRr6?&a9Ay zM54}=!NuCJ^*K4w`QeTuD!qj*kUsYGGYe9q>Wi`t9naTU-M{%&wa_QvcI{fJ>1oA1Ww z^P@1Ao|31eE=$7y-&ERy2$n{TaYa}p-%Z7xeq6$fK{lwUF0>&Y6`vo9D>Qhc?$)Y6 zm8Z!`@yOmgV|8(wRA22noV4(vqzE}0W3l<-@bHk>DX}!mU`^}5{Kbod*tUZDflbf9 zv~AO}>Z}u0ea`e5DYF+Y_9B!GYWKYKq$|#Ok|@nO)@+hIwt6nZW6$uw(9p=JsOWHc z{>5B*czm#ge)eouVCwu|yz*b(H2u-zSu3B|+EIE@5Rvw)SAP`5vmZKqIyf%HN5nA< z_UzbweDzbCL%fie0uxGo!y>}s6XR5Em2G;~+J_%-lGc3b=;`voAO8H6^($uew>Gk6p|ueADc3LO0aiDb>pmgbGR(pU`zQspPzl|eQDIC*hCIy8=iI{p7 z8T|LRUR$|zu9uL*N~Sl*hkcmtb`bR{+2m;d$e zFDwMr?X(%J4!3(KHjc`Sj*aB=I8l+&-1DVolNF~iBBLTjJWgmtB#%*OFjz^qv$i;o zDxVS)AVn3p9p(euKdoq1&}g`_PaWt(3~l*~OXb1AaxXf`4e$}_b!I6I=SlpcL;QGj zcX*JjQD;K0}|}?tPTOZZlgP?$qdLE}I<^J%vr4(Hq@T9A|QP9!I^9 zhm)S2k%Hr={r-=ULvk>jLih1z)~d9!;0Ql25syXN`0O?(l~!@O+&eH>?k#5H+^}Go zTB9M{=o?7!@%G|!*jzT9Al+0tJ9$QmWY2}DBf;=5PBpMxY)0Zrom53VUcG-_^|2VI<2hmmy4EQBPd0uQh zBpJ;Sp+`=*JU)Cji*e0=43gC8Od?rOfUks2;fKm4J!+jtE`{dp=gndZ*i0(g{PBvO z@BsvX01&tb3B39GE3Z!e(A{Wvrub75yeI+=BQ=oW%Os0BFtHSm5KwR?Bf^^=;Z1W{ zF)gx?RBS#Px~s7U-7V9ZaOh4F)&pPe^h;Tok%R`inA2uFb#T9#A)68vWYMYAdW$SD zgke>l%PJgDsC(KPFBaCN&08GEwx2tnTT@flqtH3bMjM4C_ZHR_WR-QtUgX}v= zww7HwSJE1vlptc^J-q`o2HU0|EGn(&?osO1gLyeQdQ7-%aYjkjnd-}3dY$&t#cU%c zS+Qb1#jHGd=?=w5Fu*e8iTWx-Eg;Hy1EHA2T z9$c_u390SAlwXKsx7Sw|RJP1qxQI^-W@i`H*48UEW{W|Gvjn(BnRy|%x~3kfjV6?x z7}L*(Ut3&I)zGEr@2#z>s%+@OoT`G7miVbDd^*vu7{nR;xG9lzoTwXG*hOWSnkedvw;A)IF|minfWAJEMht{vkTElxLll{l~r2aXmz*-dwQt?36Ji|K69?3s=lSY+vRd< zP4=K5-}3CUjor$Q#+pk-RX*YI87a}q&gP=>8jY$yH^0PaCnF=nTC0i+N-8x*hgGLE zI%!f7YtI)uSbpKrp>plufWhnx43F}c3Y6V#1x3{sv!N*O(&c`O56hC3RZvq?uNY>_ z8XQG9K%U2ZtK!g z2drZTpf~q;CN%9m^~I-32OfWHrD!NVj7DdMhK3l_gEj&W2@MqqI0A_e+o@?$IU<6+ zt#)kT>a~k95>2Y!vg$?(Mu(G#UrSjED*oa+y+DfWGIlk?Ip9rMc*W)$7+yiwo&&tm!t;VgiLW zH+|u%HS=f0se77h8#`G76gHk!}j1_#PDiUErgPnb4iN{IM!ZEe5G;wSe- zaffz-5wAY{{R7+u5{`uj>7 zsvCtqG8Tn2nJwOdp;9iTthmfVP~>u%!)C!5+?e?Iw3HZ~asVYV2^&imnw}ixE%!z9 z{dy}A9UUp)bA4p8!LAk;Lm&~*O=c5Y;1eDi7#SI$Q)?V8tIoSGC06`4trKwfQ+dvy4q(3r^Mi9FwEi5YV4 zB4_N#otyo9DU}EnjrWqaR~0sB=!@r09k!|0%hL6>zW?s~4GLTG)TvKAy;;Vecs-fJ zsy=!&XU@`PGBM|RArq#chUA_;^7&UMy#m6Pta*6x%*0_6Sdx9xA&i=p5;0*ZM4+po z^q=p3t|NFe=g!&m*a{AvqUmn<+dn?-*1FQt)1P{Jy@)xnk~a|ez$P2|+js6efkOKG z`_-#9Z(BNJ#FziTwip@)1b_e#_&NfuTHKpv^b;{@XcqF?S>`)420^x(%0RyN(F3P4 z&|>)O4rKb7*CpP5LTFNY=+~B}a|JUOEl+W|(V{Ij?S^gx23z{*<7>ZG(seg+ieGTV zrp-^Fg#dCN$*AaQ^H*M%^_m2($ZPq-YY8{W75kw1V&pDha77E2uW%7=I$Jmt(sxb% z@9hPh&6^TG1-zKs`8Fkd3!F+)U4Iv=dnR2}bY&HdSV|R}U~mYzSg|aJ~o75+DEs zfB+D9FbJU8a;=s0XWIqHOiwiTK7LUgYBt()25m}evJn<1dLbwb`o}0zd!=00AIy7YGaw z(}(@=6AsytPU9W&!)l`3)QNVLy9f00bt10GRekfCwUh01yBIKmZ8bI|RVA-#gC&GywuY00;m9ATSvO-hBO) zSHZqd21$?s1b_e#00Q?7fv5I;82bH*1pqUD-+VDaQ6K;WfB+Bx0yjedO#97Hf;>O~ z2mk>f00izE0$|$jn@0tT0s$ZZ1b_e#xETUq+HZyugsKUzI}-~4 zX8sO7HV_R2fB+Bx0zlxqCjh4XyJrqH0s$ZZ1b_e#xPt`1wBJFvAQ}h&0U!VbfWUW8 z08IOL&m3w50zd!=00AIy2MJ7$X&0}Fns;Yn0q$VaK{OBm0zd!=0D%Xcz~q?u2b~hM z4+sDOAOHk_znjy< zMl&n>dR2Oh*h}W?CBX5~WZ$6vn@vVY2bF^wy_rI#`^bF6f~!bx zR>XDrNViMTKcF>Q=}fjv!tYlMk~lpiG?;nI5BxgOx18V}=;_rM?Gl*`X>#k|i>vh^ z>>AbJpvFYvI8Pvy%cNAwEz7eS^<8~~B#jjn=1;keujy5F;0y==0U&UX61e4G`oXT| z-@W!$yUK!7=!+lS^oy-4M}HnqeD%eSv(*nh@zTpr&S%`J^(5UDnJ0ez&qK(xvjozg z{_1B7l7hb#v*@UmJFmt9DC|Ibiyfy@#ZvDD z%a%X2eleeQ%a3VP4Y$*Fa{r!>_MS(*F|N?(2hTq8$wyzfXwtvE_hz`{Rv*%+)SEvc zEe7qSi#Y~H@YlVK|e`iA_v- z;rUHb{?c19^<-B~$uHmh!XXVi@Soo>zqTuBw-^gA<#n0a8y=a@y!qBcP9OjTfWX}* zaLd26jn(D78Vi@lvs=t%MP=G2mPuG6)`IjLs6`~1=?|?tN{#!Rr5A@|;VLqe@L6Q_t5h^~~Tfs;q$L(ndj;f(ju2gh-&yMY9Yf#Sy zBQZLQyXA!+Jp80*1V8!&-EOzbg?cI2*ixf+JyekHZu06~lI*@*`KLEO>=?8JhJ?Zg7uye{KyvtbGr$2xJisQgyZ^ZhMG*GN>DZEF5z?> z*|YmhL7iCUzceF~LfGnR>njQ`eaz(k{J)>{;xUFL41GO3ppaO~wS)U%wUOH?C}G;4 z{}O^m@O0WWU!mc$6so5gL(-fjnJ3=*_(bfSRgYb-AEW>QAOHkznm|ua4~0VU^Ygp@ z2OJrW_V#wMSS*o9Zd%?qXS_wz?lcw@*4hbj$v7pkIp@xl z)-*AN()kPLr9=lJJF6QUsBUNz$^1nW)A2L8Ivbvvp1xpa0%OEN5B9d#wDdE$l808L z9@u}Tth8Leaj}F;N0QMHxw^W+&pR-v(SB|gK> zdAnJkla*6m-{Bzfz|ipJOXm5CJwA4$PFYjiMi+Po3dvLFa(V_$5%EbY7p4ojOqb1g z{LsmkK7B&^f*=22Ly$~N*v&a7j=cTp(af`%3o{a<XQaPw1 zDNO(1Ak<$$J)o-M{LF$HbSo`mR;Uo~Rhfb#ql5kUJ*}-R-725Jkl1iJvTvPD4ek9p zSzvHcA@T6(07NiceHJr^XLJUzSC^RZ|*`k?V0!~L`ePw-{ z#qR9yYRND5N=uD1>2(T~iNO~l=RDHfVKL-n=Tz2rSe)*l@W{mrX9ak9{3uSNCcok` zM<5OKVV*jE0ren*BBR%=m@necT}bDeMvTsT^oh;u7AD}NySm`~umAG-<+{3Fh0crT zgFp@Tw4XSW)2-Ce=yn%VtClDphVKFEZ5M zX*1W<)LSuDc!*a)W_E4+U~trw6-#D$3s}AFEv41XCaXg;(34kCkuf!ab2lb75EeLq z01&v}2^16*?BBotU;p}-j}Q8>y5^{?tbFaY*Z%m&KTfV`ry`-()bq6$o%Izvk6yH3 z{9pX?zid5?HLbk_T`)5>mOeB>sw~K@YE|_2w6*l8aME6!UzD9!E)9;1@Rv50=l|bd z|5IAsm|sw7Bgp2un)8|YIyWyZAqaqV|Mlx1vE83+5s3+5KB}(fzx?@cdrudVbf(*8%+1b0hBGiCI>1}db-DOYfBEoIMPo@}na1pB zyWEhQTc~t!W=@S(cVFJV?~K7kd+EP_kR0xVFi>fX!0?dx*toTiEJc={f{|qxPyhB$ z?-$qiaJgJnZ~Li}=NlE)gt$l^i+*>^3f zl!OTJ`Te`!`f$I6={+kg8g(B|efjY}K0oHhO!n5s`b!0+ zeOB6x zGp93KRF2f7Sao~t@7{PXtGKqJpt!M9=@&W0*VX@rw?4|L?|*F7T#KsjZ*TtNSax|u zd0G3w|7Y(!;NvK+2EKc}_fzk^ciXb%-h06|U`+1>2!W7G8)OU$9`or4Id6Tlr4;*I#+|`6;>XL`7MdN@od4nd>iN&q|BipIOyh zTir9bJj{zfDp}wi^2{&p3-w?f*!}*;$BK^}KfgFN%zam-F>QPNp%t^j>+&;S|L@+@ zCr)l!n-L;m6An{ueuaZfpPd>f_V$ep^R4TyDaAK9^zWLCWP z=hv(1tIieF-?bucNV3ypr#$o2qv1Z>L!W*4$>D;p4`nV%9&U70vC$KQqW7C4nR<-= z^PfGoBq^}HrttG4g;F-viUQSST0&Anc-q1>88LN5=l=Y+kK0>2G)7|m?e`4y4je7* zUa)%IJ)4(^xx-=LA(_PKBZtv^BYxh}Up>5)Lve0rykfUX5%LgeDT4)>`(R`i+c8Mw-P3^dESaUHZO`V zIDPP+?;WbIY0?{P9(>v@+qZNmzG&|0_~^qApc zzWVE5|2iQd0j*T$=jZ?5|NY-X4?VPU<;rVp=&?!vO-E`IR^5gCDm#fbFFlEjlLDjT zgTxGZPe(;V_t;Lw#3x4vcyYLb^m*xgCb^@zS!W#n3oG#sOizg9vf1&;$-%y2GD%NP23Nzq#Us5H!}%`2!S zsElPR7JEwtJb`%G@`XYcrKP5-W5D1pM(0UqrA6|%+^}GOI+fdo zsbi#Fl#BJZG}U*j1XAA>OXmo4G_7 zAps&TJ0^ABZ=QWTIe>ZY^yy=n#TGl-24FKe90G|%z;$gYK&&;tS6_e*dit zX2o#nq`vOXBVT|0mp49YmuoFbS#^t?%4Da{N<^RnA`}1g(sPg9z1dSRyb%E{!Yp6D zFg(Ox#G7ER15Rfz%t)3BxLyH~^Adwm?nQlL6N4j=2wZs@Ob!oizo3pRB~6ABlmP-j z00@jDz+ft&O zL|MoVtybr>iL%b+nNf0;pU$m%CYz(e_Z z8iQ%XvSV}x-EALP92Sj6aSj@_PU3R3kO4xeeH0dx<+jjhzBFQ6%P*XK_oKtjy&4ZM zPa&Hz)`AbKap^CUR*5nLC=3yg?H0pi@fdW9)@(B9?QUO>M5DQN$Hydlv5*0zlXYgj zQfb6Q!zRaOG1S$!Nqzi0#9XyjWp_FmOdgBt8YZNrfXhXD!L(Y9JAV;fqth8~{t>Z(fr`Njtwb(J|K&9_9;%uXi~%VG>;9H$J8#u4%^JA*+L86*F-coHrd zBeVvigK#Aa!T|(;01&uV1kfM1C!Tl$t-o*IzMaeEBGbNV)v9YHe4L!gns&lrDabD~ z*$D=RVbG`z$k|4@;WT9YEFDdCXiYpZQ0x}1)+o^;HH}O*7>&r|WpcSF(c68?sMngz zR*X+KnoU}R3Bze(G2ft36jn5%^mHbJBA4~KOEQ^EtKL+QSF(OV?6A{mxA&{`Lw5=F zpvq3*Qa*3gP-@j0likUpkaQZI*cSqmeaQjmqLcp1Q+gtZi&( z^8~&=+mr&Lq&&@B34_LxP%MgUKxuWQ`e}2mMk9hLQ`$ZxN!e}%gq86c; zj*`CRN+n9>mr6ax?lu^aH>uyq$kAvdgGQ^fI0Q`0X;rIrw$Ykyi-^+M-Mu!MEyK}) zkrHTX;%?feSATQhSd&b%{E*5ntu1v|AzhUk;0e$rn8u09^28a>l>64m}?iC z0Zs1o78+kDrO`0cr8S1HsJa?o`ODh`+v8Wid3si)CymLDijDOVu{%{7qsdHS3D{J! z#$;7#G?-L^q6bY4%_IiL$H&WEAIC^2$?$TA-DXkf+`1FWKD7hGMSKBDxxZX_xDEt> z01)_o1ZXtcZMWTqY`jz|UA%bl_Y*RiT9Y;HIz>M+z{q9ac*k9<(?Z;$Z6?)gfBJjd zKwoiXOTvh0uPH4qZ%j)I6=i2%(3qS_(UIH{zfd7-Ka*RrbKRV((jt@t&hhYz@Z)#Y zpKt6^awWb`{ruh_kKrxo?UlK&y?vm)p}Iw;4tINEPV2donWCOut%gvqrdf+GwmKeK_Nb(yoUbloXV|B5*iD$UwUh=&_C+; zzuT!$n$U(Rsh5w3fPVZ`h1PoUwRYva(x$IZANm@zY8R$PDY{z@p*3TrRusvT^4WYr zc%(1CtgHLz$((z(EYS6~oXjr8X`K1#NuzU`Q7tBU;^7hC?=7h6=|JgYo05L_#-Wj1 zfQ2y?Sy|0;WZ~R4kiy}(qS^B9F0|xK*UL&8d&l(oJFTI8^-8S)@$vBV@)WU8o~hHC z?c|ZI;lon_M9plbja)?ascgaQq=>AluCpgjC53tU@=0gTWXV*f_=QV6`5aB8>YlFm-`}I%yj;k_D~s}~+Ld$`KRCdPA@WKH^Xe#U&pclk>9b7LQTfWt zZ##H?&pi9H$!s+tEQT|ubCSY*$hxizmF+m08XXgfqVevKgxzK{o6S@-F$BXuG92(5 z2mpcaO#p@BZ@>Na?_GV86(?)vTkESEIu#tRkfrJILB1n@FbSW9vm@J%SDeqz-?2K) z-6V@@``e#iMmvfX3XM-#?A=?J(MF6Ci%HM?=JOL@f38=nNKE0~ciry8BYm4)sIfR^ z#V4i2NAgA<;^HG*7`X3bvtr;vac$^)KbK@ORoheh)RVtPMnz+^&0Dc{)!b+t8+NcM zxb1)cc>TWwp;W4+L6HyKv3hjR-K8K{0)@vxlTPcTa5gMm>?ibF zvLvbVaN#F!zjgQ{x|2la@>oWLR&PYErNBQtm~o-$%)$Mw^|ilv^p3G&S8chiS7kYt zo%{IDs%d1WT5F7-yXeuKYgi)-7Gn#Ko}(4_^cCxWVYcu7^3=gEzBu#++D(rdzm#O~PZ~82zD#?)>+ApC9<-gUq8}+e`+NgRii&Rf^M_U|t~ z`1c!Mf5dj81rsV}99}%3B&5v_Jd)Q~miOf2wP<5HpX-W=OxOgCCs{Nvv7+VVC-40G z@F#Ti90E3jW-uF+Y7apt zx<+dXOPuqwdpDuy_h?7UU2?+UN*;goo`1gcSwmIH%atX_^+&AeEZ*jAx6DrnBvC2b zcit*fet2TvXN9MapwPY1hOb*QH_~4^P~Ucmu<;j2G`ga#@`;}nI&3Drg_yH^^~zbn z$gl?n2hquRb?)h(HPt@<%5!mJa!ALEfX_ex2mpcUL|~Gp9X-mGy>jg;j{vmGZOn7t zaPs_>tBg!sK zDalFEA;@782Ssh!RwvFT(gCRn|8rH#ZD z^Jr)VJ3ML5%YXLD%`59u>KSZ)N?KA>s6TqZ&W1bg@ePlwZ0zQUJW>;*WX-kpT`J_b zBWd$iY;ZCpOOTcg=EmQtt;Idu0CN`qHW<3qcME3!jx7E9Scr zvIG*}HEUN`8DiGZPIa!-cm0M{WWLlDig!JGm$iK3*2wtO%BtE z@rD+h@vwwhzyEzed3j}1r<}^-Bqk-sMFzQdUx&vgZn5z~Mau3eaN&TqzTLsTUeDJJS>82%wa@@RYfK_@jSyOjGNaMrf=Gq^%2dra^F ziGc$M00AH{jS1jZtMx}vul)SU-~Dx$S5(HUFFfLjwyIC%F!Z-Q_x$VCa?@Y`{@Uya zm(9L-I4obh{qJ`U7cRf`?&lv^H)IYk-h{JD3Fzdq{fADGxuWFM)Tm%jMOWhsFZ`{` zK>Gb(Ud@QSI0?J7;!Sx)-P88M3$He4sIR{A`?M&Zo3fA4DIfp@eu4xh>9zj^$=sY> zW^g$Sr{S}`XZGy*37poC5(M00e*l5C8(#j{t1yy?$&#G7ta)KmZ5;fg3;oO#2Oh z4o%K10xR@iEQefxnKfphEf4?#BLu+AkC1@hKmZ5;0U!VbZVCcm+HZkO88@AV3UmPiKmZ5;0U+>$ z2~6O|BbmsDM?reGClCJo4~7f^fB+Bx0zd!=TpI%JS9YV=JUVfoUn+M3(~gWf3ep=a zcJ#U|mwk7?#^utga0Lhe0U!VbfB+EqaS5RJfuYxjG3g{OgN)u6KjHfOc+-x2bc@y2 zq{K8f7Mpgt3Bixs4`>Yt0D);v;Ly|WKrX;EA0trjCMAGgVQN+r0;(lQXlK%?mzwSI zW*)ik0|uuJW5jx3Bz))ma(CfM|@ zHW5MwvgF|N1cy>?Ur6-0I1hs}w#C`p}K z%sIZ|I5|JwM;aN6789Nv0wy0n9&~642mk>f00gEZfeGw7Qggg%AE$Y<69254WOafF#QQ!7t>BAVP0G;RD}6(Fv?KiT*PsGbpHzxVk|1=&AWI7 zUFXrRB`d=~%fH_IP_8!pP@xX<7w`Qqx2EHV%K2`6yV=m%)Mj%0&~yfr{wSAq_YSCT zRBXlRw05<(tF^}O_V0RqGHMiU?cMh4CH^~d38$l9)-6|PzH=2m0D&Jwz-!K5{|UJO zKL{aIo;rc6q}NSdAjV=~Ya;Okq0?+97*ujoFR`x?n-_*HmS6)WmtiBE_*eC$)Br~a z7niWf7OO*NC63pVDiqgdDcxzeRV;V3QBxKlH)>E-Hjja{*oOO zf9GxMxU{SHy|1OFv_+n{nr$)m;NKA}D+a)KXhFPaL^7S`0t-WL_W7W3X)1v(BR?X3G4kj*MH#aG4 zG7=_V#$nX#{o-KC;?>c?9;3DT>MQr>wm#=-#vfB+DfHUzG2-lnQ*S^zdj z>Nr$ts8kUt!L*fuG(js)r{Gq#?Y~7P*Fru{vXEFZrI|z}o?FJLX*V5iaac*{kK@FD zK&PsJUMb5esNeYbb8H%^N!Fcx_GEoyk2E~_FMoQ5%@+qs*`=M`&Gj`Fqb(#V8tv?_ zuc@<=Xmm26(^~?>fPPiUZbe`jmYfL6d`YcyJp$RjK?kWL|a287I;Yu^9m*Lsu9-4V@Te|>v@ zd|DjSei6P=Gg#ly>L4>jTn696SHz)qx3~AmRSXV4JR+3Cpz2kF#Rd6AdEH@tQVyFH z6&J^$Ih*V1nPOj0PYH%z+&dJDaoDXb^>u2aGblXFL&()C`Wl)#8Elr(XcBt(MFe}> z&AJm`eR?#v(cjktdH*U*_|MmVOXD;9yW2W?lp-&`upn=TSzlk*Xv3(4!-7%Sv9VET z_>l6gl_fdl?aNjz7qY2dLXO?6tte{_j*1lu*~4Q*5QBYP$d0lET$55uW%HO+r$S>! z2GyeOYw1)*rNr||wu^#ML88aT zgfnR5p2pJuzWq6!FSTgo7P{m&zX|e{a7iupc) zp+UalseV_XJP-f^K;U{1xM*FjmGpQ&Y*69MQE)v4m`ZQkTVb{luI+0)5p{bC71D{@C&ao%U&oF(Y&;9!51ye~9)VYt}x)&3J!oEaPvpjF6& zk`_L4?=50)|5*&?sY3@x@ecI1W@l#C)YP#9=XeWTHmbck@4xTv#o1!AP2bh4-2Ctp z83EKIhfk>u7KL0U3`_sjlRFfBomDk0My>8bP7agJ<@*E$3Z3O81%;*6{Gd6}F%eW6 zW>ocl{NDRjJw`EyI-oM$_RwSAl+I7y|5WW{1o=ti{i+?0|1yBmn^oNUv)}wKAy};F zZaR3jl16f5fAiU=#|nMCrOJVUxJB!?EC@e!a9>_se|UJ1QKbmaSpVQ{i_1=Z{qK*C znXS&RKL3pE5&Y-hCE7H7=QFb#o7!gILXQgc#xQ41-l>0oa7gUssp{+LSDVuoWO&l- z=klt5`TO4(T8rNP@XV9{cqM^qIQQ+5vc_(g6V2m^yn`RS|CY=nM_T)|7NfRLNB!*| zp7mxr%1TSsT3t;=S#LW#ZZ6HwQ`lBtc_zE8Tdt2toX4l1(87^ahVppU{py47kc z%qf@`8-Okfyh9#-;=vG4_L1HHE39nWx_o{`r{(TP9!?4OKK149v!^o`&5fZut)+Q+ zlE{=m$x!qc%^33XG-jvSXzFb0Xzo!jU%C8LW>L(lZMUvW@2JS#{neR84?XNF&hwhR z>h3MedK=1ieRi~=V_|B9=eVAR#LRxsGx(n`|7rNuJcKPjD~lhI{@7jX$u`}wZ;p5h zcpL#ICOWLSQ;yrUJ#B3|Gv*(WxM5va-+`vbo_K`AqS5Iz)V(b`?-H^&U25ijSlm3hR(fxdFtMG{@dB!FY+10XaZkXpSN;{+MHEA zc;}tB3b-^rmr3Ra|Ln;}cK`DqXpP0yN3-@qc46G2wL3R0?5W6p?cI~>Zr>V+85?RF zFoK*ocedC598`)S4Y=>t4UK=_Gke*(O)Jw;RW6$m9Uo`GTl5B6TYF9apd~O;xOw~b zy7s}9x7<1>F_c23QYqxwOV@k&2L1PcpSpS4)bbN&k=hSrB!sk=X6-(d+c!UL{(^aZ z_WDO3e`K)q_~G&nv(+A)ke1e^IQqq294Cdwr%}k*h4bfFfk{u^y_rq2ojQD2AQlBg zMQvCo`_FsFH{EexdVDbY_R_iB9S_{+x&Px*ovSqpN3?p~!rCtFhMf=0PYNhF@zufO zXI3ox)y7-awzc=Jz4yKpA2CwWtr+|S0yB$%Wua~p;yaDZv~f zuin}@fIXQ(CJ&h*y#YVjMs)}0Nt0UVonlvpidUE9nHe6balxof6s@hy&%;IjK>^;l z7r&^ord_rKm7+0O0u+^HGr3%bbA0Nl(FhW%7yu!*^n^SNSnS%o5EadjF$(RGZya&Y$IBYJP#pH3>B!aNp zQG{arK_Zjs3_5y!-|!8BFdEEEPnRSbnX~zhodiz(_M^A5>XflDp;oKi^*UZBhH4>O zhn6ppg{P35Mxz8aP@Ap>c)ch4be~ z#I8hy=HfH&>^c-47ehh3P;Xti890?jL#y4W&q!^P(S$Qu$c{3GCO5;aIgz3c4ijNu za(NuWf!=QDL@!OE(imJW*NCz|(4!Zfj*8*}L0H;T+e4bmFYNj1YH})*kd&N7|5* zNHH3XjFvyp*rV4sjZ}f(KmZ5;fg4BQ^;e#Kp8UcKFO1aynE<)o!Jtu@RM%gsMkU^< zncAPMKCRuGPpkUw`>#>>XTP;7-<~|1 zo12q!>eM+4!^1q#(lcm45$pc`L6u77r19b+0||>UKl^M!QEBGsv(;TX51Quv_dY2q zZ;*Vj%nAfujx09ek0b)87r?XPR@=;`PzEveuJMMwFtj(v0J{Du6i{4%43 zylCwbF@w@vReUD9Fgr6xHmJ4|R1Pt?>!WWvx_g@&>I=*2g2N&#gIz_{%}%>*Kt7;S zYP1G(bX+u#Np7wx$;>It%gM>iE%OYJ9Q^QuQ`v<*z5R{#HO-yLcRa%Ll-XO zpSw_&kg+^HEG)VIkvLSbd@*_xIfu7{tpt@zN=lFT@a!#E% zdFFgxZr-VrXOs?>rK5cBfwQvS-nyE~>ZYEMh_Jqzf_Ha)R$S32>*}s5t1wf99xT(@ zv$<%ky(k||?z)$4+LRRHiGU{NrO z9hd3I8Yjb>XY!Q-C(kM`UM8~N}Dbmd;37) z;w2ek0pB+uC^*0iv#MWz3UT19t#W0#Xe5A>IIcXp$b zxWq&z$=cT3GN95?=&X>iP>F!+u$fw$ng&z`jzEGI+$nZrZEb_jZ1)Wa&<^zKOm>uR zNHHl;+Mru)23MRI6E@h>*3vC^UqNAuu$VYc9<8yuys2ZrW|SX0UHAOoUku^12Yb7k z+hr66-C?#Mm)%FgXlm|uj~t20jE|3HQ;Ft=hCz*y!D87=1`>lC8yn4LP?Y^W&8?kw zoZ{mb;3ehMl~?IU9-GMKi(;Z9C{Al@bMt^o&lO3+LV{>yM|F9*&O&(m1sDf=v}OlN zfTKHf3a#0o)1t6@U`VK!M1Yd+db>M2d-~BJa`~c=kU+h>yR}>HR*A_G#Kc5eRK4{r zUBhfK9OcYe`%C}#Y4+SD^QC-&x36DlupbRM_JmW>*VEYAjf8vo`ULoTUM{(Qm=gQ~ z0zd!=Tss0SDqKp@c?;+$YKe^7Si#r9v=51Qy^hA|L_uM9dni6S_8m4O*HI}4ioGJs zG*+j{oKI-l<((}97Ftx8zk3~EGIBKio&WyZKPo%benDXmJoZ>jkSpuiZq-#(G)KnA zpNu47GN%i;9zsa+?3{ngjXTNNH&J`X= z0b0XR<={B6GcSdz$8iO2X1_sbU_xr38< z0x?f8@)7;UaV}rT<&U}YQ#{2vd?DwigMfle;_vY#`6+$@pwB=62uuqCS6NeMT*dU? zm_DF1@tegVyfFZwRUiNafB+Di7y z00KY&2mpa=PvDl5eep9n7ht@ZN7-;VdYs${C=rv`5$iPChM&VSa`{I7M!Us%G=e@} z@f)cUv<(D+01yBIK;XwG;4;}0<)=?zA<<5E%g8IaP!$f1;9S#px&8Q^hZcbV5C8%| z00`V<1e^qc9*yQc#&vD{x;rX_UgA2ScdE_P$WtGuG<*aCKmZ5;0U+>`C4eI9S_@{f zI?(IVCiL3J?{`PL(j5-Rpx)lCC+V!{Nvc0tbkK1i00e*l5C8(xkpSua$O|uzxvK?{(X25q9R0IM*00;nqDH8xQKV@W40SEvAAOHk_z;q@6rhPh(4(J91fB+Bx z0zhEO1i-XU85vXn0zd!=00AH{oe6+xpO&LjxBTJVkP9#^hX#}a0zd!=%qRk2=4aG! zfwDjV2mk>f00gc^08IPU2*G_I00e*l5C8%*iU64Q88uv>ED!(!KmZ5;fvXV!(|$EV zaDSMf00e-*RR~=6CGVH3=d{~8JG-<- zD^4PN`S?f$?9q~aJ)LruQ7rZH_7ITp(aTpkaoDWw?Hxud<{J46YacY?BQ&DUSA?RPx$+ZWfQ2adS|r$7J*00AHX1c1Pl2~0U4-&SAKuQo9lOcG|VEU(nr z(EHlq00K9LKzUVC8RP=o81~RA5C8(-hrqzVfJ&vBuqHte{r&wqoo>Rr-}~YeJ$Q#P zKflssCzdXo-%y;_+ul^wK9~{VF}8V!&0JZSS6bD`5J)mI=7jo6&|QO0)6+Y^;t3f} z!?~^YTjDWJ-)g@eK}MI5$aSshM_lZ&zK%07jxOU9l9G zH}#ZvmX_D2hkKAm;`2zA`m)@XVv|y%(Hm{0H7$=nd}p|?sH48}AMft-4vl8pR5i^# zN{#M9QT4s|-L+&^_!YD#oc6lH^MC)}K84;!qmoTV)A_uL2Ohb9L1K`)tL2~n+{5$; z^yND%Yue-kDn@pZ%5>-LtI|jq(cM_}k2iO>^r%>Dc4=jukAU3LHMsuH`)*&FP#g@IoBOCtR#91Pun)hnRhGVL^Fuq9k__sPKiGY)sNRNA2!|~vzx=Ly?_87; zYBi|7-1G6#oGOAu#tEm@nNwEV{^Y~AdGdzm3Rmbj+yVkX00;nqn})!=dGk)4I`!t8 zZ~pw}KObw|WilDM=x$IDj;8na>{l9W zW9yDPx0;OSa|)D3Z0ntOzWm2uE=mmOYH2)~UFviacB`eoufM9aOiS^6_Sq+IS(>O< z^d0>+OJ{MK4eC!n-doc)kg{<3A71#yid4Ufih5aZzt&*E2*RM(_4dgXYJ1?m9Dr@NWjZXc;i@$o}o((j+;q>WDnaW_dm=1pVRep76aQv(nfB*EYE0Sxf zYEdn<*5Gv7^Uoan=1i$HEa`>cKl8}WRfhi7_jm7;Yt3EFm4{B{^Zde|{q-;Y^xL0B zda&xNDl40Mh;f~Sk3awj00AIyQxov>^LzQ_m+R~6-+1E8rE zJ;&i(-tw3l_}fv&cHN%4{LjvX1hGZmx&_j%{n>P+MCzB}e#< zlRUvkoD?x@(cAy|>+hb}&ZammHXDUZvKfskv(=!L7gjV;Iil^iZAgjDA z1glY(b-vg^q9rCqGsu{)e{i6eSk_#J7Au@KyMrK%I-RUf!4P=<=8rGD`^F!ZCWnlP za!jBFT$;%Qe*fy*w?i(#Oddhd9SHmw1Ux-G-+JqY-slBD8 z{`uzx0>L%cURd;h~Lm!Duu_*hF96fC@Xqjw=tzTVGT)ikMm^w0H5b{M-vMYI> z&l50d6qQkDv)SExv)OzWgNDwzY_5pQ!JLZ00W~J!U9MNiKkjU<-}}|^_TE90*=9EC zk$E4r@u(J^$>1`m=mcqnlW^Bvv=nYInXC?umw?Ac&th?v5%Df=-@9B}=(dUi-D6R;B z!9b%p<#N@$w78{n+?9*xjIQQiK@+$I1b_e#00K7|0g*`b z;)^e$C3qC4N0uTsHujlko?){mWuB&rV)CZli6Y?&gUx~2P98pZa!fmQl@&7e@<5Tx zj-tcvunt*Y+({5l46Qtq@sYiA4u=iJ)lnIT!)bFMdyms-SK8&Sm3RH;-@B@1#sy0j zElN-9uetEvzVkzkjQns(9`6#9QBoU@nm}#2Qu_%M$w$ir6CZ?Qs0_O4v|G*{{(ASm za~^?_w`^bK$#w48^?B3aP&L=I0SR>297B5rP)>k-WYYk;gLeN@SxeWhjSFyP5W0_` z2w%2P`0$gD&nm4bEw8DnuCFdHuc@wA7>Gx1U3B$q!Vx*}8wdaaAOHkz8UkpY{m*~? zGjiOot6fL9CTrTwn!&R<I?Il$$fs5kY7i+63dj{tQ zd9Z70s?-L1KvW2q<#MdiA@6CcYVPt(4ejb^?&?!gIg;=oA%+=U_XxslHtF@l%i-t( zi9#8W$y$3=0^Xj<`#W^~(PLH{A;Fx@m0AFEulcKn) zEha#!?(HtE?{wEfD)1EW+1)Mmxkc3!q5r*)Jj^5$ z-+sR9jn6V`8=CEo1r*Yx9|_=Y27UqoAOHk_z)e8_`R?z(|2~O?+`{pG={4-%WKFxQ zv$dhU4;kYP8&}MU@NsKE*v(DFxyMSnato_AEQobqRQ0sH@#eeX-rV!&^C=whn&tBt zl;I9I%=*ti+*4Z|)>>8GuXD~@wKz!3wyIsG-C;F-{=qwkKOde1pesI6@prCD^c8cP zdOO~K|05~gR#4iCJaV(iV!NCZKBNIxsAhh*@J?7$z`2qjvThg8tSX6G-e0pup2EX6fa%1Jfpnj z;NdSmS9R77cD6Kj4{uqd(3#6uEXgWwKXd47(?Ew&-dsD>vz%a=R z${IKlpY1ztUAHh18MeO8ma`YiJcHww&j~9oEKylVi&n0>|F+cvHVq}!7Z;W2Z77P4 zwxeAArKn6bGF=1`5Q+|pWxz+=h$S$sBKtB{wJ z*HO9BRmna&_XIjFd<}zSN70Tl?h$9bLTw-;l+r zA)Q?VK@qX(snKB}{sz@xU!S~3u9>}XewdWrr_^`{M8=2v1q6q1$qrdhPg7fOU~F8l z5O3-n42ez3NR9OH_6zdj>r{%$ng+GenUX&5{=2vMOL;;MpHM%kMj>x(Zf$Do;Yz$W zY}t6r%5(-5-1kX*!V^u)v#I&l@+xV7T??3Q!3<{ zRlR@zzcp@_$!TBqgrO{iXCzqzV zja7Y2vEj>?Ub$TPu_eczqw=F4oi@vbQ^&HZWD*ZAe{YdqHCWr&>lYrI7=H1QdZUGh zDvoJw?2VCRJrqu;%+EfMRm&Aig8e)#22Fi^i^wN%Zer+Yoc%lXE+=oybvOkAKmZ5; z0U&Ul2uv~{|3h2XsRrA627LoV=cL9kC;yI_@6{}Y$_NV!!W}lfPLFn}5oAVcdip(g zZVvSp4X^)CQ7lUC3knHlkO-qeuTW}jPCOHUTj6KQ?h_4+sDOAOHk_z;z`6rv19& z1>ryd2mk>f00e$)0u!Xvp*OEsZT5?q;Xk%Y&>j!~0zd!=00AIybpmucZQ{MzufOu_ z^Ap&2^yoH+9qjwn!9ocj00e-*bs_K|t>;z91-LF~Z)TzBEol=yhviC}-ocZ`KXQ+omr9`zIj>CrpQk!c6(K4Zrn6bAx800;nqo09;t>*zqQnsc9A z+Q|t_J2L8eldWHm>8zL&Z2P6m;0h1`0zd!=0D&7s06hmCEx5C3m@n7CLN6Vi=v}ho z1M@OHtc*SsZ)zPCzuwDmGk4BQ%P8|7ZLB_q>PV1{CGM*OF#e!00AHX z1f~H2mtDV9jq#>^T!{)feztwunb2-6?!_UzITQ3}oc{0;2mk>f00eGU0!yQ^k{}mg zWOOGo@veJUG2u$ncl`YkX*c*ciYu7yH&_Q~9tZ#dAOHk_!1N?=71MsX8NrS140!H0 zmOr!(1b_e#00PsQz*S89bXNUJx)F9+Pp=ha1ODJcHPEj$n18UCA6WpQRSl}N#vi#= zXbuPf0U!VbrUQYith;|76>&_+#3CdZmx39sSmPizXvV@ku^{%aFcb+W@5cg!n3#T1 zd~H7_GhF=mgU--izWS0~2g@FL^lk~4hLQ=9G!mIiA(QP^^PoaSrZL4L{>0DT|8B!} zlltTLK1|+ldq%9k-R|BqfK#Yc(sW#=xTv~SuR8GQr#@+`R-{Lvt9F|WrAeYqkT{7% zzGN$;yPCScr=p=NDK(kTc8?07)2MJNo5LD2NEchc95#zWp>mR_9ug4}JmwCZ0s$ZZ z1b)Hza9r&icRp z?OjoH`p+NP!Dmpf`c3SpDeW*~AI z3wHz{9aO!ohYz0~&|5_UUTFNB`Du|88fCLy)85e)9UqSknR%z(dg{wP&X7g7EK8X% z$fN3Sed{0Z8Q6h;eC|=+@XX)__86K50zd!=0D+4HuDxkr8i{#e)>ltk2W%uCp>dHf znSmoO5Z7q1&#Q3<;WF(O4C_$h1O@xE2UgLEf7OhWCVs=sMMWon*4I{(TdVx#OY<2t zs$WPbue{`Zaa(;U z3+5&BhTK-GL3R9iX4<07zEYmX9vJM?c=BB3ify+GxXdACoK^YR1!avUt0OQfVex`l zxK{SX*TA`|xJnzF3iGAl+C@j0^>uL|+zA;p|F^O=+9Lgy?B7PFit)hD}lE2!RcVghnA zvm7i>LS9qR+#i)TZ`rJ{bH~1|ZI`DlT`9Kroye}BaRhps&BG~lI3+d+J@R<+!vrOP z01yBIK;SwNn9wErL2dc+F_n(2!r2KSti?f0GKC_byZ+*fB;+UO(VxnoKaxgcqewA@ zPNve3qmGklWEx}KHvI3c0pYL~=Hv$?&-E4{;UrIAUz^?-pPmuSwHK7sqlpDh!Uuc0 zWCJF#fPU=D&(D@LGBDG*Q|FpwYELOQ^U%HnC-R3<_K5D5nszO9UP>ggSR$W*l%z;5 zmzS14htDLNOeXXI0GveO@cBFr_4xiTOKQ6*43=KrRZvpR5lPxgvyYxFaoDt`q zLaDf`u_`;al)>g!WPkg~7vI{+bhA?S`G+4C)^+KWvaj}j)ir2hkR7cp9VUx=?SSZS zt8P(Z8MERML!3nB^LSJWS>hA4di~njDKS(MQC(TB9_T%I2fxi; zzHy^+aGX%`*pomx>sY_3^9DX4y%QreT)K`Q) z5>(c*4I3*eYje+@kPYaTY?97ONc26I-&|c>Rok7K;O7$-9U17wX85m_P>b@LhWdw0 zJ0&tcIn4KjEh2ftrupbAVl!xpOKMV=uD@&ZeB5D+jmq}+<6vDF&ntN6j%^lIZN;l! z84Y%fGw~w*uvqv71b_e#00KV_fj|H8_kS35-Pe7xd1LUhZCoo$$a$BN@1f%%3hztdH&p4esDr;peK@V(kf1!IO83YcIUl2@4xRhb6-<_ zNsU6S(<=w+>zdlzS{gd~`9dMGWk!vnsTEIS z1_o6&n^oT1+uqVzT~pUooc+oEGh+Xc_~>9N8PjRiMw3xzFj>q-y}_U}n9W85L1VFT zb9rS=YfEEQa~E2iKw6*k8(b`m2*K9JIRZ7JtyFQc|NNKYYgdC>LVnP;QD&@D- zS2ne_BCQM-lp{!$O2s^($FkLHHg8_HZQJJL*bud%U*lkI-nuy>HKHu*L}qb4lCJ7) z$*UY#zH}~aXsV->)xYzmsXzb-00AH{X#&^YjW6pYxMb6u0BXEHiHbW*n@n{Y2G2qe zJnYVd;XnSFHF$yA6}DF!9R~X~v-5_5j>4M$&G&DnQ;=|?t+u47UWPNpID=#DYrx4^ z=CMOmrbCB(Z z-rT~NVW-R8l42R{99H%`K+G}f|>Tj^|LPg`4ON0-y- z;QNNfg!vJ6b5ZtrulQMko?KT;u1y0}4wI5~>|hp}Sy7m)x6Wp9xG^!|jXKVj^|KBg zI35)dLYOp1_kB^@(Pws8&wTw=sYl?058fr^QRCBQ)gHdEtEH08;;!3%`_i>*WS{K+ zXxE1nl!H&DFJHH|p|qB4)1J>Q!4>rw$yQui6%n|Ue$58c-2?au1b_e#00L7cF#b)j zcDud0*TUzpgiM#|J<>!%51XH&R1}1_aw#@C?z9mUt&KvEX)KbFg^xa64mUViCIY<- z#wjEjECkEwoU%c9G}RF-81E%kojZ7>O82t|Z{xFE>F~(amMb;L{S=8sPK!~cH6Ujc zCkQH?LBXA7i=8hLGblvyiTxj+u3NKqd3b2BkB=AH3ue*v{Pi#IZ+hU7q);z+-^~Wy zph`3PbRT5gq#hExNvF~nDKrM=Fx#CZp^&Fmshk)|z~||-8V7-kB`5%3tEs5!SLtf< zv(%iZ-#@dHf}tJhN}bWlpi|8jE0-@sQw_zS(oW!X8rf{JviSl5huPCoU*Fa%?`kfn z?0WXa=l#VjtI42Hs*!v)hs)=4hCF7Y!)ivW?tFoe%Vro9-T!&(gQYtkNe%aO4IYY= zIBXh?9{n^~Y%C5>BygF0vq7sd+QkC4N~z%p5dlm!s4!TDm(G#d_VAFn);FB?!2yNE z?&JytD3J~cL=co}EpqAEJU*YzP$?8fi;cq*U^XLq2_c&&5b`J@A+U)ug1z?@o&BN z-YEZ}HEX9suQ#zcZ1PZ8d$iH-abi@+KHl?r=YUS&<-cjm#)tsvWQ3s2Xr~W+kyYAE zV{$W=uUR@Tb~4i|!s*cIjT|ob2WveU9ia>m00KY&2;4{lGu5;+OYgaL61e~qn)&a+ z8wK8tMg!W-jux7kEH-+v-uDo4g(^tC$!J6?*%T^`$)Hbq>lk4%Blq5h0^v*+>xa)a zuAm{@0s=q)2mpbZNZ<-){@Sm*&n!UbNp2|Cef@Ms@>v|t)aB!J1{3|8dPS%K1b_e# z00KXC0#^z8da;Kxx~3T=J{@EJ)aNAAY)C*IAOHk_01%iq1g>Hsqa@CSfmn+YM~PI^ zKmZ5;0U+=bBXGGz-tnd#W!#}n*l6k5&4)w7)`U8-(4QEs zD|9yl4+@_|F2EHez%3vE1b_e#00P&Pz|dwcWWXm#7aJd(M}_?PxJ>KNTZbOJa!vIB zVL$)~00AHX1c1N~B!D8=MjK|b+SzpEn4_1Uj<@a;c<`ub5ZBtRqL>_H*Mrp{3jPBJ z0jdK5AOHk_01&uV1kg)bFq}prg19y=!)4kp6+C{wJ1RjCgu~%P&$Mwk9mMomZ@*M` zxB>)#01yBIK;WlG0KE_mnRE(;N=EynFLBusj|oh>n-Vhc==kXon~6QPEem=Xasg)I z$brs400;nqA5H*S_X!QWTk`ne{Ahbut~Oc>PJjRq00KY&2mpa;MPPz>{j|~#lmP-j z00;m9AOHlWL;y_tlyE^|AOHk_01yBI)13gA_US%CGgLqMVV{8MkPGlf;tw;FAgB!l zfB+D%dI zx#I_#1A!Sr0L=Uh87NQ_2mk>f00e-*_B63e*Gw zKmZ5;0U$6r0$|!F#|cUSfu8~a_8ZH0LN35hVWgptKOq8_eaZXf7&z^=?yhc~$%d22 zo?bp;0dusZT-H6HHVUO)-Vz>;k6xbCiPK?|_w_5aMhqtl#3E0LkUT{RS7-(a@9so8 zJA4BDglxtYN=|r-Ae;leGSs!vyCgE1ClGjhh)7fI=ctIOpIA%=S#Q75Y^P9Zp5C5( z4s+^+oc%pLgBr8Q!^2C$pL+GFD-AV(01yBIK;TCwFlE!O>}~tk-~QV^Xv9g>#hbQ1 zar@Fy3vuS)zI~Z>E4SYBz}5^ZdD2}W2t{AV`@24?X_o0tRvgD!9Bx9|ocngHm+&vn z8zwDof`V3)=F5-w6gL?j{O#k*V}d3qam7nchxz2eFArqa6C=fN63$?97Oq-z`-X*l z7H#D6_4-XX?d2D;zc_TZO{TEf9cW@96ie4^-neE#GLtrW&`3SU*~4EQ%I#Rb{nmTe z&%46p3C(8IgZ()f@Dm_F5H9P1tlNZrz4F}&t6cTsl!Nmv zHI?=4eR`uwqf+GN6zT1w_6{=}jViUqXtrIvbk+7T%wp1gvFGCxIhATN5fu{^8sMRl z%f3B$;FH5SCYy5-0@N~`N%^% z79@p{CjO2M%d?s_yWaZGJ0BnI9TTgVVp~ug2mk>f00dkF^7Hd6D=Q~t;dDB)va(uQ zS|+^vy)RD9YbR{FGg(C@JF#Kg`s(wiJKF1t>SRmfeaAL$F=}(poT{j6p>suZ=cOk^ z_>)PvMj@|j?&OI*SWf-ftOB(KPe@70NQ*^Ir(V-jTG>M5{C|7r0Ut+oE&Q3C?Om%? z@6xLGYRR%}x%YxGrWZqKfe;{h?k7;2^;W{iKQMbiMu?9DC?>ORxUQv-BNWq2iu1)SelnTAJD(*G$3%p%N1X;b z)nH@ipwLYk9^yl%V+;m`jSiY9iWuta$tx)DQ)=lfPDE7nf~+JFmj!xZ)~icPDr#GL zD2x>u8=E~ZQ9PRN>L7}xEME5V*2Un|ZXEg7>u;Pa?<_2-S-l`eEAQ$V)OmV)bktTh z_ZxDSFHMQ?HEM>-N-OHy`U!*<7%I!jPV<%sPy%miY|)w>VA>)o%$IUHS{hq)R;R?% zi%FPq?7z)V39CR&r>710AEe zhIAu?eJ#BzPhUUMFmx`j!b#_*W~5~#MxeN@vA&_Dd(eR+?M*GgB2Hwm&+VLg0J6aY z5||+H;xnIanlrHguTif~$OV5x0yj>8Mx(v_^2@*Z&2N@0S%P8T`d%Fl$0whB^36Bj zy!YOFH(vWpC9zjtd1a>bnbU?k8}=N%WWqTwy!51{uerHL$rO6dOA4ot8ih5*`L&%& zokrEt(L1afuCA=9sPFI%kp+5*+p0_c^2SHCt-T9rOLE-fA_FLgy}YDs zU|6ryn^6p-(`a6Sp}DyWmMlo|mI^T%l6U;zTOS{2?HxAhwKbJhC3W3#iSh0N)?ib~ z@Bi{~MPo-@c|}8qoXzJIojP{1s5K!u(NoN$oc3dTcfPg#FijGW5GwrS-|y`{Tojm+ z815zMt}lP{txqphv{ zC{bNn+|Z?tNKVO$4FPCqG_<3kwzfkd^$lIRAgS>9?zcZa($dU7ZRHH z{{8X(mL-=c7?~rs2Yp@ z`O*Gh6{LX z0=Jwv@YUO&9_mx-jCx&Nb!|yiv)DIC=I4HV_h;|!INs9MUR+i;Fr-b($twMN_lLVq zqY~fL=-}FOU;pWy-ECd{6_qvpa#cfJeQ{-j&?nGOfPVh@?#6DF)9IA=_SsmX^f=kr zBcAzd0aGCXNB|Om1g=cL$HylqDCi&m_=kswM{sa3(DWd$-ERNli!Ux*xB#?pWMt%( z{P$O`_51EzpBZ0QRSm++{Nffw`bkXbu}2G9nrdqmBe}tz{K-Zzj`+Eko{9|+eDUr( z`_9+z`#LW@_92oatTtOuxBQW(9>05Oa`~B~Z+>!k|Nf&(7bW|Nz3#bdMe95Js*Ce$ zN(%TQaY#sTT1Li(RSTGO4A;xI?>u2ZL@)j3rFr3!6JPCof6t|Z$BSNgbS0?MX0ura z2IALkd@3{A&qs3jGkMeb=EB;}m|zdnh@!Bf8K)ST=?M&!blB}yo83u*$phlhR|gvV zG%N1D@7ep747S$1xBUoVGn*~e-iEwm1x*G)MT`d0cpw}xeY|UM`s=__->_i=(Ca&Q?%cnB|KI=q_k@Im>#y=EC9XrYleqChUKLJb zEzU{DP+Dk0YN*Gt&fdSc>+wgXf>{3BRQ(IS`T-j1zTUT9E-O}^h=kL`t)(#qM z0xuu^P}jwwE)&UOGpMGfCarPNSe*i~`(2yXM0&Xb;g>C0@J&He@x_9>mZWr5S9U7& zA@K_mLnMerJ(k(^sqZgqRIqr$#fvg|Y*u*Uyf@yQ2OReVZarC5j}wT1&#Wyk2b!GC z<&e0!vZiHz%zRft%6VqbjKPqX%vP>}Nfa`|}Dq3hP z!KRICeBA{IBG|ln`N_h@rkct=)!J|`@5i6GzgPZt@x}8fN()QO+_q&Ymw|C)F{u$g z=Ng8}YC8hv2j-PFpiEBg;w%mwMd+fR{qm)Gi>mUAYudZ|hLq~Ui0?*;<$ajyBsF>{JNPu`LSG}fkqDw zn>*%h-~e?&$Bej*Af02k7)%xhJnRUWg30#eR z*R2D3ClO1=X4_qNFFROl7MP3&$xJSj%V82D4uc(x0IuVUaaolx0TQ@#37~m9!K`R7 zvU=I#Eq87&Vb5*@f%)_20~bA*g9q;Vzy9^Fw@Al>j$HF!bJ9^!TxoOw?>5=eP~S3z zL1$A#&yYUGe_Y|2%m#ua5sYTTfe)Bqa=CPDycL_x>~I2=&$8ooi_MOpE=|~4mH)T* z53zlt|KIPP^_K_(`9cvFJ$L5fNUvFIz&-eEpu5}yBVPTFM>t~&89^`x%UiLLrC7 z2J7Kz*!-1iA6St-**`8{$R0D&Q7mKms<9Zm$-7feu!%)#95#!`VhtM{dXou3Tv%*6 zla-{vl)2C~xIql+!LqtelB6iyo_{HSO-`Jr(3KvWkmB!|*IZklFEOZ1_@d=0Zd@jb zTaSV<&bhkz>+b!JC)S81?qZ3A(8*8a*V`<5ixp?_*ceLbjV2d%gl01tlsdCiBH@ik z2cmR3^Si2ls?>Dh7HG|6L|n9xJMO?9?(aNXP-}DGbrt1Z10!6IfS4e$UtkE2PW3g{zWu?jqKdkz z%E~>v54Om49CyzUUy&>>Udm&b)Pp@ryN{QosrdXGZ*MPa>>-hHhrwjKV<+jES-ui( zQC^A8P9|o~50Q?W>EC7(1!Tl{+s&p67fVexM^8)5|NQrB&%FHS+CEKkLJXLpZ)@&A zK}ulG`Xrc|e$YXwT7-2Jhee|SKYc}iDhYp`L;8b){YJdk1x9Iom z*j?SJicL+65B2P>E8o8FoMm(kpfn(4etf81)4%_lQiRC|5%+Wq1>+c5XaIpb@=qT9 zc<1q|y5_>XywATnX~#*aPq4d~9U2+yCE>K!)irb~>^Af9{kxuj;kU28x!W@C8Vf3#9d=uJX-S{j>=zj7BNe&)04^T}h*!Yvb{m+&hX*782|xmnz|9i?hE{BB z>@C&nK*(#g+WR`1JNrj?(tri2Q9eH7OUEfnl9e3RbFQhVxbohWX=8n6Al85X^IseW zO)eku43gcmb|G`ZaAq;EOWzzQIdc?vn{62X?z`7}i#RAR?2-G|zw`MwHHDX&Dobbx z1!4{8T+ybxH%9nLSq${yElWN>RPfQi-aI7cs)yAGTkI~CUMa{+8Yr6=7u0pOjxF+B zn3Xt_R>tnyy18GwC;!Bu_Nsh4SPN%x=B!E&_w(ZV=PoIzE~sz(@8AA`h2p9aoquGK zhxoF=!Bw9vN?)~cW7m+OysGd&f71$r?T1y`*tD#N?_S14h=TKH&X%-rCB8rV*`xH~ z#@Al|q~Oe{n5d9-*)b@MH7`5u;Ds8!4G)Qmjt_BnjbBhKEoaG^`mWQZ&4<3)bMh#Y zbUHy$oNq|@{r9XCG7z3D_O8_nzBrWs_rLr@%x9@pDz?aD@#2h$0o7H+1>zmrx#QSZ z*sxN?6noyid8LHMAnm*WKd;*U&Ry?+*qXEW7Z0!DT*nSYS7{O6h6Er1NB|PJr39{V zAspG)*=a#Jsq@n3r$hq{Jth-~2;*@WPKxg4CQe9<#?5++D_Vc|rf5H*gQP{pC*FVm zrsPO}uwHtouk(CiwO2^u6Zfq|2#3@+X#J)QYZs@oz`8e#9vB)P9}(ms5rM5;{d|3s zQc||uvuX9hBv%v|iUx;Af>rAbjK<~)ViFP`xNq~kxL~l59=BO_79vb0O9diL*zmwV zFBWnf1e%bVzBD_5!*q>ZD3Z`>4I+2%)bs=&G2hM0Hz77$0HXfr4Bvpjm1|euvvv_s ziWq|vpAh5cAqE}+vD9n+qJ@v#yUyQ32r4k>^bD>zJ~1xbe}?!nlR-z(`B8B(abd2` zf);sV_oT$w0536^ycbKP3zsZ;=-#zKULp{tP*PsU7JDpSxpHAjgw)Gh$VBN(7LCD* zjtB+g6*iY$U0kd*lgrm{$c_sd<4k99;}T|qg+5y9S|VX(_zOk(1F_uZA17zPj-bQ+8!jE{>A5B3@zUr~CEhQX7>C&bADJo}q! zE>v~Iq-Q;}J{v^P2ZTjz-m+F03-kj+z5f&q}sjwL+-g}lfWa0 z2d%>^JSMKdGi!cEjE(dO2ws?-!kdV_ze4s|NDhcfc;H^Pe^?|F?o=}iIAIl#03-kj z%oPH+$ss>ix(nri1Rw!O01~+M1k8Ju{Q|}U+uiRr{QLEKn#&01|)% zAc5H>u<_xYAI+^;fY+#3XSa)2t_|w?E3<)jAOT1K5`Y9Cfgd4(8CJ$Q!8=xr;FW4{ zhw&fb^MoQp0+0YC015nL2#7@j@NSyRyF2sBIPjWzkQM6o%Xz^RNB|Om1Rw!O;0Gr# zwnzBbd)F@)W(KPrWEy{2=&0dNLG%4`Y%m29fCL}`NB|PJ2?GDj*`~YcSb#BQ{XOsZ z1_I8Y=7C-(2m-vH-APd3MdZ+uzlrAvi$VgB03-kjKmxN%z@^sd;MHGr@cu7sMjbz0 zwU6m_tr>6A(n$(f|ImP+-A4jzg9IP}NB|Om1a6$b=sQUf5DyM(sX>YB$^P zMh#Quj`0}4O@HIf!;+8yBmfCO0+0YCa4QJdoJfs|mgIqpc;JoT(^d5hs$FSDJb5%e z^HvB0>x2X#0Z0H6fCM0cny?N$dRqslEC&fd0+0YC015mE3D9UL0oJ*Zc=iY%GeJGhy%AKFTu&|hR6{PQ)NY+8Cd!^c~E3~L*2meEYD9+6p1_T3?BrACANE#g;%mBlUs~ryG@UAcR zE_?V%e-F{s@?OV%i?VO$zO$?%(xw)V$o}n4l|3XE*D5<=WuT zU?v@|aJUjAm<|a*0+7IL68Mhho0WsOu!KuHyLbDSU*}tF zj);uqzkBH+i$-Hk*w?P~bKoNQ%i~G3XO-+M$T5OXpC} zu;?&f&~DA86T1(bR2v;!9yepvJrA$T1U<1kY)&V|U^1BuK$5cCY+%=3a7j9GgoXjn zgx!IoD2>f#IqWu2Kb^s((@+OR3knHj(~=r^Y$k}&nRJXsI!9Az7>msU z8w{47+VlSBCmaYJv?TWMeej9LlEeKRb~}aAm<-I}z!@wy7_5L*k3a_SWj*z)OR0&<5zI-EJoll*3`Edz(La|BD`_p2Oq$hbRB?+50(6jBw(1 zy91%oFdD{SFi65-cQ`RR11v-YedMrN2u0d#ginCKknb9xkOX0~+fWn(>EJ1|SZvS> ziX{4~OFunc`P8#N^OEpc91iIIwLC?Y?I^)wsG=rZCm zKG1&PPe1A;Fu9dOPzXr^)lSn|*c6jmMIZxuR*?c|sA&uFZ@5QDe@k7jiT_|~7@f|X zw_<}@J94hFU)^2TsnEsxg{;U)`Q$|PM{mDlwc??%NsH2>kMG+fH#j*=y3eS=o6 zTNULeKDhnEs;*&~ENnzEfbyiVAt#n?+CLEs;89#!f$`iQ*>>;Q-CuMl&57B|(?b{s z51-Q*&F+y|9^tOdgDg7Lnd2ua8@fpvoy%q{Shpq7kA3F&$-1_F8j};3p1F3}g82El zsTECjY4XM;u>~g%9zRno#iIA_I;h3jGJi?mfFdk4XY1Z_rFo!a#^v=x>J{&2szV+{2 zIx{|>Ar1@lly@}m_;QbtV1W4+u$OUILi%0nmJq|OpYK1}uQI&<_S;M*`<^F$o*3eG z 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 literal 0 HcmV?d00001 diff --git a/docs/en/images/vs-app-solution-structure-mongodb.png b/docs/en/images/vs-app-solution-structure-mongodb.png new file mode 100644 index 0000000000000000000000000000000000000000..8e0e6ba5658ce5df055cedaf0216a9cfa99c6515 GIT binary patch literal 365764 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 literal 0 HcmV?d00001 diff --git a/docs/en/images/vs-app-solution-structure-tiered.png b/docs/en/images/vs-app-solution-structure-tiered.png new file mode 100644 index 0000000000000000000000000000000000000000..fd41ef4b0a1ff91bfb057ee1772ed811fdad1a15 GIT binary patch literal 434378 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 eRU`1RTXfiQ~2tg2e?3fW# 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�85H` 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

    PI5y> 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 Vw2T*=`YYa}b=&Tyj)p@={|8uswpsuH literal 0 HcmV?d00001 diff --git a/docs/en/images/vs-spa-app-backend-structure-mongodb.png b/docs/en/images/vs-spa-app-backend-structure-mongodb.png new file mode 100644 index 0000000000000000000000000000000000000000..8f0427c14b5c2d94b991a202984ec094ad001baa GIT binary patch literal 344596 zcmeEP1$_Y24lOog{S%Ep7SWzvcWOz4yp_&Ux;A&v}nMci)srqltJgJOn|+v13L|gCN)h z@P7^#4tzdz|Hu#g!L1oHXB`9u@vQ%0Q-U~J2=ar*ju<*)V+pi-$L8%YXv<>|&*2;h zI1u=^B7lS}|JJHG>g7Pdfq)eOWOEoi9v>p;L9^tP2^~#^hHTBW3 z*eyd{cqPK0%fX7`i*T@h5v~hDaP|qzvvdUPx_+)9 zPFCZqtWxw@j7swn;C< z!Gh@|ib4j^*q9<&H8F5`Ft&^NI5`vVzUi;6-~pM-Zg5Mi9Tfb?((nZgOy?zI(W66% z?ycH3cOz!?bpQ-DGR+vxV0z*j!4`)%5zSzbvsBmIFtFa69vzs?eH%ahOQ05J(+ba zOKI|;tcrYLFV2%$c85<3a6unxG#X7NW20n*1?!3mQhJ!R(85|w!ilaIi zqrLEjVvP!oro)XzHtPU^Ma9sp8f(%SvxL@ckXTeW0b(2B{!R$UY%b>O6s9KmtxJeR zOpPF(e8h{5b)Vn`KgBjTM1aw07*DXP$YQAx>G)&nNQcIw{fG#& z$yChMsqJad$S4;y3I<8#I$#zy3ThB&{VU^Cdh?XF(YM=2AePF{{6uNvNp@xmg$-i|XM7t24j?z=MV?RXnZGXhC6+ z!6XD*V-6xBO87dt*#Zo82F}`(aV1)o+6>uDca&CFtF~rMB4I*^*5s8ut;lFE49ts) z@d8OKmO672)vi?O$~u(7JtS;1v?{&I9Q|?PNde- zVi_Od#fg_B&SdP$QN95((L)7ldbrc6d#t0S8j_#O^)aN2mC6E+K0bmfDCTZSku`rs z@(Tq&8|$rf0vb1rYFbgMtZ}1^4$6@~{RCtjw#igQ?2K>c2o*Ctm z8+H0gz1?NCQjrBJ7MVuHkTY(xJ}FjNP>8uB{3gQXccrkAfnMMIU2#*|rrIFsSW_xzxkfc8S47~}b280vhfib^96rRe9MWXo`< zJ+negEMZ~<_0*M$kE_gEM$ic&2@i|w0W)pA$u3iB4n7o=wVWUE@N~urWQA5w^Q|=2 zEeM)A$_*knK1ncHf?FDiKlWI%a|EfGZ~f(nc>0Dw_~}wL!=2QJpqYP)gK)w`P*8ZB zrH4DVM51q|BV)xhAe(7q6{nIN8&6CwlWTE=*L=)NPS-JY(8AGyo<(JAvvg!v z;-@3rrEIB|;^eDPf0)c?8K55F?%(yr9V<|HkkB>NGByt9f`RL3*j_S2tpUDdAl+9d z%Tl36xmsra&8^@oYcbxVsL&Zf>*Bq#_brs%WPrHYNN?0gJ?ysHED6Pp?LixZMd6(= zRF$DOOWMAYTg;YEFIIdy)~Diq>U-C@rtL(7^*PvcZ@Ac%r8|B%GZ zRG7#t(~XI)eM;qbgiZ2UbqZF!1lXXyuDU8&oz@7Z4Ytm9@y%3}sLd{P>TiPx@BLYI zN6=ucc;S&2)884wKWgo#C6#%V2lWngLm{>Eq@_j1-7sa74n!gEU==Xvkvn(ze1YbNpV zD*}xf`l&>lG1n`fQ<-loE!mU&`AGW7>lL3eL2}t!DVT$=hfgmO{*WfT#nE5M6)zi1 zxl<@P%F?+qs2{}hgf{j4BA26sHq49gC}+L?$QonM zT>nL(gl)O1Yb6cVL_I!Gj1Q);MgitxpW@)#$N9*L*(W*3olnGY_jTFc3$x)w`9n}e zjQpdif!pHc>(UjcDo8W2mXomeEuZON&FAD5F{h$lw4{QL*=oCM%4R*VVUlj!`~O{rZJ0*Tl<$w!)6 zxgj5P0rFp#_)n=;oKRs84{vfP_pr7nv z3IkJW4sgXnf)_NoV=ruX{Q99A;$T&2*Si3w9#6lf~P2dt_O>}-opn2k98xcB+4AS2I%znIoc=>eDlV;!}8Ii++i14^;1SVp*$anjl}}f z3*rhjY`xWfk|_)-2!=sgJ)d-FJZ6$Fu2N+T_r!-enQ9UENuIzGg~fOiB?4uks6oSR zDP>ASh0^*~O0-&zQeVcm$~S9FKsp?T9`A=Mmm9;~adC7U+-&lq;^^oW8A=qobe8JR z6akOwyf%h}f-s;fxL8-;Z_4@dG8{e{g&Ijm->6Y*?M8q^k#0oA5v?sR==*k!@F>e- zA1tb$JG}CUHR895Yzyw-48J9TEk=ytGy+Dgvg$8z2IE7PI@AMCwLRNQc>F?EPB0ce>4h`FFVo-?XLp+QX{PUa^52AS%Jh7(E_MpLlCtCsQ>uLpECfA%U zwoX_25DETf^>v`(z?sdtwF;UWf!s1rHgeD6X1&4S1**9emL&6|s*5c=K}nSjf-I252*L447zz$k zfzsEfv*;~W$>0tJgHy0@t=8Do`I*g?Jmu~S?jIV=ma=Woa0m;!gTzitm;4`_*n4v_Z zT5+!C5)b~({GcBPQyTsMw=Qfd(z3|TSTE4IX$(>Zi4~JxC zklY0ew++`VTBEs9of`_MPmw^AJu#=NtStr#2byi|W0e_lZU}GZFMMdMb730$vvhlx z2RXCNcc;<@cnGriDoQZU8wZniU~$Nni4jbj^@Zz>WeAn+=?V%BgB#6iNS7jqPj*M& zu-UA5Jb|uPXJ`x%-?+>h|8;>z3*J&RJ`82}UTOeiV6{s1?j_-d*ZlWbDz;~-U7b-Z zncfaaL7hq+gu_8*bwdMCAyu2n&i!%FL+h{r5#fR@?7FBYruQBJ+F{0#7*;YiSo7H~u$ zy!nW}MP@B;N=tabpVrUh^p5fl?qytir}e;>L_krIa28~SaJX24<)#R{2~8FhSEXU& zoW~HLt3c6VumCDvC{(Z-I%$JRTO^0Es-!>J=Pzx!Gl(i;7{M10lh~%^Y<>XPhE^AX zv=a4C>FV1&-5=9kdfyahAdn0vcondP{&!r9$7!)zqjDFlZ=w9U*vN`=o)JPBY;5RD z+}vD8j2L0B8fYMSJf6we;ynUEFc@OhcwccL|1!@I%%BA6)cdN`rE1NoAiocWxO|bP zW_URdLn@c#s0^t3RT-^9f2mac#sH7%RH>H_C4mgPY|EoUq=BNy!~F2~xsC6o>BN0* zk0I_W6-F@eHl-Kk{C#eo%H-5BxbYOHxgM}@(i(djNXn63k-N_ccDnFLbfIU!M;~l}~IM2lTq!ZcY!uz7uj}H{Pma7fuY%$)7`|CUZ~YWjHVLsh4L@c ziOWZM8Zu=Xywg&KX~zv|W5=#H=)X%AuSxV`r}4|wP)~2CY^E@$N_?&d`J<8UA3v6R zkT6QA`YuP8!8eZfBY@d;BN`v?V#yU6LVfV!S~(LKeI!%>&T^yW$gZgbujCa1N?h7l zFtn^nA<5#Y^GjV|LU%7M_Z|)9PsX`}2m*B_Q<0I+QD&Fcf`6GMH96&VG80ZIB{fnKK4T`5<2QgPlS6xCw5 zRHg9(mwRYZME$vdd zD!>)*O+@n9lCN`=Ix_@}-a4^1o39gy)Ja?eFmoR1QS-rcoShe-NL&X)`jXLJL_})7 z;Bc|EM=#@OP(-vR%A6#Zl=%XxMWi-j-KW%G2}Mqoi=vn9Ps z&V!?S(a;#Z?!ZF<+t#`o4Q7^D3pO$~>nyE#0SD}Ixyo3;Rn@4PI#S?oFq*1G+QOE5 zAJH_Y1r+`MVqFLYZImkarHTax3wS!n{eYh1(3NUU?o zKY?X=y>KJN+Ujx(lj9R24I0&|Iz~Jg-a6dB2?1DaFZ#hA=2_>stopgZSEY7@V2`|k z$U!GqtR~B>{j$N4h<%GfYp<1k&FZR!;X)(+GS%bgKUIHn{)cqD21T2{a+~qu^q<+)Lt6Izsl?xu| zj`5%ogXEI$TWq}RP~s;esnyzz=W42K(@#%^zOp{;&_cnDI;2JdblZd`SofwmoCATE zhX9g>;MVYM7pavUzEaw-Ng|;1ZM*3T$)JHZ0Qw`h9pJ4guDy`ezt-Da0{x#Y0&ywc|b0FYApnDK#qbK+9@Yu0qM_gR*jEv0Z%7lc2 zSBuOiA1WZTqn~~*lI~XjmHX~x0sIj4g~&l2((agFE6jPYuCib z$8`b*7cweUxEG^yA1-)=wo^7ui}lVR71- z;`Ac9X3f~)S8Ph&5P_Xjp&bzH4c#wk@NxWgAmBitqX;w&(mR^s>G5Q0^Miao*v$S6 z&ejk&3s1F@q;ibS#cs7a2;g%)8raqV3_iV{ywDy&+PhlIior@Lxort4fYQAb_Hp!A_S>IXDuI zqhP=XSUZy1s5R-p2Nj>(Qqz&djyMhk{;LRdRmq*5$)iS%x^Us5O4S*fdlU&BwPDTHD89o+bTN3JdNt(nXPz!fdsF_f;z5 z6J_!1JZ*>m*r zx2FaEwqsKo=LMZz^WE^(I^rp$4S$fIeXvf9JP- z;=QYwVSU^%Cw~0lejzVr^70Q>t*KbKzOsIoeJ4c^Ua)zJXYRJ$djvWN?-}G~)Oz=t zxN%5Xng`=&uG$3M`u5Px z0!YF6dH1^JVUFwnX9T*gzAO{8x9{n zqSfkviSFg)3A7!Yg#{fui9`flI-X%Al6jgV#|)3gRvr9~z5DG+$C8Q!iu#Tah4CCZ zJ^_4~*&t`#xS39l=ogCS$jLndXlQwD?#*=JfU$}0I0UCCGp(@J-ZXgh=-)ro9fFjp zm+#iS^KkN(hP?pVwm*YimY*q}p6E-1tO}3BM8ppY^K^nt`ofI+MJ$=Uz+RC96Krfc zb<9VpOiuG!;A!;!ePaa7)W}%>!ec)JZ3j-xDUiNVAIo}q6L>BiLu3OJ@$-^3s{f>u#?|3(@h;A!OsPaK){ z_fP0iYi12``|c*!8tUXaAU3SLnw1b61&5hxvePpvxE3@%x^JSgHrqQio|bAgFGj z!3Z2YYsZc)0SFFDYMHTe&zGO9@zS#^S@73C`fw1P1i=yhgJ!RrH$+y)6vG47ZCL8> zjA}Dq|A3xwVHUFvf>5|o3)e3m>`_t5tkt-#+p#Ie%PObWxHs3#OpvgcOqOBJnh&P- z322goCC_z14GE(H3?^ zsaUBNu&PQb>vU+!`1$X|(m`v8PMER!?Qy~EN@g(+`S#W=Lqk1)lE+P6x@rB}!B`cu zS~+I%s=0$(RXWIl1R83eak$QU%86U^EWW zf+j<)R_b&*tyZnIIdJ(5nJBE=h#@}dDP?-CB;^rr==gZ7E%ul>%Y5Ybem#AM$;>%_ z`X6f_1Ul>5%*#ocX-Rh;RLQ97imS=lSy|Wb72@OjxFd0-`ESn3K7Hg?YSEoPPl_3F z2_ZhVL=8U#_gRbI1(wUoxe5Oq`Hg3UTtf!U7|uBH{n6~aqV%NG7xHnlCdZRW0Sgw7 zyMN@+?X)6h+NC3xS(9du0hWc;p$S7@-#DCHy8Fu`JgGYQ*k^yFB6k0LaO;{k{M?;1 zQhqf{ps^}>5l;&5KYcO1^8C>&xy-!GUw$~^J7{t=Fdl%CI%6K3Jh0&HJ!+rW*@NjP zem;|5P;~XoUtVLU`vInoCWq`XW(=YtvrZtdd3YBQF(}lVVh==^)X5jlrxY+#lFwhx zP>-K5$UePUnsW8(!^ceK&EtPE`%f9$X3IKn*(zQB-)H`Lz+`5gKX*$3LFJDwU%a2j zWENezdJW?f-@^|Nlw71x3+t+iE9&&d`dI<8SMVQ zqLP%e*X}VhZk)cuA2m9*sRoX#?m(dHraJ_>*>&sI9XRmyrAwDOq2ZtwK*>{6)91{Y z{r1}{cswo`-UEUvsZ^>`snIAD7Kf{;srB{;eL>sKD}Hr-w|~{P7p4J@1!OL-E4gOuL0{RF{?(O&t=!AR>d{<-57{)-Jay z%Q$nIudU$;9lSJ1Rq*!m@9F@J78p>-coz@l} z{T2a9Ua{7-hdZSRP-s=o|aY6D*S`%d2Z=_X{B5vcX+d8PncEbJCEIe7pqKUov@+2%o3Tt-Zln?NbhljxHm7RTStwyvT0#fdlfvK(zaEO}d|n$_G|F~dbPobu z?a9F$cv4bQr^^C*Y$OuiYg!M3x}8O0f-6=j1iNS(U*h^a;|34sTtA#@?=)?GDHnf; z^IbkD#`D^N_bZ0Z{(Sc~vC52;Gxr=ktK`>KqrfQA>J);yT1aMnw=HHdw~{T^=oIXo zOBauy|L)F728{ud*X0~PdBqYkeCunyfBNogW}UW%ry2L!vO!uS4rWe1_j&UDLeT$h z+RU9kcgt|R1=#%sxAuLU#s=Sa{$%CyVKbI}JPoCVoa$14U-MBJ=;}qRa+W|={pjf8 z56agrc|SPy?^LzV&iP>)l?H=`GOrvuk&>-Ly4W*ll$A@vgdd$P@9nHP z`e#z(I=P;m@%4%1bwh`q{G-IEH+sd7*f`V+ELIjj`09&mc_yM4Kmz9xylT@l3>vR0 zy|Cf86i_=UyP{5P?Rq8b3bxp4ul&B{t+)vbKG``AEQhOWAAWQ6)~az0zLnlyN-L+GHFP%SsonQKIm($r*r4kUCo%`WCYbMV5a683pfDy{?e81@rHke2k z*OlWX^@fB-#w)Mw+7cxwqQkXB;3d;SA#g}WyeAUdp|(cBQwj0~md4k%WlbD+9Yw&q z&%v!rPVHTKud-PRlGlb$f2jF!>WNH8-`Wh8f5l~owClyy)TlO8-K}{p`RxqRpG($% zHuAimw|~*F7vMh&!hf>jFInLo+WQjTI=!l;QwGZnoT{uVCflM4x z90>f|5a_D8j>BPBuU<8D=+Ms1lOu45fPMjJCxXR{diFmOo#GwK=pYs3zwIeG>f=D5 z3kYukSRz$ zM3M)wHjVYP?Qk@|m|=;LirNZgJG*C_=l@*S&I8AdjEn3U9v&X-<0|5_)lKJ5IwWWQ z-ZP5=Yp!R2GwMx_;L~g3@Bu((Xpo;)!jiVP_qQo!2d~hSgdv0doeZ^n`$4)6CaaG& zW&0mrO0f6#$#c->+ zt+&m0tStY{SY5T>LGKJ2?d0UU;0z1kgBv+=Bp`b21eD;I`NWA6X3m^3cI=ozg9dtf zdW;z}Dlu`uuwg?-j~+##IJYMgIcUnl#cwSe8RPlFChFYhygmc1ddo@7w!%~>U_=Di zPsltyO^XmDmb~`kk0NOG$NgJ`b>Ie#r>@_*Bh=Y`9KQnzUcD$?eot-3NlYg5<;#~r z?cRCkZ9bo$laupYH3e!J8ygi75q|pg8KDpys&dL{w9 zThD$B`R{+HO&U7*{Nt10)bk5*MlGwVyr_uBJA0M|e-) zo5;>|T}@J6>Q%SBPGH_WF0MB?GhS9!_PjNM!{I=y%gV}&i%ackvDi8;mkZhpCno}# z>?{(AaGuRhS+~vr9@B4#iItvws$%R<@A{Je$rsqpq2Zhd4VgD%vM;wr=|Yz6-Ebgy z#h2@P32#@J+}%6_ofN;F%Zuw5fI_%4NY%SHeOsl`W8DH@U-51bl5cWxum1bY(OVA` zZRrIHiL>Z9JX`0)h#j$f-gtwQk8on3gm?BGI49K`oqc*Nd}|p4;z%tX-bm)YFOF4- znoeHDO<%cbMz2Gk?$Tg^4kwz-OsF~4SM~DH)4}mrbP+3nG;s3LkGXNXskjcq|#~kzyIcZezm#9V3<0l zpZh<1(jaa0q%ni*WU|3+3 z-~iS4+xMr{HCgz;T#qW=x#J`ga&n(O`SpH%$YP$J09Aap=XXrpgcYM>^cJHB-6#Lr zZ$~bsjb5_4Z?KPP>LMq-r@CnOiKmW=RS zHfMuj@U;0s&Qb^$5J)`s$-d-Lt{ILDji3GY;#gjd$jt?D`qv9R$IN3;ycVol8=rCI zXo_g=yf=brDuvk%U3+22Pq&*2^a@{fkCFooU$9_43WeUidrv36xdL8Gv)O{jxFNDvs(u#s{3zn_+A#J94|6NZH{Pdx?)tzyS6Su()1 zZo@W#Oi!Ya?B~YG&V&o!ZDX6<-~HtCccv;=ZvLW9OIi8(H>3NW{3%5-bLA#l!LJ{l zeQ3e;_~gJlan)tFnY^aQhs1jO2ZdXxBj?R1yYgG962f>zE`4)$_AeX%$`Zjz-Yd85 zTsXS$`&+!%R=#h!wRhXiVsH+1+Uk$jEE>Lk|KC7yaoqYcAufu)v&4WeY$i`!iq1hG~~&M z3`7?`b|Aiq5lUHnT%RThr`E<1fKVtF5jVmTD-F_4VySh_v?ATc%(f69RX5(8^ z-r0WW*r8t%5lXU7WxCaE(}sO+LHrG+zrLea9@{yJTYaj-OG% zFJLFyTs+oS8rUunVfvT zq@=!wZ&NtNH71V6O(~ODOuCG;jDWaATd(glY(!M*wHpE%I3jJ9OQiPsxSH(yH7cV~ z%P+2CmFMILBzluU!DcC3Jza75z!7oSn>X?RZ<9`5kj=;U4fJf0BND^#4GIej(^S`D zf_iv6K>+~?0hsa|nIh1C8fA62@8^W|j`Jo)3=7j-eo(CiSsIm(?<5g=_O+hn1{8_D z13!6x+WDUjCS_ECTYlc{9Up#tEJMHV;K2<`C$=1F(nb!B%6xE-56B)YCQ-&eMW}#C zH&>8K%gH-)>0VK3jZa`-I*yh6s1{6R^H^ytT+iOrW>zJV*gvsfdFFkA%511hFEIKi zSZOS*POp@tXFdk(69#2nYDP(TY#i0b=alp4jz|Yg7fo(z3O+dAzm0JydF+Ugqz|JIce&l|mufb7}SK;Stlvi+eGJ2U;PEPI^D-o>x@7 zwLTD3mU*vMp@mGEqP$8f!w!`_H5!YC8O^Pa#-dO`qhk@*AC#&=VU6m%%*d`9-e3vq0g{H zPI^*tHE2sMDuqnfg3Zt@SITICy@y8oLq?TA{LJyAz4))jZ#VShV1gYisBPG=u@il` z9R$#m1Fc4(P_ePmdVM&cdjrfd4<9}PgfU<_1~{Yf88hbC;j<>AwXnI%*Vw2}u+)&y zeo+BuQjIPobFLg{cnhb~+Iw_^)<(hBJPZM+5y`GISFIgxebFIEmY>IIvKy^FTEItq z6%fEd(7mOf>{&Fq^gW}H)v1<8WCrW2k1PXh;H}b)rsN0F0H3sVGs^uREiqj3X@4=LeX4E5Wq^Od77yD z9IWJ_wm43-p6~5_T++wZ>=)5re4sV4*xTqp#2iQLoxddpH-DsKI{$*7z^VcnZs zG5bH-c_X8yWrSDsuB%E8%3+K2x!q&_ufh zCWO;||9r)T0;TO;MNZ%H-H3q^=Tfhh)ET{9DNRw^yE2-1LYeZ$F9)vGG^p*kr|M*oTY>!0jXTlZ+8%h z>o+dnzwf7Fv5`bV%jMRWQd(P_R>p}Wks*a^uinUR`-bh%vl?)Z><&GBLmIDfVpEe~~493=`fHj_HKzt8u)sp?cDIhq* z8<6S)CoQSs_jUI`BVdNc^0!Q0e)sgQ2iL|f{b1(wQJEP(cXrLdnpwwO80DKmZSMu> zSo&76x@x-1p|DMC)w36HLTR0qsA)zr;ES!iippANz0V2S_ZL5DMLTek$o<%_9 zpm1Ep-Fj^Ye#VSj*PIh3hY^j*SCe{8U)(nkSdy3?anWrXl+6mNRaRWR$(i)}WWccw zTvXyHUl$B9ApYIA=7Ec55g~f`;Dli4W>R)}QPRCKr$zGyV33fLPoLKYP|sd|z>^i7 z`KM~;>ytb{mc*c0lj81Ox?+Dbj0WMkAHOQV^?7gAJU58C=>3gjqZmN4dk`43;8U{; zg)+7tL8V!Zc=^r0&bbX))ISgnA@TiZypCjEe^gzsX7<8V<=-!s(dW(XgMeFUT}O== z2)@@4m^gjy{NYG~_oQKA5ASAb8(v&-d1f{jJ}NODaJb_rp0CfH4Oro6VT0!lb-i>s z&8~No=PqY}uhfyl7S8UQe(g?MGa`no|2!DJa6tqev={hZagjKPD>N{o0*GMO)9eLr z`nmvrYvBQ>mX|BpUQYY3fR%Rso^tV$(au;1PVG5=Oz@R|lAhMG_8c|;-B|-b!ou6X z|IPNb@<_p?$g74HRgVQhl-2$3s85_-lIw{7J()#_; zXt@Tb@NiFv=n=GR?s(gn$DDKfZ(N_bfhzxwB>_CieG1h?Daw(FC$dSejR9 z)i?~EWDryqR`bme4Ch3Y*AidU4sOG#0oObw=` z>CwI7K~S`}`Op_&LRbzNG}#Z6OaY^3PaM@dm~!;%kFu)Nkl9q3kyL?=nm27?V&5Lg zzwf+|YTXQjBT*DJd4(0M)Rf0WpXg{`^@W?I{U=NrF*q?c7^hmdup5)&P7xt(-H)M&|?v{gcVPjAA53f1tqz#9+J#!sFV?@##S;Qmyw zQidT8966!z#xEg*=a1|ko^pKusR!kt%vd5tRhw7BR)Pzq?SfN~k|J=LGi`EWVggZB zonBI&o|YFiblS)v150n8%&ifWGYfHG$IB?FaSMp_#Y)o)Yt062Uh?Gvsn?X* z6Ndok6MGZ%qJrGg(%gIbI-mJ7rzR%!%Kdx)iKH@+9EB%C;)NwQ`gyGq)6I zWOc19as0$6H$zsr5D#hc^9#U`PR=jOtFug;GPQ50+l8|iq1#lX}p!C35H4bEXYR?2l(BeSY|grfmx!Wd3Tom&_;uM={XV+ix>N$$%K)`{3L&+WQfCGVlIRagscmw-b079Lo z3xGjL9MUGE8PL_|R)G!Fe$dzvLuWMeZhmPtg8i&*ZFguM$#LyKz=1$Z1iGs5WHKo{ zJmS%#N1fAoBoQ4oEga+2_7`$n78T-`i_33RI>_K!!Q!}eAnAIEs4NvkPK7Lp)z?Nonc%zWhuu2{@ee?HoJe8i#Xi>3Ibi9Y40BHH^3y(RqnT`3ttD^Z?P|w z`)#_N`;F3j>c=mD`wbk4v2wqy?;h?ql1ud4i-wefE%;U^8~ygi-D~Gkom!l_Y5AJc z7k}`<>ZLQ>nnyw4#>{(rh~VkDRb<<+QjCO~5oJa$Iy7 zfv%hDR`av#+;1^4(apKv0s{j9V~maa4UNHIJH-7)Z{U7QZ^8X$Ukhkh4X~T3Hb0x$ z*$~>?2(9;P!z?xG8o1w1_uIC*k^8MJApn)9c-x*C2m|tm&X^+l=c6X>HyA8*KwwaS z2g)97jrpVys}JabZ35bkVavhxqmvgG73r;q&x`hK&0Vwo^9}Pjn|{3A5TRapV@=Hx zDKen%@EFF4M=X0BYH+{d(Ikn)c3j`2=hap;8*tc@gVgpCffUvY>yHi2)HfiV zT?xD~dYiSgRSrmKD5T?WR}tvClGm4@%iM2)ExF%tTrQ8#7d#jD+uc(YW1hzSMw0E_ z2)N(&H|KskaxSlTEABUU8}}Qcp8M_Ctp{yR2%?aLwz=O#cRu~-KTPU+w~5tb5qf_dj$+zJj^ypkdSIsnRY~4IF0`L}qOI^!xJfCZ5WHXn`?nRxO8wRd`nlirCZg z_|w(j-F^4lYksw7oZ@H8uI>5klH~O_rlL(6BFWRtPu{)%&&Y`jCMSe=nlWp!0e_u2 z&W60EEq*7)Nx(PI{GGV_zxaj8mW)~V-F#YpIb*_+9q&|BR5UBSvZQO5ijX0?V_uE@<4lu5NI``Y#P26u^*K@zU+r<60_rN>7+v0wUfT$zpO>fTq zmi5cVb2jd`cem|a(7^p>Zs2~KYU6%e2e{vQ@$P~?wQ(*H&Z&l_vkmmXbx zJY9$)dv5*iOe48fXn4f8pTC<|Qm0VCfBSl$P^Ln=hHu-ueOUP4moEHH@d+NR`)B`8 zxAk!BYuh(4iVkl+o1!-11}}Vn(>qh%+;SLX;}bpf!WV1n>a2%$9j;pt==%7)8+qXT z2Mz>0aKSx#Sb5-*k~+!*hqdv*Jt~(%W_@OQMnHT658UuxX;(YQ1E*}_fxDTnGs5(W z!ko5w-~vNKLp9YkfCtW}fd}qp0}tGtMjp6u&6NfoxQshV_?A3y=YBkxlvxFyAK-!8 z{^3VQGxVQ){mq7Do#lbE9%6^_>(X2Ez&-JTSS&^p3}Gi#5HQmU_%btOl9t>lh64Ne z(CpD=brm<#RWoPz$3v*d@e_=>cS>rSXshgTT-~Gl`|$rs6@oE=M#9Y~u{962u;P2C zuRbiQ6Do8XnMk3Xyma&W74!Vvs9v7+^6e7fh`@32m>c)4r{w|tTj9Oy#_)c=wlHzt z-=}XC=>Tz+!*vq^-O#IdBM%%Hr2`EIJa7dC%#@Ul^1uz7H5sLa%~`hEcD5f&4X)>b zqmj*dfI_gPYoI!NIuG2+HP7UMyJq8oyZ_cFdlt6M14kubxhP#L9yqF<@5IgnmtWSz z1E&#`{`3214?4sHhj*i3Akz~(aGN%^$phE2-qt&udk95TQE9ONo)w+8k?%wUMi5Pr zO^S0TPtMpqrRO8X%*nAAKG-cchct!St`Kk>N-eW<;Is;o$?QaLn8CAFFBxCwbs1SgIx-xOE#k#{(z1$!oy_Cw~?XToxvrNN+{!4m+o**-gtFIr5uWBot5Lh z8xZKKxh|K>0QXzx*qZIdw{pLcF&HWiPDC2eCOygs5#Zpq)jyPz-OOxV=eD@tu9EAy z-);f!w}c=f42FF!?l(FaOcKMQ5=Xbe{bmh;F(L*h1X&um-w2E54aA~gMBl!E`|ZzW z+;5&F7>pD&ds1BTrOVB@-@eSp#lN>|em(bFG+3yDc?1s_5Dd8A3hdl(E>2)F+Rpv9 zuzwH+h9cOw->$Xdeyg@}zj*=fH$eG@a-z22egh0|HfJj@3`P!pZ|4Tzy4&Agcxazp zWAvFmrLP|hMI1D5DX!#B4!ijxnc>>`>w$ejk}oBxoAvRH(2F@mDOKcU^9PgAFz>iY zqkDozqm`2imFVbDI>>#%__+f@U2MU+8aAKi>V`wX%%-}NXC9B7GsB+>gAshDOdXnW z@f@#}499IZA<)&0F<>FBJGkFmyTJVx{{;7&*n%M2xZhF$_uHJAGZGW~`5+`V?l+Q2 zSk}P(MznFi39Q_21i<}PP{OitzY%*+pExElaiE?14Q}Orqm>jfZQO5O(UEZ=D2ib| zwEyb{?zh{ffRVE&j_e)eeDv#&n{mJOnmctuVxJy&f8TX6l?|R3j#$tAmX?xE^og=@ zzm@bG54hh3#suR|e)Z+Oaknw?zh4VX_Yf)FBp=TVB>zf3b^0kXu$m@ z$;vNj;C{Pf<9-`5Ag)I}_nQyke$%GqS3w9Yp6)wrzyMI-#6G?k_U}5CT%fTX_CewZ z%KS@W--$CuCHSbb-rs*pW&OY-l0t#yW#%h12B}b_kk=(ASwAuZ=wAsq6f-?j4g-V} zI2JR#POM75e#0$s+UUUpgW$z?L>ziA#%!u_K4Zg@|gHIVpFu)gJR_P6Om^%zwT)dZQRXgdvdi{F3al)`meh zz3u-|F)x`+!omIaKmXpr(5nyrESoGb9KL*D*TsneaT7==578=hkHd5V0mn>PL6N~0uBV4A<$JN2cl3Y)XbSPl}gox3m5F)BX1_Z z{Y#_H$j;#?s@tX;vJM7p+zA$xkrCe<8D)!o(vkX>WuFC9y6*o~fd>-fdg zs^(dD!!^OmH<|0JRX1c&%fHMCwA!gv5`Gp zbOUcyTq(01NNq30bBB`$^bI+&Ya2L+I%x6M{d+gPy>bV?^)c7y6FPA2hl~4aKi;wj z*fivjzWxy88$Wr|{ID&n_qBP-^SPwsh<>A^@H6Iav++dH7k~WTvAN>ypL|`;>An_G zTDyDc#OErNBl7=00$o>fYp(&g$qEVz{`%{$RjXEIWMpJ#=R8+UfJ(>5#{mro4TM~7 zJ(%e0>kEE?KbXk}XV_rY16K{*Q(L03K?$*B_OHkCRtz6`;%p8|&&#Lnw4uHwq4+lk+O-)ZRfpPAIri$f*+mdIhU>8oGUhj$Sz6>fJ2vi7IEMW`1Lg7i?bPtt) z)jKgd|Lk`As6|$iTI}qW*e{suObHGTM{+87QXPbI4)yi0vZn!Bw@S9zVnGsVzElif zWoA&(6=k(L7}A~YOC_L;I(bb+-P0#I>JIPPs$TQy<|Sj6?mlAzRmD-ld_90*NGB_* zWLx=Nag-o8tVEA=b9OT86jil6Jk864f;VVoHI;0@`~V@)9tS{m$XHNyrup5mggTaVI8o~Q#B{+PRI7Dp2tRitMTcXI>>KhRB_Czv3ADar#*jZ>u`5rZ zaSDigZ`oW?;XRXgj2k=ayFbpgX`T~sRD`ak##Y#f5%ZRh4t)418|5A|(4W8K!$Ta6 z!6S0WJBuc>bCbDH;KT&nH+#R$sGA{H=a@GWfVK)65Ag;r(W< z9p``NQ9*FO!LqBr9=etL)FF;ueg8_z;=TPT@Uu#y%e2+Id&;h+bMT3S`=_2g_*YVa zA$a)D`(`KIx{_Be89i%J?W5~@xCwAy44c+F<;yRQXO>gwv9l+~*3@z+Zjo`pqD||+ zm03;q{iO#dov!hCbIX@*;#-CJJU+^Q<^bf!8^2_>Y}%|fces~T0#vaT=)kC%9Wcg~Gc`oD}nD z_fIN~;>LZ&)ERME-`)aWZW+DcgR!oU7kzZRF?KK*1}m#i96qUlsBrpcb|bM>YD4?x#lXif*^__-5o>D zP{Y6slT3c+&d?wr=(>K+VSdb=b5B0^KKH~u&;R^1+vmpS#Zf@vv9AOhkFJ>Mx&I%^ zvQ4Yf4=uQp4);pR#Jkq47{6@WWjGZy&T-O)mG0s#+xFyDvT{%D(pa(eVX)7sKd-!c z6GmIz8GVTSzkFuJIwL}2;LV%GyJ*F;me=_1X2)4gvcl50z%kDrK!YoQXOzW>xX zuglkS;9pIyDkb9LtwbRLscd;?=17a3*OQx0DGt7(1bVOJ5Q#)uwQ6NlRMf?b7ki-L zpz=V;)6+91PMk1#@*G+Eb~K`E~;6%`A>R*Pr}kHaG>s}k_~ZkFPE z0(G!!0f!8@61wo-CYeQ8mCRzXb-=k16o3%!dEvGg5PIhjfF{)d2*k)Af#%h5=g z;7FpJD{AOFQ!}H5!-g5lByH$2X~!Vw!1lf5O1KpKO7i)GTSFZOtXs9fZ;}IZgfbtP~Ph;i_fUvXs4wKl)Sb$=}jVd3_+G=ZfZEDRLKOC7psP1AdQ{0k!92t zX|z5>AkZkOSO{tNx7Cb%m?uX|K-Aa_@n$;>wL}TTC@-z3V}M9CwS}}Qr3woCU=_32 zXcbk^mBQjQO#0{!oiJAuEwVKsMFP(j4)nJQa?;>kv82+f@+!yHXIlhR9RAx9_zX&p z#o|&^Q%{{b-7^h`?+OS4oqR0zxuc^4*qw<&p@5EhR#q11w1Y7@a9|GqF|->y&Y2M!)9<<+-s*2E(D?rah;9B7j!5<$dav4&Pw5C_)JqVU_r zDb4&sIIxIcT9}`eRhgAlVeY$sbbx122^s<@xrT%QL{Wss;xH&QN?gx{hqnt=L3tma zaBHdr0Kg3&W*-@JlPzJC)`}dB4gY}(;jA!5IvDzg8V&@{5_aM=T>9$A-TgZ{lZw%> z(A83HejIfYNpb2wAc5W*t9*3;oQ0FG9iiZDgN6f%iW0&A0B(YrYy`kP(Dt7r2fz)SG9R7Q9su_) z8vx*Dc(nt-4MDd9z-`#Q#h4QQCk%jN2H$^VICOqLGc*FL;yZnTDCtRjD*#-Fa$?X} zn7($#Kmgt&XZqOcbQnnC`5%-(3jmy(1}3mqYXQDG49?cwvpo7qY(X=ykWnXx!BLW8 zWH7jCFbvKZMTcQ<#AX;Ame>q~!^>cBd6b&$s27z@Fu2WPzs^(>PS{%dL9o9H86Orgp-k$3joh3tP)OGm5`Q~86U0cGJ4FA zLD=%BpeQnpoLo#7sVEUjGvmtHC>13<1suTB4hS5P#IMT9DsFzc@E=rz@25y#8785C z!F@lsnxdv(O9H(epZBud3K(231*nLwkU*Cb_{vHSx^`U_Q4v5P0fhv5BZ1yd!u2L^ zMO=jh6cYFsB%o08e?iEKEEE#>ni5bb`PY=bB5#ER{sjs2c1#Z5pn_6%xqRiLH3955 zB3hQlM}st-fZ1>S&Q^Cdg;X3UB%qK$lLUIJKq_llYGVsa%7q^_ zxbIE!-(=j+pyVnc!*R3-I=dov( zo6TCax10f64JjOuK<|}Y&VEbH&d!ms-!!gYzupV>8xdfk0Q(J;?97j9kS$p>HE8{}C4&I+& zGx(V=;`f+b@0A?3`vf-0E!c1IJ!ZdMyLP>*WRvqtfi*lFM-Id43*nf>->QfV`n zwNv(+HbF_PiTyTd&3@+&*lz=5>^IS;v)?{6vEL@I+3V05`)$6A{U-V(_M2|a>x}e@ z4%u%N)k2S<-j5Sn5b!`ZQbl+2ydN`S$wUV~Z`Hh&n@-n3N?wzvd$7u>kW#$pxWg5PpP{=Bx8$Fl{idP<*l)^!)YeP(+X(IW`JJ%e%sOMg{q|Az8*AXG@e!9k z#(wjVv)@t=Ex0RVzfl|5Z^JLA zWxtismB-21Z+=~~-}-(k`>itN&Ba?u?b&ZqiTL`V?W@;ree!hJkyBU0B4U_axB`boU#pjC;Y+3O5!~c91ZZyxmwc%<62$@``HE0rm@G4xh1bW|+H?ZFTt?j?U ze)IL|qY;r?1GC@WeH#1Cpe6gQwj=giNnu`QK@FX)K62VZ?~(@gTVhA-x3i7xx3V_u zH>HCfXk;dSxU+z0IkwAFtT^+=i_XP zQZXP9s!=HTo~7lyi_8SwK9r-iJ4(#JshioULqshp4{v6tp$`~7@4`ytcR8h!20;p~ zZ&rD5^cl1suvh`&>GbK|!r(BN=T1&A46d~F(_wJ=g_?%uYM?^ADxRiif7_nH;0Q1b z&eBRMgTWQPzE#o=21h9(XJ=P}kA+_|46c#V)Cva2Yow`l4TFn&x^Zpx#=ZaR84RwE zZ3E8b)wOe7!r)YU4THOO>r{M?U~v4ps_dxys|#~>9ojy@JNgV6jM4youGRWRH9hCe zhgOx|zIO4%qgt)OZhHpE?^dBuAc47IC@cn#SH@Y`+5*%Ca8IsXDdeG0kc6k;(8(p$ z(f{5mIl#u;zJ2G>qes1m!6hapCM6|-LdsX!bQ1=rY-%^iLG{X}!x5lqkU5sV=lpSA zcRyTDDG<0@8QzS}Z#dD_mq1upLPwRw2M1-t^ZlJU3>t?<@dfo|v>dM11UFSE5#ZyH zcvF);6$QZ*R!P2OiLV~+F&XZqYU$b`Dl?1ukShe`MPI#2aRvLd9NYB2NQ%JFP>D)~ zfj3-w8M&g?3WF7kxQ(}cO?O0YJ=)9zH(Li)|+qS5o29K+PGpj4O< z-Gx)uv7I;7<=*MTEOAw833sT2)j#hGVX`a1))ZS7TE&1sJKCAkc5^d`x_Lb&lS~ zT2a8|n8t+!{bZq{F-Q$_ zbsVvaSyEMlj_*MSuVIF)gxE$62id1ZJQDo!qo>imcMop3E}lKVmK#GB+SuuYJqYQ% zaP@5J-D|I={kVd0{{g^0Svk3+zYeN3@Y^}V{oLu}S@11{H|}F;C)F^t3a}&=Uwoca z&O_V_bDz0PuqWdzV;&wPzxIy*=#W@(VuPzvRAtsWTrIJ^qX46Od`zBPOU5C!H z(!_VIkh9-M_$)ppdD{QczpoBQFLR?i<-%Aun4M-Fs?p!C+U zzV}}(U~oMW1!#2vPrXM`;YdgvTHje$!&FVnT0`4bvy+dCj#4e9t}?9>Y^m5XI~5gt z+J`p!?KqC9=Q*4vSh`0QNru zRp7B|ON#Q#>Fm<1nA{q)sgaSEmR3z+QYM)OdXpkf4Y{C%D-bZ*Y#fdRPT_>q+t=?F zF#+vZRFD=+6>3_V7$_qc_io-Op$kA)q$)2dqZ(;xW~xO(g+90vpAUBpxUAZu+#E_( zZC+|p6&s<1tqBWD!08z4>u3=m`lG*ZXI63Q8MKmWj-HXRfKgIfLVXvTVq|8gqor1p z6?!KmNg$R=1l&qWQEpKgpi)ak+>H3BYNUQ2LtPCOTxMc?Wi1y-hf__-Euo1;yvjPh zu7)Nku$GGG>E#P=GAJ-17Hpx!sEmk9GqbSQ)=;IT1>Xrx6#=OVc{SywIYku$F(ek$ zSCy55g=C;B0x;AS)IxGeML}A84N}iUU#mLn?W5Om#Rd5^W<8r;QAj4&a>NY>vTk%e zr;bvTPpxJHQP4{AN~CVJXhSOIvF-XquYK^}~%vi!nQ*`%D9!=M!vkSSD3 zat2w~*g_R63V!@3yRa~~fXd^r%S#IKN~*xaN+M(>$Hs7QMrMXO>O@3xd?KCAuc2n8 z=GPdSnkl1rFJ3$^$R}qPlqr_LHL1y02Eaim1YQj%+Y_y+NFO~A)r*BJph6!Fpg5tB zfI5eC4it4!N z#Fa!+S+{QOxpU_W3k!Q7PP8)GWr8!WjxXf3TI$$7DWV3BS}+m-V~B92hXmndVD)QPGDBp&?4L0F^^ zfsvpINF4YnuJ5X;SJSt#wNU;HPpywt0&ik%V{dNnFi*q?Qig z669&x*;uM8ea_NjaB7wohAp3p>iVXpI;uTha)49Ov9-4*b-V(-xlTyi;pg|QHdMzp zdnt~-ssujyPHk6O1Rz2E{rBI%C~eJ}HP+VF?E-Ym1Bpa>dwVTjyl}~qMdQbhRZ=1b z1o-vs>)gM8zresiU?|pQD&A8!oH+f*V7o5&F7Gm>j|DK@a^QcX{XK1LY-X+7y=89T z$HINgU&FAEp;jx4NL|bRE4FSL<_40q@fA!EV-`yH4Ouf?q7~U zHDBU@1>3gG7znmI$E)hh{&BWOh2{hjUy-5-9UCx|26BYGg_wLEx%cV_Ay*GFnLRQ58U0nn5Fn1Wak+`!x=G zuN)0a%uy(mk`ic*q-=JxabP!V1lF|M+FBPE7Xu?yFkA<{P4EOUH@B#&ssw4Osi{*a zRF&54Ve6C;mL3C%HCbVIi-sMZs7DGdsF6{}(0B{$fLZgs#S8&fTzdTARg)0`iO8sHH(zHJ)OTc+BbFeA z0;bFw9U>XpOr1W}fFMC&h?L~VH=o4w#S*-#_TZ^MdKsYj2xU>}+jF*`TjSk9m4 zuM|*f)ZE7I7;6z;B%IM-b<3JV3>~XEGbU@|Bq%iJ*nd&~PEd@5WP@myTmOC)sGmM<|l+^UGj}D%QDx*oPhaa7!zwgAAsxGEnWOY{j z`|=X_JgqwDc+Z|ayMKRg(5jc0w=f6oUIhTy5%8eE5I}C|21e{IE>70gmY`vGbad#` z$IRTkPbVoMF?inqpZvHF71c@MMQX$QHng_J{U-mq*6;qQqx<$9ym0RgSURtyZR9g# zNap>MhmKqp*iAXLds5`}QwNS-BKXW5>8u7UOata`AE8xv^w7Q|C*MunxYEJ6o!u*V zWsgAkkDS0wewhI*#8nL!tlFfUfA7G7eTUB8wVSwZlBXerC5~9Uvp*u{=n3|Ol^>z+ylLqS^7{uNNyRT8Ke3s*diS!)1T6ftEl+)Y?VoT;QNrbANngnym!+=BXulBS<_|E*ijaO`%fb3NXAQ6t|1ma-oJ0(!}p?1KhMLU z+g?yvc^m)93Q=2>dj0CX%G#nc2lrpP|K{)0r^)onpo^!D-3*sth*nOnfu^V<`}hBT z;;!b1#nT6v$V=Yee^^EG2Rb|LMH+gzXG6ygudY8}#28-G?fv@>{&l}}^ZvC)8U%=- zZegN}>DC+4CaEY6zMur!-V;5@3X8?fn>RNg!2j1@f6dIy>Ol%Xw~LBOY;A2^T$~LI z^o@)RqoShUzmI(RG6Zzy!NyHlS=pT=i`Q@oux7tbs*(!%Q4w)2!-nd@!+HGVnWIu3 z-_9&y0N4A0lDYqZz2*nV;JmdD0!~sKnP1XBO zAFOoeP7DJ)SNN4r?>sT|8)_iSov816bba51Fe;4SSVUCWZv$w|Dc@+NYvKW8Zlxxo6V}IsJMUs;k$S50iyziM4>Tg9uKI?#~j*q#7Iq)^2`-$ zff+VhNz2e$!^Ju%BpsutE=mQa&aEAnC8w*@vpI6DZ$6Di8EI)~Oj@lkN;wM-SY&f}Y-M#_5}_K;t)?`RU+M*Q z5J6WP@GBw6(tS9sH0qBx$uLSr=IV;0j{Yz0jokLLzQ4KzK7*1M7nhtncdnqIpf{CaGMSGbKUGr$-D4z&1CQ#P$M&5l zI0&a==;LmF_t?g3?}Y`W%VMdU|0p!Jg5aKNl?#X zRAimsw~r#r=yU(Ws3;MuE7Q41E#HA2PygI-CYUOFrHP%iyj1{89G*&H*MdwQR;Afi; z3g7V{&&nmhU9T*-LBm1X{P)jaTa24!Mc}`B73Vi|hNT{uL&g|em~}Ok3~||+uigvB zOzRKEmB5+WxoDFx1YL^}LwvwN%VKNv@#t@X3;&Rknh_FTZa8DSEf|90b?qkjn1_VC zDP|5uxso(TW63Yg_@p#h-@_EVM^6~9faZ06861Xp~0 zZ3*dO}qkdi0ojz(lwg4mZ&{yury zv@Kf!919(PYtOT|GDsqQd49KG%7XQqyus``HTvw0w=iUqPA#C&I1nrU(B4z)7fzf% zsU{|mGkNj4ksKZ#3q@Z&84_PykLJ9~^;x`m``gDCLKC0;jK!{4zL`~zk}`7l9e!F? zE6`xm$;EiUgaVFNk$v*$k(txyZ*v7*WN}eUNSaitYwI=IjusM`F08N3FQB%R7o)tm zm_^!u>}i z@RhMpC<5BZQy-1**0Y9H$)Tmw+OXgLBXazIQVbKX(?2h`xo=ryQMW2&H)GdM+mxBV zKI~R#MWC-Ffo^G6Ps)bO^Pc=^YXL-DVbNQ7E~onryc+6$U`0rU1QZhZVhZ0q(JC~y zdvf}>LJ2q}#l`HV*8p8*%daUbER#<)b`?}{{_9ELD|g+$Ud0tTD z6!la{;G30zLdn0`OQ$HfLIT~Bz*ioVw|_m>jbbY%-nt;GMTvB+h?Z*fsmjN8iv+mdCODPeGCG{e-6k)7qXx+y`Pg5KG)Fi1B zF?dy?vW~hY_}OK*UDM2U^w=SKt!+6w%(17QYJ*0NnKWr4_>3FwqovZVF-Ob1e%OES z$P%xXKHyl%#7Um!gs~&cv>UBE+XU*-Pa?@|#1K!g)V(QoA6FkAN0a8?O((i{Kr(O` zJ86`mY(0A?F_5k^-rPFSN4wpXz$v@?jgVJ%;)DROp5J-SZ`XH>0ZF;c+4Jm=MV+Ln zIMo{o^j^skU?+vQZ{J?Jba~dSSwn^l0cMLmC=h`_7&~^%v}sdDjvN8-Q2P3MBSsAK z@fjEx7%+VJFm?47hFKk_j`o=_cfsOiL)`Rxd=qz^aI>%O%=uGs^_5v!SsLz>cdwt@ zdp@I`-|QW$Cv!_cl3C>vO*1XLp8cS$8|HU`TWc;-XGbJ0*A+{~w^VZ1k+Ww9Is&a% z)-m6)XPa&VCl0f0*B&nu&Cb$-&!Id<&78kz`B-n`&Tkq?PVmwlC&3#0mIpq5n+u?u-o1OTy1E7gvb3}?HZ}&jjRn@uIGm1-4j1Ya zIi=$`z^Lx}qu8+levjgBgI$roh!gQk3&~kol@*e^-aA)&8eV);+^c*7ri`z7w)WD#2M1$p!{boX-l-26-&My%)5_Nxb@9fFnS+Pl|8RlU ziE%KuHm3mI#J$NOkfs}VEiSxy^wO&|xo1{ZA~P*R zn=p0EDz1&+`uU?+)zun?n(xk>c$8k;z=E4=Mi&8_cPNGtlX%v@9^RF2`YSAO5pP-IneMqbAAA=?%uuo zKx)Tq~Al*hTS~O6+VarY$Q$SKD$!R94YD!Pe>?{-M{dDl~PZQazw;!SK z)mI%pIlSNP^U~PHe_K0m@W!K$U^yVs zI{hZB9%*^@@IC;5(-Hq=yYk0#$7~LsyOUc`ECaw9>CMtVzV9F%LfMX8vdD(M{eP#+ zSqM${iKkX9rtREU4R|)jw(1`a&$*sW)3)2XXiDPEy?3Ka&0MDJ+pr*f@o$Wl7N9ti zt(~2)@hzl2uzqJlasZsC>r4QED}_&Gdj*(3xp?YTZUtoGg~Q`9rOCT*e}I(Dmhag! zd!+N>`zc}w<2TBm9K44MQG(yqjTr14RS+gOG}SiJeYvbe=>>>+5i=9+5Yp_*=V)Rf1ID} z6MFLHlk3{%i~2E79lq2URq_2%34DhB4v|P)x^#)Arq&;S9P0t%5fn`-krWgZnwy&s z95?`=pFzJpE-oIR-(I|U`6?t7K%#PU8(R1d>w(jD_0X({%CD7*>l0!V%sqT$({IXw zLtJ8lU(uMr7G6?U%aB{Mmn6S0W{ZUU%ACSda!N{7tw1bfl~GvQ2HFIo#SjldXh<5c zH0Rf4Bv&eVSsJv;5sfo8v$V6b<&~CV%pHuCA#-zYa~%0qLN#bVMNDe=yJTB;4`UVk zKwIAP_r-jWrHCCL9;W2zB~OTCI`F{e$&b#TdYw=RQm#sU{p*h1H1cyk{PMJWPa?8%OH3@hj0mL>QKew=vVsyzAvn2f zw4M+FN^WZd3M~KVsdv&FYN%*Et0pcn0StEp?9!^@fC+ztDIbPAqPG(lq^HWM?;56*MFfi;`j@m;#ZQ&&AECxTCjse>ngS&>{i5Sq^|hp;3VH+EF~YAKG=WzbaO9?oaDs031wt#0a`k+9i!S8z+jhiJNKF-0?P;sm50(SqlvsKECVrDF5kB)n_)8f8 zE@RdH&Ex$O-m(c0huPRImGA|8B1uz;P=OJ!=m0Sxb3zdpfzwo%%@LV7cmn`jY(}B{ zi384aX}M4TK2t_1Sh;Z8*o3rXc^vpZ2J9DE!C^O~0`YiaB^?bM0KoBh9Dx9?7lELm zY2>`D5dcSEQUQ9RIRS7~M|l|Zun7PM*$(d#04I@%g#vl4#r*nu(6>S&QBHw@T3FKL zA6JhO!2mdILqj)5lL8q4u2G&KGk_LBVK4x;-Kq%Sp+v7`s;XZ`8typGk2gy&)923u8zHU1hqNAj>H%{h4 zsQR)ZGC=0TPAX+o7E@)^--_hO6#t(VuG_fhpkk(7CY+D|`^rQK1q|-vm*#7nQNZB7 zhSa}wp1p0!ds#jO0Irt;R76)upi2pSWhL*KVOy8AQUvIs1ONc8=+gjj1=NqOW$0lU z6wyAn1io^2{c~4Gk)A>V3JJ88KyPQ)+oq@Zt&o610{<}yD3ts^c0m-y`D_x%zI!>S ztF-{1EwgVWp|3nXSHR%Dl^aD-&Tm%&y;bsF!r%x5B0x|8la=mBu(Xttn3yQHZ0SyT zMHqzy6cPXu=&h2=VQ|1c{LPy;fGY8+G6kllety0h8XYZ#YL`}ATwHQ;vO>w*2}a?e zkU(b==&h22v;hom%a$z+2BQZsI1n9!fsIT%D`Vq1H2O1?wlOiqw?YEniv&J{+5qH3 ze0&06zX20ez=!%&$+6jNK$zk2xS%6|!C=6Dkx1PBUAmT*R_7_(c@MYKSAsYdFW4dMZ-Iq5V84Mj`St79pVXsfG8rKuAq<`nsiGm#HkR^O zh}ud7yA}yaTdKOLsR>}heYBo<%S9VE`kAUhg3|iJ<DRUX6 zk52AA@+hInr^g3KG{JwysueRwnCPm=-hW79um7^*_&ZzQ!9R=~@bL8ZcuJ4cZWYma z^!)7;OkN!NIiW$x4S(FS)tFA+kp+|-YvSZOcmCqI^GkxWf$=NBVerV=fzEeM|C&

    rTKpFB>k4wRlrRNsL6ape1R;=~;}>rnq4i+b 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 z z-D%qQOUGY7cQowK(O=R;VPCE$tD=y2l7r`rX{Nk;PvSZW`s=oASE_h)C@kz@g5Zn2 zE5KW$Cn4|xvJ9|>mE~8LzkK$}!Xr?RDEU-@R5BYk-rop);_#s#PTx`sTC>>05CTJL z8JGsRm_NGmV_4Y9R=waYA9=}(QqeY+w&882tl1W7eEsw>aBnvw(!py$Nzi%s@|m!( zu+tBVLf3q3rYd@L@zk4=>bM72k6*gq%7W<_n2MYKIMRZx-tG0Cm!epW`kZbwOL!Ky8L_Uv)Q({mfC1PsJ-+!Pm` z+MADxz^D+rA@}Cv^htrw38>%Qem5c;Bf3RVgv`R6eUPrUYm2ZZ3%q)X~}U z?D;dgNW^R{41byH>gTI2iI@27Ze<5(1hu_<7^&eJV9`565>?=qFAt3T^Uq2O9RlH2 zmsf-K38f;xk&p5Ynd4!liB;7j>#9gX_Wh@4=rPTib?sIbXwwL3)pu^cvi0|qf&&X) zKhCIchj3bBWAco~4Kc(6wVx2EBglR9q6A3KO?}KT^>xMqCsftYMh6RNYbD!Qm z!jUE>7APS-zp%V-p8gx>a%JLuZSzS$S?$#YX9C5Et4bxd7>^<(ypxplTYBP4=F_VL~e7vc>wn1)Z8;lYXQs3StYtMAjc*?r!SO_0N>!h-n;`<^flQqfKYxnE{ z(x3ET`SrPpC9$(<4gTNU~^>~n41p*5Md^SsJ3_KcxfkdI< zl7c{|OO*p*aXN$|G*VLWcZuuzA!`#mB3k8DhxA>zHONjWKPB;PaU~<5=L=}>h!7+~ z8P!3NjpK<}>`oNkSVe52knVK*MCo@5Q&Z8^G1K3)XAgL}z)%=bYm*4exP9UL#x);( zb=b8w^Zw7b;yUHV`&ugA9KK@o<*IE#%Q~OlI3J!;)lcTX-(w7nyt=yj!i9@vWo7T7 zEfE}I5p1TSLj*HnRJ3~yl3V#$)TY(9v=hw-ah^LwbzXjd%%4B!$p55 z?f#D^6Iwclz84m)zNUraq@yLsr-@VywLonqjsRD};_2=6 zolF`Fr%r~$r7TM{iU?s-q;H$zs5=!VL7SEb|8V(9TeqR}>FF;Yg-`TxF*D5RschH` z9z<7F4F)Nb+!sL^Nh@z*LFB4QE|*4aEVvjJRy$C3RV{tU)aM`XIn}`zk8bF?%sRMj zimm#M-dk%Rm6eoQn+h57W($E}(L^4tzJ&%c?<={su>+%w=qWZ(sL9F|j^{V;NUUgq z=uQ}-kHzEDxI`_`m6F&w6pJBn=@fBeX9S0c#i2JaHCcWTgJa75}H#JH1Vrb={p^U_6nFjlN0*8FkYR1lP zrl{z|tn9pq)CTgRS(czrjnTB8?P(Gb5mQCYy#0!?aG|TXn!;!YP4UWq^-MZ2&1RMz z`|3Ns>(Vb*%_2ZFS8QAFXej<*PShUnVycu=T-MT2!xrL|#qH$Qdv~APPMK$;gMh%$ z7QTx#>Jt-ddKJ;qyx3~C+03bC0K)}GE7{vwfp2D7)~?gM#=+3K3+GQrd>q>;v2Y-+ zJ})Joik}fU2?SOm=`NTx8wQ0c8@ntCvWR>UFKzJ5Sh!XTkA`4%=PnK|ihd<|bIIQ~ za5JAqv0SdxoL)8p5!L34Pg)TGImX2byS5sJO1TYZWbJSHOJW0c@ zSmc01L11|OnE_63B475HV^2V_OW)or*xj3CZc@yLUX z5eg!#ug(?~~p$9z7Y!|AS) zMj9J}*HI#m*8y{51Uy0izs?3)MPe0~&8exWEibPqEG%qmYXgDhlW_@}iz$tGlF`!) z>txV$jUAwExyf&m^SJtJ7lgRDdN>;(V^a!39?85PuIuM^SE8PFlOl#|vk; zx_enG*Ppv|r?!=aCh3pUgeJU6?c_lC^tSxs^6`O7{5;(}CrvQpBqVsT|1+1R2XGopgRD#=OHa9ubnz;lv^dwIm^ zyRR!iZ%og^5muX&St)Kk;WbT63Dj3fMdJdO&a@Q0cvB>P)=;RPr6Z&!DXWUc>!9RS zHM<9g`gpi|xsT^HmKWBrf|h?g!`I8x+p9V8>h1Vq4o^U*Lp-L2IO^jX8Tim;i+v_d zvNuqEbnSc&rEia2EdSqrd|>t)l7P~6(ng>LZjg7>(pvJt5VqnNQw``(JiB+ztwZbL zD&)ixbax*8rTW60KhtF|1-XkK&bhz-kl#D!0(`ja{qs`p>1chByz@G_mC-#Fa{oLG z*sAXzOyQ%@fI1f!pQ$ok4uqRg$72hfe+j#SFqnk z{>T(D6dD+r21aY-3ijK`^sNZ3(7^v(1EV$aF=4-fc`yChZ@Rh)_S^rwI4BbQA8DXD zKn<+PF@l5y_|6|mlHZ8-k0kgYVMlBAKU6I%qf)BtTgQ6Fr?S@S z?YlZ64&F@}YSto(sA;Cxi_j}#Q41=1P15iGKove?rGe2-Y*$jk`}p_(b~A8HpFSPz zlF-^Z0%41^zxq-qKUYQlnP1~h0hi6_ zVnQHVW^NyETWgA7A_(fn69aUZ*^LO}IYG`9d8Oi&u%kOP4MWbJS=~_6s-{L#S9e&k zX|5iuGrh2ObW;1ohC=w-_mnhz+|0>+t0_Q&h4!I>)~HqzIY+)gIJ^e2fo{d6&|^n(t82W`{cYU z4ws%0_u`%L8MS#2YV#nfhU0u@Ib`hoRpEfZG&k(kTYOF@CyuwW78Q02f`!Ths>t zhhRKC*B<~US7zHPZ$3yl{c-T=+o@a_Qg71yEdhp94nhOjdGg$^U=6v@-2d##@vlp$ zX1ZD=W%&JDkJRlwY{{BR*tVM|uH>}SQL09ZmM$a{;3y=zHtYFs50iM3=6dz59g&UN ztGDlD=0DOha>Wr;gmtm!uSK?V27lK=p_)!18>Tt(1tMNs`OV+&*D!dR*1pSUPeeiB zDzMIrcOpE3R~o8nFWR`>F*D-))7**vp#jdCd?Aiq`uxO=c)1%>INzaxk<^xhi;@E1 zz)HkX0pQ-&vRl~i4S*}{0>G)r1K_^d;dAe-6aW_k)*<%*;Esy{aAyYszy(VIa6iTk z41fc3@1aniklD=4=kfr!!(ss3?STMrr~3flpa1~3z6StjB>});B|A_I2!Q*&3jik! z`=SQ`Hx&Tj9>4AdfQ#q%2f+1tV(sOHojPVFFsQccobMM}UpjLbpykeIB986+SeuB1 zU{xo0`w?mq0ZA>X*>LZ7yGe~N!@`awbQo?~?gelFNRjaE)2ra>4;LTXE!gHx1`G|9 zHh{ZT$!!8*#EB}ED zV_@Xn0Jv|yc^?2=REz`wheXz8j1d5CN}!f_xJe9v%lhl43;4FrIrJh}Bq9sqaj$gb>rr+@7Rz-M09<&yj@2Z)9st}EF#wJ*RMSi-Wbt4qEJSnueE*E_dnL_6h=5)A;6jD2yNiw{ zP#Lu%Gdf$`)yheWt#2xfiYNx$roz-RO-mC1=weW-3o0ni{&R!8Y#}0ot(8u10};hN zyIW0Tix_pU5^5}LjCx;{KSTS5%<@tJ9vkeek^ta* zg0`&Q)Lu6P0FKrl0H>@>*60I(!wj{q45h5A%xI#B(0GKfq=PC8+DYdTbV(Qp4Z>lw zz*r|x7K_u#@7vafTTYm>Vu4dbUP??xiLI}suhOGeF}qKuTRGo>oj5H`l96f1r+Xa0 z%672T0f5XBJyXW!iFZ_Hdt9+=z z{DIT_5BrXRkplqS`STZs1i-oNZcljUT!0~AaOM&iTZi^21eU-m%`vi zifr!A$h%;0#}elm>m}$C4<4e^%)rqEQ`&JG5UZ}JCLcgZI^e9@)f zUw9}GHQ&AW(s9~+a}5{-j;jH}$L1y`CW2vn zAPkV;0MNaURAXzCycgl}J+_LxxWqggOBPjRp2TynAZrw2#*B_|gS*4?F9!Z`{nm8kq+9J69E^HPhJD zP3)F3jdGp(k5df@=V8oSp zt=+jN_R*!6=}*5#p*C&&5^S|1q85i8ds5%dRin3-RbixK*sR9FA5R=#yl~}iM}R99 zR3=B{=8CkfT&Gz#MRJ)dGjyEiRK3!MqdUSY=lb)xW5XkZLAFxr8)G0ciWltKdv4g4J%P#F2&p;d)Ug$Di~X+UA*qj?ye zL3_V`=Ujl%B%p|^(7@Pg;Dh(iWz(@na9h2<29F@3BB(+G|3wXq*2tBWmG$)W-h&|_ zRW<^TGM{3C!u8sNaIojlR^3sXSSOM!s2nVe!e5~Qg$DX)V6;tlEEcnU`?krGC%@l- zIUEZ&bvMD_m7qf8(0?j=ss>JEC|psE_j!VfQ-ucJp@GrXZyql_bm8~mc+z2L$i?jL$BkzeCkx{7vVb{Qiv7;B6R~4UI{T>4$AZdcGt&f{w z`t$HQFrjwv1Ln9W>dWz~wtZ94-1|wO@y>3Zh9s~m9n31G#y*TDFZ=EbgXCogpExZ0 zKFq0d+Kx+uOC8A-g6S-Eq^pS#Y^kD~=&cm->wZ9$@eAufE@<1(!a3%aODOu3gALNuDRd*5e{L;<+df`V$iv6&cZDLab8&uu>; zreY2MFq}B!^L4ZEeIme6`cAVCeYaMrrB0GitG~ zE-Nf3DsJg`=ZhO^=CkP2<^JOLU)KTEaSB+sV%e&NKBF#WkkLyJ*9roGFg!dQIJRur z+}zxpl_iCl$uj(|UtpF_P7XFU*0*opX=!N#!OhG}_4W0EZKD9H0*%(x)MP@2d>w0! zn?&yX{jZc6zCM4Y-lX*^VDCzP_}BUDnu^kb0!riE+wS|eP0+g>Q#Jg^1BCRQKfCSe zf#<0O;%f!s|CXL6=B8Sse<}kcCg+90>e<>Fpt@d%BpZ9qi!K&j{rN(`x$*(3?s|_m=z}^5~-)B3pP^#t@n{-0W=0+ zP$MHFuopu~Ng05&f{uD+C8DmbzNv`t4R%1y?401O#VO&H^N!8Y zz(1l%7cL?&rWU?SBG%)chBG>}eoozrDG3<5fX9N4#dO{{a{9s5HrIhd{OpT`*r)!hWmGe01Y+DqA4L z5HaJ2nRNm_GOZ?VmKbtbxH=eqgXxvv6$xG0+oknU`0 z3&SYUisLWcdIr|5fy2PUj>xG_eiT1%<_0}=VzZZ6k`1}&c?Mc@i!P@~-fIKp(R|vbW!l;MF2}==7(=hnO}_dxA+#wo z`Hv?rX*j+0TR){1JR=*sVDTUeF&D1CA~{c6Hf^GjCU?h9Qsn*fi6v542*i2XRA_Ew zN|&|wq=Z%`dCpnkYm8xvlpsyX=dVY!(%IwY?pQ#s&Sn`|YALJWIxil-P|`{V>tSck z2{qS7!{FGwS6A-GS19Y4&0VzEKuG{WC^hChzW&!+`FCCK!t>{=g0lXF2Z2`$T(EkQ zK2n5(CtbZBRa7CssZ9=9>~2F8K=AEZcVBl}F7$UW!5e(~ncmZTSJEr#IJ~-xG3?ii zIZ)dvPIhLQuS&)Bs)^SRE8Sx9>zz#uQ3R#ZSC8&QCo@znKijyxG%snKxg8v%#I8=h z{KwPQ-kIomkMyWy^{g+M{o&E;~XNM_JucW|(?urPCW zb{aR%*4Wqx0Go#p1WJatpH~+Lu2Ln)v5P>aKXKkSpLB8HF5Z!G;QRyf@BMi6_^({6 z`DeeKoACSD!zZp_yq1U9t3VJK-<7+A)hbRL4Lkm0-0aV{*y@WHLiakr7X>JEa>#5( zHwSLZ=Srn_q#QWwIXmV~)PtaK!Rz+AL6T31xn-xBHVbylckLDe)p7V@{lc>N`wD0A**2lPtMdp z3oN{s9XNYOo0^==<_^i~R++E-FHTL@NK4#bG4NjWeW=w>C&P{$`(4>@#oURy5CmG! z*uvkA{O7rohfiJ9ow8|`i)MM!xT{>d)c7<<;LlF6xt(nqbI)j{;i$NH#N^cGMcuviDyuZ@`HACafQ1A3dXB-Wl+=p$%4gBJUVh$Kq{L3q zLR4fo)e-R$EzFIyl&aEtSY*y`-c!@$m`IpGSag7~Z^j13EnN;rqBT zY7V~U^r(y`5s#hp`mIBt90%@EUk+Tkj02ZeP?jGbQ&P|5u^aPpsYaH1IJ{wK2>I@B z5n#P^M=jvMk^HQBzg(2G7Dza71$Y~(j$i1fbnAAq zcuh4MaNr*6c?arBGL6%5Jbq+nHwUil<<&J}4xIP1@Vgrqc=hGL%?rwlyjRe`hX^^v zkFOM~I!y#1G;p-#{e1Dp12G5A!%n^7_PuN{%2t~Fq+Yup2TtAQ%bhy`xK8>PEPMU+ zQK0-OucJBq`E!Oy#AwM6f0^s<=Su=DKb%d7BP2St8iY)XeQh#1kPMn4lA|sARb)ZE z0KzScy?5(fSb)n}6twO+axtzX)fSv%|F2c;2Ua1f7RJK7lwCd+^d7eJrL>NRQ z;Ke?>SI^+^J8Pno8!T+P-aFmVWDWum4+D%V*=g4=25Y@^n&!j1@vUI&kkb-z`+=HQ zkW@r{`it07ijYrFjC?~fx4>eMB8UjDV`8X+;da)PR#VL^{XC7EZagRe3;VgvMYkR% zPxPOxDoX%|HwX>Uzk4-OT3}LINPgD63k-ObC>zZW*1aPML#>HUY18zxGyMrln6w14|LiOmx=Wkl1=C)=xa6%A%X@w3-Spbgks79U&0@N;!S!N8C( z^~JNNRK9@SQS$6Xn&V`@K7GG2Xu3-|aC`RbsjRG&-TugaK~p3xEnP!HJvcasPNy|C zHr~7UFfJ}0Y`y@8!Qluv7;+z6BEm5^gapTTbKrD` zQy-4Fg{q3_ED`jyx5XJ?P;UR)#ev&;=*uPa)>yhSgi4V;B>{s)$E#`)uq_y7ORbE1 z!Qpm7uv!|D@gg(lpyrySlQEgya^*O18{6yZGkfk6qlARix3|f<4uAuP*Hy2-+r5$NEfw6v7Pp=5=jI|e85?k`5`w{7|A2Nose=(#&cq%w?3k@2a7 zOcoudq6r|M(gO}BOA5@6t^$MYEERO6(k&5z&?Bjl=571bSAywKMNx|d?4qdOZ;`hx z+q!Qlr{dI^E1;(74i6kU7WNY?^x6aqcRBN+a3mg1ni}kw`db2cdvQ5z9#2|!*mMRT zjYUDA5TQ`OW=Th{1au}7jzlAXSmOwD`D~U_WBNHCkv-ehQq0n_-GUn@^1Fq<8Zh4V!u%eE{28G4wlhT z`6HE;a4nQv229=C!{y1(pPhSAC#j85bH6$@#m!o3wxl@V=K6gEU+KXU%8jO47% zTgR)ag?F|N@v;Unm~;j$Eiq)kh+`rTWUj&+luE-}3Djn`TztD(n=hh^J~u>>P%}Dl@2*PFd|B zmdt8<@Z-t&!3&H~*vVqI-8*w4sZBOSAxZMdxo;z}hO74N-LWco=fV5(*)VqUXJ=mB zbKt%t9hh10`UBIv$oCT}{< z_rEv$4I~JL+z>bfnCr@e3z})|&9qjgkPS}z{J}9jojmz$nmhP9YuCT%vT$&P9WQ0S zVcC(9V)mQ4Huy+^)HgMf`&J<@pvTRm7s#{UjI13r2uQ4!X>foSaP)+OK-7!}V!vrw z&z7*?s;ODGUojRgl(65h+ChN*_A0zy5}(a11MD}R>(Vb*%_2ZFS8QAFXe9owq@q3E z#Z;+>{U)v}TJPO`ZaYQ7euJYe2V=jn%w|qC17FDCXe9@GEAa75+uC)ycR%)#O)ypEF1(|XI(gBo+2ElNOeZd#V)o)iyo&jxDYn$VB0!s5dT^7U zMe0ob$VO6Sn)@!9Y^nx9U~T8GBUi;{PR}D)l=$GSOON5GOYR1nffoEq|5A7Seg*g4!G9i z#XW6xGpE^;Cjp1{#A!jMu$Rf%;GtlM8liJSQE(Ve-(m68aj}uF`_xgR-7k&L=W{sH zabl44hz~dpVdiN})Fo1TZE{`wNvvNUEQr~11rsg-g z_yt)JTCy6kv**kJ1D0N{CU5Wm@ie7~My2D8okRRR5FJIiSvjd~DytXGaCP^x#@GLR z>2_@^8%@%;)qp0vNd@0&`1H2?;_~rz8%#XsEpoyG_8WLVjWb6_ zMyCm76JxZ^?36o-c{81h_Yd~B*M_Fl@Ta)hls8f)`%m?9 zvP^q=(ifYd~1R1?US2BPYi z%En3l0EhMJdJ)WmG1>N@)RO>*Wo z=Bi9sFwK+~kqjEbwA}Pmgr4V&>3$v_o**F`eMEL*c2Pkp*U)dtbU!x_FHYXA%YUVT zE{v*yjTW~wE=Te z(V$1yz-KwAmNGH^egR%q8V~=xoRm)yD(eJ#I@Q)zP4b)W?P8lBdG$eDX>SvOd|)gT z9E%`N&_Q5^)oY+p7|prOeT=-j3W>(^iHEpCgA zyRE*WUOL`5jL?c8qtpPqqZ|OW`wZywm^D?EeTLrpr1OE>?|pKkI8|ssp@A{iz-Wit z$2>y{feH;MG%&Ur_`uC|a5D%5VwjC~FjKDoRx4wx4uv#@2L62-_`pVv!C=6L53mSz zIGU}itIN#HRM`1&bfpNR&_K5aMr-7w1i%6F4hjk)kp`M7(Va(`1AGY2&dydCxlA95 zUxfySrGe2JxfB3*>(*@ml^A+wq`|TSCaQyZ>tHIKd;rjZx3#q~Fffq!RJauyP-x&i zG%#8t2T6_w00*M8Sj?E$F>qZN3QWJ3O+uy=G&M9dT3U)HFG>$Qeu%~9vOtPog$Dj( z8fe$Q>obzM0ApbAqlUqWz{FXiv5KXaMO}Wqx`76h%4n*fBqSt&)u`Q%&&bFyAi%Ht zw7)|FgHun7jQl%ca9(mSxTLXz!HMTAOJHzOV+?}}aH@S9kz3Pi-Grf|uZ=FQr4OuRn%J1 z4lolVxf3Z2Zhhe23xk`FVmE@NI%>{yzx!-VU~o$T431F^MCR8E)xM*w0*b=D>Ds$>I$d%y8|x zS+wS=g2F>`R3k zJp6y~%IJ+;+}f7H;GRBxx_R@aapT5~NRM1DkHg^!ctSvn5pV@UKHx-&L;?Vh8cE*7 zFt`o?gY)tA!FMgT8c{BW7nskkttux{9E@PlN|%BG-N4@L`~J=D8}-9!E*KdO5LL+&mv&b76*rKN*UqaP>*@dtCLNZ*ajW$_t}?AF2- zQ&&?;W-Fi0ALh4ous+?Y<&d z%{QL>%)TYMT&Sg~ZHlK|eUR-k$rK6GCKDivuH3lQ4ACS|*R1;M&hM`h zXnkfBN^Sv(z=}8x(j}KO|QW#uxA#>v5&sUD)S5T1_1}az2 zor+JdAbGF+2|j}O-u zDruWx3lDsIxw4am*D_kVX@@z4!o?~-iuq;|bTQ`qF7F_-pt!}tz?Y8mwRt`~} z67}rYCy^|I;rvCb?RD540(E>-#HDo1(y0@SHN+&ii2LX3RQ=Y^ac0n1YAVF=KhH#E z)X7Wx&$`FP$bp3~TlNt^upT^kP|AZCzCzpE+o4J@n<#-k$TyI`XqJ?hVP0GKr_imyHYkTPQW|ykc=mJVl z(g=*cv6;0e^kh z_7a`bVMkgaaH|>X*I2ad`S#}q8kFQT=j^7n&HKVy0MAC>N;Tn!W!H+DHLQ29nV){+ z;O#dxMh^4CKL0ps%>gRFRLLF5FCKd?4KTf(SjH6SnoM%W6&}rM+bl71tl@->OM_mY z|LRG0J5s~qi~ai+PR_iVF6NC8`EB2wzR@Pc>^OOKVPN!;d&ME^c4?Ph-+LoofK^$t z>qlqts&V+Z>1$T#ReZkhQac-|=^A?OvvptWIt<88eGXAabpt}p7=y_L7m!LOW)>(_ z_S{9mZyp?~9UL(Mh$%BR>^5t-_to)80or2Uu}?fJ3M;jyc^fqE{rblyAx?t`Z*FD$ zp<(i|3-#oYE1eMH_EXdApP&Bec@7q@3K#agRr}=UzjitX%^VyKw|@OP5{U$MVF1J9 zBhnzCKgGt!>Un7KIHLAi8d?hww-fhHT8Sy@@JYHHACw)%L8iHVyDx-2ri71W>nj=Jdh zEGuUhePtUzD^_?y6&obUr>Dk5DUEZLLP`jR9*4h}`|#q~sI&?oxhXsPo39UCPv;&v zdv@o#>Ak-tkOF-i(i7q+okD;>YfXDvh%~X&6t`~K4LNt7#1#}*8<@K4VQXF|)qtK( zV{J+;W}LHH-`8SQ#+y>E?o@AUC{Xa;#%CdMVSgV(2!*Zk(M zGNPUBz$kq_Ujzq}9L2GaIAc?DOA8BXS(&Ppo#xMvdO)0vmk(0gc?-H{aY zJU$=P?Q!c4hpm`Z@~93AVRXovoI*C2jU$khu#HGAtyS37@8$8CP&7$ZGBjjpF`=nB zE4#Q-`o;m7Vm22)x%NYRbj058_pX^y`JyL5B-ksYkwKUBo>?q`lBOCOfW25O2A3=D ztYWchB(nVm2>=e9wr9mP_1`vC#xN)1oaZ%{L#wmP9sO^pQXoJi~$J(7PIC{0s0Ytpr28z1G- zCA~q!ysv%^@U(uA{Gzyyudg9)Ru1#v3n(oe^oYx+UR2A>cCeT*0iQ2~!(knr^;|VK za}1;e7#$R)p{~_hm(fIPq#*R{2*@~wcmby}kqn`h)zTq$V5fzs-(ujNpYPgm;>g9K zHa>xX>g*I73ALsurL@70K!mjNWG@F=O&i<6P#*y;Kuk#>D!t6nkH4&6oO~9^t&1Hn62*Hbk%bq_e zqew>{x>AS0!Ix7Apm@s8`~HeVl%_Vu>p#xj&F|GbtWJFJ{hOClR)4x+{?s>#KM4dp z(2(gm=uHo=o_Y27*_X%n+1Mx5Mv40eiet3Rb+EzNxpU{<1H>*>y{?V6uBA4x@csu9 zi?r~wzz{JXeY9lNsufeG1~VAaN+aiYUrE+K~Hq2Z(OIPw$*THLwp*mXGWWtuUOMyc^ zuAa4zn>plVR3?Ch#g*b$EcF1eFucLU#U7-4;R%$E!aGkZLs!n!21zQLE}S_b?#Z)O zNqj!9`N4%#dDw}cZdPQq`%zw@^$;%<+Jo~5R!?@T(5DG zY*3%we_|Z+u?x5ZB*ACVDptya3`$S4L>vZ3UbcPvRL%MyE;?Ot(uel<>s!0fHG`wPh4K+78 zs|K#B>tL*2T$ta%gc8Ym#C%?QlIVn}yVElMP=A)M-lcvuO@bPjo z$KE=1@^x7&vzbCgYEPXp6-z71&B=R|QW?5%`D8D5eB-Mlm!2`XLO2?yB%o&G7J*)? zfZd+-I$GI&)|_Bpj|t;yvXaUhJ5&v=Er^_y+zJRBgF`b?(~E>60j0Ky-c}r!k_#~D z2qXq2V&!K835=A)*BI-m3#JF!=^-wk3M*{nL11va60WZBZM~#rgH|GPTT1dPT8dMm zX=--Urv}++@?MnjTveL>jL4+bmpn>uSh;+qm&Zg@<&(p|MsvlMj8ri)nlOGMP?VRO zRrZ66Ki`R_N%|^K2nt-9D7j>-+H&ORx$-t9il}L4s#jH#+e#M)f}(Il5j8EZoWm29 zynRs#w+Njz14vTilqI|^M{8S!E}G}-?MZA+I)3pXT>zoiR`IlLg90WCnsSNbg6B>P z@N%ansu*VPvWO21lYnCos>VdnA@9mg?;mCxi(W_X?WZ{V;2MAjZaoyl4*&dO z%m>ekA_K$Gz-asD!%1U^FakEerJ$!09w_8M&H91DDg6Fc4UG4mLdlJ9Xk+Tx_y<|? z|NJiXZ%s}id<-@4fsI^pCkitj!w33ziGrc^Ki>A4h%3NCn0GH-%AqJ)SbvwQ$6W3Q zZmy5{{U`(~G@#Hx9}NuL8SWEEajMXOLIeL?4Se|Kx`O@o&n-QQoc|*<@PUmSu;0AB zhs%Det^Iei-&RcFAP1Za@Q)}-icJ0^G%#9&A3X|YGAZRF6F@8 zzI`VqCT0{IxVZitI2#)qLqo%Vs$LcOR%qb=jRr<*n4tC^_r(%( z;9}u=FchX|&BH((IQ)AE|9=(*d^nV!=K23DcZ%%%OEoYCMh@6-si|rE_wNHsPyyF< zq>2LdznJ}IC}Y1FYB1XwP33_7mY9^3+%0W5>^FBi_0*SwdTt7YRWh&-axnuAz<$em6J60fHnXo$s=8k86NvIV z!LwRp%b|l*xG4@h0L$uiz+3d68GESnMTL#y{-;=s%~4*>A63$6mSe z>yjl)-k<$;C%=QzQ4%d-zeT?f`^|gy@|A1X2RiEfZS!oj7O(7Lzo|OUIWR`-x39O& z?PkA$B{5?5+vh6>UWhl6q9tH;mV?Rn`S~Qbg}%l-;K(njWO5|4$%m2y4_Wj1!b#?m zAXw*+rSAFy5VcOIzHk3t2kEMjp`t6U{eRTJ=xcIu`%}t(0}jA`0~LE#R@U(ERmOf3 z_vmHpH$YDSizY_$0@57kPVT(+SISIZpNFY8Y4Uq_cCAyFA2E=4Nj(O*3X%HBN9ekp zF7_LRa_^4&zHJlqF2_`fuXM=(ZSkJPkaGTgd?m6#6yOcmZ>>)c0QQ^MuMqr)T6&t8 znP`hQmy*Tm5-vNHrUuRcnn9YHEcKocK$w6{uP7}74l^p-sJR+2)x=5kWVI)-EV?xF z%ElI^usWP1eQ|gyrAi#PurPUg&4iNKGII9Y+t^#>Ap^7D=<37{Irf`COH)U}e#>!jH$lR+ z$b_mc_L~-9zilyt1NNI1V82~|mC!lRayujf*PHz|P0W77laVbkM^8U!7qj1Nm#De?az%VCU4#6{->&}k z20|jwTCm1NpF`!TsZis-JoyMs(x1O(+XP}83r}i|e|6=rXKlmpCG^R(;&jv+7#ky( zvfq$Mz0aDH-8EHt#jDyw|arrmcs+F-?r=~~~l%evTaUkK&cZ`*sb-?oX_ZwJNfH~u-REvqk_wmfoP%6^N!c2^&;-_FRf z-*$idbEAy?)+EP%`{*|b`)&37^gj;XPOdR@n15&>_FH!eL6IG{eLOqm_k;J6YmJ>3 z9{haO%he}?=FMiO|91Fp3KFM+g)uwg&lp?_UQt-LOmd;HbOa30ER z&(WOA26JU|0X~~hp8F!TraM=|aX>Hod>k{JfQm4~)WAsE$b*QK!r%bt<i%V2O=7#2~RK^Z9w&bc=XPUl@PI6i>ERSp7!i_8H8DNbizR@2}x zxTauu6RT(0|39n z)0uQ-k|kM;c3@CjxLCDiTlQ>U8la!L4WY$DX@%?cv*+ z?1ZlmT`KSQimuFl{op|+kWs_?a?AD=c^iKY`s%0~zW(;_zx`gXcI?PzaH%%=?&l}i ztEQ}Zwo~)Uk?-%t;Z#&qr>)uKM3a6xsCn9(b|cG?;`e`~fzcZIs9|vEL1A!?1~n7w zs^e<`FcysRj1UHA^C0>8`@!HMFQ0yI7@X!nFgQXl7~ItuxYzr^;IvR}F9(3Zsa-#Q zXlNLmv?z4|avVkJ_v433d-az)Ui|TM{FCRK5AIv!W_{>k0RXV}%wLczghB`p5M5vp zqbZ)sKW@5^T+xCxvmoKRkXa3HpM<@A<-g*Sk3wfA#Qi~OWhC9a_-9tFoB)OMgK1#2 z&Gk{k;IsyX!C{aVzUBZ1w{+=}l`EIa!Qgr+Yd`=T(QVcT0l+QtQ0oVPGg~mzMGgSh zG86zV69C}q0RT>YAOIZVeF1P%eN|+~mM{&LhPnXU8v;)X3h;nI)!coYai9gxV?+7; zRwm>B_MhSNqnBT$#P~7hC1v~~Os{O&_nhJ7n_tofN}v<+!eWyZzz$W`woniOo^|)* z>rbXXpFe#1_k8Q-TaHn|O5l?p)y!Qqq=1%;f&mMG0p4sbsv}~RV$KFRFc>2co?d!! za`tI45i!Vo4e(}U;6gj3NgI#`+mKB8kNcPGhRzv*gm@)_f&$*1+j!veb1pU8f)E>^ z*tZ9#CM?^lY#(OMa$(utTR;(Yy8u0gI~xvN`OU;;;vOOPcHg#Bpqj_nH_2UB9LRWl zardgNXV{cX;+)jBY*_p7jbLPclp;5{?)v(2<*GGzpM%dSW#zIDjI&k|{PX?O=4Dgi zmo})oL+aO=Lk5iWK`vbmoMb|Sy`Td>^CqQ0f;Sur;PtX(x zD*kq2>)QQS-r9vmTdRWBzg*e7aMMZ9KpU@!T6lag|EJrFSMHLv@^v=?c>xG6>{_x7 zJc1^yWDpVP$?|w^d1~_;AjYp^bi=$cNp70;8FHq^E#U{}1~R7|rCvK8i;@IMPF4G?S0?6fo-lVIKmc tnS9ts@u&w!dI*eW@{yhbM*TnRL!e;w3HQ*OWjjG0^>p=fS?83{1OUGIcZ>i4 literal 0 HcmV?d00001 diff --git a/docs/en/images/vs-spa-app-backend-structure.png b/docs/en/images/vs-spa-app-backend-structure.png new file mode 100644 index 0000000000000000000000000000000000000000..2cd394c8ebb43c133c86e2129d22efe16015076d GIT binary patch literal 398563 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%0DJiLZe(xj4 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

  1. +G_}rnS3v*fLWGV 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
    cB;q=cK28Yqfd#gyY?Wc*J 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 fIcnNy2#nAW&}8oYB<8at3*>!IS3j3^P6 Date: Wed, 8 Apr 2020 12:06:32 +0300 Subject: [PATCH 083/222] docs: add todo comment to old bookstore tutorial documents --- docs/en/Tutorials/Angular/Part-I.md | 2 ++ docs/en/Tutorials/Angular/Part-II.md | 2 ++ docs/en/Tutorials/Angular/Part-III.md | 2 ++ docs/en/Tutorials/AspNetCore-Mvc/Part-I.md | 2 ++ docs/en/Tutorials/AspNetCore-Mvc/Part-II.md | 2 ++ docs/en/Tutorials/AspNetCore-Mvc/Part-III.md | 2 ++ 6 files changed, 12 insertions(+) diff --git a/docs/en/Tutorials/Angular/Part-I.md b/docs/en/Tutorials/Angular/Part-I.md index 65a7dc5714..2867a3159f 100644 --- a/docs/en/Tutorials/Angular/Part-I.md +++ b/docs/en/Tutorials/Angular/Part-I.md @@ -4,3 +4,5 @@ * [With ASP.NET Core MVC / Razor Pages UI](../Part-1?UI=MVC) * [With Angular UI](../Part-1?UI=NG) + + \ No newline at end of file diff --git a/docs/en/Tutorials/Angular/Part-II.md b/docs/en/Tutorials/Angular/Part-II.md index 65a7dc5714..2867a3159f 100644 --- a/docs/en/Tutorials/Angular/Part-II.md +++ b/docs/en/Tutorials/Angular/Part-II.md @@ -4,3 +4,5 @@ * [With ASP.NET Core MVC / Razor Pages UI](../Part-1?UI=MVC) * [With Angular UI](../Part-1?UI=NG) + + \ No newline at end of file diff --git a/docs/en/Tutorials/Angular/Part-III.md b/docs/en/Tutorials/Angular/Part-III.md index 65a7dc5714..2867a3159f 100644 --- a/docs/en/Tutorials/Angular/Part-III.md +++ b/docs/en/Tutorials/Angular/Part-III.md @@ -4,3 +4,5 @@ * [With ASP.NET Core MVC / Razor Pages UI](../Part-1?UI=MVC) * [With Angular UI](../Part-1?UI=NG) + + \ No newline at end of file diff --git a/docs/en/Tutorials/AspNetCore-Mvc/Part-I.md b/docs/en/Tutorials/AspNetCore-Mvc/Part-I.md index 65a7dc5714..2867a3159f 100644 --- a/docs/en/Tutorials/AspNetCore-Mvc/Part-I.md +++ b/docs/en/Tutorials/AspNetCore-Mvc/Part-I.md @@ -4,3 +4,5 @@ * [With ASP.NET Core MVC / Razor Pages UI](../Part-1?UI=MVC) * [With Angular UI](../Part-1?UI=NG) + + \ No newline at end of file diff --git a/docs/en/Tutorials/AspNetCore-Mvc/Part-II.md b/docs/en/Tutorials/AspNetCore-Mvc/Part-II.md index 65a7dc5714..2867a3159f 100644 --- a/docs/en/Tutorials/AspNetCore-Mvc/Part-II.md +++ b/docs/en/Tutorials/AspNetCore-Mvc/Part-II.md @@ -4,3 +4,5 @@ * [With ASP.NET Core MVC / Razor Pages UI](../Part-1?UI=MVC) * [With Angular UI](../Part-1?UI=NG) + + \ No newline at end of file diff --git a/docs/en/Tutorials/AspNetCore-Mvc/Part-III.md b/docs/en/Tutorials/AspNetCore-Mvc/Part-III.md index 65a7dc5714..2867a3159f 100644 --- a/docs/en/Tutorials/AspNetCore-Mvc/Part-III.md +++ b/docs/en/Tutorials/AspNetCore-Mvc/Part-III.md @@ -4,3 +4,5 @@ * [With ASP.NET Core MVC / Razor Pages UI](../Part-1?UI=MVC) * [With Angular UI](../Part-1?UI=NG) + + \ No newline at end of file From 61b4cce9b2e2a4c4938f7daf30d9979c0991d54b Mon Sep 17 00:00:00 2001 From: maliming Date: Wed, 8 Apr 2020 17:59:28 +0800 Subject: [PATCH 084/222] Return the string directly. --- .../Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs | 2 +- 1 file changed, 1 insertion(+), 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 8d6f570309..733bf46d05 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 @@ -109,7 +109,7 @@ namespace Volo.Abp.Http.Client.DynamicProxying if (typeof(T) == typeof(string)) { - responseAsString = responseAsString.EnsureStartsWith('"').EnsureEndsWith('"'); + return (T)Convert.ChangeType(responseAsString, typeof(T)); } return JsonSerializer.Deserialize(responseAsString); From b41b6f0490aa8390869cead3d2c9f56bc9f9b7bf Mon Sep 17 00:00:00 2001 From: maliming Date: Wed, 8 Apr 2020 18:00:47 +0800 Subject: [PATCH 085/222] Remove extra blank lines. --- .../Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs | 2 +- 1 file changed, 1 insertion(+), 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 733bf46d05..031ea7d99b 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 @@ -111,7 +111,7 @@ namespace Volo.Abp.Http.Client.DynamicProxying { return (T)Convert.ChangeType(responseAsString, typeof(T)); } - + return JsonSerializer.Deserialize(responseAsString); } From 5ae4dccb96a03690d610de5416ae4f2d9c0dbafb Mon Sep 17 00:00:00 2001 From: maliming Date: Wed, 8 Apr 2020 22:17:48 +0800 Subject: [PATCH 086/222] Use the tempkey.rsa file in memory. Resolve #3515 --- .../MyProjectNameTestBaseModule.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyProjectNameTestBaseModule.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyProjectNameTestBaseModule.cs index 974a91dcf6..1dfc546ad6 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyProjectNameTestBaseModule.cs +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyProjectNameTestBaseModule.cs @@ -4,6 +4,7 @@ using Volo.Abp.Authorization; using Volo.Abp.Autofac; using Volo.Abp.BackgroundJobs; using Volo.Abp.Data; +using Volo.Abp.IdentityServer; using Volo.Abp.Modularity; using Volo.Abp.Threading; @@ -17,6 +18,19 @@ namespace MyCompanyName.MyProjectName )] public class MyProjectNameTestBaseModule : AbpModule { + public override void PreConfigureServices(ServiceConfigurationContext context) + { + PreConfigure(options => + { + options.AddDeveloperSigningCredential = false; + }); + + PreConfigure(identityServerBuilder => + { + identityServerBuilder.AddDeveloperSigningCredential(false, System.Guid.NewGuid().ToString()); + }); + } + public override void ConfigureServices(ServiceConfigurationContext context) { Configure(options => From 6e6c884eaf5ad437042cd131f40afadbd94a181e Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 9 Apr 2020 09:11:55 +0800 Subject: [PATCH 087/222] Remove Microsoft.AspNetCore.Mvc.DataAnnotations package. Resolve #3511 --- .../MyCompanyName.MyProjectName.Domain.csproj | 1 - 1 file changed, 1 deletion(-) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyCompanyName.MyProjectName.Domain.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyCompanyName.MyProjectName.Domain.csproj index 2078a20b56..5f7dc8c7b0 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyCompanyName.MyProjectName.Domain.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyCompanyName.MyProjectName.Domain.csproj @@ -12,7 +12,6 @@ - From c3f38382d0d5bc4b95cec63a2398a04cd0bfc082 Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 9 Apr 2020 13:34:40 +0800 Subject: [PATCH 088/222] Introducing AbpRemoteServiceApiDescriptionProvider Resolve #3458 --- .../AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs | 23 +++++ .../AbpRemoteServiceApiDescriptionProvider.cs | 92 +++++++++++++++++++ ...oteServiceApiDescriptionProviderOptions.cs | 10 ++ 3 files changed, 125 insertions(+) create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApiExploring/AbpRemoteServiceApiDescriptionProvider.cs create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApiExploring/AbpRemoteServiceApiDescriptionProviderOptions.cs diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs index 21a675ddc4..9a6a224c48 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs @@ -11,15 +11,19 @@ using Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation; using System; using System.Collections.Generic; using System.Linq; +using System.Net; using System.Reflection; +using Microsoft.AspNetCore.Mvc.ApiExplorer; using Microsoft.Extensions.Hosting; using Volo.Abp.ApiVersioning; +using Volo.Abp.AspNetCore.Mvc.ApiExploring; using Volo.Abp.AspNetCore.Mvc.Conventions; using Volo.Abp.AspNetCore.Mvc.DependencyInjection; using Volo.Abp.AspNetCore.Mvc.Json; using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AspNetCore.VirtualFileSystem; using Volo.Abp.DependencyInjection; +using Volo.Abp.Http; using Volo.Abp.Http.Modeling; using Volo.Abp.Localization; using Volo.Abp.Modularity; @@ -50,6 +54,25 @@ namespace Volo.Abp.AspNetCore.Mvc options.IgnoredInterfaces.AddIfNotContains(typeof(IActionFilter)); }); + Configure(options => + { + var statusCodes = new List + { + (int) HttpStatusCode.Forbidden, + (int) HttpStatusCode.Unauthorized, + (int) HttpStatusCode.BadRequest, + (int) HttpStatusCode.NotFound, + (int) HttpStatusCode.NotImplemented, + (int) HttpStatusCode.InternalServerError + }; + + options.SupportedResponseTypes.AddIfNotContains(statusCodes.Select(statusCode => new ApiResponseType + { + Type = typeof(RemoteServiceErrorResponse), + StatusCode = statusCode + })); + }); + context.Services.PostConfigure(options => { if (options.MinifyGeneratedScript == null) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApiExploring/AbpRemoteServiceApiDescriptionProvider.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApiExploring/AbpRemoteServiceApiDescriptionProvider.cs new file mode 100644 index 0000000000..1714d74e65 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApiExploring/AbpRemoteServiceApiDescriptionProvider.cs @@ -0,0 +1,92 @@ +using System.Collections.Generic; +using System.Linq; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Abstractions; +using Microsoft.AspNetCore.Mvc.ApiExplorer; +using Microsoft.AspNetCore.Mvc.Controllers; +using Microsoft.AspNetCore.Mvc.Formatters; +using Microsoft.AspNetCore.Mvc.ModelBinding; +using Microsoft.Extensions.Options; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Reflection; + +namespace Volo.Abp.AspNetCore.Mvc.ApiExploring +{ + public class AbpRemoteServiceApiDescriptionProvider : IApiDescriptionProvider, ITransientDependency + { + private readonly IModelMetadataProvider _modelMetadataProvider; + private readonly MvcOptions _mvcOptions; + private readonly AbpRemoteServiceApiDescriptionProviderOptions _options; + + public AbpRemoteServiceApiDescriptionProvider( + IModelMetadataProvider modelMetadataProvider, + IOptions mvcOptionsAccessor, + IOptions optionsAccessor) + { + _modelMetadataProvider = modelMetadataProvider; + _mvcOptions = mvcOptionsAccessor.Value; + _options = optionsAccessor.Value; + } + + public void OnProvidersExecuted(ApiDescriptionProviderContext context) + { + } + + /// + /// The order -999 ensures that this provider is executed right after the + /// Microsoft.AspNetCore.Mvc.ApiExplorer.DefaultApiDescriptionProvider. + /// + public int Order => -999; + + public void OnProvidersExecuting(ApiDescriptionProviderContext context) + { + foreach (var apiResponseType in GetApiResponseTypes()) + { + foreach (var result in context.Results.Where(x => ShouldAddResponseTypes(x.ActionDescriptor))) + { + result.SupportedResponseTypes.AddIfNotContains(x => x.StatusCode == apiResponseType.StatusCode, () => apiResponseType); + } + } + } + + protected virtual IEnumerable GetApiResponseTypes() + { + foreach (var apiResponse in _options.SupportedResponseTypes) + { + apiResponse.ModelMetadata = _modelMetadataProvider.GetMetadataForType(apiResponse.Type); + + foreach (var responseTypeMetadataProvider in _mvcOptions.OutputFormatters.OfType()) + { + var formatterSupportedContentTypes = responseTypeMetadataProvider.GetSupportedContentTypes(null, apiResponse.Type); + if (formatterSupportedContentTypes == null) + { + continue; + } + + foreach (var formatterSupportedContentType in formatterSupportedContentTypes) + { + apiResponse.ApiResponseFormats.Add(new ApiResponseFormat + { + Formatter = (IOutputFormatter) responseTypeMetadataProvider, + MediaType = formatterSupportedContentType + }); + } + } + } + + return _options.SupportedResponseTypes; + } + + protected virtual bool ShouldAddResponseTypes(ActionDescriptor actionDescriptor) + { + if (ReflectionHelper.GetSingleAttributeOfMemberOrDeclaringTypeOrDefault(actionDescriptor.GetMethodInfo()) != null || + ReflectionHelper.GetSingleAttributeOfMemberOrDeclaringTypeOrDefault(actionDescriptor.GetMethodInfo()) != null) + { + return false; + } + + var remoteServiceAttr = ReflectionHelper.GetSingleAttributeOfMemberOrDeclaringTypeOrDefault(actionDescriptor.GetMethodInfo()); + return remoteServiceAttr != null && remoteServiceAttr.IsEnabled; + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApiExploring/AbpRemoteServiceApiDescriptionProviderOptions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApiExploring/AbpRemoteServiceApiDescriptionProviderOptions.cs new file mode 100644 index 0000000000..74e631c53c --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApiExploring/AbpRemoteServiceApiDescriptionProviderOptions.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; +using Microsoft.AspNetCore.Mvc.ApiExplorer; + +namespace Volo.Abp.AspNetCore.Mvc.ApiExploring +{ + public class AbpRemoteServiceApiDescriptionProviderOptions + { + public HashSet SupportedResponseTypes { get; set; } = new HashSet(); + } +} \ No newline at end of file From efaf7fe3e05063fd1568211a412c16f3f79baf45 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Fri, 10 Apr 2020 21:55:42 +0800 Subject: [PATCH 089/222] Update document --- ...-Application-Modules-Extending-Entities.md | 2 - ...Application-Modules-Overriding-Services.md | 99 +++++++++++++++++++ 2 files changed, 99 insertions(+), 2 deletions(-) diff --git a/docs/zh-Hans/Customizing-Application-Modules-Extending-Entities.md b/docs/zh-Hans/Customizing-Application-Modules-Extending-Entities.md index 4cc73989fc..76a43ea80a 100644 --- a/docs/zh-Hans/Customizing-Application-Modules-Extending-Entities.md +++ b/docs/zh-Hans/Customizing-Application-Modules-Extending-Entities.md @@ -58,8 +58,6 @@ ObjectExtensionManager.Instance ## 创建新实体映射到同一个数据库表/Collection -尽管额外属性方法**易于使用**并且适用于一些场景,但它具有[实体文档](Entities.md)中描述的一些缺点. - 另一个方法是**创建你自己的实体**映射到**同一个数据库库**(对于MongoDB数据库是collection) [应用程序启动模板](Startup-Templates/Application.md)的 `AppUser` 已经实现了这种方法. [EF Core迁移文档](Entity-Framework-Core-Migrations.md)描述了在这些情况下如何实现和管理**EF Core数据库迁移**. 这种方法同样适用于MongoDB,但你不需要处理数据库迁移问题. diff --git a/docs/zh-Hans/Customizing-Application-Modules-Overriding-Services.md b/docs/zh-Hans/Customizing-Application-Modules-Overriding-Services.md index cb40de9bdb..4b98f7cfb2 100644 --- a/docs/zh-Hans/Customizing-Application-Modules-Overriding-Services.md +++ b/docs/zh-Hans/Customizing-Application-Modules-Overriding-Services.md @@ -161,6 +161,105 @@ public class MyIdentityUserManager : IdentityUserManager 控制器,框架服务,视图组件类以及其他类型注册到依赖注入的类都可以像上面的示例那样被重写. +## 扩展数据传输对象 + +你可以如[扩展实体文档](Customizing-Application-Modules-Extending-Entities.md)所述扩展实体. 并使用上面介绍的重写相关服务**使用自定义属性****执行其他业务逻辑**. + +应用程序使用的数据传输对象(**DTO**)同样可扩展. 这样你可以使服务返回其他属性并在UI(或其他客户端)得到其他属性. + +### 示例 + +假设你已经按照[扩展实体文档](Customizing-Application-Modules-Extending-Entities.md)中的说明添加了 `SocialSecurityNumber` 并希望从 `IdentityUserAppService的GetListAsync` 方法获取用户列表时包括此属性. + +你可以使用[对象扩展系统](Object-Extensions.md)将属性添加到 `IdentityUserDto`. 在应用程序启动模板带有的 `YourProjectNameDtoExtensions` 类中编写以下代码: + +````csharp +ObjectExtensionManager.Instance + .AddOrUpdateProperty( + "SocialSecurityNumber" + ); +```` + +这段代码为 `IdentityUserDto` 类添加了 `string` 类型的 `SocialSecurityNumber` 属性. 现在你可以在RREST API客户端调用 `/api/identity/users` HTTP API(内部使用 `IdentityUserAppService`),你会在 `extraProperties` 部分看到 `SocialSecurityNumber` 值. + +````json +{ + "totalCount": 1, + "items": [{ + "tenantId": null, + "userName": "admin", + "name": "admin", + "surname": null, + "email": "admin@abp.io", + "emailConfirmed": false, + "phoneNumber": null, + "phoneNumberConfirmed": false, + "twoFactorEnabled": false, + "lockoutEnabled": true, + "lockoutEnd": null, + "concurrencyStamp": "b4c371a0ab604de28af472fa79c3b70c", + "isDeleted": false, + "deleterId": null, + "deletionTime": null, + "lastModificationTime": "2020-04-09T21:25:47.0740706", + "lastModifierId": null, + "creationTime": "2020-04-09T21:25:46.8308744", + "creatorId": null, + "id": "8edecb8f-1894-a9b1-833b-39f4725db2a3", + "extraProperties": { + "SocialSecurityNumber": "123456789" + } + }] +} +```` + +手动添加了 `123456789` 值到数据库中. + +所有预构建的模块都在DTO中支持额外属性,你可以对其轻松的配置. + +### 定义检查 + +当为实体[定义](Customizing-Application-Modules-Extending-Entities.md)额外的属性时,由于安全性它不会自动出现在所有相关的DTO中. 额外属性可能包含敏感数据并且你可能不想默认公开给客户端. + +因此如果要用于DTO,需要为相应的DTO显式定义相同的属性(如上所述). 如果要允许在用户创建时进行设置还需要为 `IdentityUserCreateDto` 定义. + +如果属性并不是安全敏感,这可能会很枯燥. 对象扩展系统允许你忽略检查定义的属性. 参阅示例: + +````csharp +ObjectExtensionManager.Instance + .AddOrUpdateProperty( + "SocialSecurityNumber", + options => + { + options.MapEfCore(b => b.HasMaxLength(32)); + options.CheckPairDefinitionOnMapping = false; + } + ); +```` + +这是定义实体属性的另一种方法( 有关 `ObjectExtensionManager` 更多信息,请参阅[文档](Object-Extensions.md)). 这次我们设置了 `CheckPairDefinitionOnMapping` 为false,在将实体映射到DTO时会跳过定义检查. + +如果你不喜欢这种方法,但想简单的向多个对象(DTO)添加单个属, `AddOrUpdateProperty` 可以使用类型数组添加额外的属性: + +````csharp +ObjectExtensionManager.Instance + .AddOrUpdateProperty( + new[] + { + typeof(IdentityUserDto), + typeof(IdentityUserCreateDto), + typeof(IdentityUserUpdateDto) + }, + "SocialSecurityNumber" + ); +```` + +### 关于用户界面 + +该系统允许你向实体和DTO添加额外的属性并执行自定义业务代码,但它与用户界面无关. + +参阅 [重写用户界面](Customizing-Application-Modules-Overriding-User-Interface.md) 指南了解关于UI部分. + ## 如何找到服务? [模块文档](Modules/Index.md) 包含了定义的主要服务列表. 另外 你也可以查看[源码](https://github.com/abpframework/abp/tree/dev/modules)找到所有的服务. \ No newline at end of file From 66595e35f55fb1d79e690a2ac8e6b5634c8b05d6 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Fri, 10 Apr 2020 22:57:10 +0800 Subject: [PATCH 090/222] Translate object extensions document --- docs/zh-Hans/AutoMapper-Integration.md | 3 - .../Best-Practices/Application-Services.md | 18 +- .../Best-Practices/Data-Transfer-Objects.md | 1 + docs/zh-Hans/Object-Extensions.md | 267 ++++++++++++++++++ docs/zh-Hans/Object-To-Object-Mapping.md | 17 ++ docs/zh-Hans/docs-nav.json | 4 + 6 files changed, 301 insertions(+), 9 deletions(-) delete mode 100644 docs/zh-Hans/AutoMapper-Integration.md create mode 100644 docs/zh-Hans/Object-Extensions.md diff --git a/docs/zh-Hans/AutoMapper-Integration.md b/docs/zh-Hans/AutoMapper-Integration.md deleted file mode 100644 index d197861f25..0000000000 --- a/docs/zh-Hans/AutoMapper-Integration.md +++ /dev/null @@ -1,3 +0,0 @@ -## AutoMapper Integration - -TODO \ No newline at end of file diff --git a/docs/zh-Hans/Best-Practices/Application-Services.md b/docs/zh-Hans/Best-Practices/Application-Services.md index 6c8d11b32b..6c681edde1 100644 --- a/docs/zh-Hans/Best-Practices/Application-Services.md +++ b/docs/zh-Hans/Best-Practices/Application-Services.md @@ -17,7 +17,7 @@ ##### 基础DTO -**推荐** 为实体定义一个**基础**DTO. +**推荐** 为聚合根定义一个**基础**DTO. - 直接包含实体中所有的**原始属性**. - 例外: 出于**安全**原因,可以**排除**某些属性(像 `User.Password`). @@ -27,7 +27,7 @@ ```c# [Serializable] -public class IssueDto : FullAuditedEntityDto +public class IssueDto : ExtensibleFullAuditedEntityDto { public string Title { get; set; } public string Text { get; set; } @@ -57,7 +57,7 @@ public class IssueLabelDto ````C# [Serializable] -public class IssueWithDetailsDto : FullAuditedEntityDto +public class IssueWithDetailsDto : ExtensibleFullAuditedEntityDto { public string Title { get; set; } public string Text { get; set; } @@ -66,14 +66,14 @@ public class IssueWithDetailsDto : FullAuditedEntityDto } [Serializable] -public class MilestoneDto : EntityDto +public class MilestoneDto : ExtensibleEntityDto { public string Name { get; set; } public bool IsClosed { get; set; } } [Serializable] -public class LabelDto : EntityDto +public class LabelDto : ExtensibleEntityDto { public string Name { get; set; } public string Color { get; set; } @@ -120,6 +120,7 @@ Task> GetListAsync(QuestionListQueryDto queryDto); * **推荐** 使用 `CreateAsync` 做为**方法名**. * **推荐** 使用**专门的输入DTO**来创建实体. +* **推荐** DTO类从 `ExtensibleObject` 类继承(或任何实现 `ExtensibleObject`的类) 以允许在需要时传递额外的属性. * **推荐** 使用 **data annotations** 进行输入验证. * 尽可能在**领域**之间共享常量(通过**domain shared** package定义的常量). * **推荐** 只需要创建实体的**最少**信息, 但是提供了其他可选属性. @@ -134,7 +135,7 @@ Task CreateAsync(CreateQuestionDto questionDto); ````C# [Serializable] -public class CreateQuestionDto +public class CreateQuestionDto : ExtensibleObject { [Required] [StringLength(QuestionConsts.MaxTitleLength, MinimumLength = QuestionConsts.MinTitleLength)] @@ -151,6 +152,7 @@ public class CreateQuestionDto - **推荐** 使用 `UpdateAsync` 做为**方法名**. - **推荐** 使用**专门的输入DTO**来更新实体. +- **推荐** DTO类从 `ExtensibleObject` 类继承(或任何实现 `ExtensibleObject`的类) 以允许在需要时传递额外的属性. - **推荐** 获取实体的id做为分离的原始参数. 不要包含更新DTO. - **推荐** 使用 **data annotations** 进行输入验证. - 尽可能在**领域**之间共享常量(通过**domain shared** package定义的常量). @@ -199,6 +201,10 @@ Task VoteAsync(Guid id, VoteType type); * **不推荐** 在应用程序服务方法中使用linq/sql查询来自数据库的数据. 让仓储负责从数据源执行linq/sql查询. +#### 额外的属性 + +* **推荐** 使用 `MapExtraPropertiesTo` 扩展方法 ([参阅](Object-Extensions.md)) 或配置对象映射 (`MapExtraProperties`) 以允许应用开发人员能够扩展对象和服务. + #### 操作/删除 实体 * **推荐** 总是从数据库中获取所有的相关实体以对他们执行操作. diff --git a/docs/zh-Hans/Best-Practices/Data-Transfer-Objects.md b/docs/zh-Hans/Best-Practices/Data-Transfer-Objects.md index 0c6017e6e7..29e51501ea 100644 --- a/docs/zh-Hans/Best-Practices/Data-Transfer-Objects.md +++ b/docs/zh-Hans/Best-Practices/Data-Transfer-Objects.md @@ -2,6 +2,7 @@ * **推荐** 在 **application.contracts** 层中定义DTO. * **推荐** 在可能和必要的情况下从预构建的 **基础DTO类** 继承 (如 `EntityDto`, `CreationAuditedEntityDto`, `AuditedEntityDto`, `FullAuditedEntityDto` 等). +* **推荐** 从**聚合根**的**扩展DTO**继承(如 `ExtensibleAuditedEntityDto`), 因为聚合根是可扩展的额外的属性使用这种方式映射到DTO. * **推荐** 定义 **public getter 和 setter** 的DTO成员 . * **推荐** 使用 **data annotations** **验证** service输入DTO的属性. * **不推荐** 在DTO中添加任何 **逻辑**, 在必要的时候可以实现 `IValidatableObject` 接口. diff --git a/docs/zh-Hans/Object-Extensions.md b/docs/zh-Hans/Object-Extensions.md new file mode 100644 index 0000000000..27957708f4 --- /dev/null +++ b/docs/zh-Hans/Object-Extensions.md @@ -0,0 +1,267 @@ +# 对象扩展 + +ABP框架提供了 **实体扩展系统** 允许你 **添加额外属性** 到已存在的对象 **无需修改相关类**. 它允许你扩展[应用程序依赖模块](Modules/Index.md)实现的功能,尤其是当你要扩展[模块定义的实体](Customizing-Application-Modules-Extending-Entities.md)和[DTO](Customizing-Application-Modules-Overriding-Services.md)时. + +> 你自己的对象通常不需要对象扩展系统,因为你可以轻松的添加常规属性到你的类中. + +## IHasExtraProperties 接口 + +这是一个使类可扩展的接口. 它定义了 `Dictionary` 属性: + +````csharp +Dictionary ExtraProperties { get; } +```` + +然后你可以使用此字典添加或获取其他属性. + +### 基类 + +默认以下基类实现了 `IHasExtraProperties` 接口: + +* 由 `AggregateRoot` 类实现 (参阅 [entities](Entities.md)). +* 由 `ExtensibleEntityDto`, `ExtensibleAuditedEntityDto`... [DTO](Data-Transfer-Objects.md)基类实现. +* 由 `ExtensibleObject` 实现, 它是一个简单的基类,任何类型的对象都可以继承. + +如果你的类从这些类继承,那么你的类也是可扩展的,如果没有,你也可以随时手动继承. + +### 基本扩展方法 + +虽然可以直接使用类的 `ExtraProperties` 属性,但建议使用以下扩展方法使用额外属性. + +#### SetProperty + +用于设置额外属性值: + +````csharp +user.SetProperty("Title", "My Title"); +user.SetProperty("IsSuperUser", true); +```` + +`SetProperty` 返回相同的对象, 你可以使用链式编程: + +````csharp +user.SetProperty("Title", "My Title") + .SetProperty("IsSuperUser", true); +```` + +#### GetProperty + +用于读取额外属性的值: + +````csharp +var title = user.GetProperty("Title"); + +if (user.GetProperty("IsSuperUser")) +{ + //... +} +```` + +* `GetProperty` 是一个泛型方法,对象类型做为泛型参数. +* 如果未设置给定的属性,则返回默认值 (`int` 的默认值为 `0` , `bool` 的默认值是 `false` ... 等). + +##### 非基本属性类型 + +如果您的属性类型不是原始类型(int,bool,枚举,字符串等),你需要使用 `GetProperty` 的非泛型版本,它会返回 `object`. + +#### HasProperty + +用于检查对象之前是否设置了属性. + +#### RemoveProperty + +用于从对象中删除属性. 使用此方法代替为属性设置 `null` 值. + +### 一些最佳实践 + +为属性名称使用魔术字符串很危险,因为你很容易输入错误的属性名称-这并不安全; + +* 为你的额外属性名称定义一个常量. +* 使用扩展方法轻松设置你的属性. + +示例: + +````csharp +public static class IdentityUserExtensions +{ + private const string TitlePropertyName = "Title"; + + public static void SetTitle(this IdentityUser user, string title) + { + user.SetProperty(TitlePropertyName, title); + } + + public static string GetTitle(this IdentityUser user) + { + return user.GetProperty(TitlePropertyName); + } +} +```` + +然后, 你可以很容易地设置或获取 `Title` 属性: + +````csharp +user.SetTitle("My Title"); +var title = user.GetTitle(); +```` + +## Object Extension Manager + +你可以为可扩展对象(实现 `IHasExtraProperties`接口)设置任意属性, `ObjectExtensionManager` 用于显式定义可扩展类的其他属性. + +显式定义额外的属性有一些用例: + +* 允许控制如何在对象到对象的映射上处理额外的属性 (参阅下面的部分). +* 允许定义属性的元数据. 例如你可以在使用[EF Core](Entity-Framework-Core.md)时将额外的属性映射到数据库中的表字段. + +> `ObjectExtensionManager` 实现单例模式 (`ObjectExtensionManager.Instance`) ,你应该在应用程序启动之前定义对象扩展. [应用程序启动模板](Startup-Templates/Application.md) 有一些预定义的静态类,可以安全在内部定义对象扩展. + +### AddOrUpdate + +`AddOrUpdate` 是定义对象额外属性或更新对象额外属性的主要方法. + +示例: 为 `IdentityUser` 实体定义额外属性: + +````csharp +ObjectExtensionManager.Instance + .AddOrUpdate(options => + { + options.AddOrUpdateProperty("SocialSecurityNumber"); + options.AddOrUpdateProperty("IsSuperUser"); + } + ); +```` + +### AddOrUpdateProperty + +虽然可以如上所示使用 `AddOrUpdateProperty`, 但如果要定义单个额外的属性,也可以使用快捷的扩展方法: + +````csharp +ObjectExtensionManager.Instance + .AddOrUpdateProperty("SocialSecurityNumber"); +```` + +有时将单个额外属性定义为多种类型是可行的. 你可以使用以下代码,而不是一个一个地定义: + +````csharp +ObjectExtensionManager.Instance + .AddOrUpdateProperty( + new[] + { + typeof(IdentityUserDto), + typeof(IdentityUserCreateDto), + typeof(IdentityUserUpdateDto) + }, + "SocialSecurityNumber" + ); +```` + +#### 属性配置 + +`AddOrUpdateProperty` 还可以为属性定义执行其他配置的操作. + +Example: + +````csharp +ObjectExtensionManager.Instance + .AddOrUpdateProperty( + "SocialSecurityNumber", + options => + { + options.CheckPairDefinitionOnMapping = false; + }); +```` + +> 参阅 "对象到对象映射" 部分了解 `CheckPairDefinitionOnMapping` 选项. + +`options` 有一个名为 `Configuration` 的字典,该字典存储对象扩展定义甚至可以扩展. EF Core使用它来将其他属性映射到数据库中的表字段. 请参阅[扩展实体文档](Customizing-Application-Modules-Extending-Entities.md). + +## 对象到对象映射 + +假设你已向可扩展的实体对象添加了额外的属性并使用了自动[对象到对象的映射](Object-To-Object-Mapping.md)将该实体映射到可扩展的DTO类. 在这种情况下你需要格外小心,因为额外属性可能包含**敏感数据**,这些数据对于客户端不可用. + +本节提供了一些**好的做法**,可以控制对象映射的额外属性。 + +### MapExtraPropertiesTo + +`MapExtraPropertiesTo` 是ABP框架提供的扩展方法,用于以受控方式将额外的属性从一个对象复制到另一个对象. 示例: + +````csharp +identityUser.MapExtraPropertiesTo(identityUserDto); +```` + +`MapExtraPropertiesTo` 需要在**两侧**(本例中是`IdentityUser` 和 `IdentityUserDto`)**定义属性**. 以将值复制到目标对象. 否则即使源对象(在此示例中为 `identityUser` )中确实存在该值,它也不会复制. 有一些重载此限制的方法. + +#### MappingPropertyDefinitionChecks + +`MapExtraPropertiesTo` 获取一个附加参数来控制单个映射操作的定义检查: + +````csharp +identityUser.MapExtraPropertiesTo( + identityUserDto, + MappingPropertyDefinitionChecks.None +); +```` + +> 要小心,因为 `MappingPropertyDefinitionChecks.None` 会复制所有的额外属性而不进行任何检查. `MappingPropertyDefinitionChecks` 枚举还有其他成员. + +如果要完全禁用属性的定义检查,可以在定义额外的属性(或更新现有定义)时进行,如下所示: + +````csharp +ObjectExtensionManager.Instance + .AddOrUpdateProperty( + "SocialSecurityNumber", + options => + { + options.CheckPairDefinitionOnMapping = false; + }); +```` + +#### 忽略属性 + +你可能要在映射操作忽略某些属性: + +````csharp +identityUser.MapExtraPropertiesTo( + identityUserDto, + ignoredProperties: new[] {"MySensitiveProp"} +); +```` + +忽略的属性不会复制到目标对象. + +#### AutoMapper集成 + +如果您使用的是[AutoMapper](https://automapper.org/)库,ABP框架还提供了一种扩展方法来利用上面定义的 `MapExtraPropertiesTo` 方法. + +你可以在映射配置文件中使用 `MapExtraProperties()` 方法. + +````csharp +public class MyProfile : Profile +{ + public MyProfile() + { + CreateMap() + .MapExtraProperties(); + } +} +```` + +它与 `MapExtraPropertiesTo()` 方法具有相同的参数。 + +## Entity Framework Core 数据库映射 + +如果你使用的是EF Core,可以将额外的属性映射到数据库中的表字段. 例: + +````csharp +ObjectExtensionManager.Instance + .AddOrUpdateProperty( + "SocialSecurityNumber", + options => + { + options.MapEfCore(b => b.HasMaxLength(32)); + } + ); +```` + +参阅 [Entity Framework Core 集成文档](Entity-Framework-Core.md) 了解更多内容. \ No newline at end of file diff --git a/docs/zh-Hans/Object-To-Object-Mapping.md b/docs/zh-Hans/Object-To-Object-Mapping.md index 67d580ae54..57b744e0bf 100644 --- a/docs/zh-Hans/Object-To-Object-Mapping.md +++ b/docs/zh-Hans/Object-To-Object-Mapping.md @@ -145,6 +145,23 @@ options.AddProfile(validate: true); > 如果你有多个配置文件,并且只需要为其中几个启用验证,那么首先使用`AddMaps`而不进行验证,然后为你想要验证的每个配置文件使用`AddProfile`. +### 映射对象扩展 + +[对象扩展系统](Object-Extensions.md) 允许为已存在的类定义额外属性. ABP 框架提供了一个映射定义扩展可以正确的映射两个对象的额外属性. + +````csharp +public class MyProfile : Profile +{ + public MyProfile() + { + CreateMap() + .MapExtraProperties(); + } +} +```` + +如果两个类都是可扩展对象(实现了 `IHasExtraProperties` 接口),建议使用 `MapExtraProperties` 方法. 更多信息请参阅[对象扩展文档](Object-Extensions.md). + ## 高级主题 ### IObjectMapper 接口 diff --git a/docs/zh-Hans/docs-nav.json b/docs/zh-Hans/docs-nav.json index f01ce04bc9..893e1c3236 100644 --- a/docs/zh-Hans/docs-nav.json +++ b/docs/zh-Hans/docs-nav.json @@ -140,6 +140,10 @@ { "text": "设置管理", "path": "Settings.md" + }, + { + "text": "对象扩展", + "path": "Object-Extensions.md" } ] }, From 43dedc8e7a604cd31a0610dfaee907180b069350 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Fri, 10 Apr 2020 22:59:56 +0800 Subject: [PATCH 091/222] Add data-filtering document nav --- docs/zh-Hans/docs-nav.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/zh-Hans/docs-nav.json b/docs/zh-Hans/docs-nav.json index 893e1c3236..59b91f8e4f 100644 --- a/docs/zh-Hans/docs-nav.json +++ b/docs/zh-Hans/docs-nav.json @@ -141,6 +141,10 @@ "text": "设置管理", "path": "Settings.md" }, + { + "text": "数据过滤", + "path": "Data-Filtering.md" + }, { "text": "对象扩展", "path": "Object-Extensions.md" From 85f1fc5496144dea0f58f1cc3f450e08f633f6da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 10 Apr 2020 22:21:28 +0300 Subject: [PATCH 092/222] Create ObjectExtensionPropertyInfoValidationExtensions. --- ...tensionPropertyInfoValidationExtensions.cs | 68 +++++++++++++++++++ ...tExtensionPropertyInfoValidationOptions.cs | 25 +++++++ .../Abp/Validation/AbpValidationModule.cs | 1 + 3 files changed, 94 insertions(+) create mode 100644 framework/src/Volo.Abp.Validation/Volo/Abp/ObjectExtending/ObjectExtensionPropertyInfoValidationExtensions.cs create mode 100644 framework/src/Volo.Abp.Validation/Volo/Abp/ObjectExtending/ObjectExtensionPropertyInfoValidationOptions.cs diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/ObjectExtending/ObjectExtensionPropertyInfoValidationExtensions.cs b/framework/src/Volo.Abp.Validation/Volo/Abp/ObjectExtending/ObjectExtensionPropertyInfoValidationExtensions.cs new file mode 100644 index 0000000000..926e086d21 --- /dev/null +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/ObjectExtending/ObjectExtensionPropertyInfoValidationExtensions.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using JetBrains.Annotations; + +namespace Volo.Abp.ObjectExtending +{ + public static class ObjectExtensionPropertyInfoValidationExtensions + { + public const string ValidationConfigurationName = "Validation"; + + [NotNull] + public static ObjectExtensionPropertyInfo ConfigureValidation( + [NotNull] this ObjectExtensionPropertyInfo propertyExtension, + [NotNull] Action configureAction) + { + Check.NotNull(propertyExtension, nameof(propertyExtension)); + Check.NotNull(configureAction, nameof(configureAction)); + + configureAction(propertyExtension.GetOrAddValidationConfiguration()); + + return propertyExtension; + } + + [NotNull] + public static ObjectExtensionPropertyInfo AddValidationAttributes( + [NotNull] this ObjectExtensionPropertyInfo propertyExtension, + [NotNull] params ValidationAttribute[] validationAttributes) + { + Check.NotNull(propertyExtension, nameof(propertyExtension)); + Check.NotNullOrEmpty(validationAttributes, nameof(validationAttributes)); + + propertyExtension + .GetOrAddValidationConfiguration() + .ValidationAttributes + .AddRange(validationAttributes); + + return propertyExtension; + } + + [CanBeNull] + public static ObjectExtensionPropertyInfoValidationOptions GetValidationConfigurationOrNull( + [NotNull] this ObjectExtensionPropertyInfo propertyExtension) + { + Check.NotNull(propertyExtension, nameof(propertyExtension)); + + return propertyExtension.Configuration.GetOrDefault(ValidationConfigurationName) + as ObjectExtensionPropertyInfoValidationOptions; + } + + [NotNull] + public static ObjectExtensionPropertyInfoValidationOptions GetOrAddValidationConfiguration( + [NotNull] this ObjectExtensionPropertyInfo propertyExtension) + { + Check.NotNull(propertyExtension, nameof(propertyExtension)); + + var validationConfiguration = propertyExtension.GetValidationConfigurationOrNull(); + + if (validationConfiguration == null) + { + validationConfiguration = new ObjectExtensionPropertyInfoValidationOptions(propertyExtension); + propertyExtension.Configuration[ValidationConfigurationName] = validationConfiguration; + } + + return validationConfiguration; + } + } +} diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/ObjectExtending/ObjectExtensionPropertyInfoValidationOptions.cs b/framework/src/Volo.Abp.Validation/Volo/Abp/ObjectExtending/ObjectExtensionPropertyInfoValidationOptions.cs new file mode 100644 index 0000000000..e28efc14df --- /dev/null +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/ObjectExtending/ObjectExtensionPropertyInfoValidationOptions.cs @@ -0,0 +1,25 @@ +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using JetBrains.Annotations; + +namespace Volo.Abp.ObjectExtending +{ + public class ObjectExtensionPropertyInfoValidationOptions + { + [NotNull] + public ObjectExtensionPropertyInfo ExtensionProperty { get; } + + [NotNull] + public ObjectExtensionInfo ObjectExtension => ExtensionProperty.ObjectExtension; + + [NotNull] + public List ValidationAttributes { get; } + + public ObjectExtensionPropertyInfoValidationOptions( + [NotNull] ObjectExtensionPropertyInfo extensionProperty) + { + ExtensionProperty = Check.NotNull(extensionProperty, nameof(extensionProperty)); + ValidationAttributes = new List(); + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/AbpValidationModule.cs b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/AbpValidationModule.cs index ad2be911de..9da6766a5d 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/AbpValidationModule.cs +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/AbpValidationModule.cs @@ -18,6 +18,7 @@ namespace Volo.Abp.Validation context.Services.OnRegistred(ValidationInterceptorRegistrar.RegisterIfNeeded); AutoAddObjectValidationContributors(context.Services); } + public override void ConfigureServices(ServiceConfigurationContext context) { Configure(options => From 2a061874b6936ba69e68b823cb4050f767b04a23 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Sat, 11 Apr 2020 00:32:22 +0300 Subject: [PATCH 093/222] feat: add an empty modal container component --- .../modal/modal-container.component.ts | 12 +++++++ .../tests/modal-container.component.spec.ts | 34 +++++++++++++++++++ .../src/lib/theme-shared.module.ts | 16 +++++---- 3 files changed, 55 insertions(+), 7 deletions(-) create mode 100644 npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal-container.component.ts create mode 100644 npm/ng-packs/packages/theme-shared/src/lib/tests/modal-container.component.spec.ts diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal-container.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal-container.component.ts new file mode 100644 index 0000000000..bd24bd84d2 --- /dev/null +++ b/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal-container.component.ts @@ -0,0 +1,12 @@ +import { Component, ViewChild, ViewContainerRef } from '@angular/core'; + +@Component({ + selector: 'abp-modal-container', + template: ` + + `, +}) +export class ModalContainerComponent { + @ViewChild('container', { static: true, read: ViewContainerRef }) + container: ViewContainerRef; +} diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/modal-container.component.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/modal-container.component.spec.ts new file mode 100644 index 0000000000..4ee654e9bd --- /dev/null +++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/modal-container.component.spec.ts @@ -0,0 +1,34 @@ +import { Component, ComponentFactoryResolver, ComponentRef } from '@angular/core'; +import { createComponentFactory, Spectator } from '@ngneat/spectator/jest'; +import { ModalContainerComponent } from '../components/modal/modal-container.component'; + +describe('ModalContainerComponent', () => { + @Component({ template: '
    bar
    ' }) + class TestComponent {} + + let componentRef: ComponentRef; + let spectator: Spectator; + + const createComponent = createComponentFactory({ + component: ModalContainerComponent, + entryComponents: [TestComponent], + }); + + beforeEach(() => (spectator = createComponent())); + + afterEach(() => componentRef.destroy()); + + describe('#container', () => { + it('should be a ViewContainerRef', () => { + let foo = document.querySelector('div.foo'); + expect(foo).toBeNull(); + + const cfResolver = spectator.get(ComponentFactoryResolver); + const factory = cfResolver.resolveComponentFactory(TestComponent); + componentRef = spectator.component.container.createComponent(factory); + + foo = document.querySelector('div.foo'); + expect(foo.textContent).toBe('bar'); + }); + }); +}); diff --git a/npm/ng-packs/packages/theme-shared/src/lib/theme-shared.module.ts b/npm/ng-packs/packages/theme-shared/src/lib/theme-shared.module.ts index 15ba212944..f23410d6d0 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/theme-shared.module.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/theme-shared.module.ts @@ -1,4 +1,4 @@ -import { CoreModule, noop, LazyLoadService } from '@abp/ng.core'; +import { CoreModule, LazyLoadService, noop } from '@abp/ng.core'; import { DatePipe } from '@angular/common'; import { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core'; import { NgbDateParserFormatter, NgbPaginationModule } from '@ng-bootstrap/ng-bootstrap'; @@ -9,23 +9,24 @@ import { ChartComponent } from './components/chart/chart.component'; import { ConfirmationComponent } from './components/confirmation/confirmation.component'; import { HttpErrorWrapperComponent } from './components/http-error-wrapper/http-error-wrapper.component'; import { LoaderBarComponent } from './components/loader-bar/loader-bar.component'; +import { LoadingComponent } from './components/loading/loading.component'; +import { ModalContainerComponent } from './components/modal/modal-container.component'; import { ModalComponent } from './components/modal/modal.component'; +import { PaginationComponent } from './components/pagination/pagination.component'; import { SortOrderIconComponent } from './components/sort-order-icon/sort-order-icon.component'; import { TableEmptyMessageComponent } from './components/table-empty-message/table-empty-message.component'; -import { ToastContainerComponent } from './components/toast-container/toast-container.component'; import { TableComponent } from './components/table/table.component'; +import { ToastContainerComponent } from './components/toast-container/toast-container.component'; import { ToastComponent } from './components/toast/toast.component'; import styles from './constants/styles'; +import { LoadingDirective } from './directives/loading.directive'; import { TableSortDirective } from './directives/table-sort.directive'; import { ErrorHandler } from './handlers/error.handler'; import { RootParams } from './models/common'; +import { THEME_SHARED_APPEND_CONTENT } from './tokens/append-content.token'; import { httpErrorConfigFactory, HTTP_ERROR_CONFIG } from './tokens/http-error.token'; import { DateParserFormatter } from './utils/date-parser-formatter'; import { chartJsLoaded$ } from './utils/widget-utils'; -import { PaginationComponent } from './components/pagination/pagination.component'; -import { LoadingComponent } from './components/loading/loading.component'; -import { LoadingDirective } from './directives/loading.directive'; -import { THEME_SHARED_APPEND_CONTENT } from './tokens/append-content.token'; /** * @@ -54,6 +55,7 @@ export function appendScript(injector: Injector) { LoaderBarComponent, LoadingComponent, ModalComponent, + ModalContainerComponent, PaginationComponent, TableComponent, TableEmptyMessageComponent, @@ -81,7 +83,7 @@ export function appendScript(injector: Injector) { TableSortDirective, ], providers: [DatePipe], - entryComponents: [HttpErrorWrapperComponent, LoadingComponent], + entryComponents: [HttpErrorWrapperComponent, LoadingComponent, ModalContainerComponent], }) export class ThemeSharedModule { constructor(private errorHandler: ErrorHandler) {} From 146c8631606a0f0b45547a996ce2a36c032907c5 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Sat, 11 Apr 2020 00:33:49 +0300 Subject: [PATCH 094/222] feat: add a service that projects to modal container --- .../theme-shared/src/lib/services/index.ts | 1 + .../src/lib/services/modal.service.ts | 47 ++++++++++ .../src/lib/tests/modal.service.spec.ts | 87 +++++++++++++++++++ 3 files changed, 135 insertions(+) create mode 100644 npm/ng-packs/packages/theme-shared/src/lib/services/modal.service.ts create mode 100644 npm/ng-packs/packages/theme-shared/src/lib/tests/modal.service.spec.ts diff --git a/npm/ng-packs/packages/theme-shared/src/lib/services/index.ts b/npm/ng-packs/packages/theme-shared/src/lib/services/index.ts index c53455a433..c363a56894 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/services/index.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/services/index.ts @@ -1,2 +1,3 @@ export * from './confirmation.service'; +export * from './modal.service'; export * from './toaster.service'; diff --git a/npm/ng-packs/packages/theme-shared/src/lib/services/modal.service.ts b/npm/ng-packs/packages/theme-shared/src/lib/services/modal.service.ts new file mode 100644 index 0000000000..ac481f68ea --- /dev/null +++ b/npm/ng-packs/packages/theme-shared/src/lib/services/modal.service.ts @@ -0,0 +1,47 @@ +import { ContentProjectionService, PROJECTION_STRATEGY } from '@abp/ng.core'; +import { ComponentRef, Injectable, TemplateRef, ViewContainerRef } from '@angular/core'; +import { ModalContainerComponent } from '../components/modal/modal-container.component'; + +@Injectable({ + providedIn: 'root', +}) +export class ModalService { + private containerComponentRef: ComponentRef; + + constructor(private contentProjectionService: ContentProjectionService) { + this.setContainer(); + } + + private setContainer() { + this.containerComponentRef = this.contentProjectionService.projectContent( + PROJECTION_STRATEGY.AppendComponentToBody(ModalContainerComponent), + ); + + this.containerComponentRef.changeDetectorRef.detectChanges(); + } + + clearModal() { + this.getContainer().clear(); + this.detectChanges(); + } + + detectChanges() { + this.containerComponentRef.changeDetectorRef.detectChanges(); + } + + getContainer(): ViewContainerRef { + return this.containerComponentRef.instance.container; + } + + renderTemplate(template: TemplateRef, context?: T) { + const containerRef = this.getContainer(); + + const strategy = PROJECTION_STRATEGY.ProjectTemplateToContainer( + template, + containerRef, + context, + ); + + this.contentProjectionService.projectContent(strategy); + } +} diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/modal.service.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/modal.service.spec.ts new file mode 100644 index 0000000000..e1a2e8bf51 --- /dev/null +++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/modal.service.spec.ts @@ -0,0 +1,87 @@ +import { Component, TemplateRef, ViewChild } from '@angular/core'; +import { createComponentFactory, Spectator } from '@ngneat/spectator/jest'; +import { ModalContainerComponent } from '../components/modal/modal-container.component'; +import { ModalService } from '../services'; + +describe('ModalContainerComponent', () => { + @Component({ + template: ` + +
    bar
    +
    + `, + }) + class TestComponent { + @ViewChild('ref', { static: true }) + template: TemplateRef; + + constructor(public service: ModalService) {} + } + + let spectator: Spectator; + let service: ModalService; + + const createComponent = createComponentFactory({ + component: TestComponent, + entryComponents: [ModalContainerComponent], + }); + + beforeEach(() => { + spectator = createComponent(); + service = spectator.component.service; + }); + + afterEach(() => { + service.getContainer().clear(); + service['containerComponentRef'].changeDetectorRef.detectChanges(); + service['containerComponentRef'].destroy(); + }); + + describe('#getContainer', () => { + it('should return the ViewContainerRef of ModalContainerComponent', () => { + let foo = document.querySelector('div.foo'); + expect(foo).toBeNull(); + + const containerRef = service.getContainer(); + const embeddedViewRef = containerRef.createEmbeddedView(spectator.component.template); + + foo = document.querySelector('div.foo'); + expect(foo).toBe(embeddedViewRef.rootNodes[0]); + expect(foo.textContent).toBe('bar'); + }); + }); + + describe('#renderTemplate', () => { + it('should render given template using the ViewContainerRef of ModalContainerComponent', () => { + let foo = document.querySelector('div.foo'); + expect(foo).toBeNull(); + + service.renderTemplate(spectator.component.template); + + foo = document.querySelector('div.foo'); + expect(foo.textContent).toBe('bar'); + }); + }); + + describe('#detectChanges', () => { + it('should call detectChanges on the containerComponentRef', () => { + const spy = jest.spyOn(service['containerComponentRef'].changeDetectorRef, 'detectChanges'); + + service.detectChanges(); + + expect(spy).toHaveBeenCalledTimes(1); + }); + }); + + describe('#clearModal', () => { + it('should call clear on the ViewContainerRef and detectChanges', () => { + const clear = jest.spyOn(service.getContainer(), 'clear'); + const detectChanges = jest.spyOn(service, 'detectChanges'); + + service.clearModal(); + + expect(clear).toHaveBeenCalledTimes(1); + expect(detectChanges).toHaveBeenCalledTimes(1); + }); + }); +}); From 0cf7d1d261661776d4ad62927b8586f9f0e6c0a7 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Sat, 11 Apr 2020 00:34:09 +0300 Subject: [PATCH 095/222] feat: use modal service to project modal --- .../lib/components/modal/modal.component.html | 67 +++--- .../lib/components/modal/modal.component.ts | 60 +++-- .../src/lib/tests/modal.component.spec.ts | 224 ++++++++++++------ 3 files changed, 236 insertions(+), 115 deletions(-) diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.html b/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.html index c3168bad92..b37f5b6ce3 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.html +++ b/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.html @@ -1,34 +1,43 @@ -