From f53e4de28769361a892d46095c8303f247a6f9b5 Mon Sep 17 00:00:00 2001 From: maliming Date: Wed, 10 Jul 2024 10:04:32 +0800 Subject: [PATCH] Remove outdated translations. We will add `Google Translate` to translate all other languages. See https://github.com/abpframework/abp/pull/20181 --- docs/cs/AspNetCore/Widgets.md | 506 ----- docs/cs/Autofac-Integration.md | 84 - .../postgresql-delete-initial-migrations.png | Bin 7216 -> 0 bytes .../images/postgresql-update-database.png | Bin 4666 -> 0 bytes docs/cs/CLI.md | 167 -- docs/cs/Contribution/Index.md | 64 - docs/cs/Dapper.md | 61 - docs/cs/Domain-Driven-Design.md | 33 - docs/cs/Entity-Framework-Core-PostgreSQL.md | 39 - docs/cs/Getting-Started-Angular-Template.md | 126 -- .../Getting-Started-AspNetCore-Application.md | 157 -- ...Getting-Started-AspNetCore-MVC-Template.md | 104 - .../cs/Getting-Started-Console-Application.md | 181 -- docs/cs/Index.md | 25 - docs/cs/Nightly-Builds.md | 26 - docs/cs/docs-nav.json | 376 ---- docs/cs/images/MonthlyProfitWidgetFiles.png | Bin 4020 -> 0 bytes ...thorization-new-permission-ui-hierarcy.png | Bin 43699 -> 0 bytes ...horization-new-permission-ui-localized.png | Bin 29319 -> 0 bytes .../authorization-new-permission-ui.png | Bin 30429 -> 0 bytes docs/cs/images/bookstore-apis.png | Bin 11523 -> 0 bytes docs/cs/images/bookstore-create-template.png | Bin 28393 -> 0 bytes docs/cs/images/bookstore-homepage.png | Bin 7620 -> 0 bytes docs/cs/images/bookstore-swagger-ui-host.png | Bin 41867 -> 0 bytes .../images/bookstore-user-management-v2.png | Bin 12035 -> 0 bytes ...okstore-visual-studio-solution-for-spa.png | Bin 28985 -> 0 bytes ...ookstore-visual-studio-solution-tiered.png | Bin 14852 -> 0 bytes .../bookstore-visual-studio-solution-v3.png | Bin 8778 -> 0 bytes .../build-action-embedded-resource-sample.png | Bin 3915 -> 0 bytes .../images/create-aspnet-core-application.png | Bin 64213 -> 0 bytes .../create-new-aspnet-core-application-v2.png | Bin 121764 -> 0 bytes .../create-new-aspnet-core-application.png | Bin 20198 -> 0 bytes ...reate-new-net-core-console-application.png | Bin 21247 -> 0 bytes docs/cs/images/dashboard1.png | Bin 35432 -> 0 bytes docs/cs/images/db-migrator-app.png | Bin 7718 -> 0 bytes docs/cs/images/docs-create-project.jpg | Bin 33946 -> 0 bytes .../docs-module_download-new-abp-project.png | Bin 17023 -> 0 bytes ...module_download-sample-navigation-menu.png | Bin 10564 -> 0 bytes .../images/docs-module_solution-explorer.png | Bin 8189 -> 0 bytes docs/cs/images/docs-section-ui.png | Bin 5629 -> 0 bytes .../github-access-token-private-repo.jpg | Bin 49201 -> 0 bytes .../github-access-token-public-repo.jpg | Bin 46497 -> 0 bytes docs/cs/images/github-myusername.jpg | Bin 46427 -> 0 bytes .../issuemanagement-module-solution.png | Bin 19559 -> 0 bytes .../layered-project-dependencies-module.png | Bin 33290 -> 0 bytes .../images/layered-project-dependencies.png | Bin 27320 -> 0 bytes .../localization-resource-json-files.png | Bin 1883 -> 0 bytes .../microservice-sample-authserver-home.png | Bin 10199 -> 0 bytes .../microservice-sample-authserver-login.png | Bin 9133 -> 0 bytes ...oservice-sample-backend-ui-permissions.png | Bin 29868 -> 0 bytes .../images/microservice-sample-backend-ui.png | Bin 31973 -> 0 bytes ...ple-blogservice-permission-in-database.png | Bin 2408 -> 0 bytes .../images/microservice-sample-diagram-2.png | Bin 121775 -> 0 bytes .../cs/images/microservice-sample-diagram.png | Bin 58561 -> 0 bytes .../images/microservice-sample-kibana-1.png | Bin 51262 -> 0 bytes .../images/microservice-sample-kibana-2.png | Bin 37406 -> 0 bytes ...vice-sample-product-module-in-solution.png | Bin 8396 -> 0 bytes ...icroservice-sample-public-product-list.png | Bin 18738 -> 0 bytes .../images/microservice-sample-solution.png | Bin 6955 -> 0 bytes ...vice-sample-update-database-authserver.png | Bin 3909 -> 0 bytes ...ervice-sample-update-database-products.png | Bin 3799 -> 0 bytes docs/cs/images/module-layers-and-packages.jpg | Bin 26892 -> 0 bytes .../images/night-build-add-nuget-package.png | Bin 14916 -> 0 bytes .../images/night-build-add-nuget-source.png | Bin 17180 -> 0 bytes docs/cs/images/pcm-update-database-v2.png | Bin 3838 -> 0 bytes docs/cs/images/pcm-update-database.png | Bin 3823 -> 0 bytes .../select-empty-web-application-v2.png | Bin 44346 -> 0 bytes .../images/select-empty-web-application.png | Bin 17276 -> 0 bytes docs/cs/images/set-as-startup-project.png | Bin 2283 -> 0 bytes .../images/tiered-solution-applications.png | Bin 11941 -> 0 bytes docs/cs/images/tiered-solution-servers.png | Bin 31089 -> 0 bytes docs/cs/images/volodocs-iis-add-website.png | Bin 11571 -> 0 bytes .../images/volodocs-iis-application-pool.png | Bin 4963 -> 0 bytes docs/cs/images/widget-basic-files.png | Bin 6328 -> 0 bytes docs/docs-langs.json | 10 - docs/en/Contribution/Index.md | 17 - .../Getting-Started-AspNetCore-Application.md | 140 -- docs/es/Index.md | 31 - .../images/create-aspnet-core-application.png | Bin 34353 -> 0 bytes .../create-new-aspnet-core-application-v2.png | Bin 121764 -> 0 bytes .../select-empty-web-application-v2.png | Bin 44346 -> 0 bytes docs/pt-BR/AspNetCore/Auto-API-Controllers.md | 3 - .../pt-BR/AspNetCore/Bundling-Minification.md | 3 - .../Client-Side-Package-Management.md | 3 - .../AspNetCore/Dynamic-CSharp-API-Clients.md | 3 - .../AspNetCore/Tag-Helpers/Dynamic-Forms.md | 3 - docs/pt-BR/AspNetCore/Tag-Helpers/Index.md | 3 - docs/pt-BR/AspNetCore/Theming.md | 3 - docs/pt-BR/AspNetCore/Widgets.md | 3 - docs/pt-BR/Aspect-Oriented-Programming.md | 3 - docs/pt-BR/Audit-Logging.md | 390 ---- docs/pt-BR/Authorization.md | 359 --- docs/pt-BR/AutoMapper-Integration.md | 3 - docs/pt-BR/Background-Jobs-Hangfire.md | 3 - docs/pt-BR/Background-Jobs-Quartz.md | 159 -- docs/pt-BR/Background-Jobs-RabbitMq.md | 3 - docs/pt-BR/Background-Workers-Quartz.md | 146 -- docs/pt-BR/Background-Workers.md | 144 -- docs/pt-BR/CLI.md | 149 -- docs/pt-BR/Caching.md | 3 - docs/pt-BR/Contribution/Index.md | 60 - docs/pt-BR/CorrelationId.md | 3 - docs/pt-BR/Data-Filtering.md | 3 - docs/pt-BR/Data-Seeding.md | 3 - docs/pt-BR/Data-Transfer-Objects.md | 3 - docs/pt-BR/Distributed-Event-Bus.md | 3 - docs/pt-BR/Domain-Services.md | 3 - docs/pt-BR/Dynamic-Proxying-Interceptors.md | 3 - docs/pt-BR/Emailing.md | 3 - docs/pt-BR/Event-Bus.md | 3 - docs/pt-BR/Exception-Handling.md | 343 --- docs/pt-BR/Extension-Methods-And-Helpers.md | 3 - .../pt-BR/Getting-Started-Angular-Template.md | 126 -- .../Getting-Started-AspNetCore-Application.md | 183 -- ...Getting-Started-AspNetCore-MVC-Template.md | 104 - .../Getting-Started-Console-Application.md | 181 -- docs/pt-BR/Guid-Generation.md | 3 - docs/pt-BR/Index.md | 31 - docs/pt-BR/Integration-Tests.md | 3 - docs/pt-BR/Local-Event-Bus.md | 3 - docs/pt-BR/Localization.md | 195 -- docs/pt-BR/Modules/Account.md | 80 - docs/pt-BR/Modules/Audit-Logging.md | 60 - docs/pt-BR/Modules/Background-Jobs.md | 55 - docs/pt-BR/Modules/Cms-Kit/Blogging.md | 135 -- docs/pt-BR/Modules/Cms-Kit/Comments.md | 144 -- docs/pt-BR/Modules/Cms-Kit/Dynamic-Widget.md | 137 -- .../pt-BR/Modules/Cms-Kit/Global-Resources.md | 72 - docs/pt-BR/Modules/Cms-Kit/Index.md | 143 -- docs/pt-BR/Modules/Cms-Kit/Menus.md | 90 - docs/pt-BR/Modules/Cms-Kit/Pages.md | 33 - docs/pt-BR/Modules/Cms-Kit/Ratings.md | 111 - docs/pt-BR/Modules/Cms-Kit/Reactions.md | 126 -- docs/pt-BR/Modules/Cms-Kit/Tags.md | 165 -- docs/pt-BR/Modules/Database-Tables.md | 577 ----- docs/pt-BR/Modules/Docs.md | 675 ------ docs/pt-BR/Modules/Feature-Management.md | 105 - docs/pt-BR/Modules/Identity.md | 321 --- docs/pt-BR/Modules/IdentityServer.md | 175 -- docs/pt-BR/Modules/Index.md | 32 - docs/pt-BR/Modules/OpenIddict.md | 514 ----- docs/pt-BR/Modules/Permission-Management.md | 109 - docs/pt-BR/Modules/Setting-Management.md | 313 --- docs/pt-BR/Modules/Tenant-Management.md | 134 -- docs/pt-BR/Modules/Virtual-File-Explorer.md | 87 - docs/pt-BR/MongoDB.md | 466 ---- docs/pt-BR/Nightly-Builds.md | 27 - docs/pt-BR/Object-To-Object-Mapping.md | 3 - docs/pt-BR/SMS-Sending.md | 3 - docs/pt-BR/Settings.md | 3 - docs/pt-BR/Specifications.md | 3 - docs/pt-BR/Startup-Templates/Application.md | 275 --- docs/pt-BR/Startup-Templates/Index.md | 7 - docs/pt-BR/Startup-Templates/Module.md | 161 -- docs/pt-BR/Testing.md | 3 - docs/pt-BR/Tutorials/Angular/Part-I.md | 663 ------ docs/pt-BR/Tutorials/Angular/Part-II.md | 582 ----- docs/pt-BR/Tutorials/Angular/Part-III.md | 181 -- .../images/bookstore-actions-buttons.png | Bin 18217 -> 0 bytes .../images/bookstore-angular-file-tree.png | Bin 84413 -> 0 bytes .../images/bookstore-backend-solution-v2.png | Bin 25823 -> 0 bytes .../Angular/images/bookstore-book-list.png | Bin 51556 -> 0 bytes .../images/bookstore-confirmation-popup.png | Bin 16236 -> 0 bytes .../bookstore-creating-book-list-terminal.png | Bin 57127 -> 0 bytes ...okstore-creating-books-module-terminal.png | Bin 30751 -> 0 bytes .../Angular/images/bookstore-edit-modal.png | Bin 14265 -> 0 bytes .../images/bookstore-empty-new-book-modal.png | Bin 51279 -> 0 bytes .../bookstore-final-actions-dropdown.png | Bin 6217 -> 0 bytes .../bookstore-initial-book-list-page.png | Bin 25431 -> 0 bytes ...okstore-initial-books-page-with-layout.png | Bin 29964 -> 0 bytes .../images/bookstore-initial-books-page.png | Bin 14801 -> 0 bytes .../images/bookstore-new-book-form-v2.png | Bin 69279 -> 0 bytes .../images/bookstore-new-book-form.png | Bin 62741 -> 0 bytes .../bookstore-service-terminal-output.png | Bin 66718 -> 0 bytes .../Angular/images/bookstore-swagger-api.png | Bin 23106 -> 0 bytes .../images/bookstore-test-explorer.png | Bin 27485 -> 0 bytes .../images/bookstore-test-projects-v3.png | Bin 11850 -> 0 bytes docs/pt-BR/Tutorials/AspNetCore-Mvc/Part-I.md | 459 ---- .../pt-BR/Tutorials/AspNetCore-Mvc/Part-II.md | 465 ---- .../Tutorials/AspNetCore-Mvc/Part-III.md | 182 -- .../images/bookstore-add-create-dialog-v2.png | Bin 1787 -> 0 bytes .../images/bookstore-add-edit-dialog.png | Bin 2386 -> 0 bytes .../images/bookstore-add-index-page-v2.png | Bin 4813 -> 0 bytes .../images/bookstore-appservice-tests.png | Bin 9103 -> 0 bytes .../images/bookstore-book-list-2.png | Bin 21468 -> 0 bytes .../images/bookstore-book-list.png | Bin 21396 -> 0 bytes .../images/bookstore-books-table-actions.png | Bin 6475 -> 0 bytes .../images/bookstore-books-table.png | Bin 9548 -> 0 bytes .../images/bookstore-create-dialog-2.png | Bin 24100 -> 0 bytes .../images/bookstore-create-dialog.png | Bin 22594 -> 0 bytes .../images/bookstore-create-template.png | Bin 28393 -> 0 bytes .../images/bookstore-homepage.png | Bin 7620 -> 0 bytes .../images/bookstore-index-js-file-v2.png | Bin 1778 -> 0 bytes .../bookstore-localization-files-v2.png | Bin 3658 -> 0 bytes .../images/bookstore-menu-items.png | Bin 7218 -> 0 bytes .../images/bookstore-new-book-button.png | Bin 22115 -> 0 bytes .../bookstore-pmc-add-book-migration-v2.png | Bin 4426 -> 0 bytes .../bookstore-pmc-add-book-migration.png | Bin 4606 -> 0 bytes .../images/bookstore-swagger.png | Bin 23106 -> 0 bytes ...ookstore-test-js-proxy-getlist-network.png | Bin 13333 -> 0 bytes .../bookstore-test-js-proxy-getlist.png | Bin 12892 -> 0 bytes .../images/bookstore-test-projects-v2.png | Bin 4734 -> 0 bytes .../images/bookstore-user-management.png | Bin 12051 -> 0 bytes .../bookstore-visual-studio-solution-v3.png | Bin 8778 -> 0 bytes .../UI/AspNetCore/AutoComplete-Select.md | 74 - docs/pt-BR/UI/AspNetCore/Basic-Theme.md | 96 - docs/pt-BR/UI/AspNetCore/Branding.md | 45 - .../UI/AspNetCore/Bundling-Minification.md | 479 ---- .../Client-Side-Package-Management.md | 115 - .../Customization-User-Interface.md | 477 ---- .../Data-Table-Column-Extensions.md | 161 -- docs/pt-BR/UI/AspNetCore/Data-Tables.md | 298 --- .../AspNetCore/Dynamic-JavaScript-Proxies.md | 97 - .../UI/AspNetCore/Entity-Action-Extensions.md | 108 - docs/pt-BR/UI/AspNetCore/Forms-Validation.md | 227 -- .../UI/AspNetCore/JavaScript-API/Ajax.md | 150 -- .../UI/AspNetCore/JavaScript-API/Auth.md | 23 - .../AspNetCore/JavaScript-API/Block-Busy.md | 56 - .../AspNetCore/JavaScript-API/CurrentUser.md | 49 - .../pt-BR/UI/AspNetCore/JavaScript-API/DOM.md | 116 - .../UI/AspNetCore/JavaScript-API/Events.md | 87 - .../UI/AspNetCore/JavaScript-API/Features.md | 29 - .../JavaScript-API/GlobalFeatures.md | 24 - .../UI/AspNetCore/JavaScript-API/Index.md | 20 - .../AspNetCore/JavaScript-API/Localization.md | 146 -- .../UI/AspNetCore/JavaScript-API/Logging.md | 49 - .../UI/AspNetCore/JavaScript-API/Message.md | 127 -- .../UI/AspNetCore/JavaScript-API/Notify.md | 45 - .../JavaScript-API/ResourceLoader.md | 39 - .../UI/AspNetCore/JavaScript-API/Settings.md | 32 - docs/pt-BR/UI/AspNetCore/Layout-Hooks.md | 105 - docs/pt-BR/UI/AspNetCore/Modals.md | 412 ---- docs/pt-BR/UI/AspNetCore/Navigation-Menu.md | 288 --- docs/pt-BR/UI/AspNetCore/Overall.md | 160 -- docs/pt-BR/UI/AspNetCore/Page-Alerts.md | 84 - docs/pt-BR/UI/AspNetCore/Page-Header.md | 62 - .../UI/AspNetCore/Page-Toolbar-Extensions.md | 162 -- docs/pt-BR/UI/AspNetCore/Security-Headers.md | 99 - .../AspNetCore/Static-JavaScript-Proxies.md | 157 -- .../pt-BR/UI/AspNetCore/Tag-Helpers/Alerts.md | 82 - .../pt-BR/UI/AspNetCore/Tag-Helpers/Badges.md | 37 - .../UI/AspNetCore/Tag-Helpers/Blockquote.md | 18 - .../UI/AspNetCore/Tag-Helpers/Borders.md | 126 -- .../UI/AspNetCore/Tag-Helpers/Breadcrumbs.md | 25 - .../AspNetCore/Tag-Helpers/Button-groups.md | 37 - .../UI/AspNetCore/Tag-Helpers/Buttons.md | 98 - docs/pt-BR/UI/AspNetCore/Tag-Helpers/Cards.md | 188 -- .../UI/AspNetCore/Tag-Helpers/Carousel.md | 71 - .../UI/AspNetCore/Tag-Helpers/Collapse.md | 92 - .../UI/AspNetCore/Tag-Helpers/Dropdowns.md | 93 - .../AspNetCore/Tag-Helpers/Dynamic-Forms.md | 281 --- .../pt-BR/UI/AspNetCore/Tag-Helpers/Figure.md | 14 - .../AspNetCore/Tag-Helpers/Form-elements.md | 435 ---- docs/pt-BR/UI/AspNetCore/Tag-Helpers/Grids.md | 273 --- docs/pt-BR/UI/AspNetCore/Tag-Helpers/Index.md | 45 - .../UI/AspNetCore/Tag-Helpers/List-Groups.md | 76 - .../pt-BR/UI/AspNetCore/Tag-Helpers/Modals.md | 88 - docs/pt-BR/UI/AspNetCore/Tag-Helpers/Navs.md | 114 - .../UI/AspNetCore/Tag-Helpers/Paginator.md | 57 - .../UI/AspNetCore/Tag-Helpers/Popovers.md | 40 - .../AspNetCore/Tag-Helpers/Progress-Bars.md | 68 - .../pt-BR/UI/AspNetCore/Tag-Helpers/Tables.md | 61 - docs/pt-BR/UI/AspNetCore/Tag-Helpers/Tabs.md | 91 - .../UI/AspNetCore/Tag-Helpers/Tooltips.md | 35 - docs/pt-BR/UI/AspNetCore/Testing.md | 207 -- docs/pt-BR/UI/AspNetCore/Theming.md | 442 ---- docs/pt-BR/UI/AspNetCore/Toolbars.md | 95 - docs/pt-BR/UI/AspNetCore/Widgets.md | 526 ----- docs/pt-BR/Unit-Of-Work.md | 3 - docs/pt-BR/Validation.md | 182 -- docs/pt-BR/Value-Objects.md | 3 - docs/pt-BR/docs-nav.json | 328 --- .../pt-BR/images/MonthlyProfitWidgetFiles.png | Bin 4020 -> 0 bytes docs/pt-BR/images/bookstore-apis.png | Bin 11523 -> 0 bytes .../images/bookstore-create-template.png | Bin 28393 -> 0 bytes docs/pt-BR/images/bookstore-homepage.png | Bin 7620 -> 0 bytes .../images/bookstore-swagger-ui-host.png | Bin 41867 -> 0 bytes .../images/bookstore-user-management-v2.png | Bin 12035 -> 0 bytes ...okstore-visual-studio-solution-for-spa.png | Bin 28985 -> 0 bytes ...ookstore-visual-studio-solution-tiered.png | Bin 14852 -> 0 bytes .../bookstore-visual-studio-solution-v3.png | Bin 8778 -> 0 bytes .../build-action-embedded-resource-sample.png | Bin 3915 -> 0 bytes .../create-new-aspnet-core-application.png | Bin 20198 -> 0 bytes ...reate-new-net-core-console-application.png | Bin 21247 -> 0 bytes docs/pt-BR/images/dashboard1.png | Bin 35432 -> 0 bytes docs/pt-BR/images/db-migrator-app.png | Bin 7718 -> 0 bytes docs/pt-BR/images/docs-create-project.jpg | Bin 33946 -> 0 bytes .../docs-module_download-new-abp-project.png | Bin 17023 -> 0 bytes ...module_download-sample-navigation-menu.png | Bin 10564 -> 0 bytes .../images/docs-module_solution-explorer.png | Bin 8189 -> 0 bytes .../github-access-token-private-repo.jpg | Bin 49201 -> 0 bytes .../github-access-token-public-repo.jpg | Bin 46497 -> 0 bytes docs/pt-BR/images/github-myusername.jpg | Bin 46427 -> 0 bytes .../issuemanagement-module-solution.png | Bin 19559 -> 0 bytes .../layered-project-dependencies-module.png | Bin 33290 -> 0 bytes .../images/layered-project-dependencies.png | Bin 27320 -> 0 bytes .../localization-resource-json-files.png | Bin 1883 -> 0 bytes .../microservice-sample-authserver-home.png | Bin 10199 -> 0 bytes .../microservice-sample-authserver-login.png | Bin 9133 -> 0 bytes ...oservice-sample-backend-ui-permissions.png | Bin 29868 -> 0 bytes .../images/microservice-sample-backend-ui.png | Bin 31973 -> 0 bytes ...ple-blogservice-permission-in-database.png | Bin 2408 -> 0 bytes .../images/microservice-sample-diagram-2.png | Bin 121775 -> 0 bytes .../images/microservice-sample-diagram.png | Bin 58561 -> 0 bytes .../images/microservice-sample-kibana-1.png | Bin 51262 -> 0 bytes .../images/microservice-sample-kibana-2.png | Bin 37406 -> 0 bytes ...vice-sample-product-module-in-solution.png | Bin 8396 -> 0 bytes ...icroservice-sample-public-product-list.png | Bin 18738 -> 0 bytes .../images/microservice-sample-solution.png | Bin 6955 -> 0 bytes ...vice-sample-update-database-authserver.png | Bin 3909 -> 0 bytes ...ervice-sample-update-database-products.png | Bin 3799 -> 0 bytes .../images/module-layers-and-packages.jpg | Bin 26892 -> 0 bytes .../images/night-build-add-nuget-package.png | Bin 14916 -> 0 bytes .../images/night-build-add-nuget-source.png | Bin 17180 -> 0 bytes docs/pt-BR/images/pcm-update-database-v2.png | Bin 3838 -> 0 bytes docs/pt-BR/images/pcm-update-database.png | Bin 3823 -> 0 bytes .../images/select-empty-web-application.png | Bin 17276 -> 0 bytes docs/pt-BR/images/set-as-startup-project.png | Bin 2283 -> 0 bytes .../images/tiered-solution-applications.png | Bin 11941 -> 0 bytes docs/pt-BR/images/tiered-solution-servers.png | Bin 31089 -> 0 bytes .../pt-BR/images/volodocs-iis-add-website.png | Bin 11571 -> 0 bytes .../images/volodocs-iis-application-pool.png | Bin 4963 -> 0 bytes docs/pt-BR/images/widget-basic-files.png | Bin 6328 -> 0 bytes docs/zh-Hans/API/API-Versioning.md | 340 --- docs/zh-Hans/API/Application-Configuration.md | 22 - docs/zh-Hans/API/Auto-API-Controllers.md | 140 -- .../zh-Hans/API/Dynamic-CSharp-API-Clients.md | 165 -- docs/zh-Hans/API/JavaScript-API/Auth.md | 3 - docs/zh-Hans/API/JavaScript-API/Index.md | 23 - docs/zh-Hans/Ambient-Context-Pattern.md | 3 - docs/zh-Hans/Application-Services.md | 383 ---- docs/zh-Hans/Apps/VoloDocs.md | 174 -- .../AspNet-Boilerplate-Migration-Guide.md | 3 - .../AspNetCore/Auto-API-Controllers.md | 3 - .../AspNetCore/Bundling-Minification.md | 3 - .../Client-Side-Package-Management.md | 3 - .../AspNetCore/Dynamic-CSharp-API-Clients.md | 3 - .../zh-Hans/AspNetCore/JavaScript-API/Auth.md | 3 - .../AspNetCore/JavaScript-API/Index.md | 3 - .../zh-Hans/AspNetCore/Tag-Helpers/Buttons.md | 94 - .../AspNetCore/Tag-Helpers/Dynamic-Forms.md | 3 - docs/zh-Hans/AspNetCore/Tag-Helpers/Index.md | 3 - .../Tag-Helpers/fa-address-card.png | Bin 1041 -> 0 bytes docs/zh-Hans/AspNetCore/Theming.md | 4 - docs/zh-Hans/AspNetCore/Widgets.md | 4 - docs/zh-Hans/Audit-Logging.md | 376 ---- .../Authentication/Social-External-Logins.md | 3 - docs/zh-Hans/Authorization.md | 438 ---- docs/zh-Hans/Autofac-Integration.md | 81 - docs/zh-Hans/Background-Jobs-Hangfire.md | 118 - docs/zh-Hans/Background-Jobs-Quartz.md | 157 -- docs/zh-Hans/Background-Jobs-RabbitMq.md | 159 -- docs/zh-Hans/Background-Jobs.md | 181 -- docs/zh-Hans/Background-Workers-Hangfire.md | 152 -- docs/zh-Hans/Background-Workers-Quartz.md | 146 -- docs/zh-Hans/Background-Workers.md | 139 -- .../Best-Practices/Application-Services.md | 225 -- .../Best-Practices/Data-Transfer-Objects.md | 9 - .../zh-Hans/Best-Practices/Domain-Services.md | 3 - docs/zh-Hans/Best-Practices/Entities.md | 153 -- .../Entity-Framework-Core-Integration.md | 210 -- docs/zh-Hans/Best-Practices/Index.md | 26 - .../Best-Practices/Module-Architecture.md | 89 - .../Best-Practices/MongoDB-Integration.md | 202 -- docs/zh-Hans/Best-Practices/Repositories.md | 92 - .../postgresql-delete-initial-migrations.png | Bin 7216 -> 0 bytes .../images/postgresql-update-database.png | Bin 4666 -> 0 bytes docs/zh-Hans/Blob-Storing-Aliyun.md | 77 - docs/zh-Hans/Blob-Storing-Aws.md | 84 - docs/zh-Hans/Blob-Storing-Azure.md | 61 - docs/zh-Hans/Blob-Storing-Custom-Provider.md | 177 -- docs/zh-Hans/Blob-Storing-Database.md | 96 - docs/zh-Hans/Blob-Storing-File-System.md | 58 - docs/zh-Hans/Blob-Storing-Minio.md | 69 - docs/zh-Hans/Blob-Storing.md | 309 --- .../2018-09-24-Announcement/Post.md | 209 -- .../2018-09-24-Announcement/dynamic-forms.png | Bin 5074 -> 0 bytes docs/zh-Hans/Blog-Posts/2019-02-22/Post.md | 54 - .../Blog-Posts/2019-02-22/scott-and-jon.png | Bin 488739 -> 0 bytes .../2019-06-19 v0_18_Release/Post.md | 89 - .../mvc-template-solution.png | Bin 8778 -> 0 bytes .../2019-08-16 v0_19_Release/Post.md | 46 - .../2019-09-25 v0_21_Release/Post.md | 21 - .../volosoft-booth.png | Bin 231859 -> 0 bytes .../2019-10-22 v1_0_Release/Post.md | 29 - .../contribution-graph.png | Bin 59979 -> 0 bytes .../2020-01-15 v2_0_Release/Post.md | 164 -- .../abp-commercial-demo.png | Bin 102169 -> 0 bytes .../lepton-theme-material.png | Bin 111555 -> 0 bytes .../ndc-2020-volosoft-booth-wall.png | Bin 207130 -> 0 bytes .../ndc-london-volosoft.png | Bin 2821040 -> 0 bytes .../2020-03-19 v2_3_Release/Post.md | 142 -- .../abp-io-release-2-3-0-blog.png | Bin 554326 -> 0 bytes .../react-native-ui.png | Bin 170901 -> 0 bytes .../2020-05-08 v2_7_Release/Post.md | 247 -- .../abp-commercial-ui-extensions.png | Bin 90524 -> 0 bytes .../audit-log-entity-changes.png | Bin 163067 -> 0 bytes .../2020-05-08 v2_7_Release/easy-crm.png | Bin 348584 -> 0 bytes .../github-contribution-graph.png | Bin 56339 -> 0 bytes .../module-entity-extended-ui.png | Bin 160952 -> 0 bytes .../tenant-entity-changes.png | Bin 20809 -> 0 bytes .../text-template-content-ui.png | Bin 121921 -> 0 bytes .../2020-05-22 v2_8_Release/Post.md | 214 -- .../abp-chat-module.png | Bin 113584 -> 0 bytes .../lepton-abp-default-theme.png | Bin 175539 -> 0 bytes .../lepton-abp-material-theme.png | Bin 165939 -> 0 bytes .../2020-05-22 v2_8_Release/lepton-themes.gif | Bin 1145455 -> 0 bytes .../2020-05-22 v2_8_Release/rtl-ui.png | Bin 43443 -> 0 bytes .../signalr-chat-demo.png | Bin 43229 -> 0 bytes .../2020-06-05 v2_9_Release/Post.md | 294 --- .../abp-chat-module.png | Bin 113584 -> 0 bytes .../2020-06-05 v2_9_Release/easy-crm.png | Bin 195775 -> 0 bytes .../2020-06-05 v2_9_Release/lepton-theme.png | Bin 213885 -> 0 bytes .../organization-units.png | Bin 217608 -> 0 bytes .../signalr-tiered-demo.png | Bin 30823 -> 0 bytes .../2020-06-05 v2_9_Release/suite.png | Bin 40726 -> 0 bytes .../virtual-file-explorer-1.png | Bin 83379 -> 0 bytes .../virtual-file-explorer-2.png | Bin 158969 -> 0 bytes .../2020-07-01 v3_0_Release/Post.md | 177 -- .../file-management-ui.png | Bin 104083 -> 0 bytes docs/zh-Hans/CLI-New-Command-Samples.md | 248 --- docs/zh-Hans/CLI.md | 474 ---- docs/zh-Hans/Caching.md | 274 --- docs/zh-Hans/Configuration.md | 3 - docs/zh-Hans/Connection-Strings.md | 89 - docs/zh-Hans/Contribution/Index.md | 67 - docs/zh-Hans/CurrentUser.md | 167 -- ...-Application-Modules-Extending-Entities.md | 178 -- .../Customizing-Application-Modules-Guide.md | 62 - ...Application-Modules-Overriding-Services.md | 269 --- ...ation-Modules-Overriding-User-Interface.md | 6 - docs/zh-Hans/Dapper.md | 61 - docs/zh-Hans/Dapr/Index.md | 443 ---- docs/zh-Hans/Data-Access.md | 15 - docs/zh-Hans/Data-Filtering.md | 324 --- docs/zh-Hans/Data-Seeding.md | 166 -- docs/zh-Hans/Data-Transfer-Objects.md | 281 --- docs/zh-Hans/Dependency-Injection.md | 340 --- .../Deployment/Clustered-Environment.md | 99 - docs/zh-Hans/Deployment/Index.md | 9 - ...Distributed-Event-Bus-Kafka-Integration.md | 163 -- ...tributed-Event-Bus-RabbitMQ-Integration.md | 165 -- ...Distributed-Event-Bus-Rebus-Integration.md | 65 - docs/zh-Hans/Distributed-Event-Bus.md | 302 --- docs/zh-Hans/Distributed-Locking.md | 131 -- ...main-Driven-Design-Implementation-Guide.md | 1979 ----------------- docs/zh-Hans/Domain-Driven-Design.md | 33 - docs/zh-Hans/Domain-Services.md | 127 -- docs/zh-Hans/Dynamic-Proxying-Interceptors.md | 3 - docs/zh-Hans/Emailing.md | 257 --- docs/zh-Hans/Entities.md | 410 ---- .../Entity-Framework-Core-Migrations.md | 886 -------- docs/zh-Hans/Entity-Framework-Core-MySQL.md | 41 - .../Entity-Framework-Core-Oracle-Devart.md | 60 - .../Entity-Framework-Core-Oracle-Official.md | 67 - docs/zh-Hans/Entity-Framework-Core-Oracle.md | 10 - .../Entity-Framework-Core-Other-DBMS.md | 113 - .../Entity-Framework-Core-PostgreSQL.md | 41 - docs/zh-Hans/Entity-Framework-Core-SQLite.md | 41 - docs/zh-Hans/Entity-Framework-Core.md | 923 -------- docs/zh-Hans/Event-Bus.md | 10 - docs/zh-Hans/Exception-Handling.md | 313 --- docs/zh-Hans/FluentValidation.md | 59 - .../Getting-Started-Angular-Template.md | 8 - .../Getting-Started-AspNetCore-Application.md | 148 -- ...Getting-Started-AspNetCore-MVC-Template.md | 8 - .../Getting-Started-Create-Solution.md | 73 - docs/zh-Hans/Getting-Started-React-Native.md | 70 - .../Getting-Started-Running-Solution.md | 199 -- .../Getting-Started-Setup-Environment.md | 53 - .../Getting-Started-With-Startup-Templates.md | 8 - docs/zh-Hans/Getting-Started.md | 20 - docs/zh-Hans/Global-Features.md | 3 - docs/zh-Hans/Guid-Generation.md | 111 - ...ure-Active-Directory-Authentication-MVC.md | 210 -- .../How-To/Customize-Login-Page-MVC.md | 112 - .../How-To/Customize-SignIn-Manager.md | 101 - docs/zh-Hans/Index.md | 19 - .../Dynamic-JavaScript-API-Clients.md | 3 - docs/zh-Hans/Local-Event-Bus.md | 224 -- docs/zh-Hans/Localization.md | 244 -- docs/zh-Hans/Logging.md | 5 - docs/zh-Hans/MailKit.md | 48 - docs/zh-Hans/Microservice-Architecture.md | 30 - docs/zh-Hans/Module-Development-Basics.md | 134 -- docs/zh-Hans/Modules/Account.md | 36 - docs/zh-Hans/Modules/Audit-Logging.md | 7 - docs/zh-Hans/Modules/Background-Jobs.md | 55 - docs/zh-Hans/Modules/Cms-Kit/Blogging.md | 3 - docs/zh-Hans/Modules/Cms-Kit/Comments.md | 3 - .../zh-Hans/Modules/Cms-Kit/Dynamic-Widget.md | 47 - docs/zh-Hans/Modules/Cms-Kit/Index.md | 80 - docs/zh-Hans/Modules/Cms-Kit/Menus.md | 3 - docs/zh-Hans/Modules/Cms-Kit/Pages.md | 3 - docs/zh-Hans/Modules/Cms-Kit/Ratings.md | 3 - docs/zh-Hans/Modules/Cms-Kit/Reactions.md | 3 - docs/zh-Hans/Modules/Cms-Kit/Tags.md | 3 - docs/zh-Hans/Modules/Docs.md | 626 ------ docs/zh-Hans/Modules/Feature-Management.md | 105 - docs/zh-Hans/Modules/Identity.md | 320 --- docs/zh-Hans/Modules/IdentityServer.md | 173 -- docs/zh-Hans/Modules/Index.md | 33 - docs/zh-Hans/Modules/Organization-Units.md | 47 - docs/zh-Hans/Modules/Permission-Management.md | 109 - docs/zh-Hans/Modules/Setting-Management.md | 284 --- docs/zh-Hans/Modules/Tenant-Management.md | 107 - docs/zh-Hans/Modules/Virtual-File-Explorer.md | 83 - docs/zh-Hans/MongoDB.md | 382 ---- docs/zh-Hans/Moodule-Entity-Extensions.md | 3 - docs/zh-Hans/Multi-Tenancy.md | 386 ---- docs/zh-Hans/Nightly-Builds.md | 19 - docs/zh-Hans/Object-Extensions.md | 405 ---- docs/zh-Hans/Object-To-Object-Mapping.md | 327 --- docs/zh-Hans/Options.md | 121 - docs/zh-Hans/PlugIn-Modules.md | 233 -- docs/zh-Hans/Previews.md | 40 - docs/zh-Hans/Redis-Cache.md | 45 - docs/zh-Hans/Repositories.md | 404 ---- docs/zh-Hans/Road-Map.md | 30 - docs/zh-Hans/SMS-Sending.md | 111 - docs/zh-Hans/Samples/Index.md | 69 - docs/zh-Hans/Samples/Microservice-Demo.md | 1421 ------------ docs/zh-Hans/Settings.md | 231 -- docs/zh-Hans/SignalR-Integration.md | 238 -- docs/zh-Hans/Specifications.md | 257 --- docs/zh-Hans/Startup-Templates/Application.md | 447 ---- docs/zh-Hans/Startup-Templates/Console.md | 27 - docs/zh-Hans/Startup-Templates/Index.md | 11 - docs/zh-Hans/Startup-Templates/MAUI.md | 27 - docs/zh-Hans/Startup-Templates/Module.md | 162 -- docs/zh-Hans/Startup-Templates/WPF.md | 27 - docs/zh-Hans/Testing.md | 768 ------- docs/zh-Hans/Text-Templating-Razor.md | 570 ----- docs/zh-Hans/Text-Templating-Scriban.md | 527 ----- docs/zh-Hans/Text-Templating.md | 37 - docs/zh-Hans/Timing.md | 113 - docs/zh-Hans/Tutorials/Angular/Part-I.md | 8 - .../Tutorials/AspNetCore-Mvc/Part-I.md | 8 - .../Tutorials/AspNetCore-Mvc/Part-II.md | 8 - .../Tutorials/AspNetCore-Mvc/Part-III.md | 8 - docs/zh-Hans/Tutorials/Index.md | 6 - docs/zh-Hans/Tutorials/Part-1.md | 497 ----- docs/zh-Hans/Tutorials/Part-10.md | 1210 ---------- docs/zh-Hans/Tutorials/Part-2.md | 680 ------ docs/zh-Hans/Tutorials/Part-3.md | 1600 ------------- docs/zh-Hans/Tutorials/Part-4.md | 293 --- docs/zh-Hans/Tutorials/Part-5.md | 635 ------ docs/zh-Hans/Tutorials/Part-6.md | 280 --- docs/zh-Hans/Tutorials/Part-7.md | 238 -- docs/zh-Hans/Tutorials/Part-8.md | 611 ----- docs/zh-Hans/Tutorials/Part-9.md | 1255 ----------- docs/zh-Hans/Tutorials/Todo/Index.md | 830 ------- .../Tutorials/Todo/run-without-iisexpress.png | Bin 13006 -> 0 bytes docs/zh-Hans/Tutorials/Todo/todo-api.png | Bin 7570 -> 0 bytes .../Tutorials/Todo/todo-efcore-migration.png | Bin 5627 -> 0 bytes docs/zh-Hans/Tutorials/Todo/todo-list.png | Bin 8492 -> 0 bytes .../Todo/todo-swagger-ui-initial.png | Bin 9794 -> 0 bytes .../Tutorials/Todo/todo-ui-initial.png | Bin 18962 -> 0 bytes .../images/blazor-add-book-button.png | Bin 6608 -> 0 bytes .../images/blazor-add-books-component.png | Bin 13938 -> 0 bytes ...lazor-bookstore-book-list-with-authors.png | Bin 58464 -> 0 bytes .../images/blazor-bookstore-book-list.png | Bin 42490 -> 0 bytes .../images/blazor-delete-book-action.png | Bin 52805 -> 0 bytes .../images/blazor-edit-book-action-2.png | Bin 50114 -> 0 bytes .../images/blazor-edit-book-modal.png | Bin 24115 -> 0 bytes .../images/blazor-menu-bookstore.png | Bin 6454 -> 0 bytes .../images/blazor-new-book-modal.png | Bin 35690 -> 0 bytes .../images/book-create-modal-with-author.png | Bin 28419 -> 0 bytes .../images/bookstore-actions-buttons.png | Bin 14510 -> 0 bytes .../images/bookstore-add-create-dialog-v2.png | Bin 1787 -> 0 bytes .../images/bookstore-add-edit-dialog.png | Bin 2386 -> 0 bytes .../images/bookstore-add-index-page-v2.png | Bin 4813 -> 0 bytes .../bookstore-add-migration-authors.png | Bin 24972 -> 0 bytes ...tore-added-author-to-book-list-angular.png | Bin 42186 -> 0 bytes .../bookstore-added-author-to-book-list.png | Bin 55968 -> 0 bytes .../bookstore-added-authors-to-modals.png | Bin 32296 -> 0 bytes .../bookstore-angular-author-selection.png | Bin 30241 -> 0 bytes .../images/bookstore-angular-authors-page.png | Bin 33573 -> 0 bytes .../images/bookstore-angular-file-tree.png | Bin 25653 -> 0 bytes ...bookstore-angular-service-proxy-author.png | Bin 22599 -> 0 bytes .../images/bookstore-appservice-tests.png | Bin 9103 -> 0 bytes .../images/bookstore-author-domain-layer.png | Bin 44964 -> 0 bytes .../images/bookstore-author-permissions.png | Bin 68726 -> 0 bytes .../images/bookstore-authors-page.png | Bin 48154 -> 0 bytes .../images/bookstore-book-and-booktype.png | Bin 24993 -> 0 bytes .../images/bookstore-book-list-2.png | Bin 55438 -> 0 bytes .../images/bookstore-book-list-3.png | Bin 65061 -> 0 bytes .../Tutorials/images/bookstore-book-list.png | Bin 29916 -> 0 bytes .../images/bookstore-books-table-actions.png | Bin 6475 -> 0 bytes .../images/bookstore-books-table.png | Bin 9548 -> 0 bytes ...ookstore-books-with-authorname-angular.png | Bin 22260 -> 0 bytes .../images/bookstore-confirmation-popup.png | Bin 12458 -> 0 bytes .../images/bookstore-create-dialog-2.png | Bin 24100 -> 0 bytes .../images/bookstore-create-dialog.png | Bin 22594 -> 0 bytes .../bookstore-create-project-angular.png | Bin 23360 -> 0 bytes .../images/bookstore-create-project-mvc.png | Bin 179269 -> 0 bytes .../bookstore-creating-book-list-terminal.png | Bin 107422 -> 0 bytes ...ookstore-creating-book-module-terminal.png | Bin 85472 -> 0 bytes ...okstore-creating-books-module-terminal.png | Bin 18279 -> 0 bytes .../images/bookstore-database-tables-ef.png | Bin 52619 -> 0 bytes .../bookstore-database-tables-mongodb.png | Bin 27362 -> 0 bytes .../bookstore-dbmigrator-on-solution.png | Bin 23885 -> 0 bytes .../images/bookstore-edit-button-2.png | Bin 82743 -> 0 bytes .../images/bookstore-edit-button.png | Bin 65153 -> 0 bytes .../images/bookstore-edit-delete-actions.png | Bin 8548 -> 0 bytes .../bookstore-efcore-migration-authors.png | Bin 6299 -> 0 bytes .../images/bookstore-efcore-migration.png | Bin 5751 -> 0 bytes .../images/bookstore-empty-new-book-modal.png | Bin 36729 -> 0 bytes .../bookstore-final-actions-dropdown.png | Bin 7109 -> 0 bytes .../images/bookstore-generate-state-books.png | Bin 13846 -> 0 bytes .../bookstore-getlist-result-network.png | Bin 18669 -> 0 bytes .../Tutorials/images/bookstore-homepage.png | Bin 7620 -> 0 bytes .../images/bookstore-index-js-file-v2.png | Bin 1778 -> 0 bytes .../images/bookstore-index-js-file-v3.png | Bin 5682 -> 0 bytes .../bookstore-initial-book-list-page.png | Bin 8269 -> 0 bytes ...okstore-initial-books-page-with-layout.png | Bin 7729 -> 0 bytes .../bookstore-javascript-proxy-console.png | Bin 50762 -> 0 bytes .../bookstore-localization-files-v2.png | Bin 3804 -> 0 bytes .../Tutorials/images/bookstore-menu-items.png | Bin 7218 -> 0 bytes .../bookstore-migrations-applied-angular.png | Bin 44769 -> 0 bytes .../bookstore-migrations-applied-mvc.png | Bin 166995 -> 0 bytes .../images/bookstore-new-author-modal.png | Bin 52787 -> 0 bytes .../images/bookstore-new-book-button-2.png | Bin 73533 -> 0 bytes .../bookstore-new-book-button-small.png | Bin 2573 -> 0 bytes .../images/bookstore-new-book-button.png | Bin 56209 -> 0 bytes .../images/bookstore-new-book-form-v2.png | Bin 69279 -> 0 bytes .../images/bookstore-new-book-form.png | Bin 62741 -> 0 bytes .../images/bookstore-new-menu-item.png | Bin 3409 -> 0 bytes ...bookstore-open-package-manager-console.png | Bin 104700 -> 0 bytes .../images/bookstore-permissions-ui.png | Bin 51942 -> 0 bytes .../bookstore-pmc-add-book-migration-v2.png | Bin 22538 -> 0 bytes .../bookstore-pmc-add-book-migration.png | Bin 4606 -> 0 bytes .../bookstore-service-terminal-output.png | Bin 8734 -> 0 bytes .../bookstore-solution-structure-angular.png | Bin 8330 -> 0 bytes .../bookstore-solution-structure-mvc.png | Bin 8778 -> 0 bytes .../bookstore-start-project-angular.png | Bin 25215 -> 0 bytes .../images/bookstore-start-project-mvc.png | Bin 124065 -> 0 bytes .../bookstore-swagger-book-dto-properties.png | Bin 28293 -> 0 bytes .../Tutorials/images/bookstore-swagger.png | Bin 37284 -> 0 bytes ...ookstore-test-js-proxy-getlist-network.png | Bin 13333 -> 0 bytes .../bookstore-test-js-proxy-getlist.png | Bin 12892 -> 0 bytes .../bookstore-test-projects-angular.png | Bin 9473 -> 0 bytes .../images/bookstore-test-projects-mvc.png | Bin 4734 -> 0 bytes .../images/bookstore-test-projects-v2.png | Bin 4734 -> 0 bytes ...tore-update-database-after-book-entity.png | Bin 64149 -> 0 bytes .../images/bookstore-user-management.png | Bin 12051 -> 0 bytes .../bookstore-visual-studio-solution-v3.png | Bin 8778 -> 0 bytes .../images/generate-proxy-command.png | Bin 66792 -> 0 bytes .../Tutorials/images/generated-proxies-2.png | Bin 20160 -> 0 bytes .../Tutorials/images/generated-proxies-3.png | Bin 7179 -> 0 bytes .../Tutorials/images/generated-proxies.png | Bin 12873 -> 0 bytes .../images/mozilla-self-signed-cert-error.png | Bin 37235 -> 0 bytes .../images/vs-run-without-iisexpress.png | Bin 8622 -> 0 bytes .../UI/Angular/Component-Replacement.md | 546 ----- docs/zh-Hans/UI/Angular/Config-State.md | 295 --- .../UI/Angular/Confirmation-Service.md | 183 -- docs/zh-Hans/UI/Angular/Container-Strategy.md | 87 - .../UI/Angular/Content-Projection-Service.md | 77 - .../UI/Angular/Content-Security-Strategy.md | 55 - docs/zh-Hans/UI/Angular/Content-Strategy.md | 85 - docs/zh-Hans/UI/Angular/Context-Strategy.md | 100 - .../Angular/Customization-User-Interface.md | 3 - .../UI/Angular/Dom-Insertion-Service.md | 140 -- docs/zh-Hans/UI/Angular/Dom-Strategy.md | 80 - docs/zh-Hans/UI/Angular/Environment.md | 1 - docs/zh-Hans/UI/Angular/HTTP-Requests.md | 179 -- docs/zh-Hans/UI/Angular/Lazy-Load-Service.md | 189 -- docs/zh-Hans/UI/Angular/List-Service.md | 172 -- docs/zh-Hans/UI/Angular/Loading-Strategy.md | 95 - docs/zh-Hans/UI/Angular/Localization.md | 235 -- docs/zh-Hans/UI/Angular/Migration-Guide-v3.md | 453 ---- docs/zh-Hans/UI/Angular/Modifying-the-Menu.md | 275 --- docs/zh-Hans/UI/Angular/Multi-Tenancy.md | 130 -- ...ission-Management-Component-Replacement.md | 500 ----- .../UI/Angular/Permission-Management.md | 81 - .../zh-Hans/UI/Angular/Projection-Strategy.md | 179 -- docs/zh-Hans/UI/Angular/Service-Proxies.md | 68 - .../UI/Angular/Subscription-Service.md | 205 -- docs/zh-Hans/UI/Angular/Testing.md | 380 ---- docs/zh-Hans/UI/Angular/Toaster-Service.md | 155 -- docs/zh-Hans/UI/Angular/Track-By-Service.md | 102 - .../Angular/images/component-replacement.gif | Bin 1168708 -> 0 bytes .../UI/Angular/images/confirmation.png | Bin 16161 -> 0 bytes .../generated-files-via-generate-proxy.png | Bin 36232 -> 0 bytes .../UI/Angular/images/layout-components.png | Bin 49839 -> 0 bytes .../UI/Angular/images/locale-error.png | Bin 11726 -> 0 bytes .../UI/Angular/images/logo-component.png | Bin 51631 -> 0 bytes .../UI/Angular/images/nav-items-component.png | Bin 47109 -> 0 bytes .../images/navigation-menu-after-patching.png | Bin 23610 -> 0 bytes .../images/navigation-menu-search-input.png | Bin 12011 -> 0 bytes .../navigation-menu-via-app-routing.png | Bin 17569 -> 0 bytes .../navigation-menu-via-config-state.png | Bin 30093 -> 0 bytes .../images/permission-management-modal.png | Bin 182809 -> 0 bytes .../images/replaced-logo-component.png | Bin 4244 -> 0 bytes .../images/replaced-nav-items-component.png | Bin 5888 -> 0 bytes .../images/replaced-routes-component.png | Bin 8164 -> 0 bytes .../UI/Angular/images/routes-component.png | Bin 46477 -> 0 bytes .../images/table-of-packages-to-update.png | Bin 84424 -> 0 bytes docs/zh-Hans/UI/Angular/images/toast.png | Bin 11935 -> 0 bytes .../UI/AspNetCore/Bundling-Minification.md | 451 ---- .../Client-Side-Package-Management.md | 113 - .../Customization-User-Interface.md | 467 ---- .../AspNetCore/Dynamic-JavaScript-Proxies.md | 3 - .../UI/AspNetCore/JavaScript-API/Index.md | 23 - docs/zh-Hans/UI/AspNetCore/Layout-Hooks.md | 3 - .../UI/AspNetCore/Libraries/DatatablesNet.md | 3 - docs/zh-Hans/UI/AspNetCore/Navigation-Menu.md | 3 - .../UI/AspNetCore/Tag-Helpers/Alerts.md | 80 - .../UI/AspNetCore/Tag-Helpers/Badges.md | 38 - .../UI/AspNetCore/Tag-Helpers/Borders.md | 124 -- .../UI/AspNetCore/Tag-Helpers/Breadcrumbs.md | 25 - .../AspNetCore/Tag-Helpers/Button-groups.md | 37 - .../UI/AspNetCore/Tag-Helpers/Buttons.md | 86 - .../UI/AspNetCore/Tag-Helpers/Cards.md | 180 -- .../UI/AspNetCore/Tag-Helpers/Carousel.md | 71 - .../UI/AspNetCore/Tag-Helpers/Collapse.md | 90 - .../UI/AspNetCore/Tag-Helpers/Dropdowns.md | 93 - .../AspNetCore/Tag-Helpers/Dynamic-Forms.md | 281 --- .../AspNetCore/Tag-Helpers/Form-elements.md | 267 --- .../UI/AspNetCore/Tag-Helpers/Grids.md | 273 --- .../UI/AspNetCore/Tag-Helpers/Index.md | 38 - .../UI/AspNetCore/Tag-Helpers/List-Groups.md | 76 - .../UI/AspNetCore/Tag-Helpers/Modals.md | 86 - .../zh-Hans/UI/AspNetCore/Tag-Helpers/Navs.md | 114 - .../UI/AspNetCore/Tag-Helpers/Paginator.md | 55 - .../AspNetCore/Tag-Helpers/Progress-Bars.md | 68 - .../UI/AspNetCore/Tag-Helpers/Tables.md | 59 - .../zh-Hans/UI/AspNetCore/Tag-Helpers/Tabs.md | 91 - .../UI/AspNetCore/Tag-Helpers/Tooltips.md | 33 - docs/zh-Hans/UI/AspNetCore/Testing.md | 207 -- docs/zh-Hans/UI/AspNetCore/Theming.md | 3 - docs/zh-Hans/UI/AspNetCore/Toolbars.md | 3 - docs/zh-Hans/UI/AspNetCore/Widgets.md | 274 --- docs/zh-Hans/UI/Common/Utils/Linked-List.md | 1555 ------------- docs/zh-Hans/Unit-Of-Work.md | 355 --- docs/zh-Hans/Upgrading.md | 59 - docs/zh-Hans/Validation.md | 164 -- docs/zh-Hans/Value-Objects.md | 75 - docs/zh-Hans/Virtual-File-System.md | 185 -- docs/zh-Hans/_resources/Diagrams.docx | Bin 34997 -> 0 bytes docs/zh-Hans/docs-nav.json | 894 -------- docs/zh-Hans/docs-params.json | 30 - .../images/MonthlyProfitWidgetFiles.png | Bin 4020 -> 0 bytes docs/zh-Hans/images/abp-book.png | Bin 77778 -> 0 bytes .../images/abp-dynamic-form-result.png | Bin 38146 -> 0 bytes ...orm-input-validation-error-french-name.png | Bin 3060 -> 0 bytes ...abp-form-input-validation-error-french.png | Bin 3383 -> 0 bytes .../abp-form-input-validation-error.png | Bin 3075 -> 0 bytes docs/zh-Hans/images/abp-select2-multiple.png | Bin 3440 -> 0 bytes docs/zh-Hans/images/abp-select2-single.png | Bin 2516 -> 0 bytes .../images/account-module-forgot-password.png | Bin 8331 -> 0 bytes docs/zh-Hans/images/account-module-login.png | Bin 7126 -> 0 bytes .../images/account-module-manage-account.png | Bin 13160 -> 0 bytes .../images/account-module-register.png | Bin 7213 -> 0 bytes ...pert-to-user-database-extra-properties.png | Bin 41630 -> 0 bytes ...add-new-propert-to-user-database-field.png | Bin 3428 -> 0 bytes docs/zh-Hans/images/add-new-property-enum.png | Bin 9165 -> 0 bytes ...y-to-user-form-validation-error-custom.png | Bin 66193 -> 0 bytes ...property-to-user-form-validation-error.png | Bin 24448 -> 0 bytes .../images/add-new-property-to-user-form.png | Bin 70822 -> 0 bytes .../images/add-new-property-to-user-table.png | Bin 62428 -> 0 bytes docs/zh-Hans/images/ajax-error.png | Bin 11821 -> 0 bytes .../images/angular-folder-structure.png | Bin 51492 -> 0 bytes .../images/angular-module-dev-app-project.png | Bin 25224 -> 0 bytes .../angular-module-folder-structure.png | Bin 77285 -> 0 bytes .../angular-template-structure-diagram.png | Bin 64005 -> 0 bytes .../aspnetcore-web-tests-in-solution.png | Bin 36804 -> 0 bytes .../images/auditlog-object-diagram.png | Bin 16339 -> 0 bytes ...thorization-new-permission-ui-hierarcy.png | Bin 43699 -> 0 bytes ...horization-new-permission-ui-localized.png | Bin 29319 -> 0 bytes .../authorization-new-permission-ui.png | Bin 30429 -> 0 bytes .../basic-console-application-solution.png | Bin 15352 -> 0 bytes .../basic-maui-application-solution.png | Bin 23833 -> 0 bytes .../images/basic-theme-account-layout.png | Bin 38014 -> 0 bytes .../basic-theme-application-layout-blazor.png | Bin 35126 -> 0 bytes .../basic-theme-application-layout-parts.png | Bin 67338 -> 0 bytes .../images/basic-theme-application-layout.png | Bin 51729 -> 0 bytes .../images/basic-wpf-application-solution.png | Bin 18114 -> 0 bytes .../blazor-generic-exception-message.png | Bin 15491 -> 0 bytes .../zh-Hans/images/blazor-message-confirm.png | Bin 8759 -> 0 bytes docs/zh-Hans/images/blazor-message-error.png | Bin 6162 -> 0 bytes .../zh-Hans/images/blazor-message-success.png | Bin 9296 -> 0 bytes .../blazor-notification-bell-component.png | Bin 10485 -> 0 bytes .../images/blazor-notification-success.png | Bin 2300 -> 0 bytes .../images/blazor-page-alert-example.png | Bin 16615 -> 0 bytes .../images/blazor-user-friendly-exception.png | Bin 14492 -> 0 bytes .../images/bookstore-added-brand-files.png | Bin 11616 -> 0 bytes docs/zh-Hans/images/bookstore-added-logo.png | Bin 52689 -> 0 bytes .../images/bookstore-added-role-js-file.png | Bin 9653 -> 0 bytes docs/zh-Hans/images/bookstore-apis.png | Bin 11523 -> 0 bytes .../bookstore-brand-area-highlighted.png | Bin 42824 -> 0 bytes .../images/bookstore-branding-blazor.png | Bin 6512 -> 0 bytes .../images/bookstore-create-template.png | Bin 28393 -> 0 bytes .../images/bookstore-efcore-dependencies.png | Bin 24309 -> 0 bytes .../images/bookstore-global-css-file.png | Bin 8393 -> 0 bytes ...kstore-google-analytics-view-component.png | Bin 20668 -> 0 bytes docs/zh-Hans/images/bookstore-home.png | Bin 7620 -> 0 bytes docs/zh-Hans/images/bookstore-homepage.png | Bin 7620 -> 0 bytes docs/zh-Hans/images/bookstore-login.png | Bin 28429 -> 0 bytes docs/zh-Hans/images/bookstore-logo-blazor.png | Bin 10591 -> 0 bytes .../images/bookstore-menus-highlighted.png | Bin 56238 -> 0 bytes ...bookstore-notification-icon-on-toolbar.png | Bin 45889 -> 0 bytes .../bookstore-notification-view-component.png | Bin 21088 -> 0 bytes .../images/bookstore-second-database.png | Bin 13860 -> 0 bytes .../images/bookstore-swagger-ui-host.png | Bin 41867 -> 0 bytes .../images/bookstore-toolbar-highlighted.png | Bin 55949 -> 0 bytes .../images/bookstore-user-management-v2.png | Bin 12035 -> 0 bytes ...okstore-visual-studio-solution-for-spa.png | Bin 28985 -> 0 bytes ...ookstore-visual-studio-solution-tiered.png | Bin 14852 -> 0 bytes .../bookstore-visual-studio-solution-v3.png | Bin 6437 -> 0 bytes docs/zh-Hans/images/branding-appname.png | Bin 20546 -> 0 bytes docs/zh-Hans/images/branding-nobrand.png | Bin 25851 -> 0 bytes docs/zh-Hans/images/breadcrumbs-example.png | Bin 6581 -> 0 bytes .../build-action-embedded-resource-sample.png | Bin 3915 -> 0 bytes .../images/cmskit-add-widget-on-page.png | Bin 18951 -> 0 bytes .../images/cmskit-example-output-on-page.png | Bin 46099 -> 0 bytes .../images/cmskit-module-blog-post-edit.png | Bin 86260 -> 0 bytes .../images/cmskit-module-blog-posts-page.png | Bin 18560 -> 0 bytes .../images/cmskit-module-blogs-edit.png | Bin 6630 -> 0 bytes .../cmskit-module-blogs-feature-action.png | Bin 12686 -> 0 bytes .../images/cmskit-module-blogs-page.png | Bin 11864 -> 0 bytes .../images/cmskit-module-comment-page.png | Bin 18937 -> 0 bytes .../images/cmskit-module-comments-detail.png | Bin 21951 -> 0 bytes .../cmskit-module-features-dialog-2.png | Bin 9038 -> 0 bytes .../images/cmskit-module-features-dialog.png | Bin 7199 -> 0 bytes .../cmskit-module-features-scroll-index.png | Bin 97226 -> 0 bytes .../cmskit-module-global-resources-page.png | Bin 10458 -> 0 bytes .../images/cmskit-module-menus-page.png | Bin 12764 -> 0 bytes .../images/cmskit-module-menus-public.png | Bin 6004 -> 0 bytes .../images/cmskit-module-pages-edit.png | Bin 91206 -> 0 bytes .../images/cmskit-module-pages-page.png | Bin 18552 -> 0 bytes docs/zh-Hans/images/cmskit-module-ratings.png | Bin 1743 -> 0 bytes .../images/cmskit-module-reactions.png | Bin 3978 -> 0 bytes .../zh-Hans/images/cmskit-module-tag-edit.png | Bin 5288 -> 0 bytes .../images/cmskit-module-tags-page.png | Bin 16308 -> 0 bytes .../images/create-aspnet-core-application.png | Bin 34353 -> 0 bytes .../create-new-aspnet-core-application-v2.png | Bin 121764 -> 0 bytes .../create-new-aspnet-core-application.png | Bin 20198 -> 0 bytes ...reate-new-net-core-console-application.png | Bin 21247 -> 0 bytes docs/zh-Hans/images/custom-settings.png | Bin 51014 -> 0 bytes docs/zh-Hans/images/dashboard1.png | Bin 35432 -> 0 bytes ...nsion-blazor-component-render-solution.png | Bin 2951 -> 0 bytes ...olum-extension-blazor-component-render.png | Bin 12650 -> 0 bytes .../images/datatables-custom-render-date.png | Bin 7383 -> 0 bytes .../images/datatables-default-render-date.png | Bin 10184 -> 0 bytes docs/zh-Hans/images/datatables-example.png | Bin 36778 -> 0 bytes .../datatables-row-actions-confirmation.png | Bin 35923 -> 0 bytes .../images/datatables-row-actions-icon.png | Bin 8765 -> 0 bytes .../zh-Hans/images/datatables-row-actions.png | Bin 13999 -> 0 bytes docs/zh-Hans/images/db-migrator-app.png | Bin 7718 -> 0 bytes docs/zh-Hans/images/db-migrator-output.png | Bin 7718 -> 0 bytes docs/zh-Hans/images/db-options.png | Bin 26803 -> 0 bytes .../images/ddd-microservice-simple.png | Bin 42106 -> 0 bytes docs/zh-Hans/images/deployment-clustered.png | Bin 28180 -> 0 bytes .../images/deployment-single-instance.png | Bin 21910 -> 0 bytes .../images/docs-create-project-v4.4.0.png | Bin 16671 -> 0 bytes docs/zh-Hans/images/docs-create-project.jpg | Bin 33946 -> 0 bytes .../docs-module_download-new-abp-project.png | Bin 35223 -> 0 bytes ...module_download-sample-navigation-menu.png | Bin 10564 -> 0 bytes .../images/docs-module_solution-explorer.png | Bin 6537 -> 0 bytes docs/zh-Hans/images/docs-section-ui.png | Bin 5629 -> 0 bytes ...ain-driven-design-aggregate-keep-small.png | Bin 301819 -> 0 bytes ...omain-driven-design-clean-architecture.png | Bin 63932 -> 0 bytes ...ven-design-domain-vs-application-logic.png | Bin 20120 -> 0 bytes ...main-driven-design-entity-primary-keys.png | Bin 254496 -> 0 bytes ...in-driven-design-example-domain-schema.png | Bin 142378 -> 0 bytes ...-driven-design-issue-aggregate-diagram.png | Bin 217555 -> 0 bytes .../images/domain-driven-design-layers.png | Bin 18506 -> 0 bytes ...in-driven-design-multiple-applications.png | Bin 101826 -> 0 bytes ...domain-driven-design-project-relations.png | Bin 12743 -> 0 bytes ...n-driven-design-reference-by-id-sample.png | Bin 278690 -> 0 bytes .../domain-driven-design-vs-solution.png | Bin 23094 -> 0 bytes .../domain-driven-design-web-request-flow.png | Bin 120185 -> 0 bytes docs/zh-Hans/images/email-settings.png | Bin 11196 -> 0 bytes docs/zh-Hans/images/example-global-styles.png | Bin 12378 -> 0 bytes .../extension-navigation-property-form.png | Bin 18387 -> 0 bytes .../extension-navigation-property-table.png | Bin 28373 -> 0 bytes docs/zh-Hans/images/features-action.png | Bin 14174 -> 0 bytes docs/zh-Hans/images/features-modal.png | Bin 31112 -> 0 bytes .../images/features-module-opening.png | Bin 15616 -> 0 bytes .../generated-static-client-proxies.png | Bin 3823 -> 0 bytes .../github-access-token-private-repo.jpg | Bin 49201 -> 0 bytes .../github-access-token-public-repo.jpg | Bin 46497 -> 0 bytes docs/zh-Hans/images/github-myusername.jpg | Bin 46427 -> 0 bytes docs/zh-Hans/images/hello-template-razor.png | Bin 33199 -> 0 bytes docs/zh-Hans/images/hello-template.png | Bin 55857 -> 0 bytes docs/zh-Hans/images/identity-module-menu.png | Bin 6094 -> 0 bytes .../images/identity-module-permissions.png | Bin 19799 -> 0 bytes docs/zh-Hans/images/identity-module-roles.png | Bin 10980 -> 0 bytes docs/zh-Hans/images/identity-module-users.png | Bin 11376 -> 0 bytes ...implementing-domain-driven-design-book.png | Bin 76877 -> 0 bytes docs/zh-Hans/images/issue-first-test.png | Bin 42968 -> 0 bytes docs/zh-Hans/images/issue-list.png | Bin 11946 -> 0 bytes .../issuemanagement-module-solution.png | Bin 19559 -> 0 bytes docs/zh-Hans/images/js-message-confirm.png | Bin 31808 -> 0 bytes docs/zh-Hans/images/js-message-error.png | Bin 28387 -> 0 bytes docs/zh-Hans/images/js-message-success.png | Bin 28860 -> 0 bytes docs/zh-Hans/images/js-notify-success.png | Bin 15425 -> 0 bytes .../layered-project-dependencies-module.png | Bin 33290 -> 0 bytes .../images/layered-project-dependencies.png | Bin 27320 -> 0 bytes .../images/lepton-theme-account-layout.png | Bin 70094 -> 0 bytes .../lepton-theme-application-layout.png | Bin 161972 -> 0 bytes .../images/lepton-theme-blazor-layout.png | Bin 145168 -> 0 bytes .../localization-resource-json-files.png | Bin 1883 -> 0 bytes .../microservice-sample-authserver-home.png | Bin 10199 -> 0 bytes .../microservice-sample-authserver-login.png | Bin 9133 -> 0 bytes ...oservice-sample-backend-ui-permissions.png | Bin 29868 -> 0 bytes .../images/microservice-sample-backend-ui.png | Bin 31973 -> 0 bytes ...ple-blogservice-permission-in-database.png | Bin 2408 -> 0 bytes .../images/microservice-sample-diagram-2.png | Bin 121775 -> 0 bytes .../images/microservice-sample-diagram-3.png | Bin 288361 -> 0 bytes .../images/microservice-sample-diagram.png | Bin 58561 -> 0 bytes .../images/microservice-sample-kibana-1.png | Bin 51262 -> 0 bytes .../images/microservice-sample-kibana-2.png | Bin 37406 -> 0 bytes ...vice-sample-product-module-in-solution.png | Bin 8396 -> 0 bytes ...icroservice-sample-public-product-list.png | Bin 18738 -> 0 bytes .../images/microservice-sample-solution-2.png | Bin 24715 -> 0 bytes .../images/microservice-sample-solution.png | Bin 6955 -> 0 bytes ...vice-sample-update-database-authserver.png | Bin 3909 -> 0 bytes ...ervice-sample-update-database-products.png | Bin 3799 -> 0 bytes .../images/modal-example-product-create.png | Bin 45043 -> 0 bytes .../images/modal-example-product-info.png | Bin 257452 -> 0 bytes .../images/modal-manager-cancel-warning.png | Bin 37045 -> 0 bytes .../images/modal-manager-example-modal.png | Bin 29944 -> 0 bytes .../images/modal-manager-validation.png | Bin 31673 -> 0 bytes docs/zh-Hans/images/modal-page-on-rider.png | Bin 21720 -> 0 bytes .../images/module-layers-and-packages.jpg | Bin 26892 -> 0 bytes .../module-tenant-management-actions.png | Bin 5344 -> 0 bytes .../module-tenant-management-new-tenant.png | Bin 9953 -> 0 bytes .../images/module-tenant-management-page.png | Bin 13793 -> 0 bytes .../images/multiple-database-usage.png | Bin 42311 -> 0 bytes .../images/multiple-file-template-razor.png | Bin 29056 -> 0 bytes .../zh-Hans/images/multiple-file-template.png | Bin 30590 -> 0 bytes .../images/my-setting-group-blazor.png | Bin 19797 -> 0 bytes ...my-setting-group-component-contributor.png | Bin 10573 -> 0 bytes .../images/my-setting-group-component.png | Bin 12096 -> 0 bytes .../my-setting-group-page-contributor.png | Bin 12111 -> 0 bytes docs/zh-Hans/images/my-setting-group-ui.png | Bin 21306 -> 0 bytes .../my-setting-group-view-component.png | Bin 13129 -> 0 bytes .../images/nav-main-menu-administration.png | Bin 22010 -> 0 bytes docs/zh-Hans/images/nav-main-menu.png | Bin 16163 -> 0 bytes .../images/night-build-add-nuget-package.png | Bin 14916 -> 0 bytes .../images/night-build-add-nuget-source.png | Bin 17180 -> 0 bytes .../zh-Hans/images/optimistic-concurrency.png | Bin 15000 -> 0 bytes .../images/overriding-login-cshtml.png | Bin 2755 -> 0 bytes ...ackage-manager-console-update-database.png | Bin 3838 -> 0 bytes .../images/page-alert-account-layout.png | Bin 22089 -> 0 bytes docs/zh-Hans/images/page-alert-example.png | Bin 26394 -> 0 bytes .../images/page-header-toolbar-blazor.png | Bin 10946 -> 0 bytes .../images/page-toolbar-button-blazor.png | Bin 26617 -> 0 bytes docs/zh-Hans/images/page-toolbar-button.png | Bin 40077 -> 0 bytes .../page-toolbar-custom-component-blazor.png | Bin 6473 -> 0 bytes .../images/page-toolbar-custom-component.png | Bin 30957 -> 0 bytes .../zh-Hans/images/pcm-update-database-v2.png | Bin 3838 -> 0 bytes docs/zh-Hans/images/pcm-update-database.png | Bin 3823 -> 0 bytes .../images/permissions-module-dialog.png | Bin 20653 -> 0 bytes .../images/permissions-module-open-dialog.png | Bin 15917 -> 0 bytes ...-add-migration-initial-update-database.png | Bin 20298 -> 0 bytes .../images/pmc-add-migration-role-title.png | Bin 7330 -> 0 bytes .../product-create-modal-page-on-rider.png | Bin 28094 -> 0 bytes .../images/react-native-folder-structure.png | Bin 55426 -> 0 bytes .../images/react-native-introduction.gif | Bin 970645 -> 0 bytes .../react-native-navigation-structure.png | Bin 25909 -> 0 bytes .../images/react-native-store-folder.png | Bin 50701 -> 0 bytes .../images/replace-email-layout-razor.png | Bin 34621 -> 0 bytes docs/zh-Hans/images/replace-email-layout.png | Bin 27151 -> 0 bytes .../images/rn-environment-local-ip.png | Bin 48386 -> 0 bytes docs/zh-Hans/images/rn-expo-interface.png | Bin 42333 -> 0 bytes docs/zh-Hans/images/rn-host-local-ip.png | Bin 109553 -> 0 bytes docs/zh-Hans/images/rn-login-iphone.png | Bin 23890 -> 0 bytes docs/zh-Hans/images/rn-tiered-local-ip.png | Bin 137406 -> 0 bytes .../select-empty-web-application-v2.png | Bin 44346 -> 0 bytes .../images/select-empty-web-application.png | Bin 17276 -> 0 bytes .../zh-Hans/images/set-as-startup-project.png | Bin 2283 -> 0 bytes .../images/setting-management-email-ui.png | Bin 38063 -> 0 bytes docs/zh-Hans/images/signal-js-file.png | Bin 48938 -> 0 bytes docs/zh-Hans/images/signalr-demo-chat.png | Bin 33483 -> 0 bytes .../images/simple-plug-in-dll-file.png | Bin 25230 -> 0 bytes docs/zh-Hans/images/simple-plugin-library.png | Bin 9675 -> 0 bytes docs/zh-Hans/images/simple-plugin-output.png | Bin 25329 -> 0 bytes .../images/simple-razor-plug-in-dll-file.png | Bin 37281 -> 0 bytes docs/zh-Hans/images/simple-razor-plugin.png | Bin 14559 -> 0 bytes docs/zh-Hans/images/single-database-usage.png | Bin 35641 -> 0 bytes docs/zh-Hans/images/solution-files-mvc.png | Bin 19940 -> 0 bytes .../zh-Hans/images/solution-files-non-mvc.png | Bin 2409 -> 0 bytes .../zh-Hans/images/solution-test-projects.png | Bin 36720 -> 0 bytes .../images/static-js-proxy-example.png | Bin 3803 -> 0 bytes docs/zh-Hans/images/swagger-ui.png | Bin 63830 -> 0 bytes .../table-column-extension-example-blazor.png | Bin 12574 -> 0 bytes .../images/table-column-extension-example.png | Bin 48609 -> 0 bytes .../images/tiered-solution-applications.png | Bin 11941 -> 0 bytes .../images/tiered-solution-servers.png | Bin 31089 -> 0 bytes docs/zh-Hans/images/ui-busy.png | Bin 113280 -> 0 bytes docs/zh-Hans/images/ui-options.png | Bin 28338 -> 0 bytes .../images/upgrade-diff-empty-folders.png | Bin 775 -> 0 bytes .../user-action-blazor-extension-click-me.png | Bin 14717 -> 0 bytes .../images/user-action-extension-click-me.png | Bin 53337 -> 0 bytes ...ser-action-extension-on-blazor-project.png | Bin 6480 -> 0 bytes .../user-action-extension-on-solution.png | Bin 26042 -> 0 bytes docs/zh-Hans/images/user-menu.png | Bin 8447 -> 0 bytes docs/zh-Hans/images/virtual-file-explorer.png | Bin 22267 -> 0 bytes .../images/volodocs-iis-add-website.png | Bin 11571 -> 0 bytes .../images/volodocs-iis-application-pool.png | Bin 4963 -> 0 bytes .../vs-app-solution-structure-mongodb.png | Bin 56515 -> 0 bytes .../vs-app-solution-structure-tiered.png | Bin 68365 -> 0 bytes .../images/vs-app-solution-structure.png | Bin 64005 -> 0 bytes .../images/vs-run-tests-in-parallel.png | Bin 31906 -> 0 bytes .../vs-spa-app-backend-structure-mongodb.png | Bin 45775 -> 0 bytes .../images/vs-spa-app-backend-structure.png | Bin 63059 -> 0 bytes .../images/vs-startup-template-tests.png | Bin 35652 -> 0 bytes docs/zh-Hans/images/vs-test-explorer.png | Bin 21842 -> 0 bytes docs/zh-Hans/images/widget-basic-files.png | Bin 6328 -> 0 bytes .../images/winmerge-comparison-result.png | Bin 84590 -> 0 bytes docs/zh-Hans/images/winmerge-file-diff.png | Bin 74656 -> 0 bytes docs/zh-Hans/images/winmerge-open-folders.png | Bin 54974 -> 0 bytes 1015 files changed, 70186 deletions(-) delete mode 100644 docs/cs/AspNetCore/Widgets.md delete mode 100644 docs/cs/Autofac-Integration.md delete mode 100644 docs/cs/Best-Practices/images/postgresql-delete-initial-migrations.png delete mode 100644 docs/cs/Best-Practices/images/postgresql-update-database.png delete mode 100644 docs/cs/CLI.md delete mode 100644 docs/cs/Contribution/Index.md delete mode 100644 docs/cs/Dapper.md delete mode 100644 docs/cs/Domain-Driven-Design.md delete mode 100644 docs/cs/Entity-Framework-Core-PostgreSQL.md delete mode 100644 docs/cs/Getting-Started-Angular-Template.md delete mode 100644 docs/cs/Getting-Started-AspNetCore-Application.md delete mode 100644 docs/cs/Getting-Started-AspNetCore-MVC-Template.md delete mode 100644 docs/cs/Getting-Started-Console-Application.md delete mode 100644 docs/cs/Index.md delete mode 100644 docs/cs/Nightly-Builds.md delete mode 100644 docs/cs/docs-nav.json delete mode 100644 docs/cs/images/MonthlyProfitWidgetFiles.png delete mode 100644 docs/cs/images/authorization-new-permission-ui-hierarcy.png delete mode 100644 docs/cs/images/authorization-new-permission-ui-localized.png delete mode 100644 docs/cs/images/authorization-new-permission-ui.png delete mode 100644 docs/cs/images/bookstore-apis.png delete mode 100644 docs/cs/images/bookstore-create-template.png delete mode 100644 docs/cs/images/bookstore-homepage.png delete mode 100644 docs/cs/images/bookstore-swagger-ui-host.png delete mode 100644 docs/cs/images/bookstore-user-management-v2.png delete mode 100644 docs/cs/images/bookstore-visual-studio-solution-for-spa.png delete mode 100644 docs/cs/images/bookstore-visual-studio-solution-tiered.png delete mode 100644 docs/cs/images/bookstore-visual-studio-solution-v3.png delete mode 100644 docs/cs/images/build-action-embedded-resource-sample.png delete mode 100644 docs/cs/images/create-aspnet-core-application.png delete mode 100644 docs/cs/images/create-new-aspnet-core-application-v2.png delete mode 100644 docs/cs/images/create-new-aspnet-core-application.png delete mode 100644 docs/cs/images/create-new-net-core-console-application.png delete mode 100644 docs/cs/images/dashboard1.png delete mode 100644 docs/cs/images/db-migrator-app.png delete mode 100644 docs/cs/images/docs-create-project.jpg delete mode 100644 docs/cs/images/docs-module_download-new-abp-project.png delete mode 100644 docs/cs/images/docs-module_download-sample-navigation-menu.png delete mode 100644 docs/cs/images/docs-module_solution-explorer.png delete mode 100644 docs/cs/images/docs-section-ui.png delete mode 100644 docs/cs/images/github-access-token-private-repo.jpg delete mode 100644 docs/cs/images/github-access-token-public-repo.jpg delete mode 100644 docs/cs/images/github-myusername.jpg delete mode 100644 docs/cs/images/issuemanagement-module-solution.png delete mode 100644 docs/cs/images/layered-project-dependencies-module.png delete mode 100644 docs/cs/images/layered-project-dependencies.png delete mode 100644 docs/cs/images/localization-resource-json-files.png delete mode 100644 docs/cs/images/microservice-sample-authserver-home.png delete mode 100644 docs/cs/images/microservice-sample-authserver-login.png delete mode 100644 docs/cs/images/microservice-sample-backend-ui-permissions.png delete mode 100644 docs/cs/images/microservice-sample-backend-ui.png delete mode 100644 docs/cs/images/microservice-sample-blogservice-permission-in-database.png delete mode 100644 docs/cs/images/microservice-sample-diagram-2.png delete mode 100644 docs/cs/images/microservice-sample-diagram.png delete mode 100644 docs/cs/images/microservice-sample-kibana-1.png delete mode 100644 docs/cs/images/microservice-sample-kibana-2.png delete mode 100644 docs/cs/images/microservice-sample-product-module-in-solution.png delete mode 100644 docs/cs/images/microservice-sample-public-product-list.png delete mode 100644 docs/cs/images/microservice-sample-solution.png delete mode 100644 docs/cs/images/microservice-sample-update-database-authserver.png delete mode 100644 docs/cs/images/microservice-sample-update-database-products.png delete mode 100644 docs/cs/images/module-layers-and-packages.jpg delete mode 100644 docs/cs/images/night-build-add-nuget-package.png delete mode 100644 docs/cs/images/night-build-add-nuget-source.png delete mode 100644 docs/cs/images/pcm-update-database-v2.png delete mode 100644 docs/cs/images/pcm-update-database.png delete mode 100644 docs/cs/images/select-empty-web-application-v2.png delete mode 100644 docs/cs/images/select-empty-web-application.png delete mode 100644 docs/cs/images/set-as-startup-project.png delete mode 100644 docs/cs/images/tiered-solution-applications.png delete mode 100644 docs/cs/images/tiered-solution-servers.png delete mode 100644 docs/cs/images/volodocs-iis-add-website.png delete mode 100644 docs/cs/images/volodocs-iis-application-pool.png delete mode 100644 docs/cs/images/widget-basic-files.png delete mode 100644 docs/es/Getting-Started-AspNetCore-Application.md delete mode 100644 docs/es/Index.md delete mode 100644 docs/es/images/create-aspnet-core-application.png delete mode 100644 docs/es/images/create-new-aspnet-core-application-v2.png delete mode 100644 docs/es/images/select-empty-web-application-v2.png delete mode 100644 docs/pt-BR/AspNetCore/Auto-API-Controllers.md delete mode 100644 docs/pt-BR/AspNetCore/Bundling-Minification.md delete mode 100644 docs/pt-BR/AspNetCore/Client-Side-Package-Management.md delete mode 100644 docs/pt-BR/AspNetCore/Dynamic-CSharp-API-Clients.md delete mode 100644 docs/pt-BR/AspNetCore/Tag-Helpers/Dynamic-Forms.md delete mode 100644 docs/pt-BR/AspNetCore/Tag-Helpers/Index.md delete mode 100644 docs/pt-BR/AspNetCore/Theming.md delete mode 100644 docs/pt-BR/AspNetCore/Widgets.md delete mode 100644 docs/pt-BR/Aspect-Oriented-Programming.md delete mode 100644 docs/pt-BR/Audit-Logging.md delete mode 100644 docs/pt-BR/Authorization.md delete mode 100644 docs/pt-BR/AutoMapper-Integration.md delete mode 100644 docs/pt-BR/Background-Jobs-Hangfire.md delete mode 100644 docs/pt-BR/Background-Jobs-Quartz.md delete mode 100644 docs/pt-BR/Background-Jobs-RabbitMq.md delete mode 100644 docs/pt-BR/Background-Workers-Quartz.md delete mode 100644 docs/pt-BR/Background-Workers.md delete mode 100644 docs/pt-BR/CLI.md delete mode 100644 docs/pt-BR/Caching.md delete mode 100644 docs/pt-BR/Contribution/Index.md delete mode 100644 docs/pt-BR/CorrelationId.md delete mode 100644 docs/pt-BR/Data-Filtering.md delete mode 100644 docs/pt-BR/Data-Seeding.md delete mode 100644 docs/pt-BR/Data-Transfer-Objects.md delete mode 100644 docs/pt-BR/Distributed-Event-Bus.md delete mode 100644 docs/pt-BR/Domain-Services.md delete mode 100644 docs/pt-BR/Dynamic-Proxying-Interceptors.md delete mode 100644 docs/pt-BR/Emailing.md delete mode 100644 docs/pt-BR/Event-Bus.md delete mode 100644 docs/pt-BR/Exception-Handling.md delete mode 100644 docs/pt-BR/Extension-Methods-And-Helpers.md delete mode 100644 docs/pt-BR/Getting-Started-Angular-Template.md delete mode 100644 docs/pt-BR/Getting-Started-AspNetCore-Application.md delete mode 100644 docs/pt-BR/Getting-Started-AspNetCore-MVC-Template.md delete mode 100644 docs/pt-BR/Getting-Started-Console-Application.md delete mode 100644 docs/pt-BR/Guid-Generation.md delete mode 100644 docs/pt-BR/Index.md delete mode 100644 docs/pt-BR/Integration-Tests.md delete mode 100644 docs/pt-BR/Local-Event-Bus.md delete mode 100644 docs/pt-BR/Localization.md delete mode 100644 docs/pt-BR/Modules/Account.md delete mode 100644 docs/pt-BR/Modules/Audit-Logging.md delete mode 100644 docs/pt-BR/Modules/Background-Jobs.md delete mode 100644 docs/pt-BR/Modules/Cms-Kit/Blogging.md delete mode 100644 docs/pt-BR/Modules/Cms-Kit/Comments.md delete mode 100644 docs/pt-BR/Modules/Cms-Kit/Dynamic-Widget.md delete mode 100644 docs/pt-BR/Modules/Cms-Kit/Global-Resources.md delete mode 100644 docs/pt-BR/Modules/Cms-Kit/Index.md delete mode 100644 docs/pt-BR/Modules/Cms-Kit/Menus.md delete mode 100644 docs/pt-BR/Modules/Cms-Kit/Pages.md delete mode 100644 docs/pt-BR/Modules/Cms-Kit/Ratings.md delete mode 100644 docs/pt-BR/Modules/Cms-Kit/Reactions.md delete mode 100644 docs/pt-BR/Modules/Cms-Kit/Tags.md delete mode 100644 docs/pt-BR/Modules/Database-Tables.md delete mode 100644 docs/pt-BR/Modules/Docs.md delete mode 100644 docs/pt-BR/Modules/Feature-Management.md delete mode 100644 docs/pt-BR/Modules/Identity.md delete mode 100644 docs/pt-BR/Modules/IdentityServer.md delete mode 100644 docs/pt-BR/Modules/Index.md delete mode 100644 docs/pt-BR/Modules/OpenIddict.md delete mode 100644 docs/pt-BR/Modules/Permission-Management.md delete mode 100644 docs/pt-BR/Modules/Setting-Management.md delete mode 100644 docs/pt-BR/Modules/Tenant-Management.md delete mode 100644 docs/pt-BR/Modules/Virtual-File-Explorer.md delete mode 100644 docs/pt-BR/MongoDB.md delete mode 100644 docs/pt-BR/Nightly-Builds.md delete mode 100644 docs/pt-BR/Object-To-Object-Mapping.md delete mode 100644 docs/pt-BR/SMS-Sending.md delete mode 100644 docs/pt-BR/Settings.md delete mode 100644 docs/pt-BR/Specifications.md delete mode 100644 docs/pt-BR/Startup-Templates/Application.md delete mode 100644 docs/pt-BR/Startup-Templates/Index.md delete mode 100644 docs/pt-BR/Startup-Templates/Module.md delete mode 100644 docs/pt-BR/Testing.md delete mode 100644 docs/pt-BR/Tutorials/Angular/Part-I.md delete mode 100644 docs/pt-BR/Tutorials/Angular/Part-II.md delete mode 100644 docs/pt-BR/Tutorials/Angular/Part-III.md delete mode 100644 docs/pt-BR/Tutorials/Angular/images/bookstore-actions-buttons.png delete mode 100644 docs/pt-BR/Tutorials/Angular/images/bookstore-angular-file-tree.png delete mode 100644 docs/pt-BR/Tutorials/Angular/images/bookstore-backend-solution-v2.png delete mode 100644 docs/pt-BR/Tutorials/Angular/images/bookstore-book-list.png delete mode 100644 docs/pt-BR/Tutorials/Angular/images/bookstore-confirmation-popup.png delete mode 100644 docs/pt-BR/Tutorials/Angular/images/bookstore-creating-book-list-terminal.png delete mode 100644 docs/pt-BR/Tutorials/Angular/images/bookstore-creating-books-module-terminal.png delete mode 100644 docs/pt-BR/Tutorials/Angular/images/bookstore-edit-modal.png delete mode 100644 docs/pt-BR/Tutorials/Angular/images/bookstore-empty-new-book-modal.png delete mode 100644 docs/pt-BR/Tutorials/Angular/images/bookstore-final-actions-dropdown.png delete mode 100644 docs/pt-BR/Tutorials/Angular/images/bookstore-initial-book-list-page.png delete mode 100644 docs/pt-BR/Tutorials/Angular/images/bookstore-initial-books-page-with-layout.png delete mode 100644 docs/pt-BR/Tutorials/Angular/images/bookstore-initial-books-page.png delete mode 100644 docs/pt-BR/Tutorials/Angular/images/bookstore-new-book-form-v2.png delete mode 100644 docs/pt-BR/Tutorials/Angular/images/bookstore-new-book-form.png delete mode 100644 docs/pt-BR/Tutorials/Angular/images/bookstore-service-terminal-output.png delete mode 100644 docs/pt-BR/Tutorials/Angular/images/bookstore-swagger-api.png delete mode 100644 docs/pt-BR/Tutorials/Angular/images/bookstore-test-explorer.png delete mode 100644 docs/pt-BR/Tutorials/Angular/images/bookstore-test-projects-v3.png delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/Part-I.md delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/Part-II.md delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/Part-III.md delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-add-create-dialog-v2.png delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-add-edit-dialog.png delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-add-index-page-v2.png delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-appservice-tests.png delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-book-list-2.png delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-book-list.png delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-books-table-actions.png delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-books-table.png delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-create-dialog-2.png delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-create-dialog.png delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-create-template.png delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-homepage.png delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-index-js-file-v2.png delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-localization-files-v2.png delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-menu-items.png delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-new-book-button.png delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-pmc-add-book-migration-v2.png delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-pmc-add-book-migration.png delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-swagger.png delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-test-js-proxy-getlist-network.png delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-test-js-proxy-getlist.png delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-test-projects-v2.png delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-user-management.png delete mode 100644 docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-visual-studio-solution-v3.png delete mode 100644 docs/pt-BR/UI/AspNetCore/AutoComplete-Select.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Basic-Theme.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Branding.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Bundling-Minification.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Client-Side-Package-Management.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Customization-User-Interface.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Data-Table-Column-Extensions.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Data-Tables.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Dynamic-JavaScript-Proxies.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Entity-Action-Extensions.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Forms-Validation.md delete mode 100644 docs/pt-BR/UI/AspNetCore/JavaScript-API/Ajax.md delete mode 100644 docs/pt-BR/UI/AspNetCore/JavaScript-API/Auth.md delete mode 100644 docs/pt-BR/UI/AspNetCore/JavaScript-API/Block-Busy.md delete mode 100644 docs/pt-BR/UI/AspNetCore/JavaScript-API/CurrentUser.md delete mode 100644 docs/pt-BR/UI/AspNetCore/JavaScript-API/DOM.md delete mode 100644 docs/pt-BR/UI/AspNetCore/JavaScript-API/Events.md delete mode 100644 docs/pt-BR/UI/AspNetCore/JavaScript-API/Features.md delete mode 100644 docs/pt-BR/UI/AspNetCore/JavaScript-API/GlobalFeatures.md delete mode 100644 docs/pt-BR/UI/AspNetCore/JavaScript-API/Index.md delete mode 100644 docs/pt-BR/UI/AspNetCore/JavaScript-API/Localization.md delete mode 100644 docs/pt-BR/UI/AspNetCore/JavaScript-API/Logging.md delete mode 100644 docs/pt-BR/UI/AspNetCore/JavaScript-API/Message.md delete mode 100644 docs/pt-BR/UI/AspNetCore/JavaScript-API/Notify.md delete mode 100644 docs/pt-BR/UI/AspNetCore/JavaScript-API/ResourceLoader.md delete mode 100644 docs/pt-BR/UI/AspNetCore/JavaScript-API/Settings.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Layout-Hooks.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Modals.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Navigation-Menu.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Overall.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Page-Alerts.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Page-Header.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Page-Toolbar-Extensions.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Security-Headers.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Static-JavaScript-Proxies.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Tag-Helpers/Alerts.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Tag-Helpers/Badges.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Tag-Helpers/Blockquote.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Tag-Helpers/Borders.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Tag-Helpers/Breadcrumbs.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Tag-Helpers/Button-groups.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Tag-Helpers/Buttons.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Tag-Helpers/Cards.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Tag-Helpers/Carousel.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Tag-Helpers/Collapse.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Tag-Helpers/Dropdowns.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Tag-Helpers/Dynamic-Forms.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Tag-Helpers/Figure.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Tag-Helpers/Form-elements.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Tag-Helpers/Grids.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Tag-Helpers/Index.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Tag-Helpers/List-Groups.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Tag-Helpers/Modals.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Tag-Helpers/Navs.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Tag-Helpers/Paginator.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Tag-Helpers/Popovers.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Tag-Helpers/Progress-Bars.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Tag-Helpers/Tables.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Tag-Helpers/Tabs.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Tag-Helpers/Tooltips.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Testing.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Theming.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Toolbars.md delete mode 100644 docs/pt-BR/UI/AspNetCore/Widgets.md delete mode 100644 docs/pt-BR/Unit-Of-Work.md delete mode 100644 docs/pt-BR/Validation.md delete mode 100644 docs/pt-BR/Value-Objects.md delete mode 100644 docs/pt-BR/docs-nav.json delete mode 100644 docs/pt-BR/images/MonthlyProfitWidgetFiles.png delete mode 100644 docs/pt-BR/images/bookstore-apis.png delete mode 100644 docs/pt-BR/images/bookstore-create-template.png delete mode 100644 docs/pt-BR/images/bookstore-homepage.png delete mode 100644 docs/pt-BR/images/bookstore-swagger-ui-host.png delete mode 100644 docs/pt-BR/images/bookstore-user-management-v2.png delete mode 100644 docs/pt-BR/images/bookstore-visual-studio-solution-for-spa.png delete mode 100644 docs/pt-BR/images/bookstore-visual-studio-solution-tiered.png delete mode 100644 docs/pt-BR/images/bookstore-visual-studio-solution-v3.png delete mode 100644 docs/pt-BR/images/build-action-embedded-resource-sample.png delete mode 100644 docs/pt-BR/images/create-new-aspnet-core-application.png delete mode 100644 docs/pt-BR/images/create-new-net-core-console-application.png delete mode 100644 docs/pt-BR/images/dashboard1.png delete mode 100644 docs/pt-BR/images/db-migrator-app.png delete mode 100644 docs/pt-BR/images/docs-create-project.jpg delete mode 100644 docs/pt-BR/images/docs-module_download-new-abp-project.png delete mode 100644 docs/pt-BR/images/docs-module_download-sample-navigation-menu.png delete mode 100644 docs/pt-BR/images/docs-module_solution-explorer.png delete mode 100644 docs/pt-BR/images/github-access-token-private-repo.jpg delete mode 100644 docs/pt-BR/images/github-access-token-public-repo.jpg delete mode 100644 docs/pt-BR/images/github-myusername.jpg delete mode 100644 docs/pt-BR/images/issuemanagement-module-solution.png delete mode 100644 docs/pt-BR/images/layered-project-dependencies-module.png delete mode 100644 docs/pt-BR/images/layered-project-dependencies.png delete mode 100644 docs/pt-BR/images/localization-resource-json-files.png delete mode 100644 docs/pt-BR/images/microservice-sample-authserver-home.png delete mode 100644 docs/pt-BR/images/microservice-sample-authserver-login.png delete mode 100644 docs/pt-BR/images/microservice-sample-backend-ui-permissions.png delete mode 100644 docs/pt-BR/images/microservice-sample-backend-ui.png delete mode 100644 docs/pt-BR/images/microservice-sample-blogservice-permission-in-database.png delete mode 100644 docs/pt-BR/images/microservice-sample-diagram-2.png delete mode 100644 docs/pt-BR/images/microservice-sample-diagram.png delete mode 100644 docs/pt-BR/images/microservice-sample-kibana-1.png delete mode 100644 docs/pt-BR/images/microservice-sample-kibana-2.png delete mode 100644 docs/pt-BR/images/microservice-sample-product-module-in-solution.png delete mode 100644 docs/pt-BR/images/microservice-sample-public-product-list.png delete mode 100644 docs/pt-BR/images/microservice-sample-solution.png delete mode 100644 docs/pt-BR/images/microservice-sample-update-database-authserver.png delete mode 100644 docs/pt-BR/images/microservice-sample-update-database-products.png delete mode 100644 docs/pt-BR/images/module-layers-and-packages.jpg delete mode 100644 docs/pt-BR/images/night-build-add-nuget-package.png delete mode 100644 docs/pt-BR/images/night-build-add-nuget-source.png delete mode 100644 docs/pt-BR/images/pcm-update-database-v2.png delete mode 100644 docs/pt-BR/images/pcm-update-database.png delete mode 100644 docs/pt-BR/images/select-empty-web-application.png delete mode 100644 docs/pt-BR/images/set-as-startup-project.png delete mode 100644 docs/pt-BR/images/tiered-solution-applications.png delete mode 100644 docs/pt-BR/images/tiered-solution-servers.png delete mode 100644 docs/pt-BR/images/volodocs-iis-add-website.png delete mode 100644 docs/pt-BR/images/volodocs-iis-application-pool.png delete mode 100644 docs/pt-BR/images/widget-basic-files.png delete mode 100644 docs/zh-Hans/API/API-Versioning.md delete mode 100644 docs/zh-Hans/API/Application-Configuration.md delete mode 100644 docs/zh-Hans/API/Auto-API-Controllers.md delete mode 100644 docs/zh-Hans/API/Dynamic-CSharp-API-Clients.md delete mode 100644 docs/zh-Hans/API/JavaScript-API/Auth.md delete mode 100644 docs/zh-Hans/API/JavaScript-API/Index.md delete mode 100644 docs/zh-Hans/Ambient-Context-Pattern.md delete mode 100644 docs/zh-Hans/Application-Services.md delete mode 100644 docs/zh-Hans/Apps/VoloDocs.md delete mode 100644 docs/zh-Hans/AspNet-Boilerplate-Migration-Guide.md delete mode 100644 docs/zh-Hans/AspNetCore/Auto-API-Controllers.md delete mode 100644 docs/zh-Hans/AspNetCore/Bundling-Minification.md delete mode 100644 docs/zh-Hans/AspNetCore/Client-Side-Package-Management.md delete mode 100644 docs/zh-Hans/AspNetCore/Dynamic-CSharp-API-Clients.md delete mode 100644 docs/zh-Hans/AspNetCore/JavaScript-API/Auth.md delete mode 100644 docs/zh-Hans/AspNetCore/JavaScript-API/Index.md delete mode 100644 docs/zh-Hans/AspNetCore/Tag-Helpers/Buttons.md delete mode 100644 docs/zh-Hans/AspNetCore/Tag-Helpers/Dynamic-Forms.md delete mode 100644 docs/zh-Hans/AspNetCore/Tag-Helpers/Index.md delete mode 100644 docs/zh-Hans/AspNetCore/Tag-Helpers/fa-address-card.png delete mode 100644 docs/zh-Hans/AspNetCore/Theming.md delete mode 100644 docs/zh-Hans/AspNetCore/Widgets.md delete mode 100644 docs/zh-Hans/Audit-Logging.md delete mode 100644 docs/zh-Hans/Authentication/Social-External-Logins.md delete mode 100644 docs/zh-Hans/Authorization.md delete mode 100644 docs/zh-Hans/Autofac-Integration.md delete mode 100644 docs/zh-Hans/Background-Jobs-Hangfire.md delete mode 100644 docs/zh-Hans/Background-Jobs-Quartz.md delete mode 100644 docs/zh-Hans/Background-Jobs-RabbitMq.md delete mode 100644 docs/zh-Hans/Background-Jobs.md delete mode 100644 docs/zh-Hans/Background-Workers-Hangfire.md delete mode 100644 docs/zh-Hans/Background-Workers-Quartz.md delete mode 100644 docs/zh-Hans/Background-Workers.md delete mode 100644 docs/zh-Hans/Best-Practices/Application-Services.md delete mode 100644 docs/zh-Hans/Best-Practices/Data-Transfer-Objects.md delete mode 100644 docs/zh-Hans/Best-Practices/Domain-Services.md delete mode 100644 docs/zh-Hans/Best-Practices/Entities.md delete mode 100644 docs/zh-Hans/Best-Practices/Entity-Framework-Core-Integration.md delete mode 100644 docs/zh-Hans/Best-Practices/Index.md delete mode 100644 docs/zh-Hans/Best-Practices/Module-Architecture.md delete mode 100644 docs/zh-Hans/Best-Practices/MongoDB-Integration.md delete mode 100644 docs/zh-Hans/Best-Practices/Repositories.md delete mode 100644 docs/zh-Hans/Best-Practices/images/postgresql-delete-initial-migrations.png delete mode 100644 docs/zh-Hans/Best-Practices/images/postgresql-update-database.png delete mode 100644 docs/zh-Hans/Blob-Storing-Aliyun.md delete mode 100644 docs/zh-Hans/Blob-Storing-Aws.md delete mode 100644 docs/zh-Hans/Blob-Storing-Azure.md delete mode 100644 docs/zh-Hans/Blob-Storing-Custom-Provider.md delete mode 100644 docs/zh-Hans/Blob-Storing-Database.md delete mode 100644 docs/zh-Hans/Blob-Storing-File-System.md delete mode 100644 docs/zh-Hans/Blob-Storing-Minio.md delete mode 100644 docs/zh-Hans/Blob-Storing.md delete mode 100644 docs/zh-Hans/Blog-Posts/2018-09-24-Announcement/Post.md delete mode 100644 docs/zh-Hans/Blog-Posts/2018-09-24-Announcement/dynamic-forms.png delete mode 100644 docs/zh-Hans/Blog-Posts/2019-02-22/Post.md delete mode 100644 docs/zh-Hans/Blog-Posts/2019-02-22/scott-and-jon.png delete mode 100644 docs/zh-Hans/Blog-Posts/2019-06-19 v0_18_Release/Post.md delete mode 100644 docs/zh-Hans/Blog-Posts/2019-06-19 v0_18_Release/mvc-template-solution.png delete mode 100644 docs/zh-Hans/Blog-Posts/2019-08-16 v0_19_Release/Post.md delete mode 100644 docs/zh-Hans/Blog-Posts/2019-09-25 v0_21_Release/Post.md delete mode 100644 docs/zh-Hans/Blog-Posts/2019-09-25 v0_21_Release/volosoft-booth.png delete mode 100644 docs/zh-Hans/Blog-Posts/2019-10-22 v1_0_Release/Post.md delete mode 100644 docs/zh-Hans/Blog-Posts/2019-10-22 v1_0_Release/contribution-graph.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-01-15 v2_0_Release/Post.md delete mode 100644 docs/zh-Hans/Blog-Posts/2020-01-15 v2_0_Release/abp-commercial-demo.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-01-15 v2_0_Release/lepton-theme-material.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-01-15 v2_0_Release/ndc-2020-volosoft-booth-wall.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-01-15 v2_0_Release/ndc-london-volosoft.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-03-19 v2_3_Release/Post.md delete mode 100644 docs/zh-Hans/Blog-Posts/2020-03-19 v2_3_Release/abp-io-release-2-3-0-blog.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-03-19 v2_3_Release/react-native-ui.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/Post.md delete mode 100644 docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/abp-commercial-ui-extensions.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/audit-log-entity-changes.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/easy-crm.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/github-contribution-graph.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/module-entity-extended-ui.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/tenant-entity-changes.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/text-template-content-ui.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/Post.md delete mode 100644 docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/abp-chat-module.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/lepton-abp-default-theme.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/lepton-abp-material-theme.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/lepton-themes.gif delete mode 100644 docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/rtl-ui.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/signalr-chat-demo.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/Post.md delete mode 100644 docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/abp-chat-module.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/easy-crm.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/lepton-theme.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/organization-units.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/signalr-tiered-demo.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/suite.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/virtual-file-explorer-1.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/virtual-file-explorer-2.png delete mode 100644 docs/zh-Hans/Blog-Posts/2020-07-01 v3_0_Release/Post.md delete mode 100644 docs/zh-Hans/Blog-Posts/2020-07-01 v3_0_Release/file-management-ui.png delete mode 100644 docs/zh-Hans/CLI-New-Command-Samples.md delete mode 100644 docs/zh-Hans/CLI.md delete mode 100644 docs/zh-Hans/Caching.md delete mode 100644 docs/zh-Hans/Configuration.md delete mode 100644 docs/zh-Hans/Connection-Strings.md delete mode 100644 docs/zh-Hans/Contribution/Index.md delete mode 100644 docs/zh-Hans/CurrentUser.md delete mode 100644 docs/zh-Hans/Customizing-Application-Modules-Extending-Entities.md delete mode 100644 docs/zh-Hans/Customizing-Application-Modules-Guide.md delete mode 100644 docs/zh-Hans/Customizing-Application-Modules-Overriding-Services.md delete mode 100644 docs/zh-Hans/Customizing-Application-Modules-Overriding-User-Interface.md delete mode 100644 docs/zh-Hans/Dapper.md delete mode 100644 docs/zh-Hans/Dapr/Index.md delete mode 100644 docs/zh-Hans/Data-Access.md delete mode 100644 docs/zh-Hans/Data-Filtering.md delete mode 100644 docs/zh-Hans/Data-Seeding.md delete mode 100644 docs/zh-Hans/Data-Transfer-Objects.md delete mode 100644 docs/zh-Hans/Dependency-Injection.md delete mode 100644 docs/zh-Hans/Deployment/Clustered-Environment.md delete mode 100644 docs/zh-Hans/Deployment/Index.md delete mode 100644 docs/zh-Hans/Distributed-Event-Bus-Kafka-Integration.md delete mode 100644 docs/zh-Hans/Distributed-Event-Bus-RabbitMQ-Integration.md delete mode 100644 docs/zh-Hans/Distributed-Event-Bus-Rebus-Integration.md delete mode 100644 docs/zh-Hans/Distributed-Event-Bus.md delete mode 100644 docs/zh-Hans/Distributed-Locking.md delete mode 100644 docs/zh-Hans/Domain-Driven-Design-Implementation-Guide.md delete mode 100644 docs/zh-Hans/Domain-Driven-Design.md delete mode 100644 docs/zh-Hans/Domain-Services.md delete mode 100644 docs/zh-Hans/Dynamic-Proxying-Interceptors.md delete mode 100644 docs/zh-Hans/Emailing.md delete mode 100644 docs/zh-Hans/Entities.md delete mode 100644 docs/zh-Hans/Entity-Framework-Core-Migrations.md delete mode 100644 docs/zh-Hans/Entity-Framework-Core-MySQL.md delete mode 100644 docs/zh-Hans/Entity-Framework-Core-Oracle-Devart.md delete mode 100644 docs/zh-Hans/Entity-Framework-Core-Oracle-Official.md delete mode 100644 docs/zh-Hans/Entity-Framework-Core-Oracle.md delete mode 100644 docs/zh-Hans/Entity-Framework-Core-Other-DBMS.md delete mode 100644 docs/zh-Hans/Entity-Framework-Core-PostgreSQL.md delete mode 100644 docs/zh-Hans/Entity-Framework-Core-SQLite.md delete mode 100644 docs/zh-Hans/Entity-Framework-Core.md delete mode 100644 docs/zh-Hans/Event-Bus.md delete mode 100644 docs/zh-Hans/Exception-Handling.md delete mode 100644 docs/zh-Hans/FluentValidation.md delete mode 100644 docs/zh-Hans/Getting-Started-Angular-Template.md delete mode 100644 docs/zh-Hans/Getting-Started-AspNetCore-Application.md delete mode 100644 docs/zh-Hans/Getting-Started-AspNetCore-MVC-Template.md delete mode 100644 docs/zh-Hans/Getting-Started-Create-Solution.md delete mode 100644 docs/zh-Hans/Getting-Started-React-Native.md delete mode 100644 docs/zh-Hans/Getting-Started-Running-Solution.md delete mode 100644 docs/zh-Hans/Getting-Started-Setup-Environment.md delete mode 100644 docs/zh-Hans/Getting-Started-With-Startup-Templates.md delete mode 100644 docs/zh-Hans/Getting-Started.md delete mode 100644 docs/zh-Hans/Global-Features.md delete mode 100644 docs/zh-Hans/Guid-Generation.md delete mode 100644 docs/zh-Hans/How-To/Azure-Active-Directory-Authentication-MVC.md delete mode 100644 docs/zh-Hans/How-To/Customize-Login-Page-MVC.md delete mode 100644 docs/zh-Hans/How-To/Customize-SignIn-Manager.md delete mode 100644 docs/zh-Hans/Index.md delete mode 100644 docs/zh-Hans/JavaScript/Dynamic-JavaScript-API-Clients.md delete mode 100644 docs/zh-Hans/Local-Event-Bus.md delete mode 100644 docs/zh-Hans/Localization.md delete mode 100644 docs/zh-Hans/Logging.md delete mode 100644 docs/zh-Hans/MailKit.md delete mode 100644 docs/zh-Hans/Microservice-Architecture.md delete mode 100644 docs/zh-Hans/Module-Development-Basics.md delete mode 100644 docs/zh-Hans/Modules/Account.md delete mode 100644 docs/zh-Hans/Modules/Audit-Logging.md delete mode 100644 docs/zh-Hans/Modules/Background-Jobs.md delete mode 100644 docs/zh-Hans/Modules/Cms-Kit/Blogging.md delete mode 100644 docs/zh-Hans/Modules/Cms-Kit/Comments.md delete mode 100644 docs/zh-Hans/Modules/Cms-Kit/Dynamic-Widget.md delete mode 100644 docs/zh-Hans/Modules/Cms-Kit/Index.md delete mode 100644 docs/zh-Hans/Modules/Cms-Kit/Menus.md delete mode 100644 docs/zh-Hans/Modules/Cms-Kit/Pages.md delete mode 100644 docs/zh-Hans/Modules/Cms-Kit/Ratings.md delete mode 100644 docs/zh-Hans/Modules/Cms-Kit/Reactions.md delete mode 100644 docs/zh-Hans/Modules/Cms-Kit/Tags.md delete mode 100644 docs/zh-Hans/Modules/Docs.md delete mode 100644 docs/zh-Hans/Modules/Feature-Management.md delete mode 100644 docs/zh-Hans/Modules/Identity.md delete mode 100644 docs/zh-Hans/Modules/IdentityServer.md delete mode 100644 docs/zh-Hans/Modules/Index.md delete mode 100644 docs/zh-Hans/Modules/Organization-Units.md delete mode 100644 docs/zh-Hans/Modules/Permission-Management.md delete mode 100644 docs/zh-Hans/Modules/Setting-Management.md delete mode 100644 docs/zh-Hans/Modules/Tenant-Management.md delete mode 100644 docs/zh-Hans/Modules/Virtual-File-Explorer.md delete mode 100644 docs/zh-Hans/MongoDB.md delete mode 100644 docs/zh-Hans/Moodule-Entity-Extensions.md delete mode 100644 docs/zh-Hans/Multi-Tenancy.md delete mode 100644 docs/zh-Hans/Nightly-Builds.md delete mode 100644 docs/zh-Hans/Object-Extensions.md delete mode 100644 docs/zh-Hans/Object-To-Object-Mapping.md delete mode 100644 docs/zh-Hans/Options.md delete mode 100644 docs/zh-Hans/PlugIn-Modules.md delete mode 100644 docs/zh-Hans/Previews.md delete mode 100644 docs/zh-Hans/Redis-Cache.md delete mode 100644 docs/zh-Hans/Repositories.md delete mode 100644 docs/zh-Hans/Road-Map.md delete mode 100644 docs/zh-Hans/SMS-Sending.md delete mode 100644 docs/zh-Hans/Samples/Index.md delete mode 100644 docs/zh-Hans/Samples/Microservice-Demo.md delete mode 100644 docs/zh-Hans/Settings.md delete mode 100644 docs/zh-Hans/SignalR-Integration.md delete mode 100644 docs/zh-Hans/Specifications.md delete mode 100644 docs/zh-Hans/Startup-Templates/Application.md delete mode 100644 docs/zh-Hans/Startup-Templates/Console.md delete mode 100644 docs/zh-Hans/Startup-Templates/Index.md delete mode 100644 docs/zh-Hans/Startup-Templates/MAUI.md delete mode 100644 docs/zh-Hans/Startup-Templates/Module.md delete mode 100644 docs/zh-Hans/Startup-Templates/WPF.md delete mode 100644 docs/zh-Hans/Testing.md delete mode 100644 docs/zh-Hans/Text-Templating-Razor.md delete mode 100644 docs/zh-Hans/Text-Templating-Scriban.md delete mode 100644 docs/zh-Hans/Text-Templating.md delete mode 100644 docs/zh-Hans/Timing.md delete mode 100644 docs/zh-Hans/Tutorials/Angular/Part-I.md delete mode 100644 docs/zh-Hans/Tutorials/AspNetCore-Mvc/Part-I.md delete mode 100644 docs/zh-Hans/Tutorials/AspNetCore-Mvc/Part-II.md delete mode 100644 docs/zh-Hans/Tutorials/AspNetCore-Mvc/Part-III.md delete mode 100644 docs/zh-Hans/Tutorials/Index.md delete mode 100644 docs/zh-Hans/Tutorials/Part-1.md delete mode 100644 docs/zh-Hans/Tutorials/Part-10.md delete mode 100644 docs/zh-Hans/Tutorials/Part-2.md delete mode 100644 docs/zh-Hans/Tutorials/Part-3.md delete mode 100644 docs/zh-Hans/Tutorials/Part-4.md delete mode 100644 docs/zh-Hans/Tutorials/Part-5.md delete mode 100644 docs/zh-Hans/Tutorials/Part-6.md delete mode 100644 docs/zh-Hans/Tutorials/Part-7.md delete mode 100644 docs/zh-Hans/Tutorials/Part-8.md delete mode 100644 docs/zh-Hans/Tutorials/Part-9.md delete mode 100644 docs/zh-Hans/Tutorials/Todo/Index.md delete mode 100644 docs/zh-Hans/Tutorials/Todo/run-without-iisexpress.png delete mode 100644 docs/zh-Hans/Tutorials/Todo/todo-api.png delete mode 100644 docs/zh-Hans/Tutorials/Todo/todo-efcore-migration.png delete mode 100644 docs/zh-Hans/Tutorials/Todo/todo-list.png delete mode 100644 docs/zh-Hans/Tutorials/Todo/todo-swagger-ui-initial.png delete mode 100644 docs/zh-Hans/Tutorials/Todo/todo-ui-initial.png delete mode 100644 docs/zh-Hans/Tutorials/images/blazor-add-book-button.png delete mode 100644 docs/zh-Hans/Tutorials/images/blazor-add-books-component.png delete mode 100644 docs/zh-Hans/Tutorials/images/blazor-bookstore-book-list-with-authors.png delete mode 100644 docs/zh-Hans/Tutorials/images/blazor-bookstore-book-list.png delete mode 100644 docs/zh-Hans/Tutorials/images/blazor-delete-book-action.png delete mode 100644 docs/zh-Hans/Tutorials/images/blazor-edit-book-action-2.png delete mode 100644 docs/zh-Hans/Tutorials/images/blazor-edit-book-modal.png delete mode 100644 docs/zh-Hans/Tutorials/images/blazor-menu-bookstore.png delete mode 100644 docs/zh-Hans/Tutorials/images/blazor-new-book-modal.png delete mode 100644 docs/zh-Hans/Tutorials/images/book-create-modal-with-author.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-actions-buttons.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-add-create-dialog-v2.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-add-edit-dialog.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-add-index-page-v2.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-add-migration-authors.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-added-author-to-book-list-angular.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-added-author-to-book-list.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-added-authors-to-modals.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-angular-author-selection.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-angular-authors-page.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-angular-file-tree.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-angular-service-proxy-author.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-appservice-tests.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-author-domain-layer.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-author-permissions.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-authors-page.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-book-and-booktype.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-book-list-2.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-book-list-3.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-book-list.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-books-table-actions.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-books-table.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-books-with-authorname-angular.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-confirmation-popup.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-create-dialog-2.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-create-dialog.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-create-project-angular.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-create-project-mvc.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-creating-book-list-terminal.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-creating-book-module-terminal.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-creating-books-module-terminal.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-database-tables-ef.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-database-tables-mongodb.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-dbmigrator-on-solution.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-edit-button-2.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-edit-button.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-edit-delete-actions.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-efcore-migration-authors.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-efcore-migration.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-empty-new-book-modal.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-final-actions-dropdown.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-generate-state-books.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-getlist-result-network.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-homepage.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-index-js-file-v2.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-index-js-file-v3.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-initial-book-list-page.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-initial-books-page-with-layout.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-javascript-proxy-console.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-localization-files-v2.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-menu-items.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-migrations-applied-angular.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-migrations-applied-mvc.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-new-author-modal.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-new-book-button-2.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-new-book-button-small.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-new-book-button.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-new-book-form-v2.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-new-book-form.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-new-menu-item.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-open-package-manager-console.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-permissions-ui.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-pmc-add-book-migration-v2.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-pmc-add-book-migration.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-service-terminal-output.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-solution-structure-angular.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-solution-structure-mvc.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-start-project-angular.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-start-project-mvc.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-swagger-book-dto-properties.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-swagger.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-test-js-proxy-getlist-network.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-test-js-proxy-getlist.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-test-projects-angular.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-test-projects-mvc.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-test-projects-v2.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-update-database-after-book-entity.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-user-management.png delete mode 100644 docs/zh-Hans/Tutorials/images/bookstore-visual-studio-solution-v3.png delete mode 100644 docs/zh-Hans/Tutorials/images/generate-proxy-command.png delete mode 100644 docs/zh-Hans/Tutorials/images/generated-proxies-2.png delete mode 100644 docs/zh-Hans/Tutorials/images/generated-proxies-3.png delete mode 100644 docs/zh-Hans/Tutorials/images/generated-proxies.png delete mode 100644 docs/zh-Hans/Tutorials/images/mozilla-self-signed-cert-error.png delete mode 100644 docs/zh-Hans/Tutorials/images/vs-run-without-iisexpress.png delete mode 100644 docs/zh-Hans/UI/Angular/Component-Replacement.md delete mode 100644 docs/zh-Hans/UI/Angular/Config-State.md delete mode 100644 docs/zh-Hans/UI/Angular/Confirmation-Service.md delete mode 100644 docs/zh-Hans/UI/Angular/Container-Strategy.md delete mode 100644 docs/zh-Hans/UI/Angular/Content-Projection-Service.md delete mode 100644 docs/zh-Hans/UI/Angular/Content-Security-Strategy.md delete mode 100644 docs/zh-Hans/UI/Angular/Content-Strategy.md delete mode 100644 docs/zh-Hans/UI/Angular/Context-Strategy.md delete mode 100644 docs/zh-Hans/UI/Angular/Customization-User-Interface.md delete mode 100644 docs/zh-Hans/UI/Angular/Dom-Insertion-Service.md delete mode 100644 docs/zh-Hans/UI/Angular/Dom-Strategy.md delete mode 100644 docs/zh-Hans/UI/Angular/Environment.md delete mode 100644 docs/zh-Hans/UI/Angular/HTTP-Requests.md delete mode 100644 docs/zh-Hans/UI/Angular/Lazy-Load-Service.md delete mode 100644 docs/zh-Hans/UI/Angular/List-Service.md delete mode 100644 docs/zh-Hans/UI/Angular/Loading-Strategy.md delete mode 100644 docs/zh-Hans/UI/Angular/Localization.md delete mode 100644 docs/zh-Hans/UI/Angular/Migration-Guide-v3.md delete mode 100644 docs/zh-Hans/UI/Angular/Modifying-the-Menu.md delete mode 100644 docs/zh-Hans/UI/Angular/Multi-Tenancy.md delete mode 100644 docs/zh-Hans/UI/Angular/Permission-Management-Component-Replacement.md delete mode 100644 docs/zh-Hans/UI/Angular/Permission-Management.md delete mode 100644 docs/zh-Hans/UI/Angular/Projection-Strategy.md delete mode 100644 docs/zh-Hans/UI/Angular/Service-Proxies.md delete mode 100644 docs/zh-Hans/UI/Angular/Subscription-Service.md delete mode 100644 docs/zh-Hans/UI/Angular/Testing.md delete mode 100644 docs/zh-Hans/UI/Angular/Toaster-Service.md delete mode 100644 docs/zh-Hans/UI/Angular/Track-By-Service.md delete mode 100644 docs/zh-Hans/UI/Angular/images/component-replacement.gif delete mode 100644 docs/zh-Hans/UI/Angular/images/confirmation.png delete mode 100644 docs/zh-Hans/UI/Angular/images/generated-files-via-generate-proxy.png delete mode 100644 docs/zh-Hans/UI/Angular/images/layout-components.png delete mode 100644 docs/zh-Hans/UI/Angular/images/locale-error.png delete mode 100644 docs/zh-Hans/UI/Angular/images/logo-component.png delete mode 100644 docs/zh-Hans/UI/Angular/images/nav-items-component.png delete mode 100644 docs/zh-Hans/UI/Angular/images/navigation-menu-after-patching.png delete mode 100644 docs/zh-Hans/UI/Angular/images/navigation-menu-search-input.png delete mode 100644 docs/zh-Hans/UI/Angular/images/navigation-menu-via-app-routing.png delete mode 100644 docs/zh-Hans/UI/Angular/images/navigation-menu-via-config-state.png delete mode 100644 docs/zh-Hans/UI/Angular/images/permission-management-modal.png delete mode 100644 docs/zh-Hans/UI/Angular/images/replaced-logo-component.png delete mode 100644 docs/zh-Hans/UI/Angular/images/replaced-nav-items-component.png delete mode 100644 docs/zh-Hans/UI/Angular/images/replaced-routes-component.png delete mode 100644 docs/zh-Hans/UI/Angular/images/routes-component.png delete mode 100644 docs/zh-Hans/UI/Angular/images/table-of-packages-to-update.png delete mode 100644 docs/zh-Hans/UI/Angular/images/toast.png delete mode 100644 docs/zh-Hans/UI/AspNetCore/Bundling-Minification.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Client-Side-Package-Management.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Customization-User-Interface.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Dynamic-JavaScript-Proxies.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/JavaScript-API/Index.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Layout-Hooks.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Libraries/DatatablesNet.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Navigation-Menu.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Tag-Helpers/Alerts.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Tag-Helpers/Badges.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Tag-Helpers/Borders.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Tag-Helpers/Breadcrumbs.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Tag-Helpers/Button-groups.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Tag-Helpers/Buttons.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Tag-Helpers/Cards.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Tag-Helpers/Carousel.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Tag-Helpers/Collapse.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Tag-Helpers/Dropdowns.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Tag-Helpers/Dynamic-Forms.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Tag-Helpers/Form-elements.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Tag-Helpers/Grids.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Tag-Helpers/Index.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Tag-Helpers/List-Groups.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Tag-Helpers/Modals.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Tag-Helpers/Navs.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Tag-Helpers/Paginator.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Tag-Helpers/Progress-Bars.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Tag-Helpers/Tables.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Tag-Helpers/Tabs.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Tag-Helpers/Tooltips.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Testing.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Theming.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Toolbars.md delete mode 100644 docs/zh-Hans/UI/AspNetCore/Widgets.md delete mode 100644 docs/zh-Hans/UI/Common/Utils/Linked-List.md delete mode 100644 docs/zh-Hans/Unit-Of-Work.md delete mode 100644 docs/zh-Hans/Upgrading.md delete mode 100644 docs/zh-Hans/Validation.md delete mode 100644 docs/zh-Hans/Value-Objects.md delete mode 100644 docs/zh-Hans/Virtual-File-System.md delete mode 100644 docs/zh-Hans/_resources/Diagrams.docx delete mode 100644 docs/zh-Hans/docs-nav.json delete mode 100644 docs/zh-Hans/docs-params.json delete mode 100644 docs/zh-Hans/images/MonthlyProfitWidgetFiles.png delete mode 100644 docs/zh-Hans/images/abp-book.png delete mode 100644 docs/zh-Hans/images/abp-dynamic-form-result.png delete mode 100644 docs/zh-Hans/images/abp-form-input-validation-error-french-name.png delete mode 100644 docs/zh-Hans/images/abp-form-input-validation-error-french.png delete mode 100644 docs/zh-Hans/images/abp-form-input-validation-error.png delete mode 100644 docs/zh-Hans/images/abp-select2-multiple.png delete mode 100644 docs/zh-Hans/images/abp-select2-single.png delete mode 100644 docs/zh-Hans/images/account-module-forgot-password.png delete mode 100644 docs/zh-Hans/images/account-module-login.png delete mode 100644 docs/zh-Hans/images/account-module-manage-account.png delete mode 100644 docs/zh-Hans/images/account-module-register.png delete mode 100644 docs/zh-Hans/images/add-new-propert-to-user-database-extra-properties.png delete mode 100644 docs/zh-Hans/images/add-new-propert-to-user-database-field.png delete mode 100644 docs/zh-Hans/images/add-new-property-enum.png delete mode 100644 docs/zh-Hans/images/add-new-property-to-user-form-validation-error-custom.png delete mode 100644 docs/zh-Hans/images/add-new-property-to-user-form-validation-error.png delete mode 100644 docs/zh-Hans/images/add-new-property-to-user-form.png delete mode 100644 docs/zh-Hans/images/add-new-property-to-user-table.png delete mode 100644 docs/zh-Hans/images/ajax-error.png delete mode 100644 docs/zh-Hans/images/angular-folder-structure.png delete mode 100644 docs/zh-Hans/images/angular-module-dev-app-project.png delete mode 100644 docs/zh-Hans/images/angular-module-folder-structure.png delete mode 100644 docs/zh-Hans/images/angular-template-structure-diagram.png delete mode 100644 docs/zh-Hans/images/aspnetcore-web-tests-in-solution.png delete mode 100644 docs/zh-Hans/images/auditlog-object-diagram.png delete mode 100644 docs/zh-Hans/images/authorization-new-permission-ui-hierarcy.png delete mode 100644 docs/zh-Hans/images/authorization-new-permission-ui-localized.png delete mode 100644 docs/zh-Hans/images/authorization-new-permission-ui.png delete mode 100644 docs/zh-Hans/images/basic-console-application-solution.png delete mode 100644 docs/zh-Hans/images/basic-maui-application-solution.png delete mode 100644 docs/zh-Hans/images/basic-theme-account-layout.png delete mode 100644 docs/zh-Hans/images/basic-theme-application-layout-blazor.png delete mode 100644 docs/zh-Hans/images/basic-theme-application-layout-parts.png delete mode 100644 docs/zh-Hans/images/basic-theme-application-layout.png delete mode 100644 docs/zh-Hans/images/basic-wpf-application-solution.png delete mode 100644 docs/zh-Hans/images/blazor-generic-exception-message.png delete mode 100644 docs/zh-Hans/images/blazor-message-confirm.png delete mode 100644 docs/zh-Hans/images/blazor-message-error.png delete mode 100644 docs/zh-Hans/images/blazor-message-success.png delete mode 100644 docs/zh-Hans/images/blazor-notification-bell-component.png delete mode 100644 docs/zh-Hans/images/blazor-notification-success.png delete mode 100644 docs/zh-Hans/images/blazor-page-alert-example.png delete mode 100644 docs/zh-Hans/images/blazor-user-friendly-exception.png delete mode 100644 docs/zh-Hans/images/bookstore-added-brand-files.png delete mode 100644 docs/zh-Hans/images/bookstore-added-logo.png delete mode 100644 docs/zh-Hans/images/bookstore-added-role-js-file.png delete mode 100644 docs/zh-Hans/images/bookstore-apis.png delete mode 100644 docs/zh-Hans/images/bookstore-brand-area-highlighted.png delete mode 100644 docs/zh-Hans/images/bookstore-branding-blazor.png delete mode 100644 docs/zh-Hans/images/bookstore-create-template.png delete mode 100644 docs/zh-Hans/images/bookstore-efcore-dependencies.png delete mode 100644 docs/zh-Hans/images/bookstore-global-css-file.png delete mode 100644 docs/zh-Hans/images/bookstore-google-analytics-view-component.png delete mode 100644 docs/zh-Hans/images/bookstore-home.png delete mode 100644 docs/zh-Hans/images/bookstore-homepage.png delete mode 100644 docs/zh-Hans/images/bookstore-login.png delete mode 100644 docs/zh-Hans/images/bookstore-logo-blazor.png delete mode 100644 docs/zh-Hans/images/bookstore-menus-highlighted.png delete mode 100644 docs/zh-Hans/images/bookstore-notification-icon-on-toolbar.png delete mode 100644 docs/zh-Hans/images/bookstore-notification-view-component.png delete mode 100644 docs/zh-Hans/images/bookstore-second-database.png delete mode 100644 docs/zh-Hans/images/bookstore-swagger-ui-host.png delete mode 100644 docs/zh-Hans/images/bookstore-toolbar-highlighted.png delete mode 100644 docs/zh-Hans/images/bookstore-user-management-v2.png delete mode 100644 docs/zh-Hans/images/bookstore-visual-studio-solution-for-spa.png delete mode 100644 docs/zh-Hans/images/bookstore-visual-studio-solution-tiered.png delete mode 100644 docs/zh-Hans/images/bookstore-visual-studio-solution-v3.png delete mode 100644 docs/zh-Hans/images/branding-appname.png delete mode 100644 docs/zh-Hans/images/branding-nobrand.png delete mode 100644 docs/zh-Hans/images/breadcrumbs-example.png delete mode 100644 docs/zh-Hans/images/build-action-embedded-resource-sample.png delete mode 100644 docs/zh-Hans/images/cmskit-add-widget-on-page.png delete mode 100644 docs/zh-Hans/images/cmskit-example-output-on-page.png delete mode 100644 docs/zh-Hans/images/cmskit-module-blog-post-edit.png delete mode 100644 docs/zh-Hans/images/cmskit-module-blog-posts-page.png delete mode 100644 docs/zh-Hans/images/cmskit-module-blogs-edit.png delete mode 100644 docs/zh-Hans/images/cmskit-module-blogs-feature-action.png delete mode 100644 docs/zh-Hans/images/cmskit-module-blogs-page.png delete mode 100644 docs/zh-Hans/images/cmskit-module-comment-page.png delete mode 100644 docs/zh-Hans/images/cmskit-module-comments-detail.png delete mode 100644 docs/zh-Hans/images/cmskit-module-features-dialog-2.png delete mode 100644 docs/zh-Hans/images/cmskit-module-features-dialog.png delete mode 100644 docs/zh-Hans/images/cmskit-module-features-scroll-index.png delete mode 100644 docs/zh-Hans/images/cmskit-module-global-resources-page.png delete mode 100644 docs/zh-Hans/images/cmskit-module-menus-page.png delete mode 100644 docs/zh-Hans/images/cmskit-module-menus-public.png delete mode 100644 docs/zh-Hans/images/cmskit-module-pages-edit.png delete mode 100644 docs/zh-Hans/images/cmskit-module-pages-page.png delete mode 100644 docs/zh-Hans/images/cmskit-module-ratings.png delete mode 100644 docs/zh-Hans/images/cmskit-module-reactions.png delete mode 100644 docs/zh-Hans/images/cmskit-module-tag-edit.png delete mode 100644 docs/zh-Hans/images/cmskit-module-tags-page.png delete mode 100644 docs/zh-Hans/images/create-aspnet-core-application.png delete mode 100644 docs/zh-Hans/images/create-new-aspnet-core-application-v2.png delete mode 100644 docs/zh-Hans/images/create-new-aspnet-core-application.png delete mode 100644 docs/zh-Hans/images/create-new-net-core-console-application.png delete mode 100644 docs/zh-Hans/images/custom-settings.png delete mode 100644 docs/zh-Hans/images/dashboard1.png delete mode 100644 docs/zh-Hans/images/data-table-colum-extension-blazor-component-render-solution.png delete mode 100644 docs/zh-Hans/images/data-table-colum-extension-blazor-component-render.png delete mode 100644 docs/zh-Hans/images/datatables-custom-render-date.png delete mode 100644 docs/zh-Hans/images/datatables-default-render-date.png delete mode 100644 docs/zh-Hans/images/datatables-example.png delete mode 100644 docs/zh-Hans/images/datatables-row-actions-confirmation.png delete mode 100644 docs/zh-Hans/images/datatables-row-actions-icon.png delete mode 100644 docs/zh-Hans/images/datatables-row-actions.png delete mode 100644 docs/zh-Hans/images/db-migrator-app.png delete mode 100644 docs/zh-Hans/images/db-migrator-output.png delete mode 100644 docs/zh-Hans/images/db-options.png delete mode 100644 docs/zh-Hans/images/ddd-microservice-simple.png delete mode 100644 docs/zh-Hans/images/deployment-clustered.png delete mode 100644 docs/zh-Hans/images/deployment-single-instance.png delete mode 100644 docs/zh-Hans/images/docs-create-project-v4.4.0.png delete mode 100644 docs/zh-Hans/images/docs-create-project.jpg delete mode 100644 docs/zh-Hans/images/docs-module_download-new-abp-project.png delete mode 100644 docs/zh-Hans/images/docs-module_download-sample-navigation-menu.png delete mode 100644 docs/zh-Hans/images/docs-module_solution-explorer.png delete mode 100644 docs/zh-Hans/images/docs-section-ui.png delete mode 100644 docs/zh-Hans/images/domain-driven-design-aggregate-keep-small.png delete mode 100644 docs/zh-Hans/images/domain-driven-design-clean-architecture.png delete mode 100644 docs/zh-Hans/images/domain-driven-design-domain-vs-application-logic.png delete mode 100644 docs/zh-Hans/images/domain-driven-design-entity-primary-keys.png delete mode 100644 docs/zh-Hans/images/domain-driven-design-example-domain-schema.png delete mode 100644 docs/zh-Hans/images/domain-driven-design-issue-aggregate-diagram.png delete mode 100644 docs/zh-Hans/images/domain-driven-design-layers.png delete mode 100644 docs/zh-Hans/images/domain-driven-design-multiple-applications.png delete mode 100644 docs/zh-Hans/images/domain-driven-design-project-relations.png delete mode 100644 docs/zh-Hans/images/domain-driven-design-reference-by-id-sample.png delete mode 100644 docs/zh-Hans/images/domain-driven-design-vs-solution.png delete mode 100644 docs/zh-Hans/images/domain-driven-design-web-request-flow.png delete mode 100644 docs/zh-Hans/images/email-settings.png delete mode 100644 docs/zh-Hans/images/example-global-styles.png delete mode 100644 docs/zh-Hans/images/extension-navigation-property-form.png delete mode 100644 docs/zh-Hans/images/extension-navigation-property-table.png delete mode 100644 docs/zh-Hans/images/features-action.png delete mode 100644 docs/zh-Hans/images/features-modal.png delete mode 100644 docs/zh-Hans/images/features-module-opening.png delete mode 100644 docs/zh-Hans/images/generated-static-client-proxies.png delete mode 100644 docs/zh-Hans/images/github-access-token-private-repo.jpg delete mode 100644 docs/zh-Hans/images/github-access-token-public-repo.jpg delete mode 100644 docs/zh-Hans/images/github-myusername.jpg delete mode 100644 docs/zh-Hans/images/hello-template-razor.png delete mode 100644 docs/zh-Hans/images/hello-template.png delete mode 100644 docs/zh-Hans/images/identity-module-menu.png delete mode 100644 docs/zh-Hans/images/identity-module-permissions.png delete mode 100644 docs/zh-Hans/images/identity-module-roles.png delete mode 100644 docs/zh-Hans/images/identity-module-users.png delete mode 100644 docs/zh-Hans/images/implementing-domain-driven-design-book.png delete mode 100644 docs/zh-Hans/images/issue-first-test.png delete mode 100644 docs/zh-Hans/images/issue-list.png delete mode 100644 docs/zh-Hans/images/issuemanagement-module-solution.png delete mode 100644 docs/zh-Hans/images/js-message-confirm.png delete mode 100644 docs/zh-Hans/images/js-message-error.png delete mode 100644 docs/zh-Hans/images/js-message-success.png delete mode 100644 docs/zh-Hans/images/js-notify-success.png delete mode 100644 docs/zh-Hans/images/layered-project-dependencies-module.png delete mode 100644 docs/zh-Hans/images/layered-project-dependencies.png delete mode 100644 docs/zh-Hans/images/lepton-theme-account-layout.png delete mode 100644 docs/zh-Hans/images/lepton-theme-application-layout.png delete mode 100644 docs/zh-Hans/images/lepton-theme-blazor-layout.png delete mode 100644 docs/zh-Hans/images/localization-resource-json-files.png delete mode 100644 docs/zh-Hans/images/microservice-sample-authserver-home.png delete mode 100644 docs/zh-Hans/images/microservice-sample-authserver-login.png delete mode 100644 docs/zh-Hans/images/microservice-sample-backend-ui-permissions.png delete mode 100644 docs/zh-Hans/images/microservice-sample-backend-ui.png delete mode 100644 docs/zh-Hans/images/microservice-sample-blogservice-permission-in-database.png delete mode 100644 docs/zh-Hans/images/microservice-sample-diagram-2.png delete mode 100644 docs/zh-Hans/images/microservice-sample-diagram-3.png delete mode 100644 docs/zh-Hans/images/microservice-sample-diagram.png delete mode 100644 docs/zh-Hans/images/microservice-sample-kibana-1.png delete mode 100644 docs/zh-Hans/images/microservice-sample-kibana-2.png delete mode 100644 docs/zh-Hans/images/microservice-sample-product-module-in-solution.png delete mode 100644 docs/zh-Hans/images/microservice-sample-public-product-list.png delete mode 100644 docs/zh-Hans/images/microservice-sample-solution-2.png delete mode 100644 docs/zh-Hans/images/microservice-sample-solution.png delete mode 100644 docs/zh-Hans/images/microservice-sample-update-database-authserver.png delete mode 100644 docs/zh-Hans/images/microservice-sample-update-database-products.png delete mode 100644 docs/zh-Hans/images/modal-example-product-create.png delete mode 100644 docs/zh-Hans/images/modal-example-product-info.png delete mode 100644 docs/zh-Hans/images/modal-manager-cancel-warning.png delete mode 100644 docs/zh-Hans/images/modal-manager-example-modal.png delete mode 100644 docs/zh-Hans/images/modal-manager-validation.png delete mode 100644 docs/zh-Hans/images/modal-page-on-rider.png delete mode 100644 docs/zh-Hans/images/module-layers-and-packages.jpg delete mode 100644 docs/zh-Hans/images/module-tenant-management-actions.png delete mode 100644 docs/zh-Hans/images/module-tenant-management-new-tenant.png delete mode 100644 docs/zh-Hans/images/module-tenant-management-page.png delete mode 100644 docs/zh-Hans/images/multiple-database-usage.png delete mode 100644 docs/zh-Hans/images/multiple-file-template-razor.png delete mode 100644 docs/zh-Hans/images/multiple-file-template.png delete mode 100644 docs/zh-Hans/images/my-setting-group-blazor.png delete mode 100644 docs/zh-Hans/images/my-setting-group-component-contributor.png delete mode 100644 docs/zh-Hans/images/my-setting-group-component.png delete mode 100644 docs/zh-Hans/images/my-setting-group-page-contributor.png delete mode 100644 docs/zh-Hans/images/my-setting-group-ui.png delete mode 100644 docs/zh-Hans/images/my-setting-group-view-component.png delete mode 100644 docs/zh-Hans/images/nav-main-menu-administration.png delete mode 100644 docs/zh-Hans/images/nav-main-menu.png delete mode 100644 docs/zh-Hans/images/night-build-add-nuget-package.png delete mode 100644 docs/zh-Hans/images/night-build-add-nuget-source.png delete mode 100644 docs/zh-Hans/images/optimistic-concurrency.png delete mode 100644 docs/zh-Hans/images/overriding-login-cshtml.png delete mode 100644 docs/zh-Hans/images/package-manager-console-update-database.png delete mode 100644 docs/zh-Hans/images/page-alert-account-layout.png delete mode 100644 docs/zh-Hans/images/page-alert-example.png delete mode 100644 docs/zh-Hans/images/page-header-toolbar-blazor.png delete mode 100644 docs/zh-Hans/images/page-toolbar-button-blazor.png delete mode 100644 docs/zh-Hans/images/page-toolbar-button.png delete mode 100644 docs/zh-Hans/images/page-toolbar-custom-component-blazor.png delete mode 100644 docs/zh-Hans/images/page-toolbar-custom-component.png delete mode 100644 docs/zh-Hans/images/pcm-update-database-v2.png delete mode 100644 docs/zh-Hans/images/pcm-update-database.png delete mode 100644 docs/zh-Hans/images/permissions-module-dialog.png delete mode 100644 docs/zh-Hans/images/permissions-module-open-dialog.png delete mode 100644 docs/zh-Hans/images/pmc-add-migration-initial-update-database.png delete mode 100644 docs/zh-Hans/images/pmc-add-migration-role-title.png delete mode 100644 docs/zh-Hans/images/product-create-modal-page-on-rider.png delete mode 100644 docs/zh-Hans/images/react-native-folder-structure.png delete mode 100644 docs/zh-Hans/images/react-native-introduction.gif delete mode 100644 docs/zh-Hans/images/react-native-navigation-structure.png delete mode 100644 docs/zh-Hans/images/react-native-store-folder.png delete mode 100644 docs/zh-Hans/images/replace-email-layout-razor.png delete mode 100644 docs/zh-Hans/images/replace-email-layout.png delete mode 100644 docs/zh-Hans/images/rn-environment-local-ip.png delete mode 100644 docs/zh-Hans/images/rn-expo-interface.png delete mode 100644 docs/zh-Hans/images/rn-host-local-ip.png delete mode 100644 docs/zh-Hans/images/rn-login-iphone.png delete mode 100644 docs/zh-Hans/images/rn-tiered-local-ip.png delete mode 100644 docs/zh-Hans/images/select-empty-web-application-v2.png delete mode 100644 docs/zh-Hans/images/select-empty-web-application.png delete mode 100644 docs/zh-Hans/images/set-as-startup-project.png delete mode 100644 docs/zh-Hans/images/setting-management-email-ui.png delete mode 100644 docs/zh-Hans/images/signal-js-file.png delete mode 100644 docs/zh-Hans/images/signalr-demo-chat.png delete mode 100644 docs/zh-Hans/images/simple-plug-in-dll-file.png delete mode 100644 docs/zh-Hans/images/simple-plugin-library.png delete mode 100644 docs/zh-Hans/images/simple-plugin-output.png delete mode 100644 docs/zh-Hans/images/simple-razor-plug-in-dll-file.png delete mode 100644 docs/zh-Hans/images/simple-razor-plugin.png delete mode 100644 docs/zh-Hans/images/single-database-usage.png delete mode 100644 docs/zh-Hans/images/solution-files-mvc.png delete mode 100644 docs/zh-Hans/images/solution-files-non-mvc.png delete mode 100644 docs/zh-Hans/images/solution-test-projects.png delete mode 100644 docs/zh-Hans/images/static-js-proxy-example.png delete mode 100644 docs/zh-Hans/images/swagger-ui.png delete mode 100644 docs/zh-Hans/images/table-column-extension-example-blazor.png delete mode 100644 docs/zh-Hans/images/table-column-extension-example.png delete mode 100644 docs/zh-Hans/images/tiered-solution-applications.png delete mode 100644 docs/zh-Hans/images/tiered-solution-servers.png delete mode 100644 docs/zh-Hans/images/ui-busy.png delete mode 100644 docs/zh-Hans/images/ui-options.png delete mode 100644 docs/zh-Hans/images/upgrade-diff-empty-folders.png delete mode 100644 docs/zh-Hans/images/user-action-blazor-extension-click-me.png delete mode 100644 docs/zh-Hans/images/user-action-extension-click-me.png delete mode 100644 docs/zh-Hans/images/user-action-extension-on-blazor-project.png delete mode 100644 docs/zh-Hans/images/user-action-extension-on-solution.png delete mode 100644 docs/zh-Hans/images/user-menu.png delete mode 100644 docs/zh-Hans/images/virtual-file-explorer.png delete mode 100644 docs/zh-Hans/images/volodocs-iis-add-website.png delete mode 100644 docs/zh-Hans/images/volodocs-iis-application-pool.png delete mode 100644 docs/zh-Hans/images/vs-app-solution-structure-mongodb.png delete mode 100644 docs/zh-Hans/images/vs-app-solution-structure-tiered.png delete mode 100644 docs/zh-Hans/images/vs-app-solution-structure.png delete mode 100644 docs/zh-Hans/images/vs-run-tests-in-parallel.png delete mode 100644 docs/zh-Hans/images/vs-spa-app-backend-structure-mongodb.png delete mode 100644 docs/zh-Hans/images/vs-spa-app-backend-structure.png delete mode 100644 docs/zh-Hans/images/vs-startup-template-tests.png delete mode 100644 docs/zh-Hans/images/vs-test-explorer.png delete mode 100644 docs/zh-Hans/images/widget-basic-files.png delete mode 100644 docs/zh-Hans/images/winmerge-comparison-result.png delete mode 100644 docs/zh-Hans/images/winmerge-file-diff.png delete mode 100644 docs/zh-Hans/images/winmerge-open-folders.png diff --git a/docs/cs/AspNetCore/Widgets.md b/docs/cs/AspNetCore/Widgets.md deleted file mode 100644 index f0ee218804..0000000000 --- a/docs/cs/AspNetCore/Widgets.md +++ /dev/null @@ -1,506 +0,0 @@ -# Widgety - -ABP poskytuje model a infastrukturu k vytváření **znovu použitelných widgetů**. Systém widgetů je rozšíření pro [ASP.NET Core pohledové komponenty](https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-components). Widgety jsou zvláště užitečné, když chcete; - -* Mít závislosti na **skriptech & stylech** ve vašem widgetu. -* Vytvářet **řídící panely** za použítí widgetů. -* Definovat widgety v znovu použitelných **[modulech](../Module-Development-Basics.md)**. -* Spolupráci widgetů s **[authorizačními](../Authorization.md)** a **[svazovacími](Bundling-Minification.md)** systémy. - -## Základní definice widgetu - -### Tvorba pohledové komponenty - -Jako první krok, vytvořte běžnou ASP.NET Core pohledovou komponentu: - -![widget-basic-files](../images/widget-basic-files.png) - -**MySimpleWidgetViewComponent.cs**: - -````csharp -using Microsoft.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc; - -namespace DashboardDemo.Web.Pages.Components.MySimpleWidget -{ - public class MySimpleWidgetViewComponent : AbpViewComponent - { - public IViewComponentResult Invoke() - { - return View(); - } - } -} -```` - -Dědění z `AbpViewComponent` není vyžadováno. Můžete dědit ze standardního ASP.NET Core `ViewComponent`. `AbpViewComponent` pouze definuje pár základních a užitečných vlastnosti. - -Můžete vložit službu a pomocí metody `Invoke` z ní získat některá data. Možná budete muset provést metodu Invoke jako asynchronní `public async Task InvokeAsync()`. Podívejte se na dokument [ASP.NET Core ViewComponents](https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-components) pro všechna další použítí. - -**Default.cshtml**: - -```xml -
-

My Simple Widget

-

This is a simple widget!

-
-``` - -### Definice widgetu - -Přidejte atribut `Widget` k třídě `MySimpleWidgetViewComponent` pro označení této pohledové komponenty jako widgetu: - -````csharp -using Microsoft.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc.UI.Widgets; - -namespace DashboardDemo.Web.Pages.Components.MySimpleWidget -{ - [Widget] - public class MySimpleWidgetViewComponent : AbpViewComponent - { - public IViewComponentResult Invoke() - { - return View(); - } - } -} -```` - -## Vykreslení widgetu - -Vykreslení widgetu je vcelku standardní. Použijte metodu `Component.InvokeAsync` v razor pohledu/stránce jako s kteroukoliv jinou pohledovou komponentou. Příklady: - -````xml -@await Component.InvokeAsync("MySimpleWidget") -@await Component.InvokeAsync(typeof(MySimpleWidgetViewComponent)) -```` - -První přístup používá název widgetu, zatímco druhý používá typ pohledové komponenty. - -### Widgety s argumenty - -Systém ASP.NET Core pohledových komponent umožňuje přijímat argumenty pro pohledové komponenty. Níže uvedená pohledová komponenta přijímá `startDate` a `endDate` a používá tyto argumenty k získání dat ze služby. - -````csharp -using System; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc.UI.Widgets; - -namespace DashboardDemo.Web.Pages.Shared.Components.CountersWidget -{ - [Widget] - public class CountersWidgetViewComponent : AbpViewComponent - { - private readonly IDashboardAppService _dashboardAppService; - - public CountersWidgetViewComponent(IDashboardAppService dashboardAppService) - { - _dashboardAppService = dashboardAppService; - } - - public async Task InvokeAsync( - DateTime startDate, DateTime endDate) - { - var result = await _dashboardAppService.GetCountersWidgetAsync( - new CountersWidgetInputDto - { - StartDate = startDate, - EndDate = endDate - } - ); - - return View(result); - } - } -} -```` - -Nyní musíte předat anonymní objekt k předání argumentů tak jak je ukázáno níže: - -````xml -@await Component.InvokeAsync("CountersWidget", new -{ - startDate = DateTime.Now.Subtract(TimeSpan.FromDays(7)), - endDate = DateTime.Now -}) -```` - -## Název widgetu - -Výchozí název pohledových komponent je vypočítán na základě názvu typu pohledové komponenty. Pokud je typ pohledové komponenty `MySimpleWidgetViewComponent` potom název widgetu bude `MySimpleWidget` (odstraní se `ViewComponent` postfix). Takto ASP.NET Core vypočítává název pohledové komponenty. - -Chcete-li přizpůsobit název widgetu, stačí použít standardní atribut `ViewComponent` z ASP.NET Core: - -```csharp -using Microsoft.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc.UI.Widgets; - -namespace DashboardDemo.Web.Pages.Components.MySimpleWidget -{ - [Widget] - [ViewComponent(Name = "MyCustomNamedWidget")] - public class MySimpleWidgetViewComponent : AbpViewComponent - { - public IViewComponentResult Invoke() - { - return View("~/Pages/Components/MySimpleWidget/Default.cshtml"); - } - } -} -``` - -ABP bude respektovat přizpůsobený název při zpracování widgetu. - -> Pokud jsou názvy pohledové komponenty a složky, která pohledovou komponentu obsahuje rozdílné, pravděpodobně budete muset ručně uvést cestu pohledu tak jako je to provedeno v tomto příkladu. - -### Zobrazovaný název - -Můžete také definovat čitelný & lokalizovatelný zobrazovaný název pro widget. Tento zobrazovaný název může být využít na uživatelském rozhraní kdykoliv je to potřeba. Zobrazovaný název je nepovinný a lze ho definovat pomocí vlastností atributu `Widget`: - -````csharp -using DashboardDemo.Localization; -using Microsoft.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc.UI.Widgets; - -namespace DashboardDemo.Web.Pages.Components.MySimpleWidget -{ - [Widget( - DisplayName = "MySimpleWidgetDisplayName", // Lokalizační klíč - DisplayNameResource = typeof(DashboardDemoResource) // Lokalizační zdroj - )] - public class MySimpleWidgetViewComponent : AbpViewComponent - { - public IViewComponentResult Invoke() - { - return View(); - } - } -} -```` - -Podívejte se na [dokument lokalizace](../Localization.md) pro více informací o lokalizačních zdrojích a klíčích. - -## Závislosti na stylech & skriptech - -Problémy když má widget soubory skriptů a stylů; - -* Každý stránka, která používá widget musí také přidat soubory **skriptů & stylů** tohoto widgetu. -* Stránka se také musí postarat o **závislé knihovny/soubory** widgetu. - -ABP tyto problémy řeší, když správně propojíme zdroje s widgetem. O závislosti widgetu se při jeho používání nestaráme. - -### Definování jednoduchých cest souborů - -Níže uvedený příklad widgetu přidá stylové a skriptové soubory: - -````csharp -using Microsoft.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc.UI.Widgets; - -namespace DashboardDemo.Web.Pages.Components.MySimpleWidget -{ - [Widget( - StyleFiles = new[] { "/Pages/Components/MySimpleWidget/Default.css" }, - ScriptFiles = new[] { "/Pages/Components/MySimpleWidget/Default.js" } - )] - public class MySimpleWidgetViewComponent : AbpViewComponent - { - public IViewComponentResult Invoke() - { - return View(); - } - } -} -```` - -ABP bere v úvahu tyto závislosti a správně je přidává do pohledu/stránky při použití widgetu. Stylové/skriptové soubory mohou být **fyzické nebo virtuální**. Plně integrováno do [virtuálního systému souborů](../Virtual-File-System.md). - -### Definování přispěvatelů balíku - -Všechny zdroje použité ve widgetech na stránce jsou přidány jako **svazek** (svázány & minifikovány v produkci pokud nenastavíte jinak). Kromě přidání jednoduchého souboru můžete využít plnou funkčnost přispěvatelů balíčků. - -Níže uvedený ukázkový kód provádí totéž co výše uvedený kód, ale definuje a používá přispěvatele balíků: - -````csharp -using System.Collections.Generic; -using Microsoft.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc.UI.Bundling; -using Volo.Abp.AspNetCore.Mvc.UI.Widgets; - -namespace DashboardDemo.Web.Pages.Components.MySimpleWidget -{ - [Widget( - StyleTypes = new []{ typeof(MySimpleWidgetStyleBundleContributor) }, - ScriptTypes = new[]{ typeof(MySimpleWidgetScriptBundleContributor) } - )] - public class MySimpleWidgetViewComponent : AbpViewComponent - { - public IViewComponentResult Invoke() - { - return View(); - } - } - - public class MySimpleWidgetStyleBundleContributor : BundleContributor - { - public override void ConfigureBundle(BundleConfigurationContext context) - { - context.Files - .AddIfNotContains("/Pages/Components/MySimpleWidget/Default.css"); - } - } - - public class MySimpleWidgetScriptBundleContributor : BundleContributor - { - public override void ConfigureBundle(BundleConfigurationContext context) - { - context.Files - .AddIfNotContains("/Pages/Components/MySimpleWidget/Default.js"); - } - } -} - -```` - -Systém přispěvatelů balíků je velmi schopný. Pokud váš widget používá k vykreslení grafu JavaScript knihovnu, můžete ji deklarovat jako závislost, díky tomu se knihovna pokud nebyla dříve přidána automaticky přidá na stránku Tímto způsobem se stránka využívající váš widget nestará o závislosti. - -Podívejte se na dokumentaci [svazování & minifikace](Bundling-Minification.md) pro více informací o tomto systému. - -## RefreshUrl - -Widget může navrhnout `RefreshUrl`, který se používá vždy, když je potřeba widget aktualizovat. Je-li definován, widget se při každé aktualizaci znovu vykreslí na straně serveru (viz refresh `methoda` u `WidgetManager` níže). - -````csharp -[Widget(RefreshUrl = "Widgets/Counters")] -public class CountersWidgetViewComponent : AbpViewComponent -{ - -} -```` - -Jakmile pro svůj widget definujete `RefreshUrl`, musíte poskytnout koncový bod pro jeho vykreslení a vrátit ho: - -````csharp -[Route("Widgets")] -public class CountersWidgetController : AbpController -{ - [HttpGet] - [Route("Counters")] - public IActionResult Counters(DateTime startDate, DateTime endDate) - { - return ViewComponent("CountersWidget", new {startDate, endDate}); - } -} -```` - -Trasa `Widgets/Counters` předchozímu `RefreshUrl`. - -> Widget lze obnovit dvěma způsoby: Prvním způsobem je použití `RefreshUrl`, kdy se znovu vykreslí na serveru a nahradí HTML vrácené tím ze serveru. Druhým způsobem widget získá data (obvykle JSON objekt) ze serveru a obnoví se sám u klienta (viz refresh metoda v sekci Widget JavaScript API). - -## JavaScript API - -Možná bude potřeba vykreslit a obnovit widget na straně klienta. V takových případech můžete použít ABP `WidgetManager` a definovat API pro vaše widgety. - -### WidgetManager - -`WidgetManager` se používá k inicializaci a aktualizaci jednoho nebo více widgetů. Vytvořte nový `WidgetManager` jako je ukázáno níže: - -````js -$(function() { - var myWidgetManager = new abp.WidgetManager('#MyDashboardWidgetsArea'); -}) -```` - -`MyDashboardWidgetsArea` může obsahovat jeden nebo více widgetů. - -> Použíti `WidgetManager` uvnitř document.ready (jako nahoře) je dobrá praktika jelikož jeho funkce používají DOM a potřebují, aby byl DOM připraven. - -#### WidgetManager.init() - -`init` jednoduše inicializuje `WidgetManager` a volá metody `init` v souvisejících widgetech pokud je obsahují (podívejte se na sekci Widget JavaScript API section níže) - -```js -myWidgetManager.init(); -``` - -#### WidgetManager.refresh() - -`refresh` metoda obnoví všechny widgety související s tímto `WidgetManager`: - -```` -myWidgetManager.refresh(); -```` - -#### WidgetManager možnosti - -WidgetManager má několik dalších možností. - -##### Filtrační formulář - -Pokud vaše widgety vyžadují parametry/filtry pak budete obvykle mít formulář pro filtrování widgetů. V takových případech můžete vytvořit formulář, který obsahuje prvky formuláře a oblast řídicího panelu s nějakými widgety uvnitř. Příklad: - -````xml -
- ...prvky formuláře -
- -
- ...widgety -
-```` - -`data-widget-filter` atribut propojuje formulář s widgety. Kdykoli je formulář odeslán, všechny widgety jsou automaticky aktualizovány pomocí polí formuláře jako filtru. - -Místo atributu `data-widget-filter`, můžete použít parametr `filterForm` v konstruktoru `WidgetManager`. Příklad: - -````js -var myWidgetManager = new abp.WidgetManager({ - wrapper: '#MyDashboardWidgetsArea', - filterForm: '#MyDashboardFilterForm' -}); -```` - -##### Zpětné volání filtru - -Možná budete chtít mít lepší kontrolu nad poskytováním filtrů při inicializaci a aktualizaci widgetů. V tomto případě můžete použít volbu `filterCallback`: - -````js -var myWidgetManager = new abp.WidgetManager({ - wrapper: '#MyDashboardWidgetsArea', - filterCallback: function() { - return $('#MyDashboardFilterForm').serializeFormToObject(); - } -}); -```` - -Tento příklad ukazuje výchozí implementaci `filterCallback`. Pomocí polí můžete vrátit jakýkoli JavaScript objekt. Příklad: - -````js -filterCallback: function() { - return { - 'startDate': $('#StartDateInput').val(), - 'endDate': $('#EndDateInput').val() - }; -} -```` - -Vrácené filtry jsou předávány všem widgetům na `init` a` refresh`. - -### Widget JavaScript API - -Widget může definovat rozhraní API jazyka JavaScript, které je v případě potřeby vyvoláno přes `WidgetManager`. Ukázku kódu níže lze použít k definování API pro widget. - -````js -(function () { - abp.widgets.NewUserStatisticWidget = function ($wrapper) { - - var getFilters = function () { - return { - ... - }; - } - - var refresh = function (filters) { - ... - }; - - var init = function (filters) { - ... - }; - - return { - getFilters: getFilters, - init: init, - refresh: refresh - }; - }; -})(); -```` - -`NewUserStatisticWidget` je tady název widgetu. Měl by odpovídat názvu widgetu definovanému na straně serveru. Všechny funkce jsou volitelné. - -#### getFilters - -Pokud má widget vlastní interní filtry, měla by tato funkce vrátit objekt filtru. Příklad: - -````js -var getFilters = function() { - return { - frequency: $wrapper.find('.frequency-filter option:selected').val() - }; -} -```` - -Tuto metodu používá `WidgetManager` při vytváření filtrů. - -#### init - -Slouží k inicializaci widgetu kdykoli je potřeba. Má argument filtru, který lze použít při získávání dat ze serveru. Metoda `init` je použita když je volána funkce `WidgetManager.init()`. Použita je i v případě že váš widget vyžaduje úplné obnovení při aktualizaci. Viz `RefreshUrl` v možnostech widgetu. - -#### refresh - -Slouží k aktualizaci widgetu kdykoli je potřeba. Má argument filtru, který lze použít při získávání dat ze serveru. Metoda `refresh` se používá kdykoliv je volána funkce `WidgetManager.refresh()`. - -## Autorizace - -Některé widgety budou pravděpodobně muset být dostupné pouze pro ověřené nebo autorizované uživatele. V tomto případě použijte následující vlastnosti atributu `Widget`: - -* `RequiresAuthentication` (`bool`): Nastavte na true, aby byl tento widget použitelný pouze pro ověřené uživatele (uživatel je přihlášen do aplikace). -* `RequiredPolicies` (`List`): Seznam názvů zásad k autorizaci uživatele. Další informace o zásadách naleznete v [dokumentu autorizace](../Authorization.md). - -Příklad: - -````csharp -using Microsoft.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc.UI.Widgets; - -namespace DashboardDemo.Web.Pages.Components.MySimpleWidget -{ - [Widget(RequiredPolicies = new[] { "MyPolicyName" })] - public class MySimpleWidgetViewComponent : AbpViewComponent - { - public IViewComponentResult Invoke() - { - return View(); - } - } -} -```` - -## WidgetOptions - -Jako alternativu k atributu `Widget` můžete ke konfiguraci widgetů použít `AbpWidgetOptions`: - -```csharp -Configure(options => -{ - options.Widgets.Add(); -}); -``` - -Toto vepište do metody `ConfigureServices` vašeho [modulu](../Module-Development-Basics.md). Veškerá konfigurace udělaná přes atribut `Widget` je dostupná i za pomoci `AbpWidgetOptions`. Příklad konfigurace, která přidává styl pro widget: - -````csharp -Configure(options => -{ - options.Widgets - .Add() - .WithStyles("/Pages/Components/MySimpleWidget/Default.css"); -}); -```` - -> Tip: `AbpWidgetOptions` lze také použít k získání existujícího widgetu a ke změně jeho konfigurace. To je obzvláště užitečné, pokud chcete změnit konfiguraci widgetu uvnitř modulu používaného vaší aplikací. Použíjte `options.Widgets.Find` k získání existujícího `WidgetDefinition`. - -## Podívejte se také na - -* [Příklad projektu (zdrojový kód)](https://github.com/abpframework/abp-samples/tree/master/DashboardDemo). - diff --git a/docs/cs/Autofac-Integration.md b/docs/cs/Autofac-Integration.md deleted file mode 100644 index 109dca6286..0000000000 --- a/docs/cs/Autofac-Integration.md +++ /dev/null @@ -1,84 +0,0 @@ -# Autofac integrace - -Autofac je jedním z nejpoužívanějších frameworků pro .Net pro vkládání závislostí (DI). Poskytuje pokročilejší funkce v porovnáním se standardní .Net Core DI knihovnou, jako dynamickou proxy a injekci vlastností. - -## Instalace Autofac integrace - -> Všechny startovací šablony a vzorky jsou s Autofac již integrovány. Takže většinou nemusíte tento balíček instalovat ručně. - -Nainstalujte do vašeho projektu balíček [Volo.Abp.Autofac](https://www.nuget.org/packages/Volo.Abp.Autofac) (pro víceprojektovou aplikaci se doporučuje přidat do spustitelného/webového projektu.) - -```` -Install-Package Volo.Abp.Autofac -```` - -Poté přídejte k vašemu modulu závislost na `AbpAutofacModule`: - -```csharp -using Volo.Abp.Modularity; -using Volo.Abp.Autofac; - -namespace MyCompany.MyProject -{ - [DependsOn(typeof(AbpAutofacModule))] - public class MyModule : AbpModule - { - //... - } -} -``` - -Nakonec nastavte `AbpApplicationCreationOptions` aby nahradil výchozí služby pro vkládání závislostí na Autofac. Záleží na typu aplikace. - -### ASP.NET Core aplikace - -Volejte `UseAutofac()` v souboru **Startup.cs** jako je ukázáno níže: - -````csharp -public class Startup -{ - public IServiceProvider ConfigureServices(IServiceCollection services) - { - services.AddApplication(options => - { - //Integrace Autofac! - options.UseAutofac(); - }); - - return services.BuildServiceProviderFromFactory(); - } - - public void Configure(IApplicationBuilder app) - { - app.InitializeApplication(); - } -} -```` - -### Konzolová aplikace - -Volejte metodu `UseAutofac()` v možnostech `AbpApplicationFactory.Create` jako je ukázáno níže: - -````csharp -using System; -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp; - -namespace AbpConsoleDemo -{ - class Program - { - static void Main(string[] args) - { - using (var application = AbpApplicationFactory.Create(options => - { - options.UseAutofac(); //Autofac integrace - })) - { - //... - } - } - } -} -```` - diff --git a/docs/cs/Best-Practices/images/postgresql-delete-initial-migrations.png b/docs/cs/Best-Practices/images/postgresql-delete-initial-migrations.png deleted file mode 100644 index 14788c5fb88f3d6855745812f3a5026173f408ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7216 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 R<`dvORYi@Ll?vuz{|^rL7{>qr diff --git a/docs/cs/Best-Practices/images/postgresql-update-database.png b/docs/cs/Best-Practices/images/postgresql-update-database.png deleted file mode 100644 index 30a5f3abe11e4ce57a359c92032eef7ad6bce52e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4666 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 sS6_sxDF0ut;M1& diff --git a/docs/cs/CLI.md b/docs/cs/CLI.md deleted file mode 100644 index f77c3ad969..0000000000 --- a/docs/cs/CLI.md +++ /dev/null @@ -1,167 +0,0 @@ -# ABP CLI - -ABP CLI (Command Line Interface) je nástroj v příkazovém řádku k provádění některých běžných úkonů v řešeních založených na ABP. - -## Instalace - -ABP CLI je [dotnet global tool](https://docs.microsoft.com/en-us/dotnet/core/tools/global-tools). Nainstalujete jej pomocí okna příkazového řádku: - -````bash -dotnet tool install -g Volo.Abp.Cli -```` - -Aktualizace stávající instalace: - -````bash -dotnet tool update -g Volo.Abp.Cli -```` - -## Příkazy - -### new - -Vygeneruje nové řešení založené na ABP [startovací šabloně](Startup-Templates/Index.md). - -Základní použití: - -````bash -abp new [možnosti] -```` - -Příklad: - -````bash -abp new Acme.BookStore -```` - -* `Acme.BookStore` je tady název řešení. -* Běžná konvence je nazvat řešení stylem *VaseSpolecnost.VasProjekt*. Nicméně můžete použít i jiné pojmenování jako *VasProjekt* (jednostupňový jmenný prostor) nebo *VaseSpolecnost.VasProjekt.VasModul* (třístupňový jmenný prostor). - -#### Možnosti - -* `--template` nebo `-t`: Určuje název šablony. Výchozí šablona je `app`, která generuje webovou aplikaci. Dostupné šablony: - * `app` (výchozí): [Aplikační šablona](Startup-Templates/Application.md). Dodatečné možnosti: - * `--ui` nebo `-u`: Určuje UI framework. Výchozí framework je `mvc`. Dostupné frameworky: - * `mvc`: ASP.NET Core MVC. Pro tuto šablonu jsou dostupné dodatečné možnosti: - * `--tiered`: Vytvoří stupňovité řešení, kde jsou vrstvy Web a Http API fyzicky odděleny. Pokud není uvedeno, tak vytvoří vrstvené řešení, které je méně složité a vhodné pro většinu scénářů. - * `angular`: Angular. Pro tuto šablonu jsou dostupné dodatečné možnosti: - * `--separate-auth-server`: Oddělí Auth Server aplikaci od API host aplikace. Pokud není uvedeno, bude na straně serveru jediný koncový bod. - * `none`: Bez UI. Pro tuto šablonu jsou dostupné dodatečné možnosti: - * `--separate-auth-server`: Oddělí Auth Server aplikaci od API host aplikace. Pokud není uvedeno, bude na straně serveru jediný koncový bod. - * `--database-provider` nebo `-d`: Určuje poskytovatele databáze. Výchozí poskytovatel je `ef`. Dostupní poskytovatelé: - * `ef`: Entity Framework Core. - * `mongodb`: MongoDB. - * `module`: [Šablona modulu](Startup-Templates/Module.md). Dodatečné možnosti: - * `--no-ui`: Určuje nezahrnutí uživatelského rozhraní. Umožňuje vytvořit moduly pouze pro služby (a.k.a. mikroslužby - bez uživatelského rozhraní). -* `--output-folder` nebo `-o`: Určuje výstupní složku. Výchozí hodnota je aktuální adresář. -* `--version` nebo `-v`: Určuje verzi ABP & šablony. Může to být [štítek vydání](https://github.com/abpframework/abp/releases) nebo [název větve](https://github.com/abpframework/abp/branches). Pokud není uvedeno, používá nejnovější vydání. Většinou budete chtít použít nejnovější verzi. - - -### add-package - -Přidá ABP balíček do projektu, - -* Přidáním souvisejícícho nuget balíčku jako závislost do projektu. -* Přidáním `[DependsOn(...)]` atributu k modulové tříde v projektu (podívejte se na [dokument vývoje modulu](Module-Development-Basics.md)). - -> Všimněte si, že přidaný modul může vyžadovat další konfiguraci, která je obecně uvedena v dokumentaci příslušného balíčku. - -Základní použití: - -````bash -abp add-package [možnosti] -```` - -Příklad: - -```` -abp add-package Volo.Abp.MongoDB -```` - -* Tento příklad přidá do projektu balíček Volo.Abp.MongoDB. - -#### Možnosti - -* `--project` nebo `-p`: Určuje cestu k projektu (.csproj). Pokud není zadáno, CLI se pokusí najít soubor .csproj v aktuálním adresáři. - -### add-module - -Přidá [více-balíčkový aplikační modul](Modules/Index) k řešení tím, že najde všechny balíčky modulu, vyhledá související projekty v řešení a přidá každý balíček do odpovídajícího projektu v řešení. - -> Modul se obecně skládá z několika balíčků (z důvodu vrstvení, různých možností poskytovatele databáze nebo jiných důvodů). Použití příkazu `add-module` dramaticky zjednodušuje přidání modulu do řešení. Každý modul však může vyžadovat další konfiguraci, která je obecně uvedena v dokumentaci příslušného modulu. - -Základní použití: - -````bash -abp add-module [možnosti] -```` - -Příklad: - -```bash -abp add-module Volo.Blogging -``` - -* Tento příklad přidá do projektu modul Volo.Blogging. - -#### Možnosti - -* `--solution` nebo `-s`: Určuje cestu k řešení (.sln). Pokud není zadáno, CLI se pokusí najít soubor .sln v aktuálním adresáři. -* `--skip-db-migrations`: Pro poskytovatele databáze EF Core automaticky přidá nový kód první migrace (`Add-Migration`) a v případě potřeby aktualizuje databázi (`Update-Database`). Tuto možnost určete k vynechání této operace. -* `-sp` nebo `--startup-project`: Relativní cesta ke složce spouštěcího projektu. Výchozí hodnota je aktuální adresář. -* `--with-source-code`: Místo balíčků NuGet/NPM přidejte zdrojový kód modulu. - -### update - -Aktualizace všech balíčků souvisejících s ABP může být únavná, protože existuje mnoho balíčků frameworku a modulů. Tento příkaz automaticky aktualizuje na poslední verze všechny související ABP NuGet a NPM balíčky v řešení nebo projektu. - -Použití: - -````bash -abp update [možnosti] -```` - -* Pokud spouštíte v adresáři se souborem .sln, aktualizuje všechny balíčky všech projektů v řešení souvisejících s ABP na nejnovější verze. -* Pokud spouštíte v adresáři se souborem .csproj, aktualizuje všechny balíčky v projektu na nejnovější verze. - -#### Možnosti - -* `--include-previews` nebo `-p`: Zahrne náhledové, beta a rc balíčky při kontrole nových verzí. -* `--npm`: Aktualizuje pouze balíčky NPM. -* `--nuget`: Aktualizuje pouze balíčky NuGet. - -### login - -Některé funkce CLI vyžadují přihlášení k platformě abp.io. Chcete-li se přihlásit pomocí svého uživatelského jména, napište - -```bash -abp login -``` - -Všimněte si, že nové přihlášení s již aktivní relací ukončí předchozí relaci a vytvoří novou. - -### logout - -Odhlásí vás odebráním tokenu relace z počítače. - -``` -abp logout -``` - -### help - -Vypíše základní informace k používání CLI. - -Použítí: - -````bash -abp help [název-příkazu] -```` - -Příklady: - -````bash -abp help # Zobrazí obecnou nápovědu. -abp help new # Zobrazí nápovědu k příkazu "new". -```` - diff --git a/docs/cs/Contribution/Index.md b/docs/cs/Contribution/Index.md deleted file mode 100644 index ac1aaf00c1..0000000000 --- a/docs/cs/Contribution/Index.md +++ /dev/null @@ -1,64 +0,0 @@ -## Průvodce pro přispěvatele - -ABP je [open source](https://github.com/abpframework) a komunitně řízený projekt. Tento průvodce má za cíl pomoci každému kdo chce do projektu nějak přispět. - -### Příspěvek kódu - -Vždy můžete zaslat pull request do Github repositáře. - -- Naklonujte [ABP repozitář](https://github.com/abpframework/abp/) z Githubu. -- Učiňte potřebné změny. -- Zašlete pull request. - -Než budete dělat nějaké změny, diskutujte o nich prosím na [Github problémy](https://github.com/abpframework/abp/issues). Díky tomu nebude žádný jiný vývojář pracovat na stejném problému a Váš PR má lepší šanci na to být přijat. - -#### Opravy chyb a vylepšení - -Pokud chcete opravit známou chybu nebo pracovat na plánovaném vylepšení podívejte se na [seznam problémů](https://github.com/abpframework/abp/issues) na Githubu. - -#### Požadavky na funkce - -Pokud máte nápad na funkci pro framework nebo modul [vytvořte problém](https://github.com/abpframework/abp/issues/new) na Githubu nebo se připojte ke stávající diskuzi. V případě přijetí komunitou ho pak můžete implementovat. - -### Překlad dokumentů - -Pokud chcete přeložit celou [dokumentaci](https://abp.io/documents/) (včetně této stránky) do Vašeho rodného jazyka, následujte tyto kroky: - -* Naklonujte [ABP repozitář](https://github.com/abpframework/abp/) z Githubu. -* K přidání nového jazyka vytvořte novou složku v [docs](https://github.com/abpframework/abp/tree/master/docs). Název složky musí být "en", "es", "fr", "tr" atd. v závislosti na jazyku (navštivte [všechny jazykové kódy](https://msdn.microsoft.com/en-us/library/hh441729.aspx)). -* Pro referenci použijte ["en" složku](https://github.com/abpframework/abp/tree/master/docs/en) a její názvy souborů a strom složek. Při překladu této dokumentace zachovejte prosím tyto názvy stejné. -* Zašlete pull request (PR) po překladu jakéhokoliv dokumentu klidně i po jednom. Nečekejte až budete mít překlad všech dokumentů. - -Existuje několik základních dokumentů, které je třeba přeložit než bude jazyk uveřejněn na [stránkách ABP dokumentace](https://docs.abp.io) - -* Začínáme dokumenty -* Tutoriály -* CLI - -Nový jazyk je publikován jakmile jsou minimálně tyto překlady dokončeny. - -### Lokalizace zdrojů - -ABP framework má flexibilní [lokalizační systém](../Localization.md). Můžete tak vytvořit lokalizované uživatelské prostředí pro svou vlastní aplikaci. - -K tomu mají framework a vestavěné moduly již lokalizované texty. Například [lokalizační texty pro Volo.Abp.UI balík](https://github.com/abpframework/abp/blob/master/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en.json). - -Můžete vytvořit nový soubor ve [stejné složce](https://github.com/abpframework/abp/tree/master/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi) k přidání překladu. - -* Naklonujte [ABP repozitář](https://github.com/abpframework/abp/) z Githubu. -* Vytvořte nový soubor pro cílový jazyk pro lokalizační text v (json) souboru (u souboru en.json). -* Zkopírujte veškerý text ze souboru en.json. -* Přeložte texty. -* Zašlete pull request na Githubu. - -K překladu lokalizovaných textů můžete také použít příkaz `abp translate` of [ABP CLI](CLI.md). - -ABP je modulářní framework, proto je zde mnoho zdrojů lokalizačních textů, jeden pro každý modul. K najití všech .json souborů, vyhledejte po naklonování repozitáře soubory "en.json". Můžete se taky podívat na [tento seznam](Localization-Text-Files.md) souborů lokalizačních textů. - -### Příspevky do blogu a návody - -Pokud se rozhodnete pro ABP vytvořit nějaké návody nebo příspěvky do blogu, dejte nám vědět (prostřednictvím [Github problémy](https://github.com/abpframework/abp/issues)), ať můžeme přidat odkaz na Váš návod/příspěvek v oficiální dokumentaci a oznámit na našem [Twitter účtu](https://twitter.com/abpframework). - -### Zpráva o chybě - -Pokud najdete chybu, [vytvořte prosím problém v Github repozitáři](https://github.com/abpframework/abp/issues/new). diff --git a/docs/cs/Dapper.md b/docs/cs/Dapper.md deleted file mode 100644 index 94e40347f0..0000000000 --- a/docs/cs/Dapper.md +++ /dev/null @@ -1,61 +0,0 @@ -# Dapper integrace - -Jelikož myšlenka Dapper je taková, že sql příkaz má přednost, tak hlavně poskytuje metody rozšíření pro `IDbConnection` rozhraní. - -Abp nezapouzdřuje přílíš mnoho funkcí pro Dapper. Abp Dapper poskytuje základní třídu `DapperRepository` založenou na Abp EntityFrameworkCore, který poskytuje vlastnosti `IDbConnection` a `IDbTransaction` vyžadované v Dapper. - -Tyto dvě vlastnosti fungují dobře s [jednotkou práce](Unit-Of-Work.md). - -## Instalace - -Nainstalujte a nakonfigurujte EF Core podle [EF Core integrační dokumentace](Entity-Framework-Core.md). - -`Volo.Abp.Dapper` je hlavní NuGet balík pro Dapper integraci. Nainstalujte jej proto do vašeho projektu (pro strukturovanou aplikaci do datové/infrastrukturní vrstvy): - -```shell -Install-Package Volo.Abp.Dapper -``` - -Poté přidejte závislost na `AbpDapperModule` modulu (atribut `DependsOn`) do Vašeho [modulu](Module-Development-Basics.md): - -````C# -using Volo.Abp.Dapper; -using Volo.Abp.Modularity; - -namespace MyCompany.MyProject -{ - [DependsOn(typeof(AbpDapperModule))] - public class MyModule : AbpModule - { - //... - } -} -```` - -## Implementace Dapper repozitáře - -Následující kód implementuje repozitář `Person`, který vyžaduje `DbContext` z EF Core (MyAppDbContext). Můžete vložit `PersonDapperRepository` k volání jeho metod. - -`DbConnection` a `DbTransaction` jsou ze základní třídy `DapperRepository`. - -```C# -public class PersonDapperRepository : DapperRepository, ITransientDependency -{ - public PersonDapperRepository(IDbContextProvider dbContextProvider) - : base(dbContextProvider) - { - } - - public virtual async Task> GetAllPersonNames() - { - return (await DbConnection.QueryAsync("select Name from People", transaction: DbTransaction)) - .ToList(); - } - - public virtual async Task UpdatePersonNames(string name) - { - return await DbConnection.ExecuteAsync("update People set Name = @NewName", new { NewName = name }, - DbTransaction); - } -} -``` diff --git a/docs/cs/Domain-Driven-Design.md b/docs/cs/Domain-Driven-Design.md deleted file mode 100644 index 161e92c8a2..0000000000 --- a/docs/cs/Domain-Driven-Design.md +++ /dev/null @@ -1,33 +0,0 @@ -# Domain Driven Design - -## Co je DDD? - -ABP framework poskytuje **infrastrukturu**, která zjednodušuje implementaci vývoje založeného na **DDD**. DDD je [definován ve Wikipedii](https://en.wikipedia.org/wiki/Domain-driven_design) takto: - -> **Domain-driven design** (**DDD**) je přístup k vývoji softwaru pro komplexní potřeby propojením implementace s vyvíjejícím se modelem. Předpoklad DDD je následující: -> -> - Primární zaměření projektu je na jádře domény a doménové logice; -> - Zakládání komplexních návrhů na modelu domény; -> - Iniciování tvůrčí spolupráce mezi technickými a doménovými odborníky s cílem iterativně zdokonalit koncepční model, který řeší konkrétní problémy v doméně. - -### Vrstvy - -ABP dodržuje principy a vzorce DDD pro dosažení vrstveného aplikačního modelu, který se skládá ze čtyř základních vrstev: - -- **Prezentační vrstva**: Poskytuje uživateli rozhraní. Používá *Aplikační vrstvu* k dosažení uživatelských interakcí. -- **Aplikační vrstva**: Prostředník mezi prezentační a doménovou vrstvou. Instrumentuje business objekty k provádění specifických úloh aplikace. Implementuje případy použití jako logiku aplikace. -- **Doménová vrstva**: Zahrnuje business objekty a jejich business pravidla. Je jádrem aplikace. -- **Vrstva infrastruktury**: Poskytuje obecné technické možnosti, které podporují vyšší vrstvy většinou pomocí knihoven třetích stran. - -## Obsah - -* **Doménová vrstva** - * [Entity & agregované kořeny](Entities.md) - * Hodnotové objekty - * [Repozitáře](Repositories.md) - * Doménové služby - * Specifikace -* **Aplikační vrstva** - * [Aplikační služby](Application-Services.md) - * [Objekty přenosu dat (DTOs)](Data-Transfer-Objects.md) - * Jednotka práce \ No newline at end of file diff --git a/docs/cs/Entity-Framework-Core-PostgreSQL.md b/docs/cs/Entity-Framework-Core-PostgreSQL.md deleted file mode 100644 index dc50c8a742..0000000000 --- a/docs/cs/Entity-Framework-Core-PostgreSQL.md +++ /dev/null @@ -1,39 +0,0 @@ -# Přepnutí na EF Core PostgreSQL providera - -Tento dokument vysvětluje, jak přepnout na poskytovatele databáze **PostgreSQL** pro **[spouštěcí šablonu aplikace](Startup-Templates/Application.md)**, která je dodávána s předem nakonfigurovaným SQL poskytovatelem. - -## Výměna balíku Volo.Abp.EntityFrameworkCore.SqlServer - -Projekt `.EntityFrameworkCore` v řešení závisí na NuGet balíku [Volo.Abp.EntityFrameworkCore.SqlServer](https://www.nuget.org/packages/Volo.Abp.EntityFrameworkCore.SqlServer). Odstraňte tento balík a přidejte stejnou verzi balíku [Volo.Abp.EntityFrameworkCore.PostgreSql](https://www.nuget.org/packages/Volo.Abp.EntityFrameworkCore.PostgreSql). - -## Nahrazení závislosti modulu - -Najděte třídu ***YourProjectName*EntityFrameworkCoreModule** v projektu `.EntityFrameworkCore`, odstraňte `typeof(AbpEntityFrameworkCoreSqlServerModule)` z atributu `DependsOn`, přidejte `typeof(AbpEntityFrameworkCorePostgreSqlModule)` (také nahraďte `using Volo.Abp.EntityFrameworkCore.SqlServer;` za `using Volo.Abp.EntityFrameworkCore.PostgreSql;`). - -## UseNpgsql() - -Najděte volání `UseSqlServer()` v *YourProjectName*EntityFrameworkCoreModule.cs uvnitř projektu `.EntityFrameworkCore` a nahraďte za `UseNpgsql()`. - -Najděte volání `UseSqlServer()` v *YourProjectName*MigrationsDbContextFactory.cs uvnitř projektu `.EntityFrameworkCore.DbMigrations` a nahraďte za `UseNpgsql()`. - -> V závislosti na struktuře řešení můžete najít více volání `UseSqlServer()`, které je třeba změnit. - -## Změna connection stringů - -PostgreSql connection stringy se od těch pro SQL Server liší. Je proto potřeba zkontrolovat všechny soubory `appsettings.json` v řešení a connection stringy v nich nahradit. Podívejte se na [connectionstrings.com](https://www.connectionstrings.com/postgresql/) pro více detailů o možnostech PostgreSql connection stringů. - -Typicky je potřeba změnit `appsettings.json` v projektech `.DbMigrator` a `.Web` projects, ale to záleží na vaší struktuře řešení. - -## Regenerace migrací - -Startovací šablona používá [Entity Framework Core Code First migrace](https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/). EF Core migrace závisí na zvoleném DBMS poskytovateli. Tudíž změna DBMS poskytovatele způsobí selhání migrace. -* Smažte složku Migrations v projektu `.EntityFrameworkCore.DbMigrations` and znovu sestavte řešení. -* Spusťte `Add-Migration "Initial"` v Package Manager Console (je nutné zvolit `.DbMigrator` (nebo `.Web`) projekt jako startovací projekt v Solution Explorer a zvolit projekt `.EntityFrameworkCore.DbMigrations` jako výchozí v Package Manager Console). - -Tímto vytvoříte migraci databáze se všemi nakonfigurovanými databázovými objekty (tabulkami). - -Spusťte projekt `.DbMigrator` k vytvoření databáze a vložení počátečních dat. - -## Spuštění aplikace - -Vše je připraveno. Stačí už jen spustit aplikaci a užívat si kódování. diff --git a/docs/cs/Getting-Started-Angular-Template.md b/docs/cs/Getting-Started-Angular-Template.md deleted file mode 100644 index 076fb45671..0000000000 --- a/docs/cs/Getting-Started-Angular-Template.md +++ /dev/null @@ -1,126 +0,0 @@ -## Začínáme s Angular aplikační šablonou - -Tento tutoriál vysvětluje, jak vytvořit novou Angular aplikaci pomocí spouštěcí šablony, jak ji nakonfigurovat a spustit. - -### Tvorba nového projektu - -Tento tutorial používá k vytvoření nového projektu **ABP CLI**. Podívejte se na stránku [začínáme](https://abp.io/get-started) pro více možností. - -Pokud jste tak dosud neučinili, nainstalujte ABP CLI pomocí okna příkazového řádku: - -````bash -dotnet tool install -g Volo.Abp.Cli -```` - -Použíjte příkaz `abp new` v prázdné složce k vytvoření Vašeho projektu: - -````bash -abp new Acme.BookStore -u angular -```` - -> Můžete použít různé úrovně jmenných prostorů; např. BookStore, Acme.BookStore nebo Acme.Retail.BookStore. - -`-u angular` volba specifikuje Angular jako UI framework. Výchozí poskytovatel databáze je EF Core. Podívejte se na [CLI dokumentaci](CLI.md) pro všechny dostupné možnosti. - -#### Předběžné požadavky - -Vytvořené řešení vyžaduje; - -* [Visual Studio 2019 (v16.4.0+)](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/) - -### Struktura řešení - -Otevřete řešení ve **Visual Studio**: - -![bookstore-visual-studio-solution](images/bookstore-visual-studio-solution-for-spa.png) - -Řešení má vrstvenou strukturu (založenou na [domain driven designu](Domain-Driven-Design.md)) a obsahuje projekty testů jednotek a integrace správně nakonfigurované pro práci s **EF Core** & **SQLite in-memory** databází. - -> Podívejte se na [dokument šablony aplikace](Startup-Templates/Application.md) k detailnímu pochopení struktury řešení. - -### Databázový connection string - -Zkontrolujte **connection string** v souboru `appsettings.json` u projektu `.HttpApi.Host`: - -````json -{ - "ConnectionStrings": { - "Default": "Server=localhost;Database=BookStore;Trusted_Connection=True" - } -} -```` - -Řešení je nakonfigurováno pro použití **Entity Framework Core** s **MS SQL Server**. EF Core podporuje [různé](https://docs.microsoft.com/en-us/ef/core/providers/) poskytovatele databáze, takže pokud chcete můžete použít jiný DBMS. V případě potřeby změňte connection string. - -### Tvorba databáze & aplikace migrací databáze - -K vytvoření databáze máte dvě možnosti. - -#### Použití aplikace DbMigrator - -Řešení obsahuje konzolovou aplikaci (v tomto příkladu nazvanou `Acme.BookStore.DbMigrator`), která dokáže vytvořit databázi, aplikovat migrace a vložit počáteční data. Ta je užitečná jak pro vývojové tak pro produkční prostředí. - -> `.DbMigrator` má vlastní `appsettings.json`. Pokud jste změnili connection string výše, měli byste změnit i tento. - -Klikněte pravým na projekt `.DbMigrator` zvolte **Set as StartUp Project**: - -![set-as-startup-project](images/set-as-startup-project.png) - -Zmáčkněte F5 (nebo Ctrl+F5) ke spuštění aplikace. Výstup by měl být podobný vyobrazení níže: - -![set-as-startup-project](images/db-migrator-app.png) - -#### Použití příkazu EF Core Update-Database - -Ef Core máš příkaz `Update-Database`, který v případě potřeby vytvoří databázi a aplikuje čekající migrace. Klikněte pravým na projekt `.HttpApi.Host` a zvolte **Set as StartUp Project**: - -![set-as-startup-project](images/set-as-startup-project.png) - -Otevřete **Package Manager Console**, zvolte `.EntityFrameworkCore.DbMigrations` jako **Default Project** a proveďte příkaz `Update-Database`: - -![pcm-update-database](images/pcm-update-database-v2.png) - -Tímto vytvoříte novou databáze podle nakonfigurovaného connection string. - -> Je doporučeno užití nástroje `.DbMigrator`, protože zároveň vloží i počáteční data ke správnému běhu webové aplikace. - -### Spuštění aplikace - -#### Spuštění API Host (na straně serveru) - -Ujistěte se že je projekt `.HttpApi.Host` nastaven jako startovací a spusťte aplikaci což otevře Swagger UI: - -![bookstore-homepage](images/bookstore-swagger-ui-host.png) - -Tady můžete vidět API aplikace a zároveň je i otestovat. Získejte [více informací](https://swagger.io/tools/swagger-ui/) o Swagger UI. - -##### Autorizace pro Swagger UI - -Vetšina API aplikace vyžaduje autentizaci & autorizaci. Pokud chcete otestovat autorizované API, manuálně přejděte na stránku `/Account/Login`, vložte `admin` jako uživatelské jméno a `1q2w3E*` jako heslo k příhlášení do aplikace. Poté budete moci provádět autorizované požadavky API. - -#### Spuštění Angular aplikace (na straně klienta) - -Přejděte do složky `angular`, otevřete terminál příkazového řádku, proveďte příkaz `yarn` (doporučujeme používat správce balíků [yarn](https://yarnpkg.com), npm install bude v mnoha případech také fungovat): - -````bash -yarn -```` - -Jakmile jsou načteny všechny node moduly, proveďte příkaz `yarn start` nebo `npm start`: - -````bash -yarn start -```` - -Otevřete Váš oblíbený prohlížeč a přejděte na adresu `localhost:4200`. Počáteční uživatelské jméno je `admin` a heslo `1q2w3E*`. - -Startovací šablona obsahuje moduly **správa identit** a **správa tenantů**. Jakmile se přihlásíte, zprístupní se administrační menu kde můžete spravovat **tenanty**, **role**, **uživatele** a jejich **oprávnění**. - -> Doporučujeme [Visual Studio Code](https://code.visualstudio.com/) jako editor pro Angular projekt, ale klidně použijte Váš oblíbený editor. - -### Co dále? - -* [Tutoriál vývoje aplikace](Tutorials/Angular/Part-I.md) diff --git a/docs/cs/Getting-Started-AspNetCore-Application.md b/docs/cs/Getting-Started-AspNetCore-Application.md deleted file mode 100644 index e269a08ba2..0000000000 --- a/docs/cs/Getting-Started-AspNetCore-Application.md +++ /dev/null @@ -1,157 +0,0 @@ -# Začínáme s ASP.NET Core MVC aplikací - -Tento tutoriál vysvětluje jak začít s ABP z ničeho s minimem závislostí. Obvykle chcete začít se **[startovací šablonou](https://abp.io/Templates)**. - -## Tvorba nového projektu - -1. Vytvořte novou AspNet Core Web aplikaci ve Visual Studio 2019 (16.4.0+): - -![](images/create-new-aspnet-core-application-v2.png) - -2. Nakonfigurujte váš nový projekt: - -![](images/select-empty-web-application-v2.png) - -3. Potvrďte kliknutím na tlačítko vytvořit - -![create-aspnet-core-application](images/create-aspnet-core-application.png) - -## Instalace Volo.Abp.AspNetCore.Mvc balíku - -Volo.Abp.AspNetCore.Mvc je AspNet Core MVC integrační balík pro ABP. Takže ho nainstalujeme do projektu: - -```` -Install-Package Volo.Abp.AspNetCore.Mvc -```` - -## Tvorba prvního ABP modulu - -ABP je modulární framework a proto vyžaduje **spouštěcí (kořenový) modul** což je třída dědící z ``AbpModule``: - -````C# -using Microsoft.AspNetCore.Builder; -using Microsoft.Extensions.Hosting; -using Volo.Abp; -using Volo.Abp.AspNetCore.Mvc; -using Volo.Abp.Modularity; - -namespace BasicAspNetCoreApplication -{ - [DependsOn(typeof(AbpAspNetCoreMvcModule))] - public class AppModule : AbpModule - { - public override void OnApplicationInitialization( - ApplicationInitializationContext context) - { - var app = context.GetApplicationBuilder(); - var env = context.GetEnvironment(); - - if (env.IsDevelopment()) - { - app.UseDeveloperExceptionPage(); - } - else - { - app.UseExceptionHandler("/Error"); - } - - app.UseStaticFiles(); - app.UseRouting(); - app.UseConfiguredEndpoints(); - } - } -} -```` - -``AppModule`` je dobrý název pro spouštěcí modul aplikace. - -ABP balíky definují modulové třídy a modul může mít závislost na jiném. V kódu výše, ``AppModule`` má závislost na ``AbpAspNetCoreMvcModule`` (definován v balíku [Volo.Abp.AspNetCore.Mvc](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc)). Je běžné přidat ``DependsOn`` atribute po instalaci nového ABP NuGet balíku. - -Místo třídy Startup, konfigurujeme ASP.NET Core pipeline v této modulové třídě. - -## Třída Startup - -V dalším kroku upravíme Startup třídu k integraci ABP modulového systému: - -````C# -using Microsoft.AspNetCore.Builder; -using Microsoft.Extensions.DependencyInjection; - -namespace BasicAspNetCoreApplication -{ - public class Startup - { - public void ConfigureServices(IServiceCollection services) - { - services.AddApplication(); - } - - public void Configure(IApplicationBuilder app) - { - app.InitializeApplication(); - } - } -} -```` - -``services.AddApplication()`` přidává všechny služby definované ve všech modulech počínaje od ``AppModule``. - -``app.InitializeApplication()`` v metodě ``Configure`` inicializuje a spustí aplikaci. - -## Spusťte aplikaci! - -To je vše! Spusťte aplikaci, bude fungovat podle očekávání. - -## Použití Autofac jako frameworku pro vkládání závislostí - -Ačkoliv je AspNet Core systém pro vkládání závíslostí (DI) dostatečný pro základní požadavky, [Autofac](https://autofac.org/) poskytuje pokročilé funkce jako injekce vlastností nebo záchyt metod, které jsou v ABP užity k provádění pokročilých funkcí frameworku. - -Nahrazení AspNet Core DI systému za Autofac a integrace s ABP je snadná. - -1. Nainstalujeme [Volo.Abp.Autofac](https://www.nuget.org/packages/Volo.Abp.Autofac) balík - -```` -Install-Package Volo.Abp.Autofac -```` - -2. Přidáme ``AbpAutofacModule`` závislost - -````C# -[DependsOn(typeof(AbpAspNetCoreMvcModule))] -[DependsOn(typeof(AbpAutofacModule))] // Přidá závislost na AbpAutofacModule -public class AppModule : AbpModule -{ - ... -} -```` - -3. Upravíme `Program.cs` aby používal Autofac: - -````csharp -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Hosting; - -namespace BasicAspNetCoreApplication -{ - public class Program - { - public static void Main(string[] args) - { - CreateHostBuilder(args).Build().Run(); - } - - public static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) - .ConfigureWebHostDefaults(webBuilder => - { - webBuilder.UseStartup(); - }) - .UseAutofac(); // Přidejte tento řádek - } -} -```` - -## Zdrojový kód - -Získejte zdrojový kód vzorového projektu vytvořeného v tomto tutoriálů [z tohoto odkazu](https://github.com/abpframework/abp-samples/tree/master/BasicAspNetCoreApplication). - diff --git a/docs/cs/Getting-Started-AspNetCore-MVC-Template.md b/docs/cs/Getting-Started-AspNetCore-MVC-Template.md deleted file mode 100644 index c053e1d76a..0000000000 --- a/docs/cs/Getting-Started-AspNetCore-MVC-Template.md +++ /dev/null @@ -1,104 +0,0 @@ -## Začínáme s ASP.NET Core MVC šablonou - -Tento tutoriál vysvětluje, jak vytvořit novou ASP.NET Core MVC webovou aplikaci pomocí úvodní šablony, jak ji nakonfigurovat a spustit. - -### Tvorba nového projektu - -Tento tutoriál používá k tvorbě nového projektu **ABP CLI**. Podívejte se na stránku [Začínáme](https://abp.io/get-started) pro více možností. - -Pokud ještě nemáte ABP CLI nainstalováno, učiňte tak pomocí okna příkazového řádku: - -````bash -dotnet tool install -g Volo.Abp.Cli -```` - -K tvorbě vašeho projektu použijte příkaz `abp new` v prázdné složce: - -````bash -abp new Acme.BookStore -```` - -> Můžete použít různé úrovně jmenných prostorů; např. BookStore, Acme.BookStore nebo Acme.Retail.BookStore. - -Příkaz `new` vytvoří **vrstvenou MVC aplikaci** s **Entity Framework Core** jako databázovým poskytovatelem. Jsou zde však i jiné možnosti. Podívejte se na [CLI dokumnentaci](CLI.md) pro všechny další možností. - -#### Požadavky - -Vytvořené řešení vyžaduje; - -* [Visual Studio 2019 (v16.4.0+)](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/) - -### Struktura řešení - -Otevřete řešení ve **Visual Studio**: - -![bookstore-visual-studio-solution](images/bookstore-visual-studio-solution-v3.png) - -Řešení má vrstvenou strukturu (založenou na [Domain Driven Design](Domain-Driven-Design.md)) a obsahuje projekty jednotkovových a integračních testů předkonfigurované pro práci s **EF Core** & **SQLite in-memory** databází. - -> Podívejte se na [dokument šablony aplikace](Startup-Templates/Application.md) k detailnímu pochopení struktury řešení. - -### Connection string databáze - -Zkontrolujte **connection string** v souboru `appsettings.json` v projektu `.Web`: - -````json -{ - "ConnectionStrings": { - "Default": "Server=localhost;Database=BookStore;Trusted_Connection=True" - } -} -```` - -Řešení je nakonfigurováno k používání **Entity Framework Core** s **MS SQL Server**. EF Core podporuje [různé](https://docs.microsoft.com/en-us/ef/core/providers/) databázové poskytovatele, takže můžete použít i jiné DBMS. V případě potřeby změňte connection string. - -### Tvorba databáze & aplikace databázových migrací - -K vytvoření databáze máte dvě možnosti. - -#### Použití DbMigrator aplikace - -Řešení obsahuje konzolovou aplikaci (v tomto příkladu nazvanou `Acme.BookStore.DbMigrator`), která může vytvářet databáze, aplikovat migrace a vkládat seed data. Je užitečná jak pro vývojové, tak pro produkční prostředí. - -> Projekt `.DbMigrator` má vlastní `appsettings.json`. Takže pokud jste změnili connection string uvedený výše, musíte změnit také tento. - -Klikněte pravým na projekt `.DbMigrator` a vyberte **Set as StartUp Project**: - -![set-as-startup-project](images/set-as-startup-project.png) - -Zmáčkněte F5 (nebo Ctrl+F5) ke spuštění aplikace. Výstup bude vypadat následovně: - -![set-as-startup-project](images/db-migrator-app.png) - -#### Použití EF Core Update-Database příkazu - -Ef Core má `Update-Database` příkaz, který v případě potřeby vytvoří databázi a aplikuje čekající migrace. Klikněte pravým na projekt `.Web` a vyberte **Set as StartUp Project**: - -![set-as-startup-project](images/set-as-startup-project.png) - -Otevřete **Package Manager Console**, vyberte projekt `.EntityFrameworkCore.DbMigrations` jako **Default Project** and spusťte příkaz `Update-Database`: - -![pcm-update-database](images/pcm-update-database-v2.png) - -Dojde k vytvoření nové databáze na základě nakonfigurovaného connection stringu. - -> Použití nástroje `.Migrator` je doporučený způsob, jelikož zároveň vloží seed data nutné k správnému běhu webové aplikace. - -### Spuštění aplikace - -Ujistěte se že je projekt `.Web` nastaven jako startovací projekt. Spusťte aplikaci což následně otevře **úvodní** stránku ve vašem prohlížeči: - -![bookstore-homepage](images/bookstore-homepage.png) - -Klikněte na tlačítko **Přihlásit**, vložte `admin` jako uživatelské jméno a `1q2w3E*` jako heslo k přihlášení do aplikace. - -Startovací šabloná obsahuje **identity management** a **tenant management** moduly. Jakmile se přihlásite, budete mít přístup do nabídky Administrace, kde můžete spravovat **tenanty**, **role**, **uživatele** a jejich **oprávnění**. Správa uživatelů vypadá takto: - -![bookstore-user-management](images/bookstore-user-management-v2.png) - -### Co dále? - -* [Tutoriál vývoje aplikace](Tutorials/AspNetCore-Mvc/Part-I.md) diff --git a/docs/cs/Getting-Started-Console-Application.md b/docs/cs/Getting-Started-Console-Application.md deleted file mode 100644 index a6ee50dbe6..0000000000 --- a/docs/cs/Getting-Started-Console-Application.md +++ /dev/null @@ -1,181 +0,0 @@ -# Začínáme s konzolovou aplikací - -Tento tutoriál vysvětluje jak začít s ABP z ničeho s minimem závislostí. Obvykle chcete začít se **[startovací šablonou](https://abp.io/Templates)**. - -## Tvorba nového projektu - -Vytvořte regulérní .NET Core konzolovou aplikaci z Visual Studio: - -![](images/create-new-net-core-console-application.png) - -## Instalace Volo.Abp balíku - -Volo.Abp.Core je základní NuGet balík k tvorbě aplikací založených na ABP. Takže ho nainstalujeme do projektu: - -```` -Install-Package Volo.Abp.Core -```` - -## Tvorba prvního ABP modulu - -ABP je modulární framework a proto vyžaduje **spouštěcí (kořenový) modul** což je třída dědící z ``AbpModule``: - -````C# -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp.Modularity; - -namespace AbpConsoleDemo -{ - public class AppModule : AbpModule - { - - } -} -```` - -``AppModule`` je dobrý název pro spouštěcí modul aplikace. - -## Inicializace aplikace - -Dalším krokem je bootstrap aplikace pomocí spouštěcího modulu vytvořeného výše: - -````C# -using System; -using Volo.Abp; - -namespace AbpConsoleDemo -{ - class Program - { - static void Main(string[] args) - { - using (var application = AbpApplicationFactory.Create()) - { - application.Initialize(); - - Console.WriteLine("Press ENTER to stop application..."); - Console.ReadLine(); - } - } - } -} - -```` - -``AbpApplicationFactory`` se používá k vytvoření aplikace a načtení všech modulů, s využitím ``AppModule`` jako spouštěcím modulem. ``Initialize()`` metoda spouští aplikaci. - -## Ahoj světe! - -Aplikace výše zatím nic nedělá. Pojďme proto vytvořit službu která už něco dělá: - -````C# -using System; -using Volo.Abp.DependencyInjection; - -namespace AbpConsoleDemo -{ - public class HelloWorldService : ITransientDependency - { - public void SayHello() - { - Console.WriteLine("Hello World!"); - } - } -} - -```` - -``ITransientDependency`` je speciální rozhraní ABP, které automaticky registruje službu jako přechodnou (více v [dokumentu vkládání závislostí](Dependency-Injection.md)). - -Nyní můžeme vyřešit ``HelloWorldService`` a vypsat naše ahoj. Změníme Program.cs podle vyobrazení níže: - -````C# -using System; -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp; - -namespace AbpConsoleDemo -{ - class Program - { - static void Main(string[] args) - { - using (var application = AbpApplicationFactory.Create()) - { - application.Initialize(); - - // Vyřeší službu a použije ji - var helloWorldService = - application.ServiceProvider.GetService(); - helloWorldService.SayHello(); - - Console.WriteLine("Press ENTER to stop application..."); - Console.ReadLine(); - } - } - } -} -```` - -I když je to dostačující pro tento jednoduchý príklad kódu, je vždy lepší v případě přímého řešení závislostí z ``IServiceProvider`` vytvořit rámce (více v [dokumentu vkládání závislostí](Dependency-Injection.md)). - -## Využití Autofac jako frameworku pro vkládání závislostí - -Ačkoliv je AspNet Core systém pro vkládání závíslostí (DI) skvělý pro základní požadavky, Autofac poskytuje pokročilé funkce jako injekce vlastností nebo záchyt metod, které jsou v ABP užity k provádění pokročilých funkcí frameworku. - -Nahrazení AspNet Core DI systému za Autofac a integrace s ABP je snadná. - -1. Nainstalujeme [Volo.Abp.Autofac](https://www.nuget.org/packages/Volo.Abp.Autofac) balík - -``` -Install-Package Volo.Abp.Autofac -``` - -1. Přidáme ``AbpAutofacModule`` závislost - -```c# -[DependsOn(typeof(AbpAutofacModule))] // Přidá závislost na AbpAutofacModule -public class AppModule : AbpModule -{ - -} -``` - -1. Změníme soubor ``Program.cs`` podle vyobrazení níže: - -```c# -using System; -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp; - -namespace AbpConsoleDemo -{ - class Program - { - static void Main(string[] args) - { - using (var application = AbpApplicationFactory.Create(options => - { - options.UseAutofac(); // Autofac integrace - })) - { - application.Initialize(); - - // Vyřeší službu a použije ji - var helloWorldService = - application.ServiceProvider.GetService(); - helloWorldService.SayHello(); - - Console.WriteLine("Press ENTER to stop application..."); - Console.ReadLine(); - } - } - } -} -``` - -Stačí volat metodu `options.UseAutofac()` v možnostech `AbpApplicationFactory.Create`. - -## Zdrojový kód - -Získejte zdrojový kód vzorového projektu vytvořeného v tomto tutoriálů [z tohoto odkazu](https://github.com/abpframework/abp-samples/tree/master/BasicConsoleApplication). diff --git a/docs/cs/Index.md b/docs/cs/Index.md deleted file mode 100644 index 875f4e066e..0000000000 --- a/docs/cs/Index.md +++ /dev/null @@ -1,25 +0,0 @@ -# ABP dokumentace - -ABP je **open source aplikační framework** se zaměřením na vývoj webových aplikací založených na ASP.NET Core, zároveň ho však lze využít i k vývoji jiných typů aplikací. - -K procházení dokumentace využijte navigační nabídky vlevo. - -## Začínáme - -Nejsnazší cestou jak začít nový projekt s ABP je užití startovací šablony: - -* [ASP.NET Core MVC (Razor Pages) UI Počáteční Šablona](Getting-Started-AspNetCore-MVC-Template.md) -* [Angular UI Počáteční Šablona](Getting-Started-Angular-Template.md) - -Pokud chcete začít od nuly (s prázdným projektem) tak manuálně nainstalujte ABP Framework s pomocí následujících tutoriálů: - -* [Konzolová Aplikace](Getting-Started-Console-Application.md) -* [ASP.NET Core Web Aplikace](Getting-Started-AspNetCore-Application.md) - -## Zdrojový kód - -ABP je hostovaný na GitHub. Zobrazit [zdrojový kód](https://github.com/abpframework/abp). - -## Chcete přispět? - -ABP je komunitně řízený open source projekt. Podívejte se na [průvodce pro přispěvatele](Contribution/Index.md) pokud chcete být součástí tohoto projektu. diff --git a/docs/cs/Nightly-Builds.md b/docs/cs/Nightly-Builds.md deleted file mode 100644 index e69588f5ff..0000000000 --- a/docs/cs/Nightly-Builds.md +++ /dev/null @@ -1,26 +0,0 @@ -# Noční sestavení - -Všechny balíky frameworku a modulů jsou každý večer nasazeny na MyGet. Takže můžete používat nebo testovat nejnovější kód bez čekání na další vydání. - -## Konfigurace Visual Studia - -> Vyžaduje Visual Studio 2017+ - -1. Přejděte do `Tools > Options > NuGet Package Manager > Package Source`. -2. Klikněte na zelenou ikonku `+`. -3. Nastavte `ABP Nightly` jako *Name* a `https://www.myget.org/F/abp-nightly/api/v3/index.json` jako *Source* podle vyobrazení níže: - ![night-build-add-nuget-source](images/night-build-add-nuget-source.png) -4. Klikněte na `Update`. -5. Klikněte na `OK` k uložení změn. - -## Instalace balíku - -Nyní můžete instalovat náhledové / noční balíky do Vašeho projektu z NuGet prohlížeče nebo Package Manager Console. - -![night-build-add-nuget-package](images/night-build-add-nuget-package.png) - -1. V nuget prohlížeči, vyberte "Include prereleases". -2. Změňte zdroj balíků na "All". -3. Vyhledejte balík. Uvidíte prerelease balík formátovaný jako `(VERZE)-preview(DATUM)` (např *v0.16.0-preview20190401* jako v tomto vzorku). -4. Můžete kliknout na `Install` k přídání balíku do projektu. - diff --git a/docs/cs/docs-nav.json b/docs/cs/docs-nav.json deleted file mode 100644 index 6c05d77dcf..0000000000 --- a/docs/cs/docs-nav.json +++ /dev/null @@ -1,376 +0,0 @@ -{ - "items": [ - { - "text": "Začínáme", - "items": [ - { - "text": "Ze startovacích šablon", - "items": [ - { - "text": "Aplikace s MVC (Razor Pages) UI", - "path": "Getting-Started-AspNetCore-MVC-Template.md" - }, - { - "text": "Aplikace s Angular UI", - "path": "Getting-Started-Angular-Template.md" - } - ] - }, - { - "text": "Z prázdných projektů", - "items": [ - { - "text": "S ASP.NET Core Web aplikací", - "path": "Getting-Started-AspNetCore-Application.md" - }, - { - "text": "S konzolovou aplikací", - "path": "Getting-Started-Console-Application.md" - } - ] - } - ] - }, - { - "text": "Tutoriály", - "items": [ - { - "text": "Vývoj aplikace", - "items": [ - { - "text": "S ASP.NET Core MVC UI", - "path": "Tutorials/AspNetCore-Mvc/Part-I.md" - }, - { - "text": "S Angular UI", - "path": "Tutorials/Angular/Part-I.md" - } - ] - } - ] - }, - { - "text": "CLI", - "path": "CLI.md" - }, - { - "text": "Základy", - "items": [ - { - "text": "Konfigurace", - "path": "Configuration.md" - }, - { - "text": "Možnosti", - "path": "Options.md" - }, - { - "text": "Vkládání závislostí", - "path": "Dependency-Injection.md", - "items": [ - { - "text": "AutoFac integrace", - "path": "Autofac-Integration.md" - } - ] - }, - { - "text": "Virtuální systém souborů", - "path": "Virtual-File-System.md" - }, - { - "text": "Lokalizace", - "path": "Localization.md" - }, - { - "text": "Zpracování výjimek", - "path": "Exception-Handling.md" - }, - { - "text": "Validace", - "path": "Validation.md", - "items": [ - { - "text": "FluentValidation integrace", - "path": "FluentValidation.md" - } - ] - }, - { - "text": "Autorizace", - "path": "Authorization.md" - }, - { - "text": "Ukládání do mezipaměti", - "path": "Caching.md" - }, - { - "text": "Audit" - }, - { - "text": "Nastavení", - "path": "Settings.md" - } - ] - }, - { - "text": "Události", - "items": [ - { - "text": "Event bus (místní)" - }, - { - "text": "Distribuovaný event bus", - "items": [ - { - "text": "RabbitMQ integrace" - } - ] - } - ] - }, - { - "text": "Služby", - "items": [ - { - "text": "Současný uživatel", - "path": "CurrentUser.md" - }, - { - "text": "Mapování objekt na objekt", - "path": "Object-To-Object-Mapping.md" - }, - { - "text": "Serializace objektu" - }, - { - "text": "Serializace JSON" - }, - { - "text": "Emailování" - }, - { - "text": "GUIDy" - }, - { - "text": "Vláknování" - }, - { - "text": "Časování" - } - ] - }, - { - "text": "Multitenance", - "path": "Multi-Tenancy.md" - }, - { - "text": "Vývoj modulů", - "items": [ - { - "text": "Základy", - "path": "Module-Development-Basics.md" - }, - { - "text": "Zásuvné moduly" - }, - { - "text": "Nejlepší praktiky", - "path": "Best-Practices/Index.md" - } - ] - }, - { - "text": "Domain driven design", - "path": "Domain-Driven-Design.md", - "items": [ - { - "text": "Doménová vrstva", - "items": [ - { - "text": "Entity & agregované kořeny", - "path": "Entities.md" - }, - { - "text": "Hodnotové objekty" - }, - { - "text": "Repozitáře", - "path": "Repositories.md" - }, - { - "text": "Doménové služby" - }, - { - "text": "Specifikace" - } - ] - }, - { - "text": "Aplikační vrstva", - "items": [ - { - "text": "Aplikační služby", - "path": "Application-Services.md" - }, - { - "text": "Objekty přenosu dat" - }, - { - "text": "Jednotka práce" - } - ] - } - ] - }, - { - "text": "ASP.NET Core", - "items": [ - { - "text": "API", - "items": [ - { - "text": "Automatické API řadiče", - "path": "AspNetCore/Auto-API-Controllers.md" - }, - { - "text": "Dynamičtí C# API klienti", - "path": "AspNetCore/Dynamic-CSharp-API-Clients.md" - } - ] - }, - { - "text": "Uživatelské rozhraní", - "items": [ - { - "text": "Správa klientských balíčků", - "path": "AspNetCore/Client-Side-Package-Management.md" - }, - { - "text": "Svazování & minifikace", - "path": "AspNetCore/Bundling-Minification.md" - }, - { - "text": "Tag pomocníci", - "path": "AspNetCore/Tag-Helpers/Index.md" - }, - { - "text": "Widgety", - "path": "AspNetCore/Widgets.md" - }, - { - "text": "Motivy", - "path": "AspNetCore/Theming.md" - } - ] - } - ] - }, - { - "text": "Přístup k datům", - "path": "Data-Access.md", - "items": [ - { - "text": "Connection stringy", - "path": "Connection-Strings.md" - }, - { - "text": "Poskytovatelé databází", - "items": [ - { - "text": "Entity Framework Core", - "path": "Entity-Framework-Core.md", - "items": [ - { - "text": "Přepnutí na MySQL", - "path": "Entity-Framework-Core-MySQL.md" - }, - { - "text": "Přepnutí na PostgreSQL", - "path": "Entity-Framework-Core-PostgreSQL.md" - }, - { - "text": "Přepnutí na SQLite", - "path": "Entity-Framework-Core-SQLite.md" - }, - { - "text": "Přepnutí na jiný DBMS", - "path": "Entity-Framework-Core-Other-DBMS.md" - } - ] - }, - { - "text": "MongoDB", - "path": "MongoDB.md" - }, - { - "text": "Dapper", - "path": "Dapper.md" - } - ] - } - ] - }, - { - "text": "Pozadí", - "items": [ - { - "text": "Úkony na pozadí", - "path": "Background-Jobs.md", - "items": [ - { - "text": "Hangfire integrace", - "path": "Background-Jobs-Hangfire.md" - }, - { - "text": "RabbitMQ integrace", - "path": "Background-Jobs-RabbitMq.md" - } - ] - } - ] - }, - { - "text": "Startovací šablony", - "path": "Startup-Templates/Index.md", - "items": [ - { - "text": "Aplikace", - "path": "Startup-Templates/Application.md" - }, - { - "text": "Modul", - "path": "Startup-Templates/Module.md" - } - ] - }, - { - "text": "Vzorky", - "items": [ - { - "text": "Mikroslužby demo", - "path": "Samples/Microservice-Demo.md" - } - ] - }, - { - "text": "Moduly aplikace", - "path": "Modules/Index.md" - }, - { - "text": "Architektura mikroslužby", - "path": "Microservice-Architecture.md" - }, - { - "text": "Testování" - }, - { - "text": "Noční sestavení", - "path": "Nightly-Builds.md" - }, - { - "text": "Průvodce pro přispěvatele", - "path": "Contribution/Index.md" - } - ] -} \ No newline at end of file diff --git a/docs/cs/images/MonthlyProfitWidgetFiles.png b/docs/cs/images/MonthlyProfitWidgetFiles.png deleted file mode 100644 index c3e4d6f1ab75f1bbff14444593c42235b80a9cad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4020 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 bY>8|$=d!JsH37~soXgV8%Cr)8Gw#0tLbcGA diff --git a/docs/cs/images/authorization-new-permission-ui-hierarcy.png b/docs/cs/images/authorization-new-permission-ui-hierarcy.png deleted file mode 100644 index 07abfc7132ac96b65b601d5a0b6695cf044c3442..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43699 zcmdqJcTiJZ*Efupm!cw|BBBsLMNtIA&_fj!Lq`GW5Tr{LLvK-#E_An%FSec#VJ-^?@f&3yCCJJ0(E95`p6oPE~bd+qi6t=~$}D-|g1CFV<1 zR8+L`axc`VsLuVMqB<*n;VIReNx(3p_Ob2|4Q3|^1S&#m8f{q`k_IYgH3`C>?Vi{`_a z#v6sVql^HgD-3movDCQ+#8fA0K$*+c>J{ol{}?>^;!Z{lQVjHHL{Z8jXWp-;D(VhxU_!}O1| z{;OABxedq5VW&e-siWymDQ`AoWW(tK{&+5ckAyg#uk;J4KP^eA+g+ghg1!%?&|rOElGn)P}QH(4`8t78;1{CExqGY3&FJoy<9J8Vy9KW&?81+mw!5K>6T zrna=emCNNlUfv&4UEK69rh>|andLA1tPYObGuCYPkR@< zS4GcyUetBC;~I9n2x$7N%3%>kYlYd=V()AI^Zy+paG<*T408rJy!ebd3mgJ3fGJ(M za@Cj)INZM53<3^MUj#yc!^glYz)Yl~y81u(Mw7M$(L!%4<(9(N1a{n*dp>fkdOLiR zBS7m*T>0r!3@h+{Q_n<7O^_Kn9R9TQIa}G_vI-@=YKNYny|&40))MXrEs^}`-YUp! z-y1@tvaZ9rFoa?%Pip46g94|_r&K<6wEHsZ@6PEOtf#N+* zN5|kUc71`6e2~k?WC2Eg#LLOVnvbvNGpiW`^WBYZzgSJ+UQu#48)=#lBF1Ytrrz(c z*Bqw#cx`-VlRdd4je{ACR^Ih%Vi{MhoqXct_-OH_NB;Szz+F#G)A^B~*CLRPtwlde zl}tar5FsvH6YqUe#1rnQ54O+Tya2T7Ww!{EB){OSeHag$H3vQCAZly))T~uozv`*a zL~&d&F5sC(4){Ac##U>6IsichM{V%w9Qa z|JhD<6+Dg_537BJ!1J0sB7~%U$*zC9^}7pNJW^>ZU0nB;*p+oroxoz_nwrkBb1<>C zZkHUcJ<+&ITk;@GknREEeL+Ge4```VGg5W4d`!wxN7M2?sY}vt`)^>4K=309ULw$#b9O`y*$!?y${!B>6k`0Gr zbIC;P?sjR8hR$LHj;BQMnttP91feQ_^{n5P}F}~%Gr?Y%~Ml< zYSgrMH!pJkx>M;&c8Y_^ahO`m9HLSM!>n1vfWHqGq%r5P-CsWux6oE zKh&3iN+paAxQu9g=F8G6JhHJDUb{nF5G~(r?9sSk&{a|EycF-XD(Un}oGzFA?9J#1 zbSUq#0X}`V%q%jPwKPGLnAi-;k!{@F;+;XALQ%+iC3 z;&t8dfG5jQ=VtT!n;e%zUr>F^5H^b#hOS_mD6 z0nR3ol*Z9h)g$`YAH{*4>x@fCb(%OyRew(3iai~T=MB{>7qqiM>A5&%ll7etGA@r9 z;44`0gNo&w*Wf&s3t}&Hy5`vpC(5>Yt(jC50%+zc^2BlDg51dtUznv!rl~h+*%D%c zF6YDc%-bn8t7}JnGseslhwZG1abbZwf-G;QEEUDRQAsR! zwDr{5q^aVPy!6f3^SPX9J@y!fp2$sjPVHvBe`t_qo&9m!;B$U=Z@5QsiKv~0i`H0YBf}{?Nu%-9&K^Cu3Kn)#Ea& zkCE?SJg1pLq;f+^Gv}?!BnxqH8NXwjZxkaOqzkztVsH)c+P@A}#JUw*ub!Y%Q{BAz z!zzuv;cv;cOWn%ot?ItK0$%yY-Dl)$i<=W%1b9Xqjl@Cs5mJYMQzl71d9qM~hso znmQj`DtI(->IYxWSl1nSF8V;enQBieU z_irB1_W)+xL~#trFdM#(J*0J9&Y0kS=Aq1m)>2h)%vrM!_GxrqH%xm_ot`FOw<Lq}dA%L)>&!7pnAeH1TiaO>jG zDLAX7?ez1Tx^B%%W{dMg@oD)1Q$gYg=my+zqCyo78dBVIWC48+9cdezLMmIhGr~WI zo_oj)k1BQm3^(j(U#ur?Z{gw~|LDo1g)wtuq|e{?oC5P)0$L=qP=t;uaXyq2oF5Er zS2Yq*O8@3x`p`FYkEazs+;WK`*m78DKeB_7fkn83FyetMgo}wz3AT z1ylRfMvM3479`3&eyHdEJ3?e=&WjdU(z`_=306I)`J??NroCiZu`=@B>?!fUv*r0=7ydz7GU93lg4CK44cdNL=khSg|O$mg7#+OfsmeR#uhdayJ9o25Hs6~kj zt5+3|;IDTYyW_{wdce@0o;y@j@9FrFFA`rr;aHrBmKJlMi$u2ZJ=9y_)CQU(rIOWBR63nZx5d= zap)X=WXq>%bE_GZTK3La^P9S%P{!W)#fqMjjwS<|VPShxEA3f!_|A0T+3Rp6_foWU zm|pqHX*wl~w$Jkt9^T9ik99~~Pb2&Yfw=d{vPXcSYS7M*?fim=4src6EKG|} z)=}!3;~lqK%r|fTL~%qrujompSMw$&f!aeR6VbTdS-X#v(acxK@j%gILfA{so3+4u@7m3uhR$HG>vk)>~LF@CYo* zTAb%0E)cG&bN_a3=vYtav~FU0q`>#V^Q2g$1%Mw<(jt&Ex1fgoSEXj2W57?q(3SM6 zpmRI{T0PclLm!be0>r?w3bevn$DS3zP7GtKT#~Ppj1j>ln%L*v6zNs}y0;q`cVIFZN&P#eU|6{#Q%kf1Q5Xg| z(|Q3XU=OadcBKHL#ELXR0RHeTS9?p!IGycbGM5~+5V0-(qmlMub4!ixGxx>SfC|2Z zdQ0@zKnUHCDl@Fo&d#D>=V?=O@$vpE_cDhHRw7|}IYPi)!`pc*U;Qv?Vl>M@vGsxQ z!vFMIT(F?Vu{Stg}Xzb2t{iOH}@$z>scW>vG_K$G1?(x)f z9`-HVVhNj-G)%(RWtQ6T<>hS?|q0F^QFNuF{^c1etS zoyp?(tQs8<(0abxa^h$rsW4e#uC5Qn0I|*u7+vb}Ght!OslHX+m+V6w6HTDc^sK~T zTX<{Q{NvTh>Hf0zxhKO?!n}3o72HpX0b%*D z1@v8LOMnJu6SV6@NEXNB6^JP1Wi4dTYOP!I^>?npFnyg(v|XswWy$d9$VW|&%eP8s zN#oRS)1&Lzz?)Ba$SXg4_0++{A&HA~Wtloce=)3RshtOp&?O&c9ca zv|b;4P*@j!oYe%fb~9-*8L+E&Rx*>dGKH?vM$Ql0)7v(kwt{3xL6YACCXQRPM%|7C z1YN<e?+A64>Ww71URbR2gYmBVfXvM8zAHTIwH{lA;6_(RA9%7j6@U5JwZVbQYSuU`Itj2 z<0%}YsEA$7YB}}MtQUQ(QR|mm|2k=oL2bTI`G@+U3HhHx4>k89A-IrpyB@wl2|nba zN3Qr0g*?^Vg`J{Duy9Q!3mkB;W13{s23+G|?DvW1pKK zr!}7socws9|mzbg8vsD`v%bKx|{8aC#n zDZ?Yc<#Z$C=s6RVrBqn*l{(l)1G^+siK95ss4yS`S-sQ441CDd=ln!e<-3n2$Zpm> zEnwZVu#x&_9ZVi^`#U+UKreF_Fsq9L-p`-6Mzu5q@;D;@u$;u;g0N}&1$#e`djNOZ z6yyXJo9s2Xr*R7v8g$}epAO&}@d9R{yK#1(hYq5lEg+_IsT3lr8B`}!cnkXD=;7XQ zHP=uOkIAe>y?%q+et6`1X^YRdlZpqbYxahu(b66by8iV&QrhaTVgIp6`{T)uMp5=Z z%gh*g2Lvw_?h3X5&6T;>i|WsIMFCqEExmo^Q}@I6d&cjLnf~37g#tZ`a&zcmUhCz< zcRtimHgdpmH-r4TB}D3KbF^SJrmE<#RoFi~V>8GY`4{i9eMm$8hxrnVqi~^SU1y-`X7P{M;AWb*(Qd_nlxd$9b+U%nIg2r=nHdT;bD-Vke=HV!lkmXxP$v z&3(7#t?Zl!6yK^CF3RO>H8LJ2GQyefHTuWpV(JbmXPF-wj7*Ga(&Mh%Pi#TNBf8+~ zBbkKinUvg^+{)u>E_x9*Mb-)@yng`aJ$r@Y)UPieeyA&o5fSFeWzm!T;JS6s8gR&Z zUAA=-oDLTWzxlKC{k+8*60ANSNXBC~eusY*$+~8Ns#H!IsV-crUMqN5uQPJ?>$scS z5UM*#nxpcM3-`SRuRU_k61oD00&s$0P(P7kx4gTUX@Zm#H`mH!2-vw062q><9*4a1 z@=cgZ!L(YTH&l$t66;J}c%fSMDDI1+A1ebhUGot;d_`9yQunTi1)0%=xMsi0)qCDo*{whqjiU_u+V0(F{>vCS&0)nva5lC~yNZjUkch4bfe#Ph{>uBBj2Q;)CbZls+9~@<0?PZXeC6)# z$=(uA03QM1i9ksAsvdfKg(F;-?>*p?V_OJz6Q`-E6emXc z)kg9g)eWz>37!`vKIF&Bqr2T0H>YnVM5MIFo4>h^d@pa6j4#_{+)mgwK?X1Ol>3$0 z-6hJcOGLs2agm}qq=YS&!-bBEexW+9bzR#tV~w^f)jG(`DBIu0$XWGpkz7vhb2{oG zJO!+3VRkC#qr9!mwPta{k$`=u*+UGMH)8Ko0>i+y>uFixP-*&e82h2}uiR_KX?_9s>dlh~? zVeMY|?pnTqL7gaM@b)3@)xpR3**SdqnyDcsd^hqp%48*yI@l{pDEQv`=aN>b&xZE7 zZr(GyG2>aChH?!-kuJ9PZ5V)MXIsr-gHd@au7qKB9>6|LTglRnlxaVjm~qnqA}x_M zNZ*>h60i|ruC@dCG@UP@E;WGmxuM{~9cxQ`h4ax+bd`*}`&v&Sio=n=?Nczsn3qqA ze{*YVa*$IJN;GN)$_{N)Qc1J{^{`C+U?Wt~S5XD+KQOixpU{{)2FnLAoNENTCL39jG_cqk#+__q-5& z8H$6=q?Fb3`)R$Bk>H2^tr1<1s;65Fa07~q=O ziw+6DCpL*&<7yeVyW&>L*}>2cnbr^J)|Gz&KJzwl0rx=j^841!?=4=C&>b4irtG!J z_i0{KCdlgDs%_I&Tz1MU@QP;(=o}xh)UF1xGo>uUEcTSs#&!@OU032UGr@78dCz%> z7rG@R^Uz(FDlY215)Kz}s`+LkYta2O+#9e*JIq7-^akZcUjJyY22G&|@w;9Uk(4Ze ze0SO_H-Ztas0o8@+6IdW&;r9fFwSLUz&928-J{?vQgAKTDoH{r{&1~Tx(!hnegh87I1 zvreH*`c#j+`B$OB(g$%JYn;D9PS~Ajk8y=yh?um#P<^eDOk{S}GII(junOXXBp#*? z%9 zsTPcr%N-c`KUx4VbSt?v^Lrk1q@i3TCHIr}udVbfp>FhPeMNs&&i;{joG~c~%My$8 zR#eUi(1BDt>tiwKVL_(+`mv@24p!b8O}vX@ag9{A`)@C6m$K&bmY4cffQ*xrri%f8 zArR!G7wmxuJeYBBfTW|Zpg+2vRz;mxWoF()(}KHn$(Xlh7?a16K=)#XmkeaJFunfU zEb!y4bpP&w9Ob-}em8eYCiQSCZUy}#%CTv}9ll(_PG?V9M{VVReuYd_j<^Dv& z1gRozzq*b>((}eR=s*3Fx!xJLf`nXK+ILpIee}JhPEkaxp?KlJ2|~;7(>+S|`&){? zCq~Bf55`$|0H$WT^e2KnxksFO_9x5zE#?1o2AqOF8USZS^*r$p1pD^z|4+~h1~T9K z#xf^3qnV5;MD8WrzEFA;v%+o=qXEK;_b7;b4PdE(46&h?UiJ5=;Ac*!Z}zq|$&!Cj zeGK`7sivNX>>{Jo`m(wkhJmOg1Wa`0GY18zJ+j*U-f|iV_$nqd%(#cApW19)0zZi z7JvNx2tZjLou%p431I-pa=&IxVQCkEgnR+3x=#4Jrq@G4WrQVjsq&0NBR!0?79~7Y z;JQx~g@K_Nk6I_UcZ$9bD@tntq~u_JnSiwVn27+=R&*8*bo`%=CGMkAb2>N$K{wUp z(U2g>pIxuG^!(*8$T*^=!ELpPg0d9uT%f!FMLKhq0sckrcxmE+Dsk|X$UcY{k*cAW z1`>t=C=L$iZ*PrtGQ1uY#Mi#>qNxd+EqzOfPj~qe($ISC1{{>lZjnp~6LBJz!PZ+ph%YLfU8@W!8MO zPAg-Wjj=jT!3Q0Q(f1@3%!>X5+y%NUR)(5Cl?oRB<%^1ds7*3S9WT+Oe936@);#&Hg5Fn5+G`&`!bqvh40z@n`=2rK>0bF@Xh>)p}zA<ux>LuL1mfB_%>LZv2*31+u;VLj7of_NvA zlfu_@@kLoA7m@B2*V{=npLc>0%4SclrR_AOt8TyiR{J=n0= z!gXZb+^+IV_hY@^3i2J`!KylrFLuq9weuF#))bX}?gEq!8Hk880HSKlI{OxCV^42L z)_GNBX^93A3@;fTd2Ot*^N;MJ$(L}p^vTwP6&k=?+W@26vK^cR*e80sF0nlr8A%sT zuFRN+%~#k}r{<0(@ON!)IAu-51(mH> zp`Y(GwB3N=BHyYZ62jB%A8!11{M?${6`sx|V5> zmpL8`_1bXXL_A@4HNdL@p5PZ66nFT-+T89^Li1f~));Z&B(CXiKvF4Y+yZ-)=%=^$ zxJs-lCnsiwckXzfCrf3QJTJ6=9d6oS1i)vLPAb)VeE=IztRg^(6?%XSVO5NASqlT! z?&9|}H*vB3ssnZbfa)4O3ex0J9v^re7_rO7K)&#h?_zc`O|mrWG5B+fK|Q;b$)&Wt*KGWX^kx$eZK^$&PuB= zqHIlPZ@|-*g7B@<2k=6hzAGUREBgCA$A=c~xPub(3=5eZSjNW4`WDa_;QCN;ZXBsr z-fQm6wh4BswEL*K)aIreaUekfPa{A;aNqE$2v~;ra9=_vCE6i(bVO=&b-b@Q$Gg>u z1K#=@bI}8u5rs18jlXZ2giSoi{xKUam9DZ!@!~f(Pz0}n2Vvg%nSZUiV2XG)Pw+8< zbh5z4f-;#hMm|Q5;A7%nrOwc>sO%M|8cGn`78ymb2}`{An!G_8Irh53fnqol!vC1PynUT1Vm>aQ6?8!Kza>)f3|joP>9bcz(dG6 znb{+%Z7o|s1WvjROlo?YjzhV-A>8IdD=0eEx*(6M2wZ(RvF-hWOUY!fjex>L%SmaM)m8dMXKUK} zVg;C15Cj0Arge!C3Chz+ zY&biAwFomJUPDrq9Drk9@40W_QbN`mp4c69r9_G&%oQ7qky6QrId#u%fAMH!AWdeVvFq=yLz;ZQvx=&xr-0?g)QQi_zo$Y)>N}@|;lC zRoZnJn=NX`kxfjCxDHXE!ZpF?=DdpmhYNC?h*>KTg-GH5?RJ1U`5-eC^Eo zsnjv{s~s>BDQ+9EMuv0iol$jhHi^et?{1tEpCKryu=W$)7$fDHK^DmghHPRY&?~i7 zwZcN;@32P%NwyNF0ai0v<8T1a^KgrW%F01K*CUo|7Rdp-^Lh#9Z!+gQL6X+XS@3X2 z!5&3b>kmD{NE{mEi|3I%rx!WQwy(-damROBK@Q|Ygpa-LLdhEoHsnCOv zn+->9-aX{>Ry!udNr91_B_>>fVO-C*Ln_Z&d@aQ{W=GnQ3_6~9th z5Fwp>u&N#Irc{#p2_uoTh$8qIA&%d#Hqhi742D_jUspPspK`SNE4)?&7Tf|lfow~P z(+C@0y@xCz#1$IU8Gc1QyiWvB8kAHoq&^U7NtY836HWeR(i1Vh(|LQO2d|S01$kIw zqXvzFw6gDq9CKfqb)S7$d+;>vdQTNdOI*$G$-KHJz9QGV_EWUK3C1x!nYoSOQU%h(T zCrPitm2uKW^o!&ts0VB6bnP4&@M29LR%O1nQI3I+@c32i4(89LunwJ=X&MTpzSUC1 zNVid}>IR4|zCU#rM0Xr`uuH1QxbK7xsxtdF&rnG!%^o6r$&6y>7Jp0yY4mR%3(NzH ze?5-LCIvNoPeO$PVP;K`9en_hX0sVBCcWS@FIaGwPJg>M>!9=e@=Sz#BsjdS;5`KFEwo{|zrOA8;ksx$^g~7U#xA>s)H`*|~n_{sUIL^sRbl8*?ok z>v+eKZ#IY?iHg$^zDR0jRMyKs`~%=`fY>T5AEWy&-G~#p6LPOX^u{2Md<%Q0uYKa> z(>D}#kfM!Ae1~$GzBl$v(tE$Ibqq@)f`^p@bQ+yHD zw8IV8HS$)(W)L3y2Pw*ps_G37F@_iCP72VeakodS(v7SlPE*{p`M1y|jYk=|PPVa* zNfXQK=fajYA5nNBAQt*zF2=C&lOo0G^V=A3kLT4SAYyZYi~ zXnq*E$)nM0cN%Uu`}thfm)i%=H#Ah`(Ix9nF0zLfl@CX^0}`# zno@0CET1|YDLyZ>bNxmw;tl7b_6gRG&+7G)#q_CkJoUOc>l$`%s>@_rYp`lQc03}e ziJi>t`VLK%;^yK(f^U#dEVKr&b($_f1Vwr7A8h(>dWVbh-jq}`g{S#*^&eh^Vhjqs z@W(3u`s2T8Mq!sIyx+eV8OojiE#dT!xa$AGK>=j{zj-Hsx-+KxuO40nn63J+YL9#< zbXX2Rhs|>lE6Ln&_gucoy_QDN#Rls^Ry76L!h9XXcd`fp4;1-KU2c`uX?Q=uq}a}V zY1tD={E5#IPm2mR0tmScpkk$az>*RO)-rA5f&rp!=x{{$KSY|N`>t)$-E@sKtBHmK zRiKJYKNpbUrBpBv0Q6lOCY2xPYUQX2^7B!hLFAs3^R=C*D7EL0u?xq`)_tnAIY8F= zPm2Dd{-4ADu!^9wMoS|;`(C`L>gB&gqmfhXM^j!jK74h=vGYK6#Sac*+eiRr=C5D~ z@;u{aq#ItWM;MqfOsrsN{dZRQ%`RZ@e#t6f!tH^W%YL2ahUbII9a1{t&Ov~Muc|b& zpxZ20<998entE3KljpoZ>&swcr04UyL`&U~P7!tImI`t_$~S@s*0)=#A!v0G7|g({ z@L2}JlZ@%LA%X6Sf}d!_JFhpGq3xs^^*rtMK+8Q`MP1 z1lIOE752;ZQC0!XP;|HdN^UBz>v!R%-8+GdzY$elgd3$qw%>#^+dNx+P01xW>L->NXxHs9Uu2;Q>3dUS=8b!#9CkVO<-Tu=JAflfy78Es%{1{+ z{;Kfb?O_nyWpkdOl;hu+*N@%qiVlXqtET7a5R{uq1xeFB*86(2<}=kV8%Iv6c&}8T z%QOA`eq71XRBGHn=G>Ufh?P(lEx*Uw=9o+;Ji#3-N zJy|Yg`n!{!nl-?;D2#J|yYU=^{hXJir5I7Pj@yl+Snu}y%Rh+*FuLUmJdG4!hNq>g zxQ}q%Gc7!3_ffoY&*O_5%x$x#oo?yN&R1YuxXDq+t0$3A8nIRU1*u)j?o-uz=BWGL z%k^Rn+_)}9ZZ|;c8~*mf;`4^rg()zh7U^tyZ$_Zz&+~)M`^BZfc9*{cU`pkqZ&<2@ z+fElUmD|JYyt!uYNuOxEpK^&yK0bahlUc-bpwnA$W4SgjR_d07%M&L)F`toBE;qu~ zheXqfR{P1CtW$D(oxx($eVX6#MZBo1^qh~~cm!5{Y>&w$9^O}Vq=mHCh_mb6(BHD$ zs7q}xUB;$1c7<{3k&+n=AhN{Nl>6#o$J|R@GLc%PKe(?kPuxtDNI-C0fEH4Aw^vK|{m*0m=i+PLL1ef1jH`oGv8tMdoCrE++ZJe=p*i%ROl#l<*I{(3$A zD|CR*U;lLhT|8Ugc2?^*4naQdwyJ;j299bl8t2O7D6^rY=W=qqQgF{b%+KT!zX!>E zBhn}NF#Go>1~Rkfqy40)Gf0RU!~5fw*2$Dp3AO=GN!O~>K@`Crkw}(DbKg1h>NlS^ zDo#I@-X)Em_eOT%EktqAK`4z+ilkoe7uLqXbF$mtnsLPw!nfd_4`!9)^ccc>tB>#9 zoeg$(>zy_8$90WFJlBo?r(cA-K@d7yu6`lj)96F|!clu(fnzL9E+l&59YR7>!+3@N z8<0E($=I=rg0*i;lNN-D2d&e|1%hPH--a;|Qq5EfjHVucbMi1u=1}AV@hPx++y{&| z4XDw3)Ov=O>$mErs?oj;@;xyTLtpT&5)#E+<6nT$x~Kc?(?#hdV~;AbrLs@>sRF!kB_ zp$d;!yX%_sBM4mfoio7JofwJY*b&)y9SBidH%^1a$|2Vm9JcyCg+f%Q)fwPck1v`_ zvmehIywBs9e%nWB)}h-N+05uys%^!K zsz-xrg6(Rvr5bLfc-}>@CfWp1J)93#yQ9S=kW2^QkWSxV$W5DF4{9EQ+~7GORrGiN z1b?92KpXJG2JWub8c`bTI!5usZ2%vQoC+;QUqV>gvYi=QiuGeQgF9+Ut`eikO*vbX5sMkk+mY*m7z84XwuTtjoK%ZbE8zQpT5=8qB_ zqB!m!;yOlrib5OPOR_AdET0gHrXn6ZyAeez<}%rXVNgEIY%s41Rphf)KjHHLjYM#DKWKR$_%`^?v~ z0RE5v%K}-E+l)nhKc7SN_`|F6+m$D?Ejn5+O_)fSjj zm803l?>?n%=VbCHEnmL;PDneTv~hRpm1+jH7vx^Ri7oTVyYB@to&~{oR_mgXXO}aF zP5VP9tFunO0twGEeBetV= z#(%oibpW5-Sm0yLWIB9zQ6g@KE@U@`p&I#vY>!_T|uzJN{YPUkA#l`w0hLIh zv?bCaUUPoz@I*Ij>!!)-WzPLW4T^fy7#U&W=h|Pi-U2wE$fS0931w+La*YIO@Lo5;T>aaE{yfZ+AI{IBvOB0JH8GT<`jVH%x98-ik#EWaSjWKx z`+i2bC|E1t6Ju8ejzI)&Xo8$vI21LIv~o%XWm6oD@A zU6*8x$~2BuWLLGrcL}m5!E|;{Fj``I2lj0AYgU)(D*Q}uoxKK+@}`VmlJ|+bN=V%r zpW@>MpbBC;N6UG46etj6Ubz3R$Kb|$K%+`NpG=vf%^=g=I0m>X&xPc712<)lZtKmk z76MMxlBTlI82NmcQ0@O=a-*x_{2fn92|fk2Jbz{Egfdi;a^IBC#cUNJ`ma$i3guem z$Mo2%i!HOMOmVOVl&9}=hDJXoiX2Q*YG^@7aj#Y3R4vzRB%V+8XVxRd$8G#T`EwU^ z+~X?Tv2;b(3(uSN#^4b&ENN?l*tFVm8gC1fD^LoZS?&I)VS5ZJGI`;FzaQQCxF8CD z@6iES z19Oz32=nS+_gg>(^#)e7ZP(Lm#fe{#``exQDP&{Cp4U)l=P-4DXYrS8HpxfPJQ~=l zMeW?rC=Tarhi=r?PJCHb)Z2qU3B(x0@t&7;My3cGz*&fu;Z{doS9$@3`%ugG8dgn1 z(iBn{0DTnm=sRYZJ3XSre`(Yy6P#{u%E1R^oId@=Nci5ae{?H^Cf_C5Mb&7xbFO2q9~d#&(!RSfq>m4%KM_(;6VV)roElX7*J=z0~UMy zdANrp8m!-r2OoA}P0z3bo}M}BwKpKve&+myk1YzLxN5W>kyBGI^=@^Ot;h3M#%g-i`;slo*O=*g2)g4LJmva_c=Amh$C27^m0Rk*0-(NqkokuJm z#mwkD<*x!nc%utnX5;ysmQ`EH>w4U+=48A~5M*4H9k>0A(CU8<76+O0AGaRZ{_?L` zclILy(j4M~9{Ix>Tvd58oA6#{Eoc06o&stR$+fpOAE<*qF~&8ro&}1#DJfLttaLs9 z`JRCPSm6f)P!cHAqlgg}%gG|t0?IQ!oWO-Ywcf)z6F*mSD>l&F|PTx-%OCr-y(|qEF3&nU;Jwd zQ}v3ZXoG*a}$U(pHwxCYM~NyFOomUEjY>ey?=~YPQh>EEOrECDY#% zc_X>8$eX0m`n~?`*sY@NWa++S39@g3MHnxj66F2&JUzn-QE>Y}?1>X?>KTBn@__yTVLurQO~h z53#C${p+8#bF#5C0pxaVNK9Q9sh;8i*6SwKe~I0IYAzUM6)Tz~p#ffj>hTL>=QFK0Gwz=j4hDJ#}XT`(-j9fcHgQ_3(fdPKh_B<3|A6?CIY@kl+w~j6)jO zTb8>S#8j5ybpAeIwD9}HhbkDE>p_s4@5#Vtd));#nn1{(ugbX&T+7cy5&lFI)a-%w z6pm$J*=NKXYf#*~xok94J=O2GnZk1!U*9hUkLzG3wVk29)QB|4{X0`VsX8Y>7!{A>Azj&w#CwTVDWf-yrk6g|UVV648ejNAxCoVp}hmjbt6kcNer2ORAYyZ#?jeJDpDtGe31vRu4xJ z-WMMKFXrAlEXuci_cgEuL<9r|k?t5m7*eUBQM$VuhE4^gLwaawX+b(w8ip9ULtto- zZe~A&-}hbbUhB8lj$`e8Z2s{$27Kb4`?>D>`dsIEJ;BEPM}wah@FaYVBGmlo7RNlh ze$7Wu#|Ss_(`$X+48%n^=OkY`u^%Fr(qg(K8$R)u^7IGzc5brNy9>W1=djILt51~a z+^mIFmjZ(?-82T2?gnrdSH8VG`QbO6D@2CyU_PC}W!*etecX4O7KkC3#V+DAe6foz z+PiZ(U$4!z;?A5_>cv8+&7H;pJFIjMF8Xs@d)`B2mzvVrkM;Q(zdxDQHh;QvDha9<8cyxCsw_P0M z39jL4ib>Y%p4fY9#IgANnwCuNBlX*jbn+ae)YF>}JX6CU@psa-pCIN)Q{-kMPJ;!# z1Z&J}1oAr1=-u-kmY6>wXaCDqaKO;2A>oMQKq4%KWo-4;`%QS{Tn;KqZ`cm3e&%fW zHS`VvdGbsbdThQ+?cuE9>iyjI`XWxFIL7J-})w?hcFmL>ssWxSDL zV%LXib;vm<=`xzmPqbFg%~kCW(QYJaCHEGo&+|PW=}b=FF4yl0d^N9pY81EwQo49l zKR&iu9ch$rzo+-e)|Bv`KiI6muBZatswIAJU?8Vd&_!{AYut) z(JhqHiFMpdb&9<{{o9|n%$Vudbdm=`|#MC+gAj z^nIRl`xC`lmCox|Wt*zYky@@BB`R8sac?#7gULEObMD+Ll78UCJiiVnM?KkX5kgh} zEZ4a6xa^tn<2T)SCQ?KYyei(G<-E~1SM;4e??x?=+keivK@kOhTICvsk4^oegY)F$ zdTOFiU7ly1Czl}SQ^k$Tf|6L4!viPb8LE|2#J*R0dXw?QUON-X&b_efNP7c(4;=W5 z?$Tx{P`J_hGCEyy#n2;zP0D|i!mn)T#evkN_aLdA^oB2mH#!g5osTuX$zn8ZXt z3O*^T)~d!X z%5r473)i!6?xo_%Jc+T-;(QOA$toK%S8I}YeSciXe1MERfwj5>EZU_8(>$VW94O6c z!A^P_eI}iVIk*1jgLY7E7M-d_WBpn%jgO84Q4Kg8!s;wd?0HcAnq?}#R{gXRH(iz& z1)OEE_1<2o>>%+XLHO})iR<;}J=`B|=j8WwG%jq(Zz za2oFO>y-sqxdGuOYsD%qd63RFmkl`3lngtOkIl%k1N1;wO%V)TlmoiDX`D5uM>dY@ zN2*7TE;-st`JOjO0r#q#$Ao&`{GSscquEisS3e&MyC_g7LPZKt%X3^cWw?fF3}Bcr0?E)f*BNGCPIzBz5ZZo z5sAL=QwO)!G|%XMT@8f3LcT+nDLW~iS@2oHB;Q!wI@v8zxEXN(VL~wNBhjDa-0Nn(^I^-_;h6F`vSJ1wq)uhj}EY=3>u;6NYm% zo39l4oVCwN9m}HAWzq*EuK#Zw9!#GkYQsCpcCI*q)m!cnW`9^g3YD{2gEf9(c_+{L*C#Zd{YW3+ z?2@-J=?+N)tVOrZU|NI?-6wn7Xv1R*6zK4?yK}ohW#39FeV81d%M<>U;@kel!0K3#UiBQWx{P(L9bCJ?NWP0gw zQeM})8ekOlCnfFLDeM^bDogM$PZ8w-6oxo}Og&L&5-wT)c$6>{@NNND3Oo|`fPmPV zoXBAd?s(f0{kFfst!)v8zuiyQJ%;YD>@P|=cMZIkXNv$^RWThj?;rW{j&A?t%N9FfViFeNeQ%R|Ecz9fb zyr?w8l$sg%R}FE{aaB4!FWleiZqbx}GgcaMFKr_}FFmf>WME>9b?xg!^ss5xHf|3S zG)uKAW*g)GjM|>86owODjSZd^N*x3)KVTTW`B}YyR{KXK8^=KlGwP4t4y4XXV>d-W zZRuOdy+`r3=9^8#K||3Q0TW6`w_W2K(73AGmi3!Fc5!L(GfYI!Iz2;PZN31fo8Vi9 z2big{+OIHR*EFGut==rh6C{c$?qM_b^~a5+I`nHa~#d1xi{)`t>z+dhu`SWX?Wur;1UzSiE4a27vyvfJXKCcAnh z*E6%8v9}ke>uroyfu7w)kObYOg>e!eq`(+(kltXq91O6U^jghjH>c#TjT=YkZpmBYQ4{@>ep?L@65e|1ewNjwHz; z1Ved`yONqS7B+Xhe)pY~Rum=dlX-uo)-3;;&DGObplSi1H`i+S}x?c?>lIX|xQ(!lbyrx*;3QmzY-{>?2_9)a zQ6c}qf=kOq?3V^x`M!vu2bBh2(DRfr8Q8N%g)I|-R?dZEUT7LQ(X!sSEsyn&K6dVH zhTlJse%S99Hm;%6vMZQ1S^Pu3tX8PyjahbDcU$olHsvtpyB{2=`!>xD#^w8|uicD0 z;BnG1lziy{3lB!QN!qDU?8UboJ)lcH7uZ`L;H*}gV^_$~U|G^GxXOgd>hgMdAD~*S}4e}u#oI9b-LKIv9b)9QlODq91M^ydp zw3me?77Y*iejB%J|GXQr*_iK`ASW>)skR}5NCT!0CONrr1OEx^V^zdlyD4Zt319Ow z4RNNgIftdF*xhy?lv^uEA@x4(fH=`@1*b)RS-s4Bc19l#Pcyah>TdhSy|A<*?vBjG zyGuXWlD^UEBJlpqG>jj%lggdDC>QBo*niN}YGp>bl?#4WXU+tj4Gm;WkshlEG@4qx z$l08>>>radlSsA9o5Sd?wNpDEHTT;^a`A+!h5MQ!GW3p*2z>5R@T;+ z{1WxqD>c~+swI*Aq7DyiI!3Ts8e?UN5-iW(Ud>NqYT>axEuQQEENS_Ox}2lc{8=WR zfH=|Q>WsBN#D8xN^SvxSgCV|_14qV#1uehh9IK2-+Ifj8ZY@%DKpRFxp$HaILvaqZ zbfVpY%Pd7bjBrfirL#?1L4=obv}0dbx@jGsv=92J4FL=YK8FZqFeh^fO6*bt{z z5+4%$7L}a+0v5}?flF4Sto1uYXIiZ2nUVSk_n=>~l{W38?vPC*CJ&v)@tF?OR6 zTo>!OM+Qx9Khrf487v~Z+EecpP7D4Wqi+Gbr@&{clWT-=Le5z_MI|z_nq7T*69=>A zuTzdD>XvQQnmk=JX^V|()VL3VUp)YTcMhEsR6C%DyeL8DV-3p2j`WEc^q%fM`%^$fp+AqD7u(Qkfk1NyR+sH1hH)ZRvqa%5_KeMny|Aqt@|}i$_YJPes(3JdRufo!93of>k!ceON_lG zXNE9Xk&6j}WM@!C)>c4S3rLrCo&wbe%qHt|Hvb2wKCK62>+(PPrb2Bqy4bOd`Y0Ho z=8tqG745U@4TcnvTR;n1ovOU85MlWh0p7jQCX+}3I29dPq;hkN7XlB}JY8j{6HH>i z_*Kw-!fxXwLkDQDm0afrm&6#K{r7r{7DGIHgcIA$z_>T(=YTlXVg5`k!n9~P zxf!aP8$HK*5RGaBhYUyP!?vqY6QN&h7M>23d(nR^EAQYY6uH0S8Ki6kLx0;P$s+J{ z{j0@?3^#PiQ2*^V8eDC&Sx~DdEWN=__fy{>{GE9F zhYDg?xB-x_C}SSKiu|odL{C!RnXt{=Z#3S4B*Rp`Jck?(4)HVowq;9AvW#X!E?7wMNz;^SM|9%O}SdF&C4hV+mWf>vbpj3cZ~ddfEcDzA7KIElk>?C|&@2 z=v*>Pgkh&?3w4_=Bw;V1IR1O8X! z1tcN=-zQ=~R&vAMUtK5&h`85Ufd3WQ-St8L&kmFe=f9a>rNC$t*W{{x))#4GjSITp zY`FtT0><%2874+6b@B69=aIIvIDL$4r~taAyay_Rz<`Fi+DdX3DE9IWvp8`9C*#F{ zd40+noIc@NWzj!Hib> zWlWFSaguKRc!r@#a1v>)A#&Kqh(y4iS6O1e`WZ;}Rwqvv6&eGka5via;xfcTpOQ=H@#Ll^+9OE}}XuxWhWwStBy7HS5M5V-q~ zy*-_^l=;Kk84}w;hCPhq$hAg0a$Vp+tsu;7c1Sn^ZcY(AtWLO&%j|ZsBlzHW1s~@v zYwFiR`tzUVXFu~vVF;JrhnG7SNw^)8f`44Z&HFXJ>$HMm5)U~OdF?tPAba0ZQ-0C( z4>uxV?k7rmZ=)}&Z6E8cK}HUKuZuH~2@C!!>6|_h4xvQRD+>4Coa@EJ$OKf6REJTo z=pH#doIjK-tf|$bSAxyGSsdr?=9k;vH*`$ zL5bNMPW#N1tCzRxSEyQp`Au+#vFW8OZKvxQ1hNRPHTFH0)Zf#!=ok$qQ3rZ1#8zaX z=QGc_sxb8KI-Ayi+5zG$Xe}u7><<@3>@HmWdh0u%u`a}5kD8dsi1?6KmjD+XQz|Gq z3e%|(lMmHi<{lAm1>rM+u1yR{!Q>g&KI}zHHr@9pH`UTe{y;M3nbLZl&ZpnYFh^>>Bi5 zbZW;r7tc!h=ETsW>}~kvfZ2tKB!&^>GIRVzJ-pjk%y}i$Qmk}%sb2>xIWJ1TGs(gt z+%8+jeIjz7=lM)cTZBRUsAjN}<54RipBM?5r-pobDa{|8+?5}-QNQ>$4k=G+S@(v{ z@g(wpSz9?_t5%5>f*V!W6A1bVP_*&gcq%jU@lnl@M1T(*Fw>8DYPvwxmOHzdm?wsf zQx1Wb5lp_lVzQ}^7kmoYAGnH)-LmD>tN!KNSZ$)9@ovFCQ~#r9-)|P|87kCw>swSa z;RGh)X^Bxo@HJM}(o^TJjf-~_GVVT31v)R+`AHZZ_r7=b51ccU32yK$p>s-HiF^Cf zZEK9%Ds;rtX7ZNHtn&H%9a|S38}%YxwaqIdp_m7sgwP5d}G$m@v7QbD&$JDH|7 zvRUF=v#mk)%--0Gp^NYb(_ZM+5|eJD#KZ)>8mB{Hm(!De0t_p;p%@G?RhA-a9%13J zLh$}(mPiJH?;6bdRDuEpYN)KXHkyJ%AZKwA9SH5-Is!;eWdOs?pHbB=eXbVqh0nZy zbzX_{_q(y2LHrMC)(fq@>kGH4d)z+*>7l4x&Uz7HXz2h{mnA)41E#$8_S02uk->lf z>W_#X0)QEtUTQ3G#0lE65$y`2DZrqUjtxNY5 zMm_y2zZEn)%DrIKHRm&F*3c4OxW^4NaCArFT3mITE`I!CEPOQ?w)oAf>uk}JznaLD zIN3=Nm+SUx1cng855OH^jB8ZO=$xKK?j~2>6f0`D12riu2z9#>a7_QyhsdxwJ?pm_?;yl>|-fU-fD3BchTR{H0Zdj4IBk$6j7<88t?^icuQ}hjXZnfsoNuj3F{X;b9e3oSkN$Dor83jr>%FzV6XW>DsXX zCg}^gHvbg{hTeXL$27@7`&N>`JuVY=A_4tLYt|A5?>(B{$ zu=Z*$y+4Ov*6rUob*?EdvchE*JzXQ}EzS=)8hG%ieglRL&ETjX*R zdbfbf=5tTI<$k`h&=nFc3i*Yg39RG~`Jf5OQ9-sy$Y0Tw>MR3|MlegJBpGiDm*J?Q(>&d>A$0hxb#DwV%w(mt3 z5#;YMxJMSh(g`*_ICR|VXE}>k(-WMweXdEqIZm=>xW#J|2I0_ow86S|-qO_9`<+v) zQGF{zuh5PMq41z{1GP%K_L#f0vz&xs$oFgKl8p7Pjn`dg53D!;Bnib3TSc4>K7-Luq%>XPheKpFX&oy!%4I{nu~^CI zUwJ*nZyIwj!qH-}26B39+_-HtQH%z=Xs-z*SHW#*sr4o8);*Tf$mYET0)Kdze?|qY z71;6K26lXHph+YM3;<{MUL&<#NxxMuk^nmOQS;{s@RlM`=fgk0{*;E`9(1@YAy&e^ zez)UL0})4Tt-uw2NKvBRs%8djXsFt@n@1v5XQ1DY@Ge=0_+I9@8Ut)#k&IYqPd%mX zsiAq~c2npOr;d?2sJO_TH@8++b$v~^;^k1Li~ltn82tH)*n~=_n2nn>J=zgr;L7L! z6b7$s;Po9!<``_Cyl{!+jvNPWkzCx9B}E#6M=S_-^)7C53Nn}I)vkp%%R08{shOy) zlcPJsIBD)NK%9QE=N1-nJS7wI8D_eP$@6Zkg+eL{+t<%P)h$fL)QUyJLP$<9aV3RX z68n)Kz(VNxhJ{_4zKn{ovl)MN4?cQi+$ktdG@lmo>S?6{m(k9d-Fy*xVVqJIUBNZ&*9Kjqyup00b^ zF4O?eGVqCPb(c8Ll!ggT*s9<<9`&&nGKI`)B-=5*Xt;BaEpgMvgH16K5}i_E=yGZ( z7Do#-^*|SOv(_K;ZD*N(|73FkMy9-8eb?+zR=Ac(jv{WKJkcC8?$E2ztblbb6f*c; zWW^aWTSj2jGcG^mg{kfc6Z5Cv|N8(?pg!~14DLqpAj7B<;iALyLDg+8&KMAcHk|&< z)=5_77IUZdfjJ{iZc}FV?)~4Mrib;e;4;1Q#tQMdLEnsgFWa=HPa_Y%m;wb#dXJ%_ z13mL6p{`;)m0yhyB7(*&n|EI0){gTu6lwa1jtKU(AvIa>3@K%}GE&?Gp49MurgU<$QZJ}F^l4ZOrCCUS z|0%I&xucql!qZP)*K-$mUTeFY`GocYI$Wun4vKX4LKuy#!TYp95bCb6vJnCs;wX<* ziB@2VA2DGzyRw(rLMk1z)2fVYgo_q4Ce_=E&J^Z(u;SwSF7Px`{jMaPybUOY z+d(b8CW%JQ$PPA?kg2iyYfa_0K7Ug{jo2(QACNf+B9q3L`9H8FeFxkF)AJp zrhdSr4L@MHotmr@l_MeVhQE4aDg+{irxe3hi0vw-EKs&N8@eO|gNoVQciw)@(QCqw z`gWR&PYR>|soLJK-qhMN+3pUFN{$_+v#)%$?K}-{F@2QhMHEX9b!Qhl#oc$8m=wmb zd>0)nbhTcc{tfb{Ia-|3-%h-x(rU1e)a-e9extUF81lrdGE zeiQrrc{N4}FB5vm^F?O4?!X|^0qcX)!`2oC$H?ob9qRI#-zj{664^pIY7Yirm zq%ndBHg3HTyW{t@2=B6|>(Fo}ue1 z4GtV!OWH~@sZtDcM&M~ZR!Q~$475tDe;#;-T~)$pobu{fPg46VUX=GUGTCgI^jr+G zkq2H8!tyF=O;dfwn=>l=cD+8I;a7b2pkBcQyX=O`DP$ zSbSeOzkA@0mhJx)UE9u2d6tq`;yx95WciTu%uZ+9X5#x2U0w$T>f2%NkrB>@8OJ-M z7vllf)l5llNoY&D1c`7%L+78kG$lE<65Wa-ANDeRaqn*{I|Cz42fhwDE2|}F-5lNG zMo%*Dxe0};a4fm3j~_L8yWlOpGWCNY7_!Zr)a99-32c12gn^7PdCBri02cLOq_2Lq zjy#{^!)lA@2+qK&;j{)fnW4L5{i;wQ+T2Imx2|LQ-AeDZNXSvzcZXYsed4m>55D)M ztfp9X#7Cz2d`lEJu$g{rewpJ_`197GNm7pB-rl2W4b&&bAwt-=yV5y0@Q~AjZmniix6IzO zfiW$KiNxwc@*Db3RxNU@ZJy94J@xpS##z6O4gZ%_7PX1HOf80F?4vzLn#d((EQ9dMwGl{q?Z=s5ph`*Z>%pV`n-tSSNJD zwuqid(StX`cKx^Wx#lcSGCzA7I8b1>qoU@0o9u^qN!OO#9Lo95!&qy}^%oDa4RQ#O zv|7?no2ags@+^5+QnRL`AcnphgSZO`60mA8USmk9_zCJUO*^l|~6jGHmMaGBF0 z0qvpC)8tI^DM^`fIPDXLX*E^J?aR_~$k85@JtULfG7XIU?sO{Ak%$) zw2{xc`BO|J#I!E7C(VM-%DV=RAGE3Gx)*Xdm3Os!tjGH@I%2S(Q2inH}Y0gcO}}Kat~>pD-rgIL z)xzlCkvu|&v`yaYmmCKL{Jwib0l+oLUw@0zw|>^U3}G)4^8K2zYt8`!^gksK*aEYg zVEMU1g_`3G+X2x;77{T2+yL|m7~-`(Q=f2#fo6NBESiAb><7T10Pxn5-h9RvP8`_q zE)UQ+{OiMF;aPc41RftM)++EnVcP4WzVHkMC@ND^=tb9+H$&#lo3fZH-TV9nrJV$e zNQh!u^>6;BQ34z?$5C=}8dT7lWxy-7QwKef(&yfd0#Ki>QTa4y==yjPMcTtHl*hOE zg*!d3wyf4ko@2|_!$plBp0RWYn(f9<#w1)G@5lZd(zNSMa^kqltffdq7OV2n<%Em2 zf`GTd@f%4Ez5PujjsR~N;%vnqONvhs_-dv#=7V7LHwRL-QfJRyq=5_kt6do40E83F zkDMh51+I?MKA!JCxJRELKdcgasjqQ4KO7D*tvCI22ow4@-qV#RJd^v z<}_v)nc@`7jVpJc187YD$)ww_1tIokJ}ZfR;gI0Nl_BH=Tm%e#w>v$MUzg_1|J>DX zZud|llYLfsQIb6&UymFmdT63LXR({qJFzVBpV5L!BpI7~1paV&xNF zq3%aG@mOmnrISujjD6RiNISA3d?WLN$G+UQ<#%9P-vR+^e95fq!DZBYXGsdFs~#JI z9Nd7srJAaVRXg#>mkN?)IPY5(xfgDgG)85Ro6hK?5C1ARYQ8T?VY`2#NlpUZsaLX< z3Y7J?G>;^g5TfV8id9pYRXJ!6yPmZ2Oc8el_o&c-ZM=PrS0AFb+e6AJBL%7rbL)Y2 zA!8Xw5kvx?NZ6fF+X9unJX|hwkJWkHPFSj9JI_}b0Z409~6Pw_o?)n@u8>J*q%Q}aIpvt?Q7~x7`Zw*KaXtsawcJrNG z`h-$8Lu%oaVI-k@U92Y_I#KGC(rUqD+$TNiFofCJ@DT_*_5I+p1!&o3VqMJWvX*~V zh5|Z1TEt;13Z`3Kx_p`ZK}?}*s*GEBkC&xLXlJBK?4&dVwWw6#cwTy65|}AKx#Ery z4*2ey{nYROLB`HE2qip-IAQx-h411=Ngk47L1!l+b2%Enl-9OB9c@`#1g9`u`F`vaB-zPVe|{%Xy%-RLG}Nz-3%0~tORG3dRAOz+C!;{b}!xzAu>r%#b9USFLurnv1q zr+$2$?%LP$Ra$#cYE6th?&qmn=4S4;>ep3k`h$(x4##^klywEIZWim-3-vTg??-1F zM!anqMpUb7yc$pw6xPfd&Ljmj&8B41k@VvPGsRt~Ma1{0W#h()A>L`%v3GoLkcaHN z-)U@Di5eF5Z5E@dM_q~zP0XE(tqcI1%qAO`Sn0n4Wx(4O0+*jK`kJJ27{5HY<$yY! zs=QP~YJb{CnZ+qH1s>}OYq603JRI($Gc(!n$(golA)vVeNY8$3ENbPMjTPx1hJIvM zH)ZW>32P2+ycpHY;*3kN6ZxIbu)=}crH?h6F6Xdxy z>)la0A8*H*nd9Q#Oa5Lbf4nAKs}|8>xG22%n~hRFTxVX@t7K+F>uzkM!VjKd z*g>MG*-7bNXq>Bw0DD+hN~x{;C%I1;UbSJhg3flPO!jV7pM9knP+2QGL+NdCukGJD zUa)vp@I0YoB8Eb^ct_ds0T4+COnX025{ALy5-h0eu^_+w2 z1km8<4v|_mcz@XUTp=mx98C_n*FO%9xMDPIZ^dc@1t^Gpsb<{kVl3JYuhp16!VXB{ zr3D98JL@bR6-m{KFE~m0GK}f>242i~6XluJwSVK))Y$)*;Kuw-uDIEtoA}YJau)}} z0|f|fdfW440n>rj;pgq>ILRKT#uxAK&CJwN;G)|3Yg?oix_Cl`9ZArqfL#FEUm;Kc zx5~N%`{t z2^n|R19<`BtFGw+-NGhI>xN}39W!r$uGKNt8zyaZxfD8no3!;p5Qy&-_3{wl&ieT$ zJPoI&bs6klSH&yuQn5qW6*>|GAS7YYhMRG;=bULHMcpN3MmTyKBpZaGusrJ=XP}n1 z5UL~BFBon0yp4*rbq}JfWt5@Vq{5ZzPNvkmYy}n1&pRlgmoWP3lX+1Y6Buud5>#}k z;0aE&xn9117zabdup``(3(Kvhjd1qwm|&m!O@{|378$tQN(zY#@CP&_^p8Fj=!u2i z;jYjN({l2^BueUDL9J=2vs{`J!r-c}xoi~Bp8^0)W`47)2EKXnu4f;CV?WD!Dz?$)4N@2M;06zu&E$?UsyUe9S^<*ZQ$;t*`s{8^yfS)~QWz z%imo29MP0~ce|fhYkbnMwCY4#a!Au3VTBp_nXc3?gQWwD=t|uC$IJ`LSSJ-dIW$?Z zu2T>=2RQJ=kL!w%)6Ner8tp}<#clFTY(0Y%&uA1Ir=YOw;(wrQO1%#M6=Pd`0hpfS zlNJbuxKN+7ul(EUaCbhogW42qBc5q-YXnQBi%1Z9`bg?b=jn@XaA#tQx`5gs11`!O zNkaCHTn3>PtTtjN@^7T3fBv6Hjpnv&-Omqwy(OKBRCEmw4sdPSK$+GbGS>6D$nXdh znCp)zPY0**-tA^A{TW$G?r}jF?90)aAQl97mx{*s@O9!A&hRv*6sFvdxab%POk+p& z!?KDhVz8d{>&z2u(%Y>onM(4xl zCX<{IQT=ukkUJ)F;k-1L!zG_eV*S+xC{6RDR{3HV0je9y(5mzHRdYEL{B0?J4lq#K zK)#Sz{LF|9)=DU_$kW8Rk`xI{j^kRt0ifXfR_T>_L z``q=-L{Udl;NwJ{={qKZ{FPa3hVoLEMKrNaLBdW97i$=~@Qoi%d-vv2D>^{4Y*3q& z56|5VARHodOhewMYCdu0L9q})#E0~H` z3F!t2V%>9DG%$caYa#oB#+zQh%s=!ucntLh^pDABfaEaE*u7<6&kMfU>qK2iMJ9AGM@DB z#mk4znsVWFb~^MstmHSkPJy8(R#PaINmsT%UwcB~agRaGa8a_+l7Fkf8krTE)JdjTbM?Ki-OMbPFXP_{P;9}K_M6XUt6eYI`!7Tsdn{+U9|b4%WJQ*gtZBp2IG72o&a@dI zQK(q1I~tW82!`p=h2>_|>nI@E+30yZ$dBQ617Q4}s7`eCtnqWd4~h^`O7 z_Z{hDUf9qtn&b$yMkZ8!#xHezDIs}tZrO#0=zV-;KZD$AcX6n~$ zW(7b>TbGVbOZ!?bL*WC3+ZSDSW+e}wkzf2?BO} z3rUd2-j`a4xplo%>6a5{eay}xiUwIT>Q&{HZT#+CrM*HT@j^N zk8Yic)_EVV@bJ2*bwfYJV}F#%&@G-v_scdQkc)xt0qERn#EzN5h);PU}~{+IZX{{MF%{g7Jx&z9%egQ{zu zfjK)DrG^_f$9Q+cgcovbnSVOR%}#a>N{it>yr7twA({4JfnF=szWKK*>@7y~vqFHTz&iP}A4qcMQe`b1kQn zzGi@JZ;dp*j+M>tHXl<@rz`Nju64>R$=tlx1BhS%Kh+dB#!qD>1hP8*F-4FeXx8h3 z2a`1&?axjfemQb(wRoy<{NUVfrpB#&JNPu}rgmals?N=SPNARqf2e8WCriq-SF?P# z1$eANLRJFgM-DfqfNKCeR_SqxsVe^#waE{{jZ);tJ%4xE`y`}R)^hS9T`>hd3~wFc zN5S9GsD{sY+5&!a++(7EIuNePvD637{yrRMVS$mxR!|bqfWyeS(roh=jicrgV`)As zC19O`Ux1;jr?V;EdP4sH&@}icxa0P{oP{Z50(wsokSRB<*IHKK34G@iSTG#z<6I+Y z-wuOkiAJ!OhZZTQa;4Un7dA&=e6);hAeum+g42fB;lL^ntU|lRJu0wnSH$}YPQ{{H034wKdROmrC&JxPgQG+PhnURv$%6f z=2i(?LIxv~zXQSPQM-H#fZpFkD`K{M_YJ3S0~PsF2!>P#w}SwyR9fedmgZr}Siw!v zKo<3e?G+uNE2Ufih$Sa56HBqf&bg~Y9p&AuN>Q)jpudTG|pw%oEMV?)2oxjr`rvy zd?eukTFYD0s$VQbmpe0Bs>rz_As0mJFH|DZ<5uvbq)%u@RvJxvM||>qq)tHPj{Czy zefD-+2hy{gar-P z*aR2R^NVV1M zQPqccrUU*^biQ zAB_OCcWWR0vzj+-Ch#oW6;5{}!{5MraW!9K!(ZgT74D3}laM1tEwu*70csb=k14-w z$aELU>3ccx`8J7&6t?Hi*H!-8Y|S@{h?rYHn(*ucY-)?F%C{ zZ|TInD73p8xylw|d(yZ)P*1+9P%;|Ciu&9D2+~T#IL|z4k5&k0<_k+-*z!C+0URIU z2iqd0UEr(>zyDX2 z21vtPxS(PDH!XDc$5jNPUtSx{;sK)>4QjweW5nlt;nRX10r_g=Rz-3@@jJ6Q;}TvD z&=iy-{e6rWV5kwp|6X1+9flODEtbMI-J&wY`42G}UgdMcKzVxNkc-~h|6WdJDR@Ax zsn0$3;~(xN``2mq7kuG0S7Nj^$ADeds^*#6YGLCz`b#iuRMso>l#?o9$63WC@#@n% z$0z*~M#^;3cT7snclXHuB_d}agqf>_j~uSs2C8XFWvl0V|MjSqa2afxML-enoWA;Q zdc9Fx_eheH7WkIXH5dk^3Onj*iYMPRK@=X)TXboU(Z;qar7BBLNij|} zjX5fZw507q^AftL;_jb)vlAxH;z)k0eL!wmJwH#g@uKNUR~C^?a9+$JH=Iq-g>D1X z89bKV%fvKwmTXnR=1rsA6T4~|ghV+S{o;*B`+yg<6K1Aani$uk5)i-itfT-!kcx8~ z*m+eS{4=vI%NsbuCc-_pdHDmW0 z!W^K?GWtmgEda{eD@CM%S_me*ltS|5_Y&J*3Y7@8Gor70^GG2^2W5h#|C) z3drV2FjOsv$uoK-_;2Ln&w`B}C4&R$4K2T(SvW$) z+VFd3%O#t*T#d8c#Su=o&;JpJ#c-q8M-zw(D|euX4AzaTlz=VVB>FdoLKc#q?*J|3 zbK!G930Ag&mAtE`Mi|u9=TYPygpU8$8j=C03hpID@Vwei?y98dq!;lec>s@rJ7PkvZ}bx>8(!=dq8`JjDKMM2W@8b8?}qQtBeoDd7X$8?S#UdRy|q5X5iE<&om zSoeiciN>dUJ4>sHNClp9jQu`{xFA4C@2y4EWLz3^bw^yh6jNf_a=5qAT-48&Oks#Gbm~1XewlBsnL%(D z*F%#=g|UV$s3&(D`DHaL;QZIviy2yc0vq@ED^N-tg;OPtzKVnl`uw^%C)X>@M7&>c zekL#L7yhQuTsxfQvGl0k=z%ajZnVrCL%jLVD}<1&ny z-}{dGeb4WEzQ4Z9^L)?ueEWU>c=uj=?Y;Kp-FvOQ_u4B#+X9cxyH;u#$=?2c_x1I_ z8-9*WZ=v5OgzNwQbk=T5y30txUZeGM@jX@N@A^bqm6#&59&hskIMY`P11Fx$WkLDn zhy~TTH?k1}lcqHiIxpR}ANs`(SR;Q%br1N2c|etPjB3JM&d=qK2I?>B5o3=G?kXg@ zqY^(WNAiLqHDr4^wB1_?%)3s<#^h?zl!C>~)$%QO1~UBs6~G?#>puTf0R$L9k$}_c zpVSp_&e?Euj%C}lnGum&<;SzlR(d&qJ9ilOYg7xc%oEiyW>%(LKYNGa1MjM@S#Z)( zvjDa|uB2d{9jU!vYXCU~lvL6?a!el6%Woxz;X8zMS@P+0k8NAJPpA9aoyQGzgnhF&^shP>X;7K}gn;^o25URD-=hqt3A9p;LQkPi(t&1Mm< zG$=o<9u@GYbe#Z52{*6T;$O^RJF=i`UF(Cisu<;dMdW?*XK}!y*Y&?STT86v(hnDL zPHDBk0fFFZ??6t|SKa7)*08ns>^Vzf_0pw7R=kzD#*g}YR0Cd2Ov;{c#o21PgNuBk zqPH9B66KJc+duyJd}lxsum$4_*cVj>?<#3^;9ztmJq^4aFv0t+J6t>g^M~h-fq((~ z5!nhwgM#j`#+^}v6l6WE)P((3J(qG}CpvoaPsXPs0$>kM#j*Mw_N)!=%erw8(27x(1qcP*f8|0K5dZ(^O3eR? zqFovFOjb8zRaO71vu^G1{r|=TTj=|ZMMv4>X5_>a>|*mgu|ESg>`sf!2@`bg(eY4dvhWVDVgoqks~y$6VS3ko<-qOQ5g~GTVN+6!N65AOY*6_aaOrnh zOZz&4&&}8KhRI=Irhuno4!x@JEfZz4WWny&ZS9D#nb3!dQ2VUH5xqf%=)j{`oR>rM z{H}ZenD5vHIT{5V+txn^ zl9h?Kx|%>$S-^p6k{b``1G$T;ogxLtZ!iUs9wp$pBBdjG!D#zw?%>5d8{`0x@6QJ8 z8x-`I5Z;~zUs0jkA%P%E4KC<`kW=5DZ?JFB@34PC0`NA%flv_bKSIH9J^?yOV_Oz- z4};W!@#FmVAZPVCWw`-RW1%jUVo#l_3~%A}ZA+?b_7csZ5TOA>6=z&}jVU$TU)ooifIVfa)IMGpp`2MQIU zC;{Kg^(!C*=jE**+n+*xwfsH@Q^s1K&gghNEvs{JcC8Dh(;V|P2Q6Gz5=^`S%vim< zl8hq;6m&<9X2|cdF>qVxO1XJb^O#YjLpNE;*n!zY>q z8UUIu-jEuYx$xQxl5y1W8al~N?y$M&0xB{0(svM*iuJ?0LSiDvesa7Ve3nq{IUlxRI8_Fa=&hiq|&T9DS0HuV=^8}uRw*-v;TT_d6o2+a0zczX%wKS5wn>6 z=%baJF}qK;fhD*&i>4=`VZ55b6->#DfQPdULd%?YjN#3YD`WCpePPe2bGKz}1+-ej zZksXGo!*w3UckhH+fgLCMh>4zY>URnCJC4FhlFs$T}EZX@hon!QzOc$X`boINcVXD z%AoPgWC;cybJ)l~>XsD4W@5R;;3<51@;IXaWJp??6NC$co{yhQP9iOb2d?{uI2lcm)hWVv{WkaY1vD9k{~^nj6=>2axuZUivAMX= z3sT3J7C3r`;(GOD`qblNLUwr}<&|)oxjN*oq$VXuSN|sDCLf>qSX?{0C=aD*^ghDE3g6SV3+J>fBq(ymXuuTp;ZQv`I}d8)vfjF5r^aR` zpTWdc!eD4_9K__e=oPYUbMkB~OPVEc&@~y)DB}b(d9Y|<=2}L+T=aD8@WQaqCj8T@ z_OK)_iiJYi?>k*X@66`tkFG74B=rNL=Xfgi&_2H|y@}=3j8J=v2hBXoRo>5^dMd=k zB#v7Ae#)UbqU-bnU6)ZVdAX1Q;&{vWD#v37cUd0p_rmXyeXa42h6 z>ZdXoBXxrFyyFio*xJDm&Aj4kCg1)kyWbF|AnrNczr^y*VttPdE~rHC6RsRuekw(oD^YSUytVu0aBze z>PR`>IA#1wjr>IZJZ&YVsNmj%0z2AD#8~Ey6tdIR3$$m^Wf8I&SYNXMF8|ByreCO6 zmgaN5zR})~>;z`!I70QE;pJ00f}tlZ!ePS%J2e7ivO)8xjWadVzRy6*%-$Z(j;-no zt*`XNl0JsAKg?c9#a2?N%jit~M@RQ55cNJ+s7JDfRuqp+_Go_v&Y;7+>4Wcr zKjW}@#L_;_WC5H1rGO}rvcAblt2%OJetkc@3{yxW@7&5T} zuN}6f+favspQ4*q?v`!f{@FuyUx z31Q1H6r6E7A!=FVHCtD?l_>tm)`jJJ?|Xk+2@BybeQX_0pCr}J8pn7{1Xb+O^A1_w zq8_Rp*eXG+apD9CAM_=@4!IB^Gu}`Mj~sU&@m#JmTC`YVwsS|#zOagwRhY5H*H6>G-D$1;}_$WqJ9; z*i~Yhn)x`-HMq`__f9>w7TDp-EY}AV2VBS#)2cJ=j4^Xutm8CH1W!XKBBJ z|3e(X1L!?xK=v?I9|VH^S4=ZO6fEjg_rXsf4BOTT0m4O%BKkV8Q6riO7ywa}I`|31 z+(>34^#eeH|AuvzmbwuEObm$WVIin74Ibk2Oxvb4@ym|~Zpr7UfQiL@W`Ct@dfG;_ zZHy$9Qi@BKw@YXnP=$41{^zxlA<_1sLwx;+mBouV>)sn6uvakyOxwR>3a3FT59I8T ziWsY^oW9nmL2Jyo{N(TK5YHE?Em+23MV;)&ErsVEO_x8WL=6x`8CajXm$QLXT$vs$CCoqLYFHP*~>MD&!oAypF zE-nVVJ(G}N0Q8r9$ZHoXtDdE~5oc0q(4;iE{+hEUHq-{JgsQO$H{9osA5$%hE|cA}Z~*Ku`n}qzM=W5$P%-2m%7qOQiQAE!3bQpwdBlQxK3Yy#*rD zTL3AccL*&65=sIod&T#Ae|yiKGkfODnKNg;^M{74^*k$2yW4eN_xkukLz(IP)$=D# zoM3vU@5fXwq<#jwIJEtzMS=w z^$$9c%c|w-mrH-XVH3%y`TJ(>m#Ts)@<|;AwuO_~ANXDhWGhZ$r`_aUk5nVNiGl71 zQc^@Z4xgqmG)w=4E!F2B6bHv|p@~106)5L&KWnQB(f%tCMA6@S`(Iy#a+g8>T&CT_ zG5n`hH~8Q7|96|jK?MKvl#EScyYg*vBZ9crNj>6CGQ-72o8ct?=Pw2pBPdhRf;>J)-3K}aQ99Rr@d!$M7MwimkEH`v_(b4no&B(6W+8PNEkL3*0{W6q zEQ7d#=Z6L05M@LpRN^+!@Xn910Cc0Gywn~qH`xb)`}0^9;&PC}K@r5Bwp*|6zz=8r zlk{J*afb{k!gf(X{splh;Kt7{4zPXYq=4m|z&^0N`}$nqHvZB*9@<048O+QEzX?Oqj!Z83J*Eg1FBY8N|4F*2me2<3!A1AZ~5VVhM z4H&KClZ^kq9m6ZjEay_6Nw6x0M*I5sZ>C7wY#u0gFmf2(b;qR!-h~45d-FZq4mNa; zTyaCOwGi%Lg%OPhl}vdRli~IB#6~b5x*L zjsqAx@QvNtk^>ox;)W{#eSc0skGc-ClIQGODl&N@hC5+DoF1X_Gy|v+O6)*ym%;(= zm_gW9Lg+JI?F${>#U-q0n}aki*x~tV@IICqyqd)3%^2fx2eEc>3U#McP>@zPcopQ0GKDg2*zbRaoPM;mU$4(sQ}5Suo8>Cdd`~m_ zLdW{0vQlZ81*QDP?S`TkPcL9dJdRNVjT}rrffjFI!WYfcM|XH0DB!|lgzikTxY#G_ zN*4MV_>GRHVGXJd`Y$a!QXX!S>J6&mp4=H6FYGDJV$9kBhqY=JkO$TF4`;+G#F{<3 zb~ZTp`=;Ck{hy%@6pgRu&7`L~-)nA}lr)xp9E~7SEIfSMCJ$Wglkb{);tUkQ!bQbR z=Dz~N#}G4PhmkBJ(HbU5vN|0{9eEt-74Cw_&C4qknTg2ZN7{`OY}8tQu03p3|F|^U zC>6-tEPKB?%v?8Tlgm(lc{3%Le^O!AQ$liX*R8b|A&U=kVYwHfn%=tS!`p5&Ya#>Q zf1zt)=FwY~AXAa`JqkI%o#La2>s#Wu2lxEmC5_lk+jsM3U@5saH1VsxQPdsf&h?7` z<-SdbImCQOan1A*M>n^*u7r~FEpo~B>M%L7fp;LeB~+BoD1S<4WT+wswh_6jpvsy= z#d}j9{dM9^<=^HcWiy}MEi|Hd3iqEct9Ew;4aEacIB*YeR> zr)fpl&}*yV;H(0XIv;0W%(n#pN&gLB?=53|Na2q%mNH|uhK*;No8g@xX}j3;m560f z33#Ac{+n}HBqX!$^BBgXREQ;LIrXuA0`Ya=*ZiuT+6t`E+ps&EpU*6Qc!cxKOecr& zp!LSE_SgkY$Ky=akmgyUK=zI0M?Ha`5`*p^SLI6*%g&uRkxo3DlP1n>mOe~WY5*sR zQbSvb4AjZy32B8RNJR6Lytf>07iTQmQ7GWAnzR+=v2 zHmojkt|*Am+^|{L)1Y**X|fKG|MD{P=Y_&%dQvX9Y~5YccJOlE9u_0qaqqp=-IPr9 zWE=72Y;psGFlZ)rT|vL!KFSMw6BVsacBhC#MO3StQMESe&Gmlc6aC7^jTSw+uu-uU!}cO`Z?cOWM5X z=CVCz_Km5)g`eu}SnYU9)9eqXE_4{410xqm**U%%Vs>>F8XmCD#tr1Ya>IVKF$9uq zQgO2knuG+~3|yVt7hX}W*>VkUr=Kbd#QD$6aTf>*Bb?esY(2cWWh!uER^TGPJ$2R$ z)0T406^fA*s{>U1QZKpptsPK~ zhQDQolFws9XKRiKZ?4^~!EzLE_>t3{XF6|JV+~W}&fKJGIv$mmu~+WwyVO=MbyeyV z{w{zJbUY9BZS@&T*nI~IO?UAw3I{!l3A5ZZdAw>ayGyRTXqH|?RLVn(S7qPE%PfuU z*XqCb4%3b*WzSjz&&*wB=mjs%j2s1)XXkrP#0YP@N+%$&x=UhZ`tLIy`UMyN%(a8P z4%jdG$f+T04*PB9Y;qIvL1N(9sz@~h)ax?A-6p1&psUQV49XxA>1#q6WmM3Y6#4!AlUwJJPE!x~7t9}W2O(&^^b2^(`m9xu*TI2>l*+Ah zJ)0FaxNx`~uh$24XxPew0@7lS;S_IW>T`ZXSEKdE?Zee$9oON@b_XLFqC0(;e>j?Z z5gIS1*g8%3?2KXT(h~#D;c1^4=Nl?O0$Jrpl+8q z8a>X+#>tGS0dCFw)_V|OO^bgX^V$mi`rrf8Dt`LhBwp?%PlEb#^jns7%~eXKR0ia; zn5kX+DdXe%N3&XfK0)8`s`{Aq_5F{)cHKePW$I`dVI@Z=XMzT@wtZJ4IoB2j*I!>T z#|oumNETbTR`T>0{mT27NqP}L*3!!WKgC>i4v~#ZF>cMw zu2@&+q*Ma-TkAX+Y4QHG#wy4B_aXz9b23z3Y?!SqZ5dy$tToyMTH7>mLF#vN zO%Z3YV~Ju`IbkFVz+X~X0o~Y4)-!<(C+Wj4WSk7@q9y)kso5x^QdZQ1heV|^o5dKwHUDYI0LF#tdoqBL-tS*i zmO)Kx{#o%vC2i&2nhBKt=ek?A3y}HOvN26evsn8H zG$_LeHKR8v_{M`Dp(2TsOM7hV{tVnM_KK*)9i41+qMDFh<0@Lf1Zfs%%ERu5&&AOu zDaC4jnHk)m#J*s8Zy6-_p-EP_+-zxZW1_$5>bnd5B%ZNZF5&v<$)d>cz4ue8d5{#@ z6j!*Z9Wi>W|1er5;$!mc$k=A4E#d3b)YP#D6q!p}B&0Tc4FR!5HZ^(fJsg;uK=InR zM-FLX7=oIOP;;4Phxy0Bfq*K-?dKY!u3=37S%hLG_Braoq1wlrlxgo*OVECxW4Fj} zFp))wyY`i`n#y4#c|NgSXVq0s0I0dmi?0AS z5x(@~(9Dr$6)i7ve4eX0vg7v4TnKYX)siW=L3J}U>?YzVD)=p{LGR%ue|N0GR@YI% zXz&k;3M86+s(L}j&aQSs+>vq#Ik4f~Af4|=h4S{~jPKC6|6ahMizZ3Lvts%yXNnAe3 zNGaPvV@xpK%z0W-v(5|O7rXvZK?Yi9r|Ta3K{r}cql{78?D*&E*pF=w2tNGD5+kD2 zWpYV4-ch^Q$n!YaT#>ksHKA_J|)I zbvB3IU0FAL+4+q-6p5W>&ocFD+smsC$s$dcLG%w_Z7giT>%}iAvk*Q0M54%JQuZeF zSETq;>$2vFk{*XV*}!>|9`IwwaobgA$B+A7OPT(^N?h+fFDwxJ9V&cK1zM9o1S8f~ z7Lffw*MvyxCE?cFHMmM9|4Djta%?l#-Q7DP#I2n{W1YLWOxx%-KOdY-RxbD@E4)5K zz-x-S7TAPz=fDxTZBApam-ublKeSwXx5Z7Ut7IhZTHg8&h zeLf#v%{f!=GF0_Za%9ZREc26Ss6Hwpm5{5n>CNegdJJfWlpFtl0Ve(r;0x-Iv2aW)Hq_6AgOo!tgPE(O1X}$6?=-FjzyLF|1e)d zT4HeF4BrNth?KS&?$J9tpy_*Z6cf`2kwDz+R*D8?8A$&mDpAdD*w0ns06zkf7$N%0 zp|7G9==N@xHe_6Q)mtX;#Zl$*T7Au8jrW%Uw_@dpNrr_ps8*EiGzK9D3vk63b_xXL zxyQgb<^-IN?@RP0yDgy;nL3DFG%zp*^5ibU&N-Ef1>EC^HS_=RQ;nzmlFU^uGmhA8 ze=!U8bXg_Z8F@qE@gugswO;CJkVcOly12+GZ|D3$42kV@36OLk0P)p_HhC|UMtQ8t z_x$r{6BVLTZ|c;dYt%H6Q~-N_wmgxOsk>gG5>0SYsPVw?UUL0j@F^NwS6p1-y%kvG zUDeir5v;%7zL!^8c5QNJ=RF4)tmzbFIm64rY>gOn|6=}d?;buQ5rf z7j2X4)H6`hW!nvl`j_X5H~&(>zySynjm(Ny0oE25F24dCTpb6dC$OO!%7G7L`@nX} zFYsucWPuvHGP*8!LykXt#a|~h7ay`P%KKY5ZMnoDc6+DRr8($HHiJ<@glvO$L^;#3 z1$hAM-B#vY3Zg+*7@}u z@p66zc6P3YdNm0B(O?x?9DlE{x6w&JdqSih1)IPF@dO?+^WnEim=W6nKf;ky3 zT?(QBLXWz@9dmm6X0Q7rn2vRl<^Uv4K85q;fD6*4xW?+l$Y?~t+f$fMvuEjM#JY4{ zy*Oe!r%s+;L~^oAaq)dDX|Hh8v9~C{Sba7&O6M4*p?{vZ&VMPfKT6nTCjOcMgrKI(Zd_+g zH+BnZc18rj?q`T0q3}^Yp8F-cvjiY;{_R}hXzmP0G`-TVU3GAV=WpVKn~&U;4@udT zRO(1GJT0*gEN#5XG4qrgF1z{ZWaM?B${?c3Eh{r%KGhIh+9rLzJr?10&^4yQo0Zbs3 z&vlSsrhFBAocN->qq> zJ}ivu{B~1fV11JCNveMaAO1;bpf;r1g$JR6mA&-p-faAXqT{p%N!)_9C7wf^>X&BQ zsrYtkjLq;{-e>1uxbS72A?NGQ_2A_dE-JO&Dsl}{3mQiSDO$1q#?fWX5}9^=K~1f5 z?`S&D;vp_vTqelY;cuA1-!Cj+TCp<)Ters!wr5u(BZWczM?IL@k&!&KHDfP$dtyY( zXm$u#Kyq!EcXQQi)7DmTY!Qc-v$|jE$CfVed3B+SQ=U*%X{lMvwQDf}Ap!wspW|=< zq6s&K#qP(GNERbH$L9k-OKj&%owJS9JKHpCfKP8r4>Nw zTK9>VJGULbJTL#MIDt>*zZ4@;+aCO*hr^bZ)tG^V(8j+w-2;vb+^@J|>_2|TsxOG; z#^d8mU7ga>KJ|ycFWH8!fWC?gF~5XeaGW^ks_X6bSW4bI9UmMExtz{kF_oM&;{SL1 zt<5^a&FIg+U9l9cal?=dxAFassA7bGc=wtv;I+=AB%S_Tp*~yrS+>?9zUyE+F!6`C zU0~qrnIC%|KEp|ywVqk!fM4?vc430VW0&b+J=;b4s|#F_XGwA=Hzav;`k@Kk2akQ* z=Fy;azFQ8R3Kb5P_}Qh-IrTkL`dxA?7cN}bRx- zatIZSmHq5;j4cqX1NaBB==fc zt$AG5v^?9gRcixiGOLq`qH1xD)q4H*iLd^c;x#lVh4pSjndU?miRa$Qt|&Dm5G2*S zvR$0ikKnE%W&dWEY&QpU|O~O(75jLseMb~(DV`# z50*2978|p}i86{|RqsXVCJ#s%rk9?Y+$|~Jzt#(Wr!%0j{koFm{A)~8{q!>>lxE5I z-Ye)KEQv?L!-1u!3Gm&!z?6d5Z}8!cV|%;LjcNz#`K62>twbJ5I8FQR5E`919}T|V zm{|(*c5x!$)_Ok4!xhB7IsE=K$ToJz5>1XW{ z9yK=w;v=dtb9eBmxQz?C!HE!)*VgTW8{m8JxYXtfe9Y!{>9c#ieI@z7EHVn8g;xqB zL{w*t9|QXhF?)UeJhA;i0P8qjaafyjuno^)=uB8)3>UOc+gZ3{cqvb|$~?$e`RG_i zpYN(Dcydh__L|^Nm374+vutZIlxk>{AiPiXj~|l*I|MKbe9*{YyuCuzLd(EQwlpPo zf|pJr#z9yJu|{$uCgb4N@`d~*E&&eLR}p8WQ_&GBWqevXa>WmW*IEk;!*bKgD=*+W*{kl$#eBGb5wEH@7RAnW-xod62d-GX!f7T~ zA?8)nx|wKwJO8uu`DWyBL*Q&=N>S-GEu93T&YPZzgJvtBZvU%Ut zM~)Y0M|y9bJpQox@$dTSf#9Woxd26n$1<19kIOSQ*=AsB>Uo<6QrX^~GgY1X_tD_{ z6Rm33I7MajrlD#T-12b0f1Io{b`+#W`K2kYvc}sfPfTDl*(g7x?W(o2!tMeS{S7gl$J7RRuVA6N7%3tJ&Q71>`?qM0Z8>`e>dW>$+@{F+X_n z2leHFrB=^k1I(VES~$(OfAe8JLF z-lM{uljMv){(&lPQsz`5#EFt}%yCYxB#Y*#%Y86`4Xx*wkU2wM@19&xdjH31UCReN z{d4<`jW%;|pGQ~=AV=Ou)uKW;%&-5+aIfXBt%A}e|0KQl;z{ow{lOQ$WG#aj|H+G! zZ~lKAVVYLq!h`662_j#kgZ{)|F`EBxhGI(hfN+Ox1k2n}!a_0k-FaIklsi)YGRt6c zAB7@u6E%TkcRGsL?uh*$`dJ&T=ta>z7}leH1+pXfy9ggl#{42(gPdvsK3|$@1n5^} z5owW}918-jl-xF(M*xU|8*Bx%-{|E9bT?07_@|A*9e?uf5JMo>NA1)w!)s_aNg zRj4cmnEMbC?CB0Pr(p{;st64hd_#H+`$}Vu&<=bTKpLU__3+Q7a0b)iz1~p9NYoyG z$zK3y6GLN$0PTT6k{;7&CBe%NTfcuT(15`b^dpO#tbrU~f7s*-NbX}b0Mpj5HPfJ* z;^MBVg`JJm$sw;{F31ENA-Xzu625WrlaEyD=1RA&we`wV%2sa5h2`LrMW`0r~&rquj%)lOzPL7hIS=Y z0gnX;MI({41)ew`np_DZiEtlEwAzHFQY|&)oeA4eIwOeJ;_fu69gthy+5q z>(fAM;^Qmr^#9NYXw;pJcm3dZrVK>`Ezbn$r4U_DSQK4Mhks);X!2Mw@4?_3lOnu2U{FaaKt$e1X&EMsKH&+*()du&J8 z#a{2r#S4~PPO`s;&?KINgNogRlpPCmA=`whTeXm}S|a!;7Q*OL*>+Hpa*xNB#at8c zwOHdFd(Y1eH=?-LccMl9Jqnd65Fm%2>eucd6iXz`|k>cdDBVBpu|MH*qqgE;7G zpM3={2{ru{X02zGJ7)2E+*~A^b-PUQY=5rU!<&FjdZ7~w9qdavwBI}bugsiEhO`-7 z9VU|skHhzH(ehCAhpihY9HCtOu#zw2TK`&+l+U9~x367k^9J|q{qA+h6Pc|zv>KDS zz?lzgcEl)3GGpt}CJzuFFplg=@@*dq2DsLz82*+j%knhynpxx&ZQ5#0lBc%6y4M@m zj`DPt!e#0(m{y`V3bk#$+3B`ET_J8`f5nmuHz+OtM_w0$BjFoBwXmgB)6t zawfQO3<+=mt^s!WwwTr8Pu$&=l-RRVMiwE`q#}VlWx1CMKP0T~C{K;0@QStG)58ee zOH|=i2Q6{~SWkmC-)64cBElNg$OHtK2s;~L$(D) z5nW7RKe=_K=BPwxmY}>T1~FD%1m5StISVXcB_@fsvk7x-LBrPOOT_UZ1y5^T8Ee!*=Op+ZrmA|oL#E>Fuomv%6E@HPP33h zgE)_`{ti4|ENk7Qf*i^sbjFNjuGwo>vp%AdCU9*p!G$o5`aeA9*VD1nMox z1s9q9HYU0Y0>?_a4Utxdzl!1;8ypt4wUI%nUjQ!z=Ix}TJV*~)H_Okl&Z!9Z4D4RPnY z-wmH#tDStpz?AVjmP`*~JL#3aMPGYXa2D6O<{iwdwO<6UK$$v!Wz>fVZrc@5&|z6i zID(n7)HGk|7YFEk)gCYojqpJezGi?+QuULXxEzReNAPtXF+?uHOI_`mvK-vWX@f3I zYGP({smPUy?0dnOTaYFCaRXo#{1c-}1l?IrC0bO$>+gfx+3&-iy#?vgY)Oe>$880Z zt=pp9I=?0x3eanLab^HA1h{qqk>uS(}wFx?jlaF@S0kmDY*v^s_2l z&0V)sQvN>!0Zy+f3AQ`qe|;VCG3^jL1SE4YZka0EOvOtxj}N2sTt}~ z0E&_KgSpDuX7}uI2+ui7=|pnKl;y zjy{Ny;muR3F>02Q>{2^6FWl>8kw99M?EzQJUg~DzJg;t}Wdtlk$nE=%iqV|=i(u7d zk+iFnTb-`}l^iecX?BSw4;Gb|r#i<{tohXO=K#rOk04pVb~dPyVRT`NHl68nap^PS zL#JG+9;+{d<}O~mO{$G-0avo!b&j@fo}GveTCLB-hgV3xJEUs6QHfH&Tq$wWL=TSR z1jycQpCrA1WphG(Oh`*OHXnAB^o5KNqaKeY?O6gNg?EE1j+$1)YeOmULp)RuJk2_} zx!w9Cf#_(p>^)+6e6=GXmzRbrB2BVn#osFZGhl~G#y)`401UMb7^<7P&W}S+cq658 zzVNZDEs2jnjQzqdab_V{?OkV-K<8!BstQstf<->*`6bFYR{(yZPgz2}g&M^d{HA>$ z$XD!f%~I9REhxFn4y`xM(X*6n^d9pD%HvxR3=~gkwD8Bty{vB6raDogmThAR(G(XJ zeS0)P7Z;A_MRXOv8*+{cZtd;Jb&r(E!mb<@K+zPNpv{O8ku;QuZ_zia>rF4#)^d;E zWlC?*45~E8g{Nav*Jkp=1lKWXk6aQ@TBL1r8EqUD&`?;)Drkl*G>!lhT#2SfnC_$p zk5_vMMlYZ@1@5__StAFZ z*lW_|w+XMu+K5=PJV_#w2gvRZ$P&utyW#r!J+rF!H4bZyR_TqGcpqt88~igB9>jzF zU!QS-Qm-ROOYtCyhxJlb?U{r?qYke<1fA%5Pzwdv(zn}R zp95x&+cxu(!*X-!#Um~E!q}R59luId*lQ#jWN5k=GuOdwdRKmQs0kn;?H2G^^jGTO z4fO){SE9DFZ2B)s9~E$QC|@(xN&57%ql9rC5(XWybhRDR#(cVSB+J?{#^+I!a52c! zDJ#S5!#(h~u4PcWUY6Xc{@*$-?$}j5>Zg-{WwEuRgnyl5-lo*fqsy(bsO`muTxOBf zoi1a!Vlptbn^f!^A1q7v)y2Ur`5>FPUQgJr_76!|-N76k3W@EMK(cgDjori~o+;NR zy*R%DB1_>-r||d9uHKBQ+^_#(+7t^45#&QW5Wt5Y$O#MN+J3pFEg=we`XP-@wSFj8 znpN5KLSORWVB=%K0?SHm3G;CV%*L~0uooa3>HH|0J;H5m3V%x1E|2mz}ii! z;;m>$@-GtwFW8QSMRVw3@Z@wPWM+EU^I}Oo_3)6c!_f*OF5Yc@i_VT}DQ5URP2q3- zhC33&Ph2S4f{3+&l(1q_Dy;h3_x3;A#Jmj30l^QDyG!+6c4)Pt)lpN^6t0pNgu@-F zN=xP|@~bV?GSQhm8*-fh5!X_1wmO|)B^5&AJAV2DqAH71^a|KSmD$T1O^4S(YV5LW;; zVdUis1;`vYep;oQXuYQ`0mKufrnQFroWJydl*nHm9e7|?y) zpPtmJS+zgWy)vQyQlg^f0EZ)`$Pc`ze1B8NvEu2Rl|}`=ZWrHoR1d^TF%U+;)&-Q^ zC{k<|mTzi*Ybpm2Uz=+hl@k*D4B5l?HM){8 z^ZL8dV&F8vT;wpxV%(N%((QXEO2k6>YGvq&_uJ?V8U4?D4No^WnRK2eg49mmM%d5R zBwFY^+8ft$oe7|R$P7!o{2ON13g1n+z(-e9Y@n z4Fe(idW!PyZ`pk$Cei#y_AV07%#>y{!hkJ^E~k?y!-7aTdS)4uEQSa(yhC-}QBXu< z)463+KHV`3*p65Qk>&7k%q5+$_vj~pyMiQ=vfZCx)*9$J?r+PEg89NSWYYBG&GFePoo0ZkkKd{QPR0^ko8J;5i>ortzkM_PgN%FlY5_v|&if(W(EL=#k+v`nhG_aLdp1J5HF^MB8^d&I zdsBK#sGE*9ogI>e`OXnFGAL1k+D;ESM|tr8t5TYE)cHzpEP{2Qi91^MQ|aSW!?K$S zbSj#yTJG<6_jY%3wZ$8IjMj4i_6;z<>7y*fb1u7AdH5HqG$h7kp4i@*XkDTZCpo2b zlo6H1ea?X`&pnc_#j-P4AykP2(D{UZNCS-0c`%r1?4HUrVJ`DLMOkNOX{79+0!2@p=h*GzJ6q%0mqy8< z+H$e^lGZ(czqo2L`K~K>-SNW%2=LAJZ>iA0@I-*ky-x-tUr*+e^P6UqP~XlkcL9 zD)32vJ-|;tTz)bJ$Zh95OHeln5)ZvaW4r-DhAC_}%wVSya%L$B;5)9=%$L+WcaI&1 z_24XelVJFymd14oH7hvYxh1^JmPv6kFid;Y$BQAP>u0J}r^CnT}v+yxU0Ee-?L+L&WnQAr=%z41D1TYOY(SYQ) zrc!xdOPx5uI7tW>&w{|Y@#jBkZv+$}5o6L+cN&V8Mamv_#I9k0#zm7PaVh|Py}{o` ztnCf!<=g?r&|Q`B3s|rRuK4ixM>D44vtE=<2uMZ93)#+=5fs=@jYT~Ln0_b!Ag3oT z{&%bd`joO)J%0+qz>oRxv%vGT<|sXPGDpC=7YhLBp8%yZ0On4S{lZt$qT7oL3Mnkb z2ZO+VxwQar%#Qw<@IO=ulb=9bN=ktF*=pW7oND3IOrnI$2gz{<91VTxu6%xu8Gdzo zzhr&`>j;I_X;^_Jv6%UG2KT_p)iX)*tRg{0VP&MF{`qiCI_^vk zY7hJi$+(3<0o&aFwS$na7OePaaCh?+abrHtw;Q9-B<({+-N;XZs4=7WWQPUfpG)Hk zD;+1x#R)|OYUbhaPM(j85-L9{pxMqpS5J0b`t5KF!@z09C5*=qX}-bsT@Gh=iN-cd z^Jj;!Hf3dvu&v@8QJ;dlggwiau;%-(L=z{y+;*x<{bQ$bj=-9n7B@Sm0jewJEjvw3 z_WG3tllD2b8e;#>>(eAe*!wk~O*q5tcaL7SPUmhvgQ8ch8(K1qLxXa8?MNCG zmJ_4KuzSO-aAMdaWdm2z&z5-|k9f`@mfYxlyFpL)7r1Z@JR3+uP~$X;O{zw z!*zS>^G)yzgU{BLe#VN=J${OGh@4{F4 z8{f?|S72niGtnb^V4@~{8O0HIh|%OkZbmAw1#AqZlevRL1=UEI0ZNDR-m!j@E-L%34azqi*m!2%SFbgMl_!gEC_X zKD>13@A@SnGecvy@9of}c7-Evmn;&MDRB#2N6m*__$`uKJ6_Qdqpx%kMJOoNeJtZG z(71QQ^;8C<3)xRayqQ?m{eGoCY6pXzm>_@1*f-er`Lx$4OH>rqaABy=Hsib}cLuE! z`AFIB??lk6KPe+(yHqk{E9y`beP*DVb@Qif5Z{n!A2(gh#1tx+d&R3h3C-d~P}(V& zMk$_ofKX9)-__rA4>}t5q2TuC6QTg@FoU z@d|M@`J1#%gxhSLW(&EpKlYz)zkQBTDO4B8<+8``w<>T}$;Zn=ni}=rf^@HOO!~x7SKdfm^ zZbUE@BJ2GFEsTN5n`2ATDW*HFW%QboXP^|d7Zd}eEH6Nrn5{AhK()j+wRAYQ=r?ni z96s4OT)*XQj74E+b+Ux&cn0c)N+UH6%MKDJ_ByM{JnrSBYf-lY>cru8jvgfxJvbNT_ zEDs#6+5%+zt&!PbOl0tgreAV>r5*i)~CS3c^!0%A-@&90j|#X>S5RQsaP z)4-7&LXdd&psQ#_SgfBY4|(;m`;({9;!tKM*lV%m&&e_F=69Cb=ar9xFCm^~4t#?F zJOm*r$E88V0xXtta$cmDxv8%~II76QRxidZ+y$@Yh@-~G(3%pMgaLm^vrj%Jvm$`5K zhfve@wa`=Ox!k{ibBJpkB=%~0Q>aqmiu}pXL$5+uu4-m-5S13+gN-g+o765or7%uZ zqTJ+NuU0rtgII|Y;@sSo-3vyxY)HB~1fIM{W2tpBrGoWudJDh2H6TO5U+kj z8Y=)qM>O-X;23T-H1x`)r_sg5Ya1z@js~MZdT79Rz3xwz50Hgp5)b)&H|pIVwNoHZ zU3j&z)S{#rTAVdGaSXXgRj1H%F|9TwraRx*#m{Zg%x@y+wmvMD)Po8J!Ay-LAB?Iu z?I)aUd18S?*0(6!7WQ35(j-X#o@6q`D8_C+s%Aa}dm1E{`uxffm7+4yFw(Snmbv-j z=YFQ!zW0DaW47mk_k5QUw=^=J`5kM@UAd200}R$~t;TIbHn``5VR!}_fvuhoFY?fE z|AGrQudrh@Un8 z>f*M@6x-Iok%VMfe=IQeocs`|OlG!&#hznc6zbr^>%8tj{*{an=Tz_-3*%OA#_H7E zCb$@MHZQ$;Ar7`WRznO+Smg}9h*GO$lO*o^T22)r3P`;Gs#BOJ!${edPzN_vhk+x> z%Xfb)C}sO$fVu}<>G$m7RXj`CjPDvi5h?$&G}71!6d;+Q?ksueBq}KY_|`#QsG%21 zeGOkgBZn@7y3bk;)XX;s#5J|C$Xzu#eD1dF$pZ0h62d2x&Lt|anH+i|!F|Wckkc*e z)?{Dy)>xq$&j|71XHQkV9SRfn zSwJs{4u-MG;8fjambz~)wno#7o2_3p*7|Nax4SvtIB*tEd1lveG&|2B@Z8N4YLnjdM`gtRCXS!$GH6oH%}xcxuQ+`rcmc zMcb}d*H{e(Oa!Pv`kBJS8Vl^Ci2=Zi6_!G@PS4lhkJS3&QGR!}^2lbVwB`+L83Y2K z&4e{>hL<&ozW}(GM?(e30>=MYt^SHxr&7s{$N}QCCn5WDj8R{8}Zc7-R?KR_w+t%36e+Hpn4e^)-cGLw=D52* z!8;Q@*KE7;d9Q;;tNxY<=AL7*%_=#ps$D?*#ulX?T;Jf(N^A5LlwNQSrtnSafyF0BtWroKvI)Tro5){ zEn0H;x+VYMdg{f`;OEVvaRv|X1&y+Q@qv{SZBv+LqgP0CT)?^kNtb6WA32%gf9Ko+ zy>j8(Z%f zlksYc=dDw6B+lPqq{XnJjl(L?_&}XCjW$3FqW^k0L|R;=GX+P#-?$53bA-j71vS`I z*WD${ckSF|adqrI$84c~*l{XEXdq0aW<)mMk#h{7WGYD$0a_~ds-_kUjn9AVeMctq zO`itl6_D9$Y?g`~N(7C;5R>Vi zjjQaf=#bwsGML$KwT~v(*{*`LwJm=;avINySd7DO*$L0B>?q zlWTfkd#NF`9+Gl@H+0f**u$45R>Tm}$u~f{gml)D60K^QXZ6sEKbYN*{LZvIJu_gp zX9JCf;?nXUV@q65`JgfE=VPx#-TgsS0?O{fTvbKw#Hx<1vH_IhAq=RV`0|a!BlAm8 z4$l4^C^;PNFW1ariFO-eUrBDD93nm|nK#GjsgR7y^RU+wGm+)mQ6ohp z9$$-`tVvYh+ zq{;^k4(b1O+)k_k2nPKFI8YSfs%gF%cjc>Eu8mnmmyz~2fX-|hZ}BHD2jHP@8zDlb z;=yLVP|E=syQzR6lw0&y8vP%$s}cy1IFnSLneFU3;Grk~*~A&L&JtkVP{r#Qp|-hX zc9`i5Z;{y~z#Qy8xc;HK=@>aHs>VOshQ^8@oV~`5a)B&!M_UsAmAkLI6Uol&)=#80 zni`>MtyRZ*`y<`afG~lwBr1;>!XcAEx5$*I=tnZpofUgwmiMR6uT;lhHIqu61zrkK zTFtWJlwvZzU!fI^wFk=?2ysgsw_9Sm@pB0Cj_(zP8yEhwW@$$=0Ie7xi~&~hR>%2&B$rWl!4SKhi^_N;V5%Uu9bZU5BSW+56^7^|D$8xPG3{z$8|;EJo> z{m}F2hp1)0N1=zefvn+!>ixHc@W90A)TY1;;=gBYdp4SBS@>o~qo2aqal9RXpDVUT zoXc_4mU?Vx?cCoF6)|eW8@z2{q*3%_AMA#DZr_17*o?GYVVYPH`UJ&U3V0W9$S!_Z zSPxMv173&$@aT@GEX>h|ss|mcNvLTt-=PLcV|U5OYA54+yBk&)wY>JTIps|ETbQD) zoE6N?NTOH&vp42u{A=fBfY-gev4BlZ&S|lOz<-+oZx4Y0E99q#XmmX2 z4+rhtu2~}i4*dRlH4xTy>53rgsKVk5qac^#>>2=;0$w}=o<3-Qdx15w$DY!#Xg0OJ4e zjo0V6Ct?{zQjtlGgxQu?-NOJRawbf62=oJbaM}aGX@aXt1X>~i&Og2dfO%L&6Cfso zsd^kw0eXLW?J@{`ib(esASv!(flUwqbRn>$wAFOG5eIqyfabnjY6)AMGP$Qf*xQ)j zhk(KvrD2>R5Ka>@FeTo1VG1h6Nt&uDl?(E53FxhF$K~$SG!tIBAD2$;>N(^@&4&%puY_PnzR14{vH8x_^gr7B?w}^Oc3<}PQ}z}V8%Cum zRYZtNkscKgktRi9ix8y?(tAr(6x0YvmoB{uQUe5tfPi#EFM-fY2n0exAoaYk_jm5h zx%ZDV=bt-w=FTwll6Tc-t*88+XO$ON)dH3z>oTCJ#}kI~>)~FZx=Ri$YAUh?mB@Mg zNX7^1B!ui(p*`_1>WIFC7d2S;oGf^-ykP;;!!CV(jJ3%#xP+@fgteUdo2HSGl zG-U*WlR;17f=Cj6N9=&W5#d!`sdr@tx42p|*6Rl89nyW7;#;``w*!3c2B9LJ^Unv! zX+2`LJJ`BOGvGP~G2EIr%wvYWVzAyp3F;+b{nK5WJ0ts#0t# zylO=$-P?edfRc)VU`G;08-uUz4rSjS_j?^$7!`?5!0(j(G2N{z*7fLcnV>H7G0WSj z-z#)^;tmM`cneR+{+lhc3p@Ey4$7TMlhjpav}P1F77>a_=eANySKgcIEG0p|9t9#9 z8`_0yw1w?U&vkW171g*dh+qt+kTUfc`?gI8{-^PqL-nU1GFuT^Q zRy_Bc=7@HuO1z&|=bulym1;PI+0k}M0_tDXU3 zJILNaA+^}4Ahy=#P;mhGjQ77{=Rz=rW#J2;OQ8bBLdy zmpOhDy0$N`7tytV16MO6G!F?Tu-%9op*dH0Ga}YBBPeczp6x&q9iq<-GQz2WO7G(fTd)k1H42pKhI$d&O~*_t7={QO&rEr*5Cv zGynKbR`KeWYaf*lsU0$CM4}80;XP#TDGeS$`}F+jiN`_phE%1gJUl~nIRxp)h{s3Y!4M!>R>$a`kg5kv(~>O>0Kw;}OW5fujDl#v|6wn_bj zfIKRKv{PIH!zdqeq+h|n91wkf#%%lAU+KjP#_w60cwd!Ie#VXJ+-dxM zNlzAjY9l|T%3sG;6;Wb=9T?^)x^@=>5EyVhk@L|ez;q5yOfcU;2WDW=tbRIZQQChC zC+;wUabz<*4Z*S!W2@0hhYZtq&?f{-elS3tl}r`!$tAg~uYnUfb2r=D;^3TGZ1bx{C-35hI`)br~EPoZV_N;XcC~(2={=6B6lkN@i zV29ja+Dp^RHJbCYY=&VXAm1D(Ex01b7>z6mV9oCrct-CRncic`Tc!-$y~E*fmHApw zrqZgj#QjG(@LSPl6-2g;aC^&6YD${xia&m2|Lzk#^cRWGN-Ee!;TPke3aMBH7(Wat z%6KSu>F4~jC>uaIyNeHkSN_cEyn%=W=BGCz^2GkBd3~UqVuh?~!?ob;=AHpQ44w~{ z$_uNObOaVEIMiP5hm$#er2Wqyx5DwKGimq6s=y69vyu_(oUN~pgrDYkSqezu9Lkiml&TS`It#2B+5v-bPwCf#YYq+r zL)E+p5a!)d%TKg!o3toE-93Q1+?~prn^8|#DMzUYqV#hFb|@ z9fo|Sm*W0%Be@PkQiG=VmaQHw261u#G<+DR=u9T5pp_e2m~#Zq8^m~c_I;&OJ{D&E zNrBtE8b_d?RHZ-O#ofl8^Bmti$s>&uz}cV}kt>6&R&I$3Kp}jAay%G^8IAj&jF6!s z@{;9cUC#|jq)1OhME7@4$Ld*k04)X(IX4UrlP(HIJ5G>(Q0ZD}*5Cc$I2H;`j4RaN3G~tPGQZ5zInv(c1;yjCL*6Up}QS8lVTm$Vlc483bF{)b#5@)-K z(c4g7+5VX2tdrY*azChlG+D?G=?gbL=)j=>W&}FtK>!&wykl%v+@~P?9IP-9pHqq} zeT($|p>1=ZPq%=B(|*H#**t>|-~GZ3{cE!M?2?^EdRU#+xbt!slaJZX{IbYv ztSXjlP?@h7at==j%nK%^U7>tbGpe-jE0C(lSne{a937JL+00W(Pm>FFv|s8U?q_vS#N|}yT;EEG`5NC3g_aew@-ZWqkp;%c$@7Go*@Ys#Gi^My_|t@T+{Im@-I3 zc7xq3AhC5*9j0~n(s|6ujhnR;TNR&k+UmHCM;T!evaoAkrX&nm>{dbZln@dhPp}ka zW>caVVPCTISLW)T3O&yIl}0BDs|Hk%P}DsL#U5sQ3W?MaWhX*9^yR@3C^>reI=dP{ zN<1p4yb;e_WDfoIg-S-KXyXPkwY20lewCM2V_=d*-RJVA27e=8w7*T)Oer=xTB#5< zn`c4eu7|Z3@f-!)6$EWKwy%*sU9sTa%=K8}dL8WU z+VJ^KLv?l@8FYOm9b}Qw5XcxciDEcqnL*_71a;5TNRw59A)MM+BfJHK#^!`tR_DlM9$VLjjJ! zeETHtMK*<1pGn2Xo8l{(6!$I*DFnhxmpb^b-wS# z*om|*HDnw+#fr6ALq~|UmGH@`la^&$>zvaCSQ$TUv?7u53fM?%kfdUL z6gK&Oc%IWw@u7>bSE24~qiNbcZ!FgV6skC#p&fn+GqPm_dPOIWN*Iq?r+O#%%TN$1 ziHS(5q}Y1vO8ctxinD1Cvd22TIG2fSOLm0E=vsHI)ViT6v?1RxMWA1g?7mus{1Eb` zwI4f%EZGC!pDr|@Yn7@j#J^55tJ)Jy8e}OX#%emHH;7a6*t@p+YgE|^w-iw$)E zH|gKPP{)4_q0Z4%!IjG_9|VjHFoOkpAx#e~@{vwrGX z8#6kSL}Hy!Bz=#Yj9w{WaeCo+d=RiWY~N_dR~bhkrfxqdm*D9~Mr1;816yTsH_fz` zTni0K6+T$SK-3&0AU*&%0#rLwSS`k|yB+Ziao^Iux&aogB-@i#kuVJY&};p*Oey8TbtES52XwlxE3p|A`62qrD0cIz2 zF@L{>b`&5Iz+kI5Gz^dT0HtU6bpf#b<)9wMMy+)O}(=*1M(&L-z_7V|%xqR?%4VIlqUDHMLEoZ~;_vtOV@a z@Gb;sk&5^sWiu%IS4{@39KjSmD!gYl<40P;1pf=l-Wp(vr6u}0pvRQF%=0}ic|m(R z=~{IvK6s|EtXIdkBo$o-Eo;~~n@ef{H`>O7e(3&th5;YOR?Owm6(x!#>l9t9N_#oN zJb8r?o(5Nnf&KOpmI>up0cAE^!>BQZsZio%+03t8*vTpH2NNM@laQ{EAV=qiN)gN~ zpS%6mvbV(>DVv{8jS5NnFkvwUUSdz&uBQMmnMmeRN&2h6|)p_ z**Q_RI(IBtJc&!A{wvg0{F&M~Bki#BARYv?NjrRtSV?!6ks5*}1TGX0O7VmHU|(F& zW1AQqh#7FWVw-ci>Zx`sU^^Zl7ZQd>WcbU;IZ8R9tEwqArk2xG#^4nAlvKx)F{6%g z^olmKU%Ct$*I>fC0-F8$JTVW+*fvhw{aC~PD(Pihopntt2W-3of$7jLMEJ^nee^U@ z)~w=;Og5jgMNW+|Q+U!u*%IP2vpcMx3yA(LG%zcHd3ce!k_VO#YqLB0RbAZbL;8K2z<5Q{`7H11!ixGafv|{Xw}d@8b*zIWyuI zFA>z)VSiU3|3F8}ZwD9)Iks1a_6x`nNTdxR$$$YJVAAm+t($%3@oEnMjDSwr4E?QbAnYGLA*+W+E>*PbgcfS&m40OFW-D+w0=F_b&i~0yx^X9=S8H+}1WdFc?H7r4?mh1+=k_3cpbJDEdu zJDs^vXVt*^C4vw|R88B>BgcNGwVGu?bJVF*8UW9;kcl2rm)YK^ageI6u2vR!h7gkxuaQDTm*2RH6Q?FTZzXL2D%Oo($gPAvFKR-&$u z(D}?$CGi+rXPC=kZ2~L*?EpU7r~5X45sLg=Y44UbzdfMYt7}rm^sTz$0D$uJ`n)Wr zaN)BKu7@I}J*f=p`D+UwCYMVKbLIP!SUnHw*Rg*!oMmEa>XaBOUwIlYM-H1wJ1yKI%}sH5+1#Of7E)wH+! z;P}jl10Xv5l?GOvP?O%Ja3dR|i$9C(JhcweoZ?&$S z1{>fE_ThNs5sqJ8t00aAQG=YWJFphOt&A5m@JK=NAg5mZB@6vT-bl3wGyIGS9MrCp zH@R^9Md0jgk9Sl^SrWA=^k2X{0*L=G{`BF@OqF(5q>^_gR5SMWSph%*8_Sz7{eGa( zzxX|ObPcN0JRB|st`~1)bp7Bf?XiI6;${%WQYIzzTPT3i-vCO54XWN)W|-DKX{cnI zx@rB!@nv)XP}L7Kyb9Efzm+jMsW{oVbT567Ir|9|}VhoE$gIXB-* z343<#KmYQd)v^wjk5riduRp%j){9WK&oX=&3)*+1*yHOq;^%nzvti1T0Z)tVAwGDh ziGIkr8b!vU#;g=IymCX{fV#W=XJIIOD;8j6j_--H)joW-h{0z1r!`;tWI zxf?OiA2BWmIaVV;ejn2=%cRystIk*=Kpd$}w70iJw~spvp6tJEcrjfm@eXg&QJcl2mJJWd7F{;kdWwx0IQ-nW1{}>OzRGhd;K|b!7O_}%^PI|Ny`!c!9E)U$@p@HTxxL-Ky4f^e>ZMPl<%S?+rC!h z*`K<76AA#R{U8D$capc!*Y>k7Ikh%xDn`>K--vXyq&V+GMPQe>?i$F% zp{$t6Kt$q*m6qrsa9=IV1MXjtp_SpY2*y79tTK8`%no?m~yG0Y4-fddl z<+S89H+AMv>T?ruoVq=}A9megqyjiiIw+AbvJO=B4XDc8zn0=97d|c~@$sz>#_-aR zX}A#h52m1jOA)TbozgYLd!7j7J(v=3CRCM149fQ3YKw+2=^FFBaEu5|3)XO1;#siW zL&XFbEunhp?~Ygxg2hXwN8=`}beVl(*}#RjvNSEa|H(a3MsKGTooTu1pb$2@L>$^5 zR3LN0x^i+UNXRYq1v5Gw1K!}NgvhX-U2tkK`)4S6)UOH&`d-M|cMt>P(bBC)^xqi;Zdl=nVxBPSY z{fN(lCP!97sqg%NHdltiUM8q!cm$~~NlC?zW+YF<(%YD`4dJK@VD;mPSU3r}n}WR2 z&t`7t!ivyV{ErAc+R3uu7p}*HidyYVJPpsWjc7a>;Y83>%XX$ZlbXNGEAx_M?7uwd zesy~>EYxRq>+rsC-6|u1&{JvmT-L_YaS7Cx#A!%^<w}Il5lea4D-ylc&Vp{}Q(dq9jxV}375Z#vtUpNwJ+N<_P+oQ{3X^lVIT8G{wd^kS z2W%@ozopMxWQ=LRnP`;i*>Epn^_hvO@Z%P~vUEmZgi(;ERD7zUUdDs)l#fK=sZMQnOUHGJY4%Q6J#A1-T7&PmQd`{*LUg~-3}JZ)GAnX1Sneg&url> z;lQ%|*69&`Z^HKG?p$9?a}~2N>Go*T`M#7Gl&dwACZ*b-LamC|o>Y%vj`0m7a=4hs z2f34)^nl>6{VrmqS#maCCv-m>FwT90dA`c3S7-i^$;J0;9w#i zqgDv*`NJZ4(zWj5GgBEW+f(hQpS5LTc~2C6z%)1VQC+x3^;e&sis*0oHKHBXkOEt9 z+|5^Tt5RUfym!~#iC)%_qdL<0%mr0Gv91X{B%C_XJu`ZE&|#`wYKu89(_x!Ytn^r< zE!r>r1(k8w0^&m7NTUCRNA|7|BE-w?v#HF4P*r%dWp%*T@_N;_K5?JJuv zpdAE>DAb7^yzV^i>^wbDP0v0Qej!qzx9^rw4peT#-26V#yh0?TCfIR1)c_Z`7t}FO zW}#9yKYTaxMQ}qn6dtW}ju<9^lCZMv(2{Bmdf%gvvevq3J*nz;`*VYONx^Z8wU%g` zOY~>?)w;YCp))?uT8xt>r*7(v)K~aN+@=?+_|)_om~K|DbU(< zN&n}S3KXs{%<0WNYjJ-J#fzAm1eew= zB}ZO(yLMm@vJmspz1jnODpecJ15nCtQ3wW`^uAtga-@MwAVXC>aJzj(A<1H>=(I%< zG}XAJz`emyz{Y97!tKw&$2X@PT;6Sf3(I&6%XrNCk1_=}W?0eICO+zx(9I~dY-sKN zBKQ{)b8hFa$*h-{+MvCaQ_z8AQQxbnPe=@q*bX8-XkZ!H=EmI_vGQCx$Sjfas(%+| zWZklo=O2ycc2W>3*;Ng(#W~;1w8y|a+-es?heDJ7RLoAfO|swk*v_|#`<^F1RmpW= z+Ru-J+g0nGptRuf#Yz`0i9~XY{Ho+1>XVf28h9XSon}G+B~hLr41301$48Cx1=epf z=W_nc=9||75Pa^YP`^{<#61+uV`P9lA>7frOK*j&8>nS6KNM9$bl?`Kzs<2QT$L0) zu@YRnSV^_|EMNZv7LER{9jIqjiIz;YMt{EcOh0gM@YfU6(w2dG>l;c&jyO&cwmGaF zXo+4CeP$|ZrN=S}*Uh~v6}n*f^dtpw(`wbd2J?Jf;nb9Dg`JCidLJW6C41{8-;F_A zRRxWG$^HcCbbJkO}Zo&*PnmNjPm`us#ia_2+NW z$A+DSQqJfvD}_wgha8jc)$h%p0HU;`yZ*~X9r;yOr)~h&+HH8m)unO9ni1oYkq7bc znkqHRh_uJOQ}3*5b4D_kU-fPWd7>{TU%TS7sC7m%a_DXT=o_|*6hn*DD0n$!jho}j4e1vM#59DVn#+vsV!R>~Wr=E=JoYu=tijVO%_hO^j+ z?GjP%;m7$)v^xfJVOwr~W8l7ILEoAj@!!-iu1kFkDMbY_Pq$>OC(F$XaOr??cBX3u z>V>=*U$PW}2g*fTTmY=s+)BA24`G}#A-ji6&`WD9r9H68d&2LgS`jqWQqBu(11H8d zRDI1W&6L*>g|y{!vZ?}%h8GmNYh{A+cL48at!^Ep-*Mr1NR{*A>(%TIG6Qx}>>~tr zLA~hfW-16I&9jeRbLLTa!nv<=^rZRBLOeo@5@_VDK8K{rm`k=Kec4@P7f$zj5LLtL;O~ ze=oYsN9Qk;}e4(e?$FS z)M6E5;@Ox%)fi6IfU#~`vJ-yl&Z&-QhOrYKwFuQaQ21X*M_hiLF<3U=A{EI5>&uR; z9WLjaf8;ZYjz1WzlPO47Ki>A$q?$_SE#V5=l;UgFaxMG{DKyF7MB zqpebl^!-sUtOz@K_rrx6MR|vXjQ4*)jce`+G7uSr(#g9A`eEkdfkVLIk-v}q|8GA= z+hEr{7k=_U7{6xscO2GFh6}+Ifj6aO1SVS>%^-D0UIgC%nzDj3Df{0qlVVz9Ydv_> z$e%=j8wEMMksU(tV8U3rW%KHQ$C@(iEJ?7gdT~RJ`Ki*psK&Qp^&dEEO z+Sp`k0PDCM-r?=-?K-jI%r!L2S>n~4C{uVfJ!s>+yi;89H6Z=vhskoAj{$Ro_ X$KL)PtTkG>U#pImfoAEQr?3A5d(*6x diff --git a/docs/cs/images/authorization-new-permission-ui.png b/docs/cs/images/authorization-new-permission-ui.png deleted file mode 100644 index 1190f04b70f11d4da39423ba5461d1e56f161045..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30429 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 G*Z%=yS4yq` diff --git a/docs/cs/images/bookstore-apis.png b/docs/cs/images/bookstore-apis.png deleted file mode 100644 index b7928c963741e6b53b508d9b284a69d215c984c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11523 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 diff --git a/docs/cs/images/bookstore-create-template.png b/docs/cs/images/bookstore-create-template.png deleted file mode 100644 index bae34a3b64f277ce995104c4308095e5c3e5892e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28393 zcmbrlV{~Ov(+1c`$F^^4sV2LL%eiGl8-dQ*-$81^xKn z|Lb0a5aO3FgkQt~zZ6}UPt)&wa0b?kE;^=P+Rx0O3q9Rsi1ye=jg2*oKYt=>|E}a} z^+|Nbnj2`GRq1&YRx|4b=?A$4$dWDCuly`EHOn6k|Jwi3xsmkoJ>=irm!F{jBwvvJ ziSgwN0P;TxBGG>m9|I&oL{junE?jt=e}vy1VBdUy<}0*CLF&O=yYgns70FS?{U>Yd zbEinG80jS#!ux;^1`#g?hz`89*}q19f_x zvMB%68YIUdtWXo7VgZdDZtdl>ch;cev6KG5|Fq7}>=Rk+S&YI&cIIl~jz_2TKHZem z$bWfnQK>W4_I`nL;pH$uPTLYpDEC(4IM{+by79Cby6b&gIUb@px}=f3m^b+IHC zRdhg6Ax�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�m@g^rGp2J**$EAe&lZi5p6M+B+cE3WkmK|Lc0 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 diff --git a/docs/cs/images/bookstore-homepage.png b/docs/cs/images/bookstore-homepage.png deleted file mode 100644 index dc015aa67da11f84a8e0ffcbc8039a24b6fe69c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7620 zcmch63s{nAw>C~QSy?jELG#>cY9=#hv@{RMbTD-+H3iLcPAW#C<^fDR)HG&gYF6ec zp)@sL1WZHofTUKQb&OC!(LAN7fCmIT02^w)@B6>K|7-u(-v9pgdtD0m`|zx_p0)00 zz0X?jZ6^ntEt@nqfk2=wcDARSL7;VAAdr&VhOgvz)~;V8%0D)S*}6x7Kq^}me@gG! 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 FzX5c<22TJ0 diff --git a/docs/cs/images/bookstore-swagger-ui-host.png b/docs/cs/images/bookstore-swagger-ui-host.png deleted file mode 100644 index 7ebd8d8e37e68ceb3749a754ee40c78f966eb7d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41867 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 diff --git a/docs/cs/images/bookstore-visual-studio-solution-for-spa.png b/docs/cs/images/bookstore-visual-studio-solution-for-spa.png deleted file mode 100644 index d114ed188ce6dae7fee0f428542e799034a705d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28985 zcmc$`bzBtv-abw#OAjE3^wNlgAl(bnQi38NDIp!w0s;#xASECTf*>so(j7{7OM|3z z$8XmAKF_&NJ>UDB^SoZaKUQak*_qji_w~8rJwd9L@5^IN%2r zf(9;;`($|y{)c5J_skIm1&0XvK^>g&xD1B+o35bj=?z+_Z5S$7kzgfnQC7FK_byI9< zl@B#@i?n;9n9D`#rl4@|&9%=KP~{zZ!^jY3(>@Nty4WZKE+_Ni2F_ZwBH zKES)Hz1gc4&hb9|>m|;Q%+ky017s!E#HadKPbRM`Gf9il#Lt*HYP@$juaC}q7^HU= z!ak^;Xvkwm=*xd49-1|{X~W!I@Zf4)8!s57%U>~6szgBydoP%nKCL-$y!yhS6AQ$0>N7D!>~itE{#?5F0lB?w z0lg!1Xhosk%Pd=+Rns$6?O>pN;kzWvNHLSO>E!SJznkbD64!}9R2BQ4X(>#V#l{0~ulfCD-AuIhy+ zq!E^B{e~nzgE<7}vWAAfsEvO2<)VG@@-A;eoVL?~1-Z`l`o$|xl!AE9QM>19j^`V0 zMnA12g(V=^=ycdvqy#DNvDtjEb{YFF?r0|)nG}co8brGT;_HGICyH?3m z8@+fZ_Vlpz+B!!WvJ#(9c{Fyt!?{5Hvv~e$q~?_XtTXUgNwYhOrQJw_CTS&_hK+wS z)A#$B3^ER-nl-C2tvo?@JNO5c!#C8Y;^8B&byl*T*`}$%PUPP0@Y z^XbI8JU!&_tqX6vRY?I=Lhi_rsJTC} zY!)^S=W?=cp@UaLaN}*~%G_|3z7PWGCRmc)mo>MyA5%x*VZSkl%okQoo_RtJ-C0JB zDegj(0%Vq|uAKrU%smleZfkym-swN29tb6}5W%D;0?ltib1&Rpc z%UOeSU}^RTq)AB1^RzYQP`KM3K@0B}E#5>V9pxO!LXOi2ooMLfQW86$^-Cy0?)I1z zfm~HTUu#s&!2u?m%_RXi!9K@Ds#(IR&*HERp1pWC;eKE!&=K*hPF3~51c9Q6`t@6Gf`(IGIHavxr7%}?OFRXJ>QsLygn39+uQoK?B{%2m)c2|Nk=jL8HqY(+d? z)ZODbLGLuH{}iC;-}^{!VaRXdGrK&(Hu+>$M5Mn;iJIZ+`7WU%LgN0)3z|9+xi*!L zdBlPYyy8l=Fndrm<1T@v9kO9Jjt&OD1g960tbNBFiL4!_&GkR)?`Dl1qIK6fC@P;s{}nx)pWEl@+AmN75e11y zzwjg@(#_#62r^~1H;^bJS@RayVxjm2Q?x#`5Hx7g;p;JNx?r@_n{7K{nkkmzyrDH<*dmBwjhUNkAaJAD+u2GBYz{ zVvfmGP}evvzK7~H1x1TGG`_(^;%BxKmgG)Rc{vF-6j8t|$F+|Fe?tqIq=J8NMS+4K zD*?Gd?RB-E>W9Q&S~xjDfeNB+@X6)lyQ3~*b+I33BSY7lPCZmeFr|>ls;vF&*~EhQ z3l;h?FM5~8A|~a2?-RXL8kojCFDjHaB1MP~Y85usy2tu&>r3wRb3rTghvCYCcPkOtx}7gkaPkLryAk~Gn%^bl01*oa+Y@ zEF`ke3pvU^M96eN+uc(yyTrBZ0$ZnU6HB&3$qFOo5Wyi>$e*?M2%&NJA=ihYiBdC) zD!%8BFDItzw&Aqv0>f*z9FISbCja`)>3Rf&pI?VQ^^h99GOc-1{NaFG^Foa*Apktv zqOcR{!cS78OFwIHFdxy6koUba(oJyx$Q6qPp3IRmpo~IN2xI$9PQ_W5!P*DZz7hy?i2e1IUq2K|yfD`!eV6yaJ8DHH0vG4@&Xkmt z@47Y#GZ1MAxk`H3m&J!)v=)p5pGvLqh5#`T&*|lT;aCbnQfw*2H}*jJkbV`2WKAmY zg8r2p1TNsRJx#nK6(QkFbT`7p+R z3yC*WvKxhxA-Fc*Yvpt1to!Tz31AupOy#{$4<}~==v|KFQK)pQKN?JewzU_ai&2Q_ zTJGuTQ8E>|2Rk?>AlhiCs9*}0j$6d?i6|_~XRnGmb*7a0no7*Ep*Z40o z?mZ=Prgb)?A(=wZxU9N8?-A?X?cEgTZT&jMKzjIVt>V_HCtve*@C~rit_lX7*(6M= zR7aRff?T?P+q<{E5_SQmIaV60jj5c>`nY_23vo01$6EBe*B@okwj^Qj5X|?$Opw&@ znTrz@?nD=Z!2NqFH3k`9NGqpr-VT&{=9lf5Lbl4CL)4Ny;r>PzB6wMAz1+7L&91H> zP`aIjj_*$w=OHLRimqGnJXxc?+rEp1kEVMQ{$WNQ(Z5UkR%5o#BNoNL$;ruxE>YeJ=Qv9^pdj2_)g{FUk8*rQhq35@RX`9K z6)P6E&m1f!JqLR!2JKenJAl#x%}NM|DoP>hNjmS1fZqA8&#r?){+EQ!GgbN9QsxEn zbM^>6Ou69>BHvIcGSP>4w}Ksjht-c3QOP-@R@N7`_AM94X#!E8A4HW9;LWWz2X%mv zX_s%xu^w_}uX0xr!%{w~-(wv+z=i{x0*50AV&e>ZoJ-VA-A|Ln-*aD9{cQH?T5NTO z`o}wdMXiJpGQVTB9ddm$ipUE|)VW93EB20C_P*dZ6&W9(KZQD>voCSZd#xIW$NS*dqL%-yZByFk;yFx>J}?Znpqm~ef?JRL=Xj8_>eUV z`~YZR`2%t5_a%R(bfz1cltvLI-?5!R0^1B+>zUin-eiJwdTD9fZ4f}wpb3(Qf`S4N zBoPq8XRnb(7D#7>BhZLwrGF58zpAtK=eLrgm41wctc)lT0(KwjN=w*`u05Pq1%;MJFNzZWl}^fBV-;9$jJXj6t3)*pewzQaUwUknbguv@^E{Otxuy+LO-hLMt!rE|dz|+}$ot`bix7*tK zZht+>9L&6!a`OS`*X|o#+Rl=$^7_x4ERe4So05Abt;c-P$|d%7Lu0#sIlU~^}gO7&EKV1YC@stJ$eMEe^BA@;y~g5Z2&6}GoS!}xwjBGBnw39Q}bgW|<8 zl}8OcqQ~>o%PJh4BHFZ5r#afn)*c0`I3|O%ZiUzQiqiWjHdymiArNcJ>0% z-h;!v#EZI2nnquEbbe7${Uqj=lnz#%jA%R489_`+?1x;(4)5|YzgX1><-Cnwe6MCD zW2zaud`Gb37bDUXMbPvcoEgfH0`p@8?~hyX%A z;_~x5BZ}7Z=gD!MOi`lD%1LiKh(kT%hpBH?P-W!wBm@+ghF`dDP`k#&=DepqjKgqz zzJaO{b5WHfPHn}ftrqX99q%K;cO-4x>+-7vZ_Rlcotb-c`x)h!a z=o;(uSUkTDIz;&tV(@d4hXaQnR&-mPsF@Wr-=ByI+TBl7dxQrxN2_VqSS6SC@03$Q z(t0q_8@r8P+TGtGhMhF~aZNcLXgTkV@DT6wtQ-Q#$;BEL<`#ETd#E=ygkev+d0~*l zC17+O$!Xn3iJ)Y$iXf#;sy%2*5?4EbqTN>5$1>zg?pc!>7d03-hT>wLFkpaHY+Un~D>W54PUqio*m{qz4Y5Wh$<}W7152 zQ#yGFGqX`b|%I55LSWHYtYKd+HMpyT#AJ&a+DllTU!+#_L!Pabu7-agX# z&Nso4QS<~9c%HBr?<%Es2 z_JfZ}cQWI;7*gIR*1~VU*z$xG6QdWcDucpAK5vp5DI z#OHZBN*bHrt5xv(E@eWgUiNB5SXNCV*lD7{JNbR#%f^-zX6aWj3@FR^`a)+cjTCZd z4iZNsj|BPRUuQr<`HMgPB9;GYlCsm3nO=zJdo@z!tidWS+54U>Od~CeKzyIZL~h}M zAE2Y7qo}AzNJv+5@{7DlKZX$AV30ucGuB>uxXePn=b=j0_yfm3#UUs`3fb$QT}2}0 zUJ~V#{CWnR+yB?KN_&_9QpUt9?%DyEabU0zBfVPgK zgMc=#NHQ=_fH;$BJulGTJuwseuN)6e=-;54u$Ha^x_B2>aQfsyr{145vgOm>peLcjsW zVz4Fy3HE#xxBICaD*ZFz5H#gvK1=7hws#oUxGDm6vmaa=W@%kE;xDow3)1v7SO z{Kt-=HNyA6<)vTiSz$rJSNcJ)xRHH)wxy(1yKj~Kg6{_huU(gv}%DLV49&_w%YW9e&3mu+`F=Z_H4`s^q(T2PYgHAoBrcwsc?&_wX+^VjZRLd8( zjDFes=6C*vqgW>`|4vedohRO-lfpC_h}>wiz6m!(oSdDO!&RrL`aIUQHD;(%_(PYe zF}57QYK*St;&R-0#LO!o@cN)_T>t}B>MpO=g!sQEG4E0|n<8GCrFGWf4N+H-+t4P+CNfep(bG)Ier9pM{0JxL&PEEl*cp(Hx9rS~K~x|fm3kM(@>6-) zgxiC@9ON<{K-m=5p9LeMmx`wY&)NeZQ14Cn9C>eo+QykmJ|@?5j2cY8UHF#?fg_j# zOknwq8)dq)vOYXJHL50(3#%#Y$M_j=_1kUndR{VaOUV76@acMd(CM9hcSLWm7AO($ z#`KwnA0ASrv8|9p;qGF%8!C_(K)Li81B~lEN12$kvfi0NZz{_f;I+!V>qYGi&vwE) z^*P&t7#`855uk24!lJvDQNW9e=paV=1yX0kR8+|Uyd!D#PE!0@-#AhR@w3n9;cn$V zbp(c7l&BrhNlIF^;{eS4jKpadFD&S1^T(kdcVdBdL5nVW`0fi5s7BuE$z}eO4>8e9BwY_GP%Gs`dWAyVvgi!;RYQ!g)&L#^r1RG2n;9& z%8lzZha6`8FW+|rZNac9R^!mQp&6E}EAPHOgNDJoIG+sknGj*uiQS9he-uh$`eiRU zMh1DJSfS%jyl=q~KelGu*XWw}?%RCvoxJr6Vsd7WX?soH-T8C}|2Klf>pA7I1ijIusUM0y=v)=Q7eppHMgvjDu2KCzIfy(e9JK@gd)Ec{Ydw2@Zo9N5_tc~{6>(p zWn3$XkRY*CVsjJ8iY8OP&3N3cU350ngX1Idr98<&Jr4JP`X59l5-5zCG&=pb*8Vjy&IWrHlN*6x^}6wMBIkMkx{}ml+^4X#91_klep4D~mri z(Uc#J5QfiLDn+y?1;3D?rGV}Y;shmJRSRiKZ%}z!rrcek1b18yk>o>@@NLgg&XSew zXqT1YSrHgn?M?P*ehne&REFIs>9N6pVib2x5#H6IMM0r4{(PoBp!*mCZD@K`+}a*z z2@Vp{Bc6Pu*iv140|1Z#0Q!UlT5G*Gb{op=zZ-vSru;pQ8(274E5$$wrx9mLqMd>4 z@kh#usd<{KG!sDgND`xMgBtZfKIAlf4uKfHrME_mPvXL)(G-zPa`G?w(u#hY5r~{X zla%*$Z*VktrO;z=A5+WpL*&s znmDzNjsfeZUt`}OUt8#eI6e-*(R`^>Bhf1gqJ}CQ6nJtP(A1;3T{t)SXky5nK{+Z3 z0*c4Q#gaQ*!a7{n!GO`;^4EQWKK;{!ZzG3!ZJfa&shsb&6f+f1EBDc$;5BbOo2_T> zwZv}eYULfYG=0du;pCxqZv?AJEA!j+NHMN+xS7}&??Vo%FksKHjmTDqvD8NJ4I})l zQemn9C1x3>In{&o(+=QsiXHRHo+PTC{SWg==%C{pPjYSyq5A-QurG@~L<|0F#vO&J z30`LI+bvaHsk(ZuWfB$pwmmQOg&Bc#VS9x3_2*Wa`vw|Ap1(;0$mIU~UZ;psR9!7}Kk^ZihjNm@op5II zV{UmqnCo1*qw8O+G`FK)R@$&JQMXe8rUq8ATwk^ML2dDCqQ{mE5pl)af^)-xb~TTW z(bR)lO_yxME2(@S~YE8snPv|Ku2?CB}{Be+Ti zl1AnPOb>z9-&Y-WLf_qX_-J6~S4EocQ{sm-%|CUSY{qFf#oz;>H<1G)DL6}P7wV1# z7GXHEyT|#DzyoF>At5}=Tq#db7W3==95Lt~@5!f@TsN{V25;Zw7vEqr}WBmk?rgUm_?5979H*d4pl$XZA+&>wviYnNJ|W>e!r1?#zJdT?9XKg zItk#0jdU*60J`)_@2;qg!;sQ1^Vk-PzPRw<(qqj6V|$LMZmvV~+(p!8cf|US#v^Js zxd8qlz2@}^Be2HXRR5~+m2U@}v+A)C`U@zW#2B!$YC!Uz734qE=6^o{D0ECeB->%=jGP3>tA?E3=CqQ*S1f(6D7-r+BkJE$A>pqe`!nIvJ zugs-Dg?_kv_)F({pzI_hDkQ`w#+`7#BS-8X?19exvx6K<+T~8HCRqy{5+Wv8r@j1b zMXR?}OeSG;*e`jj2k>K*Rbg>^#PByqg#S?;H!w6xT8~II6NSFD&%h(pNd&p6!36H- zABzrtK!5#)l)sywexXsZ7PlK>F0H}aV6S=LG<*do&wqaYm8~t!gi7oGW+k{X z1>vdG{e(a<^sEJ8TI%BtB^jjP0kcBYb2O@SzfVthzi7v6ptB-Fx1Uu@@*v>~74fvb>cGf{ejcZAk;c{#6}bhSMvvGIevWULVWs=e_s7$whqa*m+E z%nx55g9h#@cQRPEQYqQyvzML^Fd^^{vV%IKyn}6#ge#wLZ|7<^PTp|X7W}{nrz`ui ztb9olksfVgsW-FYr)_!XgRNcX>TWC<&7H*626U(dBANcLc0vj<~T> z7{A_HuSFfn;x@D3;cke*P4E3^lGK%i>3~AW z)N`7?U7;FgoNdq4V4&pXNBU78lu#MoSz21|S&g+n=_XOs z`4-;G%_j{xHD<;bBOMi)I!x6fFi0png6g-2F3LbaN+7iojlN=!SQn)FIgAM%hu%@7 zX%>gRsEj)m2@5JVxd%Zl#|5G9&kzHnVaXo>feMhUDhW`T%92DXQzDwPzm%zqUXz7s zdc$MrTbr^7h+#L4bGW0C)g2s|M1kc0CQOMmY+|z(xQv?-k1P~a974-X8FvJv6VVyg zIer=}0!+ur`Y=S-=yW?2jo7zFR|{?s2wVWLL^7TB+|jctUVKodc)-p%iyeTOm(B=J z+ik;7AH;8P=ZK==uM}9z)G~s$_PjJyrW5HK&ZPZwC~@k`HP9IkY=*||54{F&R`Al~ z)*bEwpm|~b{(q>!-je&J12aes#DXPn!rCUza|2QYV&zTaK+kCx#ZXjw#K`JrWZ(-| zo~_^IC!J9a!4G!%8&62aw}+pi?kZBExy56^tWFc&w{O`izGXL#QDmGmL4zIz|Njjo zlG&hn!t={YMv2IV=WYjg5C=)~tBFwC+WzDM{%9=^v1Evf)>TbEs3AlE2i8~Bc7%_j z$!K7=$)R+P5x0GLHYI3%+TPLqaEN%ELzjO;#ZLz^BB}skHI?lgA(}jg(^8<)N-k<- z{qC9EaZFlwTN^MzMIV6Hfms^45ELrccaJWepngQ$Z`W{PLk8F zM1d8#+68go`v9Z=2UZFEHdz(PW^))}vpJ3g!c!h1Xu}5TehOg3L6akvpP!#6-oB*} zLLtLL9Di}p8s9uzUKK*4FLFJ{SR$$x*F!0qq8wfX|M8QCVbmM+L8&8crn_22pd-ET zHevnyAIk#+v1FBc*fvT?a6gmXANK+7)-bg*yjM07kl?~ZrtXBo-~Wg*v-xJ1mK$2| zoOYEHb9l7s43DN|B0{e4F^hNJIw!Xtt0noDb9D`Z@6CML@~y)w<_i1OSE+>#15dGx zD+deeZxr6_Px*tZ{qMrenB3C`3Fg+H#hKgGlY#Di37W|)l{V4u#@&~B-bctl9*N?G z6l1(o7izws>h+V;{=2^vCySz><4AP(jc&cNJ#SG>bvnV8yRX?Uo(ME1+~iw693VGw z!v6SfXDuh?iD>IWjc%DHY$@V99?3)AH%HX}u0O)grE{kkz4s1b6<+Vf6L+Fle4XH< zKDAeX^vKQdmkvTopJd47u_OJFe7q#|X2FTnoz;Vf5LQv$$J)y1W>SyBZXc!3YZBp$ zyl`2g7OZ%W`$==YLH9tjxry_(A$Uw={~7<#)Xi?1#Nu+WZ7GxW8h;g@`U`>Fm3*r{ zAHK;I)XFe>Ue;@~ln~XudxXPEMc*rEaIjM*$lbWduCI4Nbt>=IOz@SEE=fT>=e8a% z?d|L_r2y-zt~OQ1O*o>2T*Bim(!hBN(;$_4b#y@aiGHLs&%dcDP3xXa0}&)rjsfY< zO?(b5h-16EQkQtoSPE{JV8j`wQOYjdlkIfLJc=F%2K_Ai1b}IXp+)yumyapn+tLuR zepOs9-08h^^a#qNF?`1#)39RWNAc!To*C1M zS@#B1NZ9xvZ2I*a^8C~X8ZZITn?%r8p95sh0Kvbc08dh7Z}CA-(yaK$0uSrS8Q@MF zPw;SgHC%ai$v31}^5E82F35c;{!{KUm2fbMH^XwLW>7)+-OA5-7n;b&$IuJc_?h-! z3YH7qZ?QmaUtq+Ny+o!$5@y$R04rc9E3_+Yb+WS*CMV0`*2J1JaDsz7;emt7^j`># zV*oEO9P|MU{$1^KMVSRNlES9Ra^|*y)oQuNvcLKJu2x%GeUi}Q=Lg$3Q~tLqT4eDt z=-|Qoh`iVoss#QPoFdkpGS*=bNK{e6M!-;&Y z4`n4mYvIZ|DVpvc&0+xCdW&B@wb#o4r7dXW*2js5dDOR@L?q%adb<lPH3 zq6&x~a0pD5=gBSO39et-mI&z$q?DD0?t_nkT#%tn1Q7vaG+^-Smw$pxcK^%CEuH_4 z80j72O4d{>%=Kv31pNDE$w&G!2~FaU^w}S8Nt@!g%AtT}$-t__oWp#J@`Ho`QHu6P ze?Z-JEg~-ymWvo&L1cYOAD%Vfg^e4vIDLvgbmS-UwZeFV5&Ae;IXo;ZH2ke;w|#D3 zvhXqd6kv!*hGV}-oPod)TM-Q^I&{7qpyWlq%070>krp#;I*jo*4`o31r+rf`2W@tP z4kRU@P8RZTF^AfiLmLKpnsc+t2xlM$s7^0zXe!2fGNmhi%>8eYDRYduT6UXrd;oU) zo*0^=!Q1HmZj=L`f>OcAdK*-@LFissYo96r8!&aC$FRP9ncl-+@N&F6Fq`)r&?sXr zu6^Bgk*9U5NlvoTrU55axy`LZstpD zkQ*!)WLqxv>cWr5-Mnw;7>=rrgDZH{>;uew z)6w%VO$s(wpXZK^Wb_H)IM#9*W315)nuoXJ^%{8braf76F>M>j3mA+n+TM&9UH3f& zpF6lEO1)gJ&wD@@eyWYXddl-{M1Ev2SIjbLUpAM_>cV+fWILuwSKM)jVvAI^}7w>&&Y&jK-xvSzP(L7ewA?(Gcdefiz<-T zKrZtp+c_pYa=pgoClN~i=g-PYFQUGt5Hl;cF9w0B6!j(uuU6vWAMv+!6nzmc4#pH5 zi?ZE6Yb4G6E%;)%qb=K>?k)W6R3X3RB^L(FYrIpa+sTz2nUQQT8eeJ9#no(9MzG}h zgp0w=KUO6xsRffhGtrATj&{k~(PQ7 z@08KtTkSD#Bhfc&bmNy@N|j@wz^C^721-!*7Z{>_Q8W9%JYOa*rd4s?=qrWpt_;q& z{MV~*Z5oXEr3~r$H&^T-p7<0HHF4&rcbXaCY1|mJa4;D!dgxWSJMjJfpUpZ*Ln`R+ zfLVuXpMMS9x5oloJbC3H8@l=AWER6(dT@K=%`f=j*bQh)>K}-dd0U~hzHN|gypq;H$z@!=af%$8$7bH}u!->TWc?2H4_o)Aqw{qmGZyY*PXNNUgw@BZ(Q zF7XIr9}{mO5ZVA&jV@m%Y<4XP269QPUz48Z;zHj_eF2*Jo_b(Hz#0iACY(>|lmb?8 z6Wc~KPrp?uZ4)$zxP8)6eo*Z zZ*)!}Vp%EnbA{mW7It32(RPs0pXY;g#ST9sT`|W&Zt+Odi2rfL&b}EGriwYL+o@YW zi;dg71x+WWgGlyhslAQ$gQ3nAl%2y_GJquxvq}Mst)Q`D(D{MmW86|cj0k+;Jm+}= z4kWfPC@S7yb_&I3=BVBO=Q8U*E;Y~nmBIc`ow7pr|I{f9V=Iv&`bZDIxJ!m~$`Z}@ zgd@=>ccLQeTm|iJs6M3gqXl5J7!wc_Eb=U&WNIoZ3Yt4Taf=$M!YN{6iaYMLNBaOEvt~qby*Rl)kFh2b(GVoP7ql+rLF5IIq(@n`wx4o& z15^X6$k+udbn?i97S<_`oznRv7X>JL`hPM4ke+@5At*71189ZY%&;I4=AAqRgJWl0zEo+S= zgql{bz%-4KhM7LT76i&HAK$5cXZe(+{p#+ULxvx260~r({~}o-Q%(0n>o>5TIpZ>o zl!^B~)0ke2r}#s%;-7@OUz8$w?)(AN!lZS!eq9Eaq|u!SnW;~L%!gqrAZ~vOr)u!B zI7?ouB3R|{c5s^?K%3}o;EnR!ik3iZw?Zv0YpU@BHcf~&BVU-j>hm6%UWQjxlm)&_ za=58xh8gM@uMsrgYbDx94^Q&?PP?~i|BaNDF)0V6v9D(v#i6%Ex%ieVunk19AYd1z z^M96`ptc2b6ImVR3>j7niCOLk12`|z_L7qq$6wWCE zDSa**Zo;fD%5z`bSdU;};*Mfwz^6}p6Pv~L_4KdWbm`%$Vi!p@A|T6rR2m6s((3O2 z1Iv^akNs*fy+s0c-$)?ZvHltGkdJBvo`Gc2fVJkPg7Am+aA0NR=8+h@iR=btpt<84 zY0rDmaRK;%$Iv|(B+DpjUL7@`85IhK%d^2qc+-x7W*MBT%;FjSLrmon$M|V1HBo{w zTr=oWJedz@>}A!H+uw|QV3Q{PCb>&PcvOd%{rLH~ty|JK(ghQ9XmonSt0G_@E-NmCXmG=W2h(Le! zSK|wShD=y-REyrlO7>gsX?z-ToXkWlJeE77~YUK&;Q)QeG!v|&_ ziNJsc%7$f&B*a{t=nq{t(>rX<0R!FAOyZ*UpTJJf?S+oped4Y`Rw}nld1S-0hUo7> z!PI%sp}vkzlxzmYG539$(#iK_uB#I}ZC0*k7JAPLOAYKM3Y9)nx94Z4xZNKw9Xv1x zE4gHN#_w^t?niexGY`M(ir}-`EJ@LZsX!viF z-Zw)Y)rM0-vIx}J=&z16`HiwsMx(N^pwac5upd0R33=ZmW3C^$p-C1Ji|YqYulzDM_ZWZ6YIj@RKZ4@6v&{Wwi5X)dv)bPiO$lKFB#F4OASef=U{o|& zjM+l~w8@b_sEaL&t>mmicDcXWieFA*35Gj}7Dzyv!XDp-3;4;ASN791_L}5UZ4@ND zKj+x2tSv5mE@#N^x%6fu!Q%T>ut)2uDU5FB?we(XmCS+W7y4TX7GgDJcTDJ|$MeiU z(+#8eFEQ-QuY3Vu47)Nxthycx+B29Fk1`>aAbNPQfIFk~x(At|$UU9#;#~#~Q z)M};6=hmlAk$K_!f=Ro7o{>X??w!8OJTMh@hH%@ez zQ9_uEitjqZ%HR<&+08Pit`Xt_jt+C2;~}_%)D~K$H%KVm&;v z-f>V-Jzvtvd`;*ZGB(H^DvSq>HuO)YgA3v5l41?K*Ny{s449cWGpb^b8? z!BY`Iq5!c?yf}P_P%?bIav2}R|LFxRT7j|payjaDs@wkY6!q1;!ygTzF4uhxdu-R| zvF9CZWE!!`t!cm$1WXLo8DoU9oM@T*SpuR4~38QT=zl-RIa=>Rjzkq zIqMYf4?&<7eO*Hy$J%-Hg@zr`F}WyNaFjGF@r zz4q%O#V=~idfACKW>5VZ&ejVr=i+TInVQ<4e)deI9GbX;qkyPA?i@4b&BILxB&zpN zN>?<^ZFmNP+Db{>I3IrZrh%DPk}BqMb=qJe;B(ciZ^Pw}EaeHy%OmT`pXR4DpYyr) zvh-wg`zO4}3sEmg8=W)~4bRi*3q*gUa}c~8Ry+(|b|V-dVr69oh;;Xob~n($<6gV% zU9{{!6{~Y_y0q90Sy)&Nd2z13rhc_mD~s?x{C3LoIfQ#6S0QiHU9(yQ>Z0sGhLfxGh%riYQ!umM(3UDq zBSn7OI|*Kr+tzTqIy&1i^1eH)E$D>JaW_4zi&L2U8^cRD;`g7~(}C4S?f)6nTP8F* zh-#qmy0|971(e@j40wBQ`-#)LU$vyx?=0QUP?W4^^iK8s`M8Q=UJg?H^^@J=aH`vA z|Lh``q_>{;MYcZ)9>)}#38z{7XgU|#WYGQZ)b4K&QA`q_PAolj`%ZF&eau$UGhgIj z%9b4~uN-4EsP~g5^AUm!d>dMx5m2@6+h_XVuy>>xy(>5SU(ChOT z^UciDu6VGu{Z`Jq&kL$Lo2yt~yOwkhu*I1{iyD0W3uv&d=05o+2HPZ4t0KQ#gOB!w z+3dx!G&PEl_s&y&!At9sU8O5tSY#ok0+m4jd?L_(GqGP;BmOQs)FPZ;1rn;$7*5sA zW85)M)XeoZEp_r1DHPTj{{w4YT}L|*z-CTV{D^Eu{(Is>-|c+4toSp`v-+VsLBqu! z(dqdJ*oiE2wF3sAYf{=q)K=~c%YP7A0Na5-@g=pwL>Il z6k!cW^hzs3vL*)=;Hv#&dYMpw4(*=>#1Gr-^?Q@(F43FcYQXASaz(S7weQx%%G={qw{GAY z*h*49nc!pGTM#fQt@es5WJ`ETe*X0i8+4pPZ8N%^z(L9MB%6J7-<&D@w4PT{ENXwa zkCwJcDCiEz0f+bY3JhHB2ql~MX|7&PC2GWXmCe`+TyB}!UZ?JcU#*|EwCD@(HUD7t zzV05Bm0aOoOYAFa_!`_Dvqtp*~P!L(i|NW*@dWtNV~x%hDSk)5_QoG-`o zcivp%7jayx+iD7m>65wo(crzTx;|c9c<#v=g+Rp-iDr9wNenY|-Y8g^+2$C(wtX=%?tMX{pTfpOG?S^0_0!ou z-9ub+s1F^4%hGz0>pWxcv+yZn0`T8Jub;LRv9cEv*9;Wk^@T-BfjGKl2?IpEKWxPI z>UkW^UJR7xiF>WoG$@X#{c5B-PX?C!(*1uYhyMuNzr#5lZuv*6UqtZ@21pp;cBA{x zF};okLat8-7?ZDtTBd{MSJk{g5ch}&4i+!Z%L_$iuj;Se7uE8nwd)0D$M!qGbaWsrp z^OUYq<7;G={!(o*W(vy>Ddbm9TBKUw<6egC?LWJ}NG-hjREG*HlFK%)3704`pbWbS zj+M}$Xme@1Vi*IMvDGtJyQSfJo7hT_N3rQ8fik`sWxw95k%TqhqpMDsK46b1{%&@? zM?g9a-92iPriVv}e@8u3!>mX}MIJruN3=pFnkeM<(4fw$_3e3e&<&s+`YJbE1v&Zx^KY!PizBZ(6D~Ym=0EIqx2b!syfZs{ z=BR&9^BlW-iE-V=Xq6WWdCtJR{&XlU6`IRsqJQgoAu~Ruxyui{9Vwg(@<4L-;AuUt zWcV@hFbOCuAZ9XFQ=|aoOUZso4Zq({eZHG;b*$~(zn~ra*FHWwadbG?!)}3v?6n97 zhAKaK8824c+Z*vgr%En27|WM{WL8MAU=>Qu#x8se0GkR4@Bco;#KbRiadvK743bVy zWT6hPtaRyw3pg-6gxat0n_>2aMTK@XT;H4^riPl!1r08Q-Gvi@u$Jmqt@n!-Y)4zi5-c2 z@re(vkWgUh)C2jpk7yem-!mTlVjQGwfmm<*!s1o#9g?|XrX1~0bQcQm4uS(t{(!s- zvjXvC2V83xRx$9m-5KgczHuJDsEp8Ps~wfUzVn0bpeP6V#t*Nb60d)n<1ls)@d-MT zH&CXR`vJm(f3hosS=vMP>08Fu3E|SEH(_C54jPmshJ^w*Mt0eGx=_cwms-wMye-bW~_K8i2ot&UZ!j8US z5unUoM(LmSezcAH{IF#a(50_4eU{Ntc-4Ii+4ra70rve(CCw~~ZcR71$KuOEPXE8& z&O4s!{{7=Z99ah`*~gBI$ja;>*&^dcW+EL~h3s+4%t*#DGa_Vf$;!wo%IH|xWD~Oe z-iPYj-S_@>-@ozr`HO!J4xi8UzOL)_e17sx1In-ucgf`NJ^g13+Fq^p$ytpi6iYF{ z38K;FwqG4{QjfHg9IiRo9v0kP0CIWkNd3$A@vrR*3obusyXBxoMUpw>&s4X~3{C{H z|KRvIw%%vNPQ|f5LwyOG&?~VW`dLHSFsXYh7OXXX@s^O)2M`S$) zeb(S@SoZd)<@q|Qay(cH`)|&P){(+r!)w?*7UppAa0#$+ZhlI5wf;evlw@5iy&aDQ z+5fs$2qs7xnr@PfPF*45c>7|Nzvq1_eS~rDZHcFf{&JDWtOYK-*Ai-UgPk`Ua;P=r z$jVK0i)+HUaCs2HbzeS$0=8@MBvNC3Qn^A=Gut%3khEZ&*|u|-4g6G{kxAla!-K`wP^v>ULgG`h6PqCb)M){z0EqVR?)mWNDix;s5wj!OI^jh?3Wq%P(*FH zJZ9)|MFEmQn}162E|O0ssKR_&5_u53ss@qC?R8Ci{8CM<{P<}KfE)js3^pm{>Y|Y{ z;2ZI_n&>%w!zh9f_QVnCF#iywffTr4p?FEE{s4fkx*o6GCBE2>hYE#Uxc*;$M1lcL- zhV~ZA(fr5&d-2v>i2;6F1v~U`O)D7%MbOsIoV9wY{=}E#J%%KAMqSVmCS4GcBq57| z?$1WPvOt_+0C#?@BZlOZGwq_`eoNjMquvm3qjlf{{ZqlQ z*|DipLHZ*(~9tUrFS7GJy zz%(s^-3>>Gd5vcpefF{g7AUqmDhnJQm;uUDcQ{1X4Fc*DsE>bl3`==%Z*`)39Zzyf zum>|RY2Z2a2u{5@PMtxGIhFZeLC>>5Fo`ZW2RI}hk?oKou3OgD#D@j&Ivinb&CSg% zC+lCkM}#TJ&si~SyEt6=Q>;ey`w|sO&u*Rg**!L3Z~I0p?(L9bOQ(=i<^C*gkzs2H z7dU$&K%hoc%-Jy>VX(g^{3dZ3a>*$C6SmDN8K4nq7uqiSS3x&FQfFRp%QWR(lIBN> zuLShSsl2eR;y%%z@o)KKm}<$0Ig>G?Gh=TOLR}nr8L}!Z$A_JiI z2JaimY0PpJP?{c>I`M!j~%Q;}~uP~_9=(hwiNM~{eo{LpBhEgd8@f>$lk(|Nx&Lnk-a zh}+|;!LD04!ie*FYfZve$O^FRSu?n~c`?FVCz1GGOW=xko9-%8=t~*3gXD(i`isjX zO>fKS{)So9X8Dy_q-gq&%;Kan#F`C~O4nnR-s-j&4()FJTb`wrxnVA^MwL%}w@c6m z_Y{@{3ike4OqFEj7r_d0`0_c0bai2otM2a|*yKgO=(jM=it8N?>uoJc=|{-ms!}$( zTVF)XgPxFwlz=!dCfk%DwtiJQYd^5lMm?!P#Dn=}0*qqqb(iUs*$8$215AoGWpQ!Q zdqK_0)^>9ysK*Y1{qUMqexc{noYg7G)vpbC?g_PCjF*gS=U*0;d2CPBC0DmTL3<&? z5Xfbs+ew!z%1ruG?F9e5rn&UWrA|MZjA*@r`UP+aVFQ3mUzmvxj%!@H^3&*EnC7g^ zeA6XYODPIK+sr8X2bwR4i&$7@V^!1e~&<*yGBMl1OASVJC;Z^S45z5JU9bx!M z!4JLnq6%Q}=TlAk@>%H8{F~jC`xJA>luy?!#u^Wb+(8=irm-M3Nn)B|S<`o`G#LOT za^sx4e-p&y4blZ)WA*K==9CdrjCJo9(&aDeS@+7~A8K~bk+!QuSCCLzvg9?G{px#s zhke;Dzh$xLfG;C{Lw-J2@XF*hv{A*H)$^U;8#o-Yb^M1B3tO4sKPKvr)Pb zI|s9v2#BMBl|Ud)eJRez3T42?YgY_9b(Nv5PiuTsX{HS$NJgA}IS8=Wu~YgGil}&k zWIcE8YXa76wwjMOvmq!O5po~BP$(i>s{MmwV>>hS#fc?P-`$Bw9Yed&^XzK5eY|hS z9&*i$)7@aa7XK>GicX1lEu1QyUIhe;fl2IMu+5)o8185#5{~%wN}<99zyU*R8en13 zE#A<6<&iH&$NTiAXu!p<%`AKOr@}=FTJKQEs3xdcp!YheSpTG<`~R(1NKP=-^Zgz* zHZK2@mjwltf1Ad^@^*J>egth-Xt(wC6QgTAGp_q|HIIQT1#6QZMAQwy9TN{mh`vXS zugcwqB;u7pvs|A*HQGZgQ~SBC>YK|NC{Dm}nSV_QLF}@Q^HLncslzGQzu`Luy8sX4 z+*_YG^_%TG0_--*XMv4ZqR#6vR8eS?UAB5PctW4)Y3flaixlO1s7^9^ z=}{tdN_M;QIMk=nSIKxGid9x1n+IaD_z#&(ij-HWTutO-^9ktE1+3@SVbFTQ;K37) zCe09&;^T}B)htNbGD;*CjG9%JGma{|ToaeM3XYRe;B1}#$IDy+G5xeEw+#CZzG(4mbDGR+SN4>R z^hoO*tk+CF9@WCq>WK`+g~iJLpVmFg3tiNIm^8xXq`(HY@I!MnRWDorbLd5f1^`{Wj68+>=g}Xpw-iJf*>J$ zo_#6aG^djR3_Mi+c7rVruiD?9!^LT2xXygV_*iGe8K&!jEprhUjUu>UxcbJW{HFNv z0!;Qa@mo1-EHj8OKxvmwwh4s<<2z4DtJa9zma{7EFO*XxXzs5SWsHy5Bk%+sl(6@& z1)oh`uodc_a5mwkHe?;Gm2r$-3^%*oVys8G-zI0oO1mpSri~*7YwTr z+>4s3$$ImI+t*#-O*b4<-z&*eOwnTBdC??G%_=M`Xfx&+0pHotuGeF!uW)fd?{$q( z%2`fyy5|v8uA||0f;qw;s;W8P7;aT+p7Aehrc>@2d>EGB!9~Rk6kP;p(75yhRQ-(=U=S1 z8sR4y)p*cufL8ku3l7{zq8jYb*F$YmTlY@Gp&fg@w^k$kNEx=B9g>n~^Vc74T){-R z7(DK;Dq}nbG|ZHPbYljmZ_WB2Cb;NAbLi$oIVP%uhTTnGhSfW6zVVhuhLPXekD`%M zXX!alJb01Zq*Ti}vVlu%b!B7XwnHp6=V|vy+h4{TkY1ASe(qBBuSVz?-fxs>inr4U%y$c>$$d^ry6v+0>fHciT@@3sDb#&W+yo)Wwg~zRpS9psCqWdXmP}kqj`2WMCIYMD7tzp1&)zG z(<)LD0KIzmU)>E;+qxTs*$4!YCgU8#Ktl@_LX5*$xR?>^Z!w`mpLeGR8<@wQ=|W}L zsE7jf(Aghj+J@FvSEofcC>?C|QyhSXk9y96l9H0*;*(^s2}ml>;q>>1R=GYqF`2Gg zl1SCd?PCqH-1FcP)|G46ukZalgQbGlEgLgMQd2900$rwt{ zh6|*psBtVp4V(AX#RJ$UWP|d zmzb7oz=QpNP6Yv?wzw#(Ybr3ME zuwT$klbBa$(eJzG*a`63NU9bes&Dqu879Fw1e$4pf8z`xz-!wnKm9qLmgD<9o|gXz zy7;*(I&*Qhf7D1SvN!p$t+1(xp%iUSd*H)tZ%y-ocfaX}rKvKjUBB`itDT*lZIBg0 z&5PQN-4IW-9BgBuOje&RURVCm+Bt9M6brm>^D-R5IH)7k@B(g$aLN~K~t-P0_ z27FV#zbx5^-lH%aRkWjY4+AXT;<4p66wmCW?N6<8(;e3$2rOQay1f|0O%>Ln`h-O0 zFOrav!`z-Vuc(%M!TYU+*6Jd!Ulu7?57@YN7^sG+ zh{2|>=4KoUOp^s!NFf8i2u#Z{VQRvoFtyE6gT$Dd04)3tWvxB=m-m(?g?WxDf=So= zgA4mDVfeex*rieYt{+>JPTZ+T)b?DOwR$Q6t`t}_JnQJE_>sMCTBV2zwY#IJhjOEU z$39C@&S{25=Uh@new|Ktu z0&6Nlq)MEbSG0{%0^UQ!^~h`}{+$8IrjnW$|0JZq{CSjzYIcQ_tKdk8aJpa1v-~XY zb+0|8BV0EvJ2uXd-11%Dvmp&N=!27(AuwpKFmXF+5H9@j<$vtAP4T}Cg(s$;V`6l! z5zvO#gEY*uoW4EUfGI8k7rY>NsR!EH!!I4CePfpe9OE)xP{qG<)bYbY;uWr5iQno#*A%Y|1h>nUJ8H7TeX8Xfn_gXqLz=3E$Ruj)HtS1%6M~-_3!Eu3p&##)&MX=1up)W`N|KWOP5gP4Z5?2AiqK9J2u<%4W?c?m+qz{(IUUE)(` zemMT+O6PxKYG4>7Y!sNz)${~YEa#Y9mL6cOOwDwFK6%hV+G%|IlYPr`7PW+%O2eFr zXxjjx8Yi$$_~)h16}dTI^sbatQc^lB?3H~zPOa0ygiiIBnSr$1UCSc4ePP#-$CBBe z-Z>cva!gc3x?43Dqv{q{oIx<#>9ei2vg8ZhG4Ajiz1(2u3gi;EKA(JA2v)KhtY%j4 zj!jaQ)O38{wRih0vIa}T?Z&^3)HA6-&e2`!lw|+gGDiA z&eJ%tu8@$|5()LOP~hjnC{69&5OgTtBK;snHXq&(JVrLD|MD0Kd}Xz(KXh(mymgI~ z#5Fyn$=L*>7o!6zE)B7|4U>V>@o#vXPVM^+3|p>aebuVQ(qW8z#v4OueJS@ZBkD%x ztq5uOl_*u``4YSm)AT!;Y`m?)E=$dlQ9^AC4a@uP*=W|)NU|L~Y zuN|boi9GenHx!3-h9?Es9yqq z1P{z!^k;AftqkN}%$sZ61%k38#>pKPX!0^zit zaoHv72?ST)>B}!Mxe}~V0pKPaI%zM81&%ReE3!ZlwimV!o|usFbzxJu`Gqs1%a>;1 zeo`mGYBqfM%)?XYaD|2CR4I5lsae)Q1$EIt?N4EC#Oec!H~N!RY?Fg& z+pK&Sh`pgCf3uggmhSCTKkzx+OJ+@v#*Ustikq?Mp05ib?6`6N=gs6DqoSkDq&Kvg zRy`_YqpZE1X(dG?R^@&hH-6^!lNZsQ=_kM{G!|5xn2d!$lsuy@{s1yg-yl|BtKleR3I6@7Q$DUCnIxg!v6 zWwg?weLld5H2IzWO#^Qu<0VG|A~;Y1M%)`MdnZah_GTX1N)IB|3}p2gpufX}pODb} oP0ZHtQ2%h)*Zt%mwTcP0-b6A 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 JwDj{g{|}oG2<89) diff --git a/docs/cs/images/bookstore-visual-studio-solution-v3.png b/docs/cs/images/bookstore-visual-studio-solution-v3.png deleted file mode 100644 index ce821eba72891498b097c1eefa15a0eceda96f1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8778 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 Vdgb^D;Ny@ZnrgbL#VSvN{tM=7$0q;) diff --git a/docs/cs/images/build-action-embedded-resource-sample.png b/docs/cs/images/build-action-embedded-resource-sample.png deleted file mode 100644 index 700e9921f4a598f6f3c9fd6c46f494a28f07e5a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3915 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 ZTzAbHgJ`+cfBud+OyCv+M_D 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%0Ak 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 diff --git a/docs/cs/images/create-new-aspnet-core-application-v2.png b/docs/cs/images/create-new-aspnet-core-application-v2.png deleted file mode 100644 index d2bce847758b5fd36a092ad87bb0dd0d4615da90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 121764 zcmce;2Q-}B+CO|NAt6W*5`u(8FA*&|5u*1JJtBJaG8l$LLUf`NEs5THCwlbWnTa~g zFuK7g-^g>G=bW|v@A}qx|La@dJu5Nx+_Uei?CaXUt8BsQsxL{1Xovs+AW@Kip$Pzl z*ths|*Kx5wZod^2#{RhBB(LuZ0L0{1|8PbZAZGyZ08n@#t?fCxxo~budAM|WIV6b} z=joOQy+${*;mW^>+wK~{Y~!Z5zhsLRK7L%A*>%1(wRzodB1$qeli?>_XBu-W+g4(0w;w&u9o%x*2ovCrv z|26Z7*;KJHX^_mB<10a?f4*UHZ#_0E{U0{7`SDVF4`Tji=;ydahSpaI`QLPYj&*Dq z&?ydHF*=k#Thfky|M!hj9el&!FaN$VG34e!+K+$F%h)Hp4X0E)SNL1950=E3U;_K^ z|Cu`RhOeYJon#K=hUY&dYehq#1vg{=e#lSlAL-~vc#r=k{)y}ceB3JI-^6pDe_i_b z?NXlapp7$iYYj=^smQj_hJQr+8COAp7_@aNmWcY6{vYGO|EYxse?JTOhp7K<=pUl~ z|5{7`UUB~?7ykoe|HIIK$JqaH*Z(cA|F*9GrQQ5r@cJ7XqBhVpFK!EZcK;}|I%KnR z{Kl1G_yhbQj~`jBQR+=rxgC&^8QOo4*(HBBxwv={5g(X5`r&K8>o)$~iLEmMQ6<}1uxOu7+y=fT-c zQ+&R*rjK!0Zyow^B#(qXc)TS(mhEY&bITtpswPo)3jmbqTeN`(z^DE%$*^2LgmLMi zpx*so%BnZ#Yj$0_qf!Cwsjd(Si|5J!(QAV-v5MaSNyBKqk{+x1hSyCx zWh@iq+9CC?wajE(@8PgwmmjYBM=rp3CAu32s2#eEbsjkDZ@XPAwGXb(?(ECm4y~i` z$9(`i#=fp$6+nq~o8KYDHS=;RaJ9@FTRU6<8Gy(ih{e9JjumTo4}fqF1&qKh%LdDz z*>TmctP#6t`~kPXn-G|;Xl{h0Xk^I`1MJu>e{$>#_m30D&)}0%)M&^EmegBF`SR%9 zGxd?-5lLH6iMZod$;=(k?v9myygTk&3+=io@E4ok+t2B^1hRxvs9rrE_yjMR(SM~e zH98_Gw#ogaLVGV$$)hpZX&YC)5349e+aKj#q0DiG4MoM@oZuWE8 zi$kSDp17<%sr5ri{rHoVjxSYgDWAr_ttg=tmwpV1kgGTl$oq8W828#|8s{gT?4l2( zAEJ&C5$9O~-Zho4p6?FMlv#$9q#i`^)<$v=2SD1^>HM@*on=#xj@-mMepq$Vv`~Ng z4*{hal-e$F=+^i^eOGRebA@%5HgzH7ATcP@vey^Nbu1MK@-l#`P;du)zfW9 z*7>MsarSIo<=m1|cY;6ln%doXtdZ;%6FOw48QD0=ecJ06`4y@0Z+$1vnTQsib}V>5Ym>Zl;1V9&n0@=Z*zo$Zcz0Q$ z!Vfb;>qo_iO-ijiX_*%BT(!%i;=O_RJR&KQQHJk6M{*;x$2+FdN(fYl;aUMyKenr} zQ)?`qGp|mMK>3d9dftHQ4Ma!#*vc2u8g{a$Mhy$&4ckREY-ElFFuONAD%QzX!O8%Q z@<5_}yct;i2a0qlTO)Raybf@49!5Jqp&l$3l&sB3WNdx(AFJEyn?2%e%)>tYu}27= zx{{nl6eO%TrWU5%|WHlRH)!v>ce{ zxsNh)7?~uNaIAYpn6>x@Qf(c?$`M1f&ykBiWmh`!`&Jubo($hwnB+oZx>?b~nPWFSW@Ne`WL9xfA zzXTN7Nf?zd)*x34XH`oBmv5lG?t|3F%?kzZRJ;_TNu+!+%?j=2O0G}EEnFvGRaC!w zu4WPV_ybPvYufc%qk6yY)2y@}{M9eo7!Pt1%qCHCb!>_C-4BO@t6%6gLdj$K>JhOD z);v!~1O)n396EPZR|QkM6A15B)_EA-9*?u-F}V9412S`1{`^g|qdF?4Zk#X1@{LQf z$#+WAfT}r8t;>w4pjtgjl)PW7>*5=7sw|7OSVTCrkn=V^tv|P5VIO8Fu}StcV!K0&-ifr8Eq$ zcf*JLWAt2>Aw{@ci*1k$k|j`7Hhaa ze#bTD_6u1seK#1;?!8MaG*FYcU2fY@&m-YtpI6eYqtGVh>tNg1y8b#H1qztZ*MhF- z#(S^{+4Mw`vG*R#7hizgxb;>GE#FLLAkU_l)h6WQzPuK5whtb|XbH;^up;gA?6UyXzkwM84n#FBtK3KCz?Kr_I}Sox$xLEL#Yt|{71DP(rnP_($`fB(k4bQt-2RL!X|KHgE$q|&3T8`l|+GKMR~Y;K*1P%O+* z)acr1zPMEDeC=SHikZG#dOiDd9QKGHek<9M>lH1Y!1(KQ7yLgE@e2OoSo4qe%igtq zyej`m_c=IvrplUMX%elIl%)IgaZ9JA%VFaAYL(@rqRV8OHy3T5q{$0h^#RPZ!JbO& z6N&HnJhh9X()bxI+9|zX-X?Ph8Z~g0+xIwTuSHl0=nZZ^eR12?1<~1!s~!60S7T98 z)!19Ng42DuX>S}Penz&O6*AE6;(~@ZiSW}=xN?Fzscq=&wViNIVdiqldzx)db^mFc>pA!I=1k+9d2olN0+dOAbYSb3whsf|p=J#_4$FE}wYcsdsDaEG{alP48jW3SMk;p?j2d*)8k3 zhXn0abBt6Xgkv?@bG&0iXLyTXb@@DZ^&$rg{eO;dp9{)q&+FqdQS7FYHiw2`BY-F>{8Fd{eS|_u#=PdE~sy zx<72~FTBOo$_E2dr*sw$C)B`+9Rbf5_Uu)>S}(F`OKwnxmqg5@%)%uEjcpVp(9Rh@ zr+n%a0mXk-FqDx0cDwiuse#DgNqn65y8gS=p4X~MHe7>W0QD-Onj)W`DIfpRZl^A0X#F>`kLu>+2P0 zc^avT31xR4k8d!&^K@5+j!O@C{;nab8f>2ZDHNs@e)~Tl34X?+=U8@tC5V5)oZIR1 zt)y#ajJN!Y)r*$t-bzZS;8W*%YB2Z{OqA(0*{Pk-YQa`wd$M;!z_wc5Ge6!pfp&IMdf#ccZGNfXeHV=R zPf&!PVdkZ^Z&%T%0p$z62wU?$J0WveYl(_)cJ-5XmNk}*IB6fMB)02RZ1O(*wxG$I_qn)YnD+{Ko-!=HtO-Mgh0=nF&K>`FzHcwpnmuerS)Z4DQ3^-BhO0o#W85_auN zpH4HT!JSm`cZT{0jO`HFq-fvGl9%>sUfwtVKv_UzX(J~Fw0T@vdz=s-ACH_WxjZ%> zskRqQ^KrrX;~N9xvN?3+&lz(#EBB0jMKp1&+XC?>?C}I29tQ-90uv?~HkAGbnv(1` z>w*+sa*hDa33E=`k`xP(c0XMnkw_d{y5r(l+QMN>c z#-*v2P*t{&jVIplgM>Fse>R`j2A+sKD;JlGnTd%l403RyV5+=ag7FVDf1=59Ta$Vi zBL;+xkVRo2>%G~BoKan&VpVuqgC$>OP#x$6xu#tW!Gh$cX=-SHck))j(-3*zfmPazf3BRqa}XE?!8rGkMDOK zJ!>0^GBdL)Gk!PFZP+Nmy9xcc`IrFXuT$2yAVh*lC%>0UGRCsb($ZL9VBqrnBVX(~ znUr~XJ|SIT!5y}IRnb_(J1+SwK~=2nBfqKcr+)#oD-=bq6mUfYI;p>(EVkw6eB+Gw z=Jak1i;^P@r4I3($QQuRz~X!wdc?`z{VVLVeqE~lQbUZb#`y&;nAF{fd!WZC_Ewr} zk{e(PdARv`<`tC5+I$GQ7Scv%NA)UOLMCYx;D5d`)@~&rKE8s zajL1nHE0C zsjMo=7Z0PB{&}Eslccz3L)#3F%_o9?VFAWb7q__Ld~+YwPd|bD#bLra&tDV=21xW(sQI)Dr_QFsR;}hQa`+TxFIA$g57Bu zcLEFIgW%G)T^_7c7^p5~N31{JO1^jPv_O!;ADV!(UV)T2yb+*T^TGzGcQW>P5x~Xv z40CY!NrTp3RplfcDqAm-Zs})BS%UdGxT1(`G3$e+N+gg=?Ns<-b3yqHt>%&9W>pb) z2k@_U2K?Wcx#tTdg-oHC3FfgHoGhK`dCCijwB$Jw0{?7Ep>Y8-Z+q&-s zZdrMBHF<*%ld;}KP*}F#SAB+LuIXE}OA=FhXS7d)X1!jNUc7z@%sLS%b}SOC2NDrN zeWyWmPW%W*=wItMrHt_dKLKeuj?H(QHE|;X?3h132Ab4x)rEP#LYl7U*Z?8}niUy# zHj2HDuh=&hB#qI9W`%hR&YD>y^QEh(+^|~0Z-WCVMT0P|kWfF~+3aFeh-=E;9^YSf zkWFemXG=IyArirlQcH&5Schd>C5Y|@OI2D$30+H;7Qn@^Zd6NjB})l8bsH!y{+>5y zO(exMv!dvAhfLK9VZy5Zk#SX0!_@QUTE|%Q zv**^i7hM~)YFW0Z?8(6LLvZ`Oi~=(HNgHKsB>xzQ>&8`Use5`u>boFtnBv%*(3LxF zMk1xc|L)`%-Sh6o&zmmD$r3CNM8ssY_G8o2>+@^FnGEOn888SYb)+qtn#V*{4JQ9b zLyDoHvjW6(Vf?FHX&yMa%>H}}c)ULC#^)YGVe&ve9nZUl`XQI0*`8MBm&2=5+$VI# zIM(vHFJ%gc$uFWKSSe=f3o~d9apx~6~*Kvs)@|F8lE&)z6p>x zF;yPu;H}vOZ0d|ZJ9#_boTufnwr*_CazWpQ1U0-N7p;@ld|_f4@ow$;M-#~QeClZx zTojXox( zTy-@ewU*XgALaAA;<@x0*a1G06pbAz{@E(K8u(P`=B9Bo?R|-}7^?sQy9?3Zw>(t{ z5G?0dUn>QKynS5@EkE>3RzRxvRML~#-0Tly+RNS{m zKhj!KTZdq`49jo+lwBoCTP14zyJE}>M=-6$|mCWemvT+t5&hST_ zk!C7~$h)Z{ea8KaVdf9d)jBQ5BFj5ZxCGsG>)3BD)W`U2FYlax>M2L}e$FPlY>nL^ z%rG-~L%(=aib3N*d3@l@SB0A9+XLz*mPJO z_&*u;w3c~Zn%<>_g)Y|Ib9XO{m@MO%pF4-mOQe~d@_DrdexapyJ#3Df%T={ZCS|^6 ztoMFM))!$J)M{`v8F_p#D3I#Vk%KCBU?oQU#F-m;GM0XfOPq$sL7 zHw$`8KU$cCdfLn1)8+w(?n?;H|Aae|JXf=?PRjXcVXrX}?G~fAn5Nn)4bVIQCL)}5 zb7bpX*$5I}YtT8?xv-|T(?m*4Dy-hrtN?IwUD=#q-}2i87RZxtO5sgK4%V&5DY|;p z3uMgjz6SD(%5L>C7y-6VaB{b$Z+@SCLXdGmD>&wlJF*_9r|YHbiEivD8J{q&^FB>>e$@T5vIgb^!D~6Y$B87_#W8RE5X=`z^2t3?$Q&XM~-Jn z*pnojl^`0p2^lNvS*3{&Q-qD2hJT_Z$6Zw?%%5BNutDZH1L{$+UUOGv5Fc$21ej7ACoi*KJ-b&scL$d6(%d$TJ{5#=Wfd4&LwLM z(Bv`aWEu6%8Ctw|RqliY1O!CuTe7GFh{7*tRdOUxA@-1Ef5G&E{?ZOPZeXGhwq-nl z#UB^k`kC2@&(&o8OGOideYHpt^WAqKp(_{QFBl0yn6nPV3ATrcE&YKiuC=&xCc)sA zrhiuWwF~R6xkhg`Ofv8nNsi8gM&+8)Qr?$yEm-r!0^_9>`A?7e#%jhhrkN2hw~gH1 zyleu-Yvl8PPs0T3E35)FAs|UbEmsQ!VTL#L;0sgZ1-Yd#e-aZpF5AqJ6$1PWsqvij zdY*=bi;#oABq8j!Vql%wNl?H1iC*@1J_QgHxFXrba=Zy4g&Cf?qpkYi8 zg}HpYL0JM@3*V1+A_FHQ%;MRbTQc9itk0RHh#3RL8#SBXX_V;-%|HDn0)%VFjE!>E zzV-h0>d<=?dLotc2(Zu7QNH$2NWPPcNpOSuDVeq)de$d<>iS(y)eC7er>SX73I`GB z2bh@6SfJC?;e!z|cWvB&=H5+|xk_{ghSmQ3DyeLrjCuC+M9|>VPqiDnK4Ty%T~D4+ z7(8H*uVAT9p!k~sRpCkbp6(U|;-*>xXx~e()687G7ibe>dC_Y$;FAi$Q$L@#@5NKs z>7w=q5G{~w?my0%v&B33(dA(Yt$#L6OAuo8#W%uSvvy|Sn&rDwFRXW2Ximq$Q|CL* z!scFB8^wdmIUG_>M^?~x$^dQ0MB7_D?fi;DDNi6hi}J(p@?Ifne&GlxwjRMxjG^R>=nk&;x#wd!ER z_y$k&Fa4Gau7#{cY+(djNMa-xyl=Z+qsDkiS>HR#lwcoXyf2jb2!kl(=BsbD7 zC;<^yTz(Na#mz+{H{Fz{;?dTM9`1U>)Uu^eb{JJx`a$TvvK;48aY#`x@2tD_H+~>o zJw_|X-7ERg*a~MEF%}Ft+P?A4cbcr*pnd5Oj!iN$`8o@LR7(AZqeX-*Q@*D1O#|8& zhDyKCWl4R>rBw&IPFs~ZVhfkT1m2dn{Z)s6aVsKuKP4OF<1lZfo7YqUCUSoQUP5bm z9P6K_HynX{Zhza9pVW*UdxZTB=R6Fzh?Sr+iQPr8cuPbIOwY{e5zt&X;-dr9xpHB##Fm zNMnJM-^w?nn8sHq`T0hORJ_)T7hF1*wu{gBEZOnY;o(~M9(crLlapG?R_%zh{-8pp zMG3q%Sum<+Ni<}}IvfF*bt&3eJrcDLXE~@>&x~VLL2@^r+#iYo4rbhu@kpy=%XVql zg>SJw%{gHPLFm~>aX`SGbqpt0m8|%p^iB<@KV8({T21n=CGmxv$^u(k92cl`CnK}VKBc^>ESgP?X9y=LQ7fO* zv|@`xE{b;8Y|4a1MP$e|qyu$dm0x%AiS#FbY%Z2mdotJxDW2h(c1}kU_es=5<+@T? z)+ZI)4$zM34oiGZLsRx!I7c@5w+=lIO5O3QQ0f=FvKjlfpQ*nWe|yHlC(PScv@}8Y z*rlpqD6=S=-)ihbQj@mZaf%V;Zj4fhkZJ_Keb#B$?YS4mvY9=BbTcjMpQluOqN?&7 zY4bjhsxUzp9vW4tbS=Md1^{k`OyT*vw_S6yd2 zX+qcB(pT(-1aQu;$5Xa<9>UIIP|H0>Q6QY7d*Cz0w`l&;bEGaS-|tPJ85I@Qk!U^F zLuFqd><{wy?j}>0j3JVWTOIHCB=M5e^Wk&$%e|ZF9mA$MN(1`%v(U?A)p|X?#I*bi z+Gs8q(8Qp^4P0vz#D`kx+c!yoP+30@Ycz^nV#>rmU&Mt>xNDo4 zzQR+7360(tPBe*vBKB@jksz#GWPVqUDmz2;(Tu($ng^_}3i7*A@* zD3ASbe^BZ{lNw0<-H*25H^7S+Ryt(!B@4*oY4z8i-hBNA7U*M$ zgvKOr82V9KAB zLsDe)XA+!$Dx`l>-RrT6?6!K^T~1qq2G`edLXxoX?x&mVpP&jWH4%%Y{bWi$f2<)< z8C<_ECH?mYS79-q47O_e^zxnf*BASLItBhEXzVB7F>ojcQ}4AXY>b@a^`{d551~m> zkYX-dov!qV=HBp1k}EQ<)br=dG!`yM@SLq8cCY$tCsn{o`?%T)CYS+s9sv#Ve ze#Prw#o#Mn+B>AT{rEupUG?yjKOGc*#CBCk4kMQOls3CbX>jc-HS|Y7S8_@~(GH8D1G@aMPxFVwO+tAgFe_dGd|8@O$LsyLdx&AQv=iUEu=!(5R*T1>=?}q*>#{SaC z)%^dk|KBn8Kiq|%G5)tu|CdtwXR`lqq{M7LQbVE}bWCF-aja*H_eXlS{8jS;R7lSg zURNA}jJRiZZE>q8WyxV|b;6v_@a>QzAo`r=e+w3y3(aNv*$350O?@sa8+06&FEQng zESQ)7^tY6*nj)->Jm7EMFXN zaMiEcGH^dj&~p6P&`92!H|>dm9HDh~?&8$K23~m|RJZd^9%;?K?K>JiLq}E}C3{(5% z_p~|^x@FCZVVqdnR)L=##xPMkxRJf;HY(t}VLsWKHW?~uCC(STZ1*&~&Trrd#kz$? zcD9A(EK@c-@|&|3I0KJZ@3%h2u^aNmpX#bu%klHgt^@z_GAJ%zYuv-s0$%B_#>=zQ z%<_Iv9EoNjCuoOMAXb-byUJo!kLf*2bF!XpZ?o-sXBof;y4^y>twz>9AZSsVA?}jn zV+LA@Wlsi&lDY=eF6G$UOOYb-7I&$JPzTL%H=v+#-+OmtQj-wPZXd=U%m&ocuW|Np zyPDG2lpML%l??4q_I%lT$z4@I)0Y|csRD0eYrciu!*yb1u`u>$xR!-(o04dxwh()9 zsi)-pc~$WvjBMYdAvL2h-3j^$UU%-YhFirPKDMylZZCPVwt*!PC8oEb=k0MHbCB}1|Bi?M+ZaYv+W^bE@gen8ci5ebrf@a#2UV%94 zgc~mn;#l$uKkDzpPIgZ-UTe!OFkwif;Ek1+?dCwfhUP3*gTPLJd)(;sE|VTa+w?jLB( zTNJuOjfW%{taE;T8*5U`3){^&xz;J;%Qm$hv^cC%fVU}O#xA%dY`p|Gz4k;qhfkZl zkj}lk#mmp#V3sz0CEXt7%FISFiS$Zde>*vPP9lS%|0q*~RBVBrSQ;c(8loauc;?qP zp6z3$wcV3Ao6i#h&OZ{_zG2)gs`_Kd0~Ddg)>#+DDk9{yAMN@Qx|fFofA1G%rzGK` zHT1b49r_Bs!4;W8EM>*ztasV*>N4Cl=8M16$$x4GX?cn}Y4KoQg81nQeb1>wIr&^PLsR*|3YhIqJH?|T` zZ`dbm6`bk_8$;w9EQ|5z=&+5B>bTrtP5D&mTkQ6pFev%D)O+hv#S0%db#JI*dXx|3 zZIC$ND|Q|fs!8oSb!N5@9yEH%F}c6sNZXlX)ktAvR{1W8|0f?aU?Yh&S_w|f3A~aOm=yQ@XK#`Hg_IZrz9!r++;WHbzcixQrH8} z26S}1T4{f#rf`?`T}iJ3_>t}|goSsRKfT! z$2wgE#Pp~=T%&uZ%6Dj;Aj5gc*QYSkZrDpnIgI4o;M^kL?lorgJ6*D5PKYREWxq3% zn4tm6!F|HeP1Dp(gK}WUaJpC5JVMPMOq^^pH1M)MV4riP&bz_;(t{r$MGr*ZQm>0fbfm?A*b!pDV_x1*V2>Z~$nS zwkKoZ;dGr`oOb)Pr(1i94^RW-f|Mqxb%v@2D>D0n3(HhluoK#O-cKd^=$_N%*`~uz zk|V!_J4oNPX5!F%-f~LxQ1-1vAGJ~+dSn)E6BwRT~* z+!Nt^nM%UqekL0-_;K0TN>U?yBdzK+SS6kBTw{BcB=dQq_6VK7>h-pck5zR}S(eJD z^9iJaq+T!`7T^v#mT~6UGL2Ihdg{_H>&VeJgc}kfKV=GtAO-aL1)$)?P|1Rqt1Ona zZL)@Qi~JVv(1!w6yNC58G$44`&-)nr;d*|fNq!G_`*iSOy*G!AbaW00&s(JA zb>e=XE-_T_ko=M?01x_Zf`hF(4VOISamUimGIQC6PWXNu-e6<mo&!WDZ5F%2BmK|iN8!Q!e0X_jG3Sql9A_NaYTMQ2-88~j4Ue2Dw z*hZ;C2QNhsCrcoPGuewQj{R8vX{f_iBRfMueU_D58!zwd={{m6AE-P(2u3oYHV+tz z8TB0ntMv(IZ6iWHStrP?g@Mv8P{&+zuh3Omvc(@%u&MewIL_CG`dVY3nh{iX{`X=b z+QuC+6dekU*?>%uNF^|A9~=Sh1Q|NARRM^V-HG-hCe5=cZ0^)ZUEOHJ>E)?tz_3=? z%$vLZT~^r6VN#5G_p0U)_Y(cRG_`?HwDG-L_fcFODu`Jy65ZXw>9dXe@Ii}fRNDu{ zP4%lJwS-^>?;yIQB)sP&+oghVQvL+~^MvfjC5Rv+fj#AA7ojM3Iwh=S)LnNWrwQD7 zv1&T-eJL2tuSZEu89!O6RJQZ$5N}Ad1+xj7dYLt}X)nM+OtgwOUEVF zqhn+tJ(2V&1)?cU1tOxdbO(jP9&@NoY4nhlTm4~^wx^a!qOM&x+sUsV_H|p~y+c9sK5fT*I}r zCn_KzaC<&ffk%yZ!6*2`Td79aeLlp`wj%5aVFpIk_;@etrI@iq46$Q~TAFB90lg-E z25DxEEz%riPjv@+AM`BHwq{5}%(9cKoIZ5o#W!if49RrKQxpUJj@wGVh##np*JF!A zZz?R|5V{_V2{$5)7DBX?o=1k*_co*kMPFRkbJ7yaoNV83+%D&L-wmj2vOW&u-|{l4|+nk-t&$_*)(D4E~sQ4pNeyY^fLTU!z5 zzdzVdEIDQ^)4iNx!yCS6Zty)MoVsW|&vuEv-?k9iU_6CxjotowW5W~PLsAiUjRLl3 z0Z&aa;l3aj@Nv$`Ss@!x@->qXB1L1)-CD3+eDMQ1qiyo2-9r~(7B*#N&o#pji_tC? zf#&sachXJuR0MhJS&d@vYdT~iHB>UoM{CI`LP7@?*TtHRF08P56@HBMSZnO(oA3R` zQ~kY#z`qwNeA65<2LWxd!?h0s4&-~>|#MSaWbOM@S+Kv;m(HJn_O&--d<;Fm}r-Nay}gnGkgeDvoL zU;Bt0XIE}R;etcDEQ*$ElQ*x{pf;U=cU|b~CpW#G;^Y=>bti9J>RzJJ%hoMF;kmvj7dxv$=E&V5PERs$9>nz_=+W`K` zqu<4ZZ0-CKrtmvEO}4b`-fq3i8#wvv(s`@JwiB4ZQX(IJjs4RB_xNx52Yg6vN1e{R z;^bX!AX})fxj-;z3n3ADiYKGDk$;`^{gkIxs&+5V`cBp+jO~(CkM+}MA+k%8h!-_q zx6-4QhGBUTeCWBr-3&Z+1{nWm$;~X%WC(Pfc8XS*jM4tl{IAP%y!>>|&K9DG_lQDa z6i~T*97;9<{f6Wly?N%we+>_(U)`3YlN99mqTE`Xi94m~?-J*}d}=6RNWWHngN!bD=apOl0- zzi5I@T=lD+N^<<*P2clZv)If{a?~a@B`l~oIL#Faw5vg0%NRX9Y#uA$YGQ=kwdtv; zB`)DBv#G@$o+gyczo#Ak!B76Qts^yNaPY?uPQl7o2bRp^~!!^5)y z4fJ9P=@%yb=?2(w4NK zo`p`*fKGzX_9hLN%13VxHCr(?*$4I54$>G&hE6+4QUwMrMrwb9i^|>5^dTb$>y32= zmw~y*zF##+-%B1~UZoq2###2-OxhpWRgPTm?L|n?db2M98v!XKf0erUGQFH5GY z^jSk*c)C=-F3vj{ zFQFFgHD9sUJ36IzYB^wnEqvFa^Y7KjX%(r{yb%*Jn{`hPO{?3sLM{DeS!tWq^CZ1( zpe^SOCC+-(kl5X{I%)Ga4DzBgHg4n;Q!Sy+WKq-%$*BpUl3tJB8-Bs00{kMl>f14o zd4>0*#1_lWp1nKRh(<+pDL0C}kL3{Fqk|MrmGORDPU%U+iu!bWGCx6{AaQTBD%3@) z9#*JQ0{_0ZMaAGWluWs^T8yujoX0StitTxO1Abz3vv*t;lpYEJ5Fi_{-$tY3^4F^0 zsSMonH22e=h~&IZF34H7{hhE>3Y{pM?~94s^gg`d9e_I`jWWr+)Z~WKOagAGY}45y zicwAJNz_qSV14hG^0n3*_Q33(j8B*bke~7{kjkHVyXnzo7bBOl+xN1?=lYA+Y{b&+ z@N|Z;ZIitfpGjeylG?v9y(V;Un*9s?lK~t!k-}s#N6@6?DKOwzZ$(H&j0QhJW318P z1RFZ0zKoZlHR-9#DT3a(!-VPQXGZA61Eu!$*YJVBf~uSd#R@P1o&V_p?F3BIkI%h4 z57w@2RS~q-6sNDkl&}Yz6t3MwlzQD`M$k7$&^S zmQNoY#N-aJ!*Aw$9f_4VLX}4SzGJt@;>VE$gMJSr8$68eA4S;fT}utb$rXDG$<0!R zKiUJ;*9$4wu~v}@>&erg8V}Bs>*nL;xA8MZDEvhl<{jgiIpepNj=pu)#eKR$*j zCP|6tdj9O)rb3UMOy$p$(u z%`fUZB|I?Grj4BV=+`L)AkEp=xaw?psh6r|##5h{YBT_JzAJ zwi{IG4?>(>vE3+_9);%EJ$gTC zhdAx+wJuJ_2$D9;69qw)p$y!M>y#AbBFsDr^He))@|N(9CpzD zJ08W+8&a!-nc}OCcblRy8PPYTjE$dV$wt1R|FWlMc%I;Dj)$K?=BqEcmbfl)USEqz zvGS%P1-I9{C%)Bk#_-sE@Nuk2M9~kD0DvFs&+eirJ4bIm;5zA*jiPr~qnUxk|%5Vx%pf;`G`)qFUE6F0V0G} zc8wGwyc0-sS@q#2WnvfhB!_V2@-k)m=SB{ek9@bH~>*ZfeedT(=Yc~!(ps^4FcKWtGe-AW4vC!zpI35PA1M=|TxKK$S zVQ_Jst!XSvc>XOviT>aiQmD5=w&!miBwI8>C~Nk zRDmFaw`}NQnpyrv?tQ!bG=gGbsX2&`VpXW?n)+1yo{32N3Q5OB)=r?PSk}EiYEVbl zztg-vRx8WKz_^+M{etEMlGfz@@_x!yf$XXm09hq| zSy5Oo>Pj$W6o9bZ(tBh1iEsG&sx59J&EOD;iiFY);UZ4t9^_r({8#_9sZOSQ`){ay z+$X9S)n_t4#7q?VE`JA!U;=1xw^bf)fgHbbvANNAL7i7^Bfa}ErxhX=;T@0!6WJ6Qb?1bEo# zX-$maZWI}ucKrbLrm5kz`?|FR(fD^6Jnda&=&6RT^}gBdHj|YJ;@?`8*Mhz|Y;D4} z`dU;pMz%v?CR*$$t&RC^E4jB~Dmrsek3DfSRzA|>PsZvN8XbjumCUaWMXNks*`o%mZ-K1<>GHA6MS zfgaow{DzlVksv}%>n`lk+%ABBvb@M+SU~u#P9Vlno%qP;-k1Hl_p_<{{Y@hbpmAuN z>qA4#PysGUKFQ*7%nhkK=Uf4XD*d9XOY%w=L`|7a!AVy22X8vC=d%h~4~|0(T{o*2+#9Es`coG|z8&pm6hFV7D(73zjgaekSQR8skUWzCrvY^rX}eSl1cLB|iYEMwpOtH;KC#q}rSDzW zllaE3cjpg}z6!L%q{S~qPLWQ+?%hkU;-R;eYykHdN)O^75N}Sf$fIG8Xm80(Bj+DZI4wza`ogjgkA=s^%uk8gF;@B)!i2etv?tsVu{&L4hoHbz;#p$z$+Y+} zVVlTjq93`BcM_1sr!ZX0{&NQjAWp=l*{?85t)7K>lSw@MaZ;ZzwXNTA)%jp&AoC{P zAxzAQQoXA~;@NiicK+FFH{$$=+FfbT}Sm7(}HzsR)nD!lM5m2}&= zdrQ!Lf5jdtMB3<@Lje+=X`iv|vKaUxJ%D3Rg>6ZB!FXg+5@GauMq-v{>pNnb&EWz4 zc-8yY6&^yD>%MkaN>d zaJN%p_h>QD0hx$BH`0)-25IiEQ`sC#|7tyQNrgR@;frIf+}}1Y2Pay3u2zRJJ6O-w z0<8p%e>}9@l}mkOJ@{pF4@upkb@OKWq2{7W9mfyz#+D0Hj;iyM<+M3SJ!;)Blfe($ zZ7kY7{wNr`4Mqf)iQduQ=l|rh@%p=KFt%jCtq#!e+2wI4jFl8mcYq?Qdjeuv0uh%d zVZpzLDq@E{w?FY*Y=VV}sACGR00OP{qYf1>)u#|N7Y}fh4!6GX{YcNzIZT3Kn*SJhjGiu;) z1f<51ugHRzx<574TVi@T=-OXpQ8dtbkGN|0oD=l6IJq7NU{p*C+gIJl56WH(?==B` z79j*4D6asOE$rs?cQ!Thh;yAP)WxTA78&KS9S*+t{kyt6vvGBlccK%WXX6f^ef(2g zFl}xT;o`DCTx+_S?L*t)bDhh|ul($r#mO~YRr;T0 z6|>iU)J!?hj@wIg(Q>Q){2U%X+GB)r8pIKSIy0u~Ncdy=>RjRXyGj@!zar-i9fjw3 zie}QpSw`XOkneRy4o)qixJ}rzQa`={iDg9|)7$wkwNCN-dU~7>VLod)f~{sP5UDv{ z>|a2+I^}cf*Uz?nTa363eEJSz;NC50cF=LVu;?XBVdutSbN-g#?8|kDDw7Eo{@P{i z>Bew{d4mb2T+(fjF;hBFd4d@*HQuC~Vq5EY1sb3Z^<{iSfs?CkJY<2%!)={4Nj|Jp zV~~<;HGOlMiNyP$5w03`XmW8{(rm2aS10_gbg09ry(T}=b5iNrfUdijN{P`5m}ESl zB*305+8Cd$Zvk&A=f2EUrPrl=Y*Zu>COF&ZAWAz35LUCy%Z`+eq0E|>;bYKi2o62RY8z94>QUEUn^-0^qZ&M2IvcmV|(@P0TH zE-*a?sS?8$f2jgw6zr7KYZ3nsZ*LhDWz_x)(@rndCa+S4i4M9zFUA+*~mT!w$5`V&cA3@qVCK52n{MNQZ4ws=`Ec>{= zvFR^2fedlRO-E$8XxAs9{oAPsYyvVt^{AmgMOb=FVGGT9>U$D@p8VBX)iY1}|1{~) zp*29KBs{2vU4!$J`q9@TclD&Q9urLLdVjBa^8jWc`2$}@vu?R*p&OS7`J4>2 z%l@ai1p_!i9B{YqHHb6VZi(Vw;}TI_9}KJ9xQu&&7P zFO!qFi%VG%yCY0j&W$1~?t3p*F(uzGE}Au+EgmQ&%_T9WLa*I9ZsHsCK{ae&AP-Yh zQ^B)swq9Od@874Fz$PS+IcII)FJaYw)#NVNbQc*vp09PD2IS0J_fuKEx!#^~#*lo^ z7JFt;C)V`b)-Z{`p+oZK;y}A;kZF%<37`Ju4s0H-Yajc7%pADkK|QhT^0FRQ%@`49 z;)~*KoY$)QY<6^ZjCO2@mksD&4g06WMMvxu3*ySv-`%c}|2Ovlq~X}tN6bykyPevh z79>8G6zQ(q5tS@yJm~fW=e+C}?ivtXJO2SLb85EEto-c!XM1vI8a6!*7n^DnJ+E2ghS|8E zrnn_ff29nn`zrjcPAvfK$589g-Xgaj8ZXOps?f$pFn$KZh(TS@ACfEgS$!*SO zYc+&&5fS_u7jm;F0C<=HD;?|!*Ve}1wmV0H)x6-NQ#4La)rvmnF*+{`1?N)EiKrr z-RU;BkPyX2gbWD@2|YbMGc&V@6}S&{i|Cs1!Dr9jpMq=FkB>fr#ThlaFSVnP11SBx z0==JJ?mj-(pXiX%J_JNWyYNcZrG`@>A)(&{zx%FFU`>HwmSNmWjYNt;Ucp-hxuPagR^1aqDUdu3tE>zR`3<$9AYI(} zYTuoKbCX_DQ3h$y>uLKYYB8_%jhr;l*SuywSG}JGMjwhgg(}6xWMyV17ZoDIE{}Ji zsLQjT#si|4@?%rwi>M%@dtkG=du}3LxymB9wpv=h9v&)5O12$w=C4L2o%wa!!K4u* z>Z-#p3&!BHvkLT&Kxd!i6O6$$AC`+hAB(`@R++1u)^eDXVim>E`Z_1sZnboFb|Pjy zv!Q(fTxir(R1csQRaI54uC9vSm-ptcz>|SKKFUI#OW#mS(~{}}XncqGkTfK>+RJ@1 z^`A0dv7bAy4~o_dPQ&cUl&p5=8boaWPSxo8#)f5s`$)~^P~uoYL4LknB@A`3Rb=0I zVKrOpGC@h1qLXu|p`~>SW|4!9jq2gU_07#%*W*nvHY@tXG9q6;fMKAf$u|JYp;)I{p$;&O?qU!FPm9Y|~@)@~76LX~F9Ti*i< zmrCPBbUowsvB(hgg236c$*u*e1%u+!e0|1lgr4Xm{ldwas-j>dJV^ z0@FOilu{e4wTg7Nir^C72gQ|(OK#)JzOoW_>TF@MZcFg{=@&t-8$DbRGt5L^2&pyG ziUvPkcunW$iF|k_#~;;n%n4b6eM9yp@md~8h)fu1vU$P5$fIE#4ZZpO6$U+92oRN# zF%WX|IXs@2r{P-6^0_ixpY>c1e}rk|eOx3kKU4j-wYj%0FJI`Q+ZhSaELxk2!}y?SplJ)73t`a-adlR*LRNg_`$t!L;_&hDx72*cPYhN#1ZR(-X5T}x*0-n1q36d3vu^W(RS_{| z2_oUJlNeU5yXndU7`%Kg^WR8V<2XX{%*RW>144hADewjxJk^#lbsDYxr?d$#R^sB0 z3XD8eg&Su~uezd`Ojq*Ma-4b2A%@lOzc=(%SdJ(>I*?3GNZ2@&-abEEJ8p`(_-L}+ zIe&?-d>$Luy1}8!dQNjhr7_a{)3~F8>Rc+eySnM@h&JlL_Hog;(Y>;S(Z1ra^VJxk zcv{J_{VLn(t1u3u(`zdwg)H7z!W+U!8w32owjeS&KL&;X{~8t+QPXVpi_0Alt*Z*r zsj0;%=Q#fE(EC!SO6eZ1BR5lcYtSk(IT^VFgC>dD>Vl_jV76CBVI5(+v*qSjwJuI; zy&KbOa|iHWelJT>MeCdqGYxt$E!;cdF%6!_iO=5p&&=D*S1H)p@Y~Nkts6)bJUrR4 zCnk={Pr+qs;uNr-Q`OX5rO`AhM=g`(D-nLhlciRhKMIc=&YXl8zupM>hCHU~>{9cE zuUvl6sA=SvM&=IP2^eby}kuM@hTVdpEOn6hVV|G*jb*D4|K)T5D`@VqHm^G;*zM4a^EkVdo+nyf3SGe}hT+He^578bBmR-Jd4TIo)|OQDSt8 znlF8&hu78Dhu^L)J3Wh{EwV<}RdsyYX+Qi%F@Z+Cr(z&fB%EC-MTkL|l!QbknK~}Y z)&KS?^w+0f^~NnOG-*M>|bm#Ffe2nTqX>NL%j#nb;`{^zqAf65kg6>r?>Md z3rlniX2y?D8qtfLd9cS$4^CO#gU6BvO)7oNIxA)p_Ku_P1re_P=f~U3PmfWDev#5g zafm=-re(jGlhGzLg3n_5{6g6=5)kXw6`WqtnK1zpxn~R$%D$T>)v8hCJZ7CACnvSB zo{H$BUl_EhZkU0k(u~KQPU&8{FB$>Ox#->ATk!|8%h#(0l~yr6?t-=6lk=}G=$n_d zQia_VQ{hbz`QbD#0!vP;%drT0C?~6}@W$B+T})gKNNoXYN2fy;YGKvNl=JMtoKQ|N zlJxtu!t4$UEuUSZ`p!g7#C5W`FPau0Q9T7C&Zwt&CM+7%aGfj{b_hd$Gm@3JQ!RTb z!4N%0PJ`lJBLj z^{4I(HPj)ISIw23vhFhc&#X42%_Y#TohJ!8oj{shm<1*}mlCDWlS6 zvjvg~xmHVy!39{uh~g}Jz^ZC4Tq9xUA}c57awI>sf40ALk`li*o84;JJ>XrVH#p5A z97&;fX$E1n^dN-0>5n14uI(*_u&#bCwYRWt;7MQV?^Dx}9a*mG2p*>(BQrmZA3;(` zugRW1EL+{g8#PrONDMU-wuL*xUXOLInqEz8+|HMW`p|*rKKvH&bf{03@p~DCE@yd}%z2Lkl0W?ke1uv}$1^EY z8kaa1*JJjqDCp=^wrYoE%q|_VfD$^zI%O#ZI8&d$h^ek#fKjXw1pPMd1vSarJ!G7=YB$PLeF20>x06P$o#o8#Ysx) zivhuoKC{E%K7sT6BZ)8FvIKHwX4xW!M!o4&wHPype#~BQZ!*1=11UmTl&}DO&1gt%*)H86tL5+u-NZSDF2Z`*1Z<&75ph0 z?U*WqvGbKmN>)dvo=2=16l065!7I5tjG#jtAJdfDs>J zw;PNoX0%z}nt3ftbG82F`5K7tcp4hDfa|sqfZnuF!qw1|2u1K)8wT8^S38~zV_cZJa)fchWg;pr%}EM7qSl>B@y|ttGQvGJhKp=*5B^zw{9K)gZPTIU>tp(YcTJR-)|#> z*7#f{iKhvlo^Onpi-~(*2XWr8h}j0u(+*lFFUC>b!9fhGX8rMM5|dK$S&z}R*LL|p zmF?`sDy6;i#!L;|;E#(xeVu*W^^vpN_VB%zm1_rDM&71LjHllHtR;5_)0V_qd8STZ zZj!q&D$}A<$lsR^|C>LS-Zo=f@siE`(fcyFL%(s=pbBq>C?C0GFt)h1hZz6j7QWIH zp3*3xPklV`#aLTAFexKfcl*vdJ*1NM2WqDJnoJ@KL!Ex(Ax2A~fLoJpDE(=Ns0a1v zXRt%hcC(4Y`1qaIx0G`w!OExl*oamSW=F|qQz!_XVrlgjZ&&e zo3v@S`H(MqNtNY@qAS(&_u*8gyK~XC#Ocyu*UdZwLw;V|o@TzATJcwsI(cXsW_^iS zw=c6Nd*V1fuLp*QhJJG>94cMmjvQ_8)Acw^ES{a*egffpx7%>q80J1IguCgZB8m=& z*&79hjp`RS)RLxq=wiAcxUk&2XK-WI&ru!~O|C0Xz5akH0_gVMAAmh4n$FGk7bVw# zT+kUo&tu-ZKAjT=@6FXRGAJ|YN*hSI-0z?TWJFI_w^p2;otevFG=TQRec|)QNHzgA zcc#`rs(si)F0aW_&uJ~U`X}NFub#qZlPMPxV(tkb8NBFB!hx)#zpS z%R#$Z4C36TjEs(sPP{d!yWP6d_<1DlEHwy4@WuPpxr2R~{b-1lSjH-U;w5>*(t*Bn z(x%Jr!=t6u_JP=z%1QD;Xd zy4+$qTs;O%TW+nN^JItec(dRjU2mc|iczut!$J#CMWXH#U)Jxn^l&yj*$N<{^VwFCjb!3$;;jmcJvZK|qTHcKwjspxc2 zV9-4((p`(dFsk#ep1~c%>q*I}!;B;M9ww$I=35v-G~0U63w_F{YAY{~pF7nAIn?EK zq`zI){V#!78*q+Xw@!AZ*9Ow!f|L`DG|;Wg1P+>tMFb>#$HUMxn#hAY3X90Y0RssF z41~{RbJUWvVYJD#r;{noD_^UGY+1s%E0SSrq9iOZFhXgYfRZ0RO$%6?m`{#ZVwaJ7 za%>gYN=pfckZLqvV~dblNJ_Gy%5Jvy$B!TP&tDZ|qFafza~jl|guVZPBH(KvKWd$F zBK>g5TBwS?`TSF;`#YlLMM0{N6t7L1;on?uV1-BLoN&NSFhZs?>?%K9e*JGRz^J@- z$y;Vt)^dh)a>D6r*C@%CZ!Z;gb{C!Y)i+r&ueb%>5Xolw<9TSdHX-Ai>vu8@K5uhg z$toqRy*QqpQCYK{t|}l9po#qsyO~t9~U5;K{(m&=qp!wz49GISgbCKwRo! zEm?$=V)e2lgLd%H@B5}h75LI~X$1#OiE$zyUTipVW(E=^a;W@+6*WZp%s-mtxt4#K zxYZ`vAaEF7xfVHBpkKDry&l?_zo&FnP1QL|uDq7a=f?Lh;e^WUu67kgoq||M(kW!z zaB{QfDb|9}ysI(P#n3+9OFa0QC%UpyA|mDc^69NX5Q$CatA9>*((HzQXf*k7DkbrI z_rxmkaB~yVh&+X!B4(4o7X#Qg`CNUuzQR4)9FxB8UP?|*-kDx%4=-dE*!7$Bot1)#c^`wE+Xg>b~8W z?rzq%9UlzXJwEyL31&a|00PX~ z`w1iAym@79#^g55ps}FH4l;V9%hNa*Jj0_27Ih4Ygl_ z+W*k|sH6atD`3~?MSH6+Z)}vCl zvn2elJD|vp#?eul**YRx{_X9Afda0(k;rW4Q>cKr%uYfCi;Gp|V@Sx-bd_!0l2|4{ z2|FhXjfOj~>-QDI zP?xYW(>UnjuT=8$CfQ)G4Ffe5hXQl7P})~aADzPFzJ+a{?r=wH@r7ECyZa zRt4LPvw8jg8gX#+%MViw;kYpz@4Ay39RdO(mZxK~LmVg7q-d68}<$j@2ueG%Zt z$WVP{OWY@3W z1LB)d`3MLa=}=??w4#!c@gCm?bgSeHJzpH2ZyqsNxn|qlIR(kqPQwfsp?jJh-5AvB z{824@RV0>0ahXp$#4QSV8K2+GB*xL(8*R&2e`o?VQ5)2P(slc}*KM1EVMx6WL?HAl zBLsl`mDWZmf#u2dG}aTDs?;-EhZy6CI*a_1R`To{V&`c_}Gnu02|~I^vQE0;x%6i zw-r3Du+3ofer{4cBVuA=GMY)B8b+%nV5M)u?uv7ihHWTqvzJ^cLu5Xod0L5oN>wmA z*RB?{#kN;AtdDtXFn|M6sZ~c$q^_ALuOz%Rk_kxG!Xv!F$jC?}5~+~Hf4n_ar&Ip^ zE%Gezz+h?KbM_Hr>_@R-L$*>HS=xsm-T>kV%v04{481$AE>=Uwi@EM$KWijw))zkr zS(?XR69_$t$s4v;{F?>qt;=g^&{S2&9jL~wL6m1}+hV~=6QN}K7^BELd%MgiJt-dp^^yRBe<8R)2V=--IuEmBj!T{K-k+^6Q8cQ#hBaO7tU-}p zpt_com7S;cZh=VrmHV_N3$+kHJ6>og>J6_b&?+&k|G>q^ry+go%3?Ht>H4grz{tS+ zcq})c#z5`4cXZZ8#tjZ?(04pYS9RtZTO?XaErg|?}bK+z`y}UK(q4!)tnT$N0)|;1+ho?L} z{ny;8^4*?B?@P@>?elg@`zni}&HWCjz%#2sV8VF4VgYc8IQ=5!@w|c<{k^N$k4773 zk~brEYjAKeFDF&Z2YCiVxvwpcB{4`JYL@6$I(J1TZx@1nu0IbAd0!rFj8|^K!H#{v zyy;PD@KaGy6T5!?=+RqbwS#D_8<|;uyu;#e+Ma9OlexOxd-4{OFn?b(N#7QFcF3%; zZ{vP@5}=9zf~UFjiHpxeh3E~+%AG(eiJiSs|H}pVMLkap%Sq@BW)ko~Gs^0VF^z4e_pGYHjAVyg6I8a1hKyj1k%C&y@cHv+TtceJ zIyd{5FIytBUP=ns%*gb^4z{1xW6w9vzdxatQ~NT!zH4L zK6Y?$03>Fs8z8It`g%a)fLFoAUADtBAR=Hla|Qr)kKf&NudTnHB?j*U%hBBZa%y4V z$t0*TDfw{QBZ9myUBL}m$8mf#^knDfKUr)G62CrM8lsoJIEB`L^acW-nS4@}fZ#b; z+IE4yxqbH2>c|WCkLKN%0kQ0Qm6junj~_qA!p`T8~y+_QXagT_f@g8;m~eR89mCQ0|ZGeKhjeSdk1OokBQXT@YMd z60HMs6&cf!o#O@WQC>b6iF31^aq5R34bgY0sZ-+O0{(4o0`dJ)jOmS-T2oB97y+8z zE`y6<&Ex2pS<3D`#B7~7YH7{W_<@-AIj}D9|iQ`osqscCd*{>s4(&kP2`Tr2JQsDF9R*A(Zo#)~A4ErUne@J?dj`4s3=j~esKwqi- z3DwoqOfBIRLm+Gv)L)Mp7>B)T2kc}+TS0SH`+mU z7XXx&q%-S{wGPA#)oVG3)aW$@Ubn#k*6Me+mfzgkXk5OcHr-TMs=J;VyIOH1Vy9y?9;poKKmc zr6sY-`tW%&3(--6`SeSxS>_TWKgj`{XXjptbY zB$2fDQ7_Lxr47kcwM;pP8?PFaZ+yIInN}b5)Bk<^e}uHO>WR&S?m0T=VJ`W+RIqTi z_h>BzClH(cz66K{%z6S*SZG5p>g03?>enZK|Ci<5oSe|sF9fXtVe6xLJq<%IDFwU_ zx^m{AsMbpB3HK8#Y0&The&`@KHGn4cYIG_@-M8_0Je)!9-F@PyF_+cVRR%`JoymKg z+w*C~tYdy=CMNA|Z4H-mmp2r=Q0K#k53knx4VV;@qmzp#OzpKK#caDmR zb}A}A!_(4esT*>^DLp^g+$n5?YMsE39$M8bPm$0Izmk-?K5^P|9C;}Tj;K3M3>g$sF3*c9qnVCKQJ653j-<+FB&G*`~ zToXlguAY&r!fy8a^MKNAqey1nq=OA(dvB^C&%qHTH=B`@KvH&HKD%N0%T57X(z)!u zB^8yDzC=Fr`9|Iy{4_v`XKRlEikz_ZIN273UL$Agi2t48KerdqZXCvUKJj(_YIp4t z7GJY8m5lN#UPm|u_}ojKgcj_>2WUKvBk>e)LHve%wHRqa6@YpNOc)MkLG_!um3RS9 z7ogy4gf%-2xX|!f9RVrw|9Ogdbc&M_YLDxtRx{W)_F8jsx$Ey36%unPOegbrP;t1L z?_3Y2E&PWyjE0M=XL$Hz>vcLgdBVqlJGSF&^$ttfe`n%fmY_jynfUVKUBWm@kkBZ8 zX&cd^&5`WmGYz1o@5y(pnGK{Sg@mN{E@n#->wvTuSJy%-60&t_9#74%vJy(Nc@ggVQ3!SgY|D-w3gq7pmEnZRja2utF5uO zb2dnOY>7$ddTbWh+M#B)Il`>AM#UmpX|k~?B&4scU0!j7Os=O_62Iz|uq;Vdu%sgs z2j%*vNdEb*B5m-8*0Zpy3FVp5L1T>^qV3%W~tq+)TQo zcw^JRE%V*X)rWTM7K9}h1YI$U`ta$mZ#r+Q!QBxh|*Wg+HZHK}!Z#BA!I zvXTR`=3RF7##Kh5;mOOx`y}JGlcbqw>`#TNL^-+`Jr*3@UG^h2%oL=|{I;uwx%vtd zko&<97mG2LcUx6hQ`gEHT@86tr*2ab(NS)nlzjdcPBaJ~HzW!9-*nNM!%wT{@-lQh ziiSgyt%z)Vfs53Mq$M8ZOr;{ByR%XE`nOQqV zFgtG`L+r{8ceGIOS?Rxs()|u6k8@lSwY`|xo@q_9o1NWLG%}N%Q+Sqin;>t&Q889=yV`gB%_5w_J|;qj?wlLoJ6+(%_;frCFS-5xL##w77W`tQa$~(rTne z?sUQkS^)SWwU7wqRINeK-mQf|rs>o5Ay34NJHT*#Jw2QtFZK1yygg?|^G51icO1ke zD^#MS9u3yUn_4fo3yai`)gJ3nYU4ctaqoZNuMG&cyY zWjiZGz2pn<-AcB!6X*;pmLSZydd4TGe{0>bVkFXRvx~lLJ?h0c9A4)l9v(h4&9YI} z_R`1O7|kol@Cpc`I)f)M=jqf2QCXkNSV+fYawk=7k1_{;!qj09^*oM{5XMnEJd)in z-k-=;NTbZ1l!=0lQK}H_Ur>GodCmEKPwQdmm!t@(v4$@Jut?<@N)kKivf?IP z+cELcLm6xMV%YHF5z+AE(966KK4ag+ktev3_h(k(pT|3~Q@-NVFLoWn>LwOcxX&e8 zTk-Ox`bHK50jLW3e0hU-=VI8!dQD>|$HPxa8tLbJwCW;cKOdJxg5mk%{)@0F!QfxVO$!P4nQ}8n3EDBD2(UDag(%mPXPx+d`^yB7j zo`*l@Nygr%Tx9>Vjb=|2(F-N)l)=0B! zAxhW%u-$U_iM&_`p$UmK!y&#n56K_}eBD#idgTL3h$1NoYVyK4IH%x%sO-D@;rouE zK4vv^3es`)(ASTF{;Sz@cRnyG+xn?9mb|oAuk2xk+ysrPo|E8IoIah;*tbRF z=_)3%`MmN=$k@{A@s)-pkSbl#w>_`dw!tj;LJKi7b>ezu2~sbQwRb$6=a)-ba2^B{lC z7mPXP`#NZJA+d_>t070y#*wCKnW24^U<{v(C%1{QyN2v|kd9)&1BS6!K9>E@psVU< z$$Oo0b`F^Wmar^sf-*~=?L>A}^1yhT43bz%pSrGt*r6zkIcbVXpg#UA5Lj8I)*-KZ z;h&C>fm_Ia{c6L$&nET+JuHpSy!oX1Nld?(tYl@V;ccrmQ!*!I4ay|`-EiejPvte@ z9@c6%(%$emB6(#${mBEr@+W4Mqqg(c`Z07s+f{(FJ{4jtDyU|IB@J-QK6f!X@n1Jp z{h-)icq#1Y#XqDDXbs)c&=5T!Gth z_7(a033+rFeO~Lf;E+|L$Uw>$EqF1-QN|E45_>&=ENKO(0E^2NIGhkSglr7)_o6xE zM)5bd#V#@1EMAafeaiQcg0w8!8%ek>eC^2|Q#DA-GIVwL@w>1JUf*1VT&r!=BrU_cPx z6`^>XposSmMD3MQSrF4hKzl%gL7l6)sVU`9LQ+y(N(%jh2M-cs+}+P9`E4GGdA-U} zGyt5YS^#y~aJ~B|;=0D}N^=KgH!U-LfOS8;1%9m8N5TAJ*Qu9R)@poN(|zWQ*{qz) zn5k~1|LnG!Nfx`IEjkOs8ktX(wOhVzp{vFW=kfNKv_QBgyJcJWBYF{Qy&aA{=F2kb zw(g(2GK0Ko*ty%)bRIPW>*!XmF?HCdt{|F$GuI90=!FeAk<^A@sf^We47N@9)_x8(L;`_{q%RD^U8Nb zDvM`5x&tSZ633puC;I?Hi}~|hUrAeg#CAGrCgzC9aVfp-m#}W;Sk-*sb+bK{KG_HM z@#69jFRVVJ(ovDI)p(iZ-kS2ZEKOsr7BML3K5(ofKB=@vRpe|P-AgCbfYAv_0X?yf zVQ}FHzfI-fx6H_ntY(P`E%>g>Ny`S?EnVNuoO$UCrVIP=3d{1*3M#>+lc!nt?nUHX zmaRN({nBJitKL6^Tz}|i-AY5!%K6M=@)26PNHumIfRjtLx$#$l`)yEwDKZLRt zO=DTAT5`H7jOgLr<1QpNaM)#JWcs?hLC-4-2M5<2&>}xoufI6dG zf5eRW_%sIa)Fi7)%ljfISosvhT#8fC#%3m6VwWo?>?f;dNz+~LV3Hts8uQ2BxBSjK z=>|yA4j*9TONgdSdPe;9wgySMBVyZjbi~ruC6vw0u#|tM3EwO0+mt~%{Vi8s8)B1^ zfiB^9MhzgoY=2VblI0s$qp5vmms#sGvKfC(g>1;&@U_RC*JrAF!k0aExHDKX&szBu zvev6-v0LVF82atD9>V=(Ep>}c+RdWctWUS|b1l!;3{MJH4az)A#l9jdOL%ZiJC+O| zRi3LVt=^+^{K1qu)ma9tmYvia7mo@yI&vJ?webR{CLhCjyE<$qrjB@o<@&`Kcl;k* zW=Lg!DCW7586z8`Y}K4Cys)O;+iMQ)q4D4WbvfnzdNh~%ed>uoVN4)}w6dqWG~~JS z$rg{Q=X0fr8K;J!5%8kD%rOt{|NZtqiw&+Xj}#Q|5wFD8{6W=i)KGeTz&xOT{e$=t}evSm(_rL z#e3m`SZl3J3t{!3s*8!5>F`Ko3_x?SU@V_QH13ebfdm(ILW?WW=cEiH7oK8=@LdfO zH|VHpk&y7^x?<;MQzf!YO(q04e}K4{pPZq^jF+01i23Q-+D}#OEU9Jp!)fB8V^i&M zGI+U&41I-q3mZZMQGAtyC#`q zAGRj81A|_X4Cpk^7(@`9G*UF_%@1F zBW^;KI4td(@8F~)Y<%b(5Q_gJPD|gj&FuBmAM9M5j+EP!q~p9x5WgES1%|ueZ{Fe7)>jg$=7KRk+I@02~U0mC8WK%;aEW1aa3hL*q?d2iLcXx#-FJ1hU z9PEkL?`wRtH@~FNY`1&H95wc|Miu*fyF6vNrIYn}e&T?dudE0|=@(lE8BwTcp_2x7 zZkYM0(gWMM`p+q(JIA3GiMm`?0ZgfJZsE;M;!j#in&L$`@Bd>Tzgqh-iyk(XN6b9p zwVf+7T|OLe3;afLbkgZ2Mj`6DUA+&4)4RYZJ_Wu;1K)>reD4d<{a2S}eR`Uc1D>;M zl%jX@h^YJOj($hnU#GV~Vq1g@3)v*HLn^7L+lKvSxUq$l`>=BpW;>yBX?KBYyi6EVG0rF`W$+GwYj>Z)11UQxh^nR9eFS+Y3;uKsR*Lp7XKLSXTD<2N}mm zvvxrQ?Itlq_&PPIhH{-5LLHa2W?3nKPh?*yaGaj~l8G_Ley+?K&|y3D&97l#dJn}m zfgH57?Y1?}^8tNx@M+bmGC|JL8=+ggUM8SU7fs)H&QAlx7sw8)y&(o?Za%n1kht zZ5=>3p{!Q;${h$0P12qPyth^N5{K8|r303HvV@GdPMZ~iX3GAc;iII_!Gspq2zZH6tXBX=+l5lhSG|LKi{?G#;<-alo-Dq8_mc04067i*d#-MUq2(7cN;s9GIu__j| z;YgDbET?*iS2SvE-Etfw1S7AkS6fTZ*XmoEl7CJLrgjjyX>)@1=lN#Hhac6C;66 zftJTTr4ggzv$4EV()Cpa6=rZPfdT09`nZ&Uo|qVGJgfzJ=QSyif3Vg|xV5QYNmWIt z(e3^Q)doAf^gAa6(~uJG=DEBpe$$q>Fq;yt=@5Mi7QB<4%g8$V8t7)$<&GKA>L0rx zeU|I4mN9%Wj0gYJu`olLb#DUQh`Sz24q~et631hgJe>iGS7U!Z5Z1)&I0$U zyEzbamrRnfA9lJs8{9x}cT2p zQoi|zF7-psZ@zilO@D#+0Lqu~`8if@UGFhv73I}}V5rFw+Q<8#`LZ(HkCDQW$v%JU zCqattBU<$Q9Xwu~Tpc4(^nBOKe2j|WKls9~h@#OH+u77N13pXkEPSIbk08{I($?4@!lU9Da=DV zNXDM)-z~?sX!0qkX2P|fKG~07vEEkKoJtR{e#TeFXt$-C_gVekb}F`^rfgCE6Uao- z{3cE6u#s>6UFY@sgz{Bu?m}IWX*nyKo$hu1Q1=h{ERbVWhu<$~ti^Sp=vD*rS$+ri z(yd}gc<{HAH9HWgz>5i-*fR1>?16CHIo<|E^+KxLdXXasft9OBv~%~VLgJ_M;ITjP z;!JFXmR_Iz9d0Ru9@~!o(uH01r{BG%vAWFksu0}MuU=L4ce1@#T6|z}Khr&pP19g8 zmF_i6zy8U%itY4ZO&yUiTWXF0clj?Uug6OTtlYKNc_0K(f08cFC|UW8fGFsim}9_o znW2rTL586&O<(k|&9OQ~Oh*FUYI9rgUX80_i5fcmtU21~VmBAG9+H$*N(0@6Awa1g zAiw?L_@7a6YzDSz)TeBF0kTSomcK=a@{Rf&^Cox8<{FHUCfAXPShVPP|Mb~hadm#| zNH#chs@$oV>xHK(;WC*|Y<#kqwd+y-WJuzS`Bo}K!pSP^IC*9m%#^7S^NT}M8xm{$ z!FD2#j5sQ>pLVVMQ>J?Qks?*BoE$Dr@nZc7hlnr&uUFG&LoIAts zsb)u0HL+?WF^{?O^1Mc8DFRwj6gv+$e#HX7z!%QbcC_g5Jhh1#WJXy}V?{Dpk4;K~ z@%YR_kAFpHCB|oFp{(vG1Hb+_&Kt~n{#L;wh=v=UBd&F5mJfe8+Rotj41F3iGQpmM zBS06REXAo7dF81VfknJi)R4e0bUBj_1QR)EW81odFYfC-I(+l~PLjsQ5n+k&NS=WqmhU{X_?@YJ9U=Q`2?hK4+3S+JJ&*qhdG?EJd z$%gRlB^e(#ZrQgL^=w3s;oS!Lx$lnpQw~6k^UL47n+|+Ax9yn%Vs|;yWylu4jnZrQ z{8_U;uj8PC-lF+HVC=xpdVlfGg>6?$0e2lv>G?+bu8~ETopJh-KXa7I#k|Z$EC~+j zg9cqzx0H7*IXZM5cSC9v+)C7Mid;KUZI_&}d7lnlpZ)eUdu{r9ycgSyXGYOng*d&@ z$MF4MO>(!VmmbB?}yX+#{ryen+q|{NTvklyCPc}w1@P8O@!_L1C zN1ZBeeT3CWAUtVCUvUfUeodw)mO0HURNcFI{Nisr{e=YaeQ&eUAwBD;KdYqaj;v!% z(CC@5b=y>tv-hLg(0!A5Q2|{8?KXw88xisOeHCg9^@pNn{tZ3Z?84OU{+LFdYEC>F zG2O;d2h5*)6tWvD?5<7#BpL)N-+rBHAKS2MAyuxb8fmAWtX!Y|PR+UWnn>qQ0$x;D zg^HD3D94M~=aXM}xtJxU892K(-hY*Qq4-T!kNH)AOwkv#u|1)Fm#iqdgdPd2r^nH7 z9G-^-yn|G)H`$uqu#~e(!(+TVY5dDmv2)FqHm9OJx=+R)VvZ)it9jSw`Q5=g1U(=0 zzzJ{(8t_?kefP9a_QNzf6DTz8V-TkDcQ`{7Og!@H!GLOV#?|Ts@0!8(=xfZ zV$mZMZP`@wb|g8^+PV6esGS*LgidSh!x=L{h70D5tscJ$KAvc;I|_Qd9KP;PsjDHF z-4?_@N?{;Vr3;!Uo+VBapUo1=TkIa7JRUleHP8S{VQcRF{L-`deoVtWv?AWK{Iqvk z_QT}~;nnjw7{(on!*?yI7u^tJ$0sroC*6Ss8K8RW4DP|%^S`6_kY04#|)i7s4r4=uMZZaM!jmbC#4-*Ax-~;f73kyY!kFS zN|JPHA!p|>{oCKAz^%TK()??T{P+KT(XL3uMn)vQK64sJ*7jrI{PoEHoq-}6ZMKxz z&a!t?LCh1l0BdxH!ud+0*87y5Zg zNJ(EDAqU5lPHbWeN_S@A(^4Bo$_cyUZ26Rw$V3LM^amVNoh*SmRqf@BAj5ckw5-5t zQk&H>ebe>$Z(;~&D?M+t$3j{j*D~41Bq{uY?$RP{>-K8C{5Jj%(pzTSgD`CAIXCzL zyPdA`_Ojo6!Cbz)7x;VmXvaau|Dq4nb0C%r_W$`ltacK60O4QVxoMmEM;5;*0mF_c zCbe5cds(~b?a~Rj3p>kWpz4^KB8wjYZ)`OAd5zBvY5*r$S*Ff2Ku=87Nnf0c*cJ4& ztI!`f|C|PTkH?nNx?|Y*c&%?n_urK_u}7YmMAL}QmTS>^nyxngi1wZW9CD?k!DkNH zR`wH&&SOYl;B=L!%5~_6OVLxDGF3xen2$9(-e8-Yrh7I!E01|!oYsvHt9ep6cS-X< zhu-T<7wU3N1U`j|d2|KSlJW+#aF=38{Lie5(XVn#J%Ha0VX2;PxhjczG=|4Vf0qzg zU5@Qf=9^dZ4W;3E#4c*YlD=XSB*!h|1(%ptaqMoi(XpJ+3>t%XH>&!N%Myb5(O|{k zJ$w^Ubn9cFuQ^_k4)gH*rfvJ)m z9^C6sBppJa>f3mTcsj-U$g;^36MUMS+vL-dSEcP`wR-!VZsrb`BfW`>_(x(Z_Q?K* zY{Bb{P~e&-ZfRn#XS46ukK8l@{0-7Q%C^}8gAtK=ceiM;$?&%)I||!--h}A2EUw0@ z&5HmSe7;$-rMkK5?vQi;08=lKmBVj4B?w?dRrM41LeWHkfCWDScSQB84Zs&1N(vKZ zDH+U`N?#=4LRLv-oO;&N-zB7{v_k6upl})l$maUq9$7kLz|i{3yn11h32&U^ufw%K z>2|O6TJZ=#i#a&WS^)+QBSV2kg|R74ceEDYA0hsi&oI6?~Sot{>{K>8c%F{U&PzWR5zzc`))(BfH1gWI>=V6kf?&^2@kibV^^kVdFlbl15D zcD(=Z`rdQCa}N8uyx3eb&vQTbv+fnYwbpON#kIG7xvQ>Uo>dcIXHZY^4R|BT*Rh$! zPxibd>1Y-uU(yk-xpY5wa4{T~6P#hT*ase%=+L_{BzJXY`XUaqI5}Y2w}WTD%XKnW zyyb&4D%z+oZ+Qz=oKVN(JnApHjw{t=QY}g@E?0> z_+??rYCEy5NS!~Y$r6X`HUb1Fx?cNycCT0VEuqgvyu3NVwyYHxelZ!gu{wR8VV_<4 zUWwNS{x~}tq#dn+Q5)Mh|4C|GV2!at96)m|i$-zaJBG`l(uG`w?a3j)UMpG{($g2? z19-cL(y?a+MXc?T&8Q<*IK`P15}^7BkdW={lu5$e?W%m!1~;r#cis-of|r%o@=Pqc zXfR_TLL&_zo@@tyWC7U$8t&3a@#w74@~*!Nw3(Wtf|WW>%Z6jx5?fZdwRkE^E|KU9 zYSt4~0n?|!nnRvuK{7J1z0@fW#R2kNl{t|uiC*dSwWWHynC~^5RTE%9!zNY=JOH@CfWczANX3U6*kCX8Z@o zfMH`ALY`_MQsi17nyPk$rO)Xzjclt<1hK)Y#er4?XFuip%Mu~Vl00C6R^oZM5lNky zW0;6OiHY^TG{&TRDR6NpY^uny)>GNzd4*WGCSCa;v~~yEYuEdUGvrKq@YXeqoRBWg z(@u+H`lvIOK}!(IiA^RH>4$jX5X3WD6;U<5vJk>M1AK#?=IJR;Uk!TUBBtR;w7 zCxV?54|LexMkHDs&_$Y{kVsrYVsJ3weKF0tRVbOZf<7oIXy*1P&B4^LC_)=C+q^X= zm#_DG9*M8-!4CyM0YGPTLLHz1-` zsVpk`Q_wn+=BoUtH(ZtBQ35q z*W+V5zxa6v$sJ!liJjH`&eW}UvRr7eZxYz2ejZ+bDAxMhYUPA(-a8MHqHp$s#F}GI zO~GQl9A?>8VB8cXd|cfhe#<~0%gCJ(Q;<1Icu!%6XIwrY6rbc7=Wu{}*Kt^8rvX{% zSn(*x%piY|f<;0w^sF&m2HT^>5YHo!pbN@wvTpulqp_#EyWl4mXm4XS8}j=$p8~3j z^F0K>*uWa!Gf&`NR=vRhl8`FZ`KT+R?{yLur@p{i$b8-5Io=6fbknt3EC!yG4oLlnJqSZ5p>J!od~#t*7o0;*BJzNT zzy~+d!^g<6D!Pr4EekTOakw8`u~IL1$cIgRKx^dFB-B_US=JlEwHG;Mb|BRJwAPxH zui;M?9T)GXVO`G2F8wskyh09B!!U>5Z-7>u7t@JNp!(G_adj=*Yc?E^QTZ{3MUF?y ze!r5VoteCrAAD7l6`_Y0!huhpKg__$OxT_B$%^P{8Qd0!&)nE&^jqg-9<*Rg-4pPub&&QgzPe6d8)NfJ7@|5 zVBqq2>=!1B@E-$BSTp?UYY%V=92c=x$~FkNbNRZuO?-fQ2O&Q^?t$&Qsc5Lv({k+O zEpf%C=~(%;0C}H%Z#O2W?FACOz(q_mlxnkDbd#p`NK8MQW#$&K1{tp5=CoV3i9G5v zx`U6z6~8Iw-+!iNqX~}m?a2M{d)XoN<^lXf;RCd*$Uumt&#qt}-t(?8_E2G!(QgS_ zN33CHA+vN5nE+w#knexs#XbI+9)0jZMNkU1rLOMi7H&trex+#_C~|))2k^1+gX6u` zl8#toBQDLeg?QlS0W;KKK%h5>1-|x;zAIDTt#+OUTmju?p?WukNjZr}nVw$XxZYD! zi-3#=R0J%6{w&jz*Lb8un^gdu?cao^!NHD$FM|`x*o3}4@XCEabHVw>#W`qRoVTwB z5&EfA7!|P~<}UQ7+Rp5idQ$V;UztUHzpSVS?b<#Vo{Jzna@#o9C~n1~#@DOG+yy)x zm3Bz3CjXjimKum}po-7R;%Iw&8`SKArx{*XuCyID($ZoKvj^-dr-zPS2CBfbKyn&4 zuu1;>^$X{A%9Qs`h~XA_~ zI=^-n6p?GIg^fnFu*6KQ{Tm>-x%#0I_hZG}1srLhPe^@X(j1usW60_uj?Mp@Z5z+4iY zC*ZkDn1sp0RZ_l&N;bI-@HyEJs9IyyEs-f952gkb~y{oX9h3|VjMz{7fa*60Ve_aXV52Xi!Y z6myxx*B2hodPpNYJ6{$3;y*IsPUVdBMXW_y~X&dRb^&k+>tjJ$TCNbK}O1eLfc15IP=A#GE9K`XH!* zwKAUvb>X0|X+5?(L15PEwpqQ6{m}4hNa7=tH^LxG>GCOcHU0PZ;QwWN>U@OEn}_0h ze%`lvpn~fOnm0O(eM&t$3*0VT$39xbhT4hN7F^4czyt-fqs(z&$Inl%fsQ!vV$g?( z#}#3dlF>uEM?t1~Evta%{X?0V*;&m%Ia+f_7pUkqtaA8Xzx6#(7Y2hGURSyC$>)0f z_O_FH?(-jLO?CMLD%TjrIeqrDyS7db+m?dxuZf**9$cIjUKofm9GyvVn~PFM#W=Vq zNpc<@-$@}z25u&hlX}qqmRIeuv#>mn`QiP0(11Bdl45?_gBnB6$mkpt!V4}i-+a^B zIs_l{*nA$N%sMfe4KQJmace&AU_3^)zi;mkvHgtcqI3{lD#V$LfcgG_*OhatOYtX* ztjGOieka|?-bi^iGj>dxQc>-Ez1O5Av~2+NAUwWr!i$Y=>*?s|C^W3q62U$0;-C5~ zH&z|P2Tu|JCFsCM4!y4)EG_DWqWCv-#yHj|OD~9YmOq?F{3o z*-DEe?2oUjB>FM;0*FTBKW{aDHznSDUC49yG*77m|TuX-_KVq=AzZD6is01=H-JIfc6GMn`_M29sQolw7$2xwM7J7JD6ulLv$L>3ryA-_N&zQdVdJ@= zio^t_M)8wGD{QrFp8S$FQF09O~S{g=(>=jVY6q2`5t62kl!)4^V{ zm-jyhZ_=awWlKdu=^=8R>B40h-4}AUJCLm&t6kS%rZEt=A{7F`H>b_{TkyeShEFT| z9S;Dl7)o7RCALgR%3)mVedJ_gvj#XD&X0#1lTKz<+KX$YcoWS){$9upmTU7rFF+#< zX7LC(i-CSaK!|qqfwRFKP@#cxQ;^T)v+AEiH+&th6n2Qdryh1f^=tFrZ(eBU1BZyg z@;}xg{Z1>NPAcSh3A9PsA+m~fnUw*NTBG-g;n85pDt|-$nX%smr>;~eg>2P7UjzC* zAe1t>-f6y_v+;Br1V){3-c?|9nHc~1%)h(zzd^pHD}fNaUdj zFR29=6=mS32s{hyJ(D8Aq?(}xI`gWhCCl-8*hd>mI{pha;_NU)&I_Jk%RdA$mA+BS z$pGVj1&SS5jg|}s#;>=6XPVoPs2;Qj?Np$0`&m$1fM;5~1kZJ(y(#T9Ex8&xT0yJ9 zZz6Dh`>knTAv)6q1v|li*y2AI(D(H<>@j}Z__^2Fi>9U~aw+GxIA7?evFj$Eg2t1pO{oea zsIicOT%GC^49(_elO-mk-Z83lDLj0+Q^1dxai)$DOHfe}B=H@}Dn) zy6)^CVLBIV3iOs--4FW#*=w*_B$%PV`4soReX0Ndmp@+q4YbkqJpj@3(R{4&TO82> zRLllT3|R~fDGLT+xumFID7DztB`&uvm0cWdi#iHPE88!b#UA^fx|j1RCh{>cFi5g6 z`+74MCU!^exc~9t~74mv+_q z6#kUZu%+BA!hWFZ>RQvfM-$=JDs)%poasUO%NyCf9!8Q zGn0=H;UV%TpN&(>db!ogq1^0J1Zz98lT7d<2GS6?38PHR(wvShd)0BfJ&nA@u=G z<8M+R_>6mlTa0@j!)7r{`5o$BuNRZ`LhUMGGFP(B&jrXzzqhx{?W2vJLPFmZj1& z+F?NX2UIhJUJQKc7nUY1=j1zaFgKRI27R!!>f9M1C-!zCHpD_^J!b6o)LF(pTk}p- z^Ft%j%&XN+6gOyV%I^e0aq%VyOQ})PV+2Ias=}diwC1MS7BQU8taaB|J;kEI8 zDTG1d)C2(>)8Z2RRTma2wm&=FNd5-zS7iU97@-}BsK_z#$4QOxeyQ0+1X;Dc)eEwN zEh)I3F+Q03%S#~v*ios$zF9X^Y7LX(ijoq0LDQ(`SdDmlUO)cY%k`F$RD{Zb)9`4J zAWw+%L+WP%1#~BvFyqe9hj1coN~^x43#{w+Q>okCY5vCX{mJ%(@qfKT03I3u*AAsQ zJIdTp84yFR`+MIu^m&O=lHBDnrnT(1bz2CxWW0lVK2!=R=QJ7jf(r_T+TFI7aHt!T z;|$aTMSX#~witRB#2!G4UO6y18_y{vV7Xn*PBH0-RVwa5M3J`0{V zMb}WaPj&rsqMh+L4QCsIK=K~B<L&Tz6T%Eacytx?5r*kXyRiWYNzTW8*Y>-vCA~-}a!^?&~|rs0E@f zh^q{BZ5#@_5G&eLnN-R z9(tqo?A58EL0q$}XUES&8(JaR(HhGBr(`&{&;P(f@De zNVy{>f386g-KM*7RIa7g^rnyE>yxGHk1+}>|9xiEz*kB4R?lFqeAFO|aGhDxKPFWF zKTPNiJZp5H=pPz{a3V(efs8IP@xN`TsKh@u&0)a^P)Z28AS6tGsyQxBm0fy1d6+(Ayd1nx`z=aWUTP6f)_F)o*F{SfgyJvxV>2B8AAL403JNyLEs3b^ z-D9bF0;SuF(Bu91mosoEapT|5X$QUL#V52sayUtD?@K2r=Rz1h`1|(Mp8q}za4`N} z%H^;Be^P)~Z|>?c7;@LIenJ0x<@#Ly|9?v#{^xhE?8w#Eug>7*@Bf)?{6F~ke|wVu za`pfA@&C5?E1&Obk^e?j|KFZVmzPiG2lJ{(FtGeM4iV@{lR46K&z<*7@y&o3h*ay#6Qmh zuv$D!7eEjRU>lW6*VFG#=ch*i3gCT?p{JwcezZLgFf0&C4Eae66&iEe#_`)Hh0WY5 z1Jqp66%-eHT+Ry$9)m{Cxi5={ZvoUz1wZvG4#1=oaof= z&!zmwozZ3(^qYcyP*KO3IZyNNua?eE2CO;6nH1p$Mn=AX1|wbGdySL8J@%767V1JyU&N^78ip4!FgY zI1}pnXJnxCi(k%zVy3;$<2`afW~3v5QR8OcelX>i93K8h=P##TG-pO&5L6i&%on`} zAk0tEnM#TMUEqaRfQx$p=qe-rDS*%8;^M3t1)+$noyDHjw^7@G@uQSp`h3#ZUrG}H z6PhtMcWuq4N0pb7LI|eNu{>5DuaQwy)LR_zDfNwpUcSh8Gw$qoLuwPMbOJTafjQ9m zenNc)h!g%FICGu8xAK7|>xcGVcXwT?ad;|9Qo&RgRgR8hw=33MbQd%v6XKKB0ugaT z8F+YjJp5HuRI~};eoj_a`Ts#T+YSdn1;9phjiPM980?72Mdl=5(FxVAW zK?hlMJr+9ejVlQ%BrtBpowhqKcDJdISHja8!FdIMBO3nkbpG3-nqXj#$0JBjqTIx5+TB#BKl7F7w)lF;+Vh&>$YuD5mE~ z2<4UmK<^pv=c7WvAu5=(ytg{s5=L#Wm64tavX=kRBS*j)0h*@4>-j=29@rL(ppaEgWm-+g2F#~^J6-&t2J(t{<=3(n z-BaN&R;WnShvVCNK_3ly#{eLI7#X+zpX{fYJR%~%cIQw~79W9&}KVQ>f(9c5p^1#=Ese6CK+_nWh|^F0cNMjm>3e^sE@Qk@4sJR6JbR5m-6WU%08(DStGztC1g9mw5sCO z74O>%vw}-5RUhgg!F#Cg%7C?0;1}LhG1;P6)iloWa0!cEPL9+C+;Xp;JJE_APD#3X?MoZ=a^gB8_ z>dGVz5cZYU(LA-USvA5@fy>o#^yGkN<8w&~SKX_IcwTjI+$~+IWs$tI639TiuN=3$rghK}3 z0;_W(x}dsBVM&#?a-$be@yL0nEjX=%ma@SC=<0K2Ake5lx!tuOEozXiV3Pigh5L^* z(B2mZ{1trmlfo~4Gy|&qbCjEMrPYr6#-tApA=UPz*9IY_;2PkH?@rCl>G#b1|)MWx7*jgcjU?R{}}pct>4FVgbI`jY~s zhm>SO*CW3eeu#;V?%0A3LNo}Lq^W)8{)|EzdrnT%?o_Ml`q3zc-NU{C4iWIwA!W4? z9wsJ><$g23na{_?l>wT;>7_n`+M#ZcPIE&|#C`q@wB)O~Im7)^kQV^uP)dr5(aGDQ zoEwKLgPap?Q_Wdf1;xc!j0#nLz{U;^4wjdf=M(wE(>4G|UlA-sm_yw);j)w+LgEvO zX-_zg1k<-hf;zyj!{5YH458!!-sTSh|D+gVr$~oV#0ejL7xg)Q9W4Fx zXNYda+9;roO$443(DA4f(@37?BjOhnE>c(Tr)xFd(WHtI83KLr+eWyZPs2X`(? znc-yX=~nBqt|_nCYgG`wK;zHCt6x(9F61$bRw^R8@N%! z;mij>Xqyze=CU>OQ<};HQCm@dKZ6!Jjgi$xfdqqX=S4|EZi<)xM1dI!b2{;X9K6$6 zlR$YikQed;m~Bn2`D&2?^~& zkFk!X=KR@i4LxM=j_Y{EdaCpkGFLl!X~`~%Nepn!)c^`SEqw9c)AoPd*Prf5s_jW8 z1evk&VWZTfGu?X6a>P2&!r35#XN)oZJxBt-`hzp3HvawT!4IyM2 zVyIJlzY~3FCP;6)y~8a}wABNCoqq*^IMT;o6nqi*0CNiqaAm-KR~O9PuPrNU1z4q{ zl)K-DqDY7bY!5dhR)_6d+uF8b18(~pg5C|#D$fy89Q&jYjm30*`)~)iR z`+Ncapo^vDVWJyByui*@T3Q+yL69mv0JM4?m~E4gU?5b>#=;W03~0kI_hMyb1wFmVNi13(4Z4Z7pOD2x(XOcnHc|JndUh@Psd$IP?uU@XL9SNsLgI?^FExz@u} z-@m^|417vYZ{j&M=GNS*dN3shQ2Bf68N%*8A|^uxhSnCbLT-#23-( z#OLIfl%y*@!E%4L^V=1QJ7h#e$a?8Q;Mg5Bloxs*&qXPNVL*An`cFOBTqp;c8e~Ta z?{V=kW}Kuv2?PZOZZpj{l9hXj(V88CodW)0r|>7abH`?^%;Q&6n9D|At-QO2jHSDZ zPm^+#FZ`B925xZBa;8ZOlAJpExs>a{b+i#RI|Ig`LOvGQ{v}+h&rZ8bs!<8I|Gj8F z9TyjLC@+)vwo!th>)7;niByvsFyv|a1~H@PX{(8H513mpc?#mow*t-!B72Adbt-R5 z#8Q<}{c(`%yETeCfW_`&>tOO=!nuQx;<1XFniF8BGwVnK`Q(VxPX|-fH?!|^?~DM1 zW?ntwQ(51m4B<-&xjG5kKWc)eT!)dwsMvj}M_dAYIANlB_&T1JM3 z>iS-48d_Q;BqS)n6~5eWF+1~XABE(<&r|2DVrluAjj9p^XzXP;YHlrnb z*}BRH8)6T+SQsBX&hrYJH2D>(te_B?4o?OW{_hLPC|#oHPnS1s9KqnW5KW4KrBzim z2PK)A%`-5he=R9#S775Tlu=Sj67~57-s-9+9{$aBWbFpAvhZHNypXr(;MGLA%fo9B zzpF0I-w$zV|CGHt%mlo5=#Z|K7MQ~2xH(PhclB!~ z3R^F$^|8GkHa%glZi8Z{`5X}HWM*2##KdT755Il?{(VqTxuc_r*KQr}<1~2hFv<=V&cdvG5nXll_{hi_m*rB4H@BiRT?uYd z3ZW)J`M}*fcP@A6>KF`jLFyUURu&)m2q}NQdu{-2hOfQdyGCcz)}W+LA{~}6QaI&r zhx7tYz_n|^%iP;vUJwDMtAvNY&+oD(^>lR&Sp44E4&4|j=H{@=>*n@8Y~{5cq7ZQU zgmxq#S60AW(Di16!0`~d9W{Bw>9lRS-#wkPy>C&ml7+L>*XnnnnYc-P;salR__?@L z7MpA+$_nUQ3MwGf%LXZ>xV)~m9Fp0novHMplr^zZH_|*ci!=8-%k7Ig< zvA#pTnHZKfM^m1Z7Y}CMVJBl)8VdFHZqm9D0Q&9r4xs{(fTYK&o70HkA3x{-%i0Zb z46xKoJq_!{EOTycB&0fMOdch!zj!5;Tv4!7d59-2d4Yiia&xY`mY$lLuD0uKGc%FP z1Jt2!v%GW~?5ECw>N`B$$yI}I!9{&=aM1|i<-=RLVOZ+Kz6D#jyWuz9`=tq|{UziH z>kfMR*|9xSVvg_Y2nh&e1wQLKZ@ZqAV~y0Px|Kc>Mn_9$DLq=M9c0{tr!=d z-Q==iBrbJ=@1cy6*`Bp|#8{Mlo?+!X6YNWg<0-jjxq9mr!WXkQ^u=~Z?`(CNL8|>nN_BTEp zdninG&r*fyl(D{aHE%w~B&skq&Sd_ODy_6OY%gAks{hfnN@dg7zt7F~RlhQcm~o=< z<=3Abp)i$B>DFG=AGy<4z`?_;tKN4H($|?87X7Y`=BYTsi z!voscrmr=~NA94KM_nqkj+Jk};&Xw>5Bjf?g_AyS@X4#8gDWO2CG8!oP;2EO1R^6X zjl=MGEu6NgfQM+EVxpRI&G2PEta>Z-?c1?pXFptPOj)qptN-2)fgx)?cF`1%-ICdD z|M0hynP7|`DHDh@0h8;{!Ide_n81U%DG55emHxeq0w1A+dlVvvsP86>N{RcM@9*{i z-ad=*idf)DTy%c@S-RMH7ftb6Mf|w|}mysu~eq#K&Q06P8rDva^vW6kHZ; z2w1rW%FKXJbs!NrgVtELENk30vMJ@-3!?`M85wOW7X>t?vg7JTOI%|os24~z;9=%H zy5X_Lw8Um_a^T!0kxv5OJRaI;rQ4|WbAl-qbI^_JRkM6oz0cfIS$8(e!-`hf1Se=?a8gtc( zndx($7OR{nnGo#NiFb@*hd{=7bRdT{$+px%P1)M6dg+2^f|HttS9yl7DKq;=swXYk z1wxuyTkpGRUVpj=C-E2b<$cutesNa5L)p60|3tl?^6V}!{MJ1UJoyfZ-)ot5H8foM zf5n!4`_D zHcD|6(bHR05EVQzGp24)zPa$@1_43DM)8jsGImqR!Q2dp-qU!aQazTIz15M?lJ~K* z=oUoH$!Hsw<=ekUY6MKl8k_n-b@^2-fd8AIpmvgSZs}}d>56&PBRw&`jXXty-rw{K zPle*W>N>r7+)&&tI~|4Ix!#Sp7DgncTUxDBdF{0el^62<^xJ6u@wH~v?KgK1RMV31 zbLjCS;;uqKh#1umA7~SuKRuc>Le#-%7|!;exK;5Zf_Q7g8j^B33y_Eypx1RskG3PY zPJ~7$Vyl<$m!)KxfB#`7%3rg6#NKkcYL>hSS z+|+((1@qzs(H^__xFjU!OXj;`xppPWuE$g|5IF2UQ)9~ZvnOUhKFE^au581PPMnA{ zwcUfeYHw5(V8el|3_q5Q(JSVn72!6v|FZtPmB=5kxJ%fjyAXj1&_>y*FH$>ctb0#o zhL}su7Vju~PCu#ci!_$+FpfEz583qaVlZm>uNCHbA51ps{btIWFz8kY;dFiNNhb410Vn4!ombkug3;K+pb)Nj0(%DQp`9)z zB{R8S#l&2t-YnKbQMv@dd2;XB)p?pp9UW)axD7HWWV(94wtMO3Yn6U5}2hXEoSj= zw1?GNc%Q|JSASx1oP~KbZpN9N6MWTp&E`H|)iGLYd$2`(cc17}Aw6?b`yw&V(YD80 znWxzlFOHArKIR6*rK3V*dp*i}tTYRmEX@iQeH z$|2>0rv-LLnkxg%4vPAvjcIBH^w}iYxIzoo>ky6e(VM2;_aB+B9UiOC=XvLj#HLZ& zu1XCz+ZSDEe>0FfVqyXCg8cKg{<~e--aG8H#?`J<$vrL9qLH(Y67F1vIS%<;z0ZmL zyAzJw^~NG*W^NO^09Y^f)2H|C?JV5Ib#-(C0_Z_)U<3fc4g5m#i+a@20j%%TxuyH; z__Q`rX^c6n5u#C7=G+)ZXWe^3!Tm9k(b_3j*#7)B_jp3}hl$_ar`P07zf#tXVPxf1 ze_a_YqZfd^jMnmN-r@d>Kjlruvq@poyNqA#|nP-Szm-e?TpZJt_yJ+l3oT-29( z08x}VOV=xLf8m%vajuxe)ujMLTmI~g`ItbV!lSb?C2+PzvkdvNgMrxzz24uKFkk_J zw!8(4j;N2(6!@wyw8|5aB@JP5I|oF1MWhjff-_?A-P3P>P?rB5Ar1KkGY}!@|^^WuDpbebfl ziZtpE;(_wAHJA15QuCCZGiGVlTw`)UmpL(bs%WyxRE%wEV@N}l-GI-5qEp&K#trUu zR$fhwdQT+Oe)v`}`!zlfX$Obaqbn8hDK&jmU+l?ZX+4`0x!r=(ly6i4!-HdH6>ZwR@I(9sZ6qc4 z+XMj^%pv=yj1YX4(!afOA|kcg=XiG~&ean;B{YjelvXvv#>=X(v1?iEK`1Y$_kwP1 zI1n{ywd`nzks2F)A;_S8W2Ob?ZW22W4;xdVMrajM-pa*ALCNl&joH|4%UVeLBfY3_ z%kFQ*CQPlb#w#|8FFMkEA7pCBs~;`s|7ZXxlz^qN?xhd)jh9e7dg6L8z*3w~4{vbh zy_+hvum=NX9UWysD4?jA-zLHe>Q#4?DF7A&N->nXJZtrVplb-~?Ar?7L)@*q4Cj&i1$Pl-;M&qu2nUjHmV zuXvecVQ&LrY3WXqb{1sM4~>|&Bh3>+on7}1Br5fK9V%C3-K6wtZ5c!c;}(U9u5h1X zHx*?KX*UdW2AE8ZXO|$ibK@csMCNg}!}8ro%~r zdsr2S`86!uNm_lkW``Fqemi}oB6z+kO3WI<=d_*hs8UM4BT3&Zl7{(BYIfqMmeBAz ztllOo0Tl1yY{@sa{BT2wJFFY5^qQlBQgOqNj57jUXYxL!51%Y`@$UAW!Ltn3_;dt98yd?kby$R=ms&h?_6=F1!xAaKd|0-h3kWp5<1Yo_@dn6!`rv*?acidy~}Y&Ui%pgw%%=&{(>tl zj?XZwL*LxGxA6GbZBjsZ6M`U09eEV|%VCT#Bd`%gFY)y00rle?i8IsrPrxy9_tktQ z1aWPdM?nyj+}Ei5k2||3zVx&WSnPzx%G1sgNAi3j5QYqP9VvLMkwoBYIhkOogh@5v zYx&Y(SOyZlv_41~K32%@+#gbbT`^K<{~L{XR(@eqX!d1rb@ z5`W_DvVHo^8lljkmVm-8pK1Z~fqQZt$|tA%O9izkE2sGrVe0GRPapvN@13L$E~M^m z)h{|Lbv}738dxAYmSC)6#V zfl0c%2FTemtz`eu&Q@bc4nB*k{&^>*H5!t0zv%?@&<@Tfpw&;PP-qY3WicdV|qC zZLGXq+T&ah+oEkOJn_ciSA(>S8SxaD)wgS1SAR1F*BYo%knDjXz(JLZO zJcYij%4IN!=dj^H74`iCJJ02YiM4Kui4(fa_iiS?Gc-lfFb)8_3L0T4+An*LalW_` zSuiDgWchlUVIS?Q`zktk!>V;u{PQ_8`Z{$W|##0a?pkfXbWEwB8^{z6x&JB{S;~zm)S^e3RE^6c)+Qy#gzZzV7ib{g&VmjwWrb7!S@G-);}B9A(gVte-X_zQ;3sDpe>e@TrJYp z!MVfF7G|DG74cP+v60p>KJIJNtB#wBZn;ZqC$|659Etf6m>wX-jP?1 zE9#oPc~Q`fSc|MuAI4Fa!GDEJ{nqh}Su+*0ms04Uwl;H@K%Dmvmu8O+?YzEUMev!? z>a?MJ!#@*S9uX*mGbW-*u}8D9C!o6lK~TlXv9<$sYbwx~(r-7gqB8+*YCgSJK`7p3 zMZ@%FVGShj_MVo?&loAMUP}=aE~6I*VfWTj?)OK&N-{D_UyiT;BJyts`A1lWqF<=F-YJAm4!?bYijRmLmxaYJ~` z_67c^7EPGUL1*G<8+RL1^*ABXWl(2 zkc-_*HW$!b%e9$ntu@vuZ4ii7hTOcwh07@M<4<3+9iNu;1UoCt5~{$wqYu`{v)5qb&Y-LYk-%_>wa#$@F_=Y^M#|BA`B zny)SlgeijcH!!k(B|b$x@2cQQ-Xrz@^@|{Upoxu6TGyAItzggYeJ-wEdmgUdiWY3t zFhGs`DM9fpVE%?^=nuDJMAqEBCdmtT<6(jDI%ZP6jN@QMytf7ELs7W525x^Jp2unh zGJQU?K8o$AY+;TZn9dd^n@$m<46pU;;)K*~5gxlQCrUXL`Ccq?!dvf<47YyiY-4|? zEECD9QNfC5H}+a!D36()Y=0oy(8~e-eJ+& z=TG@8Hey8?IS0&EnQ^(jGu%OdfDVN*+T$2kW1l8H$a5ks0go$c#WAjD?Dm4H_b2%+ zaq>Jc@+z#Yqr1Re)CeZlx>LLayuLZ>FQ})W;O_9<&HNx@?HxB=2|1`#SKF|DHlfPE z?V&Z*7pnP2`CUM1J4-;TP!z4gUlNJpX$o&x6I?>(%!`9RERyz=Si1b!c^+Sn3=Krg zLCR3KllHTc(lrMQ+g!CPy8}VLoTm5FuRd|f!afzKBBT0F%HIt=A#gYwtDkOYM7Hd~ z7aNUvV*g7V2VyHte&6%s^VG_rjDUC{NVI-7I;t=XnOta#&ouAaBS`ufoqL-HFSqfA zAMYcp+Em&cddS_&pl-DOpeQwQ+UG!ds3MLmy4`DFPF;(GKkm3MG?6&~H|6EXrfP7% zQ|E*J61`ECK-sv)TN?X_kAp^9TkSjA<0Hr97t;Hxa&{FQ(QJFqnbMZ;F}XC((F;(7 zPOG&(>Fd?f`ie{gzQf>(E5#}f?h~%e;7=;;%<1@P+*+egN@|Ay%(+?}m5As1Xl#a~+F6{j z=<4zjzPTnoPKsU#*;CEIx{O(W{y+WsbdJcxY>^fEVGDh`vsBkU128$Cj=kwildd3A z^g&6Z)3hFt4(B^%p6en|a|pCM1b~gm@9%T8hneh3;~!N(A<%xP8)SvbzSqzmXiCW| zbhER2MRRRQ{u#$klXRz;sRc5&x-kT*2)9Q9Sdx-=G^ib_hwJYBkeV-XZ9 z)gl80+CBugUsJP%Wpz;cs~KM9mLR9%SfCOX1C_+uH%Wm;?0Rx&APgY+eF=&CLw3D{ z-(*S)6?^}L57}M2h1O)3#=7?lX73y_8z6e?lU`K?xm^>tS*p(-hr=Th)$_23+a9&& zQ%|Ml%|rv}T15cuxBhiO9vUH7#?qlAt{OLm3El58J&$m-- zETMfx+g0i3JV1&smnSHyco6B9{y3v2u2x2Z4qwm~guf@Zr2IZ(ShkQnhp=en8?D+? z9mysZX|c8l3-KFg5!j zgwg@5{MA=z%kG>ZvnH>_#FxP|T&hp+K<*BmIO__C+F{~s?3@zbR<%0nU?=wn*$1e@ zhUG@Jljf_0p1YcbfNG(+Oe~sPSI#m6?Ca%QJS{S%5OM@*xhCn46-*>|G%XfmGzJqQ zlJ|E9t%uq=x1%7RAP9;oEav5HXOQ=(wFrN=4V1@;{zHf%z*2k6JD^AJdAFAv&ZO5` z8-6A?fStd5y;XLW38ofsaNVKK2eTvZqB46%L)LhRxUI6!p|9klVi_21hjG%j2NFf_ z$wgT}gbhRL=)pX})kLv+!ARe^d2JaC7ZD&`3iP5rPp66()+TO)A?8}zx#`hnX83w6 zqb>j>`GB2rO>z+S>`xi|Lz}18jB-b;IY!axYrc}mme%j8+M(=nw6F6#&}i;DNYcoa z3u!q`okexYDc#W!<+Zl+$5=AqwrEq6<_<+aoLW-0y2ayA?E{oZ`oj!$rO|@fYFGBK zX&9Bwm z-P8>Zh!E`UlfWTrEdZ)YLWeWXvu>Qc>tslz@!GUqs&5|J~5ZD2;Cmk3N{xR z`!*198_<$IV}zT(+5Tmhhz5k1OV{2qCwZI7r92O76uvGDB#4h=i zQD1_$JsH6+h^Zok98euz$I5wKHheMCsS7iMma5mTDwNIw0AWGZ?L_@ZQyxVi&Tltq zMU5#U&d4}4GdgI=W>ix5UFlDXV4Jm(8)OoscLqD-8-rFU|2_xPYvX>+-PF0z?$1Se zWv6BXa|1{kgau^f&&Nh5e-7U7uuxzuJ4?|GdlL`y66ZEFA6O=fi~G@<5zU;RktG<| zJyFKzuXtTt1WNM_!oy*gfbgdv%_jCR;a|KJG~4IOo|Y;)-%3IVEwbZRz6} zF6-WG*<`*1#1GK>k@j^((+72qs%-(`+=?m|*tw@LMIqc?lu$h$D8uYwkk?L2GY2Q| zb0}{Yi5WiQ>aMQS$pbI!>`9EJSFh#Q@1Pxxd-vKbAc7w4JaLh*`IwUl0iw9Du#cdvVwP97y=Uxh{6{UT;pTNFTva`BFK%Py|kxI>K&K?u5xk_oD zi4C%TQd|K@zT4y49b)$LSn(d0=(i1x>7=Vf_eL_(Osu3PqCh?FwijHmyh?V1b=gV{ z!UT#}v3PB#V8K@7%R`u|qasz)blo#d7dOY^qe`}EtFN9VLf$lf^us&A$Pula?D`;& zUz;(zv3u(u&-;r#pP#}&%W56c6<=bUB^aX^j-}K>IJZGAFEdw+oyGltD}a7erf))Z zD(3h`fMt4#wiT4W!QhvqIhn|&9@n@SB!^!|c|WIROEP0W_iidW?Jv6zz<~{i6aW@Q zxqxd38cqp=yo!81jJWUDF@5bd+?V^=^_ofSoN;tLRTwRJ^`{A|&&+Y(-9ta* z;HjkO{;zwHQT6M^+a@4mqiCQ5lfqy0VkVmLGQH<)3OE`K*G4(ZI@d)@3gaKIUe?9yQqpPJAsX8 zs!z{*JNc>+N`j1Mt&dSi@;y}GG|w)+#~9h#!?sx6Gn{9A&ucYC>HrIFE@@AG3f$bI z>WphC8Sk9~D+v;UxaJFmK)eo`$SNguM-Wq45YFY**3F=paZu0Do@tlZ|INXb;?3Sx zC=~A!cWnGAh-8kC+oC1gq1LW|+}X_t#DBANM-l$G#cfeHZHbR5c?aDsd{LqN{UJYT0pteNw?>e-;{RR&F@? z!%0)Ui)8X!O<|Vn(8ura%(QCd9O{~mc18v1uJ7i%{d8AS;5RiaL}bFY-l&Kw2X?=n z6SfYt)b>D^Lp|mB!w`iZH3xo?k5yx3ll(A|41iz7QX({tQm^@z-rmI=$<%LDri_tg zk{xsq4=lq{q>L6vQwq;4T%8}2o8Id&?I~@`6F~&kc~5&$czOx3GGiL$ZR3U1TQZhu- zy`##m0atx)225QMDBGd*HwSdOPLvg})&n`uYDB zwEkaT!eA)<`xE~k-<-i=diIP)KtO<xGJ!{Q8O#k@mi1|2={f0*yeewXN=1k4thp;?F#a4kkdTDLX+MaQj)_Uz z)81j~M&IYYDVU!E)DK0_q zjFj^1;8pdO(y@>K9($ufu978MM`@#TeBC&QkCQWkTKtnLnHq&UJnP>NDZG1EAr#q` z|89KhU__9B?Dp-3&~J^|csW5#)@qTMmt`^tsia#5$7IpAMX{;yLZ+IKr2q9y?kv8X z5@q%4f9B4N+&cQjS{k=!ti{rwQ<041&iVHWe<2S`J?#FD&(Oa|zvXo&b?eX3Ab0-+ z^FOdQ)aL9Mc=+|&Xve9kDn7yzXl-h;GP_?nv1-QxT zc+}z2k4hkH1wFc-e%w-kB#=KX+!}u7BDI}WWw{f^aSYVQF29Ze5M~1`r7k-Spl6Aa zqKhL#SWZGp-Emk8_tCTZ({BSzJMY}5^sV{p ziYOu%lipB8(~Ug6Aji5KLJ|J!A|7QKj`JEDx4I^DJ3fHmh}|2(=6rg!4!C4PotiMGupg8&eRt4rH~!K=4+Odly^$>1f+shocFtcs-r~M)a(4>2Zt) zH&H9#6nP;i%1(1?OijfqAe_8pO5Sh*?{L0_ia)qq!Zp%TF}Msdv*Kg^l@UUW>*Snj+;gy&ga zaoD(2YCcky$XMOO7JM;npD;RQP+QLh8sRSo^QRMN_Ii#3y=t&TilSVyvVyFB{z=Mp z-QD|ID1uij*|Ll}=Bi<|^JsXAuBRK7V54QSUy`8~RK>8cVdQ;m; z<dAYXf_D9{6#$KK!d^ugaR8mv`MHs_~uiHlOq+$JIE^N9JrnGtO~=a z#C&I2wNR%6FMbLx*^d9!y)1M0_*PXlfl@Ngh<<FoQi~VRRon@Cy*gGA>4zG{j@7;MDS-5l^$#Q^-)fd&_R0{0$L`(Dy5F_7DR> zcOj;YN&EcsD=8WMH{1u? ztM{&n$jgdtvdtkWwn^|fE0e3a@kP42`L0`GazP2g0EmcM&2KQBr})(OS;jZGJae?C z(TzMhh|~){w6S^n$Rx=Z$pqOqliD~}bDB9f;e7WBI4-Wyp8`K6XFyShLiFt})q8++ zU3yusAVRM=9sOjUpOnz1MTPOimC?i54L7Hj7^Xlx5u{v0k!~_UYjr9E)UwoB2sf-2 zv9a3EIF%0tA>!n5w&4T~%=^LECpLKx%;%RhHT_(wVmhK_VJd^tQejS=FoLzCF~_ zU;>@e)J}4%ab8wWo#ByhX2~7ig|(z3uu}kU%+8-rVe@J-MtzXB7oQ6EVYV@qV=_tA z>8wp~A@DWvDM(DE z||TdN=8(%-sK;uHJHP)*ZT|g+-UQ z_skhUo*SgQE@tbg>xI6eP|dUr(*qC6=mW5L^|S|@LCsfn5dUk5$-4JklD#1Kuq{@y zuKK$KtoL7jA!0HG%O{;-E__d@TEu5Jnnw8{`&rDJw%o~G&4P7SU{|=z{$}{_MO<`= zJ-l`<_u2w#b;dvE?FEUr|B0AL;lK7;FIP4;Hv6S)VVBae4mJM&VW&@MZDpuD{t^_l zC{)9uuRW`B{5M9)>X-QEhg0kte^FQP+Ma5vsp)=_eDUIMY?LZPrv6VD(+r5eNO&pp z;ga=n|2>19>v(vG|1)%ux4ObqzC4j!-oTuJQim;p3dWy+!Ls<;zrjbz@-j1)M_ApkKQ5B3d^w#CsTt0wPy#%x`AO6C?M5pc9FJQ3T^!urPt z>EcbBv5e+R!ngnZvcV~9`~UQ1MZwc+7z~#*90#mkk3yK$#aBSmg>2yppwCRC<(dd! zP`^4pphcwt-XXZYKQDu7wZP{q;DuX%$~2ByAbNyA%zXR1VQ+%J{{9~>`{yB6FSv%7 z1|AIXNy_&)=%X$xVK8_<055=nMqh;2J@9}&%;gw?on&5;1OLouu!anf#mHSOmr|bM z#4=E|-DD?&ErZ1S>@^FMr|t9_6`|K9+o|LbvX>l{bX*@*j|w*~y8=SpX!zF&{; zwz|0N8N|uKS2YewFTBnZ9|5PubIwl-pWSYv!p-<ZP^8s|b2ixC%c`?e4M6PV(bG z`&!wVs>UN22f+Qn!eV39_4LrA6&hRuSV^S8U)#P@U}Q@q34D#M7ft4_nWpCZ6eY-S%mj z_#3jWySs(;r(3MkZ^M9bVq6xm(G?%4&^Z(GjK1q^cds6tcB(JI)E(#a;_mO?Ta{Bc z6r`p1$D#(#;sBowG~WV0st(F4EIMVeipJe%XV0Nbt}`O5fUIFeSj95741=AG!Yuoo zQ=~J6YTS=^(pl^Gd45HFfj;p(TbQmp-uSW4p1k3Tq;@-j!s^dv_3Ql#PrO_1Idz|1 zoQ2mb3Lnpr!Pa;R&0D619D5K8wFqH77w4s1Drxij(C7LdZ8i!5C(b%k$eU9R%4Mgg zvihf%*X9Zsbmu2~>MXn=Y8ETGwri`VdJUWC`As3XWSM$Vy?~s+ghM@5b&M>re@!Jhfhc z8AFz~wHp)u_?n9pIhDoG-s)K^7e3$lRqu{qorUkiC8y8NcfgRJgR^m6`&EC( z<*u6ToMkY-tSwQPCy~`(Jee$ z_Cp=BHmB4;SNf0F__=?G>)souS#^`#u)l|dgR-l=y=b?+v2l)A|CO-knFkx&q-MT$ zKB0rdE}deMMZY4~>z_XXb2#o^3J?@9x~;X!lG}0k(DFcPIr8rQIri@t%*@R~;(j2QC(?DDd7oko*x3zgmWe*$akO z1?WshguSZAFq`4J3i(-TFLrhuKcf4mq={yJFDq)CJ#y@POtH`K__2L|T3gT_2Q^~! z3rX<73LzOKB^t+0NDxRw0rDo$UtYr%p{7oyar}GWG?-Ij~%y5u zL-Yc_`QgQ-vo*l#1+H?@G<;<0&XlgCASv&vO-uMDplARo2!H?89Nxv>egwd?b?gCt zYEwY8#ETcam`Z*17uJBwUq@DJWaY;lt;oDyy^Fro6+p(U?k6#O2W9LO=BeiB zB|z^8MN61D^=m{9PW8`?U=gO{z zeAylSeH^5U$YONkXzAV8B;*)bJ*_Iv$YRzyuG-R!g!55O^{8*2sQpMA3*!Y9ThvJi zmuWOYZXoD3@Ga?-T*xlx1HTJ#1C^= zq)%QB%BAOPqIWf5e3I=7(k`SVD%ikF()H_6&h0?V=PJb@12Z%9_h;peJ=NB;j_ATH zptI2<-LY8@3p)?ZQ_`@s1u_xp+`7^4uR=o`r9$I&p=CZvbUJ&nZ_OV^?hl)S6934s zd++NTN-hpFfx(knM(FOZN(dPirO<_+bcIT{=h>pKlV4iuN|wzYa2ow@<%_>l6$+g8 zEjbx7*KVVhOhjYnKD*Y&GoTi7H%kr`8NCEwsGwk|wt`!XU-DiB>CQF@cNm%}>8G)1NXHC?m(0-l zMvqhE+4jkm-@7Zs(>BkJML`v}Pzcpu z%LF`;gl~{kkvdlIwEhWS$j0OJt&Kqy3$XzSNps_}P#jNVo~a1=n-k}<9O9{Z!7-g| z1))AZC%Ha0bS{HcL;C4f`tG}laz!_?Im~eKswiE?x}L*GVS4=LP6XBSp}}i~;+h;SsGc-CU7%09Kdtn$;;P32T>AnvX+v^;}HM^#EU*h8aL zAV?Jx-K&8H*t{%Byryb48u5}8AD!+g%A!N6O5UpE<{;>#Q*fdbkQNFg=WW0JYRaJ} z2Jj@E&JKriM~-BL#Q}pkB0^19-D34CP^sXL`y6zit-X(G8Bl*qX;f$!M}@goMBh=& zEMJ_?+-ON{5Bey(G?=AksKjq>j}vhoexb^L7?J#*CNhr0bEir84s9|<7Gi;88K5AM zk^GeI2lr#lz&`4(ps%u%G?qoZI%JnVp`3`%vuW$#efX-Rqp(YW>-&J!;NbVk2WsP4 zeD;FYp1A}uYi#E;too;&I<-_EqaA+rvE&WL8>$1qtB0hk)M*S@9%uk`O_Q0l#1+7^ z1*k@xqa%hvMtoUk6{W-8B>#VQFQ+k_<%^f76GaJO2jls}Wt+CPYUDF}KnwrV2ye-= zo4{l1DJ>oA4)i0qOgf(hL(~KgC;W4ANMm{V`JsSC5d@sT#W;XgjcwU@U83)bbx>oU zQuWkMeN2?$+yCnJGG4Lns99f!8#$-~hUVEWiBjG1EHR}^2z3I}=|1hLxmhyC@+k~; zl2349GJl>d%ta45Uk~sZUpuyBs5*}nhRbtJo=aJvmUkBbk4MM-u((hz8Z@t3xJg)# zoAs;5F5Bwx1^WbV;46}mleZ-X$5#yCe{%AtzEyI16|d$dx~H`CkmHn^;4EirE_q=h z#C1S&1PQl656z%SahadwbQxLrsw?>tH}zu-i1rKkvEtP69`ip2MCgSw(n88lUbUEc zX53yfH>biMl$QnOgXa7b@fraAocztP;%}xsI<;86eW?f| zTE5+H;sJm>3OKC1@3wk@U_jmL1`Z%~#FN^V3;5?i!^+Yn?X^k`-TENfU$gQ%ENLBZ z%sAr&Y@YOQ8HOKZ*M>#FAQ;x(;sDF_ z9xV}tIb zGPGDuw~NN;L2`PTD7X=b#B<~Jg9L9diw*E+Oiao$Lb$l-0|I3I{bkNReKje|%S-6& z%%hg<2a;Fo17F3=+2doUO@C?wH4P070~3B%PLJi@P;DkgJ;TeuXR@b0p1hrsB)dT_ z9}v01w<+Es43T$A_Az_W;or%@X3(t785h&u2u@b)##EMs3F#tt)WK$UeA#%Gg+>h6 z|5SJn7D;b9?7yzOfmm)E6of?7lfNQVba=L>3B`Egah&h+QTQi20JF5yP1I7F0xUID85 z*C}?gxQvV!TAgtSD4F6pte?xuv?sY*1VzdCkBkbQ0I$T~TyAHS8h2y`TL}I{e6b!Q z@4!r$1Q?f0I+c41<-p-jn(Dic=U`-MEiLK8mhSgT`?~$0nmFLSUPI#DIt^r*ps`re zQ(X@b2XvhbBBZzB=BfA(7jPZG&QN!>n)Slu%E9k&s!^mh1*5~vafL}LUBKX$GJb+C zB+=}E2V870W}zVW5qYUJk7=|aiNMEWpYtP5GE^O7cUx=`5W3UdwF=F%uYPJ zNK#X)fyl?yd>9A_+1Lch5tTr6#tLW)F*0VWs}E%?0F^8!b#-|sr~ICbMELvwC-N>k zOjNWF=;>rC!YUM#Ulx0gC0Gqox-;@+R7W8Jl5nL?a`(FDQYeu{V>)u5lYvv0*Zk98U(O>xPKhpUCnWe{;dt zmNY$C9k17{^I%+9Z?W}!Ir3~cH1v348Btk3WcSV}@ka{iB)<2WeXTh02R_$^r<~3W z#(1~mdX&X=bAKak{q`3C*LjCH?{VTu4?+1qOy4)dK5Njgf!c>^%WjVN z);qt=Gd==&k!y4VXj0;fmLE*K7G2lvy2hd9m#5^Q7b~ej%N&8(DhaFDE4|u#pp^z1 zdy9tiPswa#N2obktyGfjmnlBcfQ3_%1dt&lfR_I8qPKt-ofp6(*{m>ZovJ;RL&b!A zAD&JDH%AdrQBuk)?n)AbwnyMZKh`QUk^eASM6H$VqUm<9u2b*nEjL|a9?-3?rUpE1 z_<`3B_gEI=PoRK@gIBe?`f_U*Yns}+apks_g{PzDY9Xv<$7)z7+2d%$ma{vYY6mq_ zsW=g<3;Nd-zZc3t=|*meX?TB<^z;ZSXg*4%z)hBc~ivh z66;eWr`z5#1t^!MO0pKWo*myf@1i5i&&lZ<^AC`va)0X+g8h>>6m!d?ABw4k-4F0Sc?Jaj7&YUIVb~A4b)L38DO%@vy*x=qQWCBJnrOb{F z4SS!$6o0d7m%QNU02x5D0AhsF{T0G$7|j2Pj+$CnLXG9xFcLUqY;5tM z-T^=q=Ww35qKgbHLR6q3#|qECpx#fe8zL}v`y`S<21awlVD`Xsu{F4-GZJptt^CyTY0ZqBLp69`~c!SmqD4vE{A=oBoY9%LX0`<=jI5#eW1>5ngKM0ZF^Jr zof3sf1e3=BEbX;60!;Uy7RB~2maTMLtb(er8l*}Uj;p({aO<%F=f2iY%g#_y@Nmfo zPkN)J-=n>UHAd+CHlbJh93i~|zLBWY`pbif%3U1%npDlgy4YAPlM^5Y24u$8_+Xp} zNICk(YX7xn{y^jD%_s~wBWFKbmU6OC5mF)(OwH-zN#4#&|w&39c6w zt`}K~Kz7F;ekqXmZ;=NX6j-;HC@#iwEC7Tm9-`b0FCgbDKc$6QoP+&04wh4csRZNf z)?ap4IgtVD5&+W&FiqE;wlRL_#t%1aB7Wy}(zoLjRj+|*0lwuSQg#eTzdUaY`1FaE zPZ2nx>W!*Q$zZ+PxBG&W!vHi`WFQtMEz7}CJU7?80=K!p_kagoBe;@siBw-nkvGEZ zO>Wt%wrl-OCaFMpF^q7Iy+cZRo0!LDZ`o}=Ffs68-DU0UI6y|GT@I~!x8F(~9AAV0 zRVVWq@;ZPQ>ZlH2eCo?Xj+B<{CfDq) zX#U5X&&y4jZLj49klNOGtjo*dUqxQ@vtulN3XY%9R zg(R?!|0z*G_BsbUp}>)iW(iANjQng%^ln7ukA%cWXA(TFbaX>5Fz3{5B)D&6dQ)w+ ziU6!CG&Iy4vv+-c;yo5lyrS6iM&P1L%?C`7PfN10DuANi#vUjVtO4*2=*GqG)6j4F z`)@ddtk)FP;!x<&0|xsi_0~V5O>$)=Dx}JH*p_^E-nz2>Lh?k*_H|o&a?j+-Z7+Wy zeK%%Ejz_`QPl_+}W};$yWrgHqC5lA{q&nm)nQ|m-Z`353*{W$*bfHZvq&7ht#AQ{B z$x-&<;3&Y0qw{kh2$gm(C6Ui}5IZIO9)G{0)9!91=zSfvBV1p%2MwbQ4>glR2?Ae! ze{GJA08FNu{Ty`F!*lVWFH@SQ7LF z_?3+>tngy}(}=7ED|zm-3#@wEwp>0K=;24^s~sYFb(B;!zvH`mX;AV*cNT60XCy5w zl62L4#NO{Mu*k+Dj}Ri8Zq3O%y;HzD8H9R2s`XZ{ox^O6tm{<|Ax=+wL7U=}zzi+5 zv#GifVY)v%QpHt_<$7NUDE{@+l}Qd9qx0coT=zax;pEaueu!?F)h9pJ+#HLI8i$Vx zn|H}QFMcxu`PP#@Fq`ldQy@hL&>yNtg}n(-N&bc-G1b2JXftf#E#Bdb)}L~OYI}XnaLf6LafGR^@^Vl za7D(K7M<@7dT`jb3NCHeTDM|X(_SPb%m)QnDk>9p^zzQ`x2qDjE9kupb+IuOl^u?E zCptQP-ka$E>Y}Pg{2n7=v=>?zrbp@z@9}Yo;Yh+d9U$H6_<>oiz0Cvcyw! z2ELNFKTdEz{&2U=l;Hu@P(s~<^dV-2snN{bjH{9z7u(s3e!0cnE;uRdI!hl%0G8i% z64<(5c*D&f5ij~~eSew4HX^Ymj4<|ipkuA>&+yJJ&hJFXN<2~LZ9C7`@78l*Cmwor zZ4a57#|t`Ig9h+R&JJr(ip^hDOdIAgM>ekmt_*u|&+7=t9%)#;@&YU9X1j#Q7O$qr z-@mfbyg+Yzt&q(Aycq*}vB}H-!8s96XiL^^*Fn;g&nidq1gO4N0zowA&y}7YZ+d`Q zSLS5(p>{EyXl73=2P;#K<-2!ABL#vRwLs0&a%9}F&hmuU<0O?m_{q5OObn<4a_$CO z9kNWw?jzqsrIlCvyjSVINUr4xE~t{(t(~qb-(1yMt1X{iLpq%{xz*-o+b|nJ8XtS# z^nZXm_xKs&vo=%8w~xwq#l`PpM~dPaV&dY)VBYx|;$`M1-7RhIq@Np6c0*G$63g~D z8MZA%uQyS}TpWyNKG8XVgL}3HQ|3E4*MZnHQR4i} zSLoNpI4jf$l?|`{SiOAAr+;z#iW2zKn-*`OE;*`3ba)lk`&{NUBZoB0es+KShwm1g zE?Iul^J4g(2&`;o;8zRbs_EyPfD&IwoMmwMZ1&`-h&6&qxW{h#RFl#&ujCuwd>*9g z>^w$uH1eAUY;<|QLxbqqT9MK%aN&P0ozLQ?(ro<`f#d1I#9Y!WdAnp(un?aE2#kq{ zPBjbM*MNoq1^+>gWkDs%k3I?9BXt*tioDdRlV|#s)5?~zt3mMDH_#q>dtE25j_` zNAvP^9F65mUF+B2i=SDa_w`rp;}AY<-n&y-iAaBR@dQqk%jYcQGsBg;R{Q>jM|7RG z8d7SbPftkr5trtXB#`bS{*zFkl|t#pJCJxW|HDTDBtO2#}} zyJg(mTNS~DY~v!kV121p{%y`Zwe^z%rv(3pk0ToW;O-^XB*>f1+1&1LSKQ5@H;-8s zq)F*%%+kgqBmK<=#RVlZDK?=*_RN7~%%%mx%Wx!0eu;|4aJQkiqFh*N@3q<~#Q93pk z;(EpQaG+`pY9)M2?-&_lN2u#tU+oikNSt+v@fYtu9M@b7A^Nlp8QS+bNf`@Ec-%Q} zt94tjn1eet&pO&?(u+{Qb=&2#fzsUB+bSadGk z6iQoA+r#PzA1%L=sm{%EV}W3H5lXu5gqTY8D-l+iIgHncF|jr|!zs10|4_gp>-_sb zt;M*3t~@NgRHOHC^Oq!AoYJ56`FduOR*qMcSo{XXWgeM%4B08(o3#(ei}a%|tfv}a zdcl_XilHz^o4&9;u6H=QmQF=>^?c#;l!4;DO9vU@Sbi!kaeT~U9?=b1(y8tU4VlvP zoKFyos_@j}ag&J5FK)S08?yFFwiQKfFD!e+(<8dKtW;MYW=Ctt@X3Wha(JSr-?--^ zbn5-bA7#Kr$)psAsim=%hy;h|NDX@9^~L$cq~E$<(;pH^fB%+1>DbUUHh8rUj=4OX z!H}-3mid{(M?j7G4r#n)s?=c=n^{#k`L;*a#!@N8sQj|n_(KKPI5ydS7wOWcyx%@W z2Ysb(joS2%>xZVrx3|BJj(@h>ugyG>6GS|8v_2>OKG1}|IM5|ziYBd4f;Cb=YDust z^R@5IVfyyor^6vTAd8^!T2x4lDKO*9_sI`wAQOi~-nr`HC6WAbA1Sxw;=#|csT!X% zx9HJc5W2Do3~#f**=aX|_XRy6zlg6|J7r@XrrA*mV_>?i`x-&BQzJ3|a*4Sj*DQxf zP9jZJgY<_hxGBK!ydZIO7j_$MH*B?!fQNsg%Pxi{6m=9K>Lg9i9<7{6Mv?zm zX1Ao#eZfmSRr|G}4Tk*8TIE=zTdoHmXgqxJDfodC9g=11hhublA9EBbEm0pianM@2 z@`RCe2D6--U`8EBkQGyB$-N#G{=j;Z`D>X1z%WOwrg<to({Lyu@aemEqywFEnv#kjNz4L+4}7oSFLutvjyj*QW~24c@O8%@b2U+?lq`v3R)Lx*XEM9Gn>Kvp}oE zsKCb>dn?!3vaWA0@U!N#0HJ=TgSU&c)}jdhJVX3C44ln;U8D=I2)3aG;`qTQZ1Xwcg?N*ryD&L;k&{6!gDn1 zi4Ox2X{j7JW5{w|eGE=__+FhymZvq<7j~?)L1`7PXOt;kXq*nBs|FF=|E0LFy*Yq- zeWJg3aY9u9+ezMW(?1LN0Ca@`Il;Ck$z#f6&1ZEr4)i`vIE~aEG#}>{#FfBc>4)>w zk~z@z(c{(J4%^!OpsA+wxSk&7vzBit!Gh%DU=mZo>!G|)UcKTeX5{*a)Jt2VqL+z# zqE<70b?AK)d3p5jRWk$w>+0M?W}Q@n{ObzyiDeLr)6-|U@{#`T1BEpIbKl!d9A8vmB8v+%a*9A~p9_BN-f9*~E>& zW*sqq+f&*gJ&N?teU`4{Eq0|hgrXw*ddh9Z03pL?iIV(ZM~;T5PUt<@e>F_?=icYf zx|d2%L-EQ4mtR-gkQOKMVY`$jt9hpH8jT@kKB8$nz^YFbOI5OR7u zkw4~&zNlhbqQq@OKDwdUhRR6ms2lf&> zhuijTvric`A6bfY!rdnl5zFXGDGwH}*1r3o{bq;?z4Xw`ZwU4kkgI}ZRX+TpXe)IC zkr|t~&NJ=4CJS&EX6C{?0i(3eR7uN&4G&mX9CWcWmd9d{sO*H-r1J<=7Gha;?T0od zH}iEgfsi+|qR{c+N57F)LFDem;ZJ7PD#Sv)+v14Ug&I;_3@nA)EBzx6*;l!Fv~nh-z0g4>z&F#c6H!mR!z0vRwI?4F|(j}R->vOQ;OXF_*wRHtxwdZB{(Iv z-gHO!ROFTz7>mnk4_sl|zse@X>)?zuI0%xrrF)wPXkGQZ6wrPX|pa<$!JXIWZ|pL z>V9N6j4L9I6OC^mN%$qkm)<=MXCbbb3QQ<7*_hbN)9;<*1lBg6A9>TUM3#$MTe=l5 zzbKN};B3!1FR(1be@p-R6VH$Da{LO9)v5)u6&iyeIR{0Dkz{+!xAqslJiErvGZ@=d zqn_>J)axSl;pBSC!vT}tao=5Cg$R-d=?Y;v4Isk23n(So^gsWzD@-R{I?~U6+NAzLY2FNe8`R!L8~%Q}1?{`wRmD zJC=B>hzU-q5L7GMuex9f<4nmp#^!b@Wy(&sw1y`36vQHoN=4^B7cXvKbr}pX#V5sJ zG1r&?v#87DmTdV!{DkS%l*b(Kkx&-WCtj;_s!`U}xrE%TW0V6a=?^i@R0dWy>RHsg zm=6-ENUhUB2$NWv%Xb|>r|pXH};oMi5>omA3t%2Vdg*|@GK25~wG_E7kJ z6%VdPMl<$qh}liD2BEQt8__QqR)DM}njVNSc`-CPJcUV>CMI4J4{d&{FhD3L^@?m- zllwc^#t3&E3SsTN)ctp=p|~=FBS7 zL(1FFuv)OpuaIby$EM+C zWPdPwt+sbn%#1Dc1@e z0l@@ANKoVt1}{3NmHlu0&J^V`U(dexc*1-c*R(4f(`nvb!85?q$eQ|;&*Ei~hRLt; zLZ-Hn-|!j1P`9}$QNV|jQr$iG#502=9c9Ak{v4i!v3@e+x7g+u{q)`^))Ao_mIje- zU&!o1(Bx;C;0?@vi!Q58CYv0CQ*fli+4gRDwv}NdzZz7t`s>v&4f<9M5Pq2Qk)k9# zlzy$;8rW1;iKF@g&Ai)x4U?LMK|aL<3hqPzS(WcwyvsFr^Hyzmn#J3&2N;;35f1Xe z%cOm}v+(rTq2sQ)n^44uH!rP@zC`Py_biY4myWo&aRkQPwG7o zE@Lf7L|Az=K#y|@bb=<#lfwrc z@#7xRz2LCV$%vCxx~b$KFbC()vi*q5N1FQJw`%{mY+?x+6O|Ez*DBK_nZ9Cqxi4-? z?!l?A;Qrzp1^D5QM_!~9qOKoQz4C6PXrodRG|fBjcZ-!eoY)X4#yLpmFgo#+MGC1Z z6KdXwnSZK$6}XbjtsGYz-TTIAZngM<&rQ`RDOkHF7OpHgRV74lFP|oTPQOkp;za4} zS}l`1t6Mus*5n>Jhs>R_RqDSdLaop^wIX%>-d(Igaz%5`r||;|-3qpS$Er|p=M!0V z$WY}7S&fdVI6tmAa3QYf{eU89EHYDetxgOg4oaO6NGphFf+Kfk*{hQ^E}S>EFP0XG zpO8Bvgmou=Eq=q$L>=ZPpNuoIUQB+ZM=gCPt2!i~Pk7KO>LRUhG*(LnKl(G^;_e(( z@C}-Su$RLLRpTQ;baXgKqJYJyT32-sDe172IG5DLmALjkGZ2b(O;L8df)H(#^}EO- z$=lkPz2HyYYcp>8IF9$wX0Ifym&ZxcGDw!$4()xmz4s0gPG*P9zaBL4l;%cFAz{cs zVj9^*^>&S6O1^APXkz0#;~$(?luY|Drw)T{c7?hwybhCHj%C6aUo~h zLi7G(9n35fi>NTo!QVRS5H9Y!H=dnueGqq|i!<6I`E{x^)RM?fkLS%0`0ZFdVGGk) zA@cKX82)VeVR?m2z1g)BA-Z;{5m>tHvqX6rn+#S8);Ac{5_x#OP&ApiIy^?Gtqj&LQbheu|ab(~q|ng&4aCPO!hge>3{E(QOii zsuGC=uBSn^;%A(QTHaqx_b)^qND^|PXTvV&quAcJP8vh;ku%Pz;XP}UF4Ol zJp4VKu_%w4-L-srRj736ln{d|8X3Ur=WRTs=Jv?$!-Tv7!x&|_aHoWn?z_!G`I?e% zkM1P}nT*f=Hka)=4!1DR4Wf;T&M29UAEUmWLdJwpG06{&km;~x#kR&!i;APO^}Z)Y z%XBJQB@>NM@hB$bo^Vv5Io8B)m)$9U#r*2*jjkhxn!<4BbN(Qj4OZ)_^6b$v`EP}_ z^3zI|vJGWwpR89Rg{WoCwB)E*CBvN509{F}$gsTN!I zTqEEjG={5H4sb@DMb%RP-^?Mhr*OySEibRsip1Y=Y*`!A>@YoWGU~UoFvo2Xu3eue zNuQ`&2!q7CWt!IrIqk*IH!?ma?1bg%4O2PRHqYzxX1V&BtiE+Oic1g4dG~od;K|SV z63xS=_5Qf^*&Sb9_)SAE1+9_q_1p#6QTu7({tefP=nE}sDnEAX5Jh9h^O&vd{aB2k z!^x)zeV9>gU@camo?2mGp|?ZbLKYb2bb8{Gc53Q<%Q9EK#P&WdA4A61l20%D1$0j$ zCmPIEtz9eg?@y31s^83oha@<6RB>V}g})RFWb6qm!wtp&Y`J6C+LZ#GuSSw`H!Y#I z)p29Mvgc-qL~7qzMu$Oi&K)|w?rJsdcU)aj%kI8kM=&IzT%G;laqtb+V4F>+gbp?3 zovWny$|VFdEQk~Qo*2x~*6@|^_45^j>t-FS$dFlAtuA+1_i-1!x1UZ7gwD0hFq`o3m>`;!MOXtG%iaVs0jS&1sGEz zQEYRg!1%kgIc}t=LX$|#XKxH&%lG$DTQeH(y(Lmjs#%z$7}rLD{<>rq>S?Kfz14f1 z%XnhB6O%zYL_2t4lYU1zFYB|pNTgQ`SzS!k?%jV!7aasZ z9G^>l_;{J1dO_gMkKsi8C}l)R7hd8I=lY5Mw{r-IV|lRwT1ZS`6{+l0fS)w0zSi^* z(-ZXq!M+MtSeQV_n*=AEHX=WqKZg^+Ar=91sOoa&CS>5tYJW>)JOHFyZF4o>=$_Et zH7cq?NSz(*qr^ST9DZ%ARwSg-m#^lO)>eI#A@U98L0O5;97wDu@ z>lcQ5#pm2>yOC1{Fl+aD{}X4IR6ll_+alxGi4#9)z4$cS$RFVlBmE7QB9_Z&raa84 z|6^E~W=nTPpybkzU)a7})6c<+v~x4GAJO_r=C=!mg}AYdScJHSEa1tM6F!C-6LZEr zZ~g;O2=epp(9e-or}dI(YD!GAXd;pH4z`2=FB+*oD+o8mn%;}ADopFWB5=ruX1jVb zEb7|<`gsn+%5?$E=Q=#M$2;EX#@Y(rt>9zQ{$HfMby!qw_XavBh=7PlNs9hl=Ru4e((Ezzw7*QuEWKpGtBJ0pIpyc_qx|w8nrjN zdZLvF7z3{yUDbW}YsNN>203m4-2}iYU$p>DC&R+*PubWF*z&WzEmS3o4X8nA8p5m3 z@a&3Mm)?Q;p&P}r#Xn0E4P_gAWBwL-q~JU1t{!z`bJZt>_$O0Wi@s;p96C(}`XNU8 z&Uo4aIA3kkXXTz$Sm;;)z8}i1z?@GPT|Q3wmNec(Jo_!g^K70wK|%3I4^Mdj?Pct|_cv`Uk6D1B_#}cOwtrxG2W`ca?v|{QD*nq@(3X?(XsmKBg_87UM z;-<1~8XxzjpsK(`DOpZjeX+&5|KVj)uY`7%2zi5F?ZZ!K9JvqU*P}c$!muTSY<54I zYA80umKR(tORXzBr>um=bo(woH8J;4tww~{v!W*GrIAmLm0O^_w~hwu8*qz?`p165 zRU8p5v3u*DcOmkjMl{^6{z|@rbp6uu{dP|X*%qTc9cRQ7wJJ#=Z5YLlTkTX+pP`Z5npLtc5) zEvEcZ#ZwJB>mU5YJ%G#`LPv6i?HGJF@m_#)eX^OLD-0C?vyL}O+X>=4t1ml+no%wgP3<8j1^YAY8i zhP#UPez*P&HpltgSjB>y$C4yrDHTd^^L z`%|`HqRZusb|B(HZTYt^{4Um!j?t>s>QQ)IPOIBzj*d)zXv&n{rx?O`9ibg0tmCz4 zrXI~&Zkg9|ECEj}vGO_n)9BNde@ntqOg^CIrRMcSSYDdxV@O3tneSUGOO07+4Q*n1 z5SG0|aUn}gEP+2yX|KMhwo(g)F+NZ=_Ik!g7I5bFnyMs$YZckmF;K~{_zVY3$Dd`Q z#AoNY#1_YkA?w*Z^CQlBFx@%Ml3J8;*`kq#1y==AYo#8rIgkL# zPO^pJi!%f2_%ZHWeSS5<@SD~uc>@A-F+=4XhDQw75|bM_X?es|DVSo}V9nMKa%Y0Z zhl|Z5HXjs~=L6R%Md`E%SnTtQmCVrM^xkEdHKITkB?e~DD_f9;J@pK5qGo!kLdV6r zLW^~`51Bp03+OTYqTHoOKHIy0vwM8bO}voE~{TI5{=LTzwK71@}7S$&*p zsU-|;NYm~peFM!fbs9WWpLIfMdP;qg&!%A~#-8@Zngp(oEB_4Bd`?>bM%vY@xM;l9 z5hbOfq~kGc&$Ff_9rxuRCM`lG>Z`c!Z-yHdCRcQOKg1c@2W{ErK0B%+*@j^$cKe+= z&&+1U&hoU3B{7>^PjP)&{&N&Dc~0qWBc3+Wdj%(GHx8%C4t*kUa;VSkK;&*8YbL0w34oV@1({>CE!B8PjH(NJKAn$%2j*_x1tHU zD|eLoZQ?R2YcueTx5}f}d(xSb-L8u?TPY$^vLF_7-J{1kaN~`>qjMtYF^vJa!0NF! zCm6KRCu>f^*yJm*HL%b8?i|HKN!9GK29s9aFtk_ZDBzU>#wAm!VAKqA<0TxkNs`^{ zgFKu|9(gLmIK@(10n0o!YwIUYO&-ejc8Orrj0IV@M)`|Xn;`VdV*_pyJ+u*q{nsH3 zK;eO`9LxcxhPBEG_GbLk<_CFFD2ug3F6JMg9yU2Tq*10qx)Uc-55-I0QoL?%QJG9i z7IhQ0KjN^fxN#fmd{l~2;!-u+g}>MCxiQ*8D)KIZ5g%P;$*`RfHpko$-!a4SOc>-K zl2C9yICybLb7<>7i@`G)@QYojLvd`tXK~=94tK$95pt#uFL$T?@t(k-oADar*u^re4t3L`BwAxTM^CR2rL-7&ypc$8;nd;l9N4DF%% zSu*-L28%)6BI%vs#mgAg-RsC@H?GX!EK=3+9o9}jfC~QD6h`MeSvoWS0YG0Ll)RN1 zKbc`W!h17Uy|qS~pzXGx1kiXu^TJ*ZvT2o;1xe4!3la$Li6t(MCJr<~;T`1jAs8uR zp}LTcLn^|pEyL}kq9i+C_~8&`+M;U+#k2|FLZZ!l!w(Bdzb!l&+Wpd#z$m}@S&y_K zA>?Rr#K6fmH=L^aGGimpE_+dBpEQKgTvJL}elNLiiMNzUWS0bL7CpmUylp(p^Yah_ zH&PjrJ;E+%WLgR`(?j_5W&uhxDI%y<%?mw|(=vYH#`_VQviG{WVzDkyJl79UgT>Ec zt!f%Mtn}(d3u?Vl;~sO9nSj*58MjSkO_}~>je27+~yh62|+|G-Rb7K_SH%O7zR4=y50a#;PA%t`5F@*oz z%*U#P;#W;Dl7XphAAl~`D4a+q@jc44Q3I3|cM2&CD*?|W8Y#+wBa*=N)+9#L4Ji&u zH$SH8%H&`Q{JNEDFyE1*-2Pw&_UZ$UaeCAfP8q2;R3S$gvzBvWck>Y+8<4s zQ>*R>j1Ab%9Ziq_y71&dDGf*C0Dl1DSrZ2;;9p}t;TO9gbvUwlkj*ap<&F2}%UJ_? z(83A-JQ9^Lj)-9+BtCchTQoC@yE9D-8&#{y0Xl-*TKWL0j7a`5yqtA^T|a^xMv(lM zNkB$ytBapxKD*Xv_*6fCmhP4qDUr);+k8G_sq>a|T4()1ULeUE>4c;Qd9KaPqqa^i zz+W1mpL4?}i+gdnbtt^zvGel+`|`@KF*47>pTQ|<@Ha|~a(6&SOrtJBa;Dg$21mim zQe^ejhzdv2leh}I`CfU?3&f}G@$1UpM_(eIXvS=~<7=n5r~FC{b$#*L+YIAV%jM?x zl*v&ySHJ=|L0nlp)>@=J)$lkMT+*}8^*d&pBdZ^PmunoF<0jdXV@bMbCPoujEKE|JCm2wg2Dm~|ES4rpQ})`6=EgRkLm6aQK<1wxCz$kjG)`bq9jgQO-^)i`90s#0s|FtqvM16~ zO|a3_OPG;3Ic5}ro2h3QZAJer5`>t0|s=~HSLVQp*@ADY(Q}+ zj$;uD{T9fPyPey78hdh7P1_;IK2RQCiV{OOBaPGVh?V>-!_hT_x#5$l$tkPetVH%H z8`et=0JklON&#s^#4^f1Xu7Cg|5c-%;7(ldDzs8n2~Y3zR81l>*65>?LYlE8NV!A3 zI0aaQdpM?%HpT!nuj4T1q#%+I#V-0NAkSsH zVP^aKrxb_rsQT<~=Gk@uSajusmu9`hKB*rAj@cmbLG3&7gVGpoxw#CR6J0s_iT(Fp zDMqk*&Ifr_`IdAW_?Q^Ox`06hLEr0dlW8b^Ndmq|UszMRzzm*YLAL$jC^Tn*1i8T0 zXRV|lEa2Gmf#RNA(@9i*#a{t%kUt)eS56|*tQkmBqjHVRDv(DsN%E5~Th^9fZ5vZZ zgR>%pPYiz&RIw?t4L9px0RFb9TqQ#DNgajfe9H9C3{vQ`BbQ*cd+`Z?6G__?Fgcuu zD?Aub?TmQE%nA}BR_l}`Wai{>YfmuMam^G0uB!(I%Ck+GAWlb(bOevT$*NxHI+`KmnO2`zxmx;z{d z!QrdMF>UKfnfUIL!e;!6q}0KFD4`vgd3OQw>92s;Bf0+ zl9^#vt)@NPT6bdKbUqi}A_1H`?|T~_X(q(z^;x!!fh9}dn8TKpu{7sQoW?B5_C9b$ z4JO#fvg&;5_E;q#q&Fgu?u_&u^=DZ${N>C%nqEA)#pz@ZCu)yqnf?0BR@%9VzmXE#sV?~a}I|L6l{}*X9 zQUsw&d`SL0OZG$^TpDb~e-rMtchYphF(avUqKSkwNzOL)iAyw;f`CFX1kS8AZzemj zq9i>=&%2jONwuRPH5$@QsYN zo5s+}MkSIv7|kn86y?p5F)N2xB#d_|uyU?QxM~aZn)1ryG2~-oYl9}%s#HNCk=h(& za7y@2fW|5;eKerF;F$a&y8_@2Rof_=+G@OBP1iFU+l2XZQ41Zsjf;ng6|%<}XoFZ_ zpHxB8i7n9TsF&ihlS*8pbP71-f&iV=0ahJC^RV3}L+OBP;}R*xp^45-+)WHnhY93+ zXo5gy+plEDkt7hEdqR&q$oB?uc_foeMGGyoL_5BWDs*BpGI6FJfR)r)dA4fk4p2i0 zJiQdv6`jv%L-2VvchAQ>eeK}oE<^YbbF9sSitQ_6m{OQUVP?*yM;ZK7yL7p3orHES z2y)e*V;%eILsr!>`8x0%yAQ(CIgI^p4fHhCmiPveqHE{upTbpL6cPibS}+I@fOjWF zK4{j%RKJ$YW?a_Wkze@$VgR^(38Nve#ZqL`eN}{cGJ7eM|2l)E5aa-FW)*4QX{W-# zIS{P|Le|Fkm&p)2>A}_rVizs@`kZ|(zdx-5?mx@`(12fU1@-*On&ASxZtrmc4hX`b z-#;J~&`7596hC8k74x;-HT>Bf+`VTq`;L&&2b$eS${#b}(ef8hy zFvX|;zWuOig0@RT)jsFH2I5?el9=xN6YAY<{<2dxKRwt4!odn#E+WFlhtH=^_?x!X zR)mM949{u+FgN8_-Oo5pyt20j5rFkxO@ViZ?XncM9GGZ*###W`HpL-N1I&ouZZkn- z2+%M`%~r$<_=>BVe2&RF6V+W~6b`BLDMG0?j~jU&n-2hB9DpBZjvQq9z-q5fxz)Gn zD2Vec(Ql~Ptg+`F$;>5}Euxwyp*R8?&orV}pY~CyX-c2!BT#lp&W*7&3h3ki)U9na=&Kcdoq~ z>*NlczXR#-hRkn0X8Gf6Ckx^aApZqm*f>S6m8+jfYY^6r0w|0TwGh<>ylGCs7_AHa zdN)}sfL${v2}`^0eRNdApj#vyL%90fyB^t1b+$lS42}fOqPZ|;9Jjvox`I)KOoA=R zQNJqvRUc*}yOARY0O_Xl;x&TznE0{xRNbW?i|;JiO}Rm0FR=Z5k%(GQP$ug0;eK4|;P*3RK-2AuMb?eL7UCaH!(MPz& z#oPR))_ysmFerpEj|&gj9|}abH{)o$|M(n?>UzOXsbRr2k8pJh=;0|LooD$z zpQT>l;!aHRhYpPzHu9Y-ie8Mh{)ktU08lPY%o+kMF#QC0(4LjJ%)EkX6?)vn#;OKh zuQ6{Oab7VW<4=-HMbvvoD(3amDo2IZeqT_-0Sx>>h~5l0KK`slY;0F`DQLTCpt*{| zf|&2=U>bUe1#!Kra*^s*9o=LaEfoIWtVxHV|yWqqY2zN^QS8-r?~<-x`}a~VWVC#Od#t^nEm%n*H5ZP zjAl7Dq*(iaSy2%kioSI4(9z@BkQQGLr9p|@j%9(_Z9#P~i0X@5--d47b3VhS+O_#b zx(9h>>5M3ZPvD|y4}Y&OLNyQ>l0tXyu=?Q_t%!hkcaGGv?dy`uWrW~u=I}JDfz(RU zb!vwNC{H<}+*#y7se>=CjFxgsV}pzAal}ftg+%!sv~w)EZX8Z zg$b=D-|7&+)i8|JI6~u&bI6qBSd;h*wET13-OVp^up5;c;GZijA6I-<>dPPftfWFW zMF_F=#5~Z>d{n@^4*#*bkA8xgTm9w(7eh7S9)CIsPD-OVX<~SV!kW3y!*?cWRTJW- zKYE838lj1CPG$I%!-eIaxwwONe{jE0(h1$vNtKLg~>z66l_*vH@YzsNTU7WFKM~;4pBxzLah=m|g!2SWr5(!-w)K z{kn^bYnb4ha23Z_w;XW6QLM3cg2vmGZo&4CC^aRl?FPT~(|%9+W)#ihtY0Rg^m@V` z7a6kXyKLR=>XYwdZ?R>O?`Yw`TDxIzO*L|JityK?atIng0uW`V&WB2>sTI>v)$^U? zPR}_bzjx4+XJGVxqxJt`+Y0D_>H+(v8agw2pGwwFi9+Hm!T_>&PN9>X54m%MFDx>- z?8w*IzKfvp>l|PjE|OamYRE>jIiGMYZ12A#v*fm4j8fu$U-{!z)=e&=IexZ}UN)`t z^W3QSB5Bnpa!0*mP7bufksK08g0_g~$PimLmQsk1PxHCcyk=lZWb5{IporGOs!UY-Btu6nz$0WbhoMAzNTY0D16;$Z zsTr!W*fC56j$+Jwn3_IdzAdVxQFDv#Qx36oju^!dIYTC;-C_zr1sItNMa!8Y)){sI z$q?kkYqF5!{D&$O@a2Ky0-YV+syk~-Dbn>FsS7c6r%;p2{cMLS>66b!1T&M0cKIU2 zbTqDW0&RiQ*HnTi-I_x+Z8k@&6dPhd2s8Dve2G_|WNAy zvWxYg!_?m5gx>L@em+-nZ9(9VC-&td6U1kHxp6Ghb8T@gORsdwsO-rFGH6~leBHAN@^q8sFcqj z1e%bT3G7&_8HI5Aj4=SKpa3PWirLc6mv+~TeGgxRGPf%3%I&1U)ws5_*dE@Ji7kcy z)*+)8Plxq#eN>)Mf16##dWxtdr~rA#(UydrL@4bfXD;$+!fF)5AlcPWPG>;Umng9; ztOnEM<^&ZPH}!xzAA|?i0U%K9)KvpiO!Eg?LJ4*m-SZcvXPOuXY|p65ar2cZnBAlj zB8}g84+6mSLLQ6R$E}9hBHKXB%hnEgV=-&v@Ta7HIKjA4C&6Qg_HV;18vT`zBE0rj5y3S8}Z@DEAY`_e$K$xFbS|d(V z(gxDR$7lXC!5La76a92loM5F-n!r@5?_i)hThfEHZ~IiO>v4eraIzV} ze}i?i*ZC^NT(Ys`F3Imr;WYqWG>FRNijk8Kt82HNZ^hSO)Q-oFjm9Q$me=9o6_(`Qi5&Zu z+ZxnVdZ!|v4%vP{LTT3}s`dMnVUz+--bj;seUgGb6FO1l1u|k`|Kp{rx*YAalKds) z33jSK-S ze=#ulWwr5U++ud!-58@e*34Bs=YdJMPL>rbvnK^Brp?|o7E?e z9fp2B!gvw}SFkMPffUK!Gy+1PXj<_L-jS&3GB^RtW3YvlH6OP2AZWcEgjr_)JK{Y0tA;q>9X}>D?^R zOn|nPAYb#!)J5}U3$m}8@E-C|_g`02wz%QL8lhuvV*3Ncx- zN=D;5cBqkUJzZO}c0Y7SR@wo6g1rM2WGorCGN1@373mkT z7kZKj=x%OuoU>glD4)BG9u*l1g&1W(f8UG@PtO4PTCOS?@TxgZfWK+lP2C(BdGu85q?&HXV2rpHd zUG{gRLx<#ZR7wpEn%sODDLhCA^}1@vrZyZSE(2ct;q&ZKc>l+|jM}!^hQ7D1I1NG< z_xJ$>VF|*HX0;j{z^XAMnpSPu*viiyK~)Z%eIFI`8uI5gem{XXK1=yg&PLIF3QgosEq4GAP=fml8mOvB-s61#a`gSK&VmixTj}Gic4YpdqVY=2ds@8DK9pS1qOg)(bn4O0NLeN*jbqYBGbFX-7 zX>`)5nm`;4DI<8#XGim`0g78YdslGk_mFaYZpU19Q3Rn46^^6nv!ASmPH2s)KWcYM z8e9OF8nw^FI1!nc1v)f=%O`2xIC`0Z9ZcuValYxJ=bJ<8jmI+lPRz*UBjf>Rq&YqX zzpedZmUX-O?lk!$lNwe9d;U(#UwYevihs#r_tciz*>Ld&OKe-1nVg;#g??R>W{rvI z!tNf!Qu0CKQTyveS%-<-){LmR*J2>$mbWol&AmRDYC*;3Ze9L{06rfO%%R)NGFw zk9^y9Tt+&BRj3hxUmIn5FfIdH9vr6d1D3z?+zKH$hhA=+A z@s6-;mKX>s5MK-lkE=&G4i1NWz~)cwE2i=`i*$` zr$o|1%43|*~uGA;VyZ>dAV8J)1@@mr|z> zrmlzL62cyk@h*LZA5K({|$JFF#Ib}H4 zpIff0R8;ebt#0f!wG9Phz4k6h?>`^?SZxSQp<~$!5I7W3&TKC@DxbOZ&=jNa8{v?- zDJHuKTh-P39|C!PhO^Oe_OnW|i^AVVNTeg$AKS)IMrub$!OI;TD!3kH`aH_l7TY0W&TwkX=wBLPJ>5#KZL{ug5~afB#KB;M?k%r-ha6>`1cr)Nyb7g4TaIwBiXmUt2ccN{QjsGd5*1TyMuV zQ^PeK3Kn&-y9v!4Vn;W$T9}~T4FB@V+iYV>qQ`n*Zhe46-wA6g%2vkt`Rn`uN9)Tg zfbfe|;^xC$>dVmvFz=M1QyTtZcw4KQgD#VE(iTZoCZ-wbCj$Zpx-DiEx|XK16eXc; zBuf^i5$$C;X>OttfDLCg7Mo$lz*y^zt#$xW%pk;3=J18um(`TBEcSZjx-w;iU^sQ- z+o*8VXiNUR|uh_g0y=8wQN(!b6L(9YMsmc`IZI5p;yGjyufuH>U=|t?c+5IQ8=Z{fLR;XxzF4aHk?svs_}NC zBAH0F9u;w@F+YpWYFQx}Im9Ea*lQ`yzbVtN+q}_9eSMHJ z1eBcm2h~l91;P!)pEFbR16d&gIhiZe{D-CaT+YPY0RS z2M*KLc(C5xu$jwh;N!X$8#Q%erlwhdAjrG_{}mZd!BRGHa5(S$}>Z} zD65`R!m-`jpgmxpImk8+Pqu*?7zEGq;aTB8dO)%!8 zz~lqQXSW8Pp7suW2H@~}*$Z5F|29ePf6>P~#`AyZ$v`mlAI>(<`+MH9=J(&xcpT{< ziRZ8HZ}I1jUmxBD>;p-ten;*DSo-~2T&6~tz3GC}KZohvpNEn1fe?>ME*2jU(vzg^k{C9AcLjjt-NW{LPwqm| zK;AXF|HnOW_xF@%kuOQ^Sxfh~0m@DM!I+;>d8b}1=fZxSxwqccvj7M+e;t#Ko;PDF z{x>(1IE}LIb-L~Co_jw@hk%eG+#93L8yPvmBEYQfMtjutE}kxK=jmV6+Tx=>yw|mX zLv7E{DFG|F=%gn=y$p*kuv0=b*X4K;`in38dmG z9S{Mx%O97j0F#%~6n+Ji3c5NP+_e}%+SjV{rM`NKjC3sw#Tq<~RN%|o`NodnZ)LLzH*?$dRQp3Z)RQd;Rl5;<_3#qGMg~o^bO7hUg z{Gaa%Qb4$FuJegK|H4Orym-)1*ZXttV@eT++QYH;AD)ETywxt8Bn12__hF~c_>vNS z(@I`?J3`m!f^SRoQKkIv=5B{0M-amRh3of1%A)a(ghzsl?%-`e%4xeBP+*z;Z5t6_ zm(VzsKgwCTpCtdgwffu1)DB3lJ*~b4uj?rdw0dRYeTt!Njrt z!6*Pqis{Z%^o2_G7zO7JUNvTZ+dY9j87kU_7KSlAtL`c$6 z9gextqe$|kun5fnUhY4lkrM?1gmes)aD{*pQ&&=*q96yYvZ`Nds7(-`^QHI|(s`e_ zAH*uKNQPs?2DzRp`kZRil(I>?A?C?1$CV(88ZH8}Cl-KYzdk@(5hpNpzsd z&+O`5$`~q0H^y=Bd~qywwC5|0*xTRWB17Ex%KXUIdBUEx@*v@~R_8H9JLG?3R!lA* zLq@n^6_Ie1x$ttO#^LNF07#iZw+7IlPm~;#D#ItM3JI#t##Bv_BUQf~nXbDf%rS0f z6bWB4v(CIhyr>vwj=ir!BUE^6irlI>r?5~uQ`X=f;~_@ZWc zbALR9C(Ah^j6X%M4xDOU7=f2Ajtc7LKN9hOoQ7xk(qDCe)2~K);p1yDU>E^${umN| zbMdx;F|zoH7(1Ew#Xd{u8}CGX@|as&GtKf^@G{BXuAfJ^&|0(cC`P~IZnE+yVg5)> zWG42EvRJ_|0;Ti_sulj&xh7(c_BzCNJ@Ff4Lk?+BAt6#+REEe``0g6hw}8J{b*`rBbq4V0QnypC6bo{c%4(Fd<)LAW0R4^0Mb) zX5l?#4ywY`qh5NOSWoUvKJkh$qz%axQcR#Xoi&2*I}T^;?^&`%?%3?EOtK`sx%dJC zz0e3>jXQ?FtT|n>O^=o z4)1wup!a0^Es2dh$HiUqbmZT;zOlUHll~5q5A`eyS&_bpVm4I&Y;{o26&|HRD+KDe3;p~XB9qqmAn)KakIvS&cimZp2Ni8d z5Ryxg0n{<@#X1DEtvyFEu@YIJN|`Oz%hDrWc<^H27~Xn!3dmm&-VkjcR-^a=D{fCd zUv#(ma8Y6nk_(Owd;=ia`JZ2QtF!ZD;eX;BdL%998e<*$l5--dl%)bonH3SyHu{`u zJ`(^)ef~FC=59r!Pu&jyU`HHyxZ6qXASLY53{t|4k8l#4^@nT8jtuN`Q^Wx&b2xn> zGn^acBmg)hRc0{@U`05-uj1b;Yohx6*?FPno8y8?V!$hMe&mZzpt#}bdU0=xDXoEt zzj+t`gS=2qYu=wCGLI#EqLG6|N`2=c6{DhQlM>JNW_4s-jYGxN&8U=7Hrc z;|lU@J%XGuu7%VpJ|X=U(c#loxNVEln!>GxlKsMV7eV+>Zx9x_PS~@P;=R400-ANu z1SOEeZvHI?UP#nW@;5g1+5$_Y{0WJ+9|~=|g;t~Iw@Mb@Z^lzM@m>O=>dT6l?O+^3 z&gv;rXaMebZSzsRDryz|)VoTkUin3oqt8bIFbjrgt5#%HvdOmTX!!!b{{7a1SLaTvZx{Z%8SJX>Gtk`0+OVAo>Pn{Z=u7;VT$k*JCy4 z!0O(R%t_`n&}4np_Szi&HmcVm{y;uonJ+TI@apt?XTbynfOH*08si~}Vv}Iz|Es0& z^*+ce5(H{tqQfztd2y&als&pTxd~QuIsVxNCMa;f@p2%@i^fU)Dl_R$ce8m5WPSq< z{(C*^*~2P3g?D-xMfu30Qr+KTfchU2)BmI3q+|RaP21?>|0ngvgz2{`9!z)h^WwJo z#IOCwc2Ey{-D;!rE+OnPV<&B!VB#BI{8L~34_|z@W^?wxVmtrlhQk9)oRke-+0soW zT{%4uhqV;;>cz`*<+HOrUcQ@O^k|kl@c+KF=wC-r5Mo|fm{ciA+=jM|WN6VDjJ^@N zIcfvzx`pls{?>ipzPnR>OG5rpeIG+Uq_$9OI8Kx7x9pK?R}(7wM>*fAF^f zx7hzt?vz(6xqMi7)27(PX>~XBJFj@}#=e1|h|}KQ=)XdXKyb|FS0_;u3*@|WcGK|$ z>X+i;SzHPQgYtK}_n+tQ?K~w+1XNBgK#lq*6!TBW@%bmqUo)f!+V|HQV| ze7(2B4ESove(p=+qyG_|za<0&L*PHy+PxLDS=C>{rLA!WEY|zy0imgR?nTjPasOlE z*bBfN16i#mbgoUHMsY2Tw1GP1ccq)+kdq1`!LzRZ|^?3|M2&V|DUgaKkE0b{(roF##esdh5H-*F)si0n(sL> zO7O+$-c+g1Esw{=`UZ~fv-^+l?Qw4zfl_dDaPVcKmp>{#>xb`^P(a$4 z^x7XEd;{_X1FW{YpWoL#<>TjH25Q`t@SHK(Z^|8wlEpnCVl;?9i(GE=?^BL{djH+~ zZoSOi8X;}5Uh*9LCP{}|M1Qj5bdwDg7Iecw{fhM0cn7`?X_HeLA9H&PWSD-zZX3-$ zS_!%BLpw-iU3Rg{0#c>#+|R}D9^F0Mp)b?eW>%a?*gn^ z^S#m%<@P*fhIq;LoJLbX`ee(?^c*O4aa*5}ks+G~C6oklyTGzAVVfhF_ILTr?=~Rt zuL-HsAk^a$$Z~9Pyh+^|g735z!}A57%@fE?Jm}}*!tJ__)^sx}s*~pV{pZf&w({Fy z_V;q7BlO%=ZgZ_(*uB{9H>;?HC@4W=bQ?N1usCbz`TCe0?~>)o9ri1%~^-S3PDsf2{q=A^H>T2Oa(?)w$%F7Qew~5X>uSlCNz1J=6+i%ia{Nd(gkxDFSVeNI%{)^wK zMvgc5GY{AD+6h?;>vrzpI)-Qop1V^Gyj*%gfyC3nc!tW%#}FOQ^K6ynBx@+U3+%Nv zK*RjIw<^TLh|WDOj`xr?Iig%)RS&XBNcscFF9;UL$$A z)~>l#s~DQsn5={6_ONbTfLh9Xxm#)7ay|Lpkwp717vK}z2{HsojUU*d*Pwm_q*hDw zx;f7hk2=oAWiq7`6>2Y0tZJx$a{(dl5bDeFr!f3{4 zh^T41qt$1fQycU}#oB51uJ_snQR}~eErJ##tf8v`hS+9#9!St)?3URzQKf`Pfzkibu1;vPZ z9SyKyVPPFW8;{OfZkx4P?)v(BJ8TAR=U!Wb!C_Zd8J>QbM2U6w6GeEXYPcy=M1?Py zzQ_7prDh^Zft^LwfAu(NGtgtejo+N#Tpp;FXqlz~nJmJHxH$~EpB){P>v#G3SeJmC zXQ4H~{_`@sU?9r$xw;-;TbfQy0>Cp4hwTtHmDjW_TIOzLy)Ac(N);572INyq^i}ZO zNXI*`DlZ>#Jij_@Lu(HD_k4J|0!h2xyr~L1rrGrB@J^DnT8s|dpV_@(zhxVmm-n2C zKd0v^E9@WIVFK)f6a?^%3=2wAs&3;4Ji{YkOvZrPlwY#cR8-arDYk#^&DG95FcB6O z9&Ihvs#h4S!qP<5bv;`+d-otOGYEP6y%}q3A;?T8?`d&C(CG4=K>EF-8nA29biv>o z2so2C^>8#%y{i}JW^yx9bAzonVk-B*Yb$+$o~KUI`Fwf7x<60r@>tXmg=a{MVjvc@ z-45b*{}n(mUu&%s0J>;Jku)gh`VUH8cCUZX2e-nEF)n$lMv_xi{rQ9_UGucr@c7Yxl7w`2TkLq z+i|-NM%%C8=D=Bmp5&m9A)XLLrRiYWN3~upl3r-h<~INOK3I&-T3=fZGAr~91-Zgj z#m}8?t`OD@N`vp3G?>h;Z|teMy|d%N&9@e?mxU`2ng}^+IUlg*u{=Loi_@98`~d_I zuJy&uJ+}-WKHsZdibT9CK=5az3WqaAq0P$;I;G2{JQp`Lc5{nUTn<+y)a$5k@M4xS z`DEX`*<{Ibp3izeW`%q5>BB;qsjr*1`UkpNH(()@{rHI{<6Lh)*z@GUXHUlsEHXf% zW&4m2LBQ!BmY^P?t-t1$ZcYISCc`CdXLO%ED+6=^w2R|%$+BZiN#Zu<6?-lrx2sYp zJ-BIlT=Is6Jpxmj`e1rIE($fDeD zZ|bLrE|pDtDDXEXtrMrhb*-AOF1Piu&ceKEoJMp{NNC?|I*fJWnj1|3?12)O?e^+8 zo@8M-X0At@Q#xLjeW8h4-8}rtGEpPlM*Z>Sw#9(Emfd6@R~XcMx$m}`3`pWfrkUhz zjXe)q^g7OyVRynwrYuGai;wpl5a*A19JZC(O|tG9{O6oo-kPb5JLjaQzfBLM$HlTe z*S{1!OUt0gT0evC!Ez-eJqhWwtP)ju9r~|)e89k|yIMe*nW_fVrUE!kYh!0&gdfZS z?=~CCRm)Z1ErV?qsW%aq8s+WHT+8)bBQUu8Vx9Th{JpioYomGjTSKbA;Icz6Q3i9&rh19V4@bU52(iQk!^0+i^ z9EmPYrgUzX(Y)R{Y>yv!-MZx`&htwHHIDyl9ssq-;s#o@6mrmiBSzLeQ5m|xXr>ZI z$v~yK;yl7*|p|GgPp|X5~Q8= z=D{YAr_ye{ANSzKN!T~Y^L#C?rA*HodORwb2og#nJwfjv_VQEjI_#_shPqX$$J2Z!%9(&7`3{ zKWUgDp0h}~O@LMzdan3r_I*A{oz4{X>Oj44Ep&wdbr8Be)+ip)sQ}bE3rU-Lw5(V=Q`P`sb(}%tCE}=g^X-_{(^g+e5 zNBZwh;M(kEqm{aBf077~dPH&D<;m?ICq>87unOBkT-6P0y6U@JC_9d51~1z#TN+*m ziM)m%COMnw+K`@6kQ*)(1&{1yN@hHU1RuCfMHiHn0cBk&itmlg-@82=9ncGg#KNy# zpGJ|k1($lBFCSelSrf4fK0T$yV=#t^=qxjefwWl)Yx3Tro7(q#_W;KtiYhPLKyeFj zJmo0GX*;q@|ND+CaQ0(O@kF>xx-d;y6?{`$-O>mo;fmXk(xG?pksvBe9I~47uwA=_ z*<79{IDEtjRsEQz(`AxCDJ0>syXpI*$r(t4v>7UURYBZNhuD|8LU8st;au%5pH5}d}+Z^+Dy z*M8Lj5souH;v+96hyErXqUN<^VDNQYs;o}Cno$tDe@1wex@~NQxlhQlZ%p$I85bb~`zm;EuD06>l zO{SfAs>oU}t7Ir9*0INK;?x(ZdO!+He;m*pUt66rCQ#FX^?YWh08UH2(}9C0bVSr$ zM@PXh7;G&$-J>MYVI>jRHryOr6FkC#YuRAGhwHL4t5K&O;N3v{#Tr4c)19fb_4}dv zGvMT^$1PhiqGv3*ObwY_EutR@nrwcN?ii;nRo(Pvx&i$SUm`_MtbE&YmhC|iy6ZL& zzNorQ=!$*ZvQ|OS^(1~ib4vrC{T01s00^h)Gr1@NI{dNoxz7-|&TAtp{p^J5MRHu6b;-bi{JXld_{%Qd zv%%f4rFfe|Kv%guBQOQy$vK}#%gYueILyoQPW5v*F8%80h`nHU+>J59;kxhKpD~rN zu_0c`a#{Md!8%wh`#1%~>+)FoV08nh=On{9iRnCnp>T58k#0n5xZ=yqgd zCmK)E~wQ&(CTQg{FAKJonnJG$6i!bjkjn?OHfAy>I@%6m|_2;AyTHQEv zzq+VZuAtF8Ja28RIkBAW0jtSzIrRHTAK|&%)rsa>+*qf!94r(*lHF6E9-7(av6#-D zCcYn^-?+o&6I{Kum)mXwoU&f_gMO7Z>kihZR0Pq(B5s&k?BD+%*4{I&$){@<4N6gI zD$<*Zh=PDhQ#vZ5Ae|6e=)FoW0fO*X1O#jp>56nhO=tlkN)x2_PzC9PPJo0Y=SF>= z{p@|-cc1se(J%aNlHs12HEUh#TGz}ZCdBhUHYJ%6+NWGzD8A0Lu;o#ryAXT32iGTH zktO=Op}#rr6Cmd`ZwUGT-{3=At{yEEtF78o2xQNmU15%VrqmYIh|HSxuAxe2nXVXP zT@_NA0()>{U}!NguGN{vp)0MZ?C8>=)XtDI^wEIHZ346OgeSN(&=J_>NKYRl`%kS{ zgHQ8MX2mIp=jRyzR1%$wR`5i!OHR;kd7DU4oJNzZ=gEe;BgCALwV*fK!ab{nF1S{4 zgY~@0)qdod3E7;;Bp6ut{@IJAC0w$8JHri+_uGC^*Z*c1UN3)s>nYVc6SRB1Hc%h1 zMR3Q&ZOm5EyF^BSD@ZG{Z|XINX!4?;{)CR3!-}mBcS%L|yx^(e*_TH|tPLgz$Up$J zPxx}cUc%*L+7sURkgx{6W4Rla3i!yioJjv^d9N1}>K0sgp7y>xCs5h=x%y4QXi;gy z5OD7tb+6WqFs<~U%nJn-D+e*+4OI*2U8k}*y~c6=cjq3tqL*rc-CY2pr$Vxv%Ho#6 zy}oLS3cBBW+Iv9^3)yNaXI|~%ag4v<=J~A;t6iPA!6_4JeK4YW8)gB+#p*Ub@meo! zmn*Hmk{4*PEqdh-!>LTay+cpS$mL2F72~N}>fWxP$>fah20U7-q>qVbpCz$SrQsp- zbv}Q9T6ix)HzoZ!;3&%+!nUyQ9=P+VsiCCaehJxD5{QfCOwiyD^q8GN@9cCFVR2l( z#x6IOiTU&0I|tZ#-t{IasZopg zr<|aCF@%WczPo*U4sjRAO(w3V0$dR%qYrLCNZs8WK0dF_xU8V4q;%-F_w}ezfM^aM zc)1+^B*?dK5a*IX0N|)>?Kf6Z9&rNN{W3nwJ~5&57rnMwWzm zRI7n-M)K7M^FY6u6?c=7*dJ{Ua;4ot&Luo>2h#BSDbI{Fsl3NA@*Mqcy9n=}657b36L`^;@F zv(Qb$oVKX#Y^PUCxTSF~&c(|=9hz+`g%fLGe)V`trGMU}u>o;v!-6ry@ye(0m#6yA zgiC(9c=5c^?uqFB{4XaiAyo*{FB(t3K6{VlRIKF6wqNNuaI?*;9iPlLhct=qP#WS< zJN(wZPj_LRFyuVLcbPc}j>piUA1U63&k1&hLlxX=m>_F`$Nu6CiZ%x$rFbqZY8Bp= z4qRB}n(fculC&E^$NZQ(PzAX1Qyr8d1d0{;0DAxX|E`?@WZH3(tTi|AE>BF5PiG91 z#A0ejY3prnhEWjXu2U6rDU;4v;D@Mt$vJCyvbt17squ#P}XvDV&`4Xg_qEju@sM96M? zB?lv0$eeOHhmfxsF;`kIxicC-f$Tr&58Pp|<(>_1g9(~Pm71y23J8mk-K{4HP3lGPo(wdX zS%EXUu$+*}eB@lde_Kl7pP!AxugmY@ipN8WtTLgqw7N;t?>3~#Jf&?z5eq(2fd@;E zVYbc>{XTGnO*sXdK!DiZmr<_f87ZS=2z_K~rqH{Qwtj6`7G>Y%P53eYUVkhT3)RfR z$7-L;$vKJS8&8u(@bY?sK0X}Gqd4#GpqftqTpgOO%_tQufmUCd^Pu&Ns6#leR*mpR5{0MLxFfzwl(2Sx+v3#_ka% z)^KLCC-8t;LCA9c$55O=91B{u{=5Wig2jakB5#lp6_iCh3sNocO+W$tabYOeGxq|uf zuoQzVaSxWGxqtZ<`ehjO^aeJ>@>}b+M$+ou94QiWIAWlp zR}e250qw3;Jwmw9#(Z&h=9avFSaqhW(jG@R&2n|M&1HmpPq!uGK7m|RiizE~8(ym= zEUh8%11+t>~+MbL|mUu#{D*8EIfx&7KzKZIsZe@hiSXQfX6 zbtQ2qA90}lvQnqjFyQB`l#-5)gHCCHVbKV;Ti&2m{|Oz_S~7TkT#*17aW*TWbGev0 zmivoYIkHj0%#J?eDZ2&IVeO4?z_fNe1t?)Km1w3`6Qx{5`395c#ns}|J3=QT!7)Ma zQE1t>!*kWeir`EGLF&kO{w1SIlc#I`y71jZrZbT8s<%jCO&6VN)}hqlnYe)i89|~OezA#WZ!gtK_0|%QU{^`d{;zGXlU&pU3BSASh~_)1AK{fL}Wrd2+_6j(RJ#w zXwEzBVEn*BxRNm|gECHckW)Yz@oX*3_oKw$TT01XP_$pn$qsiYTAOFLI)R_($m$T0 zZJ}_NyjKc#p{NaEr&EvOS&HBa_`M!AhyvN_5GOTIn2Xt&cM&|DeUl&=f|~r&^9tlc zdLf#!^e|w|w^XdZDsjUT5+Pz(6333r3xXCmX0U~=cxfmlCNe$M$ICDxJ>yv`VYB@u z+R=?Pp}>Nv`$z6qLzAJL^+e`cbPT1@1D9U%nq+lbC2+VH zy1}ei!Fb62DXMzO9+FNYNNyi^#lCjcTnvkHEYpQ?6{9D7d+hWT4g^n+X3ws8C_dsT zu}dA!vk0yo)i-M|BisGxI!DPuhN?T1Rm&LxKV@%@AE&!sXm zoyYiSBI6UPfYHYoM~D?lyr3*Bq4z^|1H&(cLQ~-M^_V%o1II2=`9`k{w^^%Hzomlf zq%ZBI)N)P-+FC!n>4Rsj-YS6@KW%1}TL&^x=^c8*G~ z6XvC!_FAUqPlu({tQ7gWUyq?oc(jHe`=+b3S)TKs8^YStFCS%pugmFt60^!GwzJ3l z&C(J*o<^#Zhc)_r{pWEYkZW=(nuF5}uu6UG1t1)^5Lx`>bx4I=uw@4tV?S~W$TM6Qd5ciK`XHDjWKt%L0qma zv@h+7t7f)_ib0b3XF@y#cy=7b4o~*Z-2BcTMtJ5r%l~NhTm8(>%*9P7Lr_Xz98FJv z6P4p^?C9Mdib^LIF-_hOkZWA~k(l?-UFI*%pg~H*Tqx(fyx;7tW!2p?HsW`-{hR7k zf`c;U1F`c(GB|N+A#Dg9{L&75&QW|J7%u~N^lQp)<>~~xnt)OcCK&$C7qS9k!Fv;^ zYf+t~MLt!qX?+!F)t9G~yWGQE5BsI0c;lA%sfUX+_lG9Va!~Z9ORUZt|F9adae_P$ zJ*^BLL~4$Q)|y_N>pC1sYXawxILyGUl`Zp}cO0J{Rz>UQ6&<67&p$FRm28HC9b{}) zE>i;LYn!R=j8Ww?etA;gQbArgDWfI4=n}j>MQnjrIAlEZNqCL#RYtp-AGV~hBrLi( zb5FcGGZ)Emfk8QZu@k~oK(>`u^``MprtubJ$VQ8gh83!Z+rBIai-JskP^6iaqgB&^g8Rp zuL2DfF;`#TQEshO;?mp)Kko)DWAe+vJ6Q%AcDALSdIcp*8B%Z9!s;+e9{}9;H|}R4 z>d6Fdma9*$SvP&WKh3Fl1QZ*I4F|VZgJu9fkGAY(eJ(b+!|+4{eU?$|=4_-qR$}i2 z{&RP@_&ZTq(9nhb-i9y*)0;h}^#dn*4^G^c1EEA5pq)cQ(~$HekD{{oR|NF08TtBQ z76I_*=T@N6I}-v-m1C>jMB_-S~%MaMR%*5qrth;D+oby~u^eJVQ z9RVe}>!VqLCv;?ZeoSicnIYLHvc;w}QB4*!;g@1LdBuCiTire*8t$wb3`kJVfh5aS z=0HeGZ;uIs^(iq{29F>7VfLA9(RUhCSi@SuKOsr5=&gv%Q2hu##h`w^aAPx2%A!FU z{`}`7T}byg%*@Y$36Ny=*PXPj^8+%lZ}F2cII_LY#3810M+k>KP~+a_kw1G8eY|Fn zNf+lSlMucBMQ5BFcXQCP7b&V^2Y+hvBFN3K^y&RDmiy)uE1FwG(_D(fO{FY@t>KdK z*IQ>3noo>NnB#g%CQdN_zPc6v2~zr2C1Q$4A?U}r2XhyXuaxJncHNZ41PFm{LqDjA z%JHFD0^q*n4aFbrPvBsHK!cH~i(`iK6`xxRXplDk7sjgWIaPjazE`ypalU+9xW^)& z(VQ)fxA#J^tix`y=X%QxCz+3JXtq~847A#{E|Y1Hc&8A7Id!Q3-r(YrM%@uS`Squ) zM3Y+}(L0}I94M!mN@hMa%<%a>4&rf;7ZYC(Sid?ie;6}48?@9jSG!G}#kNt`SK&nU zPtd*KB?Pp(e1_;9O|J|9UZ4$yz!klLfzxdE%};Qmpsv6JOgl)D!YO`>Rsq&H47Y-M zF2a*QSm@?T5!t9+UNG2->dxxy`oFXQ`3fb2@E2ZB4=%8WnUG;W^`JK^DoV(qO{T;(AjB$~Q9Cv%RLK0OIV+SQf#b|_56U&wg^fSlRSM|nJBp5n)qfPD9?dkS_lFXu&tYB_9Nz_)3)2!5}L+bey3B-vF$8&Pc^ z&nMyTa<~pe$4|WeJEPf4N2^nJKzkl!RC=_>qkRi$y|R_?YNzq`rshjfC$zo(d5e?0 z@+}oJL)oe}CRVMcGc51Yv*Zf6iwP^-BX5q(`i1X?RzG=-Vm%jzJ*5ao;e&?^;k3Yz zbv$yLkV~4a{zA0z*a3pErP#irKgQZ_Wc{Q{x_t01TCT&jAO%Z{d8CqeCa6Hc@)mLM zf}~?N2wB?(Ay;ZiA(XDM!g#y@R_C#;9?hwuRtse21 zfK4>7-q6V0>z)+->pVw;MG%K(7Ugm+`Pw`@l~G5TjLWzQun_MdT`+bbEK8g`{) z1`~4J>M2EjZ3)sudwd$z(jh%cxDxk9-EMxrG@7((3cXcV&1!sWcMkEQjr?M*Lw^88 zTxXjDlIS` z^uU<~MHmN<_P$)yobU^bsOe8s9lEN@fw|bVjuua!?c&9)QY>YZ2^gbq)X>-t%H7nt zcy{W<2Ibbpm)sTm?X6u}GMC9szg20!s&ciqs+*uL?*n%BFzo1K)XU+5Tx83R zZ7`5FH^&f#(q@u$&n?2?)Sk0nHp7p-On$l;(!bDFcfZnn)G)R!$Z^6P40DO0GgHNsLke=>MO}w)4WQ~1#=MFX`G{yCj6v^-e;t3 zYphP85FSVURhyhy8c7JGOr|_{IAr{6eb}{{#-Ths1Ipp9$6l<}w};KlqEL)gjNOyE z&prCS^lW0CB}4LC>Q2jHfVB+98LFE6+-5C`ZVWPTGfg*|e)`x4n^1_wN4f!>}RJ|6&OZH9TO2Y*K@408X%55UNu1nS$JKdDowgFWkUXA9K)Rs2b-AV{p zq3@QaIjOTha;k{R?ONOigDWtL59&*_mlhb5-Hb=>LaUvufH=D;E(Ss|&Y=6ZOTj?CHSuQ zey2R_&pE8FIRTVLj;Aora&zXAXz&}rA7UeB5QcwlraunGpczislVnOL>j|BDpN<95 zA3Iq0KR2xZcAc^@*=^bY$uR?9&YAQ<>MTbJeoa9S0;fEf58P)GgVE+t3`PF)3#e~u zT8H8Wmq0BVwoPB{q)?3b^W6K=32QRy=fchd3C=0y--W7U8O0yDB~XX{A3gg0Lckk? zey2$w-obSRy3C`awiMK=X-Jnt&&biyD#dwk$T{6af^o#X>%g`O>o`re;q@3n>SLvF zmQ7+oJ9uqe;iL2q;69mY_mv+By>GNq-F8z2-!T0$yqg#?U3r&y1+(^h(0T(C5}8I# z8W#<}*+4axuwNvnC2- zMO#3+8l}|V_nyPYS>5_3b{m8Qve_;R2zj!QJtm$z>f5q!WMA$mCp9@u)QMl7dX z1_)`K>K;ku2;=q~o7gs@TelSYpv4+iWzBr$Ux9Zw3`JyyzXMjb4mWj{8B5i~f~cIq zJ2}7g81YVVXbE#gds9TDqxxO~_u)=<8dW|ME;2rJ-XzJ;9)e_cW)ne=_Bx_q1!&bXH&7N&##&{2I)_uxvMoa=y*!y9jZY} zp#*Kw{Og?D6^HysyQvCqwYk&f15I9^UYU+p%qWPTkO$n-EBb7(lQ%Yhawb!V_Dof1 z(a)`sB8^lgE+LdD|n?!LRdRqc&m@=ZDSE*-_+nwW3>{bg1ItnKKsp<1^w#xg!_G6VKFo z>IY_oa&RlyPXLjoiWQ+bpJ`fk(Gw14mNvBp6Aj3B1_rxVoTn>vDYFwn&odKEq)fbJ zCIV;UJN>BgqY)W4=+eMJ<~i$Pf^+)nP4=SFX{TVWp6ocpI*#war8<=T=#l1vY{s5d zf{>ytP}V8uLXRJKkJUdXv~L_bPt+`<-s2%K+nxL<(#dINWj7<2iL=7Vxh~VDw?N=M zlQ(M@&$O=C^V_8yZoUzQK%9-0$ldUNOa|z}-Cf&?_p~vu6D6IxQrZZwQhrGP+F!|H zAJa35A6{6{b(%BWAy)Dx8@|l~&cVt$a&Jl;w8~(qNmaTt6){jcJ-dQ*5;bpjs+`e% zC-IT~>dI1YkQo}1UY|_4;v`WcQN{FxH-nSP(U1AYfrbQts|T9GZ6uO8e7-h=42UJ~ zl85SL!?@D_`oVN9z>4mAV1@+q?KshX{G(;%6Rj0A_tkKp?yc@l3w}xf<|Hdd5<2dv z0u?lQnpm!jXuf>D%R?nqS~6hstday4UZ%G?*z#)OZt(7BC^f-@r$2sCe9-xR9a3c4 z@T2u~J?RmPc4lo_c`A@W4p*(+{$AzIt`$0Hon*vjPc!lihzYEwNrA#;hM|b{lH5Tv z^gBb2F7LGi&hc|0;)bXFJ~-PAghsLUYZIdL@$ypkseZ)u7n`>J%&^FV^8cd{neAD zDyfTFteO`Vo)hp7AVg-s`O4f&6|-}YH7kY^oj{!3Ed`?l>q8Yr^$0Rc<+E-4C7ojj z!vWOB&=4EzK~o=)vuZyEn{@E>TEP2dn7?pkofo(B@VP><&w)Mxg&(XlUzdR;|i z(S4uD4E}Ya{?AgT@5Z)1W#8X%QCS_rGdNN#kvYhW8RZ?y!nsIIwj|TXVrKOVkP(Ol z+_ZeLw=&eXp|7L#og4k?&D?hp@Dq^lzMpFjQEKbOpSlFs<9PK$V}u$9ifb{B74a!R zbi}}5Y6jGF(x^eiycDVHWIP}Ye4q>j{sfxx*pF1)Zc z@xM&0EIU-%f%<7&>PYc6l#7O2{-cy2f@zrRk9ZLJbm6)~ovmpH!i71GhZ9t-u** z4MgtZddtAu?$7omPCy^gZA@MN^xI|ZvRjn68SeMWgkH^;25%Wy?(1C)`89RUR&<^D zvA3Kxvs0-~@|ziOu8;qXg*_L&8l0RSMc zw?(n!Id-X#TtfH7Zp)nNV0e`8$;VMR&=P9X<%;XxLn~muz+)# z*X`L~tY)k|DY3Qr(lZS%kD6(_0_SfFX)^ z={bLK`K7aczPm;9asIlBGN*+WaSbsR*`Q$zuZvk(J1-)poB@&yI319-JI|~fK@7$b zhVj)k&OQ1zRm(H9J@S*^@Pl@YCh?wuiO>QpgY*tCqn?-CZrVJ3?Alr9{EBFW4Vp;s zyE&=qTZJk7$8y5w=}zb@KZ6;GV&vQOJY-k{anuy1<69qar%F|5xCp15U*y3c&Axvb z%`#C+g?rRn4At^?6N;<9m-W0&scwMv`CfcdfJEgw~$kDf=i31_MGhD#@IxjcRc4={;5 z-L2|;5q|2UD62uPRE~&M)1oM?FE?G5Xu&sRr5(9#vaapzXWz-@wDOk&_D$KjOTc(+ zYIMJ|#g1t&CN9us-G%>MKpH?^IjxDk_OGR515|upKHDcU5+ODXPl*Rleak`ifqz{`_E*1G9De&(|R@9U%CZitmtkI zmT&-ZnR$&rK;O7ga=bP$3HH9sO7F{wNkidm&7(sFVhPYA2md`R??BTvEwqFDo1z@~ z(vI@IW@eT&X}3Clb++Oa`N&sSkL{IXDEbB%;cDph)=ILUu$D1!Vq57?5(@0mtvXkHS6jbi0l->7WEn&^(t#jgrG5ikurEVgcYp2@qrSbZsUN)?Q?LjAP2<{ggEj{$$G!KzF`ejr#U{Rv{IHl0r1QA`T{Zz&Q8G>QdMG{|7~p8(%b+e`d?|Sd?l88k=|4G1 zmQBT*i(6lc((d1N-HkMrZ_GEU^b5he)Yz~&A86lY5KA36p(FAN#;iBX8Yk%Pw4ri_ z7D;=OU=}b)KG}P@P{AQq&|TJHzii7GP(}2~xRZfO)zE2NcUyqL#?r012~(dn`^T_s zRs6+LdG_k6i~xrBxKeIAV;|7UL;uzWRo?G>tAYDd;-L*=o#wZPKd^{NYCbD15 zbAM@xx9}djguEM+d5^%ixrx+Sg|_=CDOvKsYG@jekKmj=9>ZixmNdTCh@z6#G=^e5 zsYCfaaAF|eTT1{s#qa8^Qh>PHlxc2qK5XGA=YtX`Rt^ZKy$e&PPW;Zwe4hBJrjWcg z#d@Z_ULU+xg9iocT8%v8gs244ex%;G^(Z*mKIt>v+tvuv2qF2aw2z(QCA=hkTl`6n50)_{(Q8DsV%YUv(zS|sEu*NGc3yPJfXwJLj@T#g(3};_^1pF6+xp^>>h^S-{k$-BdL4fa#V0NCM(~a^ypFQQcpaLHa^lIuM%>pU$iSLk9=X5s&mzL;bW z6zV3M)_!a#DUP1s1S*n~I5ER6(YYbf`;Nv za6hw!P~DY_E_162UEVnhiC61z*v-VXBz9vblr&;M+^st=0~G{v{+Q5_U3e$>bBA<_ zP=bp)3e7d3$0?QQ7jK)fZWZHFr^L~5o>6o6zWF#(s-zJjK!|m5N^&8+%PZOoc^$G? zTQd|oX8HgS$?ze%3bB~C9*;pQC!W`Ij?o*L6>=D4%VH9JhnDIhxv2_oyOc^rr~}8W zCERUKLSLDraV;on?6Wd&MBH1g_1ZJsWGg_%51zq$rMmd~OGTs*AL?B*Gy@fWMTbDB zW?x-pQpSOz=o*~63O@i=>c$mzoCbEG-U}E0>}J8_MBlk5THRlsmExa$5y2hf)?Vj{ z?^?TiviGu!QMlN)Ns z>EaEu%&3<^=nIvTwl-uu^ByUdDbHbYA{OgwkEtk2KID|kWSJ~-s7%vBqg3L;Be{z z`Bq9nu|tIAJdq#2z7GIagAS0Hqu~k#rne~CLA&~uI`Q&J9o-MO4jt8s)MoEouPy|T zMJZVateM)r%Lfn{eFA_70zpm5579ls{=81WxE3E*4|2zoW>Mdc(2u!;r?@ik<~(O}kPQ zinr@ry@|`Jx;=h*9puxXF=iQF=6@$EI0lv!${Z*pdotY!c#G86+@wd& zNGJ~kSvFauIGy}eDVJ>5MrJ6{pJz~pcA2tQSUiCS&|dq^0B-6%f}Pfz^}Rks?cr7M3*r zO52`aQP0l9!&}^j>OViOcGC^(0}IqR`gG;EiT{ICJf;`_{pdG8di>;1yT?EMcaM-i zfImn9_(yCt#YkvkA6PE2`*2?QfJd$J05h2%YGUUN$O(>#C~!c=2ahT8V-q{HFb4lA zz52O{irYuFzyg>-WlBx#4QN#bu)3rOo#r3@Qk`M{Qc`Lwl8{fjCZ8@o2BZN1FZwr9E>S0N5CudibY@hxZ-AXw>u^k9dv{EDMHT+4XMqmis zqH=79YR`rzERIiNU2iW|NQq*#Q#@TJh`s{I6XPHmu+0IFDiZ{J`N+= zG8PK57Z{xmG5jv(r(00W0C0-tH^r++T+*)1fFNYAVbai}=nUUkfU-LTKuMJ<0{*Sl zO9=%24*rh)6k<}Q>-rp+bQEw)RimNZQx(0jdetc7@xsz!r#dhigQ=PffP;lYfOD3n zW@U<2b?tW8rfLqAr;F^|=7nEH+lD;hKjdu{7HtoXP|S^1cO@WwZX_p9zHv3J>J%=M z{hUi3h#byZPWid}p_8-asis-kZ3G>`r~TLUc+<+^+>ipy;TPGe9_ja!Mu98F3LR60 zwvlCVj_|Qk2z*httg6Cq^2OS-4=b(+)-ZclSq|qje+>Ier;K`^`6X+=wF!qN^|MiR zMonzBo;xaljRE41iF#6dkMWHXS@S?VAkzhCYoOvc63&)Ht^Ms)Wd<-Gp4&bs(N7yF z+WmW%#+S$u3GtcaowY*~piZ^)IOfg>AQ*Gt0eH0G>EN>$dYF@U3&vj~u51ZP2nvQs zro!s8iXvz1M^jw<%{mt7vP=%k=NyXV3FfXAH~h+Fb+@i)&l~w=e?8DOcpX>p1>)j? z&h2AEEl?xUgy4as)?uKmwEAQMU9SSwB3 z+lNfvIQ0ggoFN~iBCyaHG|B5em*|?e3&8NJJqHScr8$5x4O|diO1g4NS&4-FG3-iG zTh*mJfnjt2W*}RjfP-M5Z*ViDFz^Q0r=@b?PSDzWDMxHrS2OV2+ZY02JX#@Aavr<) zaMc%}2fOw8Oe24Np`uaoR4#}n| z$6n^~0~LeLgYhs#hsPFx(8p4%Y^FDmf4xqDK8X`k2E32V(d6%7JHl~R4OXd3R^CqdpK4xXKEl>h= z(Ej!!w$~7eT>}}2jOYRVRM%*`p{bz(FLn*RZwfv*?J>(SdNH*!wk`@S!bI4rrjMIs za3Zc&n;ha5$TyWmM&rTk;e7Mfw@vTs1dNAZu7rXL5vI&OBHs;x(&qXj;rhDh=}g>3 zFOo40dT6s|i(D$<5Mo%yp#n;Qeu%36!hR#(bO)fzx=JF~T02S{R&~iAROTT~6H8va zG=*&NbC@4gM18fR#WbM&9S+D2olg2v0UinPM~)kXr4vuLa&jQRu=QcY)XH|78JLL8lJ4l-N3HKDThj7eL`_e4y~UI1VyqF1OJ9^qr; zvKjIDj`B1z5RHj2e8irM7K1#6Ps$>Ms8tY%CJO|r*kU{s3QLTYD;!(RS@3KD;TNrW;9!#sM}cB;#Sbvusfqvxo6p_MaT#O*+*tw-0e}eX~HD^#IB7Seg-YpvjIc>GN4xk^a*Dy3-VjS zv6@Ou-TYy+cQs}QWO4F-x88aXrLE!UemwO+;-4q) zq;RvG?>3hRIsgc| zPV`>hM3d2CnVf6p3M*e8pJf+ z6$NPqr+reIG=F1DwF>;1Sx61_rI_boiI*Aq`UqzC|lIR$N=u!ZZ|CZy(pN^YRXq{w%)6UuXdxN|Z!r9y43 zmC6zSICnfA^<2hr~ZW*yk;qYMG^_EjFI(2n+E_gV8b6q z=uy6c45VI@-X;R;YV9YI+^$F;K9^+2K4H$J{;5W{kb9}s@NNF+prW7UtlxWr!sYwI^VnI!OxjnO)!YI> zCh#4VBV};Rm+-Hn@2rN-tO%$daG`&Kbt$TD%riMdxT+e_E7-wPeWts8%ra^xJgQx};+4hSju5qtF4p zdaLD7v*yn6fx*XM>Pu&rb>j@HAX~^3FlGG0V`*eqK3cLtEYRi9T`BUdI0Ugb_YsJ% zZ{8djar}J96vS+Fqz@`gc#QPlCf?&078fW&8 ziOq*f`<~;B_-m)y&+|uOA5!Iah7XuafB~J*H!sp~{CLazE>l|@hPh1<2ha+Jsa+9R zK!fJgpEF)>8G2?i+U@bnJC|zua|2E}ahK*~BB=re1*P2askRIR#D(^fhJFgB@?5?d z&x;xft?7@$Rg%{CTyCMXj_yfwSMUM{Z#v~an(g6PGr{K~LL?pn_Z9wLmc3JBa?LHw zOaO4S>XBi1;f95l0I+GYnlkz#c0NgLgt(FHC!ox)L|O!NMAUqx@_8F>|2UaYxt4t% zu65a`Iwl8IrBy(M{HQ`e#^j6w0Jh2CZP(FLN`zWHZw(f(a96h8*nN`OZnlS66Y}E= zIqeF1dzGk#ExJS#uJZ2M>V%f_@~^C#>Ahd(q=i+!_F6-vDc2gW|WZza7f27 zY%dl_81U@|nj>7hx|<9ZBd}7lh6EB;l4$cPv(@BVf#{mk*E}sqjG?1Y^~_CXKT+6# zbo2zcf~m+s96jy*dYbpI(j)0HPz7xoxQSaBZa!xOFtDb>_676n(Gg;Jue*c&b|Rut z0oyzLfGmUD-u2*kGt@DDRu#>_Gw8^S&*f17HP5iN5>zMO4bZe!&n|OQq||^gZ)kOc zp@O|Ocz5fEd<0d5?x#c|H8XSU&I32>+pDKyQB zapSOjMGrNeYIUC8CW1Iyjts<)__Atr4JKhPgIH0h7ORpy3HLUppf{nrGA3mLv44O* zk`q{AU|kPM!4d3wznul(3CT$p?PLs_f`*Tr1?2ug#1OQ};0;aUwc~mTkS<0?!01=q z6ihy9UD$d#XgN|L69Ob1(2zMebKF%RGyI*qWeu?gcLqMxdCC4|JxM&Z`eor4dYf`I zr5{mMcD%Pp2-vdwJJnGJVc$$T1*bSX66lRyyUqvz*s5hiWYiku5!D|<2A$|->NY=% z4D4hoJRzRkU@3~5v=FWKpp?(3eESR9!azutyCDnPjik1Wqa!sSUJL@qnf=KpPbte? zfMM`}P8i5!@)-e@2;jy4{QHeoj(_~0J^G*NXa0*%{X5nDolXD#+yC98%fLpJ)uAHD z##G4h`E8WagML4hZ^B2@>UCaA|9r;6l6S$nKMlI+NB#fwPq|aPP=f$$o=P{9F1jKd zuRe6kFA|%zlK)h=UIL;;zt8*EADju=U*9>pjk3s84B6YT@OpF9AyT^Aw?M@EW=EQ@ zOn#KkuhZIAeXf7kt#0G5nJ2D{RgUb43^n2wTED}gQ~N96eyaa$UIYK{=4CLepG-z_ zaJV{bLLO}Y@9V~$$@?njJ%6G4UrieJ7D2?(c@jIIJ-{+u@fXzBNSn|FYG=2~MZdyAz9XN*~-QX3CR`_nO6m$5$n zz!6Rck4PFILQ-%+&jIui>56AnR-Rzhh=q~wFu1s=4VKh5e@c0L_rV}Q{e6N704@GD zr?X*K%{1snMw?hGXjs+>cSXmYtEsMKuV8mINGekN|ERH9+R5l>4nWX_bP@E2kn|7-t`%N$y@Vx&$T4H>w`i`4nk2h ztCV?MY*Xdc@Dgi!0@|W^Ip*J^9|r(e8u-~;$fM<09I$tGPB@9zmM*L5kq9xrVX_Se zyv<8oHh*sOPy%l`jrNPZlUuJQ_gxgXnx5mNA2Z{jED>?%ez5IdgBSaxy`|gZ%zM|w zK<1ituCDXdKjIAkT+C}99Qd})G9ybd;{F|NkVzTYVrq&bt<+TuBSNdqeT|@f2QZ;O zu=zZ7)}h)jR0sEKEErI47kWtm3T=u096VcCs{lA+@J6;2395y5lfLDo&hv7G890Ti z;fI@vuZlN1gu%KkOKTQ1INfELzE!4}dWoa*gJ)(9=5DpCP8b{QuK2dtM!3+YnxKgE zZ2@995dH}80+>y(S=+Z~5m*>iw#DD&0SD4OB~B-V%tcfYP|q-*1H@sbR!s+`&`Cp{ z4G4Y!M0#>X^i%YR@l#rVIX|>!e?)#?sUT*wN$kRtrEt4B!VROJp?0*>c}BXu{RCyoeS@`&!q6+< zr}q#lsQ9pwSMem$n96ap_oU1Gt7y@K-BzTfV9k9@gQ^xeR50!z&HB>{p|pU)IPF$Y^P{A2++j9t@xcWH4->uR;di_M_@^Y*$=J(RUlCC3rpP-2vFZ0R z4>$z&nt3-(n|LU%yry#0a2IojQ01eQ6uKjB)7IG!2FhQ!b?eYM^UXVr_u*wfz^Y~+ z!~tbGx;!(k_BNfV|4EPWpF7SwJ`vqKVbVo1Y&?k>=fZBE_`A$yEkP*(;HLJN?#z!$pTuUeETz{#9KFmA`CtU(~fljo1BTYuz%Xwhcs3Aj}4zI(FV7eD}n^ zeDr1#P1aUyk8~eYi8$9eq0<}38%BFNyy$ZEOMbQs^>jyqTvS{W=C}>}V04i6d3L4C z7X@siruCVy4bmP5jGyVXUI$(De?k#;))ksRkN+J7~aOlj!{=(0@e8yqXZYKQIota8U

^0TA9@{$U9+O(MMKoJu-H?I{AC- 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 diff --git a/docs/cs/images/docs-create-project.jpg b/docs/cs/images/docs-create-project.jpg deleted file mode 100644 index d2baa3242aeb2534df20dc5880a48541344f91c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33946 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 lpU)G~2g#p_X07k6*tuR=Fkl@wy{{j#w6juNM diff --git a/docs/cs/images/docs-module_download-new-abp-project.png b/docs/cs/images/docs-module_download-new-abp-project.png deleted file mode 100644 index bc7aaacbd66395d4ce4b1eafff561988ce8456e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17023 zcmd74cT`hdyDu6QUMbS0HvtimCQ1)Q=^#aV6NnUPL8J?zXjDLurW6$d(p!MgJ24_f zTIdNifrL?maZ|r%$i>Z(Pz6GA$ga~vk|BS%LOj`Df}3>A)1dWskGv?MoU{m zHwfshz<@FV%L+rHflTqIy>h7-o*=J*5MGQ(FUHWHGKy)UEtdY8oMK zh~%!|PER`vM)Dr-uFZLko{GUjnrjoGeYK$<+?i1kbz&+eF{$)$PevU)*UE0 z8xKkxW>W4cMs|o<(JIy6-Iib-ac5V87w0{|k6e~`SG2*LJ$=}yAp7opONcI^)$1M^ z1V`(?P_>{hj6FE}Xo^uztSi}QDP82n&4?A0YK`tD_laAU@?5ig@t9$acl2^ReyBM- zHF$L!Azhv>pL?pzIzrq#mf^doh6qFDUtx~V2mKndHpke7<%`VIvC1A0VnG)o3=lZ3 z$z-jv$q|ptyd@vA&{i*-Q&_>MjR{3<90(uKY^td}n>E*W3k!ByFp;)T8uZO9PSy{F z2w1-0V_K8nwXR5TTYIO=v)QsQvTKO@!J>2$zMB?P0&TYQ;tn!9ImMz!<7?+*ax?ZD zf&;%PsMTVZuzb58v`+K6f=^G!#=Py7^ZNU~Yn=6c7xtfTz>m@)w_O9{p7#u|WM)9r zVCk06wpY?D!Vc0Q`x!$i*RaG^b4(9~n3QSy4Q#S6(wrLIQn*+8(s>+?K%V=Wgt z&OAIac@Pv>q+*|x)7g&S`lTpS_C2XouTX^G2sY$ZExl!_v_a%G!}J83U%@@e6f0Tn z3`@jAnm&hSC*vtaCT!EpFgPH5kq6T8NPBmxX=SC|*FN`n{T$0}9>Y|nYd`6K;*8^}F~0%04T8d+wTl$fA|3``LL9<|o%3;5BCc&MQe1$QqGvf#`$bo3sqXq}pg`U)=b6 zgXe{E*RjrGR8QZ|{miu%rwSs}TKDrT-@J}cJ6rek_csJB)x3KKoJ_u3H?7>CrRY9+ zH&L0+-U`7w@~v%p2X}QI(;rxp;m?C_D1E9IYP%kYH}*gtHI*c?-VjgqclJMpT8Cs! zN`8VYP~YXffa2&3o&RE;ZauOR6*lE!jk68Vyj-?EE^b!^6e*3`PiAd$3)W(lQu_{2 z6U6#Tu<{4nhR&!{`Jt3gMRsGk!UD*bZQnLe=-TjHP&t0E3-Nev2mnQ3+*KGnHB_v~+02QQj=ku@G`YSH`JWD0Zc z0C_h1G9MYB!!%Gc&o}bQz;U)L3$jQ1ltC0t%;OTubuB=JYh{T;J*Ppw^;062g!=K7 z#k?+W-muB2I~z$bR-ANGX&I~0!AW_shX@4=h=RQ7i^0=Xs=Y^T(34rt@ONG1f?bB@ zOmVw~eBbhhBS+|XIZafsjJn$vE2WX!H+PbKm!Skn&t0;T-mE$EoM3-p4Mg2&O=_*y zb(1TSPXm!iOVMkU_=hnE7;g93md!Y)wIFQF0iJlGDrRmqm39+5`l)<$^wqTX)4kKN zphf3{z83Fs-`K_@GK*_2zCSdif`6-8JXc29DH;X1mxcHMA8Hw-9xdY}%HIguRq@pJ zS1hng6F;6_xlMw|Td1&R#}l%n370ML2SVW)ncMgkSyabC{K~6Nh0frW0gGbyneP6! zo@J=*S#=Ou2|UZe5j!em>AAl%@aCsg(_pcJRNT>X>s)4x>-~`#mqt) z6Eyf*s<-&ZMz>3aVwziOeXWEF2A8q4*eQTb{(z+KHg0Ag$>go-u{c^wE`G0$0H|HZ z?sD_*X#^lus>KfT3vZrrWXeFra z2+w1k8NKnVYN!rx6_sM0)~3((z^hXydUn@FlR!3!Gb&u>G5FVJt&}1mO>I4!Z|=#? z1PxAOeB*r98@kP@B>hepM89fN?xh80*w<+oD5C=MW@5gljN}a?jn8EAkrMKoO)sTn zKGZfs%`&na;z6-*ly}KQXm(S!%YzPejhMF)dDu*%;@pQD*nzb4GJ9+DI#rPmX)N&S zay-{5a|_9`qE_@yjFrq*C1K?LKBADB9sgaFj;H^#Xpp_IIRI(oYk6qn?-O|v)o)*d z3>Srn6KQr)k@%6k1C=oj{&gi!B`R~STYD4%nrV?C$aR~z#o}}~ zn7xG~2BJr>qsQ~3>ykI(qS3W1F)tQX(!0nXxAs1!C%5rnt~ix@AIQAfdLy#~eA!B0}Gm3AOxdoY3I|Wv& zgd(4N49WZFe)Qcv9eA;q?rw(KORD{gJZ)iaJ7=A%q{h82$?-J3@OZeWN9_Lk!>Vyd z-f>RY7#V5`^Y$UWGaw3Gnm)`r* zZI#LgeMnr(*d`vdy}IC+PA~eEo=S$PBi!9fg)yv59HKUqiZt``JX$q=goDhbt`KWu zOzd;ZX(YX-x0-_=gmVseLmT}LX?AmtqzA>^2Dcx?2iRNe&seNe*C5r6Z$HynOD=Q0;tk^A9}@701#w-!q{$2V)2A zpG%2nv4^v@nI!_eVRZ7^daFM8Lgij_IDnJ^@f}CqN!nTCB?#r zif0?$Jd6>0550f3)AmbLT}7@{x;(ON3ITF?r}&1!h{7IxMBOEmOE#1@=+;a-UFz9o^4Dzqe~o)fW9IL> zbc|Y7x9S(2w1-aa9HbRShI;a@B-wNL{sIC$=kgolf&L}#ty&e_jpZ2Ct9dnvvYlTg zf0Cp^gsf?NWwJ4<v))K0JLA}i;6D5Me1gU!)9}Fq znO;*K{QVQliQAc8g%Szzd)_tZT@U%7duMSEH%mRzhAh)M_4W;PmELa^Ci@G;Ke6>u zp*G~Zy4$6VOx~OKaLUtQgoWDXMs$n!^efN$3KxYf;!4v__lVZZnNmYjMG~6I7ctiG z$RdpL0?)%Df7t|!BjA|QY!Z(83^Rpui&XUgVw-Bysq8VfoB&^$>8vTUH9jOm{ncGw z5a7B^HP(C^2CWnUpL%5#u&zIDVnx)`Pop0d1(Q%`Ck4kmG+aa$KsU+aGV@&iAdX^8 z8JT>Reev@$n)4E&-hf>QueS7&BKAQL7aq82hlD6i?_i3xf_R#o9c^D_-$x9)hp?=B zH(>@^`sbu?edn#$3}}$U2&Jgt6)-WN)qEtFOOS6eQ=`1*S@@f>&~7DqLi*%_V3Pee zCB|DS4f<4+dwdn5P=?2`NA+Vh4|FsARRjx49e~vhD3g=hcu~hr zw}%v*57l^ZGdRHaR?6w~tFWPZKLNr+I%$?S4M9c8bZA71$nmYVz{;=LZAp~7+KLes z@&2LP!HJ{H72?6<9w*bfk)}6%PJ4Gg9(56uyuk%+1HJU#(>p-!i-tjFtz(qu+pOJ? z>aZX*lWBhV{ny?#>`!Ikh13vUi{=2G<+~fiq^*(c|_dv%Q$6RwvDZ##&Rx|+cd8Qk)NN-cOWcwPj!9n9(c zp1X=|y-y{^|Jgh;4PO`%yA>MyR~u$c% zT6a<~Hb8@b{w<@*y#}B&`>iuOGLdQC$Ed@t97-AND=%|I#g11!$dPzYS4cu;`thUG z5c}m;b~#kU#;;aNnXKcLIyDLzBZR5|1Gu`0wE`^Fg9f`%G6QdC@bU(5O;Oa^DKiGg z=@=E^A^wpNcP&I~zoq%pAiLOh4ocXi0=Q$_rW=E~G1=rVdVHfg;sF1O4ON`6^7LCe zd<6;0!L)RQPUV979G3}R)(6tVw0zk4pz@@yGT$6tFu`Sp%MsmS{x*VR@nJQmPI#$2 z_PJW(45*zo;KxB!Z)nl$E@3Izn|7ZnbJXRhqjQ#noYkJyosYQG zR9t89LSpbduy$jR)ur97S#qz8zqV&)`0HMEG`0bqdswnDoDLecVDNeeGFg9_RM@AN zCIlTFE~5$JAgY@pUYcPC&AumUe4&}{EP~P$7)F5v7A%BLC~9@dID`821ZAeS2Fh<> ze=4R*>pA7NH-2hic&>&vN@z;29A@xA5_gMC!#jaelcgd@XrUAxQ zK|smPU~{S4opk&7{rBZY(C4aX^24%tKf2djDc7;DcVur^Hu2=!9p$=&i;US89KZIp z^o%b*zLA6eVc0+|Q>7TU>aVas8M8w4mLSay9cTS(!J>|v<1y+Yn09P?@Wo@u8er_x z{rI7X+tDQMpJt4Bb*4uD;w!xc5(-KVhmrT{0~o zrm)b~2{c`M__s2m?>lCvcZh-lkCtoaBE%6nAhoG_3z8_6WYQ+5HW@wf4~hj?|}a+zrV z2A$4p>~(_NwfWNT#i)x^xw&pnF?JY=>MBo^!z04eq>T9{mfc`&+Nqnc{_^Z4WFp(K z*mvDd8BP&-bjG#^MwN$F_dq%oyWtseW|wr5yUCfp7cV^-#HwK25mveppGH$AM+1`T ze(7;lbh3K;h?pEkuXt=zZZKUFR)9T?JA%MU{b17DBd7iE&SVuotY-OnX&+D~y*%M2 zcK(XlBIItLwXloaT@H*lS@nv(HWeU#49qjW2EutfRnBX?j#K%jWPZHv$ArAhd2nLZ zKpRO~rTzwNDb~=NX`Dve=za{+gL&*UIk@U^uf%&hRIJ@I@2YwlzrxhDd>!Pz_m8CH zk<&yUyjD`Fu9=jp!JCaml`yd2F(PE{V7K4kXJmJav(WLE7H^Xq^X1L#Ok4PXT*bkd z-w&jUpu4sL;p0^P@T+Du6tyNY6M?U{JT(y+3X37;6+9hIPWW+)zv3QxZtjPXwK$Na zJyiL??_9y-*7G0-n)g4C{`2`!6$q>7X?d+U6e}(Tz|k zNQKX}O4U#PunmL@N(-UvrzZ=u2Wb$wr4 zKy@sn8hZ<5e@u+<7SUWca1@dbIrUpkz8wa}#j*jBHmAmp1c|!C@W7{YU-tQFD#{a8 zY`mi66xwHn&#(tMKAQwyc8x+2%fMXztI2sIZ37Rp@EJ6VeH@K6-9>Sr;T4x-Im$b} zL#g6eOV0V#`4!BA2_ZpPhcfE$Q+U7Pz5=y5a<&rc#pO)esB;7@k+!li^Cd)-@5rmX0I^Doq2J!65VSl5`FmRTrH2h<^cz_D$9v2}B) zoP>nCcR93kN2=~KgRjHNK%qpa9gF`Wf&si6goPuvsllQN&lX)Ti$Ztza!>HdoV+bA zHUiL^?*8z#q^w+1Q~;V)VwFb#`?XJHp8*W-m*z$t##dE9^*KBIoNTy+yg!C0k#m-0 zRvi6c(UiM$g(go%*mB!)RKW7_tfT4yBWmwHqMdvq{A36=)*>8R|Sr1z6N39&VP79%Rx5wRl5p%9O+^FD1P`gaEszM%lj8B6WX=oZMbL$@> z@JDb#OYenj&c0oK%cA=a7~fWZ8#=7>9p0;qwnWE!N!x?vL`S~l_1=fD_AdFZQjvpZQ@#c_I=#3MeHthn}h<5`)>eQHbwz%T8VKP3kN|J0y2E+V)qH+4rZw z#S|}6*c(WTx>=WM_I;-F!_L;-)eBI96(Wo>!lELd!u(@_r1-PD4Db^!iOKnWV)tk^!f9po5zHLy-WkU0`bS%sC=g6Odv1JX;BH7MQt;iK?>*)U;q&q& zjK92MXMIUT%GKJIQZv?!EX|m%U32P;yWq-eyklR)v`|LSro17}e@8hoV`@K=*W}LR z%_5$Uc(KSd56V4INh<*!5HFZ}cR}8AIm~;)kdN*8*WhZOs@7+3Qcr{s87-Bk#C>Bs zamjsf3h@DP)%LqOPvx}__{_-Phjd4fG6qp7cXLE(NAturDL+(}_6iTw^YewEzNKK@ z1dlin19&)_qhpo>LJ@ektEOXnLaJ6j)eIO=mhaNPQ8;2&~hhbT&y5jrNUA3JP-zc1aej(1HSeJPBlHE|Db zQil5~bbH+Jq=6l+-4BN?jSrr`fSDkw}YX{Pxk{HrM@ugy58*RI3#&Z zvPn?FqqMNx3IXy4#aGLwBU)+zh+Y zjAt8vB_-oeFW*BXlbC;L{o~ls7)^Z-skJO;nznbY2&#@A~X|mX))BhUEuU zKdx>_v|dPJoSYMw3rQrGY7dI1R%`S5ES9B<(P*qS@Drvpf&dw^?$G7;B_(l>Hed|O zm|zCbep z0za9~1iRdPd^#HF`5{MO_DIKV*qJp!WW?U)}6lUDEvyhi5qtlUE~@chcX> zqNU@fJ4vzmOJtle1Mm4Q!`rYQLA$dZRVg38|B@EOuEf4i+DppvZ%8k`!b!dTIxEUX zB^)$ssm&(L0J+UA>=tu{aM;afcX>L?M)+*pCBRlY<5r^6E%o2aK_wh0>zE!_#|x-E zEyO4u6p9}f`0!e4^eUWNnoX^wHLBt=>TrmiGt3VyD4RZ;%8?5bDe@KQ*9tbjObw+= z@qMGPgfx&IyMV>tEi=2ufmZQdvG{2nA8TmUNo{NBD>pr*Rj+J*`YY%GGBX>)3P6?R zfH zy}UlOD|SM0yZlFdqMW~UhD<>#_Kal+gx7imUPvEi(s3!tU|J1%2D|5UDlP3b6L76D znhkXkO2`52cHpYyZY{`TqbOQpYF5l?+T$g3JD$pi^n7V|IhI@J+M*&ma9&Kl3byt(SXESAW7I#sr*j zH2vegb^Y8_?-^!W@z@`1la63ASnA6rDZq@8q+4mO!Py%H}W{J+(jE3UGb-3Gkf?F6nh}7%EbzI^ggHz!NB2Z_Mll&j*IH*p^Swm7N@`2N z^d92nUxuys9b%n7L?OL62=V?Wm;Prh0N~xNX$$@6J8VmVij&B#DoM=UeI}nv2VoAg ztgpHaRDYgwy|%djWH-^m_##x_i~fkk?fdHr_VC+Z628_SE6@El?D16eDJVte@Kt0c za5gXDP98(&6nN36X}@jiIj7}+YB2*)`BG6DXe+NTYkYOzIcHp#qH)Pm!HX5M2D2Mu zUUmw&(d?x4jYpqVo)DTTW^`;w$#R7wKTgtGWcqkvfxs(U@!dT%sUmdCLts6r5V$W$_$GzV8n1Sx|c*1K~ zFTuF_WDmCPHNmn_Vu)4`+rVI!hx20~qBcyo^F<`s63RaS>N1#yQ^LiO40D#s+ z=J5D=-Ii}0;Fxr+Hk#^va>=%+VAV~I;8;IsJcFg6*6xkycpsUpwcOd%p3!7W+u=RM zr)%>_^U@P7i2!yi=Dzz{E(2x3@b#$ayS-^L&DLwcby^xB+s@Yv3`M?qs;gA+{+$Cblgd18Wdbwq|%0gasL=KV!tai4u- zTY_1cV~F~93zkJh0EoPz{L!tvKFspK-rF&Ovx`Ew5!LRCLKRPgbDWm#bh>Q%8ZRJz zka2qWsl`55txg<>q5EY&!oUsPrMhv}E88rnfiQ0K{4oS}QdFxCYLKI8r01490t#F< zZiHt|e~+j+vHHo7>Q0Rt>Q-xxqZHt;yfVysmYW=tAk)(Nyax%4W=zcre>t3c^R_H( zv+>h4Z-|ospO=3(H;9SKoI`V$dcgCUadzzf97VXm(gt4>by2apN1}F@kc`f?>_VlO z>WNPM)hkPA4qdg}S&fI%{D=9A!>=E^CO_xa5Y~v8P*ZExF>=gP$PXlA)Rb49W9Xht z3oo6~_T8Ip{4}wthvsAuy@s6_j4*sL);bjHDqUum7{TG|MvHk`$e7K68~8YW?}x*c zj7j$|-y`}t-!5!Vn_Guczr8U@UCY=#-4F-;-V*ES`n>kgH#MvIb$O0`SOr7kj)pI@ zrfF`ltDn!>Hs$umA^*LAnUFzH%Hmj8WizfMq?!02_Q7C7Dz@78(8u{tV=d*%tc0IJ?zw%1GHhOCXlW=E%6 z8?D?8ToQp-0*kn8^4 zthl$^@mcr+!f~&5_%Md-c{a)chrL^`ISn7$+);;TH4A6FA}6E1rF=!H694+Ia_+>> zBad^HFG1hzXg`4!Zn-jEVNrjQ0g1YEfsC4S9F(F~CZ*YCWvIBln8q2VfBFA&DHBP$ z_B#4(R_MYHHTBQdvky16?JNFVu_Gx5V%v`vn@BNBpjE)!!JCqm_30)*LjV9Y-*uc4 zB))Ac@xJsrws&b^%_($l<$Qp=srC007dU>iWApENK(oPy7l-5v)$8XQE zrU@4A1~Ji>O<8{u=bU@g6|^oz%GO*G!Rl#4aHf&O+Shk}(gbLk9*wNGD8FQZy;*@K z?`0}iwggGaI9m9-Q@r!B@;--FlC)sDcna!TKV>20b+=ahcExs=4jbe}5&E8@ep;bYc=( z8DFYZqH4Or3bs?eV01Vvs@}RloG+Zf7Qpf!s>hSw3W~N2#J#B<8{W)Eqz(ToTXQ3% zTyCf2Vq%rJ7%rhaSqO;BGW%}MGZjKwPMUqilzveMzK!90r(QC{m5@R)dBX{jJTXNQ z*p>K>=Q+)Lx~}1V@Pf{_a<6<5-ww!8x(iG!aEXo2pi7C0q_z5>c+D^{C?aN-rJ6q8|`2pn7i#qHtpo`ZMeD`NfxgZ#GvGI;GB`WGr>cR*koRLLU zFsfhPLUQW!?Rgv82a^ZuMu=EA|6X4xCw_={|IcO`Bbr2zPY1&GDn%k2p@itJGtt6o zW2~aZ8$SD@oPpP%ysbnQEscyy(yMXDKS}*>qMTz5SZw&0 zcB)o>8mwY+aU2H!xpJzV!+I1kF^@bb&t39=Lkj=t`d>x?{`UX~v_uXpk5f5H2>y9L zXfnL^<<-7-B^CK`d6Ge(0tMw?M`~V6o>9Ak3|ENK&QgcLvh5?_Mj7#kI+W3&^ z^)$q#J(cQ{SJxq9XY1(HF%f<4M>@NiI@Wo$TaJTh!eKPXW9s9N>OJ$j#Yq@XE|5 z_b9;4l(X@htIki#2g;p&!;^|i$x0Y=2U*@-Ez%$(`A8iCwf^*QZ*d_GeP+0X$~jD; z_V}@uWT{tCjYF$iWNAiMw3>o8Da?U&vVUds}zPht`3jn~HLPrIES#c$A zalx+=#*f(WV=OKj!#wC50UdpW|>7^t1AG& zD`Bi|TLb6lg@mC<(rwT+avNv1K!M+VE$8CR7V(cQ`0u@ve+2MP76Xw5ZSmetIc&>p zH9FUZ)1zaHzeQP~=3JCh56ZlteFiD8=V7zOjS!;vG!tn&`8!DGjGhoojFSkZ%-!Gs zQUUV|BcW~E#gUtkLLY7+kdB+YyqeYi^$BW zGM;dsOa1A>9S`hx#1oK zZX_#q^y7C}yvjlT=Q!rrXX$OjoK}6&9?ZHBJI&Uur=RCOm#-cu1l?NIK1!#=l)I0w z1X-r~0=_OXg2xipLaRpWm-rvJB76_n9Kf==?+Y)*h6yixC4y1W%kOlqO}$J2UL6ah znl)DnZ-Y*^1ZG;e-sL5%zWUwkGZ8x97tjE=$G0)ADJ;W;O96v;5h8Z!~Qb&8j(>&z>aTd74~yg0=ev@dY>FD zEEF%a_aO}tRWL`Y?Cv2?O~>gC?YV7@h0Un`MwSd(Q(^rh4)@Nu4JHP#=*hR;x}J$2 z<^HrT-CsZPFGn}(MM}k91gvD9IU}pYZybSNldX0a3tYqvIDX^jEAQIcfRHK&HspNM z%~<7w=1nyat=dhx)gIhx(d+Y3hACP5fi7JwcNG=Iy1pgnjlaF^WaF~aCSc%IfI55{ zl8GSYNLkOGj=uc@Qu61|d(}N~_eIbA$eA1=aBqBx!aT_U{*pCfV&^YGQqmIxuwK5I zt<>_E;6Y}igJ|8lGrX*sb{g{9IV%&b80f-w7;=v#fSuJryM9sG?QI)EHFs&g^Xik3 z%mh$L9_|rM=1oic6H5P!^rH8Cu5w1(MH(Z99A(Y$vFVSiI7o7aoB<#)UzKXwbcD+VC(j~2~} ztR;U6a?Yh)A|pYX-!iYy7RLKk!{89t#sFuqy`hOnF0&c@UDqRWJF_r+QGH38AA2t- zx@|Zk=mY_pHn`tHF=jHBOuiZe>T5TqVEJNwl{3aJ(hzZf_G63}l;*V(9X1J+T;t#i z;vFu!eR-A1?q07EiiJC|0ks<-K6sBXv72#!UN~d6p@m>)8F`jkcL~ zi#{~Tz`k%d0*eN7E1)`Nb{wUizf2X8OVoM=m5wmFe4xQpR1yW-3b0^+WNPfiDN=}7 zw8S>bz(q8D7bU-;H9CP8G%t(!(EK_wwbz)^M683B)HrzmFj}l(6hc?~+)?3fv0rNc@zb`s;k9}9HkCZD|dqgU(8ZxPvBAFo=IRvDe;B+J5 zm3yT-)r!@M9Z}6Btxc{qz%GB-3f+qJGOn?f#&8NV$n#!561faayC_unrS{#t^!_a z?N|F`f1=Q}EcxaZ{zq?k-}ylqvdLzUV1ry+d{)CfNEC)1{u{PeF|{-lxW0}zR_Cx9 zSP*+PaLYj_f3d;2XmY`+ppPXtj9U?-u9C6A!L|UWyMGCAFPwapoj>gBrz&d7F-Fs) zM3#viaG}i}t-h?u5y&;L*p}6Idm(MG%w8$%c zunAK7G5Y6TAQM{bOQwC2pQ%&}rHmWxm>l~4z#=ar-90=@ZUX^3d-`t5qvry%AE6PEM2osg#;7pp_g z;1}xh@(3ToZz%D4P*kz;E0>_Ff+Lbm&;*!GO~$L(*3x1N)CxD5{fwxQf-|ny7m=^0 z1SKW;055L*pQ^@xWkLUxcYKZd|Cj&HMh+}7AWW0!&=8V4qb%V2r}#ZLoP0U0P3P@1 zyI0GyocbGulA*a~v=9~ZyEVmao$j&=lmLp_`zRiHoZkBOUlWrzJ5Mu2u_X6jG`Um< zRf}{<_28SzU%5d+Ci3TL-jnPEccs4 zU-btDgiB4n0s#*cj*SAls`Ol(*s5Xq{GJQSr6H+C85t_F(+jxW5FIxbWs!c{1e$`? zWvL$Z{v4Bhjj)!X*wL5fR(d_$f|BJLjqxE+?-F(`Q(NLF#@;)}ixm9w5O7jFH%aaYQ*CRc5bTp@>$2y zdYd!A1ycgrym%*dKTIw)U95=5F+__|DR~71S0V`}O~i?z{_O>JU0JjMzQQJ~Y+ydS z_zrkuIl-zkpO!@BV`l>qHf)Kvq!)a*ZhpP#{Zm&Fo3yH?%CSb7f5fe{g}?3Cys8mxh+A+wR{@+xkFF!7g7K$G8?USYMQuK)Nv)0&UAM=9 zqT(OMd#zHKGk&Ts)UteQ+fV)=CYjNkK`UqHJKpkxy;NdjGBk!h)M}Ep#Ow;p?9_F zgbUp5P8hj!5x_=+qNP$SBiT@j+MtkVpu({oSc9;w#qA6t8l zCZxJu(qmWNfC|C`jiy^5sf?EaFB1Rd+T{N<(laVDQPf^{!Y+pcN^x#3qljJDI%XzAh0sfUWYx zri>!tJQo4)-hryRE;LlqL_3kz2XZ2tkH-JkVpL@X-+3K5MG6gRgRfc2kk#?B^_nGFPXx*S z(2M@-`SUN(gL5WhRt`NrxD&Q28|%iD&@DZwqbpe!qsbTCzO#lM7g-;zVQ6@XnBor$ zlkS88@r|$tnWA+>YhZ-lpCDS2XV0Yj?iQi{Wh%?)gb1BI9*}?t`$_}^O21e$n-}% zp!zc`@wV$+zvl|v2kUUu_Jt6_(jL^B#~CFqRssDc17x>#Rva=0izF2{XgyL~-m zeZtd!qesX87v&MQX{1K&L#gAG3_gsNb#wx#)s*No$S@$#XE?Kd`je=V{;)IUaN(ZnCwo!K)?)Km_s9Z77db;&``caehL7!82J^U$0XNXOyc=tlM zV=;`PrZLBga^|?wANxsSWGnE`Ci-6mOG-_+@0Wzhvf8n1k|Njlr-KUwf9TyB$7Q&3 z2MVVCOtr5*-7B*0b4m+E3@N1E7+>WTUsO#qt1}Fr$T+e+0n4N&*Dkq&n|JG|SDx-| z_P*H*lO-O*1?rXT3!4s3164A?C!X12lQP?7H`SoFLy^7cW^QJ1z&fPCbR*;m46?a; zr+guh&J7<5R-G1BpmvFK$8%WJrAF_-Ux6kUeC{u;k(A;dqE9NieZUJA(HwQtyHlPDpC4KwpJ#<#U;WUe;H{UCNsxj>?@MuK&_ zU6T?jrhc}N`>d6+ruHMhUy;c}^$shZa6YQN!%qu}#yDoSI8Ti_3BN7uL7*fZq`FF> zDLJ*B=u&g%2ar!}bEe+wgdDOlr|uY&aSo*o3r1#izKH&4>&KGs)i+y2(4n6nJd7`{ zJm~F#9gIbRsF&XeU$@XeSi3y-G%r=0rIM*F#$H`BY0%yd!iJpguK%#;i8DAli(zx@!@pJzYcu`xj70&_6nnbL=!q1Q@|c!%?Jx`BK}f0Z%#twF(-U}O z5*D$CIOI&NK`ylYU{x`**m{hwacmk}F#7C}INb72H9|{(pK-0Sg;y2d1ihjWe4NF&|n)kWg+24oosHsr5LJe zJ2@1Z>!QIaZrhvvbME8B-OBZ}^boJOVgW38scF*f8E$^3=s-kWWG^lKb?3(kZW=d~ z75F|2$f8Qdt&Kp-!KxcCst|Q}r zxp<6fk%$2OS~4;?P7~${s)Z|)%;Rg2*Xfa)G%*$EIyEj6(zEi|oc97iQx(B(akd9| z?>zae;mIyN0F+B+qh3jvby##7KUBnj9tHAS0NAWZBar6u&o3bSALb6uzxZ#`2`?@z agkN9?T}v@uV3H+00npJfP%l#jLH`Fxcwd_U diff --git a/docs/cs/images/docs-module_download-sample-navigation-menu.png b/docs/cs/images/docs-module_download-sample-navigation-menu.png deleted file mode 100644 index 8d8eb42d52f89853c43cf776ec63f9838405104c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10564 zcmcI~XIN9~wsoi~5f#B8C>=#4(mP6TDxwsDB~2hSsS2TEkS?Kjkbr>FYiQDolmG!l z2pu9)rA4F&LEwwqz4zIk@7(9!`{VvtPcoDD&05dOoMVnL=6d-+Q;n8}nFa&`(cV^9 z)&_ydz@($)BsJ-iDzAH2NH3?H)d3d}=*;_{2U(X>9t;Fx2i;ay(Dj&DN12AQbfNO@ zv7R390N0z1vc_w)L|@Zt*q7j*d+F}pzCv??+{!lsI%2alkDliUYrp#KLY#q#s?y_9 zsn1`-_$5KFCronK3m|ZeIpQ{mumjgK0poBh@5Nf&8E#5C8(9K_D0z2ty8vrusc# z2ZQ7xf2<;X^RM9N7U%sh2P>K9<=CdRtj!PX*9y|Ze)!atdLfnzzT@lOXv!Qop%CsO3j;tm+6*G={X>W!z}eI2BV`41;q z;DqdSSzP*RbAEqOV84!7BzG*d%0K9 z?fl&3?k{TWj_rJmmbJtxHLGx88H z;5TfkVm*wCx~T#i?V8zu!wK|T3=O6IukfXoqlo6#mjfMDHyfZgzeRMLk9VgFn-vSu zYJnZL+P8HH76+WBcW5Kg+5Ckf%?-tMjRtBE#=0cH`|I?Vs?p)~v)+y&Cbs-wo+|r~ z!N>d6b>GXwy$8S0njD}88)Y|u1=%0#Z!4t@52$iD7a87+f`{=uV5Qj1aLf8jNiBES ze#GbHo z#%?TilS>8_&eERZsngXt+~awBLpd+RmpusUv{#VNn)Ys2M9P`~l#5H~^ed$Ri~aG8 zgZG{DF(nU|X3{4PxMeStlM~;U__C_SceIVmJh}g7rZgGfY^#BQYQ41WtgqJIAO)Ta zqB)G}1k~$pzRP~MTrA≤5kQI@&swQ9Rngm(m{PvGHhHIm3q9u3>weE?$PXHgsFJY)#uUq< zoW3IuoV=)+@pZwqEqrR;LSoJp$VpBaL6PKC+2Kg*AWc)x`dbD*XmETw9X~Cpf@TM8vy=5(QfSsq`mja-fO2%2wQr4;ISR zVpQx~>fEOR_t5VN<3__b1py4hd}AY`J>wxwv9Vj%MSBaTRZZ4|?{jBIMvK zp>R@P^F*ZWiLy979`(_LAep+Q(Z!;a*s~*KXA~jerS*<+1r!#Vg@v>mM>V7`e$Khc zmSt?w2W?0k(;+l}A;_Ui*LD4}|-A=T?JJd}Mn_{{w$EM>$mzApHDVOx^dKaN} zMFQfZj(2l?w#o6+3aL4a9b{&0IkWD2GetHQkjgFDe+q$8prg_KXxY0P9TVN1d!x{) zt-R4wSYqI)P^EH_Z$*CWg*<&_U%OGLIWnG?LQ|5<^`NJA&1YTa>@Z5^8`{~C@5&F1 z_Xgbkd|K`v_EWK8H*4f3)S16<%PFk>^ot!D&n}*YuKrJo=yN(3eUs*u2I%8XaD#a& z_9HwmAC&kvI>z9(vd5HsH`YI>x+@iFwBtiGP3e%UFL;A$NW)XDxxsHm7~m5q&m2}vV-rj z4XtgFI7Ay5NG?_4A8{lhd>EeuEV<22@|{9QyX)K;Z!pHqzJ}3x6-_4HFxvh>Xa2Yc zC&!kq*63{vKQQf2xbM6o$M2H<>BqZ8DVo)(8^{jJ@3RHYrcz6qgWeT8?i_P*Do=R6 zza1}+e00!tb5SR}f*p)Eozu$>|1nqp!G!_-k+!!@ghqnS?HfLLZy@eR;b56FIl_>^ z2mgk2SYyY4jiJGDV@>L^GC|l zLm`Ry)A-pu(yf}$;KPos4+~*Fi!DXL(&{gRH$6R_pZ0BqcN}$jugrKi9rLuVVK~{O zhox^WB?P4jr>0CR^qSAs9UNm%!odA(uW>)#I*1W7v|bT53O3lh zp5SjL9vz4JxDM>ip=V*46?MgDgJPZ|WHKU$zh4+|ZGScU712WuVkI3UI`AL30f_

yb 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 W-C;2)B|R1ix~-zAT%!2c|NjAIIPvlT diff --git a/docs/cs/images/docs-module_solution-explorer.png b/docs/cs/images/docs-module_solution-explorer.png deleted file mode 100644 index 97bd3fc18eba90c9122f2288eed423c7b4442139..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8189 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 Y@|+t6Z9%e>|MLNQItI6^v>rbBKile*RR910 diff --git a/docs/cs/images/docs-section-ui.png b/docs/cs/images/docs-section-ui.png deleted file mode 100644 index 1c63d1ad3a312ba4a8202f58db0d5b22b753bd43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5629 zcmc&&cT`hZw@2&+K~#FN5Ksv)f}nIo5iyhz1cQ`FXaYhMjDSGmjC2&n0D*vj1&AR6 zhE6CMhY~441wt<(2tptsp(cdzUC?>+y+6LU-dgXEw^nk`z5DF5@7;T!bN282Vt=(V z6WJrPM@UFW#Qe%78zG@>n!tU=E@9xRmZJS@7MRou6d<>=-yfPV*Rn|W2 z1^luDjbL^ACf}AU_4^jo3O=GxzJ|UuksjdVgl@sAMne(d*-GXZrRC4E{@qt!GF<;AK{IrE3Mmfl1g=z`2mLr~c^sf}TGtunC|8 zY3|~HHs`xiQjCzSBt#+fv)4sHpm6lKa13Z87LDSh2%tR#Y1mN2z+<5%KpO{w?*=-} zNteJIHh(JRK#yVn_(#bG%zpph9ye4^V*j@LZ{}<^t^9|szLd$jlEt&uPT?OFvsXyV zL!tH6%mnn0IHIogIiXqD?KKNNt%3Pb)jiN>h@+x0@ z!XXE*eHij!QkjY&FjsdpVR9dg)iq$WXP$;Zo8B7)#xRc=Sk&h9;e6vk>;!flo0%a; z!P^J;G;7J0X@n#Ksc=tpYbKyq1(u3}t99Sm>>@+OPFDE$fe?7x!9XBk%@^(y43A)E z5MZ31u$RvC5f^(95F+Ws)DM!EhuQDlC}ESavIs6w4g$||y@8a1FoVB1Y2D0gw~tCr zrtA+DKTYCmV*?pfg@XC6Dcat79(5s)g&8@UHxl^O1gD$VqaBN8@R4ttx*ZU?cZ;M}XnDJ6T5elK1u9dp9S9wic+WNEO6(grq zjkVDfFV7{rQWZ8{@cK@7%?x%_-zr6RBU1_um+GK7m*a15bSfoz+)DAh^1S8-jB@t+jA$OysyV zzWrB0x^W*bP;RR(cHD3WY;zq_hso_R$)Ca0^ zONfYT#+jbfIAF<>+#^ZjtzPS6RD|F@O~II#Wj!qDD+ve3hQQlBcHW~iO%g!1V^CfZ zm%~9lR1C#!1^<#bAIgusjk!5AR>Ku zx@-UQJ)xjOi`Gf4&L0V5uD#W@Sy0U~8Leesk!5qixhRr*egZs-P+Xw@a)j*qVK-g} z59>MwZ~nTPj}EcSTFawXNIIx9vd(%)U2xqCAuCCIGC!dRNz!0i6Bx)*@ zMp_3DJzbe!XO2a9Z-wFk&m$+Izr!F2#4JU0Rv-9qmhat~L=Y}z^ zRkJI*H!2Z$bZw+&;UHycYIHqU3aA=dwH+RSHrn4N^W}3pd81gO;{IfO&&hA2Ch=6v zgmV=8IN}yAM38Ph3(-zQciF3m_D(5$$Q}PYx6sfvj9HFWC}KZEdQ z()-u;LykM&l95~AkR{(RkIO?|c{@5nNFuj1DtS#yeXaVX{tWP}$midFtG5~I+3$;7 z4SPvmR>H~kLpkH7vj^@TajeivE%dwM&0q_KIuAKU7n8#)e;t}188S1(J{N~PdfYsf zTA`Cux)>}(FSzm>qlo!h0a9xA=N6EU&&8{bi93HCiaS&(n3e#9j}qdc!f*Ud_rw6e zM@U{$Z6AR204(&%Q24%6gZO!*s?B*Y02aSj-gX7>ofv?YW)Hj=JBAg?cYG!cC<>pa zn(o~i19}7m?sg(z!BFA92E~AGO1<&l9EBOy7c6CutT$8VlPO^<9n~y8@3@a4F2#c&Q5JAs>tYdeJqSDrRk!D%(lGtnwC)64qy;hf| z`$X|;4{kXwSKGE_Z&28*%e8W1|69?7BNWcFqKS*gP|l`Q&{cg3gur0Tgmf*rx`i58 zR?#oJnY}t0JQqT^ft^08wwSQ<1QtBp0birbt1rse zdXtoRLNtd*rg8p8hiCM9V?a=AWIRY#9+IxXS@B6MYJPXW&n;`PuIteOw6npLOY@&A zj#N1~%q5R1G+_v3e?2pt>d5wYxCWN)t_D(Q;nyW&)d$Q=S;*J9>Q#tW2I4YlTXZ$K z5kq?l%I2;HE>4?euFM(NURTk9#g$b#)Le^cVwPJQ_M=%=jhKMgJUPGIf;L-@R8&}V zrOxjj*GSH5Clc~{Z0ujS$nTlQc1KcSZr&kWqz8wdh1z`%s^ZM+R3pZNs*(<%^P}%2 zhY*%IzEy89_~fI<%EDJxdSG{UM2UE{zqXuyPKw~GGh#uxTL@dvLAHNmKmT^j&s&7E zKy7z!Q?olckhgn!gw!UnDEss>*H(?L_oSp|=rLYB`I^n?iv?___VCfOJ)sQ89{LAA zh+kQ{9hujkQ8q<^u@Lg?6*e(HB(^1+N+kY*|NU$(eU8G z);sm^Cw;FXS{KqnkfiYzbRCX(GCD4-H#HzlZ`u=XuHIIcz&nL-3dpn`_ZCAnn&Wa&+!XC>IL^gIo4@2&Ug}g; zc>Ea0BtWY5H6o+-8t-68Oh3hiTL=vhvnKDeu6V1CO-7l=%6%R^p?h?KfICW2@~md8 z%$F_O=B1)6{LV~6mk2lphGopX$``Xuk0|*PnVJhXN2}hLf_B*|ltpA@{W?pSoT54V ztyO*^Ky6f-D4$nP8uuKz7Dwhg#Tf=s0*D=lPzQ}U_F{(j90a&R7w$##7o?TqzApf(O zM9r;Yl^YPA(eg2pyARJoEZv*n6AjiVuiB*rTVel|2E~e%3@s7NTJ^E<^_F+@eLLRT z)Y@y^xhUbV&duy=lhBfTzgJncfXRhwf=l!G(eq%NFB|3ERSVg>>>TOg*8DCZ{c%`u z!&2leG08$akYwj3jHU;jl%sQu))!xgyIqI?cbw=#FmXYMrr2+LE4fdu_!sal`}8(L z`D9Clecc)c6+JY!%PkAM=W@%R6g9hli6JJ8e5fzvRgW_a>Y?IAaWIB&298m^@cJ*# z3P~gp#H|4;<@YW+#wkUYoa~ABKF#q?=KfW*SL371sWm**>aF9*)(pKVTWTpd*vHe; zEn_K6iaz}Tnp+zM)wH{U_$Gfdz@#NU;CSfo4MBc znsQ9YDEHy#wyLJlH(K8-7f3l)&5;{tg!P&+I%c%3DsVoKGJl>g+ZhxT%@j0Yirc(k z!DWY5i%B_(@5r~nxKn)1i>1%moQ}B5`VQ81XX@KpF!(~Og`w2l{M^i&D0G>7WzoBG zA}IXjB9PmVbYYf8Ff#;9!0+<4exbX>nR?_5Q=4MEF&61pB-I-M)oBAQ=j>CWy>5oE zTn$M%{K0)@{_2uv@O>=?+*4-jy)A^K^tI}q{o!aV1sy&;jA?W;AMP-)*EfC_ z3_R8J)@&nPqIxJ}lLHFn6Q0X`ofP<(tFLnc>&$el6S;WLI$+&#T?RBSxwBo`CmJvv zIW_YasS-2q&w}~}3B@aP3_)xEH*S8Jlhn2S0b| zRGsFk{SjEwtfGlF`c)xCH>cqV|2nb5VDSc$p;od6E%GSBc11Q+Q~SG{N)u*$0Qj{| z@eGNJvY~oV*8|mh0t$H<#=I-FH*NGlx$+;Zr(#1mbj%9!9F&+{g&=zo(WTjCG4^NSUqqWJB}AJC263_+(W+_pP6Bq;$#wU;;kDoWNMyz>w?;Bm+iI; zE7y6Yi<6e!(vYag?va~1;HHjU$u~CwMpS4>NyLsORR-Kk3FvK1s^sZSugcn*-C46y z$Da%zFabOGfgR@8Prci*-?IMY_O8;|P;W%csv!35DCN?lX`@f{*`)0a;-nmp3D4!n zjdSlaKb6LU7*t!<3v#3Q25d=?&^Nj&m99f_&+OU)X*zNN$=I=hZiH|5|ATEdL6Cyz z3-aNUM*t4zQJy7u%k_$5+Z!-jr6Is^L1D{IOs58H;E#^(vCWP`3Sb@pVsjgS4F_?A z$4cxlD<)SQI(hd5arF%qgV#V9qOOH*lY94IcII0_$&K<&H1^1_fax1uMh>q7&>B6w z%gx;TOIA&=-?vHo#NjH(fWuj+5Jp>WfoXr)y2fn5>$`nQ@8Hh{|;u=OW-^^dS3Cstuc7BD#AZI%v^JW{z|;09NUh*^yq0k2!y+I>*0*)1`QV7_kF48 qXwr=4CZYKMKp+0E_(`4A_3c=%8OJTgOV>AeOmkDKONA!4e*YId9RmCS diff --git a/docs/cs/images/github-access-token-private-repo.jpg b/docs/cs/images/github-access-token-private-repo.jpg deleted file mode 100644 index cb74f1eea3fc7a14e57ffa77e23f6121f07ced93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49201 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%0A3Y^f-$6g@AWzAz6j^C(PUxEnNntFEx!rpw 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%0AcK##X_9MCeiIbNdL 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 diff --git a/docs/cs/images/github-myusername.jpg b/docs/cs/images/github-myusername.jpg deleted file mode 100644 index a723c1771329a40707136290b1cc7ea65bd9e795..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46427 zcmeFZ1yo$!k|^8+clSnugy0U1hv4oGNk~I*X`DbHK!Vdi6Pn-&?%Fh#5L|;d)<|&o z1cHR{xc9p=-<>=2=B@v&dF%c2|M&D-r%tcEYuBzib@r)Ua&BjD=K)Fp94u@cY%Clc zY#dx%96SOt0s?$|0xA+xA~ISkIyzb^8X5*BP8J46b|4K6D<3QS11@eJZh97eA^wL# zoDaDl{$&shTwGiNJOWAr0?LOBGz<^_A0M~v0CGHx49p8m3^u?$atuszjN5Ji695Bn z4-@0=0Q}2=c{f#DjC*+acg-eb01Qk_3@j`>eEd5uuYz-usxg~KTon<8 zgq?J--J$_Rf0-6JCOJR>ur5#e?RRj?t3zGXan3E^`^MyvmtWZ%D_f5hxm&>2Q1R0G zfgb+REkNEz{wJ4ni89Ua{}4g(pZ)(SpTAR}f9k_OpO?R1Q2wb8|CjZl#g%64i8FG` z!D-k1C;bQbh7K@!!0@N|fe3<35yT3mQ?WSqz6C^E3Eu*I3U2|6&TL&zlx-M)vz&)8 zeZ0_VR5R`16lb)tVkhNt>`gv^-vT()9$oNW5EkaZVOxzbX?CLsJy#0%g_Zb(m8~qu z!~*$-Z0A8uFmT_F49}wO+^bzUZ9@3)JeunkVA2!1x_N?MJ-279s%VDEQ4YbysDu!E zd>>-E{*tlU=jK=ZaxR$jvj+o!gnD8f;}&pklyMr8a-n#EKR5JA&~KP-|EJf)_6q3( z`a}b#0godO43ybM=2RJSz_%2+$o);vO8azxJya<468F7qw3O9W`yonuG?I~jF7E!* z!BqNWm|n^Bl7*4m!6$xsGkSpkX01QGcy%_^SGvP#iQ?pO_0L1Uv!7>p1q2nL8u;`D#{Rde%uo1ERO`!7pQRf9` z(4MSlp^!f=yZ?qy@);8+4xo-gguR4){}yni zWXDPYE&+H;hu-kza4g%wip$>q@b!rPTm=&i-vqu6&Q~y44lkLv?Zf?x7FDTkCx4ao zfzb>bi=n>aCa;I?HnikU+h05U8dHsKJjlHeYJRdmT^{crM=jV3O@8Nd=1U5-$m*kk zhkc0ON@ICwimd&Rm(c=uW)n~)_LCA z?Kz}tslHyWPfood@zoUN>ic3s#1f*UWr$YmwLVx0id4j;>tjZwSN1Tlv9htY< zntRoc8Po�W5T0T!RJs%1*!d4qEKQou^OV= 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 diff --git a/docs/cs/images/issuemanagement-module-solution.png b/docs/cs/images/issuemanagement-module-solution.png deleted file mode 100644 index d5f64b01d2308deb9db4a9e5efee87ed6111d0fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19559 zcmce;c|4Tu`!_zNO-4!)hICs>_I+PUMaWi`u^am?drYWXMiD~D2+0-(W1GR)GL|eu zwy_MO60%O#v3suRbKm#p`+T3@=lA+O-#>nTG*?{LoY%P=$8jFV`~5z>G|_v=fQYB-re>_g+ZcZ$YVp+_6* z!H?gr)V)&-SQsqOGajL;+@4=cG!=k9v2~8PKs20C7wmOc9&Z5!~LPQE%&_~$M?{7S`QQOf@U%MM<*sI}n zCos&6LAalz+p590b9Y&JxBzzglu5^Q2?Baih_Tp1L&kpeK1{o$ehm`XmD?NEHH5Jr zou|&knmn3#vv+p=l*`NsA{`|ftbbcncz^!UI);)W+wv+{Kozd|44 z1U@dm&FPK%n-$pUs5dM+y_|*-wM@DkE~TJ~>06dMPLP5a31m2YfpF}b*iL<--6+^y zN$O1_Zy7%!dTpj^895)M+4@kyhatl*(KzQx$lUz$ivtfso0gk0H^j2%U5vBoie+C^ zstAy3t8NsThpoEzaGr^rQKF7-2pD)NoI3r!v_x^dDK}(N7yGHM+!x=t)+L0U#Hjnb z2#+Vez~1GND0Hqy5LQmj(-%JaINBSc%(!@nxkP#%(it&U@grWY&-xKer1vn+Q-sdm zp0{_E;IWsKL8RwOx-aBkhqHy27fZ^t@W3^#bc$G5;%=LAMMpT&J)A36Ei#m7Xeg4> z%rG^+WSX?V<@snK$MC7=BO-<~I0!oUnQ;#tHsZp4dKUg{N9YDRy!dDB;+6lV)NA3uDw6(sxHc%H5Iqc(Pv z${+I@DPj?~E(Xa~t9Ki0U41in>Fkm~_78({2+{hUR=II?uBD+D?m4}$-wiR%(I$`j zV#C@7JCS*9=pEf69T(ft8*~EjoT8c05tlEYb&**|GIi~#XOVvQxqpI$htMDTR-{oL zbOlYHPH~K(E63+l!YMi_#v)j!jopK&sol-+!|5{X?dfopwJDR$(wNyF?rzYaxw`{C zLQCBrz{M67la86ZW^wc$Q=P8!Z6g?3!3}YqM`X>8Lyz+O@Y^@>(Vh*g zVE3fEw>TnTY(yMoY2oE)yc|i11K(w8B;XwQ{ZA8`0bkFX8!2)#x=#^AOrov%!4Hz! z*oc!+$yPN%rRKx}2Cvcg?!qr&EY~(=QFZgOkGZ$tOc}V1A^2aD)7+f7V}(W7jy|b; zL?Zm)yE{=Ph+jxq>P9D4qFdg+v9snCW3xP&GO6=bRR56cu1KLN-y6R=y#ZI4aDckv z&2Kfv_a4L+&0Dp-j+cxwOKRgVK{>aDa@7^bbe(dN)jt0ub|rY(ez2}xOa){tg9@>+ zZrIB2mR~B2>hm@anfi>pE{rvY9=Uoi&$}%%+Ckm*<@FWXbl5S^w)RyYaUNkrlU<6t({aecn;GooqX!>pmVFBIpP8+e>6&Pew+?cr zr|gNNzU$GA@ULmj9o)QT{b)kr$BNh}Jb0yZB0ax|e=M4Bri!XEDaT?qvv!5wKv!%D zHGeR}wjd*vorN4)cCn~jt-0IhbCl-(r5^3JIbalP=|1|^-G5?cw$8Z!qer53y`AKI zsPEXOAjAzn#pKSuHJi4^uI-oy} zKIDE6>K&O)^AHHIsN-t&uFIEyL}f_P62S&ywxAAtaId4`de~)=x|vM4Y%~}QzIskP z*;Hi1u4`YYQBcyOGfbr2k3PR{il(=G*gn+{6z73zsb;)kHe49CmFVe#<#f!B(|0 z69^X;&VjDJhfPAcNLzQDrI~YxAdtGOFzENz24(;~g&hOEzXo3P$?gd$Hw8Am-D`gF zBba9?5$P68-nt6%HMO2&6Zt7@)Mv*)h)rH1SXWoKflKaaJ94vt+NV;DC4CysIk=qp zPNpCyvf((0O_t;9lcUd=p<<>!E8-NHl;Ml^^W4*q-`Wi9aMT&h6Qu(U6~Tg*MkS=H zRGUAfBaxT;yu#M!+bH$*^OMsygkR|+Sd{rd(*1kiFUghOvl6X_>9FWCfWA(lQ>?uw zY9y4EIX&j%r;_UYZF|2)_eRDj`c`2vUA&(pghA4;VImD-yYmG}NlDKb_m+r5koZ9A zR_^zg4$mIj;=3N!B!Bw6#RnVYa|S(q0FliZ=~LYkehZVrGIElUiq%*gRw=KdNDMFd zJ%{CG>i{2Y7Y#D-!AFOPUFX$tMrEWlXq zZOsPhf396?89!9uYV3f;9(Q-tY5}qdK^G|2I)Xzs5FWn1R~EKOJ*s+$r|40(XG1ID zirTQz{WnQPkIg|(*VtwK=AH^Y7qR7*y%Lk3m3Bnp_88RJlA9vc{Yb&w;bCt@?^Zcb z&(I-GKGkLqba6RAFAWb5b9v0?;5%)?f-1>qR<&R+!zq-}dAu9*%RH?XnZ)xaL9uHw z5zW$an&XM(#nbpE__}HXtR!qD)V&TfaiJA`!I-C9S!&N z8yfC0nJqFoUl1}IxMq1A)Qol-!Oiy7?L6D`WD2XDjKDo0own=VLw*-gwqO8>qu9$` za%C>)rd^1Ut8TC4S56}vs-Z5#Bey~s%^SvS)0)# z-J%fE9tj}?2&TH4;QO;TgBo+Wx;H~9d}nP2Sjomsq6M*ln3a(+c?A&wem52(w6-t0 z7o6AdaxVTn$u-yW^{qhh8mab4iU7FS+OYB6&e4xH#rMjQS#N^ohUrzt=B>H}P%ZDD zKXZFv)nXeu`sMalPZjN~&H1<1#!Z_!0&DZ)|&eyVMFt zEaS$2-49$hA8jI%x7>%K-ie7l&J|L`LE>Kd%>9$**e$+i(d%U3x<9{D-E}4!$TQFo zV)64^ZWZqk$;(%hUVK+Cd_pW}MMtZOA==RF_^|y|?wFBcm(hU5mHNQt@iZy5C%--= z;G^O<2JKgS zs3&*T6$+R}{LR_+(qEr5I1>?y%=I7JD7E{nnTAJoq8Tj`&u{O4iR#-O+6tDzii&H0 zsX;K_E&BkouppV1)`#|GYGywE{&JZ_S^oJG86q{7a-o>tjDoAqWt4+A@P^;e@XhNc zF|6EKts1->8SyDYLR5?EvRK5Zs6@Bv4*}<`4~gzIW~gTqG8{nIFEF+8l@QFHLJmPp zM%^zatz_aR);`_-+P3R+uIW-~_fCnvkAeEbD9ia4bU(vo(dQpbI}XsD4i=`S`ucqy zI%O}PQ*1a#%?rNg`@l}1Y&9;5$**ww2EAEoP^LPp46XM2hn?vqQxj149_YbswCW#Z zO{r20j}LD|e(LJEwels+jQ(IKw>0&7YvrDV2j8PJ_0uRDPT|c3AINZ1-MP)-bFp@# zWHJ!tjT5K*Z`}x^oZl)lJSOhZS?*uE*YcT|DhILCeFYQxRV-M>5DH?$aF~_vVK$>i z&Z$(kpLe%&XAN{y2spaw{>)sS>0=0 zR}#|^-0ytm=%hksEy6KXe9SM24wC#8fy;_w_{3RVB-T%Z>U&nAp~7>diihy(fp-dj z0O!IGx=m+mXD*AfynLX3)b+F6{lNQxGP-I*2w5Hpbv`m3Ob9>xj=Gz0Pxy+yc_u+h zzGfT`bS7!m^Gj59eBG$_NAJ5x_6T;_H$y%jE%2;qQSw1vl*`_vFVxu%De61RU&JY= z(%r5e&(r3Odwc1DO#^%J+@a+`X~Suoj?jU6W26gO+M5oqm?Xq?;NvPZK=>%_5&WPd z`w$FKpYRaw-&qi|pB`zdn(rq*41a+Qtn%+!sD6%nZ1ux}a;IGloqqvWeg(l#NSF4u z$B%pd++KK4#k2hC)-F1`Anx`go9r8DiWvAHbPf_;v-7JhxZu$9Fb@(swG-Lag1x@i zctpy-OrGEC&pH|`!Q081cmti%S{Egw>r9MH@Le3t2+#9)MDpxGUX-<`qQ9&vJnY9; zru3kup>b?0&stAyenRSZKUR&#ox!HPafben*)Xm3YXqgA0?$J4K*yr}rA|qDXaNJ- z0+tU+?U@T#T>q@^By25bPkqUbv+i;6pMB`;G;uW1)0j+{=I&8`B+C)Y&YmLeJy4%f z&G)hE&^a(&<7`g5_KcQ!f`>+=oX%UtbDM6X=LhS(L-zO9!?x#!RmR@Gmq`$Ww_j)$NTGLB)VziOeDOteV z7UTnqP4S4gvj>qZkjqv(;ZmkkBxQ8%QBPK5)oMbztXlck{izQ+#NO?-pC7u9sA}X8 z)7f_DAg=oTou;6VWj4X5$UI@c&hpE7ypZm&NRL01m)!c)6O0Ww_{t>ZWd6hM7diYO; zgVk3FrVp;Gd8lrc5woP2GQ1alHXLjzT?yO%7Uf&k0H-20p<=(DfYrGQg6*L$m+*T1 z!|*{29l?GCXMME%#+m6|gDc)8*Dr3clOZMIK=<$Pt+*oN5Fyv2Q{Y#$% zAEFH~87AA!Fxg@$io2jS!)e$k2ryLKKJ8l*VwZ>tiG;K+7Q&(y0GNBBN;n8lQyyGI(o*Hyh4{LO{vHYj)_~hF&`YhVee|G zFVt66W%=N_u#Se|D*#my7VBud-xr*1&8UOK_5dADRVG+i@g)r)OZB++`NuBA4IX#= z9#O=$=E%{@u;~KWyrZU!E4g1XH`u*#0IUskLbvJzTvNWO^xE|UmfLmrr-QS}V4$^? z76w-`zur1)&h>*-*%SELL!)%jCMe$SUaG6A*iaHMaM_wFAm9Y+vW`V)5qE` zw7rgzH?o6*=OsgX7y=xAI~g$W#$7dEj zg$3USBV^=+UCA@F4~&?hspXgFiZ@Q<)tA|2)sa}5B>@XV+OjNubv6Tc^Kzs}>qZx5 zasrL{%Hw0VcV(nCkq%+ZL3@@&dzPPIF|mN!;;Ki+PFFYo}At}TFn0BC*kv){!!XH7W4rvCOn*aup zG+QDBn;)!?)cc^cJRI2fw5Y1ZY~RH^g?lMDueIo(lyRyBxsR0%)lzGOz?|Z!OTdaVh6$cEP{ktv&!}E47S!`T=GKqCFi>AyJ*bV8 zyQ#t!cy^%v7zm&8sOG7(H|XPCyr^Xj7zENj_Fu}gqDi!;XT~#F)A5_399t{6CXO!O z5B;ME#vrw?z}|01_#Aff>8|t=j$#e}kr3J@cKyK}q}(1*wGE;v4b;O}h+K54NA3%h z*<>O`Wj(b|s;nuq5j!y)`eSzkS$1@Leq^(Gej+gJFjb0rmU|MuTUN^y7MSak9#$Im zysLACD;vhPR2KeO&$rbj;Jd>Z7i>ytfmKL)L>+QCc7a-udE)KKqAv8&mUokgbp^j9 z>T7D>k?-y^ggA0J``8UOU%l zoa?}QH#ZnAyV11YhVmJyhaK%+?s%pW>hCDmbPQZvIhv3aS}Ja;SI7=u&@~Fdcg0w> zHsa9%w$MejyV|nAkg=wu2Vv{DkebNpj=-}wGV^Os7ODPthp67v%+0vu6A(v#wm79k z&V6)odu7V`#}V`=aBD}*;*eAk~= z&`FY3{4yGQxWlXG`LBz0EDi7yoS^AilTH#cD7ywT{H*l#t_^3+I2Ukw_z|}y!`8dD zgRtz;XkS(ve3x$syR7N>{EWW7M_K88k&|XP3+sGD@=y^s-VGAr{6{tsytlhJbwmw6 zqH-x6s=kHM6$Gch`=Su_&DX6v>yJ!UaJoXz+Om?AE=Gp5tF(n!;b25Jh^b5_H5N*s zd>eLdo6BRQE?Q&>_DQ!1R(Rsp-NN5_r}d%EccHH}QeTRpTrk(bD$Uq| z6!C35qvUfFY|`S}=w4jt^{^trT&Je1pT=c8Bti&mvX7A1Ku~wEq?dbO@9loou4|r) zgO&11m$M*j#78e~xul|$_Te*s0C@>Vg>ErFz*SahFDpREE$V^+aK8qpR1|#BC%Amv6)P{pEJSV zWs{vl_P7LK4l5(*)NrCZ%nwQ?htS{m_@z*luaO6T9&;Z+hwly^2|p-f$Dh($CxS0L zDdkwM$kI~KpjVC$$N5VVc6%;N!|8J=m&sLG@bPneGa+qyN$)*IK#}6I%RfhiuvQ8& z8(=FQ$MSb=BWNufi%r7yu(VD+-Zglu`|{SO6P@Sl=RO*(B8*udRNB0@72&`qOFauCICjTSt>vkF?uKYMgk(+yuPu)?Nl>9sHCS5~(hfQtol4+>ssvhja(#Ftu! zItz5)xJF1nFwaoaIoXUJR+n%kFO8hF*z}9Hu?E?Wc0mC9k=v_Q1d~4NryTp}g`W*) zfXrvk>8-~FZklrk`1=!(G8VbT#T_A82S8zD(y_mzBiWOV{pcAO-o13Pd~CfWe7bUX z+?l$$IhmN%%m~Claa65m>K0XOo?@dMJM$%PNdffn7~Tn?bPROW{~zGXx^?3sRBY=k z0KrZHcpNGm%UH!ZF%k0Ez3bB_f@k-vY;`No5(|KsskS1s3kwUe)3e-7=);Y}+Jdb> zrJ9hcqn4z~S^p|D4X@Rpdq?3OO9|QhR@=Qxg5w^Z3oP|Kn(uEUugJqsf;igH0GhjX|AX}6y(B*HxB{Owf0}X z9-;Hp!t@sgo+(5KDP9&`_}ot(7wi`TfX8-8RNjcb+JV2XuOu3lHHi$F?q4Bi8Yw3T zpJ#FyP1tbQl97jarW@tLeGHr$)|2|sM}=# z;JYz9wCO#y-d`v((%7&wdC|AD9*qgti~1z+$<_&U^O1|wo12`s9|^F5-gki)iS7pY zb}x!|*wJv=;bB&w+xFx<*HpcCpnlX?a_O^oP5{a~^bRH!bnbqg^`~9*DpdNQXMgI@ zHr=|SX@^YY$5!z(YgNMO*COZw@zHeEAds=kXm<7{zQWYhGzgs+f9`tt&LklOZ@&Md z_HJn914VpXuAd|!X4q@=p8u{jU8(=Eo4N{T-#j-!2K=4v z(`fIHA7S1N0cOw`^D56zMNuhx|3U}?+()rfVQ`@G&lX-FQ@lcdwtNmP^OkExj{Zgv zfcrwGrQ{kP-b=t^{jCM?YMB@@;h&R|@nG^53hY?5vJQU}7s7!Nr!2 zww?*yHZcPWIW0JJdbx8!0?pxcj$RO&FE_gm5`0v(7i1dF|&ReP8iKnEbBEP zEiL^tE1)i*Y(2+n!KMml2%t&Rp475<5lx(Gu_0jPKT~$bk6+!cn#(f0eZSDRZfj{ zZ~X>^tNZ*}rUUjBTt9lDzEq`J^;spmmbzS_uGGP;<_Uo1Za;yKwt&j_O6iYt^@Pqs ztKqxqWeV$!o-6?6Xq2?Zd^VmgMbW6XOsZ5Eb#GLYguzdU6~2cp`Us3t@R8n#KWf$AwbuF%j?k8TSTs#KPA) zuiw7C7$f1q(;u?AFidy)+%@J%qhFbsV^Qb0IIfV2OqC9pfSELW}s;2iJPE;C>IOmLjKpZD~v$_+D$HSXV3_D5NO1I3;4 zd@iPNpec#xX#E@$X~aP^D{gT@E?;$##1UEf4T%4#~PZhIie7ySI z!n?sS)a_twY-||@)inQ5vMvx`RGrm27XNHN+fIpEnI))w&NW!L_JAuAHViDE)KOOb z!&7exekHAmW;Ueo4dUW{wFrW>**;zy<~IU(`7(aqqR2J2Fr)1z#UD_UVK=;XN|KFC zb`~4aarFD9U>vh$o&WsOm|v$uHWSW&z5=i)D_mfSjhY8wdV>q!78u>#SL24t>=+mO z3tn%&TAGf>1W5yI#7BePrBFvWgIzuzsk-uBCP$JENnna-wZbHmxuhh_H!<~I7@>M__CUK}`f7S{UE2UHBa z`?hKqr<3lk3@XqD7Zhb*4?Rd|MGr^{6`KR;k?&H@37{*iU`Vv}T|5SZDYFdT%T$S1 zUTwWd!cLL;`(-wrDnxiqbSlU}?l2-C~{e#-csgvU9OayFHINLNpmXN?~#q-f$w~Ze<&sf z(EwaMiP}Wy$-CKZvbtnBz@FMb+t1;=+JP!(^$^^Wa;wwhWc>WumFNrr(>5Tv+4(4djg{YwV=N!-v1Wl-~Rz17;>PSh5x=_Apo>+ z$38EZlohRWPW^!6uVS7uu(G(&izFyl=%C%c6~1K=alkt-CeB)2r=d4Pdv!?0#WSB! zAJpweng1!~lV-VmkyuTRoU*pMvuSDfA2Zk28Otx+s)(3~<;DY%^|`b+7AUC!cyL47 zdzp?eLYTPu`4<4#oR7OPCGDy*%F6G$z=n~h)#g$FW{?}K>DWz=oGp>^c;8mXSj=&y zd|Am%MV^uLXk_Z%IS_azBg(TZ-a z4=|Zdt8Wlum9apXe=S4}vFQ%L1dJ>ER|%y0Ye1QQ{g3ge5MJ{gq_BxSblN1lA@!!x z+EbVc03pe_lIxfgXO|CzPDMz2lbptJDe5{5%*RP6)^fT#Q>PibJxUpeI8t16CSrd9OXH2nCl%jD}>E2oLRC=rrabqnLq zQ(z$pVEU59fsa7^IA(n7{Jp2+vcONjp%`<#MnHVwsgDYHjeF}R0MtquCa3jYC=VF&2Z7`Xyr~;l6FJoSx9Og&t9dd#FI|Z%eW;ZFx`-jAKl{(Ij==6zQ{k)ZNVD77NRM4!ky9n$ndY+^zAPFM=uh zmHXg_B0&Isas^rq%DEMC_2v#3!jl_3(q2|nLr?#nmG=ALKy!CR0tAHDy9KxkEhYM! z!v3!ei3zvm!c>q*jMFMJX>3sJp%PAb6z`Ca-5fM#d{8<4zWtw- z&{_`+&8R^H?XM*CbZU>M*c6U4M01^%aRpY%@%N~`JBqmQKf|amc-M7}W0AnU-w>y6 znlwegmAodVJlt?16W%J(P{bjlbk408z@-*T{S#ZOr0R396>`u^96kwfY~~ zzomZI>SYm2BOa=Qf;w2|sc2Zgb=H1#*#OP2n1K(H*9jYolIW=ZaK54NWwkvG$I+hY zniIvWnOJ%j+JJt02OH)RBB0e>y_)TBkkV9;KzgiTx01GIH1{nd7auy_Ugw8%UuBbhLGww47t$1$ zwt@QC)Erq1bAIZW+qEh6=aKrCz3v4LTi4IYqi*d6Jw^IpJ+;anCRmh8dxTkSrDOT9$TSf% z)5qXNV9$fZB6QYew;7KEo8j*mfbim2R77ma3P0tbS%NXi)w5^rse@eoYGy9oCe5_~ z4E6uuNdHBdYSXZE0h;IjbqTzU3`$E-wGbMbyT0vpH|%1|F}xrxy71E|1a5p+RoR!rJ8UK#RLaDQ! zWEu@wlj&OG1@Mp(!U)DGz?Zv$w*-w1)=%n>P^D2)wFCX!sTiKgSG0uCgBB!CUjcA$ z?Y!WTp_m_7O$k&f3k)g{4-8DUCKW)B*O92FunfAgmKW#> zmigb`PzJt13meZ_wAYD_{PKW?yI zv&~c5<8IOK{xZ_mV%JaetB87zf$!fic2V74tqLL%K?^{}LhpC=*4xov&I6_i`Mnv^ z!t#Glaf*S>9?*8th{L}wasXwJHm<#nQS&odtGb=oEP)~bvtvplvH*^~IycxkbKVgi z_d%G2XJ7D7j(_&Y8EFq_$>$5!W{Fqi5G6W)?~=gY9x1^Ybm(+PR{Lr%M4ROn0rEFD zku)nJs;N>}Bo z=7vW+yla4`g{iOB#|P>O?iJR9^;W#~nFz+R==TVqh2MFI>|-R>^N+2IC)*Ct3pU)_ zD4vgWzt@0vSK7NE|FkC^)5SyzpXQO=W0vfCMcN$3o^mAzSh5%d04e4`z5BGOF~F!p z0WJWryXxaS1YocIABEha67>oF$Nj^u{d~8&+I?b1VkjVh8mGMl7OqPHR0b1;}eYs`DwS*of!&-D4A2^R0S~yC*pu?f7*999Su-+Ud>q_WtRx)6E$aNWIbL0X&$7h$Zhn(Z7<76B+X!r zNj}9CX>SY{KpWHeS%B2}+cjuu<3FB~{QT`~0}PMY3vEQ1jTV9oun0y8!X5x=sIBf) zIKc{z-<;&2={=@9;%(M}->jMgtp~*6Fq3@;{gextvLItmnp#804lwRT`uTNOMmz&L z(rad_pRd{$`Vp|-odUDRPY)t_tr7~wLsreQXUHveFrD_lem z1FUIZ2P~LhzbSC#xWw8`>+xHpX`h6XM(KcPZE3wvZHh$Ni#$y3w;$P^+MOz&ZbEL3 zm+kc)mgVyv?YEi5@FYN$Gpm%-ogY1_jslj+>y@;(=Ic*yJh=c?(dZ7qD)t@CCX5=y zB19yad{!pNVq{D-x<1hYISOK`e3}K+0yrw!7CWclc=iTg0qeiY2 zGPW5v^npm6G>U=UzQ2Ch5*-^;y5E#mO!2%jIuSmrZ!^CASvNfk`smQRpWog2Nw9za z%+VgVcY~0hJ!*c^+~C8M(w8r>bP_;M9SE~qbtfaFeBQ5#UeDI`Q| z*e@ynQ=k09G&r_RpH1GhD+2^wo8dY){aSZ}NH@Db5lW)4`J4ddfbsBps3Y8BeGCL% zyp3W&o)ta$Kb;=)EBrXWtQL+t=mh=4P#o+aVNOZdzZ<4~h?$!FyXzRk&&COZIcb zD~;9g1en=FH&dS{H=DdG1%GJ*^CGcbYF>YTT3#yDw`l<~k!<`K6^CSF*p9n&X}0Rp{$hhW(>zt4?vKp6iJ*Gc-A zftYcHgA5e#iW?lGXnk)ztD`LyKnU%-OiG_p`D3n&!F_Mee_IwMyEVq1FA}5Xlj{k{ zBJgOhhEp;gOIwGtRGWhZ%8_dUVk(2YO4xIv`kxR-)d?+p?h3S-_lw656L)D!Q;M2m4i=Ffx=Iqkw=Hns+*=lcc}mi*F7U%u?Z#)^xJ zl|~0Nqmr8TSDXOsC~R%wL!;RZZ@eO}sg*)cqJziYs{witNO1E%YrV5&P;W^~b&)#h zua?g|3DgIUy}AGYKq-v+N=Zttz5BOX5ZD`pQFmkG<83zo*><*;u~X!7drg5D#jySD zo%Okt});M(0m|dLsw% z*Z6?b&VkapI(k1FeYKN*1|NT&&lKbA@^$FT@&1uP1|bf9;hAnHpz^vW zaY0m6+WII7&I!%x&6L45g=c?mk4>*oFZ5tPBN!ifBNqTkyEkyl$c{z#YYZMF#^#EWee( zQC9eElo|$ir8qoYUA1=QJVezESzih$E6eUZTA4@4A;Xm}W8UuRsFvk+IJobw$OGEm zt#_Jm!#oQ(VyS%m;B zr|WPn1IjE8eRqNDha;4kvN#3^B#8qvfEcr+v1l{A8@+6$vW`f7a9SgSD zE)8_zypL_0@R1jnmHo~+)gx;H+j`=jq8X!;-l(K!$t+$fjdHttQtY0ip@6fwzsbr$ zPqvVY5cYiA2FA5QGv{wALDA+vQ3)Fe{?*3A|3)WBb65Zz)!+#Ay2V2-KPT?}wj>qz z+13vt$H0poUm|Daktrv?jHjbQk?J`{cVdJX{}YQ~{I%8>-ex|KjDCSMN;U9=ZZ-yP zZk{Oksg}rYLiT+#_f;FO=x#iEzmkiu&;gj0abSXglaeA9m{y$9m4^LaiOWJFQP-FY zm9B7ax6hYVw4(qWG*hNG=X$wVFI*TtdeIw?4s1{rR z7SR88ea1=|E~1qm#PuxFnC*?Y0dO+!qa@17Mn}VlVMb#A8-$*I`AFOPr>!^mC&*IBH~#&NZiP_k{J|FJ!gK$p>TJ0WIh+4|!Yz!k zcyeTA@*A6&NjRSbs;Z}}$OJ-c;M@~<2ITFJZ8~TIaMqVwTM68u(_>6b$~%YCd*o2z zzK7gPmE?(FUrlKub4*(-xLBF_`7`ygWKnOik009da^S$6Yckq+QtIy z3~=b69bJ1Nkke*`2D4uL5YwU0k%Tv1FCpo30EPvGq{>JAhiu|^{V_g|8yS=?k4p!stI z&@l*c=aG-AKPK2PIoY0p?mF!W8W8#$Jn0;)XR*kzX}qRLLVxV43;-&HZ|&&ccyGmR z8mtB&)hfH_I$KljXL1AeULyj}KI{ZD@g%gw!iIqw#X|0j#(#semB9E!;BGZ=m-N*R z5T*c{!Dv|IdZ-nx4>Q4&fKCw@^CAsu0>+h$9&#mn;hnn5wCXZ{vBwnmE&|}xjR^oQ z|Bbd)xRNU_{LyJv$)iZB`dHL;gN(lLphg0v)swkSz4r5^RQfySpWhgnI(hz01@e<5K z;JW~#3LB`$i+il-lRkjK?umz7xv`E||EnZ80etTMkqjHX3-qp7t^l4RKyXo#)@cAr z<0B~X;hoN^eScN3A&xTK4SFvt>p6JAu<&8T$!oPU%y_4zrJ8mDZbwO*iciOQ6z(tZ z|Mg9P2Wv$O+Se&Q9D`3Ut=64FY~DXQXCSr1$|L-w?h)^rjsA;)1PC#JzMH(qI*$H5 zU9OtBs3<};_b^CEAUVpK&}#nmyAHbkqw&WznN(TqFB*biS77(PNu94K*f&k zWtFfjtY3VB<0h%9;yad675+H~l(Vwjk}TlNzC47Ff{s5q%AC zP*?Ki^Q<{Mhq5W@aYJ@BkE2PT%hc&ET_KzML0`-2UJp78`7D_RAh9l^cRmCFAPJDx za&T~H=jE@RLmko1Q5}Q}u98N9K=jv%mjMUI)N%C8tNBu9yvYyRD=GCb(gUuthOP0o zn9K28N`Y%Xf_C>{(!jC(I;tF;4&C5{}^}Jih4lob* zj4x^54>}C(ljZb5WWhb-7C_)Pw80EkJwFS;eFcwFvznm9EwGATz7$n9x4}Kx1o>0zHk&Ed$4-ky}1SK`?NAm-D!0huUMXD|V zhbG%QI)awRtHTb^j?hK@;;3Sp2%a%>mMa<-Q1ZD9R?Wo&pfVpn7}(YEk9SqWxDmr# zO0XGt6n3NtkA~$1&;4IWHh@m65J*$;QhmgHk_S63;FX911rrLh{HB$|ez^!lZ~s1nS7!Pz4=TRe2aE_P?T zF#;G}P&;~6fhz_h7Pf__!+KZ-bWGF1MOQF~RjQsZ`8oTD9Bj~KTCM?UMH?IcQBiQC zj_0aOry;-*DS{#Nyadv~46($*USt(o(I)B9ff@@965AP{&md;?yXffX4A8PKFF=ew zc$WUWg=gJz>1!h_Yh*`aEn{&otCsw+k&1oKkNki#4XD|RP0Olxi-<=ecude{55#(H zbCBtNfUQ-C42^4xO`t*gs`kYySgQmZKxD9x@Xeb3%x;zH@*7I``w|rjxu{p`vFbIfB@*OqSv78 zqAR4*{rruQs7>vAVBW9hvd4yA!)|M>hs~xrD=OhuLcaCxO^qgac=x$fRTqa+@}f+Z ztz31#(x6}(0BaZtKtN5NRLP|m!pzWd$QO25+ve(eE_Gct+L1^yIoL01PUT?z!2KL5 z6BlThiHm2X9F260r);&_iL}$8?q>jdE7a=jQC;RqW#dOPCVvJO@0XqhIum4hvl>Ec z<_>)CbA03KQq<|pCr7KH6xEcuLZ&Sa|jJtCS z4}&Y8eE~`9jSRhYZm#w}{*j)x6{>9iXwJ4#aqKke0w(x>ZRd}FM=vL{din#KfwGxP zKr7)Pt9}WQ5Z*;wE#lh?I0&g>oQ+MSJFdMM%G^<67+Lq$(++Vr&-82|R*WdQOZd0@97>qf)D>$g_qR*IgS_VOlZ zb_vvE08jOQGRZ&sj$5QAS8i)Ax6I{t!JDEDay|m%F1l<5aQ%|5GjQWW!Lj@gTivg0 zTjixLdtWIIWIkxhV6C)(3V4eW*I_oEePQmot5;pw>eI$*kkbLwfBV5AGjMOCEwP(p zUzl62_G+MPvm2AdwJX4ofNe-x8lS`1yqi;=xt`!UC zzH2T(b3GR;N4VQ* hSXb73J@ubm@ce?y?Qvh!fG3ABc)I$ztaD0e0s!V={9OP5 diff --git a/docs/cs/images/layered-project-dependencies-module.png b/docs/cs/images/layered-project-dependencies-module.png deleted file mode 100644 index de3b7a412f44bb130bd77113c3e587c55cbdc65c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33290 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 BIVAu9 diff --git a/docs/cs/images/layered-project-dependencies.png b/docs/cs/images/layered-project-dependencies.png deleted file mode 100644 index ed3e03fe4d8a61703d802a7d7c817b2013c5000c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27320 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 Uq~)q5c$-H@+d%8-(X+q(ALKMhCjbBd diff --git a/docs/cs/images/localization-resource-json-files.png b/docs/cs/images/localization-resource-json-files.png deleted file mode 100644 index 1a1d43403cd02bc933e7e891b7f2bbeb1676d803..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1883 zcmYLK4LH+l8=o}|i_OP*hrGVBNy}fD6ER;+Xlyw7Xw66Rky3`q(udKOqfLlfbm$}! zCPSRfN6SR)8pW2 zAa!pqe1O8YD2%ECR?KLlHJZYyQoRl)gFrB?@1`_3dj1;-1XcIOyB(m9yesJ=V1jkK z*EX$$_qg|n1ue9JXrT_)c(`I~qKSKIcaBaAzs9Tm2XgsyfKoWZikQD64&2#P?spOv zkmmo!)3_ZK1h{C?0TD89~ip zz;upKh-$E|T9Tl4WjXfKUi9{=zu#{=_%VmFqm_@86wUj-vy9q$ zw6Xp+gD_PigZ=ai8|1q_YQggGmk1Te65@wx z?cyS3Qub5yX>b44yVc&vOGdv+u06JpMtq>&I;hGd#LXzXxiz)7+rusrDze)CptclS zmJ7<(WmAG({O$0G7>O8~cj4**ihU4xBI*4qNuNSIzgCSB&{0vO9GE(L0U?j%z=Rs6 z$ub?x^2LP&fNkaS0(Iz{_JzN{l2w`w2LhDhDsL(4k4d0Q$344BNV3d9z}z)@R)0s4|woH^f+JL^QJKKk<_q0rE&_+Mkx z$D*K-*JkhvOuvcxi2nf)@PKz8iA?({fgDmQJ{c(VmwN`p)| zHjwYF%$;^Y<#GH5JG|0O<%3|mnT{h+z5YP&98EEa@Y)&o8yTql+cG0bveQMAs=EHd zz={4)84M`M{X@+4dsu?mUw`a$o(;Gi4y=?hg}F{N8(Ju$EL7xTC|g+Ru5W(+u7MUIXNkl$&x&}1wUVQyctcN zOIg-Gqz4z^cer;B4~L|t?lw7+lG60H#{e0qf6NlliB}5l-UQ?yqtUP>L@O(+Tn@*F zNCYe`M@L7M^*GO96<^G8(mD>5vWJAj;S}JNm6ffnt+uwdidvqYo>;)_*>&F(y9@dJ zBlm3#sdG-zHbu3ywUPA#k;p|ccI|SVwib!fJVH#;&CzIg+#x4v6cGV5Ha4=^Y)Ii* zXBR9MYiHNg+#J;EXUa1$Fkt!+4Ep4%;;HHBnCNKM6LQ0!Z&y}Uo<9#H5GOfy@4rof zwru%dLl1Uj-p~+05HD#DQ4I3J9d=bNa7*ye7fLbP!~5L;$+&WqQhIJ}rw_$vxutu^ z6M2a8QV`I|Vq4!5&K33}Cg*OmZ2^c*+U-QuKHthG^ZF#C&{t)I;gfrEO}io<1%ZH5 zeWBu0L#JK&^U|&%Pp$xSJ8zWM<_k%n6jpN<`N)@Y#LGG#lLy(w;0ZwfIDyI=h@8bca}SC)Q8U?`)w#asiWiL<7U=YKf0VtT__o87A&JI zOdJ=&MPUg$C(I|)`AFTb)Pv#SyG`~@-KnYn&@qTmV!f?fJil1>lZpuGGlEfEDrm0>ty4F0LeSWhCOvxZ{#HaiU>!V>sB^6V%nedf5&{&oWtgfz_-G7?Q zO-TQWmMasFd_LU1)^bSlD{EJxKb`{u+>Y0Au)NtBfJ7ph-FxhUD=TXsRe}8? z72@AytiN>E@GpJ2IbIx5u3uUxDqH3^Be`Q^VcJ31;C)QpFR1L@6z{!1g^qvYXJ&BM zPh__#7b)cyt4t-SJ+6G3*Dp?c>-a{t_u52cj~Wver%=QV;rK@px2LVaQ<4a0PZ$L) QDt=3lw+9h_&pjgZKj+(F>;M1& diff --git a/docs/cs/images/microservice-sample-authserver-home.png b/docs/cs/images/microservice-sample-authserver-home.png deleted file mode 100644 index 684fdb1a5a27d7ad78332171ddccef8ee8954f92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10199 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 AwEzGB diff --git a/docs/cs/images/microservice-sample-authserver-login.png b/docs/cs/images/microservice-sample-authserver-login.png deleted file mode 100644 index 99d898ccd2cf3a4a0725ea1208df243b8572062d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9133 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 diff --git a/docs/cs/images/microservice-sample-backend-ui.png b/docs/cs/images/microservice-sample-backend-ui.png deleted file mode 100644 index e649c8da598dad81c8c528cc1d22771687e77d06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31973 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�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 diff --git a/docs/cs/images/microservice-sample-blogservice-permission-in-database.png b/docs/cs/images/microservice-sample-blogservice-permission-in-database.png deleted file mode 100644 index 45d7f2b115e91f32983274a2d1cd9dcefab8bd8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2408 zcmZ8jdpy(o8y811Oy_ILwOGU4x`;3}2j8)YWtzw(Nsc-hu}!v${`r-B2mh+)ICUPIZR4$I~m zs@Pk+Sl~WVe)at!)UD0$tjc;D25W1%c^D0&0zGR+wV0D}1ca^4tU=`=CBi48@SPCJC^u++p*XT5W8eD|s zjq+Cvb2Qo8@;DA4Ndrz8lj-GunrSkB>|@^YifNVXy%1_IFOxG9Ho|Z0IS{8-a&-Ck zzSex>$p(%4x3iP7eK$58ZqyD(pEKt5tGSZ_#g;^$^VgcLIINNA*a(Sz28)#+=A=`n zk}g@0YRXKOE4dxrP%v^R8{LZFi9e&MQW6GP!EA~edwLE_{H$>6@XrZZs9_mvqjrLs zy$J_xGqMu8T;VDI)8nC1oNlceGd&ITj7$B4?Y1|wI4uHQBJCe~x6_sCYu_P zkwL1ohbJ`!m-HdMRsa5Gnq7=U5a3ym)Bl~K$#h17>LPG0Ci_3=oI4;htQyHE%qd2` zL=apOKQmsLQthluBV%VvxKWkKPeN**g~-m`;nC6{J6n2+QO~wk(Si`0i%O?cRi(}Z zX83s2q0bGW@g8)jk{iTVMG!N=tv2mbGJ966QN1T>bYQmTnYhe^zZEd+mW^|%nvp@i zBJz+z6i1Ji)_$cD11ssmzl1VFF(CCUZ`_^g<5KW(A>GAM%m{ru&ibUc2G2Yx3b7H5 z;0BslN%k)X)`ueK#%Gl*;|s_#Co%Ed(Z`*okxwr!1(^1Y|BwVo11YDa1Vllb_>^k@ zWO>^(jH#Q2um`;4sbh|CTnd5?2P831a{?bmWVGlO1aw?!P2ME?8{}H#QUm3#?RTLY zM6N|DOCFfjPm5oE+Zbt91Yu2>2p|)@AA%17I#sw!h3=E;kNhSKZ&#@->|?4ZX*!Nc zEvz0`f+q#0_~+|~1sooe(}K_sMOPfy9i4H>ijnhVkqiQithKfr7#*%RNh(fH7z}?F zT5EvsSF9}4 zR>aWTM_KZm!@|)oS|%|qiz;@M;q9`Q=0+^F@#hIXzxk@gg7qh4dVT`6cF2#vsTVIS zwP^QnH-TBG21#iWZme8W8~wUKJ`OPO_jV$_HN{+~pIL#I@8z=3?W{4Yo-|oh2CSMM zb>Hz@c&^R-q}sm5h8eyRmP=*Enwrz&r$0b%ySDIMi;3=hY;1dt-x5)8Zhlrnpq5#d z^eDK-_PY9#blq^5ns+rTTDgp*2DpTKbEVOSE1iukp))J=VD|VzNPq1qR5y+S2~T*? z-Iq0;Eh1)D9Zu>^*tamZ!X=~0<~8dD;`z&mat}p6WZ~X7ZJ$Lz)MTA5zOpfA;v>0a(!;0i#z1qGo-m~U z26;v*PIJ?N0u6^ca9R{9bO@G@-9P&E$M+)ADM`*iX2L^KZr{**lOp|oGl zrgR$G^KXIq+KJA>KV(T+v*F<9DXTYQ={BqeRI5SU4kf8$`Mp))ck^$7UHVN6yd7&n zjuJ)?lf`#c8!Cpsz9-+mnp=@?rXI`rKJOgFx4qnAzom9KGeh>YZc2YHc~K(H0ael6 zX?v(#exAKJOp?Mx+gt=wN@%<=EU#9xXe#ZQTLpxsl5ksaj?wR zyqzDVLocE-BHc8Nu#DLaI91Ce#4OvVJjw$S~x2xaOUblm-bBb zR5Lut-wNx!+j6U!GmnXF)Z3ce+}}lvK@ix}PkVm3m$XjR(PlcAmnu3$Pmy!{maiW8yLjv9KZFj( zM*e(?p-WMKkX9@Z8;5j)fSb-D$zz0E7{{eluxj4s?WVp^WPI_2XC1W9&gePwe;xmm zQMgF)a2(h_z*BA}6>@vvU%6nOMD^R%0pW5T`R>zu&PP?1K6y2uZk_RioV)&{Q!dFz zFD_MRo9Sxl&;3#UnxGp#WpILTx{lwz9-i#9x9<&(KA}wVu;DbXJ`UCIK6X8|^Q{B=mvC2@rZ^-;u*cg+?Bdvd+@C|48ts|d*EUc5E1jR96Bbq*o{47~D&ReRR8EdgN+(l%y+_F}OJh9au6_4E8${6!*y0!!h({o9{$~ z(q-><&j%6vpiMq5FZKrJl(c?@P44UJ3E!_xDC>Axsi7LgtM_b`O9Z{zaE`+vt@DXU zC1$Ib548t5FRs9d$X*Epn#=l<`wHaG5kML;j#%|^ea_6iQ)w8bk(Uk%B|Lp~V?4e% RPl!$@F&qXDmRO&U`U@vpcvJuY diff --git a/docs/cs/images/microservice-sample-diagram-2.png b/docs/cs/images/microservice-sample-diagram-2.png deleted file mode 100644 index 414a942aca538f0532b0e19b1fb926300a1eaa4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 121775 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

    oHMbup<9!au zh2v+A2iFtJlNB^KUsN*i)6;5KStd3Ll<*k5n-;2}sBFIb{FAfxDzi2zIq;MNE0M`D%{v?`zOf_Y;x%vjg83M-XcHUi&${@jx%-^O%{@yTf&v< zk$_#A%=SiM`{YQA@%{~j!+9@bvlz%O_6W(H27p;E+r(Zw6(rQBih?={9ntDQG_|FY zqjt61n=as+kqkGG)o2=UubFM@>h$|ClJF`$PWMm)lw!5{mi8a1P|?ub>q{oRqd2(y zEx81@uw%%Hq)o#!eW-jO1<0sDrs2qoXO9~ z8KM*AYwnBNWtik8*69AcCRSbG051X>G0a~a=#}@_sYw61F$gRsjMp>05o0JMA|hqP zu7|qA|EL+>+NNHBzEpl(2XA$1+w!=C$#_MlC>`+c)4d2q_psgCD)TVzoB!LIA7KOS zRn_>!pIA{k`^7VlZ~N_5)|K)RJCt9r0~}WhL0t>HOrY|YdS@v!i5@eXyOnaEzKpTC z_)`EZxKkIK-ev;Lv+*lb!`@TFB8|!eVlaGSXP#`0FgxbcC=RW<_NZ~e`xtR8;B<`l za)H_^;4e)gkKHIQZ5~8RzEF7;|#)9dm z^vfTTn}PKX^|J>X@Y{xMvFWc_oXvN7G_LinVTiXZZkYr~9;CE4AYCLn$y3(XDB8<| zF0OVY2$jHD64ujbsI~E`z%(9>IEYvPm+Re~pr~otAy=S1OZj;i zlk;nS?r_vwJ^k;sANTt-&m&A)_Y1_U8XqDT4mb*E<$Soln9eST%@4J>9vQsBekb}O zCo1~Y$n@mx?Sgh09{@rO%zok80bQc%bS_MMbjo8;IbE13j0w4}sioD!u=u!}cFuNL zPQ1l5Awd0nr_gDDX)$gsQL4A+Xp7CXv)$_VX2bVaF+S#KH-q{VULV(I4XwKV!AxyJQ+ z?5PPs7%V`Pb4pua(9x93(J7EV56ceNvuHN{k{-J!nd=My@?kp4)tKVoAZguH%zWTz zt)m@U)reKoj=G=!P6=eTb-%UM6X)8Ip2o_0uwO+OfyOPPbR2U<+zldgP~_k*(;Jki zUVWMc3_04wg5RIW_jDJRT9pZA{^d5Ud3WS`;;YtwY}>s9^Z-bZK7Q(oq)ADs-@+}0 z)0~k56tlL18PMpkoR=DBes%W ztOeRjAZ54Rq(e<4aUIBeQhfzOO+ZA@O~Ri7w+DqMWn!|}($9F>m`p`rH%y0P>@vSK z-(1I3Ipax*;^n{Uc0(O^N_+`6Z2Sn!|8SGTxF6>2v>ORTg_RPdXsQ(*&w#n9vyLxf zq>ECPrT*4X>*MY|8lD(O$9nrd4@6L*PB}fuBOu=+4o1^ymX_KSTSs_|$6)NL_$t+v$L0rITmp=wj3k1wR z|9JGjPP+ShsMe$ZZ6IFZL|U*h&^`O-`tbjG8-P{%bN#;^m?!Ha_V=v4kN+&^KjZh< zssC2t|9x;@u<>6L?f#cl|Now7_vruaa{d{QCXi_|_!lM{WQ3-_Zb5@AKgjQgEM)ft z44lL1dG}C*_#@JXdg;SYz|ULPB;0X;kU>+B93E&!o?m_oRy#iwc01Fj?LlvGotEzq z4new6fBGk=12eGZl9UPD2C{ckb9V7#>W(McLc_m{-qRTxlN?4rR1F_SZ~;03v;wdx zjXD%9b0qfhA}C^T8SP(Gldtn#o>t8XqpWa0^rr%7P8I~!2Tpf9dMNj?yJB}%|Keff zyKJv7O6HFhy`S5eE3!z<-6t0Li%kCm|1$6`)2Rwl3dyhb18w+;c=4RpKi^#59uJ@0 z^Sc>88E+rzw5fX`h#^>q@WHfL<3*K*=#Yv9>@-iqe9W}CT1VLorcszNdi{ZV{JQg6 z=;J{UX__}~fcF!WfDdWk$ON7lUr?Yelt{+n6q)U1lCY$dNC)%YvGudloqg(z9LubpPJxoz3j&OY2I9_V!^{x+5t)`-H$&`XZ`SePU} zve1m?PUI$xRfPI*gEah?&;I@UdOhXKy>M^wnT5N~v$Z3f1Z4YQ1gH^z%H`P@yaE{` zCh+V2@m<`wq+o$)gbUm(nVu?kqe~~$0;=Q9FcOfT3D$17Jl(O`K8}6iWqxU^9$ZCq zb@-Li#mN)tZwUc1{v#dWo{Wr)*RU|LcuKJ&c8#%O$i-@K{Gc z$7vWQUfcQi8#)7_zMsV6ISW96T_D-hcb$FZcNe~mdFu}&OY|m641FP*8neMi+$2LuGAYjn@|2wJjk!H*?D!6%Q(t0%u>U*GOICNO7`8yX!d`Bk);% zpEFK5WztW0khtyabEJ8ed$xKP5D??BB<26n9_ z@a+Di_&N%2ROlD*7B0ND4(MnXl_X%}#m^rcsXoATcb-6UBgN)zo4eaxdwOK=rrnV+ApKqJP%>0GkL5@b0% zJhV;KkljR^#S#3=fd1?|DAPT9zqSD16LCCkcSs&Q;W{<<=Ci~6(2}<{;eCl?cuu^i zht;b~&flAl{8#adrEdxaWHS8qyC-n^vf3Iw>KX2sgOW^fxZ2vz$*uv(sk%*PTTCE> zl)50D6BBVe^e>+Qhm#u{8_P0LFf64cCEpS)udF=&mjMH+2RN!iW4ET(#s2tlNahdm z<5O3kGMnPt8E!u=Sn%aV=C`FY(Og(QzH!MZOj5%lKo{rAB+Y}weSsR1b~-nN!*FjI z>7+qpS*~#6j(KOZJM)u{VG`!T)%6MM86+ocuy3}`?pHH#MI{-0WG4<+y&Q<`RVFv@ zQKffra}yT8{MWAhk3GgCC7Q>W8x{kLWTrwQ?1hr38 zjx>Cv=XOv$SQTrw{KL&W#-{ehaa9hz@Yj-u3f^qRpT)>q_+qoBhzP=U=&hE1uLiir zJ{YwUGQ_X8+}XuNIq_|L?EomC{fD*Y)Bo|*rf3kPrfs%7W>wTHPP@;Q-!R8^yt&dW zId)NBPycXZa>LkFk9mSb5>SsiP+CB_1soIK5LBK!c$Sqt-DK@$uQO`M6g`^u>rvpN zO!cqfVh4=96^RC}Z8N!U+5U5to9ha%aPddB(2tpadsy2YI_5?W2;+wjoJ_z!8bIC7`tm~gLh=mR)i?fkFh;b zaBmVJ^Zn`YJfhjMinBWJ38BqZ{HVoMT*Fk;yk3Nx0E6o@f2`qkEB4xj-b2645yS?z zW}@BbJ0@BKnkXW+k}-5uGYaolSEf%r^d0Vz?F3k0L12k9-Kpqn+d8e$)UK5W;Xb_I zAGIH&hrZpV@LR4Kl)gWW+3^XeM%Bm9n^{3n4(;Ei=}N!sUmOaM#^CGug&lLNKBt`J zPcbwo19LmPDPVkQ2eP-PmE>d9lO=#(n0%{)xi-y{rseKl&n^GRzQ`}u9bhkXKaaOO zl8<%bsySV&;#}xldeU_`tH|0Q;nsTcS9A&`hQCDd;gUECPTy-gF8oF-!z?tPk&a{g?1WyB zbM$V*xHto!+DqS0Yl-t?lkJZm0nhu*boMNrj_qjfp4)UTyyFioYd-VE1qBb77~h)S zZjE3th|SDzO;Wg5iJraMjVPr>;E;Ra3Cg56mpvZlUKoGtkl1Yh2#c%D+erXtRh_q zhv0E~I?gid&spDZ97FSpT+p{Ed>m`&l|&Yg{2mz+Sf%bEh8Z4dAlw{v2t{`-s5f8F zfXd|?PHf&R={Kpi)S&IHlX8>>27>^fcnC8iJhYRZ<=+n(U$b;9y=&p#Q?k}MzO|go zit!t=lOfBA=Y<-aeU9BcUXUGj+IS2cAqSE9wtVmgn||WaY!(Lm&A)9;%oU0~t{rgw zd|Tn8{CY!_1Pb=apu6MuFmQkq8eL9c%=@ojl{?CPIG4a15MJ9{K3y8 z(<5I|H4F|9O1yRupn~|l$-o#yEA+=01wV;4$Vh}gK!T~+8^A*C9K%$Tc1!G6$V(Zi z8{Se-iSj|0`ol`^4J7H0Eo(}=xLGt4BW1zlQ~<3=?vEsvhH*Jw~c9f zAHlm*M&ei}LdfqF3+uqZ@F8nbWi>Ut)qfii5IaD^G)l$qAnS);doZLaRaPnyko@R8 za_8rmiibL{=j!<^-aO%u1LRQ}B3+-3bC_*$gLeD^^QypjXDBqq(A6&DR6Q(H-tBsk zp@RcyS7)_UM>_f`h%6Wg800oMl8~Hg8qh1Qm8GS}56B8YvwxuMU`b`u8C1~E zObAw9;J(SW;S;B)2WsFhQHI9p+$d%OYkJJPBjl$scUjHqNdq=5H0FmD$Sk`_uE5vV z&*x-rxnW%Ui`Ln37VTJ-qs0%$!noqe)9}?-mzTZIfk+j2|FH<-_j5_lvTe=QthC}a zl336PNiCiCCoKmJ9>Two?8DXs%mnPzff@TDX%IhhHZgxPY*-*BIv(EGu;T`zhsoul zc;&%iaY=((%R+IYm)vnrZgsX6OtnyhC(%U3UY*xS>A1mA(;8pQ84IwVCl!_D`{Du8dQ(XYwnH zr5e2PdbV}Z*;a1bfXYUx;G^{C$MFy)kS)e7)D*7dKY>Q_e)*tN0r@IdJJj1-s8WZ< z^??TOVNd=byoa6nh$+O%nv|u5tIPnlN(Z#E%;seC;#Vuf zsB7NG@H`5rf*=sGSL_~_;sYrAANUFdLErY1QTQ3W@u|NoE&WWAhv-8%O;0WyYUgHS z`~))C40$>#vCV)CeXFko`EY^*C1+Vcw-eZO8`|f>tID%d^#1Z@UA2Dd(!uoJ zIs@M-wd8}utawCKCaER%o-P)X%z=T@Q07~s8cpLvMN|^67XSd4f#qA|De{=3SO)+5 zozOtS!#!o|0i1Oi1t*GxG)%#*&5V;Te8*tGIPE@r2_CF4pT%PC~NUlh*_TyM+59*uveyH5fGpwOucwv17QK{PbIZ#eUVp(Swcz@l@ca@5i# z(BF5cvRhg~;y9ywsO>lEv7L*rJOu(&!3eanzRp%71PcXA>{3#_e)d#K(iove^k2J6 zfCPOUT~3d!7R{QTisbYKa2hLr5WtSGUjhZmn}nFN#+!8IJ;M7o%4i9B&mLID3xqh4 z8u-&gGhf6yU-_IzPzBkC=X92~R>9BKijT^A%Ocj{{(^p3j^Qo7;0pyj@moFXD*@_o+Q zFX{G)VExl`BX1aLCdG3dbK2&6lko;;ARh^Q$VUW7(?Y*!*gTzvW1>~Q^aPp2GPm`^|jM?KUfD*&z>3>oP{kK_5_sa4MCz@Lq|o;^kaxo{l?0K zkL>?5f5p7@BM;$!WrVWb*7F9K!U5nXm@^I9SNbc(!;NTzj(ZK%I7%0*;(YuyCpx$q zUZd%00^I|yG|mpSC;C=fn%Vkt35_Ak$UtWI=_PzItFh{YUgqV`>0*ouL>gxiz*GN8 zE&hazr;wZ_Q5L%7XQ~KA>Rb9aE=v?6mFWL^IucsZlKML*`{~fHB+l*RJH1QqgN06xSH^#@WyQ{wzxD+&1YR_f z+8ERCi|VLEEq3J0PI%TyQubITqOQcE>ZH;J5ip=IwKw33hV}J1YdSWtrr`reTsS7s zSknTr+q1H=0QSg#_2S$(_nm$aHsie+2)enH~ro^YsH;6D-=kUxT*RnXg8?aWP)3e)c~>`;*h_ z=XTPHh9pHSC{uap@)LS`N9t7zX*9XN1HCtPvz>PA=6SJEP%D{TIQI>Yb#;L!tKh7E zRMz8mbyRVcae>%PhZ!x&wNZ{dO&Gdam3HvrnuWtX-zZ)N%)`u7yBSDmUOjsX zShO9@H;>PaO-(~=alIWoezACJtvAgO8G9|$K+A5{f5)t!2uz{_Pkf!ipFd$cb_yHN z7~!{bsX3>qe`+!O1=*aD(PfKCyN1KQo#wY#p;UpbG!4T=W(e{~#& zNx$>MYMgx+psnm$8oW`hj>7j1a5ej5>DJ( z#_ov;+y|8NH>vdzK}r2gQ{{~?t(ok7nk>NsU$$E2UUJwkEZ(1@M&!EG^=!dvUTgOq z8uQz{_jF4+2fySY4W#Sm%ga&TA`A*;^Y=8Mgw@ZDADqu}Cx_NcJcf=D5v}O4D9k@J zP1G^V%eJddO>t%~k&K~2-lSo-8C85%`*Z95>8D`$>PInYis*rsHvF5kDgN! zm$30XFe?ANU<7r+hI$$nh^)2_b@-9b*I&jas>zNn*GQ?!eTrq9^95Dnd#grE(Ikj2 zQ{GhqGMXqU4DeqvbneXAq?hrFbIEPEg;M)mo{v11*^P5WgDg$P7@)03hldHwMkvRR zJxB8t1O)|UG2x@Zv()6MEQ$vL)(b$^p8pza0O^mH$)a6LRwMmoBu3tc2tq)jNHx-` zJm#|Rzuw3h7LYZ)PW-_@jBG`ZdiAL2`!_GGh^^GPm`^W%N8a+iW&f?MvsIj7T&X@h zI6K@Y=kcASC0|EQO7U;S(lYPgG1yD#+F}O%8B$F3R@?zKO84w>Q5rga&u>r3z6{R8*7*e%DL~_@=QGMCc13^!^9F zeiChK=*pv|xc6?5h?kZ?w@FYS0@>O6UPS(AFH5+0bzbxj9#7loqdSeTi*_VBo^d*{ z{;}y&iooT2?d~+OKM^-uUe`(zH&6=OFCH_J0_I#ftqVv3?^;#oXo_}z zX1J^x9TBc4DTO`zB_qj{K>2%A)VnT))w47~@%A+2+moXsA%=V%P9U6V(c_XlX##lr z|3vCE*I3}~;Ma+;9DbV!L938$Bu&afpMV}hK zvm$eGk3|z*F`wWZE*!gG4huuV4UHc1M7oJK$v>mw*L7-&&P%0$sjk1|$}Bg1QbY&V zQC9A$Lf+5?XhvUe$?&EGxI>U=n3;#?=8`Y-_P4eQt`y{KzgKiFA38fMvaYPH`PQMq zBrxgpdL|}nwEUjT0ATw+1ZROZHYH#8JadwD!mQ6oZ^eQlHx@6dNa!fe<)F-l|3Ys) zdQ{;0N7gDzjxS#(WHOoWLRDrfD;d5rkxhCBgy_Q0%YeK2`SiMaIyx6#-S7 zqR3C9&Hc~0&U>55{LhFuoqLTf32NLn>4I^ z&D;8spk?(D*7MWsBfVn3FmRc-w>NnCJ$`Z+V=Gdd`Y#(M z50_FjG!c{m!lKcvsvyXRh`k^*f9X;gNgy(w0;v3;_XgFPRyg4x5p-(rxt-2Nq2h)k z+l2f3F1QnxQ_$S$4F$(!E9l0}m4oLBN&A})4lk~FWq}92lg#&4rtXonA&KP@V5v$6 z2)X}2v@B}skb`WlUPhmIQ*3w|deUK5sPbt#y95tE@JyIW&sE+Tyx4WsXqKsXhT9%- zV)VtWks1#9ec7ezn5sN`U1K^YK^CaYPk?f8(L*m>^{o;n@vdB81N8Vx!}BP?J5CeD z5F8_dMvrdBfWnG1r-!TOSX@6{~C(>T|%-81?3{B)h_C?WD6uW#evpgi?~k~2t6 zHF4}cH8o183>-tL@PQIowEOyn;$QZ=CC3pE$hu;soq_MIJ?NKp#}Q_-E^)|419fpv zt4LiL;;HoNu-aFCTYh{86r-A9%-vJJ;lrSQMo86CmVBW zC?v~ePlpuUHvKresc=!WaC238p}&|do@x5##uUNkS61ep= zXJMTwbn_bn9lh0HDyZmmcE68=WR$bAXK@RBo7CGQK-sDRn0p3yaj#_!FbH1@_O65g z>hmszk2)9}pq82RF}R_DI}Kljp9u6TFAo^64A}mPZ5Wa z2u{G7|ES6Rll<`ecq*m_j+PQlT|SPNmf6unF{0`i2Caz=phfB*D_MwOaughW?R}O0$WQA~_H& znOd!Rl|c>oyb4ga1d7vEn3M!n#ah6JC8{$|gnvZy|Ebq8GXA0e217)Q@xh(CbwJ!e zfR|AqP_S0!j|w}2e9j##b#L9D9YsWaQ|sYq&-IhE8|;pXI*L*PzvnA5Cih5D>?auT z7i-3T|fO^}?H0!Ikva))9sizhFj$)PfytHtvin`if zICD)`8COf$EC2$|b28W@Z{1GjLwB9HRzOw*|T( zK6yNgA_(|=J-xqBSI>kuB5Fov=0dZ_^C-B@a6LIOT?E0Ro{&3uy4dhv%J zj2JN3Z14@7mqVMXpBbP~iew&(a}LEz$PR_j+6&--$c)}lKwItoR7RgW7>3G4l|WtL z5tHva_-KQ)K%5i{q(y)OFJJS+Y_7T}DwI7BtG=zDks$!vI8^c#CoUFDUydQM zw6Kzl_SScGRd+Yv^qFpk(*?4lJN)2W>6=5+Bu^QRGI|pJ0+MMn2uXFU7PQ0T9kjib z!CZ2HA$&nU>T*5@vgGYm_slPz^qu(PxO z)k^Z9lMi&SQ4ml#ptQ({h(SA-j8H+a*KJ&Pl8Ew!7al%7r`MhP_y@}DER>QV3tvfnHA3}4v=0-Jg`!yY6o zr`{*^a-1a3tWU`d~ZrpMxWw^ z)h#4dZYfj>CE7)DrH|TYUc3E+adRSmpcQp(4%-iP8MTZ;VU~Pckej>tO#hJQ`Mb;_ z=`G09R#q5*5rL4fh@8hx3No~@d?v`!9db*V_bj>9AkK!3jq6(~9?DuWjE zvnZNQ6ovQ|@!VgD`qziT<0oz7ffS?LN4m}Kb%tGG1#B}6EjLkPbIHAH1xKz}#y8nW zOzCkw=mrJ6AmON92`W)?Zs=PZu?kg)L2~g)hG^fTcbomRpVt+o{AdEe-Q5tWqDxn- zmOoC+LQPki((U?(g{$K0!H_q4Q-C-CZ1|2|I%0^$YF9_QeR2K9)CZc8kO_PSp?gFe zX1ZbW#RP(sC~sOTRSbQ|5kil$QDVu`e*OF@i~@a|?;WEkC|N&&b_f=AVjop%C2Py% z{*MQakdl^`4ko}CQ4$mD{PrC4)8~R@E(b2RGjmDF=i8r#gj4|bf^{PEoxbIKAmS)# zPTR8u4c-jfAv8%Onf9koD>Ctc5h60C!3$BZTwc~M&8FyB24-Dni&0CKCbt)rhfW*O zGSiVk(>p=>CGA^BnSVn-KF12PeMsE9I`3h?%;hjJ5M0%aukxke(&h~uc*b^M?}#~q zDuKA=7#5ad7iuJ_aI+fWxPifY5*_Q8bKs|Or+hjrU_%C71;Ud(33{tCtdVA`C@^Sf zuTGV(+Y!Kw+vAQ+5k#(4+aGO}v?@?k@5F8m!%g^ki$XEZ&lu>%7k(;iuTkBz;%+Acli8@Ri@Zt=P&9te%;&&tkDNK7nTbgkkzd`!1urG7Ru z&6fv=j}_mV<++3RXK|KMX34z!U)ak|Knss)ylJHW@%=Gs`eP@Cm*GC# z%C{Iy%D3d}^)%)DF?9xD=jc5oUOt@bee-yu3X5i&dtyho`z(3x`+}vuOKjUpOQn;K>Wv z;644b2@mAuLpumHos!Z>jn!t>m#!6F&ztz(wb+=L^f;mPGEcHZG<5V-ey_0KX9r8d zRU-WZxvF@-`ueJ>t5xz(KVTSS7~K>%k>&ucFyx9k3Ey}q08JK>R1-*FLZ0$16eZ?q zq2~IDMYk2?iUMK+rXHG<^+#aK{R#sE>HUg(*2UkMOeq`0%xa;W?)Rjv@OlG~om{&c ztgQZU+0#bT^QLHo`ogt`&a2)_)JMU`EYYPl#|JC!e59r+?9HABm3tA z1CH`u%bA?+f9>yI@=q^r@?_Uwg^$)n)44j$JH@!z?d=b>nuHH=c+^kRC(qgreTzNp zf(?>7IjM|gPp=q}Bf@Lvb#hE2Wj_IwT!k1XKrMw_t>As&jMeAx>+b0A6%z~ih^*1B zM0C;r!56vpza2+!clQTQ&V;j}wd2bLulw5|Y#Iy_z7WmvB6X$k=$n;r{sRy(uWJ?H zBuz$gI@;R@*OO9G<_nZ*#?-@O|6=yQH*~HzYR2MmFW@hoTM1Bo-Ueh`?WghH@vOq_{@ZxMM zpjUKi#_KXcc^VPj)E=9a*tFLREc4EAhrjjoj5$UMiB=m(%LBsEY!X_nh`8(}Fff>% z_Owh-UWVB|v^0c=pP!wnNCn|v=AmRgMq;%bGdVN|z}r9WNLCh3DWCF@zXs@DblRJB zIoTKja2$9bC3H@?qO!6p1Ye1PWoN#LJG|@Xfzi?Gult+h7f>|~4Gn$$w+_<`I*o%s zRWnEDRmaAou^0N9=?x06hm{#-h_Y^OMvVm*x- z?`Jgmy-{mYZ6iB`R#9uHvEr|`sF&@F**AZ!A{gPakdUsvs{s+&P4!TpyEL2$pPtN4 z8X>PTIuVf804F$LD@}8iQb)?xhj&sE?F`NW1l6nS4q_(fYXpX3_2s7V0nl4WPBH@J zq_lj`4eoBaVMYSgs~N)Oo}R8Q|FJ+Man5wjnDTNP!+LQyfKSHEy*m11{{ZjNvsZM}bb0nT=&WE0se z7Mh9Z;5O86GJgCJP*w{M`c`*|I}4C<4)+7dgJ^0im8!X{UL;n2$91$Rldn~~J9Sui z`Kq(QO-8KeLEoCWaqxb91zS@uAV_O)c+qwW3%hDAT~Glr&U3D4X4@h|g~I^7@26c-X|15%Hqq$CPi=xDj2I4diwqz{8;HQE5(yLZdM49$}@RtvzE zC@CqKcv)&zo9CaOLTr|OcIbWr-0b`O^3$U~LN|mR7oyi!)!5lut8okOutlwu&KFk7 zx{1rRNz!d{%Mrfq$8k5!{t8gmGrgD^hDbqk#(ejqT-Oy>Zn~lJT$33#)}LO%0iV6U zS0uzT-@8#~D}|64>L{8y1$<$!A`NWmL&s;T=|WHA$t>zq7QVB1a2%lW6pprMA&RbR zFkPS>%TK%$LGJ8-&p)Yqk2sPb{EMCNN+_7MCtpP{(BEHNO)cJ=kM`jUthoAaXtsADlwmX_wQqcny(1Ru5NBEuBTG+@>a|3fq4TNqQT6}%oV8!Q7007u{YQ7;4`Lu9iPd{$^ysbms#z0CYeqM z2YP#jTPoBm!Rb>`2`@VxQY+;pw2XgrE?90v~>C+)%E@(Fl^X`RpdT3NKG4?c>7dW8?6bnn(Du z-e5*-gZxKp8?~Z5^M#QU+lFVc(i;qJXEFf}&eX1VCQkGJQ zc5D3K?zcZ4$%cS;O7Dj`Vl{zEV3C4cPgHPla9kX&It!@X%4hKx$)9S;13C46fv-*r zD1QNrl;Y{5!d4H29FeK%X|R#e(l*e8>bO7Oq}S^G)BiEoT8leRO=R@Eem-u1LMIb8e28oBO&mlrZlwH`UYD-hOm^{NVH&>&Kl12z(bBb`^j%eQvAdy8>{&-5cI zHrh9~pz~MjQUe36H7B{~U`XxaPzKIMKrjUq+iuL&seE&^KMd;OXMzV$(&_L9&!*@>J}SXo((GxU9bExfz5v_w-$I`OBGK0%{Aqw8)1B<=F6fF*m_-o}FGq>{e$ zOP<;@Ama?lnxQ<4Y;Bvb{5;7;Gdo#3gr;Go;H6IO3568{u352Hp{t|AVx~H@cP%G7 zJDK0>t|x}(UF0(ukeDUx7#JCy0@@06R-ByJ6A>lj&}oQ>iA_&V^0;4oBz^hW*cixL zd8nzk;EC*HVj&zh%k5XE+ovZdfCrC`j66JA>s?-64hVQgMwVHqT1o(D#j8Qc^XJcb zhzEv-UXch13$IMW%$%i=G2UG4)-06hwh-gt)w&#mA9Ban%uCobDx(wsLjA7yzXAHQ z=#{34UgdyW;E+tar_Gy>(}iE$%sFv_v*r5XFwt@uSEumZ#S@vaTE|akPq`%CzdZ%AK9j^O{#M6sr1w zuQbM=!AWHUC+E|mAG7#ciuFi63W>$sIP)JF82M&t3LL8FxuW-1NzklM69O9OWyr)? zLem%DDZtmd?_D*YpeExbbCcqN<2+k<^_?J`g z-r5&1mN<*^m~X5)#|)F}R69#Q2RAqJ)2EBUb%0+d@w{lApT7gpVYX-1LX(>@1OhQN z<+7ZuP3Csu^ST2_m61GN4h{}lTJx?jqK!Gg%>&;23~)b9%34~qSSZIwNA(WdY(_ob zftwJa<6&Wq0{@}5mSfZs46e4Es~;TvI2zE&>2|i0$Zo}EHP2%@`T^)Yke2S9o$ZMy zje3j>ADNrGUHa)?%S%B4?u%!FLZJ>V#2tb%0A+EC*A5tck;1ete|2M}QrxN{6{=~q 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 diff --git a/docs/cs/images/microservice-sample-kibana-2.png b/docs/cs/images/microservice-sample-kibana-2.png deleted file mode 100644 index cb1d0b748c4fcfd4b9c84a1797747a2b852832b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37406 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%0A1W}XY zz-8b%26411NPl&Ly`fqM%+le5Z`?<~EVN?Ths2McS^^_}U&e)`N<3{sG4gb6A|MxX zg9(^Bh+ZMsM2LySAKmfy%|P+t#4M0>?BV}tEr3OLn~#*vSh4FD6*)AAadCCO>43LV z&-@nwKPRi3rdSb^xg>i+vfHsD`4mHFIN+LaO=Fp_>!HEulR!f}?Jbdjky$NZNqoZJ zM_}JW7Oy>}M42HKE3_Ohrn_GKbTWyqSRb9o_DIy(kW2_gY(ZN z(~Hz@gh{6nC6YkK-sJ__xUYrbl*L)h}_YDO7#?twpo7 zpFX2f!FVsRDfhI-Q^iS~cLg=RJ&Q5if4m(d|P zjpM~!kNWh~NR;eXnkQzK(a(Q2!&`nYOqmNH-*Z3X{fZC6CIF#so8%s$+P9zGv7yqa6{f(aB2k?!+>x`)wx63QW(JO}r zL*lKZ;gG)`Ox~t-t{qXPb=s32Q?O|_22=Hvb=g=n+ux1eoUBUsDDQhMH~siGAHQHM zX|dkIp`N5gPKVqpb?x?(2HX{J#AEETDr>aNj=Dk&N310~5HTeg1Wc(wY33){Y8~bH zs5fj4*34lw_(m8zK_w&X8}J7K4CB857-B0niE*>uOVXAVA>^lgoG=Y`PmipCrbe;L zO0DVD_O$dHS1wh_GjZedRRAA9!guf!f`m2aCSZa;sr@5FI?n#)roZ1r`~~EH6Lg>+ c+Xw&D;H+te!`z4O0kea2b@a7MH0>k*2czB~umAu6 diff --git a/docs/cs/images/microservice-sample-public-product-list.png b/docs/cs/images/microservice-sample-public-product-list.png deleted file mode 100644 index 932b0b531cba41463fec4c52fe1ee4e88080eea5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18738 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 diff --git a/docs/cs/images/microservice-sample-solution.png b/docs/cs/images/microservice-sample-solution.png deleted file mode 100644 index d1497d9be275bea47e3ed44458855d59b1ce6ec6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6955 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 L3~m-{*rERiwxjy- diff --git a/docs/cs/images/microservice-sample-update-database-authserver.png b/docs/cs/images/microservice-sample-update-database-authserver.png deleted file mode 100644 index 094fd20fa65acc5f7c79413ded5368e1cd6c1419..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3909 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 diff --git a/docs/cs/images/night-build-add-nuget-package.png b/docs/cs/images/night-build-add-nuget-package.png deleted file mode 100644 index f475d3aaa0011856702018cce584558a2f77aa05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14916 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
    PWz<5`rFH78y1~(}cNi2!*F!6-_%;fu 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 diff --git a/docs/cs/images/night-build-add-nuget-source.png b/docs/cs/images/night-build-add-nuget-source.png deleted file mode 100644 index df3176aa12de0864b9f382eafef815f4e248b0cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17180 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 diff --git a/docs/cs/images/pcm-update-database-v2.png b/docs/cs/images/pcm-update-database-v2.png deleted file mode 100644 index 72d02e91860e8fe7a0d76b4ae181fbffffd3e8a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3838 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 diff --git a/docs/cs/images/select-empty-web-application.png b/docs/cs/images/select-empty-web-application.png deleted file mode 100644 index f4b884140d3eadcb68613b3936d4aafa49e58908..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17276 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 CbD9MJ diff --git a/docs/cs/images/set-as-startup-project.png b/docs/cs/images/set-as-startup-project.png deleted file mode 100644 index 8a5445bf3898a09d53cbc90dbb4286383463b42a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2283 zcmZ{mc{J4BAIHCvl6k09WG}+llENq>+bCq1Y?EyWKeFp7%UA}Z&62G_wn@oO6Z05h zP)|lRV<>CUkn)Wo$=6aQ@r>s=zu)=&{`mcI?|q-oIrpA(-|ur@pPPcQJu50AEdl_5 zsFfwk9smR?_!=j?jXzJ9tCIN3u5e42D*yl!-x>n_9Kt#P2$xu)OdX>~=Sz&k25e*# z*N&`d!e_I}6%wmq;yyh+y?>&#XpK%+lLhFCPTsrB!t(v@i_dC^ScdJrR>NK=$9F9K ziYV5th=h>5UGJu;a+UcvCpgNh?Vg>FoNw7}7PEt-#BNgGg-Jc%b|qpQUBSJS<-1hx zTSSp_wut`lj_Oarwex-~eqt~f_ly%lPxZC0lCb88O@hnugX#TTXBsD@BhmyPgu!+8 z%P?r=C&%LE6Cs)-9!P{R@<1t)v=e~u1~BqWL4b4<0s!zn5-`F4Zz+TbK@*9*&J=aR zv6cJ;X?0u*{)~SFL*tXGC;u3-hIEpaWI)d^cwN3|zb9a}KL!yHy@ZA&ioIA=sK_Kc8q~Y|pWKSXHm?jF7s_E7Ae+hEIgb zo8|>?gpTevXmapXV2)n!@NCeDkpke9pUfg`@11U#uWoDC!3~zA&*vJNlu~l{MQYb+ zQxv}9_VhEQu23titJVDc!d>h)T=IFfa77=b8bQ*CC#W{S?Q8tCD1TS2gj*4<7h&>U zQ!x21i|$b)nxr(iib&%{x>iK~_MTz@`&ZfheH_NR7~iDk?!{`e^98G<0NIjSM(#8= zOzaHAX6G9#4S*|___b+lP4NOJfN0G>G} z^6z9p0f1@#ci7~q^|>hGp;HI>*}jBm=J-3>i0!7qZly@#A%6Ty!rQ=*6zKHk-AzQB zPV9!a)Bb+Q&tW8qO@T`%0HmH=U#FeeRLmNEl(NHT&ejLR=*T8zAqpsHhbV<^UQ&z1IO?0 zE8yJRt>8zUQ0yZ1{OD3KDtfc5)oVOvZT{k?omkNmzgNP=57q?Og&G=^y4BCzOOL6W ze!tkukqf&`OOc-V-#b2j_+T=M=6!u=;%XOzam=DhotyGZ(+Y3Py!v5(R2hBv{WVCK zG(v=W#Ojty-1CM{G#_1R>Yz_VZE~yg^SOkoH#%|4y>+V}vmFRL-%8E5hIJ>e$C@k{ zw3x2SyJR|Q>N7}KP1!ukyY{@t(6UW*%to1HqI{agAoAwycP+90epvN=AmU1qK6t+z5u z34=3~8!Ia-<7L!WJ$8RF-1`Nx>&S*s{Td1O58k?dnNfDR?_jX=YR0}H_mI3OcaTiT z;G)R}R_=P$4}mFyD^U!VjW53Yxo)47 z;i-r?aLAX0Ci!>Dz%xzoMjJWI$qqHx(Cv`dmj~{M<2>!7*`r2rsWr_ra;k;zz%oLh z$`Q{;-5Z0j&{?JF{eCZo-&AdezHU&);4(W?Wu@a0u~$C-maOMkdE;ADcdTKcruI76 z_EarhFy_Ugo@C)+9lxY{u9)^S_bTL4jCsw zjrFy@d&W|%x#9GB$h{-DjR~*5cB!gi)b@qM)AF_VLd+mHd^QCvh<6)mK<8wiEW0Ro z$f{?uQ(!<6s3k%%=QzzcKI%jAp!KghKq+0+fjp+X10cN!5&EYC{C6v$wAEwNh6m*E-Fk;4fiect8r^jwDpefzpfeTlLw?%l3lt| zH;emCV%g=0*{|jz7%~e4%d zj_C3|d0kEjd6LpwKdrWV$5+7__9Xpb8(Ru=GLLR+YkMy2Jpd)gpm$hfZ{{DwSJW3Rp8$&&?aLR!N0Pe);0#H0HUgimsKGP_weo=-OGn>xz6+mUE!x$<5m@Q-e3@cMdyu9yD-u)b%r XVOyxX^pCS!zZbyD!WQ+&%!~LJ_~~aL diff --git a/docs/cs/images/tiered-solution-applications.png b/docs/cs/images/tiered-solution-applications.png deleted file mode 100644 index df8d2b5f4ac77f79b0b9630cfdb752bd610535ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11941 zcmZ{K2Rzj8ANVOHghDA1*_YX=a8`vloe{D};>ec0X_#f7afIaTRb*#Gi8HgehIRJd zwoB&Tw z_88p&|H$nXbQ~cNN?O7%N!O^)J_N!FLCD_Ka2r|}rL@=RPnupS4IRJzv&S^Lgj*Rl z)(nqn9jN*f${RDtY;*6owT;@BvC$QeT&AocYg8-TDnEL_q==5Q{VVmQywx|%zrK{h zL~nd~Y^uQ2eD6I8$qDj^I@a|&v}YtEd-BOF$;n#}e?*3b?LOOe$+gR68CN-YOOEO;7Ldu25GVuwLDaaw9|a8f!-^tsfklEp5ik-6ak_u;$RnXm&D+3#xtb%@854%VLW|~q4y=0 z7ZDg`%bE1xn^Mdz@&pK!t|>Oi{a5{|%V$us=pWDQ?d=~wu3OsL^Qt+t@P@qqaqvw9 z0grUz#H)7YV;%8%h)z-k%$39*jyKfNEV#R24CIwYInk>+J;D$8bOXJ;obPbLPj4|lqOe@c5Zy&KVK3a10o z#9&~(o|9>5X@Hi4gM*}`Bz}H=J(BYKmGPu)H8oOrr{{P4@JIr@$2bkUIHPj=y8-ap z@$v3%$K7>&WhLAJ^7AVGNq&C*=;-LIwAD6y))3nB-eU26!AdDL|Th`JmI~7dFP0b{FhZ-`%ZZN;S@~3Om!_$+DjI1}V z4S^v@I}4pHg}!`-)HG{uanaVoLd;|Rshr%miv;GmnDZ+tbd(qNeQFP%azP2aU5q!U%`Z3@xs%u1-x&&B@96^vOvW z(yzcE?za51IhuR2Ck#zcwzDc2sg$Mp!QzdL4cK-J8Xa*GvISPz|MXMDczb*AKDmD^ zFKZmySmku>@87@6fb`Q_D=RC3VyJNe0V!bYAEHp{5)7-@voti0H;b;JaKg%j=MboH z^sQUBveRw|2?>Q){rK@CH6<<~fzd(RELz|`Va1);j8-MQ^>llZrJ?Fu(P#BFMPaTD z4GnAM9cDNQhY5uzA_7;|_YQXBNl%aVV9m_IuhZTQ_-EN zlGwtzhIegE%3FH-D*i)9%}x0sb`-E0NV77gR>|B9hkiIxQ6 zv+FI6wZfyGR=fyopzAeJ$$rj$^(D}ssb5v;S#)k3PAjBLmBC&9)Q%>${KVd@#WJQf{qWQ$C{hcWLSpknOS zFSfQ~HK}#WU6;l>OD7)RzIijtAFhB&yf8J*$G%V;z0tOHuu(rYW>})?qxzuKX80n! z;rdq0RBQgX12^gIpC@&)YYJpOwgH+Y3g?R)f zVgrC815IVjY#ql63%_f6sYWRi$Fpjb1lzdhIJA^^SEU~x8gJu2YTfCO^znrYdzTAa z{?TI9k}?uGqs{ezqcQskxBB7x*SF=p&4LfZwdO~w`p=F;x)6cGfL((l#U5bQa!n({f5KD&yC!aEC3lgXJD)RtqJV4xTH!ZwGsP zPN1$y&Hvh?*%Q#kNEFjxB1{BZoRf217!@FJ_5nb14}l2wp8Q~g*?XLUbaa0zpy7GR zLOilhYjb{(&S~yPnta2ep0>jl5KIg81N2QT`+@&}!?v~}F!gWSZwjkE#nF4XX92Fu z)y2gYs#H)<)LH62I1*QEUEc$uFQ&a zJzk{wWY0(B)gsx;I$4^rM*+6eBNdKjZ>}&gS=-v)4)0hTtpe(|l-tlZFreLOHpx}3 zv~zbs1`A|9?j`H7Woq|wk(ZZDl60q{xL9~zT_Wzg6|9WaM$RK_-bT!VC*N1@IM8&V zcX+Yn?nUc#x_WvoB#1ckP@*^IQ^NQw(19SiOFsJ9U6_o6AKYCC>LQ!dJ&unxk4U?V zBL$|RCW)$f?xd=&o|d8%%*Pbr1Reto-^^(3kEB*kf~P0rfJ;$Iy#4G>*QtNxZglb| zBhj#mL{J4}e?JpV18DG_-)d9RB=%JQEAv{ zD-!eP&mUM5)!DO6ey+1U+3fORZq;MHq(2i3s$3BAR+g5tv$Iiz=#IS-MU1Wwp=({~ z4`830Sw%!e2Y_en>T;ML_*m_^b$AleKR;Zi0#9%%OHRHj_J!zCSxwZZW@ctOJ3A{J zr-z1yl#?ZN9z7~?oNiwjF00+>)3f`$a{un#FAoH(*MGkjtXZz7%+)G1JXJ@6=dcq zVe?sVsj{@Z&dck%IHCiNRpt-y0A<#LY{8D**zprV*4;PputX8NSa5;NDlZ?H+raH4 zIu!&2oW?($U2r()Wg%)AU|?3H?R#TmKwzM^l#!NJKfXH?MK1xIkh62i*$~go`N$t1 zKY#WDfg~Nm6fK~xsmWz-RRzLGnO%xgR+@ac;&c?@-c?&`1W)p)dP_sN39t%h3UhOD z^|<;41O%8)M6WCX>18S><>cn>{d`GdX=O#jBIPyHnVMrkMk1?;iZF$aW@cpER~`oE z1szp{$2olj7uqjh?&6)0rUZb|nZl?D^^|svyWP`kN#d>r#l^+ox>-_EQc+O>WDYC| zT*0IsHESP&m{7Bdcsn)pJ-;
    UBr4o z)zC0`-}`Ai*QosQC7qd>SyEE6>l-#L^vxTE%*C`(?F_Zs-#WY(9VrZBAA!Pe zvA=FE42>R-7WBqHD4Ob4kv>>$5#-)?z3c0=WY0-XkC)YK@N?_@Qcu}M zcTDe{i$}-BO$(uL3C)9?hL1qx_Ulp8(3s%hrN4O5A@AMJfsfcq(5_WRam_0O#|FW-7Gwcdm#nzZ-(haNzr|kM}|(u z(C}&?^+j+&zhNM*?(=;@fJp?f!73x0RIf39>f)3*-hrWp^-Wf+fC1x8W2jiy;a+S? zO2@O4z>#+)MnjQndUaFW3)?P2Z=c%O+{(PZfeAifQ0bd!xI`eLG6e2l;kC2cIjDH+ z7Uz)z+j*t*tHi)}jkZNx*#`%0K%#5=B90A2Xq_hYBxmKM#Cf#QP~JfAVsE zLBa6jRTk{CAdekG8nemSC$STFlXR;#+)H_FN<#xB;i(sOmaK7h;b;~fbQFVCyTJJ6}e zE66`Abfn*mS|U(R>jy=eN)$K}ws7e6KwJ0sy)uL%N&eFL`L4(;Jy(jZOu$DYiRW`n z1dbfP(Q_4PK74q-U+e?{LO2xZcl?H&Aar`JcU31d^?=ao^yQN3TbrAWk#ZL|DUWe{ zZC=_E_9xdKI9eAw-e3P12xmZjzF+J*AKwHI0fW}|!Qse=eufaqGai^Kc>R!5K{Q0ncWytSpi?+Or0e;7Jv~=Mt1$fdTi&JRw@71$cYa?(Jd)VOw*C;v zVl}woPu|Lo*WaXWat;F~5aAPFPpT%{GspBSgAAmopS}PXYVUnGgVd#fz_D;Z3;Nsf z(t^*1h2Ax- zGKvNgX1yhM&^_($?#{#sK)0UcR*&DWP+(`hwBS0>dX03OYYeU?_ls)2n+2tGn&=Tz>A-{Uu0C z93{azz_Ap^IRiDuwj%_I-~C#zo!*V6Kb=Q*03 zBe{RB#FrCzOvq(m)PyHAfR-YPV{T3p)^qQrNKM1#!C|bZtH*Cj@9Al4Hvw|8LqbB1 z348$z1rm3BHcyPy0CNyJB7pc@V1W+G9rBS7(`!JwYFy{IfhK#MAiom}3>bj?2+k3> zVh4ceXA#iB6$~2?5ij7xPjuj)la$p2qKEv}1bCq!0ly>E9JWcf;<;2E*DntV+SN^n zj&2|dG6Oi#7Uuv!fFD6EfPMnFbr*pD`$`l6Chx3K zHUjt>2nQ*VZk?}E{!kGDSHY4WiM+F|8Q}>;?Z6w#jHa9BHXP6(d8w?a8_W~}{-40I zmdXZE1Wi03Z~;}W$U6<;kO$skC5ANu7I~GhonB(6%$GBWAn9NY-wOn`)GiWHS|HkA z66mHkKkBw}I2Ioi=%$&nGC?~c*xnmX2NjZneQ39AV3Uxp^S--GSR_^eu*f=U)VScg zD*@t58W3_6ZfR?JY6=GEzkKIC2T`f;&lU+hV@D~)iTKtCw%7D{bB<|pVq$rfT8(Q2 z-VNdw1f~Z_zHs5fGXjJ4z*#_aHWKWP%(#i$$i)jof#s1kkgzroCH!j<&qtuIgs2Mk zr@&{w7NXT~L^ME=)btS3V4!fnRZ?D}gJ*yYAg@qI-O~@^1SU^vu%g%`0QnFXe}Dhj zcg=(|l)VHL8}jxiK|9z2`Y8#oZvayT-zWS}jp)d2ztiUD!afj2M+9h@gM3S!hROLK_dwrq8KWdGbGPb4f7 z0}@ukDVBc+vYVIyynV&Mq-Eirzk|8&?d=z#TD+uK$hgy&he(Aa(hC7gaEFOA^3W>* z+$vtxTcA*`AhI>$7%t|&18$S{NVPAVCw1t8#Pwkk=|O}7S%Xp*gOOKc8hWK6nma=( zuWIotc4cLSvN-hG6s$+=Vy~%^-!Evs_mby$F=^Yz zT)$%w%+qc4Yfs=Kve-sb?)&ocC!g0fH8t%Z8WdQ-?R}*D8Te73=nX%6E9vr zM>@A1*-3gSxofD#dvEdcT6<^EPN<#N%a_pvLi(imvNd(1xYBpNeEIVHIZ5sK(%Q~$ z<_1a7{Vj%Z4!mqv3|0nF7S*0EE_|2nu^SH3*474Y%|VxMF!1YgP>R7WOG}6;VsdD5 z9c3*{o<3F3T>w9ei;MH~)^>K%o}1Qsdc&6?H=@GWiRnT*$UE_xUAgJfE%-DiGv_`9 z0&%cAAg9s}i52u@ zz9eN2SU1LR?U%)}e_$4UVX1j-^Ie7R5NEfLWLR(F`Twh+AIEzXa*Tc5R1AeyW;jC{ z-%k3LMnxt!PK|z2?HgRe{q1L#Yvv(E{Qp(kuWX6&MLa}5;55hs*;ZARUiFP@%n@jE zQKsYoP2bl5;`P2?P!C)Wi+kkE(Ad}*D7&buJ65c|rkAVGAS6-<*SV#oxHY*o1M=Ue z9I{;H-x3&b6c9f01e!jbFKR zX$Bmtr6o}Pp#HgP{T;jGz5mk{5YbHW{$(|Fr{|Z&%ub;?kdjV7=C=CO&e}BRM;9lj zCYRjYT-W)5XBDd*1ls;>5ey8Dj|=|cfzsKFN>E8}-3ocHf4yb-Wld;`+)+Z?QnAM4S+Gdc3@`4890ft4TWR~}k0e(GS-=)}HeJwUT;qoG&fOK@L zK)e8>EJ0~vQ}+HR`+eEhj?+t3d%7LgC07o4ECL0t(Om0`I+v}hU-G+;e&0D^98^x( z1O*E}d=Q#K?{x2Fe{fE9TR^_e88@kT75YLErh*ITHpLqA)_4~RtJDbTwDkj7yBdT?9LG{I&(MtH<_qXZ0ad&C1J*7+y zOm}a2B8K&NNgI}a!CQMGY&FQ~w-#^wcm8#Jd|0B$;BX9o6MQO`rTj>D1Hvxp;>=Kz z>!6TsF}TySziyQtsT_%!}%Oy^Kl zMtx25jp$nP`#u_b@Im!%%qMgO&#Bz^Kh6HUW*3>8G()~^XAzmz(-KIekOaDzR8cZS zRi+?7P9;+mImKTVV6$FRRYmp-ipotO7DT{yWg5cTFwZJ(2-0=LJ zfwma+VsJTC#ht|^l%g?Pc0hrC(d34Tmb5tJ?lXC~ws>tmJgmWF5aB}7+7$t|4nvkxmKy*C#H+eb(2O9(q_-J{Gsri ztIV_wN*nFuzBy|WXY>+%a7t4SM_QkO6t=pL#7Nh~QRp!oez4Sh8{+jZr57#88eI>% zTdM|2YRjy><`*(E#|4%&A54&yOmq#Jtd#ttS!3vgjpZn-4E3H{md&14g(>Y9`)5jpe>jO-T$knsZu@_I#df+*_=HJ56>* zRd-b}^n{Exi!z3IPJU?fU(9#cp2)(P_4-a4cD>EZ5D}0basK|OyTbkX7+T_P_saT^ z0*$&L+WC#BXTC>7J|b$R3K&05)NJ0)kX4~S0^_?ituau!JSNC= z)m=w;eNp(~Jhs0p1a-@iY(4+am{wa0ZD>vDNYTpcHnNPxF|RxPkyz2S40nASe}m`{ zg0Jb%G|Tt2d>;9*fKR7lJ^?TCjx#C##zVCq8%6dW*H^APiUW_l;UrYqs4tMKWS)1* z5+V1cg7mNL%@nOxdB16iE3=hJC2_Rm$?_lD?@ zeIF~R@PB7=Ve?m0hX?8)@v*Jgt(KE@7`fLMt3ipjSbZwxp)qeG`m)#7;6uJAys^FS z7wgg&Pw&ZeUVdiXP176oqd&H-Rq3i5Z&>L)HLlw0rNCk9MU_0>YIWIW0=~n; z5GBx`FY(#b%pFP91{zzGq1&EH*vva&#Y}o)wq>J?ySEQo8zNI0uD;bCc0PPFGYwyl z$LgME_KWA!FJG>hPF8PF|9RvcMxpm-Ns?H6Om!7`KcM^o@GviKpPg&$)TYI+m%Mxt z=^uT*wnG0fx9ps}-c-V7;C%#eVTLh9=?!g_nFYXwS;8CLd-8eX@G7eYI;(XD9$i*_ z_utoKy;Ovc;t8dcYjR=R@ zi&1Lj2t9w4UaV@%k?88ZYdK2pWEa(^@|EmZWmt!B2IaF>j` z&t;=AP0B^*TGtIk$%%7Dxcx=f+To3Z4pJW{kqf%Te>5s4`hw)K$k%K34 z=&8+1n2f0u^VlPwwpNExkAZ_vp4+@DH|e)<#w>A$StctcGy&3#2_puAJ2+rx-H z(z5+e=qg_FtLBh`yB8j*X?f?_w4n-%K188mf{Pni>svLFYh7vG!F)Zu``<=|yD>OH z-%Fn(Yu)Y5lE(MHcCU@~td7=xc8IptEQCI|sk7rMsITKTp(U(DR#GrmSPOH`wH8|M zGp}Lx+IkmYTF6KBt=eJW`vni})|Xr~J62ns$-eWrj)dJpCJ`Ma7IPgXyIHHoyv#hV z3%f$>CArDeI^AB^+opM(DAkG{7{_HkCb56|k)wSj#1l15`BEW(QgZb! zhmLOYsS^JW3phH{%tfogwctUh@HgM*6;bDZPAJ|7Ejj$m%$Y;+DcR?59$?sW9n8ks z#*Z=%Qk8nF*-;t3xV&YogSRVwUbe)kFMn98qjIBEufa~X-iTw$z@-{ivRqh8%Vl!# zZ8UjtTz=4P-~x7?{+;z#YXyFCHl@VjU{BQEy%yt&sI_}xHl5U73zWjcV)~bSD1j;M z?%yA(&qHH|YU{AbI-f_IpuUV}G!D%CRePX*-8$6fXb?%C%Uk?EGEsjgkvnhA4ARD9Ui)4`Om?XB8})l?Wd7~T^dZ-8mswv=&M)!M zg=g1ec=uF*qdE7MWmBYSv=0gtEHOkbT{ay;Yi z_miuRGo$8S2A0<|9z_Z&(mj_tu@?B*kjP^aqfRX1B6Foe?j1f zfBgjk7LSdn5YPaGn@h|8BAluik^W2GJnzQe#~|yZ^FoPjSM5?TbGhO zlFMHLnc!d&ZBW$ife*eB%$kwWTt(mZ7~3L1s6IN}>-u5ZGY`7sOG_XTY!A#_JaQBV za*9E@C0OCmBiBdEb8-}iW}qvC4KaTk{go@kMnA}7oxPWg2!#S-3Y=jrSNYKzv|U#^ zQ)N&n)F|gw!omIDU4K!QXMj8>KXp&?=h z-E-nxVRtt>JIK3(jNNv}S<--%iq5Kl!y=5urKW;808qq8l5j7|$*~0UaKmMGzH|9y zV{U&!U%Yq`XXt_d1`1oh{24S04XY{qPIl>lnSf%K1zkdC*3kE0BlL=h?Qp3QTni9t zU@!_g@nAd=MH)lRGpY(_KM$%(C%T>z>Mx-E-PqXJo+3To-%l8*=;_hW)2s45I%F1i zQHZvyJ=jdNtAQrDAM9=v*6hw!I?qu+L|K#MD&IIU5s=-s8RC#Jv9QQ~3%&aP7z!ZZ zu_D%axbr~Sj5rq%PCBr=yPJ@ZfWs*wN;o+=yEgw01sHhz|Aqn}(4^ed)VuHm59xcp zr3q+qAqf)vEeS9Jvui*eoJ*_AS?S{JoFwI~n;>>P6!59iyyL1x&F9bh$}A5^M7azy z^74=Y4Wm`AEn@GTctEkLoznmb*99YzPVfyMQWhMjiTQoHk}N?z9;3=qbd`}Y3RJ_Q zOjVNLkF>P5Krgz23nQjZ&`8WgrW$juvK7R19hgNrdG@} zVI#`e$!%3s%m|&I6<(W_%$NBFoaG!S=U7=;+1S|F+S*!LT3TD9BlKwMFaZ`_-dH+> zRupwFI0v8}fV!ckrXVNy!52$4uDWGXZ2$7aGq;*7<;%U?kHI7aXQSc+(BAJ#0o{Gh zVa38l$hp_;2qKiF7&=+J=E;*M35Bg}l}Eyn1c_OI(iu~-U`~flZn6X%e*Fe0LrU-} z0XrPW`anLaGJlswR7N@R9J7Lu7v2+s64|f?1yB!M7JLm@#!Yr(7bi7H9aEMM2eV>j zj8nloYUEdf@SK>EB~~^}dohoEH4PZ=cr|8bOQpkwjL_QI!uZlHG@HP2m~RgEL(8z@r(Zhp_lpm diff --git a/docs/cs/images/tiered-solution-servers.png b/docs/cs/images/tiered-solution-servers.png deleted file mode 100644 index 68e72990d72175ebaa59669a4923053ef1bdbb65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31089 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 diff --git a/docs/cs/images/volodocs-iis-add-website.png b/docs/cs/images/volodocs-iis-add-website.png deleted file mode 100644 index aa7da8095b1413fc587c53151865a6d4d5c9a101..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11571 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 diff --git a/docs/cs/images/volodocs-iis-application-pool.png b/docs/cs/images/volodocs-iis-application-pool.png deleted file mode 100644 index 28ccfa5c42b40af7681be9a6de28b68c5b36a196..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4963 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 diff --git a/docs/docs-langs.json b/docs/docs-langs.json index 3986dc8618..b33b751207 100644 --- a/docs/docs-langs.json +++ b/docs/docs-langs.json @@ -4,16 +4,6 @@ "DisplayName" : "English", "Code" : "en", "IsDefault": true - }, - { - "DisplayName" : "Português", - "Code" : "pt-BR", - "IsDefault": false - }, - { - "DisplayName" : "简体中文", - "Code" : "zh-Hans", - "IsDefault": false } ] } diff --git a/docs/en/Contribution/Index.md b/docs/en/Contribution/Index.md index 8ebac70c20..77dd3cdb8b 100644 --- a/docs/en/Contribution/Index.md +++ b/docs/en/Contribution/Index.md @@ -29,23 +29,6 @@ You may want to fix a known bug or work on a planned enhancement. See [the issue If you have a feature idea for the framework or modules, [create an issue](https://github.com/abpframework/abp/issues/new) on Github or attend to an existing discussion. Then you can implement it if it's embraced by the community. -## Document Translation - -You may want to translate the complete [documentation](https://docs.abp.io) (including this one) to your mother language. If so, follow these steps: - -* Clone the [ABP repository](https://github.com/abpframework/abp/) from Github. -* To add a new language, create a new folder inside the [docs](https://github.com/abpframework/abp/tree/master/docs) folder. Folder names can be "en", "es", "fr", "tr" and so on based on the language (see [all culture codes](https://msdn.microsoft.com/en-us/library/hh441729.aspx)). -* Get the ["en" folder](https://github.com/abpframework/abp/tree/master/docs/en) as a reference for the file names and folder structure. Keep the same naming if you are translating the same documentation. -* Send a pull request (PR) once you translate any document. Please translate documents & send PRs one by one. Don't wait to finish translations for all documents. - -There are some fundamental documents need to be translated before publishing a language on the [ABP documentation web site](https://docs.abp.io): - -* Index (Home) -* Getting Started -* Web Application Development Tutorial - -A new language is published after these minimum translations have been completed. - ## Resource Localization ABP framework has a flexible [localization system](../Localization.md). You can create localized user interfaces for your own application. diff --git a/docs/es/Getting-Started-AspNetCore-Application.md b/docs/es/Getting-Started-AspNetCore-Application.md deleted file mode 100644 index c4d124d827..0000000000 --- a/docs/es/Getting-Started-AspNetCore-Application.md +++ /dev/null @@ -1,140 +0,0 @@ -# Empezando con ABP y una Aplicacion AspNet Core MVC Web - -Este tutorial explica como empezar una aplicacion ABP desde cero usando las dependencias minimas. Uno generalmente desea -empezar con la **[plantilla de inicio](Getting-Started-AspNetCore-MVC-Template.md)**. - -## Crea un Proyecto Nuevo - -1. Crea una Aplicacion Web AspNet Core nueva usando Visual Studio 2022 (17.0.0+): - -![](images/create-new-aspnet-core-application-v2.png) - -2. Configura el nuevo proyecto: - -![](images/select-empty-web-application-v2.png) - -3. Presione el boton Create: - -![create-aspnet-core-application](images/create-aspnet-core-application.png) - -## Instale el paquete Volo.Abp.AspNetCore.Mvc - -Volo.Abp.AspNetCore.Mvc es el paquete de integracion con AspNet Core MVC para ABP. Siendo asi, instalalo en su proyecto: - -```` -Install-Package Volo.Abp.AspNetCore.Mvc -```` - -## Crea el primer modulo ABP - -ABP es un marco de referencia modular y require una clase de **inicio (raíz) tipo modulo** derivada de ``AbpModule``: - -````C# -using Microsoft.AspNetCore.Builder; -using Microsoft.Extensions.Hosting; -using Volo.Abp; -using Volo.Abp.AspNetCore.Mvc; -using Volo.Abp.Modularity; - -namespace BasicAspNetCoreApplication -{ - [DependsOn(typeof(AbpAspNetCoreMvcModule))] - public class AppModule : AbpModule - { - public override void OnApplicationInitialization(ApplicationInitializationContext context) - { - var app = context.GetApplicationBuilder(); - var env = context.GetEnvironment(); - - // Configura la canalización de peticiones HTTP. - if (env.IsDevelopment()) - { - app.UseExceptionHandler("/Error"); - // El valor por defecto de HSTS es 30 dias. Debes cambiar esto en ambientes productivos. Referencia https://aka.ms/aspnetcore-hsts. - app.UseHsts(); - } - - app.UseHttpsRedirection(); - app.UseStaticFiles(); - app.UseRouting(); - app.UseConfiguredEndpoints(); - } - } -} -```` - -``AppModule`` es un buen nombre para el modulo de inicio de una aplicacion. - -Los paquetes de ABP definen clases de tipo modulo y cada modulo puede depender de otro. -En el codigo anterior, el ``AppModule`` depende de el modulo ``AbpAspNetCoreMvcModule`` (definido por el paquete [Volo.Abp.AspNetCore.Mvc](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc)). Es comun agregar el atributo ``DependsOn`` despues de instalar un paquete ABP nuevo. - -En vez de la clase de inicion Startup, estamos configurando una canalizacion de ASP.NET Core en este modulo. - -## La clase Program - -El proximo paso es modificar la clase Program para integrate el sistema de modulos ABP: - -````C# -using BasicAspNetCoreApplication; - -var builder = WebApplication.CreateBuilder(args); - -await builder.Services.AddApplicationAsync(); - -var app = builder.Build(); - -await app.InitializeApplicationAsync(); -await app.RunAsync(); -```` - -``builder.Services.AddApplicationAsync();`` Agrega todos los servicios definidos en todos los modulos empezando desde ``AppModule``. - -``app.InitializeApplicationAsync()`` inicializa y empieza la aplicacion. - -## Ejecutar la Aplicación - -Es todo! Ejecuta la aplicación, debe funcionar como esperado. - -## Uso de Autofac como Marco de Inyección de Dependencia - -Mientras el sistema de Inyección de Dependencia de ASP.NET Core es suficiente para requerimientos basico, [Autofac](https://autofac.org/) proporciona características avanzadas como Inyección de Propiedades e Intercepcion de Metodos, los cuales son necesarios para que ABP pueda llevar a cabo funciones avanzadas. - -El acto de remplazar el sistema DI de ASP.NET Core por Autofac e integrarlo con ABP es facil. - -1. Instala el paquete [Volo.Abp.Autofac](https://www.nuget.org/packages/Volo.Abp.Autofac) - -```` -Install-Package Volo.Abp.Autofac -```` - -2. Agrega la dependencia sobre el modulo ``AbpAutofacModule`` - -````C# -[DependsOn(typeof(AbpAspNetCoreMvcModule))] -[DependsOn(typeof(AbpAutofacModule))] //Agrega la dependencia sobre el modulo ABP Autofac -public class AppModule : AbpModule -{ - ... -} -```` - -3. Actualiza `Program.cs` para que use Autofac: - -````C# -using BasicAspNetCoreApplication; - -var builder = WebApplication.CreateBuilder(args); - -builder.Host.UseAutofac(); //Agrega esta linea - -await builder.Services.AddApplicationAsync(); - -var app = builder.Build(); - -await app.InitializeApplicationAsync(); -await app.RunAsync(); -```` - -## Codigo fuente - - Obten el codigo fuente del ejemplo creado en este tutorial de [aqui](https://github.com/abpframework/abp-samples/tree/master/BasicAspNetCoreApplication). diff --git a/docs/es/Index.md b/docs/es/Index.md deleted file mode 100644 index d05a4032da..0000000000 --- a/docs/es/Index.md +++ /dev/null @@ -1,31 +0,0 @@ -# Documentación de ABP - -ABP es un **marco de desarrollo de código abierto** enfocado en el desarrollo de aplicaciones web basadas en ASP.NET Core, pero tambien soporta el desarrollo de otro tipo de aplicaciones. - -Explora el menú de navegación de la izquierda para profundizar en la documentación. - -## Estado del proyecto - -ABP es la **próxima generación** del marco de desarrollo de código abierto [ASP.NET Boilerplate](https://aspnetboilerplate.com/). Actualmente se encuentra en una fase preliminar y no está listo para su uso en producción. La documentación todavía está en progreso y se encuentra lejos de estar completa. - -Para aplicaciones en fase de producción o que lo vayan a estar en el corto plazo, se sugiere usar el marco de desarrollo [ASP.NET Boilerplate](https://aspnetboilerplate.com/) el cual tiene un completo conjunto de funciones, es maduro, mantenido y actualizado activamente. - -## Primeros pasos - -La manera más facil para iniciar un proyecto con ABP es usar las plantillas de inicio: - -* [Plantilla ASP.NET Core MVC (Razor Pages) UI](Getting-Started-AspNetCore-MVC-Template.md) -* [Plantilla Angular UI](Getting-Started-Angular-Template.md) - -Si quieres iniciar desde cero (con un proyecto vacío), entonces instala manualmente el marco de desarrollo ABP y usa los siguientes tutoriales: - -* [Aplicación de Consola](Getting-Started-Console-Application.md) -* [Aplicación web con ASP.NET Core](Getting-Started-AspNetCore-Application.md) - -## Código fuente - -ABP está hospedado en GitHub. Mira el [código fuente](https://github.com/abpframework/abp). - -## ¿Quieres contribuir? - -ABP es un proyecto de código abierto impulsado por la comunidad. Mira la [guía de contribución](Contribution/Index.md) si quieres formar parte de este proyecto. \ No newline at end of file diff --git a/docs/es/images/create-aspnet-core-application.png b/docs/es/images/create-aspnet-core-application.png deleted file mode 100644 index afd1447ba88447a0461b986fd2a9b2247c56dd81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34353 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 diff --git a/docs/es/images/create-new-aspnet-core-application-v2.png b/docs/es/images/create-new-aspnet-core-application-v2.png deleted file mode 100644 index d2bce847758b5fd36a092ad87bb0dd0d4615da90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 121764 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 diff --git a/docs/es/images/select-empty-web-application-v2.png b/docs/es/images/select-empty-web-application-v2.png deleted file mode 100644 index 9bfd2ec6a81d67bb5c27c7860c796dc44ee6acb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44346 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 diff --git a/docs/pt-BR/AspNetCore/Auto-API-Controllers.md b/docs/pt-BR/AspNetCore/Auto-API-Controllers.md deleted file mode 100644 index 01c62bab94..0000000000 --- a/docs/pt-BR/AspNetCore/Auto-API-Controllers.md +++ /dev/null @@ -1,3 +0,0 @@ -Este documento foi movido. - -[Clique para navegar até o documento Auto API Controllers](../API/Auto-API-Controllers.md) \ No newline at end of file diff --git a/docs/pt-BR/AspNetCore/Bundling-Minification.md b/docs/pt-BR/AspNetCore/Bundling-Minification.md deleted file mode 100644 index 48b33d2ee2..0000000000 --- a/docs/pt-BR/AspNetCore/Bundling-Minification.md +++ /dev/null @@ -1,3 +0,0 @@ -Este documento foi movido. - -[Clique para navegar até o documento de Bundling & Minification do ASP.NET Core MVC](../UI/AspNetCore/Bundling-Minification.md) \ No newline at end of file diff --git a/docs/pt-BR/AspNetCore/Client-Side-Package-Management.md b/docs/pt-BR/AspNetCore/Client-Side-Package-Management.md deleted file mode 100644 index 9d90d3407d..0000000000 --- a/docs/pt-BR/AspNetCore/Client-Side-Package-Management.md +++ /dev/null @@ -1,3 +0,0 @@ -Este documento foi movido. - -[Clique para navegar até o documento de Gerenciamento de Pacotes do Lado do Cliente do ASP.NET Core MVC](../UI/AspNetCore/Client-Side-Package-Management.md) \ No newline at end of file diff --git a/docs/pt-BR/AspNetCore/Dynamic-CSharp-API-Clients.md b/docs/pt-BR/AspNetCore/Dynamic-CSharp-API-Clients.md deleted file mode 100644 index 80ba2f16d3..0000000000 --- a/docs/pt-BR/AspNetCore/Dynamic-CSharp-API-Clients.md +++ /dev/null @@ -1,3 +0,0 @@ -Este documento foi movido. - -[Clique para navegar até o documento Dynamic C# API Clients](../API/Dynamic-CSharp-API-Clients.md) \ No newline at end of file diff --git a/docs/pt-BR/AspNetCore/Tag-Helpers/Dynamic-Forms.md b/docs/pt-BR/AspNetCore/Tag-Helpers/Dynamic-Forms.md deleted file mode 100644 index 8f1d7e0fed..0000000000 --- a/docs/pt-BR/AspNetCore/Tag-Helpers/Dynamic-Forms.md +++ /dev/null @@ -1,3 +0,0 @@ -Este documento foi movido. - -[Clique para navegar até o documento de Formulários Dinâmicos](../../UI/AspNetCore/Tag-Helpers/Dynamic-Forms.md) \ No newline at end of file diff --git a/docs/pt-BR/AspNetCore/Tag-Helpers/Index.md b/docs/pt-BR/AspNetCore/Tag-Helpers/Index.md deleted file mode 100644 index 83137c23e7..0000000000 --- a/docs/pt-BR/AspNetCore/Tag-Helpers/Index.md +++ /dev/null @@ -1,3 +0,0 @@ -Este documento foi movido. - -[Clique para navegar até o documento ABP Tag Helpers](../../UI/AspNetCore/Tag-Helpers/Index.md) \ No newline at end of file diff --git a/docs/pt-BR/AspNetCore/Theming.md b/docs/pt-BR/AspNetCore/Theming.md deleted file mode 100644 index 59127bed3d..0000000000 --- a/docs/pt-BR/AspNetCore/Theming.md +++ /dev/null @@ -1,3 +0,0 @@ -Este documento foi movido. - -[Clique para navegar até o documento de Temas](../UI/AspNetCore/Theming.md) \ No newline at end of file diff --git a/docs/pt-BR/AspNetCore/Widgets.md b/docs/pt-BR/AspNetCore/Widgets.md deleted file mode 100644 index 6d2e611c9b..0000000000 --- a/docs/pt-BR/AspNetCore/Widgets.md +++ /dev/null @@ -1,3 +0,0 @@ -Este documento foi movido. - -[Clique para navegar até o documento Widgets](../UI/AspNetCore/Widgets.md) \ No newline at end of file diff --git a/docs/pt-BR/Aspect-Oriented-Programming.md b/docs/pt-BR/Aspect-Oriented-Programming.md deleted file mode 100644 index bfc7b0f705..0000000000 --- a/docs/pt-BR/Aspect-Oriented-Programming.md +++ /dev/null @@ -1,3 +0,0 @@ -## Dynamic Proxying / Interceptors - -Façam \ No newline at end of file diff --git a/docs/pt-BR/Audit-Logging.md b/docs/pt-BR/Audit-Logging.md deleted file mode 100644 index 65e1271012..0000000000 --- a/docs/pt-BR/Audit-Logging.md +++ /dev/null @@ -1,390 +0,0 @@ -# Registro de Auditoria - -[Wikipedia](https://en.wikipedia.org/wiki/Audit_trail): "*Um rastro de auditoria (também chamado de **log de auditoria**) é um registro cronológico relevante para a segurança, conjunto de registros e/ou destino e origem de registros que fornecem evidências documentais da sequência de atividades que afetaram a qualquer momento uma operação, procedimento ou evento específico*". - -O ABP Framework fornece um **sistema de registro de auditoria extensível** que automatiza o registro de auditoria por **convenção** e fornece **pontos de configuração** para controlar o nível dos logs de auditoria. - -Um **objeto de log de auditoria** (consulte a seção Objeto de Log de Auditoria abaixo) é tipicamente criado e salvo por solicitação da web. Ele inclui; - -* Detalhes da **solicitação e resposta** (como URL, método Http, informações do navegador, código de status HTTP... etc.). -* **Ações realizadas** (ações do controlador e chamadas de métodos de serviço de aplicação com seus parâmetros). -* **Mudanças de entidade** ocorridas na solicitação da web. -* Informações de **exceção** (se houve um erro durante a execução da solicitação). -* **Duração da solicitação** (para medir o desempenho da aplicação). - -> Os [modelos de inicialização](Startup-Templates/Index.md) são configurados para o sistema de registro de auditoria, o que é adequado para a maioria das aplicações. Use este documento para um controle detalhado sobre o sistema de log de auditoria. - -### Suporte do Provedor de Banco de Dados - -* Totalmente suportado pelo provedor [Entity Framework Core](Entity-Framework-Core.md). -* O log de alterações de entidade não é suportado pelo provedor [MongoDB](MongoDB.md). Outros recursos funcionam conforme o esperado. - -## UseAuditing() - -O middleware `UseAuditing()` deve ser adicionado ao pipeline de solicitações do ASP.NET Core para criar e salvar os logs de auditoria. Se você criou suas aplicações usando [os modelos de inicialização](Startup-Templates/Index.md), ele já está adicionado. - -## AbpAuditingOptions - -`AbpAuditingOptions` é o principal [objeto de opções](Options.md) para configurar o sistema de log de auditoria. Você pode configurá-lo no método `ConfigureServices` do seu [módulo](Module-Development-Basics.md): - -````csharp -Configure(options => -{ - options.IsEnabled = false; //Desativa o sistema de auditoria -}); -```` - -Aqui, uma lista das opções que você pode configurar: - -* `IsEnabled` (padrão: `true`): Uma chave raiz para habilitar ou desabilitar o sistema de auditoria. Outras opções não são usadas se esse valor for `false`. -* `HideErrors` (padrão: `true`): O sistema de log de auditoria oculta e escreve [logs](Logging.md) regulares se ocorrer algum erro ao salvar os objetos de log de auditoria. Se salvar os logs de auditoria for crítico para o seu sistema, defina isso como `false` para lançar uma exceção em caso de ocultação de erros. -* `IsEnabledForAnonymousUsers` (padrão: `true`): Se você deseja escrever logs de auditoria apenas para os usuários autenticados, defina isso como `false`. Se você salvar logs de auditoria para usuários anônimos, verá `null` para os valores de `UserId` desses usuários. -* `AlwaysLogOnException` (padrão: `true`): Se definido como verdadeiro, sempre salva o log de auditoria em caso de exceção/erro sem verificar outras opções (exceto `IsEnabled`, que desativa completamente o registro de auditoria). -* `IsEnabledForIntegrationService` (padrão: `false`): O Registro de Auditoria é desativado para [serviços de integração](Integration-Services.md) por padrão. Defina essa propriedade como `true` para habilitá-la. -* `IsEnabledForGetRequests` (padrão: `false`): As solicitações HTTP GET normalmente não devem fazer nenhuma alteração no banco de dados e o sistema de log de auditoria não salva objetos de log de auditoria para solicitações GET. Defina isso como `true` para habilitá-lo também para as solicitações GET. -* `DisableLogActionInfo` (padrão: `false`): Se definido como verdadeiro, não registrará mais `AuditLogActionInfo`. -* `ApplicationName`: Se várias aplicações estiverem salvando logs de auditoria em um único banco de dados, defina essa propriedade com o nome da sua aplicação, para que você possa distinguir os logs de diferentes aplicações. Se você não definir, ele será definido a partir do valor `IApplicationInfoAccessor.ApplicationName`, que é o nome da assembly de entrada por padrão. -* `IgnoredTypes`: Uma lista de `Type`s a serem ignorados para o registro de auditoria. Se for um tipo de entidade, as alterações para esse tipo de entidades não serão salvas. Esta lista também é usada ao serializar os parâmetros de ação. -* `EntityHistorySelectors`: Uma lista de seletores usados para determinar se um tipo de entidade é selecionado para salvar a alteração da entidade. Consulte a seção abaixo para detalhes. -* `SaveEntityHistoryWhenNavigationChanges` (padrão: `true`): Se definido como verdadeiro, salvará as alterações da entidade no log de auditoria quando houver alterações em propriedades de navegação. -* `Contributors`: Uma lista de implementações de `AuditLogContributor`. Um contribuidor é uma forma de estender o sistema de log de auditoria. Consulte a seção "Contribuidores de Log de Auditoria" abaixo. -* `AlwaysLogSelectors`: Uma lista de seletores para salvar os logs de auditoria para os critérios correspondentes. - -### Seletores de Histórico de Entidade - -Salvar todas as alterações de todas as suas entidades exigiria muito espaço no banco de dados. Por esse motivo, **o sistema de log de auditoria não salva nenhuma alteração para as entidades a menos que você configure explicitamente**. - -Para salvar todas as alterações de todas as entidades, simplesmente use o método de extensão `AddAllEntities()`. - -````csharp -Configure(options => -{ - options.EntityHistorySelectors.AddAllEntities(); -}); -```` - -`options.EntityHistorySelectors` na verdade é uma lista de predicados de tipo. Você pode escrever uma expressão lambda para definir seu filtro. - -O seletor de exemplo abaixo faz o mesmo do método de extensão `AddAllEntities()` definido acima: - -````csharp -Configure(options => -{ - options.EntityHistorySelectors.Add( - new NamedTypeSelector( - "MeuSeletorNome", - type => - { - if (typeof(IEntity).IsAssignableFrom(type)) - { - return true; - } - else - { - return false; - } - } - ) - ); -}); -```` - -A condição `typeof(IEntity).IsAssignableFrom(type)` será `true` para qualquer classe que implemente a interface `IEntity` (tecnicamente, todas as entidades em sua aplicação). Você pode verificar condicionalmente e retornar `true` ou `false` com base em sua preferência. - -`options.EntityHistorySelectors` é uma forma flexível e dinâmica de selecionar as entidades para o registro de auditoria. Outra forma é usar os atributos `Audited` e `DisableAuditing` por entidade. - -## AbpAspNetCoreAuditingOptions - -`AbpAspNetCoreAuditingOptions` é o [objeto de opções](Options.md) para configurar o registro de auditoria na camada ASP.NET Core. Você pode configurá-lo no método `ConfigureServices` do seu [módulo](Module-Development-Basics.md): - -````csharp -Configure(options => -{ - options.IgnoredUrls.Add("/produtos"); -}); -```` - -`IgnoredUrls` é a única opção. É uma lista de prefixos de URLs ignorados. No exemplo anterior, todas as URLs que começam com `/produtos` serão ignoradas para o registro de auditoria. - -## Habilitando/Desabilitando o Registro de Auditoria para Serviços - -### Habilitar/Desabilitar para Controladores e Ações - -Todas as ações do controlador são registradas por padrão (consulte `IsEnabledForGetRequests` acima para solicitações GET). - -Você pode usar o `[DisableAuditing]` para desativá-lo para um tipo de controlador específico: - -````csharp -[DisableAuditing] -public class HomeController : AbpController -{ - //... -} -```` - -Use `[DisableAuditing]` para qualquer ação para controlá-la no nível da ação: - -````csharp -public class HomeController : AbpController -{ - [DisableAuditing] - public async Task Home() - { - //... - } - - public async Task OutraAcaoRegistrada() - { - //... - } -} -```` - -### Habilitar/Desabilitar para Serviços de Aplicação e Métodos - -As chamadas de métodos de [serviço de aplicação](Application-Services.md) também são incluídas no log de auditoria por padrão. Você pode usar o `[DisableAuditing]` no nível do serviço ou do método. - -#### Habilitar/Desabilitar para Outros Serviços - -O registro de auditoria de ação pode ser habilitado para qualquer tipo de classe (registrado e resolvido da [injeção de dependência](Dependency-Injection.md)) enquanto é habilitado apenas para os controladores e os serviços de aplicação por padrão. - -Use `[Audited]` e `[DisableAuditing]` para qualquer classe ou método que precisa ser registrado no log de auditoria. Além disso, sua classe pode (direta ou implicitamente) implementar a interface `IAuditingEnabled` para habilitar o registro de auditoria para essa classe por padrão. - -### Habilitar/Desabilitar para Entidades e Propriedades - -Uma entidade é ignorada no registro de alteração de entidade nos seguintes casos; - -* Se você adicionar um tipo de entidade às `AbpAuditingOptions.IgnoredTypes` (como explicado anteriormente), ele é completamente ignorado no sistema de registro de auditoria. -* Se o objeto não for uma [entidade](Entities.md) (não implementa `IEntity` diretamente ou implicitamente - Todas as entidades implementam essa interface por padrão). -* Se o tipo de entidade não for público. - -Caso contrário, você pode usar `Audited` para habilitar o registro de alteração de entidade para uma entidade: - -````csharp -[Audited] -public class MinhaEntidade : Entity -{ - //... -} -```` - -Ou desativá-lo para uma entidade: - -````csharp -[DisableAuditing] -public class MinhaEntidade : Entity -{ - //... -} -```` - -Desativar o registro de auditoria pode ser necessário apenas se a entidade estiver sendo selecionada pelos `AbpAuditingOptions.EntityHistorySelectors` que foram explicados anteriormente. - -Você pode desativar o registro de auditoria apenas para algumas propriedades de suas entidades para um controle detalhado sobre o registro de auditoria: - -````csharp -[Audited] -public class MeuUsuario : Entity -{ - public string Nome { get; set; } - - public string Email { get; set; } - - [DisableAuditing] //Ignora a Senha no registro de auditoria - public string Senha { get; set; } -} -```` - -O sistema de log de auditoria salvará as alterações para a entidade `MeuUsuario` enquanto ignora a propriedade `Senha`, que pode ser perigosa de salvar por motivos de segurança. - -Em alguns casos, você pode querer salvar apenas algumas propriedades de suas entidades e ignorar todas as outras. Escrever `[DisableAuditing]` para todas as outras propriedades seria tedioso. Em tais casos, use `[Audited]` apenas para as propriedades desejadas e marque a entidade com o atributo `[DisableAuditing]`: - -````csharp -[DisableAuditing] -public class MeuUsuario : Entity -{ - [Audited] //Apenas registra a alteração do Nome - public string Nome { get; set; } - - public string Email { get; set; } - - public string Senha { get; set; } -} -```` -## IAuditingStore - -`IAuditingStore` é uma interface usada para salvar os objetos de log de auditoria (explicados abaixo) pelo Framework ABP. Se você precisa salvar os objetos de log de auditoria em um armazenamento de dados personalizado, pode implementar o `IAuditingStore` em sua própria aplicação e substituir usando o [sistema de injeção de dependência](Dependency-Injection.md). - -`SimpleLogAuditingStore` é usado se nenhum armazenamento de auditoria estiver registrado. Ele simplesmente escreve o objeto de auditoria no sistema padrão de [logging](Logging.md). - -[O Módulo de Registro de Auditoria](Modules/Audit-Logging.md) foi configurado nos [modelos de inicialização](Startup-Templates/Index.md) para salvar objetos de log de auditoria em um banco de dados (ele suporta vários provedores de banco de dados). Portanto, na maioria das vezes, você não precisa se preocupar com como o `IAuditingStore` foi implementado e usado. - -## Objeto de Log de Auditoria - -Um **objeto de log de auditoria** é criado para cada **solicitação web** por padrão. Um objeto de log de auditoria pode ser representado pelo seguinte diagrama de relação: - -![**auditlog-object-diagram**](images/auditlog-object-diagram.png) - -* **AuditLogInfo**: O objeto raiz com as seguintes propriedades: - * `ApplicationName`: Quando você salva logs de auditoria de diferentes aplicações no mesmo banco de dados, essa propriedade é usada para distinguir os logs das aplicações. - * `UserId`: Id do usuário atual, se o usuário estiver logado. - * `UserName`: Nome do usuário atual, se o usuário estiver logado (esse valor está aqui para não depender do módulo/sistema de identidade para pesquisa). - * `TenantId`: Id do locatário atual, para uma aplicação multi-locatário. - * `TenantName`: Nome do locatário atual, para uma aplicação multi-locatário. - * `ExecutionTime`: O momento em que este objeto de log de auditoria foi criado. - * `ExecutionDuration`: Duração total da execução da solicitação, em milissegundos. Isso pode ser usado para observar o desempenho da aplicação. - * `ClientId`: Id do cliente atual, se o cliente estiver autenticado. Um cliente é geralmente uma aplicação de terceiros que usa o sistema por meio de uma API HTTP. - * `ClientName`: Nome do cliente atual, se disponível. - * `ClientIpAddress`: Endereço IP do cliente/dispositivo do usuário. - * `CorrelationId`: Id de [Correlação Atual](CorrelationId.md). O Id de correlação é usado para relacionar os logs de auditoria escritos por diferentes aplicações (ou microsserviços) em uma única operação lógica. - * `BrowserInfo`: Informações do nome/versão do navegador do usuário atual, se disponível. - * `HttpMethod`: Método HTTP da solicitação atual (GET, POST, PUT, DELETE... etc.). - * `HttpStatusCode`: Código de status da resposta HTTP para esta solicitação. - * `Url`: URL da solicitação. -* **AuditLogActionInfo**: Um log de auditoria de ação é tipicamente uma ação de controlador ou uma chamada de método de [serviço de aplicação](Application-Services.md) durante a solicitação web. Um log de ação pode conter várias ações. Um objeto de ação tem as seguintes propriedades: - * `ServiceName`: Nome do controlador/serviço executado. - * `MethodName`: Nome do método executado do controlador/serviço. - * `Parameters`: Um texto formatado em JSON representando os parâmetros passados para o método. - * `ExecutionTime`: O momento em que este método foi executado. - * `ExecutionDuration`: Duração da execução do método, em milissegundos. Isso pode ser usado para observar o desempenho do método. -* **EntityChangeInfo**: Representa uma alteração de uma entidade nesta solicitação web. Um log de auditoria pode conter zero ou mais alterações de entidade. Uma alteração de entidade tem as seguintes propriedades: - * `ChangeTime`: O momento em que a entidade foi alterada. - * `ChangeType`: Um enum com os seguintes campos: `Criado` (0), `Atualizado` (1) e `Excluído` (2). - * `EntityId`: Id da entidade que foi alterada. - * `EntityTenantId`: Id do locatário a que esta entidade pertence. - * `EntityTypeFullName`: Nome do tipo (classe) da entidade com namespace completo (como *Acme.BookStore.Book* para a entidade Book). -* **EntityPropertyChangeInfo**: Representa uma alteração de uma propriedade de uma entidade. Uma informação de alteração de entidade (explicada acima) pode conter uma ou mais alterações de propriedade com as seguintes propriedades: - * `NewValue`: Novo valor da propriedade. É `null` se a entidade foi excluída. - * `OriginalValue`: Valor antigo/original antes da alteração. É `null` se a entidade foi recém-criada. - * `PropertyName`: O nome da propriedade na classe da entidade. - * `PropertyTypeFullName`: Nome do tipo (classe) da propriedade com namespace completo. -* **Exception**: Um objeto de log de auditoria pode conter zero ou mais exceções. Dessa forma, você pode obter um relatório das solicitações com falha. -* **Comment**: Um valor de string arbitrário para adicionar mensagens personalizadas à entrada de log de auditoria. Um objeto de log de auditoria pode conter zero ou mais comentários. - -Além das propriedades padrão explicadas acima, os objetos `AuditLogInfo`, `AuditLogActionInfo` e `EntityChangeInfo` implementam a interface `IHasExtraProperties`, para que você possa adicionar propriedades personalizadas a esses objetos. - -## Contribuidores de Log de Auditoria - -Você pode estender o sistema de auditoria criando uma classe derivada da classe `AuditLogContributor`, que define os métodos `PreContribute` e `PostContribute`. - -O único contribuidor pré-construído é a classe `AspNetCoreAuditLogContributor`, que define as propriedades relacionadas a uma solicitação HTTP. - -Um contribuidor pode definir propriedades e coleções da classe `AuditLogInfo` para adicionar mais informações. - -Exemplo: - -````csharp -public class MyAuditLogContributor : AuditLogContributor -{ - public override void PreContribute(AuditLogContributionContext context) - { - var currentUser = context.ServiceProvider.GetRequiredService(); - context.AuditInfo.SetProperty( - "MyCustomClaimValue", - currentUser.FindClaimValue("MyCustomClaim") - ); - } - - public override void PostContribute(AuditLogContributionContext context) - { - context.AuditInfo.Comments.Add("Algum comentário..."); - } -} -```` - -* `context.ServiceProvider` pode ser usado para resolver serviços da [injeção de dependência](Dependency-Injection.md). -* `context.AuditInfo` pode ser usado para acessar o objeto de log de auditoria atual para manipulá-lo. - -Após criar um contribuidor, você deve adicioná-lo à lista `AbpAuditingOptions.Contributors`: - -````csharp -Configure(options => -{ - options.Contributors.Add(new MyAuditLogContributor()); -}); -```` - -## IAuditLogScope & IAuditingManager - -Esta seção explica os serviços `IAuditLogScope` e `IAuditingManager` para casos de uso avançados. - -Um **escopo de log de auditoria** é um [escopo ambiente](Ambient-Context-Pattern.md) que **constrói** e **salva** um objeto de log de auditoria (explicado anteriormente). Por padrão, um escopo de log de auditoria é criado para uma solicitação web pelo Middleware de Log de Auditoria (veja a seção `UseAuditing()` acima). - -### Acesso ao Escopo Atual de Log de Auditoria - -Os contribuidores de log de auditoria, explicados acima, são uma maneira global de manipular o objeto de log de auditoria. É bom se você puder obter um valor de um serviço. - -Se você precisar manipular o objeto de log de auditoria em um ponto arbitrário de sua aplicação, pode acessar o escopo de log de auditoria atual e obter o objeto de log de auditoria atual (independente de como o escopo é gerenciado). Exemplo: - -````csharp -public class MeuServico : ITransientDependency -{ - private readonly IAuditingManager _auditingManager; - - public MeuServico(IAuditingManager auditingManager) - { - _auditingManager = auditingManager; - } - - public async Task FazerIssoAsync() - { - var escopoAtualDeLogDeAuditoria = _auditingManager.Current; - if (escopoAtualDeLogDeAuditoria != null) - { - escopoAtualDeLogDeAuditoria.Log.Comments.Add( - "Executou o método MeuServico.FazerIssoAsync :)" - ); - - escopoAtualDeLogDeAuditoria.Log.SetProperty("MinhaPropriedadePersonalizada", 42); - } - } -} -```` - -Sempre verifique se `_auditingManager.Current` é nulo ou não, porque é controlado em um escopo externo e você não pode saber se um escopo de log de auditoria foi criado antes de chamar seu método. - -### Criar Manualmente um Escopo de Log de Auditoria - -Raramente você precisa criar manualmente um escopo de log de auditoria, mas se precisar, pode criar um escopo de log de auditoria usando o `IAuditingManager` como no exemplo a seguir: - -````csharp -public class MeuServico : ITransientDependency -{ - private readonly IAuditingManager _auditingManager; - - public MeuServico(IAuditingManager auditingManager) - { - _auditingManager = auditingManager; - } - - public async Task FazerIssoAsync() - { - using (var escopoDeAuditoria = _auditingManager.BeginScope()) - { - try - { - //Chame outros serviços... - } - catch (Exception ex) - { - //Adicione exceções - _auditingManager.Current.Log.Exceptions.Add(ex); - throw; - } - finally - { - //Sempre salve o log - await escopoDeAuditoria.SaveAsync(); - } - } - } -} -```` - -Você pode chamar outros serviços, que podem chamar outros, que podem alterar entidades e assim por diante. Todas essas interações são salvas como um único objeto de log de auditoria no bloco finally. - -## O Módulo de Registro de Auditoria - -O Módulo de Registro de Auditoria basicamente implementa o `IAuditingStore` para salvar os objetos de log de auditoria em um banco de dados. Ele suporta vários provedores de banco de dados. Este módulo é adicionado aos modelos de inicialização por padrão. - -Consulte o documento [Módulo de Registro de Auditoria](Modules/Audit-Logging.md) para mais informações. diff --git a/docs/pt-BR/Authorization.md b/docs/pt-BR/Authorization.md deleted file mode 100644 index 326b596388..0000000000 --- a/docs/pt-BR/Authorization.md +++ /dev/null @@ -1,359 +0,0 @@ -# Autorização - -A autorização é usada para verificar se um usuário tem permissão para realizar operações específicas na aplicação. - -O ABP estende a [Autorização do ASP.NET Core](https://docs.microsoft.com/pt-br/aspnet/core/security/authorization/introduction) adicionando **permissões** como [políticas](https://docs.microsoft.com/pt-br/aspnet/core/security/authorization/policies) automáticas e permitindo que o sistema de autorização seja utilizado nos **[serviços de aplicação](Application-Services.md)** também. - -Portanto, todos os recursos de autorização do ASP.NET Core e a documentação são válidos em uma aplicação baseada no ABP. Este documento se concentra nos recursos adicionados ao sistema de autorização do ASP.NET Core. - -## Atributo Authorize - -O ASP.NET Core define o atributo [**Authorize**](https://docs.microsoft.com/pt-br/aspnet/core/security/authorization/simple) que pode ser usado para uma ação, um controlador ou uma página. O ABP permite que você use o mesmo atributo para um [serviço de aplicação](Application-Services.md). - -Exemplo: - -```csharp -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Authorization; -using Volo.Abp.Application.Services; - -namespace Acme.BookStore -{ - [Authorize] - public class AuthorAppService : ApplicationService, IAuthorAppService - { - public Task> GetListAsync() - { - ... - } - - [AllowAnonymous] - public Task GetAsync(Guid id) - { - ... - } - - [Authorize("BookStore_Author_Create")] - public Task CreateAsync(CreateAuthorDto input) - { - ... - } - } -} - -``` - -- O atributo `Authorize` obriga o usuário a fazer login na aplicação para usar os métodos do `AuthorAppService`. Portanto, o método `GetListAsync` está disponível apenas para usuários autenticados. -- `AllowAnonymous` suprime a autenticação. Portanto, o método `GetAsync` está disponível para todos, incluindo usuários não autorizados. -- `[Authorize("BookStore_Author_Create")]` define uma política (consulte [autorização baseada em políticas](https://docs.microsoft.com/pt-br/aspnet/core/security/authorization/policies)) que é verificada para autorizar o usuário atual. - -"BookStore_Author_Create" é um nome de política arbitrário. Se você declarar um atributo como esse, o sistema de autorização do ASP.NET Core espera que uma política seja definida anteriormente. - -Você pode, é claro, implementar suas próprias políticas conforme descrito na documentação do ASP.NET Core. Mas para condições simples de verdadeiro/falso, como se uma política foi concedida a um usuário ou não, o ABP define o sistema de permissões, que será explicado na próxima seção. - -## Sistema de Permissões - -Uma permissão é uma política simples que é concedida ou proibida para um usuário, função ou cliente específico. - -### Definindo Permissões - -Para definir permissões, crie uma classe que herde de `PermissionDefinitionProvider`, conforme mostrado abaixo: - -```csharp -using Volo.Abp.Authorization.Permissions; - -namespace Acme.BookStore.Permissions -{ - public class BookStorePermissionDefinitionProvider : PermissionDefinitionProvider - { - public override void Define(IPermissionDefinitionContext context) - { - var myGroup = context.AddGroup("BookStore"); - - myGroup.AddPermission("BookStore_Author_Create"); - } - } -} -``` - -> O ABP descobre automaticamente essa classe. Nenhuma configuração adicional é necessária! - -> Normalmente, você define essa classe dentro do projeto `Application.Contracts` da sua [aplicação](Startup-Templates/Application.md). O modelo de inicialização já vem com uma classe vazia chamada *YourProjectNamePermissionDefinitionProvider* com a qual você pode começar. - -No método `Define`, você precisa adicionar um **grupo de permissões** ou obter um grupo existente e adicionar **permissões** a esse grupo. - -Quando você define uma permissão, ela se torna utilizável no sistema de autorização do ASP.NET Core como um nome de **política**. Ela também se torna visível na interface do usuário. Veja o diálogo de permissões para uma função: - -![authorization-new-permission-ui](images/authorization-new-permission-ui.png) - -- O grupo "BookStore" é mostrado como uma nova guia no lado esquerdo. -- "BookStore_Author_Create" no lado direito é o nome da permissão. Você pode concedê-la ou proibi-la para a função. - -Quando você salva o diálogo, ele é salvo no banco de dados e usado no sistema de autorização. - -> A tela acima está disponível quando você instalou o módulo de identidade, que é usado principalmente para gerenciamento de usuários e funções. Os modelos de inicialização já vêm com o módulo de identidade pré-instalado. - -#### Localizando o Nome da Permissão - -"BookStore_Author_Create" não é um bom nome de permissão para a interface do usuário. Felizmente, os métodos `AddPermission` e `AddGroup` podem receber um `LocalizableString` como segundo parâmetro: - -```csharp -var myGroup = context.AddGroup( - "BookStore", - LocalizableString.Create("BookStore") -); - -myGroup.AddPermission( - "BookStore_Author_Create", - LocalizableString.Create("Permission:BookStore_Author_Create") -); -``` - -Em seguida, você pode definir os textos para as chaves "BookStore" e "Permission:BookStore_Author_Create" no arquivo de localização: - -```json -"BookStore": "Livraria", -"Permission:BookStore_Author_Create": "Criar um novo autor" -``` - -> Para mais informações, consulte a [documentação de localização](Localization.md) sobre o sistema de localização. - -A interface do usuário localizada será como mostrado abaixo: - -![authorization-new-permission-ui-localized](images/authorization-new-permission-ui-localized.png) - -#### Multi-Tenancy - -O ABP suporta [multi-tenancy](Multi-Tenancy.md) como um recurso de primeira classe. Você pode definir a opção de lado de multi-tenancy ao definir uma nova permissão. Ela pode ter um dos três valores definidos abaixo: - -- **Host**: A permissão está disponível apenas para o lado do host. -- **Tenant**: A permissão está disponível apenas para o lado do tenant. -- **Ambos** (padrão): A permissão está disponível tanto para o lado do tenant quanto para o lado do host. - -> Se sua aplicação não é multi-tenant, você pode ignorar essa opção. - -Para definir a opção de lado de multi-tenancy, passe para o terceiro parâmetro do método `AddPermission`: - -```csharp -myGroup.AddPermission( - "BookStore_Author_Create", - LocalizableString.Create("Permission:BookStore_Author_Create"), - multiTenancySide: MultiTenancySides.Tenant //defina o lado de multi-tenancy! -); -``` - -#### Habilitar/Desabilitar Permissões - -Uma permissão está habilitada por padrão. É possível desabilitar uma permissão. Uma permissão desabilitada será proibida para todos. Você ainda pode verificar a permissão, mas ela sempre retornará proibida. - -Exemplo de definição: - -````csharp -myGroup.AddPermission("Author_Management", isEnabled: false); -```` - -Normalmente, você não precisa definir uma permissão desabilitada (a menos que queira desabilitar temporariamente um recurso da sua aplicação). No entanto, você pode querer desabilitar uma permissão definida em um módulo dependente. Dessa forma, você pode desabilitar a funcionalidade relacionada à aplicação. Consulte a seção "*Alterando as Definições de Permissão de um Módulo Dependente*" abaixo para um exemplo de uso. - -> Observação: Verificar uma permissão não definida lançará uma exceção, enquanto verificar uma permissão desabilitada simplesmente retornará proibida (falso). - -#### Permissões Filhas - -Uma permissão pode ter permissões filhas. Isso é especialmente útil quando você deseja criar uma árvore de permissões hierárquica, onde uma permissão pode ter permissões secundárias adicionais que estão disponíveis apenas se a permissão pai for concedida. - -Exemplo de definição: - -```csharp -var authorManagement = myGroup.AddPermission("Author_Management"); -authorManagement.AddChild("Author_Management_Create_Books"); -authorManagement.AddChild("Author_Management_Edit_Books"); -authorManagement.AddChild("Author_Management_Delete_Books"); -``` - -O resultado na interface do usuário é mostrado abaixo (provavelmente você desejará localizar as permissões para sua aplicação): - -![authorization-new-permission-ui-hierarcy](images/authorization-new-permission-ui-hierarcy.png) - -Para o código de exemplo, é assumido que uma função/usuário com a permissão "Author_Management" concedida pode ter permissões adicionais. Em seguida, um serviço de aplicação típico que verifica permissões pode ser definido como mostrado abaixo: - -```csharp -[Authorize("Author_Management")] -public class AuthorAppService : ApplicationService, IAuthorAppService -{ - public Task> GetListAsync() - { - ... - } - - public Task GetAsync(Guid id) - { - ... - } - - [Authorize("Author_Management_Create_Books")] - public Task CreateAsync(CreateAuthorDto input) - { - ... - } - - [Authorize("Author_Management_Edit_Books")] - public Task UpdateAsync(CreateAuthorDto input) - { - ... - } - - [Authorize("Author_Management_Delete_Books")] - public Task DeleteAsync(CreateAuthorDto input) - { - ... - } -} -``` - -- `GetListAsync` e `GetAsync` estarão disponíveis para usuários se a permissão `Author_Management` for concedida. -- Outros métodos requerem permissões adicionais. - -### Substituindo uma Permissão por uma Política Personalizada - -Se você definir e registrar uma política no sistema de autorização do ASP.NET Core com o mesmo nome de uma permissão, sua política substituirá a permissão existente. Isso é uma maneira poderosa de estender a autorização para um módulo pré-construído que você está usando em sua aplicação. - -Consulte o documento [autorização baseada em políticas](https://docs.microsoft.com/pt-br/aspnet/core/security/authorization/policies) para aprender como definir uma política personalizada. - -### Alterando as Definições de Permissão de um Módulo Dependente - -Uma classe derivada de `PermissionDefinitionProvider` (assim como o exemplo acima) também pode obter definições de permissão existentes (definidas pelos [módulos](Module-Development-Basics.md) dependentes) e alterar suas definições. - -Exemplo: - -````csharp -context - .GetPermissionOrNull(IdentityPermissions.Roles.Delete) - .IsEnabled = false; -```` - -Quando você escreve esse código dentro do seu provedor de definição de permissão, ele encontra a permissão de "exclusão de função" do [Módulo de Identidade](Modules/Identity.md) e desabilita a permissão, para que ninguém possa excluir uma função na aplicação. - -> Dica: É melhor verificar o valor retornado pelo método `GetPermissionOrNull`, pois ele pode retornar nulo se a permissão fornecida não foi definida. - -### Provedores de Valor de Permissão - -O sistema de verificação de permissões é extensível. Qualquer classe derivada de `PermissionValueProvider` (ou que implemente `IPermissionValueProvider`) pode contribuir para a verificação de permissões. Existem três provedores de valor predefinidos: - -- `UserPermissionValueProvider` verifica se o usuário atual tem a permissão concedida. Ele obtém o ID do usuário das reivindicações atuais. O nome da reivindicação do usuário é definido pela propriedade estática `AbpClaimTypes.UserId`. -- `RolePermissionValueProvider` verifica se algum dos papéis do usuário atual tem a permissão concedida. Ele obtém os nomes dos papéis das reivindicações atuais. O nome das reivindicações de papéis é definido pela propriedade estática `AbpClaimTypes.Role`. -- `ClientPermissionValueProvider` verifica se o cliente atual tem a permissão concedida. Isso é especialmente útil em uma interação máquina a máquina, onde não há usuário atual. Ele obtém o ID do cliente das reivindicações atuais. O nome da reivindicação do cliente é definido pela propriedade estática `AbpClaimTypes.ClientId`. - -Você pode estender o sistema de verificação de permissões definindo seu próprio provedor de valor de permissão. - -Exemplo: - -```csharp -public class SystemAdminPermissionValueProvider : PermissionValueProvider -{ - public SystemAdminPermissionValueProvider(IPermissionStore permissionStore) - : base(permissionStore) - { - } - - public override string Name => "SystemAdmin"; - - public async override Task - CheckAsync(PermissionValueCheckContext context) - { - if (context.Principal?.FindFirst("User_Type")?.Value == "SystemAdmin") - { - return PermissionGrantResult.Granted; - } - - return PermissionGrantResult.Undefined; - } -} -``` - -Esse provedor permite que todas as permissões sejam concedidas a um usuário com uma reivindicação `User_Type` que tenha o valor `SystemAdmin`. É comum usar as reivindicações atuais e o `IPermissionStore` em um provedor de valor de permissão. - -Um provedor de valor de permissão deve retornar um dos seguintes valores do método `CheckAsync`: - -- `PermissionGrantResult.Granted` é retornado para conceder a permissão ao usuário. Se qualquer um dos provedores retornar `Granted`, o resultado será `Granted`, se nenhum outro provedor retornar `Prohibited`. -- `PermissionGrantResult.Prohibited` é retornado para proibir a permissão ao usuário. Se qualquer um dos provedores retornar `Prohibited`, o resultado será sempre `Prohibited`. Não importa o que os outros provedores retornem. -- `PermissionGrantResult.Undefined` é retornado se esse provedor de valor de permissão não puder decidir sobre o valor da permissão. Retorne isso para permitir que outros provedores verifiquem a permissão. - -Uma vez que um provedor é definido, ele deve ser adicionado às `AbpPermissionOptions`, como mostrado abaixo: - -```csharp -Configure(options => -{ - options.ValueProviders.Add(); -}); -``` - -### Armazenamento de Permissões - -`IPermissionStore` é a única interface que precisa ser implementada para ler o valor das permissões de uma fonte de persistência, geralmente um sistema de banco de dados. O módulo de gerenciamento de permissões a implementa e é pré-instalado no modelo de inicialização da aplicação. Consulte a [documentação do módulo de gerenciamento de permissões](Modules/Permission-Management.md) para obter mais informações. - -### AlwaysAllowAuthorizationService - -`AlwaysAllowAuthorizationService` é uma classe usada para ignorar o serviço de autorização. Geralmente é usado em testes de integração, onde você pode querer desabilitar o sistema de autorização. - -Use o método de extensão `IServiceCollection.AddAlwaysAllowAuthorization()` para registrar o `AlwaysAllowAuthorizationService` no sistema de [injeção de dependência](Dependency-Injection.md): - -```csharp -public override void ConfigureServices(ServiceConfigurationContext context) -{ - context.Services.AddAlwaysAllowAuthorization(); -} -``` - -Isso já é feito para testes de integração do modelo de inicialização. - -### Fábrica de Claims Principal - -As reivindicações são elementos importantes da autenticação e autorização. O ABP usa o serviço `IAbpClaimsPrincipalFactory` para criar reivindicações na autenticação. Esse serviço foi projetado para ser extensível. Se você precisar adicionar suas próprias reivindicações ao ticket de autenticação, poderá implementar `IAbpClaimsPrincipalContributor` em sua aplicação. - -**Exemplo: Adicionar uma reivindicação `SocialSecurityNumber` e obtê-la:** - -```csharp -public class SocialSecurityNumberClaimsPrincipalContributor : IAbpClaimsPrincipalContributor, ITransientDependency -{ - public async Task ContributeAsync(AbpClaimsPrincipalContributorContext context) - { - var identity = context.ClaimsPrincipal.Identities.FirstOrDefault(); - var userId = identity?.FindUserId(); - if (userId.HasValue) - { - var userService = context.ServiceProvider.GetRequiredService(); //Seu serviço personalizado - var socialSecurityNumber = await userService.GetSocialSecurityNumberAsync(userId.Value); - if (socialSecurityNumber != null) - { - identity.AddClaim(new Claim("SocialSecurityNumber", socialSecurityNumber)); - } - } - } -} - - -public static class CurrentUserExtensions -{ - public static string GetSocialSecurityNumber(this ICurrentUser currentUser) - { - return currentUser.FindClaimValue("SocialSecurityNumber"); - } -} -``` - -> Se você estiver usando o Identity Server, adicione suas reivindicações a `RequestedClaims` de `AbpClaimsServiceOptions`. - -```csharp -Configure(options => -{ - options.RequestedClaims.AddRange(new[]{ "SocialSecurityNumber" }); -}); -``` - -## Veja também - -* [Módulo de Gerenciamento de Permissões](Modules/Permission-Management.md) -* [API de Autenticação JavaScript do ASP.NET Core MVC / Razor Pages](UI/AspNetCore/JavaScript-API/Auth.md) -* [Gerenciamento de Permissões na Interface do Usuário Angular](UI/Angular/Permission-Management.md) -* [Tutorial em vídeo](https://abp.io/video-courses/essentials/authorization) \ No newline at end of file diff --git a/docs/pt-BR/AutoMapper-Integration.md b/docs/pt-BR/AutoMapper-Integration.md deleted file mode 100644 index 24dd8ebfc4..0000000000 --- a/docs/pt-BR/AutoMapper-Integration.md +++ /dev/null @@ -1,3 +0,0 @@ -## AutoMapper Integration - -Façam \ No newline at end of file diff --git a/docs/pt-BR/Background-Jobs-Hangfire.md b/docs/pt-BR/Background-Jobs-Hangfire.md deleted file mode 100644 index 66e6944e88..0000000000 --- a/docs/pt-BR/Background-Jobs-Hangfire.md +++ /dev/null @@ -1,3 +0,0 @@ -# Hangfire Background Job Manager - -Façam \ No newline at end of file diff --git a/docs/pt-BR/Background-Jobs-Quartz.md b/docs/pt-BR/Background-Jobs-Quartz.md deleted file mode 100644 index 9f556c7626..0000000000 --- a/docs/pt-BR/Background-Jobs-Quartz.md +++ /dev/null @@ -1,159 +0,0 @@ -# Gerenciador de Tarefas em Segundo Plano Quartz - -[Quartz](https://www.quartz-scheduler.net/) é um avançado gerenciador de tarefas em segundo plano. Você pode integrar o Quartz com o ABP Framework para usá-lo em vez do [gerenciador de tarefas em segundo plano padrão](Background-Jobs.md). Dessa forma, você pode usar a mesma API de tarefas em segundo plano para o Quartz e seu código será independente do Quartz. Se preferir, você também pode usar diretamente a API do Quartz. - -> Consulte o [documento de tarefas em segundo plano](Background-Jobs.md) para aprender como usar o sistema de tarefas em segundo plano. Este documento mostra apenas como instalar e configurar a integração com o Quartz. - -## Instalação - -É sugerido usar o [ABP CLI](CLI.md) para instalar este pacote. - -### Usando o ABP CLI - -Abra uma janela de linha de comando na pasta do projeto (arquivo .csproj) e digite o seguinte comando: - -````bash -abp add-package Volo.Abp.BackgroundJobs.Quartz -```` - -> Se você ainda não o fez, primeiro precisa instalar o [ABP CLI](CLI.md). Para outras opções de instalação, consulte [a página de descrição do pacote](https://abp.io/package-detail/Volo.Abp.BackgroundJobs.Quartz). - -### Instalação Manual - -Se você deseja instalar manualmente: - -1. Adicione o pacote NuGet [Volo.Abp.BackgroundJobs.Quartz](https://www.nuget.org/packages/Volo.Abp.BackgroundJobs.Quartz) ao seu projeto: - - ```` - Install-Package Volo.Abp.BackgroundJobs.Quartz - ```` - -2. Adicione o `AbpBackgroundJobsQuartzModule` à lista de dependências do seu módulo: - -````csharp -[DependsOn( - //...outras dependências - typeof(AbpBackgroundJobsQuartzModule) //Adicione a nova dependência do módulo - )] -public class SeuModulo : AbpModule -{ -} -```` - -## Configuração - -O Quartz é uma biblioteca muito configurável e o framework ABP fornece `AbpQuartzOptions` para isso. Você pode usar o método `PreConfigure` na classe do seu módulo para pré-configurar essa opção. O ABP a usará ao inicializar o módulo Quartz. Por exemplo: - -````csharp -[DependsOn( - //...outras dependências - typeof(AbpBackgroundJobsQuartzModule) //Adicione a nova dependência do módulo - )] -public class SeuModulo : AbpModule -{ - public override void PreConfigureServices(ServiceConfigurationContext context) - { - var configuration = context.Services.GetConfiguration(); - - PreConfigure(options => - { - options.Properties = new NameValueCollection - { - ["quartz.jobStore.dataSource"] = "BackgroundJobsDemoApp", - ["quartz.jobStore.type"] = "Quartz.Impl.AdoJobStore.JobStoreTX, Quartz", - ["quartz.jobStore.tablePrefix"] = "QRTZ_", - ["quartz.serializer.type"] = "json", - ["quartz.dataSource.BackgroundJobsDemoApp.connectionString"] = configuration.GetConnectionString("Quartz"), - ["quartz.dataSource.BackgroundJobsDemoApp.provider"] = "SqlServer", - ["quartz.jobStore.driverDelegateType"] = "Quartz.Impl.AdoJobStore.SqlServerDelegate, Quartz", - }; - }); - } -} -```` - -A partir da versão 3.1 do ABP, adicionamos o `Configurator` ao `AbpQuartzOptions` para configurar o Quartz. Por exemplo: - -````csharp -[DependsOn( - //...outras dependências - typeof(AbpBackgroundJobsQuartzModule) //Adicione a nova dependência do módulo - )] -public class SeuModulo : AbpModule -{ - public override void PreConfigureServices(ServiceConfigurationContext context) - { - var configuration = context.Services.GetConfiguration(); - - PreConfigure(options => - { - options.Configurator = configure => - { - configure.UsePersistentStore(storeOptions => - { - storeOptions.UseProperties = true; - storeOptions.UseJsonSerializer(); - storeOptions.UseSqlServer(configuration.GetConnectionString("Quartz")); - storeOptions.UseClustering(c => - { - c.CheckinMisfireThreshold = TimeSpan.FromSeconds(20); - c.CheckinInterval = TimeSpan.FromSeconds(10); - }); - }); - }; - }); - } -} -```` - -> Você pode escolher a maneira que preferir para configurar o Quartz. - -O Quartz armazena informações de tarefas e agendamento **em memória por padrão**. No exemplo, usamos a pré-configuração do [padrão de opções](Options.md) para alterá-lo para o banco de dados. Para mais configurações do Quartz, consulte a [documentação do Quartz](https://www.quartz-scheduler.net/). - -## Tratamento de Exceções - -### Estratégia de tratamento de exceções padrão - -Quando ocorre uma exceção na tarefa em segundo plano, o ABP fornece a **estratégia de tratamento padrão** que tenta novamente a cada 3 segundos, até 3 vezes. Você pode alterar a contagem de tentativas e o intervalo de tentativa por meio das opções `AbpBackgroundJobQuartzOptions`: - -```csharp -[DependsOn( - //...outras dependências - typeof(AbpBackgroundJobsQuartzModule) //Adicione a nova dependência do módulo - )] -public class SeuModulo : AbpModule -{ - public override void ConfigureServices(ServiceConfigurationContext context) - { - Configure(options => - { - options.RetryCount = 1; - options.RetryIntervalMillisecond = 1000; - }); - } -} -``` - -### Personalizar a estratégia de tratamento de exceções - -Você pode personalizar a estratégia de tratamento de exceções por meio das opções `AbpBackgroundJobQuartzOptions`: - -```csharp -[DependsOn( - //...outras dependências - typeof(AbpBackgroundJobsQuartzModule) //Adicione a nova dependência do módulo - )] -public class SeuModulo : AbpModule -{ - public override void ConfigureServices(ServiceConfigurationContext context) - { - Configure(options => - { - options.RetryStrategy = async (retryIndex, executionContext, exception) => - { - // personalizar o tratamento de exceções - }; - }); - } -} -``` \ No newline at end of file diff --git a/docs/pt-BR/Background-Jobs-RabbitMq.md b/docs/pt-BR/Background-Jobs-RabbitMq.md deleted file mode 100644 index a984a2a3ab..0000000000 --- a/docs/pt-BR/Background-Jobs-RabbitMq.md +++ /dev/null @@ -1,3 +0,0 @@ -# RabbitMQ Background Job Manager - -TODO \ No newline at end of file diff --git a/docs/pt-BR/Background-Workers-Quartz.md b/docs/pt-BR/Background-Workers-Quartz.md deleted file mode 100644 index 857de2e469..0000000000 --- a/docs/pt-BR/Background-Workers-Quartz.md +++ /dev/null @@ -1,146 +0,0 @@ -# Gerenciador de Trabalhadores em Segundo Plano Quartz - -[Quartz](https://www.quartz-scheduler.net/) é um avançado gerenciador de trabalhadores em segundo plano. Você pode integrar o Quartz com o ABP Framework para usá-lo em vez do [gerenciador de trabalhadores em segundo plano padrão](Background-Workers.md). O ABP simplesmente integra o Quartz. - -## Instalação - -É sugerido usar o [ABP CLI](CLI.md) para instalar este pacote. - -### Usando o ABP CLI - -Abra uma janela de linha de comando na pasta do projeto (arquivo .csproj) e digite o seguinte comando: - -````bash -abp add-package Volo.Abp.BackgroundWorkers.Quartz -```` - -### Instalação Manual - -Se você deseja instalar manualmente: - -1. Adicione o pacote NuGet [Volo.Abp.BackgroundWorkers.Quartz](https://www.nuget.org/packages/Volo.Abp.BackgroundWorkers.Quartz) ao seu projeto: - - ```` - Install-Package Volo.Abp.BackgroundWorkers.Quartz - ```` - -2. Adicione o módulo `AbpBackgroundWorkersQuartzModule` à lista de dependências do seu módulo: - -````csharp -[DependsOn( - //...outras dependências - typeof(AbpBackgroundWorkersQuartzModule) //Adicione a nova dependência do módulo - )] -public class SeuModulo : AbpModule -{ -} -```` - -> A integração do trabalhador em segundo plano do Quartz fornece o adaptador `QuartzPeriodicBackgroundWorkerAdapter` para adaptar as classes derivadas `PeriodicBackgroundWorkerBase` e `AsyncPeriodicBackgroundWorkerBase`. Portanto, você ainda pode seguir o [documento de trabalhadores em segundo plano](Background-Workers.md) para definir o trabalhador em segundo plano. - -## Configuração - -Veja [Configuração](Background-Jobs-Quartz#Configuração). - -## Criar um Trabalhador em Segundo Plano - -Um trabalho em segundo plano é uma classe que deriva da classe base `QuartzBackgroundWorkerBase`. Por exemplo, uma classe de trabalhador simples é mostrada abaixo: - -```` csharp -public class MeuTrabalhadorDeLog : QuartzBackgroundWorkerBase -{ - public MeuTrabalhadorDeLog() - { - JobDetail = JobBuilder.Create().WithIdentity(nameof(MeuTrabalhadorDeLog)).Build(); - Trigger = TriggerBuilder.Create().WithIdentity(nameof(MeuTrabalhadorDeLog)).StartNow().Build(); - } - - public override Task Execute(IJobExecutionContext context) - { - Logger.LogInformation("Executando MeuTrabalhadorDeLog..!"); - return Task.CompletedTask; - } -} -```` - -Nós simplesmente implementamos o método Execute para escrever um log. O trabalhador em segundo plano é um **singleton por padrão**. Se desejar, você também pode implementar uma [interface de dependência](Dependency-Injection#Interfaces-de-Dependência) para registrá-lo com outro ciclo de vida. - -> Dica: Adicionar identidade aos trabalhadores em segundo plano é uma boa prática, pois o Quartz distingue trabalhos diferentes com base na identidade. - -## Adicionar ao BackgroundWorkerManager - -Os trabalhadores em segundo plano padrão são **adicionados automaticamente** ao BackgroundWorkerManager quando a aplicação é **inicializada**. Você pode definir o valor da propriedade `AutoRegister` como `false`, se desejar adicioná-lo manualmente: - -```` csharp -public class MeuTrabalhadorDeLog : QuartzBackgroundWorkerBase -{ - public MeuTrabalhadorDeLog() - { - AutoRegister = false; - JobDetail = JobBuilder.Create().WithIdentity(nameof(MeuTrabalhadorDeLog)).Build(); - Trigger = TriggerBuilder.Create().WithIdentity(nameof(MeuTrabalhadorDeLog)).StartNow().Build(); - } - - public override Task Execute(IJobExecutionContext context) - { - Logger.LogInformation("Executando MeuTrabalhadorDeLog..!"); - return Task.CompletedTask; - } -} -```` - -Se você deseja desabilitar globalmente a adição automática de trabalhadores, você pode desabilitá-la globalmente através das opções `AbpBackgroundWorkerQuartzOptions`: - -```csharp -[DependsOn( - //...outras dependências - typeof(AbpBackgroundWorkersQuartzModule) //Adicione a nova dependência do módulo - )] -public class SeuModulo : AbpModule -{ - public override void ConfigureServices(ServiceConfigurationContext context) - { - Configure(options => - { - options.IsAutoRegisterEnabled = false; - }); - } -} -``` - -## Tópicos Avançados - -### Personalizar o ScheduleJob - -Suponha que você tenha um trabalhador que é executado a cada 10 minutos, mas devido a um servidor indisponível por 30 minutos, 3 execuções são perdidas. Você deseja executar todas as execuções perdidas quando o servidor estiver disponível novamente. Você deve definir seu trabalhador em segundo plano da seguinte forma: - -```csharp -public class MeuTrabalhadorDeLog : QuartzBackgroundWorkerBase -{ - public MeuTrabalhadorDeLog() - { - JobDetail = JobBuilder.Create().WithIdentity(nameof(MeuTrabalhadorDeLog)).Build(); - Trigger = TriggerBuilder.Create().WithIdentity(nameof(MeuTrabalhadorDeLog)).WithSimpleSchedule(s=>s.WithIntervalInMinutes(1).RepeatForever().WithMisfireHandlingInstructionIgnoreMisfires()).Build(); - - ScheduleJob = async scheduler => - { - if (!await scheduler.CheckExists(JobDetail.Key)) - { - await scheduler.ScheduleJob(JobDetail, Trigger); - } - }; - } - - public override Task Execute(IJobExecutionContext context) - { - Logger.LogInformation("Executando MeuTrabalhadorDeLog..!"); - return Task.CompletedTask; - } -} -``` - -No exemplo, definimos o intervalo de execução do trabalhador como 10 minutos e definimos `WithMisfireHandlingInstructionIgnoreMisfires`. Personalizamos o `ScheduleJob` e adicionamos o trabalhador ao Quartz somente quando o trabalhador em segundo plano não existe. - -### Mais - -Consulte a [documentação](https://www.quartz-scheduler.net/documentation/index.html) do Quartz para obter mais informações. diff --git a/docs/pt-BR/Background-Workers.md b/docs/pt-BR/Background-Workers.md deleted file mode 100644 index 7ee7f3afd2..0000000000 --- a/docs/pt-BR/Background-Workers.md +++ /dev/null @@ -1,144 +0,0 @@ -# Background Workers - -## Introdução - -Background workers são threads independentes simples na aplicação que são executadas em segundo plano. Geralmente, eles são executados periodicamente para realizar algumas tarefas. Exemplos: - -* Um background worker pode ser executado periodicamente para **excluir logs antigos**. -* Um background worker pode ser executado periodicamente para **identificar usuários inativos** e **enviar e-mails** para fazer com que os usuários retornem à sua aplicação. - -## Criando um Background Worker - -Um background worker deve implementar diretamente ou indiretamente a interface `IBackgroundWorker`. - -> Um background worker é inerentemente [singleton](Dependency-Injection.md). Portanto, apenas uma única instância da sua classe de worker é instanciada e executada. - -### BackgroundWorkerBase - -`BackgroundWorkerBase` é uma maneira fácil de criar um background worker. - -````csharp -public class MyWorker : BackgroundWorkerBase -{ - public override Task StartAsync(CancellationToken cancellationToken = default) - { - //... - } - - public override Task StopAsync(CancellationToken cancellationToken = default) - { - //... - } -} -```` - -Inicie o seu worker no método `StartAsync` (que é chamado quando a aplicação é iniciada) e pare no método `StopAsync` (que é chamado quando a aplicação é encerrada). - -> Você pode implementar diretamente a interface `IBackgroundWorker`, mas `BackgroundWorkerBase` fornece algumas propriedades úteis, como `Logger`. - -### AsyncPeriodicBackgroundWorkerBase - -Vamos supor que queremos tornar um usuário inativo se ele não tiver feito login na aplicação nos últimos 30 dias. A classe `AsyncPeriodicBackgroundWorkerBase` simplifica a criação de workers periódicos, então vamos usá-la no exemplo abaixo: - -````csharp -public class PassiveUserCheckerWorker : AsyncPeriodicBackgroundWorkerBase -{ - public PassiveUserCheckerWorker( - AbpAsyncTimer timer, - IServiceScopeFactory serviceScopeFactory - ) : base( - timer, - serviceScopeFactory) - { - Timer.Period = 600000; //10 minutos - } - - protected async override Task DoWorkAsync( - PeriodicBackgroundWorkerContext workerContext) - { - Logger.LogInformation("Iniciando: Definindo status de usuários inativos..."); - - //Resolver dependências - var userRepository = workerContext - .ServiceProvider - .GetRequiredService(); - - //Realizar o trabalho - await userRepository.UpdateInactiveUserStatusesAsync(); - - Logger.LogInformation("Concluído: Definindo status de usuários inativos..."); - } -} -```` - -* `AsyncPeriodicBackgroundWorkerBase` usa o objeto `AbpAsyncTimer` (um timer thread-safe) para determinar **o período**. Podemos definir a propriedade `Period` no construtor. -* É necessário implementar o método `DoWorkAsync` para **executar** o trabalho periódico. -* É uma boa prática **resolver as dependências** a partir do `PeriodicBackgroundWorkerContext` em vez de usar injeção de dependência no construtor. Isso ocorre porque `AsyncPeriodicBackgroundWorkerBase` usa um `IServiceScope` que é **descartado** quando o trabalho é concluído. -* `AsyncPeriodicBackgroundWorkerBase` **captura e registra exceções** lançadas pelo método `DoWorkAsync`. - -## Registrando o Background Worker - -Após criar a classe do background worker, você deve adicioná-la ao `IBackgroundWorkerManager`. O local mais comum é o método `OnApplicationInitializationAsync` da sua classe de módulo: - -````csharp -[DependsOn(typeof(AbpBackgroundWorkersModule))] -public class MyModule : AbpModule -{ - public override async Task OnApplicationInitializationAsync( - ApplicationInitializationContext context) - { - await context.AddBackgroundWorkerAsync(); - } -} -```` - -`context.AddBackgroundWorkerAsync(...)` é um método de extensão que simplifica a expressão abaixo: - -````csharp -await context.ServiceProvider - .GetRequiredService() - .AddAsync( - context - .ServiceProvider - .GetRequiredService() - ); -```` - -Dessa forma, ele resolve o background worker fornecido e o adiciona ao `IBackgroundWorkerManager`. - -Embora geralmente adicionemos workers no método `OnApplicationInitializationAsync`, não há restrições quanto a isso. Você pode injetar o `IBackgroundWorkerManager` em qualquer lugar e adicionar workers em tempo de execução. O gerenciador de background workers irá parar e liberar todos os workers registrados quando a aplicação for encerrada. - -## Opções - -A classe `AbpBackgroundWorkerOptions` é usada para [definir opções](Options.md) para os background workers. Atualmente, há apenas uma opção: - -* `IsEnabled` (padrão: true): Usado para **habilitar/desabilitar** o sistema de background workers para a sua aplicação. - -> Consulte o documento [Options](Options.md) para aprender como definir opções. - -## Mantendo a Aplicação Sempre em Execução - -Os background workers só funcionam se a sua aplicação estiver em execução. Se você hospedar a execução do job em segundo plano na sua aplicação web (esse é o comportamento padrão), você deve garantir que a sua aplicação web esteja configurada para sempre estar em execução. Caso contrário, os jobs em segundo plano só funcionarão enquanto a sua aplicação estiver em uso. - -## Executando em um Cluster - -Tenha cuidado se você executar várias instâncias da sua aplicação simultaneamente em um ambiente de cluster. Nesse caso, cada aplicação executa o mesmo worker, o que pode criar conflitos se os workers estiverem executando em recursos compartilhados (processando os mesmos dados, por exemplo). - -Se isso for um problema para os seus workers, você tem as seguintes opções: - -* Implemente os seus background workers de forma que eles funcionem em um ambiente de cluster sem problemas. Usar o [lock distribuído](Distributed-Locking.md) para garantir o controle de concorrência é uma forma de fazer isso. Um background worker em uma instância da aplicação pode manipular um lock distribuído, então os workers em outras instâncias da aplicação aguardarão pelo lock. Dessa forma, apenas um worker realiza o trabalho real, enquanto os outros esperam ociosos. Se você implementar isso, os seus workers serão executados com segurança, independentemente de como a aplicação estiver implantada. -* Pare os background workers (defina `AbpBackgroundWorkerOptions.IsEnabled` como `false`) em todas as instâncias da aplicação, exceto em uma delas, para que apenas a instância única execute os workers. -* Pare os background workers (defina `AbpBackgroundWorkerOptions.IsEnabled` como `false`) em todas as instâncias da aplicação e crie uma aplicação dedicada (talvez uma aplicação console executando em seu próprio contêiner ou um serviço do Windows em execução em segundo plano) para executar todas as tarefas em segundo plano. Essa pode ser uma boa opção se os seus background workers consumirem muitos recursos do sistema (CPU, RAM ou Disco), para que você possa implantar essa aplicação de background em um servidor dedicado e suas tarefas em segundo plano não afetem o desempenho da sua aplicação. - -## Integrações - -O sistema de background workers é extensível e você pode alterar o gerenciador de background workers padrão com a sua própria implementação ou com uma das integrações pré-construídas. - -Veja as alternativas de gerenciador de workers pré-construídas: - -* [Quartz Background Worker Manager](Background-Workers-Quartz.md) -* [Hangfire Background Worker Manager](Background-Workers-Hangfire.md) - -## Veja Também - -* [Background Jobs](Background-Jobs.md) diff --git a/docs/pt-BR/CLI.md b/docs/pt-BR/CLI.md deleted file mode 100644 index 87ddfc9942..0000000000 --- a/docs/pt-BR/CLI.md +++ /dev/null @@ -1,149 +0,0 @@ -# ABP CLI - -O ABP CLI (Command Line Interface) é uma ferramenta de linha de comando para executar algumas operações comuns para soluções baseadas em ABP. - -## Instalação - -O ABP CLI é uma [ferramenta global dotnet](https://docs.microsoft.com/en-us/dotnet/core/tools/global-tools) . Instale-o usando uma janela de linha de comando: - -````bash -dotnet tool install -g Volo.Abp.Cli -```` - -Para atualizar uma instalação existente: - -````bash -dotnet tool update -g Volo.Abp.Cli -```` - -## Comandos - -### Novo - -Gera uma nova solução baseada nos [modelos de inicialização](Startup-Templates/Index.md) do ABP . - -Uso básico: - -````bash -abp new [options] -```` - -Examplo: - -````bash -abp new Acme.BookStore -```` - -* `Acme.BookStore` é o nome da solução aqui. -* A convenção comum é nomear uma solução como *YourCompany.YourProject* . No entanto, você pode usar nomes diferentes, como *YourProject* (namespacing de nível único) ou *YourCompany.YourProduct.YourModule* (namespacing de três níveis). - -#### Opções - -* `--template`ou `-t`: especifica o nome do modelo. O nome do modelo padrão é `app`, que gera um aplicativo da web. Modelos disponíveis: - * `app`(padrão): [modelo de aplicativo](https://docs.abp.io/en/abp/latest/Startup-Templates/Application) . Opções adicionais: - * `--ui`ou `-u`: Especifica a UI framework. Framework padrão é `mvc`. Framework disponíveis: - * `mvc`: ASP.NET Core MVC. Existem algumas opções adicionais para este modelo: - * `--tiered`: Cria uma solução em camadas em que as camadas da Web e da API HTTP são fisicamente separadas. Se não especificado, ele cria uma solução em camadas que é menos complexa e adequada para a maioria dos cenários. - * `angular`: Angular. Existem algumas opções adicionais para este modelo: - * `--separate-auth-server`: Separa o aplicativo do servidor de identidade do aplicativo host da API. Se não especificado, você terá um único ponto de extremidade no lado do servidor. - * `--database-provider` Ou `-d`: especifica o provedor de banco de dados. O provedor padrão é `ef`. Fornecedores disponíveis: - * `ef`: Entity Framework Core. - * `mongodb`: MongoDB. - * `module`: [Exemplo de Módulo](Startup-Templates/Module.md). Opções adicionais: - * `--no-ui`: Especifica para não incluir a UI. Isso possibilita a criação de módulos somente de serviço (também conhecidos como microsserviços - sem interface do usuário). -* `--output-folder` ou `-o`: especifica a pasta de saída. O valor padrão é o diretório atual. -* `--version` ou `-v`: Especifica a ABP & versão de exemplo . Pode ser uma [release tag](https://github.com/abpframework/abp/releases) ou um [branch name](https://github.com/abpframework/abp/branches). Usa a versão mais recente, se não especificado. Na maioria das vezes, você desejará usar a versão mais recente. - -### add-package - -Adiciona um pacote ABP a um projeto por, - -- Adicionando pacote de nuget relacionado como uma dependência ao projeto. -- Adicionando `[DependsOn(...)]`atributo à classe de módulo no projeto (consulte o [documento de desenvolvimento](https://docs.abp.io/en/abp/latest/Module-Development-Basics) do [módulo](https://docs.abp.io/en/abp/latest/Module-Development-Basics) ). - -> Observe que o módulo adicionado pode exigir uma configuração adicional, geralmente indicada na documentação do pacote relacionado. - -Uso básico: - -```bash -abp add-package [options] -``` - -Bater - -cópia de - -Exemplo: - -``` -abp add-package Volo.Abp.MongoDB -``` - -- Este exemplo adiciona o pacote Volo.Abp.MongoDB ao projeto. - -#### Opções - -- `--project`ou `-p`: especifica o caminho do arquivo do projeto (.csproj). Se não especificado, a CLI tenta encontrar um arquivo .csproj no diretório atual. - -### add-module - -Adiciona um [módulo de aplicativo com vários pacotes](Modules/Index.md) a uma solução, localizando todos os pacotes do módulo, localizando projetos relacionados na solução e adicionando cada pacote ao projeto correspondente na solução. - -> Um módulo de negócios geralmente consiste em vários pacotes (devido a camadas, diferentes opções de provedor de banco de dados ou outros motivos). O uso do `add-module`comando simplifica drasticamente a adição de um módulo a uma solução. No entanto, cada módulo pode exigir algumas configurações adicionais, geralmente indicadas na documentação do módulo relacionado. - -Uso básico: - -```bash -abp add-module [options] -``` - -Exemplo: - -```bash -abp add-module Volo.Blogging -``` - -- Este exemplo adiciona o módulo Volo.Blogging à solução. - -#### Opções - -- `--solution`ou `-s`: especifica o caminho do arquivo da solução (.sln). Se não especificado, a CLI tenta encontrar um arquivo .sln no diretório atual. -- `--skip-db-migrations`: Para o provedor de banco de dados EF Core, ele adiciona automaticamente um novo código à primeira migração ( `Add-Migration`) e atualiza o banco de dados ( `Update-Database`), se necessário. Especifique esta opção para pular esta operação. -- `-sp`ou `--startup-project`: caminho relativo para a pasta do projeto de inicialização. O valor padrão é a pasta atual. - -### atualizar - -A atualização de todos os pacotes relacionados ao ABP pode ser entediante, pois existem muitos pacotes da estrutura e dos módulos. Este comando atualiza automaticamente todos os pacotes NuGet e NPM relacionados ao ABP em uma solução ou projeto para as versões mais recentes. - -Uso: - -```bash -abp update [options] -``` - -- Se você executar em um diretório com um arquivo .sln, ele atualizará todos os pacotes relacionados ao ABP de todos os projetos da solução para as versões mais recentes. -- Se você executar em um diretório com um arquivo .csproj, ele atualizará todos os pacotes relacionados ao ABP do projeto para as versões mais recentes. - -#### Opções - -- `--include-previews`ou `-p`: inclui pacotes de visualização, beta e rc enquanto verifica as versões mais recentes. - -### Socorro - -Grava informações básicas de uso da CLI. - -Uso: - -```bash -abp help [command-name] -``` - -Exemplos: - -```bash -abp help # Shows a general help. -abp help new # Shows help about the "new" command. -``` - - - \ No newline at end of file diff --git a/docs/pt-BR/Caching.md b/docs/pt-BR/Caching.md deleted file mode 100644 index cc28531e90..0000000000 --- a/docs/pt-BR/Caching.md +++ /dev/null @@ -1,3 +0,0 @@ -# Caching - -Façam \ No newline at end of file diff --git a/docs/pt-BR/Contribution/Index.md b/docs/pt-BR/Contribution/Index.md deleted file mode 100644 index e51ff4646c..0000000000 --- a/docs/pt-BR/Contribution/Index.md +++ /dev/null @@ -1,60 +0,0 @@ -## Guia de Contribuição - -O ABP é um projeto de [código aberto](https://github.com/abpframework) e orientado à comunidade. Este guia tem como objetivo ajudar alguém que queira contribuir com o projeto. - -### Contribuição de código - -Você sempre pode enviar solicitações pull ao repositório do Github. - -- Clone o [repositório ABP](https://github.com/abpframework/abp/) do Github. -- Faça as alterações necessárias. -- Envie uma solicitação de recebimento. - -Antes de fazer qualquer alteração, discuta-a sobre os [problemas](https://github.com/abpframework/abp/issues) do [Github](https://github.com/abpframework/abp/issues) . Dessa forma, nenhum outro desenvolvedor trabalhará no mesmo problema e seu PR terá uma chance melhor de ser aceito. - -#### Correções de bugs e aprimoramentos - -Você pode corrigir um bug conhecido ou trabalhar em uma melhoria planejada. Veja [a lista de problemas](https://github.com/abpframework/abp/issues) no Github. - -#### Solicitações de recursos - -Se você tem uma ideia de recurso para a estrutura ou módulos, [crie um problema](https://github.com/abpframework/abp/issues/new) no Github ou participe de uma discussão existente. Então você pode implementá-lo se for adotado pela comunidade. - -### Tradução de documentos - -Você pode traduzir a [documentação](https://abp.io/documents/) completa (incluindo esta) para o idioma materno. Nesse caso, siga estas etapas: - -- Clone o [repositório ABP](https://github.com/abpframework/abp/) do Github. -- Para adicionar um novo idioma, crie uma nova pasta dentro da pasta [docs](https://github.com/abpframework/abp/tree/master/docs) . Os nomes das pastas podem ser "en", "es", "fr", "tr" e assim por diante, com base no idioma (consulte [todos os códigos de cultura](https://msdn.microsoft.com/en-us/library/hh441729.aspx) ). -- Obtenha a [pasta "en"](https://github.com/abpframework/abp/tree/master/docs/en) como uma referência para os nomes de arquivos e a estrutura de pastas. Mantenha o mesmo nome se estiver traduzindo a mesma documentação. -- Envie uma solicitação de recebimento (PR) depois de traduzir qualquer documento. Traduza documentos e envie PRs um por um. Não espere para terminar as traduções de todos os documentos. - -Alguns documentos fundamentais precisam ser traduzidos antes da publicação de um idioma no [site de documentação](https://docs.abp.io/) da [ABP](https://docs.abp.io/) : - -- Documentos de introdução -- Tutoriais -- CLI - -Um novo idioma é publicado após a conclusão dessas traduções mínimas. - -### Localização de Recursos - -A estrutura ABP possui um [sistema de localização](../Localization.md) flexível . Você pode criar interfaces de usuário localizadas para seu próprio aplicativo. - -Além disso, os módulos de estrutura e pré-construção já localizaram textos. Como exemplo, veja [os textos de localização para o pacote Volo.Abp.UI](https://github.com/abpframework/abp/blob/master/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en.json) . Você pode criar um novo arquivo na [mesma pasta](https://github.com/abpframework/abp/tree/master/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi) para traduzi-lo. - -- Clone o [repositório ABP](https://github.com/abpframework/abp/) do Github. -- Crie um novo arquivo para o idioma de destino para um arquivo de texto de localização (json) (próximo ao arquivo en.json). -- Copie todos os textos do arquivo en.json. -- Traduzir os textos. -- Enviar solicitação de recebimento no Github. - -ABP é uma estrutura modular. Portanto, existem muitos recursos de texto de localização, um por módulo. Para encontrar todos os arquivos .json, você pode procurar por "en.json" após clonar o repositório. Você também pode verificar [esta lista](https://docs.abp.io/en/abp/latest/Contribution/Localization-Text-Files) para obter uma lista de arquivos de texto de localização. - -### Posts e tutoriais do blog - -Se você decidir criar alguns tutoriais ou postagens de blog no ABP, informe-nos (criando um [problema no Github](https://github.com/abpframework/abp/issues) ), para que possamos adicionar um link ao seu tutorial / publicação na documentação oficial e podemos anunciá-lo em nossa [conta do Twitter](https://twitter.com/abpframework) . - -### Relatório de erro - -Se você encontrar algum erro, [crie um problema no repositório do Github](https://github.com/abpframework/abp/issues/new) . \ No newline at end of file diff --git a/docs/pt-BR/CorrelationId.md b/docs/pt-BR/CorrelationId.md deleted file mode 100644 index 97b18c5099..0000000000 --- a/docs/pt-BR/CorrelationId.md +++ /dev/null @@ -1,3 +0,0 @@ -# Correlation ID - -Façam \ No newline at end of file diff --git a/docs/pt-BR/Data-Filtering.md b/docs/pt-BR/Data-Filtering.md deleted file mode 100644 index 58b1431f2c..0000000000 --- a/docs/pt-BR/Data-Filtering.md +++ /dev/null @@ -1,3 +0,0 @@ -# Data Filtering - -Façam \ No newline at end of file diff --git a/docs/pt-BR/Data-Seeding.md b/docs/pt-BR/Data-Seeding.md deleted file mode 100644 index 75eea2bcb9..0000000000 --- a/docs/pt-BR/Data-Seeding.md +++ /dev/null @@ -1,3 +0,0 @@ -# Data Seeding - -Façam \ No newline at end of file diff --git a/docs/pt-BR/Data-Transfer-Objects.md b/docs/pt-BR/Data-Transfer-Objects.md deleted file mode 100644 index a29865a13c..0000000000 --- a/docs/pt-BR/Data-Transfer-Objects.md +++ /dev/null @@ -1,3 +0,0 @@ -## Data Transfer Objects - -Façam \ No newline at end of file diff --git a/docs/pt-BR/Distributed-Event-Bus.md b/docs/pt-BR/Distributed-Event-Bus.md deleted file mode 100644 index da8e2ff516..0000000000 --- a/docs/pt-BR/Distributed-Event-Bus.md +++ /dev/null @@ -1,3 +0,0 @@ -# Distributed Event Bus - -Façam \ No newline at end of file diff --git a/docs/pt-BR/Domain-Services.md b/docs/pt-BR/Domain-Services.md deleted file mode 100644 index 2a211453fa..0000000000 --- a/docs/pt-BR/Domain-Services.md +++ /dev/null @@ -1,3 +0,0 @@ -# ABP Documentation - -Façam! \ No newline at end of file diff --git a/docs/pt-BR/Dynamic-Proxying-Interceptors.md b/docs/pt-BR/Dynamic-Proxying-Interceptors.md deleted file mode 100644 index bfc7b0f705..0000000000 --- a/docs/pt-BR/Dynamic-Proxying-Interceptors.md +++ /dev/null @@ -1,3 +0,0 @@ -## Dynamic Proxying / Interceptors - -Façam \ No newline at end of file diff --git a/docs/pt-BR/Emailing.md b/docs/pt-BR/Emailing.md deleted file mode 100644 index ca704cad19..0000000000 --- a/docs/pt-BR/Emailing.md +++ /dev/null @@ -1,3 +0,0 @@ -# Emailing - -Façam! \ No newline at end of file diff --git a/docs/pt-BR/Event-Bus.md b/docs/pt-BR/Event-Bus.md deleted file mode 100644 index d95792bbb7..0000000000 --- a/docs/pt-BR/Event-Bus.md +++ /dev/null @@ -1,3 +0,0 @@ -# Event Bus - -Façam \ No newline at end of file diff --git a/docs/pt-BR/Exception-Handling.md b/docs/pt-BR/Exception-Handling.md deleted file mode 100644 index 288badbdff..0000000000 --- a/docs/pt-BR/Exception-Handling.md +++ /dev/null @@ -1,343 +0,0 @@ -# Tratamento de Exceções - -O ABP fornece uma infraestrutura integrada e oferece um modelo padrão para lidar com exceções. - -* **Lida automaticamente com todas as exceções** e envia uma **mensagem de erro formatada padrão** para o cliente em uma solicitação de API/AJAX. -* Oculta automaticamente os **erros internos de infraestrutura** e retorna uma mensagem de erro padrão. -* Fornece uma maneira fácil e configurável de **localizar** mensagens de exceção. -* Mapeia automaticamente exceções padrão para **códigos de status HTTP** e fornece uma opção configurável para mapear exceções personalizadas. - -## Tratamento Automático de Exceções - -O `AbpExceptionFilter` lida com uma exceção se **qualquer uma das seguintes condições** forem atendidas: - -* A exceção é lançada por uma **ação do controlador** que retorna um **resultado de objeto** (não um resultado de visualização). -* A solicitação é uma solicitação AJAX (o valor do cabeçalho HTTP `X-Requested-With` é `XMLHttpRequest`). -* O cliente aceita explicitamente o tipo de conteúdo `application/json` (por meio do cabeçalho HTTP `accept`). - -Se a exceção for tratada, ela é automaticamente **registrada** e uma **mensagem JSON formatada** é retornada ao cliente. - -### Formato da Mensagem de Erro - -A mensagem de erro é uma instância da classe `RemoteServiceErrorResponse`. O JSON de erro mais simples tem uma propriedade **message** conforme mostrado abaixo: - -````json -{ - "error": { - "message": "Este tópico está bloqueado e não é possível adicionar uma nova mensagem" - } -} -```` - -Existem **campos opcionais** que podem ser preenchidos com base na exceção que ocorreu. - -##### Código de Erro - -O **código de erro** é um valor de string opcional e único para a exceção. A exceção lançada deve implementar a interface `IHasErrorCode` para preencher este campo. Exemplo de valor JSON: - -````json -{ - "error": { - "code": "App:010042", - "message": "Este tópico está bloqueado e não é possível adicionar uma nova mensagem" - } -} -```` - -O código de erro também pode ser usado para localizar a exceção e personalizar o código de status HTTP (consulte as seções relacionadas abaixo). - -##### Detalhes do Erro - -Os **detalhes do erro** são um campo opcional da mensagem de erro JSON. A exceção lançada deve implementar a interface `IHasErrorDetails` para preencher este campo. Exemplo de valor JSON: - -```json -{ - "error": { - "code": "App:010042", - "message": "Este tópico está bloqueado e não é possível adicionar uma nova mensagem", - "details": "Informações mais detalhadas sobre o erro..." - } -} -``` - -##### Erros de Validação - -**validationErrors** é um campo padrão que é preenchido se a exceção lançada implementar a interface `IHasValidationErrors`. - -````json -{ - "error": { - "code": "App:010046", - "message": "Sua solicitação não é válida, corrija e tente novamente!", - "validationErrors": [{ - "message": "O nome de usuário deve ter no mínimo 3 caracteres.", - "members": ["userName"] - }, - { - "message": "A senha é obrigatória", - "members": ["password"] - }] - } -} -```` - -`AbpValidationException` implementa a interface `IHasValidationErrors` e é automaticamente lançada pelo framework quando a entrada de uma solicitação não é válida. Portanto, geralmente você não precisa lidar com erros de validação, a menos que tenha lógica de validação altamente personalizada. - -### Registro - -As exceções capturadas são automaticamente registradas. - -#### Nível de Registro - -As exceções são registradas com o nível `Error` por padrão. O nível de log pode ser determinado pela exceção se ela implementar a interface `IHasLogLevel`. Exemplo: - -````C# -public class MinhaExcecao : Exception, IHasLogLevel -{ - public LogLevel LogLevel { get; set; } = LogLevel.Warning; - - //... -} -```` - -#### Exceções de Registro Próprio - -Alguns tipos de exceção podem precisar escrever logs adicionais. Eles podem implementar a interface `IExceptionWithSelfLogging` se necessário. Exemplo: - -````C# -public class MinhaExcecao : Exception, IExceptionWithSelfLogging -{ - public void Log(ILogger logger) - { - //...log informações adicionais - } -} -```` - -> Os métodos de extensão `ILogger.LogException` são usados para escrever logs de exceção. Você pode usar o mesmo método de extensão quando necessário. - -## Exceções de Negócios - -A maioria de suas próprias exceções será exceções de negócios. A interface `IBusinessException` é usada para marcar uma exceção como uma exceção de negócios. - -`BusinessException` implementa a interface `IBusinessException` além das interfaces `IHasErrorCode`, `IHasErrorDetails` e `IHasLogLevel`. O nível de log padrão é `Warning`. - -Normalmente, você tem um código de erro relacionado a uma exceção de negócios específica. Por exemplo: - -````C# -throw new BusinessException(QaErrorCodes.CanNotVoteYourOwnAnswer); -```` - -`QaErrorCodes.CanNotVoteYourOwnAnswer` é apenas uma `const string`. O seguinte formato de código de erro é recomendado: - -```` -: -```` - -**namespace-do-código** é um **valor único** específico para o seu módulo/aplicação. Exemplo: - -```` -Volo.Qa:010002 -```` - -`Volo.Qa` é o namespace do código aqui. O namespace do código será então usado ao **localizar** mensagens de exceção. - -* Você pode **lançar diretamente** uma `BusinessException` ou **derivar** seus próprios tipos de exceção dela quando necessário. -* Todas as propriedades são opcionais para a classe `BusinessException`. Mas geralmente você define a propriedade `ErrorCode` ou `Message`. - -## Localização de Exceções - -Um problema ao lançar exceções é como localizar mensagens de erro ao enviá-las para o cliente. O ABP oferece dois modelos e suas variantes. - -### Exceção Amigável ao Usuário - -Se uma exceção implementa a interface `IUserFriendlyException`, então o ABP não altera suas propriedades `Message` e `Details` e a envia diretamente para o cliente. - -A classe `UserFriendlyException` é a implementação integrada da interface `IUserFriendlyException`. Exemplo de uso: - -````C# -throw new UserFriendlyException( - "O nome de usuário deve ser único!" -); -```` - -Dessa forma, **não há necessidade de localização**. Se você deseja localizar a mensagem, pode injetar e usar o **localizador de strings padrão** (consulte o [documento de localização](Localization.md)). Exemplo: - -````C# -throw new UserFriendlyException(_stringLocalizer["UserNameShouldBeUniqueMessage"]); -```` - -Em seguida, defina no **recurso de localização** para cada idioma. Exemplo: - -````json -{ - "culture": "pt", - "texts": { - "UserNameShouldBeUniqueMessage": "O nome de usuário deve ser único!" - } -} -```` - -O localizador de strings já suporta **mensagens parametrizadas**. Por exemplo: - -````C# -throw new UserFriendlyException(_stringLocalizer["UserNameShouldBeUniqueMessage", "john"]); -```` - -Em seguida, o texto de localização pode ser: - -````json -"UserNameShouldBeUniqueMessage": "O nome de usuário deve ser único! '{0}' já está em uso!" -```` - -* A interface `IUserFriendlyException` é derivada da `IBusinessException` e a classe `UserFriendlyException` é derivada da classe `BusinessException`. - -### Usando Códigos de Erro - -`UserFriendlyException` é bom, mas tem alguns problemas em usos avançados: - -* Requer que você **injete o localizador de strings** em todos os lugares e sempre o use ao lançar exceções. -* No entanto, em alguns casos, pode **não ser possível** injetar o localizador de strings (em um contexto estático ou em um método de entidade). - -Em vez de localizar a mensagem ao lançar a exceção, você pode separar o processo usando **códigos de erro**. - -Primeiro, defina o mapeamento do **namespace-do-código** para o **recurso de localização** na configuração do módulo: - -````C# -services.Configure(options => -{ - options.MapCodeNamespace("Volo.Qa", typeof(QaResource)); -}); -```` - -Então, qualquer uma das exceções com o namespace `Volo.Qa` será localizada usando seu recurso de localização fornecido. O recurso de localização deve sempre ter uma entrada com a chave do código de erro. Exemplo: - -````json -{ - "culture": "pt", - "texts": { - "Volo.Qa:010002": "Você não pode votar em sua própria resposta!" - } -} -```` - -Então uma exceção de negócios pode ser lançada com o código de erro: - -````C# -throw new BusinessException(QaDomainErrorCodes.CanNotVoteYourOwnAnswer); -```` - -* Lançar qualquer exceção que implemente a interface `IHasErrorCode` se comporta da mesma maneira. Portanto, a abordagem de localização de código de erro não é exclusiva para a classe `BusinessException`. -* Não é necessário definir uma string localizada para uma mensagem de erro. Se não estiver definido, o ABP envia a mensagem de erro padrão para o cliente. Ele não usa a propriedade `Message` da exceção! se você deseja isso, use a `UserFriendlyException` (ou use um tipo de exceção que implemente a interface `IUserFriendlyException`). - -#### Usando Parâmetros de Mensagem - -Se você tiver uma mensagem de erro parametrizada, poderá defini-la com a propriedade `Data` da exceção. Por exemplo: - -````C# -throw new BusinessException("App:010046") -{ - Data = - { - {"UserName", "john"} - } -}; - -```` - -Felizmente, há uma maneira mais simples de codificar isso: - -````C# -throw new BusinessException("App:010046") - .WithData("UserName", "john"); -```` - -Em seguida, o texto localizado pode conter o parâmetro `UserName`: - -````json -{ - "culture": "pt", - "texts": { - "App:010046": "O nome de usuário deve ser único. '{UserName}' já está em uso!" - } -} -```` - -* `WithData` pode ser encadeado com mais de um parâmetro (como `.WithData(...).WithData(...)`). - -## Mapeamento de Códigos de Status HTTP - -O ABP tenta determinar automaticamente o código de status HTTP mais adequado para tipos comuns de exceção seguindo estas regras: - -* Para a `AbpAuthorizationException`: - * Retorna `401` (não autorizado) se o usuário não estiver logado. - * Retorna `403` (proibido) se o usuário estiver logado. -* Retorna `400` (requisição inválida) para a `AbpValidationException`. -* Retorna `404` (não encontrado) para a `EntityNotFoundException`. -* Retorna `403` (proibido) para a `IBusinessException` (e `IUserFriendlyException` já que estende a `IBusinessException`). -* Retorna `501` (não implementado) para a `NotImplementedException`. -* Retorna `500` (erro interno do servidor) para outras exceções (que são assumidas como exceções de infraestrutura). - -O `IHttpExceptionStatusCodeFinder` é usado para determinar automaticamente o código de status HTTP. A implementação padrão é a classe `DefaultHttpExceptionStatusCodeFinder`. Pode ser substituída ou estendida conforme necessário. - -### Mapeamentos Personalizados - -A determinação automática do código de status HTTP pode ser substituída por mapeamentos personalizados. Por exemplo: - -````C# -services.Configure(options => -{ - options.Map("Volo.Qa:010002", HttpStatusCode.Conflict); -}); -```` - -## Inscrevendo-se nas Exceções - -É possível ser informado quando o Framework ABP **manipula uma exceção**. Ele registra automaticamente todas as exceções no [logger padrão](Logging.md), mas você pode querer fazer mais. - -Nesse caso, crie uma classe derivada da classe `ExceptionSubscriber` em sua aplicação: - -````csharp -public class MeuAssinanteDeExcecao : ExceptionSubscriber -{ - public async override Task HandleAsync(ExceptionNotificationContext context) - { - //TODO... - } -} -```` - -O objeto `context` contém informações necessárias sobre a exceção ocorrida. - -> Você pode ter vários assinantes, cada um recebe uma cópia da exceção. As exceções lançadas pelo seu assinante são ignoradas (mas ainda registradas). - -## Exceções Integradas - -Alguns tipos de exceção são automaticamente lançados pelo framework: - -- `AbpAuthorizationException` é lançada se o usuário atual não tiver permissão para realizar a operação solicitada. Consulte [autorização](Authorization.md) para mais informações. -- `AbpValidationException` é lançada se a entrada da solicitação atual não for válida. Consulte [validação](Validation.md) para mais informações. -- `EntityNotFoundException` é lançada se a entidade solicitada não estiver disponível. Isso é lançado principalmente por [repositórios](Repositories.md). - -Você também pode lançar esses tipos de exceção em seu código (embora raramente seja necessário). - -## AbpExceptionHandlingOptions - -`AbpExceptionHandlingOptions` é o principal [objeto de opções](Options.md) para configurar o sistema de tratamento de exceções. Você pode configurá-lo no método `ConfigureServices` do seu [módulo](Module-Development-Basics.md): - -````csharp -Configure(options => -{ - options.SendExceptionsDetailsToClients = true; - options.SendStackTraceToClients = false; -}); -```` - -Aqui está uma lista das opções que você pode configurar: - -* `SendExceptionsDetailsToClients` (padrão: `false`): Você pode habilitar ou desabilitar o envio de detalhes da exceção para o cliente. -* `SendStackTraceToClients` (padrão: `true`): Você pode habilitar ou desabilitar o envio da pilha de chamadas da exceção para o cliente. Se você deseja enviar a pilha de chamadas para o cliente, deve definir tanto as opções `SendStackTraceToClients` quanto `SendExceptionsDetailsToClients` como `true`, caso contrário, a pilha de chamadas não será enviada para o cliente. - -## Veja Também - -* [Tutorial em vídeo](https://abp.io/video-courses/essentials/exception-handling) diff --git a/docs/pt-BR/Extension-Methods-And-Helpers.md b/docs/pt-BR/Extension-Methods-And-Helpers.md deleted file mode 100644 index fb4d33c7e7..0000000000 --- a/docs/pt-BR/Extension-Methods-And-Helpers.md +++ /dev/null @@ -1,3 +0,0 @@ -# Extension Methods & Helpers - -Façam \ No newline at end of file diff --git a/docs/pt-BR/Getting-Started-Angular-Template.md b/docs/pt-BR/Getting-Started-Angular-Template.md deleted file mode 100644 index f1b3abe790..0000000000 --- a/docs/pt-BR/Getting-Started-Angular-Template.md +++ /dev/null @@ -1,126 +0,0 @@ -## Introdução ao modelo de aplicativo Angular - -Este tutorial explica como criar um novo aplicativo Angular usando o modelo de inicialização, configurar e executá-lo. - -### Criando um novo projeto - -Este tutorial usa o **ABP CLI** para criar um novo projeto. Consulte a página [Introdução](https://abp.io/get-started) para outras opções. - -Instale a CLI ABP usando uma janela de linha de comando, se você não tiver instalado antes: - -```bash -dotnet tool install -g Volo.Abp.Cli -``` - -Use o `abp new`comando em uma pasta vazia para criar seu projeto: - -```bash -abp new Acme.BookStore -u angular -``` - -> Você pode usar diferentes níveis de namespaces; por exemplo, BookStore, Acme.BookStore ou Acme.Retail.BookStore. - -`-u angular`A opção especifica que a estrutura da interface do usuário seja Angular. O provedor de banco de dados padrão é o EF Core. Consulte a [documentação](CLI.md) da [CLI](CLI.md) para todas as opções disponíveis. - -#### Pré requisitos - -A solução criada requer; - -* [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/) - -### A Estrutura da Solução - -Abra a solução no **Visual Studio** : - -![livraria-visual-studio-solução](images/bookstore-visual-studio-solution-for-spa.png) - -A solução possui uma estrutura em camadas (baseada no [Domain Driven Design](Domain-Driven-Design.md) ) e contém projetos de teste de unidade e integração adequadamente configurados para trabalhar com o **banco de dados** **EF Core** & **SQLite in-memory**. - -> Consulte o [documento do modelo do aplicativo](Startup-Templates/Application.md) para entender a estrutura da solução em detalhes. - -### String de Conexão de Banco de Dados - -Verifique o **connection string** no `appsettings.json`arquivo no `.HttpApi.Host`projeto: - -```json -{ - "ConnectionStrings": { - "Default": "Server=localhost;Database=BookStore;Trusted_Connection=True" - } -} -``` - -A solução está configurada para usar o **Entity Framework Core** com o **MS SQL Server** . O EF Core suporta [vários](https://docs.microsoft.com/en-us/ef/core/providers/) provedores de banco de dados, para que você possa usar outro DBMS, se desejar. Mude a cadeia de conexão, se necessário. - -### Criar banco de dados e aplicar migrações de banco de dados - -Você tem duas opções para criar o banco de dados. - -#### Usando o aplicativo DbMigrator - -A solução contém um aplicativo de console (nomeado `Acme.BookStore.DbMigrator`nesta amostra) que pode criar banco de dados, aplicar migrações e propagar dados iniciais. É útil no desenvolvimento e no ambiente de produção. - -> `.DbMigrator`projeto tem o seu próprio `appsettings.json`. Portanto, se você alterou a cadeia de conexão acima, também deve alterar esta. - -Clique com o botão direito do mouse no `.DbMigrator`projeto e selecione **Definir como Projeto de Inicialização** : - -![definir como projeto de inicialização](images/set-as-startup-project.png) - -Pressione F5 (ou Ctrl + F5) para executar o aplicativo. Terá uma saída como mostrado abaixo: - -![definir como projeto de inicialização](images/db-migrator-app.png) - -#### Usando o comando EF Core Update-Database - -O Ef Core possui um `Update-Database`comando que cria banco de dados, se necessário, e aplica migrações pendentes. Clique com o botão direito do mouse no `.Web`projeto e selecione **Definir como Projeto de Inicialização** : - -![definir como projeto de inicialização](images/set-as-startup-project.png) - -Abra o **Console do Gerenciador de Pacotes** , selecione o `.EntityFrameworkCore.DbMigrations`projeto como **Projeto Padrão** e execute o `Update-Database`comando: - -![pcm-update-database](images/pcm-update-database-v2.png) - -Isso criará um novo banco de dados com base na cadeia de conexão configurada. - -> O uso da `.Migrator`ferramenta é a maneira sugerida, porque também semeia os dados iniciais para poder executar corretamente o aplicativo Web. - -### Executando o aplicativo - -#### Execute o host da API (lado do servidor) - -Verifique se o `.HttpApi.Host`projeto é o projeto de inicialização e o aplicativo que abrirá uma interface do usuário do Swagger: - -![livraria-homepage](images/bookstore-swagger-ui-host.png) - -Você pode ver as APIs do aplicativo e testá-las aqui. Obtenha [mais informações](https://swagger.io/tools/swagger-ui/) sobre a interface do usuário do Swagger. - -##### Autorização para a interface do usuário do Swagger - -A maioria das APIs de aplicativos requer autenticação e autorização. Se você deseja testar APIs autorizadas, vá manualmente para a `/Account/Login`página, digite `admin`como o nome de usuário e `1q2w3E*`a senha para efetuar login no aplicativo. Você também poderá executar APIs autorizadas. - -#### Execute o aplicativo angular (lado do cliente) - -Vá para a `angular`pasta, abra um terminal de linha de comando, digite o `yarn`comando (sugerimos ao gerenciador de pacotes do [yarn](https://classic.yarnpkg.com/) enquanto o npm install também funcionará na maioria dos casos): - -```bash -yarn -``` - -Depois que todos os módulos do nó estiverem carregados, execute `yarn start`ou `npm start`comando: - -```bash -yarn start -``` - -Abra seu navegador favorito e vá para `localhost:4200`URL. Nome de usuário inicial é `admin`e senha é `1q2w3E*`. - -O modelo de inicialização inclui os módulos de **gerenciamento de** **identidade** e **gerenciamento de inquilino** . Após o login, o menu Administração estará disponível, onde você poderá gerenciar **inquilinos** , **funções** , **usuários** e suas **permissões** . - -> Recomendamos o [Visual Studio Code](https://code.visualstudio.com/) como editor do projeto Angular, mas você pode usar seu editor favorito. - -### Qual é o próximo? - -- [Tutorial de desenvolvimento de aplicativos](Tutorials/Angular/Part-I.md) \ No newline at end of file diff --git a/docs/pt-BR/Getting-Started-AspNetCore-Application.md b/docs/pt-BR/Getting-Started-AspNetCore-Application.md deleted file mode 100644 index 4c5fb40ce1..0000000000 --- a/docs/pt-BR/Getting-Started-AspNetCore-Application.md +++ /dev/null @@ -1,183 +0,0 @@ -# Introdução ao ABP com o AspNet Core MVC Web Application - -Este tutorial explica como iniciar o ABP do zero com dependências mínimas. Você geralmente deseja começar com o **modelo de inicialização** . - -## Criar um novo projeto - -1. Crie um novo aplicativo da Web vazio AspNet Core Web Application no Visual Studio: - -![img](images/create-new-aspnet-core-application.png) - -1. Selecionar modelo vazio - -![img](images/select-empty-web-application.png) - -Você pode selecionar outro modelo, mas quero mostrá-lo em um projeto claro. - -## Instale o pacote Volo.Abp.AspNetCore.Mvc - -Volo.Abp.AspNetCore.Mvc é um pacote de integração do AspNet Core MVC para ABP. Então, instale-o no seu projeto: - -``` -Install-Package Volo.Abp.AspNetCore.Mvc -``` - -## Criar o primeiro módulo ABP - -O ABP é uma estrutura modular e requer uma classe de **módulo de inicialização (raiz)** derivada de `AbpModule`: - -```csharp -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp; -using Volo.Abp.AspNetCore.Modularity; -using Volo.Abp.AspNetCore.Mvc; -using Volo.Abp.Modularity; - -namespace BasicAspNetCoreApplication -{ - [DependsOn(typeof(AbpAspNetCoreMvcModule))] - public class AppModule : AbpModule - { - public override void OnApplicationInitialization(ApplicationInitializationContext context) - { - var app = context.GetApplicationBuilder(); - var env = context.GetEnvironment(); - - if (env.IsDevelopment()) - { - app.UseDeveloperExceptionPage(); - } - - app.UseMvcWithDefaultRoute(); - } - } -} -``` - -`AppModule` é um bom nome para o módulo de inicialização de um aplicativo. - -Os pacotes ABP definem as classes do módulo e um módulo pode depender de outro módulo. No código acima, nosso `AppModule` depende `AbpAspNetCoreMvcModule`(definido pelo pacote Volo.Abp.AspNetCore.Mvc). É comum adicionar um `DependsOn`atributo após a instalação de um novo pacote de nuget ABP. - -Em vez da classe Startup, estamos configurando o pipeline do ASP.NET Core nesta classe de módulo. - -## A classe de inicialização - -O próximo passo é modificar a classe Startup para integrar ao sistema do módulo ABP: - -```csharp -using System; -using Microsoft.AspNetCore.Builder; -using Microsoft.Extensions.DependencyInjection; - -namespace BasicAspNetCoreApplication -{ - public class Startup - { - public IServiceProvider ConfigureServices(IServiceCollection services) - { - services.AddApplication(); - - return services.BuildServiceProviderFromFactory(); - } - - public void Configure(IApplicationBuilder app) - { - app.InitializeApplication(); - } - } -} -``` - -`ConfigureServices` Método alterado para retornar em `IServiceProvider` vez de `void`. Essa alteração nos permite substituir a injeção de dependência do AspNet Core por outra estrutura (consulte a seção de integração com Autofac abaixo). `services.AddApplication()` adiciona todos os serviços definidos em todos os módulos a partir do `AppModule`. - -`app.InitializeApplication()`O `Configure`método call in inicializa e inicia o aplicativo. - -## Olá Mundo! - -O aplicativo acima não faz nada. Vamos criar um controlador MVC que faz algo: - -```csharp -using Microsoft.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc; - -namespace BasicAspNetCoreApplication.Controllers -{ - public class HomeController : AbpController - { - public IActionResult Index() - { - return Content("Hello World!"); - } - } -} -``` - -Se você executar o aplicativo, verá um "Olá, mundo!" mensagem na página. - -Derivado `HomeController`de em `AbpController`vez de `Controller`classe padrão . Isso não é necessário, mas a `AbpController`classe possui propriedades e métodos base úteis para facilitar seu desenvolvimento. - -## Usando Autofac como framework de injeção de dependência - -Embora o sistema de Injeção de Dependência (DI) do AspNet Core seja adequado para requisitos básicos, o Autofac fornece recursos avançados, como Injeção de Propriedade e Interceptação de Método, exigidos pela ABP para executar recursos avançados da estrutura de aplicativos. - -Substituir o sistema DI do AspNet Core pelo Autofac e integrar ao ABP é bastante fácil. - -1. Instale o pacote [Volo.Abp.Autofac](https://www.nuget.org/packages/Volo.Abp.Autofac) - -``` -Install-Package Volo.Abp.Autofac -``` - -1. Adicionar `AbpAutofacModule` dependência - -```csharp -[DependsOn(typeof(AbpAspNetCoreMvcModule))] -[DependsOn(typeof(AbpAutofacModule))] //Add dependency to ABP Autofac module -public class AppModule : AbpModule -{ - ... -} -``` - -1. Altere a `services.AddApplication();` linha na `Startup`classe, como mostrado abaixo: - -```csharp -services.AddApplication(options => -{ - options.UseAutofac(); //Integrate to Autofac -}); -``` - -1. Atualize `Program.cs` para não usar o `WebHost.CreateDefaultBuilder()` método, pois ele usa o contêiner DI padrão: - -```csharp -public class Program -{ - public static void Main(string[] args) - { - /* - https://github.com/aspnet/AspNetCore/issues/4206#issuecomment-445612167 - CurrentDirectoryHelpers exists in: \framework\src\Volo.Abp.AspNetCore.Mvc\Microsoft\AspNetCore\InProcess\CurrentDirectoryHelpers.cs - Will remove CurrentDirectoryHelpers.cs when upgrade to ASP.NET Core 3.0. - */ - CurrentDirectoryHelpers.SetCurrentDirectory(); - - BuildWebHostInternal(args).Run(); - } - - public static IWebHost BuildWebHostInternal(string[] args) => - new WebHostBuilder() - .UseKestrel() - .UseContentRoot(Directory.GetCurrentDirectory()) - .UseIIS() - .UseIISIntegration() - .UseStartup() - .Build(); -} -``` - -## Código fonte - -Obter código-fonte do projeto de exemplo criada neste tutorial a partir de [aqui](https://github.com/abpframework/abp/tree/master/samples/BasicAspNetCoreApplication) . \ No newline at end of file diff --git a/docs/pt-BR/Getting-Started-AspNetCore-MVC-Template.md b/docs/pt-BR/Getting-Started-AspNetCore-MVC-Template.md deleted file mode 100644 index 808c0bd94d..0000000000 --- a/docs/pt-BR/Getting-Started-AspNetCore-MVC-Template.md +++ /dev/null @@ -1,104 +0,0 @@ -## Introdução ao modelo ASP.NET Core MVC - -Este tutorial explica como criar um novo aplicativo Web ASP.NET Core MVC usando o modelo de inicialização, configurá-lo e executá-lo. - -### Criando um novo projeto - -Este tutorial usa o **ABP CLI** para criar um novo projeto. Consulte a página [Introdução](https://abp.io/get-started) para outras opções. - -Instale a CLI ABP usando uma janela de linha de comando, se você não tiver instalado antes: - -```bash -dotnet tool install -g Volo.Abp.Cli -``` - -Use o `abp new`comando em uma pasta vazia para criar seu projeto: - -```bash -abp new Acme.BookStore -``` - -> Você pode usar diferentes níveis de namespaces; por exemplo, BookStore, Acme.BookStore ou Acme.Retail.BookStore. - -`new` O comando cria um **aplicativo MVC em camadas** com o **Entity Framework Core** como o provedor de banco de dados. No entanto, possui opções adicionais. Consulte a [documentação](CLI.md) da [CLI](CLI.md) para todas as opções disponíveis. - -#### Pré requisitos - -A solução criada requer; - -* [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/) - -### A Estrutura da Solução - -Abra a solução no **Visual Studio** : - -![livraria-visual-studio-solução](images/bookstore-visual-studio-solution-v3.png) - -A solução possui uma estrutura em camadas (baseada no [Domain Driven Design](Domain-Driven-Design.md) ) e contém projetos de teste de unidade e integração adequadamente configurados para trabalhar com o **banco de** dados de **memória** **EF Core** e **SQLite** . - -> Consulte o [documento do modelo de aplicativo](Startup-Templates/Application.md) para entender a estrutura da solução em detalhes. - -### Cadeia de Conexão de Banco de Dados - -Verifique a **connection string** no `appsettings.json`arquivo no `.Web`projeto: - -```json -{ - "ConnectionStrings": { - "Default": "Server=localhost;Database=BookStore;Trusted_Connection=True" - } -} -``` - -A solução está configurada para usar o **Entity Framework Core** com o **MS SQL Server** . O EF Core suporta [vários](https://docs.microsoft.com/en-us/ef/core/providers/) provedores de banco de dados, para que você possa usar outro DBMS, se desejar. Mude a cadeia de conexão, se necessário. - -### Criar banco de dados e aplicar migrações de banco de dados - -Você tem duas opções para criar o banco de dados. - -#### Usando o aplicativo DbMigrator - -A solução contém um aplicativo de console (nomeado `Acme.BookStore.DbMigrator`nesta amostra) que pode criar banco de dados, aplicar migrações e propagar dados iniciais. É útil no desenvolvimento e no ambiente de produção. - -> `.DbMigrator`projeto tem o seu próprio `appsettings.json`. Portanto, se você alterou a cadeia de conexão acima, também deve alterar esta. - -Clique com o botão direito do mouse no `.DbMigrator`projeto e selecione **Definir como Projeto de Inicialização** : - -![definir como projeto de inicialização](images/set-as-startup-project.png) - -Pressione F5 (ou Ctrl + F5) para executar o aplicativo. Terá uma saída como mostrado abaixo: - -![definir como projeto de inicialização](images/db-migrator-app.png) - -#### Usando o comando EF Core Update-Database - -O Ef Core possui um `Update-Database`comando que cria banco de dados, se necessário, e aplica migrações pendentes. Clique com o botão direito do mouse no `.Web`projeto e selecione **Definir como Projeto de Inicialização** : - -![definir como projeto de inicialização](images/set-as-startup-project.png) - -Abra o **Console do Gerenciador de Pacotes** , selecione o `.EntityFrameworkCore.DbMigrations`projeto como **Projeto Padrão** e execute o `Update-Database`comando: - -![pcm-update-database](images/pcm-update-database-v2.png) - -Isso criará um novo banco de dados com base na cadeia de conexão configurada. - -> O uso da `.Migrator`ferramenta é a maneira sugerida, porque também semeia os dados iniciais para poder executar corretamente o aplicativo Web. - -### Executando o aplicativo - -Verifique se o `.Web`projeto é o projeto de inicialização. Execute o aplicativo que abrirá a página **inicial** no seu navegador: - -![livraria-homepage](images/bookstore-homepage.png) - -Clique no botão **Login** , insira `admin` como nome de usuário e `1q2w3E*` senha para acessar o aplicativo. - -O modelo de inicialização inclui os módulos de **gerenciamento de** **identidade** e **gerenciamento de inquilino** . Após o login, o menu Administração estará disponível, onde você poderá gerenciar **inquilinos** , **funções** , **usuários** e suas **permissões** . A página de gerenciamento de usuários é mostrada abaixo: - -![livraria-gerenciamento de usuários](images/bookstore-user-management-v2.png) - -### Qual é o próximo? - -- [Tutorial de desenvolvimento de aplicativos](Tutorials/AspNetCore-Mvc/Part-I.md) \ No newline at end of file diff --git a/docs/pt-BR/Getting-Started-Console-Application.md b/docs/pt-BR/Getting-Started-Console-Application.md deleted file mode 100644 index f5a0d5d5d0..0000000000 --- a/docs/pt-BR/Getting-Started-Console-Application.md +++ /dev/null @@ -1,181 +0,0 @@ -# Introdução ao ABP com aplicativo de console - -Este tutorial explica como iniciar o ABP do zero com dependências mínimas. Você geralmente deseja começar com um **modelo de inicialização** . - -## Criar um novo projeto - -Crie um novo aplicativo regular .Net Core Console do Visual Studio: - -![img](images/create-new-net-core-console-application.png) - -## Instale o pacote Volo.Abp - -Volo.Abp.Core é o pacote principal de nuget para criar aplicativos baseados em ABP. Então, instale-o no seu projeto: - -``` -Install-Package Volo.Abp.Core -``` - -## Criar o primeiro módulo ABP - -O ABP é um framework modular e requer uma classe de **módulo de inicialização (raiz)** derivada de `AbpModule`: - -```csharp -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp.Modularity; - -namespace AbpConsoleDemo -{ - public class AppModule : AbpModule - { - - } -} -``` - -`AppModule` é um bom nome para o módulo de inicialização de um aplicativo. - -## Inicializar o aplicativo - -A próxima etapa é inicializar o aplicativo usando o módulo de inicialização criado acima: - -```csharp -using System; -using Volo.Abp; - -namespace AbpConsoleDemo -{ - class Program - { - static void Main(string[] args) - { - using (var application = AbpApplicationFactory.Create()) - { - application.Initialize(); - - Console.WriteLine("Press ENTER to stop application..."); - Console.ReadLine(); - } - } - } -} -``` - -`AbpApplicationFactory`é usado para criar o aplicativo e carregar todos os módulos que tomam `AppModule`como módulo de inicialização. `Initialize()`O método inicia o aplicativo. - -## Olá Mundo! - -O aplicativo acima não faz nada. Vamos criar um serviço que faça algo: - -```csharp -using System; -using Volo.Abp.DependencyInjection; - -namespace AbpConsoleDemo -{ - public class HelloWorldService : ITransientDependency - { - public void SayHello() - { - Console.WriteLine("Hello World!"); - } - } -} -``` - -`ITransientDependency`é uma interface especial do ABP que registra automaticamente o serviço como transitório (consulte o [documento de injeção de dependência](Dependency-Injection.md) ). - -Agora, podemos resolver o problema `HelloWorldService`e dizer olá. Altere o Program.cs como mostrado abaixo: - -```csharp -using System; -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp; - -namespace AbpConsoleDemo -{ - class Program - { - static void Main(string[] args) - { - using (var application = AbpApplicationFactory.Create()) - { - application.Initialize(); - - //Resolve a service and use it - var helloWorldService = - application.ServiceProvider.GetService(); - helloWorldService.SayHello(); - - Console.WriteLine("Press ENTER to stop application..."); - Console.ReadLine(); - } - } - } -} -``` - -Embora seja suficiente para este exemplo de código simples, é sempre recomendável criar escopos no caso de resolver diretamente dependências de `IServiceProvider`(consulte a [documentação de Injeção de Dependências](Dependency-Injection.md)). - -## Usando Autofac como framework de injeção de dependência - -Embora o sistema de Injeção de Dependência (DI) do AspNet Core seja adequado para requisitos básicos, o Autofac fornece recursos avançados, como Injeção de Propriedade e Interceptação de Método, exigidos pela ABP para executar recursos avançados do framework de aplicativos. - -Substituir o sistema DI do AspNet Core pelo Autofac e integrar ao ABP é bastante fácil. - -1. Instale o pacote [Volo.Abp.Autofac](https://www.nuget.org/packages/Volo.Abp.Autofac) - -``` -Install-Package Volo.Abp.Autofac -``` - -1. Adicionar `AbpAutofacModule`dependência - -```csharp -[DependsOn(typeof(AbpAutofacModule))] //Add dependency to the AbpAutofacModule -public class AppModule : AbpModule -{ - -} -``` - -1. Mude o `Program.cs`arquivo como mostrado abaixo: - -```csharp -using System; -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp; - -namespace AbpConsoleDemo -{ - class Program - { - static void Main(string[] args) - { - using (var application = AbpApplicationFactory.Create(options => - { - options.UseAutofac(); //Autofac integration - })) - { - application.Initialize(); - - //Resolve a service and use it - var helloWorldService = - application.ServiceProvider.GetService(); - helloWorldService.SayHello(); - - Console.WriteLine("Press ENTER to stop application..."); - Console.ReadLine(); - } - } - } -} -``` - -Apenas chamado `options.UseAutofac()`método nas `AbpApplicationFactory.Create`opções. - -## Código fonte - -Obter código-fonte do projeto de exemplo criada neste tutorial a partir de [aqui](https://github.com/abpframework/abp/tree/master/samples/BasicConsoleApplication) . - - diff --git a/docs/pt-BR/Guid-Generation.md b/docs/pt-BR/Guid-Generation.md deleted file mode 100644 index 68c582348c..0000000000 --- a/docs/pt-BR/Guid-Generation.md +++ /dev/null @@ -1,3 +0,0 @@ -## Guid Generation - -Façam \ No newline at end of file diff --git a/docs/pt-BR/Index.md b/docs/pt-BR/Index.md deleted file mode 100644 index 535db6478a..0000000000 --- a/docs/pt-BR/Index.md +++ /dev/null @@ -1,31 +0,0 @@ -# Documentação ABP - -O ABP é um **framework de aplicativos de código aberto** focada no desenvolvimento de aplicativos da Web baseado no ASP.NET Core, mas também suporta o desenvolvimento de outros tipos de aplicativos. - -Explore o menu de navegação esquerdo para mergulhar fundo na documentação. - -## Status do projeto - -ABP é a **próxima geração** de framework de código aberto [ASP.NET Boilerplate](https://aspnetboilerplate.com/). Atualmente, está em fase de pré-visualização e não está pronto para uso na produção. A documentação ainda está em andamento e está longe de estar completa. - -Para aplicativos de curto prazo e em nível de produção, é sugerido o uso da estrutura do [ASP.NET Boilerplate](https://aspnetboilerplate.com/) , que possui um rico conjunto de recursos, maduro, mantido ativamente e atualizado. - -## Começando - -A maneira mais fácil de iniciar um novo projeto com o ABP é usar os modelos de inicialização: - -- [Modelo de interface do usuário do ASP.NET Core MVC (Razor Pages)](Getting-Started-AspNetCore-MVC-Template.md) -- [Modelo de interface do usuário angular](Getting-Started-Angular-Template.md) - -Se você deseja começar do zero (com um projeto vazio), instale manualmente o ABP Framework e use os seguintes tutoriais: - -- [Aplicação de console](Getting-Started-Console-Application.md) -- [Aplicativo da Web principal do ASP.NET](Getting-Started-AspNetCore-Application.md) - -## Código fonte - -ABP está hospedado no GitHub. Veja [o código fonte](https://github.com/abpframework/abp) . - -## Deseja contribuir? - -O ABP é um projeto de código aberto orientado pela comunidade. Consulte [o guia de contribuição](Contribution/Index.md) se você quiser fazer parte deste projeto. \ No newline at end of file diff --git a/docs/pt-BR/Integration-Tests.md b/docs/pt-BR/Integration-Tests.md deleted file mode 100644 index 9d2f17264c..0000000000 --- a/docs/pt-BR/Integration-Tests.md +++ /dev/null @@ -1,3 +0,0 @@ -# Integration Tests - -Façam! \ No newline at end of file diff --git a/docs/pt-BR/Local-Event-Bus.md b/docs/pt-BR/Local-Event-Bus.md deleted file mode 100644 index ff4d87d210..0000000000 --- a/docs/pt-BR/Local-Event-Bus.md +++ /dev/null @@ -1,3 +0,0 @@ -# Local Event Bus - -Façam \ No newline at end of file diff --git a/docs/pt-BR/Localization.md b/docs/pt-BR/Localization.md deleted file mode 100644 index 35b400b233..0000000000 --- a/docs/pt-BR/Localization.md +++ /dev/null @@ -1,195 +0,0 @@ -# Localização - -O sistema de localização da ABP é perfeitamente integrado ao `Microsoft.Extensions.Localization`pacote e compatível com a [documentação de localização da Microsoft](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization) . Ele adiciona alguns recursos e aprimoramentos úteis para facilitar o uso em cenários de aplicativos da vida real. - -## Pacote Volo.Abp.Localization - -> Este pacote já está instalado por padrão com o modelo de inicialização. Portanto, na maioria das vezes, você não precisa instalá-lo manualmente. - -Volo.Abp.Localization é o pacote principal do sistema de localização. Instale-o no seu projeto usando o console do gerenciador de pacotes (PMC): - -``` -Install-Package Volo.Abp.Localization -``` - -Em seguida, você pode adicionar a dependência **AbpLocalizationModule** ao seu módulo: - -```csharp -using Volo.Abp.Modularity; -using Volo.Abp.Localization; - -namespace MyCompany.MyProject -{ - [DependsOn(typeof(AbpLocalizationModule))] - public class MyModule : AbpModule - { - //... - } -} -``` - -## Criando um recurso de localização - -Um recurso de localização é usado para agrupar cadeias de localização relacionadas e separá-las de outras cadeias de localização do aplicativo. Um [módulo](Module-Development-Basics.md) geralmente define seu próprio recurso de localização. O recurso de localização é apenas uma classe simples. Exemplo: - -```csharp -public class TestResource -{ -} -``` - -Em seguida, deve ser adicionado usando `AbpLocalizationOptions`como mostrado abaixo: - -```csharp -[DependsOn(typeof(AbpLocalizationModule))] -public class MyModule : AbpModule -{ - public override void ConfigureServices(ServiceConfigurationContext context) - { - Configure(options => - { - options.FileSets.AddEmbedded(); - }); - - Configure(options => - { - //Define a new localization resource (TestResource) - options.Resources - .Add("en") - .AddVirtualJson("/Localization/Resources/Test"); - }); - } -} -``` - -Neste exemplo; - -- Adicionado um novo recurso de localização com "en" (inglês) como a cultura padrão. -- Arquivos JSON usados para armazenar as sequências de localização. -- Os arquivos JSON são incorporados ao assembly usando `AbpVirtualFileSystemOptions`(consulte [sistema de arquivos virtual](Virtual-File-System.md) ). - -Os arquivos JSON estão localizados na pasta do projeto "/ Localização / Recursos / Teste", como mostrado abaixo: - -![localization-resource-json-files](images/localization-resource-json-files.png) - -Um conteúdo do arquivo de localização JSON é mostrado abaixo: - -```json -{ - "culture": "en", - "texts": { - "HelloWorld": "Hello World!" - } -} -``` - -- Todo arquivo de localização deve definir o `culture`código para o arquivo (como "en" ou "en-US"). -- `texts` A seção contém apenas a coleção de valores-chave das sequências de localização (as chaves também podem ter espaços). - -### Nome Curto do Recurso de Localização - -Os recursos de localização também estão disponíveis no lado do cliente (JavaScript). Portanto, definir um nome abreviado para o recurso de localização facilita o uso de textos de localização. Exemplo: - -```csharp -[LocalizationResourceName("Test")] -public class TestResource -{ -} -``` - -Consulte a seção Obtendo teste localizado / lado do cliente abaixo. - -### Herdar de outros recursos - -Um recurso pode herdar de outros recursos, o que possibilita reutilizar cadeias de localização existentes sem fazer referência ao recurso existente. Exemplo: - -```csharp -[InheritResource(typeof(AbpValidationResource))] -public class TestResource -{ -} -``` - -Herança alternativa configurando o `AbpLocalizationOptions`: - -```csharp -services.Configure(options => -{ - options.Resources - .Add("en") //Define the resource by "en" default culture - .AddVirtualJson("/Localization/Resources/Test") //Add strings from virtual json files - .AddBaseTypes(typeof(AbpValidationResource)); //Inherit from an existing resource -}); -``` - -- Um recurso pode herdar de vários recursos. -- Se o novo recurso definir a mesma sequência localizada, ele substituirá a sequência. - -### Estendendo o Recurso Existente - -Herdar de um recurso cria um novo recurso sem modificar o existente. Em alguns casos, convém não criar um novo recurso, mas estender diretamente um recurso existente. Exemplo: - -```csharp -services.Configure(options => -{ - options.Resources - .Get() - .AddVirtualJson("/Localization/Resources/Test/Extensions"); -}); -``` - -- Se um arquivo de extensão define a mesma sequência localizada, ele substitui a sequência. - -## Obtendo textos localizados - -### Lado do servidor - -Obter o texto localizado no lado do servidor é bastante padrão. - -#### Uso mais simples de uma classe - -```csharp -public class MyService -{ - private readonly IStringLocalizer _localizer; - - public MyService(IStringLocalizer localizer) - { - _localizer = localizer; - } - - public void Foo() - { - var str = _localizer["HelloWorld"]; - } -} -``` - -#### Uso mais simples em uma vista / página do Razor - -```csharp -@inject IHtmlLocalizer Localizer - -

    @Localizer["HelloWorld"]

    -``` - -Consulte a [documentação de localização da Microsoft](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization) para obter detalhes sobre o uso da localização no lado do servidor. - -### Lado do Cliente - -A ABP fornece serviços JavaScript para usar os mesmos textos localizados no lado do cliente. - -Obtenha um recurso de localização: - -```js -var testResource = abp.localization.getResource('Test'); -``` - -Localize uma sequência: - -```js -var str = testResource('HelloWorld'); -``` - - - \ No newline at end of file diff --git a/docs/pt-BR/Modules/Account.md b/docs/pt-BR/Modules/Account.md deleted file mode 100644 index af1f4962db..0000000000 --- a/docs/pt-BR/Modules/Account.md +++ /dev/null @@ -1,80 +0,0 @@ -# Módulo de Conta - -O módulo de conta implementa recursos básicos de autenticação, como **login**, **registro**, **recuperação de senha** e **gerenciamento de conta**. - -Este módulo é baseado na biblioteca de identidade da Microsoft e no módulo de identidade. Ele possui integração com o IdentityServer (com base no módulo IdentityServer) e com o OpenIddict (com base no módulo OpenIddict) para fornecer autenticação avançada, controle de acesso e outros recursos avançados de autenticação. - -## Como instalar - -Este módulo já vem pré-instalado (como pacotes NuGet/NPM). Você pode continuar a usá-lo como pacote e obter atualizações facilmente, ou pode incluir seu código-fonte em sua solução (consulte o comando `get-source` da CLI) para desenvolver seu próprio módulo personalizado. - -### O código-fonte - -O código-fonte deste módulo pode ser acessado [aqui](https://github.com/abpframework/abp/tree/dev/modules/account). O código-fonte está licenciado sob a licença MIT, portanto, você pode usá-lo e personalizá-lo livremente. - -## Interface do usuário - -Esta seção apresenta as principais páginas fornecidas por este módulo. - -### Login - -A página `/Account/Login` fornece a funcionalidade de login. - -![account-module-login](../images/account-module-login.png) - -Os botões de login social/externo ficam visíveis se você configurá-los. Consulte a seção *Logins Sociais/Externos* abaixo. Os links de registro e recuperação de senha redirecionam para as páginas explicadas nas próximas seções. - -### Registro - -A página `/Account/Register` fornece a funcionalidade de registro de novo usuário. - -![account-module-register](../images/account-module-register.png) - -### Recuperação de senha e redefinição de senha - -A página `/Account/ForgotPassword` fornece uma maneira de enviar um link de redefinição de senha para o endereço de e-mail do usuário. O usuário então clica no link e define uma nova senha. - -![account-module-forgot-password](../images/account-module-forgot-password.png) - -### Gerenciamento de conta - -A página `/Account/Manage` é usada para alterar a senha e as informações pessoais do usuário. - -![account-module-manage-account](../images/account-module-manage-account.png) - -## Integração com o OpenIddict - -O pacote [Volo.Abp.Account.Web.OpenIddict](https://www.nuget.org/packages/Volo.Abp.Account.Web.OpenIddict) fornece integração com o OpenIddict. Este pacote já vem instalado com o modelo de inicialização do aplicativo. Consulte a documentação do módulo OpenIddict. - -## Integração com o IdentityServer - -O pacote [Volo.Abp.Account.Web.IdentityServer](https://www.nuget.org/packages/Volo.Abp.Account.Web.IdentityServer) fornece integração com o IdentityServer. Este pacote já vem instalado com o modelo de inicialização do aplicativo. Consulte a documentação do módulo IdentityServer. - -## Logins Sociais/Externos - -O módulo de conta já está configurado para lidar com logins sociais ou externos prontamente. Você pode seguir a documentação do ASP.NET Core para adicionar um provedor de login social/externo à sua aplicação. - -### Exemplo: Autenticação do Facebook - -Siga o documento de integração do Facebook do ASP.NET Core para oferecer suporte ao login do Facebook em sua aplicação. - -#### Adicionar o pacote NuGet - -Adicione o pacote [Microsoft.AspNetCore.Authentication.Facebook](https://www.nuget.org/packages/Microsoft.AspNetCore.Authentication.Facebook) ao seu projeto. Com base na sua arquitetura, isso pode ser feito no projeto `.Web`, `.IdentityServer` (para configuração em camadas) ou `.Host`. - -#### Configurar o provedor - -Use o método de extensão `.AddFacebook(...)` no método `ConfigureServices` do seu [módulo](../Module-Development-Basics.md) para configurar o cliente: - -````csharp -context.Services.AddAuthentication() - .AddFacebook(facebook => - { - facebook.AppId = "..."; - facebook.AppSecret = "..."; - facebook.Scope.Add("email"); - facebook.Scope.Add("public_profile"); - }); -```` - -> Seria uma prática melhor usar o `appsettings.json` ou o sistema de segredos do usuário do ASP.NET Core para armazenar suas credenciais, em vez de um valor codificado como esse. Siga o documento da Microsoft para aprender a usar os segredos do usuário. \ No newline at end of file diff --git a/docs/pt-BR/Modules/Audit-Logging.md b/docs/pt-BR/Modules/Audit-Logging.md deleted file mode 100644 index 4f7aedf82d..0000000000 --- a/docs/pt-BR/Modules/Audit-Logging.md +++ /dev/null @@ -1,60 +0,0 @@ -# Módulo de Registro de Auditoria - -O Módulo de Registro de Auditoria basicamente implementa o `IAuditingStore` para salvar os objetos de registro de auditoria em um banco de dados. - -> Este documento abrange apenas o módulo de registro de auditoria que persiste os registros de auditoria em um banco de dados. Consulte o documento [registro de auditoria](../Audit-Logging.md) para obter mais informações sobre o sistema de registro de auditoria. - -## Como Instalar - -Este módulo vem pré-instalado (como pacotes NuGet/NPM). Você pode continuar a usá-lo como pacote e obter atualizações facilmente, ou pode incluir seu código-fonte em sua solução (consulte o comando `get-source` [CLI](../CLI.md)) para desenvolver seu módulo personalizado. - -### O Código Fonte - -O código fonte deste módulo pode ser acessado [aqui](https://github.com/abpframework/abp/tree/dev/modules/audit-logging). O código fonte é licenciado com [MIT](https://choosealicense.com/licenses/mit/), então você pode usá-lo e personalizá-lo livremente. - -## Internos - -### Camada de Domínio - -#### Agregados - -- `AuditLog` (raiz do agregado): Representa um registro de log de auditoria no sistema. - - `EntityChange` (coleção): Entidades alteradas do registro de auditoria. - - `AuditLogAction` (coleção): Ações executadas do registro de auditoria. - -#### Repositórios - -Os seguintes repositórios personalizados são definidos para este módulo: - -- `IAuditLogRepository` - -### Provedores de Banco de Dados - -#### Comum - -##### Prefixo da tabela / coleção e esquema - -Todas as tabelas/coleções usam o prefixo `Abp` por padrão. Defina propriedades estáticas na classe `AbpAuditLoggingDbProperties` se você precisar alterar o prefixo da tabela ou definir um nome de esquema (se suportado pelo seu provedor de banco de dados). - -##### String de conexão - -Este módulo usa `AbpAuditLogging` como nome da string de conexão. Se você não definir uma string de conexão com esse nome, ela será usada a string de conexão `Default`. Consulte a documentação sobre [strings de conexão](https://docs.abp.io/en/abp/latest/Connection-Strings) para obter mais detalhes. - -#### Entity Framework Core - -##### Tabelas - -- **AbpAuditLogs** - - AbpAuditLogActions - - AbpEntityChanges - - AbpEntityPropertyChanges - -#### MongoDB - -##### Coleções - -- **AbpAuditLogs** - -## Veja Também - -* [Sistema de registro de auditoria](../Audit-Logging.md) \ No newline at end of file diff --git a/docs/pt-BR/Modules/Background-Jobs.md b/docs/pt-BR/Modules/Background-Jobs.md deleted file mode 100644 index 137ea84d7e..0000000000 --- a/docs/pt-BR/Modules/Background-Jobs.md +++ /dev/null @@ -1,55 +0,0 @@ -# Módulo de Tarefas em Segundo Plano - -O módulo de Tarefas em Segundo Plano implementa a interface `IBackgroundJobStore` e torna possível usar o gerenciador de tarefas em segundo plano padrão do ABP Framework. Se você não deseja usar este módulo, então você deve implementar a interface `IBackgroundJobStore` por conta própria. - -> Este documento aborda apenas o módulo de tarefas em segundo plano que persiste as tarefas em segundo plano em um banco de dados. Consulte o documento [tarefas em segundo plano](../Background-Jobs.md) para obter mais informações sobre o sistema de tarefas em segundo plano. - -## Como Instalar - -Este módulo vem pré-instalado (como pacotes NuGet/NPM). Você pode continuar a usá-lo como pacote e obter atualizações facilmente, ou pode incluir seu código-fonte em sua solução (consulte o comando `get-source` [CLI](../CLI.md)) para desenvolver seu próprio módulo personalizado. - -### O Código Fonte - -O código-fonte deste módulo pode ser acessado [aqui](https://github.com/abpframework/abp/tree/dev/modules/background-jobs). O código-fonte é licenciado com [MIT](https://choosealicense.com/licenses/mit/), então você pode usá-lo e personalizá-lo livremente. - -## Internos - -### Camada de Domínio - -#### Agregados - -- `BackgroundJobRecord` (raiz do agregado): Representa um registro de tarefa em segundo plano. - -#### Repositórios - -Os seguintes repositórios personalizados são definidos para este módulo: - -- `IBackgroundJobRepository` - -### Provedores de Banco de Dados - -#### Comum - -##### Prefixo da tabela / coleção e esquema - -Todas as tabelas/coleções usam o prefixo `Abp` por padrão. Defina propriedades estáticas na classe `BackgroundJobsDbProperties` se você precisar alterar o prefixo da tabela ou definir um nome de esquema (se suportado pelo seu provedor de banco de dados). - -##### String de conexão - -Este módulo usa `AbpBackgroundJobs` como nome da string de conexão. Se você não definir uma string de conexão com esse nome, ela será usada a string de conexão `Default`. Consulte a documentação sobre [strings de conexão](https://docs.abp.io/en/abp/latest/Connection-Strings) para obter mais detalhes. - -#### Entity Framework Core - -##### Tabelas - -- **AbpBackgroundJobs** - -#### MongoDB - -##### Coleções - -- **AbpBackgroundJobs** - -## Veja Também - -* [Sistema de tarefas em segundo plano](../Background-Jobs.md) \ No newline at end of file diff --git a/docs/pt-BR/Modules/Cms-Kit/Blogging.md b/docs/pt-BR/Modules/Cms-Kit/Blogging.md deleted file mode 100644 index 075222e1d9..0000000000 --- a/docs/pt-BR/Modules/Cms-Kit/Blogging.md +++ /dev/null @@ -1,135 +0,0 @@ -# Kit CMS: Blogging - -A funcionalidade de blogging fornece a interface necessária para gerenciar e renderizar blogs e postagens de blog. - -## Habilitando a funcionalidade de blogging - -Por padrão, as funcionalidades do Kit CMS estão desabilitadas. Portanto, você precisa habilitar as funcionalidades que deseja antes de começar a usá-lo. Você pode usar o sistema de [Global Feature](../../Global-Features.md) para habilitar/desabilitar as funcionalidades do Kit CMS durante o desenvolvimento. Alternativamente, você pode usar o [Sistema de Funcionalidades](https://docs.abp.io/en/abp/latest/Features) do ABP Framework para desabilitar uma funcionalidade do Kit CMS em tempo de execução. - -> Verifique a seção "Como instalar" da documentação do módulo Kit CMS (Index.md#how-to-install) para saber como habilitar/desabilitar as funcionalidades do Kit CMS durante o desenvolvimento. - -## Interface do usuário - -### Itens do menu - -Os seguintes itens de menu são adicionados pela funcionalidade de blogging à aplicação de administração: - -* **Blogs**: Página de gerenciamento de blogs. -* **Postagens de blog**: Página de gerenciamento de postagens de blog. - -## Páginas - -### Blogs - -A página de blogs é usada para criar e gerenciar blogs no seu sistema. - -![página-de-blogs](../../images/cmskit-module-blogs-page.png) - -Uma captura de tela do modal de criação de novo blog: - -![edição-de-blogs](../../images/cmskit-module-blogs-edit.png) - -**Slug** é a parte da URL do blog. Para este exemplo, a URL raiz do blog se torna `seu-domínio.com/blogs/blog-técnico/`. - -- Você pode alterar o slug padrão usando a constante `CmsBlogsWebConsts.BlogRoutePrefix`. Por exemplo, se você definir como `foo`, a URL raiz do blog se torna `seu-domínio.com/foo/blog-técnico/`. - - ```csharp - public override void PreConfigureServices(ServiceConfigurationContext context) - { - CmsBlogsWebConsts.BlogsRoutePrefix = "foo"; - } - ``` - -#### Funcionalidades do blog - -A funcionalidade de blog usa algumas das outras funcionalidades do Kit CMS. Você pode habilitar ou desabilitar as funcionalidades clicando na ação de funcionalidades para um blog. - -![ação-de-funcionalidades-de-blogs](../../images/cmskit-module-blogs-feature-action.png) - -Você pode selecionar/deselecionar as funcionalidades desejadas para as postagens de blog. - -![diálogo-de-funcionalidades](../../images/cmskit-module-features-dialog-2.png) - -##### Barra de navegação rápida na postagem de blog - -Se você habilitar "Barra de navegação rápida nas postagens de blog", será habilitado o índice de rolagem conforme mostrado abaixo. - -![índice-de-rolagem](../../images/cmskit-module-features-scroll-index.png) - -### Gerenciamento de postagens de blog - -Ao criar blogs, você pode gerenciar as postagens de blog nesta página. - -![página-de-postagens-de-blog](../../images/cmskit-module-blog-posts-page.png) - -Você pode criar e editar uma postagem de blog existente nesta página. Se você habilitar funcionalidades específicas, como tags, poderá definir tags para a postagem de blog nesta página. - -![edição-de-postagem-de-blog](../../images/cmskit-module-blog-post-edit.png) - -## Internos - -### Camada de domínio - -#### Agregados - -Este módulo segue o guia de [Melhores Práticas e Convenções de Entidades](https://docs.abp.io/en/abp/latest/Best-Practices/Entities). - -- `Blog` _(raiz do agregado)_: Apresenta blogs da aplicação. -- `BlogPost` _(raiz do agregado)_: Apresenta postagens de blog nos blogs. -- `BlogFeature` _(raiz do agregado)_: Apresenta o estado de habilitação/desabilitação das funcionalidades do blog, como reações, avaliações, comentários, etc. - -#### Repositórios - -Este módulo segue o guia de [Melhores Práticas e Convenções de Repositórios](https://docs.abp.io/en/abp/latest/Best-Practices/Repositories). Os seguintes repositórios são definidos para esta funcionalidade: - -- `IBlogRepository` -- `IBlogPostRepository` -- `IBlogFeatureRepository` - -#### Serviços de domínio - -Este módulo segue o guia de [Melhores Práticas e Convenções de Serviços de Domínio](https://docs.abp.io/en/abp/latest/Best-Practices/Domain-Services). - -- `BlogManager` -- `BlogPostManager` -- `BlogFeatureManager` - -### Camada de aplicação - -#### Serviços de aplicação - -##### Comum - -- `BlogFeatureAppService` _(implementa `IBlogFeatureAppService`)_ - -##### Administração - -- `BlogAdminAppService` _(implementa `IBlogAdminAppService`)_ -- `BlogFeatureAdminAppService` _(implementa `IBlogFeatureAdminAppService`)_ -- `BlogPostAdminAppService` _(implementa `IBlogPostAdminAppService`)_ - -##### Público - -- `BlogPostPublicAppService` _(implementa `IBlogPostPublicAppService`)_ - -### Provedores de banco de dados - -#### Entity Framework Core - -##### Tabelas - -- CmsBlogs -- CmsBlogPosts -- CmsBlogFeatures - -#### MongoDB - -##### Coleções - -- CmsBlogs -- CmsBlogPosts -- CmsBlogFeatures - -## Extensões de entidade - -Verifique a seção "Extensões de Entidade" da documentação do módulo Kit CMS (Index.md#entity-extensions) para saber como estender as entidades da funcionalidade de Blogging do módulo Kit CMS. \ No newline at end of file diff --git a/docs/pt-BR/Modules/Cms-Kit/Comments.md b/docs/pt-BR/Modules/Cms-Kit/Comments.md deleted file mode 100644 index b2bd1ad573..0000000000 --- a/docs/pt-BR/Modules/Cms-Kit/Comments.md +++ /dev/null @@ -1,144 +0,0 @@ -# Kit CMS: Comentários - -O Kit CMS fornece um sistema de **comentários** para adicionar a funcionalidade de comentários a qualquer tipo de recurso, como postagens de blog, produtos, etc. - -## Habilitando a funcionalidade de comentários - -Por padrão, as funcionalidades do Kit CMS estão desabilitadas. Portanto, você precisa habilitar as funcionalidades desejadas antes de começar a usá-lo. Você pode usar o sistema de [Funcionalidades Globais](../../Global-Features.md) para habilitar/desabilitar as funcionalidades do Kit CMS durante o desenvolvimento. Alternativamente, você pode usar o [Sistema de Funcionalidades](https://docs.abp.io/pt-BR/abp/latest/Features) do ABP Framework para desabilitar uma funcionalidade do Kit CMS em tempo de execução. - -> Verifique a seção ["Como instalar" da documentação do módulo Kit CMS](Index.md#como-instalar) para saber como habilitar/desabilitar as funcionalidades do Kit CMS durante o desenvolvimento. - -## Opções - -O sistema de comentários fornece um mecanismo para agrupar definições de comentários por tipos de entidade. Por exemplo, se você deseja usar o sistema de comentários para postagens de blog e produtos, você precisa definir dois tipos de entidade chamados `BlogPosts` e `Product` e adicionar comentários sob esses tipos de entidade. - -`CmsKitCommentOptions` pode ser configurado na camada de domínio, no método `ConfigureServices` do seu [módulo](https://docs.abp.io/pt-BR/abp/latest/Module-Development-Basics). Exemplo: - -```csharp -Configure(options => -{ - options.EntityTypes.Add(new CommentEntityTypeDefinition("Product")); - options.IsRecaptchaEnabled = true; //false por padrão - options.AllowedExternalUrls = new Dictionary> - { - { - "Product", - new List - { - "https://abp.io/" - } - } - }; -}); -``` - -> Se você estiver usando a [Funcionalidade de Blog](Blogging.md), o ABP Framework define automaticamente um tipo de entidade para a funcionalidade de blog. Você pode facilmente substituir ou remover os tipos de entidade predefinidos no método `Configure` como mostrado acima. - -Propriedades de `CmsKitCommentOptions`: - -- `EntityTypes`: Lista de tipos de entidade (`CmsKitCommentOptions`) definidos no sistema de comentários. -- `IsRecaptchaEnabled`: Esta flag habilita ou desabilita o reCaptcha para o sistema de comentários. Você pode defini-la como **true** se quiser usar o reCaptcha em seu sistema de comentários. -- `AllowedExternalUrls`: Indica as URLs externas permitidas por tipos de entidade, que podem ser incluídas em um comentário. Se for especificado para um determinado tipo de entidade, apenas as URLs externas especificadas serão permitidas nos comentários. - -Propriedades de `CommentEntityTypeDefinition`: - -- `EntityType`: Nome do tipo de entidade. - -## O Widget de Comentários - -O sistema de comentários fornece um [widget](../../UI/AspNetCore/Widgets.md) de comentários para permitir que os usuários enviem comentários para recursos em sites públicos. Você pode simplesmente colocar o widget em uma página como abaixo. - -```csharp -@await Component.InvokeAsync(typeof(CommentingViewComponent), new -{ - entityType = "Product", - entityId = "...", - isReadOnly = false, - referralLinks = new [] {"nofollow"} -}) -``` - -`entityType` foi explicado na seção anterior. `entityId` deve ser o id único do produto, neste exemplo. Se você tiver uma entidade Produto, você pode usar seu Id aqui. `referralLinks` é um parâmetro opcional. Você pode usar este parâmetro para adicionar valores (como "nofollow", "noreferrer" ou qualquer outro valor) aos atributos [rel](https://developer.mozilla.org/pt-BR/docs/Web/HTML/Attributes/rel) dos links. - -## Interface do Usuário - -### Itens de Menu - -Os seguintes itens de menu são adicionados pela funcionalidade de comentários à aplicação de administração: - -* **Comentários**: Abre a página de gerenciamento de comentários. - -### Páginas - -#### Gerenciamento de Comentários - -Você pode visualizar e gerenciar comentários nesta página. - -![comment-page](../../images/cmskit-module-comment-page.png) - -Você também pode visualizar e gerenciar respostas nesta página. - -![comments-detail](../../images/cmskit-module-comments-detail.png) - -## Internos - -### Camada de Domínio - -#### Agregados - -Este módulo segue o guia de [Melhores Práticas e Convenções de Entidades](https://docs.abp.io/pt-BR/abp/latest/Best-Practices/Entities). - -##### Comentário - -Um comentário representa um comentário escrito por um usuário. - -- `Comment` (raiz do agregado): Representa um comentário escrito no sistema. - -#### Repositórios - -Este módulo segue o guia de [Melhores Práticas e Convenções de Repositórios](https://docs.abp.io/pt-BR/abp/latest/Best-Practices/Repositories). - -Os seguintes repositórios personalizados são definidos para esta funcionalidade: - -- `ICommentRepository` - -#### Serviços de Domínio - -Este módulo segue o guia de [Melhores Práticas e Convenções de Serviços de Domínio](https://docs.abp.io/pt-BR/abp/latest/Best-Practices/Domain-Services). - -##### Gerenciador de Comentários - -`CommentManager` é usado para realizar algumas operações para a raiz do agregado `Comment`. - -### Camada de Aplicação - -#### Serviços de Aplicação - -- `CommentAdminAppService` (implementa `ICommentAdminAppService`): Implementa os casos de uso do sistema de gerenciamento de comentários, como listar ou remover comentários, etc. -- `CommentPublicAppService` (implementa `ICommentPublicAppService`): Implementa os casos de uso do sistema de gerenciamento de comentários em sites públicos, como listar comentários, adicionar comentários, etc. - -### Provedores de Banco de Dados - -#### Comum - -##### Prefixo de tabela / coleção e esquema - -Todas as tabelas/coleções usam o prefixo `Cms` por padrão. Defina propriedades estáticas na classe `CmsKitDbProperties` se você precisar alterar o prefixo da tabela ou definir um nome de esquema (se suportado pelo seu provedor de banco de dados). - -##### String de conexão - -Este módulo usa `CmsKit` como nome da string de conexão. Se você não definir uma string de conexão com esse nome, ela será usada a string de conexão `Default`. - -Consulte a documentação de [strings de conexão](https://docs.abp.io/pt-BR/abp/latest/Connection-Strings) para obter detalhes. - -#### Entity Framework Core - -##### Tabelas - -- CmsComments - -#### MongoDB - -##### Coleções - -- **CmsComments** \ No newline at end of file diff --git a/docs/pt-BR/Modules/Cms-Kit/Dynamic-Widget.md b/docs/pt-BR/Modules/Cms-Kit/Dynamic-Widget.md deleted file mode 100644 index 1bcb87346d..0000000000 --- a/docs/pt-BR/Modules/Cms-Kit/Dynamic-Widget.md +++ /dev/null @@ -1,137 +0,0 @@ -# Widget Dinâmico - -O kit CMS fornece um [widget](https://docs.abp.io/en/abp/latest/UI/AspNetCore/Widgets) dinâmico usado para renderizar os componentes previamente desenvolvidos pelo software no conteúdo das páginas e postagens de blog. Isso significa que você pode usar conteúdo dinâmico em conteúdo estático. Vamos mencionar como você pode fazer isso. Você tem duas opções para definir o widget no sistema: escrevendo e usando a interface do usuário. - -### Adicionando o widget -Primeiramente, mostraremos como usar o sistema de widgets escrevendo manualmente no conteúdo das páginas e postagens de blog. - -Vamos definir o componente de visualização - -```csharp -[Widget] -[ViewComponent(Name = "CmsToday")] -public class TodayViewComponent : AbpViewComponent -{ - public IViewComponentResult Invoke() - { - return View("~/ViewComponents/Today.cshtml", - new TodayViewComponent()); - } -} -``` - -```html -@model Volo.CmsKit.ViewComponents.TodayViewComponent - -

    Bem-vindo ao componente de hoje

    -

    @DateTime.Now.ToString()

    - -``` - -Agora é hora de configurar no arquivo YourModule.cs -```csharp -Configure(options => - { - options.AddWidget("Today","CmsToday"); - }); -``` - -Agora você está pronto para adicionar seu widget escrevendo. -[Widget Type="Today"] - -Após concluir as etapas acima, você pode ver a saída à direita da captura de tela abaixo. -![cmskit-without-parameter.png](../../images/cmskit-without-parameter.png) - -### Adicionando usando a interface do usuário -Agora mencionaremos a segunda opção, usando a interface do usuário. -Uma vez que escrever essas definições pode resultar em alguns erros, adicionamos um novo recurso para usar o sistema de widgets facilmente. À direita do editor, você verá o botão `W` personalizado para adicionar um widget dinâmico, como na imagem abaixo. Não se esqueça, por favor, que este é o modo de design e você precisa visualizar sua página no modo de visualização após salvar. Além disso, a guia `Preview` no editor estará pronta para verificar sua saída facilmente para configurações de widget nos recursos seguintes. - -![cms-kit-page-editor](../../images/cms-kit-page-editor.png) - -### Adicionando usando a interface do usuário com parâmetros -Vamos melhorar o exemplo acima adicionando um novo parâmetro chamado formato. Com esse recurso, podemos usar o sistema de widgets com muitos cenários diferentes, mas sem prolongar o documento. Além disso, esses exemplos podem ser expandidos com injeção de dependência e obtenção de valores do banco de dados, mas usaremos um exemplo básico. Vamos adicionar o parâmetro de formato para personalizar a data. - -```csharp -[Widget] -[ViewComponent(Name = "CmsToday")] -public class TodayViewComponent : AbpViewComponent -{ - public string Format { get; set; } - - public IViewComponentResult Invoke(string format) - { - return View("~/ViewComponents/Today.cshtml", - new TodayViewComponent() { Format = format }); - } -} -``` - -```html -@model Volo.CmsKit.ViewComponents.TodayViewComponent - -

    Bem-vindo ao componente de hoje

    -

    @DateTime.Now.ToString(Format)

    - -``` - -Vamos definir o componente de formato. -```csharp -[Widget] -[ViewComponent(Name = "Format")] -public class FormatViewComponent : AbpViewComponent -{ - public IViewComponentResult Invoke() - { - return View("~/ViewComponents/Format.cshtml", - new FormatViewModel()); - } -} - -public class FormatViewModel -{ - [DisplayName("Formate sua data no componente")] - public string Format { get; set; } -} -``` -> Nota importante: Para obter as propriedades corretamente, você deve definir a propriedade `name` na página razor ou pode usar o componente ABP. O ABP lida com isso automaticamente. - -```html -@using Volo.CmsKit.ViewComponents -@model FormatViewModel - -
    - -
    -``` - -```csharp -Configure(options => - { - options.AddWidget("Today", "CmsToday", "Format"); - }); -``` - -![cmskit-module-editor-parameter](../../images/cmskit-module-editor-parameter.png) - -Nesta imagem, após escolher seu widget (em outro caso, ele muda automaticamente de acordo com sua configuração, o meu é `Today`. Seu nome de parâmetro é `parameterWidgetName` e seu valor é `Format`) você verá o próximo widget. Insira valores de entrada ou escolha-os e clique em `Add`. Você verá a saída sublinhada no editor. À direita da imagem, você também pode ver sua saída pré-visualizada. - -Você pode editar essa saída manualmente se fizer algum código errado para isso (valor incorreto ou erro de digitação), você não verá o widget, mesmo assim, sua página será visualizada com sucesso. - -## Opções -Para configurar o widget, você deve definir o código abaixo no arquivo YourModule.cs - -```csharp -Configure(options => - { - options.AddWidget(widgetType: "Today", widgetName: "CmsToday", parameterWidgetName: "Format"); - }); -``` - -Vamos analisar esses parâmetros em detalhes -* `widgetType` é usado para o usuário final e nomes mais legíveis. A palavra em negrito a seguir representa o widgetType. -[Widget Type="**Today**" Format="yyyy-dd-mm HH:mm:ss"]. - -* `widgetName` é usado para o nome do seu widget usado no código para o nome do `ViewComponent`. - -* `parameterWidgetName` é usado no lado do componente do editor para ver no modal `Add Widget`. -Após escolher o tipo de widget na lista suspensa (agora apenas definido `Format`) e renderizar este widget automaticamente. É necessário apenas para ver a interface do usuário uma vez usando parâmetros. \ No newline at end of file diff --git a/docs/pt-BR/Modules/Cms-Kit/Global-Resources.md b/docs/pt-BR/Modules/Cms-Kit/Global-Resources.md deleted file mode 100644 index 299d00e420..0000000000 --- a/docs/pt-BR/Modules/Cms-Kit/Global-Resources.md +++ /dev/null @@ -1,72 +0,0 @@ -# CMS Kit: Recursos Globais - -O sistema de Recursos Globais do CMS Kit permite adicionar estilos e scripts globais dinamicamente. - -## Habilitando o Recurso de Recursos Globais - -Por padrão, os recursos do CMS Kit estão desabilitados. Portanto, você precisa habilitar os recursos que deseja antes de começar a usá-lo. Você pode usar o sistema de [Recursos Globais](../../Global-Features.md) para habilitar/desabilitar os recursos do CMS Kit durante o desenvolvimento. Alternativamente, você pode usar o [Sistema de Recursos](https://docs.abp.io/en/abp/latest/Features) do ABP Framework para desabilitar um recurso do CMS Kit em tempo de execução. - -> Verifique a seção "Como Instalar" da documentação do Módulo CMS Kit para saber como habilitar/desabilitar os recursos do CMS Kit durante o desenvolvimento. - -## A Interface do Usuário - -### Itens do Menu - -O módulo CMS Kit adiciona os seguintes itens ao menu principal, sob o item de menu *Recursos Globais*: - -* **Recursos Globais**: Página de gerenciamento de recursos globais. - -A classe `CmsKitAdminMenus` possui as constantes para os nomes dos itens do menu. - -### Página de Recursos Globais - -A página de Recursos Globais é usada para gerenciar estilos e scripts globais no sistema. - -![cms-kit-global-resources-page](../../images/cmskit-module-global-resources-page.png) - -# Internos - -## Camada de Domínio - -#### Agregados - -Este módulo segue o guia de [Melhores Práticas e Convenções de Entidades](https://docs.abp.io/en/abp/latest/Best-Practices/Entities). - -- `GlobalResource` (raiz do agregado): Armazena um recurso. - -#### Repositórios - -Este módulo segue o guia de [Melhores Práticas e Convenções de Repositórios](https://docs.abp.io/en/abp/latest/Best-Practices/Repositories). - -Os seguintes repositórios personalizados são definidos para este recurso: - -- `IGlobalResourceRepository` - -#### Serviços de Domínio - -Este módulo segue o guia de [Melhores Práticas e Convenções de Serviços de Domínio](https://docs.abp.io/en/abp/latest/Best-Practices/Domain-Services). - -##### Gerenciador de Recursos Globais - -`GlobalResourceManager` é usado para realizar operações para a raiz do agregado `GlobalResource`. - -### Camada de Aplicação - -#### Serviços de Aplicação - -- `GlobalResourceAdminAppService` (implementa `IGlobalResourceAdminAppService`): Implementa as operações de gerenciamento do sistema de recursos globais. -- `GlobalResourcePublicAppService` (implementa `IGlobalResourcePublicAppService`): Implementa os casos de uso públicos do sistema de recursos globais. - -#### Banco de Dados - -#### Entity Framework Core - -##### Tabelas - -- CmsGlobalResources - -#### MongoDB - -##### Coleções - -- CmsGlobalResources \ No newline at end of file diff --git a/docs/pt-BR/Modules/Cms-Kit/Index.md b/docs/pt-BR/Modules/Cms-Kit/Index.md deleted file mode 100644 index cd6908b317..0000000000 --- a/docs/pt-BR/Modules/Cms-Kit/Index.md +++ /dev/null @@ -1,143 +0,0 @@ -# Módulo CMS Kit - -Este módulo fornece recursos de CMS (Sistema de Gerenciamento de Conteúdo) para sua aplicação. Ele fornece **blocos de construção principais** e **sub-sistemas** totalmente funcionais para criar seu próprio site com recursos de CMS habilitados, ou usar os blocos de construção em seus sites com qualquer finalidade. - -> **Este módulo está atualmente disponível apenas para a interface MVC / Razor Pages**. Embora não haja um pacote oficial do Blazor, ele também pode funcionar em uma interface Blazor Server, pois uma interface Blazor Server é na verdade um aplicativo híbrido que é executado em um aplicativo ASP.NET Core MVC / Razor Pages. - -Os seguintes recursos estão atualmente disponíveis: - -* Fornece um sistema de gerenciamento de [**páginas**](Pages.md) para gerenciar páginas dinâmicas com URLs dinâmicos. -* Fornece um sistema de [**blog**](Blogging.md) para criar e publicar postagens de blog com suporte a vários blogs. -* Fornece um sistema de [**marcação**](Tags.md) para marcar qualquer tipo de recurso, como uma postagem de blog. -* Fornece um sistema de [**comentários**](Comments.md) para adicionar recursos de comentários a qualquer tipo de recurso, como postagem de blog ou uma página de avaliação de produto. -* Fornece um sistema de [**reações**](Reactions.md) para adicionar recursos de reações (emojis) a qualquer tipo de recurso, como uma postagem de blog ou um comentário. -* Fornece um sistema de [**classificação**](Ratings.md) para adicionar recursos de classificação a qualquer tipo de recurso. -* Fornece um sistema de [**menu**](Menus.md) para gerenciar menus públicos dinamicamente. -* Fornece um sistema de [**recursos globais**](Global-Resources.md) para adicionar estilos e scripts globais dinamicamente. -* Fornece um sistema de [**widget dinâmico**](Dynamic-Widget.md) para criar widgets dinâmicos para páginas e postagens de blog. - -> Você pode clicar nos links de recursos acima para entender e aprender como usá-los. - -Todos os recursos podem ser usados individualmente. Se você desabilitar um recurso, ele desaparecerá completamente de sua aplicação, inclusive das tabelas do banco de dados, com a ajuda do sistema [Recursos Globais](../../Global-Features.md). - -## Pré-requisitos - -- Este módulo depende do módulo [BlobStoring](../../Blob-Storing.md) para armazenar conteúdo de mídia. -> Certifique-se de que o módulo `BlobStoring` esteja instalado e que pelo menos um provedor esteja configurado corretamente. Para obter mais informações, consulte a [documentação](../../Blob-Storing.md). - -- O CMS Kit usa o [cache distribuído](../../Caching.md) para responder mais rapidamente. -> É altamente recomendado usar um cache distribuído, como o [Redis](../../Redis-Cache.md), para garantir a consistência dos dados em implantações distribuídas/clusterizadas. - -## Como instalar - -O [ABP CLI](../../CLI.md) permite instalar um módulo em uma solução usando o comando `add-module`. Você pode instalar o módulo CMS Kit em um terminal de linha de comando com o seguinte comando: - -```bash -abp add-module Volo.CmsKit --skip-db-migrations -``` - -> Por padrão, o Cms-Kit está desabilitado pelo `GlobalFeature`. Por causa disso, a migração inicial estará vazia. Portanto, você pode pular a migração adicionando `--skip-db-migrations` ao comando de instalação se estiver usando o Entity Framework Core. Após habilitar o recurso global Cms-Kit, adicione uma nova migração. - -Após o processo de instalação, abra a classe `GlobalFeatureConfigurator` no projeto `Domain.Shared` de sua solução e coloque o seguinte código no método `Configure` para habilitar todos os recursos no módulo CMS Kit. - -```csharp -GlobalFeatureManager.Instance.Modules.CmsKit(cmsKit => -{ - cmsKit.EnableAll(); -}); -``` - -Em vez de habilitar todos, você pode preferir habilitar os recursos um por um. O exemplo a seguir habilita apenas os recursos de [marcadores](Tags.md) e [comentários](Comments.md): - -````csharp -GlobalFeatureManager.Instance.Modules.CmsKit(cmsKit => -{ - cmsKit.Tags.Enable(); - cmsKit.Comments.Enable(); -}); -```` - -> Se você estiver usando o Entity Framework Core, não se esqueça de adicionar uma nova migração e atualizar seu banco de dados. - -## Os Pacotes - -Este módulo segue o [guia de melhores práticas para desenvolvimento de módulos](https://docs.abp.io/en/abp/latest/Best-Practices/Index) e consiste em vários pacotes NuGet e NPM. Consulte o guia se você quiser entender os pacotes e as relações entre eles. - -Os pacotes do CMS kit são projetados para vários cenários de uso. Se você verificar os [pacotes do CMS kit](https://www.nuget.org/packages?q=Volo.CmsKit), verá que alguns pacotes têm sufixos `Admin` e `Public`. A razão é que o módulo possui duas camadas de aplicação, considerando que eles podem ser usados em diferentes tipos de aplicativos. Essas camadas de aplicação usam uma única camada de domínio: - - - Os pacotes `Volo.CmsKit.Admin.*` contêm as funcionalidades necessárias para aplicativos de administração (back office). - - Os pacotes `Volo.CmsKit.Public.*` contêm as funcionalidades usadas em sites públicos onde os usuários leem postagens de blog ou deixam comentários. - - Os pacotes `Volo.CmsKit.*` (sem sufixo Admin/Public) são chamados de pacotes unificados. Os pacotes unificados são atalhos para adicionar pacotes Admin e Public (da camada relacionada) separadamente. Se você tiver um único aplicativo para administração e site público, você pode usar esses pacotes. - -## Internos - -### Prefixo de tabela / coleção e esquema - -Todas as tabelas/coleções usam o prefixo `Cms` por padrão. Defina propriedades estáticas na classe `CmsKitDbProperties` se você precisar alterar o prefixo da tabela ou definir um nome de esquema (se suportado pelo provedor de banco de dados). - -### String de conexão - -Este módulo usa `CmsKit` como nome da string de conexão. Se você não definir uma string de conexão com esse nome, ela será substituída pela string de conexão `Default`. - -Consulte a documentação sobre [strings de conexão](https://docs.abp.io/en/abp/latest/Connection-Strings) para obter mais detalhes. - -## Extensões de Entidade - -O sistema de extensão de entidade do módulo (https://docs.abp.io/en/abp/latest/Module-Entity-Extensions) é um sistema de extensão **de alto nível** que permite **definir novas propriedades** para entidades existentes dos módulos dependentes. Ele automaticamente **adiciona propriedades à entidade**, **banco de dados**, **API HTTP** e **interface do usuário** em um único ponto. - -Para estender as entidades do módulo CMS Kit, abra a classe `YourProjectNameModuleExtensionConfigurator` dentro do projeto `DomainShared` e altere o método `ConfigureExtraProperties` conforme mostrado abaixo. - -```csharp -public static void ConfigureExtraProperties() -{ - OneTimeRunner.Run(() => - { - ObjectExtensionManager.Instance.Modules() - .ConfigureCmsKit(cmsKit => - { - cmsKit.ConfigureBlog(plan => // estende a entidade Blog - { - plan.AddOrUpdateProperty( //tipo de propriedade: string - "BlogDescription", //nome da propriedade - property => { - //regras de validação - property.Attributes.Add(new RequiredAttribute()); //adiciona o atributo obrigatório à propriedade definida - - //...outras configurações para esta propriedade - } - ); - }); - - cmsKit.ConfigureBlogPost(blogPost => // estende a entidade BlogPost - { - blogPost.AddOrUpdateProperty( //tipo de propriedade: string - "BlogPostDescription", //nome da propriedade - property => { - //regras de validação - property.Attributes.Add(new RequiredAttribute()); //adiciona o atributo obrigatório à propriedade definida - property.Attributes.Add( - new StringLengthAttribute(MyConsts.MaximumDescriptionLength) { - MinimumLength = MyConsts.MinimumDescriptionLength - } - ); - - //...outras configurações para esta propriedade - } - ); - }); - }); - }); -} -``` - -* O método `ConfigureCmsKit(...)` é usado para configurar as entidades do módulo CMS Kit. - -* `cmsKit.ConfigureBlog(...)` é usado para configurar a entidade **Blog** do módulo CMS Kit. Você pode adicionar ou atualizar suas propriedades extras na entidade **Blog**. - -* `cmsKit.ConfigureBlogPost(...)` é usado para configurar a entidade **BlogPost** do módulo CMS Kit. Você pode adicionar ou atualizar suas propriedades extras na entidade **BlogPost**. - -* Você também pode definir algumas regras de validação para a propriedade que você definiu. No exemplo acima, foram adicionados `RequiredAttribute` e `StringLengthAttribute` para a propriedade chamada **"BlogPostDescription"**. - -* Quando você define a nova propriedade, ela será automaticamente adicionada à **Entidade**, **API HTTP** e **UI** para você. - * Depois de definir uma propriedade, ela aparece nos formulários de criação e atualização da entidade relacionada. - * As novas propriedades também aparecem na tabela de dados da página relacionada. \ No newline at end of file diff --git a/docs/pt-BR/Modules/Cms-Kit/Menus.md b/docs/pt-BR/Modules/Cms-Kit/Menus.md deleted file mode 100644 index 297a9ea2ff..0000000000 --- a/docs/pt-BR/Modules/Cms-Kit/Menus.md +++ /dev/null @@ -1,90 +0,0 @@ -# CMS Kit: Menus - -O sistema de menus do CMS Kit permite gerenciar menus públicos de forma dinâmica. - -## Habilitando o recurso de menu - -Por padrão, os recursos do CMS Kit estão desabilitados. Portanto, é necessário habilitar os recursos desejados antes de começar a usá-lo. Você pode usar o sistema de [Recursos Globais](../../Global-Features.md) para habilitar/desabilitar os recursos do CMS Kit durante o desenvolvimento. Alternativamente, você pode usar o [Sistema de Recursos](https://docs.abp.io/en/abp/latest/Features) do ABP Framework para desabilitar um recurso do CMS Kit em tempo de execução. - -> Verifique a seção "Como instalar" da documentação do módulo CMS Kit (Index.md#how-to-install) para saber como habilitar/desabilitar os recursos do CMS Kit durante o desenvolvimento. - -## A interface do usuário - -### Itens de menu - -O módulo CMS Kit adiciona os seguintes itens ao menu principal, sob o item de menu *CMS*: - -* **Menus**: Página de gerenciamento de menus. - -A classe `CmsKitAdminMenus` possui as constantes para os nomes dos itens de menu. - -### Menus - -#### Gerenciamento de menus - -A página de menus é usada para gerenciar menus públicos dinâmicos no sistema. - -![cms-kit-menus-page](../../images/cmskit-module-menus-page.png) - -Os itens de menu criados serão visíveis no lado público do site, como mostrado abaixo: - -![cms-kit-public-menus](../../images//cmskit-module-menus-public.png) - -## Internos - -### Camada de domínio - -#### Agregados - -Este módulo segue o guia de [Melhores Práticas e Convenções de Entidades](https://docs.abp.io/en/abp/latest/Best-Practices/Entities). - -- `MenuItem` (raiz do agregado): Um item de menu representa um único nó na árvore de menus. - -#### Repositórios - -Este módulo segue o guia de [Melhores Práticas e Convenções de Repositórios](https://docs.abp.io/en/abp/latest/Best-Practices/Repositories). - -Os seguintes repositórios personalizados são definidos para este recurso: - -- `IMenuItemRepository` - -#### Serviços de domínio - -Este módulo segue o guia de [Melhores Práticas e Convenções de Serviços de Domínio](https://docs.abp.io/en/abp/latest/Best-Practices/Domain-Services). - -##### Gerenciador de itens de menu - -`MenuItemManager` é usado para realizar algumas operações para a raiz do agregado `MenuItemManager`. - -### Camada de aplicação - -#### Serviços de aplicação - -- `MenuItemAdminAppService` (implementa `IMenuItemAdminAppService`): Implementa as operações de gerenciamento do sistema de menus. -- `MenuItemPublicAppService` (implementa `IMenuItemPublicAppService`): Implementa os casos de uso públicos do sistema de menus. - -### Provedores de banco de dados - -#### Comum - -##### Prefixo de tabela / coleção e esquema - -Todas as tabelas/coleções usam o prefixo `Cms` por padrão. Defina propriedades estáticas na classe `CmsKitDbProperties` se você precisar alterar o prefixo da tabela ou definir um nome de esquema (se suportado pelo seu provedor de banco de dados). - -##### String de conexão - -Este módulo usa `CmsKit` como nome da string de conexão. Se você não definir uma string de conexão com esse nome, ela será substituída pela string de conexão `Default`. - -Consulte a documentação sobre [strings de conexão](https://docs.abp.io/en/abp/latest/Connection-Strings) para obter mais detalhes. - -#### Entity Framework Core - -##### Tabelas - -- CmsMenuItems - -#### MongoDB - -##### Coleções - -- CmsMenuItems \ No newline at end of file diff --git a/docs/pt-BR/Modules/Cms-Kit/Pages.md b/docs/pt-BR/Modules/Cms-Kit/Pages.md deleted file mode 100644 index 1d99a9a611..0000000000 --- a/docs/pt-BR/Modules/Cms-Kit/Pages.md +++ /dev/null @@ -1,33 +0,0 @@ -# Kit CMS: Páginas - -O sistema de páginas do Kit CMS permite que você crie páginas dinâmicas especificando URLs, que é a funcionalidade fundamental de um CMS. - -## Habilitando a Funcionalidade de Páginas - -Por padrão, as funcionalidades do Kit CMS estão desabilitadas. Portanto, você precisa habilitar as funcionalidades que deseja antes de começar a usá-lo. Você pode usar o sistema de [Funcionalidades Globais](../../Global-Features.md) para habilitar/desabilitar as funcionalidades do Kit CMS durante o desenvolvimento. Alternativamente, você pode usar o [Sistema de Funcionalidades](https://docs.abp.io/en/abp/latest/Features) do ABP Framework para desabilitar uma funcionalidade do Kit CMS em tempo de execução. - -> Verifique a seção "Como Instalar" da documentação do Módulo Kit CMS (Index.md#how-to-install) para saber como habilitar/desabilitar as funcionalidades do Kit CMS durante o desenvolvimento. - -## A Interface do Usuário - -### Itens do Menu - -O módulo Kit CMS adiciona os seguintes itens ao menu principal, sob o item de menu *CMS*: - -* **Páginas**: Página de gerenciamento de páginas. - -A classe `CmsKitAdminMenus` possui as constantes para os nomes dos itens do menu. - -### Páginas - -#### Gerenciamento de Páginas - -A página **Páginas** é usada para gerenciar páginas dinâmicas no sistema. Você pode criar/editar páginas com rotas e conteúdos dinâmicos nesta página: - -![pages-edit](../../images/cmskit-module-pages-edit.png) - -Depois de criar páginas, você pode definir uma delas como página inicial. Então, sempre que alguém navegar para a página inicial do seu aplicativo, eles verão o conteúdo dinâmico da página que você definiu nesta página. - -![pages-page](../../images/cmskit-module-pages-page.png) - -Além disso, quando você cria uma página, você pode acessá-la através da URL `/{slug}`. \ No newline at end of file diff --git a/docs/pt-BR/Modules/Cms-Kit/Ratings.md b/docs/pt-BR/Modules/Cms-Kit/Ratings.md deleted file mode 100644 index 421a4c3051..0000000000 --- a/docs/pt-BR/Modules/Cms-Kit/Ratings.md +++ /dev/null @@ -1,111 +0,0 @@ -# Sistema de Avaliação - -O kit CMS fornece um sistema de **avaliação** para adicionar recursos de avaliação a qualquer tipo de recurso, como postagens de blog, comentários, etc. Aqui está como o componente de avaliação se parece em uma página de exemplo: - -![avaliações](../../images/cmskit-module-ratings.png) - -## Habilitando o Recurso de Avaliação - -Por padrão, os recursos do CMS Kit estão desabilitados. Portanto, você precisa habilitar os recursos que deseja antes de começar a usá-lo. Você pode usar o sistema de [Recurso Global](../../Global-Features.md) para habilitar/desabilitar os recursos do CMS Kit durante o desenvolvimento. Alternativamente, você pode usar o [Sistema de Recursos](https://docs.abp.io/en/abp/latest/Features) do ABP Framework para desabilitar um recurso do CMS Kit em tempo de execução. - -> Verifique a seção ["Como Instalar" da documentação do Módulo CMS Kit](Index.md#how-to-install) para ver como habilitar/desabilitar os recursos do CMS Kit durante o desenvolvimento. - -## Opções - -O sistema de avaliação fornece um mecanismo para agrupar avaliações por tipos de entidade. Por exemplo, se você deseja usar o sistema de avaliação para produtos, você precisa definir um tipo de entidade chamado `Produto` e, em seguida, adicionar avaliações sob o tipo de entidade definido. - -`CmsKitRatingOptions` pode ser configurado na camada de domínio, no método `ConfigureServices` do seu [módulo](https://docs.abp.io/en/abp/latest/Module-Development-Basics). Exemplo: - -```csharp -Configure(options => -{ - options.EntityTypes.Add(new RatingEntityTypeDefinition("Produto")); -}); -``` - -> Se você estiver usando o [Recurso de Blog](Blogging.md), o framework ABP define automaticamente um tipo de entidade para o recurso de blog. Você pode facilmente substituir ou remover os tipos de entidade predefinidos no método `Configure` como mostrado acima. - -Propriedades de `CmsKitRatingOptions`: - -- `EntityTypes`: Lista de tipos de entidade definidos (`RatingEntityTypeDefinition`) no sistema de avaliação. - -Propriedades de `RatingEntityTypeDefinition`: - -- `EntityType`: Nome do tipo de entidade. - -## O Widget de Avaliação - -O sistema de avaliação fornece um widget de avaliação para permitir que os usuários enviem avaliações para recursos em sites públicos. Você pode simplesmente colocar o widget em uma página como abaixo. - -```csharp -@await Component.InvokeAsync(typeof(RatingViewComponent), new -{ - entityType = "Produto", - entityId = "entityId", - isReadOnly = false -}) -``` - -`entityType` foi explicado na seção anterior. `entityId` deve ser o id único do produto, neste exemplo. Se você tiver uma entidade Produto, você pode usar seu Id aqui. - -# Internos - -## Camada de Domínio - -#### Agregados - -Este módulo segue o guia de [Melhores Práticas e Convenções de Entidades](https://docs.abp.io/en/abp/latest/Best-Practices/Entities). - -##### Avaliação - -Uma avaliação representa uma avaliação dada por um usuário. - -- `Avaliação` (raiz do agregado): Representa uma avaliação dada no sistema. - -#### Repositórios - -Este módulo segue o guia de [Melhores Práticas e Convenções de Repositórios](https://docs.abp.io/en/abp/latest/Best-Practices/Repositories). - -Os seguintes repositórios personalizados são definidos para este recurso: - -- `IRatingRepository` - -#### Serviços de Domínio - -Este módulo segue o guia de [Melhores Práticas e Convenções de Serviços de Domínio](https://docs.abp.io/en/abp/latest/Best-Practices/Domain-Services). - -##### Gerenciador de Reações - -`RatingManager` é usado para realizar algumas operações para a raiz do agregado `Avaliação`. - -### Camada de Aplicação - -#### Serviços de Aplicação - -- `RatingPublicAppService` (implementa `IRatingPublicAppService`): Implementa os casos de uso do sistema de avaliação. - -### Provedores de Banco de Dados - -#### Comum - -##### Prefixo da tabela / coleção e esquema - -Todas as tabelas/coleções usam o prefixo `Cms` por padrão. Defina propriedades estáticas na classe `CmsKitDbProperties` se você precisar alterar o prefixo da tabela ou definir um nome de esquema (se suportado pelo seu provedor de banco de dados). - -##### String de conexão - -Este módulo usa `CmsKit` como nome da string de conexão. Se você não definir uma string de conexão com esse nome, ela será usada a string de conexão `Default`. - -Consulte a documentação de [strings de conexão](https://docs.abp.io/en/abp/latest/Connection-Strings) para obter detalhes. - -#### Entity Framework Core - -##### Tabelas - -- CmsRatings - -#### MongoDB - -##### Coleções - -- **CmsRatings** \ No newline at end of file diff --git a/docs/pt-BR/Modules/Cms-Kit/Reactions.md b/docs/pt-BR/Modules/Cms-Kit/Reactions.md deleted file mode 100644 index 5aeedf6df0..0000000000 --- a/docs/pt-BR/Modules/Cms-Kit/Reactions.md +++ /dev/null @@ -1,126 +0,0 @@ -# Sistema de Reações - -O kit CMS fornece um sistema de **reações** para adicionar recursos de reações a qualquer tipo de recurso, como postagens de blog ou comentários. - -O componente de reação permite que os usuários reajam ao seu conteúdo por meio de ícones/emojis pré-definidos. Aqui está como o componente de reações pode parecer: - -![reactions](../../images/cmskit-module-reactions.png) - -Você também pode personalizar os ícones de reação mostrados no componente de reação. - -## Habilitando o Recurso de Reação - -Por padrão, os recursos do CMS Kit estão desabilitados. Portanto, você precisa habilitar os recursos que deseja antes de começar a usá-lo. Você pode usar o sistema de [Recurso Global](../../Global-Features.md) para habilitar/desabilitar recursos do CMS Kit durante o desenvolvimento. Alternativamente, você pode usar o [Sistema de Recursos](https://docs.abp.io/en/abp/latest/Features) do ABP Framework para desabilitar um recurso do CMS Kit em tempo de execução. - -> Verifique a seção ["Como Instalar" da documentação do Módulo CMS Kit](Index.md#how-to-install) para ver como habilitar/desabilitar recursos do CMS Kit durante o desenvolvimento. - -## Opções - -O sistema de reação fornece um mecanismo para agrupar reações por tipos de entidade. Por exemplo, se você deseja usar o sistema de reação para produtos, você precisa definir um tipo de entidade chamado `Produto` e, em seguida, adicionar reações sob o tipo de entidade definido. - -`CmsKitReactionOptions` pode ser configurado na camada de domínio, no método `ConfigureServices` do seu [módulo](https://docs.abp.io/en/abp/latest/Module-Development-Basics). Exemplo: - -```csharp -Configure(options => -{ - options.EntityTypes.Add( - new ReactionEntityTypeDefinition( - "Produto", - reactions: new[] - { - new ReactionDefinition(StandardReactions.Smile), - new ReactionDefinition(StandardReactions.ThumbsUp), - new ReactionDefinition(StandardReactions.ThumbsDown), - new ReactionDefinition(StandardReactions.Confused), - new ReactionDefinition(StandardReactions.Eyes), - new ReactionDefinition(StandardReactions.Heart) - })); -}); -``` - -> Se você estiver usando os recursos [Comentário](Comments.md) ou [Blogging](Blogging.md), o framework ABP define reações predefinidas para esses recursos automaticamente. - -Propriedades de `CmsKitReactionOptions`: - -- `EntityTypes`: Lista de tipos de entidade definidos (`CmsKitReactionOptions`) no sistema de reação. - -Propriedades de `ReactionEntityTypeDefinition`: - -- `EntityType`: Nome do tipo de entidade. -- `Reactions`: Lista de reações definidas (`ReactionDefinition`) no tipo de entidade. - -## O Widget de Reações - -O sistema de reação fornece um widget de reação para permitir que os usuários enviem reações para recursos. Você pode colocar o widget em uma página da seguinte forma: - -```csharp -@await Component.InvokeAsync(typeof(ReactionSelectionViewComponent), new -{ - entityType = "Produto", - entityId = "..." -}) -``` - -`entityType` foi explicado na seção anterior. `entityId` deve ser o id único do produto, neste exemplo. Se você tiver uma entidade Produto, pode usar seu Id aqui. - -# Internos - -## Camada de Domínio - -#### Agregados - -Este módulo segue o guia de [Melhores Práticas e Convenções de Entidades](https://docs.abp.io/en/abp/latest/Best-Practices/Entities). - -##### UserReaction - -Uma reação do usuário representa uma reação específica de um usuário. - -- `UserReaction` (raiz do agregado): Representa uma reação específica no sistema. - -#### Repositórios - -Este módulo segue o guia de [Melhores Práticas e Convenções de Repositórios](https://docs.abp.io/en/abp/latest/Best-Practices/Repositories). - -Os seguintes repositórios personalizados são definidos para este recurso: - -- `IUserReactionRepository` - -#### Serviços de Domínio - -Este módulo segue o guia de [Melhores Práticas e Convenções de Serviços de Domínio](https://docs.abp.io/en/abp/latest/Best-Practices/Domain-Services). - -##### Reaction Manager - -`ReactionManager` é usado para realizar algumas operações para a raiz do agregado `UserReaction`. - -### Camada de Aplicação - -#### Serviços de Aplicação - -- `ReactionPublicAppService` (implementa `IReactionPublicAppService`): Implementa os casos de uso do sistema de reação. - -### Provedores de Banco de Dados - -#### Comum - -##### Prefixo da tabela/collection e esquema - -Todas as tabelas/collections usam o prefixo `Cms` por padrão. Defina propriedades estáticas na classe `CmsKitDbProperties` se você precisar alterar o prefixo da tabela ou definir um nome de esquema (se suportado pelo seu provedor de banco de dados). - -##### String de conexão - -Este módulo usa `CmsKit` como nome da string de conexão. Se você não definir uma string de conexão com esse nome, ela será usada a string de conexão `Default`. - -Consulte a documentação de [strings de conexão](https://docs.abp.io/en/abp/latest/Connection-Strings) para obter detalhes. - -#### Entity Framework Core - -##### Tabelas - -- CmsUserReactions - -#### MongoDB - -##### Coleções - -- **CmsUserReactions** \ No newline at end of file diff --git a/docs/pt-BR/Modules/Cms-Kit/Tags.md b/docs/pt-BR/Modules/Cms-Kit/Tags.md deleted file mode 100644 index e4d04cc89a..0000000000 --- a/docs/pt-BR/Modules/Cms-Kit/Tags.md +++ /dev/null @@ -1,165 +0,0 @@ -# Gerenciamento de Tags - -O CMS Kit fornece um sistema de **tag** para marcar qualquer tipo de recurso, como uma postagem de blog. - -## Habilitando o recurso de Gerenciamento de Tags - -Por padrão, os recursos do CMS Kit estão desabilitados. Portanto, você precisa habilitar os recursos que deseja antes de começar a usá-lo. Você pode usar o sistema de [Recursos Globais](../../Global-Features.md) para habilitar/desabilitar os recursos do CMS Kit durante o desenvolvimento. Alternativamente, você pode usar o [Sistema de Recursos](https://docs.abp.io/en/abp/latest/Features) do ABP Framework para desabilitar um recurso do CMS Kit em tempo de execução. - -> Verifique a seção ["Como instalar" da documentação do Módulo CMS Kit](Index.md#how-to-install) para saber como habilitar/desabilitar os recursos do CMS Kit durante o desenvolvimento. - -## Opções - -O sistema de tags fornece um mecanismo para agrupar tags por tipos de entidade. Por exemplo, se você deseja usar o sistema de tags para postagens de blog e produtos, você precisa definir dois tipos de entidade chamados `BlogPosts` e `Product` e adicionar tags sob esses tipos de entidade. - -`CmsKitTagOptions` pode ser configurado na camada de domínio, no método `ConfigureServices` da sua classe [módulo](https://docs.abp.io/en/abp/latest/Module-Development-Basics). - -**Exemplo: Adicionando suporte a tags para produtos** - -```csharp -Configure(options => -{ - options.EntityTypes.Add(new TagEntityTypeDefiniton("Product")); -}); -``` - -> Se você estiver usando o [Recurso de Blogging](Blogging.md), o framework ABP define automaticamente um tipo de entidade para o recurso de blog. - -Propriedades de `CmsKitTagOptions`: - -- `EntityTypes`: Lista de tipos de entidade definidos (`TagEntityTypeDefiniton`) no sistema de tags. - -Propriedades de `TagEntityTypeDefiniton`: - -- `EntityType`: Nome do tipo de entidade. -- `DisplayName`: O nome de exibição do tipo de entidade. Você pode usar um nome de exibição amigável para mostrar a definição do tipo de entidade no site de administração. -- `CreatePolicies`: Lista de nomes de políticas/permissões que permitem aos usuários criar tags sob o tipo de entidade. -- `UpdatePolicies`: Lista de nomes de políticas/permissões que permitem aos usuários atualizar tags sob o tipo de entidade. -- `DeletePolicies`: Lista de nomes de políticas/permissões que permitem aos usuários excluir tags sob o tipo de entidade. - -## O Widget de Tag - -O sistema de tags fornece um widget de tag [widget](../../UI/AspNetCore/Widgets.md) para exibir as tags associadas a um recurso que foi configurado para tags. Você pode simplesmente colocar o widget em uma página como a abaixo: - -```csharp -@await Component.InvokeAsync(typeof(TagViewComponent), new -{ - entityType = "Product", - entityId = "...", - urlFormat = "/products?tagId={TagId}&tagName={TagName}" -}) -``` - -`entityType` foi explicado na seção anterior. Neste exemplo, o `entityId` deve ser o id único do produto. Se você tiver uma entidade `Product`, você pode usar seu Id aqui. `urlFormat` é o formato de string do URL que será gerado para cada tag. Você pode usar os espaços reservados `{TagId}` e `{TagName}` para preencher o URL. Por exemplo, o formato de URL acima preencherá URLs como `/products?tagId=1&tagName=tag1`. - -## O Widget de Tags Populares - -O sistema de tags fornece um widget de tags populares [widget](../../UI/AspNetCore/Widgets.md) para exibir tags populares de um recurso que foi configurado para tags. Você pode simplesmente colocar o widget em uma página como abaixo: - -```csharp -@await Component.InvokeAsync(typeof(PopularTagsViewComponent), new -{ - entityType = "Product", - urlFormat = "/products?tagId={TagId}&tagName={TagName}", - maxCount = 10 -}) -``` - -`entityType` foi explicado na seção anterior. `urlFormat` foi explicado na seção anterior. `maxCount` é o número máximo de tags a serem exibidas. - -## Interface do Usuário - -### Itens de Menu - -Os seguintes itens de menu são adicionados pelo recurso de tags à aplicação de administração: - -* **Tags**: Abre a página de gerenciamento de tags. - -### Páginas - -#### Gerenciamento de Tags - -Esta página pode ser usada para criar, editar e excluir tags para os tipos de entidade. - -![tags-page](../../images/cmskit-module-tags-page.png) - -Você pode criar ou editar uma tag existente nesta página. - -![tag-edit](../../images/cmskit-module-tag-edit.png) - -## Internos - -### Camada de Domínio - -#### Agregados - -Este módulo segue o guia de [Melhores Práticas e Convenções de Entidades](https://docs.abp.io/en/abp/latest/Best-Practices/Entities). - -##### Tag - -Uma tag representa uma tag sob o tipo de entidade. - -- `Tag` (raiz do agregado): Representa uma tag no sistema. - -##### EntityTag - -Uma entidade tag representa uma conexão entre a tag e a entidade marcada. - -- `EntityTag`(entidade): Representa uma conexão entre a tag e a entidade marcada. - -#### Repositórios - -Este módulo segue o guia de [Melhores Práticas e Convenções de Repositórios](https://docs.abp.io/en/abp/latest/Best-Practices/Repositories). - -Os seguintes repositórios personalizados são definidos para este recurso: - -- `ITagRepository` -- `IEntityTagRepository` - -#### Serviços de Domínio - -Este módulo segue o guia de [Melhores Práticas e Convenções de Serviços de Domínio](https://docs.abp.io/en/abp/latest/Best-Practices/Domain-Services). - -##### Gerenciador de Tags - -`TagManager` realiza algumas operações para a raiz do agregado `Tag`. - -##### Gerenciador de Entidade Tag - -`EntityTagManager` realiza algumas operações para a entidade `EntityTag`. - -### Camada de Aplicação - -#### Serviços de Aplicação - -- `TagAdminAppService` (implementa `ITagAdminAppService`). -- `EntityTagAdminAppService` (implementa `IEntityTagAdminAppService`). -- `TagAppService` (implementa `ITagAppService`). - -### Provedores de Banco de Dados - -#### Comum - -##### Prefixo de Tabela / Coleção e esquema - -Todas as tabelas/coleções usam o prefixo `Cms` por padrão. Defina propriedades estáticas na classe `CmsKitDbProperties` se você precisar alterar o prefixo da tabela ou definir um nome de esquema (se suportado pelo seu provedor de banco de dados). - -##### String de conexão - -Este módulo usa `CmsKit` como nome da string de conexão. Se você não definir uma string de conexão com esse nome, ela será usada a string de conexão `Default`. - -Consulte a documentação de [strings de conexão](https://docs.abp.io/en/abp/latest/Connection-Strings) para obter detalhes. - -#### Entity Framework Core - -##### Tabelas - -- CmsTags -- CmsEntityTags - -#### MongoDB - -##### Coleções - -- **CmsTags** -- **CmsEntityTags** \ No newline at end of file diff --git a/docs/pt-BR/Modules/Database-Tables.md b/docs/pt-BR/Modules/Database-Tables.md deleted file mode 100644 index be00f95247..0000000000 --- a/docs/pt-BR/Modules/Database-Tables.md +++ /dev/null @@ -1,577 +0,0 @@ -# Tabelas do Banco de Dados - -Esta documentação descreve todas as tabelas do banco de dados e seus propósitos. Você pode ler esta documentação para obter conhecimento geral das tabelas do banco de dados que vêm de cada módulo. - -## [Módulo de Registro de Auditoria](Audit-Logging.md) - -### AbpAuditLogs - -Esta tabela armazena informações sobre os registros de auditoria no aplicativo. Cada registro representa um log de auditoria e rastreia as ações realizadas no aplicativo. - -### AbpAuditLogActions - -Esta tabela armazena informações sobre as ações realizadas no aplicativo, que são registradas para fins de auditoria. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [AbpAuditLogs](#abpauditlogs) | Id | Vincula cada ação a um log de auditoria específico. | - -### AbpEntityChanges - -Esta tabela armazena informações sobre as alterações de entidade no aplicativo, que são registradas para fins de auditoria. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [AbpAuditLogs](#abpauditlogs) | Id | Vincula cada alteração de entidade a um log de auditoria específico. | - -### AbpEntityPropertyChanges - -Esta tabela armazena informações sobre as alterações de propriedade em entidades no aplicativo, que são registradas para fins de auditoria. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [AbpEntityChanges](#abpentitychanges) | Id | Vincula cada alteração de propriedade a uma alteração de entidade específica. | - -## [Módulo de Tarefas em Segundo Plano](Background-Jobs.md) - -### AbpBackgroundJobs - -Esta tabela armazena informações sobre as tarefas em segundo plano no aplicativo e facilita seu gerenciamento e rastreamento eficientes. Cada entrada na tabela contém detalhes de uma tarefa em segundo plano, incluindo o nome da tarefa, argumentos, contagem de tentativas, próxima tentativa, última tentativa, status abandonado e prioridade. - -## [Módulo de Gerenciamento de Inquilinos](Tenant-Management.md) - -### AbpTenants - -Esta tabela armazena informações sobre os inquilinos. Cada registro representa um inquilino e contém informações sobre o inquilino, como nome e outros detalhes. - -### AbpTenantConnectionStrings - -Esta tabela armazena informações sobre as strings de conexão do banco de dados do inquilino. Quando você define uma string de conexão para um inquilino, um novo registro será adicionado a esta tabela. Você pode consultar este banco de dados para obter strings de conexão por inquilinos. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [AbpTenants](#abptenants) | Id | A coluna `Id` na tabela `AbpTenants` é usada para associar a string de conexão do inquilino ao inquilino correspondente. | - -## Módulo de Blogging - -### BlgUsers - -Esta tabela armazena informações sobre os usuários do blog. Quando um novo usuário de identidade é criado, um novo registro será adicionado a esta tabela. - -### BlgBlogs - -Esta tabela serve para armazenar informações do blog e separar semanticamente as postagens de cada blog. - -### BlgPosts - -Esta tabela armazena informações sobre as postagens do blog. Você pode consultar esta tabela para obter postagens de blog por blogs. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [BlgBlogs](#blgblogs) | Id | Para associar a postagem do blog ao blog correspondente. | - -### BlgComments - -Esta tabela armazena informações sobre os comentários feitos nas postagens do blog. Você pode consultar esta tabela para obter comentários por postagens. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [BlgPosts](#blgposts) | Id | Vincula o comentário à postagem do blog correspondente. | -| [BlgComments](#blgcomments) | Id | Vincula o comentário ao comentário pai. | - -### BlgTags - -Esta tabela armazena informações sobre as tags. Quando uma nova tag é usada, um novo registro será adicionado a esta tabela. Você pode consultar esta tabela para obter tags por blogs. - -### BlgPostTags - -Esta tabela é usada para associar tags a postagens de blog, a fim de categorizar e organizar o conteúdo. Você pode consultar esta tabela para obter tags de postagens por postagens. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [BlgTags](#blgtags) | Id | Vincula a tag da postagem à tag correspondente. | -| [BlgPosts](#blgposts) | Id | Vincula a tag da postagem à postagem do blog correspondente. | - -## [Módulo CMS Kit](Cms-Kit/Index.md) - -### CmsUsers - -Esta tabela armazena informações sobre os usuários do módulo CMS Kit. Quando um novo usuário de identidade é criado, um novo registro será adicionado a esta tabela. - -### CmsBlogs - -Esta tabela serve para armazenar informações do blog e separar semanticamente as postagens de cada blog. - -### CmsBlogPosts - -Esta tabela armazena informações sobre as postagens do blog. Você pode consultar esta tabela para obter postagens de blog por blogs. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [CmsUsers](#cmsusers) | Id | Vincula a postagem do blog ao autor correspondente. | - -### CmsBlogFeatures - -Esta tabela armazena informações sobre os recursos do blog. Você pode consultar esta tabela para obter recursos do blog por blogs. - -### CmsComments - -Esta tabela é utilizada pelo sistema de comentários do CMS Kit para armazenar comentários feitos nas postagens do blog. Você pode consultar esta tabela para obter comentários por postagens. - -### CmsTags - -Esta tabela armazena informações sobre as tags. Quando uma nova tag é usada, um novo registro será adicionado a esta tabela. Você pode consultar esta tabela para obter tags por blogs. - -### CmsEntityTags - -Esta tabela é utilizada pelo sistema de gerenciamento de tags para armazenar tags e sua relação com várias entidades, permitindo assim a categorização e organização eficiente do conteúdo. Você pode consultar esta tabela para obter tags de entidades por entidades. - -### CmsGlobalResources - -Esta tabela é uma tabela de banco de dados para o sistema de recursos globais do CMS Kit, permitindo a adição dinâmica de estilos e scripts globais. - -### CmsMediaDescriptors - -Esta tabela é utilizada pelo módulo CMS Kit para gerenciar arquivos de mídia usando o módulo [BlobStoring](../Blob-Storing.md). - -### CmsMenuItems - -Esta tabela é usada pelo sistema de menu do CMS Kit para gerenciar e armazenar informações sobre menus públicos dinâmicos, incluindo detalhes como nomes de exibição de itens de menu, URLs e relacionamentos hierárquicos. - -### CmsPages - -Esta tabela é utilizada pelo sistema de páginas do CMS Kit para armazenar páginas dinâmicas dentro do aplicativo, incluindo informações como URLs de página, títulos e conteúdo. - -### CmsRatings - -Esta tabela é utilizada pelo sistema de classificação do CMS Kit para armazenar classificações feitas em postagens de blog. Você pode consultar esta tabela para obter classificações por postagens. - -### CmsUserReactions - -Esta tabela é utilizada pelo sistema de reações do CMS Kit para armazenar reações feitas em postagens de blog. Você pode consultar esta tabela para obter reações por postagens. - -## [Módulo de Documentação](Docs.md) - -### DocsProjects - -Esta tabela armazena informações do projeto para categorizar documentos de acordo com diferentes projetos. - -### DocsDocuments - -Esta tabela recupera o documento se ele não for encontrado no cache. A documentação está sendo atualizada quando o conteúdo é recuperado do banco de dados. - -### DocsDocumentContributors - -Esta tabela armazena informações sobre os contribuidores dos documentos. Você pode consultar esta tabela para obter contribuidores de documentos por documentos. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [DocsDocuments](#docsdocuments) | Id | Vincula o contribuidor do documento ao documento correspondente. | - -## [Módulo de Gerenciamento de Recursos](Feature-Management.md) - -### AbpFeatureGroups - -Esta tabela armazena informações sobre os grupos de recursos no aplicativo. Por exemplo, você pode agrupar todos os recursos na tabela [`AbpFeatures`](#abpfeatures) relacionados ao módulo `Identity` sob o grupo `Identity`. - -### AbpFeatures - -Esta tabela armazena informações sobre os recursos no aplicativo. Você pode usar a coluna `Name` para vincular cada recurso com seu valor de recurso correspondente na tabela [`AbpFeatureValues`](#abpfeaturevalues), para que você possa gerenciar e organizar facilmente os recursos. - -### AbpFeatureValues - -Esta tabela armazena os valores dos recursos para diferentes provedores. Você pode usar a coluna `Name` para vincular cada valor de recurso com seu recurso correspondente na tabela [`AbpFeatures`](#abpfeatures), para que você possa gerenciar e organizar facilmente os recursos. - -## [Módulo de Identidade](Identity.md) - -### AbpUsers - -Esta tabela armazena informações sobre os usuários de identidade no aplicativo. - -### AbpRoles - -Esta tabela armazena informações sobre os papéis no aplicativo. Os papéis são usados para gerenciar e controlar o acesso a diferentes partes do aplicativo, atribuindo permissões e reivindicações aos papéis e, em seguida, atribuindo esses papéis aos usuários. Esta tabela é importante para gerenciar e organizar os papéis no aplicativo e para definir os direitos de acesso dos usuários. - -### AbpClaimTypes - -Esta tabela armazena informações sobre os tipos de reivindicação usados no aplicativo. Você pode usar as colunas `Name` e `Regex` para filtrar os tipos de reivindicação por nome e padrão regex, respectivamente, para que você possa gerenciar e rastrear facilmente os tipos de reivindicação no aplicativo. - -### AbpLinkUsers - -Esta tabela é útil para vincular várias contas de usuário em diferentes inquilinos ou aplicativos a um único usuário, permitindo que eles alternem facilmente entre suas contas. - -### AbpUserClaims - -Esta tabela pode gerenciar o controle de acesso baseado em usuário, permitindo atribuir reivindicações aos usuários, que descrevem os direitos de acesso do usuário individual. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [AbpUsers](#abpusers) | Id | Vincula a reivindicação do usuário ao usuário correspondente. | - -### AbpUserLogins - -Esta tabela pode armazenar informações sobre os logins externos do usuário, como login com Facebook, Google, etc., e também pode ser usada para rastrear o histórico de login dos usuários. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [AbpUsers](#abpusers) | Id | Vincula o login do usuário ao usuário correspondente. | - -### AbpUserRoles - -Esta tabela pode gerenciar o controle de acesso baseado em usuário, permitindo atribuir papéis aos usuários, que descrevem os direitos de acesso do usuário individual. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [AbpUsers](#abpusers) | Id | Vincula o papel do usuário ao usuário correspondente. | -| [AbpRoles](#abproles) | Id | Vincula o papel do usuário ao papel correspondente. | - -### AbpUserTokens - -Esta tabela pode armazenar informações sobre tokens de atualização, tokens de acesso e outros tokens usados no aplicativo. Também pode ser usado para invalidar ou revogar tokens de usuário. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [AbpUsers](#abpusers) | Id | Vincula o token do usuário ao usuário correspondente. | - -### AbpOrganizationUnits - -Esta tabela é útil para criar e gerenciar uma estrutura hierárquica da organização, permitindo agrupar usuários e atribuir papéis com base na estrutura da organização. Você pode usar as colunas `Code` e `ParentId` para filtrar as unidades organizacionais por código e ID do pai, respectivamente, para que você possa gerenciar e rastrear facilmente as unidades organizacionais no aplicativo. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [AbpOrganizationUnits](#abporganizationunits) | ParentId | Vincula a unidade organizacional à sua unidade organizacional pai. | - -### AbpOrganizationUnitRoles - -Esta tabela é útil para gerenciar o controle de acesso baseado em função no nível das unidades organizacionais, permitindo atribuir diferentes papéis a diferentes partes da estrutura da organização. Você pode usar as colunas `OrganizationUnitId` e `RoleId` para filtrar os papéis por ID da unidade organizacional e ID do papel, respectivamente, para que você possa gerenciar e rastrear facilmente os papéis atribuídos às unidades organizacionais no aplicativo. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [AbpOrganizationUnits](#abporganizationunits) | Id | Vincula o papel da unidade organizacional à unidade organizacional correspondente. | -| [AbpRoles](#abproles) | Id | Vincula o papel da unidade organizacional ao papel correspondente. | - -### AbpUserOrganizationUnits - -Esta tabela armazena informações sobre as unidades organizacionais atribuídas aos usuários no aplicativo. Esta tabela pode gerenciar relacionamentos entre usuário e unidade organizacional e agrupar usuários com base na estrutura da organização. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [AbpUsers](#abpusers) | Id | Vincula a unidade organizacional do usuário ao usuário correspondente. | -| [AbpOrganizationUnits](#abporganizationunits) | Id | Vincula a unidade organizacional do usuário à unidade organizacional correspondente. | - -### AbpRoleClaims - -Esta tabela é útil para gerenciar o controle de acesso baseado em função, permitindo atribuir reivindicações aos papéis, que descrevem os direitos de acesso dos usuários que pertencem a esse papel. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [AbpRoles](#abproles) | Id | Vincula a reivindicação do papel ao papel correspondente. | - -### AbpSecurityLogs - -Esta tabela registra operações e alterações importantes relacionadas às contas de usuário, permitindo que os usuários salvem os logs de segurança para referência futura. - -## [Gerenciamento de Permissões](Permission-Management.md) - -### AbpPermissionGroups - -Esta tabela é importante para gerenciar e organizar as permissões no aplicativo, agrupando-as em categorias lógicas. - -### AbpPermissions - -Esta tabela é importante para gerenciar e controlar o acesso a diferentes partes do aplicativo e para definir as permissões granulares que compõem as permissões ou papéis maiores. - -### AbpPermissionGrants - -A tabela armazena e gerencia as permissões no aplicativo e mantém o controle das permissões concedidas, para quem e quando. Colunas como `Name`, `ProviderName`, `ProviderKey`, `TenantId` podem ser usadas para filtrar as permissões concedidas por nome, nome do provedor, chave do provedor e ID do inquilino, respectivamente, para que você possa gerenciar e rastrear facilmente as permissões concedidas no aplicativo. - -## [Gerenciamento de Configurações](Setting-Management.md) - -### AbpSettings - -Esta tabela armazena pares de chave-valor de configurações para o aplicativo e permite a configuração dinâmica do aplicativo sem a necessidade de recompilação. - -## [OpenIddict](OpenIddict.md) - -### OpenIddictApplications - -Esta tabela pode armazenar informações sobre as aplicações OpenID Connect, incluindo o ID do cliente, segredo do cliente, URI de redirecionamento e outras informações relevantes. Também pode ser usado para autenticar e autorizar clientes usando o protocolo OpenID Connect. - -### OpenIddictAuthorizations - -Esta tabela armazena os dados de autorização do OpenID Connect no aplicativo. Também pode ser usado para gerenciar e validar as concessões de autorização emitidas para clientes e usuários. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [OpenIddictApplications](#openiddictapplications) | Id | Vincula a autorização à aplicação correspondente. | - -### OpenIddictTokens - -Esta tabela pode armazenar informações sobre os tokens OpenID Connect, incluindo o payload do token, expiração, tipo e outras informações relevantes. Também pode ser usado para gerenciar e validar os tokens emitidos para clientes e usuários, como tokens de acesso e tokens de atualização, e controlar o acesso a recursos protegidos. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [OpenIddictApplications](#openiddictapplications) | Id | Vincula o token à aplicação correspondente. | -| [OpenIddictAuthorizations](#openiddictauthorizations) | Id | Vincula o token à autorização correspondente. | - -### OpenIddictScopes - -Esta tabela pode armazenar informações sobre os escopos OpenID Connect, incluindo o nome e a descrição do escopo. Também pode ser usado para definir as permissões ou direitos de acesso associados aos escopos, que são então usados para controlar o acesso a recursos protegidos. - -## [IdentityServer](IdentityServer.md) - -### IdentityServerApiResources - -Esta tabela pode armazenar informações sobre os recursos da API, incluindo o nome do recurso, nome de exibição, descrição e outras informações relevantes. Também pode ser usado para definir os escopos, reivindicações e propriedades associadas aos recursos da API, que são então usados para controlar o acesso a recursos protegidos. - -### IdentityServerIdentityResources - -Esta tabela pode armazenar informações sobre os recursos de identidade, incluindo o nome, nome de exibição, descrição e status habilitado. - -### IdentityServerClients - -Esta tabela pode armazenar informações sobre os clientes, incluindo o ID do cliente, nome do cliente, URI do cliente e outras informações relevantes. Também pode ser usado para definir os escopos, reivindicações e propriedades associadas aos clientes, que são então usados para controlar o acesso a recursos protegidos. - -### IdentityServerApiScopes - -Esta tabela pode armazenar informações sobre os escopos da API, incluindo o nome do escopo, nome de exibição, descrição e outras informações relevantes. Também pode ser usado para definir as reivindicações e propriedades associadas aos escopos da API, que são então usados para controlar o acesso a recursos protegidos. - -### IdentityServerApiResourceClaims - -Esta tabela pode armazenar informações sobre as reivindicações de um recurso da API, incluindo o tipo de reivindicação e o ID do recurso da API. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [IdentityServerApiResources](#identityserverapiresources) | Id | Vincula a reivindicação ao recurso da API correspondente. | - -### IdentityServerIdentityResourceClaims - -Esta tabela pode armazenar informações sobre as reivindicações de um recurso de identidade, incluindo o tipo de reivindicação e o ID do recurso de identidade. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [IdentityServerIdentityResources](#identityserveridentityresources) | Id | Vincula a reivindicação ao recurso de identidade correspondente. | - -### IdentityServerClientClaims - -Esta tabela pode armazenar informações sobre as reivindicações de um cliente, incluindo o tipo de reivindicação, valor da reivindicação e ID do cliente. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [IdentityServerClients](#identityserverclients) | Id | Vincula a reivindicação ao cliente correspondente. | - -### IdentityServerApiScopeClaims - -Esta tabela pode armazenar informações sobre as reivindicações de um escopo da API, incluindo o tipo de reivindicação e o ID do escopo da API. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [IdentityServerApiScopes](#identityserverapiscopes) | Id | Vincula a reivindicação ao escopo da API correspondente. | - -### IdentityServerApiResourceProperties - -Esta tabela pode armazenar informações sobre propriedades, incluindo a chave da propriedade e o valor, e o recurso da API associado. Essas propriedades podem armazenar metadados adicionais ou informações de configuração relacionadas aos recursos da API. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [IdentityServerApiResources](#identityserverapiresources) | Id | Vincula a propriedade ao recurso da API correspondente. | - -### IdentityServerIdentityResourceProperties - -Esta tabela pode armazenar informações sobre propriedades, incluindo a chave da propriedade e o valor, e o recurso de identidade associado. Essas propriedades podem armazenar metadados adicionais ou informações de configuração relacionadas aos recursos de identidade. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [IdentityServerIdentityResources](#identityserveridentityresources) | Id | Vincula a propriedade ao recurso de identidade correspondente. | - -### IdentityServerClientProperties - -Esta tabela pode armazenar informações sobre as propriedades de um cliente, incluindo a chave, valor e ID do cliente. Essas propriedades podem armazenar metadados adicionais ou informações de configuração relacionadas aos clientes. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [IdentityServerClients](#identityserverclients) | Id | Vincula a propriedade ao cliente correspondente. | - -### IdentityServerApiScopeProperties - -Esta tabela pode armazenar informações sobre as propriedades de um escopo da API, incluindo a chave, valor e ID do escopo da API. Essas propriedades podem armazenar metadados adicionais ou informações de configuração relacionadas aos escopos da API. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [IdentityServerApiScopes](#identityserverapiscopes) | Id | Vincula a propriedade ao escopo da API correspondente. | - -### IdentityServerApiResourceScopes - -Esta tabela pode armazenar informações sobre os escopos de um recurso da API, incluindo o nome do escopo e o ID do recurso da API. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [IdentityServerApiResources](#identityserverapiresources) | Id | Vincula o escopo ao recurso da API correspondente. | - -### IdentityServerClientScopes - -Esta tabela pode armazenar informações sobre os escopos de um cliente, incluindo o escopo e o ID do cliente. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [IdentityServerClients](#identityserverclients) | Id | Vincula o escopo ao cliente correspondente. | - -### IdentityServerApiResourceSecrets - -Esta tabela pode armazenar informações sobre os segredos de um recurso da API, incluindo o valor do segredo, data de expiração e ID do recurso da API. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [IdentityServerApiResources](#identityserverapiresources) | Id | Vincula o segredo ao recurso da API correspondente. | - -### IdentityServerClientSecrets - -Esta tabela pode armazenar informações sobre os segredos de um cliente, incluindo o valor do segredo, data de expiração e ID do cliente. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [IdentityServerClients](#identityserverclients) | Id | Vincula o segredo ao cliente correspondente. | - -### IdentityServerClientCorsOrigins - -Esta tabela pode armazenar informações sobre as origens CORS de um cliente, incluindo a origem e o ID do cliente. Também pode ser usado para gerenciar e validar as origens CORS de um cliente. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [IdentityServerClients](#identityserverclients) | Id | Vincula a origem CORS ao cliente correspondente. | - -### IdentityServerClientGrantTypes - -Esta tabela pode armazenar informações sobre os tipos de concessão de um cliente, incluindo o tipo de concessão e o ID do cliente. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [IdentityServerClients](#identityserverclients) | Id | Vincula o tipo de concessão ao cliente correspondente. | - -### IdentityServerClientIdPRestrictions - -Esta tabela pode armazenar informações sobre as restrições do provedor de identidade de um cliente, incluindo o provedor de identidade e o ID do cliente. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [IdentityServerClients](#identityserverclients) | Id | Vincula a restrição do provedor de identidade ao cliente correspondente. | - -### IdentityServerClientPostLogoutRedirectUris - -Esta tabela pode armazenar informações sobre os URIs de redirecionamento pós logout de um cliente, incluindo o URI de redirecionamento pós logout e o ID do cliente. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [IdentityServerClients](#identityserverclients) | Id | Vincula o URI de redirecionamento pós logout ao cliente correspondente. | - -### IdentityServerClientRedirectUris - -Esta tabela pode armazenar informações sobre os URIs de redirecionamento de um cliente, incluindo o URI de redirecionamento e o ID do cliente. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [IdentityServerClients](#identityserverclients) | Id | Vincula o URI de redirecionamento ao cliente correspondente. | - -### IdentityServerDeviceFlowCodes - -Esta tabela pode armazenar informações sobre os códigos de fluxo de dispositivo, incluindo o código do usuário, código do dispositivo, ID do assunto, ID do cliente, data de criação, expiração, dados e ID da sessão. - -### IdentityServerPersistedGrants - -Esta tabela pode armazenar informações sobre as concessões persistidas, incluindo a chave, tipo, ID do assunto, ID do cliente, data de criação, expiração e dados. - -## Outros - -### AbpBlobContainers - -Esta tabela é importante para fornecer uma melhor experiência do usuário, permitindo que o aplicativo suporte vários contêineres e forneça recursos específicos de BLOB. - -### AbpBlobs - -Esta tabela armazena os dados binários de BLOBs (objetos binários grandes) no aplicativo. Cada BLOB está relacionado a um contêiner na tabela [AbpBlobContainers](#abpblobcontainers), onde o nome do contêiner, ID do inquilino e outras propriedades do contêiner podem ser encontrados. - -#### Chaves Estrangeiras - -| Tabela | Coluna | Descrição | -| --- | --- | --- | -| [AbpBlobContainers](#abpblobcontainers) | Id | Vincula o BLOB ao contêiner correspondente. | - -### AbpLocalizationResources - -Esta tabela armazena os recursos de localização para o aplicativo. Esta tabela é importante para fornecer uma melhor experiência do usuário, permitindo que o aplicativo suporte vários recursos e forneça texto localizado e outros recursos específicos de localização. - -### AbpLocalizationTexts - -A tabela contém o nome do recurso, nome da cultura e um valor codificado em JSON que contém o par chave-valor do texto de localização. Ele permite o armazenamento e gerenciamento eficiente de textos de localização e permite a atualização fácil ou adição de novas traduções para recursos e culturas específicas. \ No newline at end of file diff --git a/docs/pt-BR/Modules/Docs.md b/docs/pt-BR/Modules/Docs.md deleted file mode 100644 index 32a8093ede..0000000000 --- a/docs/pt-BR/Modules/Docs.md +++ /dev/null @@ -1,675 +0,0 @@ -# Módulo de Documentação - -## O que é o Módulo de Documentação? - -O módulo de documentação é um módulo de aplicação para o framework ABP. Ele simplifica a documentação de software. Este módulo é gratuito e de código aberto. - -### Integração - -Atualmente, o módulo de documentação permite que você armazene sua documentação tanto no GitHub quanto no sistema de arquivos. - -### Hospedagem - -O módulo de documentação é um módulo de aplicação e não oferece nenhuma solução de hospedagem. Você pode hospedar sua documentação localmente ou na nuvem. - -### Versionamento - -Quando você usa o GitHub para armazenar sua documentação, o módulo de documentação suporta o versionamento. Se você tiver várias versões para sua documentação, haverá uma caixa de seleção na interface do usuário para alternar entre as versões. Se você escolher o sistema de arquivos para armazenar sua documentação, ele não suportará várias versões. - -[Os documentos](https://docs.abp.io/) para o framework ABP também estão usando este módulo. - -> O módulo de documentação segue as melhores práticas de arquitetura de módulos. - -## Instalação - -Este documento aborda o provedor `Entity Framework Core`, mas você também pode selecionar o `MongoDB` como seu provedor de banco de dados. - -### 1- Criando uma aplicação - -Se você não tiver um projeto ABP existente, você pode gerar um comando CLI a partir da página de início do site abp.io e executá-lo ou executar o comando abaixo: - -```bash -abp new Acme.MyProject -``` - -### 2- Executando a aplicação vazia - -Após baixar o projeto, extraia o arquivo ZIP e abra `Acme.MyProject.sln`. Você verá que a solução consiste nos projetos `Application`, `Application.Contracts`, `DbMigrator`, `Domain`, `Domain.Shared`, `EntityFrameworkCore`, `HttpApi`, `HttpApi.Client` e `Web`. Clique com o botão direito no projeto `Acme.MyProject.Web` e selecione **Definir como Projeto de Inicialização**. - -![Criar um novo projeto](../images/docs-module_solution-explorer.png) - -A string de conexão do banco de dados está localizada em `appsettings.json` do seu projeto `Acme.MyProject.Web`. Se você tiver uma configuração de banco de dados diferente, altere a string de conexão. - -```json -{ - "ConnectionStrings": { - "Default": "Server=(LocalDb)\\MSSQLLocalDB;Database=MyProject;Trusted_Connection=True" - } -} -``` - -Execute o projeto `Acme.MyProject.DbMigrator`, ele será responsável por aplicar a migração do banco de dados e os dados iniciais. O banco de dados `MyProject` será criado em seu servidor de banco de dados. - -Agora um projeto ABP vazio foi criado! Agora você pode executar seu projeto e ver o site vazio. - -Para fazer login no seu site, digite `admin` como nome de usuário e `1q2w3E*` como senha. - -### 3- Instalação do Módulo - -Os pacotes do módulo de documentação estão hospedados no NuGet. Existem 4 pacotes que precisam ser instalados em sua aplicação. Cada pacote deve ser instalado no projeto relevante. - -#### 3.1- Usando o ABP CLI - -É recomendado usar o ABP CLI para instalar o módulo. Abra a janela do CMD no diretório do arquivo de solução (`.sln`) e execute o seguinte comando: - -```bash -abp add-module Volo.Docs -``` - -#### 3.2- Instalação manual - -Ou você também pode instalar manualmente o pacote NuGet em cada projeto: - -* Instale o pacote NuGet [Volo.Docs.Domain](https://www.nuget.org/packages/Volo.Docs.Domain/) no projeto `Acme.MyProject.Domain`. - - ```bash - Install-Package Volo.Docs.Domain - ``` - -* Instale o pacote NuGet [Volo.Docs.EntityFrameworkCore](https://www.nuget.org/packages/Volo.Docs.EntityFrameworkCore/) no projeto `Acme.MyProject.EntityFrameworkCore`. - - ```bash - Install-Package Volo.Docs.EntityFrameworkCore - ``` - -* Instale o pacote NuGet [Volo.Docs.Application](https://www.nuget.org/packages/Volo.Docs.Application/) no projeto `Acme.MyProject.Application`. - - ```bash - Install-Package Volo.Docs.Application - ``` - -* Instale o pacote NuGet [Volo.Docs.Web](https://www.nuget.org/packages/Volo.Docs.Domain/) no projeto `Acme.MyProject.Web`. - - ```bash - Install-Package Volo.Docs.Web - ``` - -##### 3.2.1- Adicionando Dependências de Módulo - -Um módulo ABP deve declarar o atributo `[DependsOn]` se tiver uma dependência de outro módulo. Cada módulo deve ser adicionado no atributo `[DependsOn]` do projeto relevante. - -* Abra `MyProjectDomainModule.cs` e adicione `typeof(DocsDomainModule)` como mostrado abaixo; - - ```csharp - [DependsOn( - typeof(DocsDomainModule), - typeof(AbpIdentityDomainModule), - typeof(AbpAuditingModule), - typeof(BackgroundJobsDomainModule), - typeof(AbpAuditLoggingDomainModule) - )] - public class MyProjectDomainModule : AbpModule - { - //... - } - ``` - -* Abra `MyProjectEntityFrameworkCoreModule.cs` e adicione `typeof(DocsEntityFrameworkCoreModule)` como mostrado abaixo; - - ```csharp - [DependsOn( - typeof(DocsEntityFrameworkCoreModule), - typeof(MyProjectDomainModule), - typeof(AbpIdentityEntityFrameworkCoreModule), - typeof(AbpPermissionManagementEntityFrameworkCoreModule), - typeof(AbpSettingManagementEntityFrameworkCoreModule), - typeof(AbpEntityFrameworkCoreSqlServerModule), - typeof(BackgroundJobsEntityFrameworkCoreModule), - typeof(AbpAuditLoggingEntityFrameworkCoreModule) - )] - public class MyProjectEntityFrameworkCoreModule : AbpModule - { - //... - } - ``` - -* Abra `MyProjectApplicationModule.cs` e adicione `typeof(DocsApplicationModule)` como mostrado abaixo; - - ```csharp - [DependsOn( - typeof(DocsApplicationModule), - typeof(MyProjectDomainModule), - typeof(AbpIdentityApplicationModule))] - public class MyProjectApplicationModule : AbpModule - { - public override void ConfigureServices(ServiceConfigurationContext context) - { - Configure(options => - { - options.DefinitionProviders.Add(); - }); - - Configure(options => - { - options.AddProfile(); - }); - } - } - ``` - -* Abra `MyProjectWebModule.cs` e adicione `typeof(DocsWebModule)` como mostrado abaixo; - - ```csharp - [DependsOn( - typeof(DocsWebModule), - typeof(MyProjectApplicationModule), - typeof(MyProjectEntityFrameworkCoreModule), - typeof(AbpAutofacModule), - typeof(AbpIdentityWebModule), - typeof(AbpAccountWebModule), - typeof(AbpAspNetCoreMvcUiBasicThemeModule) - )] - public class MyProjectWebModule : AbpModule - { - //... - } - ``` - -##### 3.2.2- Adicionando Pacote NPM - -Abra `package.json` e adicione `@abp/docs": "^5.0.0` como mostrado abaixo: - - ```json - { - "version": "1.0.0", - "name": "my-app", - "private": true, - "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0", - "@abp/docs": "^5.0.0" - } - } - ``` - -Em seguida, abra o terminal de linha de comando na pasta do projeto `Acme.MyProject.Web` e execute o seguinte comando: - -````bash -abp install-libs -```` - -### 4- Integração com o Banco de Dados - -#### 4.1- Integração com o Entity Framework - -Se você escolher o Entity Framework como seu provedor de banco de dados, precisará configurar o módulo de documentação. Para fazer isso; - -- Abra `MyProjectMigrationsDbContext.cs` e adicione `builder.ConfigureDocs()` ao `OnModelCreating()`. - - ```csharp - public class MyProjectMigrationsDbContext : AbpDbContext - { - public MyProjectMigrationsDbContext(DbContextOptions options) - : base(options) - { - - } - - protected override void OnModelCreating(ModelBuilder builder) - { - base.OnModelCreating(builder); - - /* Inclua módulos no contexto de migração do banco de dados */ - - builder.ConfigurePermissionManagement(); - builder.ConfigureSettingManagement(); - builder.ConfigureBackgroundJobs(); - builder.ConfigureAuditLogging(); - builder.ConfigureIdentity(); - builder.ConfigureIdentityServer(); - builder.ConfigureFeatureManagement(); - builder.ConfigureTenantManagement(); - builder.ConfigureDocs(); //Adicione esta linha para configurar o módulo de documentação - - /* Configure personalizações para entidades dos módulos incluídos */ - - builder.Entity(b => - { - b.ConfigureCustomUserProperties(); - }); - - /* Configure suas próprias tabelas/entidades dentro do método ConfigureMyProject */ - - builder.ConfigureMyProject(); - } - } - ``` - -* Abra o `Console do Gerenciador de Pacotes` no `Visual Studio` e escolha `Acme.MyProject.EntityFrameworkCore` como projeto padrão. Em seguida, escreva o comando abaixo para adicionar a migração para o módulo de documentação. - - ```csharp - add-migration Added_Docs_Module - ``` - - Quando o comando for executado com sucesso, você verá um novo arquivo de migração chamado `20181221111621_Added_Docs_Module` na pasta `Acme.MyProject.EntityFrameworkCore\Migrations`. - - Agora, atualize o banco de dados para as alterações do módulo de documentação. Para fazer isso, execute o código abaixo no `Console do Gerenciador de Pacotes` no `Visual Studio`. Certifique-se de que `Acme.MyProject.EntityFrameworkCore` ainda é o projeto padrão. - - ```csharp - update-database - ``` - - Por fim, você pode verificar seu banco de dados para ver as tabelas recém-criadas. Por exemplo, você pode ver a tabela `DocsProjects` adicionada ao seu banco de dados. - -### 5- Vinculando o Módulo de Documentação - -A rota padrão para o módulo de documentação é; - -```txt -/Documents -``` - -Para adicionar o link do módulo de documentação ao menu de sua aplicação; - -* Abra `MyProjectMenuContributor.cs` e adicione a linha abaixo ao método `ConfigureMainMenuAsync()`. - - ```csharp - context.Menu.Items.Add(new ApplicationMenuItem("MyProject.Docs", l["Menu:Docs"], "/Documents")); - ``` - - A aparência final de **MyProjectMenuContributor.cs** - - ```csharp - private async Task ConfigureMainMenuAsync(MenuConfigurationContext context) - { - var l = context.ServiceProvider.GetRequiredService>(); - - context.Menu.Items.Insert(0, new ApplicationMenuItem("MyProject.Home", l["Menu:Home"], "/")); - - context.Menu.Items.Add(new ApplicationMenuItem("MyProject.Docs", l["Menu:Docs"], "/Documents")); - } - ``` - -A palavra-chave `Menu:Docs` é uma chave de localização. Para localizar o texto do menu, abra `Localization\MyProject\en.json` no projeto `Acme.MyProject.Domain`. E adicione a linha abaixo - -```json -"Menu:Docs": "Documentos" -``` - -A aparência final de **en.json** - -```json -{ - "culture": "en", - "texts": { - "Menu:Home": "Início", - "Welcome": "Bem-vindo", - "LongWelcomeMessage": "Bem-vindo à aplicação. Este é um projeto inicial baseado no framework ABP. Para obter mais informações, visite abp.io.", - "Menu:Docs": "Documentos" - } -} -``` - -O novo item de menu para o Módulo de Documentação foi adicionado ao menu. Execute sua aplicação web e acesse a URL `http://localhost:YOUR_PORT_NUMBER/documents`. - -Você verá um aviso que diz; - -```txt -Ainda não há projetos! -``` - -Como ainda não adicionamos nenhum projeto, este aviso é normal. - -### 6- Adicionando um Novo Projeto de Documentação - -Abra `DocsProjects` em seu banco de dados e insira um novo registro com as seguintes informações de campo; - -* **Name**: O nome de exibição do nome do documento que será mostrado na página da web. -* **ShortName**: Um nome curto e amigável para URL que será usado na URL de seus documentos. -* **Format**: O formato do documento (para Markdown: `md`, para HTML: `html`) -* **DefaultDocumentName**: O documento para a página inicial. -* **NavigationDocumentName**: O documento a ser usado para o menu de navegação (Índice). -* **MinimumVersion**: A versão mínima para mostrar os documentos. As versões abaixo não serão listadas. -* **DocumentStoreType**: A fonte dos documentos (para GitHub:`GitHub`, para sistema de arquivos`FileSystem`) -* **ExtraProperties**: Um JSON serializado que armazena configurações especiais para o `DocumentStoreType` selecionado. -* **MainWebsiteUrl**: A URL para quando o usuário clicar no logotipo da página do módulo de documentação. Você pode simplesmente definir como `/` para vincular ao endereço raiz do seu site. -* **LatestVersionBranchName**: Esta é uma configuração para o GitHub. É o nome do branch que será usado para recuperar os documentos. Você pode definir como `master`. - -#### Exemplo de Registro de Projeto para "GitHub" - -Você pode usar a documentação do [ABP Framework](https://github.com/abpframework/abp/) no GitHub para configurar seu repositório de documentos do GitHub. - -- Name: `ABP framework (GitHub)` - -- ShortName: `abp` - -- Format: `md` - -- DefaultDocumentName: `Index` - -- NavigationDocumentName: `docs-nav.json` - -- MinimumVersion: `` (sem versão mínima) - -- DocumentStoreType: `GitHub` - -- ExtraProperties: - - ```json - {"GitHubRootUrl":"https://github.com/abpframework/abp/tree/{version}/docs","GitHubAccessToken":"***","GitHubUserAgent":""} - ``` - - Observe que `GitHubAccessToken` está mascarado com `***`. É um token privado que você deve obter do GitHub. Consulte https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/ - -- MainWebsiteUrl: `/` - -- LatestVersionBranchName: `dev` - -Para bancos de dados `SQL`, você pode usar o comando `T-SQL` abaixo para inserir o exemplo especificado em sua tabela `DocsProjects`: - -```mssql -INSERT [dbo].[DocsProjects] ([Id], [Name], [ShortName], [Format], [DefaultDocumentName], [NavigationDocumentName], [MinimumVersion], [DocumentStoreType], [ExtraProperties], [MainWebsiteUrl], [LatestVersionBranchName], [ParametersDocumentName], [ConcurrencyStamp]) VALUES (N'12f21123-e08e-4f15-bedb-ae0b2d939659', N'ABP framework (FileSystem)', N'abp', N'md', N'Index', N'docs-nav.json', NULL, N'FileSystem', N'{"Path":"C:\\Github\\abp\\docs"}', N'/', NULL, N'', N'12f21123e08e4f15bedbae0b2d939659') -``` - -Esteja ciente de que `GitHubAccessToken` está mascarado. É um token privado e você deve obter seu próprio token e substituir a string `***`. - -Agora você pode executar a aplicação e navegar até `/Documents`. - -#### Exemplo de Registro de Projeto para "FileSystem" - -Você pode usar a documentação do [ABP Framework](https://github.com/abpframework/abp/) no GitHub para configurar seu repositório de documentos do GitHub. - -- Name: `ABP framework (FileSystem)` - -- ShortName: `abp` - -- Format: `md` - -- DefaultDocumentName: `Index` - -- NavigationDocumentName: `docs-nav.json` - -- MinimumVersion: `` (sem versão mínima) - -- DocumentStoreType: `FileSystem` - -- ExtraProperties: - - ```json - {"Path":"C:\\Github\\abp\\docs"} - ``` - - Observe que `Path` deve ser substituído pelo diretório de documentos local. Você pode obter a documentação do ABP Framework em https://github.com/abpframework/abp/tree/master/docs e copiar para o diretório `C:\\Github\\abp\\docs` para que funcione. - -- MainWebsiteUrl: `/` - -- LatestVersionBranchName: `` - -Para bancos de dados `SQL`, você pode usar o comando `T-SQL` abaixo para inserir o exemplo especificado em sua tabela `DocsProjects`: - -```mssql -INSERT [dbo].[DocsProjects] ([Id], [Name], [ShortName], [Format], [DefaultDocumentName], [NavigationDocumentName], [MinimumVersion], [DocumentStoreType], [ExtraProperties], [MainWebsiteUrl], [LatestVersionBranchName], [ParametersDocumentName]) VALUES (N'12f21123-e08e-4f15-bedb-ae0b2d939659', N'ABP framework (FileSystem)', N'abp', N'md', N'Index', N'docs-nav.json', NULL, N'FileSystem', N'{"Path":"C:\\Github\\abp\\docs"}', N'/', NULL, N'') -``` - -Adicione um dos projetos de exemplo acima e execute a aplicação. No menu, você verá o link `Documentos`, clique no link do menu para abrir a página de documentos. - -Até agora, criamos um novo aplicativo a partir do site abp.io e o preparamos para o módulo de documentação. - -### 7- Criando um Novo Documento - -No exemplo de registros de projeto, você vê que o `Format` é especificado como `md`, que se refere ao [Mark Down](https://en.wikipedia.org/wiki/Markdown). Você pode ver o guia de referência do mark down seguindo o link abaixo; - -https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet - -O módulo de documentação do ABP pode renderizar mark down para HTML. - -Agora vamos dar uma olhada em um exemplo de documento em formato mark down. - -~~~markdown -# Este é um cabeçalho - -Bem-vindo ao Módulo de Documentação. - -## Este é um subcabeçalho - - [Este é um link](https://abp.io) - -![Esta é uma imagem](https://abp.io/assets/my-image.png) - -## Este é um bloco de código - -```csharp -public class Person -{ - public string Name { get; set; } - - public string Address { get; set; } -} -``` -~~~ - -Como exemplo, você pode ver a documentação do ABP Framework: - -[https://github.com/abpframework/abp/blob/master/docs/en/](https://github.com/abpframework/abp/blob/master/docs/en/) - -#### Recurso de seções condicionais (Usando Scriban) - -O módulo de documentação usa o [Scriban](https://github.com/lunet-io/scriban/tree/master/doc) para mostrar ou ocultar algumas partes de um documento de forma condicional. Para usar esse recurso, você deve criar um arquivo JSON como **documento de parâmetros** para cada idioma. Ele conterá todas as chaves-valores, bem como seus nomes de exibição. - -Por exemplo, [en/docs-params.json](https://github.com/abpio/abp-commercial-docs/blob/master/en/docs-params.json): - -```json -{ - "parameters": [{ - "name": "UI", - "displayName": "UI", - "values": { - "MVC": "MVC / Razor Pages", - "NG": "Angular" - } - }, - { - "name": "DB", - "displayName": "Database", - "values": { - "EF": "Entity Framework Core", - "Mongo": "MongoDB" - } - }, - { - "name": "Tiered", - "displayName": "Tiered", - "values": { - "No": "Not Tiered", - "Yes": "Tiered" - } - }] -} -``` - -Como nem todos os documentos de seus projetos podem ter seções ou precisar de todos esses parâmetros, você deve declarar quais desses parâmetros serão usados para dividir o documento, como um bloco JSON em qualquer lugar do documento. - -Por exemplo [Getting-Started.md](https://github.com/abpio/abp-commercial-docs/blob/master/en/getting-started.md): - -``` -..... - -​```json -//[doc-params] -{ - "UI": ["MVC","NG"], - "DB": ["EF", "Mongo"], - "Tiered": ["Yes", "No"] -} -​``` - -........ -``` - -Esta seção será excluída automaticamente durante a renderização. E, é claro, essas chaves de valores devem corresponder às do **documento de parâmetros**. - -![Interface](../images/docs-section-ui.png) - -Agora você pode usar a sintaxe do **Scriban** para criar seções em seu documento. - -Por exemplo: - -```` -{{ if UI == "NG" }} - -* O argumento `-u` especifica o framework de IU, `angular` neste caso. - -{{ end }} - -{{ if DB == "Mongo" }} - -* O argumento `-d` especifica o provedor de banco de dados, `mongodb` neste caso. - -{{ end }} - -{{ if Tiered == "Yes" }} - -* O argumento `--tiered` é usado para criar uma solução em camadas em que o servidor de autenticação, as camadas de IU e API são fisicamente separadas. - -{{ end }} - -```` - -Você também pode usar variáveis em um texto, adicionando o sufixo **_Value** à sua chave: - -```txt -Este documento pressupõe que você prefere usar **{{ UI_Value }}** como o framework de IU e **{{ DB_Value }}** como o provedor de banco de dados. -``` - -Além disso, as chaves **Document_Language_Code** e **Document_Version** são predefinidas se você quiser obter o código do idioma ou a versão do documento atual (isso pode ser útil para criar links que redirecionam para outro sistema de documentação em outro domínio). - ------- - -**AVISO IMPORTANTE**: O Scriban usa "{{" e "}}" para a sintaxe. Portanto, você deve usar blocos de escape se for usá-los em seu documento (um documento Angular, por exemplo). Consulte a [documentação do Scriban](https://github.com/lunet-io/scriban/blob/master/doc/language.md#13-escape-block) para obter mais informações. - -### 8- Criando o Documento de Navegação - -O documento de navegação é o menu principal da página de documentos. Ele está localizado no lado esquerdo da página. É um arquivo `JSON`. Dê uma olhada no exemplo de documento de navegação abaixo para entender a estrutura. - -```json -{ - "items":[ - { - "text":"Item de Menu de Exemplo - 1", - "items":[ - { - "text":"Item de Menu de Exemplo - 1.1", - "items":[ - { - "text":"Item de Menu de Exemplo - 1.1.1", - "path":"SampleMenuItem_1_1_1.md" - } - ] - }, - { - "text":"Item de Menu de Exemplo - 1.2", - "items":[ - { - "text":"Item de Menu de Exemplo - 1.2.1", - "path":"SampleMenuItem_1_2_1.md" - }, - { - "text":"Item de Menu de Exemplo - 1.2.2", - "path":"SampleMenuItem_1_2_2.md" - } - ] - } - ] - }, - { - "text":"Item de Menu de Exemplo - 2", - "items":[ - { - "text":"Item de Menu de Exemplo - 2.1", - "items":[ - { - "text":"Item de Menu de Exemplo - 2.1.1", - "path":"SampleMenuItem_2_1_1.md" - } - ] - } - ] - } - ] -} -``` - -O exemplo acima de arquivo `JSON` renderiza o menu de navegação abaixo como `HTML`. - -![Menu de navegação](../images/docs-module_download-sample-navigation-menu.png) - -Finalmente, um novo Módulo de Documentação é adicionado ao seu projeto, que é alimentado pelo GitHub. - - -## Pesquisa de Texto Completo (Elastic Search) - -O módulo de documentação suporta pesquisa de texto completo usando o Elastic Search. Ele não está habilitado por padrão. Você pode configurar `DocsElasticSearchOptions` para habilitá-lo. - -```csharp -Configure(options => -{ - options.Enable = true; - options.IndexName = "your_index_name"; //o nome do índice padrão é abp_documents -}); -``` - -O `Índice` é criado automaticamente após o início da aplicação se o `Índice` não existir. - -`DefaultElasticClientProvider` é responsável por criar `IElasticClient`. Por padrão, ele lê a `Url` do Elastic Search da `IConfiguration`. -Se o seu `IElasticClient` precisar de configurações adicionais, use a substituição do serviço `IElasticClientProvider` e substitua-o no sistema de [injeção de dependência](../Dependency-Injection.md). - -```json -{ - "ElasticSearch": { - "Url": "http://localhost:9200" - } -} -``` - - -## Destacando Linhas - -Você pode aplicar destaque a linhas de código específicas ou a um intervalo de linhas sequenciais. -Veja os exemplos a seguir: - -``` - ```C# {3, 5} - public class Book : Entity - { - public string Name { get; set; } - public string Surname { get; set; } - } - ``` -``` - -``` - ```C# {2-4} - public class Book : Entity - { - public string Name { get; set; } - public string Surname { get; set; } - } - ``` -``` - -``` - ```C# {1, 2-4} - public class Book : Entity - { - public string Name { get; set; } - public string Surname { get; set; } - } - ``` -``` - ---- - - - -## Próximo - -O Módulo de Documentação também está disponível como um aplicativo independente. Confira [VoloDocs](../Apps/VoloDocs). \ No newline at end of file diff --git a/docs/pt-BR/Modules/Feature-Management.md b/docs/pt-BR/Modules/Feature-Management.md deleted file mode 100644 index 1928b09a77..0000000000 --- a/docs/pt-BR/Modules/Feature-Management.md +++ /dev/null @@ -1,105 +0,0 @@ -# Módulo de Gerenciamento de Recursos - -O módulo de Gerenciamento de Recursos implementa a interface `IFeatureManagementStore` definida pelo [Sistema de Recursos](../Features.md). - -> Este documento aborda apenas o módulo de gerenciamento de recursos que persiste os valores dos recursos em um banco de dados. Consulte o documento [recursos](../Features.md) para obter mais informações sobre o sistema de recursos. - -## Como Instalar - -Este módulo vem pré-instalado (como pacotes NuGet/NPM). Você pode continuar a usá-lo como pacote e obter atualizações facilmente, ou pode incluir seu código-fonte em sua solução (consulte o comando `get-source` [CLI](../CLI.md)) para desenvolver seu próprio módulo personalizado. - -### O Código Fonte - -O código-fonte deste módulo pode ser acessado [aqui](https://github.com/abpframework/abp/tree/dev/modules/feature-management). O código-fonte é licenciado com [MIT](https://choosealicense.com/licenses/mit/), portanto, você pode usá-lo e personalizá-lo livremente. - -## Interface do Usuário - -### Diálogo de Gerenciamento de Recursos - -O módulo de gerenciamento de recursos fornece um diálogo reutilizável para gerenciar recursos relacionados a um objeto. Por exemplo, o [Módulo de Gerenciamento de Inquilinos](Tenant-Management.md) o utiliza para gerenciar os recursos dos inquilinos na página de Gerenciamento de Inquilinos. - -![features-module-opening](../images/features-module-opening.png) - -Quando você clica em *Ações* -> *Recursos* para um inquilino, o diálogo de gerenciamento de recursos é aberto. Uma captura de tela de exemplo deste diálogo com dois recursos definidos: - -![features-modal](../images/features-modal.png) - -Neste diálogo, você pode habilitar, desabilitar ou definir valores para os recursos de um inquilino. - -## IFeatureManager - -`IFeatureManager` é o serviço principal fornecido por este módulo. Ele é usado para ler e alterar os valores de configuração para os inquilinos em um aplicativo multi-inquilino. `IFeatureManager` é normalmente usado pelo *Diálogo de Gerenciamento de Recursos*. No entanto, você pode injetá-lo se precisar definir um valor de recurso. - -> Se você apenas deseja ler os valores dos recursos, use o `IFeatureChecker` conforme explicado no documento [Recursos](../Features.md). - -**Exemplo: Obter/definir o valor de um recurso para um inquilino** - -````csharp -using System; -using System.Threading.Tasks; -using Volo.Abp.DependencyInjection; -using Volo.Abp.FeatureManagement; - -namespace Demo -{ - public class MyService : ITransientDependency - { - private readonly IFeatureManager _featureManager; - - public MyService(IFeatureManager featureManager) - { - _featureManager = featureManager; - } - - public async Task SetFeatureDemoAsync(Guid tenantId, string value) - { - await _featureManager - .SetForTenantAsync(tenantId, "Recurso1", value); - - var currentValue = await _featureManager - .GetOrNullForTenantAsync("Recurso1", tenantId); - } - } -} -```` - -## Provedores de Gerenciamento de Recursos - -O Módulo de Gerenciamento de Recursos é extensível, assim como o [sistema de recursos](../Features.md). Você pode estendê-lo definindo provedores de gerenciamento de recursos. Existem 3 provedores de gerenciamento de recursos pré-construídos registrados na seguinte ordem: - -* `DefaultValueFeatureManagementProvider`: Obtém o valor do valor padrão da definição do recurso. Ele não pode definir o valor padrão, pois os valores padrão são codificados na definição do recurso. -* `EditionFeatureManagementProvider`: Obtém ou define os valores dos recursos para uma edição. A edição é um grupo de recursos atribuídos a inquilinos. O sistema de edição não foi implementado pelo módulo de Gerenciamento de Inquilinos. Você pode implementá-lo por conta própria ou adquirir o [Módulo SaaS](https://commercial.abp.io/modules/Volo.Saas) do ABP Commercial, que o implementa e também fornece mais recursos SaaS, como assinatura e pagamento. -* `TenantFeatureManagementProvider`: Obtém ou define os valores dos recursos para inquilinos. - -`IFeatureManager` usa esses provedores nos métodos de obtenção/definição. Normalmente, cada provedor de gerenciamento de recursos define métodos de extensão no serviço `IFeatureManager` (como `SetForTenantAsync` definido pelo provedor de gerenciamento de recursos de inquilinos). - -Se você deseja criar seu próprio provedor, implemente a interface `IFeatureManagementProvider` ou herde da classe base `FeatureManagementProvider`: - -````csharp -public class CustomFeatureProvider : FeatureManagementProvider -{ - public override string Name => "Custom"; - - public CustomFeatureProvider(IFeatureManagementStore store) - : base(store) - { - } -} -```` - -A classe base `FeatureManagementProvider` faz a implementação padrão (usando o `IFeatureManagementStore`) para você. Você pode substituir os métodos base conforme necessário. Todo provedor deve ter um nome exclusivo, que é `Custom` neste exemplo (mantenha-o curto, pois ele é salvo no banco de dados para cada registro de valor de recurso). - -Depois de criar sua classe de provedor, você deve registrá-la usando a classe de opções `FeatureManagementOptions` [options class](../Options.md): - -````csharp -Configure(options => -{ - options.Providers.Add(); -}); -```` - -A ordem dos provedores é importante. Os provedores são executados na ordem inversa. Isso significa que o `CustomFeatureProvider` é executado primeiro neste exemplo. Você pode inserir seu provedor em qualquer ordem na lista `Providers`. - -## Veja também - -* [Recursos](../Features.md) \ No newline at end of file diff --git a/docs/pt-BR/Modules/Identity.md b/docs/pt-BR/Modules/Identity.md deleted file mode 100644 index 8c50fee03b..0000000000 --- a/docs/pt-BR/Modules/Identity.md +++ /dev/null @@ -1,321 +0,0 @@ -# Módulo de Gerenciamento de Identidade - -O módulo de identidade é usado para gerenciar funções, usuários e suas permissões, com base na biblioteca de identidade da Microsoft. - -## Como instalar - -Este módulo já vem pré-instalado (como pacotes NuGet/NPM). Você pode continuar a usá-lo como pacote e obter atualizações facilmente, ou pode incluir seu código-fonte em sua solução (consulte o comando `get-source` [CLI](../CLI.md)) para desenvolver seu próprio módulo personalizado. - -### O Código-fonte - -O código-fonte deste módulo pode ser acessado [aqui](https://github.com/abpframework/abp/tree/dev/modules/identity). O código-fonte é licenciado com [MIT](https://choosealicense.com/licenses/mit/), então você pode usá-lo e personalizá-lo livremente. - -## Interface do Usuário - -Este módulo fornece opções de interface do usuário [Blazor](../UI/Blazor/Overall.md), [Angular](../UI/Angular/Quick-Start.md) e [MVC / Razor Pages](../UI/AspNetCore/Overall.md). - -### Itens do Menu - -Este módulo adiciona um item de menu *Gerenciamento de Identidade* no menu *Administração*: - -![identity-module-menu](../images/identity-module-menu.png) - -Os itens do menu e as páginas relacionadas são autorizados. Isso significa que o usuário atual deve ter as permissões relacionadas para torná-los visíveis. A função `admin` (e os usuários com essa função - como o usuário `admin`) já possui essas permissões. Se você deseja habilitar permissões para outras funções/usuários, abra a caixa de diálogo *Permissões* na página *Funções* ou *Usuários* e marque as permissões conforme mostrado abaixo: - -![identity-module-permissions](../images/identity-module-permissions.png) - -Consulte o documento de [Autorização](../Authorization.md) para entender o sistema de permissões. - -### Páginas - -Esta seção apresenta as principais páginas fornecidas por este módulo. - -#### Usuários - -Esta página é usada para ver a lista de usuários. Você pode criar/editar e excluir usuários, atribuir usuários a funções. - -![identity-module-users](../images/identity-module-users.png) - -Um usuário pode ter zero ou mais funções. Os usuários herdam permissões de suas funções. Além disso, você pode atribuir permissões diretamente aos usuários (clicando no botão *Ações*, em seguida, selecionando *Permissões*). - -#### Funções - -As funções são usadas para agrupar permissões e atribuí-las aos usuários. - -![identity-module-roles](../images/identity-module-roles.png) - -Além do nome da função, existem duas propriedades de uma função: - -* `Padrão`: Se uma função for marcada como "padrão", essa função será atribuída aos novos usuários por padrão quando eles se registrarem na aplicação (usando o [Módulo de Conta](Account.md)). -* `Público`: Uma função pública de um usuário pode ser vista por outros usuários na aplicação. Essa funcionalidade não tem uso no módulo de identidade, mas é fornecida como uma funcionalidade que você pode querer usar em sua própria aplicação. - -## Outras Funcionalidades - -Esta seção abrange algumas outras funcionalidades fornecidas por este módulo que não possuem páginas de interface do usuário. - -### Unidades Organizacionais - -As unidades organizacionais (OU) podem ser usadas para agrupar usuários e entidades de forma hierárquica. - -#### Entidade Unidade Organizacional - -Uma OU é representada pela entidade **UnidadeOrganizacional**. As propriedades fundamentais desta entidade são: - -- **TenantId**: Id do locatário desta OU. Pode ser nulo para OUs do host. -- **ParentId**: Id da OU pai. Pode ser nulo se esta for uma OU raiz. -- **Código**: Um código de string hierárquico que é único para um locatário. -- **DisplayName**: Nome exibido da OU. - -#### Árvore de Organização - -Como uma OU pode ter um pai, todas as OUs de um locatário estão em uma estrutura de **árvore**. Existem algumas regras para esta árvore: - -- Pode haver mais de uma raiz (onde o `ParentId` é `null`). -- Há um limite para a contagem de filhos de primeiro nível de uma OU (por causa do comprimento fixo da unidade de código OU explicado abaixo). - -#### Código da OU - -O código da OU é gerado automaticamente e mantido pelo serviço `GerenciadorUnidadeOrganizacional`. É uma string que se parece com isso: - -"**00001.00042.00005**" - -Este código pode ser usado para consultar facilmente o banco de dados para todos os filhos de uma OU (recursivamente). Existem algumas regras para este código (aplicadas automaticamente quando você usa o `GerenciadorUnidadeOrganizacional`): - -- É **único** para um [locatário](../Multi-Tenancy.md). -- Todos os filhos da mesma OU têm códigos que **começam com o código da OU pai**. -- É de **comprimento fixo** e baseado no nível da OU na árvore, conforme mostrado no exemplo. -- Embora o código da OU seja único, ele pode ser **alterado** se você mover a OU relacionada. - -Observe que você deve referenciar uma OU pelo Id, não pelo Código, porque o Código pode ser alterado posteriormente. - -#### Gerenciador de Unidade Organizacional - -A classe `GerenciadorUnidadeOrganizacional` pode ser [injetada](../Dependency-Injection.md) e usada para gerenciar OUs. Casos de uso comuns são: - -- Criar, atualizar ou excluir uma OU -- Mover uma OU na árvore de OUs. -- Obter informações sobre a árvore de OUs e seus itens. - -### Log de Segurança de Identidade - -O sistema de log de segurança registra algumas operações ou alterações importantes em sua conta (como *login* e *alteração de senha*). Você também pode salvar o log de segurança, se necessário. - -Você pode injetar e usar `GerenciadorLogSegurancaIdentidade` ou `IGerenciadorLogSeguranca` para gravar logs de segurança. Ele criará um objeto de log por padrão e preencherá alguns valores comuns, como `CreationTime`, `ClientIpAddress`, `BrowserInfo`, `usuário/locatário atual`, etc. Claro, você pode substituí-los. - -```cs -await GerenciadorLogSegurancaIdentidade.SalvarAsync(new ContextoLogSegurancaIdentidade() -{ - Identidade = "IdentityServer", - Ação = "AlterarSenha" -}); -``` - -Configure `OpcoesLogSegurancaAbp` para fornecer o nome do aplicativo (no caso de você ter várias aplicações e desejar distinguir as aplicações nos logs) para o log ou desativar esse recurso. - -```cs -Configure(opcoes => -{ - opcoes.NomeAplicativo = "AbpSecurityTest"; -}); -``` - -## Opções - -`OpcoesIdentidade` é a classe de [opções](../Options.md) padrão fornecida pela biblioteca de [identidade](https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity) da Microsoft. Portanto, você pode definir essas opções no método `ConfigureServices` da sua classe de [módulo](../Module-Development-Basics.md). - -**Exemplo: Definir o comprimento mínimo necessário das senhas** - -````csharp -Configure(opcoes => -{ - opcoes.Senha.ComprimentoMinimo = 5; -}); -```` - -O ABP leva essas opções um passo adiante e permite que você as altere em tempo de execução usando o [sistema de configurações](../Settings.md). Você pode [injetar](../Dependency-Injection.md) `IGerenciadorConfiguracao` e usar um dos métodos `Set...` para alterar os valores das opções para um usuário, um locatário ou globalmente para todos os usuários. - -**Exemplo: Alterar o comprimento mínimo necessário das senhas para o locatário atual** - -````csharp -public class MeuServico : IDependencyTransient -{ - private readonly IGerenciadorConfiguracao _gerenciadorConfiguracao; - - public MeuServico(IGerenciadorConfiguracao gerenciadorConfiguracao) - { - _gerenciadorConfiguracao = gerenciadorConfiguracao; - } - - public async Task AlterarComprimentoMinSenha(int comprimentoMin) - { - await _gerenciadorConfiguracao.DefinirParaLocatarioAtualAsync( - NomesConfiguracaoIdentidade.Senha.ComprimentoMinimo, - comprimentoMin.ToString() - ); - } -} -```` - -A classe `NomesConfiguracaoIdentidade` (no namespace `Volo.Abp.Identity.Settings`) define constantes para os nomes das configurações. - -## Eventos Distribuídos - -Este módulo define os seguintes ETOs (Event Transfer Objects) para permitir que você se inscreva em alterações nas entidades do módulo; - -* `UserEto` é publicado em alterações feitas em uma entidade `IdentityUser`. -* `IdentityRoleEto` é publicado em alterações feitas em uma entidade `IdentityRole`. -* `IdentityClaimTypeEto` é publicado em alterações feitas em uma entidade `IdentityClaimType`. -* `OrganizationUnitEto` é publicado em alterações feitas em uma entidade `OrganizationUnit`. - -**Exemplo: Ser notificado quando um novo usuário for criado** - -````csharp -public class MeuManipulador : - IManipuladorEventoDistribuido>, - IDependencyTransient -{ - public async Task ManipularEventoAsync(EntityCreatedEto evento) - { - UserEto user = evento.Entity; - // TODO: ... - } -} -```` - -`UserEto` e `IdentityRoleEto` são configurados para publicar automaticamente os eventos. Você deve configurar você mesmo para os outros. Consulte o documento de [Distributed Event Bus](../Distributed-Event-Bus.md) para aprender detalhes dos eventos pré-definidos. - -> A inscrição nos eventos distribuídos é especialmente útil para cenários distribuídos (como arquitetura de microsserviços). Se você está construindo uma aplicação monolítica ou ouvindo eventos no mesmo processo que executa o Módulo de Identidade, então a inscrição nos [eventos locais](../Local-Event-Bus.md) pode ser mais eficiente e fácil. - -## Internos - -Esta seção abrange alguns detalhes internos do módulo que você não precisa muito, mas pode precisar usar em alguns casos. - -### Camada de Domínio - -#### Agregados - -##### Usuário - -Um usuário é geralmente uma pessoa que faz login e usa a aplicação. - -* `IdentityUser` (raiz do agregado): Representa um usuário no sistema. - * `IdentityUserRole` (coleção): Funções do usuário. - * `IdentityUserClaim` (coleção): Reivindicações personalizadas do usuário. - * `IdentityUserLogin` (coleção): Logins externos do usuário. - * `IdentityUserToken` (coleção): Tokens do usuário (usados pelos serviços de identidade da Microsoft). - -##### Função - -Uma função é tipicamente um grupo de permissões para atribuir aos usuários. - -* `IdentityRole` (raiz do agregado): Representa uma função no sistema. - * `IdentityRoleClaim` (coleção): Reivindicações personalizadas da função. - -##### Tipo de Reivindicação - -Um tipo de reivindicação é uma definição de uma reivindicação personalizada que pode ser atribuída a outras entidades (como funções e usuários) no sistema. - -* `IdentityClaimType` (raiz do agregado): Representa uma definição de tipo de reivindicação. Ele contém algumas propriedades (por exemplo, Obrigatório, Regex, Descrição, ValueType) para definir o tipo de reivindicação e as regras de validação. - -##### Log de Segurança de Identidade - -Um objeto `IdentitySecurityLog` representa uma operação relacionada à autenticação (como *login*) no sistema. - -* `IdentitySecurityLog` (raiz do agregado): Representa um log de segurança no sistema. - -##### Unidade Organizacional - -Uma unidade organizacional é uma entidade em uma estrutura hierárquica. - -* ```OrganizationUnit``` (raiz do agregado): Representa uma unidade organizacional no sistema. - * ```Roles``` (coleção): Funções da unidade organizacional. - -#### Repositórios - -Os seguintes repositórios personalizados são definidos para este módulo: - -* `IIdentityUserRepository` -* `IIdentityRoleRepository` -* `IIdentityClaimTypeRepository` -* ```IIdentitySecurityLogRepository``` -* ```IOrganizationUnitRepository``` - -#### Serviços de Domínio - -##### Gerenciador de Usuário - -`IdentityUserManager` é usado para gerenciar usuários, suas funções, reivindicações, senhas, e-mails, etc. Ele é derivado da classe `UserManager` da Microsoft Identity, onde `T` é `IdentityUser`. - -##### Gerenciador de Função - -`IdentityRoleManager` é usado para gerenciar funções e suas reivindicações. Ele é derivado da classe `RoleManager` da Microsoft Identity, onde `T` é `IdentityRole`. - -##### Gerenciador de Tipo de Reivindicação - -`IdenityClaimTypeManager` é usado para realizar algumas operações para a raiz do agregado `IdentityClaimType`. - -##### Gerenciador de Unidade Organizacional - -```OrganizationUnitManager``` é usado para realizar algumas operações para a raiz do agregado ```OrganizationUnit```. - -##### Gerenciador de Log de Segurança - -```IdentitySecurityLogManager``` é usado para salvar logs de segurança. - -### Camada de Aplicação - -#### Serviços de Aplicação - -* `IdentityUserAppService` (implementa `IIdentityUserAppService`): Implementa os casos de uso da interface do usuário de gerenciamento de usuários. -* `IdentityRoleAppService` (implementa `IIdentityRoleAppService`): Implementa os casos de uso da interface do usuário de gerenciamento de funções. -* `IdentityClaimTypeAppService` (implementa `IIdentityClaimTypeAppService`): Implementa os casos de uso da interface do usuário de gerenciamento de tipos de reivindicação. -* `IdentitySettingsAppService` (implementa `IIdentitySettingsAppService`): Usado para obter e atualizar configurações para o módulo de identidade. -* `IdentityUserLookupAppService` (implementa `IIdentityUserLookupAppService`): Usado para obter informações de um usuário por `id` ou `userName`. É destinado a ser usado internamente pelo framework ABP. -* `ProfileAppService` (implementa `IProfileAppService`): Usado para alterar o perfil de um usuário e a senha. -* ```IdentitySecurityLogAppService``` (implementa ```IIdentitySecurityLogAppService```): Implementa os casos de uso da interface do usuário de logs de segurança. -* ```OrganizationUnitAppService``` (implementa ```OrganizationUnitAppService```): Implementa os casos de uso da interface do usuário de gerenciamento de unidades organizacionais. - -### Provedores de Banco de Dados - -Este módulo fornece opções de [Entity Framework Core](../Entity-Framework-Core.md) e [MongoDB](../MongoDB.md) para o banco de dados. - -#### Entity Framework Core - -O pacote NuGet [Volo.Abp.Identity.EntityFrameworkCore](https://www.nuget.org/packages/Volo.Abp.Identity.EntityFrameworkCore) implementa a integração do EF Core. - -##### Tabelas do Banco de Dados - -* **AbpRoles** - * AbpRoleClaims -* **AbpUsers** - * AbpUserClaims - * AbpUserLogins - * AbpUserRoles - * AbpUserTokens -* **AbpClaimTypes** -* **AbpOrganizationUnits** - * AbpOrganizationUnitRoles - * AbpUserOrganizationUnits -* **AbpSecurityLogs** - -#### MongoDB - -O pacote NuGet [Volo.Abp.Identity.MongoDB](https://www.nuget.org/packages/Volo.Abp.Identity.MongoDB) implementa a integração do MongoDB. - -##### Coleções do Banco de Dados - -* **AbpRoles** -* **AbpUsers** -* **AbpClaimTypes** -* **AbpOrganizationUnits** -* **AbpSecurityLogs** - -#### Propriedades Comuns do Banco de Dados - -Você pode definir as seguintes propriedades da classe `AbpIdentityDbProperties` para alterar as opções do banco de dados: - -* `DbTablePrefix` (`Abp` por padrão) é o prefixo para os nomes das tabelas/coleções. -* `DbSchema` (`null` por padrão) é o esquema do banco de dados. -* `ConnectionStringName` (`AbpIdentity` por padrão) é o nome da [string de conexão](../Connection-Strings.md) para este módulo. - -Essas são propriedades estáticas. Se você quiser definir, faça isso no início de sua aplicação (normalmente, em `Program.cs`). \ No newline at end of file diff --git a/docs/pt-BR/Modules/IdentityServer.md b/docs/pt-BR/Modules/IdentityServer.md deleted file mode 100644 index 62e05ceac2..0000000000 --- a/docs/pt-BR/Modules/IdentityServer.md +++ /dev/null @@ -1,175 +0,0 @@ -# Módulo IdentityServer - -O módulo IdentityServer fornece uma integração completa com o framework [IdentityServer4](https://github.com/IdentityServer/IdentityServer4) (IDS), que oferece recursos avançados de autenticação, como logon único e controle de acesso a API. Este módulo persiste clientes, recursos e outros objetos relacionados ao IDS no banco de dados. **Este módulo foi substituído pelo** [módulo OpenIddict](https://docs.abp.io/en/abp/latest/Modules/OpenIddict) após o ABP v6.0 nos modelos de inicialização. - -> Observação: Você não pode usar os módulos IdentityServer e OpenIddict juntos. Eles são bibliotecas separadas de provedor OpenID para a mesma função. - -## Como instalar - -Você não precisa deste módulo quando estiver usando o módulo OpenIddict. No entanto, se você deseja continuar usando o IdentityServer4 para suas aplicações, você pode instalar este módulo e remover o módulo OpenIddict. Você pode continuar a usá-lo como pacote e obter atualizações facilmente, ou pode incluir seu código-fonte em sua solução (consulte o comando `get-source` [CLI](../CLI.md)) para desenvolver seu módulo personalizado. - -### O código-fonte - -O código-fonte deste módulo pode ser acessado [aqui](https://github.com/abpframework/abp/tree/dev/modules/identityserver). O código-fonte é licenciado com [MIT](https://choosealicense.com/licenses/mit/), então você pode usá-lo e personalizá-lo livremente. - -## Interface do usuário - -Este módulo implementa a lógica de domínio e as integrações com o banco de dados, mas não fornece nenhuma interface do usuário. A interface de gerenciamento é útil se você precisar adicionar clientes e recursos dinamicamente. Nesse caso, você pode construir a interface de gerenciamento por conta própria ou considerar a compra do [ABP Commercial](https://commercial.abp.io/), que fornece a interface de gerenciamento para este módulo. - -## Relações com outros módulos - -Este módulo é baseado no [módulo Identity](Identity.md) e possui um [pacote de integração](https://www.nuget.org/packages/Volo.Abp.Account.Web.IdentityServer) com o [módulo Account](Account.md). - -## Opções - -### AbpIdentityServerBuilderOptions - -`AbpIdentityServerBuilderOptions` pode ser configurado no método `PreConfigureServices` do seu [módulo](https://docs.abp.io/en/abp/latest/Module-Development-Basics) do Identity Server. Exemplo: - -````csharp -public override void PreConfigureServices(ServiceConfigurationContext context) -{ - PreConfigure(builder => - { - // Defina as opções aqui... - }); -} -```` - -Propriedades de `AbpIdentityServerBuilderOptions`: - -* `UpdateJwtSecurityTokenHandlerDefaultInboundClaimTypeMap` (padrão: true): Atualiza `JwtSecurityTokenHandler.DefaultInboundClaimTypeMap` para ser compatível com as reivindicações do Identity Server. -* `UpdateAbpClaimTypes` (padrão: true): Atualiza `AbpClaimTypes` para ser compatível com as reivindicações do Identity Server. -* `IntegrateToAspNetIdentity` (padrão: true): Integra ao ASP.NET Identity. -* `AddDeveloperSigningCredential` (padrão: true): Defina como false para suprimir a chamada AddDeveloperSigningCredential() no IIdentityServerBuilder. - -`IIdentityServerBuilder` pode ser configurado no método `PreConfigureServices` do seu [módulo](https://docs.abp.io/en/abp/latest/Module-Development-Basics) do Identity Server. Exemplo: - -````csharp -public override void PreConfigureServices(ServiceConfigurationContext context) -{ - PreConfigure(builder => - { - builder.AddSigningCredential(...); - }); -} -```` - -## Internos - -### Camada de Domínio - -#### Agregados - -##### ApiResource - -Os recursos da API são necessários para permitir que os clientes solicitem tokens de acesso. - -* `ApiResource` (raiz do agregado): Representa um recurso da API no sistema. - * `ApiSecret` (coleção): segredos do recurso da API. - * `ApiScope` (coleção): escopos do recurso da API. - * `ApiResourceClaim` (coleção): reivindicações do recurso da API. - -##### Client - -Os clientes representam aplicativos que podem solicitar tokens do seu Identity Server. - -* `Client` (raiz do agregado): Representa um aplicativo cliente do Identity Server. - * `ClientScope` (coleção): Escopos do cliente. - * `ClientSecret` (coleção): Segredos do cliente. - * `ClientGrantType` (coleção): Tipos de concessão do cliente. - * `ClientCorsOrigin` (coleção): Origens CORS do cliente. - * `ClientRedirectUri` (coleção): URIs de redirecionamento do cliente. - * `ClientPostLogoutRedirectUri` (coleção): URIs de redirecionamento de logout do cliente. - * `ClientIdPRestriction` (coleção): Restrições de provedor do cliente. - * `ClientClaim` (coleção): Reivindicações do cliente. - * `ClientProperty` (coleção): Propriedades personalizadas do cliente. - -##### PersistedGrant - -Persisted Grants armazena AuthorizationCodes, RefreshTokens e UserConsent. - -* `PersistedGrant` (raiz do agregado): Representa um PersistedGrant para o servidor de identidade. - -##### IdentityResource - -Os recursos de identidade são dados como ID do usuário, nome ou endereço de e-mail de um usuário. - -* `IdentityResource` (raiz do agregado): Representa um recurso de identidade do Identity Server. - * `IdentityClaim` (coleção): Reivindicações do recurso de identidade. - -#### Repositórios - -Os seguintes repositórios personalizados são definidos para este módulo: - -* `IApiResourceRepository` -* `IClientRepository` -* `IPersistentGrantRepository` -* `IIdentityResourceRepository` - -#### Serviços de Domínio - -Este módulo não contém nenhum serviço de domínio, mas substitui os serviços abaixo; - -* `AbpProfileService` (Usado quando `AbpIdentityServerBuilderOptions.IntegrateToAspNetIdentity` é true) -* `AbpClaimsService` -* `AbpCorsPolicyService` - -### Configurações - -Este módulo não define nenhuma configuração. - -### Camada de Aplicação - -#### Serviços de Aplicação - -* `ApiResourceAppService` (implementa `IApiResourceAppService`): Implementa os casos de uso da interface de gerenciamento de recursos da API. -* `IdentityServerClaimTypeAppService` (implementa `IIdentityServerClaimTypeAppService`): Usado para obter a lista de reivindicações. -* `ApiResourceAppService` (implementa `IApiResourceAppService`): Implementa os casos de uso da interface de gerenciamento de recursos da API. -* `IdentityResourceAppService` (implementa `IIdentityResourceAppService`): Implementa os casos de uso da interface de gerenciamento de recursos de identidade. - -### Provedores de Banco de Dados - -#### Comum - -##### Prefixo de Tabela/Collection e Esquema - -Todas as tabelas/collections usam o prefixo `IdentityServer` por padrão. Defina as propriedades estáticas na classe `AbpIdentityServerDbProperties` se você precisar alterar o prefixo da tabela ou definir um nome de esquema (se suportado pelo seu provedor de banco de dados). - -##### String de Conexão - -Este módulo usa `AbpIdentityServer` como nome da string de conexão. Se você não definir uma string de conexão com esse nome, ela será usada a string de conexão `Default`. - -Consulte a documentação sobre [strings de conexão](https://docs.abp.io/en/abp/latest/Connection-Strings) para obter mais detalhes. - -#### Entity Framework Core - -##### Tabelas - -* **IdentityServerApiResources** - * IdentityServerApiSecrets - * IdentityServerApiScopes - * IdentityServerApiScopeClaims - * IdentityServerApiClaims -* **IdentityServerClients** - * IdentityServerClientScopes - * IdentityServerClientSecrets - * IdentityServerClientGrantTypes - * IdentityServerClientCorsOrigins - * IdentityServerClientRedirectUris - * IdentityServerClientPostLogoutRedirectUris - * IdentityServerClientIdPRestrictions - * IdentityServerClientClaims - * IdentityServerClientProperties -* **IdentityServerPersistedGrants** -* **IdentityServerIdentityResources** - * IdentityServerIdentityClaims - -#### MongoDB - -##### Coleções - -* **IdentityServerApiResources** -* **IdentityServerClients** -* **IdentityServerPersistedGrants** -* **IdentityServerIdentityResources** \ No newline at end of file diff --git a/docs/pt-BR/Modules/Index.md b/docs/pt-BR/Modules/Index.md deleted file mode 100644 index 24a7c01169..0000000000 --- a/docs/pt-BR/Modules/Index.md +++ /dev/null @@ -1,32 +0,0 @@ -# Módulos de Aplicação - -ABP é um **framework de aplicação modular** que consiste em dezenas de **pacotes NuGet & NPM**. Ele também fornece uma infraestrutura completa para construir seus próprios módulos de aplicação, que podem ter entidades, serviços, integração de banco de dados, APIs, componentes de interface do usuário, entre outros. - -Existem **dois tipos de módulos**. Eles não têm nenhuma diferença estrutural, mas são categorizados por funcionalidade e propósito: - -* [**Módulos do framework**](https://github.com/abpframework/abp/tree/dev/framework/src): Estes são **módulos principais do framework** como cache, envio de e-mails, temas, segurança, serialização, validação, integração com o EF Core, integração com o MongoDB... etc. Eles não possuem funcionalidades de aplicação/negócio, mas facilitam o desenvolvimento diário fornecendo infraestrutura comum, integração e abstrações. -* [**Módulos de aplicação**](https://github.com/abpframework/abp/tree/dev/modules): Esses módulos implementam funcionalidades específicas de aplicação/negócio, como blogs, gerenciamento de documentos, gerenciamento de identidade, gerenciamento de locatários... etc. Eles geralmente possuem suas próprias entidades, serviços, APIs e componentes de interface do usuário. - -## Módulos de Aplicação de Código Aberto - -Existem alguns módulos de aplicação **gratuitos e de código aberto** desenvolvidos e mantidos como parte do ABP Framework. - -* [**Conta**](Account.md): Fornece uma interface de usuário para o gerenciamento de contas e permite que o usuário faça login/registo na aplicação. -* [**Registro de Auditoria**](Audit-Logging.md): Persiste registros de auditoria em um banco de dados. -* [**Trabalhos em Segundo Plano**](Background-Jobs.md): Persiste trabalhos em segundo plano ao usar o gerenciador de trabalhos em segundo plano padrão. -* [**Kit CMS**](Cms-Kit/Index.md): Um conjunto de recursos reutilizáveis de *Sistema de Gerenciamento de Conteúdo*. -* [**Documentação**](Docs.md): Usado para criar um site de documentação técnica. A própria documentação do ABP já utiliza este módulo. -* [**Gerenciamento de Recursos**](Feature-Management.md): Usado para persistir e gerenciar os [recursos](../Features.md). -* **[Identidade](Identity.md)**: Gerencia unidades organizacionais, funções, usuários e suas permissões, com base na biblioteca Microsoft Identity. -* [**IdentityServer**](IdentityServer.md): Integra-se ao IdentityServer4. -* [**OpenIddict**](OpenIddict.md): Integra-se ao OpenIddict. -* [**Gerenciamento de Permissões**](Permission-Management.md): Usado para persistir permissões. -* **[Gerenciamento de Configurações](Setting-Management.md)**: Usado para persistir e gerenciar as [configurações](../Settings.md). -* [**Gerenciamento de Locatários**](Tenant-Management.md): Gerencia locatários para uma aplicação [multi-locatário](../Multi-Tenancy.md). -* [**Explorador de Arquivos Virtuais**](Virtual-File-Explorer.md): Fornece uma interface de usuário simples para visualizar arquivos em um [sistema de arquivos virtual](../Virtual-File-System.md). - -Veja [o repositório do GitHub](https://github.com/abpframework/abp/tree/dev/modules) para o código-fonte de todos os módulos. - -## Módulos de Aplicação Comerciais - -A licença [ABP Commercial](https://commercial.abp.io/) fornece **módulos de aplicação pré-construídos adicionais** em cima do framework ABP. Veja a [lista de módulos](https://commercial.abp.io/modules) fornecida pelo ABP Commercial. \ No newline at end of file diff --git a/docs/pt-BR/Modules/OpenIddict.md b/docs/pt-BR/Modules/OpenIddict.md deleted file mode 100644 index f19b77db5e..0000000000 --- a/docs/pt-BR/Modules/OpenIddict.md +++ /dev/null @@ -1,514 +0,0 @@ -## Módulo ABP OpenIddict - -O módulo OpenIddict fornece uma integração com o [OpenIddict](https://github.com/openiddict/openiddict-core), que oferece recursos avançados de autenticação, como logon único, logoff único e controle de acesso à API. Este módulo persiste aplicativos, escopos e outros objetos relacionados ao OpenIddict no banco de dados. - -## Como instalar - -Este módulo já vem pré-instalado (como pacotes NuGet/NPM). Você pode continuar a usá-lo como um pacote e obter atualizações facilmente, ou pode incluir seu código-fonte em sua solução (consulte o comando `get-source` [CLI](../CLI.md)) para desenvolver seu próprio módulo personalizado. - -### O código-fonte - -O código-fonte deste módulo pode ser acessado [aqui](https://github.com/abpframework/abp/tree/dev/modules/openiddict). O código-fonte é licenciado pela [MIT](https://choosealicense.com/licenses/mit/), portanto, você pode usá-lo e personalizá-lo livremente. - -## Interface do usuário - -Este módulo implementa a lógica de domínio e as integrações com o banco de dados, mas não fornece nenhuma interface do usuário. A interface de gerenciamento é útil se você precisar adicionar aplicativos e escopos dinamicamente. Nesse caso, você pode construir a interface de gerenciamento por conta própria ou considerar a compra do [ABP Commercial](https://commercial.abp.io/), que fornece a interface de gerenciamento para este módulo. - -## Relações com outros módulos - -Este módulo é baseado no [Módulo de Identidade](Identity.md) e possui um [pacote de integração](https://www.nuget.org/packages/Volo.Abp.Account.Web.OpenIddict) com o [Módulo de Conta](Account.md). - -## Opções - -### OpenIddictBuilder - -O `OpenIddictBuilder` pode ser configurado no método `PreConfigureServices` do seu [módulo](https://docs.abp.io/en/abp/latest/Module-Development-Basics) OpenIddict. - -Exemplo: - -```csharp -public override void PreConfigureServices(ServiceConfigurationContext context) -{ - PreConfigure(builder => - { - // Defina as opções aqui... - }); -} -``` - -O `OpenIddictBuilder` contém vários métodos de extensão para configurar os serviços do OpenIddict: - -- `AddServer()` registra os serviços do servidor de token OpenIddict no contêiner de DI. Contém as configurações do `OpenIddictServerBuilder`. -- `AddCore()` registra os serviços principais do OpenIddict no contêiner de DI. Contém as configurações do `OpenIddictCoreBuilder`. -- `AddValidation()` registra os serviços de validação de token OpenIddict no contêiner de DI. Contém as configurações do `OpenIddictValidationBuilder`. - -### OpenIddictCoreBuilder - -O `OpenIddictCoreBuilder` contém métodos de extensão para configurar os serviços principais do OpenIddict. - -Exemplo: - -```csharp -public override void PreConfigureServices(ServiceConfigurationContext context) -{ - PreConfigure(builder => - { - // Defina as opções aqui... - }); -} -``` - -Esses serviços contêm: - -- Adição de `ApplicationStore`, `AuthorizationStore`, `ScopeStore`, `TokenStore`. -- Substituição de `ApplicationManager`, `AuthorizationManager`, `ScopeManager`, `TokenManager`. -- Substituição de `ApplicationStoreResolver`, `AuthorizationStoreResolver`, `ScopeStoreResolver`, `TokenStoreResolver`. -- Definição de `DefaultApplicationEntity`, `DefaultAuthorizationEntity`, `DefaultScopeEntity`, `DefaultTokenEntity`. - -### OpenIddictServerBuilder - -O `OpenIddictServerBuilder` contém métodos de extensão para configurar os serviços do servidor OpenIddict. - -Exemplo: - -```csharp -public override void PreConfigureServices(ServiceConfigurationContext context) -{ - PreConfigure(builder => - { - // Defina as opções aqui... - }); -} -``` - -Esses serviços contêm: - -- Registro de claims, escopos. -- Definição do URI `Issuer` que é usado como endereço base para os URIs de endpoint retornados pelo endpoint de descoberta. -- Adição de chaves de assinatura de desenvolvimento, chaves de criptografia/assinatura, credenciais e certificados. -- Adição/remoção de manipuladores de eventos. -- Habilitação/desabilitação de tipos de concessão. -- Definição de URIs de endpoint do servidor de autenticação. - -### OpenIddictValidationBuilder - -O `OpenIddictValidationBuilder` contém métodos de extensão para configurar os serviços de validação do OpenIddict. - -Exemplo: - -```csharp -public override void PreConfigureServices(ServiceConfigurationContext context) -{ - PreConfigure(builder => - { - // Defina as opções aqui... - }); -} -``` - -Esses serviços contêm: - -- `AddAudiences()` para servidores de recursos. -- `SetIssuer()` define o URI usado para determinar a localização real do documento de configuração do OAuth 2.0/OpenID Connect ao usar a descoberta do provedor. -- `SetConfiguration()` para configurar `OpenIdConnectConfiguration`. -- `UseIntrospection()` para usar a introspecção em vez da validação local/direta. -- Adição de chave de criptografia, credenciais e certificados. -- Adição/remoção de manipuladores de eventos. -- `SetClientId()` para definir o identificador do cliente `client_id` ao se comunicar com o servidor de autorização remoto (por exemplo, para introspecção). -- `SetClientSecret()` para definir o identificador `client_secret` ao se comunicar com o servidor de autorização remoto (por exemplo, para introspecção). -- `EnableAuthorizationEntryValidation()` para habilitar a validação de autorização para garantir que o `access token` ainda seja válido fazendo uma chamada ao banco de dados para cada solicitação da API. *Observação:* Isso pode ter um impacto negativo no desempenho e só pode ser usado com um servidor de autorização baseado no OpenIddict. -- `EnableTokenEntryValidation()` para habilitar a validação de autorização para garantir que o `access token` ainda seja válido fazendo uma chamada ao banco de dados para cada solicitação da API. *Observação:* Isso pode ter um impacto negativo no desempenho e é necessário quando o servidor OpenIddict está configurado para usar tokens de referência. -- `UseLocalServer()` para registrar os serviços de integração de validação/servidor OpenIddict. -- `UseAspNetCore()` para registrar os serviços de validação do OpenIddict para o ASP.NET Core no contêiner de DI. - -## Internos - -### Camada de Domínio - -#### Agregados - -##### OpenIddictApplication - -OpenIddictApplications representam os aplicativos que podem solicitar tokens do seu servidor OpenIddict. - -- `OpenIddictApplications` (raiz do agregado): Representa um aplicativo OpenIddict. - - `ClientId` (string): O identificador do cliente associado ao aplicativo atual. - - `ClientSecret` (string): O segredo do cliente associado ao aplicativo atual. Pode ser criptografado ou hash para fins de segurança. - - `ConsentType` (string): O tipo de consentimento associado ao aplicativo atual. - - `DisplayName` (string): O nome de exibição associado ao aplicativo atual. - - `DisplayNames` (string): Os nomes de exibição localizados associados ao aplicativo atual serializados como um objeto JSON. - - `Permissions` (string): As permissões associadas ao aplicativo atual, serializadas como um array JSON. - - `PostLogoutRedirectUris` (string): As URLs de retorno de chamada de logoff associadas ao aplicativo atual, serializadas como um array JSON. - - `Properties` (string): As propriedades adicionais associadas ao aplicativo atual serializadas como um objeto JSON ou nulo. - - `RedirectUris` (string): As URLs de retorno de chamada associadas ao aplicativo atual, serializadas como um array JSON. - - `Requirements` (string): Os requisitos associados ao aplicativo atual. - - `Type` (string): O tipo de aplicativo associado ao aplicativo atual. - - `ClientUri` (string): URI para obter mais informações sobre o cliente. - - `LogoUri` (string): URI para o logotipo do cliente. - -##### OpenIddictAuthorization - -OpenIddictAuthorizations são usadas para manter os escopos permitidos e os tipos de fluxo de autorização. - -- `OpenIddictAuthorization` (raiz do agregado): Representa uma autorização OpenIddict. - - - `ApplicationId` (Guid?): O aplicativo associado à autorização atual. - - - `Properties` (string): As propriedades adicionais associadas à autorização atual serializadas como um objeto JSON ou nulo. - - - `Scopes` (string): Os escopos associados à autorização atual, serializados como um array JSON. - - - `Status` (string): O status da autorização atual. - - - `Subject` (string): O assunto associado à autorização atual. - - - `Type` (string): O tipo da autorização atual. - -##### OpenIddictScope - -OpenIddictScopes são usados para manter os escopos dos recursos. - -- `OpenIddictScope` (raiz do agregado): Representa um escopo OpenIddict. - - - `Description` (string): A descrição pública associada ao escopo atual. - - - `Descriptions` (string): As descrições públicas localizadas associadas ao escopo atual, serializadas como um objeto JSON. - - - `DisplayName` (string): O nome de exibição associado ao escopo atual. - - - `DisplayNames` (string): Os nomes de exibição localizados associados ao escopo atual serializados como um objeto JSON. - - - `Name` (string): O nome único associado ao escopo atual. - - `Properties` (string): As propriedades adicionais associadas ao escopo atual serializadas como um objeto JSON ou nulo. - - `Resources` (string): Os recursos associados ao escopo atual, serializados como um array JSON. - -##### OpenIddictToken - -OpenIddictTokens são usados para persistir os tokens do aplicativo. - -- `OpenIddictToken` (raiz do agregado): Representa um token OpenIddict. - - - `ApplicationId` (Guid?): O aplicativo associado ao token atual. - - `AuthorizationId` (Guid?): A autorização associada ao token atual. - - `CreationDate` (DateTime?): A data de criação UTC do token atual. - - `ExpirationDate` (DateTime?): A data de expiração UTC do token atual. - - `Payload` (string): O payload do token atual, se aplicável. Usado apenas para tokens de referência e pode ser criptografado por motivos de segurança. - - - `Properties` (string): As propriedades adicionais associadas ao token atual serializadas como um objeto JSON ou nulo. - - `RedemptionDate` (DateTime?): A data de resgate UTC do token atual. - - `Status` (string): O status da autorização atual. - - - `ReferenceId` (string): O identificador de referência associado ao token atual, se aplicável. Usado apenas para tokens de referência e pode ser criptografado ou hash por motivos de segurança. - - - `Status` (string): O status do token atual. - - - `Subject` (string): O assunto associado ao token atual. - - - `Type` (string): O tipo do token atual. - -#### Armazenamentos - -Este módulo implementa os armazenamentos do OpenIddict: - -- `IAbpOpenIdApplicationStore` -- `IOpenIddictAuthorizationStore` -- `IOpenIddictScopeStore` -- `IOpenIddictTokenStore` - -#### AbpOpenIddictStoreOptions - -Você pode configurar o `PruneIsolationLevel/DeleteIsolationLevel` do `AbpOpenIddictStoreOptions` para definir o nível de isolamento para as operações de armazenamento, pois diferentes bancos de dados têm diferentes níveis de isolamento. - -##### Repositórios - -Os seguintes repositórios personalizados são definidos neste módulo: - -- `IOpenIddictApplicationRepository` -- `IOpenIddictAuthorizationRepository` -- `IOpenIddictScopeRepository` -- `IOpenIddictTokenRepository` - -##### Serviços de Domínio - -Este módulo não contém nenhum serviço de domínio, mas substitui o serviço abaixo: - -- `AbpApplicationManager` usado para popular/obter informações do `AbpApplicationDescriptor` que contém `ClientUri` e `LogoUri`. - -### Provedores de Banco de Dados - -#### Comum - -##### Prefixo de Tabela/Collection e Esquema - -Todas as tabelas/collections usam o prefixo `OpenIddict` por padrão. Defina as propriedades estáticas na classe `AbpOpenIddictDbProperties` se você precisar alterar o prefixo da tabela ou definir um nome de esquema (se suportado pelo seu provedor de banco de dados). - -##### String de Conexão - -Este módulo usa `AbpOpenIddict` como nome da string de conexão. Se você não definir uma string de conexão com esse nome, ela será usada a string de conexão `Default`. - -Consulte a documentação sobre [strings de conexão](https://docs.abp.io/en/abp/latest/Connection-Strings) para obter detalhes. - -#### Entity Framework Core - -##### Tabelas - -- **OpenIddictApplications** -- **OpenIddictAuthorizations** -- **OpenIddictScopes** -- **OpenIddictTokens** - -#### MongoDB - -##### Coleções - -- **OpenIddictApplications** -- **OpenIddictAuthorizations** -- **OpenIddictScopes** -- **OpenIddictTokens** - -## Módulo ASP.NET Core - -Este módulo integra o ASP.NET Core, com controladores MVC embutidos para quatro protocolos. Ele usa o modo de passagem do OpenIddict [Pass-through mode](https://documentation.openiddict.com/guides/index.html#pass-through-mode). - -```cs -AuthorizeController -> connect/authorize -TokenController -> connect/token -LogoutController -> connect/logout -UserInfoController -> connect/userinfo -``` - -> A implementação do **fluxo de dispositivo** será feita no módulo comercial. - -#### AbpOpenIddictAspNetCoreOptions - -`AbpOpenIddictAspNetCoreOptions` pode ser configurado no método `PreConfigureServices` do seu [módulo](https://docs.abp.io/en/abp/latest/Module-Development-Basics) OpenIddict. - -Exemplo: - -```csharp -PreConfigure(options => -{ - // Defina as opções aqui... -}); -``` - -Propriedades do `AbpOpenIddictAspNetCoreOptions`: - -- `UpdateAbpClaimTypes(default: true)`: Atualiza `AbpClaimTypes` para ser compatível com as reivindicações do Openiddict. -- `AddDevelopmentEncryptionAndSigningCertificate(default: true)`: Registra (e gera, se necessário) um certificado de criptografia/assinatura de desenvolvimento específico do usuário. Este é um certificado usado para assinar e criptografar os tokens e apenas para **ambiente de desenvolvimento**. Você deve defini-lo como **false** para ambientes não de desenvolvimento. - -> `AddDevelopmentEncryptionAndSigningCertificate` não pode ser usado em aplicativos implantados no IIS ou no Azure App Service: tentar usá-los no IIS ou no Azure App Service resultará em uma exceção lançada em tempo de execução (a menos que o pool de aplicativos esteja configurado para carregar um perfil de usuário). Para evitar isso, considere criar certificados autoassinados e armazená-los no repositório de certificados X.509 da(s) máquina(s) host. Consulte: https://documentation.openiddict.com/configuration/encryption-and-signing-credentials.html#registering-a-development-certificate - -#### Removendo automaticamente Tokens/Autorizações Órfãs - -A tarefa em segundo plano que remove automaticamente tokens/autorizações órfãs pode ser configurada por `TokenCleanupOptions`. - -`TokenCleanupOptions` pode ser configurado no método `ConfigureServices` do seu [módulo](https://docs.abp.io/en/abp/latest/Module-Development-Basics) OpenIddict. - -Exemplo: - -```csharp -Configure(options => -{ - // Defina as opções aqui... -}); -``` - -Propriedades do `TokenCleanupOptions`: - -- `IsCleanupEnabled` (padrão: true): Habilita/desabilita a limpeza de token. -- `CleanupPeriod` (padrão: 3.600.000 ms): Define o período de limpeza. -- `DisableAuthorizationPruning`: Define um booleano indicando se a poda de autorizações deve ser desabilitada. -- `DisableTokenPruning`: Define um booleano indicando se a poda de tokens deve ser desabilitada. -- `MinimumAuthorizationLifespan` (padrão: 14 dias): Define a vida útil mínima que as autorizações devem ter para serem podadas. Não pode ser inferior a 10 minutos. -- `MinimumTokenLifespan` (padrão: 14 dias): Define a vida útil mínima que os tokens devem ter para serem podados. Não pode ser inferior a 10 minutos. - -#### Atualizando Reivindicações em Access_token e Id_token - -[Claims Principal Factory](https://docs.abp.io/en/abp/latest/Authorization#claims-principal-factory) pode ser usado para adicionar/remover reivindicações ao `ClaimsPrincipal`. - -O serviço `AbpDefaultOpenIddictClaimsPrincipalHandler` adicionará tipos de reivindicações `Name`, `Email` e `Role` ao `access_token` e `id_token`, outras reivindicações são adicionadas apenas ao `access_token` por padrão e remove a reivindicação secreta `SecurityStampClaimType` do `Identity`. - -Crie um serviço que herde de `IAbpOpenIddictClaimsPrincipalHandler` e adicione-o ao DI para controlar totalmente os destinos das reivindicações. - -```cs -public class MyClaimDestinationsHandler : IAbpOpenIddictClaimsPrincipalHandler, ITransientDependency -{ - public virtual Task HandleAsync(AbpOpenIddictClaimsPrincipalHandlerContext context) - { - foreach (var claim in context.Principal.Claims) - { - if (claim.Type == MyClaims.MyClaimsType) - { - claim.SetDestinations(OpenIddictConstants.Destinations.AccessToken, OpenIddictConstants.Destinations.IdentityToken); - } - - if (claim.Type == MyClaims.MyClaimsType2) - { - claim.SetDestinations(OpenIddictConstants.Destinations.AccessToken); - } - } - - return Task.CompletedTask; - } -} - -Configure(options => -{ - options.ClaimsPrincipalHandlers.Add(); -}); -``` - -Para obter informações detalhadas, consulte: [OpenIddict claim destinations](https://documentation.openiddict.com/configuration/claim-destinations.html) - -#### Desabilitar a Criptografia do AccessToken - -O ABP desabilita a `criptografia do access token` por padrão para compatibilidade, mas pode ser habilitada manualmente, se necessário. - -```cs -public override void PreConfigureServices(ServiceConfigurationContext context) -{ - PreConfigure(builder => - { - builder.Configure(options => options.DisableAccessTokenEncryption = false); - }); -} -``` - -https://documentation.openiddict.com/configuration/token-formats.html#disabling-jwt-access-token-encryption - -### Processo de Solicitação/Resposta - -O `OpenIddict.Server.AspNetCore` adiciona um esquema de autenticação (`Name: OpenIddict.Server.AspNetCore, handler: OpenIddictServerAspNetCoreHandler`) e implementa a interface `IAuthenticationRequestHandler`. - -Ele será executado primeiro no `AuthenticationMiddleware` e pode interromper o processamento da solicitação atual. Caso contrário, o `DefaultAuthenticateScheme` será chamado e continuará a executar o pipeline. - -O `OpenIddictServerAspNetCoreHandler` chamará vários manipuladores embutidos (manipulando solicitações e respostas) e o manipulador processará de acordo com o contexto ou ignorará a lógica que não tem relação com ele. - -Exemplo de uma solicitação de token: - -``` -POST /connect/token HTTP/1.1 -Content-Type: application/x-www-form-urlencoded - - grant_type=password& - client_id=AbpApp& - client_secret=1q2w3e*& - username=admin& - password=1q2w3E*& - scope=AbpAPI offline_access -``` - -Esta solicitação será processada por vários manipuladores. Eles confirmarão o tipo de endpoint da solicitação, verificarão `HTTP/HTTPS`, verificarão se os parâmetros da solicitação (`client, scope`, etc.) são válidos e existem no banco de dados, etc. Várias verificações de protocolo. E construir um objeto `OpenIddictRequest`, Se houver erros, o conteúdo da resposta pode ser definido e interromper diretamente a solicitação atual. - -Se tudo estiver ok, a solicitação irá para nosso controlador de processamento (por exemplo, `TokenController`), podemos obter um `OpenIddictRequest` da solicitação HTTP neste momento. O restante será baseado neste objeto. - -Verifique o `username` e `password` na solicitação. Se estiver correto, crie um objeto `ClaimsPrincipal` e retorne um `SignInResult`, que usa o nome do esquema de autenticação `OpenIddict.Validation.AspNetCore`, chamará o `OpenIddictServerAspNetCoreHandler` para processamento. - -O `OpenIddictServerAspNetCoreHandler` fará algumas verificações para gerar json e substituir o conteúdo da resposta HTTP. - -O `ForbidResult` `ChallengeResult` são todos os tipos de processamento acima. - -Se você precisar personalizar o OpenIddict, será necessário substituir/excluir/adicionar novos manipuladores e fazer com que ele seja executado na ordem correta. - -Consulte: https://documentation.openiddict.com/guides/index.html#events-model - -### PKCE - -https://documentation.openiddict.com/configuration/proof-key-for-code-exchange.html - -### Definindo o Tempo de Vida dos Tokens - -Atualize o método `PreConfigureServices` do arquivo AuthServerModule (ou HttpApiHostModule se você não tiver um servidor de autenticação separado) : - -```csharp -PreConfigure(builder => -{ - builder.SetAuthorizationCodeLifetime(TimeSpan.FromMinutes(30)); - builder.SetAccessTokenLifetime(TimeSpan.FromMinutes(30)); - builder.SetIdentityTokenLifetime(TimeSpan.FromMinutes(30)); - builder.SetRefreshTokenLifetime(TimeSpan.FromDays(14)); -}); -``` - -### Token de Atualização - -Para usar o token de atualização, ele deve ser suportado pelo OpenIddictServer e o `refresh_token` deve ser solicitado pelo aplicativo. - -> **Observação:** O aplicativo Angular já está configurado para usar o `refresh_token`. - -#### Configurando o OpenIddictServer - -Atualize o **OpenIddictDataSeedContributor**, adicione `OpenIddictConstants.GrantTypes.RefreshToken` aos tipos de concessão no método `CreateApplicationAsync`: - -```csharp -await CreateApplicationAsync( - ... - grantTypes: new List //Fluxo híbrido - { - OpenIddictConstants.GrantTypes.AuthorizationCode, - OpenIddictConstants.GrantTypes.Implicit, - OpenIddictConstants.GrantTypes.RefreshToken, - }, - ... -``` - -> **Observação:** Você precisa recriar esse cliente se já tiver gerado o banco de dados. - -#### Configurando o Aplicativo: - -Você precisa solicitar o escopo **offline_access** para poder receber o `refresh_token`. - -Nos aplicativos **Razor/MVC, Blazor-Server**, adicione `options.Scope.Add("offline_access");` às opções **OpenIdConnect**. Esses modelos de aplicativo usam autenticação por cookie por padrão e têm as opções de expiração do cookie definidas como: - -```csharp -.AddCookie("Cookies", options => -{ - options.ExpireTimeSpan = TimeSpan.FromDays(365); -}) -``` - -[Cookie ExpireTimeSpan ignorará a expiração do access_token](https://learn.microsoft.com/en-us/dotnet/api/Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationOptions.ExpireTimeSpan?view=aspnetcore-7.0&viewFallbackFrom=net-7.0) e o access_token expirado ainda será válido se for definido com um valor maior que o `refresh_token lifetime`. É recomendável manter o **Cookie ExpireTimeSpan** e o **Refresh Token lifetime** iguais, para que o novo token seja persistido no cookie. - -Nos aplicativos **Blazor wasm**, adicione `options.ProviderOptions.DefaultScopes.Add("offline_access");` às opções **AddOidcAuthentication**. - -Nos aplicativos **Angular**, adicione `offline_access` aos escopos **oAuthConfig** no arquivo *environment.ts*. (Os aplicativos Angular já têm essa configuração). - -## Sobre a localização - -Não localizamos nenhuma mensagem de erro no módulo OpenIddict, porque a especificação OAuth 2.0 restringe o conjunto de caracteres que você pode usar para os parâmetros de erro e error_description: - -> A.7. "error" Syntax -> O elemento "error" é definido nas Seções 4.1.2.1, 4.2.2.1, 5.2, 7.2 e 8.5: - -``` -error = 1*NQSCHAR -``` - -> A.8. "error_description" Syntax -> O elemento "error_description" é definido nas Seções 4.1.2.1, 4.2.2.1, 5.2 e 7.2: - -``` -error-description = 1*NQSCHAR -NQSCHAR = %x20-21 / %x23-5B / %x5D-7E -``` - -## Projetos de demonstração - -No diretório `app` do módulo, existem seis projetos (incluindo `angular`) - -* `OpenIddict.Demo.Server`: Um aplicativo abp com módulos integrados (possui dois `clientes` e um `escopo`). -* `OpenIddict.Demo.API`: Aplicativo ASP NET Core API usando autenticação JwtBearer. -* `OpenIddict.Demo.Client.Mvc`: Aplicativo ASP NET Core MVC usando `OpenIdConnect` para autenticação. -* `OpenIddict.Demo.Client.Console`: Use `IdentityModel` para testar os vários endpoints do OpenIddict e chamar a API do `OpenIddict.Demo.API`. -* `OpenIddict.Demo.Client.BlazorWASM:` Aplicativo Blazor ASP NET Core usando `OidcAuthentication` para autenticação. -* `angular`: Um aplicativo angular que integra os módulos abp ng e usa oauth para autenticação. - -#### Como executar? - -Confirme a string de conexão do `appsettings.json` no projeto `OpenIddict.Demo.Server`. A execução do projeto criará automaticamente o banco de dados e inicializará os dados. -Após executar o projeto `OpenIddict.Demo.API`, você pode executar o restante dos projetos para testar. - -## Guia de Migração - -[Guia de Migração Passo a Passo do IdentityServer para o OpenIddict](../Migration-Guides/OpenIddict-Step-by-Step.md) \ No newline at end of file diff --git a/docs/pt-BR/Modules/Permission-Management.md b/docs/pt-BR/Modules/Permission-Management.md deleted file mode 100644 index ff3071c4db..0000000000 --- a/docs/pt-BR/Modules/Permission-Management.md +++ /dev/null @@ -1,109 +0,0 @@ -# Módulo de Gerenciamento de Permissões - -Este módulo implementa o `IPermissionStore` para armazenar e gerenciar valores de permissões em um banco de dados. - -> Este documento aborda apenas o módulo de gerenciamento de permissões que persiste os valores de permissão em um banco de dados. Consulte o documento de [Autorização](../Authorization.md) para entender os sistemas de autorização e permissão. - -## Como Instalar - -Este módulo já vem pré-instalado (como pacotes NuGet/NPM). Você pode continuar a usá-lo como pacote e obter atualizações facilmente, ou pode incluir seu código-fonte em sua solução (consulte o comando `get-source` da [CLI](../CLI.md)) para desenvolver seu próprio módulo personalizado. - -### O Código-fonte - -O código-fonte deste módulo pode ser acessado [aqui](https://github.com/abpframework/abp/tree/dev/modules/permission-management). O código-fonte é licenciado com a licença [MIT](https://choosealicense.com/licenses/mit/), portanto, você pode usá-lo e personalizá-lo livremente. - -## Interface do Usuário - -### Diálogo de Gerenciamento de Permissões - -O módulo de gerenciamento de permissões fornece um diálogo reutilizável para gerenciar permissões relacionadas a um objeto. Por exemplo, o [Módulo de Identidade](Identity.md) o utiliza para gerenciar as permissões de usuários e funções. A imagem a seguir mostra a página de Gerenciamento de Funções do Módulo de Identidade: - -![permissions-module-open-dialog](../images/permissions-module-open-dialog.png) - -Quando você clica em *Ações* -> *Permissões* para uma função, o diálogo de gerenciamento de permissões é aberto. Uma captura de tela de exemplo deste diálogo: - -![permissions-module-dialog](../images/permissions-module-dialog.png) - -Neste diálogo, você pode conceder permissões para a função selecionada. As abas no lado esquerdo representam os principais grupos de permissões e o lado direito contém as permissões definidas no grupo selecionado. - -## IPermissionManager - -`IPermissionManager` é o serviço principal fornecido por este módulo. Ele é usado para ler e alterar os valores de permissão. `IPermissionManager` é normalmente usado pelo *Diálogo de Gerenciamento de Permissões*. No entanto, você pode injetá-lo se precisar definir um valor de permissão. - -> Se você apenas deseja ler/verificar os valores de permissão para o usuário atual, use o `IAuthorizationService` ou o atributo `[Authorize]`, conforme explicado no documento de [Autorização](../Authorization.md). - -**Exemplo: Conceder permissões para funções e usuários usando o serviço `IPermissionManager`** - -````csharp -public class MeuServico : ITransientDependency -{ - private readonly IPermissionManager _permissionManager; - - public MeuServico(IPermissionManager permissionManager) - { - _permissionManager = permissionManager; - } - - public async Task ConcederPermissaoParaFuncaoDemoAsync( - string nomeFuncao, string permissao) - { - await _permissionManager - .SetForRoleAsync(nomeFuncao, permissao, true); - } - - public async Task ConcederPermissaoParaUsuarioDemoAsync( - Guid idUsuario, string nomeFuncao, string permissao) - { - await _permissionManager - .SetForUserAsync(idUsuario, permissao, true); - } -} -```` - -## Provedores de Gerenciamento de Permissões - -O Módulo de Gerenciamento de Permissões é extensível, assim como o [sistema de permissões](../Authorization.md). Você pode estendê-lo definindo provedores de gerenciamento de permissões. - -O [Módulo de Identidade](Identity.md) define os seguintes provedores de gerenciamento de permissões: - -* `UserPermissionManagementProvider`: Gerencia permissões baseadas em usuários. -* `RolePermissionManagementProvider`: Gerencia permissões baseadas em funções. - -`IPermissionManager` usa esses provedores quando você obtém/define permissões. Você pode definir seu próprio provedor implementando o `IPermissionManagementProvider` ou herdando da classe base `PermissionManagementProvider`. - -**Exemplo:** - -````csharp -public class CustomPermissionManagementProvider : PermissionManagementProvider -{ - public override string Name => "Custom"; - - public CustomPermissionManagementProvider( - IPermissionGrantRepository permissionGrantRepository, - IGuidGenerator guidGenerator, - ICurrentTenant currentTenant) - : base( - permissionGrantRepository, - guidGenerator, - currentTenant) - { - } -} -```` - -A classe base `PermissionManagementProvider` faz a implementação padrão (usando o `IPermissionGrantRepository`) para você. Você pode substituir os métodos base conforme necessário. Cada provedor deve ter um nome exclusivo, que é `Custom` neste exemplo (mantenha-o curto, pois ele é salvo no banco de dados para cada registro de valor de permissão). - -Depois de criar sua classe de provedor, você deve registrá-la usando a classe de opções `PermissionManagementOptions` [options class](../Options.md): - -````csharp -Configure(options => -{ - options.ManagementProviders.Add(); -}); -```` - -A ordem dos provedores é importante. Os provedores são executados na ordem inversa. Isso significa que o `CustomPermissionManagementProvider` é executado primeiro neste exemplo. Você pode inserir seu provedor em qualquer ordem na lista `Providers`. - -## Veja também - -* [Autorização](../Authorization.md) \ No newline at end of file diff --git a/docs/pt-BR/Modules/Setting-Management.md b/docs/pt-BR/Modules/Setting-Management.md deleted file mode 100644 index 5cfde745b9..0000000000 --- a/docs/pt-BR/Modules/Setting-Management.md +++ /dev/null @@ -1,313 +0,0 @@ -# Módulo de Gerenciamento de Configurações - -O Módulo de Gerenciamento de Configurações implementa a interface `ISettingStore` (consulte [o sistema de configurações](../Settings.md)) para armazenar os valores das configurações em um banco de dados e fornece a interface `ISettingManager` para gerenciar (alterar) os valores das configurações no banco de dados. - -> O módulo de Gerenciamento de Configurações já está instalado e configurado nos [modelos de inicialização](../Startup-Templates/Index.md). Portanto, na maioria das vezes, você não precisa adicionar manualmente este módulo à sua aplicação. - -## ISettingManager - -`ISettingManager` é usado para obter e definir os valores das configurações. Exemplos: - -````csharp -using System; -using System.Threading.Tasks; -using Volo.Abp.DependencyInjection; -using Volo.Abp.SettingManagement; - -namespace Demo -{ - public class MyService : ITransientDependency - { - private readonly ISettingManager _settingManager; - - // Injeta o serviço ISettingManager - public MyService(ISettingManager settingManager) - { - _settingManager = settingManager; - } - - public async Task FooAsync() - { - Guid user1Id = ...; - Guid tenant1Id = ...; - - // Obtém/define um valor de configuração para o usuário atual ou para o usuário especificado - - string layoutType1 = - await _settingManager.GetOrNullForCurrentUserAsync("App.UI.LayoutType"); - string layoutType2 = - await _settingManager.GetOrNullForUserAsync("App.UI.LayoutType", user1Id); - - await _settingManager.SetForCurrentUserAsync("App.UI.LayoutType", "LeftMenu"); - await _settingManager.SetForUserAsync(user1Id, "App.UI.LayoutType", "LeftMenu"); - - // Obtém/define um valor de configuração para o locatário atual ou para o locatário especificado - - string layoutType3 = - await _settingManager.GetOrNullForCurrentTenantAsync("App.UI.LayoutType"); - string layoutType4 = - await _settingManager.GetOrNullForTenantAsync("App.UI.LayoutType", tenant1Id); - - await _settingManager.SetForCurrentTenantAsync("App.UI.LayoutType", "LeftMenu"); - await _settingManager.SetForTenantAsync(tenant1Id, "App.UI.LayoutType", "LeftMenu"); - - // Obtém/define um valor de configuração global e padrão - - string layoutType5 = - await _settingManager.GetOrNullGlobalAsync("App.UI.LayoutType"); - string layoutType6 = - await _settingManager.GetOrNullDefaultAsync("App.UI.LayoutType"); - - await _settingManager.SetGlobalAsync("App.UI.LayoutType", "TopMenu"); - } - } -} - -```` - -Portanto, você pode obter ou definir um valor de configuração para diferentes provedores de valores de configuração (Padrão, Global, Usuário, Locatário... etc). - -> Use a interface `ISettingProvider` em vez da `ISettingManager` se você apenas precisa ler os valores das configurações, pois ela implementa o cache e suporta todos os cenários de implantação. Você pode usar a `ISettingManager` se estiver criando uma interface de gerenciamento de configurações. - -### Cache de Configurações - -Os valores das configurações são armazenados em cache usando o sistema de [cache distribuído](../Caching.md). Sempre use o `ISettingManager` para alterar os valores das configurações, pois ele gerencia o cache para você. - -## Provedores de Gerenciamento de Configurações - -O módulo de Gerenciamento de Configurações é extensível, assim como o [sistema de configurações](../Settings.md). Você pode estendê-lo definindo provedores de gerenciamento de configurações. Existem 5 provedores de gerenciamento de configurações pré-construídos registrados na seguinte ordem: - -* `DefaultValueSettingManagementProvider`: Obtém o valor do valor padrão da definição da configuração. Ele não pode definir o valor padrão, pois os valores padrão são codificados na definição da configuração. -* `ConfigurationSettingManagementProvider`: Obtém o valor do serviço [IConfiguration](../Configuration.md). Ele não pode definir o valor de configuração, pois não é possível alterar os valores de configuração em tempo de execução. -* `GlobalSettingManagementProvider`: Obtém ou define o valor global (em todo o sistema) para uma configuração. -* `TenantSettingManagementProvider`: Obtém ou define o valor da configuração para um locatário. -* `UserSettingManagementProvider`: Obtém o valor da configuração para um usuário. - -O `ISettingManager` usa os provedores de gerenciamento de configurações nos métodos de obtenção/definição. Normalmente, cada provedor de gerenciamento de configurações define métodos de extensão no serviço `ISettingManagement` (como `SetForUserAsync` definido pelo provedor de gerenciamento de configurações de usuário). - -Se você deseja criar seu próprio provedor, implemente a interface `ISettingManagementProvider` ou herde da classe base `SettingManagementProvider`: - -````csharp -public class CustomSettingProvider : SettingManagementProvider, ITransientDependency -{ - public override string Name => "Custom"; - - public CustomSettingProvider(ISettingManagementStore store) - : base(store) - { - } -} -```` - -A classe base `SettingManagementProvider` faz a implementação padrão (usando o `ISettingManagementStore`) para você. Você pode substituir os métodos base conforme necessário. Todo provedor deve ter um nome exclusivo, que é `Custom` neste exemplo (mantenha-o curto, pois ele é salvo no banco de dados para cada registro de valor de configuração). - -Depois de criar sua classe de provedor, você deve registrá-la usando a classe de opções `SettingManagementOptions` [options class](../Options.md): - -````csharp -Configure(options => -{ - options.Providers.Add(); -}); -```` - -A ordem dos provedores é importante. Os provedores são executados na ordem inversa. Isso significa que o `CustomSettingProvider` é executado primeiro neste exemplo. Você pode inserir seu provedor em qualquer ordem na lista `Providers`. - -## Veja também - -* [Configurações](../Settings.md) - -## Interface de Gerenciamento de Configurações - -O módulo de Gerenciamento de Configurações fornece a interface de configuração de e-mail por padrão. - -![Interface de Configuração de E-mail](../images/setting-management-email-ui.png) - -> Você pode clicar no botão Enviar e-mail de teste para enviar um e-mail de teste e verificar suas configurações de e-mail. - -Ele é extensível; você pode adicionar suas guias a esta página para as configurações de sua aplicação. - -### Interface de Usuário MVC - -#### Criar um Componente de Visualização de Configuração - -Crie a pasta `MySettingGroup` dentro da pasta `Components`. Adicione um novo componente de visualização. Nomeie-o como `MySettingGroupViewComponent`: - -![MySettingGroupViewComponent](../images/my-setting-group-view-component.png) - -Abra o arquivo `MySettingGroupViewComponent.cs` e altere todo o conteúdo conforme mostrado abaixo: - -```csharp -public class MySettingGroupViewComponent : AbpViewComponent -{ - public virtual IViewComponentResult Invoke() - { - return View("~/Components/MySettingGroup/Default.cshtml"); - } -} -``` - -> Você também pode usar o método `InvokeAsync`, neste exemplo, usamos o método `Invoke`. - -#### Default.cshtml - -Crie um arquivo `Default.cshtml` dentro da pasta `MySettingGroup`. - -Abra o arquivo `Default.cshtml` e altere todo o conteúdo conforme mostrado abaixo: - -```html -
    -

    Página do meu grupo de configurações

    -
    -``` - -#### BookStoreSettingPageContributor - -Crie um arquivo `BookStoreSettingPageContributor.cs` dentro da pasta `Settings`: - -![BookStoreSettingPageContributor](../images/my-setting-group-page-contributor.png) - -O conteúdo do arquivo é mostrado abaixo: - -```csharp -public class BookStoreSettingPageContributor : ISettingPageContributor -{ - public Task ConfigureAsync(SettingPageCreationContext context) - { - context.Groups.Add( - new SettingPageGroup( - "Volo.Abp.MySettingGroup", - "MySettingGroup", - typeof(MySettingGroupViewComponent), - order : 1 - ) - ); - - return Task.CompletedTask; - } - - public Task CheckPermissionsAsync(SettingPageCreationContext context) - { - // Você pode verificar as permissões aqui - return Task.FromResult(true); - } -} -``` - -Abra o arquivo `BookStoreWebModule.cs` e adicione o seguinte código: - -```csharp -Configure(options => -{ - options.Contributors.Add(new BookStoreSettingPageContributor()); -}); -``` - -#### Executar a Aplicação - -Acesse a rota `/SettingManagement` para ver as alterações: - -![Guia de Configurações Personalizadas](../images/my-setting-group-ui.png) - -### Interface de Usuário Blazor - -#### Criar um Componente Razor - -Crie a pasta `MySettingGroup` dentro da pasta `Pages`. Adicione um novo componente Razor. Nomeie-o como `MySettingGroupComponent`: - -![MySettingGroupComponent](../images/my-setting-group-component.png) - -Abra o arquivo `MySettingGroupComponent.razor` e altere todo o conteúdo conforme mostrado abaixo: - -```csharp - -

    meu grupo de configurações

    -
    -``` - -#### BookStoreSettingComponentContributor - -Crie um arquivo `BookStoreSettingComponentContributor.cs` dentro da pasta `Settings`: - -![BookStoreSettingComponentContributor](../images/my-setting-group-component-contributor.png) - -O conteúdo do arquivo é mostrado abaixo: - -```csharp -public class BookStoreSettingComponentContributor : ISettingComponentContributor -{ - public Task ConfigureAsync(SettingComponentCreationContext context) - { - context.Groups.Add( - new SettingComponentGroup( - "Volo.Abp.MySettingGroup", - "MySettingGroup", - typeof(MySettingGroupComponent), - order : 1 - ) - ); - - return Task.CompletedTask; - } - - public Task CheckPermissionsAsync(SettingComponentCreationContext context) - { - // Você pode verificar as permissões aqui - return Task.FromResult(true); - } -} -``` - -Abra o arquivo `BookStoreBlazorModule.cs` e adicione o seguinte código: - -```csharp -Configure(options => -{ - options.Contributors.Add(new BookStoreSettingComponentContributor()); -}); -``` - -#### Executar a Aplicação - -Acesse a rota `/setting-management` para ver as alterações: - -![Guia de Configurações Personalizadas](../images/my-setting-group-blazor.png) - -### Interface de Usuário Angular - -#### Criar um Componente - -Crie um componente com o seguinte comando: - -```bash -yarn ng generate component my-settings -``` - -Abra o arquivo `app.component.ts` e modifique o arquivo conforme mostrado abaixo: - -```js -import { Component } from '@angular/core'; -import { SettingTabsService } from '@abp/ng.setting-management/config'; // importando SettingTabsService -import { MySettingsComponent } from './my-settings/my-settings.component'; // importando MySettingsComponent - -@Component(/* metadados do componente */) -export class AppComponent { - constructor(private settingTabs: SettingTabsService) // injetando MySettingsComponent - { - // adicionado abaixo - settingTabs.add([ - { - name: 'MySettings', - order: 1, - requiredPolicy: 'chave da política aqui', - component: MySettingsComponent, - }, - ]); - } -} -``` - -#### Executar a Aplicação - -Acesse a rota `/setting-management` para ver as alterações: - -![Guia de Configurações Personalizadas](../images/custom-settings.png) \ No newline at end of file diff --git a/docs/pt-BR/Modules/Tenant-Management.md b/docs/pt-BR/Modules/Tenant-Management.md deleted file mode 100644 index 2ff8d3c0a2..0000000000 --- a/docs/pt-BR/Modules/Tenant-Management.md +++ /dev/null @@ -1,134 +0,0 @@ -# Módulo de Gerenciamento de Inquilinos - -O [Multi-Tenancy](../Multi-Tenancy.md) é uma das principais características do ABP Framework. Ele fornece a infraestrutura fundamental para construir sua própria solução SaaS (Software-as-a-Service). O sistema de multi-tenancy do ABP abstrai onde seus inquilinos são armazenados, fornecendo a interface `ITenantStore`. Tudo que você precisa fazer é implementar essa interface. - -**O módulo de gerenciamento de inquilinos é uma implementação da interface `ITenantStore`. Ele armazena inquilinos em um banco de dados. Ele também fornece uma interface de usuário para gerenciar seus inquilinos e suas [funcionalidades](../Features.md).** - -> Por favor, **consulte a documentação do [Multi-Tenancy](../Multi-Tenancy.md)** para entender o sistema de multi-tenancy do ABP Framework. Este documento se concentra no módulo de gerenciamento de inquilinos. - -### Sobre o Módulo SaaS Comercial do ABP - -O [Módulo SaaS](https://commercial.abp.io/modules/Volo.Saas) é uma implementação alternativa deste módulo com mais funcionalidades e possibilidades. Ele é distribuído como parte da assinatura do [ABP Commercial](https://commercial.abp.io/). - -## Como Instalar - -Este módulo vem pré-instalado (como pacotes NuGet/NPM) quando você [cria uma nova solução](https://abp.io/get-started) com o ABP Framework. Você pode continuar a usá-lo como pacote e obter atualizações facilmente, ou pode incluir seu código-fonte em sua solução (consulte o comando `get-source` da [CLI](../CLI.md)) para desenvolver seu próprio módulo personalizado. - -### O Código Fonte - -O código-fonte deste módulo pode ser acessado [aqui](https://github.com/abpframework/abp/tree/dev/modules/tenant-management). O código-fonte é licenciado com [MIT](https://choosealicense.com/licenses/mit/), então você pode usá-lo e personalizá-lo livremente. - -## Interface de Usuário - -Este módulo adiciona o item de menu "*Administração -> Gerenciamento de Inquilinos -> Inquilinos*" ao menu principal do aplicativo, que abre a página mostrada abaixo: - -![module-tenant-management-page](../images/module-tenant-management-page.png) - -Nesta página, você vê todos os inquilinos. Você pode criar um novo inquilino conforme mostrado abaixo: - -![module-tenant-management-new-tenant](../images/module-tenant-management-new-tenant.png) - -Neste modal; - -* **Nome**: O nome único do inquilino. Se você usar subdomínios para seus inquilinos (como https://algum-inquilino.seu-domínio.com), este será o nome do subdomínio. -* **Endereço de E-mail do Administrador**: Endereço de e-mail do usuário administrador para este inquilino. -* **Senha do Administrador**: A senha do usuário administrador para este inquilino. - -Quando você clica no botão *Ações* próximo a um inquilino, você verá as ações que pode realizar: - -![module-tenant-management-actions](../images/module-tenant-management-actions.png) - -### Gerenciando as Funcionalidades do Inquilino - -A ação Funcionalidades abre um modal para habilitar/desabilitar/configurar [funcionalidades](../Features.md) para o inquilino relacionado. Aqui, um exemplo de modal: - -![features-modal](../images/features-modal.png) - -### Gerenciando as Funcionalidades do Host - -O botão *Gerenciar Funcionalidades do Host* é usado para configurar as funcionalidades do lado do host, se você usar as funcionalidades do seu aplicativo também no lado do host. - -## Eventos Distribuídos - -Este módulo define os seguintes ETOs (Event Transfer Objects) para permitir que você se inscreva em alterações nas entidades do módulo; - -- `TenantEto` é publicado em alterações feitas em uma entidade `Tenant`. - -**Exemplo: Receber uma notificação quando um novo inquilino for criado** - -```cs -public class MeuManipulador : - IDistributedEventHandler>, - ITransientDependency -{ - public async Task HandleEventAsync(EntityCreatedEto eventData) - { - TenantEto tenant = eventData.Entity; - // TODO: ... - } -} -``` - - - -`TenantEto` é configurado para publicar automaticamente os eventos. Você deve configurar-se para os outros. Consulte o documento [Distributed Event Bus](https://github.com/abpframework/abp/blob/rel-7.3/docs/en/Distributed-Event-Bus.md) para aprender detalhes dos eventos pré-definidos. - -> A inscrição nos eventos distribuídos é especialmente útil para cenários distribuídos (como arquitetura de microsserviços). Se você estiver construindo um aplicativo monolítico ou ouvindo eventos no mesmo processo que executa o Módulo de Gerenciamento de Inquilinos, então a inscrição nos [eventos locais](https://github.com/abpframework/abp/blob/rel-7.3/docs/en/Local-Event-Bus.md) pode ser mais eficiente e fácil. - -## Internos - -Esta seção pode ser usada como referência se você quiser [personalizar](../Customizing-Application-Modules-Guide.md) este módulo sem alterar [seu código-fonte](https://github.com/abpframework/abp/tree/dev/modules/tenant-management). - -### Camada de Domínio - -#### Agregados - -* `Tenant` - -#### Repositórios - -* `ITenantRepository` - -#### Serviços de Domínio - -* `TenantManager` - -### Camada de Aplicação - -#### Serviços de Aplicação - -* `TenantAppService` - -#### Permissões - -- `AbpTenantManagement.Tenants`: Gerenciamento de inquilinos. -- `AbpTenantManagement.Tenants.Create`: Criar um novo inquilino. -- `AbpTenantManagement.Tenants.Update`: Editar um inquilino existente. -- `AbpTenantManagement.Tenants.Delete`: Excluir um inquilino existente. -- `AbpTenantManagement.Tenants.ManageFeatures`: Gerenciar as funcionalidades dos inquilinos. - -### Integração com o Entity Framework Core - -* `TenantManagementDbContext` (implementa `ITenantManagementDbContext`) - -**Tabelas do Banco de Dados:** - -* `AbpTenants` -* `AbpTenantConnectionStrings` - -### Integração com o MongoDB - -* `TenantManagementMongoDbContext` (implementa `ITenantManagementMongoDbContext`) - -**Coleções do Banco de Dados:** - -* `AbpTenants` (inclui também a string de conexão) - -## Avisos - -O ABP Framework permite usar a abordagem *banco de dados por inquilino*, que permite que um inquilino tenha um banco de dados dedicado. Este módulo possui a infraestrutura fundamental para tornar essa implementação possível (consulte seu código-fonte), no entanto, ele não implementa a camada de aplicação e as funcionalidades de interface do usuário para fornecê-lo como uma implementação pronta para uso. Você pode implementar esses recursos por conta própria ou considerar o uso do [Módulo SaaS Comercial do ABP](https://docs.abp.io/en/commercial/latest/modules/saas), que o implementa completamente e fornece muito mais recursos de negócios. - -## Veja Também - -* [Multi-Tenancy](../Multi-Tenancy.md) -* [Módulo SaaS Comercial do ABP](https://docs.abp.io/en/commercial/latest/modules/saas) \ No newline at end of file diff --git a/docs/pt-BR/Modules/Virtual-File-Explorer.md b/docs/pt-BR/Modules/Virtual-File-Explorer.md deleted file mode 100644 index 42cbd9f044..0000000000 --- a/docs/pt-BR/Modules/Virtual-File-Explorer.md +++ /dev/null @@ -1,87 +0,0 @@ -# Módulo de Explorador de Arquivos Virtual - -## O que é o Módulo de Explorador de Arquivos Virtual? - -O Módulo de Explorador de Arquivos Virtual fornece uma interface de usuário simples para visualizar todos os arquivos no [sistema de arquivos virtual](../Virtual-File-System.md). - -> O Módulo de Explorador de Arquivos Virtual não está instalado nos [modelos de inicialização](../Startup-Templates/Index.md). Portanto, você precisa adicionar manualmente este módulo à sua aplicação. - -### Instalação - -#### 1- Usando o ABP CLI - -Recomenda-se usar o [ABP CLI](../CLI.md) para instalar o módulo. Abra a janela do CMD no diretório do arquivo de solução (`.sln`) e execute o seguinte comando: - -``` -abp add-module Volo.VirtualFileExplorer -``` - -> Se você ainda não o fez, primeiro precisa instalar o [ABP CLI](../CLI.md). Para outras opções de instalação, consulte [a página de descrição do pacote](https://abp.io/package-detail/Volo.Abp.VirtualFileExplorer.Web). - -#### 2- Instalação manual - -Ou você também pode instalar manualmente o pacote nuget no projeto `Acme.MyProject.Web`: - -* Instale o pacote nuget [Volo.Abp.VirtualFileExplorer.Web](https://www.nuget.org/packages/Volo.Abp.VirtualFileExplorer.Web/) no projeto `Acme.MyProject.Web`. - - `Install-Package Volo.Abp.VirtualFileExplorer.Web` - -##### 2.1- Adicionando Dependências do Módulo - - * Abra `MyProjectWebModule.cs` e adicione `typeof(AbpVirtualFileExplorerWebModule)` como mostrado abaixo; - - ```csharp - [DependsOn( - typeof(AbpVirtualFileExplorerWebModule), - typeof(MyProjectApplicationModule), - typeof(MyProjectEntityFrameworkCoreModule), - typeof(AbpAutofacModule), - typeof(AbpIdentityWebModule), - typeof(AbpAccountWebModule), - typeof(AbpAspNetCoreMvcUiBasicThemeModule) - )] - public class MyProjectWebModule : AbpModule - { - //... - } - ``` - -##### 2.2- Adicionando Pacote NPM - - * Abra `package.json` e adicione `@abp/virtual-file-explorer": "^2.9.0` como mostrado abaixo: - - ```json - { - "version": "1.0.0", - "name": "my-app", - "private": true, - "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^2.9.0", - "@abp/virtual-file-explorer": "^2.9.0" - } - } - ``` - - Em seguida, abra o terminal de linha de comando na pasta do projeto `Acme.MyProject.Web` e execute o seguinte comando: - -````bash -abp install-libs -```` - -Isso é tudo, agora execute a aplicação e navegue até `/VirtualFileExplorer`. Você verá a página do explorador de arquivos virtual: - -![Virtual-File-Explorer](../images/virtual-file-explorer.png) - -### Opções - -Você pode desativar o módulo de explorador de arquivos virtual através das opções `AbpVirtualFileExplorerOptions`: - -```csharp -public override void PreConfigureServices(ServiceConfigurationContext context) -{ - PreConfigure(options => - { - options.IsEnabled = false; - }); -} -``` \ No newline at end of file diff --git a/docs/pt-BR/MongoDB.md b/docs/pt-BR/MongoDB.md deleted file mode 100644 index c7ad2ef1c3..0000000000 --- a/docs/pt-BR/MongoDB.md +++ /dev/null @@ -1,466 +0,0 @@ -# Integração do MongoDB - -Este documento explica como integrar e configurar o MongoDB como um provedor de banco de dados para aplicações baseadas no ABP. - -## Instalação - -`Volo.Abp.MongoDB` é o pacote nuget principal para a integração do MongoDB. Instale-o em seu projeto (para uma aplicação em camadas, será sua camada de dados ou infraestrutura): - -``` -Install-Package Volo.Abp.MongoDB -``` - -Então adicione a dependência de módulo `AbpMongoDbModule` para o seu [module](Module-Development-Basics.md): - -```c# -using Volo.Abp.MongoDB; -using Volo.Abp.Modularity; - -namespace MyCompany.MyProject -{ - [DependsOn(typeof(AbpMongoDbModule))] - public class MyModule : AbpModule - { - // ... - } -} -``` - -## Criando um Mongo Db Context - -ABP apresenta o conceito **Mongo Db Context** (que é semelhante ao Entity Framework Core DbContext) para tornar mais fácil usar coleções e configurá-las. Um exemplo é mostrado abaixo: - -```c# -public class MyDbContext : AbpMongoDbContext -{ - public IMongoCollection Questions => Collection(); - - public IMongoCollection Categories => Collection(); - - protected override void CreateModel(IMongoModelBuilder modelBuilder) - { - base.CreateModel(modelBuilder); - - // Personalize a configuração para as suas collections. - } -} -``` - -* É derivado da classe `AbpMongoDbContext`. -* Adiciona uma propriedade pública `IMongoCollection` para cada mongo collection. Por padrão ABP usa essas propriedades para criar repositórios padrão. -* Substituir o método `CreateModel` permite definir a configuração da collection. - -### Configurar o Mapeamento para uma Collection - -ABP registra automaticamente entidades MongoDB client library para todas propriedades `IMongoCollection` em seu DbContext. Para o exemplo acima, as entidades `Question` e `Category` são registradas automaticamente. - -Para cada entidade registrada, chama `AutoMap()` e configura propriedades conhecidas de sua entidade. Por exemplo, se sua entidade implementa uma interface `IHasExtraProperties` (que já está implementada para cada raiz agregada por padrão), ele configura automaticamente `ExtraProperties`. - -Portanto, na maioria das vezes, você não precisa configurar explicitamente o registro de suas entidades. No entanto, se você precisar, pode fazer isso sobrescrevendo o método `CreateModel` em seu DbContext. Exemplo: - -````csharp -protected override void CreateModel(IMongoModelBuilder modelBuilder) -{ - base.CreateModel(modelBuilder); - - modelBuilder.Entity(b => - { - b.CollectionName = "MyQuestions"; // Define o nome da collection - b.BsonMap.UnmapProperty(x => x.MyProperty); // Ignora 'MyProperty' - }); -} -```` - -Este exemplo altera o nome da collection mapeada para 'MyQuestions' no banco de dados e ignora uma propriedade na classe `Question`. - -Se você só precisa configurar o nome da collection, você também pode usar o atributo `[MongoCollection]` para a collection em seu DbContext. Exemplo: - -````csharp -[MongoCollection("MyQuestions")] // Define o nome da collection -public IMongoCollection Questions => Collection(); -```` - -### Configurar a Seleção da String de Conexão - -Se você tiver vários bancos de dados em seu aplicativo, você pode configurar o nome da string de conexão para o seu DbContext usando o atributo `[ConnectionStringName]`. Exemplo: - -````csharp -[ConnectionStringName("MySecondConnString")] -public class MyDbContext : AbpMongoDbContext -{ - -} -```` - -Se você não configurar, a string de conexão `Default` é usada. Se você configurar um nome de string de conexão, mas não definir este nome da string de conexão na configuração da aplicação, então ele retorna para a string de conexão `Default`. - -## Registrando DbContext para Injeção de Dependência - -Use o método `AddAbpDbContext` em seu module para registrar sua classe DbContext para o sistema de [injeção de dependência](Dependency-Injection.md). - -```c# -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp.MongoDB; -using Volo.Abp.Modularity; - -namespace MyCompany.MyProject -{ - [DependsOn(typeof(AbpMongoDbModule))] - public class MyModule : AbpModule - { - public override void ConfigureServices(ServiceConfigurationContext context) - { - context.Services.AddMongoDbContext(); - - // ... - } - } -} -``` - -### Adicionar Repositories Padrão - -O ABP pode criar automaticamente [repositories genéricas](Repositories.md) padrão para as entidades em seu DbContext. Basta usar a opção `AddDefaultRepositories()` no registro: - -````C# -services.AddMongoDbContext(options => -{ - options.AddDefaultRepositories(); -}); -```` - -Isso criará uma repository para cada [aggregate root entity](Entities.md) (classes derivadas de `AggregateRoot`) por padrão. Se você quiser criar repositories para outras entidades também, em seguida defina `includeAllEntities` para `true`: - -```c# -services.AddMongoDbContext(options => -{ - options.AddDefaultRepositories(includeAllEntities: true); -}); -``` - -Então você pode injetar e usar `IRepository` nas suas services. Suponha que você tenha uma entidade `Book` com a chave primária `Guid`: - -```csharp -public class Book : AggregateRoot -{ - public string Name { get; set; } - - public BookType Type { get; set; } -} -``` - -(`BookType` é um simples `enum` aqui) E você deseja criar uma nova entidade `Book` em uma [domain service](Domain-Services.md): - -```csharp -public class BookManager : DomainService -{ - private readonly IRepository _bookRepository; - - public BookManager(IRepository bookRepository) // injetar repositório padrão - { - _bookRepository = bookRepository; - } - - public async Task CreateBook(string name, BookType type) - { - Check.NotNullOrWhiteSpace(name, nameof(name)); - - var book = new Book - { - Id = GuidGenerator.Create(), - Name = name, - Type = type - }; - - await _bookRepository.InsertAsync(book); // Use um método de repositório padrão - - return book; - } -} -``` - -Este exemplo usa o método `InsertAsync` para inserir uma nova entity no banco de dados. - -### Adicionar Repositories Personalizadas - -Repositories genéricas padrão são poderosas e suficiente na maioria dos casos (uma vez que implementam `IQueryable`). No entanto, pode ser necessário criar uma repository customizada para adicionar seus próprios métodos de repository. - -Suponha que você deseja excluir todos os books por type. É sugerido definir uma interface para sua repository personalizada: - -```csharp -public interface IBookRepository : IRepository -{ - Task DeleteBooksByType( - BookType type, - CancellationToken cancellationToken = default(CancellationToken) - ); -} -``` - -Você geralmente vai querer derivar de `IRepository` para herdar métodos de repository padrão. No entanto, você não precisa. As interfaces de repository são definidas na camada de domínio de uma aplicação em camadas. Elas são implementadas na camada de dados ou infraestrutura (projeto `MongoDB` em um [startup template](https://abp.io/Templates)). - -Exemplo de implementação da interface `IBookRepository`: - -```csharp -public class BookRepository : - MongoDbRepository, - IBookRepository -{ - public BookRepository(IMongoDbContextProvider dbContextProvider) - : base(dbContextProvider) - { - } - - public async Task DeleteBooksByType( - BookType type, - CancellationToken cancellationToken = default(CancellationToken)) - { - var collection = await GetCollectionAsync(cancellationToken); - await collection.DeleteManyAsync( - Builders.Filter.Eq(b => b.Type, type), - cancellationToken - ); - } -} -``` - -Agora é possível [injetar](Dependency-Injection.md) a `IBookRepository` e usar o método `DeleteBooksByType` quando necessário. - -#### Substituir Repository Genérica Padrão - -Mesmo se você criar uma repository personalizada, você ainda pode injetar a repository genérica padrão (`IRepository` para este exemplo). A implementação da repository padrão não usará a classe que você criou. - -Se você querer substituir a implementação da repository padrão pela sua repository personalizada, faça dentro das opções `AddMongoDbContext`: - -```csharp -context.Services.AddMongoDbContext(options => -{ - options.AddDefaultRepositories(); - options.AddRepository(); //Replaces IRepository -}); -``` - -Isso é especialmente importante quando você deseja dar **override em um método da base repository** para customizar. Por exemplo, você pode querer substituir o método `DeleteAsync` para excluir uma entidade de uma forma mais eficiente: - -```csharp -public async override Task DeleteAsync( - Guid id, - bool autoSave = false, - CancellationToken cancellationToken = default) -{ - // TODO: Implementação customizada do método delete -} -``` - -### Acesso à API MongoDB - -Na maioria dos casos, você vai querer ocultar APIs do MongoDB atrás de uma repository (este é o objetivo principal da repository). No entanto, se você quiser acessar a API MongoDB através da Repository, você pode usar os métodos de extensão `GetDatabaseAsync()`, `GetCollectionAsync()` ou `GetAggregateAsync()`. Exemplo: - -```csharp -public class BookService -{ - private readonly IRepository _bookRepository; - - public BookService(IRepository bookRepository) - { - _bookRepository = bookRepository; - } - - public async Task FooAsync() - { - IMongoDatabase database = await _bookRepository.GetDatabaseAsync(); - IMongoCollection books = await _bookRepository.GetCollectionAsync(); - IAggregateFluent bookAggregate = await _bookRepository.GetAggregateAsync(); - } -} -``` - -> Importante: Você deve fazer referência ao pacote `Volo.Abp.MongoDB` do projeto que deseja acessar a API MongoDB. Isso quebra o encapsulamento, mas é o que você deseja nesse caso. - -### Transactions - -O MongoDB oferece suporte multi-document transactions a partir da versão 4.0 e o ABP Framework oferece suporte para isso. No entanto, o [startup template](Startup-Templates/Index.md) **desativa** transactions por padrão. Se o seu **servidor** MongoDB suportar transactions, você pode habilitar esse recurso na classe *YourProjectMongoDbModule*: - -```csharp -Configure(options => -{ - options.TransactionBehavior = UnitOfWorkTransactionBehavior.Auto; -}); -``` - -> Ou você pode excluir este código, pois este já é o comportamento padrão. - -### Tópicos Avançados - -### Controlando o Multi-Tenancy - -Se sua solução for [multi-tenant](Multi-Tenancy.md), os tenants podem ter **bancos de dados separados**, você tem **múltiplas** classes `DbContext` em sua solução e algumas de suas classes `DbContext` devem ser utilizáveis **apenas do lado do host**, é recomendado adicionar o atributo `[IgnoreMultiTenancy]` em sua classe `DbContext`. Nesse caso, a ABP garante que o `DbContext` relacionado sempre usa a [connection string](Connection-Strings.md) do host, mesmo se você estiver em um tenant context. - -**Exemplo:** - -````csharp -[IgnoreMultiTenancy] -public class MyDbContext : AbpMongoDbContext -{ - ... -} -```` - -Não use o atributo `[IgnoreMultiTenancy]` se qualquer uma de suas entidades em seu `DbContext` puder ser persistida em um outro banco de dados de um tenant. - -> When you use repositories, ABP already uses the host database for the entities don't implement the `IMultiTenant` interface. So, most of time you don't need to `[IgnoreMultiTenancy]` attribute if you are using the repositories to work with the database. - -#### Definir Classes Repository Padrão - -Repositories genéricas padrão são implementadas pela classe `MongoDbRepository` por padrão. Você pode criar sua própria implementação e usá-la para implementação da repository padrão. - -Primeiro, defina suas classes de repository assim: - -```csharp -public class MyRepositoryBase - : MongoDbRepository - where TEntity : class, IEntity -{ - public MyRepositoryBase(IMongoDbContextProvider dbContextProvider) - : base(dbContextProvider) - { - } -} - -public class MyRepositoryBase - : MongoDbRepository - where TEntity : class, IEntity -{ - public MyRepositoryBase(IMongoDbContextProvider dbContextProvider) - : base(dbContextProvider) - { - } -} -``` - -O primeiro é para [entities com chaves compostas](Entities.md), o segundo é para entities com uma única chave primária. - -É sugerido herdar da classe `MongoDbRepository` e substituir os métodos, se necessário. Caso contrário, você terá que implementar todos os métodos de repository padrão manualmente. - -Agora, você pode usar a opção `SetDefaultRepositoryClasses`: - -```csharp -context.Services.AddMongoDbContext(options => -{ - options.SetDefaultRepositoryClasses( - typeof(MyRepositoryBase<,>), - typeof(MyRepositoryBase<>) - ); - // ... -}); -``` - -#### Definir classe base MongoDbContext ou Interface para Repositories padrão - -Se seu MongoDbContext herda de outro MongoDbContext ou implementa uma interface, você pode usar essa classe base ou interface como o MongoDbContext para repositories padrão. Exemplo: - -```csharp -public interface IBookStoreMongoDbContext : IAbpMongoDbContext -{ - Collection Books { get; } -} -``` - -`IBookStoreMongoDbContext` é implementado pela classe `BookStoreMongoDbContext`. Então você pode usar sobrecarga genérica do `AddDefaultRepositories`: - -```csharp -context.Services.AddMongoDbContext(options => -{ - options.AddDefaultRepositories(); - // ... -}); -``` - -Agora, seu `BookRepository` personalizado também pode usar a interface `IBookStoreMongoDbContext`: - -```csharp -public class BookRepository - : MongoDbRepository, - IBookRepository -{ - // ... -} -``` - -Uma vantagem de usar a interface para um MongoDbContext é que ela pode ser substituída por outra implementação. - -#### Substituir Outros DbContexts - -Depois de definir e usar adequadamente uma interface para um MongoDbContext, qualquer outra implementação pode usar as seguintes maneiras de substituí-lo: - -**ReplaceDbContextAttribute** - -```csharp -[ReplaceDbContext(typeof(IBookStoreMongoDbContext))] -public class OtherMongoDbContext : AbpMongoDbContext, IBookStoreMongoDbContext -{ - // ... -} -``` - -**Opção ReplaceDbContext** - -```csharp -context.Services.AddMongoDbContext(options => -{ - // ... - options.ReplaceDbContext(); -}); -``` - -Neste exemplo, `OtherMongoDbContext` implementa `IBookStoreMongoDbContext`. Este recurso permite que você tenha vários MongoDbContext (um por módulo) no desenvolvimento, mas um único MongoDbContext (implementa todas as interfaces de todos os MongoDbContexts) no tempo de execução. - -### Personalizar Operações em Massa - -Se você tiver uma lógica melhor ou usar uma biblioteca externa para operações em massa, pode substituir a lógica por meio da implementação de `IMongoDbBulkOperationProvider`. - -- Você pode usar o modelo de exemplo abaixo: - -```csharp -public class MyCustomMongoDbBulkOperationProvider - : IMongoDbBulkOperationProvider, ITransientDependency -{ - public async Task DeleteManyAsync( - IMongoDbRepository repository, - IEnumerable entities, - IClientSessionHandle sessionHandle, - bool autoSave, - CancellationToken cancellationToken) - where TEntity : class, IEntity - { - // Sua lógica aqui. - } - - public async Task InsertManyAsync( - IMongoDbRepository repository, - IEnumerable entities, - IClientSessionHandle sessionHandle, - bool autoSave, - CancellationToken cancellationToken) - where TEntity : class, IEntity - { - // Sua lógica aqui. - } - - public async Task UpdateManyAsync( - IMongoDbRepository repository, - IEnumerable entities, - IClientSessionHandle sessionHandle, - bool autoSave, - CancellationToken cancellationToken) - where TEntity : class, IEntity - { - // Sua lógica aqui. - } -} -``` - -## Veja Também - -* [Entities](Entities.md) -* [Repositories](Repositories.md) \ No newline at end of file diff --git a/docs/pt-BR/Nightly-Builds.md b/docs/pt-BR/Nightly-Builds.md deleted file mode 100644 index 9d3e49ccf6..0000000000 --- a/docs/pt-BR/Nightly-Builds.md +++ /dev/null @@ -1,27 +0,0 @@ -# Compilações Noturnas - -Todos os pacotes de estrutura e módulo são implantados no MyGet todas as noites durante a semana. Portanto, você pode usar ou testar o código mais recente sem aguardar o próximo lançamento. - -## Configurar o Visual Studio - -> Requer Visual Studio 2017 ou superior - -1. Vá para `Tools > Options > NuGet Package Manager > Package Source`. -2. Clique no `+` ícone verde . -3. Defina `ABP Nightly`como *Nome* e `https://www.myget.org/F/abp-nightly/api/v3/index.json`como a *Fonte,* como mostrado abaixo: ![noite-compilação-adicionar-pepita-fonte](images/night-build-add-nuget-source.png) -4. Clique no `Update` botão -5. Clique no `OK` botão para salvar as alterações. - -## Instalar pacote - -Agora, você pode instalar pacotes noturnos / de visualização no seu projeto a partir do Nuget Browser ou do Package Manager Console. - -![night-build-add-nuget-package](images/night-build-add-nuget-package.png) - -1. No Nuget Browser, selecione "Incluir pré-lançamentos". -2. Altere a fonte do pacote para "Todos". -3. Pesquise um pacote. Você verá as pré *-liberações* do pacote formatadas como `(VERSION)-preview(DATE)`(como *v0.16.0-preview20190401* neste exemplo). -4. Você pode clicar no `Install`botão para adicionar um pacote ao seu projeto. - - - \ No newline at end of file diff --git a/docs/pt-BR/Object-To-Object-Mapping.md b/docs/pt-BR/Object-To-Object-Mapping.md deleted file mode 100644 index 7d5f74a3fe..0000000000 --- a/docs/pt-BR/Object-To-Object-Mapping.md +++ /dev/null @@ -1,3 +0,0 @@ -## Object To Object Mapping - -Façam \ No newline at end of file diff --git a/docs/pt-BR/SMS-Sending.md b/docs/pt-BR/SMS-Sending.md deleted file mode 100644 index ca704cad19..0000000000 --- a/docs/pt-BR/SMS-Sending.md +++ /dev/null @@ -1,3 +0,0 @@ -# Emailing - -Façam! \ No newline at end of file diff --git a/docs/pt-BR/Settings.md b/docs/pt-BR/Settings.md deleted file mode 100644 index ffc08071a2..0000000000 --- a/docs/pt-BR/Settings.md +++ /dev/null @@ -1,3 +0,0 @@ -# Settings - -Façam! \ No newline at end of file diff --git a/docs/pt-BR/Specifications.md b/docs/pt-BR/Specifications.md deleted file mode 100644 index 19a9db8a27..0000000000 --- a/docs/pt-BR/Specifications.md +++ /dev/null @@ -1,3 +0,0 @@ -# Specifications - -Façam! \ No newline at end of file diff --git a/docs/pt-BR/Startup-Templates/Application.md b/docs/pt-BR/Startup-Templates/Application.md deleted file mode 100644 index 24120a9d1c..0000000000 --- a/docs/pt-BR/Startup-Templates/Application.md +++ /dev/null @@ -1,275 +0,0 @@ -# Modelo de inicialização do aplicativo - -## Introdução - -Este modelo fornece uma estrutura de aplicativo em camadas com base nas práticas DDD ([Domain Driven Design](../Domain-Driven-Design.md)). Este documento explica a estrutura da solução e os projetos em detalhes. Se você deseja iniciar rapidamente, siga os guias abaixo: - -- Consulte [Introdução ao modelo do ASP.NET Core MVC](../Getting-Started-AspNetCore-MVC-Template.md) para criar uma nova solução e executá-la para este modelo (usa o MVC como a estrutura da interface do usuário e o Entity Framework Core como o provedor de banco de dados). -- Consulte o [Tutorial de desenvolvimento de aplicativos do ASP.NET Core MVC](../Tutorials/AspNetCore-Mvc/Part-I.md) para aprender como desenvolver aplicativos usando este modelo (usa o MVC como a estrutura da interface do usuário e o Entity Framework Core como o provedor de banco de dados). -- Consulte o [Tutorial de desenvolvimento de aplicativos Angular](../Tutorials/Angular/Part-I.md) para aprender como desenvolver aplicativos usando este modelo (usa Angular como a estrutura da interface do usuário e MongoDB como o provedor de banco de dados). - -## Como começar? - -Você pode usar a [ABP CLI](../CLI.md) para criar um novo projeto usando este modelo de inicialização. Como alternativa, você pode criar e fazer o download diretamente na página [Introdução](https://abp.io/get-started) . A abordagem CLI é usada aqui. - -Primeiro, instale a ABP CLI se você não tiver instalado antes: - -```bash -dotnet tool install -g Volo.Abp.Cli -``` - -Em seguida, use o `abp new`comando em uma pasta vazia para criar uma nova solução: - -```bash -abp new Acme.BookStore -t app -``` - -- `Acme.BookStore`é o nome da solução, como *YourCompany.YourProduct* . Você pode usar nomes de nível único, dois ou três níveis. -- Este exemplo especificou o nome do modelo ( `-t`ou `--template`opção). No entanto, `app`já é o modelo padrão se você não o especificar. - -### Especifique a estrutura da interface do usuário - -Este modelo fornece várias estruturas de interface do usuário: - -- `mvc`: Interface do usuário do ASP.NET Core MVC com Razor Pages (padrão) -- `angular`: UI angular - -Use `-u`ou `--ui`opção para especificar a estrutura da interface do usuário: - -```bash -abp new Acme.BookStore -u angular -``` - -### Especifique o provedor de banco de dados - -Este modelo suporta os seguintes provedores de banco de dados: - -- `ef`: Entity Framework Core (padrão) -- `mongodb`: MongoDB - -Use a opção `-d`(ou `--database-provider`) para especificar o provedor de banco de dados: - -```bash -abp new Acme.BookStore -d mongodb -``` - -## Estrutura da solução - -Com base nas opções especificadas, você obterá uma estrutura de solução ligeiramente diferente. - -### Estrutura padrão - -Se você não especificar nenhuma opção adicional, terá uma solução como a mostrada abaixo: - -![livraria-visual-studio-solution-v3](../images/bookstore-visual-studio-solution-v3.png) - -Os projetos são organizados em `src`e `test`pastas. `src`A pasta contém o aplicativo real que está em camadas com base nos princípios [DDD](https://docs.abp.io/en/abp/latest/Domain-Driven-Design) , como mencionado anteriormente. - -O diagrama abaixo mostra as camadas e dependências do projeto do aplicativo: - -![dependências de projeto em camadas](../images/layered-project-dependencies.png) - -Cada seção abaixo explicará o projeto relacionado e suas dependências. - -#### Projeto .Domain.Shared - -Este projeto contém constantes, enumerações e outros objetos. Na verdade, eles fazem parte da camada de domínio, mas precisam ser usados por todas as camadas / projetos da solução. - -Um `BookType`enum e uma `BookConsts`classe (que podem ter alguns campos constantes para a `Book`entidade, como `MaxNameLength`) são bons candidatos para este projeto. - -- Este projeto não depende de outros projetos na solução. Todos os outros projetos dependem disso direta ou indiretamente. - -#### .Domain Project - -Essa é a camada de domínio da solução. Ele contém principalmente [entidades, raízes agregadas](../Entities.md) , [serviços de domínio](../Domain-Services.md) , [tipos de valor](../Value-Types.md) , [interfaces de repositório](../Repositories) e outros objetos de domínio. - -Uma `Book`entidade, um `BookManager`serviço de domínio e uma `IBookRepository`interface são bons candidatos para este projeto. - -- Depende do `.Domain.Shared`porque usa constantes, enumerações e outros objetos definidos nesse projeto. - -#### .Application.Contracts Project - -Este projeto contém principalmente **interfaces de** [serviço de aplicativo](../Application-Services.md) e DTO ( [Data Transfer Objects](../Data-Transfer-Objects.md) ) da camada de aplicativo. Existe para separar a interface e a implementação da camada de aplicação. Dessa forma, o projeto de interface pode ser compartilhado com os clientes como um pacote de contrato. - -Uma `IBookAppService`interface e uma `BookCreationDto`classe são boas candidatas para este projeto. - -- Depende do `.Domain.Shared`porque ele pode usar constantes, enumerações e outros objetos compartilhados deste projeto nas interfaces de serviço de aplicativo e DTOs. - -#### Projeto de Aplicação - -Este projeto contém as **implementações** de [serviço de aplicativo](../Application-Services.md) das interfaces definidas no projeto.`.Application.Contracts` - -Uma `BookAppService`turma é uma boa candidata para este projeto. - -- Depende do `.Application.Contracts`projeto para poder implementar as interfaces e usar os DTOs. -- Depende do `.Domain`projeto para poder usar objetos de domínio (entidades, interfaces de repositório ... etc.) para executar a lógica do aplicativo. - -#### Projeto .EntityFrameworkCore - -Este é o projeto de integração para o EF Core. Ele define `DbContext`e implementa as interfaces de repositório definidas no `.Domain`projeto. - -- Depende do `.Domain`projeto para poder fazer referência a entidades e interfaces de repositório. - -> Este projeto está disponível apenas se você estiver usando o EF Core como provedor de banco de dados. Se você selecionar outro provedor de banco de dados, seu nome será diferente. - -#### Projeto .EntityFrameworkCore.DbMigrations - -Contém migrações de banco de dados EF Core para a solução. Ele foi separado `DbContext`para dedicado a gerenciar migrações. - -ABP é uma estrutura modular e com um design ideal, cada módulo tem sua própria `DbContext`classe. É aqui que a migração `DbContext`entra em ação e unifica todas as `DbContext`configurações em um único modelo para manter um único esquema de banco de dados. Para cenários mais avançados, você pode ter vários bancos de dados (cada um contém uma única ou algumas tabelas de módulos) e várias migrações `DbContext`(cada uma mantém um esquema de banco de dados diferente). - -Observe que a migração `DbContext`é usada apenas para migrações de banco de dados e *não em tempo de execução* . - -- Depende do `.EntityFrameworkCore`projeto, pois reutiliza a configuração definida para `DbContext`o aplicativo. - -> Este projeto está disponível apenas se você estiver usando o EF Core como provedor de banco de dados. - -#### Projeto .DbMigrator - -Este é um aplicativo de console que simplifica a execução de migrações de banco de dados em ambientes de desenvolvimento e produção. Quando você executa este aplicativo, ele; - -- Cria o banco de dados, se necessário. -- Aplica as migrações de banco de dados pendentes. -- Semeia os dados iniciais, se necessário. - -> Este projeto possui seu próprio `appsettings.json`arquivo. Portanto, se você deseja alterar a cadeia de conexão do banco de dados, lembre-se de alterar também esse arquivo. - -Especialmente, semear dados iniciais é importante neste momento. A ABP possui uma infraestrutura modular de semente de dados. Consulte [a documentação](../Data-Seeding.md) para obter mais informações sobre a propagação de dados. - -Embora a criação de banco de dados e a aplicação de migrações pareça necessária apenas para bancos de dados relacionais, esse projeto ocorre mesmo que você escolha um provedor de banco de dados NoSQL (como o MongoDB). Nesse caso, ele ainda semeia os dados iniciais necessários para a aplicação. - -- Depende do `.EntityFrameworkCore.DbMigrations`projeto (para EF Core), pois ele precisa acessar as migrações. -- Depende do `.Application.Contracts`projeto para poder acessar as definições de permissão, porque o semeador de dados inicial concede todas as permissões para a função de administrador por padrão. - -#### Projeto .HttpApi - -Este projeto é usado para definir seus controladores de API. - -Na maioria das vezes, você não precisa definir manualmente os controladores de API, pois o recurso de [controladores de API automática](../AspNetCore/Auto-API-Controllers.md) da ABP os cria automaticamente, com base na sua camada de aplicação. No entanto, no caso de você precisar escrever controladores de API, este é o melhor lugar para fazê-lo. - -- Depende do `.Application.Contracts`projeto para poder injetar as interfaces de serviço do aplicativo. - -#### Projeto .HttpApi.Client - -Este é um projeto que define os proxies do cliente C # para usar as APIs HTTP da solução. Você pode compartilhar essa biblioteca com clientes de terceiros, para que eles consumam facilmente suas APIs HTTP em seus aplicativos Dotnet (para outros tipos de aplicativos, eles ainda podem usar suas APIs, manualmente ou usando uma ferramenta em sua própria plataforma) - -Na maioria das vezes, você não precisa criar proxies de clientes C # manualmente, graças ao recurso [Dynamic C # API Clients](../AspNetCore/Dynamic-CSharp-API-Clients.md) da ABP . - -`.HttpApi.Client.ConsoleTestApp` project é um aplicativo de console criado para demonstrar o uso dos proxies do cliente. - -- Depende do `.Application.Contracts`projeto para poder compartilhar as mesmas interfaces de serviço de aplicativo e DTOs com o serviço remoto. - -> Você pode excluir este projeto e dependências se não precisar criar proxies de cliente C # para suas APIs. - -#### Projeto .Web - -Este projeto contém a interface do usuário (UI) do aplicativo se você estiver usando a interface do usuário do ASP.NET Core MVC. Ele contém páginas Razor, arquivos JavaScript, arquivos CSS, imagens e assim por diante ... - -Este projeto contém o `appsettings.json`arquivo principal que contém a cadeia de conexão e outras configurações do aplicativo. - -- Depende da `.HttpApi`camada de interface do usuário que precisa usar APIs e interfaces de serviço de aplicativo da solução. - -> Se você verificar o código fonte do `.Web.csproj`arquivo, verá as referências aos `.Application`e aos `.EntityFrameworkCore.DbMigrations`projetos. -> -> Na verdade, essas referências não são necessárias durante a codificação da camada da interface do usuário, porque a camada da interface do usuário normalmente não depende da implementação do EF Core ou da camada do Aplicativo. Esses modelos de inicialização estão prontos para a implantação em camadas, em que a camada da API está hospedada em um servidor separado da camada da interface do usuário. -> -> No entanto, se você não escolher a opção `--tiered`, essas referências estarão no projeto .Web para poder hospedar as camadas da Web, API e aplicativos em um único ponto de extremidade do aplicativo. -> -> Isso permite que você use entidades e repositórios de domínio em sua camada de apresentação. No entanto, isso é considerado uma má prática de acordo com o DDD. - -#### Projetos de teste - -A solução possui vários projetos de teste, um para cada camada: - -- `.Domain.Tests` é usado para testar a camada de domínio. -- `.Application.Tests` é usado para testar a camada de aplicativo. -- `.EntityFrameworkCore.Tests` é usado para testar a configuração do EF Core e os repositórios personalizados. -- `.Web.Tests` é usado para testar a interface do usuário (se você estiver usando a interface do ASP.NET Core MVC). -- `.TestBase` é um projeto básico (compartilhado) para todos os testes. - -Além disso, `.HttpApi.Client.ConsoleTestApp`é um aplicativo de console (não um projeto de teste automatizado) que demonstra o uso de APIs HTTP de um aplicativo .NET. - -Projetos de teste são preparados para testes de integração; - -- É totalmente integrado à estrutura ABP e a todos os serviços em sua aplicação. -- Ele usa o banco de dados SQLite na memória para o EF Core. Para o MongoDB, ele usa a biblioteca [EphemeralMongo](https://github.com/asimmon/ephemeral-mongo) . -- A autorização está desabilitada, portanto, qualquer serviço de aplicativo pode ser facilmente usado em testes. - -Você ainda pode criar testes de unidade para suas classes, que serão mais difíceis de escrever (porque você precisará preparar objetos simulados / falsos), mas mais rápidos de executar (porque apenas testa uma única classe e ignora todo o processo de inicialização). - -#### Como correr? - -Defina `.Web`como o projeto de inicialização e execute o aplicativo. O nome de usuário padrão é `admin`e a senha é `1q2w3E*`. - -Consulte [Introdução ao modelo ASP.NET Core MVC](../Getting-Started-AspNetCore-MVC-Template.md) para obter mais informações. - -### Estrutura em camadas - -Se você selecionou a interface do usuário do ASP.NET Core e especificou a `--tiered`opção, a solução criada será uma solução em camadas. O objetivo da estrutura em camadas é poder **implantar aplicativos da Web e API HTTP em diferentes servidores** : - -![livraria-visual-studio-solution-v3](../images/tiered-solution-servers.png) - -- O navegador executa sua interface do usuário executando HTML, CSS e JavaScript. -- Os servidores da Web hospedam arquivos de interface do usuário estáticos (CSS, JavaScript, imagem ... etc.) e componentes dinâmicos (por exemplo, páginas Razor). Ele executa solicitações HTTP para o servidor da API para executar a lógica de negócios do aplicativo. -- O API Server hospeda as APIs HTTP que, em seguida, usam as camadas de aplicativo e domínio do aplicativo para executar a lógica de negócios. -- Finalmente, o servidor de banco de dados hospeda seu banco de dados. - -Portanto, a solução resultante permite uma implantação em quatro camadas, comparando com a implantação em três camadas da estrutura padrão explicada anteriormente. - -> A menos que você realmente precise de uma implantação em quatro camadas, é recomendável seguir a estrutura padrão que é mais simples de desenvolver, implantar e manter. - -A estrutura da solução é mostrada abaixo: - -![livraria-visual-studio-solution-v3](../images/bookstore-visual-studio-solution-tiered.png) - -Diferente da estrutura padrão, dois novos projetos entram em jogo: `.IdentityServer`& `.HttpApi.Host`. - -#### Projeto .IdentityServer - -Este projeto é usado como um servidor de autenticação para outros projetos. `.Web`O projeto usa a autenticação do OpenId Connect para obter tokens de identidade e acesso para o usuário atual do IdentityServer. Em seguida, usa o token de acesso para chamar o servidor da API HTTP. O servidor HTTP API usa autenticação de token de portador para obter declarações do token de acesso para autorizar o usuário atual. - -![aplicativos de solução em camadas](../images/tiered-solution-applications.png) - -O ABP usa a estrutura [IdentityServer4 de](https://identityserver.io/) código aberto para a autenticação entre aplicativos. Consulte a [documentação do IdentityServer4](http://docs.identityserver.io/) para obter detalhes sobre o protocolo IdentityServer4 e OpenID Connect. - -Ele possui seu próprio `appsettings.json`que contém conexão com o banco de dados e outras configurações. - -#### Projeto .HttpApi.Host - -Este projeto é um aplicativo que hospeda a API da solução. Ele possui seu próprio `appsettings.json`que contém conexão com o banco de dados e outras configurações. - -#### Projeto .Web - -Assim como a estrutura padrão, este projeto contém a interface do usuário (UI) do aplicativo. Ele contém páginas de barbear, arquivos JavaScript, arquivos de estilo, imagens e assim por diante ... - -Este projeto contém um `appsettings.json`arquivo, mas desta vez não possui uma cadeia de conexão porque nunca se conecta ao banco de dados. Em vez disso, ele contém principalmente o terminal do servidor de API remoto e o servidor de autenticação. - -#### Pré requisitos - -- [Redis](https://redis.io/) : os aplicativos usam Redis como cache distribuído. Então, você precisa ter o Redis instalado e funcionando. - -#### Como correr? - -Você deve executar o aplicativo com a ordem especificada: - -- Primeiro, execute o `.IdentityServer`aplicativo, pois outros aplicativos dependem dele. -- Em seguida, execute o `.HttpApi.Host`que é usado pelo `.Web`aplicativo. -- Por fim, você pode executar o `.Web`projeto e efetuar login no aplicativo (usando `admin`como nome de usuário e `1q2w3E*`senha). - -### UI angular - -Se você escolher Angular como a estrutura da interface do usuário (usando a `-u angular`opção), a solução será separada em duas pastas: - -- `angular` A pasta contém a solução Angular UI, do lado do cliente. -- `aspnet-core` A pasta contém a solução ASP.NET Core, do lado do servidor. - -O lado do servidor é muito semelhante à solução descrita acima. `.HttpApi.Host`projeto serve a API, para que o aplicativo Angular possa consumi-lo. - -Os arquivos na `angular/src/environments`pasta têm a configuração essencial do aplicativo. - -## Qual é o próximo? - -- Consulte [Introdução ao modelo ASP.NET Core MVC](../Getting-Started-AspNetCore-MVC-Template.md) para criar uma nova solução e executá-la para este modelo. -- Consulte o [Tutorial](../Tutorials/AspNetCore-Mvc/Part-I.md) do [ASP.NET Core MVC](../Tutorials/AspNetCore-Mvc/Part-I.md) para aprender como desenvolver aplicativos usando este modelo. - - diff --git a/docs/pt-BR/Startup-Templates/Index.md b/docs/pt-BR/Startup-Templates/Index.md deleted file mode 100644 index 61f2d2d544..0000000000 --- a/docs/pt-BR/Startup-Templates/Index.md +++ /dev/null @@ -1,7 +0,0 @@ -# Modelos de inicialização - -Embora você possa começar com um projeto vazio e adicionar os pacotes necessários manualmente, os modelos de inicialização facilitam e são confortáveis para iniciar uma nova solução com a estrutura ABP. Clique no nome da lista abaixo para ver a documentação do modelo de inicialização relacionado: - -- [**app**](Application.md) : modelo de aplicativo. -- [**módulo**](Module.md) : Módulo / modelo de serviço. - diff --git a/docs/pt-BR/Startup-Templates/Module.md b/docs/pt-BR/Startup-Templates/Module.md deleted file mode 100644 index 262e85c342..0000000000 --- a/docs/pt-BR/Startup-Templates/Module.md +++ /dev/null @@ -1,161 +0,0 @@ -# Modelo de inicialização do módulo MVC - -Este modelo pode ser usado para criar um **módulo de aplicativo** **reutilizável com** base nas [melhores práticas e convenções de desenvolvimento do módulo](../Best-Practices/Index.md). Também é adequado para criar **microsserviços** (com ou sem interface do usuário). - -## Como começar? - -Você pode usar a [ABP CLI](../CLI.md) para criar um novo projeto usando este modelo de inicialização. Como alternativa, você pode criar e fazer o download diretamente na página [Introdução](https://abp.io/get-started) . A abordagem CLI é usada aqui. - -Primeiro, instale a ABP CLI se você não tiver instalado antes: - -```bash -dotnet tool install -g Volo.Abp.Cli -``` - -Em seguida, use o `abp new`comando em uma pasta vazia para criar uma nova solução: - -```bash -abp new Acme.IssueManagement -t module -``` - -- `Acme.IssueManagement`é o nome da solução, como *YourCompany.YourProduct* . Você pode usar nomes de nível único, dois ou três níveis. - -### Sem interface de usuário - -O modelo vem com uma interface do usuário do MVC por padrão. Você pode usar a `--no-ui`opção para não incluir a camada da interface do usuário. - -```bash -abp new Acme.IssueManagement -t mvc-module --no-ui -``` - -## Estrutura da solução - -Com base nas opções especificadas, você obterá uma estrutura de solução ligeiramente diferente. Se você não especificar nenhuma opção, terá uma solução como a mostrada abaixo: - -![issuemanagement-module-solution](../images/issuemanagement-module-solution.png) - -Projetos são organizados como `src`, `test`e `host`pastas: - -- `src`A pasta contém o módulo real, que é estratificado com base nos princípios [DDD](../Domain-Driven-Design.md) . -- `test` pasta contém testes de unidade e integração. -- `host`A pasta contém aplicativos com configurações diferentes para demonstrar como hospedar o módulo em um aplicativo. Isso não faz parte do módulo, mas é útil no desenvolvimento. - -O diagrama abaixo mostra as camadas e dependências do projeto do módulo: - -![módulo de dependências do projeto em camadas](../images/layered-project-dependencies-module.png) - -Cada seção abaixo explicará o projeto relacionado e suas dependências. - -### Projeto .Domain.Shared - -Este projeto contém constantes, enumerações e outros objetos. Na verdade, eles fazem parte da camada de domínio, mas precisam ser usados por todas as camadas / projetos da solução. - -Um `IssueType`enum e uma `IssueConsts`classe (que podem ter alguns campos constantes para a `Issue`entidade, como `MaxTitleLength`) são bons candidatos para este projeto. - -- Este projeto não depende de outros projetos na solução. Todos os outros projetos dependem disso direta ou indiretamente. - -### .Domain Project - -Essa é a camada de domínio da solução. Ele contém principalmente [entidades, raízes agregadas](../Entities.md) , [serviços de domínio](../Domain-Services.md) , [tipos de valor](../Value-Types.md) , [interfaces de repositório](../Repositories.md) e outros objetos de domínio. - -Uma `Issue`entidade, um `IssueManager`serviço de domínio e uma `IIssueRepository`interface são bons candidatos para este projeto. - -- Depende do `.Domain.Shared`porque usa constantes, enumerações e outros objetos definidos nesse projeto. - -### .Application.Contracts Project - -Este projeto contém principalmente **interfaces de** [serviço de aplicativo](../Application-Services.md) e DTO ( [Data Transfer Objects](../Data-Transfer-Objects.md) ) da camada de aplicativo. Existe para separar a interface e a implementação da camada de aplicação. Dessa forma, o projeto de interface pode ser compartilhado com os clientes como um pacote de contrato. - -Uma `IIssueAppService`interface e uma `IssueCreationDto`classe são boas candidatas para este projeto. - -- Depende do `.Domain.Shared`porque ele pode usar constantes, enumerações e outros objetos compartilhados deste projeto nas interfaces de serviço de aplicativo e DTOs. - -### Projeto de Aplicação - -Este projeto contém as **implementações** de [serviço de aplicativo](../Application-Services.md) das interfaces definidas no projeto.`.Application.Contracts` - -Uma `IssueAppService`turma é uma boa candidata para este projeto. - -- Depende do `.Application.Contracts`projeto para poder implementar as interfaces e usar os DTOs. -- Depende do `.Domain`projeto para poder usar objetos de domínio (entidades, interfaces de repositório ... etc.) para executar a lógica do aplicativo. - -### Projeto .EntityFrameworkCore - -Este é o projeto de integração do EF Core. Ele define `DbContext`e implementa as interfaces de repositório definidas no `.Domain`projeto. - -- Depende do `.Domain`projeto para poder fazer referência a entidades e interfaces de repositório. - -> Você pode excluir este projeto se não desejar dar suporte ao EF Core para o seu módulo. - -### Projeto .MongoDB - -Este é o projeto de integração do MongoDB. - -- Depende do `.Domain`projeto para poder fazer referência a entidades e interfaces de repositório. - -> Você pode excluir este projeto se não quiser dar suporte ao MongoDB para o seu módulo. - -### Projetos de teste - -A solução possui vários projetos de teste, um para cada camada: - -- `.Domain.Tests` é usado para testar a camada de domínio. -- `.Application.Tests` é usado para testar a camada de aplicativo. -- `.EntityFrameworkCore.Tests` é usado para testar a configuração do EF Core e os repositórios personalizados. -- `.MongoDB.Tests` é usado para testar a configuração do MongoDB e os repositórios personalizados. -- `.TestBase` é um projeto básico (compartilhado) para todos os testes. - -Além disso, `.HttpApi.Client.ConsoleTestApp`é um aplicativo de console (não um projeto de teste automatizado) que demonstra o uso de APIs HTTP de um aplicativo Dotnet. - -Projetos de teste são preparados para testes de integração; - -- É totalmente integrado à estrutura ABP e a todos os serviços em sua aplicação. -- Ele usa o banco de dados SQLite na memória para o EF Core. Para o MongoDB, ele usa a biblioteca [EphemeralMongo](https://github.com/asimmon/ephemeral-mongo) . -- A autorização está desabilitada, portanto, qualquer serviço de aplicativo pode ser facilmente usado em testes. - -Você ainda pode criar testes de unidade para suas classes, que serão mais difíceis de escrever (porque você precisará preparar objetos simulados / falsos), mas mais rápidos de executar (porque apenas testa uma única classe e ignora todo o processo de inicialização). - -> Os testes de domínio e aplicativos estão usando o EF Core. Se você remover a integração do EF Core ou desejar usar o MongoDB para testar essas camadas, altere manualmente as referências do projeto e as dependências do módulo. - -### Projetos Anfitriões - -A solução possui alguns aplicativos host para executar seu módulo. Aplicativos host são usados para executar seu módulo em um aplicativo totalmente configurado. É útil no desenvolvimento. Os aplicativos host incluem alguns outros módulos além do módulo que está sendo desenvolvido: - -Os aplicativos host oferecem suporte a dois tipos de cenários. - -#### Cenário de aplicativo único (unificado) - -Se o seu módulo tiver uma interface do usuário, o `.Web.Unified`aplicativo será usado para hospedar a interface do usuário e a API em um único ponto. Ele possui seu próprio `appsettings.json`arquivo (que inclui a cadeia de conexão do banco de dados) e as migrações do banco de dados EF Core. - -Para o `.Web.Unified`aplicativo, há um único banco de dados chamado `YourProjectName_Unified`(como *IssueManagement_Unified* para esta amostra). - -> Se você selecionou a `--no-ui`opção, este projeto não estará na sua solução. - -##### Como correr? - -Defina-o como o projeto de inicialização, execute o `Update-Database`comando para o EF Core no Package Manager Console e execute seu aplicativo. O nome de usuário padrão é `admin`e a senha é `1q2w3E*`. - -#### Implantação separada e cenário de bancos de dados - -Nesse cenário, há três aplicativos; - -- `.IdentityServer`application é um servidor de autenticação usado por outros aplicativos. Ele possui seu próprio `appsettings.json`que contém conexão com o banco de dados e outras configurações. -- `.HttpApi.Host`hospeda a API HTTP do módulo. Ele possui seu próprio `appsettings.json`que contém conexões com o banco de dados e outras configurações. -- `.Web.Host`hospedar a interface do usuário do módulo. Este projeto contém um `appsettings.json`arquivo, mas não possui uma cadeia de conexão porque nunca se conecta ao banco de dados. Em vez disso, ele contém principalmente o terminal do servidor de API remoto e o servidor de autenticação. - -O diagrama abaixo mostra a relação dos aplicativos: - -![aplicativos de solução em camadas](../images/tiered-solution-applications.png) - -`.Web.Host`O projeto usa a autenticação OpenId Connect para obter tokens de identidade e acesso para o usuário atual do `.IdentityServer`. Em seguida, usa o token de acesso para chamar o `.HttpApi.Host`. O servidor HTTP API usa autenticação de token de portador para obter declarações do token de acesso para autorizar o usuário atual. - -##### Como correr? - -Você deve executar o aplicativo com a ordem especificada: - -- Primeiro, execute o `.IdentityServer`aplicativo, pois outros aplicativos dependem dele. -- Em seguida, execute o `.HttpApi.Host`que é usado pelo `.Web.Host`aplicativo. -- Por fim, você pode executar o `.Web.Host`projeto e efetuar login no aplicativo usando `admin`como nome de usuário e `1q2w3E*`senha. - - - \ No newline at end of file diff --git a/docs/pt-BR/Testing.md b/docs/pt-BR/Testing.md deleted file mode 100644 index 231db64907..0000000000 --- a/docs/pt-BR/Testing.md +++ /dev/null @@ -1,3 +0,0 @@ -# Testing - -Façam! \ No newline at end of file diff --git a/docs/pt-BR/Tutorials/Angular/Part-I.md b/docs/pt-BR/Tutorials/Angular/Part-I.md deleted file mode 100644 index 3b0b1daf1b..0000000000 --- a/docs/pt-BR/Tutorials/Angular/Part-I.md +++ /dev/null @@ -1,663 +0,0 @@ -## Tutorial Angular - Parte I - -### Sobre este tutorial - -Nesta série de tutoriais, você criará um aplicativo usado para gerenciar uma lista de livros e seus autores. **Angular** será usado como estrutura da interface do usuário e **MongoDB** será usado como provedor de banco de dados. - -Esta é a primeira parte da série de tutoriais angulares. Veja todas as peças: - -- **Parte I: Crie o projeto e uma página de lista de livros (este tutorial)** -- [Parte II: Criar, atualizar e excluir livros](Part-II) -- [Parte III: Testes de Integração](Part-III) - -Você pode acessar o **código fonte** do aplicativo no [repositório GitHub](https://github.com/abpframework/abp-samples/tree/master/BookStore-Angular-MongoDb) . - -### Criando o projeto - -Crie um novo projeto nomeado `Acme.BookStore`selecionando Angular como a estrutura da interface do usuário e MongoDB como o provedor de banco de dados, crie o banco de dados e execute o aplicativo seguindo o [documento Introdução](../../Getting-Started-Angular-Template.md) . - -### Estrutura da solução (back-end) - -É assim que a estrutura da solução em camadas cuida da criação: - -![solução de back-end da livraria](images/bookstore-backend-solution-v2.png) - -> Você pode ver o [documento do modelo de aplicativo](../../Startup-Templates/Application.md) para entender a estrutura da solução em detalhes. No entanto, você entenderá o básico com este tutorial. - -### Criar a entidade do livro - -A camada de domínio no modelo de inicialização é separada em dois projetos: - -- `Acme.BookStore.Domain`contém suas [entidades](../../Entities.md) , [serviços de domínio](../../Domain-Services.md) e outros objetos principais de domínio. -- `Acme.BookStore.Domain.Shared` contém constantes, enumerações ou outros objetos relacionados ao domínio que podem ser compartilhados com os clientes. - -Defina [entidades](../../Entities.md) na **camada de domínio** ( `Acme.BookStore.Domain`projeto) da solução. A entidade principal do aplicativo é a `Book`. Crie uma classe, chamada `Book`, no `Acme.BookStore.Domain`projeto, como mostrado abaixo: - -```csharp -using System; -using Volo.Abp.Domain.Entities.Auditing; - -namespace Acme.BookStore -{ - public class Book : AuditedAggregateRoot - { - public string Name { get; set; } - - public BookType Type { get; set; } - - public DateTime PublishDate { get; set; } - - public float Price { get; set; } - } -} -``` - -- O ABP possui duas classes base fundamentais para entidades: `AggregateRoot`e `Entity`. **A raiz agregada** é um dos conceitos de **DDD (Domain Driven Design)** . Consulte o [documento da entidade](../../Entities.md) para obter detalhes e melhores práticas. -- `Book`entidade herda `AuditedAggregateRoot`que adiciona algumas propriedades de auditoria ( `CreationTime`, `CreatorId`, `LastModificationTime`... etc.) no topo da `AggregateRoot`classe. -- `Guid`é o **tipo** de **chave primária** da `Book`entidade. - -#### BookType Enum - -Defina a `BookType`enumeração no `Acme.BookStore.Domain.Shared`projeto: - -```csharp -namespace Acme.BookStore -{ - public enum BookType - { - Undefined, - Adventure, - Biography, - Dystopia, - Fantastic, - Horror, - Science, - ScienceFiction, - Poetry - } -} -``` - -#### Adicionar entidade de livro ao seu DbContext - -Adicione uma `IMongoCollection`propriedade ao `BookStoreMongoDbContext`interior do `Acme.BookStore.MongoDB`projeto: - -```csharp -public class BookStoreMongoDbContext : AbpMongoDbContext -{ - public IMongoCollection Books => Collection(); - ... -} -``` - -#### Adicionar dados de semente (amostra) - -Esta seção é opcional, mas seria bom ter um dado inicial no banco de dados na primeira execução. O ABP fornece um [sistema de semente de dados](../../Data-Seeding.md) . Crie uma classe derivada de `IDataSeedContributor`no `.Domain`projeto: - -```csharp -using System; -using System.Threading.Tasks; -using Volo.Abp.Data; -using Volo.Abp.DependencyInjection; -using Volo.Abp.Domain.Repositories; - -namespace Acme.BookStore -{ - public class BookStoreDataSeederContributor - : IDataSeedContributor, ITransientDependency - { - private readonly IRepository _bookRepository; - - public BookStoreDataSeederContributor(IRepository bookRepository) - { - _bookRepository = bookRepository; - } - - public async Task SeedAsync(DataSeedContext context) - { - if (await _bookRepository.GetCountAsync() > 0) - { - return; - } - - await _bookRepository.InsertAsync( - new Book - { - Name = "1984", - Type = BookType.Dystopia, - PublishDate = new DateTime(1949, 6, 8), - Price = 19.84f - } - ); - - await _bookRepository.InsertAsync( - new Book - { - Name = "The Hitchhiker's Guide to the Galaxy", - Type = BookType.ScienceFiction, - PublishDate = new DateTime(1995, 9, 27), - Price = 42.0f - } - ); - } - } -} -``` - -`BookStoreDataSeederContributor`simplesmente insere dois livros no banco de dados se não houver nenhum livro adicionado antes. O ABP descobre e executa automaticamente essa classe quando você propaga o banco de dados executando o `Acme.BookStore.DbMigrator`projeto. - -### Crie o serviço de aplicativo - -O próximo passo é criar um [serviço de aplicativo](../../Application-Services.md) para gerenciar (criar, listar, atualizar, excluir ...) os livros. A camada de aplicativo no modelo de inicialização é separada em dois projetos: - -- `Acme.BookStore.Application.Contracts` contém principalmente seus DTOs e interfaces de serviço de aplicativo. -- `Acme.BookStore.Application` contém as implementações dos seus serviços de aplicativo. - -#### BookDto - -Crie uma classe DTO denominada `BookDto`no `Acme.BookStore.Application.Contracts`projeto: - -```csharp -using System; -using Volo.Abp.Application.Dtos; - -namespace Acme.BookStore -{ - public class BookDto : AuditedEntityDto - { - public string Name { get; set; } - - public BookType Type { get; set; } - - public DateTime PublishDate { get; set; } - - public float Price { get; set; } - } -} -``` - -- **As** classes **DTO** são usadas para **transferir dados** entre a *camada de apresentação* e a *camada de aplicativo* . Consulte o [documento Objetos de transferência de dados](../../Data-Transfer-Objects.md) para obter mais detalhes. -- `BookDto` é usado para transferir dados do livro para a camada de apresentação para mostrar as informações do livro na interface do usuário. -- `BookDto`é derivado do `AuditedEntityDto`que possui propriedades de auditoria exatamente como a `Book`classe definida acima. - -Será necessário converter `Book`entidades em `BookDto`objetos enquanto retorna os livros para a camada de apresentação. A biblioteca do [AutoMapper](https://automapper.org/) pode automatizar essa conversão quando você define o mapeamento adequado. O modelo de inicialização é fornecido com o AutoMapper configurado, para que você possa definir o mapeamento na `BookStoreApplicationAutoMapperProfile`classe no `Acme.BookStore.Application`projeto: - -```csharp -using AutoMapper; - -namespace Acme.BookStore -{ - public class BookStoreApplicationAutoMapperProfile : Profile - { - public BookStoreApplicationAutoMapperProfile() - { - CreateMap(); - } - } -} -``` - -#### CreateUpdateBookDto - -Crie uma classe DTO denominada `CreateUpdateBookDto`no `Acme.BookStore.Application.Contracts`projeto: - -```csharp -using System; -using System.ComponentModel.DataAnnotations; - -namespace Acme.BookStore -{ - public class CreateUpdateBookDto - { - [Required] - [StringLength(128)] - public string Name { get; set; } - - [Required] - public BookType Type { get; set; } = BookType.Undefined; - - [Required] - public DateTime PublishDate { get; set; } - - [Required] - public float Price { get; set; } - } -} -``` - -- Essa classe DTO é usada para obter informações do livro a partir da interface do usuário ao criar ou atualizar um livro. -- Ele define atributos de anotação de dados (como `[Required]`) para definir validações para as propriedades. Os DTOs são [validados automaticamente](../../Validation.md) pela estrutura ABP. - -Em seguida, adicione um mapeamento `BookStoreApplicationAutoMapperProfile`do `CreateUpdateBookDto`objeto à `Book`entidade: - -```csharp -CreateMap(); -``` - -#### IBookAppService - -Defina uma interface nomeada `IBookAppService`no `Acme.BookStore.Application.Contracts`projeto: - -```csharp -using System; -using Volo.Abp.Application.Dtos; -using Volo.Abp.Application.Services; - -namespace Acme.BookStore -{ - public interface IBookAppService : - ICrudAppService< //Defines CRUD methods - BookDto, //Used to show books - Guid, //Primary key of the book entity - PagedAndSortedResultRequestDto, //Used for paging/sorting on getting a list of books - CreateUpdateBookDto, //Used to create a new book - CreateUpdateBookDto> //Used to update a book - { - - } -} -``` - -- A definição de interfaces para serviços de aplicativos não é requerida pela estrutura. No entanto, é sugerido como uma prática recomendada. -- `ICrudAppService`define comuns **CRUD** métodos: `GetAsync`, `GetListAsync`, `CreateAsync`, `UpdateAsync`e `DeleteAsync`. Não é necessário estendê-lo. Em vez disso, você pode herdar da `IApplicationService`interface vazia e definir seus próprios métodos manualmente. -- Existem algumas variações de `ICrudAppService`onde você pode usar DTOs separados para cada método. - -#### BookAppService - -Implemente `IBookAppService`como nomeado `BookAppService`no `Acme.BookStore.Application`projeto: - -```csharp -using System; -using Volo.Abp.Application.Dtos; -using Volo.Abp.Application.Services; -using Volo.Abp.Domain.Repositories; - -namespace Acme.BookStore -{ - public class BookAppService : - CrudAppService, - IBookAppService - { - public BookAppService(IRepository repository) - : base(repository) - { - - } - } -} -``` - -- `BookAppService`é derivado do `CrudAppService<...>`qual implementa todos os métodos CRUD definidos acima. -- `BookAppService`injeta `IRepository`qual é o repositório padrão da `Book`entidade. O ABP cria automaticamente repositórios padrão para cada raiz (ou entidade) agregada. Veja o [documento do repositório](../../Repositories) . -- `BookAppService`usa `IObjectMapper`para converter `Book`objetos em `BookDto`objetos e `CreateUpdateBookDto`objetos em `Book`objetos. O modelo de inicialização usa a biblioteca [AutoMapper](http://automapper.org/) como o provedor de mapeamento de objetos. Você definiu os mapeamentos antes, para que funcionem conforme o esperado. - -### Controladores de API automática - -Você normalmente cria **controladores** para expor serviços de aplicativos como pontos de extremidade da **API HTTP** . Assim, permite que navegadores ou clientes de terceiros os chamem via AJAX. O ABP pode configurar [**automaticamente**](../../AspNetCore/Auto-API-Controllers.md) seus serviços de aplicativo como controladores de API MVC por convenção. - -#### UI do Swagger - -O modelo de inicialização está configurado para executar a [interface do usuário do swagger](https://swagger.io/tools/swagger-ui/) usando a biblioteca [Swashbuckle.AspNetCore](https://github.com/domaindrivendev/Swashbuckle.AspNetCore) . Execute o `Acme.BookStore.HttpApi.Host`aplicativo e insira `https://localhost:XXXX/swagger/`(substitua XXXX por sua própria porta) como URL no seu navegador. - -Você verá alguns pontos de extremidade de serviço internos, bem como o `Book`serviço e seus pontos de extremidade no estilo REST: - -![livraria-arrogância](images/bookstore-swagger-api.png) - -O Swagger tem uma ótima interface para testar APIs. Você pode tentar executar a `[GET] /api/app/book`API para obter uma lista de livros. - -### Crie a página de livros - -Neste tutorial; - -- [A CLI angular](https://angular.io/cli) será usada para criar módulos, componentes e serviços -- [NGXS](https://ngxs.gitbook.io/ngxs/) será usado como a biblioteca de gerenciamento de estado -- [O Bootstrap](https://ng-bootstrap.github.io/#/home) será usado como a biblioteca de componentes da interface do usuário. -- [O Visual Studio Code](https://code.visualstudio.com/) será usado como editor de código (você pode usar seu editor favorito). - -#### Instalar pacotes NPM - -Abra uma janela do terminal, vá para a `angular`pasta e execute o `yarn` comando para instalar os pacotes NPM: - -``` -yarn -``` - -#### BooksModule - -Execute a seguinte linha de comando para criar um novo módulo, denominado `BooksModule`: - -```bash -yarn ng generate module books --route books --module app.module -``` - -![Creating-Books-Module.terminal](images/bookstore-creating-books-module-terminal.png) - -Execute `yarn start`, aguarde Angular para executar o aplicativo e abra `http://localhost:4200/books`em um navegador: - -![página inicial dos livros](images/bookstore-initial-books-page.png) - -#### Encaminhamento - -Abra `app-routing.module.ts`e substitua `books`conforme mostrado abaixo: - -```js -import { ApplicationLayoutComponent } from '@abp/ng.theme.basic';- - -//... -{ - path: 'books', - component: ApplicationLayoutComponent, - loadChildren: () => import('./books/books.module').then(m => m.BooksModule), - data: { - routes: { - name: 'Books', - } as ABP.Route, - }, -}, -``` - -`ApplicationLayoutComponent`configuração define o layout do aplicativo para a nova página. Se você deseja ver sua rota na barra de navegação (menu principal), também deve adicionar o `data`objeto com `name`propriedade à sua rota. - -![página inicial dos livros](images/bookstore-initial-books-page-with-layout.png) - -#### Componente da lista de livros - -Primeiro, substitua pela `books.component.html`seguinte linha para colocar a saída do roteador: - -```html - -``` - -Em seguida, execute o comando abaixo no terminal na pasta raiz para gerar um novo componente, chamado book-list: - -```bash -yarn ng generate component books/book-list -``` - -![terminal-criando-lista-de-livros](images/bookstore-creating-book-list-terminal.png) - -Importe `SharedModule`para `BooksModule`para reutilizar alguns componentes e serviços definidos em: - -```js -import { SharedModule } from '../shared/shared.module'; - -@NgModule({ - //... - imports: [ - //... - SharedModule, - ], -}) -export class BooksModule {} -``` - -Em seguida, atualize o `routes`no `books-routing.module.ts`para adicionar o novo componente book-list: - -```js -import { BookListComponent } from './book-list/book-list.component'; - -const routes: Routes = [ - { - path: '', - component: BooksComponent, - children: [{ path: '', component: BookListComponent }], - }, -]; - -@NgModule({ - imports: [RouterModule.forChild(routes)], - exports: [RouterModule], -}) -export class BooksRoutingModule {} -``` - -![página inicial da lista de livros](images/bookstore-initial-book-list-page.png) - -#### Criar BooksState - -Execute o seguinte comando no terminal para criar um novo estado, denominado `BooksState`: - -```shell -yarn ng generate ngxs-schematic:state books -``` - -Este comando cria vários novos arquivos e edições `app.modules.ts`para importar o `NgxsModule`com o novo estado: - -```js -// app.module.ts - -import { BooksState } from './store/states/books.state'; - -@NgModule({ - imports: [ - //... - NgxsModule.forRoot([BooksState]), - ], - //... -}) -export class AppModule {} -``` - -#### Obter dados de livros do back-end - -Primeiro, crie tipos de dados para mapear os dados que retornam do back-end (você pode verificar a interface do swagger ou a API do back-end para conhecer o formato dos dados). - -Modifique o `books.ts`como mostrado abaixo: - -```js -export namespace Books { - export interface State { - books: Response; - } - - export interface Response { - items: Book[]; - totalCount: number; - } - - export interface Book { - name: string; - type: BookType; - publishDate: string; - price: number; - lastModificationTime: string; - lastModifierId: string; - creationTime: string; - creatorId: string; - id: string; - } - - export enum BookType { - Undefined, - Adventure, - Biography, - Dystopia, - Fantastic, - Horror, - Science, - ScienceFiction, - Poetry, - } -} -``` - -Adicionada `Book`interface que representa um objeto de livro e `BookType`enum representa uma categoria de livro. - -#### BooksService - -Agora, crie um novo serviço, nomeado `BooksService`para executar chamadas HTTP para o servidor: - -```bash -yarn ng generate service books/shared/books -``` - -![serviço-terminal-saída](images/bookstore-service-terminal-output.png) - -Modifique `books.service.ts`como mostrado abaixo: - -```js -import { Injectable } from '@angular/core'; -import { RestService } from '@abp/ng.core'; -import { Books } from '../../store/models'; -import { Observable } from 'rxjs'; - -@Injectable({ - providedIn: 'root', -}) -export class BooksService { - constructor(private restService: RestService) {} - - get(): Observable { - return this.restService.request({ - method: 'GET', - url: '/api/app/book' - }); - } -} -``` - -Adicionado o `get`método para obter a lista de livros executando uma solicitação HTTP no terminal relacionado. - -Substitua o `books.actions.ts`conteúdo conforme mostrado abaixo: - -```js -export class GetBooks { - static readonly type = '[Books] Get'; -} -``` - -#### Implementar o BooksState - -Abra o `books.state.ts`e altere o arquivo, como mostrado abaixo: - -```js -import { State, Action, StateContext, Selector } from '@ngxs/store'; -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) { - return state.books.items || []; - } - - constructor(private booksService: BooksService) {} - - @Action(GetBooks) - get(ctx: StateContext) { - return this.booksService.get().pipe( - tap(booksResponse => { - ctx.patchState({ - books: booksResponse, - }); - }), - ); - } -} -``` - -Adicionada a `GetBooks`ação que usa o `BookService`definido acima para obter os livros e corrigir o estado. - -> O NGXS exige retornar o observável sem assiná-lo, conforme feito nesta amostra (na função get). - -#### BookListComponent - -Modifique o `book-list.component.ts`como mostrado abaixo: - -```js -import { Component, OnInit } from '@angular/core'; -import { Store, Select } from '@ngxs/store'; -import { BooksState } from '../../store/states'; -import { Observable } from 'rxjs'; -import { Books } from '../../store/models'; -import { GetBooks } from '../../store/actions'; - -@Component({ - selector: 'app-book-list', - templateUrl: './book-list.component.html', - styleUrls: ['./book-list.component.scss'], -}) -export class BookListComponent implements OnInit { - @Select(BooksState.getBooks) - books$: Observable; - - booksType = Books.BookType; - - loading = false; - - constructor(private store: Store) {} - - ngOnInit() { - this.loading = true; - this.store.dispatch(new GetBooks()).subscribe(() => { - this.loading = false; - }); - } -} -``` - -> Consulte as [ações de despacho](https://ngxs.gitbook.io/ngxs/concepts/store#dispatching-actions) e [selecione](https://ngxs.gitbook.io/ngxs/concepts/select) na documentação do NGXS para obter mais informações sobre esses recursos do NGXS. - -Substitua o `book-list.component.html`conteúdo conforme mostrado abaixo: - -```html -
    -
    -
    -
    -
    - Books -
    -
    -
    -
    -
    - - - - Book name - Book type - Publish date - Price - - - - - {%{{{ data.name }}}%} - {%{{{ booksType[data.type] }}}%} - {%{{{ data.publishDate | date }}}%} - {%{{{ data.price }}}%} - - - -
    -
    -``` - -> Usamos a [tabela PrimeNG](https://www.primefaces.org/primeng/#/table) neste componente. - -A página de livros resultante é mostrada abaixo: - -![livraria-lista-de-livros](images/bookstore-book-list.png) - -E esta é a estrutura de pastas e arquivos no final deste tutorial: - -![img](images/bookstore-angular-file-tree.png) - -> Este tutorial segue o [Guia de estilo angular](https://angular.io/guide/styleguide#file-tree) . - -### Próxima parte - -Veja a [próxima parte](Part-II.md) deste tutorial. - - - \ No newline at end of file diff --git a/docs/pt-BR/Tutorials/Angular/Part-II.md b/docs/pt-BR/Tutorials/Angular/Part-II.md deleted file mode 100644 index f948bca55a..0000000000 --- a/docs/pt-BR/Tutorials/Angular/Part-II.md +++ /dev/null @@ -1,582 +0,0 @@ -## Tutorial Angular - Parte II - -### Sobre este tutorial - -Esta é a segunda parte da série de tutoriais angulares. Veja todas as peças: - -- [Parte I: Crie o projeto e uma página da lista de livros](Part-I.md) -- **Parte II: Criar, atualizar e excluir livros (este tutorial)** -- [Parte III: Testes de Integração](Part-III.md) - -Você pode acessar o **código fonte** do aplicativo no [repositório GitHub](https://github.com/abpframework/abp-samples/tree/master/BookStore-Angular-MongoDb) . - -### Criando um novo livro - -Nesta seção, você aprenderá como criar um novo formulário de diálogo modal para criar um novo livro. - -#### Definição do tipo - -Criar uma interface, com o nome `CreateUpdateBookInput`no `books.ts`como mostrado abaixo: - -```js -export namespace Books { - //... - export interface CreateUpdateBookInput { - name: string; - type: BookType; - publishDate: string; - price: number; - } -} -``` - -`CreateUpdateBookInput`interface corresponde ao `CreateUpdateBookDto`no back-end. - -#### Método de Serviço - -Abra o `books.service.ts`e adicione um novo método, nomeado `create`para executar uma solicitação HTTP POST no servidor: - -```js -create(createBookInput: Books.CreateUpdateBookInput): Observable { - return this.restService.request({ - method: 'POST', - url: '/api/app/book', - body: createBookInput - }); -} -``` - -- `restService.request`A função obtém parâmetros genéricos para os tipos enviados e recebidos do servidor. Este exemplo envia um `CreateUpdateBookInput`objeto e recebe um `Book`objeto (você pode definir o tipo `void`de solicitação ou retorno, se não for usado). - -#### Definições de estado - -Adicione a `CreateUpdateBook`ação ao `books.actions.ts`conforme mostrado abaixo: - -```js -import { Books } from '../models'; - -export class CreateUpdateBook { - static readonly type = '[Books] Create Update Book'; - constructor(public payload: Books.CreateUpdateBookInput) {} -} -``` - -Abra `books.state.ts`e defina o `save`método que ouvirá uma `CreateUpdateBook`ação para criar um livro: - -```js -import { ... , CreateUpdateBook } from '../actions/books.actions'; -import { ... , switchMap } from 'rxjs/operators'; -//... -@Action(CreateUpdateBook) -save(ctx: StateContext, action: CreateUpdateBook) { - return this.booksService - .create(action.payload) - .pipe(switchMap(() => ctx.dispatch(new GetBooks()))); -} -``` - -Quando a `SaveBook`ação é despachada, o método save é executado. Ele chama o `create`método do `BooksService`definido anteriormente. Após a chamada de serviço, `BooksState`despacha a `GetBooks`ação para obter livros novamente do servidor para atualizar a página. - -#### Adicionar um modal ao BookListComponent - -Abra o `book-list.component.html`e adicione o `abp-modal`para mostrar / ocultar o modal para criar um novo livro. - -```html - - -

    New Book

    -
    - - - - - - -
    -``` - -`abp-modal`é um componente pré-construído para mostrar os modais. Embora você possa usar outra abordagem para mostrar um modal, `abp-modal`fornece benefícios adicionais. - -Adicione um botão rotulado `New book`para mostrar o modal: - -```html -
    -
    -
    - Books -
    -
    -
    - -
    -
    -``` - -Abra a variável `book-list.component.ts`e adicione `isModalOpen`e `createBook`método para mostrar / ocultar o modal. - -```js -isModalOpen = false; - -//... - -createBook() { - this.isModalOpen = true; -} -``` - -![modal vazio](images/bookstore-empty-new-book-modal.png) - -#### Criar um formulário reativo - -> [Os formulários reativos](https://angular.io/guide/reactive-forms) fornecem uma abordagem orientada a modelo para lidar com entradas de formulário cujos valores mudam ao longo do tempo. - -Adicione uma `form`variável e injete um `FormBuilder`serviço `book-list.component.ts`como mostrado abaixo (lembre-se de adicionar a instrução de importação). - -```js -import { FormGroup, FormBuilder } from '@angular/forms'; - -form: FormGroup; - -constructor( - //... - private fb: FormBuilder -) {} -``` - -> O serviço [FormBuilder](https://angular.io/api/forms/FormBuilder) fornece métodos convenientes para gerar controles. Reduz a quantidade de clichê necessária para criar formulários complexos. - -Adicione o `buildForm`método para criar um formulário de livro. - -```js -buildForm() { - this.form = this.fb.group({ - name: ['', Validators.required], - type: [null, Validators.required], - publishDate: [null, Validators.required], - price: [null, Validators.required], - }); -} -``` - -- O `group`método de `FormBuilder`( `fb`) cria a `FormGroup`. -- Adicionado `Validators.required`método estático que valida o elemento de formulário relacionado. - -Modifique o `createBook`método como mostrado abaixo: - -```js -createBook() { - this.buildForm(); - this.isModalOpen = true; -} -``` - -#### Crie os elementos DOM do formulário - -Abra `book-list.component.html`e adicione o formulário no modelo de corpo do modal. - -```html - -
    -
    - * - -
    - -
    - * - -
    - -
    - * - -
    - -
    - * - -
    -
    -
    -``` - -- Este modelo cria um formulário com os campos Nome, Preço, Tipo e Data de publicação. - -> Usamos o [datepicker do NgBootstrap](https://ng-bootstrap.github.io/#/components/datepicker/overview) neste componente. - -Abra o `book-list.component.ts`e crie uma matriz chamada `bookTypes`: - -```js -//... -form: FormGroup; - -bookTypes = Object.keys(Books.BookType).filter( - bookType => typeof this.booksType[bookType] === 'number' -); -``` - -O `bookTypes`contém os campos da `BookType`enumeração. A matriz resultante é mostrada abaixo: - -```js -['Adventure', 'Biography', 'Dystopia', 'Fantastic' ...] -``` - -Essa matriz foi usada no modelo de formulário anterior (no `ngFor`loop). - -#### Requisitos do Datepicker - -Você precisa importar `NgbDatepickerModule`para o `books.module.ts`: - -```js -import { NgbDatepickerModule } from '@ng-bootstrap/ng-bootstrap'; - -@NgModule({ - imports: [ - // ... - NgbDatepickerModule, - ], -}) -export class BooksModule {} -``` - -Abra o `book-list.component.ts`e adicione `providers`como mostrado abaixo: - -```js -import { NgbDateNativeAdapter, NgbDateAdapter } from '@ng-bootstrap/ng-bootstrap'; - -@Component({ - // ... - providers: [{ provide: NgbDateAdapter, useClass: NgbDateNativeAdapter }], -}) -export class BookListComponent implements OnInit { -// ... -``` - -> O `NgbDateAdapter`valor do Datepicker converte em `Date`tipo. Consulte os [adaptadores datepicker](https://ng-bootstrap.github.io/#/components/datepicker/overview) para obter mais detalhes. - -![forma de livro novo](images/bookstore-new-book-form.png) - -#### Salvando o livro - -Abra o `book-list.component.html`e adicione um `abp-button`para salvar o formulário. - -```html - - - - -``` - -Isso adiciona um botão Salvar à área inferior do modal: - -![livraria-novo-livro-formulário-v2](images/bookstore-new-book-form-v2.png) - -Em seguida, defina um `save`método no `BookListComponent`: - -```js -save() { - if (this.form.invalid) { - return; - } - - this.store.dispatch(new CreateUpdateBook(this.form.value)).subscribe(() => { - this.isModalOpen = false; - this.form.reset(); - }); -} -``` - -### Atualizando um livro existente - -#### BooksService - -Abra o `books.service.ts`e adicione os métodos `getById`e `update`. - -```js -getById(id: string): Observable { - return this.restService.request({ - method: 'GET', - url: `/api/app/book/${id}` - }); -} - -update(updateBookInput: Books.CreateUpdateBookInput, id: string): Observable { - return this.restService.request({ - method: 'PUT', - url: `/api/app/book/${id}`, - body: updateBookInput - }); -} -``` - -#### Ação CreateUpdateBook - -Abra o parâmetro `books.actins.ts`e adicione `id`à `CreateUpdateBook`ação: - -```js -export class CreateUpdateBook { - static readonly type = '[Books] Create Update Book'; - constructor(public payload: Books.CreateUpdateBookInput, public id?: string) {} -} -``` - -Abra `books.state.ts`e modifique o `save`método conforme mostrado abaixo: - -```js -@Action(CreateUpdateBook) -save(ctx: StateContext, action: CreateUpdateBook) { - let request; - - if (action.id) { - request = this.booksService.update(action.payload, action.id); - } else { - request = this.booksService.create(action.payload); - } - - return request.pipe(switchMap(() => ctx.dispatch(new GetBooks()))); -} -``` - -#### BookListComponent - -Injectar `BooksService`dependência, adicionando-o ao `book-list.component.ts`construtor e adicione uma variável chamada `selectedBook`. - -```js -import { BooksService } from '../shared/books.service'; -//... -selectedBook = {} as Books.Book; - -constructor( - //... - private booksService: BooksService -) -``` - -`booksService`é usado para obter o livro de edição para preparar o formulário. Modifique o `buildForm`método para reutilizar o mesmo formulário ao editar um livro. - -```js -buildForm() { - this.form = this.fb.group({ - name: [this.selectedBook.name || '', Validators.required], - type: this.selectedBook.type || null, - publishDate: this.selectedBook.publishDate ? new Date(this.selectedBook.publishDate) : null, - price: this.selectedBook.price || null, - }); -} -``` - -Adicione o `editBook`método como mostrado abaixo: - -```js - editBook(id: string) { - this.booksService.getById(id).subscribe(book => { - this.selectedBook = book; - this.buildForm(); - this.isModalOpen = true; - }); - } -``` - -Adicionado `editBook`método para obter o livro de edição, criar o formulário e mostrar o modal. - -Agora, adicione a `selectedBook`definição ao `createBook`método para reutilizar o mesmo formulário ao criar um novo livro: - -```js - createBook() { - this.selectedBook = {} as Books.Book; - //... - } -``` - -Modifique o `save`método para passar o ID do livro selecionado, como mostrado abaixo: - -```js -save() { - if (this.form.invalid) { - return; - } - - this.store.dispatch(new CreateUpdateBook(this.form.value, this.selectedBook.id)) - .subscribe(() => { - this.isModalOpen = false; - this.form.reset(); - }); -} -``` - -#### Adicione o menu suspenso "Ações" à tabela - -Abra o `book-list.component.html` e adicione modifique o `p-table` como mostrado abaixo: - -```html - - - - Actions - Book name - Book type - Publish date - Price - - - - - -
    - -
    - -
    -
    - - {%{{{ data.name }}}%} - {%{{{ booksType[data.type] }}}%} - {%{{{ data.publishDate | date }}}%} - {%{{{ data.price }}}%} - -
    -
    -``` - -- Adicionado um `th`para a coluna "Ações". -- Adicionado `button`com `ngbDropdownToggle`para abrir ações quando clicamos no botão. - -> Nós costumávamos usar o [NgbDropdown](https://ng-bootstrap.github.io/#/components/dropdown/examples) no menu suspenso de ações. - -A interface do usuário final é semelhante a: - -![botões de ações](https://raw.githubusercontent.com/abpframework/abp/master/docs/en/Tutorials/Angular/images/bookstore-actions-buttons.png) - -Atualize o cabeçalho modal para alterar o título com base na operação atual: - -```html - -

    {%{{{ selectedBook.id ? 'Edit' : 'New Book' }}}%}

    -
    -``` - -![botões de ações](images/bookstore-edit-modal.png) - -### Exclusão de um livro existente - -#### BooksService - -Abra `books.service.ts`e inclua um `delete`método para excluir um livro com o `id`, executando uma solicitação HTTP no nó de extremidade relacionado: - -```js -delete(id: string): Observable { - return this.restService.request({ - method: 'DELETE', - url: `/api/app/book/${id}` - }); -} -``` - -#### Ação DeleteBook - -Adicione uma ação chamada `DeleteBook`para `books.actions.ts`: - -```js -export class DeleteBook { - static readonly type = '[Books] Delete'; - constructor(public id: string) {} -} -``` - -Abra o `books.state.ts`e adicione o `delete`método que ouvirá a `DeleteBook`ação para excluir um livro: - -```js -import { ... , DeleteBook } from '../actions/books.actions'; -//... -@Action(DeleteBook) -delete(ctx: StateContext, action: DeleteBook) { - return this.booksService.delete(action.id).pipe(switchMap(() => ctx.dispatch(new GetBooks()))); -} -``` - -- Adicionado `DeleteBook`à lista de importação. -- Usa `bookService`para excluir o livro. - -\#### Adicionar um botão Excluir - -Abra `book-list.component.html`e modifique `ngbDropdownMenu`para adicionar o botão excluir, como mostrado abaixo: - -```html -
    - ... - -
    -``` - -A interface do usuário suspensa de ações finais é semelhante a abaixo: - -![livraria-final-ações-suspensa](images/bookstore-final-actions-dropdown.png) - -\#### Caixa de diálogo Excluir confirmação - -Abra `book-list.component.ts`e injete o `ConfirmationService`. - -```js -import { ConfirmationService } from '@abp/ng.theme.shared'; -//... -constructor( - //... - private confirmationService: ConfirmationService -) -``` - -> `ConfirmationService` é um serviço simples fornecido pela estrutura ABP que usa internamente o PrimeNG. - -Adicione um método de exclusão ao `BookListComponent`: - -```js -import { ... , DeleteBook } from '../../store/actions'; -import { ... , Toaster } from '@abp/ng.theme.shared'; -//... -delete(id: string, name: string) { - this.confirmationService - .error(`${name} will be deleted. Do you confirm that?`, 'Are you sure?') - .subscribe(status => { - if (status === Toaster.Status.confirm) { - this.store.dispatch(new DeleteBook(id)); - } - }); -} -``` - -O `delete`método mostra um pop-up de confirmação e assina a resposta do usuário. `DeleteBook`ação despachada somente se o usuário clicar no `Yes`botão O pop-up de confirmação é exibido abaixo: - -![livraria-confirmação-pop-up](images/bookstore-confirmation-popup.png) - -### Próxima parte - -Veja a [próxima parte](Part-III.md) deste tutorial. - diff --git a/docs/pt-BR/Tutorials/Angular/Part-III.md b/docs/pt-BR/Tutorials/Angular/Part-III.md deleted file mode 100644 index e51082e176..0000000000 --- a/docs/pt-BR/Tutorials/Angular/Part-III.md +++ /dev/null @@ -1,181 +0,0 @@ -## Tutorial do ASP.NET Core MVC - Parte III - -### Sobre este tutorial - -Esta é a terceira parte da série de tutoriais Angular. Veja todas as peças: - -- [Parte I: Crie o projeto e uma página da lista de livros](Part-I.md) -- [Parte II: Criar, atualizar e excluir livros](Part-II.md) -- **Parte III: Testes de Integração (este tutorial)** - -Esta parte abrange os testes do **lado** do **servidor** . Você pode acessar o **código fonte** do aplicativo no [repositório GitHub](https://github.com/abpframework/abp-samples/tree/master/BookStore-Angular-MongoDb) . - -### Testar projetos na solução - -Existem vários projetos de teste na solução: - -![livraria-teste-projetos](images/bookstore-test-projects-v3.png) - -Cada projeto é usado para testar o projeto de aplicativo relacionado. Os projetos de teste usam as seguintes bibliotecas para teste: - -- [xunit](https://xunit.github.io/) como a principal estrutura de teste. -- [Shouldly](http://shouldly.readthedocs.io/en/latest/) como uma biblioteca de asserções. -- [NSubstitute](http://nsubstitute.github.io/) como uma biblioteca de zombaria. - -### Adicionando dados de teste - -O modelo de inicialização contém a `BookStoreTestDataSeedContributor`classe no `Acme.BookStore.TestBase`projeto que cria alguns dados para executar os testes. - -Mude a `BookStoreTestDataSeedContributor`classe como mostrado abaixo: - -```csharp -using System; -using System.Threading.Tasks; -using Volo.Abp.Data; -using Volo.Abp.DependencyInjection; -using Volo.Abp.Domain.Repositories; -using Volo.Abp.Guids; - -namespace Acme.BookStore -{ - public class BookStoreTestDataSeedContributor - : IDataSeedContributor, ITransientDependency - { - private readonly IRepository _bookRepository; - private readonly IGuidGenerator _guidGenerator; - - public BookStoreTestDataSeedContributor( - IRepository bookRepository, - IGuidGenerator guidGenerator) - { - _bookRepository = bookRepository; - _guidGenerator = guidGenerator; - } - - public async Task SeedAsync(DataSeedContext context) - { - await _bookRepository.InsertAsync( - new Book - { - Id = _guidGenerator.Create(), - Name = "Test book 1", - Type = BookType.Fantastic, - PublishDate = new DateTime(2015, 05, 24), - Price = 21 - } - ); - - await _bookRepository.InsertAsync( - new Book - { - Id = _guidGenerator.Create(), - Name = "Test book 2", - Type = BookType.Science, - PublishDate = new DateTime(2014, 02, 11), - Price = 15 - } - ); - } - } -} -``` - -- Injetado `IRepository`e usado no `SeedAsync`para criar duas entidades de livro como dados de teste. -- `IGuidGenerator`Serviço usado para criar GUIDs. Embora `Guid.NewGuid()`funcionasse perfeitamente para testes, `IGuidGenerator`possui recursos adicionais especialmente importantes ao usar bancos de dados reais (consulte o documento de geração do [Guid](../../Guid-Generation.md) para obter mais informações). - -### Testando o BookAppService - -Crie uma classe de teste denominada `BookAppService_Tests`no `Acme.BookStore.Application.Tests`projeto: - -```csharp -using System.Threading.Tasks; -using Shouldly; -using Volo.Abp.Application.Dtos; -using Xunit; - -namespace Acme.BookStore -{ - public class BookAppService_Tests : BookStoreApplicationTestBase - { - private readonly IBookAppService _bookAppService; - - public BookAppService_Tests() - { - _bookAppService = GetRequiredService(); - } - - [Fact] - public async Task Should_Get_List_Of_Books() - { - //Act - var result = await _bookAppService.GetListAsync( - new PagedAndSortedResultRequestDto() - ); - - //Assert - result.TotalCount.ShouldBeGreaterThan(0); - result.Items.ShouldContain(b => b.Name == "Test book 1"); - } - } -} -``` - -- `Should_Get_List_Of_Books`O teste simplesmente usa o `BookAppService.GetListAsync`método para obter e verificar a lista de usuários. - -Adicione um novo teste que crie um novo livro válido: - -```csharp -[Fact] -public async Task Should_Create_A_Valid_Book() -{ - //Act - var result = await _bookAppService.CreateAsync( - new CreateUpdateBookDto - { - Name = "New test book 42", - Price = 10, - PublishDate = DateTime.Now, - Type = BookType.ScienceFiction - } - ); - - //Assert - result.Id.ShouldNotBe(Guid.Empty); - result.Name.ShouldBe("New test book 42"); -} -``` - -Adicione um novo teste que tente criar um livro inválido e falhe: - -```csharp -[Fact] -public async Task Should_Not_Create_A_Book_Without_Name() -{ - var exception = await Assert.ThrowsAsync(async () => - { - await _bookAppService.CreateAsync( - new CreateUpdateBookDto - { - Name = "", - Price = 10, - PublishDate = DateTime.Now, - Type = BookType.ScienceFiction - } - ); - }); - - exception.ValidationErrors - .ShouldContain(err => err.MemberNames.Any(mem => mem == "Name")); -} -``` - -- Como o `Name`está vazio, o ABP lança um `AbpValidationException`. - -Abra a **janela Test Explorer** (use o menu Test -> Windows -> Test Explorer, se não estiver visível) e **execute Todos os** testes: - -![testes de serviço de livraria](images/bookstore-test-explorer.png) - -Parabéns, ícones verdes mostram que os testes foram aprovados com sucesso! - - - \ No newline at end of file diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-actions-buttons.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-actions-buttons.png deleted file mode 100644 index e09aad6400431827370558f3f32fca9136a550fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18217 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 diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-angular-file-tree.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-angular-file-tree.png deleted file mode 100644 index ec117a46b6b2553e7e81bfdbe5c9e5fa52231c9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84413 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 diff --git a/docs/cs/images/create-new-aspnet-core-application.png b/docs/cs/images/create-new-aspnet-core-application.png deleted file mode 100644 index 2c382898102ab22614783774b4a2b059ef26ead6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20198 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 diff --git a/docs/cs/images/create-new-net-core-console-application.png b/docs/cs/images/create-new-net-core-console-application.png deleted file mode 100644 index 0c2b3dbcb891d70f60edc223bf63a1d4a4c8409c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21247 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 diff --git a/docs/cs/images/dashboard1.png b/docs/cs/images/dashboard1.png deleted file mode 100644 index 8c542b87868b0275b685239356d5ff4b591e718d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35432 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