From ad8b9ea14383e38a3f1bd1f1ba91e68ddcb61ebb Mon Sep 17 00:00:00 2001 From: lvzb <35200379@qq.com> Date: Fri, 22 Sep 2023 10:41:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=A1=B9=E7=9B=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitattributes | 1 + .gitignore | 262 + .prettierrc | 5 + API.sln | 151 + API.sln.DotSettings | 23 + NuGet.Config | 6 + WinForm/App.config | 38 + WinForm/Form1.Designer.cs | 72 + WinForm/Form1.cs | 20 + WinForm/Form1.resx | 120 + WinForm/Program.cs | 36 + WinForm/Properties/AssemblyInfo.cs | 36 + WinForm/Properties/Resources.Designer.cs | 70 + WinForm/Properties/Resources.resx | 117 + WinForm/Properties/Settings.Designer.cs | 29 + WinForm/Properties/Settings.settings | 7 + WinForm/WinForm.csproj | 233 + WinForm/WinFormModule.cs | 58 + WinForm/packages.config | 44 + WinFormsApp/Form1.Designer.cs | 62 + WinFormsApp/Form1.cs | 75 + WinFormsApp/Form1.resx | 60 + WinFormsApp/Program.cs | 73 + WinFormsApp/WinFormModule.cs | 65 + WinFormsApp/WinFormsApp.csproj | 35 + WinFormsApp/appsettings.json | 22 + .../Properties/AssemblyInfo.cs | 36 + .../UserControl1.Designer.cs | 38 + WindowsFormsControlLibrary1/UserControl1.cs | 20 + .../WindowsFormsControlLibrary1.csproj | 62 + common.props | 15 + install-service.bat | 18 + .../API.Application.Contracts.csproj | 24 + .../APIApplicationContractsModule.cs | 29 + .../APIDtoExtensions.cs | 29 + .../IBackgroundJobManagerApplication.cs | 12 + .../APIPermissionDefinitionProvider.cs | 21 + .../Permissions/APIPermissions.cs | 10 + src/API.Application.Contracts/RequestDto.cs | 15 + src/API.Application/API.Application.csproj | 24 + src/API.Application/APIAppService.cs | 18 + .../APIApplicationAutoMapperProfile.cs | 16 + src/API.Application/APIApplicationModule.cs | 32 + .../BackgroundJobManagerApplication.cs | 46 + src/API.Application/JobArgs.cs | 15 + .../Properties/AssemblyInfo.cs | 2 + src/API.DbMigrator/API.DbMigrator.csproj | 43 + src/API.DbMigrator/APIDbMigratorModule.cs | 20 + src/API.DbMigrator/DbMigratorHostedService.cs | 47 + src/API.DbMigrator/Program.cs | 45 + src/API.DbMigrator/appsettings.json | 29 + src/API.DbMigrator/appsettings.secrets.json | 2 + src/API.DbMigrator/tempkey.rsa | 13 + .../API.Domain.Shared.csproj | 32 + src/API.Domain.Shared/APIDomainErrorCodes.cs | 7 + .../APIDomainSharedModule.cs | 59 + .../APIGlobalFeatureConfigurator.cs | 23 + .../APIModuleExtensionConfigurator.cs | 72 + src/API.Domain.Shared/DataHelper.cs | 36 + .../Enums/EnumCompanyType.cs | 19 + .../Filter/EnumFilterAction.cs | 63 + .../Filter/EnumFilterLogic.cs | 18 + .../Filter/FilterCondition.cs | 43 + .../Filter/FilterExtensions.cs | 314 + src/API.Domain.Shared/JsonHelper.cs | 40 + .../Localization/API/ar.json | 8 + .../Localization/API/cs.json | 8 + .../Localization/API/de-DE.json | 8 + .../Localization/API/en-GB.json | 8 + .../Localization/API/en.json | 8 + .../Localization/API/es.json | 8 + .../Localization/API/fi.json | 8 + .../Localization/API/fr.json | 8 + .../Localization/API/hi.json | 8 + .../Localization/API/hu.json | 8 + .../Localization/API/it.json | 8 + .../Localization/API/nl.json | 8 + .../Localization/API/pl-PL.json | 8 + .../Localization/API/pt-BR.json | 8 + .../Localization/API/ru.json | 8 + .../Localization/API/sk.json | 8 + .../Localization/API/sl.json | 8 + .../Localization/API/tr.json | 8 + .../Localization/API/vi.json | 8 + .../Localization/API/zh-Hans.json | 8 + .../Localization/API/zh-Hant.json | 8 + .../Localization/APIResource.cs | 10 + .../MultiTenancy/MultiTenancyConsts.cs | 11 + src/API.Domain.Shared/TD_DATA.cs | 50 + src/API.Domain/API.Domain.csproj | 29 + src/API.Domain/APIConsts.cs | 9 + src/API.Domain/APIDbProperties.cs | 18 + src/API.Domain/APIDomainModule.cs | 46 + src/API.Domain/BudgetDataSources/JQ_LRB.cs | 92 + src/API.Domain/BudgetDataSources/JQ_QJFYB.cs | 93 + src/API.Domain/BudgetDataSources/JQ_SCCBB.cs | 101 + src/API.Domain/BudgetDataSources/JQ_XJLLB.cs | 106 + src/API.Domain/BudgetDataSources/JQ_ZCFZB.cs | 92 + src/API.Domain/BudgetDataSources/JQ_ZZFYB.cs | 92 + .../BudgetDataSources/TI_CBB04_BUDGET.cs | 72 + .../BudgetDataSources/TI_CWB16_BUDGET.cs | 65 + .../BudgetDataSources/TI_CWB17_BUDGET.cs | 83 + .../BudgetDataSources/TI_CWB18_BUDGET.cs | 78 + .../BudgetDataSources/TI_CWB19_BUDGET.cs | 70 + .../BudgetDataSources/TI_HRB04_BUDGET.cs | 66 + .../BudgetDataSources/TO_CWC14_BUDGET.cs | 85 + .../BudgetDataSources/TO_CWC19_BUDGET.cs | 83 + .../BudgetDataSources/TO_CWC21_BUDGET.cs | 71 + .../BudgetDataSources/TO_GGC01_BUDGET.cs | 141 + .../BudgetDataSources/TO_HRC01_BUDGET.cs | 70 + .../BudgetDataSources/TO_JGC01_BUDGET.cs | 103 + .../BudgetDataSources/TS_XSA04_BUDGET.cs | 74 + src/API.Domain/BudgetDbProperties.cs | 19 + src/API.Domain/Data/APIDbMigrationService.cs | 220 + src/API.Domain/Data/IAPIDbSchemaMigrator.cs | 9 + .../Data/NullAPIDbSchemaMigrator.cs | 16 + src/API.Domain/DataSources/JQ_COMPARE.cs | 43 + src/API.Domain/DataSources/ODS_JQ_LRB.cs | 71 + .../DataSources/ODS_JQ_LRBManager.cs | 129 + src/API.Domain/DataSources/ODS_JQ_LRMXB.cs | 78 + .../DataSources/ODS_JQ_LRMXBManager.cs | 136 + src/API.Domain/DataSources/ODS_JQ_QJFYB.cs | 73 + .../DataSources/ODS_JQ_QJFYBManager.cs | 120 + src/API.Domain/DataSources/ODS_JQ_SCCBB.cs | 85 + .../DataSources/ODS_JQ_SCCBBManager.cs | 123 + .../DataSources/ODS_JQ_XJLLB_INNER_YEAR.cs | 88 + .../ODS_JQ_XJLLB_INNER_YEARManager.cs | 125 + src/API.Domain/DataSources/ODS_JQ_ZCFZB.cs | 72 + .../DataSources/ODS_JQ_ZCFZBManager.cs | 123 + src/API.Domain/DataSources/ODS_JQ_ZGXCB.cs | 92 + .../DataSources/ODS_JQ_ZGXCBManager.cs | 108 + .../DataSources/ODS_JQ_ZQMXB_YSZK.cs | 111 + .../DataSources/ODS_JQ_ZQMXB_YSZKManager.cs | 101 + .../DataSources/ODS_JQ_ZWMXB_YFZK.cs | 100 + .../DataSources/ODS_JQ_ZWMXB_YFZKManager.cs | 96 + src/API.Domain/DataSources/ODS_JQ_ZZFYB.cs | 71 + .../DataSources/ODS_JQ_ZZFYBManager.cs | 120 + src/API.Domain/DataSources/TI_CBB04.cs | 40 + src/API.Domain/DataSources/TI_CBB04Detail.cs | 36 + src/API.Domain/DataSources/TI_CBB04Manager.cs | 105 + src/API.Domain/DataSources/TI_CWB16.cs | 40 + src/API.Domain/DataSources/TI_CWB16Detail.cs | 40 + src/API.Domain/DataSources/TI_CWB16Manager.cs | 107 + src/API.Domain/DataSources/TI_CWB17.cs | 40 + src/API.Domain/DataSources/TI_CWB17Detail.cs | 51 + src/API.Domain/DataSources/TI_CWB17Manager.cs | 108 + src/API.Domain/DataSources/TI_CWB18.cs | 40 + src/API.Domain/DataSources/TI_CWB18Detail.cs | 34 + src/API.Domain/DataSources/TI_CWB18Manager.cs | 103 + src/API.Domain/DataSources/TI_CWB19.cs | 40 + src/API.Domain/DataSources/TI_CWB19Detail.cs | 34 + src/API.Domain/DataSources/TI_CWB19Manager.cs | 103 + src/API.Domain/DataSources/TI_HRB04.cs | 39 + src/API.Domain/DataSources/TI_HRB04Detail.cs | 34 + src/API.Domain/DataSources/TI_HRB04Manager.cs | 103 + src/API.Domain/DataSources/TO_CWC14.cs | 58 + src/API.Domain/DataSources/TO_CWC14Detail.cs | 40 + src/API.Domain/DataSources/TO_CWC14Manager.cs | 173 + src/API.Domain/DataSources/TO_CWC19.cs | 40 + src/API.Domain/DataSources/TO_CWC19Detail.cs | 42 + src/API.Domain/DataSources/TO_CWC19Manager.cs | 108 + src/API.Domain/DataSources/TO_CWC21.cs | 40 + src/API.Domain/DataSources/TO_CWC21Detail.cs | 40 + src/API.Domain/DataSources/TO_CWC21Manager.cs | 107 + src/API.Domain/DataSources/TO_GGC01.cs | 43 + src/API.Domain/DataSources/TO_GGC01Detail.cs | 86 + src/API.Domain/DataSources/TO_GGC01Manager.cs | 117 + src/API.Domain/DataSources/TO_HRC01.cs | 40 + src/API.Domain/DataSources/TO_HRC01Detail.cs | 38 + src/API.Domain/DataSources/TO_HRC01Manager.cs | 105 + src/API.Domain/DataSources/TO_JGC01.cs | 43 + src/API.Domain/DataSources/TO_JGC01Detail.cs | 96 + src/API.Domain/DataSources/TO_JGC01Manager.cs | 121 + src/API.Domain/DataSources/TS_XSA04.cs | 61 + src/API.Domain/DataSources/TS_XSA04Manager.cs | 95 + src/API.Domain/IAPIEfCoreRepository.cs | 21 + .../IdentityServerDataSeedContributor.cs | 288 + src/API.Domain/JQDataSources/ODS_JQ_LRB_JQ.cs | 62 + .../JQDataSources/ODS_JQ_LRMXB_JQ.cs | 50 + .../JQDataSources/ODS_JQ_QJFYB_JQ.cs | 42 + .../JQDataSources/ODS_JQ_SCCBB_JQ.cs | 45 + .../ODS_JQ_XJLLB_INNER_MONTH_JQ.cs | 46 + .../JQDataSources/ODS_JQ_ZCFZB_JQ.cs | 39 + .../JQDataSources/ODS_JQ_ZGXCB_JQ.cs | 48 + .../JQDataSources/ODS_JQ_ZQMXB_YSZK_JQ.cs | 57 + .../JQDataSources/ODS_JQ_ZWMXB_YFZK_JQ.cs | 51 + .../JQDataSources/ODS_JQ_ZZFYB_JQ.cs | 38 + src/API.Domain/JQDbProperties.cs | 18 + src/API.Domain/ManageBase/Company.cs | 63 + src/API.Domain/Properties/AssemblyInfo.cs | 3 + .../Settings/APISettingDefinitionProvider.cs | 13 + src/API.Domain/Settings/APISettings.cs | 10 + .../API.EntityFrameworkCore.csproj | 32 + .../BudgetDbContext.cs | 95 + .../BudgetDbContextFactory.cs | 33 + .../BudgetDbContextModelCreatingExtensions.cs | 257 + .../BudgetEfCoreEntityExtensionMappings.cs | 47 + .../BudgetEntityFrameworkCoreModule.cs | 64 + .../BudgetModelBuilderConfigurationOptions.cs | 20 + ...tityFrameworkCoreBudgetDbSchemaMigrator.cs | 38 + .../EntityFrameworkCore/APIDbContext.cs | 122 + .../APIDbContextFactory.cs | 33 + .../APIDbContextModelCreatingExtensions.cs | 476 + .../APIEfCoreEntityExtensionMappings.cs | 45 + .../APIEntityFrameworkCoreModule.cs | 76 + .../APIModelBuilderConfigurationOptions.cs | 19 + .../EntityFrameworkCoreAPIDbSchemaMigrator.cs | 35 + .../EntityFrameworkCoreJQDbSchemaMigrator.cs | 40 + .../JQEntityFrameworkCore/JQDbContext.cs | 107 + .../JQDbContextFactory.cs | 35 + .../JQDbContextModelCreatingExtensions.cs | 167 + .../JQEfCoreEntityExtensionMappings.cs | 48 + .../JQEntityFrameworkCoreModule.cs | 70 + .../JQModelBuilderConfigurationOptions.cs | 19 + .../Properties/AssemblyInfo.cs | 2 + .../Repository/APIEfCoreRepository.cs | 148 + .../Repository/QueryableExtension.cs | 90 + .../API.HttpApi.Client.csproj | 23 + .../APIHttpApiClientModule.cs | 33 + src/API.HttpApi/API.HttpApi.csproj | 23 + src/API.HttpApi/APIHttpApiModule.cs | 42 + src/API.HttpApi/Controllers/APIController.cs | 15 + src/API.HttpApi/Models/Test/TestModel.cs | 11 + src/API.Web/API.Web.csproj | 58 + src/API.Web/APIBrandingProvider.cs | 11 + src/API.Web/APIWebAutoMapperProfile.cs | 12 + src/API.Web/APIWebModule.cs | 279 + src/API.Web/Components/_ViewImports.cshtml | 4 + src/API.Web/JobService.cs | 29 + src/API.Web/Menus/APIMenuContributor.cs | 50 + src/API.Web/Menus/APIMenus.cs | 11 + src/API.Web/MyJob.cs | 172 + src/API.Web/MyLogWorker.cs | 73 + src/API.Web/Pages/APIPageModel.cs | 15 + src/API.Web/Pages/Index.cshtml | 163 + src/API.Web/Pages/Index.cshtml.cs | 10 + src/API.Web/Pages/Index.css | 3 + src/API.Web/Pages/Index.js | 3 + src/API.Web/Pages/_ViewImports.cshtml | 4 + src/API.Web/Program.cs | 66 + src/API.Web/Properties/AssemblyInfo.cs | 2 + src/API.Web/Properties/launchSettings.json | 27 + src/API.Web/Startup.cs | 18 + src/API.Web/Views/_ViewImports.cshtml | 4 + src/API.Web/abp.resourcemapping.js | 8 + src/API.Web/appsettings.Development.json | 2 + src/API.Web/appsettings.json | 131 + src/API.Web/appsettings.secrets.json | 2 + src/API.Web/gulpfile.js | 9 + src/API.Web/package.json | 8 + src/API.Web/tempkey.jwk | 1 + src/API.Web/tempkey.rsa | 1 + src/API.Web/wwwroot/global-styles.css | 1 + .../@fortawesome/fontawesome-free/css/all.css | 4586 +++++ .../fontawesome-free/css/v4-shims.css | 2172 +++ .../webfonts/fa-brands-400.eot | Bin 0 -> 134878 bytes .../webfonts/fa-brands-400.svg | 3633 ++++ .../webfonts/fa-brands-400.ttf | Bin 0 -> 134572 bytes .../webfonts/fa-brands-400.woff | Bin 0 -> 90872 bytes .../webfonts/fa-brands-400.woff2 | Bin 0 -> 77444 bytes .../webfonts/fa-regular-400.eot | Bin 0 -> 34390 bytes .../webfonts/fa-regular-400.svg | 803 + .../webfonts/fa-regular-400.ttf | Bin 0 -> 34092 bytes .../webfonts/fa-regular-400.woff | Bin 0 -> 16800 bytes .../webfonts/fa-regular-400.woff2 | Bin 0 -> 13596 bytes .../webfonts/fa-solid-900.eot | Bin 0 -> 204866 bytes .../webfonts/fa-solid-900.svg | 5000 +++++ .../webfonts/fa-solid-900.ttf | Bin 0 -> 204580 bytes .../webfonts/fa-solid-900.woff | Bin 0 -> 104252 bytes .../webfonts/fa-solid-900.woff2 | Bin 0 -> 80328 bytes src/API.Web/wwwroot/libs/abp/core/abp.css | 56 + src/API.Web/wwwroot/libs/abp/core/abp.js | 776 + .../wwwroot/libs/abp/jquery/abp.jquery.js | 404 + .../wwwroot/libs/abp/luxon/abp.luxon.js | 46 + .../wwwroot/libs/abp/utils/abp-utils.umd.js | 694 + .../libs/abp/utils/abp-utils.umd.js.map | 1 + .../libs/abp/utils/abp-utils.umd.min.js | 2 + .../libs/abp/utils/abp-utils.umd.min.js.map | 1 + .../bootstrap-datepicker.css.map | 1 + .../bootstrap-datepicker.min.css | 7 + .../bootstrap-datepicker.min.js | 8 + .../locales/bootstrap-datepicker-en-CA.min.js | 1 + .../locales/bootstrap-datepicker.ar-tn.min.js | 1 + .../locales/bootstrap-datepicker.ar.min.js | 1 + .../locales/bootstrap-datepicker.az.min.js | 1 + .../locales/bootstrap-datepicker.bg.min.js | 1 + .../locales/bootstrap-datepicker.bm.min.js | 1 + .../locales/bootstrap-datepicker.bn.min.js | 1 + .../locales/bootstrap-datepicker.br.min.js | 1 + .../locales/bootstrap-datepicker.bs.min.js | 1 + .../locales/bootstrap-datepicker.ca.min.js | 1 + .../locales/bootstrap-datepicker.cs.min.js | 1 + .../locales/bootstrap-datepicker.cy.min.js | 1 + .../locales/bootstrap-datepicker.da.min.js | 1 + .../locales/bootstrap-datepicker.de.min.js | 1 + .../locales/bootstrap-datepicker.el.min.js | 1 + .../locales/bootstrap-datepicker.en-AU.min.js | 1 + .../locales/bootstrap-datepicker.en-CA.min.js | 1 + .../locales/bootstrap-datepicker.en-GB.min.js | 1 + .../locales/bootstrap-datepicker.en-IE.min.js | 1 + .../locales/bootstrap-datepicker.en-NZ.min.js | 1 + .../locales/bootstrap-datepicker.en-ZA.min.js | 1 + .../locales/bootstrap-datepicker.eo.min.js | 1 + .../locales/bootstrap-datepicker.es.min.js | 1 + .../locales/bootstrap-datepicker.et.min.js | 1 + .../locales/bootstrap-datepicker.eu.min.js | 1 + .../locales/bootstrap-datepicker.fa.min.js | 1 + .../locales/bootstrap-datepicker.fi.min.js | 1 + .../locales/bootstrap-datepicker.fo.min.js | 1 + .../locales/bootstrap-datepicker.fr-CH.min.js | 1 + .../locales/bootstrap-datepicker.fr.min.js | 1 + .../locales/bootstrap-datepicker.gl.min.js | 1 + .../locales/bootstrap-datepicker.he.min.js | 1 + .../locales/bootstrap-datepicker.hi.min.js | 1 + .../locales/bootstrap-datepicker.hr.min.js | 1 + .../locales/bootstrap-datepicker.hu.min.js | 1 + .../locales/bootstrap-datepicker.hy.min.js | 1 + .../locales/bootstrap-datepicker.id.min.js | 1 + .../locales/bootstrap-datepicker.is.min.js | 1 + .../locales/bootstrap-datepicker.it-CH.min.js | 1 + .../locales/bootstrap-datepicker.it.min.js | 1 + .../locales/bootstrap-datepicker.ja.min.js | 1 + .../locales/bootstrap-datepicker.ka.min.js | 1 + .../locales/bootstrap-datepicker.kh.min.js | 1 + .../locales/bootstrap-datepicker.kk.min.js | 1 + .../locales/bootstrap-datepicker.km.min.js | 1 + .../locales/bootstrap-datepicker.ko.min.js | 1 + .../locales/bootstrap-datepicker.kr.min.js | 1 + .../locales/bootstrap-datepicker.lt.min.js | 1 + .../locales/bootstrap-datepicker.lv.min.js | 1 + .../locales/bootstrap-datepicker.me.min.js | 1 + .../locales/bootstrap-datepicker.mk.min.js | 1 + .../locales/bootstrap-datepicker.mn.min.js | 1 + .../locales/bootstrap-datepicker.ms.min.js | 1 + .../locales/bootstrap-datepicker.nl-BE.min.js | 1 + .../locales/bootstrap-datepicker.nl.min.js | 1 + .../locales/bootstrap-datepicker.no.min.js | 1 + .../locales/bootstrap-datepicker.oc.min.js | 1 + .../locales/bootstrap-datepicker.pl.min.js | 1 + .../locales/bootstrap-datepicker.pt-BR.min.js | 1 + .../locales/bootstrap-datepicker.pt.min.js | 1 + .../locales/bootstrap-datepicker.ro.min.js | 1 + .../bootstrap-datepicker.rs-latin.min.js | 1 + .../locales/bootstrap-datepicker.rs.min.js | 1 + .../locales/bootstrap-datepicker.ru.min.js | 1 + .../locales/bootstrap-datepicker.si.min.js | 1 + .../locales/bootstrap-datepicker.sk.min.js | 1 + .../locales/bootstrap-datepicker.sl.min.js | 1 + .../locales/bootstrap-datepicker.sq.min.js | 1 + .../bootstrap-datepicker.sr-latin.min.js | 1 + .../locales/bootstrap-datepicker.sr.min.js | 1 + .../locales/bootstrap-datepicker.sv.min.js | 1 + .../locales/bootstrap-datepicker.sw.min.js | 1 + .../locales/bootstrap-datepicker.ta.min.js | 1 + .../locales/bootstrap-datepicker.tg.min.js | 1 + .../locales/bootstrap-datepicker.th.min.js | 1 + .../locales/bootstrap-datepicker.tk.min.js | 1 + .../locales/bootstrap-datepicker.tr.min.js | 1 + .../locales/bootstrap-datepicker.uk.min.js | 1 + .../bootstrap-datepicker.uz-cyrl.min.js | 1 + .../bootstrap-datepicker.uz-latn.min.js | 1 + .../locales/bootstrap-datepicker.vi.min.js | 1 + .../locales/bootstrap-datepicker.zh-CN.min.js | 1 + .../locales/bootstrap-datepicker.zh-TW.min.js | 1 + .../libs/bootstrap/css/bootstrap-rtl.css | 11453 ++++++++++++ .../libs/bootstrap/css/bootstrap-rtl.css.map | 1 + .../libs/bootstrap/css/bootstrap-rtl.min.css | 7 + .../bootstrap/css/bootstrap-rtl.min.css.map | 1 + .../wwwroot/libs/bootstrap/css/bootstrap.css | 10298 +++++++++++ .../libs/bootstrap/css/bootstrap.css.map | 1 + .../libs/bootstrap/css/bootstrap.min.css | 7 + .../libs/bootstrap/css/bootstrap.min.css.map | 1 + .../libs/bootstrap/js/bootstrap.bundle.js | 7045 +++++++ .../libs/bootstrap/js/bootstrap.bundle.js.map | 1 + .../libs/bootstrap/js/bootstrap.bundle.min.js | 7 + .../bootstrap/js/bootstrap.bundle.min.js.map | 1 + .../css/dataTables.bootstrap4.css | 212 + .../js/dataTables.bootstrap4.js | 184 + .../datatables.net/js/jquery.dataTables.js | 15354 ++++++++++++++++ .../libs/jquery-form/jquery.form.min.js | 23 + .../libs/jquery-form/jquery.form.min.js.map | 1 + .../jquery.validate.unobtrusive.js | 432 + .../libs/jquery-validation/jquery.validate.js | 1601 ++ .../localization/messages_ar.js | 35 + .../localization/messages_az.js | 35 + .../localization/messages_bg.js | 35 + .../localization/messages_bn_BD.js | 35 + .../localization/messages_ca.js | 35 + .../localization/messages_cs.js | 35 + .../localization/messages_da.js | 32 + .../localization/messages_de.js | 32 + .../localization/messages_el.js | 35 + .../localization/messages_es.js | 38 + .../localization/messages_es_AR.js | 39 + .../localization/messages_es_PE.js | 39 + .../localization/messages_et.js | 33 + .../localization/messages_eu.js | 35 + .../localization/messages_fa.js | 38 + .../localization/messages_fi.js | 33 + .../localization/messages_fr.js | 63 + .../localization/messages_ge.js | 35 + .../localization/messages_gl.js | 40 + .../localization/messages_he.js | 35 + .../localization/messages_hr.js | 35 + .../localization/messages_hu.js | 35 + .../localization/messages_hy_AM.js | 35 + .../localization/messages_id.js | 34 + .../localization/messages_is.js | 33 + .../localization/messages_it.js | 39 + .../localization/messages_ja.js | 36 + .../localization/messages_ka.js | 35 + .../localization/messages_kk.js | 35 + .../localization/messages_ko.js | 35 + .../localization/messages_lt.js | 35 + .../localization/messages_lv.js | 35 + .../localization/messages_mk.js | 35 + .../localization/messages_my.js | 35 + .../localization/messages_nl.js | 46 + .../localization/messages_no.js | 36 + .../localization/messages_pl.js | 37 + .../localization/messages_pt_BR.js | 88 + .../localization/messages_pt_PT.js | 39 + .../localization/messages_ro.js | 35 + .../localization/messages_ru.js | 35 + .../localization/messages_sd.js | 35 + .../localization/messages_si.js | 35 + .../localization/messages_sk.js | 32 + .../localization/messages_sl.js | 35 + .../localization/messages_sr.js | 35 + .../localization/messages_sr_lat.js | 35 + .../localization/messages_sv.js | 33 + .../localization/messages_th.js | 35 + .../localization/messages_tj.js | 35 + .../localization/messages_tr.js | 36 + .../localization/messages_uk.js | 35 + .../localization/messages_ur.js | 35 + .../localization/messages_vi.js | 35 + .../localization/messages_zh.js | 35 + .../localization/messages_zh_TW.js | 36 + .../localization/methods_de.js | 24 + .../localization/methods_es_CL.js | 24 + .../localization/methods_fi.js | 24 + .../localization/methods_nl.js | 24 + .../localization/methods_pt.js | 21 + src/API.Web/wwwroot/libs/jquery/jquery.js | 10364 +++++++++++ src/API.Web/wwwroot/libs/lodash/lodash.min.js | 137 + src/API.Web/wwwroot/libs/luxon/luxon.js | 8258 +++++++++ src/API.Web/wwwroot/libs/luxon/luxon.js.map | 1 + src/API.Web/wwwroot/libs/luxon/luxon.min.js | 1 + .../wwwroot/libs/luxon/luxon.min.js.map | 1 + .../jquery.mCustomScrollbar.concat.min.js | 5 + .../jquery.mCustomScrollbar.css | 1267 ++ .../jquery.mCustomScrollbar.js | 2458 +++ .../mCSB_buttons.png | Bin 0 -> 2998 bytes .../package.json | 37 + .../malihu-custom-scrollbar-plugin/readme.md | 82 + .../wwwroot/libs/select2/css/select2.min.css | 1 + .../wwwroot/libs/select2/js/i18n/af.js | 3 + .../wwwroot/libs/select2/js/i18n/ar.js | 3 + .../wwwroot/libs/select2/js/i18n/az.js | 3 + .../wwwroot/libs/select2/js/i18n/bg.js | 3 + .../wwwroot/libs/select2/js/i18n/bn.js | 3 + .../wwwroot/libs/select2/js/i18n/bs.js | 3 + .../wwwroot/libs/select2/js/i18n/ca.js | 3 + .../wwwroot/libs/select2/js/i18n/cs.js | 3 + .../wwwroot/libs/select2/js/i18n/da.js | 3 + .../wwwroot/libs/select2/js/i18n/de.js | 3 + .../wwwroot/libs/select2/js/i18n/dsb.js | 3 + .../wwwroot/libs/select2/js/i18n/el.js | 3 + .../wwwroot/libs/select2/js/i18n/en.js | 3 + .../wwwroot/libs/select2/js/i18n/es.js | 3 + .../wwwroot/libs/select2/js/i18n/et.js | 3 + .../wwwroot/libs/select2/js/i18n/eu.js | 3 + .../wwwroot/libs/select2/js/i18n/fa.js | 3 + .../wwwroot/libs/select2/js/i18n/fi.js | 3 + .../wwwroot/libs/select2/js/i18n/fr.js | 3 + .../wwwroot/libs/select2/js/i18n/gl.js | 3 + .../wwwroot/libs/select2/js/i18n/he.js | 3 + .../wwwroot/libs/select2/js/i18n/hi.js | 3 + .../wwwroot/libs/select2/js/i18n/hr.js | 3 + .../wwwroot/libs/select2/js/i18n/hsb.js | 3 + .../wwwroot/libs/select2/js/i18n/hu.js | 3 + .../wwwroot/libs/select2/js/i18n/hy.js | 3 + .../wwwroot/libs/select2/js/i18n/id.js | 3 + .../wwwroot/libs/select2/js/i18n/is.js | 3 + .../wwwroot/libs/select2/js/i18n/it.js | 3 + .../wwwroot/libs/select2/js/i18n/ja.js | 3 + .../wwwroot/libs/select2/js/i18n/ka.js | 3 + .../wwwroot/libs/select2/js/i18n/km.js | 3 + .../wwwroot/libs/select2/js/i18n/ko.js | 3 + .../wwwroot/libs/select2/js/i18n/lt.js | 3 + .../wwwroot/libs/select2/js/i18n/lv.js | 3 + .../wwwroot/libs/select2/js/i18n/mk.js | 3 + .../wwwroot/libs/select2/js/i18n/ms.js | 3 + .../wwwroot/libs/select2/js/i18n/nb.js | 3 + .../wwwroot/libs/select2/js/i18n/ne.js | 3 + .../wwwroot/libs/select2/js/i18n/nl.js | 3 + .../wwwroot/libs/select2/js/i18n/pl.js | 3 + .../wwwroot/libs/select2/js/i18n/ps.js | 3 + .../wwwroot/libs/select2/js/i18n/pt-BR.js | 3 + .../wwwroot/libs/select2/js/i18n/pt.js | 3 + .../wwwroot/libs/select2/js/i18n/ro.js | 3 + .../wwwroot/libs/select2/js/i18n/ru.js | 3 + .../wwwroot/libs/select2/js/i18n/sk.js | 3 + .../wwwroot/libs/select2/js/i18n/sl.js | 3 + .../wwwroot/libs/select2/js/i18n/sq.js | 3 + .../wwwroot/libs/select2/js/i18n/sr-Cyrl.js | 3 + .../wwwroot/libs/select2/js/i18n/sr.js | 3 + .../wwwroot/libs/select2/js/i18n/sv.js | 3 + .../wwwroot/libs/select2/js/i18n/th.js | 3 + .../wwwroot/libs/select2/js/i18n/tk.js | 3 + .../wwwroot/libs/select2/js/i18n/tr.js | 3 + .../wwwroot/libs/select2/js/i18n/uk.js | 3 + .../wwwroot/libs/select2/js/i18n/vi.js | 3 + .../wwwroot/libs/select2/js/i18n/zh-CN.js | 3 + .../wwwroot/libs/select2/js/i18n/zh-TW.js | 3 + .../js/select2-bootstrap-modal-patch.js | 4 + .../libs/select2/js/select2.full.min.js | 2 + .../wwwroot/libs/select2/js/select2.min.js | 2 + .../wwwroot/libs/sweetalert/sweetalert.min.js | 1 + .../wwwroot/libs/timeago/jquery.timeago.js | 232 + .../wwwroot/libs/timeago/locales/README.md | 27 + .../libs/timeago/locales/jquery.timeago.af.js | 30 + .../libs/timeago/locales/jquery.timeago.am.js | 30 + .../libs/timeago/locales/jquery.timeago.ar.js | 104 + .../locales/jquery.timeago.az-short.js | 30 + .../libs/timeago/locales/jquery.timeago.az.js | 30 + .../libs/timeago/locales/jquery.timeago.be.js | 43 + .../libs/timeago/locales/jquery.timeago.bg.js | 28 + .../libs/timeago/locales/jquery.timeago.bs.js | 55 + .../libs/timeago/locales/jquery.timeago.ca.js | 30 + .../libs/timeago/locales/jquery.timeago.cs.js | 34 + .../libs/timeago/locales/jquery.timeago.cy.js | 30 + .../libs/timeago/locales/jquery.timeago.da.js | 28 + .../locales/jquery.timeago.de-short.js | 30 + .../libs/timeago/locales/jquery.timeago.de.js | 28 + .../libs/timeago/locales/jquery.timeago.dv.js | 32 + .../libs/timeago/locales/jquery.timeago.el.js | 28 + .../locales/jquery.timeago.en-short.js | 30 + .../libs/timeago/locales/jquery.timeago.en.js | 30 + .../locales/jquery.timeago.es-short.js | 31 + .../libs/timeago/locales/jquery.timeago.es.js | 29 + .../libs/timeago/locales/jquery.timeago.et.js | 28 + .../libs/timeago/locales/jquery.timeago.eu.js | 28 + .../locales/jquery.timeago.fa-short.js | 30 + .../libs/timeago/locales/jquery.timeago.fa.js | 32 + .../libs/timeago/locales/jquery.timeago.fi.js | 38 + .../locales/jquery.timeago.fr-short.js | 26 + .../libs/timeago/locales/jquery.timeago.fr.js | 27 + .../libs/timeago/locales/jquery.timeago.gl.js | 28 + .../libs/timeago/locales/jquery.timeago.he.js | 26 + .../libs/timeago/locales/jquery.timeago.hr.js | 54 + .../libs/timeago/locales/jquery.timeago.hu.js | 28 + .../libs/timeago/locales/jquery.timeago.hy.js | 28 + .../libs/timeago/locales/jquery.timeago.id.js | 29 + .../libs/timeago/locales/jquery.timeago.is.js | 29 + .../locales/jquery.timeago.it-short.js | 30 + .../libs/timeago/locales/jquery.timeago.it.js | 28 + .../libs/timeago/locales/jquery.timeago.ja.js | 29 + .../libs/timeago/locales/jquery.timeago.jv.js | 28 + .../libs/timeago/locales/jquery.timeago.ko.js | 31 + .../libs/timeago/locales/jquery.timeago.ky.js | 42 + .../libs/timeago/locales/jquery.timeago.lt.js | 30 + .../libs/timeago/locales/jquery.timeago.lv.js | 30 + .../libs/timeago/locales/jquery.timeago.mk.js | 30 + .../libs/timeago/locales/jquery.timeago.nl.js | 30 + .../libs/timeago/locales/jquery.timeago.no.js | 28 + .../libs/timeago/locales/jquery.timeago.pl.js | 39 + .../locales/jquery.timeago.pt-br-short.js | 30 + .../timeago/locales/jquery.timeago.pt-br.js | 28 + .../locales/jquery.timeago.pt-short.js | 30 + .../libs/timeago/locales/jquery.timeago.pt.js | 26 + .../libs/timeago/locales/jquery.timeago.ro.js | 29 + .../libs/timeago/locales/jquery.timeago.rs.js | 54 + .../libs/timeago/locales/jquery.timeago.ru.js | 43 + .../libs/timeago/locales/jquery.timeago.rw.js | 30 + .../libs/timeago/locales/jquery.timeago.si.js | 28 + .../libs/timeago/locales/jquery.timeago.sk.js | 34 + .../libs/timeago/locales/jquery.timeago.sl.js | 46 + .../libs/timeago/locales/jquery.timeago.sq.js | 26 + .../libs/timeago/locales/jquery.timeago.sr.js | 54 + .../libs/timeago/locales/jquery.timeago.sv.js | 28 + .../libs/timeago/locales/jquery.timeago.th.js | 30 + .../locales/jquery.timeago.tr-short.js | 30 + .../libs/timeago/locales/jquery.timeago.tr.js | 26 + .../libs/timeago/locales/jquery.timeago.uk.js | 42 + .../libs/timeago/locales/jquery.timeago.ur.js | 30 + .../libs/timeago/locales/jquery.timeago.uz.js | 29 + .../libs/timeago/locales/jquery.timeago.vi.js | 30 + .../timeago/locales/jquery.timeago.zh-CN.js | 31 + .../timeago/locales/jquery.timeago.zh-TW.js | 30 + src/API.Web/wwwroot/libs/toastr/toastr.css | 228 + src/API.Web/wwwroot/libs/toastr/toastr.js.map | 1 + .../wwwroot/libs/toastr/toastr.min.css | 1 + src/API.Web/wwwroot/libs/toastr/toastr.min.js | 2 + src/API.Web/yarn.lock | 2673 +++ src/AbpWindowsService/APIAutoMapperProfile.cs | 26 + .../AbpWindowsService.csproj | 45 + .../AbpWindowsServiceHostedService.cs | 41 + .../AbpWindowsServiceModule.cs | 68 + src/AbpWindowsService/HelloWorldService.cs | 13 + src/AbpWindowsService/MyBackgroundWorker.cs | 257 + src/AbpWindowsService/Program.cs | 62 + src/AbpWindowsService/appsettings.json | 152 + .../appsettings.secrets.json | 2 + src/WpfApp1/App.xaml | 9 + src/WpfApp1/App.xaml.cs | 91 + src/WpfApp1/AssemblyInfo.cs | 10 + src/WpfApp1/ClientCache.cs | 14 + src/WpfApp1/FmpWpfModule.cs | 64 + src/WpfApp1/MainWindow.xaml | 13 + src/WpfApp1/MainWindow.xaml.cs | 53 + src/WpfApp1/WpfApp1.csproj | 40 + src/WpfApp1/appsettings.json | 22 + .../API.Application.Tests.csproj | 19 + .../APIApplicationTestBase.cs | 7 + .../APIApplicationTestModule.cs | 13 + .../Samples/SampleAppServiceTests.cs | 33 + test/API.Domain.Tests/API.Domain.Tests.csproj | 18 + test/API.Domain.Tests/APIDomainTestBase.cs | 7 + test/API.Domain.Tests/APIDomainTestModule.cs | 13 + .../Samples/SampleDomainTests.cs | 45 + .../API.EntityFrameworkCore.Tests.csproj | 20 + .../APIEntityFrameworkCoreTestBase.cs | 9 + .../APIEntityFrameworkCoreTestModule.cs | 62 + .../Samples/SampleRepositoryTests.cs | 44 + .../API.HttpApi.Client.ConsoleTestApp.csproj | 31 + .../APIConsoleApiClientModule.cs | 29 + .../ClientDemoService.cs | 26 + .../ConsoleTestAppHostedService.cs | 37 + .../Program.cs | 26 + .../appsettings.json | 18 + .../appsettings.secrets.json | 2 + test/API.TestBase/API.TestBase.csproj | 26 + test/API.TestBase/APITestBase.cs | 61 + test/API.TestBase/APITestBaseModule.cs | 62 + .../APITestDataSeedContributor.cs | 16 + .../Security/FakeCurrentPrincipalAccessor.cs | 43 + test/API.Web.Tests/API.Web.Tests.csproj | 40 + test/API.Web.Tests/APIWebTestBase.cs | 39 + test/API.Web.Tests/APIWebTestModule.cs | 69 + test/API.Web.Tests/APIWebTestStartup.cs | 21 + test/API.Web.Tests/Pages/Index_Tests.cs | 16 + .../WebContentDirectoryFinder.cs | 60 + test/API.Web.Tests/xunit.runner.json | 3 + uninll.bat | 17 + 646 files changed, 111603 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 .prettierrc create mode 100644 API.sln create mode 100644 API.sln.DotSettings create mode 100644 NuGet.Config create mode 100644 WinForm/App.config create mode 100644 WinForm/Form1.Designer.cs create mode 100644 WinForm/Form1.cs create mode 100644 WinForm/Form1.resx create mode 100644 WinForm/Program.cs create mode 100644 WinForm/Properties/AssemblyInfo.cs create mode 100644 WinForm/Properties/Resources.Designer.cs create mode 100644 WinForm/Properties/Resources.resx create mode 100644 WinForm/Properties/Settings.Designer.cs create mode 100644 WinForm/Properties/Settings.settings create mode 100644 WinForm/WinForm.csproj create mode 100644 WinForm/WinFormModule.cs create mode 100644 WinForm/packages.config create mode 100644 WinFormsApp/Form1.Designer.cs create mode 100644 WinFormsApp/Form1.cs create mode 100644 WinFormsApp/Form1.resx create mode 100644 WinFormsApp/Program.cs create mode 100644 WinFormsApp/WinFormModule.cs create mode 100644 WinFormsApp/WinFormsApp.csproj create mode 100644 WinFormsApp/appsettings.json create mode 100644 WindowsFormsControlLibrary1/Properties/AssemblyInfo.cs create mode 100644 WindowsFormsControlLibrary1/UserControl1.Designer.cs create mode 100644 WindowsFormsControlLibrary1/UserControl1.cs create mode 100644 WindowsFormsControlLibrary1/WindowsFormsControlLibrary1.csproj create mode 100644 common.props create mode 100644 install-service.bat create mode 100644 src/API.Application.Contracts/API.Application.Contracts.csproj create mode 100644 src/API.Application.Contracts/APIApplicationContractsModule.cs create mode 100644 src/API.Application.Contracts/APIDtoExtensions.cs create mode 100644 src/API.Application.Contracts/IBackgroundJobManagerApplication.cs create mode 100644 src/API.Application.Contracts/Permissions/APIPermissionDefinitionProvider.cs create mode 100644 src/API.Application.Contracts/Permissions/APIPermissions.cs create mode 100644 src/API.Application.Contracts/RequestDto.cs create mode 100644 src/API.Application/API.Application.csproj create mode 100644 src/API.Application/APIAppService.cs create mode 100644 src/API.Application/APIApplicationAutoMapperProfile.cs create mode 100644 src/API.Application/APIApplicationModule.cs create mode 100644 src/API.Application/BackgroundJobManagerApplication.cs create mode 100644 src/API.Application/JobArgs.cs create mode 100644 src/API.Application/Properties/AssemblyInfo.cs create mode 100644 src/API.DbMigrator/API.DbMigrator.csproj create mode 100644 src/API.DbMigrator/APIDbMigratorModule.cs create mode 100644 src/API.DbMigrator/DbMigratorHostedService.cs create mode 100644 src/API.DbMigrator/Program.cs create mode 100644 src/API.DbMigrator/appsettings.json create mode 100644 src/API.DbMigrator/appsettings.secrets.json create mode 100644 src/API.DbMigrator/tempkey.rsa create mode 100644 src/API.Domain.Shared/API.Domain.Shared.csproj create mode 100644 src/API.Domain.Shared/APIDomainErrorCodes.cs create mode 100644 src/API.Domain.Shared/APIDomainSharedModule.cs create mode 100644 src/API.Domain.Shared/APIGlobalFeatureConfigurator.cs create mode 100644 src/API.Domain.Shared/APIModuleExtensionConfigurator.cs create mode 100644 src/API.Domain.Shared/DataHelper.cs create mode 100644 src/API.Domain.Shared/Enums/EnumCompanyType.cs create mode 100644 src/API.Domain.Shared/Filter/EnumFilterAction.cs create mode 100644 src/API.Domain.Shared/Filter/EnumFilterLogic.cs create mode 100644 src/API.Domain.Shared/Filter/FilterCondition.cs create mode 100644 src/API.Domain.Shared/Filter/FilterExtensions.cs create mode 100644 src/API.Domain.Shared/JsonHelper.cs create mode 100644 src/API.Domain.Shared/Localization/API/ar.json create mode 100644 src/API.Domain.Shared/Localization/API/cs.json create mode 100644 src/API.Domain.Shared/Localization/API/de-DE.json create mode 100644 src/API.Domain.Shared/Localization/API/en-GB.json create mode 100644 src/API.Domain.Shared/Localization/API/en.json create mode 100644 src/API.Domain.Shared/Localization/API/es.json create mode 100644 src/API.Domain.Shared/Localization/API/fi.json create mode 100644 src/API.Domain.Shared/Localization/API/fr.json create mode 100644 src/API.Domain.Shared/Localization/API/hi.json create mode 100644 src/API.Domain.Shared/Localization/API/hu.json create mode 100644 src/API.Domain.Shared/Localization/API/it.json create mode 100644 src/API.Domain.Shared/Localization/API/nl.json create mode 100644 src/API.Domain.Shared/Localization/API/pl-PL.json create mode 100644 src/API.Domain.Shared/Localization/API/pt-BR.json create mode 100644 src/API.Domain.Shared/Localization/API/ru.json create mode 100644 src/API.Domain.Shared/Localization/API/sk.json create mode 100644 src/API.Domain.Shared/Localization/API/sl.json create mode 100644 src/API.Domain.Shared/Localization/API/tr.json create mode 100644 src/API.Domain.Shared/Localization/API/vi.json create mode 100644 src/API.Domain.Shared/Localization/API/zh-Hans.json create mode 100644 src/API.Domain.Shared/Localization/API/zh-Hant.json create mode 100644 src/API.Domain.Shared/Localization/APIResource.cs create mode 100644 src/API.Domain.Shared/MultiTenancy/MultiTenancyConsts.cs create mode 100644 src/API.Domain.Shared/TD_DATA.cs create mode 100644 src/API.Domain/API.Domain.csproj create mode 100644 src/API.Domain/APIConsts.cs create mode 100644 src/API.Domain/APIDbProperties.cs create mode 100644 src/API.Domain/APIDomainModule.cs create mode 100644 src/API.Domain/BudgetDataSources/JQ_LRB.cs create mode 100644 src/API.Domain/BudgetDataSources/JQ_QJFYB.cs create mode 100644 src/API.Domain/BudgetDataSources/JQ_SCCBB.cs create mode 100644 src/API.Domain/BudgetDataSources/JQ_XJLLB.cs create mode 100644 src/API.Domain/BudgetDataSources/JQ_ZCFZB.cs create mode 100644 src/API.Domain/BudgetDataSources/JQ_ZZFYB.cs create mode 100644 src/API.Domain/BudgetDataSources/TI_CBB04_BUDGET.cs create mode 100644 src/API.Domain/BudgetDataSources/TI_CWB16_BUDGET.cs create mode 100644 src/API.Domain/BudgetDataSources/TI_CWB17_BUDGET.cs create mode 100644 src/API.Domain/BudgetDataSources/TI_CWB18_BUDGET.cs create mode 100644 src/API.Domain/BudgetDataSources/TI_CWB19_BUDGET.cs create mode 100644 src/API.Domain/BudgetDataSources/TI_HRB04_BUDGET.cs create mode 100644 src/API.Domain/BudgetDataSources/TO_CWC14_BUDGET.cs create mode 100644 src/API.Domain/BudgetDataSources/TO_CWC19_BUDGET.cs create mode 100644 src/API.Domain/BudgetDataSources/TO_CWC21_BUDGET.cs create mode 100644 src/API.Domain/BudgetDataSources/TO_GGC01_BUDGET.cs create mode 100644 src/API.Domain/BudgetDataSources/TO_HRC01_BUDGET.cs create mode 100644 src/API.Domain/BudgetDataSources/TO_JGC01_BUDGET.cs create mode 100644 src/API.Domain/BudgetDataSources/TS_XSA04_BUDGET.cs create mode 100644 src/API.Domain/BudgetDbProperties.cs create mode 100644 src/API.Domain/Data/APIDbMigrationService.cs create mode 100644 src/API.Domain/Data/IAPIDbSchemaMigrator.cs create mode 100644 src/API.Domain/Data/NullAPIDbSchemaMigrator.cs create mode 100644 src/API.Domain/DataSources/JQ_COMPARE.cs create mode 100644 src/API.Domain/DataSources/ODS_JQ_LRB.cs create mode 100644 src/API.Domain/DataSources/ODS_JQ_LRBManager.cs create mode 100644 src/API.Domain/DataSources/ODS_JQ_LRMXB.cs create mode 100644 src/API.Domain/DataSources/ODS_JQ_LRMXBManager.cs create mode 100644 src/API.Domain/DataSources/ODS_JQ_QJFYB.cs create mode 100644 src/API.Domain/DataSources/ODS_JQ_QJFYBManager.cs create mode 100644 src/API.Domain/DataSources/ODS_JQ_SCCBB.cs create mode 100644 src/API.Domain/DataSources/ODS_JQ_SCCBBManager.cs create mode 100644 src/API.Domain/DataSources/ODS_JQ_XJLLB_INNER_YEAR.cs create mode 100644 src/API.Domain/DataSources/ODS_JQ_XJLLB_INNER_YEARManager.cs create mode 100644 src/API.Domain/DataSources/ODS_JQ_ZCFZB.cs create mode 100644 src/API.Domain/DataSources/ODS_JQ_ZCFZBManager.cs create mode 100644 src/API.Domain/DataSources/ODS_JQ_ZGXCB.cs create mode 100644 src/API.Domain/DataSources/ODS_JQ_ZGXCBManager.cs create mode 100644 src/API.Domain/DataSources/ODS_JQ_ZQMXB_YSZK.cs create mode 100644 src/API.Domain/DataSources/ODS_JQ_ZQMXB_YSZKManager.cs create mode 100644 src/API.Domain/DataSources/ODS_JQ_ZWMXB_YFZK.cs create mode 100644 src/API.Domain/DataSources/ODS_JQ_ZWMXB_YFZKManager.cs create mode 100644 src/API.Domain/DataSources/ODS_JQ_ZZFYB.cs create mode 100644 src/API.Domain/DataSources/ODS_JQ_ZZFYBManager.cs create mode 100644 src/API.Domain/DataSources/TI_CBB04.cs create mode 100644 src/API.Domain/DataSources/TI_CBB04Detail.cs create mode 100644 src/API.Domain/DataSources/TI_CBB04Manager.cs create mode 100644 src/API.Domain/DataSources/TI_CWB16.cs create mode 100644 src/API.Domain/DataSources/TI_CWB16Detail.cs create mode 100644 src/API.Domain/DataSources/TI_CWB16Manager.cs create mode 100644 src/API.Domain/DataSources/TI_CWB17.cs create mode 100644 src/API.Domain/DataSources/TI_CWB17Detail.cs create mode 100644 src/API.Domain/DataSources/TI_CWB17Manager.cs create mode 100644 src/API.Domain/DataSources/TI_CWB18.cs create mode 100644 src/API.Domain/DataSources/TI_CWB18Detail.cs create mode 100644 src/API.Domain/DataSources/TI_CWB18Manager.cs create mode 100644 src/API.Domain/DataSources/TI_CWB19.cs create mode 100644 src/API.Domain/DataSources/TI_CWB19Detail.cs create mode 100644 src/API.Domain/DataSources/TI_CWB19Manager.cs create mode 100644 src/API.Domain/DataSources/TI_HRB04.cs create mode 100644 src/API.Domain/DataSources/TI_HRB04Detail.cs create mode 100644 src/API.Domain/DataSources/TI_HRB04Manager.cs create mode 100644 src/API.Domain/DataSources/TO_CWC14.cs create mode 100644 src/API.Domain/DataSources/TO_CWC14Detail.cs create mode 100644 src/API.Domain/DataSources/TO_CWC14Manager.cs create mode 100644 src/API.Domain/DataSources/TO_CWC19.cs create mode 100644 src/API.Domain/DataSources/TO_CWC19Detail.cs create mode 100644 src/API.Domain/DataSources/TO_CWC19Manager.cs create mode 100644 src/API.Domain/DataSources/TO_CWC21.cs create mode 100644 src/API.Domain/DataSources/TO_CWC21Detail.cs create mode 100644 src/API.Domain/DataSources/TO_CWC21Manager.cs create mode 100644 src/API.Domain/DataSources/TO_GGC01.cs create mode 100644 src/API.Domain/DataSources/TO_GGC01Detail.cs create mode 100644 src/API.Domain/DataSources/TO_GGC01Manager.cs create mode 100644 src/API.Domain/DataSources/TO_HRC01.cs create mode 100644 src/API.Domain/DataSources/TO_HRC01Detail.cs create mode 100644 src/API.Domain/DataSources/TO_HRC01Manager.cs create mode 100644 src/API.Domain/DataSources/TO_JGC01.cs create mode 100644 src/API.Domain/DataSources/TO_JGC01Detail.cs create mode 100644 src/API.Domain/DataSources/TO_JGC01Manager.cs create mode 100644 src/API.Domain/DataSources/TS_XSA04.cs create mode 100644 src/API.Domain/DataSources/TS_XSA04Manager.cs create mode 100644 src/API.Domain/IAPIEfCoreRepository.cs create mode 100644 src/API.Domain/IdentityServer/IdentityServerDataSeedContributor.cs create mode 100644 src/API.Domain/JQDataSources/ODS_JQ_LRB_JQ.cs create mode 100644 src/API.Domain/JQDataSources/ODS_JQ_LRMXB_JQ.cs create mode 100644 src/API.Domain/JQDataSources/ODS_JQ_QJFYB_JQ.cs create mode 100644 src/API.Domain/JQDataSources/ODS_JQ_SCCBB_JQ.cs create mode 100644 src/API.Domain/JQDataSources/ODS_JQ_XJLLB_INNER_MONTH_JQ.cs create mode 100644 src/API.Domain/JQDataSources/ODS_JQ_ZCFZB_JQ.cs create mode 100644 src/API.Domain/JQDataSources/ODS_JQ_ZGXCB_JQ.cs create mode 100644 src/API.Domain/JQDataSources/ODS_JQ_ZQMXB_YSZK_JQ.cs create mode 100644 src/API.Domain/JQDataSources/ODS_JQ_ZWMXB_YFZK_JQ.cs create mode 100644 src/API.Domain/JQDataSources/ODS_JQ_ZZFYB_JQ.cs create mode 100644 src/API.Domain/JQDbProperties.cs create mode 100644 src/API.Domain/ManageBase/Company.cs create mode 100644 src/API.Domain/Properties/AssemblyInfo.cs create mode 100644 src/API.Domain/Settings/APISettingDefinitionProvider.cs create mode 100644 src/API.Domain/Settings/APISettings.cs create mode 100644 src/API.EntityFrameworkCore/API.EntityFrameworkCore.csproj create mode 100644 src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/BudgetDbContext.cs create mode 100644 src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/BudgetDbContextFactory.cs create mode 100644 src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/BudgetDbContextModelCreatingExtensions.cs create mode 100644 src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/BudgetEfCoreEntityExtensionMappings.cs create mode 100644 src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/BudgetEntityFrameworkCoreModule.cs create mode 100644 src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/BudgetModelBuilderConfigurationOptions.cs create mode 100644 src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/EntityFrameworkCoreBudgetDbSchemaMigrator.cs create mode 100644 src/API.EntityFrameworkCore/EntityFrameworkCore/APIDbContext.cs create mode 100644 src/API.EntityFrameworkCore/EntityFrameworkCore/APIDbContextFactory.cs create mode 100644 src/API.EntityFrameworkCore/EntityFrameworkCore/APIDbContextModelCreatingExtensions.cs create mode 100644 src/API.EntityFrameworkCore/EntityFrameworkCore/APIEfCoreEntityExtensionMappings.cs create mode 100644 src/API.EntityFrameworkCore/EntityFrameworkCore/APIEntityFrameworkCoreModule.cs create mode 100644 src/API.EntityFrameworkCore/EntityFrameworkCore/APIModelBuilderConfigurationOptions.cs create mode 100644 src/API.EntityFrameworkCore/EntityFrameworkCore/EntityFrameworkCoreAPIDbSchemaMigrator.cs create mode 100644 src/API.EntityFrameworkCore/JQEntityFrameworkCore/EntityFrameworkCoreJQDbSchemaMigrator.cs create mode 100644 src/API.EntityFrameworkCore/JQEntityFrameworkCore/JQDbContext.cs create mode 100644 src/API.EntityFrameworkCore/JQEntityFrameworkCore/JQDbContextFactory.cs create mode 100644 src/API.EntityFrameworkCore/JQEntityFrameworkCore/JQDbContextModelCreatingExtensions.cs create mode 100644 src/API.EntityFrameworkCore/JQEntityFrameworkCore/JQEfCoreEntityExtensionMappings.cs create mode 100644 src/API.EntityFrameworkCore/JQEntityFrameworkCore/JQEntityFrameworkCoreModule.cs create mode 100644 src/API.EntityFrameworkCore/JQEntityFrameworkCore/JQModelBuilderConfigurationOptions.cs create mode 100644 src/API.EntityFrameworkCore/Properties/AssemblyInfo.cs create mode 100644 src/API.EntityFrameworkCore/Repository/APIEfCoreRepository.cs create mode 100644 src/API.EntityFrameworkCore/Repository/QueryableExtension.cs create mode 100644 src/API.HttpApi.Client/API.HttpApi.Client.csproj create mode 100644 src/API.HttpApi.Client/APIHttpApiClientModule.cs create mode 100644 src/API.HttpApi/API.HttpApi.csproj create mode 100644 src/API.HttpApi/APIHttpApiModule.cs create mode 100644 src/API.HttpApi/Controllers/APIController.cs create mode 100644 src/API.HttpApi/Models/Test/TestModel.cs create mode 100644 src/API.Web/API.Web.csproj create mode 100644 src/API.Web/APIBrandingProvider.cs create mode 100644 src/API.Web/APIWebAutoMapperProfile.cs create mode 100644 src/API.Web/APIWebModule.cs create mode 100644 src/API.Web/Components/_ViewImports.cshtml create mode 100644 src/API.Web/JobService.cs create mode 100644 src/API.Web/Menus/APIMenuContributor.cs create mode 100644 src/API.Web/Menus/APIMenus.cs create mode 100644 src/API.Web/MyJob.cs create mode 100644 src/API.Web/MyLogWorker.cs create mode 100644 src/API.Web/Pages/APIPageModel.cs create mode 100644 src/API.Web/Pages/Index.cshtml create mode 100644 src/API.Web/Pages/Index.cshtml.cs create mode 100644 src/API.Web/Pages/Index.css create mode 100644 src/API.Web/Pages/Index.js create mode 100644 src/API.Web/Pages/_ViewImports.cshtml create mode 100644 src/API.Web/Program.cs create mode 100644 src/API.Web/Properties/AssemblyInfo.cs create mode 100644 src/API.Web/Properties/launchSettings.json create mode 100644 src/API.Web/Startup.cs create mode 100644 src/API.Web/Views/_ViewImports.cshtml create mode 100644 src/API.Web/abp.resourcemapping.js create mode 100644 src/API.Web/appsettings.Development.json create mode 100644 src/API.Web/appsettings.json create mode 100644 src/API.Web/appsettings.secrets.json create mode 100644 src/API.Web/gulpfile.js create mode 100644 src/API.Web/package.json create mode 100644 src/API.Web/tempkey.jwk create mode 100644 src/API.Web/tempkey.rsa create mode 100644 src/API.Web/wwwroot/global-styles.css create mode 100644 src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/css/all.css create mode 100644 src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/css/v4-shims.css create mode 100644 src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.eot create mode 100644 src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.svg create mode 100644 src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf create mode 100644 src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff create mode 100644 src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2 create mode 100644 src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.eot create mode 100644 src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.svg create mode 100644 src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf create mode 100644 src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff create mode 100644 src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 create mode 100644 src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.eot create mode 100644 src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.svg create mode 100644 src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf create mode 100644 src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff create mode 100644 src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 create mode 100644 src/API.Web/wwwroot/libs/abp/core/abp.css create mode 100644 src/API.Web/wwwroot/libs/abp/core/abp.js create mode 100644 src/API.Web/wwwroot/libs/abp/jquery/abp.jquery.js create mode 100644 src/API.Web/wwwroot/libs/abp/luxon/abp.luxon.js create mode 100644 src/API.Web/wwwroot/libs/abp/utils/abp-utils.umd.js create mode 100644 src/API.Web/wwwroot/libs/abp/utils/abp-utils.umd.js.map create mode 100644 src/API.Web/wwwroot/libs/abp/utils/abp-utils.umd.min.js create mode 100644 src/API.Web/wwwroot/libs/abp/utils/abp-utils.umd.min.js.map create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/bootstrap-datepicker.css.map create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/bootstrap-datepicker.min.css create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/bootstrap-datepicker.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker-en-CA.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ar-tn.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ar.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.az.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bg.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bm.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bn.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.br.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bs.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ca.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.cs.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.cy.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.da.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.de.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.el.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-AU.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-CA.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-GB.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-IE.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-NZ.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-ZA.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.eo.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.es.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.et.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.eu.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fa.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fi.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fo.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fr-CH.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.gl.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.he.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hi.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hr.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hu.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hy.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.id.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.is.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.it-CH.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.it.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ja.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ka.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.kh.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.kk.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.km.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ko.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.kr.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.lt.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.lv.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.me.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.mk.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.mn.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ms.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.nl-BE.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.nl.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.no.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.oc.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.pl.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.pt-BR.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.pt.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ro.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.rs-latin.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.rs.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ru.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.si.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sk.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sl.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sq.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sr-latin.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sr.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sv.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sw.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ta.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.tg.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.th.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.tk.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.tr.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.uk.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.uz-cyrl.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.uz-latn.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.vi.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.zh-CN.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.zh-TW.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap/css/bootstrap-rtl.css create mode 100644 src/API.Web/wwwroot/libs/bootstrap/css/bootstrap-rtl.css.map create mode 100644 src/API.Web/wwwroot/libs/bootstrap/css/bootstrap-rtl.min.css create mode 100644 src/API.Web/wwwroot/libs/bootstrap/css/bootstrap-rtl.min.css.map create mode 100644 src/API.Web/wwwroot/libs/bootstrap/css/bootstrap.css create mode 100644 src/API.Web/wwwroot/libs/bootstrap/css/bootstrap.css.map create mode 100644 src/API.Web/wwwroot/libs/bootstrap/css/bootstrap.min.css create mode 100644 src/API.Web/wwwroot/libs/bootstrap/css/bootstrap.min.css.map create mode 100644 src/API.Web/wwwroot/libs/bootstrap/js/bootstrap.bundle.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap/js/bootstrap.bundle.js.map create mode 100644 src/API.Web/wwwroot/libs/bootstrap/js/bootstrap.bundle.min.js create mode 100644 src/API.Web/wwwroot/libs/bootstrap/js/bootstrap.bundle.min.js.map create mode 100644 src/API.Web/wwwroot/libs/datatables.net-bs4/css/dataTables.bootstrap4.css create mode 100644 src/API.Web/wwwroot/libs/datatables.net-bs4/js/dataTables.bootstrap4.js create mode 100644 src/API.Web/wwwroot/libs/datatables.net/js/jquery.dataTables.js create mode 100644 src/API.Web/wwwroot/libs/jquery-form/jquery.form.min.js create mode 100644 src/API.Web/wwwroot/libs/jquery-form/jquery.form.min.js.map create mode 100644 src/API.Web/wwwroot/libs/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/jquery.validate.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_ar.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_az.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_bg.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_bn_BD.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_ca.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_cs.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_da.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_de.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_el.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_es.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_es_AR.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_es_PE.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_et.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_eu.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_fa.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_fi.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_fr.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_ge.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_gl.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_he.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_hr.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_hu.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_hy_AM.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_id.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_is.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_it.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_ja.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_ka.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_kk.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_ko.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_lt.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_lv.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_mk.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_my.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_nl.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_no.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_pl.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_pt_BR.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_pt_PT.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_ro.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_ru.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_sd.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_si.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_sk.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_sl.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_sr.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_sr_lat.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_sv.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_th.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_tj.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_tr.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_uk.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_ur.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_vi.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_zh.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/messages_zh_TW.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/methods_de.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/methods_es_CL.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/methods_fi.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/methods_nl.js create mode 100644 src/API.Web/wwwroot/libs/jquery-validation/localization/methods_pt.js create mode 100644 src/API.Web/wwwroot/libs/jquery/jquery.js create mode 100644 src/API.Web/wwwroot/libs/lodash/lodash.min.js create mode 100644 src/API.Web/wwwroot/libs/luxon/luxon.js create mode 100644 src/API.Web/wwwroot/libs/luxon/luxon.js.map create mode 100644 src/API.Web/wwwroot/libs/luxon/luxon.min.js create mode 100644 src/API.Web/wwwroot/libs/luxon/luxon.min.js.map create mode 100644 src/API.Web/wwwroot/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.concat.min.js create mode 100644 src/API.Web/wwwroot/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.css create mode 100644 src/API.Web/wwwroot/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.js create mode 100644 src/API.Web/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png create mode 100644 src/API.Web/wwwroot/libs/malihu-custom-scrollbar-plugin/package.json create mode 100644 src/API.Web/wwwroot/libs/malihu-custom-scrollbar-plugin/readme.md create mode 100644 src/API.Web/wwwroot/libs/select2/css/select2.min.css create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/af.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/ar.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/az.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/bg.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/bn.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/bs.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/ca.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/cs.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/da.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/de.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/dsb.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/el.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/en.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/es.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/et.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/eu.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/fa.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/fi.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/fr.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/gl.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/he.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/hi.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/hr.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/hsb.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/hu.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/hy.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/id.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/is.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/it.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/ja.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/ka.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/km.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/ko.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/lt.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/lv.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/mk.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/ms.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/nb.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/ne.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/nl.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/pl.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/ps.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/pt-BR.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/pt.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/ro.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/ru.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/sk.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/sl.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/sq.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/sr-Cyrl.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/sr.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/sv.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/th.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/tk.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/tr.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/uk.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/vi.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/zh-CN.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/i18n/zh-TW.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/select2.full.min.js create mode 100644 src/API.Web/wwwroot/libs/select2/js/select2.min.js create mode 100644 src/API.Web/wwwroot/libs/sweetalert/sweetalert.min.js create mode 100644 src/API.Web/wwwroot/libs/timeago/jquery.timeago.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/README.md create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.af.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.am.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.ar.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.az-short.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.az.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.be.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.bg.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.bs.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.ca.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.cs.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.cy.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.da.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.de-short.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.de.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.dv.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.el.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.en-short.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.en.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.es-short.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.es.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.et.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.eu.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.fa-short.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.fa.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.fi.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.fr-short.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.fr.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.gl.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.he.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.hr.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.hu.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.hy.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.id.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.is.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.it-short.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.it.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.ja.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.jv.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.ko.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.ky.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.lt.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.lv.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.mk.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.nl.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.no.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.pl.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.pt-br-short.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.pt-br.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.pt-short.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.pt.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.ro.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.rs.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.ru.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.rw.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.si.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.sk.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.sl.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.sq.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.sr.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.sv.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.th.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.tr-short.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.tr.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.uk.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.ur.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.uz.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.vi.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.zh-CN.js create mode 100644 src/API.Web/wwwroot/libs/timeago/locales/jquery.timeago.zh-TW.js create mode 100644 src/API.Web/wwwroot/libs/toastr/toastr.css create mode 100644 src/API.Web/wwwroot/libs/toastr/toastr.js.map create mode 100644 src/API.Web/wwwroot/libs/toastr/toastr.min.css create mode 100644 src/API.Web/wwwroot/libs/toastr/toastr.min.js create mode 100644 src/API.Web/yarn.lock create mode 100644 src/AbpWindowsService/APIAutoMapperProfile.cs create mode 100644 src/AbpWindowsService/AbpWindowsService.csproj create mode 100644 src/AbpWindowsService/AbpWindowsServiceHostedService.cs create mode 100644 src/AbpWindowsService/AbpWindowsServiceModule.cs create mode 100644 src/AbpWindowsService/HelloWorldService.cs create mode 100644 src/AbpWindowsService/MyBackgroundWorker.cs create mode 100644 src/AbpWindowsService/Program.cs create mode 100644 src/AbpWindowsService/appsettings.json create mode 100644 src/AbpWindowsService/appsettings.secrets.json create mode 100644 src/WpfApp1/App.xaml create mode 100644 src/WpfApp1/App.xaml.cs create mode 100644 src/WpfApp1/AssemblyInfo.cs create mode 100644 src/WpfApp1/ClientCache.cs create mode 100644 src/WpfApp1/FmpWpfModule.cs create mode 100644 src/WpfApp1/MainWindow.xaml create mode 100644 src/WpfApp1/MainWindow.xaml.cs create mode 100644 src/WpfApp1/WpfApp1.csproj create mode 100644 src/WpfApp1/appsettings.json create mode 100644 test/API.Application.Tests/API.Application.Tests.csproj create mode 100644 test/API.Application.Tests/APIApplicationTestBase.cs create mode 100644 test/API.Application.Tests/APIApplicationTestModule.cs create mode 100644 test/API.Application.Tests/Samples/SampleAppServiceTests.cs create mode 100644 test/API.Domain.Tests/API.Domain.Tests.csproj create mode 100644 test/API.Domain.Tests/APIDomainTestBase.cs create mode 100644 test/API.Domain.Tests/APIDomainTestModule.cs create mode 100644 test/API.Domain.Tests/Samples/SampleDomainTests.cs create mode 100644 test/API.EntityFrameworkCore.Tests/API.EntityFrameworkCore.Tests.csproj create mode 100644 test/API.EntityFrameworkCore.Tests/EntityFrameworkCore/APIEntityFrameworkCoreTestBase.cs create mode 100644 test/API.EntityFrameworkCore.Tests/EntityFrameworkCore/APIEntityFrameworkCoreTestModule.cs create mode 100644 test/API.EntityFrameworkCore.Tests/EntityFrameworkCore/Samples/SampleRepositoryTests.cs create mode 100644 test/API.HttpApi.Client.ConsoleTestApp/API.HttpApi.Client.ConsoleTestApp.csproj create mode 100644 test/API.HttpApi.Client.ConsoleTestApp/APIConsoleApiClientModule.cs create mode 100644 test/API.HttpApi.Client.ConsoleTestApp/ClientDemoService.cs create mode 100644 test/API.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs create mode 100644 test/API.HttpApi.Client.ConsoleTestApp/Program.cs create mode 100644 test/API.HttpApi.Client.ConsoleTestApp/appsettings.json create mode 100644 test/API.HttpApi.Client.ConsoleTestApp/appsettings.secrets.json create mode 100644 test/API.TestBase/API.TestBase.csproj create mode 100644 test/API.TestBase/APITestBase.cs create mode 100644 test/API.TestBase/APITestBaseModule.cs create mode 100644 test/API.TestBase/APITestDataSeedContributor.cs create mode 100644 test/API.TestBase/Security/FakeCurrentPrincipalAccessor.cs create mode 100644 test/API.Web.Tests/API.Web.Tests.csproj create mode 100644 test/API.Web.Tests/APIWebTestBase.cs create mode 100644 test/API.Web.Tests/APIWebTestModule.cs create mode 100644 test/API.Web.Tests/APIWebTestStartup.cs create mode 100644 test/API.Web.Tests/Pages/Index_Tests.cs create mode 100644 test/API.Web.Tests/WebContentDirectoryFinder.cs create mode 100644 test/API.Web.Tests/xunit.runner.json create mode 100644 uninll.bat diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..c941e52 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +**/wwwroot/libs/** linguist-vendored diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d166abf --- /dev/null +++ b/.gitignore @@ -0,0 +1,262 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# DNX +project.lock.json +artifacts/ + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# TODO: Comment the next line if you want to checkin your web deploy settings +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config +# NuGet v3's project.json files produces more ignoreable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.pfx +*.publishsettings +node_modules/ +orleans.codegen.cs + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# JetBrains Rider +.idea/ +*.sln.iml + +# API +src/API.Web/Logs/* +src/API.Web.Host/Logs/* +src/API.IdentityServer/Logs/* +src/API.HttpApi.Host/Logs/* +src/API.HttpApi.HostWithIds/Logs/* +src/API.DbMigrator/Logs/* +src/API.Blazor.Server/Logs/* +src/API.Blazor.Server.Tiered/Logs/* \ No newline at end of file diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..56af76b --- /dev/null +++ b/.prettierrc @@ -0,0 +1,5 @@ +{ + "singleQuote": true, + "useTabs": false, + "tabWidth": 4 +} diff --git a/API.sln b/API.sln new file mode 100644 index 0000000..8f85730 --- /dev/null +++ b/API.sln @@ -0,0 +1,151 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29020.237 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.Domain", "src\API.Domain\API.Domain.csproj", "{554AD327-6DBA-4F8F-96F8-81CE7A0C863F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.Application", "src\API.Application\API.Application.csproj", "{1A94A50E-06DC-43C1-80B5-B662820EC3EB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.EntityFrameworkCore", "src\API.EntityFrameworkCore\API.EntityFrameworkCore.csproj", "{C956DD76-69C8-4A9C-83EA-D17DF83340FD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.Web", "src\API.Web\API.Web.csproj", "{068855E8-9240-4F1A-910B-CF825794513B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{CA9AC87F-097E-4F15-8393-4BC07735A5B0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{04DBDB01-70F4-4E06-B468-8F87850B22BE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.Application.Tests", "test\API.Application.Tests\API.Application.Tests.csproj", "{50B2631D-129C-47B3-A587-029CCD6099BC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.Web.Tests", "test\API.Web.Tests\API.Web.Tests.csproj", "{5F1B28C6-8D0C-4155-92D0-252F7EA5F674}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.Domain.Shared", "src\API.Domain.Shared\API.Domain.Shared.csproj", "{42F719ED-8413-4895-B5B4-5AB56079BC66}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.Application.Contracts", "src\API.Application.Contracts\API.Application.Contracts.csproj", "{520659C8-C734-4298-A3DA-B539DB9DFC0B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.HttpApi", "src\API.HttpApi\API.HttpApi.csproj", "{4164BDF7-F527-4E85-9CE6-E3C2D7426A27}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.HttpApi.Client", "src\API.HttpApi.Client\API.HttpApi.Client.csproj", "{3B5A0094-670D-4BB1-BFDD-61B88A8773DC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.EntityFrameworkCore.Tests", "test\API.EntityFrameworkCore.Tests\API.EntityFrameworkCore.Tests.csproj", "{1FE30EB9-74A9-47F5-A9F6-7B1FAB672D81}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.TestBase", "test\API.TestBase\API.TestBase.csproj", "{91853F21-9CD9-4132-BC29-A7D5D84FFFE7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.Domain.Tests", "test\API.Domain.Tests\API.Domain.Tests.csproj", "{E512F4D9-9375-480F-A2F6-A46509F9D824}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.HttpApi.Client.ConsoleTestApp", "test\API.HttpApi.Client.ConsoleTestApp\API.HttpApi.Client.ConsoleTestApp.csproj", "{EF480016-9127-4916-8735-D2466BDBC582}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.DbMigrator", "src\API.DbMigrator\API.DbMigrator.csproj", "{AA94D832-1CCC-4715-95A9-A483F23A1A5D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinFormsApp", "WinFormsApp\WinFormsApp.csproj", "{38E8D5E4-CAB6-442A-B5EB-196083564058}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WpfApp1", "src\WpfApp1\WpfApp1.csproj", "{310B6403-04A2-42C8-87AB-22C5BF73AEAA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AbpWindowsService", "src\AbpWindowsService\AbpWindowsService.csproj", "{DB081010-C3E1-4ECD-A39F-A8AA0A490F45}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {554AD327-6DBA-4F8F-96F8-81CE7A0C863F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {554AD327-6DBA-4F8F-96F8-81CE7A0C863F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {554AD327-6DBA-4F8F-96F8-81CE7A0C863F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {554AD327-6DBA-4F8F-96F8-81CE7A0C863F}.Release|Any CPU.Build.0 = Release|Any CPU + {1A94A50E-06DC-43C1-80B5-B662820EC3EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1A94A50E-06DC-43C1-80B5-B662820EC3EB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1A94A50E-06DC-43C1-80B5-B662820EC3EB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1A94A50E-06DC-43C1-80B5-B662820EC3EB}.Release|Any CPU.Build.0 = Release|Any CPU + {C956DD76-69C8-4A9C-83EA-D17DF83340FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C956DD76-69C8-4A9C-83EA-D17DF83340FD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C956DD76-69C8-4A9C-83EA-D17DF83340FD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C956DD76-69C8-4A9C-83EA-D17DF83340FD}.Release|Any CPU.Build.0 = Release|Any CPU + {068855E8-9240-4F1A-910B-CF825794513B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {068855E8-9240-4F1A-910B-CF825794513B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {068855E8-9240-4F1A-910B-CF825794513B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {068855E8-9240-4F1A-910B-CF825794513B}.Release|Any CPU.Build.0 = Release|Any CPU + {50B2631D-129C-47B3-A587-029CCD6099BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {50B2631D-129C-47B3-A587-029CCD6099BC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {50B2631D-129C-47B3-A587-029CCD6099BC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {50B2631D-129C-47B3-A587-029CCD6099BC}.Release|Any CPU.Build.0 = Release|Any CPU + {5F1B28C6-8D0C-4155-92D0-252F7EA5F674}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5F1B28C6-8D0C-4155-92D0-252F7EA5F674}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5F1B28C6-8D0C-4155-92D0-252F7EA5F674}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5F1B28C6-8D0C-4155-92D0-252F7EA5F674}.Release|Any CPU.Build.0 = Release|Any CPU + {42F719ED-8413-4895-B5B4-5AB56079BC66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42F719ED-8413-4895-B5B4-5AB56079BC66}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42F719ED-8413-4895-B5B4-5AB56079BC66}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42F719ED-8413-4895-B5B4-5AB56079BC66}.Release|Any CPU.Build.0 = Release|Any CPU + {520659C8-C734-4298-A3DA-B539DB9DFC0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {520659C8-C734-4298-A3DA-B539DB9DFC0B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {520659C8-C734-4298-A3DA-B539DB9DFC0B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {520659C8-C734-4298-A3DA-B539DB9DFC0B}.Release|Any CPU.Build.0 = Release|Any CPU + {4164BDF7-F527-4E85-9CE6-E3C2D7426A27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4164BDF7-F527-4E85-9CE6-E3C2D7426A27}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4164BDF7-F527-4E85-9CE6-E3C2D7426A27}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4164BDF7-F527-4E85-9CE6-E3C2D7426A27}.Release|Any CPU.Build.0 = Release|Any CPU + {3B5A0094-670D-4BB1-BFDD-61B88A8773DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3B5A0094-670D-4BB1-BFDD-61B88A8773DC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3B5A0094-670D-4BB1-BFDD-61B88A8773DC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3B5A0094-670D-4BB1-BFDD-61B88A8773DC}.Release|Any CPU.Build.0 = Release|Any CPU + {1FE30EB9-74A9-47F5-A9F6-7B1FAB672D81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1FE30EB9-74A9-47F5-A9F6-7B1FAB672D81}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1FE30EB9-74A9-47F5-A9F6-7B1FAB672D81}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1FE30EB9-74A9-47F5-A9F6-7B1FAB672D81}.Release|Any CPU.Build.0 = Release|Any CPU + {91853F21-9CD9-4132-BC29-A7D5D84FFFE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {91853F21-9CD9-4132-BC29-A7D5D84FFFE7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {91853F21-9CD9-4132-BC29-A7D5D84FFFE7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {91853F21-9CD9-4132-BC29-A7D5D84FFFE7}.Release|Any CPU.Build.0 = Release|Any CPU + {E512F4D9-9375-480F-A2F6-A46509F9D824}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E512F4D9-9375-480F-A2F6-A46509F9D824}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E512F4D9-9375-480F-A2F6-A46509F9D824}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E512F4D9-9375-480F-A2F6-A46509F9D824}.Release|Any CPU.Build.0 = Release|Any CPU + {EF480016-9127-4916-8735-D2466BDBC582}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EF480016-9127-4916-8735-D2466BDBC582}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EF480016-9127-4916-8735-D2466BDBC582}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EF480016-9127-4916-8735-D2466BDBC582}.Release|Any CPU.Build.0 = Release|Any CPU + {AA94D832-1CCC-4715-95A9-A483F23A1A5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AA94D832-1CCC-4715-95A9-A483F23A1A5D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AA94D832-1CCC-4715-95A9-A483F23A1A5D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AA94D832-1CCC-4715-95A9-A483F23A1A5D}.Release|Any CPU.Build.0 = Release|Any CPU + {38E8D5E4-CAB6-442A-B5EB-196083564058}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {38E8D5E4-CAB6-442A-B5EB-196083564058}.Debug|Any CPU.Build.0 = Debug|Any CPU + {38E8D5E4-CAB6-442A-B5EB-196083564058}.Release|Any CPU.ActiveCfg = Release|Any CPU + {38E8D5E4-CAB6-442A-B5EB-196083564058}.Release|Any CPU.Build.0 = Release|Any CPU + {310B6403-04A2-42C8-87AB-22C5BF73AEAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {310B6403-04A2-42C8-87AB-22C5BF73AEAA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {310B6403-04A2-42C8-87AB-22C5BF73AEAA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {310B6403-04A2-42C8-87AB-22C5BF73AEAA}.Release|Any CPU.Build.0 = Release|Any CPU + {DB081010-C3E1-4ECD-A39F-A8AA0A490F45}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DB081010-C3E1-4ECD-A39F-A8AA0A490F45}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DB081010-C3E1-4ECD-A39F-A8AA0A490F45}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DB081010-C3E1-4ECD-A39F-A8AA0A490F45}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {554AD327-6DBA-4F8F-96F8-81CE7A0C863F} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {1A94A50E-06DC-43C1-80B5-B662820EC3EB} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {C956DD76-69C8-4A9C-83EA-D17DF83340FD} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {068855E8-9240-4F1A-910B-CF825794513B} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {50B2631D-129C-47B3-A587-029CCD6099BC} = {04DBDB01-70F4-4E06-B468-8F87850B22BE} + {5F1B28C6-8D0C-4155-92D0-252F7EA5F674} = {04DBDB01-70F4-4E06-B468-8F87850B22BE} + {42F719ED-8413-4895-B5B4-5AB56079BC66} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {520659C8-C734-4298-A3DA-B539DB9DFC0B} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {4164BDF7-F527-4E85-9CE6-E3C2D7426A27} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {3B5A0094-670D-4BB1-BFDD-61B88A8773DC} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {1FE30EB9-74A9-47F5-A9F6-7B1FAB672D81} = {04DBDB01-70F4-4E06-B468-8F87850B22BE} + {91853F21-9CD9-4132-BC29-A7D5D84FFFE7} = {04DBDB01-70F4-4E06-B468-8F87850B22BE} + {E512F4D9-9375-480F-A2F6-A46509F9D824} = {04DBDB01-70F4-4E06-B468-8F87850B22BE} + {EF480016-9127-4916-8735-D2466BDBC582} = {04DBDB01-70F4-4E06-B468-8F87850B22BE} + {AA94D832-1CCC-4715-95A9-A483F23A1A5D} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {38E8D5E4-CAB6-442A-B5EB-196083564058} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {310B6403-04A2-42C8-87AB-22C5BF73AEAA} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {DB081010-C3E1-4ECD-A39F-A8AA0A490F45} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {28315BFD-90E7-4E14-A2EA-F3D23AF4126F} + EndGlobalSection +EndGlobal diff --git a/API.sln.DotSettings b/API.sln.DotSettings new file mode 100644 index 0000000..cb0b2c9 --- /dev/null +++ b/API.sln.DotSettings @@ -0,0 +1,23 @@ + + True + WARNING + WARNING + WARNING + WARNING + WARNING + WARNING + WARNING + WARNING + Required + Required + Required + Required + False + True + False + False + True + False + False + SQL + \ No newline at end of file diff --git a/NuGet.Config b/NuGet.Config new file mode 100644 index 0000000..be8a1ec --- /dev/null +++ b/NuGet.Config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/WinForm/App.config b/WinForm/App.config new file mode 100644 index 0000000..6e945cb --- /dev/null +++ b/WinForm/App.config @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WinForm/Form1.Designer.cs b/WinForm/Form1.Designer.cs new file mode 100644 index 0000000..2a1d2e4 --- /dev/null +++ b/WinForm/Form1.Designer.cs @@ -0,0 +1,72 @@ + +namespace WinForm +{ + partial class Form1 + { + /// + /// 必需的设计器变量。 + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 清理所有正在使用的资源。 + /// + /// 如果应释放托管资源,为 true;否则为 false。 + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows 窗体设计器生成的代码 + + /// + /// 设计器支持所需的方法 - 不要修改 + /// 使用代码编辑器修改此方法的内容。 + /// + private void InitializeComponent() + { + this.button1 = new System.Windows.Forms.Button(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.SuspendLayout(); + // + // button1 + // + this.button1.Location = new System.Drawing.Point(505, 443); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(215, 85); + this.button1.TabIndex = 0; + this.button1.Text = "button1"; + this.button1.UseVisualStyleBackColor = true; + // + // textBox1 + // + this.textBox1.Location = new System.Drawing.Point(499, 337); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(221, 35); + this.textBox1.TabIndex = 1; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 24F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(2024, 1002); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.button1); + this.Name = "Form1"; + this.Text = "Form1"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button button1; + private System.Windows.Forms.TextBox textBox1; + } +} + diff --git a/WinForm/Form1.cs b/WinForm/Form1.cs new file mode 100644 index 0000000..508c1af --- /dev/null +++ b/WinForm/Form1.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace WinForm +{ + public partial class Form1 : Form + { + public Form1() + { + InitializeComponent(); + } + } +} diff --git a/WinForm/Form1.resx b/WinForm/Form1.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/WinForm/Form1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/WinForm/Program.cs b/WinForm/Program.cs new file mode 100644 index 0000000..990849a --- /dev/null +++ b/WinForm/Program.cs @@ -0,0 +1,36 @@ +using Microsoft.Extensions.Hosting; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace WinForm +{ + public class Program + { + /// + /// 应用程序的主入口点。 + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + + + private IHost CreateHostBuilder() + { + return Host + .CreateDefaultBuilder(null) + .UseAutofac() + .UseSerilog() + .ConfigureServices((hostContext, services) => + { + services.AddApplication(); + }).Build(); + } + } +} diff --git a/WinForm/Properties/AssemblyInfo.cs b/WinForm/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..1fca18b --- /dev/null +++ b/WinForm/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 有关程序集的一般信息由以下 +// 控制。更改这些特性值可修改 +// 与程序集关联的信息。 +[assembly: AssemblyTitle("WinForm")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("WinForm")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 将 ComVisible 设置为 false 会使此程序集中的类型 +//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 +//请将此类型的 ComVisible 特性设置为 true。 +[assembly: ComVisible(false)] + +// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID +[assembly: Guid("9fe4f100-99c0-4eb9-9baf-a75944476d15")] + +// 程序集的版本信息由下列四个值组成: +// +// 主版本 +// 次版本 +// 生成号 +// 修订号 +// +//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值 +//通过使用 "*",如下所示: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/WinForm/Properties/Resources.Designer.cs b/WinForm/Properties/Resources.Designer.cs new file mode 100644 index 0000000..e07df28 --- /dev/null +++ b/WinForm/Properties/Resources.Designer.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本: 4.0.30319.42000 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + + +namespace WinForm.Properties +{ + /// + /// 强类型资源类,用于查找本地化字符串等。 + /// + // 此类是由 StronglyTypedResourceBuilder + // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 + // 若要添加或删除成员,请编辑 .ResX 文件,然后重新运行 ResGen + // (以 /str 作为命令选项),或重新生成 VS 项目。 + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// 返回此类使用的缓存 ResourceManager 实例。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WinForm.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 重写当前线程的 CurrentUICulture 属性,对 + /// 使用此强类型资源类的所有资源查找执行重写。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/WinForm/Properties/Resources.resx b/WinForm/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/WinForm/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/WinForm/Properties/Settings.Designer.cs b/WinForm/Properties/Settings.Designer.cs new file mode 100644 index 0000000..a85a843 --- /dev/null +++ b/WinForm/Properties/Settings.Designer.cs @@ -0,0 +1,29 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + + +namespace WinForm.Properties +{ + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/WinForm/Properties/Settings.settings b/WinForm/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/WinForm/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/WinForm/WinForm.csproj b/WinForm/WinForm.csproj new file mode 100644 index 0000000..3a12690 --- /dev/null +++ b/WinForm/WinForm.csproj @@ -0,0 +1,233 @@ + + + + + + Debug + AnyCPU + {9FE4F100-99C0-4EB9-9BAF-A75944476D15} + WinExe + WinForm + WinForm + v4.7.2 + 512 + true + true + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\packages\Microsoft.Extensions.Configuration.5.0.0\lib\net461\Microsoft.Extensions.Configuration.dll + + + ..\packages\Microsoft.Extensions.Configuration.Abstractions.6.0.0\lib\net461\Microsoft.Extensions.Configuration.Abstractions.dll + + + ..\packages\Microsoft.Extensions.Configuration.Binder.5.0.0\lib\net461\Microsoft.Extensions.Configuration.Binder.dll + + + ..\packages\Microsoft.Extensions.Configuration.CommandLine.5.0.0\lib\net461\Microsoft.Extensions.Configuration.CommandLine.dll + + + ..\packages\Microsoft.Extensions.Configuration.EnvironmentVariables.5.0.0\lib\net461\Microsoft.Extensions.Configuration.EnvironmentVariables.dll + + + ..\packages\Microsoft.Extensions.Configuration.FileExtensions.5.0.0\lib\net461\Microsoft.Extensions.Configuration.FileExtensions.dll + + + ..\packages\Microsoft.Extensions.Configuration.Json.5.0.0\lib\net461\Microsoft.Extensions.Configuration.Json.dll + + + ..\packages\Microsoft.Extensions.Configuration.UserSecrets.5.0.0\lib\net461\Microsoft.Extensions.Configuration.UserSecrets.dll + + + ..\packages\Microsoft.Extensions.DependencyInjection.5.0.0\lib\net461\Microsoft.Extensions.DependencyInjection.dll + + + ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.6.0.0\lib\net461\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + ..\packages\Microsoft.Extensions.FileProviders.Abstractions.6.0.0\lib\net461\Microsoft.Extensions.FileProviders.Abstractions.dll + + + ..\packages\Microsoft.Extensions.FileProviders.Physical.5.0.0\lib\net461\Microsoft.Extensions.FileProviders.Physical.dll + + + ..\packages\Microsoft.Extensions.FileSystemGlobbing.5.0.0\lib\net461\Microsoft.Extensions.FileSystemGlobbing.dll + + + ..\packages\Microsoft.Extensions.Hosting.5.0.0\lib\net461\Microsoft.Extensions.Hosting.dll + + + ..\packages\Microsoft.Extensions.Hosting.Abstractions.6.0.0\lib\net461\Microsoft.Extensions.Hosting.Abstractions.dll + + + ..\packages\Microsoft.Extensions.Logging.5.0.0\lib\net461\Microsoft.Extensions.Logging.dll + + + ..\packages\Microsoft.Extensions.Logging.Abstractions.5.0.0\lib\net461\Microsoft.Extensions.Logging.Abstractions.dll + + + ..\packages\Microsoft.Extensions.Logging.Configuration.5.0.0\lib\net461\Microsoft.Extensions.Logging.Configuration.dll + + + ..\packages\Microsoft.Extensions.Logging.Console.5.0.0\lib\net461\Microsoft.Extensions.Logging.Console.dll + + + ..\packages\Microsoft.Extensions.Logging.Debug.5.0.0\lib\net461\Microsoft.Extensions.Logging.Debug.dll + + + ..\packages\Microsoft.Extensions.Logging.EventLog.5.0.0\lib\net461\Microsoft.Extensions.Logging.EventLog.dll + + + ..\packages\Microsoft.Extensions.Logging.EventSource.5.0.0\lib\net461\Microsoft.Extensions.Logging.EventSource.dll + + + ..\packages\Microsoft.Extensions.Options.5.0.0\lib\net461\Microsoft.Extensions.Options.dll + + + ..\packages\Microsoft.Extensions.Options.ConfigurationExtensions.5.0.0\lib\net461\Microsoft.Extensions.Options.ConfigurationExtensions.dll + + + ..\packages\Microsoft.Extensions.Primitives.6.0.0\lib\net461\Microsoft.Extensions.Primitives.dll + + + + ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + + + ..\packages\System.Diagnostics.DiagnosticSource.5.0.0\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\packages\System.IO.4.3.0\lib\net462\System.IO.dll + True + True + + + ..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + + ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll + True + True + + + ..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll + True + True + + + ..\packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net463\System.Security.Cryptography.Algorithms.dll + True + True + + + ..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll + True + True + + + ..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll + True + True + + + ..\packages\System.Text.Encodings.Web.5.0.0\lib\net461\System.Text.Encodings.Web.dll + + + ..\packages\System.Text.Json.5.0.0\lib\net461\System.Text.Json.dll + + + ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + ..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll + + + + + + + + + + + + + + Form + + + Form1.cs + + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + 这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。 + + + + + + \ No newline at end of file diff --git a/WinForm/WinFormModule.cs b/WinForm/WinFormModule.cs new file mode 100644 index 0000000..2d2bbc1 --- /dev/null +++ b/WinForm/WinFormModule.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace WinForm +{ + [DependsOn( + typeof(AbpAutofacModule), + typeof(AbpAutoMapperModule), + typeof(AbpHttpClientModule), + typeof(FmpApplicationContractsModule), + typeof(AbpHttpClientIdentityModelModule), + typeof(AbpIdentityHttpApiClientModule) + )] + public class WinFormModule : AbpModule + { + + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddHttpClientProxies( + typeof(FmpApplicationContractsModule).Assembly, + remoteServiceConfigurationName: "Default" + ); + + Configure(options => + { + options.AddMaps(); + }); + + //var configuration = context.Services.GetConfiguration(); + //ConfigureIdentityClientOption(context, configuration); + //context.Services.AddSingleton(); + context.Services.AddSingleton(); + } + + private static void ConfigureIdentityClientOption(ServiceConfigurationContext context, IConfiguration configuration) + { + var defaultClientConfiguration = new IdentityClientConfiguration( + configuration["IdentityClients:Default:Authority"], + configuration["IdentityClients:Default:Scope"], + configuration["IdentityClients:Default:ClientId"], + configuration["IdentityClients:Default:ClientSecret"], + configuration["IdentityClients:Default:GrantType"], + configuration["IdentityClients:Default:UserName"], + configuration["IdentityClients:Default:UserPassword"], + false, + 1800 + ); + + context.Services.AddOptions().Configure(option => + { + option.IdentityClients.Default = defaultClientConfiguration; + }); + } + } +} diff --git a/WinForm/packages.config b/WinForm/packages.config new file mode 100644 index 0000000..a87f317 --- /dev/null +++ b/WinForm/packages.config @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WinFormsApp/Form1.Designer.cs b/WinFormsApp/Form1.Designer.cs new file mode 100644 index 0000000..3295f65 --- /dev/null +++ b/WinFormsApp/Form1.Designer.cs @@ -0,0 +1,62 @@ + +namespace WinFormsApp +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.button1 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // button1 + // + this.button1.Location = new System.Drawing.Point(96, 71); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(150, 46); + this.button1.TabIndex = 0; + this.button1.Text = "button1"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(14F, 31F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(800, 450); + this.Controls.Add(this.button1); + this.Name = "Form1"; + this.Text = "Form1"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button button1; + } +} + diff --git a/WinFormsApp/Form1.cs b/WinFormsApp/Form1.cs new file mode 100644 index 0000000..20d2eeb --- /dev/null +++ b/WinFormsApp/Form1.cs @@ -0,0 +1,75 @@ +using API; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Serilog; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using Volo.Abp; +using Volo.Abp.DependencyInjection; + +namespace WinFormsApp +{ + public partial class Form1 : Form,ITransientDependency + { + //private readonly IHost _host; + //private readonly IAbpApplicationWithExternalServiceProvider _application; + //private IBackgroundJobManagerApplication _service; + private IBackgroundJobManagerApplication _service; + + public Form1(IBackgroundJobManagerApplication service) + { + //_host = CreateHostBuilder(); + + //_service = _host.Services.GetService(); + _service= service; + InitializeComponent(); + + + } + private IHost CreateHostBuilder() + { + return Host + .CreateDefaultBuilder(null) + .UseAutofac() + .UseSerilog() + .ConfigureServices((hostContext, services) => + { + services.AddApplication(); + }).Build(); + } + + private void button1_Click(object sender, EventArgs e) + { + ToDo(); + } + + private async void ToDo() + { + try + { + List dtos = new List(); + RequestDto dto = new RequestDto(); + dto.SheetCode = "TO_CWC14"; + dto.SheetName = "TO_CWC14"; + dto.Year = 2020; + dto.Month = 1; + dtos.Add(dto); + // var aa = await _service.AddBackgroundJob(dtos); + var str = _service.SayHello(); + } + catch (Exception ex ) + { + + throw; + } + + } + } +} diff --git a/WinFormsApp/Form1.resx b/WinFormsApp/Form1.resx new file mode 100644 index 0000000..f298a7b --- /dev/null +++ b/WinFormsApp/Form1.resx @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/WinFormsApp/Program.cs b/WinFormsApp/Program.cs new file mode 100644 index 0000000..50b7bf0 --- /dev/null +++ b/WinFormsApp/Program.cs @@ -0,0 +1,73 @@ +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Serilog; +using Serilog.Events; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; +using Volo.Abp; + +namespace WinFormsApp +{ + public class Program + { + /// + /// The main entry point for the application. + /// + // [STAThread] + static async Task Main() + { + Log.Logger = new LoggerConfiguration() +#if DEBUG + .MinimumLevel.Debug() +#else + .MinimumLevel.Information() +#endif + .MinimumLevel.Override("Microsoft", LogEventLevel.Information) + .Enrich.FromLogContext() + .WriteTo.Async(c => c.File("Logs/logs.txt")) + .CreateLogger(); + try + { + Log.Information("Starting web host."); + + using (var host =Host + .CreateDefaultBuilder(null) + .UseAutofac() + .UseSerilog() + .ConfigureServices((hostContext, services) => + { + services.AddApplication(); + }).Build()) + { + + await host.StartAsync(); + + + } + using (var application = AbpApplicationFactory.Create()) + { + application.Initialize(); + + // Application.SetHighDpiMode(HighDpiMode.SystemAware); + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + var mainForm = application.ServiceProvider.GetService(); + Application.Run(mainForm); + } + } + catch (Exception ex ) + { + Log.Fatal(ex, "Host terminated unexpectedly!"); + return; + } + finally + { + Log.CloseAndFlush(); + } + } + + } +} diff --git a/WinFormsApp/WinFormModule.cs b/WinFormsApp/WinFormModule.cs new file mode 100644 index 0000000..9da5084 --- /dev/null +++ b/WinFormsApp/WinFormModule.cs @@ -0,0 +1,65 @@ +using API; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Autofac; +using Volo.Abp.AutoMapper; +using Volo.Abp.Http.Client; +using Volo.Abp.Http.Client.IdentityModel; +using Volo.Abp.Identity; +using Volo.Abp.IdentityModel; +using Volo.Abp.Modularity; + + + +namespace WinFormsApp +{ + [DependsOn( + typeof(AbpAutofacModule), + typeof(AbpAutoMapperModule), + typeof(AbpHttpClientModule), + typeof(APIApplicationContractsModule), + typeof(AbpHttpClientIdentityModelModule), + typeof(AbpIdentityHttpApiClientModule) + )] + public class WinFormModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddHttpClientProxies( + typeof(APIApplicationContractsModule).Assembly, + remoteServiceConfigurationName: "Default" + ); + + Configure(options => + { + options.AddMaps(); + }); + + //var configuration = context.Services.GetConfiguration(); + //ConfigureIdentityClientOption(context, configuration); + //context.Services.AddSingleton(); + // context.Services.AddSingleton(); + } + + private static void ConfigureIdentityClientOption(ServiceConfigurationContext context, IConfiguration configuration) + { + var defaultClientConfiguration = new IdentityClientConfiguration( + configuration["IdentityClients:Default:Authority"], + configuration["IdentityClients:Default:Scope"], + configuration["IdentityClients:Default:ClientId"], + configuration["IdentityClients:Default:ClientSecret"], + configuration["IdentityClients:Default:GrantType"], + configuration["IdentityClients:Default:UserName"], + configuration["IdentityClients:Default:UserPassword"], + false, + 1800 + ); + + context.Services.AddOptions().Configure(option => + { + option.IdentityClients.Default = defaultClientConfiguration; + }); + } + + } +} diff --git a/WinFormsApp/WinFormsApp.csproj b/WinFormsApp/WinFormsApp.csproj new file mode 100644 index 0000000..f2f2e4d --- /dev/null +++ b/WinFormsApp/WinFormsApp.csproj @@ -0,0 +1,35 @@ + + + + WinExe + net5.0-windows + true + + + + + + + + + + + + + + + + + + + + + + Always + PreserveNewest + + + + + + \ No newline at end of file diff --git a/WinFormsApp/appsettings.json b/WinFormsApp/appsettings.json new file mode 100644 index 0000000..e9dcd4b --- /dev/null +++ b/WinFormsApp/appsettings.json @@ -0,0 +1,22 @@ +{ + "RemoteServices": { + "Default": { + "BaseUrl": "http://localhost:44319/", + // "BaseUrl": "http://114.116.225.148:8010/", + "RequireHttpsMetadata": "false" + } + }, + "IdentityClients": { + "Default": { + "GrantType": "password", + "ClientId": "API_App", + "ClientSecret": "1q2w3e*", + "UserName": "admin", + "UserPassword": "1q2w3E*", + "Authority": "http://localhost:44319/", + // "Authority": "http://114.116.225.148:8010/", + "RequireHttps": false, + "Scope": "API" + } + } +} \ No newline at end of file diff --git a/WindowsFormsControlLibrary1/Properties/AssemblyInfo.cs b/WindowsFormsControlLibrary1/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..981315b --- /dev/null +++ b/WindowsFormsControlLibrary1/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 有关程序集的一般信息由以下 +// 控制。更改这些特性值可修改 +// 与程序集关联的信息。 +[assembly: AssemblyTitle("WindowsFormsControlLibrary1")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("WindowsFormsControlLibrary1")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 将 ComVisible 设置为 false 会使此程序集中的类型 +//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 +//请将此类型的 ComVisible 特性设置为 true。 +[assembly: ComVisible(false)] + +// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID +[assembly: Guid("a26d4442-e48c-42eb-80be-6897e9c49292")] + +// 程序集的版本信息由下列四个值组成: +// +// 主版本 +// 次版本 +// 生成号 +// 修订号 +// +//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值 +//通过使用 "*",如下所示: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/WindowsFormsControlLibrary1/UserControl1.Designer.cs b/WindowsFormsControlLibrary1/UserControl1.Designer.cs new file mode 100644 index 0000000..59b5a0e --- /dev/null +++ b/WindowsFormsControlLibrary1/UserControl1.Designer.cs @@ -0,0 +1,38 @@ +namespace WindowsFormsControlLibrary1 +{ + partial class UserControl1 + { + /// + /// 必需的设计器变量。 + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 清理所有正在使用的资源。 + /// + /// 如果应释放托管资源,为 true;否则为 false。 + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 组件设计器生成的代码 + + /// + /// 设计器支持所需的方法 - 不要修改 + /// 使用代码编辑器修改此方法的内容。 + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(800, 450); + } + + #endregion + } +} diff --git a/WindowsFormsControlLibrary1/UserControl1.cs b/WindowsFormsControlLibrary1/UserControl1.cs new file mode 100644 index 0000000..3fe80a2 --- /dev/null +++ b/WindowsFormsControlLibrary1/UserControl1.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace WindowsFormsControlLibrary1 +{ + public partial class UserControl1: UserControl + { + public UserControl1() + { + InitializeComponent(); + } + } +} diff --git a/WindowsFormsControlLibrary1/WindowsFormsControlLibrary1.csproj b/WindowsFormsControlLibrary1/WindowsFormsControlLibrary1.csproj new file mode 100644 index 0000000..19bc17c --- /dev/null +++ b/WindowsFormsControlLibrary1/WindowsFormsControlLibrary1.csproj @@ -0,0 +1,62 @@ + + + + + Debug + AnyCPU + a26d4442-e48c-42eb-80be-6897e9c49292 + Library + WindowsFormsControlLibrary1 + WindowsFormsControlLibrary1 + v4.7.2 + 512 + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + UserControl + + + UserControl1.cs + + + + + + + diff --git a/common.props b/common.props new file mode 100644 index 0000000..6ef9bae --- /dev/null +++ b/common.props @@ -0,0 +1,15 @@ + + + latest + 1.0.0 + $(NoWarn);CS1591 + app + + + + + $(NoWarn);0436 + + + + \ No newline at end of file diff --git a/install-service.bat b/install-service.bat new file mode 100644 index 0000000..e90b126 --- /dev/null +++ b/install-service.bat @@ -0,0 +1,18 @@ +@echo off +cls + +NET FILE 1>NUL 2>NUL +if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges ) + +:getPrivileges + echo You have no admin rights! You need to start your CMD in admin mode to install the windows service + goto end + +:gotPrivileges + set current=%~dp0 + set bin="%current%src\AbpWindowsService\bin\Debug\net5.0\AbpWindowsService.exe" + echo Creating service with the name "AbpWindowsService" + sc create "AbpWindowsService" binPath=%bin% + +:end + pause \ No newline at end of file diff --git a/src/API.Application.Contracts/API.Application.Contracts.csproj b/src/API.Application.Contracts/API.Application.Contracts.csproj new file mode 100644 index 0000000..688cc1d --- /dev/null +++ b/src/API.Application.Contracts/API.Application.Contracts.csproj @@ -0,0 +1,24 @@ + + + + + + netstandard2.0 + API + + + + + + + + + + + + + + + + + diff --git a/src/API.Application.Contracts/APIApplicationContractsModule.cs b/src/API.Application.Contracts/APIApplicationContractsModule.cs new file mode 100644 index 0000000..31fa5ae --- /dev/null +++ b/src/API.Application.Contracts/APIApplicationContractsModule.cs @@ -0,0 +1,29 @@ +using Volo.Abp.Account; +using Volo.Abp.FeatureManagement; +using Volo.Abp.Identity; +using Volo.Abp.Modularity; +using Volo.Abp.ObjectExtending; +using Volo.Abp.PermissionManagement; +using Volo.Abp.SettingManagement; +using Volo.Abp.TenantManagement; + +namespace API +{ + [DependsOn( + typeof(APIDomainSharedModule), + typeof(AbpAccountApplicationContractsModule), + typeof(AbpFeatureManagementApplicationContractsModule), + typeof(AbpIdentityApplicationContractsModule), + typeof(AbpPermissionManagementApplicationContractsModule), + typeof(AbpSettingManagementApplicationContractsModule), + typeof(AbpTenantManagementApplicationContractsModule), + typeof(AbpObjectExtendingModule) + )] + public class APIApplicationContractsModule : AbpModule + { + public override void PreConfigureServices(ServiceConfigurationContext context) + { + APIDtoExtensions.Configure(); + } + } +} diff --git a/src/API.Application.Contracts/APIDtoExtensions.cs b/src/API.Application.Contracts/APIDtoExtensions.cs new file mode 100644 index 0000000..fc0a396 --- /dev/null +++ b/src/API.Application.Contracts/APIDtoExtensions.cs @@ -0,0 +1,29 @@ +using Volo.Abp.Identity; +using Volo.Abp.ObjectExtending; +using Volo.Abp.Threading; + +namespace API +{ + public static class APIDtoExtensions + { + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + + public static void Configure() + { + OneTimeRunner.Run(() => + { + /* You can add extension properties to DTOs + * defined in the depended modules. + * + * Example: + * + * ObjectExtensionManager.Instance + * .AddOrUpdateProperty("Title"); + * + * See the documentation for more: + * https://docs.abp.io/en/abp/latest/Object-Extensions + */ + }); + } + } +} \ No newline at end of file diff --git a/src/API.Application.Contracts/IBackgroundJobManagerApplication.cs b/src/API.Application.Contracts/IBackgroundJobManagerApplication.cs new file mode 100644 index 0000000..6812d15 --- /dev/null +++ b/src/API.Application.Contracts/IBackgroundJobManagerApplication.cs @@ -0,0 +1,12 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Volo.Abp.Application.Services; + +namespace API +{ + public interface IBackgroundJobManagerApplication : IApplicationService + { + Task AddBackgroundJob(List dtos); + string SayHello(); + } +} \ No newline at end of file diff --git a/src/API.Application.Contracts/Permissions/APIPermissionDefinitionProvider.cs b/src/API.Application.Contracts/Permissions/APIPermissionDefinitionProvider.cs new file mode 100644 index 0000000..9d09906 --- /dev/null +++ b/src/API.Application.Contracts/Permissions/APIPermissionDefinitionProvider.cs @@ -0,0 +1,21 @@ +using API.Localization; +using Volo.Abp.Authorization.Permissions; +using Volo.Abp.Localization; + +namespace API.Permissions +{ + public class APIPermissionDefinitionProvider : PermissionDefinitionProvider + { + public override void Define(IPermissionDefinitionContext context) + { + var myGroup = context.AddGroup(APIPermissions.GroupName); + //Define your own permissions here. Example: + //myGroup.AddPermission(APIPermissions.MyPermission1, L("Permission:MyPermission1")); + } + + private static LocalizableString L(string name) + { + return LocalizableString.Create(name); + } + } +} diff --git a/src/API.Application.Contracts/Permissions/APIPermissions.cs b/src/API.Application.Contracts/Permissions/APIPermissions.cs new file mode 100644 index 0000000..e675199 --- /dev/null +++ b/src/API.Application.Contracts/Permissions/APIPermissions.cs @@ -0,0 +1,10 @@ +namespace API.Permissions +{ + public static class APIPermissions + { + public const string GroupName = "API"; + + //Add your own permission names. Example: + //public const string MyPermission1 = GroupName + ".MyPermission1"; + } +} \ No newline at end of file diff --git a/src/API.Application.Contracts/RequestDto.cs b/src/API.Application.Contracts/RequestDto.cs new file mode 100644 index 0000000..a7f898b --- /dev/null +++ b/src/API.Application.Contracts/RequestDto.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Volo.Abp.Application.Dtos; + +namespace API +{ + public class RequestDto : EntityDto + { + public string SheetCode { get; set; } + public string SheetName { get; set; } + public int Year { get; set; } + public int Month { get; set; } + } +} diff --git a/src/API.Application/API.Application.csproj b/src/API.Application/API.Application.csproj new file mode 100644 index 0000000..fe96934 --- /dev/null +++ b/src/API.Application/API.Application.csproj @@ -0,0 +1,24 @@ + + + + + + net5.0 + API + + + + + + + + + + + + + + + + + diff --git a/src/API.Application/APIAppService.cs b/src/API.Application/APIAppService.cs new file mode 100644 index 0000000..f2785e6 --- /dev/null +++ b/src/API.Application/APIAppService.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Text; +using API.Localization; +using Volo.Abp.Application.Services; + +namespace API +{ + /* Inherit your application services from this class. + */ + public abstract class APIAppService : ApplicationService + { + protected APIAppService() + { + LocalizationResource = typeof(APIResource); + } + } +} diff --git a/src/API.Application/APIApplicationAutoMapperProfile.cs b/src/API.Application/APIApplicationAutoMapperProfile.cs new file mode 100644 index 0000000..d4e418f --- /dev/null +++ b/src/API.Application/APIApplicationAutoMapperProfile.cs @@ -0,0 +1,16 @@ +using API.BudgetDataSources; +using API.DataSources; +using AutoMapper; + +namespace API +{ + public class APIApplicationAutoMapperProfile : Profile + { + public APIApplicationAutoMapperProfile() + { + /* You can configure your AutoMapper mapping configuration here. + * Alternatively, you can split your mapping configurations + * into multiple profile classes for a better organization. */ + } + } +} diff --git a/src/API.Application/APIApplicationModule.cs b/src/API.Application/APIApplicationModule.cs new file mode 100644 index 0000000..086296f --- /dev/null +++ b/src/API.Application/APIApplicationModule.cs @@ -0,0 +1,32 @@ +using Volo.Abp.Account; +using Volo.Abp.AutoMapper; +using Volo.Abp.FeatureManagement; +using Volo.Abp.Identity; +using Volo.Abp.Modularity; +using Volo.Abp.PermissionManagement; +using Volo.Abp.SettingManagement; +using Volo.Abp.TenantManagement; + +namespace API +{ + [DependsOn( + typeof(APIDomainModule), + typeof(AbpAccountApplicationModule), + typeof(APIApplicationContractsModule), + typeof(AbpIdentityApplicationModule), + typeof(AbpPermissionManagementApplicationModule), + typeof(AbpTenantManagementApplicationModule), + typeof(AbpFeatureManagementApplicationModule), + typeof(AbpSettingManagementApplicationModule) + )] + public class APIApplicationModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.AddMaps(); + }); + } + } +} diff --git a/src/API.Application/BackgroundJobManagerApplication.cs b/src/API.Application/BackgroundJobManagerApplication.cs new file mode 100644 index 0000000..ed7cf5b --- /dev/null +++ b/src/API.Application/BackgroundJobManagerApplication.cs @@ -0,0 +1,46 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Application.Services; +using Volo.Abp.BackgroundJobs; + +namespace API +{ + [Route("api/background")] + public class BackgroundJobManagerApplication : ApplicationService, IBackgroundJobManagerApplication + { + private readonly IBackgroundJobManager _backgroundJobManager; + public BackgroundJobManagerApplication(IBackgroundJobManager backgroundJobManager) + { + _backgroundJobManager = backgroundJobManager; + } + + public string SayHello() + { + return "Hello"; + } + [HttpPost] + [Route("addbackgroundjob")] + public async Task AddBackgroundJob(List dtos) + { + foreach (var dto in dtos) + { + Logger.LogInformation($"添加同步【{dto.SheetCode}-{dto.Year}年{dto.Month}月】数据任务!"); + await _backgroundJobManager.EnqueueAsync( + new JobArgs + { + SheetCode = dto.SheetCode, + SheetName = dto.SheetName, + Year = dto.Year, + Month = dto.Month, + }); + } + return true; + } + + } +} diff --git a/src/API.Application/JobArgs.cs b/src/API.Application/JobArgs.cs new file mode 100644 index 0000000..8fdcaa0 --- /dev/null +++ b/src/API.Application/JobArgs.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace API +{ + public class JobArgs + { + public string SheetCode { get; set; } + public string SheetName { get; set; } + public int Year { get; set; } + public int Month { get; set; } + } +} diff --git a/src/API.Application/Properties/AssemblyInfo.cs b/src/API.Application/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..9d30e8e --- /dev/null +++ b/src/API.Application/Properties/AssemblyInfo.cs @@ -0,0 +1,2 @@ +using System.Runtime.CompilerServices; +[assembly:InternalsVisibleToAttribute("API.Application.Tests")] diff --git a/src/API.DbMigrator/API.DbMigrator.csproj b/src/API.DbMigrator/API.DbMigrator.csproj new file mode 100644 index 0000000..e11dbdf --- /dev/null +++ b/src/API.DbMigrator/API.DbMigrator.csproj @@ -0,0 +1,43 @@ + + + + + + Exe + net5.0 + + + + + + PreserveNewest + Always + + + + PreserveNewest + Always + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/API.DbMigrator/APIDbMigratorModule.cs b/src/API.DbMigrator/APIDbMigratorModule.cs new file mode 100644 index 0000000..2917119 --- /dev/null +++ b/src/API.DbMigrator/APIDbMigratorModule.cs @@ -0,0 +1,20 @@ +using API.EntityFrameworkCore; +using Volo.Abp.Autofac; +using Volo.Abp.BackgroundJobs; +using Volo.Abp.Modularity; + +namespace API.DbMigrator +{ + [DependsOn( + typeof(AbpAutofacModule), + typeof(APIEntityFrameworkCoreModule), + typeof(APIApplicationContractsModule) + )] + public class APIDbMigratorModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => options.IsJobExecutionEnabled = false); + } + } +} diff --git a/src/API.DbMigrator/DbMigratorHostedService.cs b/src/API.DbMigrator/DbMigratorHostedService.cs new file mode 100644 index 0000000..4c76c76 --- /dev/null +++ b/src/API.DbMigrator/DbMigratorHostedService.cs @@ -0,0 +1,47 @@ +using System.Threading; +using System.Threading.Tasks; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using API.Data; +using Serilog; +using Volo.Abp; + +namespace API.DbMigrator +{ + public class DbMigratorHostedService : IHostedService + { + private readonly IHostApplicationLifetime _hostApplicationLifetime; + private readonly IConfiguration _configuration; + + public DbMigratorHostedService(IHostApplicationLifetime hostApplicationLifetime, IConfiguration configuration) + { + _hostApplicationLifetime = hostApplicationLifetime; + _configuration = configuration; + } + + public async Task StartAsync(CancellationToken cancellationToken) + { + using (var application = AbpApplicationFactory.Create(options => + { + options.Services.ReplaceConfiguration(_configuration); + options.UseAutofac(); + options.Services.AddLogging(c => c.AddSerilog()); + })) + { + application.Initialize(); + + await application + .ServiceProvider + .GetRequiredService() + .MigrateAsync(); + + application.Shutdown(); + + _hostApplicationLifetime.StopApplication(); + } + } + + public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask; + } +} diff --git a/src/API.DbMigrator/Program.cs b/src/API.DbMigrator/Program.cs new file mode 100644 index 0000000..c425b7e --- /dev/null +++ b/src/API.DbMigrator/Program.cs @@ -0,0 +1,45 @@ +using System.IO; +using System.Threading.Tasks; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; +using Serilog; +using Serilog.Events; + +namespace API.DbMigrator +{ + class Program + { + static async Task Main(string[] args) + { + Log.Logger = new LoggerConfiguration() + .MinimumLevel.Information() + .MinimumLevel.Override("Microsoft", LogEventLevel.Warning) + .MinimumLevel.Override("Volo.Abp", LogEventLevel.Warning) +#if DEBUG + .MinimumLevel.Override("API", LogEventLevel.Debug) +#else + .MinimumLevel.Override("API", LogEventLevel.Information) +#endif + .Enrich.FromLogContext() + .WriteTo.Async(c => c.File("Logs/logs.txt")) + .WriteTo.Async(c => c.Console()) + .CreateLogger(); + + await CreateHostBuilder(args).RunConsoleAsync(); + } + + public static IHostBuilder CreateHostBuilder(string[] args) => + Host.CreateDefaultBuilder(args) + .ConfigureAppConfiguration(build => + { + build.AddJsonFile("appsettings.secrets.json", optional: true); + }) + .ConfigureLogging((context, logging) => logging.ClearProviders()) + .ConfigureServices((hostContext, services) => + { + services.AddHostedService(); + }); + } +} diff --git a/src/API.DbMigrator/appsettings.json b/src/API.DbMigrator/appsettings.json new file mode 100644 index 0000000..cd41468 --- /dev/null +++ b/src/API.DbMigrator/appsettings.json @@ -0,0 +1,29 @@ +{ + "ConnectionStrings": { + "Default": "Server=114.116.225.148,13314;Database=FMP_20210610;User ID=sa;Password=Microsoft2020;" + }, + "IdentityServer": { + "Clients": { + "API_Web": { + "ClientId": "API_Web", + "ClientSecret": "1q2w3e*", + "RootUrl": "https://localhost:44319" + }, + "API_App": { + "ClientId": "API_App", + "ClientSecret": "1q2w3e*", + "RootUrl": "http://localhost:4200" + }, + "API_BlazorServerTiered": { + "ClientId": "API_BlazorServerTiered", + "ClientSecret": "1q2w3e*", + "RootUrl": "https://localhost:44314" + }, + "API_Swagger": { + "ClientId": "API_Swagger", + "ClientSecret": "1q2w3e*", + "RootUrl": "https://localhost:44326" + } + } + } +} \ No newline at end of file diff --git a/src/API.DbMigrator/appsettings.secrets.json b/src/API.DbMigrator/appsettings.secrets.json new file mode 100644 index 0000000..7a73a41 --- /dev/null +++ b/src/API.DbMigrator/appsettings.secrets.json @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/src/API.DbMigrator/tempkey.rsa b/src/API.DbMigrator/tempkey.rsa new file mode 100644 index 0000000..494c201 --- /dev/null +++ b/src/API.DbMigrator/tempkey.rsa @@ -0,0 +1,13 @@ +{ + "KeyId": "f788zGVUZh9H-HbWL1S-Mg", + "Parameters": { + "D": "F19hbC5PLO872DszGiJnVoU55ee7XGXmNf0KEKndJ/uGBv5lWklXA0QF80h1ytWXde0jV5isQPB1t7mPhRQlDoDTkywLi1CeOgBPbxzHEfLjZZ5c4olfeX0IJX9BDqgUntY0H1a/+Om/eDu4OZUz3EIJFFZBgz46YZSyTT6ZDvAEdpC/o66sNJmxvJIp+8zVoVDSqBUzxmc+oEamXLg7r2jdymxJMxau1kQFxEGLOrJnNxGsEe8UrYA3qSsm8m/Xg4uOh7RYgnuEEt88+KTvRq+CAMWhN3YNLtOJ3NmXowwE7e1Ma+jih9+UVfxZn14P5+SOJbQ2bYV2sCV+2vBiCQ==", + "DP": "oPiGO/qdOQfFEAS9fMInQnsrNylIZVpDYEVoDJ6/jQfE/IpuwxGcmsaGvCob3SKxZiJRLCWpwJYo1hCh/JOSVGWMkVyELky56nbbkkV5ymKLSGZ4JoetdQs+GchnPdR+k2P9Ij1Kjk13ylubN3htzNhcBASJpOfSEv5pPVzGKX0=", + "DQ": "z6imxLABHkyftbfUUtpeOlPanEHgpuIjmUdp3T1Ju1jziE63UEhuj0GPAXOF17uYxixwYE8JhOJ7+TyIK9oZeI3zH2OzJqQh8f5PCQ/E+0ULXZDeNV/ShDLCTufu3Fis9Rt64uTp/H/l21oMQ79jc0ysa8DTz1ReJLRc5qjL41U=", + "Exponent": "AQAB", + "InverseQ": "ieZcvSt5XYukKJKhXpv5Dm/1RD7iH88cZnhLSTEVTMoOUHoYWmApY5pNLGahbfjA9bxnkBWDYex/i7wE9uNNY5CsA6ovUaQLVJDt3kHvR9W+9QtN8D6jjG2TuRbbOdEg4RqhfjUaDfDIgTJX2Wxc8U98FOvOyGw1HzwUPFZKecM=", + "Modulus": "vk4z1Bmtmbo+gxITcY+FIlXzcO2wTOGlOXK5GMYj/6PUMFt7lbqkc72AkPsrAo5/JE8LYLhWj7fzSKbjvtowHCz5m2t+FlUYmuiKpvvnJsTqvQrckNlbZ1nm071q5PhP3Dar/OksfBhPtAX+c3+NjDnM/w53ccJJNaBDO/s9JYoN7vH5n6ed1pMSK71hmg4MPsxChcnc1f1PpnG2mqyJ253+GEUbj/kRyeBSmCCr9aadov2ZzxIKVaFNagJEHOzanQmorSLpP25GfOHCuy27Zkef94V/qU9elzjbH4uIKslVGx5T6H99TYh0sUGu11NytYJa5WNAZWow95CzurC2vw==", + "P": "4GMCQy+XTNzR5TsgFcdAZv2K6TcQR13fHVvPoxQp/b32V5YUJOBFEUAtqociy5ro4+KzpXP5WPSk1ZtznGKuNZyLq8gTnhpB3rwd0sdo4zxKnQ5nu+n1UhlhWNxg5A9V5TaciUAyPrHWJfLoYTQWygNTgJELQH5zZXi2ihC2uiU=", + "Q": "2R36pamnLAJggkPJxiW5qH6HizZ+bkQVg0BBftMLzkAM8Y9CwTW75GRUzGEJFpMckkw0GZSYb1Uwl3DVUpkcQ8LZ91IPYdPpDlYUshhIxl184M55pnO14besKxJtMZ64zhHKVAR2pBMO0n6W4/1iBXkkQqyPViJxdfvXPJMBbhM=" + } +} \ No newline at end of file diff --git a/src/API.Domain.Shared/API.Domain.Shared.csproj b/src/API.Domain.Shared/API.Domain.Shared.csproj new file mode 100644 index 0000000..e69eb45 --- /dev/null +++ b/src/API.Domain.Shared/API.Domain.Shared.csproj @@ -0,0 +1,32 @@ + + + + + + netstandard2.0 + API + true + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/API.Domain.Shared/APIDomainErrorCodes.cs b/src/API.Domain.Shared/APIDomainErrorCodes.cs new file mode 100644 index 0000000..3a3f5ec --- /dev/null +++ b/src/API.Domain.Shared/APIDomainErrorCodes.cs @@ -0,0 +1,7 @@ +namespace API +{ + public static class APIDomainErrorCodes + { + /* You can add your business exception error codes here, as constants */ + } +} diff --git a/src/API.Domain.Shared/APIDomainSharedModule.cs b/src/API.Domain.Shared/APIDomainSharedModule.cs new file mode 100644 index 0000000..e4837e4 --- /dev/null +++ b/src/API.Domain.Shared/APIDomainSharedModule.cs @@ -0,0 +1,59 @@ +using API.Localization; +using Volo.Abp.AuditLogging; +using Volo.Abp.BackgroundJobs; +using Volo.Abp.FeatureManagement; +using Volo.Abp.Identity; +using Volo.Abp.IdentityServer; +using Volo.Abp.Localization; +using Volo.Abp.Localization.ExceptionHandling; +using Volo.Abp.Modularity; +using Volo.Abp.PermissionManagement; +using Volo.Abp.SettingManagement; +using Volo.Abp.TenantManagement; +using Volo.Abp.Validation.Localization; +using Volo.Abp.VirtualFileSystem; + +namespace API +{ + [DependsOn( + typeof(AbpAuditLoggingDomainSharedModule), + typeof(AbpBackgroundJobsDomainSharedModule), + typeof(AbpFeatureManagementDomainSharedModule), + typeof(AbpIdentityDomainSharedModule), + typeof(AbpIdentityServerDomainSharedModule), + typeof(AbpPermissionManagementDomainSharedModule), + typeof(AbpSettingManagementDomainSharedModule), + typeof(AbpTenantManagementDomainSharedModule) + )] + public class APIDomainSharedModule : AbpModule + { + public override void PreConfigureServices(ServiceConfigurationContext context) + { + APIGlobalFeatureConfigurator.Configure(); + APIModuleExtensionConfigurator.Configure(); + } + + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + + Configure(options => + { + options.Resources + .Add("en") + .AddBaseTypes(typeof(AbpValidationResource)) + .AddVirtualJson("/Localization/API"); + + options.DefaultResourceType = typeof(APIResource); + }); + + Configure(options => + { + options.MapCodeNamespace("API", typeof(APIResource)); + }); + } + } +} diff --git a/src/API.Domain.Shared/APIGlobalFeatureConfigurator.cs b/src/API.Domain.Shared/APIGlobalFeatureConfigurator.cs new file mode 100644 index 0000000..63d992f --- /dev/null +++ b/src/API.Domain.Shared/APIGlobalFeatureConfigurator.cs @@ -0,0 +1,23 @@ +using Volo.Abp.Threading; + +namespace API +{ + public static class APIGlobalFeatureConfigurator + { + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + + public static void Configure() + { + OneTimeRunner.Run(() => + { + /* You can configure (enable/disable) global features of the used modules here. + * + * YOU CAN SAFELY DELETE THIS CLASS AND REMOVE ITS USAGES IF YOU DON'T NEED TO IT! + * + * Please refer to the documentation to lear more about the Global Features System: + * https://docs.abp.io/en/abp/latest/Global-Features + */ + }); + } + } +} diff --git a/src/API.Domain.Shared/APIModuleExtensionConfigurator.cs b/src/API.Domain.Shared/APIModuleExtensionConfigurator.cs new file mode 100644 index 0000000..c5b5902 --- /dev/null +++ b/src/API.Domain.Shared/APIModuleExtensionConfigurator.cs @@ -0,0 +1,72 @@ +using System.ComponentModel.DataAnnotations; +using Volo.Abp.Identity; +using Volo.Abp.ObjectExtending; +using Volo.Abp.Threading; + +namespace API +{ + public static class APIModuleExtensionConfigurator + { + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + + public static void Configure() + { + OneTimeRunner.Run(() => + { + ConfigureExistingProperties(); + ConfigureExtraProperties(); + }); + } + + private static void ConfigureExistingProperties() + { + /* You can change max lengths for properties of the + * entities defined in the modules used by your application. + * + * Example: Change user and role name max lengths + + IdentityUserConsts.MaxNameLength = 99; + IdentityRoleConsts.MaxNameLength = 99; + + * Notice: It is not suggested to change property lengths + * unless you really need it. Go with the standard values wherever possible. + * + * If you are using EF Core, you will need to run the add-migration command after your changes. + */ + } + + private static void ConfigureExtraProperties() + { + /* You can configure extra properties for the + * entities defined in the modules used by your application. + * + * This class can be used to define these extra properties + * with a high level, easy to use API. + * + * Example: Add a new property to the user entity of the identity module + + ObjectExtensionManager.Instance.Modules() + .ConfigureIdentity(identity => + { + identity.ConfigureUser(user => + { + user.AddOrUpdateProperty( //property type: string + "SocialSecurityNumber", //property name + property => + { + //validation rules + property.Attributes.Add(new RequiredAttribute()); + property.Attributes.Add(new StringLengthAttribute(64) {MinimumLength = 4}); + + //...other configurations for this property + } + ); + }); + }); + + * See the documentation for more: + * https://docs.abp.io/en/abp/latest/Module-Entity-Extensions + */ + } + } +} diff --git a/src/API.Domain.Shared/DataHelper.cs b/src/API.Domain.Shared/DataHelper.cs new file mode 100644 index 0000000..9d71535 --- /dev/null +++ b/src/API.Domain.Shared/DataHelper.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace API +{ + public class DataHelper + { + public static List GetDataList(IEnumerable dataStringList) + { + var dataList = new List(); + foreach (var dataString in dataStringList) + { + var list = JsonHelper.JsonToList(dataString); + dataList.AddRange(list); + } + return dataList; + } + + public static List GetDataList(string dataString) + { + if (string.IsNullOrEmpty(dataString)) + { + return new List(); + } + var dataList = JsonHelper.JsonToList(dataString); + return dataList; + } + + public static string GetDataString(List dataList) + { + var jsonString = JsonHelper.ListToJson(dataList); + return jsonString; + } + } +} diff --git a/src/API.Domain.Shared/Enums/EnumCompanyType.cs b/src/API.Domain.Shared/Enums/EnumCompanyType.cs new file mode 100644 index 0000000..4f24df3 --- /dev/null +++ b/src/API.Domain.Shared/Enums/EnumCompanyType.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Text; + +namespace API.Enums +{ + public enum EnumCompanyType + { + [Description("全资")] + 全资 = 0, + [Description("控股")] + 控股 = 1, + [Description("合联营")] + 合联营 = 2, + [Description("其他")] + 其他 = 3, + } +} diff --git a/src/API.Domain.Shared/Filter/EnumFilterAction.cs b/src/API.Domain.Shared/Filter/EnumFilterAction.cs new file mode 100644 index 0000000..6a2448f --- /dev/null +++ b/src/API.Domain.Shared/Filter/EnumFilterAction.cs @@ -0,0 +1,63 @@ +using System.ComponentModel; + +namespace API.Filter +{ + /// + /// 过滤条件 + /// + public enum EnumFilterAction + { + /// + /// equal + /// + [Description("等于")] Equal = 0, + + /// + /// Not equal + /// + [Description("不等于")] NotEqual = 1, + + /// + /// Bigger + /// + [Description("大于")] BiggerThan = 2, + + /// + /// Smaller + /// + [Description("小于")] SmallThan = 3, + + /// + /// Bigger or equal + /// + [Description("大于等于")] BiggerThanOrEqual = 4, + + /// + /// Small or equal + /// + [Description("小于等于")] SmallThanOrEqual = 5, + + /// + /// Like + /// + [Description("类似于")] Like = 6, + + /// + /// Not like + /// + [Description("不类似于")] NotLike = 7, + + /// + /// Contained in + /// List items = new List(); + /// string value = JsonSerializer.Serialize(items);//转成Json字符串 + ///FilterCondition filterCondition = new FilterCondition() { Column = "Name", Value = value, Action = EnumFilterAction.In, Logic = EnumFilterLogic.And }; + /// + [Description("包含于")] In = 8, + + /// + /// Not contained in + /// + [Description("不包含于")] NotIn = 9, + } +} \ No newline at end of file diff --git a/src/API.Domain.Shared/Filter/EnumFilterLogic.cs b/src/API.Domain.Shared/Filter/EnumFilterLogic.cs new file mode 100644 index 0000000..d70cd5b --- /dev/null +++ b/src/API.Domain.Shared/Filter/EnumFilterLogic.cs @@ -0,0 +1,18 @@ +namespace API.Filter +{ + /// + /// 过滤逻辑 + /// + public enum EnumFilterLogic + { + /// + /// 与 + /// + And=0, + + /// + /// 或 + /// + Or=1 + } +} \ No newline at end of file diff --git a/src/API.Domain.Shared/Filter/FilterCondition.cs b/src/API.Domain.Shared/Filter/FilterCondition.cs new file mode 100644 index 0000000..08d0248 --- /dev/null +++ b/src/API.Domain.Shared/Filter/FilterCondition.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace API.Filter +{ + public class FilterCondition + { + public FilterCondition() + { + Logic = EnumFilterLogic.And; + } + + public FilterCondition(string column, string value, EnumFilterAction action = EnumFilterAction.Equal, + EnumFilterLogic logic = EnumFilterLogic.And) + { + Column = column; + Action = action; + Value = value; + Logic = logic; + } + + /// + /// 过滤条件之间的逻辑关系:AND和OR + /// + public EnumFilterLogic Logic { get; set; } + + /// + /// 过滤条件中使用的数据列 + /// + public string Column { get; set; } + + /// + /// 过滤条件中的操作:Equal、NotEqual、BiggerThan、SmallThan、BiggerThanOrEqual、SmallThanOrEqual、In、NotIn + /// + public EnumFilterAction Action { get; set; } + + /// + /// 过滤条件中的操作的值 + /// + public string Value { get; set; } + } +} diff --git a/src/API.Domain.Shared/Filter/FilterExtensions.cs b/src/API.Domain.Shared/Filter/FilterExtensions.cs new file mode 100644 index 0000000..ddb353e --- /dev/null +++ b/src/API.Domain.Shared/Filter/FilterExtensions.cs @@ -0,0 +1,314 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using System.Text.Json; + +namespace API.Filter +{ + public static class FilterExtensions + { + public static Expression> ToLambda(this string jsonFilter) + { + if (string.IsNullOrWhiteSpace(jsonFilter)) + { + return p => true; + } + + var filterConditions = JsonSerializer.Deserialize>(jsonFilter); + return filterConditions.ToLambda(); + } + + public static Expression> ToLambda(this FilterCondition filterCondition) + { + var filterConditions = new List { filterCondition }; + return filterConditions.ToLambda(); + } + + public static Expression> ToLambda(this List filterConditionList) + { + Expression> condition = null; + try + { + if (!filterConditionList.Any()) + { + //创建默认表达式 + return p => true; + } + + foreach (var filterCondition in filterConditionList) + { + var tempCondition = CreateLambda(filterCondition); + if (condition == null) + { + condition = tempCondition; + } + else + { + condition = filterCondition.Logic switch + { + EnumFilterLogic.And => condition.And(tempCondition), + EnumFilterLogic.Or => condition.Or(tempCondition), + _ => condition + }; + } + } + } + catch (Exception ex) + { + throw new Exception($"获取筛选条件异常:{ex.Message}"); + } + + return condition; + } + + private static Expression> CreateLambda(FilterCondition filterCondition) + { + Expression> expression = p => false; + try + { + var parameter = Expression.Parameter(typeof(T), "p"); //创建参数p + var member = Expression.PropertyOrField(parameter, filterCondition.Column); //创建表达式中的属性或字段 + // var propertyType = member.Type; //取属性类型,常量constant按此类型进行转换 + //var constant = Expression.Constant(filterCondition.Value);//创建常数 + + ConstantExpression constant = null; + if (filterCondition.Action != EnumFilterAction.In && filterCondition.Action != EnumFilterAction.NotIn) + { + constant = CreateConstantExpression(member.Type, filterCondition.Value); + } + + switch (filterCondition.Action) + { + case EnumFilterAction.Equal: + expression = Expression.Lambda>(Expression.Equal(member, constant), parameter); + break; + case EnumFilterAction.NotEqual: + expression = Expression.Lambda>(Expression.NotEqual(member, constant), parameter); + break; + case EnumFilterAction.BiggerThan: + expression = Expression.Lambda>(Expression.GreaterThan(member, constant), parameter); + break; + case EnumFilterAction.SmallThan: + expression = Expression.Lambda>(Expression.LessThan(member, constant), parameter); + break; + case EnumFilterAction.BiggerThanOrEqual: + expression = Expression.Lambda>(Expression.GreaterThanOrEqual(member, constant), parameter); + break; + case EnumFilterAction.SmallThanOrEqual: + expression = Expression.Lambda>(Expression.LessThanOrEqual(member, constant), parameter); + break; + case EnumFilterAction.Like: + expression = GetExpressionLikeMethod("Contains", filterCondition); + break; + case EnumFilterAction.NotLike: + expression = GetExpressionNotLikeMethod("Contains", filterCondition); + break; + case EnumFilterAction.In: + expression = GetExpressionInMethod("Contains", member.Type, filterCondition); + break; + case EnumFilterAction.NotIn: + expression = GetExpressionNotInMethod("Contains", member.Type, filterCondition); + break; + default: + break; + } + } + catch (Exception ex) + { + Console.WriteLine(ex); + } + + return expression; + } + + /// + /// + /// + /// + /// + /// + private static ConstantExpression CreateConstantExpression(Type propertyType, string value) + { + ConstantExpression constant = null; + try + { + if (propertyType.IsGenericType && + propertyType.GetGenericTypeDefinition() == typeof(Nullable<>)) + { + var objValue = Convert.ChangeType(value, propertyType.GetGenericArguments()[0]); + constant = Expression.Constant(objValue); + } + else if (propertyType.IsEnum) + { + var enumValue = (Enum)Enum.Parse(propertyType, value, true); + constant = Expression.Constant(enumValue); + } + + else + { + constant = propertyType.Name switch + { + "Guid" => Expression.Constant(Guid.Parse(value)), + _ => Expression.Constant(Convert.ChangeType(value, propertyType)) + }; + } + } + catch (Exception ex) + { + throw new Exception($"获取ConstantExpression异常:{ex.Message}"); + } + + return constant; + } + + private static Expression> GetExpressionLikeMethod(string methodName, + FilterCondition filterCondition) + { + var parameterExpression = Expression.Parameter(typeof(T), "p"); + // MethodCallExpression methodExpression = GetMethodExpression(methodName, filterCondition.Column, filterCondition.Value, parameterExpression); + var methodExpression = GetMethodExpression(methodName, filterCondition.Column, filterCondition.Value, + parameterExpression); + return Expression.Lambda>(methodExpression, parameterExpression); + } + + private static Expression> GetExpressionNotLikeMethod(string methodName, + FilterCondition filterCondition) + { + var parameterExpression = Expression.Parameter(typeof(T), "p"); + var methodExpression = GetMethodExpression(methodName, filterCondition.Column, filterCondition.Value, + parameterExpression); + var notMethodExpression = Expression.Not(methodExpression); + return Expression.Lambda>(notMethodExpression, parameterExpression); + } + + + private static object GetPropertyValue(Type propertyType, string value) + { + Type lstType = typeof(List<>).MakeGenericType(propertyType); + return JsonSerializer.Deserialize(value, lstType); + } + + /// + /// 生成guidList.Contains(p=>p.GUId); + /// 除String类型,其他类型涉及到类型转换.如GUID + /// + /// + /// Contains + /// PropertyType/typeof(GUId) + /// PropertyName/PropertyValue + /// + private static Expression> GetExpressionInMethod(string methodName, Type propertyType, FilterCondition filterCondition) + { + var parameterExpression = Expression.Parameter(typeof(T), "p"); + Type lstType = typeof(List<>).MakeGenericType(propertyType); + object propertyValue = JsonSerializer.Deserialize(filterCondition.Value, lstType); + if (propertyValue != null) + { + var methodExpression = GetListMethodExpression(methodName, propertyType, filterCondition.Column, propertyValue, parameterExpression); + var expression = Expression.Lambda>(methodExpression, parameterExpression); + return expression; + } + else + { + return p=>false; + } + } + + private static Expression> GetExpressionNotInMethod(string methodName, Type propertyType, FilterCondition filterCondition) + { + var parameterExpression = Expression.Parameter(typeof(T), "p"); + Type lstType = typeof(List<>).MakeGenericType(propertyType); + object propertyValue = JsonSerializer.Deserialize(filterCondition.Value, lstType); + if (propertyValue != null) + { + var methodExpression = GetListMethodExpression(methodName, propertyType, filterCondition.Column, propertyValue, parameterExpression); + var notMethodExpression = Expression.Not(methodExpression); + return Expression.Lambda>(notMethodExpression, parameterExpression); + } + else + { + return p => false; + } + } + + + private static MethodCallExpression GetListMethodExpression(string methodName, Type propertyType, string propertyName, object propertyValue, ParameterExpression parameterExpression) + { + var propertyExpression = Expression.Property(parameterExpression, propertyName); //p.GUID + Type type = typeof(List<>).MakeGenericType(propertyType); + var method = type.GetMethod(methodName);//获取 List.Contains() + var someValue = Expression.Constant(propertyValue);//Value + return Expression.Call(someValue, method, propertyExpression); + } + + + /// + /// 生成类似于p=>p.Code.Contains("xxx");的lambda表达式 + /// parameterExpression标识p,propertyName表示values,propertyValue表示"Code",methodName表示Contains + /// 仅处理p的属性类型为string这种情况 + /// + /// + /// + /// + /// + /// + private static MethodCallExpression GetMethodExpression(string methodName, string propertyName, + string propertyValue, ParameterExpression parameterExpression) + { + var propertyExpression = Expression.Property(parameterExpression, propertyName); + var method = typeof(string).GetMethod(methodName, new[] { typeof(string) }); + var someValue = Expression.Constant(propertyValue, typeof(string)); + return Expression.Call(propertyExpression, method, someValue); + } + + /// + /// 默认True条件 + /// + /// + /// + public static Expression> True() + { + return f => true; + } + + /// + /// 默认False条件 + /// + /// + /// + public static Expression> False() + { + return f => false; + } + + /// + /// 拼接 OR 条件 + /// + /// + /// + /// + /// + private static Expression> Or(this Expression> exp, + Expression> condition) + { + var inv = Expression.Invoke(condition, exp.Parameters); + return Expression.Lambda>(Expression.Or(exp.Body, inv), exp.Parameters); + } + + /// + /// 拼接And条件 + /// + /// + /// + /// + /// + private static Expression> And(this Expression> exp, + Expression> condition) + { + var inv = Expression.Invoke(condition, exp.Parameters); + return Expression.Lambda>(Expression.And(exp.Body, inv), exp.Parameters); + } + + } +} \ No newline at end of file diff --git a/src/API.Domain.Shared/JsonHelper.cs b/src/API.Domain.Shared/JsonHelper.cs new file mode 100644 index 0000000..b9d2dd7 --- /dev/null +++ b/src/API.Domain.Shared/JsonHelper.cs @@ -0,0 +1,40 @@ +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System; +using System.Collections.Generic; +using System.Text; + +namespace API +{ + public class JsonHelper + { + private const string Format = "yyyy-MM-dd HH:mm:ss"; + + + public static List JsonToList(string strJson) + { + if (string.IsNullOrEmpty(strJson)) + { + return new List(); + } + + try + { + var list = JsonConvert.DeserializeObject>(strJson); + return list; + } + catch (Exception) + { + var str = strJson.Length > 100 ? strJson.Substring(0, 100) : strJson; + throw new Exception($"Json数据错误,解析失败{Environment.NewLine}{str}"); + } + } + + public static string ListToJson(List list) + { + var timeFormat = new IsoDateTimeConverter { DateTimeFormat = Format }; + var strJson = JsonConvert.SerializeObject(list, Formatting.None, timeFormat); + return strJson; + } + } +} diff --git a/src/API.Domain.Shared/Localization/API/ar.json b/src/API.Domain.Shared/Localization/API/ar.json new file mode 100644 index 0000000..05cb96a --- /dev/null +++ b/src/API.Domain.Shared/Localization/API/ar.json @@ -0,0 +1,8 @@ +{ + "culture": "ar", + "texts": { + "Menu:Home": "الرئيسية", + "Welcome": "مرحبا", + "LongWelcomeMessage": "مرحبا بكم في التطبيق. هذا مشروع بدء تشغيل يعتمد على إطار عمل ABP. لمزيد من المعلومات ، يرجى زيارة abp.io." + } +} \ No newline at end of file diff --git a/src/API.Domain.Shared/Localization/API/cs.json b/src/API.Domain.Shared/Localization/API/cs.json new file mode 100644 index 0000000..5a0bbf6 --- /dev/null +++ b/src/API.Domain.Shared/Localization/API/cs.json @@ -0,0 +1,8 @@ +{ + "culture": "cs", + "texts": { + "Menu:Home": "Úvod", + "Welcome": "Vítejte", + "LongWelcomeMessage": "Vítejte v aplikaci. Toto je startovací projekt založený na ABP frameworku. Pro více informací, navštivte abp.io." + } +} diff --git a/src/API.Domain.Shared/Localization/API/de-DE.json b/src/API.Domain.Shared/Localization/API/de-DE.json new file mode 100644 index 0000000..aca4528 --- /dev/null +++ b/src/API.Domain.Shared/Localization/API/de-DE.json @@ -0,0 +1,8 @@ +{ + "culture": "de-DE", + "texts": { + "Menu:Home": "Home", + "Welcome": "Willkommen", + "LongWelcomeMessage": "Willkommen bei der Anwendung. Dies ist ein Startup-Projekt, das auf dem ABP-Framework basiert. Weitere Informationen finden Sie unter abp.io." + } +} \ No newline at end of file diff --git a/src/API.Domain.Shared/Localization/API/en-GB.json b/src/API.Domain.Shared/Localization/API/en-GB.json new file mode 100644 index 0000000..d2ca079 --- /dev/null +++ b/src/API.Domain.Shared/Localization/API/en-GB.json @@ -0,0 +1,8 @@ +{ + "culture": "en-GB", + "texts": { + "Menu:Home": "Home", + "Welcome": "Welcome", + "LongWelcomeMessage": "Welcome to the application. This is a startup project based on the ABP framework. For more information, visit abp.io." + } +} \ No newline at end of file diff --git a/src/API.Domain.Shared/Localization/API/en.json b/src/API.Domain.Shared/Localization/API/en.json new file mode 100644 index 0000000..d2a6a98 --- /dev/null +++ b/src/API.Domain.Shared/Localization/API/en.json @@ -0,0 +1,8 @@ +{ + "culture": "en", + "texts": { + "Menu:Home": "Home", + "Welcome": "Welcome", + "LongWelcomeMessage": "Welcome to the application. This is a startup project based on the ABP framework. For more information, visit abp.io." + } +} diff --git a/src/API.Domain.Shared/Localization/API/es.json b/src/API.Domain.Shared/Localization/API/es.json new file mode 100644 index 0000000..31b4b59 --- /dev/null +++ b/src/API.Domain.Shared/Localization/API/es.json @@ -0,0 +1,8 @@ +{ + "culture": "es", + "texts": { + "Menu:Home": "Inicio", + "Welcome": "Bienvenido", + "LongWelcomeMessage": "Bienvenido a la aplicación, este es un proyecto base basado en el framework ABP. Para más información, visita abp.io." + } +} \ No newline at end of file diff --git a/src/API.Domain.Shared/Localization/API/fi.json b/src/API.Domain.Shared/Localization/API/fi.json new file mode 100644 index 0000000..a318859 --- /dev/null +++ b/src/API.Domain.Shared/Localization/API/fi.json @@ -0,0 +1,8 @@ +{ + "culture": "fi", + "texts": { + "Menu:Home": "Koti", + "Welcome": "Tervetuloa", + "LongWelcomeMessage": "Tervetuloa sovellukseen. Tämä on ABP-kehykseen perustuva käynnistysprojekti. Lisätietoja on osoitteessa abp.io." + } +} \ No newline at end of file diff --git a/src/API.Domain.Shared/Localization/API/fr.json b/src/API.Domain.Shared/Localization/API/fr.json new file mode 100644 index 0000000..e76eac0 --- /dev/null +++ b/src/API.Domain.Shared/Localization/API/fr.json @@ -0,0 +1,8 @@ +{ + "culture": "fr", + "texts": { + "Menu:Home": "Accueil", + "Welcome": "Bienvenue", + "LongWelcomeMessage": "Bienvenue dans l'application. Il s'agit d'un projet de démarrage basé sur le framework ABP. Pour plus d'informations, visitez abp.io." + } +} \ No newline at end of file diff --git a/src/API.Domain.Shared/Localization/API/hi.json b/src/API.Domain.Shared/Localization/API/hi.json new file mode 100644 index 0000000..a1676bf --- /dev/null +++ b/src/API.Domain.Shared/Localization/API/hi.json @@ -0,0 +1,8 @@ +{ + "culture": "hi", + "texts": { + "Menu:Home": "घर", + "Welcome": "स्वागत हे", + "LongWelcomeMessage": "आवेदन करने के लिए आपका स्वागत है। यह एबीपी ढांचे पर आधारित एक स्टार्टअप परियोजना है। अधिक जानकारी के लिए, abp.io पर जाएं।" + } +} \ No newline at end of file diff --git a/src/API.Domain.Shared/Localization/API/hu.json b/src/API.Domain.Shared/Localization/API/hu.json new file mode 100644 index 0000000..c7b6a33 --- /dev/null +++ b/src/API.Domain.Shared/Localization/API/hu.json @@ -0,0 +1,8 @@ +{ + "culture": "hu", + "texts": { + "Menu:Home": "Kezdőlap", + "Welcome": "Üdvözlöm", + "LongWelcomeMessage": "Üdvözöljük az alkalmazásban. Ez egy ABP keretrendszeren alapuló startup projekt. További információkért látogasson el az abp.io oldalra." + } +} \ No newline at end of file diff --git a/src/API.Domain.Shared/Localization/API/it.json b/src/API.Domain.Shared/Localization/API/it.json new file mode 100644 index 0000000..82ce42b --- /dev/null +++ b/src/API.Domain.Shared/Localization/API/it.json @@ -0,0 +1,8 @@ +{ + "culture": "it", + "texts": { + "Menu:Home": "Home", + "Welcome": "Benvenuto", + "LongWelcomeMessage": "Benvenuto nell'applicazione. Questo è un progetto di avvio basato sul framework ABP. Per ulteriori informazioni, visita abp.io." + } +} \ No newline at end of file diff --git a/src/API.Domain.Shared/Localization/API/nl.json b/src/API.Domain.Shared/Localization/API/nl.json new file mode 100644 index 0000000..9ba8da4 --- /dev/null +++ b/src/API.Domain.Shared/Localization/API/nl.json @@ -0,0 +1,8 @@ +{ + "culture": "nl", + "texts": { + "Menu:Home": "Home", + "Welcome": "Welkom", + "LongWelcomeMessage": "Welkom bij de applicatie. Dit is een startup-project gebaseerd op het ABP-framework. Bezoek abp.io voor meer informatie." + } +} \ No newline at end of file diff --git a/src/API.Domain.Shared/Localization/API/pl-PL.json b/src/API.Domain.Shared/Localization/API/pl-PL.json new file mode 100644 index 0000000..33412f3 --- /dev/null +++ b/src/API.Domain.Shared/Localization/API/pl-PL.json @@ -0,0 +1,8 @@ +{ + "culture": "pl-PL", + "texts": { + "Menu:Home": "Home", + "Welcome": "Witaj", + "LongWelcomeMessage": "Witaj w aplikacji. To jest inicjalny projekt bazujący na ABP framework. Po więcej informacji odwiedź stronę abp.io." + } +} \ No newline at end of file diff --git a/src/API.Domain.Shared/Localization/API/pt-BR.json b/src/API.Domain.Shared/Localization/API/pt-BR.json new file mode 100644 index 0000000..8c818a0 --- /dev/null +++ b/src/API.Domain.Shared/Localization/API/pt-BR.json @@ -0,0 +1,8 @@ +{ + "culture": "pt-BR", + "texts": { + "Menu:Home": "Principal", + "Welcome": "Seja bem-vindo!", + "LongWelcomeMessage": "Bem-vindo a esta aplicação. Este é um projeto inicial baseado no ABP framework. Para mais informações, visite abp.io." + } +} \ No newline at end of file diff --git a/src/API.Domain.Shared/Localization/API/ru.json b/src/API.Domain.Shared/Localization/API/ru.json new file mode 100644 index 0000000..8464e44 --- /dev/null +++ b/src/API.Domain.Shared/Localization/API/ru.json @@ -0,0 +1,8 @@ +{ + "culture": "ru", + "texts": { + "Menu:Home": "Главная", + "Welcome": "Добро пожаловать", + "LongWelcomeMessage": "Добро пожаловать в приложение. Этот запущенный проект основан на фреймворке ABP. Для получения дополнительной информации посетите сайт abp.io." + } +} diff --git a/src/API.Domain.Shared/Localization/API/sk.json b/src/API.Domain.Shared/Localization/API/sk.json new file mode 100644 index 0000000..4f35aaf --- /dev/null +++ b/src/API.Domain.Shared/Localization/API/sk.json @@ -0,0 +1,8 @@ +{ + "culture": "sk", + "texts": { + "Menu:Home": "Domov", + "Welcome": "Vitajte", + "LongWelcomeMessage": "Vitajte v aplikácii. Toto je štartovací projekt založený na ABP frameworku. Viac informácií nájdete na stránke abp.io." + } +} \ No newline at end of file diff --git a/src/API.Domain.Shared/Localization/API/sl.json b/src/API.Domain.Shared/Localization/API/sl.json new file mode 100644 index 0000000..a066ef2 --- /dev/null +++ b/src/API.Domain.Shared/Localization/API/sl.json @@ -0,0 +1,8 @@ +{ + "culture": "sl", + "texts": { + "Menu:Home": "Domov", + "Welcome": "Dobrodošli", + "LongWelcomeMessage": "Dobrodošli v aplikaciji. To je začetni projekt na osnovi okolja ABP. Za več informacij obiščite abp.io." + } +} diff --git a/src/API.Domain.Shared/Localization/API/tr.json b/src/API.Domain.Shared/Localization/API/tr.json new file mode 100644 index 0000000..5bf83ee --- /dev/null +++ b/src/API.Domain.Shared/Localization/API/tr.json @@ -0,0 +1,8 @@ +{ + "culture": "tr", + "texts": { + "Menu:Home": "Ana sayfa", + "Welcome": "Hoşgeldiniz", + "LongWelcomeMessage": "Uygulamaya hoşgeldiniz. Bu, ABP framework'ü üzerine bina edilmiş bir başlangıç projesidir. Daha fazla bilgi için abp.io adresini ziyaret edebilirsiniz." + } +} \ No newline at end of file diff --git a/src/API.Domain.Shared/Localization/API/vi.json b/src/API.Domain.Shared/Localization/API/vi.json new file mode 100644 index 0000000..c115a35 --- /dev/null +++ b/src/API.Domain.Shared/Localization/API/vi.json @@ -0,0 +1,8 @@ +{ + "culture": "vi", + "texts": { + "Menu:Home": "Trang chủ", + "Welcome": "Chào mừng bạn", + "LongWelcomeMessage": "Chào mừng bạn đến ứng dụng. Đây là một dự án khởi nghiệp dựa trên khung ABP. Để biết thêm thông tin, hãy truy cập abp.io." + } +} diff --git a/src/API.Domain.Shared/Localization/API/zh-Hans.json b/src/API.Domain.Shared/Localization/API/zh-Hans.json new file mode 100644 index 0000000..23790bd --- /dev/null +++ b/src/API.Domain.Shared/Localization/API/zh-Hans.json @@ -0,0 +1,8 @@ +{ + "culture": "zh-Hans", + "texts": { + "Menu:Home": "首页", + "Welcome": "欢迎", + "LongWelcomeMessage": "欢迎来到该应用程序. 这是一个基于ABP框架的启动项目. 有关更多信息, 请访问 abp.io." + } + } \ No newline at end of file diff --git a/src/API.Domain.Shared/Localization/API/zh-Hant.json b/src/API.Domain.Shared/Localization/API/zh-Hant.json new file mode 100644 index 0000000..31e0ab5 --- /dev/null +++ b/src/API.Domain.Shared/Localization/API/zh-Hant.json @@ -0,0 +1,8 @@ +{ + "culture": "zh-Hant", + "texts": { + "Menu:Home": "首頁", + "Welcome": "歡迎", + "LongWelcomeMessage": "歡迎來到此應用程式. 這是一個基於ABP框架的起始專案. 有關更多訊息, 請瀏覽 abp.io." + } + } \ No newline at end of file diff --git a/src/API.Domain.Shared/Localization/APIResource.cs b/src/API.Domain.Shared/Localization/APIResource.cs new file mode 100644 index 0000000..abaad57 --- /dev/null +++ b/src/API.Domain.Shared/Localization/APIResource.cs @@ -0,0 +1,10 @@ +using Volo.Abp.Localization; + +namespace API.Localization +{ + [LocalizationResourceName("API")] + public class APIResource + { + + } +} \ No newline at end of file diff --git a/src/API.Domain.Shared/MultiTenancy/MultiTenancyConsts.cs b/src/API.Domain.Shared/MultiTenancy/MultiTenancyConsts.cs new file mode 100644 index 0000000..fde040c --- /dev/null +++ b/src/API.Domain.Shared/MultiTenancy/MultiTenancyConsts.cs @@ -0,0 +1,11 @@ +namespace API.MultiTenancy +{ + public static class MultiTenancyConsts + { + /* Enable/disable multi-tenancy easily in a single point. + * If you will never need to multi-tenancy, you can remove + * related modules and code parts, including this file. + */ + public const bool IsEnabled = true; + } +} diff --git a/src/API.Domain.Shared/TD_DATA.cs b/src/API.Domain.Shared/TD_DATA.cs new file mode 100644 index 0000000..96a5dd5 --- /dev/null +++ b/src/API.Domain.Shared/TD_DATA.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace API +{ + public class TD_DATA + { + public string C { get; set; } + + public decimal V + { + get => decimal.Round(Vs[0], 6); + // set + // { + // if (Vs.Count > 0) + // + // { + // Vs[0] = value; + // } + // else + // { + // Vs = new List { value }; + // } + // } + } + + public IList Ns { get; set; } = new List(); + public IList Vs { get; set; } = new List(); + + public TD_DATA() + { + } + + public TD_DATA(string c, decimal v0) + { + C = c; + Vs = new List { v0 }; + } + + public TD_DATA(string c, IList ns, IList vs) + { + C = c; + Ns = ns; + Vs = vs; + } + } +} diff --git a/src/API.Domain/API.Domain.csproj b/src/API.Domain/API.Domain.csproj new file mode 100644 index 0000000..574b255 --- /dev/null +++ b/src/API.Domain/API.Domain.csproj @@ -0,0 +1,29 @@ + + + + + + net5.0 + API + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/API.Domain/APIConsts.cs b/src/API.Domain/APIConsts.cs new file mode 100644 index 0000000..a0871c0 --- /dev/null +++ b/src/API.Domain/APIConsts.cs @@ -0,0 +1,9 @@ +namespace API +{ + public static class APIConsts + { + public const string DbTablePrefix = "App"; + + public const string DbSchema = null; + } +} diff --git a/src/API.Domain/APIDbProperties.cs b/src/API.Domain/APIDbProperties.cs new file mode 100644 index 0000000..6892753 --- /dev/null +++ b/src/API.Domain/APIDbProperties.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Data; + +namespace API +{ + public static class APIDbProperties + { + public static string DbTablePrefix { get; internal set; } = "fmp"; + + public static string DbSchema { get; internal set; } = AbpCommonDbProperties.DbSchema; + + public const string ConnectionStringName = "APIService"; + } +} diff --git a/src/API.Domain/APIDomainModule.cs b/src/API.Domain/APIDomainModule.cs new file mode 100644 index 0000000..fd340c4 --- /dev/null +++ b/src/API.Domain/APIDomainModule.cs @@ -0,0 +1,46 @@ +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.DependencyInjection.Extensions; +using API.MultiTenancy; +using Volo.Abp.AuditLogging; +using Volo.Abp.BackgroundJobs; +using Volo.Abp.Emailing; +using Volo.Abp.FeatureManagement; +using Volo.Abp.Identity; +using Volo.Abp.IdentityServer; +using Volo.Abp.Modularity; +using Volo.Abp.MultiTenancy; +using Volo.Abp.PermissionManagement.Identity; +using Volo.Abp.PermissionManagement.IdentityServer; +using Volo.Abp.SettingManagement; +using Volo.Abp.TenantManagement; + +namespace API +{ + [DependsOn( + typeof(APIDomainSharedModule), + typeof(AbpAuditLoggingDomainModule), + typeof(AbpBackgroundJobsDomainModule), + typeof(AbpFeatureManagementDomainModule), + typeof(AbpIdentityDomainModule), + typeof(AbpPermissionManagementDomainIdentityModule), + typeof(AbpIdentityServerDomainModule), + typeof(AbpPermissionManagementDomainIdentityServerModule), + typeof(AbpSettingManagementDomainModule), + typeof(AbpTenantManagementDomainModule), + typeof(AbpEmailingModule) + )] + public class APIDomainModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.IsEnabled = MultiTenancyConsts.IsEnabled; + }); + +#if DEBUG + context.Services.Replace(ServiceDescriptor.Singleton()); +#endif + } + } +} diff --git a/src/API.Domain/BudgetDataSources/JQ_LRB.cs b/src/API.Domain/BudgetDataSources/JQ_LRB.cs new file mode 100644 index 0000000..53bc60a --- /dev/null +++ b/src/API.Domain/BudgetDataSources/JQ_LRB.cs @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.BudgetDataSources +{ + [DisplayName("JQLRB久其利润表")] + public class JQ_LRB : Entity + { + public JQ_LRB() + { + + } + + public JQ_LRB(Guid id,string companyCode, string iTEM, string rowNum, decimal nUM_MONTH, decimal aDD_UP_NUM_YEAR, DateTime cREATE_TIME, string dATA_TIME, decimal lAST_YEAR_SAME_PERIOD, string sHEET_NAME, string tABLENUM, int year, int month) + { + GUID = id; + CompanyCode = companyCode; + ITEM = iTEM; + RowNum = rowNum; + NUM_MONTH = nUM_MONTH; + ADD_UP_NUM_YEAR = aDD_UP_NUM_YEAR; + CREATE_TIME = cREATE_TIME; + DATA_TIME = dATA_TIME; + LAST_YEAR_SAME_PERIOD = lAST_YEAR_SAME_PERIOD; + SHEET_NAME = sHEET_NAME; + TABLENUM = tABLENUM; + Year = year; + Month = month; + } + + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + [DisplayName("项目")] + public string ITEM { get; set; } + [DisplayName("行次")] + public string RowNum { get; set; } + [DisplayName("本月数")] + public decimal NUM_MONTH { get; set; } + [DisplayName("本年累计数")] + public decimal ADD_UP_NUM_YEAR { get; set; } + [DisplayName("创建时间")] + public DateTime CREATE_TIME { get; set; } + [DisplayName("时间")] + public string DATA_TIME { get; set; } + [DisplayName("上年同期累计数")] + public decimal LAST_YEAR_SAME_PERIOD { get; set; } + [DisplayName("表名")] + public string SHEET_NAME { get; set; } + [DisplayName("报表编号")] + public string TABLENUM { get; set; } + [DisplayName("年")] + public int Year { get; set; } + [DisplayName("月")] + public int Month { get; set; } + + #region 公共字段 + + [DisplayName("创建人")] + public string CreateUser { get; set; } = "JQ"; + + [DisplayName("创建时间")] + public DateTime CreateTime { get; set; } = DateTime.Now; + + [DisplayName("修改人")] + public string UpdateUser { get; set; } + + [DisplayName("修改时间")] + public DateTime? UpdateTime { get; set; } + + [DisplayName("状态")] + public int State { get; set; } = 1; + + [DisplayName("备注")] + public string Remark { get; set; } + + public int UID { get; set; } + + public Guid GUID { get; set; } + + public override object[] GetKeys() + { + throw new NotImplementedException(); + } + + #endregion + } +} diff --git a/src/API.Domain/BudgetDataSources/JQ_QJFYB.cs b/src/API.Domain/BudgetDataSources/JQ_QJFYB.cs new file mode 100644 index 0000000..c5fcbc4 --- /dev/null +++ b/src/API.Domain/BudgetDataSources/JQ_QJFYB.cs @@ -0,0 +1,93 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.BudgetDataSources +{ + [DisplayName("JQQJFYB久其期间费用表")] + public class JQ_QJFYB : Entity + { + public JQ_QJFYB() + { + + } + + public JQ_QJFYB(Guid id, string companyCode, string iTEM, string rowNum, decimal nUM_MONTH, decimal aDD_UP_NUM_YEAR, DateTime cREATE_TIME, string dATA_TIME, decimal lAST_YEAR_ADD_UP, string sHEET_NAME, string tABLENUM, int year, int month) + { + GUID = id; + CompanyCode = companyCode; + ITEM = iTEM; + RowNum = rowNum; + NUM_MONTH = nUM_MONTH; + ADD_UP_NUM_YEAR = aDD_UP_NUM_YEAR; + CREATE_TIME = cREATE_TIME; + DATA_TIME = dATA_TIME; + LAST_YEAR_ADD_UP = lAST_YEAR_ADD_UP; + SHEET_NAME = sHEET_NAME; + TABLENUM = tABLENUM; + Year = year; + Month = month; + } + + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + + [DisplayName("项目")] + public string ITEM { get; set; } + [DisplayName("行次")] + public string RowNum { get; set; } + [DisplayName("本月数")] + public decimal NUM_MONTH { get; set; } + [DisplayName("本年累计数")] + public decimal ADD_UP_NUM_YEAR { get; set; } + [DisplayName("创建时间")] + public DateTime CREATE_TIME { get; set; } + [DisplayName("时间")] + public string DATA_TIME { get; set; } + [DisplayName("上年同期累计数")] + public decimal LAST_YEAR_ADD_UP { get; set; } + [DisplayName("表名")] + public string SHEET_NAME { get; set; } + [DisplayName("报表编号")] + public string TABLENUM { get; set; } + [DisplayName("年")] + public int Year { get; set; } + [DisplayName("月")] + public int Month { get; set; } + + #region 公共字段 + + [DisplayName("创建人")] + public string CreateUser { get; set; } = "JQ"; + + [DisplayName("创建时间")] + public DateTime CreateTime { get; set; } = DateTime.Now; + + [DisplayName("修改人")] + public string UpdateUser { get; set; } + + [DisplayName("修改时间")] + public DateTime? UpdateTime { get; set; } + + [DisplayName("状态")] + public int State { get; set; } = 1; + + [DisplayName("备注")] + public string Remark { get; set; } + + public int UID { get; set; } + + public Guid GUID { get; set; } + + public override object[] GetKeys() + { + throw new NotImplementedException(); + } + + #endregion + } +} diff --git a/src/API.Domain/BudgetDataSources/JQ_SCCBB.cs b/src/API.Domain/BudgetDataSources/JQ_SCCBB.cs new file mode 100644 index 0000000..823b1f1 --- /dev/null +++ b/src/API.Domain/BudgetDataSources/JQ_SCCBB.cs @@ -0,0 +1,101 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.BudgetDataSources +{ + [DisplayName("JQSCCBB久其生产成本表")] + public class JQ_SCCBB : Entity + { + public JQ_SCCBB() + { + + } + + public JQ_SCCBB(Guid id ,string companyCode, string iTEM, string rowNum, decimal mONTH_BEGINNING, decimal tR_MONTH, decimal wG_MONTH, decimal wG_ADD_UP, decimal mONTH_CLOSING, decimal tR_ADD_UP, DateTime cREATE_TIME, string dATA_TIME, int year, int month, string sHEET_NAME, string tABLENUM) + { + GUID = id; + CompanyCode = companyCode; + ITEM = iTEM; + RowNum = rowNum; + MONTH_BEGINNING = mONTH_BEGINNING; + TR_MONTH = tR_MONTH; + WG_MONTH = wG_MONTH; + WG_ADD_UP = wG_ADD_UP; + MONTH_CLOSING = mONTH_CLOSING; + TR_ADD_UP = tR_ADD_UP; + CREATE_TIME = cREATE_TIME; + DATA_TIME = dATA_TIME; + Year = year; + Month = month; + SHEET_NAME = sHEET_NAME; + TABLENUM = tABLENUM; + } + + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + [DisplayName("项目")] + public string ITEM { get; set; } + [DisplayName("行次")] + public string RowNum { get; set; } + [DisplayName("月初余额")] + public decimal MONTH_BEGINNING { get; set; } + [DisplayName("投入本月")] + public decimal TR_MONTH { get; set; } + [DisplayName("完工本月")] + public decimal WG_MONTH { get; set; } + [DisplayName("完工累计")] + public decimal WG_ADD_UP { get; set; } + [DisplayName("月末余额")] + public decimal MONTH_CLOSING { get; set; } + [DisplayName("投入累计")] + public decimal TR_ADD_UP { get; set; } + [DisplayName("创建时间")] + public DateTime CREATE_TIME { get; set; } + [DisplayName("时间")] + public string DATA_TIME { get; set; } + [DisplayName("年")] + public int Year { get; set; } + [DisplayName("月")] + public int Month { get; set; } + [DisplayName("表名")] + public string SHEET_NAME { get; set; } + [DisplayName("报表编号")] + public string TABLENUM { get; set; } + + #region 公共字段 + + [DisplayName("创建人")] + public string CreateUser { get; set; } = "JQ"; + + [DisplayName("创建时间")] + public DateTime CreateTime { get; set; } = DateTime.Now; + + [DisplayName("修改人")] + public string UpdateUser { get; set; } + + [DisplayName("修改时间")] + public DateTime? UpdateTime { get; set; } + + [DisplayName("状态")] + public int State { get; set; } = 1; + + [DisplayName("备注")] + public string Remark { get; set; } + + public int UID { get; set; } + + public Guid GUID { get; set; } + + public override object[] GetKeys() + { + throw new NotImplementedException(); + } + + #endregion + } +} diff --git a/src/API.Domain/BudgetDataSources/JQ_XJLLB.cs b/src/API.Domain/BudgetDataSources/JQ_XJLLB.cs new file mode 100644 index 0000000..c68796e --- /dev/null +++ b/src/API.Domain/BudgetDataSources/JQ_XJLLB.cs @@ -0,0 +1,106 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.BudgetDataSources +{ + [DisplayName("JQXJLLB久其现金流量表")] + public class JQ_XJLLB : Entity + { + public JQ_XJLLB() + { + + } + + public JQ_XJLLB(Guid id, string companyCode, string iTEM, string rowNum, decimal aLL_TOTAL, decimal hBZJ_TOTAL, decimal hBZJ_JTWB, + decimal hBZJ_JTNB, decimal ySPJ_TOTAL, decimal yPJ_JTWB, decimal ySPJ_JTNB, + DateTime cREATE_TIME, string dATA_TIME, string sHEET_NAME, string tABLENUM, int year, int month) + { + GUID = id; + CompanyCode = companyCode; + ITEM = iTEM; + RowNum = rowNum; + ALL_TOTAL = aLL_TOTAL; + HBZJ_TOTAL = hBZJ_TOTAL; + HBZJ_JTWB = hBZJ_JTWB; + HBZJ_JTNB = hBZJ_JTNB; + YSPJ_TOTAL = ySPJ_TOTAL; + YSPJ_JTWB = yPJ_JTWB; + YSPJ_JTNB = ySPJ_JTNB; + CREATE_TIME = cREATE_TIME; + DATA_TIME = dATA_TIME; + SHEET_NAME = sHEET_NAME; + TABLENUM = tABLENUM; + Year = year; + Month = month; + } + + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + [DisplayName("项目")] + public string ITEM { get; set; } + [DisplayName("行次")] + public string RowNum { get; set; } + [DisplayName("总计")] + public decimal ALL_TOTAL { get; set; } + [DisplayName("货币资金合计")] + public decimal HBZJ_TOTAL { get; set; } + [DisplayName("货币资金集团外部")] + public decimal HBZJ_JTWB { get; set; } + [DisplayName("货币资金集团内部")] + public decimal HBZJ_JTNB { get; set; } + [DisplayName("应收票据合计")] + public decimal YSPJ_TOTAL { get; set; } + [DisplayName("应收票据集团外部")] + public decimal YSPJ_JTWB { get; set; } + [DisplayName("应收票据集团内部")] + public decimal YSPJ_JTNB { get; set; } + [DisplayName("创建时间")] + public DateTime CREATE_TIME { get; set; } + [DisplayName("时间")] + public string DATA_TIME { get; set; } + [DisplayName("表名")] + public string SHEET_NAME { get; set; } + [DisplayName("报表编号")] + public string TABLENUM { get; set; } + [DisplayName("年")] + public int Year { get; set; } + [DisplayName("月")] + public int Month { get; set; } + + #region 公共字段 + + [DisplayName("创建人")] + public string CreateUser { get; set; } = "JQ"; + + [DisplayName("创建时间")] + public DateTime CreateTime { get; set; } = DateTime.Now; + + [DisplayName("修改人")] + public string UpdateUser { get; set; } + + [DisplayName("修改时间")] + public DateTime? UpdateTime { get; set; } + + [DisplayName("状态")] + public int State { get; set; } = 1; + + [DisplayName("备注")] + public string Remark { get; set; } + + public int UID { get; set; } + + public Guid GUID { get; set; } + + public override object[] GetKeys() + { + throw new NotImplementedException(); + } + + #endregion + } +} diff --git a/src/API.Domain/BudgetDataSources/JQ_ZCFZB.cs b/src/API.Domain/BudgetDataSources/JQ_ZCFZB.cs new file mode 100644 index 0000000..04ef833 --- /dev/null +++ b/src/API.Domain/BudgetDataSources/JQ_ZCFZB.cs @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.BudgetDataSources +{ + [DisplayName("JQZCFZB久其资产负债表")] + public class JQ_ZCFZB : Entity + { + public JQ_ZCFZB() + { + + } + + public JQ_ZCFZB(Guid id, string companyCode, string iTEM, string rowNum, decimal cLOSING_BALANCE, decimal bEGINNING_BALANCE, DateTime cREATE_TIME, string dATA_TIME,string sHEET_NAME, string tABLENUM, int year, int month) + { + GUID = id; + CompanyCode = companyCode; + ITEM = iTEM; + RowNum = rowNum; + CLOSING_BALANCE = cLOSING_BALANCE; + BEGINNING_BALANCE = bEGINNING_BALANCE; + CREATE_TIME = cREATE_TIME; + DATA_TIME = dATA_TIME; + SHEET_NAME = sHEET_NAME; + TABLENUM = tABLENUM; + Year = year; + Month = month; + } + + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + [DisplayName("项目")] + public string ITEM { get; set; } + [DisplayName("行次")] + public string RowNum { get; set; } + [DisplayName("期末余额")] + public decimal CLOSING_BALANCE { get; set; } + [DisplayName("年初余额")] + public decimal BEGINNING_BALANCE { get; set; } + [DisplayName("创建时间")] + public DateTime CREATE_TIME { get; set; } + [DisplayName("时间")] + public string DATA_TIME { get; set; } + + [DisplayName("资产类别")] + public string ITEM_TYP { get; set; } + [DisplayName("表单名称")] + public string SHEET_NAME { get; set; } + [DisplayName("报表编号")] + public string TABLENUM { get; set; } + [DisplayName("年")] + public int Year { get; set; } + [DisplayName("月")] + public int Month { get; set; } + + #region 公共字段 + + [DisplayName("创建人")] + public string CreateUser { get; set; } = "JQ"; + + [DisplayName("创建时间")] + public DateTime CreateTime { get; set; } = DateTime.Now; + + [DisplayName("修改人")] + public string UpdateUser { get; set; } + + [DisplayName("修改时间")] + public DateTime? UpdateTime { get; set; } + + [DisplayName("状态")] + public int State { get; set; } = 1; + + [DisplayName("备注")] + public string Remark { get; set; } + + public int UID { get; set; } + + public Guid GUID { get; set; } + + public override object[] GetKeys() + { + throw new NotImplementedException(); + } + + #endregion + } +} diff --git a/src/API.Domain/BudgetDataSources/JQ_ZZFYB.cs b/src/API.Domain/BudgetDataSources/JQ_ZZFYB.cs new file mode 100644 index 0000000..2565b1f --- /dev/null +++ b/src/API.Domain/BudgetDataSources/JQ_ZZFYB.cs @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.BudgetDataSources +{ + [DisplayName("JQZZFYB久其制造费用表")] + public class JQ_ZZFYB : Entity + { + public JQ_ZZFYB() + { + + } + + public JQ_ZZFYB(Guid id, string companyCode, string iTEM, string rowNum, decimal nUM_MONTH, decimal aDD_UP_NUM_YEAR, DateTime cREATE_TIME, string dATA_TIME, decimal lAST_YEAR_ADD_UP, string sHEET_NAME, string tABLENUM, int year, int month) + { + GUID = id; + CompanyCode = companyCode; + ITEM = iTEM; + RowNum = rowNum; + NUM_MONTH = nUM_MONTH; + ADD_UP_NUM_YEAR = aDD_UP_NUM_YEAR; + CREATE_TIME = cREATE_TIME; + DATA_TIME = dATA_TIME; + LAST_YEAR_ADD_UP = lAST_YEAR_ADD_UP; + SHEET_NAME = sHEET_NAME; + TABLENUM = tABLENUM; + Year = year; + Month = month; + } + + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + [DisplayName("项目")] + public string ITEM { get; set; } + [DisplayName("行次")] + public string RowNum { get; set; } + [DisplayName("本月数")] + public decimal NUM_MONTH { get; set; } + [DisplayName("本年累计数")] + public decimal ADD_UP_NUM_YEAR { get; set; } + [DisplayName("创建时间")] + public DateTime CREATE_TIME { get; set; } + [DisplayName("时间")] + public string DATA_TIME { get; set; } + [DisplayName("上年累计数")] + public decimal LAST_YEAR_ADD_UP { get; set; } + [DisplayName("表名")] + public string SHEET_NAME { get; set; } + [DisplayName("报表编号")] + public string TABLENUM { get; set; } + [DisplayName("年")] + public int Year { get; set; } + [DisplayName("月")] + public int Month { get; set; } + + #region 公共字段 + + [DisplayName("创建人")] + public string CreateUser { get; set; } = "JQ"; + + [DisplayName("创建时间")] + public DateTime CreateTime { get; set; } = DateTime.Now; + + [DisplayName("修改人")] + public string UpdateUser { get; set; } + + [DisplayName("修改时间")] + public DateTime? UpdateTime { get; set; } + + [DisplayName("状态")] + public int State { get; set; } = 1; + + [DisplayName("备注")] + public string Remark { get; set; } + + public int UID { get; set; } + + public Guid GUID { get; set; } + + public override object[] GetKeys() + { + throw new NotImplementedException(); + } + + #endregion + } +} diff --git a/src/API.Domain/BudgetDataSources/TI_CBB04_BUDGET.cs b/src/API.Domain/BudgetDataSources/TI_CBB04_BUDGET.cs new file mode 100644 index 0000000..73e5108 --- /dev/null +++ b/src/API.Domain/BudgetDataSources/TI_CBB04_BUDGET.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.BudgetDataSources +{ + [DisplayName("CBB04降成本输入表")] + public class TI_CBB04_BUDGET : Entity + { + public TI_CBB04_BUDGET() + { + + } + + [DisplayName("公司代码")] + + public string CompanyCode { get; set; } + + + [DisplayName("行号")] + public string RowNum { get; set; } + + [DisplayName("项目")] + public string ProjectName { get; set; } + + + + #region IBudgetTable + + [DisplayName("关联数据")] + public string DataString { get; set; } + + #endregion + + #region 公共字段 + + [DisplayName("创建人")] + public string CreateUser { get; set; } + + [DisplayName("创建时间")] + public DateTime CreateTime { get; set; } + + [DisplayName("修改人")] + public string UpdateUser { get; set; } + + [DisplayName("修改时间")] + public DateTime? UpdateTime { get; set; } + + [DisplayName("状态")] + public int State { get; set; } = 1; + + [DisplayName("备注")] + public string Remark { get; set; } + + public int UID { get; set; } + + public Guid GUID { get; set; } + + public override object[] GetKeys() + { + throw new NotImplementedException(); + } + + #endregion + } + + +} diff --git a/src/API.Domain/BudgetDataSources/TI_CWB16_BUDGET.cs b/src/API.Domain/BudgetDataSources/TI_CWB16_BUDGET.cs new file mode 100644 index 0000000..1dabdb9 --- /dev/null +++ b/src/API.Domain/BudgetDataSources/TI_CWB16_BUDGET.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.BudgetDataSources +{ + [DisplayName("CWB16损益表汇总调整输入表")] + public class TI_CWB16_BUDGET : Entity + { + + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + + [DisplayName("行号")] + public string RowNum { get; set; } + + [DisplayName("项目")] + + public string Project { get; set; } + + [DisplayName("账户代码")] + public string AccountCode { get; set; } + + [DisplayName("账户名称")] + public string AccountName { get; set; } + + + [DisplayName("关联数据")] + public string DataString { get; set; } + + #region 公共字段 + + [DisplayName("创建人")] + public string CreateUser { get; set; } + + [DisplayName("创建时间")] + public DateTime CreateTime { get; set; } + + [DisplayName("修改人")] + public string UpdateUser { get; set; } + + [DisplayName("修改时间")] + public DateTime? UpdateTime { get; set; } + + [DisplayName("状态")] + public int State { get; set; } + + [DisplayName("备注")] + public string Remark { get; set; } + + public int UID { get; set; } + + public Guid GUID { get; set; } + + #endregion + public override object[] GetKeys() + { + throw new NotImplementedException(); + } + } +} diff --git a/src/API.Domain/BudgetDataSources/TI_CWB17_BUDGET.cs b/src/API.Domain/BudgetDataSources/TI_CWB17_BUDGET.cs new file mode 100644 index 0000000..4daf0e9 --- /dev/null +++ b/src/API.Domain/BudgetDataSources/TI_CWB17_BUDGET.cs @@ -0,0 +1,83 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.BudgetDataSources +{ + [DisplayName("CWB17资产负债表汇总调整输入表")] + public class TI_CWB17_BUDGET : Entity + { + + public TI_CWB17_BUDGET() + { + + } + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + + + [DisplayName("行号")] + + public string RowNum { get; set; } + + [DisplayName("项目")] + + public string Project { get; set; } + + [DisplayName("账户代码")] + + public string AccountCode { get; set; } + + [DisplayName("账户名称")] + + public string AccountName { get; set; } + + [DisplayName("本年实际数年初")] + public decimal ActualValueBegin { get; set; } + + [DisplayName("本年实际数期末")] + public decimal ActualValueEnd { get; set; } + + #region IDataString + + [DisplayName("关联数据")] + public string DataString { get; set; } + + #endregion + + + #region 公共字段 + + [DisplayName("创建人")] + public string CreateUser { get; set; } + + [DisplayName("创建时间")] + public DateTime CreateTime { get; set; } + + [DisplayName("修改人")] + public string UpdateUser { get; set; } + + [DisplayName("修改时间")] + public DateTime? UpdateTime { get; set; } + + [DisplayName("状态")] + public int State { get; set; } + + [DisplayName("备注")] + public string Remark { get; set; } + + public int UID { get; set; } + + public Guid GUID { get; set; } + + #endregion + public override object[] GetKeys() + { + throw new NotImplementedException(); + } + } +} diff --git a/src/API.Domain/BudgetDataSources/TI_CWB18_BUDGET.cs b/src/API.Domain/BudgetDataSources/TI_CWB18_BUDGET.cs new file mode 100644 index 0000000..e2136cc --- /dev/null +++ b/src/API.Domain/BudgetDataSources/TI_CWB18_BUDGET.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.BudgetDataSources +{ + [DisplayName("CWB18现金流量表货币资金汇总调整输入表")] + public class TI_CWB18_BUDGET : Entity + { + public TI_CWB18_BUDGET() + { + + } + + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + + + + + [DisplayName("行号")] + + public string RowNum { get; set; } + + + [DisplayName("项目")] + + public string Project { get; set; } + + #region IDataString + + [DisplayName("关联数据")] + public string DataString { get; set; } + + #endregion + + + #region 公共字段 + + [DisplayName("创建人")] + + public string CreateUser { get; set; } + + [DisplayName("创建时间")] + public DateTime CreateTime { get; set; } + + [DisplayName("修改人")] + + public string UpdateUser { get; set; } + + [DisplayName("修改时间")] + public DateTime? UpdateTime { get; set; } + + [DisplayName("状态")] + public int State { get; set; } + + [DisplayName("备注")] + + public string Remark { get; set; } + + + public int UID { get; set; } + + + public Guid GUID { get; set; } + + #endregion + +public override object[] GetKeys() + { + throw new NotImplementedException(); + } + } +} diff --git a/src/API.Domain/BudgetDataSources/TI_CWB19_BUDGET.cs b/src/API.Domain/BudgetDataSources/TI_CWB19_BUDGET.cs new file mode 100644 index 0000000..ad34ba0 --- /dev/null +++ b/src/API.Domain/BudgetDataSources/TI_CWB19_BUDGET.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.BudgetDataSources +{ + [DisplayName("CWB19现金流量表应收票据汇总调整输入表")] + public class TI_CWB19_BUDGET : Entity + { + public TI_CWB19_BUDGET() + { + + } + [DisplayName("公司代码")] + + public string CompanyCode { get; set; } + + + + [DisplayName("行号")] + + public string RowNum { get; set; } + + + [DisplayName("项目")] + public string Project { get; set; } + + #region IDataString + + [DisplayName("关联数据")] + public string DataString { get; set; } + + #endregion + + + #region 公共字段 + + [DisplayName("创建人")] + public string CreateUser { get; set; } + + [DisplayName("创建时间")] + public DateTime CreateTime { get; set; } = DateTime.Now; + + [DisplayName("修改人")] + public string UpdateUser { get; set; } + + [DisplayName("修改时间")] + public DateTime? UpdateTime { get; set; } + + [DisplayName("状态")] + public int State { get; set; } + + [DisplayName("备注")] + public string Remark { get; set; } + + public int UID { get; set; } + + public Guid GUID { get; set; } + + #endregion + public override object[] GetKeys() + { + throw new NotImplementedException(); + } + } +} diff --git a/src/API.Domain/BudgetDataSources/TI_HRB04_BUDGET.cs b/src/API.Domain/BudgetDataSources/TI_HRB04_BUDGET.cs new file mode 100644 index 0000000..a7c9148 --- /dev/null +++ b/src/API.Domain/BudgetDataSources/TI_HRB04_BUDGET.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.BudgetDataSources +{ + [DisplayName("HRB04职工薪酬输入表")] + public class TI_HRB04_BUDGET : Entity + { + public TI_HRB04_BUDGET() + { + + } + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + + [DisplayName("行号")] + public string RowNum { get; set; } + + [DisplayName("项目")] + + public string SalaryType { get; set; } + + #region IDataString + + [DisplayName("关联数据")] + public string DataString { get; set; } + + #endregion + + #region 公共字段 + + [DisplayName("创建人")] + public string CreateUser { get; set; } + + [DisplayName("创建时间")] + public DateTime CreateTime { get; set; } + + [DisplayName("修改人")] + + public string UpdateUser { get; set; } + + [DisplayName("修改时间")] + public DateTime? UpdateTime { get; set; } + + [DisplayName("状态")] + public int State { get; set; } + + [DisplayName("备注")] + + public string Remark { get; set; } + + public int UID { get; set; } + + public Guid GUID { get; set; } + #endregion + public override object[] GetKeys() + { + throw new NotImplementedException(); + } + } +} diff --git a/src/API.Domain/BudgetDataSources/TO_CWC14_BUDGET.cs b/src/API.Domain/BudgetDataSources/TO_CWC14_BUDGET.cs new file mode 100644 index 0000000..7725e3b --- /dev/null +++ b/src/API.Domain/BudgetDataSources/TO_CWC14_BUDGET.cs @@ -0,0 +1,85 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; +using Volo.Abp.Domain.Entities.Auditing; + +namespace API.BudgetDataSources +{ + + + [DisplayName("CWC14损益表明细输出表调整后")] + public class TO_CWC14_BUDGET : Entity + { + public TO_CWC14_BUDGET() + { + + } + [DisplayName("公司代码")] + + public string CompanyCode { get; set; } + + [DisplayName("行号")] + public string RowNum { get; set; } + + [DisplayName("项目")] + + public string Project { get; set; } + + [DisplayName("账户代码")] + + public string AccountCode { get; set; } + + [DisplayName("账户名称")] + + public string AccountName { get; set; } + + + + #region IDataString + + [DisplayName("关联数据")] + public string DataString { get; set; } + + #endregion + + #region 公共字段 + + [DisplayName("创建人")] + + public string CreateUser { get; set; } + + [DisplayName("创建时间")] + public DateTime CreateTime { get; set; } + + [DisplayName("修改人")] + + public string UpdateUser { get; set; } + + [DisplayName("修改时间")] + public DateTime? UpdateTime { get; set; } + + [DisplayName("状态")] + public int State { get; set; } + + [DisplayName("备注")] + + public string Remark { get; set; } + + public int UID { get; set; } + + + public Guid GUID { get; set; } + + public override object[] GetKeys() + { + throw new NotImplementedException(); + } + + + #endregion + } +} diff --git a/src/API.Domain/BudgetDataSources/TO_CWC19_BUDGET.cs b/src/API.Domain/BudgetDataSources/TO_CWC19_BUDGET.cs new file mode 100644 index 0000000..9b0ad63 --- /dev/null +++ b/src/API.Domain/BudgetDataSources/TO_CWC19_BUDGET.cs @@ -0,0 +1,83 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; +using Volo.Abp.Domain.Entities.Auditing; +namespace API.BudgetDataSources +{ + [DisplayName("CWC14损益表明细输出表调整后")] + public class TO_CWC19_BUDGET : Entity + { + public TO_CWC19_BUDGET() + { + + } + [DisplayName("公司代码")] + + public string CompanyCode { get; set; } + + [DisplayName("行号")] + public string RowNum { get; set; } + + [DisplayName("项目")] + + public string Project { get; set; } + + [DisplayName("账户代码")] + + public string AccountCode { get; set; } + + [DisplayName("账户名称")] + + public string AccountName { get; set; } + + [DisplayName("本年实际数年初")] + public decimal BeginOfActualCount { get; set; } + + + #region IDataString + + [DisplayName("关联数据")] + public string DataString { get; set; } + + #endregion + + #region 公共字段 + + [DisplayName("创建人")] + + public string CreateUser { get; set; } + + [DisplayName("创建时间")] + public DateTime CreateTime { get; set; } + + [DisplayName("修改人")] + + public string UpdateUser { get; set; } + + [DisplayName("修改时间")] + public DateTime? UpdateTime { get; set; } + + [DisplayName("状态")] + public int State { get; set; } + + [DisplayName("备注")] + + public string Remark { get; set; } + + public int UID { get; set; } + + + public Guid GUID { get; set; } + + public override object[] GetKeys() + { + throw new NotImplementedException(); + } + + #endregion + } +} diff --git a/src/API.Domain/BudgetDataSources/TO_CWC21_BUDGET.cs b/src/API.Domain/BudgetDataSources/TO_CWC21_BUDGET.cs new file mode 100644 index 0000000..65a0507 --- /dev/null +++ b/src/API.Domain/BudgetDataSources/TO_CWC21_BUDGET.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.BudgetDataSources +{ + [DisplayName("CWC21现金流量表输出表调整后")] + public class TO_CWC21_BUDGET : Entity + { + + public TO_CWC21_BUDGET() + { + + } + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + + + + + [DisplayName("行号")] + + public string RowNum { get; set; } + + [DisplayName("项目")] + + public string Project { get; set; } + + + #region IDataString + + [DisplayName("关联数据")] + public string DataString { get; set; } + + #endregion + + #region 公共字段 + + [DisplayName("创建人")] + public string CreateUser { get; set; } + + [DisplayName("创建时间")] + public DateTime CreateTime { get; set; } + + [DisplayName("修改人")] + public string UpdateUser { get; set; } + + [DisplayName("修改时间")] + public DateTime? UpdateTime { get; set; } + + [DisplayName("状态")] + public int State { get; set; } + + [DisplayName("备注")] + public string Remark { get; set; } + + public int UID { get; set; } + + public Guid GUID { get; set; } = Guid.NewGuid(); + + #endregion + public override object[] GetKeys() + { + throw new NotImplementedException(); + } + } +} diff --git a/src/API.Domain/BudgetDataSources/TO_GGC01_BUDGET.cs b/src/API.Domain/BudgetDataSources/TO_GGC01_BUDGET.cs new file mode 100644 index 0000000..c89ecc2 --- /dev/null +++ b/src/API.Domain/BudgetDataSources/TO_GGC01_BUDGET.cs @@ -0,0 +1,141 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.BudgetDataSources +{ + [DisplayName("GGC01更新改造投资项目输出表 ")] + public class TO_GGC01_BUDGET : Entity + { + public TO_GGC01_BUDGET() + { + + } + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + + [DisplayName("填报公司代码")] + public string FillInCompanyCode { get; set; } + + + + [DisplayName("投资属性")] + public string InveAttributes { get; set; } + + /// + /// 资产代码 + /// + [DisplayName("资产代码")] + public string AssetsCode { get; set; } + + /// + /// 资产名称 + /// + [DisplayName("资产名称")] + + public string AssetsName { get; set; } + + + /// + /// 项目类别 + /// + [DisplayName("项目类型")] + + public string ProjectType { get; set; } + + + /// + /// 费用支出类别 + /// + [DisplayName("费用支出类别")] + + public string ExpenseType { get; set; } + + /// + /// 资产类型 + /// + [DisplayName("资产类别")] + + public string AssetsType { get; set; } + + /// + /// 数量 + /// + [DisplayName("数量")] + public decimal Qty { get; set; } + + /// + /// 投资必要性 + /// + [DisplayName("投资必要性")] + + public string Must { get; set; } + + /// + /// 智能化改造 + /// + [DisplayName("智能化改造")] + + public string FlagAI { get; set; } + + /// + /// 转固金额 + /// + [DisplayName("转固金额")] + public decimal FixedQty { get; set; } + + /// + /// 转固时间 + /// + [DisplayName("转固日期")] + + public string FixedDate { get; set; } + + #region IDataString + + [DisplayName("关联数据")] + public string DataString { get; set; } + + #endregion + + #region 公共字段 + + [DisplayName("创建人")] + + public string CreateUser { get; set; } + + [DisplayName("创建时间")] + public DateTime CreateTime { get; set; } + + [DisplayName("修改人")] + + public string UpdateUser { get; set; } + + [DisplayName("修改时间")] + public DateTime? UpdateTime { get; set; } + + [DisplayName("状态")] + public int State { get; set; } + + [DisplayName("备注")] + + public string Remark { get; set; } + public int UID { get; set; } + + + public Guid GUID { get; set; } + + #endregion + + [DisplayName("行号")] + public string RowNum { get; set; } + public override object[] GetKeys() + { + throw new NotImplementedException(); + } + } +} diff --git a/src/API.Domain/BudgetDataSources/TO_HRC01_BUDGET.cs b/src/API.Domain/BudgetDataSources/TO_HRC01_BUDGET.cs new file mode 100644 index 0000000..95a16ff --- /dev/null +++ b/src/API.Domain/BudgetDataSources/TO_HRC01_BUDGET.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.BudgetDataSources +{ + [DisplayName("HRC01人事费用率KPI及工资总额预算输出表")] + public class TO_HRC01_BUDGET : Entity + { + public TO_HRC01_BUDGET() + { + + } + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + + [DisplayName("行号")] + public string RowNum { get; set; } + + [DisplayName("项目")] + + public string Project { get; set; } + + [DisplayName("计量单位")] + + public string TrainPeopleQty { get; set; } + + #region IDataString + + [DisplayName("关联数据")] + public string DataString { get; set; } + + #endregion + + #region 公共字段 + + [DisplayName("创建人")] + public string CreateUser { get; set; } + + [DisplayName("创建时间")] + public DateTime CreateTime { get; set; } + + [DisplayName("修改人")] + + public string UpdateUser { get; set; } + + [DisplayName("修改时间")] + public DateTime? UpdateTime { get; set; } + + [DisplayName("状态")] + public int State { get; set; } + + [DisplayName("备注")] + + public string Remark { get; set; } + + public int UID { get; set; } + + public Guid GUID { get; set; } + #endregion + public override object[] GetKeys() + { + throw new NotImplementedException(); + } + } +} diff --git a/src/API.Domain/BudgetDataSources/TO_JGC01_BUDGET.cs b/src/API.Domain/BudgetDataSources/TO_JGC01_BUDGET.cs new file mode 100644 index 0000000..14bccce --- /dev/null +++ b/src/API.Domain/BudgetDataSources/TO_JGC01_BUDGET.cs @@ -0,0 +1,103 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.BudgetDataSources +{ + [DisplayName("TO_JGC01技术改造投资项目输出表")] + public class TO_JGC01_BUDGET : Entity + { + public TO_JGC01_BUDGET() + { + + } + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + + [DisplayName("填报公司代码")] + public string FillInCompanyCode { get; set; } + + [DisplayName("项目编号")] + public string ProjectCode { get; set; } + + [DisplayName("项目名称")] + public string ProjectName { get; set; } + + [DisplayName("其他分类")] + public string OtherType { get; set; } + + [DisplayName("投资构成")] + public string InvComposition { get; set; } + + [DisplayName("费用支出类别")] + public string ExpenseType { get; set; } + + [DisplayName("资产类别")] + public string AssetsType { get; set; } + + [DisplayName("资产名称")] + public string AssetsName { get; set; } + + [DisplayName("资产代码")] + public string AssetsCode { get; set; } + + [DisplayName("投资总体概算")] + public decimal InvQtyTotal { get; set; } + + [DisplayName("投资完成金额")] + public decimal InvQtyOver { get; set; } + + [DisplayName("已付款金额")] + public decimal InvQtyOut { get; set; } + + [DisplayName("转固金额")] + public decimal FixedQty { get; set; } + + [DisplayName("转固日期")] + public string FixedDate { get; set; } + + #region IDataString + + [DisplayName("关联数据")] + public string DataString { get; set; } + + #endregion + + #region 公共字段 + + [DisplayName("创建人")] + public string CreateUser { get; set; } + + [DisplayName("创建时间")] + public DateTime CreateTime { get; set; } + + [DisplayName("修改人")] + public string UpdateUser { get; set; } + + [DisplayName("修改时间")] + public DateTime? UpdateTime { get; set; } + + [DisplayName("状态")] + public int State { get; set; } + + [DisplayName("备注")] + public string Remark { get; set; } + + public int UID { get; set; } + + public Guid GUID { get; set; } + + #endregion + + [DisplayName("行号")] + public string RowNum { get; set; } + public override object[] GetKeys() + { + throw new NotImplementedException(); + } + } +} diff --git a/src/API.Domain/BudgetDataSources/TS_XSA04_BUDGET.cs b/src/API.Domain/BudgetDataSources/TS_XSA04_BUDGET.cs new file mode 100644 index 0000000..be012e9 --- /dev/null +++ b/src/API.Domain/BudgetDataSources/TS_XSA04_BUDGET.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.BudgetDataSources +{ + [DisplayName("XSA04整车销量设置表")] + public class TS_XSA04_BUDGET : Entity + { + public TS_XSA04_BUDGET() + { + + } + [DisplayName("客户代码")] + public string CustomerCode { get; set; } + + [DisplayName("客户名称")] + public string CustomerName { get; set; } + + [DisplayName("车型代码")] + public string VehicleTypeCode { get; set; } + + [DisplayName("车型名称")] + public string VehicleTypeName { get; set; } + + [DisplayName("生产地点")] + public string ProducLocation { get; set; } + + [DisplayName("整车销量")] + public decimal TotalSales { get; set; } + + [DisplayName("关联数据")] + public string DataString { get; set; } + + #region 公共字段 + + [DisplayName("创建人")] + public string CreateUser { get; set; } + + [DisplayName("创建时间")] + public DateTime CreateTime { get; set; } + + + [DisplayName("修改人")] + public string UpdateUser { get; set; } + + [DisplayName("修改时间")] + public DateTime? UpdateTime { get; set; } + + [DisplayName("状态")] + public int State { get; set; } + + [DisplayName("备注")] + public string Remark { get; set; } + + public int UID { get; set; } + + + public Guid GUID { get; set; } + + #endregion + + [DisplayName("行号")] + public string RowNum { get; set; } + public override object[] GetKeys() + { + throw new NotImplementedException(); + } + } +} diff --git a/src/API.Domain/BudgetDbProperties.cs b/src/API.Domain/BudgetDbProperties.cs new file mode 100644 index 0000000..5c8efc8 --- /dev/null +++ b/src/API.Domain/BudgetDbProperties.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Data; + +namespace API +{ + + public static class BudgetDbProperties + { + public static string DbTablePrefix { get; internal set; } = "budget"; + + public static string DbSchema { get; internal set; } = AbpCommonDbProperties.DbSchema; + + public const string ConnectionStringName = "Budget"; + } +} diff --git a/src/API.Domain/Data/APIDbMigrationService.cs b/src/API.Domain/Data/APIDbMigrationService.cs new file mode 100644 index 0000000..4f6f885 --- /dev/null +++ b/src/API.Domain/Data/APIDbMigrationService.cs @@ -0,0 +1,220 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices; +using System.Threading.Tasks; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; +using Volo.Abp.Data; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Identity; +using Volo.Abp.MultiTenancy; +using Volo.Abp.TenantManagement; + +namespace API.Data +{ + public class APIDbMigrationService : ITransientDependency + { + public ILogger Logger { get; set; } + + private readonly IDataSeeder _dataSeeder; + private readonly IEnumerable _dbSchemaMigrators; + private readonly ITenantRepository _tenantRepository; + private readonly ICurrentTenant _currentTenant; + + public APIDbMigrationService( + IDataSeeder dataSeeder, + IEnumerable dbSchemaMigrators, + ITenantRepository tenantRepository, + ICurrentTenant currentTenant) + { + _dataSeeder = dataSeeder; + _dbSchemaMigrators = dbSchemaMigrators; + _tenantRepository = tenantRepository; + _currentTenant = currentTenant; + + Logger = NullLogger.Instance; + } + + public async Task MigrateAsync() + { + var initialMigrationAdded = AddInitialMigrationIfNotExist(); + + if (initialMigrationAdded) + { + return; + } + + Logger.LogInformation("Started database migrations..."); + + await MigrateDatabaseSchemaAsync(); + await SeedDataAsync(); + + Logger.LogInformation($"Successfully completed host database migrations."); + + var tenants = await _tenantRepository.GetListAsync(includeDetails: true); + + var migratedDatabaseSchemas = new HashSet(); + foreach (var tenant in tenants) + { + using (_currentTenant.Change(tenant.Id)) + { + if (tenant.ConnectionStrings.Any()) + { + var tenantConnectionStrings = tenant.ConnectionStrings + .Select(x => x.Value) + .ToList(); + + if (!migratedDatabaseSchemas.IsSupersetOf(tenantConnectionStrings)) + { + await MigrateDatabaseSchemaAsync(tenant); + + migratedDatabaseSchemas.AddIfNotContains(tenantConnectionStrings); + } + } + + await SeedDataAsync(tenant); + } + + Logger.LogInformation($"Successfully completed {tenant.Name} tenant database migrations."); + } + + Logger.LogInformation("Successfully completed all database migrations."); + Logger.LogInformation("You can safely end this process..."); + } + + private async Task MigrateDatabaseSchemaAsync(Tenant tenant = null) + { + Logger.LogInformation( + $"Migrating schema for {(tenant == null ? "host" : tenant.Name + " tenant")} database..."); + + foreach (var migrator in _dbSchemaMigrators) + { + await migrator.MigrateAsync(); + } + } + + private async Task SeedDataAsync(Tenant tenant = null) + { + Logger.LogInformation($"Executing {(tenant == null ? "host" : tenant.Name + " tenant")} database seed..."); + + await _dataSeeder.SeedAsync(new DataSeedContext(tenant?.Id) + .WithProperty(IdentityDataSeedContributor.AdminEmailPropertyName, IdentityDataSeedContributor.AdminEmailDefaultValue) + .WithProperty(IdentityDataSeedContributor.AdminPasswordPropertyName, IdentityDataSeedContributor.AdminPasswordDefaultValue) + ); + } + + private bool AddInitialMigrationIfNotExist() + { + try + { + if (!DbMigrationsProjectExists()) + { + return false; + } + } + catch (Exception) + { + return false; + } + + try + { + if (!MigrationsFolderExists()) + { + AddInitialMigration(); + return true; + } + else + { + return false; + } + } + catch (Exception e) + { + Logger.LogWarning("Couldn't determinate if any migrations exist : " + e.Message); + return false; + } + } + + private bool DbMigrationsProjectExists() + { + var dbMigrationsProjectFolder = GetEntityFrameworkCoreProjectFolderPath(); + + return dbMigrationsProjectFolder != null; + } + + private bool MigrationsFolderExists() + { + var dbMigrationsProjectFolder = GetEntityFrameworkCoreProjectFolderPath(); + + return Directory.Exists(Path.Combine(dbMigrationsProjectFolder, "Migrations")); + } + + private void AddInitialMigration() + { + Logger.LogInformation("Creating initial migration..."); + + string argumentPrefix; + string fileName; + + if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX) || RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) + { + argumentPrefix = "-c"; + fileName = "/bin/bash"; + } + else + { + argumentPrefix = "/C"; + fileName = "cmd.exe"; + } + + var procStartInfo = new ProcessStartInfo(fileName, + $"{argumentPrefix} \"abp create-migration-and-run-migrator \"{GetEntityFrameworkCoreProjectFolderPath()}\"\"" + ); + + try + { + Process.Start(procStartInfo); + } + catch (Exception) + { + throw new Exception("Couldn't run ABP CLI..."); + } + } + + private string GetEntityFrameworkCoreProjectFolderPath() + { + var slnDirectoryPath = GetSolutionDirectoryPath(); + + if (slnDirectoryPath == null) + { + throw new Exception("Solution folder not found!"); + } + + var srcDirectoryPath = Path.Combine(slnDirectoryPath, "src"); + + return Directory.GetDirectories(srcDirectoryPath) + .FirstOrDefault(d => d.EndsWith(".EntityFrameworkCore")); + } + + private string GetSolutionDirectoryPath() + { + var currentDirectory = new DirectoryInfo(Directory.GetCurrentDirectory()); + + while (Directory.GetParent(currentDirectory.FullName) != null) + { + currentDirectory = Directory.GetParent(currentDirectory.FullName); + + if (Directory.GetFiles(currentDirectory.FullName).FirstOrDefault(f => f.EndsWith(".sln")) != null) + { + return currentDirectory.FullName; + } + } + + return null; + } + } +} diff --git a/src/API.Domain/Data/IAPIDbSchemaMigrator.cs b/src/API.Domain/Data/IAPIDbSchemaMigrator.cs new file mode 100644 index 0000000..12060e7 --- /dev/null +++ b/src/API.Domain/Data/IAPIDbSchemaMigrator.cs @@ -0,0 +1,9 @@ +using System.Threading.Tasks; + +namespace API.Data +{ + public interface IAPIDbSchemaMigrator + { + Task MigrateAsync(); + } +} diff --git a/src/API.Domain/Data/NullAPIDbSchemaMigrator.cs b/src/API.Domain/Data/NullAPIDbSchemaMigrator.cs new file mode 100644 index 0000000..d0eb8eb --- /dev/null +++ b/src/API.Domain/Data/NullAPIDbSchemaMigrator.cs @@ -0,0 +1,16 @@ +using System.Threading.Tasks; +using Volo.Abp.DependencyInjection; + +namespace API.Data +{ + /* This is used if database provider does't define + * IAPIDbSchemaMigrator implementation. + */ + public class NullAPIDbSchemaMigrator : IAPIDbSchemaMigrator, ITransientDependency + { + public Task MigrateAsync() + { + return Task.CompletedTask; + } + } +} \ No newline at end of file diff --git a/src/API.Domain/DataSources/JQ_COMPARE.cs b/src/API.Domain/DataSources/JQ_COMPARE.cs new file mode 100644 index 0000000..a276a6f --- /dev/null +++ b/src/API.Domain/DataSources/JQ_COMPARE.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities.Auditing; + +namespace API.DataSources +{ + [DisplayName("久其-对照表")] + public class JQ_COMPARE : AuditedAggregateRoot + { + public JQ_COMPARE() + { + + } + + public JQ_COMPARE(Guid id, string newItem, string newNum, string oldItem, string oldNum, string rowNum, string type) : base(id) + { + NewItem = newItem; + NewNum = newNum; + OldItem = oldItem; + OldNum = oldNum; + RowNum = rowNum; + Type = type; + } + + [DisplayName("新久其项目")] + public string NewItem { get; set; } + [DisplayName("新久其行次")] + public string NewNum { get; set; } + [DisplayName("旧久其项目")] + public string OldItem { get; set; } + [DisplayName("旧久其行次")] + public string OldNum { get; set; } + [DisplayName("系统久其行次")] + public string RowNum { get; set; } + [DisplayName("对照表类型")] + public string Type { get; set; } + + } +} diff --git a/src/API.Domain/DataSources/ODS_JQ_LRB.cs b/src/API.Domain/DataSources/ODS_JQ_LRB.cs new file mode 100644 index 0000000..33a1024 --- /dev/null +++ b/src/API.Domain/DataSources/ODS_JQ_LRB.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities.Auditing; + +namespace API.DataSources +{ + [DisplayName("久其-利润表")] + public class ODS_JQ_LRB : AuditedAggregateRoot + { + public ODS_JQ_LRB() + { + + } + + public ODS_JQ_LRB(Guid id , string cOMPANYCode, string iTEM, string rOW_NUM, decimal nUM_MONTH, decimal aDD_UP_NUM_YEAR, DateTime cREATE_TIME, string dATA_TIME, decimal lAST_YEAR_SAME_PERIOD, string sHEET_NAME, string tABLENUM, int year, int month):base(id) + { + CompanyCode = cOMPANYCode; + ITEM = iTEM; + RowNum = rOW_NUM; + NUM_MONTH = nUM_MONTH; + ADD_UP_NUM_YEAR = aDD_UP_NUM_YEAR; + CREATE_TIME = cREATE_TIME; + DATA_TIME = dATA_TIME; + LAST_YEAR_SAME_PERIOD = lAST_YEAR_SAME_PERIOD; + SHEET_NAME = sHEET_NAME; + TABLENUM = tABLENUM; + Year = year; + Month = month; + } + public void SetCompanyCode(string companycode) + { + CompanyCode = companycode; + } + public void SetId(Guid id) + { + Id = id; + } + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + [DisplayName("项目")] + public string ITEM { get; set; } + [DisplayName("行次")] + public string RowNum { get; set; } + [DisplayName("本月数")] + [Column(TypeName = "decimal(18,6)")] + public decimal NUM_MONTH { get; set; } + [DisplayName("本年累计数")] + [Column(TypeName = "decimal(18,6)")] + public decimal ADD_UP_NUM_YEAR { get; set; } + [DisplayName("创建时间")] + public DateTime CREATE_TIME { get; set; } + [DisplayName("时间")] + public string DATA_TIME { get; set; } + [DisplayName("上年同期累计数")] + [Column(TypeName = "decimal(18,6)")] + public decimal LAST_YEAR_SAME_PERIOD { get; set; } + [DisplayName("表名")] + public string SHEET_NAME { get; set; } + [DisplayName("报表编号")] + public string TABLENUM { get; set; } + [DisplayName("年")] + public int Year { get; set; } + [DisplayName("月")] + public int Month { get; set; } + } +} diff --git a/src/API.Domain/DataSources/ODS_JQ_LRBManager.cs b/src/API.Domain/DataSources/ODS_JQ_LRBManager.cs new file mode 100644 index 0000000..a8d040a --- /dev/null +++ b/src/API.Domain/DataSources/ODS_JQ_LRBManager.cs @@ -0,0 +1,129 @@ +using API.BudgetDataSources; +using API.JQDataSources; +using API.ManageBase; +using EFCore.BulkExtensions; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Services; +using Volo.Abp.ObjectMapping; +using Volo.Abp.Uow; + +namespace API.DataSources +{ + + + public class ODS_JQ_LRBManager : DomainService + { + private readonly IRepository _repository; + private readonly IRepository _jqrepository; + private readonly IRepository _budgetRepository; + private readonly IRepository _lrbCompareRepository; + private readonly IRepository _companyrepository; + private readonly IObjectMapper _objectMapper; + + public ODS_JQ_LRBManager( IRepository repository, IRepository jqrepository, IRepository budgetRepository, IRepository lrbCompareRepository, IObjectMapper objectMapper, IRepository companyrepository) + { + _repository = repository; + _jqrepository = jqrepository; + _budgetRepository = budgetRepository; + _lrbCompareRepository = lrbCompareRepository; + _objectMapper = objectMapper; + _companyrepository = companyrepository; + } + [UnitOfWork] + public async virtual Task InsterLRB(int year, int month) + { + Logger.LogInformation($"LRB开始同步【{year}年{month}月】数据!"); + + var Comapnys = await _companyrepository.GetListAsync(r => !string.IsNullOrEmpty(r.BudgetCompanyCode)); + var dicComapny = Comapnys.ToDictionary(r => r.CompanyCode); + try + { + //获取对照表行号 + var lrbcomp = await _lrbCompareRepository.GetListAsync(r => r.Type == "JQ_COMPARE_LRB" && !string.IsNullOrEmpty(r.NewNum)); + var numDic = lrbcomp.ToDictionary(r => r.NewNum); + + var datetimestr = year.ToString() + "-" + (month > 9 ? month.ToString() : "0" + month.ToString()); + var lrbitems = await _jqrepository.GetListAsync(r => r.DATA_TIME == datetimestr); + List entitys = new List(); + List budget_entitys = new List(); + foreach (var item in lrbitems) + { + string rownum = item.ROW_NUM; + if (!string.IsNullOrEmpty(item.ROW_NUM)) + { + rownum = numDic.ContainsKey(rownum) ? numDic[rownum].RowNum : rownum; + } + + decimal nUM_MONTH = 0; + decimal.TryParse(item.NUM_MONTH, out nUM_MONTH); + decimal aDD_UP_NUM_YEAR = 0; + decimal.TryParse(item.ADD_UP_NUM_YEAR, out aDD_UP_NUM_YEAR); + decimal lAST_YEAR_SAME_PERIOD = 0; + decimal.TryParse(item.LAST_YEAR_SAME_PERIOD, out lAST_YEAR_SAME_PERIOD); + + ODS_JQ_LRB entity = new ODS_JQ_LRB( + GuidGenerator.Create(), + item.COMPANY, + item.ITEM, + rownum, + nUM_MONTH, + aDD_UP_NUM_YEAR, + item.CREATE_TIME, + item.DATA_TIME, + lAST_YEAR_SAME_PERIOD, + item.SHEET_NAME, + item.TABLENUM, + year, + month); + entitys.Add(entity); + + var budget_entity = _objectMapper.Map(entity); + budget_entity.CompanyCode = dicComapny.ContainsKey(budget_entity.CompanyCode) ? dicComapny[budget_entity.CompanyCode].BudgetCompanyCode : budget_entity.CompanyCode; + budget_entitys.Add(budget_entity); + } + var db = await _repository.GetDbContextAsync(); + await db.BulkInsertAsync(entitys); + var db_budget = await _budgetRepository.GetDbContextAsync(); + await db_budget.BulkInsertAsync(budget_entitys); + //await _repository.DeleteAsync(r => r.Year == year && r.Month == month); + //await _repository.InsertManyAsync(entitys); + Logger.LogInformation($"LRB完成【{year}年{month}月】数据同步!"); + return true; + + } + catch (Exception ex) + { + Logger.LogError($"LRB同步【{year}年{month}月】数据失败!" + ex.Message+ ex?.InnerException?.Message); + return false; + + } + } + + [UnitOfWork] + public async virtual Task DeletecLRB(int year, int month) + { + Logger.LogInformation($"LRB开始删除【{year}年{month}月】数据!"); + try + { + // await _repository.DeleteAsync(r => r.Year == year && r.Month == month); + + int aa = await _repository.Where(r => r.Year == year && r.Month == month).BatchDeleteAsync(); + int bb = await _budgetRepository.Where(r => r.Year == year && r.Month == month).BatchDeleteAsync(); + Logger.LogInformation($"LRB完成删除【{year}年{month}月】数据!"); + return true; + } + catch (Exception ex) + { + Logger.LogError($"LRB删除【{year}年{month}月】数据失败!" + ex.Message + ex.InnerException.Message); + return false; + } + + } + } +} diff --git a/src/API.Domain/DataSources/ODS_JQ_LRMXB.cs b/src/API.Domain/DataSources/ODS_JQ_LRMXB.cs new file mode 100644 index 0000000..0afa5f8 --- /dev/null +++ b/src/API.Domain/DataSources/ODS_JQ_LRMXB.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities.Auditing; + +namespace API.DataSources +{ + public class ODS_JQ_LRMXB : AuditedAggregateRoot + { + public ODS_JQ_LRMXB() + { + + } + + public ODS_JQ_LRMXB(Guid id,string companyCode, string iTEM, string rowNum, decimal sALE_MONTH, decimal sALE_YEAR, decimal iN_MONTH, decimal iN_YEAT, decimal cOST_MONTH, decimal cOST_YEAR, decimal tAX_YEAR, decimal tAX_MONTH, decimal pROFIT_MONTH, decimal pROFIT_YEAR, DateTime cREATE_TIME, string sHEET_NAME, string dATA_TIME, int year, int month):base(id) + { + CompanyCode = companyCode; + ITEM = iTEM; + RowNum = rowNum; + SALE_MONTH = sALE_MONTH; + SALE_YEAR = sALE_YEAR; + IN_MONTH = iN_MONTH; + IN_YEAT = iN_YEAT; + COST_MONTH = cOST_MONTH; + COST_YEAR = cOST_YEAR; + TAX_YEAR = tAX_YEAR; + TAX_MONTH = tAX_MONTH; + PROFIT_MONTH = pROFIT_MONTH; + PROFIT_YEAR = pROFIT_YEAR; + CREATE_TIME = cREATE_TIME; + SHEET_NAME = sHEET_NAME; + DATA_TIME = dATA_TIME; + Year = year; + Month = month; + } + + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + [DisplayName("项目")] + public string ITEM { get; set; } + [DisplayName("行次")] + public string RowNum { get; set; } + [DisplayName("销售数量本月数")] + public decimal SALE_MONTH { get; set; } + [DisplayName("销售数量本年累计数")] + public decimal SALE_YEAR { get; set; } + [DisplayName("业务收入本月数")] + public decimal IN_MONTH { get; set; } + [DisplayName("业务收入本年累计数")] + public decimal IN_YEAT { get; set; } + [DisplayName("业务成本本月数")] + public decimal COST_MONTH { get; set; } + [DisplayName("业务成本本年累计数")] + public decimal COST_YEAR { get; set; } + [DisplayName("税金及附加本月数")] + public decimal TAX_YEAR { get; set; } + [DisplayName("税金及附加本年累计数")] + public decimal TAX_MONTH { get; set; } + [DisplayName("业务利润本月数")] + public decimal PROFIT_MONTH { get; set; } + [DisplayName("业务利润本年累计数")] + public decimal PROFIT_YEAR { get; set; } + [DisplayName("创建时间")] + public DateTime CREATE_TIME { get; set; } + [DisplayName("表单名称")] + public string SHEET_NAME { get; set; } + [DisplayName("数据时间")] + public string DATA_TIME { get; set; } + + [DisplayName("年")] + public int Year { get; set; } + [DisplayName("月")] + public int Month { get; set; } + } +} diff --git a/src/API.Domain/DataSources/ODS_JQ_LRMXBManager.cs b/src/API.Domain/DataSources/ODS_JQ_LRMXBManager.cs new file mode 100644 index 0000000..d65a159 --- /dev/null +++ b/src/API.Domain/DataSources/ODS_JQ_LRMXBManager.cs @@ -0,0 +1,136 @@ +using API.BudgetDataSources; +using API.JQDataSources; +using EFCore.BulkExtensions; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Services; +using Volo.Abp.Uow; + +namespace API.DataSources +{ + + public class ODS_JQ_LRMXBManager : DomainService + { + private readonly IRepository _repository; + private readonly IRepository _jqrepository; + private readonly IRepository _lrbCompareRepository; + public ODS_JQ_LRMXBManager(IRepository repository, IRepository jqrepository, IRepository lrbCompareRepository) + { + _repository = repository; + _jqrepository = jqrepository; + _lrbCompareRepository = lrbCompareRepository; + } + [UnitOfWork] + public async virtual Task InsterLRMXB(int year, int month) + { + Logger.LogInformation($"LRMXB开始同步【{year}年{month}月】数据!"); + try + { + //获取对照表行号 + var lrbcomp = await _lrbCompareRepository.GetListAsync(r => r.Type == "JQ_COMPARE_LRMX" && !string.IsNullOrEmpty(r.NewNum)); + var numDic = lrbcomp.ToDictionary(r => r.NewNum); + + var datetimestr = year.ToString()+"-" + (month > 9 ? month.ToString():"0"+ month.ToString()); + var lrbitems = await _jqrepository.GetListAsync(r=>r.DATA_TIME== datetimestr); + List entitys = new List(); + foreach (var item in lrbitems) + { + string rownum = item.ROW_NUM; + if (!string.IsNullOrEmpty(item.ROW_NUM)) + { + rownum = numDic.ContainsKey(rownum) ? numDic[rownum].RowNum : rownum; + } + + decimal sALE_MONTH = 0; + decimal.TryParse(item.SALE_MONTH, out sALE_MONTH); + decimal sALE_YEAR = 0; + decimal.TryParse(item.SALE_YEAR, out sALE_YEAR); + + decimal iN_MONTH = 0; + decimal.TryParse(item.IN_MONTH, out iN_MONTH); + decimal iN_YEAT = 0; + decimal.TryParse(item.IN_YEAR, out iN_YEAT); + + + decimal cOST_MONTH = 0; + decimal.TryParse(item.COST_MONTH, out cOST_MONTH); + decimal cOST_YEAR = 0; + decimal.TryParse(item.COST_YEAR, out cOST_YEAR); + + decimal tAX_YEAR = 0; + decimal.TryParse(item.TAX_YEAR, out tAX_YEAR); + decimal tAX_MONTH = 0; + decimal.TryParse(item.TAX_MONTH, out tAX_MONTH); + + + decimal pROFIT_MONTH = 0; + decimal.TryParse(item.PROFIT_MONTH, out pROFIT_MONTH); + decimal pROFIT_YEAR = 0; + decimal.TryParse(item.PROFIT_YEAR, out pROFIT_YEAR); + + + ODS_JQ_LRMXB entity = new ODS_JQ_LRMXB( + GuidGenerator.Create(), + item.COMPANY, + item.ITEM, + rownum, + sALE_MONTH, + sALE_YEAR, + iN_MONTH, + iN_YEAT, + cOST_MONTH, + cOST_YEAR, + tAX_YEAR, + tAX_MONTH, + pROFIT_MONTH, + pROFIT_YEAR, + DateTime.Now, + item.SHEET_NAME, + item.DATA_TIME, + year, + month +); + entitys.Add(entity); + } + var db = await _repository.GetDbContextAsync(); + await db.BulkInsertAsync(entitys); + //await _repository.DeleteAsync(r => r.Year == year && r.Month == month); + //await _repository.InsertManyAsync(entitys); + Logger.LogInformation($"LRMXB完成【{year}年{month}月】数据同步!"); + return true; + + } + catch (Exception ex) + { + Logger.LogError($"LRMXB同步【{year}年{month}月】数据失败!" + ex.Message + ex?.InnerException?.Message); + return false; + + } + } + + [UnitOfWork] + public async virtual Task DeletecLRMXB(int year, int month) + { + Logger.LogInformation($"LRMXB开始删除【{year}年{month}月】数据!"); + try + { + // await _repository.DeleteAsync(r => r.Year == year && r.Month == month); + + int aa = await _repository.Where(r => r.Year == year && r.Month == month).BatchDeleteAsync(); + Logger.LogInformation($"LRMXB完成删除【{year}年{month}月】数据!"); + return true; + } + catch (Exception ex) + { + Logger.LogError($"LRMXB删除【{year}年{month}月】数据失败!" + ex.Message + ex.InnerException.Message); + return false; + } + + } + } +} diff --git a/src/API.Domain/DataSources/ODS_JQ_QJFYB.cs b/src/API.Domain/DataSources/ODS_JQ_QJFYB.cs new file mode 100644 index 0000000..32231d2 --- /dev/null +++ b/src/API.Domain/DataSources/ODS_JQ_QJFYB.cs @@ -0,0 +1,73 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities.Auditing; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations.Schema; + +namespace API.DataSources +{ + [DisplayName("久其-期间费用表")] + public class ODS_JQ_QJFYB : AuditedAggregateRoot + { + public ODS_JQ_QJFYB() + { + + } + + public ODS_JQ_QJFYB(Guid id,string cOMPANYCode, string iTEM, string rOW_NUM, decimal nUM_MONTH, decimal aDD_UP_NUM_YEAR, DateTime cREATE_TIME, string dATA_TIME, decimal lAST_YEAR_ADD_UP, string sHEET_NAME, string tABLENUM, int year, int month) : base(id) + { + CompanyCode = cOMPANYCode; + ITEM = iTEM; + RowNum = rOW_NUM; + NUM_MONTH = nUM_MONTH; + ADD_UP_NUM_YEAR = aDD_UP_NUM_YEAR; + CREATE_TIME = cREATE_TIME; + DATA_TIME = dATA_TIME; + LAST_YEAR_ADD_UP = lAST_YEAR_ADD_UP; + SHEET_NAME = sHEET_NAME; + TABLENUM = tABLENUM; + Year = year; + Month = month; + } + public void SetId(Guid id) + { + Id = id; + } + public void SetCompanyCode(string companycode) + { + CompanyCode = companycode; + } + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + + [DisplayName("项目")] + public string ITEM { get; set; } + [DisplayName("行次")] + public string RowNum { get; set; } + [DisplayName("本月数")] + [Column(TypeName = "decimal(18,6)")] + public decimal NUM_MONTH { get; set; } + [DisplayName("本年累计数")] + [Column(TypeName = "decimal(18,6)")] + public decimal ADD_UP_NUM_YEAR { get; set; } + [DisplayName("创建时间")] + public DateTime CREATE_TIME { get; set; } + [DisplayName("时间")] + public string DATA_TIME { get; set; } + [DisplayName("上年同期累计数")] + [Column(TypeName = "decimal(18,6)")] + public decimal LAST_YEAR_ADD_UP { get; set; } + [DisplayName("表名")] + public string SHEET_NAME { get; set; } + [DisplayName("报表编号")] + public string TABLENUM { get; set; } + [DisplayName("年")] + public int Year { get; set; } + [DisplayName("月")] + public int Month { get; set; } + + } +} diff --git a/src/API.Domain/DataSources/ODS_JQ_QJFYBManager.cs b/src/API.Domain/DataSources/ODS_JQ_QJFYBManager.cs new file mode 100644 index 0000000..c604e61 --- /dev/null +++ b/src/API.Domain/DataSources/ODS_JQ_QJFYBManager.cs @@ -0,0 +1,120 @@ +using API.BudgetDataSources; +using API.JQDataSources; +using API.ManageBase; +using EFCore.BulkExtensions; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Services; +using Volo.Abp.ObjectMapping; +using Volo.Abp.Uow; + +namespace API.DataSources +{ + + + public class ODS_JQ_QJFYBManager : DomainService + { + private readonly IRepository _repository; + private readonly IRepository _jqrepository; + private readonly IRepository _lrbCompareRepository; + private readonly IRepository _budgetRepository; + private readonly IRepository _companyrepository; + private readonly IObjectMapper _objectMapper; + public ODS_JQ_QJFYBManager(IRepository repository, IRepository budgetRepository, IRepository jqrepository, IRepository lrbCompareRepository, IObjectMapper objectMapper, IRepository companyrepository) + { + _repository = repository; + _jqrepository = jqrepository; + _budgetRepository = budgetRepository; + _lrbCompareRepository = lrbCompareRepository; + _objectMapper = objectMapper; + _companyrepository = companyrepository; + } + [UnitOfWork] + public async virtual Task InsterQJFYB(int year, int month) + { + Logger.LogInformation($"QJFYB开始同步【{year}年{month}月】数据!"); + + var Comapnys = await _companyrepository.GetListAsync(r => !string.IsNullOrEmpty(r.BudgetCompanyCode)); + var dicComapny = Comapnys.ToDictionary(r => r.CompanyCode); + try + { + //获取对照表行号 + var lrbcomp = await _lrbCompareRepository.GetListAsync(r => r.Type == "JQ_COMPARE_QJFYB" && !string.IsNullOrEmpty(r.NewNum)); + var numDic = lrbcomp.ToDictionary(r => r.NewNum); + + var datetimestr = year.ToString() + "-" + (month > 9 ? month.ToString() : "0" + month.ToString()); + var lrbitems = await _jqrepository.GetListAsync(r => r.DATA_TIME == datetimestr); + List entitys = new List(); + List budget_entitys = new List(); + foreach (var item in lrbitems) + { + string rownum = item.ROW_NUM; + if (!string.IsNullOrEmpty(item.ROW_NUM)) + { + rownum = numDic.ContainsKey(rownum) ? numDic[rownum].RowNum : rownum; + } + + ODS_JQ_QJFYB entity = new ODS_JQ_QJFYB( + GuidGenerator.Create(), + item.COMPANY, + item.ITEM, + rownum, + decimal.TryParse(item.NUM_MONTH, out decimal num_month)? num_month : 0, + decimal.TryParse(item.ADD_UP_NUM_YEAR, out decimal add_up_num_year)? add_up_num_year:0, + item.CREATE_TIME, + item.DATA_TIME, + decimal.TryParse(item.LAST_YEAR_ADD_UP, out decimal last_year_add_up)? last_year_add_up:0, + item.SHEET_NAME, + item.TABLENUM, + year, + month); + entitys.Add(entity); + //预算表 + var budget_entity = _objectMapper.Map(entity); + budget_entity.CompanyCode = dicComapny.ContainsKey(budget_entity.CompanyCode) ? dicComapny[budget_entity.CompanyCode].BudgetCompanyCode : budget_entity.CompanyCode; + budget_entitys.Add(budget_entity); + } + var db = await _repository.GetDbContextAsync(); + await db.BulkInsertAsync(entitys); + var db_budget = await _budgetRepository.GetDbContextAsync(); + await db_budget.BulkInsertAsync(budget_entitys); + //await _repository.DeleteAsync(r => r.Year == year && r.Month == month); + //await _repository.InsertManyAsync(entitys); + Logger.LogInformation($"QJFYB完成【{year}年{month}月】数据同步!"); + return true; + + } + catch (Exception ex) + { + Logger.LogError($"QJFYB同步【{year}年{month}月】数据失败!" + ex.Message + ex?.InnerException?.Message); + return false; + + } + } + [UnitOfWork] + public async virtual Task DeletecQJFYB(int year, int month) + { + Logger.LogInformation($"QJFYB开始删除【{year}年{month}月】数据!"); + try + { + // await _repository.DeleteAsync(r => r.Year == year && r.Month == month); + + int aa = await _repository.Where(r => r.Year == year && r.Month == month).BatchDeleteAsync(); + int bb = await _budgetRepository.Where(r => r.Year == year && r.Month == month).BatchDeleteAsync(); + Logger.LogInformation($"QJFYB完成删除【{year}年{month}月】数据!"); + return true; + } + catch (Exception ex) + { + Logger.LogError($"QJFYB删除【{year}年{month}月】数据失败!" + ex.Message + ex.InnerException.Message); + return false; + } + + } + } +} diff --git a/src/API.Domain/DataSources/ODS_JQ_SCCBB.cs b/src/API.Domain/DataSources/ODS_JQ_SCCBB.cs new file mode 100644 index 0000000..87d6ee7 --- /dev/null +++ b/src/API.Domain/DataSources/ODS_JQ_SCCBB.cs @@ -0,0 +1,85 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities.Auditing; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace API.DataSources +{ + [DisplayName("久其-生产成本表")] + public class ODS_JQ_SCCBB : AuditedAggregateRoot + { + public ODS_JQ_SCCBB() + { + + } + + public ODS_JQ_SCCBB(Guid id ,string companyCode, string iTEM, string rowNum, decimal mONTH_BEGINNING, decimal tR_MONTH, decimal wG_MONTH, decimal wG_ADD_UP, decimal mONTH_CLOSING, decimal tR_ADD_UP, DateTime cREATE_TIME, string dATA_TIME, int year, int month, string sHEET_NAME, string tABLENUM):base(id) + { + CompanyCode = companyCode; + ITEM = iTEM; + RowNum = rowNum; + MONTH_BEGINNING = mONTH_BEGINNING; + TR_MONTH = tR_MONTH; + WG_MONTH = wG_MONTH; + WG_ADD_UP = wG_ADD_UP; + MONTH_CLOSING = mONTH_CLOSING; + TR_ADD_UP = tR_ADD_UP; + CREATE_TIME = cREATE_TIME; + DATA_TIME = dATA_TIME; + Year = year; + Month = month; + SHEET_NAME = sHEET_NAME; + TABLENUM = tABLENUM; + } + + public void SetCompanyCode(string companycode) + { + CompanyCode = companycode; + } + public void SetId(Guid id) + { + Id = id; + } + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + [DisplayName("项目")] + public string ITEM { get; set; } + [DisplayName("行次")] + public string RowNum { get; set; } + [DisplayName("月初余额")] + [Column(TypeName = "decimal(18,6)")] + public decimal MONTH_BEGINNING { get; set; } + [DisplayName("投入本月")] + [Column(TypeName = "decimal(18,6)")] + public decimal TR_MONTH { get; set; } + [DisplayName("完工本月")] + [Column(TypeName = "decimal(18,6)")] + public decimal WG_MONTH { get; set; } + [DisplayName("完工累计")] + [Column(TypeName = "decimal(18,6)")] + public decimal WG_ADD_UP { get; set; } + [DisplayName("月末余额")] + [Column(TypeName = "decimal(18,6)")] + public decimal MONTH_CLOSING { get; set; } + [DisplayName("投入累计")] + [Column(TypeName = "decimal(18,6)")] + public decimal TR_ADD_UP { get; set; } + [DisplayName("创建时间")] + public DateTime CREATE_TIME { get; set; } + [DisplayName("时间")] + public string DATA_TIME { get; set; } + [DisplayName("年")] + public int Year { get; set; } + [DisplayName("月")] + public int Month { get; set; } + [DisplayName("表名")] + public string SHEET_NAME { get; set; } + [DisplayName("报表编号")] + public string TABLENUM { get; set; } + } +} diff --git a/src/API.Domain/DataSources/ODS_JQ_SCCBBManager.cs b/src/API.Domain/DataSources/ODS_JQ_SCCBBManager.cs new file mode 100644 index 0000000..e80bfb3 --- /dev/null +++ b/src/API.Domain/DataSources/ODS_JQ_SCCBBManager.cs @@ -0,0 +1,123 @@ +using API.JQDataSources; +using EFCore.BulkExtensions; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Services; +using Volo.Abp.Uow; +using Volo.Abp.ObjectMapping; +using API.BudgetDataSources; +using API.ManageBase; + +namespace API.DataSources +{ + + public class ODS_JQ_SCCBBManager : DomainService + { + private readonly IRepository _repository; + private readonly IRepository _jqrepository; + private readonly IRepository _budgetRepository; + private readonly IRepository _lrbCompareRepository; + private readonly IRepository _companyrepository; + private readonly IObjectMapper _objectMapper; + public ODS_JQ_SCCBBManager(IRepository repository, IRepository jqrepository, IRepository budgetRepository, IRepository lrbCompareRepository, IObjectMapper objectMapper, IRepository companyrepository) + { + _repository = repository; + _jqrepository = jqrepository; + _budgetRepository = budgetRepository; + _lrbCompareRepository = lrbCompareRepository; + _objectMapper = objectMapper; + _companyrepository = companyrepository; + } + [UnitOfWork] + public async virtual Task InsterSCCBB(int year, int month) + { + Logger.LogInformation($"SCCBB开始同步【{year}年{month}月】数据!"); + + var Comapnys = await _companyrepository.GetListAsync(r => !string.IsNullOrEmpty(r.BudgetCompanyCode)); + var dicComapny = Comapnys.ToDictionary(r => r.CompanyCode); + try + { + //获取对照表行号 + var lrbcomp = await _lrbCompareRepository.GetListAsync(r => r.Type == "JQ_COMPARE_SCCBB" && !string.IsNullOrEmpty(r.NewNum)); + var numDic = lrbcomp.ToDictionary(r => r.NewNum); + + var datetimestr = year.ToString() + "-" + (month > 9 ? month.ToString() : "0" + month.ToString()); + var lrbitems = await _jqrepository.GetListAsync(r => r.DATA_TIME == datetimestr); + List entitys = new List(); + List budget_entitys = new List(); + foreach (var item in lrbitems) + { + string rownum = item.ROW_NUM; + if (!string.IsNullOrEmpty(item.ROW_NUM)) + { + rownum = numDic.ContainsKey(rownum) ? numDic[rownum].RowNum : rownum; + } + + ODS_JQ_SCCBB entity = new ODS_JQ_SCCBB( + GuidGenerator.Create(), + item.COMPANY, + item.ITEM, + rownum, + decimal.TryParse(item.MONTH_BEGINNING, out decimal month_beginning)? month_beginning:0, + decimal.TryParse(item.TR_MONTH, out decimal tr_month)? tr_month:0, + decimal.TryParse(item.WG_MONTH, out decimal wg_month) ? wg_month:0, + decimal.TryParse(item.WG_ADD_UP, out decimal wg_add_up) ? wg_add_up : 0, + decimal.TryParse(item.MONTH_CLOSING, out decimal month_closing)? month_closing:0, + decimal.TryParse(item.TR_ADD_UP, out decimal tr_add_up) ? tr_add_up:0, + item.CREATE_TIME, + item.DATA_TIME, + year, + month , + item.SHEET_NAME, + item.TABLENUM + ); + entitys.Add(entity); + //预算表 + var budget_entity = _objectMapper.Map(entity); + budget_entity.CompanyCode = dicComapny.ContainsKey(budget_entity.CompanyCode) ? dicComapny[budget_entity.CompanyCode].BudgetCompanyCode : budget_entity.CompanyCode; + budget_entitys.Add(budget_entity); + } + var db = await _repository.GetDbContextAsync(); + await db.BulkInsertAsync(entitys); + var db_budget = await _budgetRepository.GetDbContextAsync(); + await db_budget.BulkInsertAsync(budget_entitys); + //await _repository.DeleteAsync(r => r.Year == year && r.Month == month); + //await _repository.InsertManyAsync(entitys); + Logger.LogInformation($"SCCBB完成【{year}年{month}月】数据同步!"); + return true; + } + catch (Exception ex) + { + Logger.LogError($"SCCBB同步【{year}年{month}月】数据失败!" + ex.Message + ex?.InnerException?.Message); + return false; + + } + } + + [UnitOfWork] + public async virtual Task DeletecSCCBB(int year, int month) + { + Logger.LogInformation($"SCCBB开始删除【{year}年{month}月】数据!"); + try + { + // await _repository.DeleteAsync(r => r.Year == year && r.Month == month); + + int aa = await _repository.Where(r => r.Year == year && r.Month == month).BatchDeleteAsync(); + int bb = await _budgetRepository.Where(r => r.Year == year && r.Month == month).BatchDeleteAsync(); + Logger.LogInformation($"SCCBB完成删除【{year}年{month}月】数据!"); + return true; + } + catch (Exception ex) + { + Logger.LogError($"SCCBB删除【{year}年{month}月】数据失败!" + ex.Message + ex.InnerException.Message); + return false; + } + + } + } +} diff --git a/src/API.Domain/DataSources/ODS_JQ_XJLLB_INNER_YEAR.cs b/src/API.Domain/DataSources/ODS_JQ_XJLLB_INNER_YEAR.cs new file mode 100644 index 0000000..2c53923 --- /dev/null +++ b/src/API.Domain/DataSources/ODS_JQ_XJLLB_INNER_YEAR.cs @@ -0,0 +1,88 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities.Auditing; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations.Schema; + +namespace API.DataSources +{ + [DisplayName("久其-现金流量表(内部)")] + public class ODS_JQ_XJLLB_INNER_YEAR : AuditedAggregateRoot + { + public ODS_JQ_XJLLB_INNER_YEAR() + { + + } + + public ODS_JQ_XJLLB_INNER_YEAR(Guid id ,string companyCode, string iTEM, string rowNum, decimal aLL_TOTAL, decimal hBZJ_TOTAL, decimal hBZJ_JTWB, decimal hBZJ_JTNB, decimal ySPJ_TOTAL, decimal ySPJ_JTWB, decimal ySPJ_JTNB, DateTime cREATE_TIME, string dATA_TIME, int year, int month, string sHEET_NAME, string tABLENUM):base(id) + { + CompanyCode = companyCode; + ITEM = iTEM; + RowNum = rowNum; + ALL_TOTAL = aLL_TOTAL; + HBZJ_TOTAL = hBZJ_TOTAL; + HBZJ_JTWB = hBZJ_JTWB; + HBZJ_JTNB = hBZJ_JTNB; + YSPJ_TOTAL = ySPJ_TOTAL; + YSPJ_JTWB = ySPJ_JTWB; + YSPJ_JTNB = ySPJ_JTNB; + CREATE_TIME = cREATE_TIME; + DATA_TIME = dATA_TIME; + Year = year; + Month = month; + SHEET_NAME = sHEET_NAME; + TABLENUM = tABLENUM; + } + + public void SetCompanyCode(string companycode) + { + CompanyCode = companycode; + } + public void SetId(Guid id) + { + Id = id; + } + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + [DisplayName("项目")] + public string ITEM { get; set; } + [DisplayName("行次")] + public string RowNum { get; set; } + [DisplayName("总计")] + [Column(TypeName = "decimal(18,6)")] + public decimal ALL_TOTAL { get; set; } + [DisplayName("货币资金合计")] + [Column(TypeName = "decimal(18,6)")] + public decimal HBZJ_TOTAL { get; set; } + [DisplayName("货币资金集团外部")] + [Column(TypeName = "decimal(18,6)")] + public decimal HBZJ_JTWB { get; set; } + [DisplayName("货币资金集团内部")] + [Column(TypeName = "decimal(18,6)")] + public decimal HBZJ_JTNB { get; set; } + [DisplayName("应收票据合计")] + [Column(TypeName = "decimal(18,6)")] + public decimal YSPJ_TOTAL { get; set; } + [DisplayName("应收票据集团外部")] + [Column(TypeName = "decimal(18,6)")] + public decimal YSPJ_JTWB { get; set; } + [DisplayName("应收票据集团内部")] + [Column(TypeName = "decimal(18,6)")] + public decimal YSPJ_JTNB { get; set; } + [DisplayName("创建时间")] + public DateTime CREATE_TIME { get; set; } + [DisplayName("时间")] + public string DATA_TIME { get; set; } + [DisplayName("年")] + public int Year { get; set; } + [DisplayName("月")] + public int Month { get; set; } + [DisplayName("表名")] + public string SHEET_NAME { get; set; } + [DisplayName("报表编号")] + public string TABLENUM { get; set; } + } +} diff --git a/src/API.Domain/DataSources/ODS_JQ_XJLLB_INNER_YEARManager.cs b/src/API.Domain/DataSources/ODS_JQ_XJLLB_INNER_YEARManager.cs new file mode 100644 index 0000000..9fe65b7 --- /dev/null +++ b/src/API.Domain/DataSources/ODS_JQ_XJLLB_INNER_YEARManager.cs @@ -0,0 +1,125 @@ +using API.BudgetDataSources; +using API.JQDataSources; +using API.ManageBase; +using EFCore.BulkExtensions; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Services; +using Volo.Abp.ObjectMapping; +using Volo.Abp.Uow; + +namespace API.DataSources +{ + public class ODS_JQ_XJLLB_INNER_YEARManager : DomainService + { + private readonly IRepository _repository; + private readonly IRepository _jqrepository; + private readonly IRepository _lrbCompareRepository; + private readonly IRepository _budgetRepository; + private readonly IRepository _companyrepository; + private readonly IObjectMapper _objectMapper; + public ODS_JQ_XJLLB_INNER_YEARManager(IRepository repository, IRepository budgetRepository, IRepository jqrepository, IRepository lrbCompareRepository, IObjectMapper objectMapper, IRepository companyrepository) + { + _repository = repository; + _jqrepository = jqrepository; + _budgetRepository = budgetRepository; + _lrbCompareRepository = lrbCompareRepository; + _objectMapper = objectMapper; + _companyrepository = companyrepository; + } + [UnitOfWork] + public async virtual Task InsterXJLLBINNER(int year, int month) + { + Logger.LogInformation($"XJLLBINNER开始同步【{year}年{month}月】数据!"); + + var Comapnys = await _companyrepository.GetListAsync(r => !string.IsNullOrEmpty(r.BudgetCompanyCode)); + var dicComapny = Comapnys.ToDictionary(r => r.CompanyCode); + + try + { + //获取对照表行号 + var lrbcomp = await _lrbCompareRepository.GetListAsync(r => r.Type == "JQ_COMPARE_XJLLB" && !string.IsNullOrEmpty(r.NewNum)); + var numDic = lrbcomp.ToDictionary(r => r.NewNum); + + var datetimestr = year.ToString() + "-" + (month > 9 ? month.ToString() : "0" + month.ToString()); + var lrbitems = await _jqrepository.GetListAsync(r => r.DATA_TIME == datetimestr); + List entitys = new List(); + List budget_entitys = new List();; + foreach (var item in lrbitems) + { + string rownum = item.ROW_NUM; + if (!string.IsNullOrEmpty(item.ROW_NUM)) + { + rownum = numDic.ContainsKey(rownum) ? numDic[rownum].RowNum : rownum; + } + + ODS_JQ_XJLLB_INNER_YEAR entity = new ODS_JQ_XJLLB_INNER_YEAR( + GuidGenerator.Create(), + item.COMPANY, + item.ITEM, + rownum, + decimal.TryParse(item.ALL_TOTAL, out decimal all_total) ? all_total : 0, + decimal.TryParse(item.HBZJ_TOTAL, out decimal hbzj_total) ? hbzj_total : 0, + decimal.TryParse(item.HBZJ_JTWB, out decimal hbzj_jtwb) ? hbzj_jtwb : 0, + decimal.TryParse(item.HBZJ_JTNB, out decimal hbzj_jtnb) ? hbzj_jtnb : 0, + decimal.TryParse(item.YSPJ_TOTAL, out decimal yspj_total) ? yspj_total : 0, + decimal.TryParse(item.YSPJ_JTWB, out decimal yspj_jtwb) ? yspj_jtwb : 0, + decimal.TryParse(item.YSPJ_JTNB, out decimal yspj_jtnb) ? yspj_jtnb : 0, + item.CREATE_TIME, + item.DATA_TIME, + year, + month, + item.SHEET_NAME, + item.TABLENUM + ); + entitys.Add(entity); + //预算表 + var budget_entity = _objectMapper.Map(entity); + budget_entity.GUID = entity.Id; + budget_entity.CompanyCode = dicComapny.ContainsKey(budget_entity.CompanyCode) ? dicComapny[budget_entity.CompanyCode].BudgetCompanyCode : budget_entity.CompanyCode; + budget_entitys.Add(budget_entity); + } + var db = await _repository.GetDbContextAsync(); + await db.BulkInsertAsync(entitys); + var db_budget = await _budgetRepository.GetDbContextAsync(); + await db_budget.BulkInsertAsync(budget_entitys); + //await _repository.DeleteAsync(r => r.Year == year && r.Month == month); + //await _repository.InsertManyAsync(entitys); + Logger.LogInformation($"XJLLBINNER完成【{year}年{month}月】数据同步!"); + return true; + + } + catch (Exception ex) + { + Logger.LogError($"XJLLBINNER同步【{year}年{month}月】数据失败!" +ex.Message + ex?.InnerException?.Message); + return false; + + } + } + [UnitOfWork] + public async virtual Task DeletecXJLLBINNER(int year, int month) + { + Logger.LogInformation($"XJLLBINNER开始删除【{year}年{month}月】数据!"); + try + { + // await _repository.DeleteAsync(r => r.Year == year && r.Month == month); + + int aa = await _repository.Where(r => r.Year == year && r.Month == month).BatchDeleteAsync(); + int bb = await _budgetRepository.Where(r => r.Year == year && r.Month == month).BatchDeleteAsync(); + Logger.LogInformation($"XJLLBINNER完成删除【{year}年{month}月】数据!"); + return true; + } + catch (Exception ex) + { + Logger.LogError($"XJLLBINNER删除【{year}年{month}月】数据失败!" + ex.Message + ex.InnerException.Message); + return false; + } + + } + } +} diff --git a/src/API.Domain/DataSources/ODS_JQ_ZCFZB.cs b/src/API.Domain/DataSources/ODS_JQ_ZCFZB.cs new file mode 100644 index 0000000..9bdfd4b --- /dev/null +++ b/src/API.Domain/DataSources/ODS_JQ_ZCFZB.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities.Auditing; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations.Schema; + +namespace API.DataSources +{ + [DisplayName("久其-资产负债表")] + public class ODS_JQ_ZCFZB : AuditedAggregateRoot + { + public ODS_JQ_ZCFZB() + { + + } + + public ODS_JQ_ZCFZB(Guid id ,string cOMPANYCODE, string iTEM, string rOW_NUM, decimal cLOSING_BALANCE, decimal bEGINNING_BALANCE, DateTime cREATE_TIME, string dATA_TIME, string iTEM_TYP, string sHEET_NAME, string tABLENUM, int year, int month):base(id) + { + CompanyCode = cOMPANYCODE; + ITEM = iTEM; + RowNum = rOW_NUM; + CLOSING_BALANCE = cLOSING_BALANCE; + BEGINNING_BALANCE = bEGINNING_BALANCE; + CREATE_TIME = cREATE_TIME; + DATA_TIME = dATA_TIME; + ITEM_TYP = iTEM_TYP; + SHEET_NAME = sHEET_NAME; + TABLENUM = tABLENUM; + Year = year; + Month = month; + } + + public void SetCompanyCode(string companycode) + { + CompanyCode = companycode; + } + public void SetId(Guid id) + { + Id = id; + } + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + [DisplayName("项目")] + public string ITEM { get; set; } + [DisplayName("行次")] + public string RowNum { get; set; } + [DisplayName("期末余额")] + [Column(TypeName = "decimal(18,6)")] + public decimal CLOSING_BALANCE { get; set; } + [DisplayName("年初余额")] + [Column(TypeName = "decimal(18,6)")] + public decimal BEGINNING_BALANCE { get; set; } + [DisplayName("创建时间")] + public DateTime CREATE_TIME { get; set; } + [DisplayName("时间")] + public string DATA_TIME { get; set; } + + [DisplayName("资产类别")] + public string ITEM_TYP { get; set; } + [DisplayName("表单名称")] + public string SHEET_NAME { get; set; } + [DisplayName("报表编号")] + public string TABLENUM { get; set; } + [DisplayName("年")] + public int Year { get; set; } + [DisplayName("月")] + public int Month { get; set; } + } +} diff --git a/src/API.Domain/DataSources/ODS_JQ_ZCFZBManager.cs b/src/API.Domain/DataSources/ODS_JQ_ZCFZBManager.cs new file mode 100644 index 0000000..09f103e --- /dev/null +++ b/src/API.Domain/DataSources/ODS_JQ_ZCFZBManager.cs @@ -0,0 +1,123 @@ +using API.BudgetDataSources; +using API.JQDataSources; +using API.ManageBase; +using EFCore.BulkExtensions; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Services; +using Volo.Abp.ObjectMapping; +using Volo.Abp.Uow; + +namespace API.DataSources +{ + public class ODS_JQ_ZCFZBManager : DomainService + { + private readonly IRepository _repository; + private readonly IRepository _jqrepository; + private readonly IRepository _lrbCompareRepository; + private readonly IRepository _budgetRepository; + private readonly IRepository _companyrepository; + private readonly IObjectMapper _objectMapper; + public ODS_JQ_ZCFZBManager(IRepository repository, IRepository jqrepository, IRepository budgetRepository, IRepository lrbCompareRepository, IObjectMapper objectMapper, IRepository companyrepository) + { + _repository = repository; + _jqrepository = jqrepository; + _budgetRepository = budgetRepository; + _lrbCompareRepository = lrbCompareRepository; + _objectMapper = objectMapper; + _companyrepository = companyrepository; + } + [UnitOfWork] + public async virtual Task InsterZCFZB(int year, int month) + { + Logger.LogInformation($"ZCFZB开始同步【{year}年{month}月】数据!"); + + var Comapnys = await _companyrepository.GetListAsync(r => !string.IsNullOrEmpty(r.BudgetCompanyCode)); + var dicComapny = Comapnys.ToDictionary(r => r.CompanyCode); + try + { + //获取对照表行号 + var lrbcomp = await _lrbCompareRepository.GetListAsync(r => r.Type == "JQ_COMPARE_ZCFZB" && !string.IsNullOrEmpty(r.NewNum)); + var numDic = lrbcomp.ToDictionary(r => r.NewNum); + + var datetimestr = year.ToString() + "-" + (month > 9 ? month.ToString() : "0" + month.ToString()); + var lastYear = (year - 1).ToString() + "-12"; + var lrbitems = await _jqrepository.GetListAsync(r => r.DATA_TIME == datetimestr); + var lastYearLrbitems = await _jqrepository.GetListAsync(r => r.DATA_TIME == lastYear); + List entitys = new List(); + List budget_entitys = new List(); + foreach (var item in lrbitems) + { + string rownum = item.ROW_NUM; + if (!string.IsNullOrEmpty(item.ROW_NUM)) + { + rownum = numDic.ContainsKey(rownum) ? numDic[rownum].RowNum : rownum; + } + var lastbeginning_balance = lastYearLrbitems.FirstOrDefault(r => r.COMPANY == item.COMPANY && r.ROW_NUM == item.ROW_NUM)?.CLOSING_BALANCE;//年初余额取上一年12月的期末数 + ODS_JQ_ZCFZB entity = new ODS_JQ_ZCFZB( + GuidGenerator.Create(), + item.COMPANY, + item.ITEM, + rownum, + decimal.TryParse(item.CLOSING_BALANCE, out decimal closing_balance) ? closing_balance : 0, + decimal.TryParse(lastbeginning_balance, out decimal beginning_balance) ? beginning_balance : 0, + item.CREATE_TIME, + item.DATA_TIME, + item.ITEM_TYPE, + item.SHEET_NAME , + item.TABLENUM , + year, + month + ); + entitys.Add(entity); + //预算表 + var budget_entity = _objectMapper.Map(entity); + budget_entity.CompanyCode = dicComapny.ContainsKey(budget_entity.CompanyCode) ? dicComapny[budget_entity.CompanyCode].BudgetCompanyCode : budget_entity.CompanyCode; + budget_entitys.Add(budget_entity); + } + var db = await _repository.GetDbContextAsync(); + await db.BulkInsertAsync(entitys); + var db_budget = await _budgetRepository.GetDbContextAsync(); + await db_budget.BulkInsertAsync(budget_entitys); + // await _repository.InsertManyAsync(entitys); + + + Logger.LogInformation($"ZCFZB完成【{year}年{month}月】数据同步!"); + return true; + + } + catch (Exception ex) + { + Logger.LogError($"ZCFZB同步【{year}年{month}月】数据失败!" + ex.Message + ex?.InnerException?.Message); + return false; + + } + } + [UnitOfWork] + public async virtual Task DeletecZCFZB(int year, int month) + { + Logger.LogInformation($"ZCFZB开始删除【{year}年{month}月】数据!"); + try + { + // await _repository.DeleteAsync(r => r.Year == year && r.Month == month); + + int aa = await _repository.Where(r => r.Year == year && r.Month == month).BatchDeleteAsync(); + int bb = await _budgetRepository.Where(r => r.Year == year && r.Month == month).BatchDeleteAsync(); + Logger.LogInformation($"ZCFZB完成删除【{year}年{month}月】数据!"); + return true; + } + catch (Exception ex) + { + Logger.LogError($"ZCFZB删除【{year}年{month}月】数据失败!" + ex.Message + ex.InnerException.Message); + return false; + } + + + } + } +} diff --git a/src/API.Domain/DataSources/ODS_JQ_ZGXCB.cs b/src/API.Domain/DataSources/ODS_JQ_ZGXCB.cs new file mode 100644 index 0000000..de1fc1f --- /dev/null +++ b/src/API.Domain/DataSources/ODS_JQ_ZGXCB.cs @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities.Auditing; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations.Schema; + +namespace API.DataSources +{ + [DisplayName("久其-职工薪酬表")] + public class ODS_JQ_ZGXCB : AuditedAggregateRoot + { + + public ODS_JQ_ZGXCB() + { + + } + + public ODS_JQ_ZGXCB(Guid id , string cOMPANYCode, string iTEM, string rOW_NUM, decimal yEAR_BEGINNING, decimal jTS_MONTH, decimal jTS_YEAR, decimal jTS_LAST_YEAR, decimal zFS_MONTH, decimal zFS_YEAR, decimal zFS_LAST_YEAR, decimal yEAR_CLOSING, DateTime cREATE_TIME, string dATA_TIME, string sHEET_NAME, string tABLENUM, int year, int month):base(id) + { + CompanyCode = cOMPANYCode; + ITEM = iTEM; + RowNum = rOW_NUM; + YEAR_BEGINNING = yEAR_BEGINNING; + JTS_MONTH = jTS_MONTH; + JTS_YEAR = jTS_YEAR; + JTS_LAST_YEAR = jTS_LAST_YEAR; + ZFS_MONTH = zFS_MONTH; + ZFS_YEAR = zFS_YEAR; + ZFS_LAST_YEAR = zFS_LAST_YEAR; + YEAR_CLOSING = yEAR_CLOSING; + CREATE_TIME = cREATE_TIME; + DATA_TIME = dATA_TIME; + SHEET_NAME = sHEET_NAME; + TABLENUM = tABLENUM; + Year = year; + Month = month; + } + public void SetCompanyCode(string companycode) + { + CompanyCode = companycode; + } + public void SetId(Guid id) + { + Id = id; + } + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + [DisplayName("项目")] + public string ITEM { get; set; } + [DisplayName("行次")] + public string RowNum { get; set; } + [DisplayName("年初账面余额")] + [Column(TypeName = "decimal(18,6)")] + public decimal YEAR_BEGINNING { get; set; } + [DisplayName("计提数本月数")] + [Column(TypeName = "decimal(18,6)")] + public decimal JTS_MONTH { get; set; } + [DisplayName("计提数本年累计数")] + [Column(TypeName = "decimal(18,6)")] + public decimal JTS_YEAR { get; set; } + [DisplayName("计提数上年同期累计数")] + [Column(TypeName = "decimal(18,6)")] + public decimal JTS_LAST_YEAR { get; set; } + [DisplayName("支付数本月数")] + [Column(TypeName = "decimal(18,6)")] + public decimal ZFS_MONTH { get; set; } + [DisplayName("支付数本年累计数")] + [Column(TypeName = "decimal(18,6)")] + public decimal ZFS_YEAR { get; set; } + [DisplayName("支付数上年同期累计数")] + [Column(TypeName = "decimal(18,6)")] + public decimal ZFS_LAST_YEAR { get; set; } + [DisplayName("期末账面余额")] + [Column(TypeName = "decimal(18,6)")] + public decimal YEAR_CLOSING { get; set; } + [DisplayName("创建时间")] + public DateTime CREATE_TIME { get; set; } + [DisplayName("时间")] + public string DATA_TIME { get; set; } + [DisplayName("表名")] + public string SHEET_NAME { get; set; } + [DisplayName("报表编号")] + public string TABLENUM { get; set; } + [DisplayName("年")] + public int Year { get; set; } + [DisplayName("月")] + public int Month { get; set; } + } +} diff --git a/src/API.Domain/DataSources/ODS_JQ_ZGXCBManager.cs b/src/API.Domain/DataSources/ODS_JQ_ZGXCBManager.cs new file mode 100644 index 0000000..d8a1174 --- /dev/null +++ b/src/API.Domain/DataSources/ODS_JQ_ZGXCBManager.cs @@ -0,0 +1,108 @@ +using API.JQDataSources; +using EFCore.BulkExtensions; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Services; +using Volo.Abp.Uow; + +namespace API.DataSources +{ + public class ODS_JQ_ZGXCBManager : DomainService + { + private readonly IRepository _repository; + private readonly IRepository _jqrepository; + private readonly IRepository _lrbCompareRepository; + public ODS_JQ_ZGXCBManager(IRepository repository, IRepository jqrepository, IRepository lrbCompareRepository) + { + _repository = repository; + _jqrepository = jqrepository; + _lrbCompareRepository = lrbCompareRepository; + } + [UnitOfWork] + public async virtual Task InsterZGXCB(int year, int month) + { + Logger.LogInformation($"ZGXCB开始同步【{year}年{month}月】数据!"); + try + { + //获取对照表行号 + var lrbcomp = await _lrbCompareRepository.GetListAsync(r => r.Type == "JQ_COMPARE_ZGXCB" && !string.IsNullOrEmpty(r.NewNum)); + var numDic = lrbcomp.ToDictionary(r => r.NewNum); + + var datetimestr = year.ToString() + "-" + (month > 9 ? month.ToString() : "0" + month.ToString()); + var lrbitems = await _jqrepository.GetListAsync(r => r.DATA_TIME == datetimestr); + List entitys = new List(); + + foreach (var item in lrbitems) + { + string rownum = item.ROW_NUM; + if (!string.IsNullOrEmpty(item.ROW_NUM)) + { + rownum = numDic.ContainsKey(rownum) ? numDic[rownum].RowNum : rownum; + } + + ODS_JQ_ZGXCB entity = new ODS_JQ_ZGXCB( + GuidGenerator.Create(), + item.COMPANY, + + item.ITEM , + rownum, + decimal.TryParse(item.YEAR_BEGINNING,out decimal year_beginning) ? year_beginning:0, + decimal.TryParse(item.JTS_MONTH, out decimal jts_month) ? jts_month : 0, + + decimal.TryParse(item.JTS_YEAR, out decimal jts_year) ? jts_year : 0, + decimal.TryParse(item.JTS_LAST_YEAR, out decimal jts_last_year) ? jts_last_year : 0, + decimal.TryParse(item.ZFS_MONTH, out decimal zfs_month) ? zfs_month : 0, + decimal.TryParse(item.ZFS_YEAR, out decimal zfs_year) ? zfs_year : 0, + decimal.TryParse(item.ZFS_LAST_YEAR, out decimal zfs_last_year) ? zfs_last_year : 0, + decimal.TryParse(item.YEAR_CLOSING, out decimal year_closing) ? year_closing : 0, + item.CREATE_TIME , + item.DATA_TIME , + item.SHEET_NAME, + item.TABLENUM , + year, + month + ); + entitys.Add(entity); + } + var db = await _repository.GetDbContextAsync(); + await db.BulkInsertAsync(entitys); + //await _repository.DeleteAsync(r => r.Year == year && r.Month == month); + //await _repository.InsertManyAsync(entitys); + Logger.LogInformation($"ZGXCB完成【{year}年{month}月】数据同步!"); + return true; + + } + catch (Exception ex) + { + Logger.LogError($"ZGXCB同步【{year}年{month}月】数据失败!" + ex.Message + ex?.InnerException?.Message); + return false; + + } + } + + [UnitOfWork] + public async virtual Task DeletecZGXCB(int year, int month) + { + Logger.LogInformation($"ZGXCB开始删除【{year}年{month}月】数据!"); + try + { + // await _repository.DeleteAsync(r => r.Year == year && r.Month == month); + + int aa = await _repository.Where(r => r.Year == year && r.Month == month).BatchDeleteAsync(); + Logger.LogInformation($"ZGXCB完成删除【{year}年{month}月】数据!"); + return true; + } + catch (Exception ex) + { + Logger.LogError($"ZGXCB删除【{year}年{month}月】数据失败!" + ex.Message + ex.InnerException.Message); + return false; + } + + } + } +} diff --git a/src/API.Domain/DataSources/ODS_JQ_ZQMXB_YSZK.cs b/src/API.Domain/DataSources/ODS_JQ_ZQMXB_YSZK.cs new file mode 100644 index 0000000..bc05e83 --- /dev/null +++ b/src/API.Domain/DataSources/ODS_JQ_ZQMXB_YSZK.cs @@ -0,0 +1,111 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities.Auditing; + +namespace API.DataSources +{ + [DisplayName("久其-债权明细表(应收账款)")] + public class ODS_JQ_ZQMXB_YSZK : AuditedAggregateRoot + { + public ODS_JQ_ZQMXB_YSZK() + { + + } + + public ODS_JQ_ZQMXB_YSZK(Guid id ,string companyCode, string iTEM, string rowNum, decimal bEGINNING_BALANCE, decimal cLOSING_BALANCE, int year, int month, decimal zL_M_0_6, decimal zL_M_7_12, decimal zL_Y_1_2, decimal zL_Y_2_3, decimal zL_Y_3_4, decimal zL_Y_4_5, decimal zL_Y_5, decimal hZZB, decimal ySKXJE, string yNNSFHZQHH, string bNNSFNQBHS, DateTime cREATE_TIME, string dATA_TIME, string sHEET_NAME, string tABLENUM):base(id) + { + CompanyCode = companyCode; + ITEM = iTEM; + RowNum = rowNum; + BEGINNING_BALANCE = bEGINNING_BALANCE; + CLOSING_BALANCE = cLOSING_BALANCE; + Year = year; + Month = month; + ZL_M_0_6 = zL_M_0_6; + ZL_M_7_12 = zL_M_7_12; + ZL_Y_1_2 = zL_Y_1_2; + ZL_Y_2_3 = zL_Y_2_3; + ZL_Y_3_4 = zL_Y_3_4; + ZL_Y_4_5 = zL_Y_4_5; + ZL_Y_5 = zL_Y_5; + HZZB = hZZB; + YSKXJE = ySKXJE; + YNNSFHZQHH = yNNSFHZQHH; + BNNSFNQBHS = bNNSFNQBHS; + CREATE_TIME = cREATE_TIME; + DATA_TIME = dATA_TIME; + SHEET_NAME = sHEET_NAME; + TABLENUM = tABLENUM; + } + + public void SetCompanyCode(string companycode) + { + CompanyCode = companycode; + } + public void SetId(Guid id) + { + Id = id; + } + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + [DisplayName("项目")] + public string ITEM { get; set; } + [DisplayName("行次")] + public string RowNum { get; set; } + [DisplayName("年初余额")] + [Column(TypeName = "decimal(18,6)")] + public decimal BEGINNING_BALANCE { get; set; } + [DisplayName("年末余额")] + [Column(TypeName = "decimal(18,6)")] + public decimal CLOSING_BALANCE { get; set; } + [DisplayName("年")] + public int Year { get; set; } + [DisplayName("月")] + public int Month { get; set; } + [DisplayName("账龄0-6")] + [Column(TypeName = "decimal(18,6)")] + public decimal ZL_M_0_6 { get; set; } + [DisplayName("账龄7-12个月")] + [Column(TypeName = "decimal(18,6)")] + public decimal ZL_M_7_12 { get; set; } + [DisplayName("账龄1-2年")] + [Column(TypeName = "decimal(18,6)")] + public decimal ZL_Y_1_2 { get; set; } + [DisplayName("账龄2-3年")] + [Column(TypeName = "decimal(18,6)")] + public decimal ZL_Y_2_3 { get; set; } + [DisplayName("账龄3-4年")] + [Column(TypeName = "decimal(18,6)")] + public decimal ZL_Y_3_4 { get; set; } + + [DisplayName("账龄4-5年")] + [Column(TypeName = "decimal(18,6)")] + public decimal ZL_Y_4_5 { get; set; } + [DisplayName("账龄5年以上")] + [Column(TypeName = "decimal(18,6)")] + public decimal ZL_Y_5 { get; set; } + [DisplayName("坏账准备")] + [Column(TypeName = "decimal(18,6)")] + public decimal HZZB { get; set; } + [DisplayName("应收款项净额")] + [Column(TypeName = "decimal(18,6)")] + public decimal YSKXJE { get; set; } + [DisplayName("一年内是否函证且回函")] + public string YNNSFHZQHH { get; set; } + [DisplayName("本年内是否能全部收回(逾期欠款填列)")] + public string BNNSFNQBHS { get; set; } + [DisplayName("创建时间")] + public DateTime CREATE_TIME { get; set; } + [DisplayName("时间")] + public string DATA_TIME { get; set; } + [DisplayName("表名")] + public string SHEET_NAME { get; set; } + [DisplayName("报表编号")] + public string TABLENUM { get; set; } + } +} diff --git a/src/API.Domain/DataSources/ODS_JQ_ZQMXB_YSZKManager.cs b/src/API.Domain/DataSources/ODS_JQ_ZQMXB_YSZKManager.cs new file mode 100644 index 0000000..c2b58fe --- /dev/null +++ b/src/API.Domain/DataSources/ODS_JQ_ZQMXB_YSZKManager.cs @@ -0,0 +1,101 @@ +using API.JQDataSources; +using EFCore.BulkExtensions; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Services; +using Volo.Abp.Uow; + +namespace API.DataSources +{ + public class ODS_JQ_ZQMXB_YSZKManager : DomainService + { + private readonly IRepository _repository; + private readonly IRepository _jqrepository; + + public ODS_JQ_ZQMXB_YSZKManager(IRepository repository, IRepository jqrepository) + { + _repository = repository; + _jqrepository = jqrepository; + } + [UnitOfWork] + public async virtual Task InsterZQMXBYSZK(int year, int month) + { + Logger.LogInformation($"ZQMXBYSZK开始同步【{year}年{month}月】数据!"); + try + { + var datetimestr = year.ToString() + "-" + (month > 9 ? month.ToString() : "0" + month.ToString()); + var lrbitems = await _jqrepository.GetListAsync(r => r.DATA_TIME == datetimestr); + List entitys = new List(); + foreach (var item in lrbitems) + { + ODS_JQ_ZQMXB_YSZK entity = new ODS_JQ_ZQMXB_YSZK( + GuidGenerator.Create(), + item.COMPANY, + item.ITEM, + "", + decimal.TryParse(item.BEGINNING_BALANCE, out decimal beginning_balance) ? beginning_balance : 0, + decimal.TryParse(item.CLOSING_BALANCE, out decimal closing_balance) ? closing_balance : 0, + year, + month, + decimal.TryParse(item.ZL_M_0_6, out decimal zl_m_0_6) ? zl_m_0_6 : 0, + decimal.TryParse(item.ZL_M_7_12, out decimal zl_m_7_12) ? zl_m_7_12 : 0, + decimal.TryParse(item.ZL_M_7_12, out decimal zl_y_1_2) ? zl_y_1_2 : 0, + decimal.TryParse(item.ZL_Y_2_3, out decimal zl_y_2_3) ? zl_y_2_3 : 0, + decimal.TryParse(item.ZL_Y_3_4, out decimal zl_y_3_4) ? zl_y_3_4 : 0, + decimal.TryParse(item.ZL_Y_4_5, out decimal zl_y_4_5) ? zl_y_4_5 : 0, + decimal.TryParse(item.ZL_Y_5, out decimal zl_y_5) ? zl_y_5 : 0, + decimal.TryParse(item.HZZB, out decimal hzzb) ? hzzb : 0, + decimal.TryParse(item.YSKXJE, out decimal yskxje) ? yskxje : 0, + item.YNNSFHZQHH, + item.BNNSFNQBHS, + item.CREATE_TIME, + item.DATA_TIME, + item.SHEET_NAME, + item.TABLENUM + ); + entitys.Add(entity); + } + var db = await _repository.GetDbContextAsync(); + await db.BulkInsertAsync(entitys); + //await _repository.DeleteAsync(r => r.Year == year && r.Month == month); + //await _repository.InsertManyAsync(entitys); + Logger.LogInformation($"ZQMXBYSZK完成【{year}年{month}月】数据同步!"); + return true; + + } + catch (Exception ex) + { + Logger.LogError($"ZQMXBYSZK同步【{year}年{month}月】数据失败!" + ex.Message + ex?.InnerException?.Message); + return false; + + } + } + + [UnitOfWork] + public async virtual Task DeletecZQMXBYSZK(int year, int month) + { + Logger.LogInformation($"ZQMXBYSZK开始删除【{year}年{month}月】数据!"); + try + { + // await _repository.DeleteAsync(r => r.Year == year && r.Month == month); + + int aa = await _repository.Where(r => r.Year == year && r.Month == month).BatchDeleteAsync(); + Logger.LogInformation($"ZQMXBYSZK完成删除【{year}年{month}月】数据!"); + return true; + } + catch (Exception ex) + { + Logger.LogError($"ZQMXBYSZK删除【{year}年{month}月】数据失败!" + ex.Message + ex.InnerException.Message); + return false; + } + + + } + + } +} diff --git a/src/API.Domain/DataSources/ODS_JQ_ZWMXB_YFZK.cs b/src/API.Domain/DataSources/ODS_JQ_ZWMXB_YFZK.cs new file mode 100644 index 0000000..32c5b5f --- /dev/null +++ b/src/API.Domain/DataSources/ODS_JQ_ZWMXB_YFZK.cs @@ -0,0 +1,100 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities.Auditing; + +namespace API.DataSources +{ + [DisplayName("久其-债务明细表(应付账款)")] + public class ODS_JQ_ZWMXB_YFZK : AuditedAggregateRoot + { + public ODS_JQ_ZWMXB_YFZK() + { + + } + + public ODS_JQ_ZWMXB_YFZK(Guid id ,string companyCode, string iTEM, string rowNum, decimal bEGINNING_BALANCE, decimal cLOSING_BALANCE, int year, int month, decimal zL_M_0_6, decimal zL_M_7_12, decimal zL_Y_1_2, decimal zL_Y_2_3, decimal zL_Y_3_4, decimal zL_Y_4_5, decimal zL_Y_5, string yQZWZMJE, DateTime cREATE_TIME, string dATA_TIME, string sHEET_NAME, string tABLENUM):base(id) + { + CompanyCode = companyCode; + ITEM = iTEM; + RowNum = rowNum; + BEGINNING_BALANCE = bEGINNING_BALANCE; + CLOSING_BALANCE = cLOSING_BALANCE; + Year = year; + Month = month; + ZL_M_0_6 = zL_M_0_6; + ZL_M_7_12 = zL_M_7_12; + ZL_Y_1_2 = zL_Y_1_2; + ZL_Y_2_3 = zL_Y_2_3; + ZL_Y_3_4 = zL_Y_3_4; + ZL_Y_4_5 = zL_Y_4_5; + ZL_Y_5 = zL_Y_5; + YQZWZMJE = yQZWZMJE; + CREATE_TIME = cREATE_TIME; + DATA_TIME = dATA_TIME; + SHEET_NAME = sHEET_NAME; + TABLENUM = tABLENUM; + } + + public void SetCompanyCode(string companycode) + { + CompanyCode = companycode; + } + public void SetId(Guid id) + { + Id = id; + } + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + [DisplayName("项目")] + public string ITEM { get; set; } + [DisplayName("行次")] + public string RowNum { get; set; } + [DisplayName("年初余额")] + [Column(TypeName = "decimal(18,6)")] + public decimal BEGINNING_BALANCE { get; set; } + [DisplayName("年末余额")] + [Column(TypeName = "decimal(18,6)")] + public decimal CLOSING_BALANCE { get; set; } + [DisplayName("年")] + public int Year { get; set; } + [DisplayName("月")] + public int Month { get; set; } + [DisplayName("账龄0-6")] + [Column(TypeName = "decimal(18,6)")] + public decimal ZL_M_0_6 { get; set; } + [DisplayName("账龄7-12个月")] + [Column(TypeName = "decimal(18,6)")] + public decimal ZL_M_7_12 { get; set; } + [DisplayName("账龄1-2年")] + [Column(TypeName = "decimal(18,6)")] + public decimal ZL_Y_1_2 { get; set; } + [DisplayName("账龄2-3年")] + [Column(TypeName = "decimal(18,6)")] + public decimal ZL_Y_2_3 { get; set; } + [DisplayName("账龄3-4年")] + [Column(TypeName = "decimal(18,6)")] + public decimal ZL_Y_3_4 { get; set; } + + [DisplayName("账龄4-5年")] + [Column(TypeName = "decimal(18,6)")] + public decimal ZL_Y_4_5 { get; set; } + [DisplayName("账龄5年以上")] + [Column(TypeName = "decimal(18,6)")] + public decimal ZL_Y_5 { get; set; } + [DisplayName("逾期债务账面金额")] + public string YQZWZMJE { get; set; } + [DisplayName("创建时间")] + public DateTime CREATE_TIME { get; set; } + [DisplayName("时间")] + public string DATA_TIME { get; set; } + [DisplayName("表名")] + public string SHEET_NAME { get; set; } + [DisplayName("报表编号")] + public string TABLENUM { get; set; } + } +} diff --git a/src/API.Domain/DataSources/ODS_JQ_ZWMXB_YFZKManager.cs b/src/API.Domain/DataSources/ODS_JQ_ZWMXB_YFZKManager.cs new file mode 100644 index 0000000..185a547 --- /dev/null +++ b/src/API.Domain/DataSources/ODS_JQ_ZWMXB_YFZKManager.cs @@ -0,0 +1,96 @@ +using API.JQDataSources; +using EFCore.BulkExtensions; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Services; +using Volo.Abp.Uow; + +namespace API.DataSources +{ + public class ODS_JQ_ZWMXB_YFZKManager : DomainService + { + private readonly IRepository _repository; + private readonly IRepository _jqrepository; + + public ODS_JQ_ZWMXB_YFZKManager(IRepository repository, IRepository jqrepository) + { + _repository = repository; + _jqrepository = jqrepository; + } + [UnitOfWork] + public async virtual Task InsterZWMXBYFZK(int year, int month) + { + Logger.LogInformation($"ZWMXBYFZK开始同步【{year}年{month}月】数据!"); + try + { + var datetimestr = year.ToString() + "-" + (month > 9 ? month.ToString() : "0" + month.ToString()); + var lrbitems = await _jqrepository.GetListAsync(r => r.DATA_TIME == datetimestr); + List entitys = new List(); + foreach (var item in lrbitems) + { + ODS_JQ_ZWMXB_YFZK entity = new ODS_JQ_ZWMXB_YFZK( + GuidGenerator.Create(), + item.COMPANY, + item.ITEM, + "", + decimal.TryParse(item.BEGINNING_BALANCE, out decimal beginning_balance) ? beginning_balance : 0, + decimal.TryParse(item.CLOSING_BALANCE, out decimal closing_balance) ? closing_balance : 0, + year, + month, + decimal.TryParse(item.ZL_M_0_6, out decimal zl_m_0_6) ? zl_m_0_6 : 0, + decimal.TryParse(item.ZL_M_7_12, out decimal zl_m_7_12) ? zl_m_7_12 : 0, + decimal.TryParse(item.ZL_Y_1_2, out decimal zl_y_1_2) ? zl_y_1_2 : 0, + decimal.TryParse(item.ZL_Y_2_3, out decimal zl_y_2_3) ? zl_y_2_3 : 0, + decimal.TryParse(item.ZL_Y_3_4, out decimal zl_y_3_4) ? zl_y_3_4 : 0, + decimal.TryParse(item.ZL_Y_4_5, out decimal zl_y_4_5) ? zl_y_4_5 : 0, + decimal.TryParse(item.ZL_Y_5, out decimal zl_y_5) ? zl_y_5 : 0, + item.YQZWZMJE, + item.CREATE_TIME, + item.DATA_TIME, + item.SHEET_NAME, + item.TABLENUM + ); + entitys.Add(entity); + } + var db = await _repository.GetDbContextAsync(); + await db.BulkInsertAsync(entitys); + //await _repository.DeleteAsync(r => r.Year == year && r.Month == month); + //await _repository.InsertManyAsync(entitys); + Logger.LogInformation($"ZWMXBYFZK完成【{year}年{month}月】数据同步!"); + return true; + + } + catch (Exception ex) + { + Logger.LogError($"ZWMXBYFZK同步【{year}年{month}月】数据失败!" + ex.Message + ex?.InnerException?.Message); + return false; + + } + } + + [UnitOfWork] + public async virtual Task DeletecZWMXBYFZK(int year, int month) + { + Logger.LogInformation($"ZWMXBYFZK开始删除【{year}年{month}月】数据!"); + try + { + // await _repository.DeleteAsync(r => r.Year == year && r.Month == month); + + int aa = await _repository.Where(r => r.Year == year && r.Month == month).BatchDeleteAsync(); + Logger.LogInformation($"ZWMXBYFZK完成删除【{year}年{month}月】数据!"); + return true; + } + catch (Exception ex) + { + Logger.LogError($"ZWMXBYFZK删除【{year}年{month}月】数据失败!" + ex.Message + ex.InnerException.Message); + return false; + } + + } + } +} diff --git a/src/API.Domain/DataSources/ODS_JQ_ZZFYB.cs b/src/API.Domain/DataSources/ODS_JQ_ZZFYB.cs new file mode 100644 index 0000000..78bfe5f --- /dev/null +++ b/src/API.Domain/DataSources/ODS_JQ_ZZFYB.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities.Auditing; + +namespace API.DataSources +{ + [DisplayName("久其-制造费用表")] + public class ODS_JQ_ZZFYB : AuditedAggregateRoot + { + public ODS_JQ_ZZFYB() + { + + } + + public ODS_JQ_ZZFYB(Guid id, string cOMPANYCode, string iTEM, string rOW_NUM, decimal nUM_MONTH, decimal aDD_UP_NUM_YEAR, DateTime cREATE_TIME, string dATA_TIME, decimal lAST_YEAR_ADD_UP, string sHEET_NAME, string tABLENUM, int year, int month) : base(id) + { + CompanyCode = cOMPANYCode; + ITEM = iTEM; + RowNum = rOW_NUM; + NUM_MONTH = nUM_MONTH; + ADD_UP_NUM_YEAR = aDD_UP_NUM_YEAR; + CREATE_TIME = cREATE_TIME; + DATA_TIME = dATA_TIME; + LAST_YEAR_ADD_UP = lAST_YEAR_ADD_UP; + SHEET_NAME = sHEET_NAME; + TABLENUM = tABLENUM; + Year = year; + Month = month; + } + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + [DisplayName("项目")] + public string ITEM { get; set; } + [DisplayName("行次")] + public string RowNum { get; set; } + [DisplayName("本月数")] + [Column(TypeName = "decimal(18,6)")] + public decimal NUM_MONTH { get; set; } + [DisplayName("本年累计数")] + [Column(TypeName = "decimal(18,6)")] + public decimal ADD_UP_NUM_YEAR { get; set; } + [DisplayName("创建时间")] + public DateTime CREATE_TIME { get; set; } + [DisplayName("时间")] + public string DATA_TIME { get; set; } + [DisplayName("上年累计数")] + [Column(TypeName = "decimal(18,6)")] + public decimal LAST_YEAR_ADD_UP { get; set; } + [DisplayName("表名")] + public string SHEET_NAME { get; set; } + [DisplayName("报表编号")] + public string TABLENUM { get; set; } + [DisplayName("年")] + public int Year { get; set; } + [DisplayName("月")] + public int Month { get; set; } + public void SetId(Guid id) + { + Id = id; + } + public void SetCompanyCode(string companycode) + { + CompanyCode = companycode; + } + } +} diff --git a/src/API.Domain/DataSources/ODS_JQ_ZZFYBManager.cs b/src/API.Domain/DataSources/ODS_JQ_ZZFYBManager.cs new file mode 100644 index 0000000..eeb18b1 --- /dev/null +++ b/src/API.Domain/DataSources/ODS_JQ_ZZFYBManager.cs @@ -0,0 +1,120 @@ +using API.BudgetDataSources; +using API.JQDataSources; +using API.ManageBase; +using EFCore.BulkExtensions; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Services; +using Volo.Abp.ObjectMapping; +using Volo.Abp.Uow; + +namespace API.DataSources +{ + public class ODS_JQ_ZZFYBManager : DomainService + { + private readonly IRepository _repository; + private readonly IRepository _jqrepository; + private readonly IRepository _lrbCompareRepository; + private readonly IRepository _budgetRepository; + private readonly IRepository _companyrepository; + private readonly IObjectMapper _objectMapper; + public ODS_JQ_ZZFYBManager(IRepository repository, IRepository budgetRepository,IRepository jqrepository, IRepository lrbCompareRepository, IObjectMapper objectMapper, IRepository companyrepository) + { + _repository = repository; + _jqrepository = jqrepository; + _budgetRepository = budgetRepository; + _lrbCompareRepository = lrbCompareRepository; + _objectMapper = objectMapper; + _companyrepository = companyrepository; + } + [UnitOfWork] + public async virtual Task InsterZZFYB(int year, int month) + { + Logger.LogInformation($"ZZFYB开始同步【{year}年{month}月】数据!"); + + var Comapnys = await _companyrepository.GetListAsync(r => !string.IsNullOrEmpty(r.BudgetCompanyCode)); + var dicComapny = Comapnys.ToDictionary(r => r.CompanyCode); + try + { + //获取对照表行号 + var lrbcomp = await _lrbCompareRepository.GetListAsync(r => r.Type == "JQ_COMPARE_ZZFYB" && !string.IsNullOrEmpty(r.NewNum)); + var numDic = lrbcomp.ToDictionary(r => r.NewNum); + + var datetimestr = year.ToString() + "-" + (month > 9 ? month.ToString() : "0" + month.ToString()); + var lrbitems = await _jqrepository.GetListAsync(r => r.DATA_TIME == datetimestr); + List entitys = new List(); + List budget_entitys = new List(); + foreach (var item in lrbitems) + { + string rownum = item.ROW_NUM; + if (!string.IsNullOrEmpty(item.ROW_NUM)) + { + rownum = numDic.ContainsKey(rownum) ? numDic[rownum].RowNum : rownum; + } + + ODS_JQ_ZZFYB entity = new ODS_JQ_ZZFYB( + GuidGenerator.Create(), + item.COMPANY, + item.ITEM, + rownum, + decimal.TryParse(item.NUM_MONTH, out decimal num_month) ? num_month : 0, + decimal.TryParse(item.ADD_UP_NUM_YEAR, out decimal add_up_num_year) ? add_up_num_year : 0, + item.CREATE_TIME, + item.DATA_TIME, + decimal.TryParse(item.LAST_YEAR_ADD_UP, out decimal last_year_add_up) ? last_year_add_up : 0, + item.SHEET_NAME, + item.TABLENUM, + year, + month + ); + entitys.Add(entity); + //预算表 + var budget_entity = _objectMapper.Map(entity); + budget_entity.CompanyCode = dicComapny.ContainsKey(budget_entity.CompanyCode) ? dicComapny[budget_entity.CompanyCode].BudgetCompanyCode : budget_entity.CompanyCode; + budget_entitys.Add(budget_entity); + } + var db = await _repository.GetDbContextAsync(); + await db.BulkInsertAsync(entitys); + var db_budget = await _budgetRepository.GetDbContextAsync(); + await db_budget.BulkInsertAsync(budget_entitys); + //await _repository.DeleteAsync(r => r.Year == year && r.Month == month); + //await _repository.InsertManyAsync(entitys); + Logger.LogInformation($"ZZFYB完成【{year}年{month}月】数据同步!"); + return true; + + } + catch (Exception ex) + { + Logger.LogError($"ZZFYB同步【{year}年{month}月】数据失败!" + ex.Message + ex?.InnerException?.Message); + return false; + + } + } + + [UnitOfWork] + public async virtual Task DeletecZZFYB(int year, int month) + { + Logger.LogInformation($"ZZFYB开始删除【{year}年{month}月】数据!"); + try + { + // await _repository.DeleteAsync(r => r.Year == year && r.Month == month); + + int aa = await _repository.Where(r => r.Year == year && r.Month == month).BatchDeleteAsync(); + int bb = await _budgetRepository.Where(r => r.Year == year && r.Month == month).BatchDeleteAsync(); + Logger.LogInformation($"ZZFYB完成删除【{year}年{month}月】数据!"); + return true; + } + catch (Exception ex) + { + Logger.LogError($"ZZFYB删除【{year}年{month}月】数据失败!" + ex.Message + ex.InnerException.Message); + return false; + } + + } + } +} diff --git a/src/API.Domain/DataSources/TI_CBB04.cs b/src/API.Domain/DataSources/TI_CBB04.cs new file mode 100644 index 0000000..a43efba --- /dev/null +++ b/src/API.Domain/DataSources/TI_CBB04.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities.Auditing; + +namespace API.DataSources +{ + [DisplayName("降成本输入表")] + public class TI_CBB04 : AuditedAggregateRoot + { + public TI_CBB04() + { + + } + + public TI_CBB04(Guid id, string companyCode, int year, int month, string remark) : base(id) + { + CompanyCode = companyCode; + Year = year; + Month = month; + Remark = remark; + Detail = new List(); + } + + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + [DisplayName("年")] + public int Year { get; set; } + + [DisplayName("月")] + public int Month { get; set; } + + [DisplayName("备注")] + public string Remark { get; set; } + public virtual ICollection Detail { get; set; } + } +} diff --git a/src/API.Domain/DataSources/TI_CBB04Detail.cs b/src/API.Domain/DataSources/TI_CBB04Detail.cs new file mode 100644 index 0000000..78c794b --- /dev/null +++ b/src/API.Domain/DataSources/TI_CBB04Detail.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.DataSources +{ + [DisplayName("损益表汇总调整输入表子表")] + public class TI_CBB04Detail : Entity + { + public TI_CBB04Detail() + { + + } + + public TI_CBB04Detail(Guid id, Guid masterId, string rowNum, string project,decimal value) : base(id) + { + MasterId = masterId; + RowNum = rowNum; + Project = project; + Value = value; + } + + public Guid MasterId { set; get; } + + public string RowNum { get; set; } + + public string Project { set; get; } + [Column(TypeName = "decimal(18,6)")] + public decimal Value { set; get; } + } +} diff --git a/src/API.Domain/DataSources/TI_CBB04Manager.cs b/src/API.Domain/DataSources/TI_CBB04Manager.cs new file mode 100644 index 0000000..fac1461 --- /dev/null +++ b/src/API.Domain/DataSources/TI_CBB04Manager.cs @@ -0,0 +1,105 @@ +using API.BudgetDataSources; +using API.Enums; +using API.ManageBase; +using EFCore.BulkExtensions; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Services; +using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.Uow; + + +namespace API.DataSources +{ + + + public class TI_CBB04Manager : DomainService + { + private readonly IAPIEfCoreRepository _repository; + private readonly IRepository _brepository; + private readonly IRepository _companyrepository; + public TI_CBB04Manager(IAPIEfCoreRepository repository, IRepository brepository, IRepository companyrepository) + { + + _repository = repository; + _brepository = brepository; + _companyrepository = companyrepository; + } + [UnitOfWork] + public async virtual Task Instercbb04(int year) + { + Logger.LogInformation($"CBB04开始同步【{year}年】数据!"); + var Comapnys = await _companyrepository.GetListAsync(r => !string.IsNullOrEmpty(r.BudgetCompanyCode)); + var dicComapny = Comapnys.ToDictionary(r => r.BudgetCompanyCode); + + List entitys = new List(); + List entitydetails = new List(); + try + { + var cbb04s = await _brepository.GetListAsync(); + var cbb04Group = cbb04s.GroupBy(r => r.CompanyCode); + foreach (var cbb04 in cbb04Group) + { + for (int i = 1; i < 13; i++) + { + string cellname = year + "Y" + i + "M"; + var entity = new TI_CBB04( + GuidGenerator.Create(), + dicComapny.ContainsKey(cbb04.Key)? dicComapny[cbb04.Key].CompanyCode: cbb04.Key, + year, + i, + DateTime.Now.ToString() + ); + entity.CreationTime = DateTime.Now; + entitys.Add(entity); + foreach (var monthitem in cbb04) + { + var value = DataHelper.GetDataList(monthitem.DataString).FirstOrDefault(r => r.C == cellname)?.V??0; + var detail = new TI_CBB04Detail( + GuidGenerator.Create(), + entity.Id, + monthitem.RowNum, + monthitem.ProjectName, + value + ); + entitydetails.Add(detail); + } + + } + } + var db = await _repository.GetDbContextAsync(); + await db.BulkInsertAsync(entitys); + await db.BulkInsertAsync(entitydetails); + Logger.LogInformation($"CBB04完成【{year}年】数据同步!"); + return true; + } + catch (Exception ex) + { + Logger.LogError(ex.Message + ex.InnerException.Message); + return false; + } + } + public async virtual Task Deletecbb04(int year) + { + Logger.LogInformation($"CBB04开始删除【{year}年】数据!"); + try + { + await _repository.DeleteAsync(r => r.Year == year); + Logger.LogInformation($"CBB04完成删除【{year}年】数据!"); + return true; + } + catch (Exception ex) + { + Logger.LogError("CBB04删除数据失败" + ex.Message + ex.InnerException.Message); + return false; + } + + } + } +} diff --git a/src/API.Domain/DataSources/TI_CWB16.cs b/src/API.Domain/DataSources/TI_CWB16.cs new file mode 100644 index 0000000..de1c608 --- /dev/null +++ b/src/API.Domain/DataSources/TI_CWB16.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities.Auditing; + +namespace API.DataSources +{ + [DisplayName("损益表汇总调整输入表")] + public class TI_CWB16 : AuditedAggregateRoot + { + public TI_CWB16() + { + + } + + public TI_CWB16(Guid id ,string companyCode, int year, int month, string remark):base(id) + { + CompanyCode = companyCode; + Year = year; + Month = month; + Remark = remark; + Detail = new List(); + } + + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + [DisplayName("年")] + public int Year { get; set; } + + [DisplayName("月")] + public int Month { get; set; } + + [DisplayName("备注")] + public string Remark { get; set; } + public virtual ICollection Detail { get; set; } + } +} diff --git a/src/API.Domain/DataSources/TI_CWB16Detail.cs b/src/API.Domain/DataSources/TI_CWB16Detail.cs new file mode 100644 index 0000000..7c398b8 --- /dev/null +++ b/src/API.Domain/DataSources/TI_CWB16Detail.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.DataSources +{ + public class TI_CWB16Detail : Entity + { + public TI_CWB16Detail() + { + + } + + public TI_CWB16Detail(Guid id ,Guid masterId, string rowNum, string project, string accountCode, string accountName, decimal value):base(id) + { + MasterId = masterId; + RowNum = rowNum; + Project = project; + AccountCode = accountCode; + AccountName = accountName; + Value = value; + } + + public Guid MasterId { set; get; } + + public string RowNum { get; set; } + + public string Project { set; get; } + + public string AccountCode { set; get; } + + public string AccountName { set; get; } + [Column(TypeName = "decimal(18,6)")] + public decimal Value { set; get; } + } +} diff --git a/src/API.Domain/DataSources/TI_CWB16Manager.cs b/src/API.Domain/DataSources/TI_CWB16Manager.cs new file mode 100644 index 0000000..a90c38c --- /dev/null +++ b/src/API.Domain/DataSources/TI_CWB16Manager.cs @@ -0,0 +1,107 @@ +using API.BudgetDataSources; +using API.Enums; +using API.ManageBase; +using EFCore.BulkExtensions; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Services; +using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.Uow; + +namespace API.DataSources +{ + public class TI_CWB16Manager : DomainService + { + private readonly IAPIEfCoreRepository _repository; + private readonly IRepository _brepository; + private readonly IRepository _companyrepository; + + public TI_CWB16Manager(IAPIEfCoreRepository repository, IRepository brepository, IRepository companyrepository) + { + _repository = repository; + _brepository = brepository; + _companyrepository = companyrepository; + } + [UnitOfWork] + public async virtual Task Instercwb16(int year) + { + Logger.LogInformation($"CWB16开始同步【{year}年】数据!"); + var hlycompanys = await _companyrepository.GetListAsync(r => r.CompanyType == EnumCompanyType.合联营 || r.CompanyCode == "F02U070009"); + List companycodes = hlycompanys.Select(r => r.BudgetCompanyCode).ToList(); + var Comapnys = await _companyrepository.GetListAsync(r=>!string.IsNullOrEmpty(r.BudgetCompanyCode)); + var dicComapny= Comapnys.ToDictionary(r => r.BudgetCompanyCode); + List entitys = new List(); + List entitydetails = new List(); + try + { + var cwb16s = await _brepository.GetListAsync(r=> companycodes.Contains(r.CompanyCode)); + var cwb16Group = cwb16s.GroupBy(r => r.CompanyCode); + foreach (var cwb16 in cwb16Group) + { + for (int i = 1; i < 13; i++) + { + string cellname = year + "Y" + i + "M"; + var entity = new TO_CWC14( + GuidGenerator.Create(), + dicComapny.ContainsKey(cwb16.Key) ? dicComapny[cwb16.Key].CompanyCode : cwb16.Key, + year, + i, + DateTime.Now.ToString() + ); + entity.CreationTime = DateTime.Now; + entitys.Add(entity); + foreach (var monthitem in cwb16) + { + var value = DataHelper.GetDataList(monthitem.DataString).FirstOrDefault(r => r.C == cellname)?.V??0; + var detail = new TO_CWC14Detail( + GuidGenerator.Create(), + entity.Id, + monthitem.RowNum, + monthitem.Project, + monthitem.AccountCode, + monthitem.AccountName, + value + ); + entitydetails.Add(detail); + } + + } + } + var db = await _repository.GetDbContextAsync(); + await db.BulkInsertAsync(entitys); + await db.BulkInsertAsync(entitydetails); + Logger.LogInformation($"CWB16完成【{year}年】数据同步!"); + return true; + } + catch (Exception ex) + { + Logger.LogError(ex.Message + ex.InnerException.Message); + return false; + } + } + public async virtual Task Deletecwb16(int year) + { + Logger.LogInformation($"CWB16开始删除【{year}年】数据!"); + try + { + var companys = await _companyrepository.GetListAsync(r => r.CompanyType == EnumCompanyType.合联营 || r.CompanyCode == "F02U070009"); + List companycodes = companys.Select(r => r.CompanyCode).ToList(); + await _repository.DeleteAsync(r => r.Year == year&& companycodes.Contains(r.CompanyCode)); + Logger.LogInformation($"CWB16完成删除【{year}年】数据!"); + return true; + } + catch (Exception ex) + { + Logger.LogError("CWB16删除数据失败" + ex.Message + ex.InnerException.Message); + return false; + } + + } + } +} diff --git a/src/API.Domain/DataSources/TI_CWB17.cs b/src/API.Domain/DataSources/TI_CWB17.cs new file mode 100644 index 0000000..e9da2e6 --- /dev/null +++ b/src/API.Domain/DataSources/TI_CWB17.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities.Auditing; + +namespace API.DataSources +{ + [DisplayName("资产负债表汇总调整输入表")] + public class TI_CWB17 : AuditedAggregateRoot + { + public TI_CWB17() + { + + } + + public TI_CWB17(Guid id ,string companyCode, int year, int month, string remark):base(id) + { + CompanyCode = companyCode; + Year = year; + Month = month; + Remark = remark; + Detail = new List(); + } + + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + [DisplayName("年")] + public int Year { get; set; } + + [DisplayName("月")] + public int Month { get; set; } + + [DisplayName("备注")] + public string Remark { get; set; } + public virtual ICollection Detail { get; set; } + } +} diff --git a/src/API.Domain/DataSources/TI_CWB17Detail.cs b/src/API.Domain/DataSources/TI_CWB17Detail.cs new file mode 100644 index 0000000..a759849 --- /dev/null +++ b/src/API.Domain/DataSources/TI_CWB17Detail.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.DataSources +{ + public class TI_CWB17Detail : Entity + { + public TI_CWB17Detail() + { + + } + + public TI_CWB17Detail(Guid id ,Guid masterId, string rowNum, string project, string accountCode, string accountName, decimal actualValueBegin, decimal actualValueEnd, decimal value):base(id) + { + MasterId = masterId; + RowNum = rowNum; + Project = project; + AccountCode = accountCode; + AccountName = accountName; + ActualValueBegin = actualValueBegin; + ActualValueEnd = actualValueEnd; + Value = value; + } + + public Guid MasterId { set; get; } + + public string RowNum { get; set; } + + public string Project { set; get; } + + public string AccountCode { set; get; } + + public string AccountName { set; get; } + [DisplayName("本年实际数年初")] + [Column(TypeName = "decimal(18,6)")] + public decimal ActualValueBegin { get; set; } + + [DisplayName("本年实际数期末")] + [Column(TypeName = "decimal(18,6)")] + public decimal ActualValueEnd { get; set; } + [DisplayName("本月数")] + [Column(TypeName = "decimal(18,6)")] + public decimal Value { set; get; } + } +} diff --git a/src/API.Domain/DataSources/TI_CWB17Manager.cs b/src/API.Domain/DataSources/TI_CWB17Manager.cs new file mode 100644 index 0000000..075c39b --- /dev/null +++ b/src/API.Domain/DataSources/TI_CWB17Manager.cs @@ -0,0 +1,108 @@ +using API.BudgetDataSources; +using API.Enums; +using API.ManageBase; +using EFCore.BulkExtensions; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Services; +using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.Uow; + + +namespace API.DataSources +{ + + public class TI_CWB17Manager : DomainService + { + private readonly IAPIEfCoreRepository _repository; + private readonly IRepository _brepository; + private readonly IRepository _companyrepository; + public TI_CWB17Manager(IAPIEfCoreRepository repository, IRepository brepository, IRepository companyrepository) + { + + _repository = repository; + _brepository = brepository; + _companyrepository = companyrepository; + } + [UnitOfWork] + public async virtual Task Instercwb17(int year) + { + Logger.LogInformation($"CWB17开始同步【{year}年】数据!"); + var Comapnys = await _companyrepository.GetListAsync(r => !string.IsNullOrEmpty(r.BudgetCompanyCode)); + var dicComapny = Comapnys.ToDictionary(r => r.BudgetCompanyCode); + + List entitys = new List(); + List entitydetails = new List(); + try + { + var cwb17s = await _brepository.GetListAsync(); + var cwb17Group = cwb17s.GroupBy(r => r.CompanyCode); + foreach (var cwb17 in cwb17Group) + { + for (int i = 1; i < 13; i++) + { + string cellname = year + "Y" + i + "M"; + var entity = new TI_CWB17( + GuidGenerator.Create(), + dicComapny.ContainsKey(cwb17.Key) ? dicComapny[cwb17.Key].CompanyCode : cwb17.Key, + year, + i, + DateTime.Now.ToString() + ); + entity.CreationTime = DateTime.Now; + entitys.Add(entity); + foreach (var monthitem in cwb17) + { + var value =monthitem.DataString=="[]"?0: DataHelper.GetDataList(monthitem.DataString).FirstOrDefault(r => r.C == cellname)?.V??0; + var detail = new TI_CWB17Detail( + GuidGenerator.Create(), + entity.Id, + monthitem.RowNum, + monthitem.Project, + monthitem.AccountCode, + monthitem.AccountName, + monthitem.ActualValueBegin , + monthitem.ActualValueEnd, + value + ); + entitydetails.Add(detail); + } + + } + } + var db = await _repository.GetDbContextAsync(); + await db.BulkInsertAsync(entitys); + await db.BulkInsertAsync(entitydetails); + Logger.LogInformation($"CWB17完成【{year}年】数据同步!"); + return true; + } + catch (Exception ex) + { + Logger.LogError(ex.Message + ex.InnerException.Message); + return false; + } + } + public async virtual Task Deletecwb17(int year) + { + Logger.LogInformation($"CWB17开始删除【{year}年】数据!"); + try + { + await _repository.DeleteAsync(r => r.Year == year); + Logger.LogInformation($"CWB17完成删除【{year}年】数据!"); + return true; + } + catch (Exception ex) + { + Logger.LogError("CWB17删除数据失败" + ex.Message + ex.InnerException.Message); + return false; + } + + } + } +} diff --git a/src/API.Domain/DataSources/TI_CWB18.cs b/src/API.Domain/DataSources/TI_CWB18.cs new file mode 100644 index 0000000..c2c75fd --- /dev/null +++ b/src/API.Domain/DataSources/TI_CWB18.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities.Auditing; + +namespace API.DataSources +{ + [DisplayName("现金流量表货币资金汇总调整输入表")] + public class TI_CWB18 : AuditedAggregateRoot + { + public TI_CWB18() + { + + } + + public TI_CWB18(Guid id ,string companyCode, int year, int month, string remark):base(id) + { + CompanyCode = companyCode; + Year = year; + Month = month; + Remark = remark; + Detail = new List(); + } + + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + [DisplayName("年")] + public int Year { get; set; } + + [DisplayName("月")] + public int Month { get; set; } + + [DisplayName("备注")] + public string Remark { get; set; } + public virtual ICollection Detail { get; set; } + } +} diff --git a/src/API.Domain/DataSources/TI_CWB18Detail.cs b/src/API.Domain/DataSources/TI_CWB18Detail.cs new file mode 100644 index 0000000..9d3fee3 --- /dev/null +++ b/src/API.Domain/DataSources/TI_CWB18Detail.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.DataSources +{ + public class TI_CWB18Detail : Entity + { + public TI_CWB18Detail() + { + + } + + public TI_CWB18Detail(Guid id ,Guid masterId, string rowNum, string project, decimal value):base(id) + { + MasterId = masterId; + RowNum = rowNum; + Project = project; + Value = value; + } + + public Guid MasterId { set; get; } + + public string RowNum { get; set; } + + public string Project { set; get; } + [Column(TypeName = "decimal(18,6)")] + public decimal Value { set; get; } + } +} diff --git a/src/API.Domain/DataSources/TI_CWB18Manager.cs b/src/API.Domain/DataSources/TI_CWB18Manager.cs new file mode 100644 index 0000000..d0dc7c1 --- /dev/null +++ b/src/API.Domain/DataSources/TI_CWB18Manager.cs @@ -0,0 +1,103 @@ +using API.BudgetDataSources; +using API.Enums; +using API.ManageBase; +using EFCore.BulkExtensions; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Services; +using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.Uow; + +namespace API.DataSources +{ + + public class TI_CWB18Manager : DomainService + { + private readonly IAPIEfCoreRepository _repository; + private readonly IRepository _brepository; + private readonly IRepository _companyrepository; + public TI_CWB18Manager(IAPIEfCoreRepository repository, IRepository brepository, IRepository companyrepository) + { + + _repository = repository; + _brepository = brepository; + _companyrepository = companyrepository; + } + [UnitOfWork] + public async virtual Task Instercwb18(int year) + { + Logger.LogInformation($"CWB18开始同步【{year}年】数据!"); + var Comapnys = await _companyrepository.GetListAsync(r => !string.IsNullOrEmpty(r.BudgetCompanyCode)); + var dicComapny = Comapnys.ToDictionary(r => r.BudgetCompanyCode); + + List entitys = new List(); + List entitydetails = new List(); + try + { + var cwb18s = await _brepository.GetListAsync(); + var cwb18Group = cwb18s.GroupBy(r => r.CompanyCode); + foreach (var cwb18 in cwb18Group) + { + for (int i = 1; i < 13; i++) + { + string cellname = year + "Y" + i + "M"; + var entity = new TI_CWB18( + GuidGenerator.Create(), + dicComapny.ContainsKey(cwb18.Key) ? dicComapny[cwb18.Key].CompanyCode : cwb18.Key, + year, + i, + DateTime.Now.ToString() + ); + entity.CreationTime = DateTime.Now; + entitys.Add(entity); + foreach (var monthitem in cwb18) + { + var value = DataHelper.GetDataList(monthitem.DataString).FirstOrDefault(r => r.C == cellname)?.V??0; + var detail = new TI_CWB18Detail( + GuidGenerator.Create(), + entity.Id, + monthitem.RowNum, + monthitem.Project, + value + ); + entitydetails.Add(detail); + } + + } + } + var db = await _repository.GetDbContextAsync(); + await db.BulkInsertAsync(entitys); + await db.BulkInsertAsync(entitydetails); + Logger.LogInformation($"CWB18完成【{year}年】数据同步!"); + return true; + } + catch (Exception ex) + { + Logger.LogError(ex.Message + ex.InnerException.Message); + return false; + } + } + public async virtual Task Deletecwb18(int year) + { + Logger.LogInformation($"CWB18开始删除【{year}年】数据!"); + try + { + await _repository.DeleteAsync(r => r.Year == year); + Logger.LogInformation($"CWB18完成删除【{year}年】数据!"); + return true; + } + catch (Exception ex) + { + Logger.LogError("CWB18删除数据失败" + ex.Message + ex.InnerException.Message); + return false; + } + + } + } +} diff --git a/src/API.Domain/DataSources/TI_CWB19.cs b/src/API.Domain/DataSources/TI_CWB19.cs new file mode 100644 index 0000000..33ab33d --- /dev/null +++ b/src/API.Domain/DataSources/TI_CWB19.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities.Auditing; + +namespace API.DataSources +{ + [DisplayName("现金流量表应收票据汇总调整输入表")] + public class TI_CWB19 : AuditedAggregateRoot + { + public TI_CWB19() + { + + } + + public TI_CWB19(Guid id ,string companyCode, int year, int month, string remark):base(id) + { + CompanyCode = companyCode; + Year = year; + Month = month; + Remark = remark; + Detail = new List(); + } + + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + [DisplayName("年")] + public int Year { get; set; } + + [DisplayName("月")] + public int Month { get; set; } + + [DisplayName("备注")] + public string Remark { get; set; } + public virtual ICollection Detail { get; set; } + } +} diff --git a/src/API.Domain/DataSources/TI_CWB19Detail.cs b/src/API.Domain/DataSources/TI_CWB19Detail.cs new file mode 100644 index 0000000..b4180d6 --- /dev/null +++ b/src/API.Domain/DataSources/TI_CWB19Detail.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.DataSources +{ + public class TI_CWB19Detail : Entity + { + public TI_CWB19Detail() + { + + } + + public TI_CWB19Detail(Guid id ,Guid masterId, string rowNum, string project, decimal value):base(id) + { + MasterId = masterId; + RowNum = rowNum; + Project = project; + Value = value; + } + + public Guid MasterId { set; get; } + + public string RowNum { get; set; } + + public string Project { set; get; } + [Column(TypeName = "decimal(18,6)")] + public decimal Value { set; get; } + } +} diff --git a/src/API.Domain/DataSources/TI_CWB19Manager.cs b/src/API.Domain/DataSources/TI_CWB19Manager.cs new file mode 100644 index 0000000..5c695d0 --- /dev/null +++ b/src/API.Domain/DataSources/TI_CWB19Manager.cs @@ -0,0 +1,103 @@ +using API.BudgetDataSources; +using API.Enums; +using API.ManageBase; +using EFCore.BulkExtensions; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Services; +using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.Uow; + +namespace API.DataSources +{ + + public class TI_CWB19Manager : DomainService + { + private readonly IAPIEfCoreRepository _repository; + private readonly IRepository _brepository; + private readonly IRepository _companyrepository; + public TI_CWB19Manager(IAPIEfCoreRepository repository, IRepository brepository, IRepository companyrepository) + { + + _repository = repository; + _brepository = brepository; + _companyrepository = companyrepository; + } + [UnitOfWork] + public async virtual Task Instercwb19(int year) + { + Logger.LogInformation($"CWB19开始同步【{year}年】数据!"); + var Comapnys = await _companyrepository.GetListAsync(r => !string.IsNullOrEmpty(r.BudgetCompanyCode)); + var dicComapny = Comapnys.ToDictionary(r => r.BudgetCompanyCode); + + List entitys = new List(); + List entitydetails = new List(); + try + { + var cwb19s = await _brepository.GetListAsync(); + var cwb19Group = cwb19s.GroupBy(r => r.CompanyCode); + foreach (var cwb19 in cwb19Group) + { + for (int i = 1; i < 13; i++) + { + string cellname = year + "Y" + i + "M"; + var entity = new TI_CWB19( + GuidGenerator.Create(), + dicComapny.ContainsKey(cwb19.Key) ? dicComapny[cwb19.Key].CompanyCode : cwb19.Key, + year, + i, + DateTime.Now.ToString() + ); + entity.CreationTime = DateTime.Now; + entitys.Add(entity); + foreach (var monthitem in cwb19) + { + var value = DataHelper.GetDataList(monthitem.DataString).FirstOrDefault(r => r.C == cellname)?.V??0; + var detail = new TI_CWB19Detail( + GuidGenerator.Create(), + entity.Id, + monthitem.RowNum, + monthitem.Project, + value + ); + entitydetails.Add(detail); + } + + } + } + var db = await _repository.GetDbContextAsync(); + await db.BulkInsertAsync(entitys); + await db.BulkInsertAsync(entitydetails); + Logger.LogInformation($"CWB19完成【{year}年】数据同步!"); + return true; + } + catch (Exception ex) + { + Logger.LogError(ex.Message + ex.InnerException.Message); + return false; + } + } + public async virtual Task Deletecwb19(int year) + { + Logger.LogInformation($"CWB19开始删除【{year}年】数据!"); + try + { + await _repository.DeleteAsync(r => r.Year == year); + Logger.LogInformation($"CWB19完成删除【{year}年】数据!"); + return true; + } + catch (Exception ex) + { + Logger.LogError("CWB19删除数据失败" + ex.Message + ex.InnerException.Message); + return false; + } + + } + } +} diff --git a/src/API.Domain/DataSources/TI_HRB04.cs b/src/API.Domain/DataSources/TI_HRB04.cs new file mode 100644 index 0000000..298982c --- /dev/null +++ b/src/API.Domain/DataSources/TI_HRB04.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities.Auditing; + +namespace API.DataSources +{ + public class TI_HRB04 : AuditedAggregateRoot + { + public TI_HRB04() + { + + } + + public TI_HRB04(Guid id, string companyCode, int year, int month, string remark) : base(id) + { + CompanyCode = companyCode; + Year = year; + Month = month; + Remark = remark; + Detail = new List(); + } + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + + [DisplayName("年")] + public int Year { get; set; } + + [DisplayName("月")] + public int Month { get; set; } + + [DisplayName("备注")] + public string Remark { get; set; } + public virtual ICollection Detail { get; set; } + } +} diff --git a/src/API.Domain/DataSources/TI_HRB04Detail.cs b/src/API.Domain/DataSources/TI_HRB04Detail.cs new file mode 100644 index 0000000..f4955e1 --- /dev/null +++ b/src/API.Domain/DataSources/TI_HRB04Detail.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.DataSources +{ + public class TI_HRB04Detail : Entity + { + public TI_HRB04Detail() + { + + } + + public TI_HRB04Detail(Guid id, Guid masterId, string rowNum, string project, decimal value) : base(id) + { + MasterId = masterId; + RowNum = rowNum; + Project = project; + Value = value; + } + + public Guid MasterId { set; get; } + + public string RowNum { get; set; } + + public string Project { set; get; } + [Column(TypeName = "decimal(18,6)")] + public decimal Value { set; get; } + } +} diff --git a/src/API.Domain/DataSources/TI_HRB04Manager.cs b/src/API.Domain/DataSources/TI_HRB04Manager.cs new file mode 100644 index 0000000..9438e18 --- /dev/null +++ b/src/API.Domain/DataSources/TI_HRB04Manager.cs @@ -0,0 +1,103 @@ +using API.BudgetDataSources; +using API.Enums; +using API.ManageBase; +using EFCore.BulkExtensions; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Services; +using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.Uow; + +namespace API.DataSources +{ + public class TI_HRB04Manager : DomainService + { + private readonly IAPIEfCoreRepository _repository; + private readonly IRepository _brepository; + private readonly IRepository _companyrepository; + public TI_HRB04Manager(IAPIEfCoreRepository repository, IRepository brepository, IRepository companyrepository) + { + + _repository = repository; + _brepository = brepository; + _companyrepository = companyrepository; + } + [UnitOfWork] + public async virtual Task Insterhrb04(int year) + { + Logger.LogInformation($"hrb04开始同步【{year}年】数据!"); + var Comapnys = await _companyrepository.GetListAsync(r => !string.IsNullOrEmpty(r.BudgetCompanyCode)); + var dicComapny = Comapnys.ToDictionary(r => r.BudgetCompanyCode); + List entitys = new List(); + List entitydetails = new List(); + try + { + var hrb04s = await _brepository.GetListAsync(); + var hrb04Group = hrb04s.GroupBy(r => r.CompanyCode); + foreach (var hrb04 in hrb04Group) + { + for (int i = 1; i < 13; i++) + { + string cellname = year + "Y" + i + "M"; + var entity = new TI_HRB04( + GuidGenerator.Create(), + dicComapny.ContainsKey(hrb04.Key) ? dicComapny[hrb04.Key].CompanyCode : hrb04.Key, + year, + i, + DateTime.Now.ToString() + ); + entity.CreationTime = DateTime.Now; + entitys.Add(entity); + foreach (var monthitem in hrb04) + { + var value = DataHelper.GetDataList(monthitem.DataString).FirstOrDefault(r => r.C == cellname)?.V ?? 0; + var detail = new TI_HRB04Detail( + GuidGenerator.Create(), + entity.Id, + monthitem.RowNum, + monthitem.SalaryType, + value + ); + entitydetails.Add(detail); + } + + } + } + var db = await _repository.GetDbContextAsync(); + await db.BulkInsertAsync(entitys); + await db.BulkInsertAsync(entitydetails); + Logger.LogInformation($"hrb04完成【{year}年】数据同步!"); + return true; + } + catch (Exception ex) + { + Logger.LogError(ex.Message + ex.InnerException.Message); + return false; + } + } + public async virtual Task Deletehrb04(int year) + { + Logger.LogInformation($"hrb04开始删除【{year}年】数据!"); + try + { + await _repository.DeleteAsync(r => r.Year == year); + Logger.LogInformation($"hrb04完成删除【{year}年】数据!"); + return true; + } + catch (Exception ex) + { + Logger.LogError("hrb04删除数据失败" + ex.Message + ex.InnerException.Message); + return false; + } + } + + + + } +} diff --git a/src/API.Domain/DataSources/TO_CWC14.cs b/src/API.Domain/DataSources/TO_CWC14.cs new file mode 100644 index 0000000..11e9266 --- /dev/null +++ b/src/API.Domain/DataSources/TO_CWC14.cs @@ -0,0 +1,58 @@ +using JetBrains.Annotations; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp; +using Volo.Abp.Domain.Entities.Auditing; +using Volo.Abp.Guids; + +namespace API.DataSources +{ + public class TO_CWC14 : AuditedAggregateRoot + { + public TO_CWC14() + { + + } + + public TO_CWC14(Guid id,string companyCode, int year, int month, string remark):base(id) + { + CompanyCode = companyCode; + Year = year; + Month = month; + Remark = remark; + Detail = new List(); + } + + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + [DisplayName("年")] + public int Year { get; set; } + + [DisplayName("月")] + public int Month { get; set; } + + [DisplayName("备注")] + public string Remark { get; set; } + public virtual ICollection Detail { get; set; } + + + public void AddDetail([NotNull] IGuidGenerator guidGenerator, TO_CWC14Detail detail) + { + Check.NotNull(detail, nameof(TO_CWC14Detail)); + Detail.Add(new TO_CWC14Detail( + guidGenerator.Create(), + Id, + detail.RowNum, + detail.Project, + detail.AccountCode, + detail.AccountName, + detail.Value + ) + ); + } + } +} diff --git a/src/API.Domain/DataSources/TO_CWC14Detail.cs b/src/API.Domain/DataSources/TO_CWC14Detail.cs new file mode 100644 index 0000000..3a9ec25 --- /dev/null +++ b/src/API.Domain/DataSources/TO_CWC14Detail.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.DataSources +{ + public class TO_CWC14Detail : Entity + { + public TO_CWC14Detail() + { + + } + + public TO_CWC14Detail(Guid id,Guid masterId, string rowNum, string project, string accountCode, string accountName, decimal value):base(id) + { + MasterId = masterId; + RowNum = rowNum; + Project = project; + AccountCode = accountCode; + AccountName = accountName; + Value = value; + } + + public Guid MasterId { set; get; } + + public string RowNum { get; set; } + + public string Project { set; get; } + + public string AccountCode { set; get; } + + public string AccountName { set; get; } + [Column(TypeName = "decimal(18,6)")] + public decimal Value { set; get; } + } +} diff --git a/src/API.Domain/DataSources/TO_CWC14Manager.cs b/src/API.Domain/DataSources/TO_CWC14Manager.cs new file mode 100644 index 0000000..786167c --- /dev/null +++ b/src/API.Domain/DataSources/TO_CWC14Manager.cs @@ -0,0 +1,173 @@ +using API.BudgetDataSources; +using API.Enums; +using API.ManageBase; +using EFCore.BulkExtensions; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Services; +using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.Uow; + +namespace API.DataSources +{ + public class TO_CWC14Manager : DomainService + { + private readonly IAPIEfCoreRepository _repository; + private readonly IRepository _brepository; + private readonly IRepository _companyrepository; + public TO_CWC14Manager( IAPIEfCoreRepository repository, IRepository brepository, IRepository companyrepository) + { + _repository = repository; + _brepository = brepository; + _companyrepository = companyrepository; + } + [UnitOfWork] + public async virtual Task InsterCWC14(int year) + { + Logger.LogInformation($"CWC14开始同步【{year}年】数据!"); + var hlycompanys = await _companyrepository.GetListAsync(r => r.CompanyType == EnumCompanyType.合联营 || r.CompanyCode == "F02U070009"); + List companycodes = hlycompanys.Select(r => r.BudgetCompanyCode).ToList(); + + + var Comapnys = await _companyrepository.GetListAsync(r => !string.IsNullOrEmpty(r.BudgetCompanyCode)); + var dicComapny = Comapnys.ToDictionary(r => r.BudgetCompanyCode); + + List entitys = new List(); + List entitydetails = new List(); + try + { + var cwc14s = await _brepository.GetListAsync(r=> !companycodes.Contains(r.CompanyCode)); + var cwc14Group = cwc14s.GroupBy(r => r.CompanyCode); + + foreach (var cwc14 in cwc14Group) + { + for (int i = 1; i < 13; i++) + { + string cellname = year + "Y" + i + "M"; + var entity = new TO_CWC14( + GuidGenerator.Create(), + dicComapny.ContainsKey(cwc14.Key) ? dicComapny[cwc14.Key].CompanyCode : cwc14.Key, + year, + i, + DateTime.Now.ToString() + ); + entity.CreationTime = DateTime.Now; + entitys.Add(entity); + foreach (var monthitem in cwc14) + { + var value = DataHelper.GetDataList(monthitem.DataString).FirstOrDefault(r => r.C == cellname)?.V??0; + var detail = new TO_CWC14Detail( + GuidGenerator.Create(), + entity.Id, + monthitem.RowNum, + monthitem.Project, + monthitem.AccountCode, + monthitem.AccountName, + value + ); + entitydetails.Add(detail); + } + + } + } + var db = await _repository.GetDbContextAsync(); + await db.BulkInsertAsync(entitys); + await db.BulkInsertAsync(entitydetails); + Logger.LogInformation($"CWC14同步【{year}年】数据成功!"); + return true; + + } + catch (Exception ex) + { + Logger.LogError(ex.Message+ex.InnerException.Message); + return false; + } + } + public async virtual Task DeleteCWC14(int year) + { + Logger.LogInformation($"CWC14开始删除【{year}年】数据!"); + try + { + var companys = await _companyrepository.GetListAsync(r => r.CompanyType == EnumCompanyType.合联营 || r.CompanyCode == "F02U070009"); + List companycodes = companys.Select(r => r.CompanyCode).ToList(); + await _repository.DeleteAsync(r => r.Year == year && !companycodes.Contains(r.CompanyCode)); + Logger.LogInformation($"CWC14完成删除【{year}年】数据!"); + return true; + } + catch (Exception ex) + { + Logger.LogError("CWC14删除数据失败"+ex.Message + ex.InnerException.Message); + return false; + } + + } + + + //[UnitOfWork] + //public async virtual Task UpdateCWC14() + //{ + + + // List entitys = new List(); + // int year = DateTime.Now.Year; + // try + // { + + + // var cwc14s = await _brepository.GetListAsync(); + // var cwc14Group = cwc14s.GroupBy(r => r.CompanyCode); + // foreach (var cwc14 in cwc14Group) + // { + // for (int i = 1; i < 13; i++) + // { + // string cellname = year + "Y" + i + "M"; + // var entity = new TO_CWC14( + // GuidGenerator.Create(), + // cwc14.Key, + // year, + // i, + // DateTime.Now.ToString() + // ); + // entity.CreationTime = DateTime.Now; + // foreach (var monthitem in cwc14) + // { + // var value = DataHelper.GetDataList(monthitem.DataString).FirstOrDefault(r => r.C == cellname).V; + // var detail = new TO_CWC14Detail(); + + // detail.RowNum = monthitem.RowNum; + // detail.Project = monthitem.Project; + // detail.AccountCode = monthitem.AccountCode; + // detail.AccountName = monthitem.AccountName; + // detail.Value = value; + // entity.AddDetail(GuidGenerator, detail); + // } + // entitys.Add(entity); + // } + // } + + // // await _repository.Import3Async(entitys); + // await _repository.DeleteAsync(r => r.Year == year); + + + // var db= await _repository.GetDbContextAsync(); + + // await db.BulkInsertAsync(entitys); + // // await _repository.InsertManyAsync(entitys); + // return true; + // } + // catch (Exception ex) + // { + + // throw; + // } + + + //} + } +} diff --git a/src/API.Domain/DataSources/TO_CWC19.cs b/src/API.Domain/DataSources/TO_CWC19.cs new file mode 100644 index 0000000..7000666 --- /dev/null +++ b/src/API.Domain/DataSources/TO_CWC19.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities.Auditing; + +namespace API.DataSources +{ + [DisplayName("资产负债表输出表调整后")] + public class TO_CWC19 : AuditedAggregateRoot + { + public TO_CWC19() + { + + } + + public TO_CWC19(Guid id ,string companyCode, int year, int month, string remark):base(id) + { + CompanyCode = companyCode; + Year = year; + Month = month; + Remark = remark; + Detail = new List(); + } + + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + [DisplayName("年")] + public int Year { get; set; } + + [DisplayName("月")] + public int Month { get; set; } + + [DisplayName("备注")] + public string Remark { get; set; } + public virtual ICollection Detail { get; set; } + } +} diff --git a/src/API.Domain/DataSources/TO_CWC19Detail.cs b/src/API.Domain/DataSources/TO_CWC19Detail.cs new file mode 100644 index 0000000..bc5b006 --- /dev/null +++ b/src/API.Domain/DataSources/TO_CWC19Detail.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.DataSources +{ + public class TO_CWC19Detail : Entity + { + public TO_CWC19Detail() + { + + } + + public TO_CWC19Detail(Guid id ,Guid masterId, string rowNum, string project, string accountCode, string accountName, decimal value):base(id) + { + MasterId = masterId; + RowNum = rowNum; + Project = project; + AccountCode = accountCode; + AccountName = accountName; + Value = value; + } + + public Guid MasterId { set; get; } + + public string RowNum { get; set; } + + public string Project { set; get; } + + public string AccountCode { set; get; } + + public string AccountName { set; get; } + [DisplayName("当月数")] + [Column(TypeName = "decimal(18,6)")] + public decimal Value { set; get; } + } +} diff --git a/src/API.Domain/DataSources/TO_CWC19Manager.cs b/src/API.Domain/DataSources/TO_CWC19Manager.cs new file mode 100644 index 0000000..9f710f7 --- /dev/null +++ b/src/API.Domain/DataSources/TO_CWC19Manager.cs @@ -0,0 +1,108 @@ +using API.BudgetDataSources; +using API.Enums; +using API.ManageBase; +using EFCore.BulkExtensions; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Services; +using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.Uow; + +namespace API.DataSources +{ + + public class TO_CWC19Manager : DomainService + { + private readonly IAPIEfCoreRepository _repository; + private readonly IRepository _brepository; + private readonly IRepository _companyrepository; + public TO_CWC19Manager(IAPIEfCoreRepository repository, IRepository brepository, IRepository companyrepository) + { + + _repository = repository; + _brepository = brepository; + _companyrepository = companyrepository; + } + [UnitOfWork] + public async virtual Task InsterCWC19(int year) + { + Logger.LogInformation($"CWC19开始同步【{year}年】数据!"); + var Comapnys = await _companyrepository.GetListAsync(r => !string.IsNullOrEmpty(r.BudgetCompanyCode)); + var dicComapny = Comapnys.ToDictionary(r => r.BudgetCompanyCode); + + List entitys = new List(); + List entitydetails = new List(); + try + { + var cwc19s = await _brepository.GetListAsync(); + var cwc19Group = cwc19s.GroupBy(r => r.CompanyCode); + foreach (var cwc19 in cwc19Group) + { + for (int i = 1; i < 13; i++) + { + string cellname = year + "Y" + i + "M"; + var entity = new TO_CWC19( + GuidGenerator.Create(), + dicComapny.ContainsKey(cwc19.Key) ? dicComapny[cwc19.Key].CompanyCode : cwc19.Key, + year, + i, + DateTime.Now.ToString() + ); + entity.CreationTime = DateTime.Now; + entitys.Add(entity); + foreach (var monthitem in cwc19) + { + var value = DataHelper.GetDataList(monthitem.DataString).FirstOrDefault(r => r.C == cellname)?.V??0; + var detail = new TO_CWC19Detail( + GuidGenerator.Create(), + entity.Id, + monthitem.RowNum, + monthitem.Project, + monthitem.AccountCode, + monthitem.AccountName, + value + ); + entitydetails.Add(detail); + } + + } + } + var db = await _repository.GetDbContextAsync(); + await db.BulkInsertAsync(entitys); + await db.BulkInsertAsync(entitydetails); + Logger.LogInformation($"CWC19完成【{year}年】数据同步!"); + return true; + } + catch (Exception ex) + { + Logger.LogError(ex.Message + ex.InnerException.Message); + return false; + } + } + public async virtual Task DeleteCWC19(int year) + { + Logger.LogInformation($"CWC19开始删除【{year}年】数据!"); + try + { + await _repository.DeleteAsync(r => r.Year == year); + Logger.LogInformation($"CWC19完成删除【{year}年】数据!"); + return true; + } + catch (Exception ex) + { + Logger.LogError("CWC19删除数据失败" + ex.Message + ex.InnerException.Message); + return false; + } + + } + + + + } +} diff --git a/src/API.Domain/DataSources/TO_CWC21.cs b/src/API.Domain/DataSources/TO_CWC21.cs new file mode 100644 index 0000000..76a8bc0 --- /dev/null +++ b/src/API.Domain/DataSources/TO_CWC21.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities.Auditing; + +namespace API.DataSources +{ + [DisplayName("现金流量表输出表调整后")] + public class TO_CWC21 : AuditedAggregateRoot + { + public TO_CWC21() + { + + } + + public TO_CWC21(Guid id ,string companyCode, int year, int month, string remark):base(id) + { + CompanyCode = companyCode; + Year = year; + Month = month; + Remark = remark; + Detail = new List(); + } + + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + [DisplayName("年")] + public int Year { get; set; } + + [DisplayName("月")] + public int Month { get; set; } + + [DisplayName("备注")] + public string Remark { get; set; } + public virtual ICollection Detail { get; set; } + } +} diff --git a/src/API.Domain/DataSources/TO_CWC21Detail.cs b/src/API.Domain/DataSources/TO_CWC21Detail.cs new file mode 100644 index 0000000..b7b3b13 --- /dev/null +++ b/src/API.Domain/DataSources/TO_CWC21Detail.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.DataSources +{ + public class TO_CWC21Detail : Entity + { + public TO_CWC21Detail() + { + + } + + public TO_CWC21Detail(Guid id, Guid masterId, string rowNum, string project, decimal totalValue, decimal currencyValue, decimal billValue):base(id) + { + MasterId = masterId; + RowNum = rowNum; + Project = project; + TotalValue = totalValue; + CurrencyValue = currencyValue; + BillValue = billValue; + } + + public Guid MasterId { set; get; } + + public string RowNum { get; set; } + + public string Project { set; get; } + [Column(TypeName = "decimal(18,6)")] + public decimal TotalValue { set; get; } + [Column(TypeName = "decimal(18,6)")] + public decimal CurrencyValue { set; get; } + [Column(TypeName = "decimal(18,6)")] + public decimal BillValue { set; get; } + } +} diff --git a/src/API.Domain/DataSources/TO_CWC21Manager.cs b/src/API.Domain/DataSources/TO_CWC21Manager.cs new file mode 100644 index 0000000..75dc96a --- /dev/null +++ b/src/API.Domain/DataSources/TO_CWC21Manager.cs @@ -0,0 +1,107 @@ +using API.BudgetDataSources; +using API.Enums; +using API.ManageBase; +using EFCore.BulkExtensions; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Services; +using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.Uow; + +namespace API.DataSources +{ + public class TO_CWC21Manager : DomainService + { + private readonly IAPIEfCoreRepository _repository; + private readonly IRepository _brepository; + private readonly IRepository _companyrepository; + public TO_CWC21Manager(IAPIEfCoreRepository repository, IRepository brepository, IRepository companyrepository) + { + + _repository = repository; + _brepository = brepository; + _companyrepository = companyrepository; + } + [UnitOfWork] + public async virtual Task Instercwc21(int year) + { + Logger.LogInformation($"CWC21开始同步【{year}年】数据!"); + var Comapnys = await _companyrepository.GetListAsync(r => !string.IsNullOrEmpty(r.BudgetCompanyCode)); + var dicComapny = Comapnys.ToDictionary(r => r.BudgetCompanyCode); + List entitys = new List(); + List entitydetails = new List(); + try + { + var cwc21s = await _brepository.GetListAsync(); + var cwc21Group = cwc21s.GroupBy(r => r.CompanyCode); + foreach (var cwc21 in cwc21Group) + { + for (int i = 1; i < 13; i++) + { + string cellname = year + "Y" + i + "M"; + var entity = new TO_CWC21( + GuidGenerator.Create(), + dicComapny.ContainsKey(cwc21.Key) ? dicComapny[cwc21.Key].CompanyCode : cwc21.Key, + year, + i, + DateTime.Now.ToString() + ); + entity.CreationTime = DateTime.Now; + entitys.Add(entity); + foreach (var monthitem in cwc21) + { + var value = DataHelper.GetDataList(monthitem.DataString).FirstOrDefault(r => r.C == cellname)?.Vs; + + var detail = new TO_CWC21Detail( + GuidGenerator.Create(), + entity.Id, + monthitem.RowNum, + monthitem.Project, + value.Count()==0?0: value[0], + value.Count() == 0 ? 0 : value[1], + value.Count() == 0 ? 0 : value[2] + ); + entitydetails.Add(detail); + } + + } + } + var db = await _repository.GetDbContextAsync(); + await db.BulkInsertAsync(entitys); + await db.BulkInsertAsync(entitydetails); + Logger.LogInformation($"CWC21完成【{year}年】数据同步!"); + return true; + } + catch (Exception ex) + { + Logger.LogError(ex.Message + ex.InnerException.Message); + return false; + } + } + public async virtual Task Deletecwc21(int year) + { + Logger.LogInformation($"CWC21开始删除【{year}年】数据!"); + try + { + await _repository.DeleteAsync(r => r.Year == year); + Logger.LogInformation($"CWC21完成删除【{year}年】数据!"); + return true; + } + catch (Exception ex) + { + Logger.LogError("CWC21删除数据失败" + ex.Message + ex.InnerException.Message); + return false; + } + + } + + + + } +} diff --git a/src/API.Domain/DataSources/TO_GGC01.cs b/src/API.Domain/DataSources/TO_GGC01.cs new file mode 100644 index 0000000..162f65c --- /dev/null +++ b/src/API.Domain/DataSources/TO_GGC01.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities.Auditing; + +namespace API.DataSources +{ + [DisplayName("更新改造投资项目输出表")] + public class TO_GGC01 : AuditedAggregateRoot + { + public TO_GGC01() + { + + } + + public TO_GGC01(Guid id ,string companyCode,string fillInCompanyCode, int year, int month, string remark):base(id) + { + CompanyCode = companyCode; + FillInCompanyCode = fillInCompanyCode; + Year = year; + Month = month; + Remark = remark; + Detail = new List(); + } + + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + [DisplayName("填报公司代码")] + public string FillInCompanyCode { get; set; } + [DisplayName("年")] + public int Year { get; set; } + + [DisplayName("月")] + public int Month { get; set; } + + [DisplayName("备注")] + public string Remark { get; set; } + public virtual ICollection Detail { get; set; } + } +} diff --git a/src/API.Domain/DataSources/TO_GGC01Detail.cs b/src/API.Domain/DataSources/TO_GGC01Detail.cs new file mode 100644 index 0000000..6ee90c7 --- /dev/null +++ b/src/API.Domain/DataSources/TO_GGC01Detail.cs @@ -0,0 +1,86 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.DataSources +{ + [DisplayName("更新改造投资项目输出表子表")] + public class TO_GGC01Detail : Entity + { + public TO_GGC01Detail() + { + + } + + public TO_GGC01Detail(Guid id ,Guid masterId, string rowNum, string assetsCode, string assetsName, string inveAttributes, string projectType, string expenseType, string assetsType, decimal qty, string must, string flagAI, decimal fixedQty, string fixedDate, decimal investmentAmountNoTax, decimal investmentAmount, decimal paymentAmount):base(id) + { + MasterId = masterId; + RowNum = rowNum; + AssetsCode = assetsCode; + AssetsName = assetsName; + InveAttributes = inveAttributes; + ProjectType = projectType; + ExpenseType = expenseType; + AssetsType = assetsType; + Qty = qty; + Must = must; + FlagAI = flagAI; + FixedQty = fixedQty; + FixedDate = fixedDate; + InvestmentAmountNoTax = investmentAmountNoTax; + InvestmentAmount = investmentAmount; + PaymentAmount = paymentAmount; + } + + public Guid MasterId { set; get; } + + public string RowNum { get; set; } + + [DisplayName("资产代码")] + public string AssetsCode { get; set; } + + + [DisplayName("资产名称")] + public string AssetsName { get; set; } + + [DisplayName("投资属性")] + public string InveAttributes { get; set; } + + [DisplayName("项目类型")] + public string ProjectType { get; set; } + + [DisplayName("费用支出类别")] + public string ExpenseType { get; set; } + + [DisplayName("资产类别")] + public string AssetsType { get; set; } + + [DisplayName("数量")] + [Column(TypeName = "decimal(18,6)")] + public decimal Qty { get; set; } + + [DisplayName("投资必要性")] + public string Must { get; set; } + + [DisplayName("智能化改造")] + public string FlagAI { get; set; } + [DisplayName("转固金额")] + [Column(TypeName = "decimal(18,6)")] + public decimal FixedQty { get; set; } + [DisplayName("转固日期")] + public string FixedDate { get; set; } + [Column(TypeName = "decimal(18,6)")] + public decimal InvestmentAmountNoTax { set; get; } + [DisplayName("投资金额")] + [Column(TypeName = "decimal(18,6)")] + public decimal InvestmentAmount { set; get; } + [DisplayName("付款金额")] + [Column(TypeName = "decimal(18,6)")] + public decimal PaymentAmount { set; get; } + } +} diff --git a/src/API.Domain/DataSources/TO_GGC01Manager.cs b/src/API.Domain/DataSources/TO_GGC01Manager.cs new file mode 100644 index 0000000..a118602 --- /dev/null +++ b/src/API.Domain/DataSources/TO_GGC01Manager.cs @@ -0,0 +1,117 @@ +using API.BudgetDataSources; +using API.Enums; +using API.ManageBase; +using EFCore.BulkExtensions; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Services; +using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.Uow; +namespace API.DataSources +{ + + public class TO_GGC01Manager : DomainService + { + private readonly IAPIEfCoreRepository _repository; + private readonly IRepository _brepository; + private readonly IRepository _companyrepository; + public TO_GGC01Manager(IAPIEfCoreRepository repository, IRepository brepository, IRepository companyrepository) + { + + _repository = repository; + _brepository = brepository; + _companyrepository = companyrepository; + } + [UnitOfWork] + public async virtual Task Insterggc011(int year) + { + Logger.LogInformation($"GGC01开始同步【{year}年】数据!"); + var Comapnys = await _companyrepository.GetListAsync(r => !string.IsNullOrEmpty(r.BudgetCompanyCode)); + var dicComapny = Comapnys.ToDictionary(r => r.BudgetCompanyCode); + List entitys = new List(); + List entitydetails = new List(); + try + { + var ggc01s = await _brepository.GetListAsync(); + var ggc01Group = ggc01s.GroupBy(r =>new { r.CompanyCode, r.FillInCompanyCode }); + foreach (var ggc01 in ggc01Group) + { + for (int i = 1; i < 13; i++) + { + string cellname = year + "Y" + i + "M"; + var entity = new TO_GGC01( + GuidGenerator.Create(), + dicComapny.ContainsKey(ggc01.Key.CompanyCode) ? dicComapny[ggc01.Key.CompanyCode].CompanyCode : ggc01.Key.CompanyCode, + dicComapny.ContainsKey(ggc01.Key.FillInCompanyCode) ? dicComapny[ggc01.Key.FillInCompanyCode].CompanyCode : ggc01.Key.FillInCompanyCode, + year, + i, + DateTime.Now.ToString() + ); + entity.CreationTime = DateTime.Now; + entitys.Add(entity); + foreach (var monthitem in ggc01) + { + var value = DataHelper.GetDataList(monthitem.DataString).FirstOrDefault(r => r.C == cellname)?.Vs; + var detail = new TO_GGC01Detail( + GuidGenerator.Create(), + entity.Id, + monthitem.RowNum, + monthitem.AssetsCode, + monthitem.AssetsName, + monthitem.InveAttributes, + monthitem.ProjectType, + monthitem.ExpenseType, + monthitem.AssetsType, + monthitem.Qty, + monthitem.Must, + monthitem.FlagAI, + monthitem.FixedQty, + monthitem.FixedDate, + value.Count() == 0 ? 0 : value[0], + value.Count() == 0 ? 0 : value[1], + value.Count() == 0 ? 0 : value[2] + ); + entitydetails.Add(detail); + } + + } + } + var db = await _repository.GetDbContextAsync(); + await db.BulkInsertAsync(entitys); + await db.BulkInsertAsync(entitydetails); + Logger.LogInformation($"GGC01完成【{year}年】数据同步!"); + return true; + } + catch (Exception ex) + { + Logger.LogError(ex.Message + ex.InnerException.Message); + return false; + } + } + public async virtual Task Deleteggc01(int year) + { + Logger.LogInformation($"GGC01开始删除【{year}年】数据!"); + try + { + await _repository.DeleteAsync(r => r.Year == year); + Logger.LogInformation($"GGC01完成删除【{year}年】数据!"); + return true; + } + catch (Exception ex) + { + Logger.LogError("GGC01删除数据失败" + ex.Message + ex.InnerException.Message); + return false; + } + + } + + + + } +} diff --git a/src/API.Domain/DataSources/TO_HRC01.cs b/src/API.Domain/DataSources/TO_HRC01.cs new file mode 100644 index 0000000..69f6c3b --- /dev/null +++ b/src/API.Domain/DataSources/TO_HRC01.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities.Auditing; + +namespace API.DataSources +{ + [DisplayName("人事费用率KPI及工资总额预算输出表")] + public class TO_HRC01 : AuditedAggregateRoot + { + public TO_HRC01() + { + + } + + public TO_HRC01(Guid id ,string companyCode, int year, int month, string remark):base(id) + { + CompanyCode = companyCode; + Year = year; + Month = month; + Remark = remark; + Detail = new List() ; + } + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + + [DisplayName("年")] + public int Year { get; set; } + + [DisplayName("月")] + public int Month { get; set; } + + [DisplayName("备注")] + public string Remark { get; set; } + public virtual ICollection Detail { get; set; } + } +} diff --git a/src/API.Domain/DataSources/TO_HRC01Detail.cs b/src/API.Domain/DataSources/TO_HRC01Detail.cs new file mode 100644 index 0000000..b3ed8fe --- /dev/null +++ b/src/API.Domain/DataSources/TO_HRC01Detail.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.DataSources +{ + public class TO_HRC01Detail : Entity + { + public TO_HRC01Detail() + { + + } + + public TO_HRC01Detail(Guid id,Guid masterId, string rowNum, string project, string trainPeopleQty, decimal value):base(id) + { + MasterId = masterId; + RowNum = rowNum; + Project = project; + TrainPeopleQty = trainPeopleQty; + Value = value; + } + + public Guid MasterId { set; get; } + + public string RowNum { get; set; } + + public string Project { set; get; } + [DisplayName("计量单位")] + public string TrainPeopleQty { set; get; } + [Column(TypeName = "decimal(18,6)")] + public decimal Value { set; get; } + } +} diff --git a/src/API.Domain/DataSources/TO_HRC01Manager.cs b/src/API.Domain/DataSources/TO_HRC01Manager.cs new file mode 100644 index 0000000..6a00f97 --- /dev/null +++ b/src/API.Domain/DataSources/TO_HRC01Manager.cs @@ -0,0 +1,105 @@ +using API.BudgetDataSources; +using API.Enums; +using API.ManageBase; +using EFCore.BulkExtensions; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Services; +using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.Uow; + +namespace API.DataSources +{ + + public class TO_HRC01Manager : DomainService + { + private readonly IAPIEfCoreRepository _repository; + private readonly IRepository _brepository; + private readonly IRepository _companyrepository; + public TO_HRC01Manager(IAPIEfCoreRepository repository, IRepository brepository, IRepository companyrepository) + { + + _repository = repository; + _brepository = brepository; + _companyrepository = companyrepository; + } + [UnitOfWork] + public async virtual Task Insterhrc01(int year) + { + Logger.LogInformation($"HRC01开始同步【{year}年】数据!"); + var Comapnys = await _companyrepository.GetListAsync(r => !string.IsNullOrEmpty(r.BudgetCompanyCode)); + var dicComapny = Comapnys.ToDictionary(r => r.BudgetCompanyCode); + List entitys = new List(); + List entitydetails = new List(); + try + { + var hrc01s = await _brepository.GetListAsync(); + var hrc01Group = hrc01s.GroupBy(r => r.CompanyCode); + foreach (var hrc01 in hrc01Group) + { + for (int i = 1; i < 13; i++) + { + string cellname = year + "Y" + i + "M"; + var entity = new TO_HRC01( + GuidGenerator.Create(), + dicComapny.ContainsKey(hrc01.Key) ? dicComapny[hrc01.Key].CompanyCode : hrc01.Key, + year, + i, + DateTime.Now.ToString() + ); + entity.CreationTime = DateTime.Now; + entitys.Add(entity); + foreach (var monthitem in hrc01) + { + var value = DataHelper.GetDataList(monthitem.DataString).FirstOrDefault(r => r.C == cellname)?.V??0; + var detail = new TO_HRC01Detail( + GuidGenerator.Create(), + entity.Id, + monthitem.RowNum, + monthitem.Project, + monthitem.TrainPeopleQty, + value + ); + entitydetails.Add(detail); + } + + } + } + var db = await _repository.GetDbContextAsync(); + await db.BulkInsertAsync(entitys); + await db.BulkInsertAsync(entitydetails); + Logger.LogInformation($"HRC01完成【{year}年】数据同步!"); + return true; + } + catch (Exception ex) + { + Logger.LogError(ex.Message + ex.InnerException.Message); + return false; + } + } + public async virtual Task Deletehrc01(int year) + { + Logger.LogInformation($"HRC01开始删除【{year}年】数据!"); + try + { + await _repository.DeleteAsync(r => r.Year == year); + Logger.LogInformation($"HRC01完成删除【{year}年】数据!"); + return true; + } + catch (Exception ex) + { + Logger.LogError("HRC01删除数据失败" + ex.Message + ex.InnerException.Message); + return false; + } + } + + + + } +} diff --git a/src/API.Domain/DataSources/TO_JGC01.cs b/src/API.Domain/DataSources/TO_JGC01.cs new file mode 100644 index 0000000..8f0b39a --- /dev/null +++ b/src/API.Domain/DataSources/TO_JGC01.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities.Auditing; + +namespace API.DataSources +{ + [DisplayName("技术改造投资项目输出表")] + public class TO_JGC01 : AuditedAggregateRoot + { + public TO_JGC01() + { + + } + + public TO_JGC01(Guid id ,string companyCode,string fillInCompanyCode, int year, int month, string remark):base(id) + { + CompanyCode = companyCode; + FillInCompanyCode = fillInCompanyCode; + Year = year; + Month = month; + Remark = remark; + Detail = new List(); + } + + [DisplayName("公司代码")] + public string CompanyCode { get; set; } + [DisplayName("填报公司代码")] + public string FillInCompanyCode { get; set; } + [DisplayName("年")] + public int Year { get; set; } + + [DisplayName("月")] + public int Month { get; set; } + + [DisplayName("备注")] + public string Remark { get; set; } + public virtual ICollection Detail { get; set; } + } +} diff --git a/src/API.Domain/DataSources/TO_JGC01Detail.cs b/src/API.Domain/DataSources/TO_JGC01Detail.cs new file mode 100644 index 0000000..c4fd76d --- /dev/null +++ b/src/API.Domain/DataSources/TO_JGC01Detail.cs @@ -0,0 +1,96 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.DataSources +{ + [DisplayName("技术改造投资项目输出表子表")] + public class TO_JGC01Detail:Entity + { + public TO_JGC01Detail() + { + + } + + public TO_JGC01Detail(Guid id ,Guid masterId, string rowNum, string projectCode, string projectName, string otherType, string invComposition, string expenseType, string assetsType, string assetsName, string assetsCode, decimal invQtyTotal, decimal invQtyOver, decimal invQtyOut, decimal fixedQty, string fixedDate, decimal investmentAmountNoTax, decimal investmentAmount, decimal paymentAmount):base(id) + { + MasterId = masterId; + RowNum = rowNum; + ProjectCode = projectCode; + ProjectName = projectName; + OtherType = otherType; + InvComposition = invComposition; + ExpenseType = expenseType; + AssetsType = assetsType; + AssetsName = assetsName; + AssetsCode = assetsCode; + InvQtyTotal = invQtyTotal; + InvQtyOver = invQtyOver; + InvQtyOut = invQtyOut; + FixedQty = fixedQty; + FixedDate = fixedDate; + InvestmentAmountNoTax = investmentAmountNoTax; + InvestmentAmount = investmentAmount; + PaymentAmount = paymentAmount; + } + + public Guid MasterId { set; get; } + + public string RowNum { get; set; } + + public string ProjectCode { set; get; } + + public string ProjectName { set; get; } + + [DisplayName("其他分类")] + public string OtherType { get; set; } + + [DisplayName("投资构成")] + public string InvComposition { get; set; } + + [DisplayName("费用支出类别")] + public string ExpenseType { get; set; } + + [DisplayName("资产类别")] + public string AssetsType { get; set; } + + [DisplayName("资产名称")] + public string AssetsName { get; set; } + + [DisplayName("资产代码")] + public string AssetsCode { get; set; } + + [DisplayName("投资总体概算")] + [Column(TypeName = "decimal(18,6)")] + public decimal InvQtyTotal { get; set; } + + [DisplayName("投资完成金额")] + [Column(TypeName = "decimal(18,6)")] + public decimal InvQtyOver { get; set; } + + [DisplayName("已付款金额")] + [Column(TypeName = "decimal(18,6)")] + public decimal InvQtyOut { get; set; } + + [DisplayName("转固金额")] + [Column(TypeName = "decimal(18,6)")] + public decimal FixedQty { get; set; } + + [DisplayName("转固日期")] + public string FixedDate { get; set; } + [DisplayName("投资金额不含税")] + [Column(TypeName = "decimal(18,6)")] + public decimal InvestmentAmountNoTax { set; get; } + [DisplayName("投资金额")] + [Column(TypeName = "decimal(18,6)")] + public decimal InvestmentAmount { set; get; } + [DisplayName("付款金额")] + [Column(TypeName = "decimal(18,6)")] + public decimal PaymentAmount { set; get; } + } +} diff --git a/src/API.Domain/DataSources/TO_JGC01Manager.cs b/src/API.Domain/DataSources/TO_JGC01Manager.cs new file mode 100644 index 0000000..1097fda --- /dev/null +++ b/src/API.Domain/DataSources/TO_JGC01Manager.cs @@ -0,0 +1,121 @@ +using API.BudgetDataSources; +using API.Enums; +using API.ManageBase; +using EFCore.BulkExtensions; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Services; +using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.Uow; + +namespace API.DataSources +{ + + + public class TO_JGC01Manager : DomainService + { + private readonly IAPIEfCoreRepository _repository; + private readonly IRepository _brepository; + private readonly IRepository _companyrepository; + public TO_JGC01Manager(IAPIEfCoreRepository repository, IRepository brepository, IRepository companyrepository) + { + + _repository = repository; + _brepository = brepository; + _companyrepository = companyrepository; + } + [UnitOfWork] + public async virtual Task Insterjgc01(int year) + { + Logger.LogInformation($"JGC01开始同步【{year}年】数据!"); + var Comapnys = await _companyrepository.GetListAsync(r => !string.IsNullOrEmpty(r.BudgetCompanyCode)); + var dicComapny = Comapnys.ToDictionary(r => r.BudgetCompanyCode); + List entitys = new List(); + List entitydetails = new List(); + try + { + var jgc01s = await _brepository.GetListAsync(); + var jgc01Group = jgc01s.GroupBy(r =>new { r.CompanyCode, r.FillInCompanyCode }); + foreach (var jgc01 in jgc01Group) + { + for (int i = 1; i < 13; i++) + { + string cellname = year + "Y" + i + "M"; + var entity = new TO_JGC01( + GuidGenerator.Create(), + dicComapny.ContainsKey(jgc01.Key.CompanyCode) ? dicComapny[jgc01.Key.CompanyCode].CompanyCode : jgc01.Key.CompanyCode, + dicComapny.ContainsKey(jgc01.Key.FillInCompanyCode) ? dicComapny[jgc01.Key.FillInCompanyCode].CompanyCode : jgc01.Key.FillInCompanyCode, + year, + i, + DateTime.Now.ToString() + ); + entity.CreationTime = DateTime.Now; + entitys.Add(entity); + foreach (var monthitem in jgc01) + { + var value = DataHelper.GetDataList(monthitem.DataString).FirstOrDefault(r => r.C == cellname)?.Vs; + var detail = new TO_JGC01Detail( + GuidGenerator.Create(), + entity.Id, + monthitem.RowNum, + monthitem.ProjectCode , + monthitem.ProjectName , + monthitem.OtherType, + monthitem.InvComposition , + monthitem.ExpenseType , + monthitem.AssetsType , + monthitem.AssetsName , + monthitem.AssetsCode , + monthitem.InvQtyTotal , + monthitem.InvQtyOver, + monthitem.InvQtyOut , + monthitem.FixedQty, + monthitem.FixedDate, + value.Count() == 0 ? 0 : value[0], + value.Count() == 0 ? 0 : value[1], + value.Count() == 0 ? 0 : value[2] + ); + entitydetails.Add(detail); + } + + } + } + var db = await _repository.GetDbContextAsync(); + await db.BulkInsertAsync(entitys); + await db.BulkInsertAsync(entitydetails); + Logger.LogInformation($"JGC01完成【{year}年】数据同步!"); + return true; + } + catch (Exception ex) + { + Logger.LogError(ex.Message + ex.InnerException.Message); + return false; + } + } + public async virtual Task Deletejgc01(int year) + { + Logger.LogInformation($"JGC01开始删除【{year}年】数据!"); + try + { + await _repository.DeleteAsync(r => r.Year == year); + Logger.LogInformation($"JGC01完成删除【{year}年】数据!"); + return true; + } + catch (Exception ex) + { + Logger.LogError("JGC01删除数据失败" + ex.Message + ex.InnerException.Message); + return false; + } + + } + + + + } +} diff --git a/src/API.Domain/DataSources/TS_XSA04.cs b/src/API.Domain/DataSources/TS_XSA04.cs new file mode 100644 index 0000000..e4ccdce --- /dev/null +++ b/src/API.Domain/DataSources/TS_XSA04.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities.Auditing; + +namespace API.DataSources +{ + public class TS_XSA04 : AuditedAggregateRoot + { + public TS_XSA04() + { + + } + + public TS_XSA04(Guid id, int year, int month, string customerCode, string customerName, string vehicleTypeCode, string vehicleTypeName, string producLocation, decimal totalSales,decimal monthSales) : base(id) + { + Year = year; + Month = month; + CustomerCode = customerCode; + CustomerName = customerName; + VehicleTypeCode = vehicleTypeCode; + VehicleTypeName = vehicleTypeName; + ProducLocation = producLocation; + TotalSales = totalSales; + MonthSales = monthSales; + } + + [DisplayName("年")] + public int Year { get; set; } + + [DisplayName("月")] + public int Month { get; set; } + + [DisplayName("客户代码")] + public string CustomerCode { get; set; } + + [DisplayName("客户名称")] + public string CustomerName { get; set; } + + [DisplayName("车型代码")] + public string VehicleTypeCode { get; set; } + + [DisplayName("车型名称")] + public string VehicleTypeName { get; set; } + + [DisplayName("生产地点")] + public string ProducLocation { get; set; } + + [DisplayName("整车销量")] + [Column(TypeName = "decimal(18,6)")] + public decimal TotalSales { get; set; } + + [DisplayName("月销量")] + [Column(TypeName = "decimal(18,6)")] + public decimal MonthSales { get; set; } + } +} diff --git a/src/API.Domain/DataSources/TS_XSA04Manager.cs b/src/API.Domain/DataSources/TS_XSA04Manager.cs new file mode 100644 index 0000000..0d10912 --- /dev/null +++ b/src/API.Domain/DataSources/TS_XSA04Manager.cs @@ -0,0 +1,95 @@ +using API.BudgetDataSources; +using API.Enums; +using API.ManageBase; +using EFCore.BulkExtensions; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Services; +using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.Uow; + +namespace API.DataSources +{ + + + public class TS_XSA04Manager : DomainService + { + private readonly IAPIEfCoreRepository _repository; + private readonly IRepository _brepository; + private readonly IRepository _companyrepository; + public TS_XSA04Manager(IAPIEfCoreRepository repository, IRepository brepository, IRepository companyrepository) + { + + _repository = repository; + _brepository = brepository; + _companyrepository = companyrepository; + } + [UnitOfWork] + public async virtual Task InsterXSA04(int year) + { + Logger.LogInformation($"XSA04开始同步【{year}年】数据!"); + List entitys = new List(); + try + { + var XSA04s = await _brepository.GetListAsync(); + + foreach (var XSA04 in XSA04s) + { + for (int i = 1; i < 13; i++) + { + string cellname = year + "Y" + i + "M"; + var value = DataHelper.GetDataList(XSA04.DataString).FirstOrDefault(r => r.C == cellname)?.V??0; + var entity = new TS_XSA04( + GuidGenerator.Create(), + year, + i, + XSA04.CustomerCode, + XSA04.CustomerName , + XSA04.VehicleTypeCode , + XSA04.VehicleTypeName , + XSA04.ProducLocation, + XSA04.TotalSales, + value + ); + entity.CreationTime = DateTime.Now; + entitys.Add(entity); + } + } + var db = await _repository.GetDbContextAsync(); + await db.BulkInsertAsync(entitys); + Logger.LogInformation($"XSA04完成【{year}年】数据同步!"); + return true; + } + catch (Exception ex) + { + Logger.LogError(ex.Message + ex.InnerException.Message); + return false; + } + } + public async virtual Task DeleteXSA04(int year) + { + Logger.LogInformation($"XSA04开始删除【{year}年】数据!"); + try + { + await _repository.DeleteAsync(r => r.Year == year); + Logger.LogInformation($"XSA04完成删除【{year}年】数据!"); + return true; + } + catch (Exception ex) + { + Logger.LogError("XSA04删除数据失败" + ex.Message + ex.InnerException.Message); + return false; + } + + } + + + + } +} diff --git a/src/API.Domain/IAPIEfCoreRepository.cs b/src/API.Domain/IAPIEfCoreRepository.cs new file mode 100644 index 0000000..0092062 --- /dev/null +++ b/src/API.Domain/IAPIEfCoreRepository.cs @@ -0,0 +1,21 @@ +using API.Filter; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; +using Volo.Abp.Domain.Repositories.EntityFrameworkCore; + +namespace API +{ + public interface IAPIEfCoreRepository : IEfCoreRepository where TEntity : class, IEntity + { + // Task> GetAllAsync(TKey branchId, bool includeDetails = false, CancellationToken cancellationToken = default); + // Task GetCountAsync(TKey branchId, CancellationToken cancellationToken = default); + Task GetCountByFilterAsync(List filters, CancellationToken cancellationToken = default); + Task> GetListByFilterAsync(List filters, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, bool includeDetails = false, CancellationToken cancellationToken = default); + Task Import3Async(IEnumerable entitys, CancellationToken cancellationToken = default); + } +} diff --git a/src/API.Domain/IdentityServer/IdentityServerDataSeedContributor.cs b/src/API.Domain/IdentityServer/IdentityServerDataSeedContributor.cs new file mode 100644 index 0000000..67d1bad --- /dev/null +++ b/src/API.Domain/IdentityServer/IdentityServerDataSeedContributor.cs @@ -0,0 +1,288 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using IdentityServer4.Models; +using Microsoft.Extensions.Configuration; +using Volo.Abp.Authorization.Permissions; +using Volo.Abp.Data; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Guids; +using Volo.Abp.IdentityServer.ApiResources; +using Volo.Abp.IdentityServer.ApiScopes; +using Volo.Abp.IdentityServer.Clients; +using Volo.Abp.IdentityServer.IdentityResources; +using Volo.Abp.MultiTenancy; +using Volo.Abp.PermissionManagement; +using Volo.Abp.Uow; +using ApiResource = Volo.Abp.IdentityServer.ApiResources.ApiResource; +using ApiScope = Volo.Abp.IdentityServer.ApiScopes.ApiScope; +using Client = Volo.Abp.IdentityServer.Clients.Client; + +namespace API.IdentityServer +{ + public class IdentityServerDataSeedContributor : IDataSeedContributor, ITransientDependency + { + private readonly IApiResourceRepository _apiResourceRepository; + private readonly IApiScopeRepository _apiScopeRepository; + private readonly IClientRepository _clientRepository; + private readonly IIdentityResourceDataSeeder _identityResourceDataSeeder; + private readonly IGuidGenerator _guidGenerator; + private readonly IPermissionDataSeeder _permissionDataSeeder; + private readonly IConfiguration _configuration; + private readonly ICurrentTenant _currentTenant; + + public IdentityServerDataSeedContributor( + IClientRepository clientRepository, + IApiResourceRepository apiResourceRepository, + IApiScopeRepository apiScopeRepository, + IIdentityResourceDataSeeder identityResourceDataSeeder, + IGuidGenerator guidGenerator, + IPermissionDataSeeder permissionDataSeeder, + IConfiguration configuration, + ICurrentTenant currentTenant) + { + _clientRepository = clientRepository; + _apiResourceRepository = apiResourceRepository; + _apiScopeRepository = apiScopeRepository; + _identityResourceDataSeeder = identityResourceDataSeeder; + _guidGenerator = guidGenerator; + _permissionDataSeeder = permissionDataSeeder; + _configuration = configuration; + _currentTenant = currentTenant; + } + + [UnitOfWork] + public virtual async Task SeedAsync(DataSeedContext context) + { + using (_currentTenant.Change(context?.TenantId)) + { + await _identityResourceDataSeeder.CreateStandardResourcesAsync(); + await CreateApiResourcesAsync(); + await CreateApiScopesAsync(); + await CreateClientsAsync(); + } + } + + private async Task CreateApiScopesAsync() + { + await CreateApiScopeAsync("API"); + } + + private async Task CreateApiResourcesAsync() + { + var commonApiUserClaims = new[] + { + "email", + "email_verified", + "name", + "phone_number", + "phone_number_verified", + "role" + }; + + await CreateApiResourceAsync("API", commonApiUserClaims); + } + + private async Task CreateApiResourceAsync(string name, IEnumerable claims) + { + var apiResource = await _apiResourceRepository.FindByNameAsync(name); + if (apiResource == null) + { + apiResource = await _apiResourceRepository.InsertAsync( + new ApiResource( + _guidGenerator.Create(), + name, + name + " API" + ), + autoSave: true + ); + } + + foreach (var claim in claims) + { + if (apiResource.FindClaim(claim) == null) + { + apiResource.AddUserClaim(claim); + } + } + + return await _apiResourceRepository.UpdateAsync(apiResource); + } + + private async Task CreateApiScopeAsync(string name) + { + var apiScope = await _apiScopeRepository.GetByNameAsync(name); + if (apiScope == null) + { + apiScope = await _apiScopeRepository.InsertAsync( + new ApiScope( + _guidGenerator.Create(), + name, + name + " API" + ), + autoSave: true + ); + } + + return apiScope; + } + + private async Task CreateClientsAsync() + { + var commonScopes = new[] + { + "email", + "openid", + "profile", + "role", + "phone", + "address", + "API" + }; + + var configurationSection = _configuration.GetSection("IdentityServer:Clients"); + + + //Console Test / Angular Client + var consoleAndAngularClientId = configurationSection["API_App:ClientId"]; + if (!consoleAndAngularClientId.IsNullOrWhiteSpace()) + { + var webClientRootUrl = configurationSection["API_App:RootUrl"]?.TrimEnd('/'); + + await CreateClientAsync( + name: consoleAndAngularClientId, + scopes: commonScopes, + grantTypes: new[] { "password", "client_credentials", "authorization_code" }, + secret: (configurationSection["API_App:ClientSecret"] ?? "1q2w3e*").Sha256(), + requireClientSecret: false, + redirectUri: webClientRootUrl, + postLogoutRedirectUri: webClientRootUrl, + corsOrigins: new[] { webClientRootUrl.RemovePostFix("/") } + ); + } + + + + // Swagger Client + var swaggerClientId = configurationSection["API_Swagger:ClientId"]; + if (!swaggerClientId.IsNullOrWhiteSpace()) + { + var swaggerRootUrl = configurationSection["API_Swagger:RootUrl"].TrimEnd('/'); + + await CreateClientAsync( + name: swaggerClientId, + scopes: commonScopes, + grantTypes: new[] { "authorization_code" }, + secret: configurationSection["API_Swagger:ClientSecret"]?.Sha256(), + requireClientSecret: false, + redirectUri: $"{swaggerRootUrl}/swagger/oauth2-redirect.html", + corsOrigins: new[] { swaggerRootUrl.RemovePostFix("/") } + ); + } + } + + private async Task CreateClientAsync( + string name, + IEnumerable scopes, + IEnumerable grantTypes, + string secret = null, + string redirectUri = null, + string postLogoutRedirectUri = null, + string frontChannelLogoutUri = null, + bool requireClientSecret = true, + bool requirePkce = false, + IEnumerable permissions = null, + IEnumerable corsOrigins = null) + { + var client = await _clientRepository.FindByClientIdAsync(name); + if (client == null) + { + client = await _clientRepository.InsertAsync( + new Client( + _guidGenerator.Create(), + name + ) + { + ClientName = name, + ProtocolType = "oidc", + Description = name, + AlwaysIncludeUserClaimsInIdToken = true, + AllowOfflineAccess = true, + AbsoluteRefreshTokenLifetime = 31536000, //365 days + AccessTokenLifetime = 31536000, //365 days + AuthorizationCodeLifetime = 300, + IdentityTokenLifetime = 300, + RequireConsent = false, + FrontChannelLogoutUri = frontChannelLogoutUri, + RequireClientSecret = requireClientSecret, + RequirePkce = requirePkce + }, + autoSave: true + ); + } + + foreach (var scope in scopes) + { + if (client.FindScope(scope) == null) + { + client.AddScope(scope); + } + } + + foreach (var grantType in grantTypes) + { + if (client.FindGrantType(grantType) == null) + { + client.AddGrantType(grantType); + } + } + + if (!secret.IsNullOrEmpty()) + { + if (client.FindSecret(secret) == null) + { + client.AddSecret(secret); + } + } + + if (redirectUri != null) + { + if (client.FindRedirectUri(redirectUri) == null) + { + client.AddRedirectUri(redirectUri); + } + } + + if (postLogoutRedirectUri != null) + { + if (client.FindPostLogoutRedirectUri(postLogoutRedirectUri) == null) + { + client.AddPostLogoutRedirectUri(postLogoutRedirectUri); + } + } + + if (permissions != null) + { + await _permissionDataSeeder.SeedAsync( + ClientPermissionValueProvider.ProviderName, + name, + permissions, + null + ); + } + + if (corsOrigins != null) + { + foreach (var origin in corsOrigins) + { + if (!origin.IsNullOrWhiteSpace() && client.FindCorsOrigin(origin) == null) + { + client.AddCorsOrigin(origin); + } + } + } + + return await _clientRepository.UpdateAsync(client); + } + } +} diff --git a/src/API.Domain/JQDataSources/ODS_JQ_LRB_JQ.cs b/src/API.Domain/JQDataSources/ODS_JQ_LRB_JQ.cs new file mode 100644 index 0000000..dbdfe4c --- /dev/null +++ b/src/API.Domain/JQDataSources/ODS_JQ_LRB_JQ.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.JQDataSources +{ + + public class ODS_JQ_LRB_JQ :Entity + { + + public ODS_JQ_LRB_JQ() + { + + } + [DisplayName("公司代码")] + public string COMPANY { get; set; } + [DisplayName("项目")] + public string ITEM { get; set; } + [DisplayName("行次")] + public string ROW_NUM { get; set; } + [DisplayName("本月数")] + public string NUM_MONTH { get; set; } + [DisplayName("本年累计数")] + public string ADD_UP_NUM_YEAR { get; set; } + [DisplayName("创建时间")] + public DateTime CREATE_TIME { get; set; } + [DisplayName("时间")] + public string DATA_TIME { get; set; } + [DisplayName("上年同期累计数")] + public string LAST_YEAR_SAME_PERIOD { get; set; } + [DisplayName("表名")] + public string SHEET_NAME { get; set; } + [DisplayName("报表编号")] + public string TABLENUM { get; set; } + + // public int ID { get; set; } + + //public override object[] GetKeys() + //{ + // throw new NotImplementedException(); + //} + + //[Key] //主键 + //[Column("ID")] //指定数据库对应表栏位名称 + //public int Id { get; set; } + //[Column("ITEM")] + //public string Item { get; set; } + //[Column("ROW_NUM")] + //public string Row_num { get; set; } + + //public override object[] GetKeys() + //{ + // throw new NotImplementedException(); + //} + } +} diff --git a/src/API.Domain/JQDataSources/ODS_JQ_LRMXB_JQ.cs b/src/API.Domain/JQDataSources/ODS_JQ_LRMXB_JQ.cs new file mode 100644 index 0000000..b19b1bb --- /dev/null +++ b/src/API.Domain/JQDataSources/ODS_JQ_LRMXB_JQ.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.JQDataSources +{ + public class ODS_JQ_LRMXB_JQ : Entity + { + public ODS_JQ_LRMXB_JQ() + { + + } + [DisplayName("公司代码")] + public string COMPANY { get; set; } + [DisplayName("项目")] + public string ITEM { get; set; } + [DisplayName("行次")] + public string ROW_NUM { get; set; } + [DisplayName("销售数量本月数")] + public string SALE_MONTH { get; set; } + [DisplayName("销售数量本年累计数")] + public string SALE_YEAR { get; set; } + [DisplayName("业务收入本月数")] + public string IN_MONTH { get; set; } + [DisplayName("业务收入本年累计数")] + public string IN_YEAR { get; set; } + [DisplayName("业务成本本月数")] + public string COST_MONTH { get; set; } + [DisplayName("业务成本本年累计数")] + public string COST_YEAR { get; set; } + [DisplayName("税金及附加本月数")] + public string TAX_YEAR { get; set; } + [DisplayName("税金及附加本年累计数")] + public string TAX_MONTH { get; set; } + [DisplayName("业务利润本月数")] + public string PROFIT_MONTH { get; set; } + [DisplayName("业务利润本年累计数")] + public string PROFIT_YEAR { get; set; } + [DisplayName("创建时间")] + public DateTime CREATE_TIME { get; set; } + [DisplayName("表单名称")] + public string SHEET_NAME { get; set; } + [DisplayName("数据时间")] + public string DATA_TIME { get; set; } + } +} diff --git a/src/API.Domain/JQDataSources/ODS_JQ_QJFYB_JQ.cs b/src/API.Domain/JQDataSources/ODS_JQ_QJFYB_JQ.cs new file mode 100644 index 0000000..283c255 --- /dev/null +++ b/src/API.Domain/JQDataSources/ODS_JQ_QJFYB_JQ.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.JQDataSources +{ + public class ODS_JQ_QJFYB_JQ : Entity + { + public ODS_JQ_QJFYB_JQ() + { + + } + + [DisplayName("公司代码")] + public string COMPANY { get; set; } + + [DisplayName("项目")] + public string ITEM { get; set; } + [DisplayName("行次")] + public string ROW_NUM { get; set; } + [DisplayName("本月数")] + public string NUM_MONTH { get; set; } + [DisplayName("本年累计数")] + public string ADD_UP_NUM_YEAR { get; set; } + [DisplayName("创建时间")] + public DateTime CREATE_TIME { get; set; } + [DisplayName("时间")] + public string DATA_TIME { get; set; } + [DisplayName("上年累计数")] + public string LAST_YEAR_ADD_UP { get; set; } + [DisplayName("表名")] + public string SHEET_NAME { get; set; } + [DisplayName("报表编号")] + public string TABLENUM { get; set; } + } +} diff --git a/src/API.Domain/JQDataSources/ODS_JQ_SCCBB_JQ.cs b/src/API.Domain/JQDataSources/ODS_JQ_SCCBB_JQ.cs new file mode 100644 index 0000000..b66ca77 --- /dev/null +++ b/src/API.Domain/JQDataSources/ODS_JQ_SCCBB_JQ.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.JQDataSources +{ + public class ODS_JQ_SCCBB_JQ : Entity + { + public ODS_JQ_SCCBB_JQ() + { + + } + [DisplayName("公司代码")] + public string COMPANY { get; set; } + [DisplayName("项目")] + public string ITEM { get; set; } + [DisplayName("行次")] + public string ROW_NUM { get; set; } + [DisplayName("月初余额")] + public string MONTH_BEGINNING { get; set; } + [DisplayName("投入本月")] + public string TR_MONTH { get; set; } + [DisplayName("完工本月")] + public string WG_MONTH { get; set; } + [DisplayName("完工累计")] + public string WG_ADD_UP { get; set; } + [DisplayName("月末余额")] + public string MONTH_CLOSING { get; set; } + [DisplayName("投入累计")] + public string TR_ADD_UP { get; set; } + [DisplayName("创建时间")] + public DateTime CREATE_TIME { get; set; } + [DisplayName("时间")] + public string DATA_TIME { get; set; } + + [DisplayName("表名")] + public string SHEET_NAME { get; set; } + [DisplayName("报表编号")] + public string TABLENUM { get; set; } + } +} diff --git a/src/API.Domain/JQDataSources/ODS_JQ_XJLLB_INNER_MONTH_JQ.cs b/src/API.Domain/JQDataSources/ODS_JQ_XJLLB_INNER_MONTH_JQ.cs new file mode 100644 index 0000000..9522f62 --- /dev/null +++ b/src/API.Domain/JQDataSources/ODS_JQ_XJLLB_INNER_MONTH_JQ.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.JQDataSources +{ + public class ODS_JQ_XJLLB_INNER_MONTH_JQ : Entity + { + public ODS_JQ_XJLLB_INNER_MONTH_JQ() + { + + } + [DisplayName("公司代码")] + public string COMPANY { get; set; } + [DisplayName("项目")] + public string ITEM { get; set; } + [DisplayName("行次")] + public string ROW_NUM { get; set; } + [DisplayName("总计")] + public string ALL_TOTAL { get; set; } + [DisplayName("货币资金合计")] + public string HBZJ_TOTAL { get; set; } + [DisplayName("货币资金集团外部")] + public string HBZJ_JTWB { get; set; } + [DisplayName("货币资金集团内部")] + public string HBZJ_JTNB { get; set; } + [DisplayName("应收票据合计")] + public string YSPJ_TOTAL { get; set; } + [DisplayName("应收票据集团外部")] + public string YSPJ_JTWB { get; set; } + [DisplayName("应收票据集团内部")] + public string YSPJ_JTNB { get; set; } + [DisplayName("创建时间")] + public DateTime CREATE_TIME { get; set; } + [DisplayName("时间")] + public string DATA_TIME { get; set; } + [DisplayName("表名")] + public string SHEET_NAME { get; set; } + [DisplayName("报表编号")] + public string TABLENUM { get; set; } + } +} diff --git a/src/API.Domain/JQDataSources/ODS_JQ_ZCFZB_JQ.cs b/src/API.Domain/JQDataSources/ODS_JQ_ZCFZB_JQ.cs new file mode 100644 index 0000000..09b8a94 --- /dev/null +++ b/src/API.Domain/JQDataSources/ODS_JQ_ZCFZB_JQ.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.JQDataSources +{ + public class ODS_JQ_ZCFZB_JQ : Entity + { + public ODS_JQ_ZCFZB_JQ() + { + + } + [DisplayName("公司代码")] + public string COMPANY { get; set; } + [DisplayName("项目")] + public string ITEM { get; set; } + [DisplayName("行次")] + public string ROW_NUM { get; set; } + [DisplayName("期末余额")] + public string CLOSING_BALANCE { get; set; } + [DisplayName("年初余额")] + public string BEGINNING_BALANCE { get; set; } + [DisplayName("创建时间")] + public DateTime CREATE_TIME { get; set; } + [DisplayName("时间")] + public string DATA_TIME { get; set; } + + [DisplayName("资产类别")] + public string ITEM_TYPE { get; set; } + [DisplayName("表单名称")] + public string SHEET_NAME { get; set; } + [DisplayName("报表编号")] + public string TABLENUM { get; set; } + } +} diff --git a/src/API.Domain/JQDataSources/ODS_JQ_ZGXCB_JQ.cs b/src/API.Domain/JQDataSources/ODS_JQ_ZGXCB_JQ.cs new file mode 100644 index 0000000..0232f0b --- /dev/null +++ b/src/API.Domain/JQDataSources/ODS_JQ_ZGXCB_JQ.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.JQDataSources +{ + public class ODS_JQ_ZGXCB_JQ : Entity + { + public ODS_JQ_ZGXCB_JQ() + { + + } + [DisplayName("公司代码")] + public string COMPANY { get; set; } + [DisplayName("项目")] + public string ITEM { get; set; } + [DisplayName("行次")] + public string ROW_NUM { get; set; } + [DisplayName("年初账面余额")] + public string YEAR_BEGINNING { get; set; } + [DisplayName("计提数本月数")] + public string JTS_MONTH { get; set; } + [DisplayName("计提数本年累计数")] + public string JTS_YEAR { get; set; } + [DisplayName("计提数上年同期累计数")] + public string JTS_LAST_YEAR { get; set; } + [DisplayName("支付数本月数")] + public string ZFS_MONTH { get; set; } + [DisplayName("支付数本年累计数")] + public string ZFS_YEAR { get; set; } + [DisplayName("支付数上年同期累计数")] + public string ZFS_LAST_YEAR { get; set; } + [DisplayName("期末账面余额")] + public string YEAR_CLOSING { get; set; } + [DisplayName("创建时间")] + public DateTime CREATE_TIME { get; set; } + [DisplayName("时间")] + public string DATA_TIME { get; set; } + [DisplayName("表名")] + public string SHEET_NAME { get; set; } + [DisplayName("报表编号")] + public string TABLENUM { get; set; } + } +} diff --git a/src/API.Domain/JQDataSources/ODS_JQ_ZQMXB_YSZK_JQ.cs b/src/API.Domain/JQDataSources/ODS_JQ_ZQMXB_YSZK_JQ.cs new file mode 100644 index 0000000..f242a42 --- /dev/null +++ b/src/API.Domain/JQDataSources/ODS_JQ_ZQMXB_YSZK_JQ.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.JQDataSources +{ + public class ODS_JQ_ZQMXB_YSZK_JQ : Entity + { + public ODS_JQ_ZQMXB_YSZK_JQ() + { + + } + [DisplayName("公司代码")] + public string COMPANY { get; set; } + [DisplayName("项目")] + public string ITEM { get; set; } + [DisplayName("年初余额")] + public string BEGINNING_BALANCE { get; set; } + [DisplayName("年末余额")] + public string CLOSING_BALANCE { get; set; } + [DisplayName("账龄0-6")] + public string ZL_M_0_6 { get; set; } + [DisplayName("账龄7-12个月")] + public string ZL_M_7_12 { get; set; } + [DisplayName("账龄1-2年")] + public string ZL_Y_1_2 { get; set; } + [DisplayName("账龄2-3年")] + public string ZL_Y_2_3 { get; set; } + [DisplayName("账龄3-4年")] + public string ZL_Y_3_4 { get; set; } + + [DisplayName("账龄4-5年")] + public string ZL_Y_4_5 { get; set; } + [DisplayName("账龄5年以上")] + public string ZL_Y_5 { get; set; } + [DisplayName("坏账准备")] + public string HZZB { get; set; } + [DisplayName("应收款项净额")] + public string YSKXJE { get; set; } + [DisplayName("一年内是否函证且回函")] + public string YNNSFHZQHH { get; set; } + [DisplayName("本年内是否能全部收回(逾期欠款填列)")] + public string BNNSFNQBHS { get; set; } + [DisplayName("创建时间")] + public DateTime CREATE_TIME { get; set; } + [DisplayName("时间")] + public string DATA_TIME { get; set; } + [DisplayName("表名")] + public string SHEET_NAME { get; set; } + [DisplayName("报表编号")] + public string TABLENUM { get; set; } + } +} diff --git a/src/API.Domain/JQDataSources/ODS_JQ_ZWMXB_YFZK_JQ.cs b/src/API.Domain/JQDataSources/ODS_JQ_ZWMXB_YFZK_JQ.cs new file mode 100644 index 0000000..61eda8e --- /dev/null +++ b/src/API.Domain/JQDataSources/ODS_JQ_ZWMXB_YFZK_JQ.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.JQDataSources +{ + public class ODS_JQ_ZWMXB_YFZK_JQ : Entity + { + public ODS_JQ_ZWMXB_YFZK_JQ() + { + + } + [DisplayName("公司代码")] + public string COMPANY { get; set; } + [DisplayName("项目")] + public string ITEM { get; set; } + [DisplayName("年初余额")] + public string BEGINNING_BALANCE { get; set; } + [DisplayName("年末余额")] + public string CLOSING_BALANCE { get; set; } + [DisplayName("账龄0-6")] + public string ZL_M_0_6 { get; set; } + [DisplayName("账龄7-12个月")] + public string ZL_M_7_12 { get; set; } + [DisplayName("账龄1-2年")] + public string ZL_Y_1_2 { get; set; } + [DisplayName("账龄2-3年")] + public string ZL_Y_2_3 { get; set; } + [DisplayName("账龄3-4年")] + public string ZL_Y_3_4 { get; set; } + + [DisplayName("账龄4-5年")] + public string ZL_Y_4_5 { get; set; } + [DisplayName("账龄5年以上")] + public string ZL_Y_5 { get; set; } + [DisplayName("逾期债务账面金额")] + public string YQZWZMJE { get; set; } + [DisplayName("创建时间")] + public DateTime CREATE_TIME { get; set; } + [DisplayName("时间")] + public string DATA_TIME { get; set; } + [DisplayName("表名")] + public string SHEET_NAME { get; set; } + [DisplayName("报表编号")] + public string TABLENUM { get; set; } + } +} diff --git a/src/API.Domain/JQDataSources/ODS_JQ_ZZFYB_JQ.cs b/src/API.Domain/JQDataSources/ODS_JQ_ZZFYB_JQ.cs new file mode 100644 index 0000000..05ff53a --- /dev/null +++ b/src/API.Domain/JQDataSources/ODS_JQ_ZZFYB_JQ.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; + +namespace API.JQDataSources +{ + public class ODS_JQ_ZZFYB_JQ : Entity + { + public ODS_JQ_ZZFYB_JQ() + { + + } + [DisplayName("公司代码")] + public string COMPANY { get; set; } + [DisplayName("项目")] + public string ITEM { get; set; } + [DisplayName("行次")] + public string ROW_NUM { get; set; } + [DisplayName("本月数")] + public string NUM_MONTH { get; set; } + [DisplayName("本年累计数")] + public string ADD_UP_NUM_YEAR { get; set; } + [DisplayName("创建时间")] + public DateTime CREATE_TIME { get; set; } + [DisplayName("时间")] + public string DATA_TIME { get; set; } + [DisplayName("上年累计数")] + public string LAST_YEAR_ADD_UP { get; set; } + [DisplayName("表名")] + public string SHEET_NAME { get; set; } + [DisplayName("报表编号")] + public string TABLENUM { get; set; } + } +} diff --git a/src/API.Domain/JQDbProperties.cs b/src/API.Domain/JQDbProperties.cs new file mode 100644 index 0000000..0d4f1fe --- /dev/null +++ b/src/API.Domain/JQDbProperties.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Data; + +namespace API +{ + public static class JQDbProperties + { + public static string DbTablePrefix { get; internal set; } = "ODS"; + + public static string DbSchema { get; internal set; } = "C##FAWAYDW"; + + public const string ConnectionStringName = "JQ"; + } +} diff --git a/src/API.Domain/ManageBase/Company.cs b/src/API.Domain/ManageBase/Company.cs new file mode 100644 index 0000000..6fd1e7c --- /dev/null +++ b/src/API.Domain/ManageBase/Company.cs @@ -0,0 +1,63 @@ +using API.Enums; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities.Auditing; + +namespace API.ManageBase +{ + public class Company : FullAuditedAggregateRoot + { + public Company() + { + + } + + public Company(Guid id, string companyCode, string companyName, string budgetCompanyCode, string parentCompany, int displayOrder, int companyLevel, EnumCompanyType companyType, string businessSection, + string typeDescription, string leader, string businessName, decimal startingStockRatio, decimal changingStockRatio, bool isReduceShares) : base(id) + { + CompanyCode = companyCode; + CompanyName = companyName; + BudgetCompanyCode = budgetCompanyCode; + ParentCompany = parentCompany; + DisplayOrder = displayOrder; + CompanyLevel = companyLevel; + CompanyType = companyType; + BusinessSection = businessSection; + TypeDescription = typeDescription; + Leader = leader; + BusinessName = businessName; + StartingStockRatio = startingStockRatio; + ChangingStockRatio = changingStockRatio; + IsReduceShares = isReduceShares; + } + + public string CompanyCode { get; set; } + public string CompanyName { get; set; } + [DisplayName("预算公司代码")] + public string BudgetCompanyCode { get; set; } + public string ParentCompany { get; set; } + public int CompanyLevel { get; set; } + [DisplayName("排序")] + public int DisplayOrder { get; set; } + [DisplayName("公司类型")] + public EnumCompanyType CompanyType { get; set; } + [DisplayName("业务板块")] + public string BusinessSection { get; set; } + [DisplayName("类型描述")] + public string TypeDescription { get; set; } + [DisplayName("分管领导")] + public string Leader { get; set; } + [DisplayName("分管业务名称")] + public string BusinessName { get; set; } + [DisplayName("开始股比")] + public decimal StartingStockRatio { get; set; } + [DisplayName("变动后股比")] + public decimal ChangingStockRatio { get; set; } + [DisplayName("是否减持")] + public bool IsReduceShares { get; set; } + } +} diff --git a/src/API.Domain/Properties/AssemblyInfo.cs b/src/API.Domain/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..6267432 --- /dev/null +++ b/src/API.Domain/Properties/AssemblyInfo.cs @@ -0,0 +1,3 @@ +using System.Runtime.CompilerServices; +[assembly:InternalsVisibleToAttribute("API.Domain.Tests")] +[assembly:InternalsVisibleToAttribute("API.TestBase")] diff --git a/src/API.Domain/Settings/APISettingDefinitionProvider.cs b/src/API.Domain/Settings/APISettingDefinitionProvider.cs new file mode 100644 index 0000000..76d9a9b --- /dev/null +++ b/src/API.Domain/Settings/APISettingDefinitionProvider.cs @@ -0,0 +1,13 @@ +using Volo.Abp.Settings; + +namespace API.Settings +{ + public class APISettingDefinitionProvider : SettingDefinitionProvider + { + public override void Define(ISettingDefinitionContext context) + { + //Define your own settings here. Example: + //context.Add(new SettingDefinition(APISettings.MySetting1)); + } + } +} diff --git a/src/API.Domain/Settings/APISettings.cs b/src/API.Domain/Settings/APISettings.cs new file mode 100644 index 0000000..85d6d5a --- /dev/null +++ b/src/API.Domain/Settings/APISettings.cs @@ -0,0 +1,10 @@ +namespace API.Settings +{ + public static class APISettings + { + private const string Prefix = "API"; + + //Add your own setting names here. Example: + //public const string MySetting1 = Prefix + ".MySetting1"; + } +} \ No newline at end of file diff --git a/src/API.EntityFrameworkCore/API.EntityFrameworkCore.csproj b/src/API.EntityFrameworkCore/API.EntityFrameworkCore.csproj new file mode 100644 index 0000000..fb2a309 --- /dev/null +++ b/src/API.EntityFrameworkCore/API.EntityFrameworkCore.csproj @@ -0,0 +1,32 @@ + + + + + + net5.0 + API + + + + + + + + + + + + + + + + + + + + runtime; build; native; contentfiles; analyzers + compile; contentFiles; build; buildMultitargeting; buildTransitive; analyzers; native + + + + diff --git a/src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/BudgetDbContext.cs b/src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/BudgetDbContext.cs new file mode 100644 index 0000000..c274bb1 --- /dev/null +++ b/src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/BudgetDbContext.cs @@ -0,0 +1,95 @@ +using API.BudgetDataSources; +using Microsoft.EntityFrameworkCore; +using Volo.Abp.AuditLogging.EntityFrameworkCore; +using Volo.Abp.BackgroundJobs.EntityFrameworkCore; +using Volo.Abp.Data; +using Volo.Abp.DependencyInjection; +using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.FeatureManagement.EntityFrameworkCore; +using Volo.Abp.Identity; +using Volo.Abp.Identity.EntityFrameworkCore; +using Volo.Abp.IdentityServer.EntityFrameworkCore; +using Volo.Abp.PermissionManagement.EntityFrameworkCore; +using Volo.Abp.SettingManagement.EntityFrameworkCore; +using Volo.Abp.TenantManagement; +using Volo.Abp.TenantManagement.EntityFrameworkCore; + + +namespace API.BudgetEntityFrameworkCore +{ + + [ConnectionStringName("Budget")] + public class BudgetDbContext : + AbpDbContext + { + /* Add DbSet properties for your Aggregate Roots / Entities here. */ + + #region Entities from the modules + + /* Notice: We only implemented IIdentityDbContext and ITenantManagementDbContext + * and replaced them for this DbContext. This allows you to perform JOIN + * queries for the entities of these modules over the repositories easily. You + * typically don't need that for other modules. But, if you need, you can + * implement the DbContext interface of the needed module and use ReplaceDbContext + * attribute just like IIdentityDbContext and ITenantManagementDbContext. + * + * More info: Replacing a DbContext of a module ensures that the related module + * uses this DbContext on runtime. Otherwise, it will use its own DbContext class. + */ + + //Identity + + + #endregion + public DbSet TI_CBB04_BUDGETs { get; set; } + public DbSet TI_CWB16_BUDGETs { get; set; } + public DbSet TI_CWB17_BUDGETs { get; set; } + public DbSet TI_CWB18_BUDGETs { get; set; } + public DbSet TI_CWB19_BUDGETs { get; set; } + public DbSet TO_CWC14_BUDGETs { get; set; } + public DbSet TO_CWC19_BUDGETs { get; set; } + public DbSet TO_CWC21_BUDGETs { get; set; } + public DbSet TO_GGC01_BUDGETs { get; set; } + public DbSet TO_HRC01_BUDGETs { get; set; } + public DbSet TI_HRB04_BUDGETs { get; set; } + public DbSet TO_JGC01_BUDGETs { get; set; } + public DbSet TS_XSA04_BUDGETs { get; set; } + public DbSet JQ_LRBs { get; set; } + public DbSet JQ_XJLLBs { get; set; } + public DbSet JQ_ZCFZBs { get; set; } + public DbSet JQ_ZZFYBs { get; set; } + public DbSet JQ_SCCBBs { get; set; } + public DbSet JQ_QJFYBs { get; set; } + public BudgetDbContext(DbContextOptions options) + : base(options) + { + + } + + protected override void OnModelCreating(ModelBuilder builder) + { + base.OnModelCreating(builder); + + /* Include modules to your migration db context */ + + builder.ConfigurePermissionManagement(); + builder.ConfigureSettingManagement(); + builder.ConfigureBackgroundJobs(); + builder.ConfigureAuditLogging(); + builder.ConfigureIdentity(); + builder.ConfigureIdentityServer(); + builder.ConfigureFeatureManagement(); + builder.ConfigureTenantManagement(); + + /* Configure your own tables/entities inside here */ + + //builder.Entity(b => + //{ + // b.ToTable(APIConsts.DbTablePrefix + "YourEntities", APIConsts.DbSchema); + // b.ConfigureByConvention(); //auto configure for the base class props + // //... + //}); + builder.ConfigureBudget(); + } + } +} diff --git a/src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/BudgetDbContextFactory.cs b/src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/BudgetDbContextFactory.cs new file mode 100644 index 0000000..dbe665c --- /dev/null +++ b/src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/BudgetDbContextFactory.cs @@ -0,0 +1,33 @@ +using System.IO; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Design; +using Microsoft.Extensions.Configuration; + + +namespace API.BudgetEntityFrameworkCore +{ + + public class BudgetDbContextFactory : IDesignTimeDbContextFactory + { + public BudgetDbContext CreateDbContext(string[] args) + { + BudgetEfCoreEntityExtensionMappings.Configure(); + + var configuration = BuildConfiguration(); + + var builder = new DbContextOptionsBuilder() + .UseSqlServer(configuration.GetConnectionString("Budget")); + + return new BudgetDbContext(builder.Options); + } + + private static IConfigurationRoot BuildConfiguration() + { + var builder = new ConfigurationBuilder() + .SetBasePath(Path.Combine(Directory.GetCurrentDirectory(), "../API.DbMigrator/")) + .AddJsonFile("appsettings.json", optional: false); + + return builder.Build(); + } + } +} diff --git a/src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/BudgetDbContextModelCreatingExtensions.cs b/src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/BudgetDbContextModelCreatingExtensions.cs new file mode 100644 index 0000000..c31ca69 --- /dev/null +++ b/src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/BudgetDbContextModelCreatingExtensions.cs @@ -0,0 +1,257 @@ +using API.BudgetDataSources; +using JetBrains.Annotations; +using Microsoft.EntityFrameworkCore; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.EntityFrameworkCore.Modeling; + +namespace API.BudgetEntityFrameworkCore +{ + public static class BudgetDbContextModelCreatingExtensions + { + public const string IsDeletedFilter = "IsDeleted=0"; + public static void ConfigureBudget(this ModelBuilder builder, + [CanBeNull] Action optionsAction = null) + { + var options = new BudgetModelBuilderConfigurationOptions( + BudgetDbProperties.DbTablePrefix, + BudgetDbProperties.DbSchema + ); + + builder.ConfigureTI_CBB04(options); + builder.ConfigureTI_CWB16(options); + builder.ConfigureTI_CWB17(options); + builder.ConfigureTI_CWB18(options); + builder.ConfigureTI_CWB19(options); + builder.ConfigureTO_CWC14(options); + builder.ConfigureTO_CWC19(options); + builder.ConfigureTO_CWC21(options); + builder.ConfigureTO_GGC01(options); + builder.ConfigureTO_HRC01(options); + builder.ConfigureTI_HRB04(options); + builder.ConfigureTO_JGC01(options); + builder.ConfigureTS_XSA04(options); + builder.ConfigureJQ_LRB(options); + builder.ConfigureJQ_XJLLB(options); + builder.ConfigureJQ_ZCFZB(options); + builder.ConfigureJQ_ZZFYB(options); + builder.ConfigureJQ_SCCBB(options); + builder.ConfigureJQ_QJFYB(options); + } + + private static void ConfigureJQ_LRB(this ModelBuilder builder, BudgetModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"JQ_LRB", options.Schema); + b.ConfigureByConvention(); + b.HasKey(x => x.GUID); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.RowNum,x.Year,x.Month }).IsUnique(); + }); + } + private static void ConfigureJQ_XJLLB(this ModelBuilder builder, BudgetModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"JQ_XJLLB", options.Schema); + b.ConfigureByConvention(); + b.HasKey(x => x.GUID); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.RowNum, x.Year, x.Month }).IsUnique(); + }); + } + private static void ConfigureJQ_ZCFZB(this ModelBuilder builder, BudgetModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"JQ_ZCFZB", options.Schema); + b.ConfigureByConvention(); + b.HasKey(x => x.GUID); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.RowNum, x.Year, x.Month }).IsUnique(); + }); + } + private static void ConfigureJQ_ZZFYB(this ModelBuilder builder, BudgetModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"JQ_ZZFYB", options.Schema); + b.ConfigureByConvention(); + b.HasKey(x => x.GUID); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.RowNum, x.Year, x.Month }).IsUnique(); + }); + } + private static void ConfigureJQ_SCCBB(this ModelBuilder builder, BudgetModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"JQ_SCCBB", options.Schema); + b.ConfigureByConvention(); + b.HasKey(x => x.GUID); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.RowNum, x.Year, x.Month }).IsUnique(); + }); + } + private static void ConfigureJQ_QJFYB(this ModelBuilder builder, BudgetModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"JQ_QJFYB", options.Schema); + b.ConfigureByConvention(); + b.HasKey(x => x.GUID); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.RowNum, x.Year, x.Month }).IsUnique(); + }); + } + private static void ConfigureTI_CBB04(this ModelBuilder builder, BudgetModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"TI_CBB04", options.Schema); + b.ConfigureByConvention(); + b.HasKey(x => x.GUID); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.ProjectName }).IsUnique(); + }); + } + private static void ConfigureTI_CWB16(this ModelBuilder builder, BudgetModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"TI_CWB16", options.Schema); + b.ConfigureByConvention(); + b.HasKey(x => x.GUID); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.RowNum }).IsUnique(); + }); + } + private static void ConfigureTI_CWB17(this ModelBuilder builder, BudgetModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"TI_CWB17", options.Schema); + b.ConfigureByConvention(); + b.HasKey(x => x.GUID); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.RowNum }).IsUnique(); + }); + } + private static void ConfigureTI_CWB18(this ModelBuilder builder, BudgetModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"TI_CWB18", options.Schema); + b.ConfigureByConvention(); + b.HasKey(x => x.GUID); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.RowNum }).IsUnique(); + }); + } + private static void ConfigureTI_CWB19(this ModelBuilder builder, BudgetModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"TI_CWB19", options.Schema); + b.ConfigureByConvention(); + b.HasKey(x => x.GUID); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.RowNum ,x.Project}).IsUnique(); + }); + } + + private static void ConfigureTO_CWC14(this ModelBuilder builder, BudgetModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"TO_CWC14", options.Schema); + b.ConfigureByConvention(); + b.HasKey(x => x.GUID); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.RowNum }).IsUnique(); + }); + } + private static void ConfigureTO_CWC19(this ModelBuilder builder, BudgetModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"TO_CWC19", options.Schema); + b.ConfigureByConvention(); + b.HasKey(x => x.GUID); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.RowNum }).IsUnique(); + }); + } + private static void ConfigureTO_CWC21(this ModelBuilder builder, BudgetModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"TO_CWC21", options.Schema); + b.ConfigureByConvention(); + b.HasKey(x => x.GUID); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.RowNum }).IsUnique(); + }); + } + + private static void ConfigureTO_GGC01(this ModelBuilder builder, BudgetModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"TO_GGC01", options.Schema); + b.ConfigureByConvention(); + b.HasKey(x => x.GUID); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.FillInCompanyCode ,x.AssetsCode}).IsUnique(); + }); + } + private static void ConfigureTO_HRC01(this ModelBuilder builder, BudgetModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"TO_HRC01", options.Schema); + b.ConfigureByConvention(); + b.HasKey(x => x.GUID); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.RowNum,x.Project }).IsUnique(); + }); + } + private static void ConfigureTI_HRB04(this ModelBuilder builder, BudgetModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"TI_HRB04", options.Schema); + b.ConfigureByConvention(); + b.HasKey(x => x.GUID); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.RowNum, x.SalaryType }).IsUnique(); + }); + } + private static void ConfigureTO_JGC01(this ModelBuilder builder, BudgetModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"TO_JGC01", options.Schema); + b.ConfigureByConvention(); + b.HasKey(x => x.GUID); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.FillInCompanyCode,x.ProjectCode,x.AssetsCode,x.FixedDate }).IsUnique(); + }); + } + private static void ConfigureTS_XSA04(this ModelBuilder builder, BudgetModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"TS_XSA04", options.Schema); + b.ConfigureByConvention(); + b.HasKey(x => x.GUID); + // 创建索引 + b.HasIndex(x => new { x.CustomerCode, x.VehicleTypeCode }).IsUnique(); + }); + } + } +} diff --git a/src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/BudgetEfCoreEntityExtensionMappings.cs b/src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/BudgetEfCoreEntityExtensionMappings.cs new file mode 100644 index 0000000..b961eed --- /dev/null +++ b/src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/BudgetEfCoreEntityExtensionMappings.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Threading; + +namespace API.BudgetEntityFrameworkCore +{ + public static class BudgetEfCoreEntityExtensionMappings + { + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + + public static void Configure() + { + APIGlobalFeatureConfigurator.Configure(); + APIModuleExtensionConfigurator.Configure(); + + OneTimeRunner.Run(() => + { + /* You can configure extra properties for the + * entities defined in the modules used by your application. + * + * This class can be used to map these extra properties to table fields in the database. + * + * USE THIS CLASS ONLY TO CONFIGURE EF CORE RELATED MAPPING. + * USE APIModuleExtensionConfigurator CLASS (in the Domain.Shared project) + * FOR A HIGH LEVEL API TO DEFINE EXTRA PROPERTIES TO ENTITIES OF THE USED MODULES + * + * Example: Map a property to a table field: + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + "MyProperty", + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasMaxLength(128); + } + ); + + * See the documentation for more: + * https://docs.abp.io/en/abp/latest/Customizing-Application-Modules-Extending-Entities + */ + }); + } + } +} diff --git a/src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/BudgetEntityFrameworkCoreModule.cs b/src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/BudgetEntityFrameworkCoreModule.cs new file mode 100644 index 0000000..a97ea64 --- /dev/null +++ b/src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/BudgetEntityFrameworkCoreModule.cs @@ -0,0 +1,64 @@ + +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.AuditLogging.EntityFrameworkCore; +using Volo.Abp.BackgroundJobs.EntityFrameworkCore; +using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.EntityFrameworkCore.DependencyInjection; +using Volo.Abp.EntityFrameworkCore.SqlServer; +using Volo.Abp.FeatureManagement.EntityFrameworkCore; +using Volo.Abp.Identity.EntityFrameworkCore; +using Volo.Abp.IdentityServer.EntityFrameworkCore; +using Volo.Abp.Modularity; +using Volo.Abp.PermissionManagement.EntityFrameworkCore; +using Volo.Abp.SettingManagement.EntityFrameworkCore; +using Volo.Abp.TenantManagement.EntityFrameworkCore; + +namespace API.BudgetEntityFrameworkCore +{ + + [DependsOn( + typeof(APIDomainModule), + typeof(AbpIdentityEntityFrameworkCoreModule), + typeof(AbpIdentityServerEntityFrameworkCoreModule), + typeof(AbpPermissionManagementEntityFrameworkCoreModule), + typeof(AbpSettingManagementEntityFrameworkCoreModule), + typeof(AbpEntityFrameworkCoreSqlServerModule), + typeof(AbpBackgroundJobsEntityFrameworkCoreModule), + typeof(AbpAuditLoggingEntityFrameworkCoreModule), + typeof(AbpTenantManagementEntityFrameworkCoreModule), + typeof(AbpFeatureManagementEntityFrameworkCoreModule) + )] + public class BudgetEntityFrameworkCoreModule : AbpModule + { + public override void PreConfigureServices(ServiceConfigurationContext context) + { + BudgetEfCoreEntityExtensionMappings.Configure(); + } + + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddAbpDbContext(options => + { + /* Remove "includeAllEntities: true" to create + * default repositories only for aggregate roots */ + options.AddDefaultRepositories(includeAllEntities: true); + }); + + Configure(options => + { + /* The main point to change your DBMS. + * See also APIMigrationsDbContextFactory for EF Core tooling. */ + options.UseSqlServer(); + }); + Configure(options => + { + #region 数据来源 + + + + #endregion + }); + } + } +} diff --git a/src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/BudgetModelBuilderConfigurationOptions.cs b/src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/BudgetModelBuilderConfigurationOptions.cs new file mode 100644 index 0000000..4acd28b --- /dev/null +++ b/src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/BudgetModelBuilderConfigurationOptions.cs @@ -0,0 +1,20 @@ +using JetBrains.Annotations; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.EntityFrameworkCore.Modeling; + +namespace API.BudgetEntityFrameworkCore +{ + + public class BudgetModelBuilderConfigurationOptions : AbpModelBuilderConfigurationOptions + { + public BudgetModelBuilderConfigurationOptions([NotNull] string tablePrefix, [CanBeNull] string schema) + : base(tablePrefix, schema) + { + + } + } +} diff --git a/src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/EntityFrameworkCoreBudgetDbSchemaMigrator.cs b/src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/EntityFrameworkCoreBudgetDbSchemaMigrator.cs new file mode 100644 index 0000000..5124504 --- /dev/null +++ b/src/API.EntityFrameworkCore/BudgetEntityFrameworkCore/EntityFrameworkCoreBudgetDbSchemaMigrator.cs @@ -0,0 +1,38 @@ +using API.Data; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.DependencyInjection; + +namespace API.BudgetEntityFrameworkCore +{ + public class EntityFrameworkCoreBudgetDbSchemaMigrator + : IAPIDbSchemaMigrator, ITransientDependency + { + private readonly IServiceProvider _serviceProvider; + + public EntityFrameworkCoreBudgetDbSchemaMigrator( + IServiceProvider serviceProvider) + { + _serviceProvider = serviceProvider; + } + + public async Task MigrateAsync() + { + /* We intentionally resolving the APIDbContext + * from IServiceProvider (instead of directly injecting it) + * to properly get the connection string of the current tenant in the + * current scope. + */ + + await _serviceProvider + .GetRequiredService() + .Database + .MigrateAsync(); + } + } +} diff --git a/src/API.EntityFrameworkCore/EntityFrameworkCore/APIDbContext.cs b/src/API.EntityFrameworkCore/EntityFrameworkCore/APIDbContext.cs new file mode 100644 index 0000000..480d854 --- /dev/null +++ b/src/API.EntityFrameworkCore/EntityFrameworkCore/APIDbContext.cs @@ -0,0 +1,122 @@ +using API.DataSources; +using API.ManageBase; +using Microsoft.EntityFrameworkCore; +using Volo.Abp.AuditLogging.EntityFrameworkCore; +using Volo.Abp.BackgroundJobs.EntityFrameworkCore; +using Volo.Abp.Data; +using Volo.Abp.DependencyInjection; +using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.FeatureManagement.EntityFrameworkCore; +using Volo.Abp.Identity; +using Volo.Abp.Identity.EntityFrameworkCore; +using Volo.Abp.IdentityServer.EntityFrameworkCore; +using Volo.Abp.PermissionManagement.EntityFrameworkCore; +using Volo.Abp.SettingManagement.EntityFrameworkCore; +using Volo.Abp.TenantManagement; +using Volo.Abp.TenantManagement.EntityFrameworkCore; + +namespace API.EntityFrameworkCore +{ + // [ReplaceDbContext(typeof(IIdentityDbContext))] + // [ReplaceDbContext(typeof(ITenantManagementDbContext))] + [ConnectionStringName("Default")] + public class APIDbContext : + AbpDbContext + // IIdentityDbContext, + // ITenantManagementDbContext + { + /* Add DbSet properties for your Aggregate Roots / Entities here. */ + + #region Entities from the modules + + /* Notice: We only implemented IIdentityDbContext and ITenantManagementDbContext + * and replaced them for this DbContext. This allows you to perform JOIN + * queries for the entities of these modules over the repositories easily. You + * typically don't need that for other modules. But, if you need, you can + * implement the DbContext interface of the needed module and use ReplaceDbContext + * attribute just like IIdentityDbContext and ITenantManagementDbContext. + * + * More info: Replacing a DbContext of a module ensures that the related module + * uses this DbContext on runtime. Otherwise, it will use its own DbContext class. + */ + + //Identity + public DbSet Users { get; set; } + public DbSet Roles { get; set; } + public DbSet ClaimTypes { get; set; } + public DbSet OrganizationUnits { get; set; } + public DbSet SecurityLogs { get; set; } + public DbSet LinkUsers { get; set; } + public DbSet Companys { get; set; } + // Tenant Management + public DbSet Tenants { get; set; } + public DbSet TenantConnectionStrings { get; set; } + + #endregion + + #region DataSources 数据来源表 + + + public DbSet TO_JGC01s { get; set; } + public DbSet TO_GGC01s { get; set; } + public DbSet TI_CBB04s { get; set; } + public DbSet TS_XSA04s { get; set; } + public DbSet TI_CWB16s { get; set; } + public DbSet TI_CWB17s { get; set; } + public DbSet TI_CWB18s { get; set; } + public DbSet TI_CWB19s { get; set; } + public DbSet TO_CWC14s { get; set; } + public DbSet TO_CWC19s { get; set; } + public DbSet TO_CWC21s { get; set; } + public DbSet TO_HRC01s { get; set; } + public DbSet TI_HRB04s { get; set; } + public DbSet ODS_JQ_LRBs { get; set; } + + public DbSet ODS_JQ_LRMXBs { get; set; } + public DbSet ODS_JQ_ZQMXB_YSZKs { get; set; } + public DbSet ODS_JQ_ZZFYBs { get; set; } + public DbSet ODS_JQ_ZWMXB_YFZKs { get; set; } + public DbSet ODS_JQ_ZGXCBs { get; set; } + public DbSet ODS_JQ_ZCFZBs { get; set; } + public DbSet ODS_JQ_XJLLB_INNER_YEARs { get; set; } + public DbSet ODS_JQ_SCCBBs { get; set; } + public DbSet ODS_JQ_QJFYBs { get; set; } + + public DbSet JQ_COMPAREs { get; set; } + + // public DbSet TO_CWC14Details { get; set; } + #endregion + + public APIDbContext(DbContextOptions options) + : base(options) + { + + } + + protected override void OnModelCreating(ModelBuilder builder) + { + base.OnModelCreating(builder); + + /* Include modules to your migration db context */ + + builder.ConfigurePermissionManagement(); + builder.ConfigureSettingManagement(); + builder.ConfigureBackgroundJobs(); + builder.ConfigureAuditLogging(); + builder.ConfigureIdentity(); + builder.ConfigureIdentityServer(); + builder.ConfigureFeatureManagement(); + builder.ConfigureTenantManagement(); + + /* Configure your own tables/entities inside here */ + + //builder.Entity(b => + //{ + // b.ToTable(APIConsts.DbTablePrefix + "YourEntities", APIConsts.DbSchema); + // b.ConfigureByConvention(); //auto configure for the base class props + // //... + //}); + builder.ConfigureAPI(); + } + } +} diff --git a/src/API.EntityFrameworkCore/EntityFrameworkCore/APIDbContextFactory.cs b/src/API.EntityFrameworkCore/EntityFrameworkCore/APIDbContextFactory.cs new file mode 100644 index 0000000..180559e --- /dev/null +++ b/src/API.EntityFrameworkCore/EntityFrameworkCore/APIDbContextFactory.cs @@ -0,0 +1,33 @@ +using System.IO; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Design; +using Microsoft.Extensions.Configuration; + +namespace API.EntityFrameworkCore +{ + /* This class is needed for EF Core console commands + * (like Add-Migration and Update-Database commands) */ + public class APIDbContextFactory : IDesignTimeDbContextFactory + { + public APIDbContext CreateDbContext(string[] args) + { + APIEfCoreEntityExtensionMappings.Configure(); + + var configuration = BuildConfiguration(); + + var builder = new DbContextOptionsBuilder() + .UseSqlServer(configuration.GetConnectionString("Default")); + + return new APIDbContext(builder.Options); + } + + private static IConfigurationRoot BuildConfiguration() + { + var builder = new ConfigurationBuilder() + .SetBasePath(Path.Combine(Directory.GetCurrentDirectory(), "../API.DbMigrator/")) + .AddJsonFile("appsettings.json", optional: false); + + return builder.Build(); + } + } +} diff --git a/src/API.EntityFrameworkCore/EntityFrameworkCore/APIDbContextModelCreatingExtensions.cs b/src/API.EntityFrameworkCore/EntityFrameworkCore/APIDbContextModelCreatingExtensions.cs new file mode 100644 index 0000000..8466159 --- /dev/null +++ b/src/API.EntityFrameworkCore/EntityFrameworkCore/APIDbContextModelCreatingExtensions.cs @@ -0,0 +1,476 @@ +using API.DataSources; +using API.ManageBase; +using JetBrains.Annotations; +using Microsoft.EntityFrameworkCore; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.EntityFrameworkCore.Modeling; + +namespace API.EntityFrameworkCore +{ + public static class APIDbContextModelCreatingExtensions + { + public const string IsDeletedFilter = "IsDeleted=0"; + public static void ConfigureAPI(this ModelBuilder builder, + [CanBeNull] Action optionsAction = null) + { + var options = new APIModelBuilderConfigurationOptions( + APIDbProperties.DbTablePrefix, + APIDbProperties.DbSchema + ); + + builder.ConfigureCompany(options); + #region DataSources 数据来源表 + builder.ConfigureGGC01(options); + builder.ConfigureGGC01Detail(options); + builder.ConfigureJGC01(options); + builder.ConfigureJGC01Detail(options); + builder.ConfigureXSA04(options); + builder.ConfigureHRC01(options); + builder.ConfigureHRC01Detail(options); + builder.ConfigureHRB04(options); + builder.ConfigureHRB04Detail(options); + builder.ConfigureCWC14(options); + builder.ConfigureCWC14Detail(options); + builder.ConfigureCWC19(options); + builder.ConfigureCWC19Detail(options); + builder.ConfigureCWC21(options); + builder.ConfigureCWC21Detail(options); + builder.ConfigureCBB04(options); + builder.ConfigureCBB04Detail(options); + builder.ConfigureCWB16(options); + builder.ConfigureCWB16Detail(options); + builder.ConfigureCWB17(options); + builder.ConfigureCWB17Detail(options); + builder.ConfigureCWB18(options); + builder.ConfigureCWB18Detail(options); + builder.ConfigureCWB19(options); + builder.ConfigureCWB19Detail(options); + builder.ConfigureODS_JQ_LRB(options); + builder.ConfigureODS_JQ_LRMXB(options); + builder.ConfigureODS_JQ_QJFYB(options); + builder.ConfigureODS_JQ_SCCBB(options); + builder.ConfigureODS_JQ_XJLLB_INNER_YEAR(options); + builder.ConfigureODS_JQ_ZCFZB(options); + builder.ConfigureODS_JQ_ZGXCB(options); + builder.ConfigureODS_JQ_ZQMXB_YSZK(options); + builder.ConfigureODS_JQ_ZWMXB_YFZK(options); + builder.ConfigureODS_JQ_ZZFYB(options); + builder.Configure_JQ_COMPARE(options); + #endregion + } + + private static void ConfigureCompany(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_company", options.Schema); + b.ConfigureByConvention(); + b.HasIndex(x => new { x.CompanyCode }).IsUnique().HasFilter(IsDeletedFilter); + }); + } + + #region DataSources 数据来源表 + + private static void Configure_JQ_COMPARE(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_jq_compare", options.Schema); + b.ConfigureByConvention(); + // 创建索引 + b.HasIndex(x => new { x.RowNum, x.Type }).IsUnique(); + }); + } + private static void ConfigureODS_JQ_LRB(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_ods_jq_lrb", options.Schema); + b.ConfigureByConvention(); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.Year, x.Month, x.RowNum }).IsUnique(); + }); + } + private static void ConfigureODS_JQ_LRMXB(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_ods_jq_lrmxb", options.Schema); + b.ConfigureByConvention(); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.Year, x.Month, x.RowNum }).IsUnique(); + }); + } + private static void ConfigureODS_JQ_QJFYB(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_ods_jq_qjfyb", options.Schema); + b.ConfigureByConvention(); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.Year, x.Month, x.RowNum }).IsUnique(); + }); + } + private static void ConfigureODS_JQ_SCCBB(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_ods_jq_sccbb", options.Schema); + b.ConfigureByConvention(); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.Year, x.Month, x.RowNum }).IsUnique(); + }); + } + private static void ConfigureODS_JQ_XJLLB_INNER_YEAR(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_ods_jq_xjllb_inner_year", options.Schema); + b.ConfigureByConvention(); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.Year, x.Month, x.RowNum }).IsUnique(); + }); + } + + private static void ConfigureODS_JQ_ZCFZB(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_ods_jq_zcfzb", options.Schema); + b.ConfigureByConvention(); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.Year, x.Month, x.RowNum }).IsUnique(); + }); + } + + private static void ConfigureODS_JQ_ZGXCB(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_ods_jq_zgxcb", options.Schema); + b.ConfigureByConvention(); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.Year, x.Month, x.RowNum }).IsUnique(); + }); + } + + private static void ConfigureODS_JQ_ZQMXB_YSZK(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_ods_jq_zqmxb_yszk", options.Schema); + b.ConfigureByConvention(); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.Year, x.Month, x.ITEM }).IsUnique(); + }); + } + + private static void ConfigureODS_JQ_ZWMXB_YFZK(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_ods_jq_zwmxb_yfzk", options.Schema); + b.ConfigureByConvention(); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.Year, x.Month, x.RowNum }).IsUnique(); + }); + } + + private static void ConfigureODS_JQ_ZZFYB(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_ods_jq_zzfyb", options.Schema); + b.ConfigureByConvention(); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.Year, x.Month, x.RowNum }).IsUnique(); + }); + } + private static void ConfigureCWB19(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_ti_cwb19", options.Schema); + b.ConfigureByConvention(); + b.HasMany(x => x.Detail).WithOne().OnDelete(DeleteBehavior.Cascade).HasForeignKey(x => x.MasterId).IsRequired(); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.Year, x.Month }).IsUnique(); + }); + } + private static void ConfigureCWB19Detail(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_ti_cwb19_detail", options.Schema); + b.ConfigureByConvention(); + b.HasIndex(x => x.MasterId); + // 创建索引 + b.HasIndex(x => new { x.MasterId, x.RowNum }).IsUnique(); + }); + } + private static void ConfigureCWB18(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_ti_cwb18", options.Schema); + b.ConfigureByConvention(); + b.HasMany(x => x.Detail).WithOne().OnDelete(DeleteBehavior.Cascade).HasForeignKey(x => x.MasterId).IsRequired(); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.Year, x.Month }).IsUnique(); + }); + } + private static void ConfigureCWB18Detail(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_ti_cwb18_detail", options.Schema); + b.ConfigureByConvention(); + b.HasIndex(x => x.MasterId); + // 创建索引 + b.HasIndex(x => new { x.MasterId, x.RowNum }).IsUnique(); + }); + } + private static void ConfigureCWB17(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_ti_cwb17", options.Schema); + b.ConfigureByConvention(); + b.HasMany(x => x.Detail).WithOne().OnDelete(DeleteBehavior.Cascade).HasForeignKey(x => x.MasterId).IsRequired(); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.Year, x.Month }).IsUnique(); + }); + } + private static void ConfigureCWB17Detail(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_ti_cwb17_detail", options.Schema); + b.ConfigureByConvention(); + b.HasIndex(x => x.MasterId); + // 创建索引 + b.HasIndex(x => new { x.MasterId, x.RowNum }).IsUnique(); + }); + } + private static void ConfigureCBB04(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_ti_cbb04", options.Schema); + b.ConfigureByConvention(); + b.HasMany(x => x.Detail).WithOne().OnDelete(DeleteBehavior.Cascade).HasForeignKey(x => x.MasterId).IsRequired(); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.Year, x.Month }).IsUnique(); + }); + } + private static void ConfigureCBB04Detail(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_ti_cbb04_detail", options.Schema); + b.ConfigureByConvention(); + b.HasIndex(x => x.MasterId); + // 创建索引 + b.HasIndex(x => new { x.MasterId, x.RowNum }).IsUnique(); + }); + } + private static void ConfigureCWB16(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_ti_cwb16", options.Schema); + b.ConfigureByConvention(); + b.HasMany(x => x.Detail).WithOne().OnDelete(DeleteBehavior.Cascade).HasForeignKey(x => x.MasterId).IsRequired(); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.Year, x.Month }).IsUnique(); + }); + } + private static void ConfigureCWB16Detail(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_ti_cwb16_detail", options.Schema); + b.ConfigureByConvention(); + b.HasIndex(x => x.MasterId); + // 创建索引 + b.HasIndex(x => new { x.MasterId, x.RowNum }).IsUnique(); + }); + } + private static void ConfigureCWC21(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_to_cwc21", options.Schema); + b.ConfigureByConvention(); + b.HasMany(x => x.Detail).WithOne().OnDelete(DeleteBehavior.Cascade).HasForeignKey(x => x.MasterId).IsRequired(); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.Year, x.Month }).IsUnique(); + }); + } + private static void ConfigureCWC21Detail(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_to_cwc21_detail", options.Schema); + b.ConfigureByConvention(); + b.HasIndex(x => x.MasterId); + // 创建索引 + b.HasIndex(x => new { x.MasterId, x.RowNum }).IsUnique(); + }); + } + private static void ConfigureCWC19(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_to_cwc19", options.Schema); + b.ConfigureByConvention(); + b.HasMany(x => x.Detail).WithOne().OnDelete(DeleteBehavior.Cascade).HasForeignKey(x => x.MasterId).IsRequired(); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.Year, x.Month }).IsUnique(); + }); + } + private static void ConfigureCWC19Detail(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_to_cwc19_detail", options.Schema); + b.ConfigureByConvention(); + b.HasIndex(x => x.MasterId); + // 创建索引 + b.HasIndex(x => new { x.MasterId, x.RowNum }).IsUnique(); + }); + } + private static void ConfigureCWC14(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_to_cwc14", options.Schema); + b.ConfigureByConvention(); + b.HasMany(x => x.Detail).WithOne().OnDelete(DeleteBehavior.Cascade).HasForeignKey(x => x.MasterId).IsRequired(); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.Year, x.Month }).IsUnique(); + }); + } + + private static void ConfigureCWC14Detail(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_to_cwc14_detail", options.Schema); + b.ConfigureByConvention(); + b.HasIndex(x => x.MasterId); + // 创建索引 + b.HasIndex(x => new { x.MasterId, x.RowNum }).IsUnique(); + }); + } + private static void ConfigureJGC01(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_to_jgc01", options.Schema); + b.ConfigureByConvention(); + b.HasMany(x => x.Detail).WithOne().OnDelete(DeleteBehavior.Cascade).HasForeignKey(x => x.MasterId).IsRequired(); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.Year, x.Month }).IsUnique(); + }); + } + + private static void ConfigureJGC01Detail(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_to_jgc01_detail", options.Schema); + b.ConfigureByConvention(); + b.HasIndex(x => x.MasterId); + // 创建索引 + b.HasIndex(x => new { x.MasterId, x.ProjectCode, x.AssetsCode, x.FixedDate }).IsUnique(); + }); + } + private static void ConfigureGGC01(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_to_ggc01", options.Schema); + b.ConfigureByConvention(); + b.HasMany(x => x.Detail).WithOne().OnDelete(DeleteBehavior.Cascade).HasForeignKey(x => x.MasterId).IsRequired(); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.Year, x.Month }).IsUnique(); + }); + } + + private static void ConfigureGGC01Detail(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_to_ggc01_detail", options.Schema); + b.ConfigureByConvention(); + b.HasIndex(x => x.MasterId); + // 创建索引 + b.HasIndex(x => new { x.MasterId, x.AssetsCode, x.FixedDate }).IsUnique(); + }); + } + private static void ConfigureHRC01(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_to_hrc01", options.Schema); + b.ConfigureByConvention(); + b.HasMany(x => x.Detail).WithOne().OnDelete(DeleteBehavior.Cascade).HasForeignKey(x => x.MasterId).IsRequired(); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.Year, x.Month }).IsUnique(); + }); + } + + private static void ConfigureHRC01Detail(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_to_hrc01_detail", options.Schema); + b.ConfigureByConvention(); + b.HasIndex(x => x.MasterId); + // 创建索引 + b.HasIndex(x => new { x.MasterId, x.RowNum }).IsUnique(); + }); + } + private static void ConfigureHRB04(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_ti_hrb04", options.Schema); + b.ConfigureByConvention(); + b.HasMany(x => x.Detail).WithOne().OnDelete(DeleteBehavior.Cascade).HasForeignKey(x => x.MasterId).IsRequired(); + // 创建索引 + b.HasIndex(x => new { x.CompanyCode, x.Year, x.Month }).IsUnique(); + }); + } + + private static void ConfigureHRB04Detail(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_ti_hrb04_detail", options.Schema); + b.ConfigureByConvention(); + b.HasIndex(x => x.MasterId); + // 创建索引 + b.HasIndex(x => new { x.MasterId, x.RowNum }).IsUnique(); + }); + } + + private static void ConfigureXSA04(this ModelBuilder builder, APIModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_ts_xsa04", options.Schema); + b.ConfigureByConvention(); + // 创建索引 + b.HasIndex(x => new { x.Year, x.Month, x.CustomerCode, x.VehicleTypeCode }).IsUnique(); + }); + } + + #endregion + } +} diff --git a/src/API.EntityFrameworkCore/EntityFrameworkCore/APIEfCoreEntityExtensionMappings.cs b/src/API.EntityFrameworkCore/EntityFrameworkCore/APIEfCoreEntityExtensionMappings.cs new file mode 100644 index 0000000..7afb4ed --- /dev/null +++ b/src/API.EntityFrameworkCore/EntityFrameworkCore/APIEfCoreEntityExtensionMappings.cs @@ -0,0 +1,45 @@ +using Microsoft.EntityFrameworkCore; +using Volo.Abp.Identity; +using Volo.Abp.ObjectExtending; +using Volo.Abp.Threading; + +namespace API.EntityFrameworkCore +{ + public static class APIEfCoreEntityExtensionMappings + { + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + + public static void Configure() + { + APIGlobalFeatureConfigurator.Configure(); + APIModuleExtensionConfigurator.Configure(); + + OneTimeRunner.Run(() => + { + /* You can configure extra properties for the + * entities defined in the modules used by your application. + * + * This class can be used to map these extra properties to table fields in the database. + * + * USE THIS CLASS ONLY TO CONFIGURE EF CORE RELATED MAPPING. + * USE APIModuleExtensionConfigurator CLASS (in the Domain.Shared project) + * FOR A HIGH LEVEL API TO DEFINE EXTRA PROPERTIES TO ENTITIES OF THE USED MODULES + * + * Example: Map a property to a table field: + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + "MyProperty", + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasMaxLength(128); + } + ); + + * See the documentation for more: + * https://docs.abp.io/en/abp/latest/Customizing-Application-Modules-Extending-Entities + */ + }); + } + } +} diff --git a/src/API.EntityFrameworkCore/EntityFrameworkCore/APIEntityFrameworkCoreModule.cs b/src/API.EntityFrameworkCore/EntityFrameworkCore/APIEntityFrameworkCoreModule.cs new file mode 100644 index 0000000..8e8992b --- /dev/null +++ b/src/API.EntityFrameworkCore/EntityFrameworkCore/APIEntityFrameworkCoreModule.cs @@ -0,0 +1,76 @@ +using API.DataSources; +using API.Repository; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.AuditLogging.EntityFrameworkCore; +using Volo.Abp.BackgroundJobs.EntityFrameworkCore; +using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.EntityFrameworkCore.DependencyInjection; +using Volo.Abp.EntityFrameworkCore.SqlServer; +using Volo.Abp.FeatureManagement.EntityFrameworkCore; +using Volo.Abp.Identity.EntityFrameworkCore; +using Volo.Abp.IdentityServer.EntityFrameworkCore; +using Volo.Abp.Modularity; +using Volo.Abp.PermissionManagement.EntityFrameworkCore; +using Volo.Abp.SettingManagement.EntityFrameworkCore; +using Volo.Abp.TenantManagement.EntityFrameworkCore; + +namespace API.EntityFrameworkCore +{ + [DependsOn( + typeof(APIDomainModule), + typeof(AbpIdentityEntityFrameworkCoreModule), + typeof(AbpIdentityServerEntityFrameworkCoreModule), + typeof(AbpPermissionManagementEntityFrameworkCoreModule), + typeof(AbpSettingManagementEntityFrameworkCoreModule), + typeof(AbpEntityFrameworkCoreSqlServerModule), + typeof(AbpBackgroundJobsEntityFrameworkCoreModule), + typeof(AbpAuditLoggingEntityFrameworkCoreModule), + typeof(AbpTenantManagementEntityFrameworkCoreModule), + typeof(AbpFeatureManagementEntityFrameworkCoreModule) + )] + public class APIEntityFrameworkCoreModule : AbpModule + { + public override void PreConfigureServices(ServiceConfigurationContext context) + { + APIEfCoreEntityExtensionMappings.Configure(); + } + + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddAbpDbContext(options => + { + /* Remove "includeAllEntities: true" to create + * default repositories only for aggregate roots */ + options.AddDefaultRepositories(includeAllEntities: true); + }); + + Configure(options => + { + /* The main point to change your DBMS. + * See also APIMigrationsDbContextFactory for EF Core tooling. */ + options.UseSqlServer(); + }); + context.Services.AddTransient(typeof(IAPIEfCoreRepository<,>), typeof(APIEfCoreRepository<,>)); + Configure(options => + { + #region 数据来源 + + options.Entity(orderOptions => { orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Detail); }); + options.Entity(orderOptions => { orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Detail); }); + options.Entity(orderOptions => { orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Detail); }); + options.Entity(orderOptions => { orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Detail); }); + options.Entity(orderOptions => { orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Detail); }); + options.Entity(orderOptions => { orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Detail); }); + options.Entity(orderOptions => { orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Detail); }); + options.Entity(orderOptions => { orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Detail); }); + options.Entity(orderOptions => { orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Detail); }); + options.Entity(orderOptions => { orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Detail); }); + options.Entity(orderOptions => { orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Detail); }); + options.Entity(orderOptions => { orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Detail); }); + + #endregion + }); + } + } +} diff --git a/src/API.EntityFrameworkCore/EntityFrameworkCore/APIModelBuilderConfigurationOptions.cs b/src/API.EntityFrameworkCore/EntityFrameworkCore/APIModelBuilderConfigurationOptions.cs new file mode 100644 index 0000000..46dd5f9 --- /dev/null +++ b/src/API.EntityFrameworkCore/EntityFrameworkCore/APIModelBuilderConfigurationOptions.cs @@ -0,0 +1,19 @@ +using JetBrains.Annotations; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.EntityFrameworkCore.Modeling; + +namespace API.EntityFrameworkCore +{ + public class APIModelBuilderConfigurationOptions : AbpModelBuilderConfigurationOptions + { + public APIModelBuilderConfigurationOptions([NotNull] string tablePrefix, [CanBeNull] string schema) + : base(tablePrefix, schema) + { + + } + } +} diff --git a/src/API.EntityFrameworkCore/EntityFrameworkCore/EntityFrameworkCoreAPIDbSchemaMigrator.cs b/src/API.EntityFrameworkCore/EntityFrameworkCore/EntityFrameworkCoreAPIDbSchemaMigrator.cs new file mode 100644 index 0000000..ce35eb8 --- /dev/null +++ b/src/API.EntityFrameworkCore/EntityFrameworkCore/EntityFrameworkCoreAPIDbSchemaMigrator.cs @@ -0,0 +1,35 @@ +using System; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.DependencyInjection; +using API.Data; +using Volo.Abp.DependencyInjection; + +namespace API.EntityFrameworkCore +{ + public class EntityFrameworkCoreAPIDbSchemaMigrator + : IAPIDbSchemaMigrator, ITransientDependency + { + private readonly IServiceProvider _serviceProvider; + + public EntityFrameworkCoreAPIDbSchemaMigrator( + IServiceProvider serviceProvider) + { + _serviceProvider = serviceProvider; + } + + public async Task MigrateAsync() + { + /* We intentionally resolving the APIDbContext + * from IServiceProvider (instead of directly injecting it) + * to properly get the connection string of the current tenant in the + * current scope. + */ + + await _serviceProvider + .GetRequiredService() + .Database + .MigrateAsync(); + } + } +} diff --git a/src/API.EntityFrameworkCore/JQEntityFrameworkCore/EntityFrameworkCoreJQDbSchemaMigrator.cs b/src/API.EntityFrameworkCore/JQEntityFrameworkCore/EntityFrameworkCoreJQDbSchemaMigrator.cs new file mode 100644 index 0000000..d34eaaf --- /dev/null +++ b/src/API.EntityFrameworkCore/JQEntityFrameworkCore/EntityFrameworkCoreJQDbSchemaMigrator.cs @@ -0,0 +1,40 @@ +using API.Data; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.DependencyInjection; + +namespace API.JQEntityFrameworkCore +{ + + + public class EntityFrameworkCoreJQDbSchemaMigrator + : IAPIDbSchemaMigrator, ITransientDependency + { + private readonly IServiceProvider _serviceProvider; + + public EntityFrameworkCoreJQDbSchemaMigrator( + IServiceProvider serviceProvider) + { + _serviceProvider = serviceProvider; + } + + public async Task MigrateAsync() + { + /* We intentionally resolving the APIDbContext + * from IServiceProvider (instead of directly injecting it) + * to properly get the connection string of the current tenant in the + * current scope. + */ + + await _serviceProvider + .GetRequiredService() + .Database + .MigrateAsync(); + } + } +} diff --git a/src/API.EntityFrameworkCore/JQEntityFrameworkCore/JQDbContext.cs b/src/API.EntityFrameworkCore/JQEntityFrameworkCore/JQDbContext.cs new file mode 100644 index 0000000..fbdd833 --- /dev/null +++ b/src/API.EntityFrameworkCore/JQEntityFrameworkCore/JQDbContext.cs @@ -0,0 +1,107 @@ +using API.JQDataSources; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.AuditLogging.EntityFrameworkCore; +using Volo.Abp.BackgroundJobs.EntityFrameworkCore; +using Volo.Abp.Data; +using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.FeatureManagement.EntityFrameworkCore; +using Volo.Abp.Identity.EntityFrameworkCore; +using Volo.Abp.IdentityServer.EntityFrameworkCore; +using Volo.Abp.PermissionManagement.EntityFrameworkCore; +using Volo.Abp.SettingManagement.EntityFrameworkCore; +using Volo.Abp.TenantManagement.EntityFrameworkCore; + +namespace API.JQEntityFrameworkCore +{ + [ConnectionStringName("JQ")] + public class JQDbContext : + AbpDbContext + { + /* Add DbSet properties for your Aggregate Roots / Entities here. */ + + #region Entities from the modules + + /* Notice: We only implemented IIdentityDbContext and ITenantManagementDbContext + * and replaced them for this DbContext. This allows you to perform JOIN + * queries for the entities of these modules over the repositories easily. You + * typically don't need that for other modules. But, if you need, you can + * implement the DbContext interface of the needed module and use ReplaceDbContext + * attribute just like IIdentityDbContext and ITenantManagementDbContext. + * + * More info: Replacing a DbContext of a module ensures that the related module + * uses this DbContext on runtime. Otherwise, it will use its own DbContext class. + */ + + //Identity + #endregion + public DbSet ODS_JQ_LRB_JQs { get; set; } + public DbSet ODS_JQ_QJFYB_JQs { get; set; } + public DbSet ODS_JQ_SCCBB_JQs { get; set; } + public DbSet ODS_JQ_XJLLB_INNER_MONTH_JQs { get; set; } + public DbSet ODS_JQ_ZCFZB_JQs { get; set; } + public DbSet ODS_JQ_ZGXCB_JQs { get; set; } + public DbSet ODS_JQ_ZQMXB_YSZK_JQs { get; set; } + public DbSet ODS_JQ_ZWMXB_YFZK_JQs { get; set; } + public DbSet ODS_JQ_ZZFYB_JQs { get; set; } + + public DbSet ODS_JQ_LRMXB_JQs { get; set; } + + + + + + + + + public JQDbContext(DbContextOptions options) + : base(options) + { + + } + + //protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) + //{ + + // optionsBuilder.UseOracle( + // "DATA SOURCE=121.36.30.37:6521/ORCL;USER ID=lzb ;PASSWORD=lzb;" + // , b => b.UseOracleSQLCompatibility("12")); + // base.OnConfiguring(optionsBuilder); + + //} + + protected override void OnModelCreating(ModelBuilder builder) + { + + + //builder.HasDefaultSchema("LZB"); + base.OnModelCreating(builder); + + /* Include modules to your migration db context */ + + //builder.ConfigurePermissionManagement(); + //builder.ConfigureSettingManagement(); + //builder.ConfigureBackgroundJobs(); + //builder.ConfigureAuditLogging(); + //builder.ConfigureIdentity(); + //builder.ConfigureIdentityServer(); + //builder.ConfigureFeatureManagement(); + //builder.ConfigureTenantManagement(); + + /* Configure your own tables/entities inside here */ + + //builder.Entity(b => + //{ + // b.ToTable(APIConsts.DbTablePrefix + "YourEntities", APIConsts.DbSchema); + // b.ConfigureByConvention(); //auto configure for the base class props + // //... + //}); + builder.ConfigureJQ(); + } + } +} diff --git a/src/API.EntityFrameworkCore/JQEntityFrameworkCore/JQDbContextFactory.cs b/src/API.EntityFrameworkCore/JQEntityFrameworkCore/JQDbContextFactory.cs new file mode 100644 index 0000000..25b781d --- /dev/null +++ b/src/API.EntityFrameworkCore/JQEntityFrameworkCore/JQDbContextFactory.cs @@ -0,0 +1,35 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Design; +using Microsoft.Extensions.Configuration; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace API.JQEntityFrameworkCore +{ + public class JQDbContextFactory : IDesignTimeDbContextFactory + { + public JQDbContext CreateDbContext(string[] args) + { + JQEfCoreEntityExtensionMappings.Configure(); + + var configuration = BuildConfiguration(); + + var builder = new DbContextOptionsBuilder().UseOracle(configuration.GetConnectionString("JQ")); + + return new JQDbContext(builder.Options); + } + + private static IConfigurationRoot BuildConfiguration() + { + var builder = new ConfigurationBuilder() + .SetBasePath(Path.Combine(Directory.GetCurrentDirectory(), "../API.DbMigrator/")) + .AddJsonFile("appsettings.json", optional: false); + + return builder.Build(); + } + } +} diff --git a/src/API.EntityFrameworkCore/JQEntityFrameworkCore/JQDbContextModelCreatingExtensions.cs b/src/API.EntityFrameworkCore/JQEntityFrameworkCore/JQDbContextModelCreatingExtensions.cs new file mode 100644 index 0000000..a239341 --- /dev/null +++ b/src/API.EntityFrameworkCore/JQEntityFrameworkCore/JQDbContextModelCreatingExtensions.cs @@ -0,0 +1,167 @@ +using API.JQDataSources; +using JetBrains.Annotations; +using Microsoft.EntityFrameworkCore; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.EntityFrameworkCore.Modeling; + +namespace API.JQEntityFrameworkCore +{ + + public static class JQDbContextModelCreatingExtensions + { + public const string IsDeletedFilter = "IsDeleted=0"; + public static void ConfigureJQ(this ModelBuilder builder, + [CanBeNull] Action optionsAction = null) + { + var options = new JQModelBuilderConfigurationOptions( + JQDbProperties.DbTablePrefix, + JQDbProperties.DbSchema + ); + + builder.ConfigureODS_JQ_LRB_JQ(options); + builder.ConfigureODS_JQ_QJFYB_JQ(options); + builder.ConfigureODS_JQ_SCCBB_JQ(options); + builder.ConfigureODS_JQ_XJLLB_INNER_MONTH_JQ(options); + builder.ConfigureODS_JQ_ZCFZB_JQ(options); + builder.ConfigureODS_JQ_ZGXCB_JQ(options); + builder.ConfigureODS_JQ_ZQMXB_YSZK_JQ(options); + builder.ConfigureODS_JQ_ZWMXB_YFZK_JQ(options); + builder.ConfigureODS_JQ_ZZFYB_JQ(options); + builder.ConfigureODS_JQ_LRMXB_JQ(options); + } + + private static void ConfigureODS_JQ_LRB_JQ(this ModelBuilder builder, JQModelBuilderConfigurationOptions options) + { + + + //builder.Entity(entity => + //{ + // entity.ToTable("ODS_JQ_LRB"); + // entity.Property(e => e.Id).IsRequired(); + // //指定需要关联的序列名称 + // // entity.Property(e => e.Id).UseHiLo("SEQ_EMPLOYEE_ID"); + // //列映射 + // entity.Property(e => e.Id).HasColumnName("ID"); + //}); + + builder.Entity(b => + { + b.ToTable($"ODS_JQ_LRB", options.Schema); + b.ConfigureByConvention(); + b.Property(e => e.Id).HasColumnName("ID"); + // 创建索引 + b.HasIndex(x => new { x.Id }).IsUnique(); + }); + } + private static void ConfigureODS_JQ_LRMXB_JQ(this ModelBuilder builder, JQModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_JQ_LRMXB", options.Schema); + b.ConfigureByConvention(); + b.Property(e => e.Id).HasColumnName("ID"); + // 创建索引 + b.HasIndex(x => new { x.Id }).IsUnique(); + }); + } + + + private static void ConfigureODS_JQ_QJFYB_JQ(this ModelBuilder builder, JQModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_JQ_QJFYB", options.Schema); + b.ConfigureByConvention(); + b.Property(e => e.Id).HasColumnName("ID"); + // 创建索引 + b.HasIndex(x => new { x.Id }).IsUnique(); + }); + } + private static void ConfigureODS_JQ_SCCBB_JQ(this ModelBuilder builder, JQModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_JQ_SCCBB", options.Schema); + b.ConfigureByConvention(); + b.Property(e => e.Id).HasColumnName("ID"); + // 创建索引 + b.HasIndex(x => new { x.Id }).IsUnique(); + }); + } + + private static void ConfigureODS_JQ_XJLLB_INNER_MONTH_JQ(this ModelBuilder builder, JQModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_JQ_XJLLB_INNER_MONTH", options.Schema); + b.ConfigureByConvention(); + b.Property(e => e.Id).HasColumnName("ID"); + // 创建索引 + b.HasIndex(x => new { x.Id }).IsUnique(); + }); + } + + private static void ConfigureODS_JQ_ZCFZB_JQ(this ModelBuilder builder, JQModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_JQ_ZCFZB", options.Schema); + b.ConfigureByConvention(); + b.Property(e => e.Id).HasColumnName("ID"); + // 创建索引 + b.HasIndex(x => new { x.Id }).IsUnique(); + }); + } + private static void ConfigureODS_JQ_ZGXCB_JQ(this ModelBuilder builder, JQModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_JQ_ZGXCB", options.Schema); + b.ConfigureByConvention(); + b.Property(e => e.Id).HasColumnName("ID"); + // 创建索引 + b.HasIndex(x => new { x.Id }).IsUnique(); + }); + } + private static void ConfigureODS_JQ_ZQMXB_YSZK_JQ(this ModelBuilder builder, JQModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_JQ_ZQMXB_YSZK", options.Schema); + b.ConfigureByConvention(); + b.Property(e => e.Id).HasColumnName("ID"); + // 创建索引 + b.HasIndex(x => new { x.Id }).IsUnique(); + }); + } + + private static void ConfigureODS_JQ_ZWMXB_YFZK_JQ(this ModelBuilder builder, JQModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_JQ_ZWMXB_YFZK", options.Schema); + b.ConfigureByConvention(); + b.Property(e => e.Id).HasColumnName("ID"); + // 创建索引 + b.HasIndex(x => new { x.Id }).IsUnique(); + }); + } + + + private static void ConfigureODS_JQ_ZZFYB_JQ(this ModelBuilder builder, JQModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_JQ_ZZFYB", options.Schema); + b.ConfigureByConvention(); + b.Property(e => e.Id).HasColumnName("ID"); + // 创建索引 + b.HasIndex(x => new { x.Id }).IsUnique(); + }); + } + } +} diff --git a/src/API.EntityFrameworkCore/JQEntityFrameworkCore/JQEfCoreEntityExtensionMappings.cs b/src/API.EntityFrameworkCore/JQEntityFrameworkCore/JQEfCoreEntityExtensionMappings.cs new file mode 100644 index 0000000..0fee1b3 --- /dev/null +++ b/src/API.EntityFrameworkCore/JQEntityFrameworkCore/JQEfCoreEntityExtensionMappings.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Threading; + +namespace API.JQEntityFrameworkCore +{ + + public static class JQEfCoreEntityExtensionMappings + { + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + + public static void Configure() + { + APIGlobalFeatureConfigurator.Configure(); + APIModuleExtensionConfigurator.Configure(); + + OneTimeRunner.Run(() => + { + /* You can configure extra properties for the + * entities defined in the modules used by your application. + * + * This class can be used to map these extra properties to table fields in the database. + * + * USE THIS CLASS ONLY TO CONFIGURE EF CORE RELATED MAPPING. + * USE APIModuleExtensionConfigurator CLASS (in the Domain.Shared project) + * FOR A HIGH LEVEL API TO DEFINE EXTRA PROPERTIES TO ENTITIES OF THE USED MODULES + * + * Example: Map a property to a table field: + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + "MyProperty", + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasMaxLength(128); + } + ); + + * See the documentation for more: + * https://docs.abp.io/en/abp/latest/Customizing-Application-Modules-Extending-Entities + */ + }); + } + } +} diff --git a/src/API.EntityFrameworkCore/JQEntityFrameworkCore/JQEntityFrameworkCoreModule.cs b/src/API.EntityFrameworkCore/JQEntityFrameworkCore/JQEntityFrameworkCoreModule.cs new file mode 100644 index 0000000..67a8a74 --- /dev/null +++ b/src/API.EntityFrameworkCore/JQEntityFrameworkCore/JQEntityFrameworkCoreModule.cs @@ -0,0 +1,70 @@ + +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.AuditLogging.EntityFrameworkCore; +using Volo.Abp.BackgroundJobs.EntityFrameworkCore; +using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.EntityFrameworkCore.DependencyInjection; +using Volo.Abp.Identity.EntityFrameworkCore; +using Volo.Abp.IdentityServer.EntityFrameworkCore; +using Volo.Abp.Modularity; +using Volo.Abp.PermissionManagement.EntityFrameworkCore; +using Volo.Abp.SettingManagement.EntityFrameworkCore; +using Volo.Abp.TenantManagement.EntityFrameworkCore; +using Volo.Abp.FeatureManagement.EntityFrameworkCore; +using Volo.Abp.EntityFrameworkCore.Oracle; +using API.JQDataSources; + +namespace API.JQEntityFrameworkCore +{ + [DependsOn( + typeof(APIDomainModule), + typeof(AbpIdentityEntityFrameworkCoreModule), + typeof(AbpIdentityServerEntityFrameworkCoreModule), + typeof(AbpPermissionManagementEntityFrameworkCoreModule), + typeof(AbpSettingManagementEntityFrameworkCoreModule), + typeof(AbpEntityFrameworkCoreOracleModule), + typeof(AbpBackgroundJobsEntityFrameworkCoreModule), + typeof(AbpAuditLoggingEntityFrameworkCoreModule), + typeof(AbpTenantManagementEntityFrameworkCoreModule), + typeof(AbpFeatureManagementEntityFrameworkCoreModule) + )] + public class JQEntityFrameworkCoreModule : AbpModule + { + public override void PreConfigureServices(ServiceConfigurationContext context) + { + JQEfCoreEntityExtensionMappings.Configure(); + } + + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddAbpDbContext(options => + { + /* Remove "includeAllEntities: true" to create + * default repositories only for aggregate roots */ + options.AddDefaultRepository(); + options.AddDefaultRepository(); + options.AddDefaultRepository(); + options.AddDefaultRepository(); + options.AddDefaultRepository(); + options.AddDefaultRepository(); + options.AddDefaultRepository(); + options.AddDefaultRepository(); + options.AddDefaultRepository(); + options.AddDefaultRepository(); + + }); + + Configure(options => + { + /* The main point to change your DBMS. + * See also APIMigrationsDbContextFactory for EF Core tooling. */ + options.UseOracle(); + + }); + //Configure(options => + //{ + //}); + } + } +} diff --git a/src/API.EntityFrameworkCore/JQEntityFrameworkCore/JQModelBuilderConfigurationOptions.cs b/src/API.EntityFrameworkCore/JQEntityFrameworkCore/JQModelBuilderConfigurationOptions.cs new file mode 100644 index 0000000..c917b79 --- /dev/null +++ b/src/API.EntityFrameworkCore/JQEntityFrameworkCore/JQModelBuilderConfigurationOptions.cs @@ -0,0 +1,19 @@ +using JetBrains.Annotations; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.EntityFrameworkCore.Modeling; + +namespace API.JQEntityFrameworkCore +{ + public class JQModelBuilderConfigurationOptions : AbpModelBuilderConfigurationOptions + { + public JQModelBuilderConfigurationOptions([NotNull] string tablePrefix, [CanBeNull] string schema) + : base(tablePrefix, schema) + { + + } + } +} diff --git a/src/API.EntityFrameworkCore/Properties/AssemblyInfo.cs b/src/API.EntityFrameworkCore/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..0d2fe21 --- /dev/null +++ b/src/API.EntityFrameworkCore/Properties/AssemblyInfo.cs @@ -0,0 +1,2 @@ +using System.Runtime.CompilerServices; +[assembly:InternalsVisibleToAttribute("API.EntityFrameworkCore.Tests")] diff --git a/src/API.EntityFrameworkCore/Repository/APIEfCoreRepository.cs b/src/API.EntityFrameworkCore/Repository/APIEfCoreRepository.cs new file mode 100644 index 0000000..09305ef --- /dev/null +++ b/src/API.EntityFrameworkCore/Repository/APIEfCoreRepository.cs @@ -0,0 +1,148 @@ +using API.EntityFrameworkCore; +using API.Filter; +using Microsoft.EntityFrameworkCore; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; +using Volo.Abp.Domain.Repositories.EntityFrameworkCore; +using Volo.Abp.EntityFrameworkCore; + +namespace API.Repository +{ + class APIEfCoreRepository + { + } + public class APIEfCoreRepository : + EfCoreRepository, + + IAPIEfCoreRepository where TEntity : class, IEntity + { + + private readonly IDbContextProvider _dbContextProvider; + + + + public APIEfCoreRepository(IDbContextProvider dbContextProvider) : + base(dbContextProvider) + { + + _dbContextProvider = dbContextProvider; + + } + + public APIEfCoreRepository() : base(null) + { + + } + //public virtual async Task> GetAllAsync(TKey branchId, bool includeDetails = false, + // CancellationToken cancellationToken = default) + //{ + // var query = includeDetails ? this.WithDetails() : this.GetQueryable(); + + // //query = query.Where(p => p.BranchId.Equals(branchId)); + + // return await query.ToListAsync(cancellationToken: cancellationToken); + //} + + //public virtual async Task GetCountAsync(TKey branchId, CancellationToken cancellationToken = default) + //{ + // return await this.GetQueryable() + // //.Where(p => p.BranchId.Equals(branchId)) + // .LongCountAsync(GetCancellationToken(cancellationToken)); + + //} + + public virtual async Task Import3Async(IEnumerable entitys, CancellationToken cancellationToken = default) + { + + await DbSet.AddRangeAsync(entitys); + + return true; + } + + public virtual async Task GetCountByFilterAsync(List filters, + CancellationToken cancellationToken = default) + { + return await this.GetQueryable() + //.Where(p => p.BranchId.Equals(branchId)) + .WhereIf(filters?.Count != 0, filters.ToLambda()) + .LongCountAsync(GetCancellationToken(cancellationToken)); + } + + public virtual async Task> GetListByFilterAsync(List filters, + string sorting = null, + int maxResultCount = int.MaxValue, int skipCount = 0, bool includeDetails = false, + CancellationToken cancellationToken = default) + { + var query = includeDetails ? this.WithDetails() : this.GetQueryable(); + var entities = query.WhereIf(filters?.Count != 0, filters.ToLambda()); + + entities = GetSortingQueryable(entities, sorting); + + return await entities.PageBy(skipCount, maxResultCount) + .ToListAsync(GetCancellationToken(cancellationToken)); + } + protected static IQueryable GetSortingQueryable(IQueryable entities, string sorting) + { + if (string.IsNullOrEmpty(sorting)) + { + entities = entities.OrderByDescending("Id"); + } + else + { + var srts = sorting?.Split(','); + if (srts.Count() > 1)//多条件排序 + { + Dictionary dicSortName = new Dictionary(); + foreach (var str in srts) + { + var sortParams = str?.Split(' '); + var sortName = sortParams[0]; + if (sortParams.Length > 1) + { + var sortDirection = sortParams[1]; + if (sortDirection == "DESC") + { + dicSortName.Add(sortName, false); + } + else + { + dicSortName.Add(sortName, true); + } + } + else + { + dicSortName.Add(sortName, true); + } + } + entities = entities.OrderBy(dicSortName); + } + else + { + var sortParams = sorting?.Split(' '); + var sortName = sortParams[0]; + bool isDesc; + if (sortParams.Length > 1) + { + var sortDirection = sortParams[1]; + isDesc = sortDirection == "DESC"; + } + else + { + isDesc = true; + } + entities = isDesc ? entities.OrderByDescending(sortName) : entities.OrderBy(sortName); + } + + + + } + + return entities; + } + } +} diff --git a/src/API.EntityFrameworkCore/Repository/QueryableExtension.cs b/src/API.EntityFrameworkCore/Repository/QueryableExtension.cs new file mode 100644 index 0000000..13e5dbd --- /dev/null +++ b/src/API.EntityFrameworkCore/Repository/QueryableExtension.cs @@ -0,0 +1,90 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace API.Repository +{ + public static class QueryableExtension + { + public static IOrderedQueryable OrderBy(this IQueryable query, string propertyName) + { + return _OrderBy(query, propertyName, false); + } + public static IOrderedQueryable OrderByDescending(this IQueryable query, string propertyName) + { + return _OrderBy(query, propertyName, true); + } + + private static IOrderedQueryable _OrderBy(IQueryable query, string propertyName, bool isDesc) + { + string methodName = (isDesc) ? "OrderByDescendingInternal" : "OrderByInternal"; + + var memberProp = typeof(T).GetProperty(propertyName); + + var method = typeof(QueryableExtension).GetMethod(methodName)?.MakeGenericMethod(typeof(T), memberProp?.PropertyType); + var result = method?.Invoke(null, new object[] { query, memberProp }); + return (IOrderedQueryable)result; + } + + public static IOrderedQueryable OrderBy(this IQueryable query, Dictionary orderExpressions) + { + object tempQuery = query; + var n = 0; + foreach (var orderExpr in orderExpressions) + { + var propertyName = orderExpr.Key; + + var memberProp = typeof(T).GetProperty(propertyName); + + string methodName; + if (n == 0) + methodName = orderExpr.Value ? "OrderByInternal" : "OrderByDescendingInternal"; + else + methodName = orderExpr.Value ? "ThenByInternal" : "ThenByDescendingInternal"; + var method = typeof(QueryableExtension).GetMethod(methodName)?.MakeGenericMethod(typeof(T), memberProp?.PropertyType); + tempQuery = method?.Invoke(null, new object[] { tempQuery, memberProp }); + n++; + } + + + + return (IOrderedQueryable)tempQuery; + } + + + + public static IOrderedQueryable OrderByInternal(IQueryable query, PropertyInfo memberProperty) + {//public + return query.OrderBy(_GetLambda(memberProperty)); + } + public static IOrderedQueryable OrderByDescendingInternal(IQueryable query, PropertyInfo memberProperty) + {//public + return query.OrderByDescending(_GetLambda(memberProperty)); + } + + public static IOrderedQueryable ThenByInternal(IOrderedQueryable query, PropertyInfo memberProperty) + {//public + return query.ThenBy(_GetLambda(memberProperty)); + } + public static IOrderedQueryable ThenByDescendingInternal(IOrderedQueryable query, PropertyInfo memberProperty) + {//public + return query.ThenByDescending(_GetLambda(memberProperty)); + } + + private static Expression> _GetLambda(PropertyInfo memberProperty) + { + if (memberProperty.PropertyType != typeof(TProp)) throw new Exception(); + + var thisArg = Expression.Parameter(typeof(T)); + var lamba = Expression.Lambda>(Expression.Property(thisArg, memberProperty), thisArg); + + return lamba; + } + + + } +} diff --git a/src/API.HttpApi.Client/API.HttpApi.Client.csproj b/src/API.HttpApi.Client/API.HttpApi.Client.csproj new file mode 100644 index 0000000..24cb9a7 --- /dev/null +++ b/src/API.HttpApi.Client/API.HttpApi.Client.csproj @@ -0,0 +1,23 @@ + + + + + + netstandard2.0 + API + + + + + + + + + + + + + + + + diff --git a/src/API.HttpApi.Client/APIHttpApiClientModule.cs b/src/API.HttpApi.Client/APIHttpApiClientModule.cs new file mode 100644 index 0000000..7450592 --- /dev/null +++ b/src/API.HttpApi.Client/APIHttpApiClientModule.cs @@ -0,0 +1,33 @@ +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Account; +using Volo.Abp.FeatureManagement; +using Volo.Abp.Identity; +using Volo.Abp.Modularity; +using Volo.Abp.PermissionManagement; +using Volo.Abp.TenantManagement; +using Volo.Abp.SettingManagement; + +namespace API +{ + [DependsOn( + typeof(APIApplicationContractsModule), + typeof(AbpAccountHttpApiClientModule), + typeof(AbpIdentityHttpApiClientModule), + typeof(AbpPermissionManagementHttpApiClientModule), + typeof(AbpTenantManagementHttpApiClientModule), + typeof(AbpFeatureManagementHttpApiClientModule), + typeof(AbpSettingManagementHttpApiClientModule) + )] + public class APIHttpApiClientModule : AbpModule + { + public const string RemoteServiceName = "Default"; + + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddHttpClientProxies( + typeof(APIApplicationContractsModule).Assembly, + RemoteServiceName + ); + } + } +} diff --git a/src/API.HttpApi/API.HttpApi.csproj b/src/API.HttpApi/API.HttpApi.csproj new file mode 100644 index 0000000..86cb817 --- /dev/null +++ b/src/API.HttpApi/API.HttpApi.csproj @@ -0,0 +1,23 @@ + + + + + + net5.0 + API + + + + + + + + + + + + + + + + diff --git a/src/API.HttpApi/APIHttpApiModule.cs b/src/API.HttpApi/APIHttpApiModule.cs new file mode 100644 index 0000000..0871e92 --- /dev/null +++ b/src/API.HttpApi/APIHttpApiModule.cs @@ -0,0 +1,42 @@ +using Localization.Resources.AbpUi; +using API.Localization; +using Volo.Abp.Account; +using Volo.Abp.FeatureManagement; +using Volo.Abp.Identity; +using Volo.Abp.Localization; +using Volo.Abp.Modularity; +using Volo.Abp.PermissionManagement.HttpApi; +using Volo.Abp.SettingManagement; +using Volo.Abp.TenantManagement; + +namespace API +{ + [DependsOn( + typeof(APIApplicationContractsModule), + typeof(AbpAccountHttpApiModule), + typeof(AbpIdentityHttpApiModule), + typeof(AbpPermissionManagementHttpApiModule), + typeof(AbpTenantManagementHttpApiModule), + typeof(AbpFeatureManagementHttpApiModule), + typeof(AbpSettingManagementHttpApiModule) + )] + public class APIHttpApiModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + ConfigureLocalization(); + } + + private void ConfigureLocalization() + { + Configure(options => + { + options.Resources + .Get() + .AddBaseTypes( + typeof(AbpUiResource) + ); + }); + } + } +} diff --git a/src/API.HttpApi/Controllers/APIController.cs b/src/API.HttpApi/Controllers/APIController.cs new file mode 100644 index 0000000..70949ef --- /dev/null +++ b/src/API.HttpApi/Controllers/APIController.cs @@ -0,0 +1,15 @@ +using API.Localization; +using Volo.Abp.AspNetCore.Mvc; + +namespace API.Controllers +{ + /* Inherit your controllers from this class. + */ + public abstract class APIController : AbpController + { + protected APIController() + { + LocalizationResource = typeof(APIResource); + } + } +} \ No newline at end of file diff --git a/src/API.HttpApi/Models/Test/TestModel.cs b/src/API.HttpApi/Models/Test/TestModel.cs new file mode 100644 index 0000000..9c4349a --- /dev/null +++ b/src/API.HttpApi/Models/Test/TestModel.cs @@ -0,0 +1,11 @@ +using System; + +namespace API.Models.Test +{ + public class TestModel + { + public string Name { get; set; } + + public DateTime BirthDate { get; set; } + } +} \ No newline at end of file diff --git a/src/API.Web/API.Web.csproj b/src/API.Web/API.Web.csproj new file mode 100644 index 0000000..c246603 --- /dev/null +++ b/src/API.Web/API.Web.csproj @@ -0,0 +1,58 @@ + + + + + + net5.0 + API.Web + $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; + true + true + true + true + false + true + API-4681b4fd-151f-4221-84a4-929d86723e4c + + + + + + + + + + + + Always + + + Always + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/API.Web/APIBrandingProvider.cs b/src/API.Web/APIBrandingProvider.cs new file mode 100644 index 0000000..5abb608 --- /dev/null +++ b/src/API.Web/APIBrandingProvider.cs @@ -0,0 +1,11 @@ +using Volo.Abp.Ui.Branding; +using Volo.Abp.DependencyInjection; + +namespace API.Web +{ + [Dependency(ReplaceServices = true)] + public class APIBrandingProvider : DefaultBrandingProvider + { + public override string AppName => "API"; + } +} diff --git a/src/API.Web/APIWebAutoMapperProfile.cs b/src/API.Web/APIWebAutoMapperProfile.cs new file mode 100644 index 0000000..f238b87 --- /dev/null +++ b/src/API.Web/APIWebAutoMapperProfile.cs @@ -0,0 +1,12 @@ +using AutoMapper; + +namespace API.Web +{ + public class APIWebAutoMapperProfile : Profile + { + public APIWebAutoMapperProfile() + { + //Define your AutoMapper configuration here for the Web project. + } + } +} diff --git a/src/API.Web/APIWebModule.cs b/src/API.Web/APIWebModule.cs new file mode 100644 index 0000000..648c227 --- /dev/null +++ b/src/API.Web/APIWebModule.cs @@ -0,0 +1,279 @@ +using System; +using System.IO; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using API.EntityFrameworkCore; +using API.Localization; +using API.MultiTenancy; +using API.Web.Menus; +using Microsoft.OpenApi.Models; +using Volo.Abp; +using Volo.Abp.Account.Web; +using Volo.Abp.AspNetCore.Authentication.JwtBearer; +using Volo.Abp.AspNetCore.Mvc; +using Volo.Abp.AspNetCore.Mvc.Localization; +using Volo.Abp.AspNetCore.Mvc.UI; +using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; +using Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy; +using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic; +using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling; +using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; +using Volo.Abp.AspNetCore.Serilog; +using Volo.Abp.Autofac; +using Volo.Abp.AutoMapper; +using Volo.Abp.FeatureManagement; +using Volo.Abp.Identity.Web; +using Volo.Abp.Localization; +using Volo.Abp.Modularity; +using Volo.Abp.PermissionManagement.Web; +using Volo.Abp.SettingManagement.Web; +using Volo.Abp.Swashbuckle; +using Volo.Abp.TenantManagement.Web; +using Volo.Abp.UI.Navigation.Urls; +using Volo.Abp.UI; +using Volo.Abp.UI.Navigation; +using Volo.Abp.VirtualFileSystem; +using Volo.Abp.BackgroundJobs.Quartz; +using Volo.Abp.Threading; +using Volo.Abp.BackgroundWorkers.Quartz; +using Volo.Abp.Data; +using Swashbuckle.AspNetCore.SwaggerUI; +using API.BudgetEntityFrameworkCore; +using API.JQEntityFrameworkCore; + +namespace API.Web +{ + [DependsOn( + typeof(APIHttpApiModule), + typeof(APIApplicationModule), + typeof(APIEntityFrameworkCoreModule), + typeof(BudgetEntityFrameworkCoreModule), + typeof(JQEntityFrameworkCoreModule), + typeof(AbpAutofacModule), + typeof(AbpIdentityWebModule), + typeof(AbpSettingManagementWebModule), + typeof(AbpAccountWebIdentityServerModule), + typeof(AbpAspNetCoreMvcUiBasicThemeModule), + typeof(AbpAspNetCoreAuthenticationJwtBearerModule), + typeof(AbpTenantManagementWebModule), + typeof(AbpAspNetCoreSerilogModule), + typeof(AbpSwashbuckleModule), + typeof(AbpBackgroundWorkersQuartzModule), + typeof(AbpBackgroundJobsQuartzModule) + + )] + public class APIWebModule : AbpModule + { + public override void PreConfigureServices(ServiceConfigurationContext context) + { + context.Services.PreConfigure(options => + { + options.AddAssemblyResource( + typeof(APIResource), + typeof(APIDomainModule).Assembly, + typeof(APIDomainSharedModule).Assembly, + typeof(APIApplicationModule).Assembly, + typeof(APIApplicationContractsModule).Assembly, + typeof(APIWebModule).Assembly + ); + }); + } + + public override void ConfigureServices(ServiceConfigurationContext context) + { + var hostingEnvironment = context.Services.GetHostingEnvironment(); + var configuration = context.Services.GetConfiguration(); + + ConfigureUrls(configuration); + ConfigureBundles(); + ConfigureAuthentication(context, configuration); + ConfigureAutoMapper(); + ConfigureVirtualFileSystem(hostingEnvironment); + ConfigureLocalizationServices(); + ConfigureNavigationServices(); + ConfigureAutoApiControllers(); + ConfigureSwaggerServices(context.Services); + } + + private void ConfigureUrls(IConfiguration configuration) + { + Configure(options => + { + options.Applications["MVC"].RootUrl = configuration["App:SelfUrl"]; + }); + } + + private void ConfigureBundles() + { + Configure(options => + { + options.StyleBundles.Configure( + BasicThemeBundles.Styles.Global, + bundle => + { + bundle.AddFiles("/global-styles.css"); + } + ); + }); + } + + private void ConfigureAuthentication(ServiceConfigurationContext context, IConfiguration configuration) + { + context.Services.AddAuthentication() + .AddJwtBearer(options => + { + options.Authority = configuration["AuthServer:Authority"]; + options.RequireHttpsMetadata = Convert.ToBoolean(configuration["AuthServer:RequireHttpsMetadata"]); + options.Audience = "API"; + }); + } + + private void ConfigureAutoMapper() + { + Configure(options => + { + options.AddMaps(); + }); + } + + private void ConfigureVirtualFileSystem(IWebHostEnvironment hostingEnvironment) + { + if (hostingEnvironment.IsDevelopment()) + { + Configure(options => + { + options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}API.Domain.Shared")); + options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}API.Domain")); + options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}API.Application.Contracts")); + options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}API.Application")); + options.FileSets.ReplaceEmbeddedByPhysical(hostingEnvironment.ContentRootPath); + }); + } + } + + private void ConfigureLocalizationServices() + { + Configure(options => + { + options.Languages.Add(new LanguageInfo("ar", "ar", "العربية")); + options.Languages.Add(new LanguageInfo("cs", "cs", "Čeština")); + options.Languages.Add(new LanguageInfo("en", "en", "English")); + options.Languages.Add(new LanguageInfo("en-GB", "en-GB", "English (UK)")); + options.Languages.Add(new LanguageInfo("hu", "hu", "Magyar")); + options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish")); + options.Languages.Add(new LanguageInfo("fr", "fr", "Français")); + options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi", "in")); + options.Languages.Add(new LanguageInfo("it", "it", "Italian", "it")); + options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português")); + options.Languages.Add(new LanguageInfo("ru", "ru", "Русский")); + options.Languages.Add(new LanguageInfo("sk", "sk", "Slovak")); + options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe")); + options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文")); + options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文")); + options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch", "de")); + options.Languages.Add(new LanguageInfo("es", "es", "Español")); + }); + } + + private void ConfigureNavigationServices() + { + Configure(options => + { + options.MenuContributors.Add(new APIMenuContributor()); + }); + } + + private void ConfigureAutoApiControllers() + { + Configure(options => + { + options.ConventionalControllers.Create(typeof(APIApplicationModule).Assembly); + }); + } + + private void ConfigureSwaggerServices(IServiceCollection services) + { + services.AddAbpSwaggerGen( + options => + { + options.SwaggerDoc("v1", new OpenApiInfo { Title = "API API", Version = "v1" }); + options.DocInclusionPredicate((docName, description) => true); + options.CustomSchemaIds(type => type.FullName); + } + ); + } + + public override void OnApplicationInitialization(ApplicationInitializationContext context) + { + var app = context.GetApplicationBuilder(); + var env = context.GetEnvironment(); + + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + } + + app.UseAbpRequestLocalization(); + + if (!env.IsDevelopment()) + { + app.UseErrorPage(); + } + + app.UseCorrelationId(); + app.UseStaticFiles(); + app.UseRouting(); + app.UseAuthentication(); + app.UseJwtTokenMiddleware(); + + if (MultiTenancyConsts.IsEnabled) + { + app.UseMultiTenancy(); + } + + app.UseUnitOfWork(); + app.UseIdentityServer(); + app.UseAuthorization(); + app.UseSwagger(); + app.UseAbpSwaggerUI(options => + { + options.SwaggerEndpoint("/swagger/v1/swagger.json", "API API"); + options.DocExpansion(DocExpansion.None); + }); + app.UseAuditing(); + app.UseAbpSerilogEnrichers(); + app.UseConfiguredEndpoints(); + AsyncHelper.RunSync(async () => + { + using (var scope = context.ServiceProvider.CreateScope()) + { + await scope.ServiceProvider + .GetRequiredService() + .SeedAsync(); + } + }); + //AsyncHelper.RunSync(async () => + //{ + // using (var scope = context.ServiceProvider.CreateScope()) + // { + // await scope.ServiceProvider + // .GetRequiredService() + // .SeedAsync(); + // } + //}); + //AsyncHelper.RunSync(async () => + //{ + // using (var scope = context.ServiceProvider.CreateScope()) + // { + // var mapp = scope.ServiceProvider.GetRequiredService(); + // await mapp.EnqueueJob(""); + // } + //}); + + } + } +} diff --git a/src/API.Web/Components/_ViewImports.cshtml b/src/API.Web/Components/_ViewImports.cshtml new file mode 100644 index 0000000..c1da1f5 --- /dev/null +++ b/src/API.Web/Components/_ViewImports.cshtml @@ -0,0 +1,4 @@ +@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers +@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI +@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bootstrap +@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bundling \ No newline at end of file diff --git a/src/API.Web/JobService.cs b/src/API.Web/JobService.cs new file mode 100644 index 0000000..b49b705 --- /dev/null +++ b/src/API.Web/JobService.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Volo.Abp.BackgroundJobs; +using Volo.Abp.DependencyInjection; + +namespace API.Web +{ + public class JobService : ITransientDependency + { + private readonly IBackgroundJobManager _backgroundJobManager; + public JobService(IBackgroundJobManager backgroundJobManager) + { + _backgroundJobManager = backgroundJobManager; + } + public async Task EnqueueJob(string message) + { +// await _backgroundJobManager.EnqueueAsync( +//new EmailSendingArgs +//{ +// EmailAddress = "1232qq.com", +// Subject = "22", +// Body = "weqwe." +//} +//); + } + } +} diff --git a/src/API.Web/Menus/APIMenuContributor.cs b/src/API.Web/Menus/APIMenuContributor.cs new file mode 100644 index 0000000..2f406bd --- /dev/null +++ b/src/API.Web/Menus/APIMenuContributor.cs @@ -0,0 +1,50 @@ +using System.Threading.Tasks; +using API.Localization; +using API.MultiTenancy; +using Volo.Abp.Identity.Web.Navigation; +using Volo.Abp.SettingManagement.Web.Navigation; +using Volo.Abp.TenantManagement.Web.Navigation; +using Volo.Abp.UI.Navigation; + +namespace API.Web.Menus +{ + public class APIMenuContributor : IMenuContributor + { + public async Task ConfigureMenuAsync(MenuConfigurationContext context) + { + if (context.Menu.Name == StandardMenus.Main) + { + await ConfigureMainMenuAsync(context); + } + } + + private async Task ConfigureMainMenuAsync(MenuConfigurationContext context) + { + var administration = context.Menu.GetAdministration(); + var l = context.GetLocalizer(); + + context.Menu.Items.Insert( + 0, + new ApplicationMenuItem( + APIMenus.Home, + l["Menu:Home"], + "~/", + icon: "fas fa-home", + order: 0 + ) + ); + + if (MultiTenancyConsts.IsEnabled) + { + administration.SetSubItemOrder(TenantManagementMenuNames.GroupName, 1); + } + else + { + administration.TryRemoveMenuItem(TenantManagementMenuNames.GroupName); + } + + administration.SetSubItemOrder(IdentityMenuNames.GroupName, 2); + administration.SetSubItemOrder(SettingManagementMenuNames.GroupName, 3); + } + } +} diff --git a/src/API.Web/Menus/APIMenus.cs b/src/API.Web/Menus/APIMenus.cs new file mode 100644 index 0000000..2f2aad2 --- /dev/null +++ b/src/API.Web/Menus/APIMenus.cs @@ -0,0 +1,11 @@ +namespace API.Web.Menus +{ + public class APIMenus + { + private const string Prefix = "API"; + public const string Home = Prefix + ".Home"; + + //Add your menu items here... + + } +} \ No newline at end of file diff --git a/src/API.Web/MyJob.cs b/src/API.Web/MyJob.cs new file mode 100644 index 0000000..dab4a9f --- /dev/null +++ b/src/API.Web/MyJob.cs @@ -0,0 +1,172 @@ +using API.BudgetDataSources; +using API.DataSources; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Volo.Abp.BackgroundJobs; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Repositories.EntityFrameworkCore; +using Volo.Abp.Emailing; +using Volo.Abp.Uow; + +namespace API.Web +{ + // [UnitOfWork] + public class MyJob :IAsyncBackgroundJob , ITransientDependency + { + private readonly TI_CBB04Manager _CBB04; + private readonly TI_CWB16Manager _CWB16; + private readonly TI_CWB17Manager _CWB17; + private readonly TI_CWB18Manager _CWB18; + private readonly TI_CWB19Manager _CWB19; + private readonly TO_CWC14Manager _CWC14; + private readonly TO_CWC19Manager _CWC19; + private readonly TO_CWC21Manager _CWC21; + private readonly TO_GGC01Manager _GGC01; + private readonly TO_HRC01Manager _HRC01; + private readonly TO_JGC01Manager _JGC01; + private readonly TS_XSA04Manager _XSA04; + + private readonly ODS_JQ_LRBManager _LRBManager; + private readonly ODS_JQ_QJFYBManager _QJFYBManager; + private readonly ODS_JQ_SCCBBManager _SCCBBManager; + private readonly ODS_JQ_XJLLB_INNER_YEARManager _XJLLBManager; + private readonly ODS_JQ_ZCFZBManager _ZCFZBManager; + private readonly ODS_JQ_ZGXCBManager _ZGXCBManager; + private readonly ODS_JQ_ZQMXB_YSZKManager _ZQMXBManager; + private readonly ODS_JQ_ZWMXB_YFZKManager _ZWMXBManager; + private readonly ODS_JQ_ZZFYBManager _ZZFYBManager; + public MyJob(ODS_JQ_LRBManager LRBManager, + ODS_JQ_QJFYBManager QJFYBManager, + ODS_JQ_SCCBBManager SCCBBManager, + ODS_JQ_XJLLB_INNER_YEARManager XJLLBManager, + ODS_JQ_ZCFZBManager ZCFZBManager, + ODS_JQ_ZGXCBManager ZGXCBManager, + ODS_JQ_ZQMXB_YSZKManager ZQMXBManager, + ODS_JQ_ZWMXB_YFZKManager ZWMXBManager, + ODS_JQ_ZZFYBManager ZZFYBManager, + TI_CBB04Manager CBB04, TI_CWB16Manager CWB16, + TI_CWB17Manager CWB17, TI_CWB18Manager CWB18, + TI_CWB19Manager CWB19,TO_CWC14Manager CWC14, + TO_CWC19Manager CWC19, TO_CWC21Manager CWC21, + TO_GGC01Manager GGC01, TO_HRC01Manager HRC01, + TO_JGC01Manager JGC01, TS_XSA04Manager XSA04) + { + + _LRBManager = LRBManager; + _QJFYBManager = QJFYBManager; + _SCCBBManager = SCCBBManager; + _XJLLBManager = XJLLBManager; + _ZCFZBManager = ZCFZBManager; + _ZGXCBManager = ZGXCBManager; + _ZQMXBManager = ZQMXBManager; + _ZWMXBManager = ZWMXBManager; + _ZZFYBManager = ZZFYBManager; + _CBB04 = CBB04; + _CWB16 = CWB16; + _CWB17 = CWB17; + _CWB18 = CWB18; + _CWB19 = CWB19; + _CWC14 = CWC14; + _CWC19 = CWC19; + _CWC21 = CWC21; + _GGC01 = GGC01; + _HRC01 = HRC01; + _JGC01 = JGC01; + _XSA04 = XSA04; + } + + + + public async Task ExecuteAsync(JobArgs args) + { + switch (args.SheetCode) + { + #region 久期表单 + case "ODS_JQ_LRB": + await _LRBManager.InsterLRB(args.Year, args.Month); + break; + case "ODS_JQ_QJFYB": + await _QJFYBManager.InsterQJFYB(args.Year, args.Month); + break; + case "ODS_JQ_SCCBB": + await _SCCBBManager.InsterSCCBB(args.Year, args.Month); + break; + case "ODS_JQ_XJLLB_INNER_YEAR": + await _XJLLBManager.InsterXJLLBINNER(args.Year, args.Month); + break; + case "ODS_JQ_ZCFZB": + await _ZCFZBManager.InsterZCFZB(args.Year, args.Month); + break; + case "ODS_JQ_ZGXCB": + await _ZGXCBManager.InsterZGXCB(args.Year, args.Month); + break; + case "ODS_JQ_ZQMXB_YSZK": + await _ZQMXBManager.InsterZQMXBYSZK(args.Year, args.Month); + break; + case "ODS_JQ_ZWMXB_YFZK": + await _ZWMXBManager.InsterZWMXBYFZK(args.Year, args.Month); + break; + case "ODS_JQ_ZZFYB": + await _ZZFYBManager.InsterZZFYB(args.Year, args.Month); + break; + #endregion + + #region 预算表单 + case "TS_XSA04": + if (await _XSA04.DeleteXSA04(args.Year)) + await _XSA04.InsterXSA04(args.Year); + break; + case "TI_CBB04": + if (await _CBB04.Deletecbb04(args.Year)) + await _CBB04.Instercbb04(args.Year); + break; + case "TI_CWB16": + if (await _CWB16.Deletecwb16(args.Year)) + await _CWB16.Instercwb16(args.Year); + break; + case "TI_CWB17": + if (await _CWB17.Deletecwb17(args.Year)) + await _CWB17.Instercwb17(args.Year); + break; + case "TO_CWB18": + if (await _CWB18.Deletecwb18(args.Year)) + await _CWB18.Instercwb18(args.Year); + break; + case "TO_CWB19": + if (await _CWB19.Deletecwb19(args.Year)) + await _CWB19.Instercwb19(args.Year); + break; + case "TO_CWC14": + var result= await _CWC14.DeleteCWC14(args.Year); + if(result) await _CWC14.InsterCWC14(args.Year); + break; + case "TO_CWC19": + if( await _CWC19.DeleteCWC19(args.Year)) + await _CWC19.InsterCWC19(args.Year); + break; + case "TO_CWC21": + if(await _CWC21.Deletecwc21(args.Year)) + await _CWC21.Instercwc21(args.Year); + break; + case "TO_GGC01": + if (await _GGC01.Deleteggc01(args.Year)) + await _GGC01.Insterggc011(args.Year); + break; + case "TO_HRC01": + if (await _HRC01.Deletehrc01(args.Year)) + await _HRC01.Insterhrc01(args.Year); + break; + case "TO_JGC01": + if (await _JGC01.Deletejgc01(args.Year)) + await _JGC01.Insterjgc01(args.Year); + break; + #endregion + default: + break; + } + } + } +} diff --git a/src/API.Web/MyLogWorker.cs b/src/API.Web/MyLogWorker.cs new file mode 100644 index 0000000..513c17d --- /dev/null +++ b/src/API.Web/MyLogWorker.cs @@ -0,0 +1,73 @@ +using API.BudgetDataSources; +using API.DataSources; +using API.JQDataSources; +using API.JQEntityFrameworkCore; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Logging; +using Quartz; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Threading.Tasks; +using Volo.Abp.BackgroundJobs; +using Volo.Abp.BackgroundWorkers.Quartz; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Repositories.EntityFrameworkCore; + +namespace API.Web +{ + public class MyLogWorker : QuartzBackgroundWorkerBase + { + private readonly IBackgroundJobManager _backgroundJobManager; + private readonly IConfiguration _con; + // private readonly JQDbContext _jQDbContext; + public MyLogWorker(IBackgroundJobManager backgroundJobManager, IConfiguration con) + { + //var configuration = new ConfigurationBuilder() + // .SetBasePath(Path.Combine(Directory.GetCurrentDirectory(), "../API.DbMigrator/")) + // .AddJsonFile("appsettings.json", optional: false); + //var aa = configuration.Build().GetConnectionString("Default"); + _con = con; + _backgroundJobManager = backgroundJobManager; + JobDetail = JobBuilder.Create().WithIdentity(nameof(MyLogWorker)).Build(); + Trigger = TriggerBuilder.Create().WithIdentity(nameof(MyLogWorker)).WithSimpleSchedule(s => s.WithIntervalInMinutes(30).RepeatForever().WithMisfireHandlingInstructionIgnoreMisfires()).Build(); + + ScheduleJob = async scheduler => + { + if (!await scheduler.CheckExists(JobDetail.Key)) + { + await scheduler.ScheduleJob(JobDetail, Trigger); + } + }; + } + + public async override Task Execute(IJobExecutionContext context) + { + // var options = new DbContextOptions(); + // await using var jQDbContext = new JQDbContext(options); + //var test1= _jQDbContext.ODS_JQ_LRBs.AsNoTracking().ToListAsync(); + var sheets = _con.GetSection("Sheets").GetChildren(); + int count = 0; + foreach (var item in sheets) + { + if (item["IsEnable"] == "是") + { + await _backgroundJobManager.EnqueueAsync( + new JobArgs + { + SheetCode = item["SheetCode"], + SheetName = item["SheetName"], + Year = DateTime.Now.Year, + Month = DateTime.Now.Month, + }); + count++; + } + Logger.LogInformation(item["SheetCode"]); + } + Logger.LogInformation( DateTime.Now.ToString() + "成功创建" + count.ToString()+"个"); ; + //return Task.CompletedTask; + } + } +} diff --git a/src/API.Web/Pages/APIPageModel.cs b/src/API.Web/Pages/APIPageModel.cs new file mode 100644 index 0000000..5588bc3 --- /dev/null +++ b/src/API.Web/Pages/APIPageModel.cs @@ -0,0 +1,15 @@ +using API.Localization; +using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; + +namespace API.Web.Pages +{ + /* Inherit your PageModel classes from this class. + */ + public abstract class APIPageModel : AbpPageModel + { + protected APIPageModel() + { + LocalizationResourceType = typeof(APIResource); + } + } +} \ No newline at end of file diff --git a/src/API.Web/Pages/Index.cshtml b/src/API.Web/Pages/Index.cshtml new file mode 100644 index 0000000..1b2c464 --- /dev/null +++ b/src/API.Web/Pages/Index.cshtml @@ -0,0 +1,163 @@ +@page +@using Microsoft.AspNetCore.Mvc.Localization +@using API.Localization +@using Volo.Abp.Users +@model API.Web.Pages.IndexModel +@inject IHtmlLocalizer L +@inject ICurrentUser CurrentUser +@section styles { + +} +@section scripts { + +} +
+
+ +

Welcome to the Application

+ +

@L["LongWelcomeMessage"]

+ + @if (!CurrentUser.IsAuthenticated) + { + @L["Login"] + } + +
+
+

Let's improve your application!

+

Here are some links to help you get started:

+
+
+
+
+
+
+
Learn the ABP Framework
+

Explore the compherensive documentation to learn how to build a modern web application.

+ See Documents +
+
+
+
+
Samples
+

See the example projects built with the ABP Framework.

+ All samples +
+
+
+
+
ABP Community
+

Get involved with a vibrant community and become a contributor.

+ Community + Contribute +
+
+
+
+
+
+
ABP Blog
+

Take a look at our recently published articles.

+ See Blog +
+
+
+
+
Github
+

Do you love the ABP Framework? Please give a star to support it!

+

+ Star + Issue + Fork +

+ Request a feature + +
+
+
+
+
Stackoverflow
+

See answers to previously asked questions or ask a new one.

+ Questions + Ask a Question +
+
+
+
+
+ +
+

Meet the ABP Commercial

+

A Complete Web Application Platform Built on the ABP Framework

+
+ +
+
+

+ ABP Commercial is a platform based on the open source ABP framework. It provides pre-built application modules, + rapid application development tooling, professional UI themes, premium support and more. +

+ +
+
+
+
+ Startup Templates + Details +
+
+
+
+
+
+ Application Modules + Details +
+
+
+
+
+
+ Developer
Tools + Details +
+
+
+
+
+
+ UI
Themes + Details +
+
+
+
+
+
+ Premium Support + Details +
+
+
+
+
+
+ Additional Services + Details +
+
+
+
+
+
+ +
diff --git a/src/API.Web/Pages/Index.cshtml.cs b/src/API.Web/Pages/Index.cshtml.cs new file mode 100644 index 0000000..abe829f --- /dev/null +++ b/src/API.Web/Pages/Index.cshtml.cs @@ -0,0 +1,10 @@ +namespace API.Web.Pages +{ + public class IndexModel : APIPageModel + { + public void OnGet() + { + + } + } +} \ No newline at end of file diff --git a/src/API.Web/Pages/Index.css b/src/API.Web/Pages/Index.css new file mode 100644 index 0000000..b248b67 --- /dev/null +++ b/src/API.Web/Pages/Index.css @@ -0,0 +1,3 @@ +body { + +} \ No newline at end of file diff --git a/src/API.Web/Pages/Index.js b/src/API.Web/Pages/Index.js new file mode 100644 index 0000000..a31bd7c --- /dev/null +++ b/src/API.Web/Pages/Index.js @@ -0,0 +1,3 @@ +$(function () { + abp.log.debug('Index.js initialized!'); +}); diff --git a/src/API.Web/Pages/_ViewImports.cshtml b/src/API.Web/Pages/_ViewImports.cshtml new file mode 100644 index 0000000..c1da1f5 --- /dev/null +++ b/src/API.Web/Pages/_ViewImports.cshtml @@ -0,0 +1,4 @@ +@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers +@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI +@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bootstrap +@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bundling \ No newline at end of file diff --git a/src/API.Web/Program.cs b/src/API.Web/Program.cs new file mode 100644 index 0000000..217a522 --- /dev/null +++ b/src/API.Web/Program.cs @@ -0,0 +1,66 @@ +using System; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Hosting; +using Serilog; +using Serilog.Events; + +namespace API.Web +{ + public class Program + { + public static int Main(string[] args) + { + Log.Logger = new LoggerConfiguration() +#if DEBUG + .MinimumLevel.Debug() +#else + .MinimumLevel.Information() +#endif + .MinimumLevel.Override("Microsoft", LogEventLevel.Information) + .MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning) + .Enrich.FromLogContext() + .WriteTo.Async(c => c.File("Logs/logs.txt")) +#if DEBUG + .WriteTo.Async(c => c.Console()) +#endif + .CreateLogger(); + + try + { + Log.Information("Starting web host."); + CreateHostBuilder(args).Build().Run(); + return 0; + } + catch (Exception ex) + { + Log.Fatal(ex, "Host terminated unexpectedly!"); + return 1; + } + finally + { + Log.CloseAndFlush(); + } + } + + internal static IHostBuilder CreateHostBuilder(string[] args) => + Host.CreateDefaultBuilder(args) + //.ConfigureAppConfiguration(build => + //{ + // build.AddJsonFile("appsettings.secrets.json", optional: true); + //}) + .ConfigureWebHostDefaults(webBuilder => + { + webBuilder.UseStartup(); + webBuilder.ConfigureKestrel(kestrel => + { + //获取或设置保持活动状态超时。默认值为2分钟。 + kestrel.Limits.KeepAliveTimeout = TimeSpan.FromMinutes(20); + //获取或设置请求超时。默认值为30秒 + kestrel.Limits.RequestHeadersTimeout = TimeSpan.FromMinutes(20); + }); + }) + .UseAutofac() + .UseSerilog(); + } +} diff --git a/src/API.Web/Properties/AssemblyInfo.cs b/src/API.Web/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..15c3578 --- /dev/null +++ b/src/API.Web/Properties/AssemblyInfo.cs @@ -0,0 +1,2 @@ +using System.Runtime.CompilerServices; +[assembly:InternalsVisibleToAttribute("API.Web.Tests")] diff --git a/src/API.Web/Properties/launchSettings.json b/src/API.Web/Properties/launchSettings.json new file mode 100644 index 0000000..09471b9 --- /dev/null +++ b/src/API.Web/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "https://localhost:44319/", + "sslPort": 44319 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "API.Web": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "https://localhost:44319/" + } + } +} \ No newline at end of file diff --git a/src/API.Web/Startup.cs b/src/API.Web/Startup.cs new file mode 100644 index 0000000..26ead3a --- /dev/null +++ b/src/API.Web/Startup.cs @@ -0,0 +1,18 @@ +using Microsoft.AspNetCore.Builder; +using Microsoft.Extensions.DependencyInjection; + +namespace API.Web +{ + public class Startup + { + public void ConfigureServices(IServiceCollection services) + { + services.AddApplication(); + } + + public void Configure(IApplicationBuilder app) + { + app.InitializeApplication(); + } + } +} diff --git a/src/API.Web/Views/_ViewImports.cshtml b/src/API.Web/Views/_ViewImports.cshtml new file mode 100644 index 0000000..c1da1f5 --- /dev/null +++ b/src/API.Web/Views/_ViewImports.cshtml @@ -0,0 +1,4 @@ +@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers +@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI +@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bootstrap +@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bundling \ No newline at end of file diff --git a/src/API.Web/abp.resourcemapping.js b/src/API.Web/abp.resourcemapping.js new file mode 100644 index 0000000..122e8e9 --- /dev/null +++ b/src/API.Web/abp.resourcemapping.js @@ -0,0 +1,8 @@ +module.exports = { + aliases: { + + }, + mappings: { + + } +}; diff --git a/src/API.Web/appsettings.Development.json b/src/API.Web/appsettings.Development.json new file mode 100644 index 0000000..2c63c08 --- /dev/null +++ b/src/API.Web/appsettings.Development.json @@ -0,0 +1,2 @@ +{ +} diff --git a/src/API.Web/appsettings.json b/src/API.Web/appsettings.json new file mode 100644 index 0000000..1ef4e19 --- /dev/null +++ b/src/API.Web/appsettings.json @@ -0,0 +1,131 @@ +{ + "App": { + "SelfUrl": "https://localhost:44319" + }, + "ConnectionStrings": { + //"Default": "Server=114.116.225.148,13314;Database=FMP_20210610;User ID=sa;Password=Microsoft2020;", + // "Budget": "Server=114.116.225.148,13314;Database=Budget_2020_1215;User ID=sa;Password=Microsoft2020;" + "Quartz": "Server=114.116.225.148,13314;Database=FMP_Quartz;User ID=sa;Password=Microsoft2020;", + "JQ": "DATA SOURCE=121.36.30.37:6521/ORCL;USER ID=lzb ;PASSWORD=lzb;", + "Default": "Server=dev.ccwin-in.com,6206;Database=FMP_20210610;User ID=sa;Password=ChangkeTec@2021;", + "Budget": "Server=dev.ccwin-in.com,6206;Database=Budget_2020_1215;User ID=sa;Password=ChangkeTec@2021;" + //"JQ": "Server=dev.ccwin-in.com,6521;Database=orcl;User ID=lzb;Password=lzb;", + //"JQ": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=121.36.30.37)(PORT=6521))(CONNECT_DATA=(SERVICE_NAME=dacong)));User ID=system;Password=Microsoft@2021;" + + }, + "AuthServer": { + "Authority": "https://localhost:44319", + "RequireHttpsMetadata": "false" + }, + "StringEncryption": { + "DefaultPassPhrase": "SkZsaNT7c6F4ruAA" + }, + "Sheets": [ + { + "SheetCode": "TI_CBB04", + "SheetName": "CBB04", + "IsEnable": "是" + }, + { + "SheetCode": "TI_CWB16", + "SheetName": "CWB16", + "IsEnable": "是" + }, + { + "SheetCode": "TI_CWB17", + "SheetName": "CWB17", + "IsEnable": "是" + }, + { + "SheetCode": "TI_CWB18", + "SheetName": "CWB18", + "IsEnable": "是" + }, + { + "SheetCode": "TI_CWB19", + "SheetName": "CWB19", + "IsEnable": "是" + }, + { + "SheetCode": "TO_CWC14", + "SheetName": "CWC14", + "IsEnable": "是" + }, + { + "SheetCode": "TO_CWC19", + "SheetName": "CWC19", + "IsEnable": "是" + }, + { + "SheetCode": "TO_CWC21", + "SheetName": "CWC21", + "IsEnable": "是" + }, + { + "SheetCode": "TS_XSA04", + "SheetName": "XSA04", + "IsEnable": "是" + }, + { + "SheetCode": "TO_GGC01", + "SheetName": "GGC01", + "IsEnable": "是" + }, + { + "SheetCode": "TO_HRC01", + "SheetName": "HRC01", + "IsEnable": "是" + }, + { + "SheetCode": "TO_JGC01", + "SheetName": "JGC01", + "IsEnable": "是" + }, + { + "SheetCode": "ODS_JQ_LRB", + "SheetName": "久其-利润表", + "IsEnable": "是" + }, + { + "SheetCode": "ODS_JQ_QJFYB", + "SheetName": "久其-期间费用表", + "IsEnable": "是" + }, + { + "SheetCode": "ODS_JQ_SCCBB", + "SheetName": "久其-生产成本表", + "IsEnable": "是" + }, + { + "SheetCode": "ODS_JQ_XJLLB_INNER_YEAR", + "SheetName": "久其-现金流量表(内部)", + "IsEnable": "是" + }, + { + "SheetCode": "ODS_JQ_ZCFZB", + "SheetName": "久其-资产负债表", + "IsEnable": "是" + }, + { + "SheetCode": "ODS_JQ_ZGXCB", + "SheetName": "久其-职工薪酬表", + "IsEnable": "是" + }, + { + "SheetCode": "ODS_JQ_ZQMXB_YSZK", + "SheetName": "久其-债权明细表(应收账款)", + "IsEnable": "是" + }, + { + "SheetCode": "ODS_JQ_ZWMXB_YFZK", + "SheetName": "久其-债务明细表(应付账款)", + "IsEnable": "是" + }, + { + "SheetCode": "ODS_JQ_ZZFYB", + "SheetName": "久其-制造费用表", + "IsEnable": "是" + } + ] + +} diff --git a/src/API.Web/appsettings.secrets.json b/src/API.Web/appsettings.secrets.json new file mode 100644 index 0000000..7a73a41 --- /dev/null +++ b/src/API.Web/appsettings.secrets.json @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/src/API.Web/gulpfile.js b/src/API.Web/gulpfile.js new file mode 100644 index 0000000..f7ebc78 --- /dev/null +++ b/src/API.Web/gulpfile.js @@ -0,0 +1,9 @@ +"use strict"; + +var gulp = require("gulp"), + path = require('path'), + copyResources = require('./node_modules/@abp/aspnetcore.mvc.ui/gulp/copy-resources.js'); + +exports.default = function(){ + return copyResources(path.resolve('./')); +}; \ No newline at end of file diff --git a/src/API.Web/package.json b/src/API.Web/package.json new file mode 100644 index 0000000..08f00fa --- /dev/null +++ b/src/API.Web/package.json @@ -0,0 +1,8 @@ +{ + "version": "1.0.0", + "name": "my-app", + "private": true, + "dependencies": { + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.4.3" + } +} \ No newline at end of file diff --git a/src/API.Web/tempkey.jwk b/src/API.Web/tempkey.jwk new file mode 100644 index 0000000..83fe2da --- /dev/null +++ b/src/API.Web/tempkey.jwk @@ -0,0 +1 @@ +{"AdditionalData":{},"Alg":"RS256","Crv":null,"D":"wlyaRg536dGNCex7DvyoGdgJg1i4bNu7Mva6MeL6SRyoqhyVzC46AbF2vfARAQGhUydA4LTRMUETBEvYwquVQ5GnL7AAYyKO2SOh5DE3y6l0i8KJdt-lG1z3VSXS2ASOphHDqvnuPdRJA3Kc9eqc__CElkSttU_d_Ygkf6lDKrenszujYB6pqnrscCFPs5pilijpgb9jajfjJE8bvZMTYwkrO-CO3XGhI37dwhM94ly99m_Yo9RXOhWaQlO8QF_vyuRJwaGwCLEuBlpf5mTWLgQ0jo3g_TebS4GpgKKl2tSqvauWEty1jKsSlXUWQk_XyFVWAjbis0VvH9kQzLB3RQ","DP":"ba-K5xFPTzJqavFAC5HpSGGtIVU4-sJ62IcBodcwYHvKEipOO5VixNTYTA9--vQ_hpxtMbLktADcQdpdaItJKJaEIJSrQrotXPdz7yokcB1yWwvlzGBSEoiKCsy1z3kxUUjBqZbSqch1-74JLnzB4ncvFslBS-xg9JmHdxK36Hc","DQ":"MVWxZOFlUkq5NhwHLnkGB0xEDvoUr3fxY1Jhr_B5HYv7NpU8EQHPdMfLsbjOo9eoNzcy-YOwJUbKtk4iOJiJKxKFdu5c8ZmOtGR9EDE_vhg0HvtKp0Bp-VifOSLiRw9VwNwp4oNpRBwBof9Q0NPQDkeRL75NtUkm4y8qPYp9lys","E":"AQAB","K":null,"KeyId":"EC4F92628C3AECE2078C1ED15CA0B865","Kid":"EC4F92628C3AECE2078C1ED15CA0B865","Kty":"RSA","N":"4mQSxp_mxtP-JCkQEDJDW-UZG6tC_Hl7h0ElaqZ_7zcVqA5glGGh719MseVE4sK8tL4mQ7N6tzLDsoToRk58RaUYssoBt0dbIOcKFhlvElGr7rlzRzAtxHgvJYToMuIiCTz41AOp5YpJ8-xBW22iSvZAgL_qIhX9tED__ptNBnCqEHZeH0TZhFcCab9Eyk1ACmHEKmwf1tME3ODPe5t911PU3iEawTDXvs_HQ3nYTbmJrT4GYkLLKPDo4MxG6zL5tWi7JNhaCEP34ckSbH7BLb7RDgBfrvkYQ6Ox-tHsGd_hqM8SStDsmRlsYfBc06A1Lhfpj3f3DdSEvuRyWFyamQ","Oth":null,"P":"6jC6Vw5SuLb2XJ9jUAoum2awFcVJxKnzobSSwoPgNGkj4xzrI_N54EEYgKLkJ_WcufNwKtXpJ9IIC7s85hfRIKHWcSYSQoQf_E3FUvW2m-0J2pJXwczlPmGANQhjDH5XvfaqveiZh62ZAE8J53I4lu6GE1XUMNqNRetVbtEUDRs","Q":"93lmtIS8abte82zVKDEnBMRmqNPY64lGbV7-Vzy0TrZcGrxGbUFvP6W39jZwrh7_1zt4-EXx8z4sL-e2nSlR4IaBjAmPQOL8m_SBzmSspwVkhcdTdoIDSYKRdq9bmjgsXYqvB6XIieQDpQXBz3Uh9XNrdh_PefPQ0swBRJMs9ls","QI":"i8sun8NV6dRTDPI0wibeRhL5U0eOJDpYJa6NjYQ8HfZDdKZmJCMTQhQHW2YS1y4DNy_syvXWzwE_U4K4Mua4-cVMco183IuI1GxVhZu6sYBwnlJWprUrNwvp7Yt7yTFxjNbPvpAQBeR5k-YtDuIDf0HW9Hu_n30jfZH_NBiCzbk","Use":null,"X":null,"X5t":null,"X5tS256":null,"X5u":null,"Y":null,"KeySize":2048,"HasPrivateKey":true,"CryptoProviderFactory":{"CryptoProviderCache":{},"CustomCryptoProvider":null,"CacheSignatureProviders":true}} \ No newline at end of file diff --git a/src/API.Web/tempkey.rsa b/src/API.Web/tempkey.rsa new file mode 100644 index 0000000..f3b32de --- /dev/null +++ b/src/API.Web/tempkey.rsa @@ -0,0 +1 @@ +{"KeyId":"ac0d2edf3c04d13cd95cc41b9b33ab03","Parameters":{"D":"FFymEWbX3XBT5YnTngOKwtz3XKsyaQbyDvvw9jbmkdvLKUmrb1hkmylqVYwU/3G1u79rrD8AZXJDoYVLegyZymK/iNeePMLI4i5vScF7PdQXn/g6CvQ8j3J60YYyfDWuxjBH8nCEUIfQIv14BpcH6CWi1BVZUbnbWcpe2ji8D5I3FHOZpvksQztst5eE836ODdN9jgk35kgrdUQ14MEFHA6m6fAzvFI1csFxD3Kwej4rI8RYZ0WYLkndz9ID88+v9VxqI8+wN6wR6tIOR510uT1FI5wONBVBUzgeZ6cCEpg0jC9tgqcP03gMDpmE7vKp34ExxH/iOWyhQ0gAxHOVlQ==","DP":"qSQfNZvEkepgY12d+uwTbRoOp+0g1CBiMU9kqyoIB56hAUnzENSCDzunjLRrvDLFPgXiUcoccskyVRnKKOGPOqPE6VjgzBrdLgA/hBf8hPg0GnTVoPyLxR9G6GsGUKsAYVn8G7cnK5wXzK4jCjsflkfxCzFfdASJ/+sa5QPWZMM=","DQ":"u+56T1+rhMvlurid9kBS2Ypfm4vOiNAXLD9kGz2wx8Ob0yYlWo55kn11qPs6Ej9bnQIY3N+TY2tXMamfhAhntoHaKrFjOpCmlHZ0GAeQOJVuWSlFvu/NBoxfjZzcUCNua22oJjy++wSdkkLLGEqau62byaQoSSqUxUzwL36RexM=","Exponent":"AQAB","InverseQ":"E+uq9g6D5LjUk+M7gtt0srnT8duwu8P83AgFqjtGOnSCy71omSboxb4zC9bGq/WaEFauFBwqxbkXwFyXuYNfIelfmSERulU9jgf0+KH6QmFdtjrJ5UO7VArqET1WUquwiDvOyO8udCxi8RRAiM5G3dTzIs5JTalGhlKEZSAgPtQ=","Modulus":"rgHACxzqvuE72RF/NdDTLsIEy3F/n6P4lkgrER60FU8uRNwSmAMRxvxYOaE3Ot/krRYcw2+MP8ewR1VBXywXVT1zuACA3SacMHJYmZQ2UkuwsD9bmpjvqoMhR/hjsI74jTzKpclHtEu7D7WYDZaIPAEIs/8+5H/z1mXVfgACaeaQt3C0OhwXSOPPDP71VKGfoFucXYED1keZ0PKxYAlhiHOe7cnSlfJseujwD2Rhyq8mUhe6aEMTYBjuruWgpfvnSOARAqu5vwzK35KpAirHwa1DJSZyanNMFdlLkVNKWUKEqd6PwRneiHacmaaDF6oQQstuSbf9cuJeSMbKh7WVQQ==","P":"0CJDit2NHk0Z1bN5ZVIYZRUYbrAI2bEOafAKqfffcA/Os7yXsY14Ye4pSpDxfdZGcPGRL04HPkJsogFtyI7k4ujrvsC66I5cg45+BhBMM0zyLJ7LZkD2HGwX2+a/xrXhhIIOnGWWy2zzW3dkayRhi1bR9krfTA5uBw1LX9qZ3Yc=","Q":"1gZITAaB+r0+PgOfyDCeVzSnTyQuKSkgbUkIgQP9jQZa6edrbAXogdJipxmUTrW7JaxifG1z9ubK+TOqhjZHqT4gd8U8Bh7jCBizZNVe60pez1OtNGpEOW2N+ZrXBSMNcV8PFaMg/B+fcaX+i7NWpTqmztR/V0DGXmD+XosuaPc="}} \ No newline at end of file diff --git a/src/API.Web/wwwroot/global-styles.css b/src/API.Web/wwwroot/global-styles.css new file mode 100644 index 0000000..e5d20ea --- /dev/null +++ b/src/API.Web/wwwroot/global-styles.css @@ -0,0 +1 @@ +/* Your Global Styles */ diff --git a/src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/css/all.css b/src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/css/all.css new file mode 100644 index 0000000..c9816fa --- /dev/null +++ b/src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/css/all.css @@ -0,0 +1,4586 @@ +/*! + * Font Awesome Free 5.13.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +.fa, +.fas, +.far, +.fal, +.fad, +.fab { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; } + +.fa-lg { + font-size: 1.33333em; + line-height: 0.75em; + vertical-align: -.0667em; } + +.fa-xs { + font-size: .75em; } + +.fa-sm { + font-size: .875em; } + +.fa-1x { + font-size: 1em; } + +.fa-2x { + font-size: 2em; } + +.fa-3x { + font-size: 3em; } + +.fa-4x { + font-size: 4em; } + +.fa-5x { + font-size: 5em; } + +.fa-6x { + font-size: 6em; } + +.fa-7x { + font-size: 7em; } + +.fa-8x { + font-size: 8em; } + +.fa-9x { + font-size: 9em; } + +.fa-10x { + font-size: 10em; } + +.fa-fw { + text-align: center; + width: 1.25em; } + +.fa-ul { + list-style-type: none; + margin-left: 2.5em; + padding-left: 0; } + .fa-ul > li { + position: relative; } + +.fa-li { + left: -2em; + position: absolute; + text-align: center; + width: 2em; + line-height: inherit; } + +.fa-border { + border: solid 0.08em #eee; + border-radius: .1em; + padding: .2em .25em .15em; } + +.fa-pull-left { + float: left; } + +.fa-pull-right { + float: right; } + +.fa.fa-pull-left, +.fas.fa-pull-left, +.far.fa-pull-left, +.fal.fa-pull-left, +.fab.fa-pull-left { + margin-right: .3em; } + +.fa.fa-pull-right, +.fas.fa-pull-right, +.far.fa-pull-right, +.fal.fa-pull-right, +.fab.fa-pull-right { + margin-left: .3em; } + +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; } + +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); } + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +.fa-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + -webkit-transform: rotate(90deg); + transform: rotate(90deg); } + +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + -webkit-transform: rotate(180deg); + transform: rotate(180deg); } + +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + -webkit-transform: rotate(270deg); + transform: rotate(270deg); } + +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + -webkit-transform: scale(-1, 1); + transform: scale(-1, 1); } + +.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(1, -1); + transform: scale(1, -1); } + +.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(-1, -1); + transform: scale(-1, -1); } + +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical, +:root .fa-flip-both { + -webkit-filter: none; + filter: none; } + +.fa-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2.5em; } + +.fa-stack-1x, +.fa-stack-2x { + left: 0; + position: absolute; + text-align: center; + width: 100%; } + +.fa-stack-1x { + line-height: inherit; } + +.fa-stack-2x { + font-size: 2em; } + +.fa-inverse { + color: #fff; } + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen +readers do not read off random characters that represent icons */ +.fa-500px:before { + content: "\f26e"; } + +.fa-accessible-icon:before { + content: "\f368"; } + +.fa-accusoft:before { + content: "\f369"; } + +.fa-acquisitions-incorporated:before { + content: "\f6af"; } + +.fa-ad:before { + content: "\f641"; } + +.fa-address-book:before { + content: "\f2b9"; } + +.fa-address-card:before { + content: "\f2bb"; } + +.fa-adjust:before { + content: "\f042"; } + +.fa-adn:before { + content: "\f170"; } + +.fa-adobe:before { + content: "\f778"; } + +.fa-adversal:before { + content: "\f36a"; } + +.fa-affiliatetheme:before { + content: "\f36b"; } + +.fa-air-freshener:before { + content: "\f5d0"; } + +.fa-airbnb:before { + content: "\f834"; } + +.fa-algolia:before { + content: "\f36c"; } + +.fa-align-center:before { + content: "\f037"; } + +.fa-align-justify:before { + content: "\f039"; } + +.fa-align-left:before { + content: "\f036"; } + +.fa-align-right:before { + content: "\f038"; } + +.fa-alipay:before { + content: "\f642"; } + +.fa-allergies:before { + content: "\f461"; } + +.fa-amazon:before { + content: "\f270"; } + +.fa-amazon-pay:before { + content: "\f42c"; } + +.fa-ambulance:before { + content: "\f0f9"; } + +.fa-american-sign-language-interpreting:before { + content: "\f2a3"; } + +.fa-amilia:before { + content: "\f36d"; } + +.fa-anchor:before { + content: "\f13d"; } + +.fa-android:before { + content: "\f17b"; } + +.fa-angellist:before { + content: "\f209"; } + +.fa-angle-double-down:before { + content: "\f103"; } + +.fa-angle-double-left:before { + content: "\f100"; } + +.fa-angle-double-right:before { + content: "\f101"; } + +.fa-angle-double-up:before { + content: "\f102"; } + +.fa-angle-down:before { + content: "\f107"; } + +.fa-angle-left:before { + content: "\f104"; } + +.fa-angle-right:before { + content: "\f105"; } + +.fa-angle-up:before { + content: "\f106"; } + +.fa-angry:before { + content: "\f556"; } + +.fa-angrycreative:before { + content: "\f36e"; } + +.fa-angular:before { + content: "\f420"; } + +.fa-ankh:before { + content: "\f644"; } + +.fa-app-store:before { + content: "\f36f"; } + +.fa-app-store-ios:before { + content: "\f370"; } + +.fa-apper:before { + content: "\f371"; } + +.fa-apple:before { + content: "\f179"; } + +.fa-apple-alt:before { + content: "\f5d1"; } + +.fa-apple-pay:before { + content: "\f415"; } + +.fa-archive:before { + content: "\f187"; } + +.fa-archway:before { + content: "\f557"; } + +.fa-arrow-alt-circle-down:before { + content: "\f358"; } + +.fa-arrow-alt-circle-left:before { + content: "\f359"; } + +.fa-arrow-alt-circle-right:before { + content: "\f35a"; } + +.fa-arrow-alt-circle-up:before { + content: "\f35b"; } + +.fa-arrow-circle-down:before { + content: "\f0ab"; } + +.fa-arrow-circle-left:before { + content: "\f0a8"; } + +.fa-arrow-circle-right:before { + content: "\f0a9"; } + +.fa-arrow-circle-up:before { + content: "\f0aa"; } + +.fa-arrow-down:before { + content: "\f063"; } + +.fa-arrow-left:before { + content: "\f060"; } + +.fa-arrow-right:before { + content: "\f061"; } + +.fa-arrow-up:before { + content: "\f062"; } + +.fa-arrows-alt:before { + content: "\f0b2"; } + +.fa-arrows-alt-h:before { + content: "\f337"; } + +.fa-arrows-alt-v:before { + content: "\f338"; } + +.fa-artstation:before { + content: "\f77a"; } + +.fa-assistive-listening-systems:before { + content: "\f2a2"; } + +.fa-asterisk:before { + content: "\f069"; } + +.fa-asymmetrik:before { + content: "\f372"; } + +.fa-at:before { + content: "\f1fa"; } + +.fa-atlas:before { + content: "\f558"; } + +.fa-atlassian:before { + content: "\f77b"; } + +.fa-atom:before { + content: "\f5d2"; } + +.fa-audible:before { + content: "\f373"; } + +.fa-audio-description:before { + content: "\f29e"; } + +.fa-autoprefixer:before { + content: "\f41c"; } + +.fa-avianex:before { + content: "\f374"; } + +.fa-aviato:before { + content: "\f421"; } + +.fa-award:before { + content: "\f559"; } + +.fa-aws:before { + content: "\f375"; } + +.fa-baby:before { + content: "\f77c"; } + +.fa-baby-carriage:before { + content: "\f77d"; } + +.fa-backspace:before { + content: "\f55a"; } + +.fa-backward:before { + content: "\f04a"; } + +.fa-bacon:before { + content: "\f7e5"; } + +.fa-bacteria:before { + content: "\f959"; } + +.fa-bacterium:before { + content: "\f95a"; } + +.fa-bahai:before { + content: "\f666"; } + +.fa-balance-scale:before { + content: "\f24e"; } + +.fa-balance-scale-left:before { + content: "\f515"; } + +.fa-balance-scale-right:before { + content: "\f516"; } + +.fa-ban:before { + content: "\f05e"; } + +.fa-band-aid:before { + content: "\f462"; } + +.fa-bandcamp:before { + content: "\f2d5"; } + +.fa-barcode:before { + content: "\f02a"; } + +.fa-bars:before { + content: "\f0c9"; } + +.fa-baseball-ball:before { + content: "\f433"; } + +.fa-basketball-ball:before { + content: "\f434"; } + +.fa-bath:before { + content: "\f2cd"; } + +.fa-battery-empty:before { + content: "\f244"; } + +.fa-battery-full:before { + content: "\f240"; } + +.fa-battery-half:before { + content: "\f242"; } + +.fa-battery-quarter:before { + content: "\f243"; } + +.fa-battery-three-quarters:before { + content: "\f241"; } + +.fa-battle-net:before { + content: "\f835"; } + +.fa-bed:before { + content: "\f236"; } + +.fa-beer:before { + content: "\f0fc"; } + +.fa-behance:before { + content: "\f1b4"; } + +.fa-behance-square:before { + content: "\f1b5"; } + +.fa-bell:before { + content: "\f0f3"; } + +.fa-bell-slash:before { + content: "\f1f6"; } + +.fa-bezier-curve:before { + content: "\f55b"; } + +.fa-bible:before { + content: "\f647"; } + +.fa-bicycle:before { + content: "\f206"; } + +.fa-biking:before { + content: "\f84a"; } + +.fa-bimobject:before { + content: "\f378"; } + +.fa-binoculars:before { + content: "\f1e5"; } + +.fa-biohazard:before { + content: "\f780"; } + +.fa-birthday-cake:before { + content: "\f1fd"; } + +.fa-bitbucket:before { + content: "\f171"; } + +.fa-bitcoin:before { + content: "\f379"; } + +.fa-bity:before { + content: "\f37a"; } + +.fa-black-tie:before { + content: "\f27e"; } + +.fa-blackberry:before { + content: "\f37b"; } + +.fa-blender:before { + content: "\f517"; } + +.fa-blender-phone:before { + content: "\f6b6"; } + +.fa-blind:before { + content: "\f29d"; } + +.fa-blog:before { + content: "\f781"; } + +.fa-blogger:before { + content: "\f37c"; } + +.fa-blogger-b:before { + content: "\f37d"; } + +.fa-bluetooth:before { + content: "\f293"; } + +.fa-bluetooth-b:before { + content: "\f294"; } + +.fa-bold:before { + content: "\f032"; } + +.fa-bolt:before { + content: "\f0e7"; } + +.fa-bomb:before { + content: "\f1e2"; } + +.fa-bone:before { + content: "\f5d7"; } + +.fa-bong:before { + content: "\f55c"; } + +.fa-book:before { + content: "\f02d"; } + +.fa-book-dead:before { + content: "\f6b7"; } + +.fa-book-medical:before { + content: "\f7e6"; } + +.fa-book-open:before { + content: "\f518"; } + +.fa-book-reader:before { + content: "\f5da"; } + +.fa-bookmark:before { + content: "\f02e"; } + +.fa-bootstrap:before { + content: "\f836"; } + +.fa-border-all:before { + content: "\f84c"; } + +.fa-border-none:before { + content: "\f850"; } + +.fa-border-style:before { + content: "\f853"; } + +.fa-bowling-ball:before { + content: "\f436"; } + +.fa-box:before { + content: "\f466"; } + +.fa-box-open:before { + content: "\f49e"; } + +.fa-box-tissue:before { + content: "\f95b"; } + +.fa-boxes:before { + content: "\f468"; } + +.fa-braille:before { + content: "\f2a1"; } + +.fa-brain:before { + content: "\f5dc"; } + +.fa-bread-slice:before { + content: "\f7ec"; } + +.fa-briefcase:before { + content: "\f0b1"; } + +.fa-briefcase-medical:before { + content: "\f469"; } + +.fa-broadcast-tower:before { + content: "\f519"; } + +.fa-broom:before { + content: "\f51a"; } + +.fa-brush:before { + content: "\f55d"; } + +.fa-btc:before { + content: "\f15a"; } + +.fa-buffer:before { + content: "\f837"; } + +.fa-bug:before { + content: "\f188"; } + +.fa-building:before { + content: "\f1ad"; } + +.fa-bullhorn:before { + content: "\f0a1"; } + +.fa-bullseye:before { + content: "\f140"; } + +.fa-burn:before { + content: "\f46a"; } + +.fa-buromobelexperte:before { + content: "\f37f"; } + +.fa-bus:before { + content: "\f207"; } + +.fa-bus-alt:before { + content: "\f55e"; } + +.fa-business-time:before { + content: "\f64a"; } + +.fa-buy-n-large:before { + content: "\f8a6"; } + +.fa-buysellads:before { + content: "\f20d"; } + +.fa-calculator:before { + content: "\f1ec"; } + +.fa-calendar:before { + content: "\f133"; } + +.fa-calendar-alt:before { + content: "\f073"; } + +.fa-calendar-check:before { + content: "\f274"; } + +.fa-calendar-day:before { + content: "\f783"; } + +.fa-calendar-minus:before { + content: "\f272"; } + +.fa-calendar-plus:before { + content: "\f271"; } + +.fa-calendar-times:before { + content: "\f273"; } + +.fa-calendar-week:before { + content: "\f784"; } + +.fa-camera:before { + content: "\f030"; } + +.fa-camera-retro:before { + content: "\f083"; } + +.fa-campground:before { + content: "\f6bb"; } + +.fa-canadian-maple-leaf:before { + content: "\f785"; } + +.fa-candy-cane:before { + content: "\f786"; } + +.fa-cannabis:before { + content: "\f55f"; } + +.fa-capsules:before { + content: "\f46b"; } + +.fa-car:before { + content: "\f1b9"; } + +.fa-car-alt:before { + content: "\f5de"; } + +.fa-car-battery:before { + content: "\f5df"; } + +.fa-car-crash:before { + content: "\f5e1"; } + +.fa-car-side:before { + content: "\f5e4"; } + +.fa-caravan:before { + content: "\f8ff"; } + +.fa-caret-down:before { + content: "\f0d7"; } + +.fa-caret-left:before { + content: "\f0d9"; } + +.fa-caret-right:before { + content: "\f0da"; } + +.fa-caret-square-down:before { + content: "\f150"; } + +.fa-caret-square-left:before { + content: "\f191"; } + +.fa-caret-square-right:before { + content: "\f152"; } + +.fa-caret-square-up:before { + content: "\f151"; } + +.fa-caret-up:before { + content: "\f0d8"; } + +.fa-carrot:before { + content: "\f787"; } + +.fa-cart-arrow-down:before { + content: "\f218"; } + +.fa-cart-plus:before { + content: "\f217"; } + +.fa-cash-register:before { + content: "\f788"; } + +.fa-cat:before { + content: "\f6be"; } + +.fa-cc-amazon-pay:before { + content: "\f42d"; } + +.fa-cc-amex:before { + content: "\f1f3"; } + +.fa-cc-apple-pay:before { + content: "\f416"; } + +.fa-cc-diners-club:before { + content: "\f24c"; } + +.fa-cc-discover:before { + content: "\f1f2"; } + +.fa-cc-jcb:before { + content: "\f24b"; } + +.fa-cc-mastercard:before { + content: "\f1f1"; } + +.fa-cc-paypal:before { + content: "\f1f4"; } + +.fa-cc-stripe:before { + content: "\f1f5"; } + +.fa-cc-visa:before { + content: "\f1f0"; } + +.fa-centercode:before { + content: "\f380"; } + +.fa-centos:before { + content: "\f789"; } + +.fa-certificate:before { + content: "\f0a3"; } + +.fa-chair:before { + content: "\f6c0"; } + +.fa-chalkboard:before { + content: "\f51b"; } + +.fa-chalkboard-teacher:before { + content: "\f51c"; } + +.fa-charging-station:before { + content: "\f5e7"; } + +.fa-chart-area:before { + content: "\f1fe"; } + +.fa-chart-bar:before { + content: "\f080"; } + +.fa-chart-line:before { + content: "\f201"; } + +.fa-chart-pie:before { + content: "\f200"; } + +.fa-check:before { + content: "\f00c"; } + +.fa-check-circle:before { + content: "\f058"; } + +.fa-check-double:before { + content: "\f560"; } + +.fa-check-square:before { + content: "\f14a"; } + +.fa-cheese:before { + content: "\f7ef"; } + +.fa-chess:before { + content: "\f439"; } + +.fa-chess-bishop:before { + content: "\f43a"; } + +.fa-chess-board:before { + content: "\f43c"; } + +.fa-chess-king:before { + content: "\f43f"; } + +.fa-chess-knight:before { + content: "\f441"; } + +.fa-chess-pawn:before { + content: "\f443"; } + +.fa-chess-queen:before { + content: "\f445"; } + +.fa-chess-rook:before { + content: "\f447"; } + +.fa-chevron-circle-down:before { + content: "\f13a"; } + +.fa-chevron-circle-left:before { + content: "\f137"; } + +.fa-chevron-circle-right:before { + content: "\f138"; } + +.fa-chevron-circle-up:before { + content: "\f139"; } + +.fa-chevron-down:before { + content: "\f078"; } + +.fa-chevron-left:before { + content: "\f053"; } + +.fa-chevron-right:before { + content: "\f054"; } + +.fa-chevron-up:before { + content: "\f077"; } + +.fa-child:before { + content: "\f1ae"; } + +.fa-chrome:before { + content: "\f268"; } + +.fa-chromecast:before { + content: "\f838"; } + +.fa-church:before { + content: "\f51d"; } + +.fa-circle:before { + content: "\f111"; } + +.fa-circle-notch:before { + content: "\f1ce"; } + +.fa-city:before { + content: "\f64f"; } + +.fa-clinic-medical:before { + content: "\f7f2"; } + +.fa-clipboard:before { + content: "\f328"; } + +.fa-clipboard-check:before { + content: "\f46c"; } + +.fa-clipboard-list:before { + content: "\f46d"; } + +.fa-clock:before { + content: "\f017"; } + +.fa-clone:before { + content: "\f24d"; } + +.fa-closed-captioning:before { + content: "\f20a"; } + +.fa-cloud:before { + content: "\f0c2"; } + +.fa-cloud-download-alt:before { + content: "\f381"; } + +.fa-cloud-meatball:before { + content: "\f73b"; } + +.fa-cloud-moon:before { + content: "\f6c3"; } + +.fa-cloud-moon-rain:before { + content: "\f73c"; } + +.fa-cloud-rain:before { + content: "\f73d"; } + +.fa-cloud-showers-heavy:before { + content: "\f740"; } + +.fa-cloud-sun:before { + content: "\f6c4"; } + +.fa-cloud-sun-rain:before { + content: "\f743"; } + +.fa-cloud-upload-alt:before { + content: "\f382"; } + +.fa-cloudscale:before { + content: "\f383"; } + +.fa-cloudsmith:before { + content: "\f384"; } + +.fa-cloudversify:before { + content: "\f385"; } + +.fa-cocktail:before { + content: "\f561"; } + +.fa-code:before { + content: "\f121"; } + +.fa-code-branch:before { + content: "\f126"; } + +.fa-codepen:before { + content: "\f1cb"; } + +.fa-codiepie:before { + content: "\f284"; } + +.fa-coffee:before { + content: "\f0f4"; } + +.fa-cog:before { + content: "\f013"; } + +.fa-cogs:before { + content: "\f085"; } + +.fa-coins:before { + content: "\f51e"; } + +.fa-columns:before { + content: "\f0db"; } + +.fa-comment:before { + content: "\f075"; } + +.fa-comment-alt:before { + content: "\f27a"; } + +.fa-comment-dollar:before { + content: "\f651"; } + +.fa-comment-dots:before { + content: "\f4ad"; } + +.fa-comment-medical:before { + content: "\f7f5"; } + +.fa-comment-slash:before { + content: "\f4b3"; } + +.fa-comments:before { + content: "\f086"; } + +.fa-comments-dollar:before { + content: "\f653"; } + +.fa-compact-disc:before { + content: "\f51f"; } + +.fa-compass:before { + content: "\f14e"; } + +.fa-compress:before { + content: "\f066"; } + +.fa-compress-alt:before { + content: "\f422"; } + +.fa-compress-arrows-alt:before { + content: "\f78c"; } + +.fa-concierge-bell:before { + content: "\f562"; } + +.fa-confluence:before { + content: "\f78d"; } + +.fa-connectdevelop:before { + content: "\f20e"; } + +.fa-contao:before { + content: "\f26d"; } + +.fa-cookie:before { + content: "\f563"; } + +.fa-cookie-bite:before { + content: "\f564"; } + +.fa-copy:before { + content: "\f0c5"; } + +.fa-copyright:before { + content: "\f1f9"; } + +.fa-cotton-bureau:before { + content: "\f89e"; } + +.fa-couch:before { + content: "\f4b8"; } + +.fa-cpanel:before { + content: "\f388"; } + +.fa-creative-commons:before { + content: "\f25e"; } + +.fa-creative-commons-by:before { + content: "\f4e7"; } + +.fa-creative-commons-nc:before { + content: "\f4e8"; } + +.fa-creative-commons-nc-eu:before { + content: "\f4e9"; } + +.fa-creative-commons-nc-jp:before { + content: "\f4ea"; } + +.fa-creative-commons-nd:before { + content: "\f4eb"; } + +.fa-creative-commons-pd:before { + content: "\f4ec"; } + +.fa-creative-commons-pd-alt:before { + content: "\f4ed"; } + +.fa-creative-commons-remix:before { + content: "\f4ee"; } + +.fa-creative-commons-sa:before { + content: "\f4ef"; } + +.fa-creative-commons-sampling:before { + content: "\f4f0"; } + +.fa-creative-commons-sampling-plus:before { + content: "\f4f1"; } + +.fa-creative-commons-share:before { + content: "\f4f2"; } + +.fa-creative-commons-zero:before { + content: "\f4f3"; } + +.fa-credit-card:before { + content: "\f09d"; } + +.fa-critical-role:before { + content: "\f6c9"; } + +.fa-crop:before { + content: "\f125"; } + +.fa-crop-alt:before { + content: "\f565"; } + +.fa-cross:before { + content: "\f654"; } + +.fa-crosshairs:before { + content: "\f05b"; } + +.fa-crow:before { + content: "\f520"; } + +.fa-crown:before { + content: "\f521"; } + +.fa-crutch:before { + content: "\f7f7"; } + +.fa-css3:before { + content: "\f13c"; } + +.fa-css3-alt:before { + content: "\f38b"; } + +.fa-cube:before { + content: "\f1b2"; } + +.fa-cubes:before { + content: "\f1b3"; } + +.fa-cut:before { + content: "\f0c4"; } + +.fa-cuttlefish:before { + content: "\f38c"; } + +.fa-d-and-d:before { + content: "\f38d"; } + +.fa-d-and-d-beyond:before { + content: "\f6ca"; } + +.fa-dailymotion:before { + content: "\f952"; } + +.fa-dashcube:before { + content: "\f210"; } + +.fa-database:before { + content: "\f1c0"; } + +.fa-deaf:before { + content: "\f2a4"; } + +.fa-deezer:before { + content: "\f977"; } + +.fa-delicious:before { + content: "\f1a5"; } + +.fa-democrat:before { + content: "\f747"; } + +.fa-deploydog:before { + content: "\f38e"; } + +.fa-deskpro:before { + content: "\f38f"; } + +.fa-desktop:before { + content: "\f108"; } + +.fa-dev:before { + content: "\f6cc"; } + +.fa-deviantart:before { + content: "\f1bd"; } + +.fa-dharmachakra:before { + content: "\f655"; } + +.fa-dhl:before { + content: "\f790"; } + +.fa-diagnoses:before { + content: "\f470"; } + +.fa-diaspora:before { + content: "\f791"; } + +.fa-dice:before { + content: "\f522"; } + +.fa-dice-d20:before { + content: "\f6cf"; } + +.fa-dice-d6:before { + content: "\f6d1"; } + +.fa-dice-five:before { + content: "\f523"; } + +.fa-dice-four:before { + content: "\f524"; } + +.fa-dice-one:before { + content: "\f525"; } + +.fa-dice-six:before { + content: "\f526"; } + +.fa-dice-three:before { + content: "\f527"; } + +.fa-dice-two:before { + content: "\f528"; } + +.fa-digg:before { + content: "\f1a6"; } + +.fa-digital-ocean:before { + content: "\f391"; } + +.fa-digital-tachograph:before { + content: "\f566"; } + +.fa-directions:before { + content: "\f5eb"; } + +.fa-discord:before { + content: "\f392"; } + +.fa-discourse:before { + content: "\f393"; } + +.fa-disease:before { + content: "\f7fa"; } + +.fa-divide:before { + content: "\f529"; } + +.fa-dizzy:before { + content: "\f567"; } + +.fa-dna:before { + content: "\f471"; } + +.fa-dochub:before { + content: "\f394"; } + +.fa-docker:before { + content: "\f395"; } + +.fa-dog:before { + content: "\f6d3"; } + +.fa-dollar-sign:before { + content: "\f155"; } + +.fa-dolly:before { + content: "\f472"; } + +.fa-dolly-flatbed:before { + content: "\f474"; } + +.fa-donate:before { + content: "\f4b9"; } + +.fa-door-closed:before { + content: "\f52a"; } + +.fa-door-open:before { + content: "\f52b"; } + +.fa-dot-circle:before { + content: "\f192"; } + +.fa-dove:before { + content: "\f4ba"; } + +.fa-download:before { + content: "\f019"; } + +.fa-draft2digital:before { + content: "\f396"; } + +.fa-drafting-compass:before { + content: "\f568"; } + +.fa-dragon:before { + content: "\f6d5"; } + +.fa-draw-polygon:before { + content: "\f5ee"; } + +.fa-dribbble:before { + content: "\f17d"; } + +.fa-dribbble-square:before { + content: "\f397"; } + +.fa-dropbox:before { + content: "\f16b"; } + +.fa-drum:before { + content: "\f569"; } + +.fa-drum-steelpan:before { + content: "\f56a"; } + +.fa-drumstick-bite:before { + content: "\f6d7"; } + +.fa-drupal:before { + content: "\f1a9"; } + +.fa-dumbbell:before { + content: "\f44b"; } + +.fa-dumpster:before { + content: "\f793"; } + +.fa-dumpster-fire:before { + content: "\f794"; } + +.fa-dungeon:before { + content: "\f6d9"; } + +.fa-dyalog:before { + content: "\f399"; } + +.fa-earlybirds:before { + content: "\f39a"; } + +.fa-ebay:before { + content: "\f4f4"; } + +.fa-edge:before { + content: "\f282"; } + +.fa-edge-legacy:before { + content: "\f978"; } + +.fa-edit:before { + content: "\f044"; } + +.fa-egg:before { + content: "\f7fb"; } + +.fa-eject:before { + content: "\f052"; } + +.fa-elementor:before { + content: "\f430"; } + +.fa-ellipsis-h:before { + content: "\f141"; } + +.fa-ellipsis-v:before { + content: "\f142"; } + +.fa-ello:before { + content: "\f5f1"; } + +.fa-ember:before { + content: "\f423"; } + +.fa-empire:before { + content: "\f1d1"; } + +.fa-envelope:before { + content: "\f0e0"; } + +.fa-envelope-open:before { + content: "\f2b6"; } + +.fa-envelope-open-text:before { + content: "\f658"; } + +.fa-envelope-square:before { + content: "\f199"; } + +.fa-envira:before { + content: "\f299"; } + +.fa-equals:before { + content: "\f52c"; } + +.fa-eraser:before { + content: "\f12d"; } + +.fa-erlang:before { + content: "\f39d"; } + +.fa-ethereum:before { + content: "\f42e"; } + +.fa-ethernet:before { + content: "\f796"; } + +.fa-etsy:before { + content: "\f2d7"; } + +.fa-euro-sign:before { + content: "\f153"; } + +.fa-evernote:before { + content: "\f839"; } + +.fa-exchange-alt:before { + content: "\f362"; } + +.fa-exclamation:before { + content: "\f12a"; } + +.fa-exclamation-circle:before { + content: "\f06a"; } + +.fa-exclamation-triangle:before { + content: "\f071"; } + +.fa-expand:before { + content: "\f065"; } + +.fa-expand-alt:before { + content: "\f424"; } + +.fa-expand-arrows-alt:before { + content: "\f31e"; } + +.fa-expeditedssl:before { + content: "\f23e"; } + +.fa-external-link-alt:before { + content: "\f35d"; } + +.fa-external-link-square-alt:before { + content: "\f360"; } + +.fa-eye:before { + content: "\f06e"; } + +.fa-eye-dropper:before { + content: "\f1fb"; } + +.fa-eye-slash:before { + content: "\f070"; } + +.fa-facebook:before { + content: "\f09a"; } + +.fa-facebook-f:before { + content: "\f39e"; } + +.fa-facebook-messenger:before { + content: "\f39f"; } + +.fa-facebook-square:before { + content: "\f082"; } + +.fa-fan:before { + content: "\f863"; } + +.fa-fantasy-flight-games:before { + content: "\f6dc"; } + +.fa-fast-backward:before { + content: "\f049"; } + +.fa-fast-forward:before { + content: "\f050"; } + +.fa-faucet:before { + content: "\f905"; } + +.fa-fax:before { + content: "\f1ac"; } + +.fa-feather:before { + content: "\f52d"; } + +.fa-feather-alt:before { + content: "\f56b"; } + +.fa-fedex:before { + content: "\f797"; } + +.fa-fedora:before { + content: "\f798"; } + +.fa-female:before { + content: "\f182"; } + +.fa-fighter-jet:before { + content: "\f0fb"; } + +.fa-figma:before { + content: "\f799"; } + +.fa-file:before { + content: "\f15b"; } + +.fa-file-alt:before { + content: "\f15c"; } + +.fa-file-archive:before { + content: "\f1c6"; } + +.fa-file-audio:before { + content: "\f1c7"; } + +.fa-file-code:before { + content: "\f1c9"; } + +.fa-file-contract:before { + content: "\f56c"; } + +.fa-file-csv:before { + content: "\f6dd"; } + +.fa-file-download:before { + content: "\f56d"; } + +.fa-file-excel:before { + content: "\f1c3"; } + +.fa-file-export:before { + content: "\f56e"; } + +.fa-file-image:before { + content: "\f1c5"; } + +.fa-file-import:before { + content: "\f56f"; } + +.fa-file-invoice:before { + content: "\f570"; } + +.fa-file-invoice-dollar:before { + content: "\f571"; } + +.fa-file-medical:before { + content: "\f477"; } + +.fa-file-medical-alt:before { + content: "\f478"; } + +.fa-file-pdf:before { + content: "\f1c1"; } + +.fa-file-powerpoint:before { + content: "\f1c4"; } + +.fa-file-prescription:before { + content: "\f572"; } + +.fa-file-signature:before { + content: "\f573"; } + +.fa-file-upload:before { + content: "\f574"; } + +.fa-file-video:before { + content: "\f1c8"; } + +.fa-file-word:before { + content: "\f1c2"; } + +.fa-fill:before { + content: "\f575"; } + +.fa-fill-drip:before { + content: "\f576"; } + +.fa-film:before { + content: "\f008"; } + +.fa-filter:before { + content: "\f0b0"; } + +.fa-fingerprint:before { + content: "\f577"; } + +.fa-fire:before { + content: "\f06d"; } + +.fa-fire-alt:before { + content: "\f7e4"; } + +.fa-fire-extinguisher:before { + content: "\f134"; } + +.fa-firefox:before { + content: "\f269"; } + +.fa-firefox-browser:before { + content: "\f907"; } + +.fa-first-aid:before { + content: "\f479"; } + +.fa-first-order:before { + content: "\f2b0"; } + +.fa-first-order-alt:before { + content: "\f50a"; } + +.fa-firstdraft:before { + content: "\f3a1"; } + +.fa-fish:before { + content: "\f578"; } + +.fa-fist-raised:before { + content: "\f6de"; } + +.fa-flag:before { + content: "\f024"; } + +.fa-flag-checkered:before { + content: "\f11e"; } + +.fa-flag-usa:before { + content: "\f74d"; } + +.fa-flask:before { + content: "\f0c3"; } + +.fa-flickr:before { + content: "\f16e"; } + +.fa-flipboard:before { + content: "\f44d"; } + +.fa-flushed:before { + content: "\f579"; } + +.fa-fly:before { + content: "\f417"; } + +.fa-folder:before { + content: "\f07b"; } + +.fa-folder-minus:before { + content: "\f65d"; } + +.fa-folder-open:before { + content: "\f07c"; } + +.fa-folder-plus:before { + content: "\f65e"; } + +.fa-font:before { + content: "\f031"; } + +.fa-font-awesome:before { + content: "\f2b4"; } + +.fa-font-awesome-alt:before { + content: "\f35c"; } + +.fa-font-awesome-flag:before { + content: "\f425"; } + +.fa-font-awesome-logo-full:before { + content: "\f4e6"; } + +.fa-fonticons:before { + content: "\f280"; } + +.fa-fonticons-fi:before { + content: "\f3a2"; } + +.fa-football-ball:before { + content: "\f44e"; } + +.fa-fort-awesome:before { + content: "\f286"; } + +.fa-fort-awesome-alt:before { + content: "\f3a3"; } + +.fa-forumbee:before { + content: "\f211"; } + +.fa-forward:before { + content: "\f04e"; } + +.fa-foursquare:before { + content: "\f180"; } + +.fa-free-code-camp:before { + content: "\f2c5"; } + +.fa-freebsd:before { + content: "\f3a4"; } + +.fa-frog:before { + content: "\f52e"; } + +.fa-frown:before { + content: "\f119"; } + +.fa-frown-open:before { + content: "\f57a"; } + +.fa-fulcrum:before { + content: "\f50b"; } + +.fa-funnel-dollar:before { + content: "\f662"; } + +.fa-futbol:before { + content: "\f1e3"; } + +.fa-galactic-republic:before { + content: "\f50c"; } + +.fa-galactic-senate:before { + content: "\f50d"; } + +.fa-gamepad:before { + content: "\f11b"; } + +.fa-gas-pump:before { + content: "\f52f"; } + +.fa-gavel:before { + content: "\f0e3"; } + +.fa-gem:before { + content: "\f3a5"; } + +.fa-genderless:before { + content: "\f22d"; } + +.fa-get-pocket:before { + content: "\f265"; } + +.fa-gg:before { + content: "\f260"; } + +.fa-gg-circle:before { + content: "\f261"; } + +.fa-ghost:before { + content: "\f6e2"; } + +.fa-gift:before { + content: "\f06b"; } + +.fa-gifts:before { + content: "\f79c"; } + +.fa-git:before { + content: "\f1d3"; } + +.fa-git-alt:before { + content: "\f841"; } + +.fa-git-square:before { + content: "\f1d2"; } + +.fa-github:before { + content: "\f09b"; } + +.fa-github-alt:before { + content: "\f113"; } + +.fa-github-square:before { + content: "\f092"; } + +.fa-gitkraken:before { + content: "\f3a6"; } + +.fa-gitlab:before { + content: "\f296"; } + +.fa-gitter:before { + content: "\f426"; } + +.fa-glass-cheers:before { + content: "\f79f"; } + +.fa-glass-martini:before { + content: "\f000"; } + +.fa-glass-martini-alt:before { + content: "\f57b"; } + +.fa-glass-whiskey:before { + content: "\f7a0"; } + +.fa-glasses:before { + content: "\f530"; } + +.fa-glide:before { + content: "\f2a5"; } + +.fa-glide-g:before { + content: "\f2a6"; } + +.fa-globe:before { + content: "\f0ac"; } + +.fa-globe-africa:before { + content: "\f57c"; } + +.fa-globe-americas:before { + content: "\f57d"; } + +.fa-globe-asia:before { + content: "\f57e"; } + +.fa-globe-europe:before { + content: "\f7a2"; } + +.fa-gofore:before { + content: "\f3a7"; } + +.fa-golf-ball:before { + content: "\f450"; } + +.fa-goodreads:before { + content: "\f3a8"; } + +.fa-goodreads-g:before { + content: "\f3a9"; } + +.fa-google:before { + content: "\f1a0"; } + +.fa-google-drive:before { + content: "\f3aa"; } + +.fa-google-pay:before { + content: "\f979"; } + +.fa-google-play:before { + content: "\f3ab"; } + +.fa-google-plus:before { + content: "\f2b3"; } + +.fa-google-plus-g:before { + content: "\f0d5"; } + +.fa-google-plus-square:before { + content: "\f0d4"; } + +.fa-google-wallet:before { + content: "\f1ee"; } + +.fa-gopuram:before { + content: "\f664"; } + +.fa-graduation-cap:before { + content: "\f19d"; } + +.fa-gratipay:before { + content: "\f184"; } + +.fa-grav:before { + content: "\f2d6"; } + +.fa-greater-than:before { + content: "\f531"; } + +.fa-greater-than-equal:before { + content: "\f532"; } + +.fa-grimace:before { + content: "\f57f"; } + +.fa-grin:before { + content: "\f580"; } + +.fa-grin-alt:before { + content: "\f581"; } + +.fa-grin-beam:before { + content: "\f582"; } + +.fa-grin-beam-sweat:before { + content: "\f583"; } + +.fa-grin-hearts:before { + content: "\f584"; } + +.fa-grin-squint:before { + content: "\f585"; } + +.fa-grin-squint-tears:before { + content: "\f586"; } + +.fa-grin-stars:before { + content: "\f587"; } + +.fa-grin-tears:before { + content: "\f588"; } + +.fa-grin-tongue:before { + content: "\f589"; } + +.fa-grin-tongue-squint:before { + content: "\f58a"; } + +.fa-grin-tongue-wink:before { + content: "\f58b"; } + +.fa-grin-wink:before { + content: "\f58c"; } + +.fa-grip-horizontal:before { + content: "\f58d"; } + +.fa-grip-lines:before { + content: "\f7a4"; } + +.fa-grip-lines-vertical:before { + content: "\f7a5"; } + +.fa-grip-vertical:before { + content: "\f58e"; } + +.fa-gripfire:before { + content: "\f3ac"; } + +.fa-grunt:before { + content: "\f3ad"; } + +.fa-guitar:before { + content: "\f7a6"; } + +.fa-gulp:before { + content: "\f3ae"; } + +.fa-h-square:before { + content: "\f0fd"; } + +.fa-hacker-news:before { + content: "\f1d4"; } + +.fa-hacker-news-square:before { + content: "\f3af"; } + +.fa-hackerrank:before { + content: "\f5f7"; } + +.fa-hamburger:before { + content: "\f805"; } + +.fa-hammer:before { + content: "\f6e3"; } + +.fa-hamsa:before { + content: "\f665"; } + +.fa-hand-holding:before { + content: "\f4bd"; } + +.fa-hand-holding-heart:before { + content: "\f4be"; } + +.fa-hand-holding-medical:before { + content: "\f95c"; } + +.fa-hand-holding-usd:before { + content: "\f4c0"; } + +.fa-hand-holding-water:before { + content: "\f4c1"; } + +.fa-hand-lizard:before { + content: "\f258"; } + +.fa-hand-middle-finger:before { + content: "\f806"; } + +.fa-hand-paper:before { + content: "\f256"; } + +.fa-hand-peace:before { + content: "\f25b"; } + +.fa-hand-point-down:before { + content: "\f0a7"; } + +.fa-hand-point-left:before { + content: "\f0a5"; } + +.fa-hand-point-right:before { + content: "\f0a4"; } + +.fa-hand-point-up:before { + content: "\f0a6"; } + +.fa-hand-pointer:before { + content: "\f25a"; } + +.fa-hand-rock:before { + content: "\f255"; } + +.fa-hand-scissors:before { + content: "\f257"; } + +.fa-hand-sparkles:before { + content: "\f95d"; } + +.fa-hand-spock:before { + content: "\f259"; } + +.fa-hands:before { + content: "\f4c2"; } + +.fa-hands-helping:before { + content: "\f4c4"; } + +.fa-hands-wash:before { + content: "\f95e"; } + +.fa-handshake:before { + content: "\f2b5"; } + +.fa-handshake-alt-slash:before { + content: "\f95f"; } + +.fa-handshake-slash:before { + content: "\f960"; } + +.fa-hanukiah:before { + content: "\f6e6"; } + +.fa-hard-hat:before { + content: "\f807"; } + +.fa-hashtag:before { + content: "\f292"; } + +.fa-hat-cowboy:before { + content: "\f8c0"; } + +.fa-hat-cowboy-side:before { + content: "\f8c1"; } + +.fa-hat-wizard:before { + content: "\f6e8"; } + +.fa-hdd:before { + content: "\f0a0"; } + +.fa-head-side-cough:before { + content: "\f961"; } + +.fa-head-side-cough-slash:before { + content: "\f962"; } + +.fa-head-side-mask:before { + content: "\f963"; } + +.fa-head-side-virus:before { + content: "\f964"; } + +.fa-heading:before { + content: "\f1dc"; } + +.fa-headphones:before { + content: "\f025"; } + +.fa-headphones-alt:before { + content: "\f58f"; } + +.fa-headset:before { + content: "\f590"; } + +.fa-heart:before { + content: "\f004"; } + +.fa-heart-broken:before { + content: "\f7a9"; } + +.fa-heartbeat:before { + content: "\f21e"; } + +.fa-helicopter:before { + content: "\f533"; } + +.fa-highlighter:before { + content: "\f591"; } + +.fa-hiking:before { + content: "\f6ec"; } + +.fa-hippo:before { + content: "\f6ed"; } + +.fa-hips:before { + content: "\f452"; } + +.fa-hire-a-helper:before { + content: "\f3b0"; } + +.fa-history:before { + content: "\f1da"; } + +.fa-hockey-puck:before { + content: "\f453"; } + +.fa-holly-berry:before { + content: "\f7aa"; } + +.fa-home:before { + content: "\f015"; } + +.fa-hooli:before { + content: "\f427"; } + +.fa-hornbill:before { + content: "\f592"; } + +.fa-horse:before { + content: "\f6f0"; } + +.fa-horse-head:before { + content: "\f7ab"; } + +.fa-hospital:before { + content: "\f0f8"; } + +.fa-hospital-alt:before { + content: "\f47d"; } + +.fa-hospital-symbol:before { + content: "\f47e"; } + +.fa-hospital-user:before { + content: "\f80d"; } + +.fa-hot-tub:before { + content: "\f593"; } + +.fa-hotdog:before { + content: "\f80f"; } + +.fa-hotel:before { + content: "\f594"; } + +.fa-hotjar:before { + content: "\f3b1"; } + +.fa-hourglass:before { + content: "\f254"; } + +.fa-hourglass-end:before { + content: "\f253"; } + +.fa-hourglass-half:before { + content: "\f252"; } + +.fa-hourglass-start:before { + content: "\f251"; } + +.fa-house-damage:before { + content: "\f6f1"; } + +.fa-house-user:before { + content: "\f965"; } + +.fa-houzz:before { + content: "\f27c"; } + +.fa-hryvnia:before { + content: "\f6f2"; } + +.fa-html5:before { + content: "\f13b"; } + +.fa-hubspot:before { + content: "\f3b2"; } + +.fa-i-cursor:before { + content: "\f246"; } + +.fa-ice-cream:before { + content: "\f810"; } + +.fa-icicles:before { + content: "\f7ad"; } + +.fa-icons:before { + content: "\f86d"; } + +.fa-id-badge:before { + content: "\f2c1"; } + +.fa-id-card:before { + content: "\f2c2"; } + +.fa-id-card-alt:before { + content: "\f47f"; } + +.fa-ideal:before { + content: "\f913"; } + +.fa-igloo:before { + content: "\f7ae"; } + +.fa-image:before { + content: "\f03e"; } + +.fa-images:before { + content: "\f302"; } + +.fa-imdb:before { + content: "\f2d8"; } + +.fa-inbox:before { + content: "\f01c"; } + +.fa-indent:before { + content: "\f03c"; } + +.fa-industry:before { + content: "\f275"; } + +.fa-infinity:before { + content: "\f534"; } + +.fa-info:before { + content: "\f129"; } + +.fa-info-circle:before { + content: "\f05a"; } + +.fa-instagram:before { + content: "\f16d"; } + +.fa-instagram-square:before { + content: "\f955"; } + +.fa-intercom:before { + content: "\f7af"; } + +.fa-internet-explorer:before { + content: "\f26b"; } + +.fa-invision:before { + content: "\f7b0"; } + +.fa-ioxhost:before { + content: "\f208"; } + +.fa-italic:before { + content: "\f033"; } + +.fa-itch-io:before { + content: "\f83a"; } + +.fa-itunes:before { + content: "\f3b4"; } + +.fa-itunes-note:before { + content: "\f3b5"; } + +.fa-java:before { + content: "\f4e4"; } + +.fa-jedi:before { + content: "\f669"; } + +.fa-jedi-order:before { + content: "\f50e"; } + +.fa-jenkins:before { + content: "\f3b6"; } + +.fa-jira:before { + content: "\f7b1"; } + +.fa-joget:before { + content: "\f3b7"; } + +.fa-joint:before { + content: "\f595"; } + +.fa-joomla:before { + content: "\f1aa"; } + +.fa-journal-whills:before { + content: "\f66a"; } + +.fa-js:before { + content: "\f3b8"; } + +.fa-js-square:before { + content: "\f3b9"; } + +.fa-jsfiddle:before { + content: "\f1cc"; } + +.fa-kaaba:before { + content: "\f66b"; } + +.fa-kaggle:before { + content: "\f5fa"; } + +.fa-key:before { + content: "\f084"; } + +.fa-keybase:before { + content: "\f4f5"; } + +.fa-keyboard:before { + content: "\f11c"; } + +.fa-keycdn:before { + content: "\f3ba"; } + +.fa-khanda:before { + content: "\f66d"; } + +.fa-kickstarter:before { + content: "\f3bb"; } + +.fa-kickstarter-k:before { + content: "\f3bc"; } + +.fa-kiss:before { + content: "\f596"; } + +.fa-kiss-beam:before { + content: "\f597"; } + +.fa-kiss-wink-heart:before { + content: "\f598"; } + +.fa-kiwi-bird:before { + content: "\f535"; } + +.fa-korvue:before { + content: "\f42f"; } + +.fa-landmark:before { + content: "\f66f"; } + +.fa-language:before { + content: "\f1ab"; } + +.fa-laptop:before { + content: "\f109"; } + +.fa-laptop-code:before { + content: "\f5fc"; } + +.fa-laptop-house:before { + content: "\f966"; } + +.fa-laptop-medical:before { + content: "\f812"; } + +.fa-laravel:before { + content: "\f3bd"; } + +.fa-lastfm:before { + content: "\f202"; } + +.fa-lastfm-square:before { + content: "\f203"; } + +.fa-laugh:before { + content: "\f599"; } + +.fa-laugh-beam:before { + content: "\f59a"; } + +.fa-laugh-squint:before { + content: "\f59b"; } + +.fa-laugh-wink:before { + content: "\f59c"; } + +.fa-layer-group:before { + content: "\f5fd"; } + +.fa-leaf:before { + content: "\f06c"; } + +.fa-leanpub:before { + content: "\f212"; } + +.fa-lemon:before { + content: "\f094"; } + +.fa-less:before { + content: "\f41d"; } + +.fa-less-than:before { + content: "\f536"; } + +.fa-less-than-equal:before { + content: "\f537"; } + +.fa-level-down-alt:before { + content: "\f3be"; } + +.fa-level-up-alt:before { + content: "\f3bf"; } + +.fa-life-ring:before { + content: "\f1cd"; } + +.fa-lightbulb:before { + content: "\f0eb"; } + +.fa-line:before { + content: "\f3c0"; } + +.fa-link:before { + content: "\f0c1"; } + +.fa-linkedin:before { + content: "\f08c"; } + +.fa-linkedin-in:before { + content: "\f0e1"; } + +.fa-linode:before { + content: "\f2b8"; } + +.fa-linux:before { + content: "\f17c"; } + +.fa-lira-sign:before { + content: "\f195"; } + +.fa-list:before { + content: "\f03a"; } + +.fa-list-alt:before { + content: "\f022"; } + +.fa-list-ol:before { + content: "\f0cb"; } + +.fa-list-ul:before { + content: "\f0ca"; } + +.fa-location-arrow:before { + content: "\f124"; } + +.fa-lock:before { + content: "\f023"; } + +.fa-lock-open:before { + content: "\f3c1"; } + +.fa-long-arrow-alt-down:before { + content: "\f309"; } + +.fa-long-arrow-alt-left:before { + content: "\f30a"; } + +.fa-long-arrow-alt-right:before { + content: "\f30b"; } + +.fa-long-arrow-alt-up:before { + content: "\f30c"; } + +.fa-low-vision:before { + content: "\f2a8"; } + +.fa-luggage-cart:before { + content: "\f59d"; } + +.fa-lungs:before { + content: "\f604"; } + +.fa-lungs-virus:before { + content: "\f967"; } + +.fa-lyft:before { + content: "\f3c3"; } + +.fa-magento:before { + content: "\f3c4"; } + +.fa-magic:before { + content: "\f0d0"; } + +.fa-magnet:before { + content: "\f076"; } + +.fa-mail-bulk:before { + content: "\f674"; } + +.fa-mailchimp:before { + content: "\f59e"; } + +.fa-male:before { + content: "\f183"; } + +.fa-mandalorian:before { + content: "\f50f"; } + +.fa-map:before { + content: "\f279"; } + +.fa-map-marked:before { + content: "\f59f"; } + +.fa-map-marked-alt:before { + content: "\f5a0"; } + +.fa-map-marker:before { + content: "\f041"; } + +.fa-map-marker-alt:before { + content: "\f3c5"; } + +.fa-map-pin:before { + content: "\f276"; } + +.fa-map-signs:before { + content: "\f277"; } + +.fa-markdown:before { + content: "\f60f"; } + +.fa-marker:before { + content: "\f5a1"; } + +.fa-mars:before { + content: "\f222"; } + +.fa-mars-double:before { + content: "\f227"; } + +.fa-mars-stroke:before { + content: "\f229"; } + +.fa-mars-stroke-h:before { + content: "\f22b"; } + +.fa-mars-stroke-v:before { + content: "\f22a"; } + +.fa-mask:before { + content: "\f6fa"; } + +.fa-mastodon:before { + content: "\f4f6"; } + +.fa-maxcdn:before { + content: "\f136"; } + +.fa-mdb:before { + content: "\f8ca"; } + +.fa-medal:before { + content: "\f5a2"; } + +.fa-medapps:before { + content: "\f3c6"; } + +.fa-medium:before { + content: "\f23a"; } + +.fa-medium-m:before { + content: "\f3c7"; } + +.fa-medkit:before { + content: "\f0fa"; } + +.fa-medrt:before { + content: "\f3c8"; } + +.fa-meetup:before { + content: "\f2e0"; } + +.fa-megaport:before { + content: "\f5a3"; } + +.fa-meh:before { + content: "\f11a"; } + +.fa-meh-blank:before { + content: "\f5a4"; } + +.fa-meh-rolling-eyes:before { + content: "\f5a5"; } + +.fa-memory:before { + content: "\f538"; } + +.fa-mendeley:before { + content: "\f7b3"; } + +.fa-menorah:before { + content: "\f676"; } + +.fa-mercury:before { + content: "\f223"; } + +.fa-meteor:before { + content: "\f753"; } + +.fa-microblog:before { + content: "\f91a"; } + +.fa-microchip:before { + content: "\f2db"; } + +.fa-microphone:before { + content: "\f130"; } + +.fa-microphone-alt:before { + content: "\f3c9"; } + +.fa-microphone-alt-slash:before { + content: "\f539"; } + +.fa-microphone-slash:before { + content: "\f131"; } + +.fa-microscope:before { + content: "\f610"; } + +.fa-microsoft:before { + content: "\f3ca"; } + +.fa-minus:before { + content: "\f068"; } + +.fa-minus-circle:before { + content: "\f056"; } + +.fa-minus-square:before { + content: "\f146"; } + +.fa-mitten:before { + content: "\f7b5"; } + +.fa-mix:before { + content: "\f3cb"; } + +.fa-mixcloud:before { + content: "\f289"; } + +.fa-mixer:before { + content: "\f956"; } + +.fa-mizuni:before { + content: "\f3cc"; } + +.fa-mobile:before { + content: "\f10b"; } + +.fa-mobile-alt:before { + content: "\f3cd"; } + +.fa-modx:before { + content: "\f285"; } + +.fa-monero:before { + content: "\f3d0"; } + +.fa-money-bill:before { + content: "\f0d6"; } + +.fa-money-bill-alt:before { + content: "\f3d1"; } + +.fa-money-bill-wave:before { + content: "\f53a"; } + +.fa-money-bill-wave-alt:before { + content: "\f53b"; } + +.fa-money-check:before { + content: "\f53c"; } + +.fa-money-check-alt:before { + content: "\f53d"; } + +.fa-monument:before { + content: "\f5a6"; } + +.fa-moon:before { + content: "\f186"; } + +.fa-mortar-pestle:before { + content: "\f5a7"; } + +.fa-mosque:before { + content: "\f678"; } + +.fa-motorcycle:before { + content: "\f21c"; } + +.fa-mountain:before { + content: "\f6fc"; } + +.fa-mouse:before { + content: "\f8cc"; } + +.fa-mouse-pointer:before { + content: "\f245"; } + +.fa-mug-hot:before { + content: "\f7b6"; } + +.fa-music:before { + content: "\f001"; } + +.fa-napster:before { + content: "\f3d2"; } + +.fa-neos:before { + content: "\f612"; } + +.fa-network-wired:before { + content: "\f6ff"; } + +.fa-neuter:before { + content: "\f22c"; } + +.fa-newspaper:before { + content: "\f1ea"; } + +.fa-nimblr:before { + content: "\f5a8"; } + +.fa-node:before { + content: "\f419"; } + +.fa-node-js:before { + content: "\f3d3"; } + +.fa-not-equal:before { + content: "\f53e"; } + +.fa-notes-medical:before { + content: "\f481"; } + +.fa-npm:before { + content: "\f3d4"; } + +.fa-ns8:before { + content: "\f3d5"; } + +.fa-nutritionix:before { + content: "\f3d6"; } + +.fa-object-group:before { + content: "\f247"; } + +.fa-object-ungroup:before { + content: "\f248"; } + +.fa-odnoklassniki:before { + content: "\f263"; } + +.fa-odnoklassniki-square:before { + content: "\f264"; } + +.fa-oil-can:before { + content: "\f613"; } + +.fa-old-republic:before { + content: "\f510"; } + +.fa-om:before { + content: "\f679"; } + +.fa-opencart:before { + content: "\f23d"; } + +.fa-openid:before { + content: "\f19b"; } + +.fa-opera:before { + content: "\f26a"; } + +.fa-optin-monster:before { + content: "\f23c"; } + +.fa-orcid:before { + content: "\f8d2"; } + +.fa-osi:before { + content: "\f41a"; } + +.fa-otter:before { + content: "\f700"; } + +.fa-outdent:before { + content: "\f03b"; } + +.fa-page4:before { + content: "\f3d7"; } + +.fa-pagelines:before { + content: "\f18c"; } + +.fa-pager:before { + content: "\f815"; } + +.fa-paint-brush:before { + content: "\f1fc"; } + +.fa-paint-roller:before { + content: "\f5aa"; } + +.fa-palette:before { + content: "\f53f"; } + +.fa-palfed:before { + content: "\f3d8"; } + +.fa-pallet:before { + content: "\f482"; } + +.fa-paper-plane:before { + content: "\f1d8"; } + +.fa-paperclip:before { + content: "\f0c6"; } + +.fa-parachute-box:before { + content: "\f4cd"; } + +.fa-paragraph:before { + content: "\f1dd"; } + +.fa-parking:before { + content: "\f540"; } + +.fa-passport:before { + content: "\f5ab"; } + +.fa-pastafarianism:before { + content: "\f67b"; } + +.fa-paste:before { + content: "\f0ea"; } + +.fa-patreon:before { + content: "\f3d9"; } + +.fa-pause:before { + content: "\f04c"; } + +.fa-pause-circle:before { + content: "\f28b"; } + +.fa-paw:before { + content: "\f1b0"; } + +.fa-paypal:before { + content: "\f1ed"; } + +.fa-peace:before { + content: "\f67c"; } + +.fa-pen:before { + content: "\f304"; } + +.fa-pen-alt:before { + content: "\f305"; } + +.fa-pen-fancy:before { + content: "\f5ac"; } + +.fa-pen-nib:before { + content: "\f5ad"; } + +.fa-pen-square:before { + content: "\f14b"; } + +.fa-pencil-alt:before { + content: "\f303"; } + +.fa-pencil-ruler:before { + content: "\f5ae"; } + +.fa-penny-arcade:before { + content: "\f704"; } + +.fa-people-arrows:before { + content: "\f968"; } + +.fa-people-carry:before { + content: "\f4ce"; } + +.fa-pepper-hot:before { + content: "\f816"; } + +.fa-percent:before { + content: "\f295"; } + +.fa-percentage:before { + content: "\f541"; } + +.fa-periscope:before { + content: "\f3da"; } + +.fa-person-booth:before { + content: "\f756"; } + +.fa-phabricator:before { + content: "\f3db"; } + +.fa-phoenix-framework:before { + content: "\f3dc"; } + +.fa-phoenix-squadron:before { + content: "\f511"; } + +.fa-phone:before { + content: "\f095"; } + +.fa-phone-alt:before { + content: "\f879"; } + +.fa-phone-slash:before { + content: "\f3dd"; } + +.fa-phone-square:before { + content: "\f098"; } + +.fa-phone-square-alt:before { + content: "\f87b"; } + +.fa-phone-volume:before { + content: "\f2a0"; } + +.fa-photo-video:before { + content: "\f87c"; } + +.fa-php:before { + content: "\f457"; } + +.fa-pied-piper:before { + content: "\f2ae"; } + +.fa-pied-piper-alt:before { + content: "\f1a8"; } + +.fa-pied-piper-hat:before { + content: "\f4e5"; } + +.fa-pied-piper-pp:before { + content: "\f1a7"; } + +.fa-pied-piper-square:before { + content: "\f91e"; } + +.fa-piggy-bank:before { + content: "\f4d3"; } + +.fa-pills:before { + content: "\f484"; } + +.fa-pinterest:before { + content: "\f0d2"; } + +.fa-pinterest-p:before { + content: "\f231"; } + +.fa-pinterest-square:before { + content: "\f0d3"; } + +.fa-pizza-slice:before { + content: "\f818"; } + +.fa-place-of-worship:before { + content: "\f67f"; } + +.fa-plane:before { + content: "\f072"; } + +.fa-plane-arrival:before { + content: "\f5af"; } + +.fa-plane-departure:before { + content: "\f5b0"; } + +.fa-plane-slash:before { + content: "\f969"; } + +.fa-play:before { + content: "\f04b"; } + +.fa-play-circle:before { + content: "\f144"; } + +.fa-playstation:before { + content: "\f3df"; } + +.fa-plug:before { + content: "\f1e6"; } + +.fa-plus:before { + content: "\f067"; } + +.fa-plus-circle:before { + content: "\f055"; } + +.fa-plus-square:before { + content: "\f0fe"; } + +.fa-podcast:before { + content: "\f2ce"; } + +.fa-poll:before { + content: "\f681"; } + +.fa-poll-h:before { + content: "\f682"; } + +.fa-poo:before { + content: "\f2fe"; } + +.fa-poo-storm:before { + content: "\f75a"; } + +.fa-poop:before { + content: "\f619"; } + +.fa-portrait:before { + content: "\f3e0"; } + +.fa-pound-sign:before { + content: "\f154"; } + +.fa-power-off:before { + content: "\f011"; } + +.fa-pray:before { + content: "\f683"; } + +.fa-praying-hands:before { + content: "\f684"; } + +.fa-prescription:before { + content: "\f5b1"; } + +.fa-prescription-bottle:before { + content: "\f485"; } + +.fa-prescription-bottle-alt:before { + content: "\f486"; } + +.fa-print:before { + content: "\f02f"; } + +.fa-procedures:before { + content: "\f487"; } + +.fa-product-hunt:before { + content: "\f288"; } + +.fa-project-diagram:before { + content: "\f542"; } + +.fa-pump-medical:before { + content: "\f96a"; } + +.fa-pump-soap:before { + content: "\f96b"; } + +.fa-pushed:before { + content: "\f3e1"; } + +.fa-puzzle-piece:before { + content: "\f12e"; } + +.fa-python:before { + content: "\f3e2"; } + +.fa-qq:before { + content: "\f1d6"; } + +.fa-qrcode:before { + content: "\f029"; } + +.fa-question:before { + content: "\f128"; } + +.fa-question-circle:before { + content: "\f059"; } + +.fa-quidditch:before { + content: "\f458"; } + +.fa-quinscape:before { + content: "\f459"; } + +.fa-quora:before { + content: "\f2c4"; } + +.fa-quote-left:before { + content: "\f10d"; } + +.fa-quote-right:before { + content: "\f10e"; } + +.fa-quran:before { + content: "\f687"; } + +.fa-r-project:before { + content: "\f4f7"; } + +.fa-radiation:before { + content: "\f7b9"; } + +.fa-radiation-alt:before { + content: "\f7ba"; } + +.fa-rainbow:before { + content: "\f75b"; } + +.fa-random:before { + content: "\f074"; } + +.fa-raspberry-pi:before { + content: "\f7bb"; } + +.fa-ravelry:before { + content: "\f2d9"; } + +.fa-react:before { + content: "\f41b"; } + +.fa-reacteurope:before { + content: "\f75d"; } + +.fa-readme:before { + content: "\f4d5"; } + +.fa-rebel:before { + content: "\f1d0"; } + +.fa-receipt:before { + content: "\f543"; } + +.fa-record-vinyl:before { + content: "\f8d9"; } + +.fa-recycle:before { + content: "\f1b8"; } + +.fa-red-river:before { + content: "\f3e3"; } + +.fa-reddit:before { + content: "\f1a1"; } + +.fa-reddit-alien:before { + content: "\f281"; } + +.fa-reddit-square:before { + content: "\f1a2"; } + +.fa-redhat:before { + content: "\f7bc"; } + +.fa-redo:before { + content: "\f01e"; } + +.fa-redo-alt:before { + content: "\f2f9"; } + +.fa-registered:before { + content: "\f25d"; } + +.fa-remove-format:before { + content: "\f87d"; } + +.fa-renren:before { + content: "\f18b"; } + +.fa-reply:before { + content: "\f3e5"; } + +.fa-reply-all:before { + content: "\f122"; } + +.fa-replyd:before { + content: "\f3e6"; } + +.fa-republican:before { + content: "\f75e"; } + +.fa-researchgate:before { + content: "\f4f8"; } + +.fa-resolving:before { + content: "\f3e7"; } + +.fa-restroom:before { + content: "\f7bd"; } + +.fa-retweet:before { + content: "\f079"; } + +.fa-rev:before { + content: "\f5b2"; } + +.fa-ribbon:before { + content: "\f4d6"; } + +.fa-ring:before { + content: "\f70b"; } + +.fa-road:before { + content: "\f018"; } + +.fa-robot:before { + content: "\f544"; } + +.fa-rocket:before { + content: "\f135"; } + +.fa-rocketchat:before { + content: "\f3e8"; } + +.fa-rockrms:before { + content: "\f3e9"; } + +.fa-route:before { + content: "\f4d7"; } + +.fa-rss:before { + content: "\f09e"; } + +.fa-rss-square:before { + content: "\f143"; } + +.fa-ruble-sign:before { + content: "\f158"; } + +.fa-ruler:before { + content: "\f545"; } + +.fa-ruler-combined:before { + content: "\f546"; } + +.fa-ruler-horizontal:before { + content: "\f547"; } + +.fa-ruler-vertical:before { + content: "\f548"; } + +.fa-running:before { + content: "\f70c"; } + +.fa-rupee-sign:before { + content: "\f156"; } + +.fa-rust:before { + content: "\f97a"; } + +.fa-sad-cry:before { + content: "\f5b3"; } + +.fa-sad-tear:before { + content: "\f5b4"; } + +.fa-safari:before { + content: "\f267"; } + +.fa-salesforce:before { + content: "\f83b"; } + +.fa-sass:before { + content: "\f41e"; } + +.fa-satellite:before { + content: "\f7bf"; } + +.fa-satellite-dish:before { + content: "\f7c0"; } + +.fa-save:before { + content: "\f0c7"; } + +.fa-schlix:before { + content: "\f3ea"; } + +.fa-school:before { + content: "\f549"; } + +.fa-screwdriver:before { + content: "\f54a"; } + +.fa-scribd:before { + content: "\f28a"; } + +.fa-scroll:before { + content: "\f70e"; } + +.fa-sd-card:before { + content: "\f7c2"; } + +.fa-search:before { + content: "\f002"; } + +.fa-search-dollar:before { + content: "\f688"; } + +.fa-search-location:before { + content: "\f689"; } + +.fa-search-minus:before { + content: "\f010"; } + +.fa-search-plus:before { + content: "\f00e"; } + +.fa-searchengin:before { + content: "\f3eb"; } + +.fa-seedling:before { + content: "\f4d8"; } + +.fa-sellcast:before { + content: "\f2da"; } + +.fa-sellsy:before { + content: "\f213"; } + +.fa-server:before { + content: "\f233"; } + +.fa-servicestack:before { + content: "\f3ec"; } + +.fa-shapes:before { + content: "\f61f"; } + +.fa-share:before { + content: "\f064"; } + +.fa-share-alt:before { + content: "\f1e0"; } + +.fa-share-alt-square:before { + content: "\f1e1"; } + +.fa-share-square:before { + content: "\f14d"; } + +.fa-shekel-sign:before { + content: "\f20b"; } + +.fa-shield-alt:before { + content: "\f3ed"; } + +.fa-shield-virus:before { + content: "\f96c"; } + +.fa-ship:before { + content: "\f21a"; } + +.fa-shipping-fast:before { + content: "\f48b"; } + +.fa-shirtsinbulk:before { + content: "\f214"; } + +.fa-shoe-prints:before { + content: "\f54b"; } + +.fa-shopify:before { + content: "\f957"; } + +.fa-shopping-bag:before { + content: "\f290"; } + +.fa-shopping-basket:before { + content: "\f291"; } + +.fa-shopping-cart:before { + content: "\f07a"; } + +.fa-shopware:before { + content: "\f5b5"; } + +.fa-shower:before { + content: "\f2cc"; } + +.fa-shuttle-van:before { + content: "\f5b6"; } + +.fa-sign:before { + content: "\f4d9"; } + +.fa-sign-in-alt:before { + content: "\f2f6"; } + +.fa-sign-language:before { + content: "\f2a7"; } + +.fa-sign-out-alt:before { + content: "\f2f5"; } + +.fa-signal:before { + content: "\f012"; } + +.fa-signature:before { + content: "\f5b7"; } + +.fa-sim-card:before { + content: "\f7c4"; } + +.fa-simplybuilt:before { + content: "\f215"; } + +.fa-sink:before { + content: "\f96d"; } + +.fa-sistrix:before { + content: "\f3ee"; } + +.fa-sitemap:before { + content: "\f0e8"; } + +.fa-sith:before { + content: "\f512"; } + +.fa-skating:before { + content: "\f7c5"; } + +.fa-sketch:before { + content: "\f7c6"; } + +.fa-skiing:before { + content: "\f7c9"; } + +.fa-skiing-nordic:before { + content: "\f7ca"; } + +.fa-skull:before { + content: "\f54c"; } + +.fa-skull-crossbones:before { + content: "\f714"; } + +.fa-skyatlas:before { + content: "\f216"; } + +.fa-skype:before { + content: "\f17e"; } + +.fa-slack:before { + content: "\f198"; } + +.fa-slack-hash:before { + content: "\f3ef"; } + +.fa-slash:before { + content: "\f715"; } + +.fa-sleigh:before { + content: "\f7cc"; } + +.fa-sliders-h:before { + content: "\f1de"; } + +.fa-slideshare:before { + content: "\f1e7"; } + +.fa-smile:before { + content: "\f118"; } + +.fa-smile-beam:before { + content: "\f5b8"; } + +.fa-smile-wink:before { + content: "\f4da"; } + +.fa-smog:before { + content: "\f75f"; } + +.fa-smoking:before { + content: "\f48d"; } + +.fa-smoking-ban:before { + content: "\f54d"; } + +.fa-sms:before { + content: "\f7cd"; } + +.fa-snapchat:before { + content: "\f2ab"; } + +.fa-snapchat-ghost:before { + content: "\f2ac"; } + +.fa-snapchat-square:before { + content: "\f2ad"; } + +.fa-snowboarding:before { + content: "\f7ce"; } + +.fa-snowflake:before { + content: "\f2dc"; } + +.fa-snowman:before { + content: "\f7d0"; } + +.fa-snowplow:before { + content: "\f7d2"; } + +.fa-soap:before { + content: "\f96e"; } + +.fa-socks:before { + content: "\f696"; } + +.fa-solar-panel:before { + content: "\f5ba"; } + +.fa-sort:before { + content: "\f0dc"; } + +.fa-sort-alpha-down:before { + content: "\f15d"; } + +.fa-sort-alpha-down-alt:before { + content: "\f881"; } + +.fa-sort-alpha-up:before { + content: "\f15e"; } + +.fa-sort-alpha-up-alt:before { + content: "\f882"; } + +.fa-sort-amount-down:before { + content: "\f160"; } + +.fa-sort-amount-down-alt:before { + content: "\f884"; } + +.fa-sort-amount-up:before { + content: "\f161"; } + +.fa-sort-amount-up-alt:before { + content: "\f885"; } + +.fa-sort-down:before { + content: "\f0dd"; } + +.fa-sort-numeric-down:before { + content: "\f162"; } + +.fa-sort-numeric-down-alt:before { + content: "\f886"; } + +.fa-sort-numeric-up:before { + content: "\f163"; } + +.fa-sort-numeric-up-alt:before { + content: "\f887"; } + +.fa-sort-up:before { + content: "\f0de"; } + +.fa-soundcloud:before { + content: "\f1be"; } + +.fa-sourcetree:before { + content: "\f7d3"; } + +.fa-spa:before { + content: "\f5bb"; } + +.fa-space-shuttle:before { + content: "\f197"; } + +.fa-speakap:before { + content: "\f3f3"; } + +.fa-speaker-deck:before { + content: "\f83c"; } + +.fa-spell-check:before { + content: "\f891"; } + +.fa-spider:before { + content: "\f717"; } + +.fa-spinner:before { + content: "\f110"; } + +.fa-splotch:before { + content: "\f5bc"; } + +.fa-spotify:before { + content: "\f1bc"; } + +.fa-spray-can:before { + content: "\f5bd"; } + +.fa-square:before { + content: "\f0c8"; } + +.fa-square-full:before { + content: "\f45c"; } + +.fa-square-root-alt:before { + content: "\f698"; } + +.fa-squarespace:before { + content: "\f5be"; } + +.fa-stack-exchange:before { + content: "\f18d"; } + +.fa-stack-overflow:before { + content: "\f16c"; } + +.fa-stackpath:before { + content: "\f842"; } + +.fa-stamp:before { + content: "\f5bf"; } + +.fa-star:before { + content: "\f005"; } + +.fa-star-and-crescent:before { + content: "\f699"; } + +.fa-star-half:before { + content: "\f089"; } + +.fa-star-half-alt:before { + content: "\f5c0"; } + +.fa-star-of-david:before { + content: "\f69a"; } + +.fa-star-of-life:before { + content: "\f621"; } + +.fa-staylinked:before { + content: "\f3f5"; } + +.fa-steam:before { + content: "\f1b6"; } + +.fa-steam-square:before { + content: "\f1b7"; } + +.fa-steam-symbol:before { + content: "\f3f6"; } + +.fa-step-backward:before { + content: "\f048"; } + +.fa-step-forward:before { + content: "\f051"; } + +.fa-stethoscope:before { + content: "\f0f1"; } + +.fa-sticker-mule:before { + content: "\f3f7"; } + +.fa-sticky-note:before { + content: "\f249"; } + +.fa-stop:before { + content: "\f04d"; } + +.fa-stop-circle:before { + content: "\f28d"; } + +.fa-stopwatch:before { + content: "\f2f2"; } + +.fa-stopwatch-20:before { + content: "\f96f"; } + +.fa-store:before { + content: "\f54e"; } + +.fa-store-alt:before { + content: "\f54f"; } + +.fa-store-alt-slash:before { + content: "\f970"; } + +.fa-store-slash:before { + content: "\f971"; } + +.fa-strava:before { + content: "\f428"; } + +.fa-stream:before { + content: "\f550"; } + +.fa-street-view:before { + content: "\f21d"; } + +.fa-strikethrough:before { + content: "\f0cc"; } + +.fa-stripe:before { + content: "\f429"; } + +.fa-stripe-s:before { + content: "\f42a"; } + +.fa-stroopwafel:before { + content: "\f551"; } + +.fa-studiovinari:before { + content: "\f3f8"; } + +.fa-stumbleupon:before { + content: "\f1a4"; } + +.fa-stumbleupon-circle:before { + content: "\f1a3"; } + +.fa-subscript:before { + content: "\f12c"; } + +.fa-subway:before { + content: "\f239"; } + +.fa-suitcase:before { + content: "\f0f2"; } + +.fa-suitcase-rolling:before { + content: "\f5c1"; } + +.fa-sun:before { + content: "\f185"; } + +.fa-superpowers:before { + content: "\f2dd"; } + +.fa-superscript:before { + content: "\f12b"; } + +.fa-supple:before { + content: "\f3f9"; } + +.fa-surprise:before { + content: "\f5c2"; } + +.fa-suse:before { + content: "\f7d6"; } + +.fa-swatchbook:before { + content: "\f5c3"; } + +.fa-swift:before { + content: "\f8e1"; } + +.fa-swimmer:before { + content: "\f5c4"; } + +.fa-swimming-pool:before { + content: "\f5c5"; } + +.fa-symfony:before { + content: "\f83d"; } + +.fa-synagogue:before { + content: "\f69b"; } + +.fa-sync:before { + content: "\f021"; } + +.fa-sync-alt:before { + content: "\f2f1"; } + +.fa-syringe:before { + content: "\f48e"; } + +.fa-table:before { + content: "\f0ce"; } + +.fa-table-tennis:before { + content: "\f45d"; } + +.fa-tablet:before { + content: "\f10a"; } + +.fa-tablet-alt:before { + content: "\f3fa"; } + +.fa-tablets:before { + content: "\f490"; } + +.fa-tachometer-alt:before { + content: "\f3fd"; } + +.fa-tag:before { + content: "\f02b"; } + +.fa-tags:before { + content: "\f02c"; } + +.fa-tape:before { + content: "\f4db"; } + +.fa-tasks:before { + content: "\f0ae"; } + +.fa-taxi:before { + content: "\f1ba"; } + +.fa-teamspeak:before { + content: "\f4f9"; } + +.fa-teeth:before { + content: "\f62e"; } + +.fa-teeth-open:before { + content: "\f62f"; } + +.fa-telegram:before { + content: "\f2c6"; } + +.fa-telegram-plane:before { + content: "\f3fe"; } + +.fa-temperature-high:before { + content: "\f769"; } + +.fa-temperature-low:before { + content: "\f76b"; } + +.fa-tencent-weibo:before { + content: "\f1d5"; } + +.fa-tenge:before { + content: "\f7d7"; } + +.fa-terminal:before { + content: "\f120"; } + +.fa-text-height:before { + content: "\f034"; } + +.fa-text-width:before { + content: "\f035"; } + +.fa-th:before { + content: "\f00a"; } + +.fa-th-large:before { + content: "\f009"; } + +.fa-th-list:before { + content: "\f00b"; } + +.fa-the-red-yeti:before { + content: "\f69d"; } + +.fa-theater-masks:before { + content: "\f630"; } + +.fa-themeco:before { + content: "\f5c6"; } + +.fa-themeisle:before { + content: "\f2b2"; } + +.fa-thermometer:before { + content: "\f491"; } + +.fa-thermometer-empty:before { + content: "\f2cb"; } + +.fa-thermometer-full:before { + content: "\f2c7"; } + +.fa-thermometer-half:before { + content: "\f2c9"; } + +.fa-thermometer-quarter:before { + content: "\f2ca"; } + +.fa-thermometer-three-quarters:before { + content: "\f2c8"; } + +.fa-think-peaks:before { + content: "\f731"; } + +.fa-thumbs-down:before { + content: "\f165"; } + +.fa-thumbs-up:before { + content: "\f164"; } + +.fa-thumbtack:before { + content: "\f08d"; } + +.fa-ticket-alt:before { + content: "\f3ff"; } + +.fa-tiktok:before { + content: "\f97b"; } + +.fa-times:before { + content: "\f00d"; } + +.fa-times-circle:before { + content: "\f057"; } + +.fa-tint:before { + content: "\f043"; } + +.fa-tint-slash:before { + content: "\f5c7"; } + +.fa-tired:before { + content: "\f5c8"; } + +.fa-toggle-off:before { + content: "\f204"; } + +.fa-toggle-on:before { + content: "\f205"; } + +.fa-toilet:before { + content: "\f7d8"; } + +.fa-toilet-paper:before { + content: "\f71e"; } + +.fa-toilet-paper-slash:before { + content: "\f972"; } + +.fa-toolbox:before { + content: "\f552"; } + +.fa-tools:before { + content: "\f7d9"; } + +.fa-tooth:before { + content: "\f5c9"; } + +.fa-torah:before { + content: "\f6a0"; } + +.fa-torii-gate:before { + content: "\f6a1"; } + +.fa-tractor:before { + content: "\f722"; } + +.fa-trade-federation:before { + content: "\f513"; } + +.fa-trademark:before { + content: "\f25c"; } + +.fa-traffic-light:before { + content: "\f637"; } + +.fa-trailer:before { + content: "\f941"; } + +.fa-train:before { + content: "\f238"; } + +.fa-tram:before { + content: "\f7da"; } + +.fa-transgender:before { + content: "\f224"; } + +.fa-transgender-alt:before { + content: "\f225"; } + +.fa-trash:before { + content: "\f1f8"; } + +.fa-trash-alt:before { + content: "\f2ed"; } + +.fa-trash-restore:before { + content: "\f829"; } + +.fa-trash-restore-alt:before { + content: "\f82a"; } + +.fa-tree:before { + content: "\f1bb"; } + +.fa-trello:before { + content: "\f181"; } + +.fa-tripadvisor:before { + content: "\f262"; } + +.fa-trophy:before { + content: "\f091"; } + +.fa-truck:before { + content: "\f0d1"; } + +.fa-truck-loading:before { + content: "\f4de"; } + +.fa-truck-monster:before { + content: "\f63b"; } + +.fa-truck-moving:before { + content: "\f4df"; } + +.fa-truck-pickup:before { + content: "\f63c"; } + +.fa-tshirt:before { + content: "\f553"; } + +.fa-tty:before { + content: "\f1e4"; } + +.fa-tumblr:before { + content: "\f173"; } + +.fa-tumblr-square:before { + content: "\f174"; } + +.fa-tv:before { + content: "\f26c"; } + +.fa-twitch:before { + content: "\f1e8"; } + +.fa-twitter:before { + content: "\f099"; } + +.fa-twitter-square:before { + content: "\f081"; } + +.fa-typo3:before { + content: "\f42b"; } + +.fa-uber:before { + content: "\f402"; } + +.fa-ubuntu:before { + content: "\f7df"; } + +.fa-uikit:before { + content: "\f403"; } + +.fa-umbraco:before { + content: "\f8e8"; } + +.fa-umbrella:before { + content: "\f0e9"; } + +.fa-umbrella-beach:before { + content: "\f5ca"; } + +.fa-underline:before { + content: "\f0cd"; } + +.fa-undo:before { + content: "\f0e2"; } + +.fa-undo-alt:before { + content: "\f2ea"; } + +.fa-uniregistry:before { + content: "\f404"; } + +.fa-unity:before { + content: "\f949"; } + +.fa-universal-access:before { + content: "\f29a"; } + +.fa-university:before { + content: "\f19c"; } + +.fa-unlink:before { + content: "\f127"; } + +.fa-unlock:before { + content: "\f09c"; } + +.fa-unlock-alt:before { + content: "\f13e"; } + +.fa-unsplash:before { + content: "\f97c"; } + +.fa-untappd:before { + content: "\f405"; } + +.fa-upload:before { + content: "\f093"; } + +.fa-ups:before { + content: "\f7e0"; } + +.fa-usb:before { + content: "\f287"; } + +.fa-user:before { + content: "\f007"; } + +.fa-user-alt:before { + content: "\f406"; } + +.fa-user-alt-slash:before { + content: "\f4fa"; } + +.fa-user-astronaut:before { + content: "\f4fb"; } + +.fa-user-check:before { + content: "\f4fc"; } + +.fa-user-circle:before { + content: "\f2bd"; } + +.fa-user-clock:before { + content: "\f4fd"; } + +.fa-user-cog:before { + content: "\f4fe"; } + +.fa-user-edit:before { + content: "\f4ff"; } + +.fa-user-friends:before { + content: "\f500"; } + +.fa-user-graduate:before { + content: "\f501"; } + +.fa-user-injured:before { + content: "\f728"; } + +.fa-user-lock:before { + content: "\f502"; } + +.fa-user-md:before { + content: "\f0f0"; } + +.fa-user-minus:before { + content: "\f503"; } + +.fa-user-ninja:before { + content: "\f504"; } + +.fa-user-nurse:before { + content: "\f82f"; } + +.fa-user-plus:before { + content: "\f234"; } + +.fa-user-secret:before { + content: "\f21b"; } + +.fa-user-shield:before { + content: "\f505"; } + +.fa-user-slash:before { + content: "\f506"; } + +.fa-user-tag:before { + content: "\f507"; } + +.fa-user-tie:before { + content: "\f508"; } + +.fa-user-times:before { + content: "\f235"; } + +.fa-users:before { + content: "\f0c0"; } + +.fa-users-cog:before { + content: "\f509"; } + +.fa-users-slash:before { + content: "\f973"; } + +.fa-usps:before { + content: "\f7e1"; } + +.fa-ussunnah:before { + content: "\f407"; } + +.fa-utensil-spoon:before { + content: "\f2e5"; } + +.fa-utensils:before { + content: "\f2e7"; } + +.fa-vaadin:before { + content: "\f408"; } + +.fa-vector-square:before { + content: "\f5cb"; } + +.fa-venus:before { + content: "\f221"; } + +.fa-venus-double:before { + content: "\f226"; } + +.fa-venus-mars:before { + content: "\f228"; } + +.fa-viacoin:before { + content: "\f237"; } + +.fa-viadeo:before { + content: "\f2a9"; } + +.fa-viadeo-square:before { + content: "\f2aa"; } + +.fa-vial:before { + content: "\f492"; } + +.fa-vials:before { + content: "\f493"; } + +.fa-viber:before { + content: "\f409"; } + +.fa-video:before { + content: "\f03d"; } + +.fa-video-slash:before { + content: "\f4e2"; } + +.fa-vihara:before { + content: "\f6a7"; } + +.fa-vimeo:before { + content: "\f40a"; } + +.fa-vimeo-square:before { + content: "\f194"; } + +.fa-vimeo-v:before { + content: "\f27d"; } + +.fa-vine:before { + content: "\f1ca"; } + +.fa-virus:before { + content: "\f974"; } + +.fa-virus-slash:before { + content: "\f975"; } + +.fa-viruses:before { + content: "\f976"; } + +.fa-vk:before { + content: "\f189"; } + +.fa-vnv:before { + content: "\f40b"; } + +.fa-voicemail:before { + content: "\f897"; } + +.fa-volleyball-ball:before { + content: "\f45f"; } + +.fa-volume-down:before { + content: "\f027"; } + +.fa-volume-mute:before { + content: "\f6a9"; } + +.fa-volume-off:before { + content: "\f026"; } + +.fa-volume-up:before { + content: "\f028"; } + +.fa-vote-yea:before { + content: "\f772"; } + +.fa-vr-cardboard:before { + content: "\f729"; } + +.fa-vuejs:before { + content: "\f41f"; } + +.fa-walking:before { + content: "\f554"; } + +.fa-wallet:before { + content: "\f555"; } + +.fa-warehouse:before { + content: "\f494"; } + +.fa-water:before { + content: "\f773"; } + +.fa-wave-square:before { + content: "\f83e"; } + +.fa-waze:before { + content: "\f83f"; } + +.fa-weebly:before { + content: "\f5cc"; } + +.fa-weibo:before { + content: "\f18a"; } + +.fa-weight:before { + content: "\f496"; } + +.fa-weight-hanging:before { + content: "\f5cd"; } + +.fa-weixin:before { + content: "\f1d7"; } + +.fa-whatsapp:before { + content: "\f232"; } + +.fa-whatsapp-square:before { + content: "\f40c"; } + +.fa-wheelchair:before { + content: "\f193"; } + +.fa-whmcs:before { + content: "\f40d"; } + +.fa-wifi:before { + content: "\f1eb"; } + +.fa-wikipedia-w:before { + content: "\f266"; } + +.fa-wind:before { + content: "\f72e"; } + +.fa-window-close:before { + content: "\f410"; } + +.fa-window-maximize:before { + content: "\f2d0"; } + +.fa-window-minimize:before { + content: "\f2d1"; } + +.fa-window-restore:before { + content: "\f2d2"; } + +.fa-windows:before { + content: "\f17a"; } + +.fa-wine-bottle:before { + content: "\f72f"; } + +.fa-wine-glass:before { + content: "\f4e3"; } + +.fa-wine-glass-alt:before { + content: "\f5ce"; } + +.fa-wix:before { + content: "\f5cf"; } + +.fa-wizards-of-the-coast:before { + content: "\f730"; } + +.fa-wolf-pack-battalion:before { + content: "\f514"; } + +.fa-won-sign:before { + content: "\f159"; } + +.fa-wordpress:before { + content: "\f19a"; } + +.fa-wordpress-simple:before { + content: "\f411"; } + +.fa-wpbeginner:before { + content: "\f297"; } + +.fa-wpexplorer:before { + content: "\f2de"; } + +.fa-wpforms:before { + content: "\f298"; } + +.fa-wpressr:before { + content: "\f3e4"; } + +.fa-wrench:before { + content: "\f0ad"; } + +.fa-x-ray:before { + content: "\f497"; } + +.fa-xbox:before { + content: "\f412"; } + +.fa-xing:before { + content: "\f168"; } + +.fa-xing-square:before { + content: "\f169"; } + +.fa-y-combinator:before { + content: "\f23b"; } + +.fa-yahoo:before { + content: "\f19e"; } + +.fa-yammer:before { + content: "\f840"; } + +.fa-yandex:before { + content: "\f413"; } + +.fa-yandex-international:before { + content: "\f414"; } + +.fa-yarn:before { + content: "\f7e3"; } + +.fa-yelp:before { + content: "\f1e9"; } + +.fa-yen-sign:before { + content: "\f157"; } + +.fa-yin-yang:before { + content: "\f6ad"; } + +.fa-yoast:before { + content: "\f2b1"; } + +.fa-youtube:before { + content: "\f167"; } + +.fa-youtube-square:before { + content: "\f431"; } + +.fa-zhihu:before { + content: "\f63f"; } + +.sr-only { + border: 0; + clip: rect(0, 0, 0, 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; } + +.sr-only-focusable:active, .sr-only-focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; } +@font-face { + font-family: 'Font Awesome 5 Brands'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("../webfonts/fa-brands-400.eot"); + src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); } + +.fab { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } +@font-face { + font-family: 'Font Awesome 5 Free'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("../webfonts/fa-regular-400.eot"); + src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); } + +.far { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } +@font-face { + font-family: 'Font Awesome 5 Free'; + font-style: normal; + font-weight: 900; + font-display: block; + src: url("../webfonts/fa-solid-900.eot"); + src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); } + +.fa, +.fas { + font-family: 'Font Awesome 5 Free'; + font-weight: 900; } diff --git a/src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/css/v4-shims.css b/src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/css/v4-shims.css new file mode 100644 index 0000000..e4d93da --- /dev/null +++ b/src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/css/v4-shims.css @@ -0,0 +1,2172 @@ +/*! + * Font Awesome Free 5.13.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +.fa.fa-glass:before { + content: "\f000"; } + +.fa.fa-meetup { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-star-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-star-o:before { + content: "\f005"; } + +.fa.fa-remove:before { + content: "\f00d"; } + +.fa.fa-close:before { + content: "\f00d"; } + +.fa.fa-gear:before { + content: "\f013"; } + +.fa.fa-trash-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-trash-o:before { + content: "\f2ed"; } + +.fa.fa-file-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-file-o:before { + content: "\f15b"; } + +.fa.fa-clock-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-clock-o:before { + content: "\f017"; } + +.fa.fa-arrow-circle-o-down { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-arrow-circle-o-down:before { + content: "\f358"; } + +.fa.fa-arrow-circle-o-up { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-arrow-circle-o-up:before { + content: "\f35b"; } + +.fa.fa-play-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-play-circle-o:before { + content: "\f144"; } + +.fa.fa-repeat:before { + content: "\f01e"; } + +.fa.fa-rotate-right:before { + content: "\f01e"; } + +.fa.fa-refresh:before { + content: "\f021"; } + +.fa.fa-list-alt { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-dedent:before { + content: "\f03b"; } + +.fa.fa-video-camera:before { + content: "\f03d"; } + +.fa.fa-picture-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-picture-o:before { + content: "\f03e"; } + +.fa.fa-photo { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-photo:before { + content: "\f03e"; } + +.fa.fa-image { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-image:before { + content: "\f03e"; } + +.fa.fa-pencil:before { + content: "\f303"; } + +.fa.fa-map-marker:before { + content: "\f3c5"; } + +.fa.fa-pencil-square-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-pencil-square-o:before { + content: "\f044"; } + +.fa.fa-share-square-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-share-square-o:before { + content: "\f14d"; } + +.fa.fa-check-square-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-check-square-o:before { + content: "\f14a"; } + +.fa.fa-arrows:before { + content: "\f0b2"; } + +.fa.fa-times-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-times-circle-o:before { + content: "\f057"; } + +.fa.fa-check-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-check-circle-o:before { + content: "\f058"; } + +.fa.fa-mail-forward:before { + content: "\f064"; } + +.fa.fa-expand:before { + content: "\f424"; } + +.fa.fa-compress:before { + content: "\f422"; } + +.fa.fa-eye { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-eye-slash { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-warning:before { + content: "\f071"; } + +.fa.fa-calendar:before { + content: "\f073"; } + +.fa.fa-arrows-v:before { + content: "\f338"; } + +.fa.fa-arrows-h:before { + content: "\f337"; } + +.fa.fa-bar-chart { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-bar-chart:before { + content: "\f080"; } + +.fa.fa-bar-chart-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-bar-chart-o:before { + content: "\f080"; } + +.fa.fa-twitter-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-facebook-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-gears:before { + content: "\f085"; } + +.fa.fa-thumbs-o-up { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-thumbs-o-up:before { + content: "\f164"; } + +.fa.fa-thumbs-o-down { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-thumbs-o-down:before { + content: "\f165"; } + +.fa.fa-heart-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-heart-o:before { + content: "\f004"; } + +.fa.fa-sign-out:before { + content: "\f2f5"; } + +.fa.fa-linkedin-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-linkedin-square:before { + content: "\f08c"; } + +.fa.fa-thumb-tack:before { + content: "\f08d"; } + +.fa.fa-external-link:before { + content: "\f35d"; } + +.fa.fa-sign-in:before { + content: "\f2f6"; } + +.fa.fa-github-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-lemon-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-lemon-o:before { + content: "\f094"; } + +.fa.fa-square-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-square-o:before { + content: "\f0c8"; } + +.fa.fa-bookmark-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-bookmark-o:before { + content: "\f02e"; } + +.fa.fa-twitter { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-facebook { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-facebook:before { + content: "\f39e"; } + +.fa.fa-facebook-f { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-facebook-f:before { + content: "\f39e"; } + +.fa.fa-github { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-credit-card { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-feed:before { + content: "\f09e"; } + +.fa.fa-hdd-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-hdd-o:before { + content: "\f0a0"; } + +.fa.fa-hand-o-right { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-hand-o-right:before { + content: "\f0a4"; } + +.fa.fa-hand-o-left { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-hand-o-left:before { + content: "\f0a5"; } + +.fa.fa-hand-o-up { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-hand-o-up:before { + content: "\f0a6"; } + +.fa.fa-hand-o-down { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-hand-o-down:before { + content: "\f0a7"; } + +.fa.fa-arrows-alt:before { + content: "\f31e"; } + +.fa.fa-group:before { + content: "\f0c0"; } + +.fa.fa-chain:before { + content: "\f0c1"; } + +.fa.fa-scissors:before { + content: "\f0c4"; } + +.fa.fa-files-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-files-o:before { + content: "\f0c5"; } + +.fa.fa-floppy-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-floppy-o:before { + content: "\f0c7"; } + +.fa.fa-navicon:before { + content: "\f0c9"; } + +.fa.fa-reorder:before { + content: "\f0c9"; } + +.fa.fa-pinterest { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-pinterest-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-google-plus-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-google-plus { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-google-plus:before { + content: "\f0d5"; } + +.fa.fa-money { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-money:before { + content: "\f3d1"; } + +.fa.fa-unsorted:before { + content: "\f0dc"; } + +.fa.fa-sort-desc:before { + content: "\f0dd"; } + +.fa.fa-sort-asc:before { + content: "\f0de"; } + +.fa.fa-linkedin { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-linkedin:before { + content: "\f0e1"; } + +.fa.fa-rotate-left:before { + content: "\f0e2"; } + +.fa.fa-legal:before { + content: "\f0e3"; } + +.fa.fa-tachometer:before { + content: "\f3fd"; } + +.fa.fa-dashboard:before { + content: "\f3fd"; } + +.fa.fa-comment-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-comment-o:before { + content: "\f075"; } + +.fa.fa-comments-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-comments-o:before { + content: "\f086"; } + +.fa.fa-flash:before { + content: "\f0e7"; } + +.fa.fa-clipboard { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-paste { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-paste:before { + content: "\f328"; } + +.fa.fa-lightbulb-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-lightbulb-o:before { + content: "\f0eb"; } + +.fa.fa-exchange:before { + content: "\f362"; } + +.fa.fa-cloud-download:before { + content: "\f381"; } + +.fa.fa-cloud-upload:before { + content: "\f382"; } + +.fa.fa-bell-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-bell-o:before { + content: "\f0f3"; } + +.fa.fa-cutlery:before { + content: "\f2e7"; } + +.fa.fa-file-text-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-file-text-o:before { + content: "\f15c"; } + +.fa.fa-building-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-building-o:before { + content: "\f1ad"; } + +.fa.fa-hospital-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-hospital-o:before { + content: "\f0f8"; } + +.fa.fa-tablet:before { + content: "\f3fa"; } + +.fa.fa-mobile:before { + content: "\f3cd"; } + +.fa.fa-mobile-phone:before { + content: "\f3cd"; } + +.fa.fa-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-circle-o:before { + content: "\f111"; } + +.fa.fa-mail-reply:before { + content: "\f3e5"; } + +.fa.fa-github-alt { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-folder-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-folder-o:before { + content: "\f07b"; } + +.fa.fa-folder-open-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-folder-open-o:before { + content: "\f07c"; } + +.fa.fa-smile-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-smile-o:before { + content: "\f118"; } + +.fa.fa-frown-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-frown-o:before { + content: "\f119"; } + +.fa.fa-meh-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-meh-o:before { + content: "\f11a"; } + +.fa.fa-keyboard-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-keyboard-o:before { + content: "\f11c"; } + +.fa.fa-flag-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-flag-o:before { + content: "\f024"; } + +.fa.fa-mail-reply-all:before { + content: "\f122"; } + +.fa.fa-star-half-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-star-half-o:before { + content: "\f089"; } + +.fa.fa-star-half-empty { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-star-half-empty:before { + content: "\f089"; } + +.fa.fa-star-half-full { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-star-half-full:before { + content: "\f089"; } + +.fa.fa-code-fork:before { + content: "\f126"; } + +.fa.fa-chain-broken:before { + content: "\f127"; } + +.fa.fa-shield:before { + content: "\f3ed"; } + +.fa.fa-calendar-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-calendar-o:before { + content: "\f133"; } + +.fa.fa-maxcdn { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-html5 { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-css3 { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-ticket:before { + content: "\f3ff"; } + +.fa.fa-minus-square-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-minus-square-o:before { + content: "\f146"; } + +.fa.fa-level-up:before { + content: "\f3bf"; } + +.fa.fa-level-down:before { + content: "\f3be"; } + +.fa.fa-pencil-square:before { + content: "\f14b"; } + +.fa.fa-external-link-square:before { + content: "\f360"; } + +.fa.fa-compass { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-caret-square-o-down { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-caret-square-o-down:before { + content: "\f150"; } + +.fa.fa-toggle-down { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-toggle-down:before { + content: "\f150"; } + +.fa.fa-caret-square-o-up { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-caret-square-o-up:before { + content: "\f151"; } + +.fa.fa-toggle-up { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-toggle-up:before { + content: "\f151"; } + +.fa.fa-caret-square-o-right { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-caret-square-o-right:before { + content: "\f152"; } + +.fa.fa-toggle-right { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-toggle-right:before { + content: "\f152"; } + +.fa.fa-eur:before { + content: "\f153"; } + +.fa.fa-euro:before { + content: "\f153"; } + +.fa.fa-gbp:before { + content: "\f154"; } + +.fa.fa-usd:before { + content: "\f155"; } + +.fa.fa-dollar:before { + content: "\f155"; } + +.fa.fa-inr:before { + content: "\f156"; } + +.fa.fa-rupee:before { + content: "\f156"; } + +.fa.fa-jpy:before { + content: "\f157"; } + +.fa.fa-cny:before { + content: "\f157"; } + +.fa.fa-rmb:before { + content: "\f157"; } + +.fa.fa-yen:before { + content: "\f157"; } + +.fa.fa-rub:before { + content: "\f158"; } + +.fa.fa-ruble:before { + content: "\f158"; } + +.fa.fa-rouble:before { + content: "\f158"; } + +.fa.fa-krw:before { + content: "\f159"; } + +.fa.fa-won:before { + content: "\f159"; } + +.fa.fa-btc { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-bitcoin { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-bitcoin:before { + content: "\f15a"; } + +.fa.fa-file-text:before { + content: "\f15c"; } + +.fa.fa-sort-alpha-asc:before { + content: "\f15d"; } + +.fa.fa-sort-alpha-desc:before { + content: "\f881"; } + +.fa.fa-sort-amount-asc:before { + content: "\f160"; } + +.fa.fa-sort-amount-desc:before { + content: "\f884"; } + +.fa.fa-sort-numeric-asc:before { + content: "\f162"; } + +.fa.fa-sort-numeric-desc:before { + content: "\f886"; } + +.fa.fa-youtube-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-youtube { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-xing { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-xing-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-youtube-play { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-youtube-play:before { + content: "\f167"; } + +.fa.fa-dropbox { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-stack-overflow { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-instagram { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-flickr { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-adn { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-bitbucket { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-bitbucket-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-bitbucket-square:before { + content: "\f171"; } + +.fa.fa-tumblr { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-tumblr-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-long-arrow-down:before { + content: "\f309"; } + +.fa.fa-long-arrow-up:before { + content: "\f30c"; } + +.fa.fa-long-arrow-left:before { + content: "\f30a"; } + +.fa.fa-long-arrow-right:before { + content: "\f30b"; } + +.fa.fa-apple { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-windows { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-android { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-linux { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-dribbble { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-skype { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-foursquare { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-trello { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-gratipay { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-gittip { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-gittip:before { + content: "\f184"; } + +.fa.fa-sun-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-sun-o:before { + content: "\f185"; } + +.fa.fa-moon-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-moon-o:before { + content: "\f186"; } + +.fa.fa-vk { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-weibo { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-renren { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-pagelines { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-stack-exchange { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-arrow-circle-o-right { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-arrow-circle-o-right:before { + content: "\f35a"; } + +.fa.fa-arrow-circle-o-left { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-arrow-circle-o-left:before { + content: "\f359"; } + +.fa.fa-caret-square-o-left { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-caret-square-o-left:before { + content: "\f191"; } + +.fa.fa-toggle-left { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-toggle-left:before { + content: "\f191"; } + +.fa.fa-dot-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-dot-circle-o:before { + content: "\f192"; } + +.fa.fa-vimeo-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-try:before { + content: "\f195"; } + +.fa.fa-turkish-lira:before { + content: "\f195"; } + +.fa.fa-plus-square-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-plus-square-o:before { + content: "\f0fe"; } + +.fa.fa-slack { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-wordpress { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-openid { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-institution:before { + content: "\f19c"; } + +.fa.fa-bank:before { + content: "\f19c"; } + +.fa.fa-mortar-board:before { + content: "\f19d"; } + +.fa.fa-yahoo { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-google { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-reddit { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-reddit-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-stumbleupon-circle { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-stumbleupon { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-delicious { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-digg { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-pied-piper-pp { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-pied-piper-alt { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-drupal { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-joomla { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-spoon:before { + content: "\f2e5"; } + +.fa.fa-behance { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-behance-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-steam { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-steam-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-automobile:before { + content: "\f1b9"; } + +.fa.fa-envelope-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-envelope-o:before { + content: "\f0e0"; } + +.fa.fa-spotify { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-deviantart { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-soundcloud { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-file-pdf-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-file-pdf-o:before { + content: "\f1c1"; } + +.fa.fa-file-word-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-file-word-o:before { + content: "\f1c2"; } + +.fa.fa-file-excel-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-file-excel-o:before { + content: "\f1c3"; } + +.fa.fa-file-powerpoint-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-file-powerpoint-o:before { + content: "\f1c4"; } + +.fa.fa-file-image-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-file-image-o:before { + content: "\f1c5"; } + +.fa.fa-file-photo-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-file-photo-o:before { + content: "\f1c5"; } + +.fa.fa-file-picture-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-file-picture-o:before { + content: "\f1c5"; } + +.fa.fa-file-archive-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-file-archive-o:before { + content: "\f1c6"; } + +.fa.fa-file-zip-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-file-zip-o:before { + content: "\f1c6"; } + +.fa.fa-file-audio-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-file-audio-o:before { + content: "\f1c7"; } + +.fa.fa-file-sound-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-file-sound-o:before { + content: "\f1c7"; } + +.fa.fa-file-video-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-file-video-o:before { + content: "\f1c8"; } + +.fa.fa-file-movie-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-file-movie-o:before { + content: "\f1c8"; } + +.fa.fa-file-code-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-file-code-o:before { + content: "\f1c9"; } + +.fa.fa-vine { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-codepen { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-jsfiddle { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-life-ring { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-life-bouy { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-life-bouy:before { + content: "\f1cd"; } + +.fa.fa-life-buoy { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-life-buoy:before { + content: "\f1cd"; } + +.fa.fa-life-saver { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-life-saver:before { + content: "\f1cd"; } + +.fa.fa-support { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-support:before { + content: "\f1cd"; } + +.fa.fa-circle-o-notch:before { + content: "\f1ce"; } + +.fa.fa-rebel { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-ra { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-ra:before { + content: "\f1d0"; } + +.fa.fa-resistance { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-resistance:before { + content: "\f1d0"; } + +.fa.fa-empire { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-ge { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-ge:before { + content: "\f1d1"; } + +.fa.fa-git-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-git { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-hacker-news { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-y-combinator-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-y-combinator-square:before { + content: "\f1d4"; } + +.fa.fa-yc-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-yc-square:before { + content: "\f1d4"; } + +.fa.fa-tencent-weibo { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-qq { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-weixin { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-wechat { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-wechat:before { + content: "\f1d7"; } + +.fa.fa-send:before { + content: "\f1d8"; } + +.fa.fa-paper-plane-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-paper-plane-o:before { + content: "\f1d8"; } + +.fa.fa-send-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-send-o:before { + content: "\f1d8"; } + +.fa.fa-circle-thin { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-circle-thin:before { + content: "\f111"; } + +.fa.fa-header:before { + content: "\f1dc"; } + +.fa.fa-sliders:before { + content: "\f1de"; } + +.fa.fa-futbol-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-futbol-o:before { + content: "\f1e3"; } + +.fa.fa-soccer-ball-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-soccer-ball-o:before { + content: "\f1e3"; } + +.fa.fa-slideshare { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-twitch { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-yelp { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-newspaper-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-newspaper-o:before { + content: "\f1ea"; } + +.fa.fa-paypal { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-google-wallet { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-cc-visa { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-cc-mastercard { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-cc-discover { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-cc-amex { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-cc-paypal { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-cc-stripe { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-bell-slash-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-bell-slash-o:before { + content: "\f1f6"; } + +.fa.fa-trash:before { + content: "\f2ed"; } + +.fa.fa-copyright { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-eyedropper:before { + content: "\f1fb"; } + +.fa.fa-area-chart:before { + content: "\f1fe"; } + +.fa.fa-pie-chart:before { + content: "\f200"; } + +.fa.fa-line-chart:before { + content: "\f201"; } + +.fa.fa-lastfm { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-lastfm-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-ioxhost { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-angellist { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-cc { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-cc:before { + content: "\f20a"; } + +.fa.fa-ils:before { + content: "\f20b"; } + +.fa.fa-shekel:before { + content: "\f20b"; } + +.fa.fa-sheqel:before { + content: "\f20b"; } + +.fa.fa-meanpath { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-meanpath:before { + content: "\f2b4"; } + +.fa.fa-buysellads { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-connectdevelop { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-dashcube { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-forumbee { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-leanpub { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-sellsy { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-shirtsinbulk { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-simplybuilt { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-skyatlas { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-diamond { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-diamond:before { + content: "\f3a5"; } + +.fa.fa-intersex:before { + content: "\f224"; } + +.fa.fa-facebook-official { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-facebook-official:before { + content: "\f09a"; } + +.fa.fa-pinterest-p { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-whatsapp { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-hotel:before { + content: "\f236"; } + +.fa.fa-viacoin { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-medium { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-y-combinator { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-yc { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-yc:before { + content: "\f23b"; } + +.fa.fa-optin-monster { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-opencart { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-expeditedssl { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-battery-4:before { + content: "\f240"; } + +.fa.fa-battery:before { + content: "\f240"; } + +.fa.fa-battery-3:before { + content: "\f241"; } + +.fa.fa-battery-2:before { + content: "\f242"; } + +.fa.fa-battery-1:before { + content: "\f243"; } + +.fa.fa-battery-0:before { + content: "\f244"; } + +.fa.fa-object-group { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-object-ungroup { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-sticky-note-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-sticky-note-o:before { + content: "\f249"; } + +.fa.fa-cc-jcb { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-cc-diners-club { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-clone { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-hourglass-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-hourglass-o:before { + content: "\f254"; } + +.fa.fa-hourglass-1:before { + content: "\f251"; } + +.fa.fa-hourglass-2:before { + content: "\f252"; } + +.fa.fa-hourglass-3:before { + content: "\f253"; } + +.fa.fa-hand-rock-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-hand-rock-o:before { + content: "\f255"; } + +.fa.fa-hand-grab-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-hand-grab-o:before { + content: "\f255"; } + +.fa.fa-hand-paper-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-hand-paper-o:before { + content: "\f256"; } + +.fa.fa-hand-stop-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-hand-stop-o:before { + content: "\f256"; } + +.fa.fa-hand-scissors-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-hand-scissors-o:before { + content: "\f257"; } + +.fa.fa-hand-lizard-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-hand-lizard-o:before { + content: "\f258"; } + +.fa.fa-hand-spock-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-hand-spock-o:before { + content: "\f259"; } + +.fa.fa-hand-pointer-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-hand-pointer-o:before { + content: "\f25a"; } + +.fa.fa-hand-peace-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-hand-peace-o:before { + content: "\f25b"; } + +.fa.fa-registered { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-creative-commons { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-gg { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-gg-circle { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-tripadvisor { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-odnoklassniki { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-odnoklassniki-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-get-pocket { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-wikipedia-w { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-safari { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-chrome { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-firefox { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-opera { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-internet-explorer { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-television:before { + content: "\f26c"; } + +.fa.fa-contao { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-500px { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-amazon { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-calendar-plus-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-calendar-plus-o:before { + content: "\f271"; } + +.fa.fa-calendar-minus-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-calendar-minus-o:before { + content: "\f272"; } + +.fa.fa-calendar-times-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-calendar-times-o:before { + content: "\f273"; } + +.fa.fa-calendar-check-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-calendar-check-o:before { + content: "\f274"; } + +.fa.fa-map-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-map-o:before { + content: "\f279"; } + +.fa.fa-commenting:before { + content: "\f4ad"; } + +.fa.fa-commenting-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-commenting-o:before { + content: "\f4ad"; } + +.fa.fa-houzz { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-vimeo { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-vimeo:before { + content: "\f27d"; } + +.fa.fa-black-tie { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-fonticons { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-reddit-alien { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-edge { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-credit-card-alt:before { + content: "\f09d"; } + +.fa.fa-codiepie { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-modx { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-fort-awesome { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-usb { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-product-hunt { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-mixcloud { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-scribd { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-pause-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-pause-circle-o:before { + content: "\f28b"; } + +.fa.fa-stop-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-stop-circle-o:before { + content: "\f28d"; } + +.fa.fa-bluetooth { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-bluetooth-b { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-gitlab { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-wpbeginner { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-wpforms { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-envira { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-wheelchair-alt { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-wheelchair-alt:before { + content: "\f368"; } + +.fa.fa-question-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-question-circle-o:before { + content: "\f059"; } + +.fa.fa-volume-control-phone:before { + content: "\f2a0"; } + +.fa.fa-asl-interpreting:before { + content: "\f2a3"; } + +.fa.fa-deafness:before { + content: "\f2a4"; } + +.fa.fa-hard-of-hearing:before { + content: "\f2a4"; } + +.fa.fa-glide { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-glide-g { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-signing:before { + content: "\f2a7"; } + +.fa.fa-viadeo { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-viadeo-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-snapchat { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-snapchat-ghost { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-snapchat-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-pied-piper { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-first-order { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-yoast { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-themeisle { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-google-plus-official { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-google-plus-official:before { + content: "\f2b3"; } + +.fa.fa-google-plus-circle { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-google-plus-circle:before { + content: "\f2b3"; } + +.fa.fa-font-awesome { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-fa { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-fa:before { + content: "\f2b4"; } + +.fa.fa-handshake-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-handshake-o:before { + content: "\f2b5"; } + +.fa.fa-envelope-open-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-envelope-open-o:before { + content: "\f2b6"; } + +.fa.fa-linode { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-address-book-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-address-book-o:before { + content: "\f2b9"; } + +.fa.fa-vcard:before { + content: "\f2bb"; } + +.fa.fa-address-card-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-address-card-o:before { + content: "\f2bb"; } + +.fa.fa-vcard-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-vcard-o:before { + content: "\f2bb"; } + +.fa.fa-user-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-user-circle-o:before { + content: "\f2bd"; } + +.fa.fa-user-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-user-o:before { + content: "\f007"; } + +.fa.fa-id-badge { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-drivers-license:before { + content: "\f2c2"; } + +.fa.fa-id-card-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-id-card-o:before { + content: "\f2c2"; } + +.fa.fa-drivers-license-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-drivers-license-o:before { + content: "\f2c2"; } + +.fa.fa-quora { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-free-code-camp { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-telegram { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-thermometer-4:before { + content: "\f2c7"; } + +.fa.fa-thermometer:before { + content: "\f2c7"; } + +.fa.fa-thermometer-3:before { + content: "\f2c8"; } + +.fa.fa-thermometer-2:before { + content: "\f2c9"; } + +.fa.fa-thermometer-1:before { + content: "\f2ca"; } + +.fa.fa-thermometer-0:before { + content: "\f2cb"; } + +.fa.fa-bathtub:before { + content: "\f2cd"; } + +.fa.fa-s15:before { + content: "\f2cd"; } + +.fa.fa-window-maximize { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-window-restore { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-times-rectangle:before { + content: "\f410"; } + +.fa.fa-window-close-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-window-close-o:before { + content: "\f410"; } + +.fa.fa-times-rectangle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-times-rectangle-o:before { + content: "\f410"; } + +.fa.fa-bandcamp { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-grav { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-etsy { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-imdb { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-ravelry { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-eercast { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-eercast:before { + content: "\f2da"; } + +.fa.fa-snowflake-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + +.fa.fa-snowflake-o:before { + content: "\f2dc"; } + +.fa.fa-superpowers { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-wpexplorer { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.fa.fa-cab:before { + content: "\f1ba"; } diff --git a/src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.eot b/src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.eot new file mode 100644 index 0000000000000000000000000000000000000000..8745c3eb06a1307b20b7c39bbe7f8dd517911e47 GIT binary patch literal 134878 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%0AOvHz7XWDl@-ydl=L^4Py5L( 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 + + + + +Created by FontForge 20190801 at Thu Jun 18 14:52:21 2020 + By Robert Madole +Copyright (c) Font Awesome + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf b/src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ef792f4244b8ca1d096741f5b43a74c1bd36df8c GIT binary patch literal 134572 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%0A!*q|pB=^x9NFeid%?3b(xc+iHsc8`yF_^%j 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 literal 0 HcmV?d00001 diff --git a/src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2 b/src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1c640823badc78bb0a2f1b31f9eb6d3d8b29352d GIT binary patch literal 77444 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 YJa&H6=2|tp#46fOZwi&E5xPRu)e-9ZK<~m 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 literal 0 HcmV?d00001 diff --git a/src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.eot b/src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.eot new file mode 100644 index 0000000000000000000000000000000000000000..1de96d4b92a43a0cfe0598d50446038e6e81a751 GIT binary patch literal 34390 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 + + + + +Created by FontForge 20190801 at Thu Jun 18 14:52:21 2020 + By Robert Madole +Copyright (c) Font Awesome + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf b/src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..3c0cf40e0e9e70622f18fc4fa8a7b8f8b5306d5b GIT binary patch literal 34092 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 literal 0 HcmV?d00001 diff --git a/src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 b/src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..585a29db5ab907a9d6acee028d75f2534e286501 GIT binary patch literal 13596 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 literal 0 HcmV?d00001 diff --git a/src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.eot b/src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.eot new file mode 100644 index 0000000000000000000000000000000000000000..5318231d1b25c71555cc10e17577a8be256cd292 GIT binary patch literal 204866 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

    ?37MH!0WI z0j&U(dp&T!!9~i}RixaAbT>Xr%1v8H`IrXi!vWxOz%f#8zKxVyPzU&(ax2`o4wC{t zr+~*PpF+K#M%q0E{or9z z_9D;Tep0^r1SwyCg_M0`q&$pzAK5|5H;{He>i%XADc?f6Z^QrX*GM^VfRyhfNqKZT zDc^9no0r80!Qqh3R6^N!@@K2vk_=EliWr5vM44(Fu=28(3gq#&Mt#C)%9O0}x z(AwT1UT`?vhP$(;v$M|cA1BM9yTuO_gs1z8s;k?p?T;;c!*mFTC(i~RK;uu!Itr*9 zyXZ*BC!7^cqGq0OR&q^@zl!Q=n%i4zDx4wlrm7aJA$6VF*?rFS*YCT&!S7Mux@_69 z%a%D1T&yC-<8MI3_2+bVsw%>lT?X{W-yZK*Y+?_wjd`iCYH9CikCcgy`9eJ3!evDx z&L*KcYZeIf@B$%h?mG7=w}&+2vI1KyaOfn;%k}BPAl_tSqlUr|>XFnma^Twz#HaMR6$I7b;%S z5vW{VnUamYd_~9fP;qf+ddCXCpUZWdg^MIL(HuGrml4jV%W-+(R{A{JfDXo>){C}Q zkV%Osx8CUdHVo?=5f04}&GSUL_0FU-L(M!>-43gaso~N02uHJI-JD*$?lBCHORLk; zDLh;mpGa^}5|1fA;n$wkvcFAJV&N4@!;{|cF+!RaVlX_SXTq00EKA&&^E}k6X}#J3 z`MfPB+)M)%7sja{G}}i$Dnp+xKrdpR@gSiYa*!$~ds}SWlM`WWj?7qEV=L-X+)#cj z&Nw{zW&nqZx@@TEGdz9loAgMJWrL6{6D7w!i))PH)I}el3vr?37P_4%h#8#0n9+-d z43X;(cT7RMGGr)|5?HjE32RZOWT>9fPIZdEdP@2`4bR2g5Ii1Lz0OP6jYn)EIA&K} zj!gLTR$7DmDw9#%nhnhafdHP91<8llj`24<{CEqMm@c!=WQ4=*v|EAOtvA9CX7YG) z0x=euvNmMndAd2@K_e?L>!@Q&k5BEd-~^5ETyF`Q{l!dM@&FFYxWNzFqEq5?`Y*?M zBcmq!;ydgTMf~I*v0Q)h82J+suV-3he2oL8Pwbs&XgV?B7JIWv4o-xk{a8D&7sr-^ zLTGhuP3rD#k}6SFG_ypga-BfI?OX)mOS%Ja9atdfJ!PF0$s7zV1xS=(2&5AUOI8GyD0PFSRcPwG+)V)2MdU`eq z%1NemreB=8qODUy&vU|_92~t=O*1SUP2B!9oc3xsZhe1Tfc5*~ppZKLBf&PW({PoI zS5{DXWkn-8XFf(7i)+NG8n$pK($d`C)>>2BC>DtMLY>Tb!eU3fbLaYnS1l}TjJd-O zzum6-3j&@C7oU1jRZO+p{f_YYh9}0vhKKlc#pUzX@9es2(X{3BqfUpr*p=tdN-Ao@ zr(Sg7X|<>2JMvt`ZpTZUe1IQ(Dk9eDpArM&Ntz2S8006_sX`WUs*swTwOEU4YWZCY(WIso^RNRFPnl@%Xlw0gkAkN} zqWq3Vd;&Q$BGzBrwm^;3RbN!$?r8T^6is(KYXUa+benCujB!urm=5A-OZJKH?h-x!Eil!-^nOd~Ku1;%nI|>3-fdU!r$bUz)$6iobIRgbWb)ik;<5;s! z!TMUtZIX;*f^RnR66Ks&Y^xz4LYk{&p|K+4XtVf@6nlA;MZVo-Kj>CBsctwD+=Fn6 zSM0U|yTf7o8v_4kvpektHv8K~g?_H;=ya%}K~Z+^QQaPAFXAyWPLEsNGZV>dWe(fZ zit@D0QO3EBc)d%PI8@c~84L-=#5Mjb=EOnBaV0plYK}-j*#Y`*!n~-l@W<3>Y3}&K z^E-Dwzf-KVJ7>F9jI3{=-RZK6g9zOD{9d>n(|0ho_XagoOt$fVqJmQ)%T>tL93ze; zyjB)!h_DK=ts@9oLk&g1oZ8!JAv&W|qz4^@s-w;Gu@Nw_2&a0!3%8;TPfhepzC2fWZOEYD)6pTJJ1zQx3dud*9?Ejg}~Qozp%tF62T}s z(;f}BHaJ`^M}xZG;c~>CE|)V7hm@OAQq~VsJua}$fdnGuCOm*64I;GmGOl`?N1QJWkzJpG+i@T)Y79 zd{zYdFsBWh$y^aoDx$TmGm%sbGwD6c4{>qi z?Aj&k*Donv6tdeL_6nQbm^Py^wD9V#+b=0wa!LpzEK*kDCWq>XHLkyXePNyrDIHFm zo*(dlt6p+@bXxQS!l5!PXZC>8X(h1a3gxOd!N4s#!BuVxg~_vD~D*!nZ-esU_s14#SX@a%P$V)ufAz@&-A&| z`-?*<_T$mLVD;(+-QA_rrs^OLAypiZ%)PMQ>@TceS}C5!ZP&e|o=P^R6~LJ3NM*KW~YfWnM_H@63(v3Sr4^ z#G2gR3h8LR$Sv<^xS$~H3b`Hba2St}*fP2Npf)W&O>;N{L5J3;If4P~J0zcdUP*{= z0pD7h4=wAv)LT7K?|j7+%;rO21u760+B@bet&KvW6OE`7N#6xU(KUC`qPeb+*X}NF zDx5XbZTE)iW=wMju@bn0B|cwC&~5jGT+=R?+LkGObzALCpS!8n>F|dfk$FpN=WHl< zg#3=Dd(SFxI$Z9cQ>$udY^c(l!GObA(EctBhdeai5Bl$eWUP`Gl3oy6uuAknJ<&YT z60Qxmv~{$ED?8dM!=lafSHll)CA|EvvKEj^CXy*U()*tU}A_YLC zbSGoIsaP@=i;+~eV0}wYs=o+x(Zrz%yrl!H9`pq>11&hGNT!qj6UgQJ0erOpy(if|Z)q|swZ#XELx)4gQNuWF)Zw+QuDH0a_|V}{ zF+6n$#Onw`it9j^=AJ5v^^VJ&Hd)&z%a3M6PzQEYwU`i1SWCE4F_fu6*7vlmMrr0s zA1N$+W+tQXYNkS9RBYTXYkdG1JW{l@=n$g=6igY!;*pim-E;yA@Ualf!lsTb%k-h& z1W!lHv;5t32WvXY<+?0VZkx>wk>g+;be^Ic5=F{+)S3OgZL_8Ss0V}kDoypadR<=d zKcq|4bsC-zhn&ukbFqAmQ!ExN3`#ze65K!7u!OT~Pc4>$Sg1Ia5Jx1#j&I7eL&{Q2 zTXAlO$Vd>p1C!E|#iClkm9dPm0AXt@4_CLz@XD|~Bk!k*sgkjojH~YIqM$B< zy1UVx7za`aNr{?}VL&@X)kP4Sd%02AiEJvW?$d)vr>8&L+uM(jcwaY?86i2={lKq} z3L&XZ2XinlLbw|Mco zn%3^t)@~6`_j3yFm~yw_3K-?ZFL3nYdpR09@+>cyf!@iig}geLq+DAGrLr9JiLl^& z!AM1ewJo(`KMUPSeuVOO=ZCVs=&iOqcif$4yY=<8O))95%SR$H;TD&jI|cB;Xsw)8bwMx4Kiyy6SPo*5>!?To2dqFWTh|NQ zI~$*ahd^5v^fYm8DSk}2#SY+*PUSS!YBtX;+2_ha)H8#Yv;z!6zyiLBk{^tRAM^!QK{}1u%=`CLJt-hL-$Yj~sd`lJU>9AG3LxoC-m z>Zs$Cc#PA8`(Ntc@Ra_`;3-)%Q_7ThIj&|GPIROA^3?t|`@Vky;najvBqw@$Jg3*+ z72hfQgO-2S|6cu@O9i>^oIXxYp#1JmsXrgU`mrNNU&s1$v(GZ@vn4piZ_#iz-Z7<* zr}p{OcuXs|ns~2==$8YN;wMN0&-6RoJrntvjmlJb^i4STPc)uW#JC(hkRsy*4{~JJ zFE7pl>mfB_PipDWCAm+<+#0=X%cu5~<6Xq&*-oIDdvk*?hK zm`!nUv+kTgH@6WJ^C>xzz+5A+;3XjI`&d2(U9plNBjB_+GP}e!(IbU6Q(Ae|Us37% zut-9{$%-#E-au%aLILlx`%x}rWL`*Rxlu??G!1MzE0X5uA=Gl5=KFB=;S-b93tw(5 z$FjdcBv-jy+dEyZZc|D!s}$XcD{uVErc5MP$MV6GQtpJ!K(x_`m5Q}C1`FZ)^5+#+ zcy-&RzD+jWTTwVKUoC8}TvgQ;sVE5aY}(WlD5!|ERjsOo$eOG7)M1Iv#XzR(kP?kc zDm2$G-?(x4YN_%}Y}~!klo?W@7w72#D#t#x6h{THFu>`7g0mv%kRS}P7rT6%Aw1`A zZzzYts(eP9U!4)1kOKO&G*s!#wyK`-8B%MHTQ#q$->_QuP?~%fI zrAUKB+JQzx=dEDdy+CR2kSjKpY8E-7HfzDo8O?Gjo79Uyxwzw8RegDl)9VzTm({O& zy;Z7;kScFX+h(tG_%iwwQR;F!>uiocL+rYOvv>sZta(}WLu*qh^HgeD`dbcLozv;M zUy8E5p<_W7#utM=`~4_-}d(6rt6 zp~!9gNT*Qly|?n?ZcWO1X4zi0H0dzK94@pr*R5$z zo)XVu@6MJWs>3NsKPvX-=coIkGh4!cHQJ3MMp3coD=jd%pIGMnJ>;A($#sIFOe}JT zVNS^EjAlx1FC*a{=;Y!MKZNyWPg$VUO$hmPUM4&D`Vw3KQPh?y>mpx z=Jf8|A(iE3hjcQ{<&>W(8l{S4F42iy=~Wihi7eG&OvXpC=lQYhGuW|IV@79}9ZV(I z1Y~6UN|C~@Gs)XYfoFPCSwVQeG2Pf7E+|VRIG7(Tv!W@#KNZFKB5*7k|C6W|_wc#0 zS&U_XW9cPYE1!lLP(&5#J@?=df#+%0&!1MM3qc&GBFWUUs^u9jpH4~>9`l@9l)Ot} z-*~sea(N$iS=lom)(Bf#;Yw3WY-tr*nyr(c?b;d~3a`sMvS>tsoHWzBUsDgi@l}rc`sgUdLC_9;F+dr(>x0r5HQID-Bz%$AEAwB zw5XFZS)T8_OD3~~>o_aueNvz5(CcRV)ZQpm(QYpl9l~i*?ALm?w+c~{-idd5yv8EZ zaId!}J>FW3mk_PoZ?G!?FG+!y;FQ*!{~0@#2o4&+s?ZH!T~N^rCCZFMat<{LzOqG> z@tH;X_ghq9GdT)JGrPH3+9+HtS&Upi{)9D6))BPKUotAx1tPN-EQhN72UDv^|6U%8 zl%Wc7#=C;H03XA>M=|&3)E#l5c{z2X4UX~Op?ub1 zQFYe-#$58taQnqP<_oYH<$do_!5?xenA(4GEU=Ehg0s-C@M){5WyZQ@*r1qoqHiD% z+CaEiFvnc3{aW$NMa@y&9`;toOPiPXv=(bZLErE8=)P6LTQEIQuNkg_vl|+^rWLqF zk57kmn!5+~L)L7jg}7OYGNo9Ac_Qh*n%7PqcR6n=E83zw7q|n#JNR(AMdc{ox5#`g z&0)i{Rnu02yhTjg>M`J0iO&{Tp~td8BI|mW$ZXJi;Ax#USycifQ?RjcLNFvR3u6TIy0WcQ!ow`K=r z6^dpbqf5B+Rl**}*J8mcsofCM>Q%SH5p;xHpRozUTjMo^ z?K7?rLLBbTeQqL3^{SKOu5tw36>f)f)q~DRg@-m3D^hp zL93$Uv*ELt@>_7=g%NV#1s-SVQ8K+dM_|hZ6N5;U5A*p1zr2O55ny2=?GboWhIJyA z!hi~b42JX;gQvBsw6UnDv9zkylYZ@-%JMvKo;UitKr|ZA0HC9y>Ypn`}+KP}Ii7TRNRkgI+{=SmH{;-z$0x#w`pu~!fGv1E*c2iqk zp)$JYBAlT%D;1@8f3)+wqPC!;Am8h7#}a4WcpC2mzxq)Hc5_WD@*P3(XxACHJ_aL} z>V`(m>nYH}P4nXw*fFj&oIRVGrnw~FPGSFbNbX8Q*=?zL@D0Nq81ppRQD5Yx%9%4O zakSjwEv+srstFdB1fAhRPlec9+}zN7dJ`WhpD|0*0%sT1R2Kzeg~b)q=T-Z_k!%j>!P}8*^jaVOCz-uFQiy*6#D>e&n2Dc09WK z_}rB%x2#+_7pGAxX4y4=sMxLjO!cch7tC1ECf^tQW93|#XaFf@)#{qNIONytKm)kI z4*zDk4{xERJl{H^e7w(?w0A^H6$d&W3s+@DEfWXiLq3_45*Ahjpsm)jeIG1V)F>Ra zOg-T^C`Tl8y>(jkdAnggW<)Qw)h5LGPFn~DLH4)5Z8?&8Z5?5mLXU@+7%S(7+x<%v zNLsa>j<{`_=Yk%fUs!Tx^}Nd2$ml3=+Qg46$3@s zgGFu;iwPFG9rf#H3gK|tyWEaT1=Tj!9(3vIzS&OAwQ-|MbI#spb2)9UgJ>&M|JEG> zH#7(3psHDPDxHb{JOC$(mqBszqA)fV-X587HKf5F7;Mzpm(8A42cwYn*jBLn zm>rH|b`HYflT3rLW7_GLd>Xq`xr4-HGv^?*VVHEVXu0dM&X!Y_D|W~`fnw(@(T9sJ z!4{k1P{T7LvzDGC=^ZriOO&$@771l+Z4k^Z#Zt5}L{@r`Llx$u(6E!O|E1w>b_Chr z2_4bCXE%z+2d=_4r&z5zc5BkZp+cOo`G(Ca5av*u=QhJ)Qg!tB!eL*J&1utMZ6!Th zRY!xnd-I$*n@@AVtV?yY&S=Gt?aLrr(j3T^r}BP2C}m4ttj#rA8gUN3bGt3(z00Vp(y`~V-sr8Sl zes8Jad9|KP3Po}~NHdYlT*H(u$U%*00dHi=S&_+$D63REDzh#a6-rG!x2TLaKC0rk z2h%S*h3+*JXADZ?z%K%L7B61Rdy@4oU2%&~X@>2NU@XsD;H!+5mq+vc{(OGN0^)m2h$7O0sGnToooW!4}ybA1V(#r;wR7Yh|9kd5;$lKSu%j|0|6 zWMvz2KDexg7~(T`AW;x;iBRS(QOkYlO@^VeL+mh&^h!t_?o*3HeTlwM@x5F1V7|tW zPLT06nA*k6H@F(eNfw@&Gsu;waiV7=-Yrx7K!&G?NegJ#)OhPeYNEZEY5{S&bu{X7 zU_G|4wH``vI`GrDv%snH7Q}Gk4(Cc zQjArB?=+l_8HYY(rELbisI;s`W6-8b2S01DM)<%i(fF1;R>wmaG4=X2tzZw}6_yMJ z{d`;+I9kRVs@u8Q=@bd4TYcN6lz!Uj+$#+JKshCeV8Vk zH5Cf2UlQ==tKMqEQztEe)d$>7XU3PT-!ILEgn!9;Tal{{latB)43GLiQE~jtru7bK zcmy(W;-2LXlv~7qVog~{AE%x49Q_KUo;9|I!iBBv=fJKnYjq#Z+S-FyVOIxKAuVN0 z_G=^aA@@O$%7(CEB?@F~#u_xtGUJ~pk9WiF7K0?qP z;;yFQa=1KBzgO7p!s~Z>;5G6*4wv8mzOjXQHEtcSz9OKy%k@BMeyQfFsd0PD@=F4G z%%cX%ozC(+mnWv>l@yeE-8D6K)oDXAGq%EcL%<%Xj7Q`X;?Vyb6(J0_P1RJlq4~Ud zL61-Kxt*G7cl&HMpWE)#oo)nqf_YvaHoS;|k(X`0q2czMR{2Q46D+Lrc>-Z?g$skF z3d2?54F^2F+M=K*5GzA`QLWG84|^)yI^rELkFW5C{9b=eF%p!uMdFnaM?gLwoPvmM zxK+)WMTAk*Gl(E&5+Yz#QeNo7zAnfXj@UJ3~L#>SiU(tcwaL(M8 z`bHKcY++x`_4|ggy4xL%^(}J~8}jpvi#{u6b&IZTYYPe>T-ZYu(^|ULrngmu?4E*x z_6Ft36<&AVnKN1G3jU5eu_A_b2B&@^fVJCHqATqpHgWa!6t_sFyBE2mp`Ez#Y71|} zMO@CyXOA}{Zv%L3sbWoCOGCy|8n2s}{VY!g5l19iQwuvEnAAB{OhpCkVt#ynS#`XqT1&sARTstWMimDc z9@H;@S^CStsFy2EDBftWk}s!rcFw3!TO-}2g{AyQa?1rfrz?^X@{L30?k48gzJs|#sAFa*c{$s( zGf&4IwYr|E7b>35+^5)H9_@*iqmy&*QzRx|r*LiJj>W^pLV#<^eTwmu<4=Iv4#5Tu zr>`Wf;39^z2A$ogV6R&<-x)yF zYb;MV8p%CuY~1oS?G&MSp!RlFS1v1as5aYTu&>EWX*&6}EgCr5VjCJ)wyd(+DN5}g zMVx|D1Dtp6_f)s-f>~z#&e~fyS}t!dJ3`?i)?sYk~nwu z0+2c6ztZXTrR&jb)3ysF--ny%ye9>(lK06aU4lMMaRXIhz00~qm^YR@-xbJbe7Pp2 zZP)NiYTX)s3cZbLMSrN+zkfd}UnO^i<{ne{c^_EJb+caMchJ9oiTF-E?h&+GXBkmb zP1y!ri^W>_-h$kz=Z4vm)onF3ZNHL+mCkEdI^7<1^Pam+?@xEI_niB#UOa~rRewbF zxScDng~Ws1r@Ch|dw2ZQ^x96l>OQkCKnSe!@j=sFBPH{k8OrUgEw51d=nBpSx4tp=8@_`CsUF?e88nB5tgOHB5#7Wx$V5eI9phYcTcfWwHNHhNt8 zf;@Z3nD4h0yJyUB7u)>vjgUQWf$s7&PL1^x<;13DOn42I6RSq1s3Omd$+1mMITaOU zb$j^C67-fPcV^ncU0D8M4>O%tG%4A!qL1%)u^5Oatj;A7n*4f#ODj~Aw@w#%9?h`( zD+{60t~@Qzr4^T*ibr9w$Kk#+uPEI+vAh+_%WPwTLcQLXSMAD=`KoL}cke6H^%=pE z`g~0<%uDe^<;Ual;+r{Niyn69noU%llDg(3u5%&A-)e!GC{bfOD=LK{Z%=<{Kro z*ah-JQ4h?qh{>C{Si<<~W_znxFOTqFUjAJk>F+L=iVJm{ieCsij81v(FS@19pj&D~ z)Q=5P+M$QtKyWLmWY;W7H;&+`) zw@b#PzbMm**rJsy4<%x_bJe$|*}v?(<~1$L?vLTGe13VNv;xoak0HrY4!?<0aQ}f1 zJgGRuGgM4fz@EQ6Ah2%+jY0*0J8iru_)Lu;Sz@m^=?)c@_SF0;*j63Au%*ciX%DHd`D;`Rw+{0{fQ(aH2@m z;;yzaN^W}FM?ok6um3J(pI2(Ef<$)D^zubR&sHRUx)ME zf+N`!npdXK^vM|~1)H?juO!hwswG*@rfx{P7Jtt2>CCEu?QDC?bf~FWm-lX8n8I?y z9}}>|kn3A(@F^4VAMzC|tO@E}wooh-EWCY9SJ#@Z%J@Ra=#a%1#@*$M%U>+5b9Cv! zn!-e3KeAQ%A;%G~Pu)evL-L{BZ%KV~xBxt)XF2!%eFj zYSf?*&;sdU5f0A{FARqrIL*)^?#N~D7wO^bLY;9FUaN0HDK1Y@p<6Y=bHWi6GB@n7 z+g*8D*yG>-{?Tq(1R4jPVU8QNE2jQ~r#0xOqZJPjPLv!@lkZCkc-Zqrhq!`8L7p~~M`$BGqYd>As(Va&H8^kU}3a{&l9JEoTW zfYTq=Ye0*kitj|~rl+5uUKjbOi&yF+{BS+GFYZh@8!DG9sr>%ka*dXcyDvS%<>~A5 zxXigJo&oLEN?ioY>~f~4<^cmYBibQPvY6aZQ4|~yX)+fOGkRqadC=|7U!1?WK$TyQ zQ=R4IPTcf@M=jWl2)8?Zx7^y8yO`92ZdXCU)dhh(nMRbC3z;u3fWQKmd$CNG{=2o? z;k{rAdtSbOTFLsRa+asKx1|YF0HzH=W+XZK@HtZG#pU4UsDQd7J-|KET^`*l^*N?@ z?{)lP5EZH)Xm~b3!}C(KT&%)-EEBQ>GGwo6@)GPtpW+X>N7({}dqEy8f(gP0?g3Jj z#+R)Y0ZTGB!z=3RMZ?c4)|Qu-e>akdghk}@_|Sycy93%0^}9ZwQRn+bVM}+xJ{h`i z#!Y!MJ~rdUii(Q!%fA;zI~GLl@Ooicc?Z(F9`{f8`Ft;cq6+uJ-qNe>pJ9z-3ggK4 zb8%f3M@2b(femR?v6jss%XpAUAbvp-Z4=)zvewV|z}gqu`BQ&=cAMS)Crx`@6WDU4 zhk2^=Hw}#R=MY=nE;Kt*;Qw%eI>MX>7@L3B&YH&*|06NZ>C7`5n)<~o>q~3An`U{r za;o1im%%={4EDaeTg=6ELyp3u?_He}YyS?(f1`3IavEi=6eHHko_YVfE4*B1`D%6c zCk7h}l zO0{ynVdUqB{cfkz;ZZs0 z@Vy@ww)}5A5Czy^hVrI!Tv`>l=QTm%os6--H+hDv5Euc;sG| z?MKptOTpQyYZaV*UVETG)9@7?ms3?;K{aT20$wiK4>Jzl_wd@lGS5u@_R5q_gpC$& zWlhU9aEOd`j`@8gNJM1{#Bk=on5T_6Q%7R-E$`%Q=wLS1v1mx5dPz_b<+Cal#TLT& z&0TMUH0dnVyYdS2^bbbX+J)$DT@-Gt_GBV$9!*yft@Tf|wW!4Dte90ktyFOK2rSY4 z$ewR6>eV!-vt>!JJeY~W`H{Ua&mGCM)8xzYTZ&Web+Q&)+9AAiVBquQMD{pEl&l$D8uC;5s`qDWmfGBjh)_9m-mf$Ztyi^ z4e`zVc2a8xuP16pt=jL8K_eH7^%b?X6#>Mlmg7P!pu6x*ytCbIu@Ub%A8a{C^vbk; zf3HkiRP-I|J&G^rA+`H#yph`d^f@gbBs=;b1v!&-Eqv~PFBe&KSr6`trL@v~nv1H* zb>$}Y}3R#6RSR&IHt!iA1$XnqN)8NqYkKSN7wB2-QUcEQIuI zK=S@X5ri*%=ZQWjWxBxORu_p5Hk_p5Gpdju802^X#tnt6JW$1U$d zK}NyUmAea3o=#6>>Ybd2*PWDDE$cD&S3Kn-sZ1(yN^WMe9zve4nt9BNKBh#H$+939 z$J~9GIS1a^n}JH$nNP@2i~|J(gArl(?jy>W@h7~ z)BX#a#A~rzy4I@+A2w1Me_ttr5n6gFe~AZ9*?+Q3>f^r1Eit#0Y)0;Ho%%(q#6g~< zW&1mtsRq^dXKG^J%!q@w%CJV_8+E31A-AJay;us{)cJNCXjL>SP@Kq(lqG~f(OY3C zV#KC`3t;}Mw({$gs1XT!aFrxa^V_cZg)3?liR)Wop2;Q^?wL1=A|s0L3ft}Ywh2Cg zVz(&;tCT#q?u3n%TeF>gvDY15U8ib6jt**S&3R!rS}x_PXT_VCub_O^)nYl7%PZ_5 zN?BV83ra`vK`odTS631LYQ&& zH`eBx)?-C34VwXktuxi`m93T!La z%h7U|z&3YVu{K6ke1q;xr`vtCy9i$#kuT?&xR;OJgsR?%R|IG6SF-<2z>O+`af6Vv z6d^IP$QQC;t&OTd*H$Y9vVdTCpPv$o&`;)VUe$(E5cCWiQZHfxqWundr;Av=mOi58X-~T}b-?Ly1iiPQ|0npR4>mWa(%Be=%pTm_iM4d# z<3p^_eV45nWo^LMB{H`qIvoZOdjz`?v_3sX%*OQ5$cB z-axu!Kn*Li(LQcTsc^9TVQR72=pOP3=&nsk2+dX4)=^;BK;gKQZTRxsWpyE&W-sVy zEpllh{P{K5#I5;!`d7Yy-``YTFx}6E`YncWOL(ns=th*d8sPE;WaJIP{lW#_h&cyhrR(h3j?f z5_|AT;}~xwuanBdH=dO{#W<`LJVp(+id~>clh-~eda+;BiND=UQPz23+5iQJbNHsT z)C_=~#KV=XGr?rctJd^oGlGSM!5K4`xz2Qy z1lcAbSmOAAV)H7oSp^#GaJL`>7-j-T81m-ODHJp?J(P zOV}imu~-kjV^A!5i_=eF-GY<*Q1aEMKsOFvfg&ibCDg&Y5^VnXUKcEtczefRq&0a2 zOn~^P@vYXHc&ZHIX!xYv^;E0yVg!(3R+{d);F!yKGrqr-&t?=1eDJ`KpMPxKT4< zreyR@MW~s-cgo-1hb6v)Z5yCxl3YJ?mdA4$T@F)R&<(}{Tpn9oJTco5g2OJ>Gs9{( zCw{_!A0K+Pj3=x-xtES%c$MJq-mjA8IZ#c7G}Dy+fHazbL4BfCx-5HqPazC23!V7! zs{vol7hp`?%%pHgm)?zwZZdhod?mG&EAhd683Y3+yoa-yWf|xTOsJfF!!q>4s(*jy z02+DE+tiuK^{?(KQaD_Q1FYA*|N0)|m7Hwn|6|QP!+ZyG98^a+ zuR<7YBzFZ0RwhQu0GeCqzRS)ooiuzcHD61wiA4p!WOJ?B>{5}ZU~!e^U=*xUv%&mQ zlwrS^HJYIHTKZ2QSrq;xZJys~cAhiswa@cU(N}GmG**71+Y|yzOQL|#bC~5JoTg`o zX2Brg|2iOWapL=#>5NibT3VjS-d|0n?u}0D?su(;Mq|Qq`*%-7?@gtu_h%83-vlL=ApY zoM}Ii-vh|6#a2mL$u(uc`pQdqM>BCGj?Sf^70+XOs?(qhK00er2+ntw?EJUspH$kJc0uGP zFDZrw7)|vP>%O>AIY6+|Vo&?rvtk$cM_HB@f72>dZE8q@O2`(1YMPL0p*#QN&-e-# z1+B2Mu9?=BSyNSw8gyM*hOy(dnj_FVgYn9AGFyJW`O80}B(mMFTn^cuSVPb^U4O@8 zf+@R}-$LqQdeN=7x8c{2>URayjpesbX zn88p%6Z`LK$aihn!W%T^Qme+TS4kSPAy&{@<<|V&B#8Hr^O!adV%&)gn+60?OyO03 zCCdA;uaSzb5H$uMD7*xXve^S-6oc-=HbKG-rL8P)FL{IzEd{4+DeBFnwv6I&M;#+QnIy1s@XuZTSxhhyRb?9N zANbf@;j9#2hy|JV@AB%y@`@l%^VNTlKPAQ3dpIdoWMY9Yuy(YuXIk1gA16e{SdjdX zw1JZK!I~M^m}x%eA6VaJYJkP|g&ScI<>@K5U3)|v=h5}MeEbmNBRE?5?y?3wkv96U zZ)}#~p({;qe-(lYUC~EIa4=o1#&l0-889<1TZS~7H<(62VBy~2`|mL0x<2~wr~w1r z^4%MJ{cDyMwQ4mprkdElFZnjK8o{^If#hR~SdHX#&Da0Rul^oa_Z+a9qEUag$~Ki% z{heZQ*`Kam8rI$-{L7a>8B6aonzLBpUHDArVwF@h`Q3>d61(%1 zyv~~e9?p#CpT5Qr`zQG*mZ18{Co$xI@y3sLJmbwYIw1AI3*$efA;>mca%>a{;AGb= z;Mrc+^|r3}bUl749v`T7w2Wlgm_K;|>CQN5&*!(D&ktVayGoR7<*{0>;@G@Fa%Dbq zw&AIH;R??LH^K2eO`3fF4R}3&giL;f&-h99?~>!OOLFA%m*!&}1~CRqQ2sN-AtoRS zNR0`gRMFaZnRo*VOi8e~Oi!7xpH0;U>1YhiR)$g)nNv^IGAUU6LR<$qgJI6r{>7e( z;NO3Za&&?_y4%qS!dZxUb;KvgP5iLGS{8?f%H@i;vr)JUirTtP$T<7@7NzR4jA?xCAr7d_lwlNn6^(f<>dh_yDw?% zhfs!SNRm|$w%GvopcY}$LFwp{DBv}}giTZ^MYPBFF&}>uh>ehb0zC)+-1zhya6Lq@{-Ujc-2QZH2w-uXT?D~c(;#yXK;M@M;STL(lFgR;!Fp^SamK`K@Uk4>SQ&=V;cBeBY) z!+Y+1I`9(nufMg8k<+$GUw|qPgr4`{N?7~^=QMxxo~3OJw6^VEs9YF+z70KD{qO5K zjG~hBDWKCx8io)MC?iTpQN7?F!@@e`V7ftk2N~WN$?&Gq0m4~eClvSh53yXxid1N{ zn4gL|dL|FWJgoh@`*7~-&Th$O3#Kb#xd^VC-(jvi!^i)S9Qs6V#2U#(6NUoN56d3z zCUt$hFRg#w9OH5ApgLs>mtj3bY5LG5t!?R*k-U-(JB0$&6k#Fs#~u(iP; z>l%3kapRIF9EN;Gj(luUVAo_C@&%+5P;vO){Tc9=rkJqpQL-o;C8Q2(G&Qn4H41~0 z>PFfB4Rf`*Urtm+y)j2D{1%3Sqqfbz-9AFU{XU>SF3oO!5Wc3Lm6ILs0H+837k&0x z&|$;m*_6O?0K1qD8WBB%SWiA!4>`}kU85Fk?SHaxcW!Vn2a%o=4)rAxJ?YKeiQZ(y zNLZUJ)tKM6wOZX;6)V>_ijzIblxxsHa?<@ho*PL;()my#hQ~^H{3XqI4sRJA2HEV> z<7Q{Sp1_R} z7#>jUvz4w3OoxI82t2#|Seq%;pHvqxsKysghaFmbySW)8^n0$T4YJTHCPcNfe9{tbm*e z(>_N+ozmgM3{|_^(iazXYxf3uoe3uUmbBx{dWxwZC6VdwZ~igT6&riM7gP41)=s97HYZ;-BAj z4yc$PNQRff2x5UiA?L%*FTZ~Ao<0BhT_8u0TcvE|Rwv)ExEqZ|GSDw74UC6_#0~nU zZ}5W*3+yjY-}8d!&n?neVCo6Tb7B*jG;*;Rk~}{N7rFwpLGy@UU_i;BnDHL3Hdtp=<5y-lzU>mu_WAxXA<$onc`4BR~|@}M@ITxH;ia zU^A&0(NJt6)!pmm;_<$W4HRz;UipU{cgmj1F<(x%Ur{>Pwtwdk$RpEbGuGL2w>U^ zlUt6#%6_hTo@{i^S5Kqc7H$Cu8r|eWzkSCZHm4k!KCBss=FrP1AM`YzRo;euaS*#t zmrkoP)>$S#xG`CsW@fkqKF1xobe2+qfmM}B1H8&iDX;bHq~rbcclq?YbJg7DoSuW~ z7ez^4(^>Qxqi?*&3{S3@c_67?Hb1BGX5q& zWp{bapD_gh%1%{q3cw41Z1ZDD0jBdD)BsfA7iQ>Oc$NAk_-Hu($s-lhfasO^+^@>+ZjAN?ey4b!!-^47Qid)*ljA0Ge?N|(v}-Q zj~Vz+z_OkF4gek1cK!0*+nSG(cn=1ox7|htr3uKZrDxlTx5?|6dP68@xq&tcgoMOntYeeF9%K zVEX#rf31oDSm0R}7i{o>0J8AXmg9ZPw=wyW)W1V>D|r#DP+$u|SYS26&dk&(R1Zv! zwg`+A2vv-t)-OohJ`@D;3t5J~2bR9T<|v1+o#1ISu%%k959EPL1$?TBYs2OCGsWn; zKK8Dt=wfllQbhhVGBjy?0h3dAruwQ|gqR!Zn{p6Q5hh7rFeZnBr>;7A@+uKXE!*n@ z`Q5_{;1Zi&rlLExXY4qTIFh1^m0QqqcB*Z%FYfTdKf@z81KHwvU&6QE8UHcZQDkCt zxRT5#ki}wmV7XnOS(P%Mk3V)7fcxLf;pcCcUO`gk)BFMQ?|SUdpbkHH=l$&SgH8mt zW!HmNF*QLmwoQ*T~Baq zRhInvGiSRZi>vtNC=2UeGN7a3agJT3W6iF$WXTyAvp^KV{Q%oJ z#^hX=Gu_!a(t7n9h*o+3iy-9Neq3|kfs0T60xoWUx8|-lh?LSxQ-9I@x~Y|2?f7=c z2;cB2dGYSs-8FL#Zn3R3V<%LfSSU&PnGWK~-eusw3tl!GKu5n(g=$`Xxfuq2epq5B z1@#6-`}#U#-@@dAQULEOr39KzzZb`o&oa}?Pc?MZY-@Ltdz>!WC{gBu5^Mf)xJ zAFMDPM&F^j(n zzNdlq#NM@o$ixo(;=m~oG2hATO^UPv(tx!H#A#EM31#k_+dDcxk@B>p-M1+}y6@`o zUiX}}f+b0ZDZLXk{%dUADx@@h8k&&ES(wBga56*Ns<6z@9vL3lSxMUmU^9z- zg$7ps#Y{t>RpWXj?Z=v+c5KU@;cZDOQktfUzXIsBF&LZEzD#Xb|E?5d?`MBz@oLQs z+vi+;!AN>I{W%M`h0d!5JQ?7Xrn~37q=D1A@d28Bz3v<+diX*GT$Hg^Mc(|t>n-c` zSg-%xGS(=@&vQNleRhsLyqgtfrS@bVq*y635_0Fj61TSB9Bq%ceEY@g-ix`hW`TfQ zDwur}8~lFVH1DVfnuGa_RY4d|d$Aip#wI1=OrFETgSIf<<(TX#D5wBo!myPt(!l5- z{*zM$#B{6IAm~usLf@e?i303*As$TQR7$_{KzEO(E5cKupR4YSz5~&m4aIqnqP$h6 z?y<6c705`v{>`pxo!DpUc`pfxU%_iE>OwQs&9FnOGqTFwP|pYrbcX?p|nwOX8I@hOD3Y7Z%5URHUt6-AllKTXh-1p z6BHa3AHxexN=rn`(Tb)BWy0Wumgt$QY#rjfS^b(VzY33}7wPJ6VyijUH>5xAdGAgR zAIB&VKqy~|#L!-I`;>PY5%qnlKC7F>9^~|x`Y5$9%96mEdN=xWE6PGc%P$PEhg>Q@ zOhC}PkaBQ$b7M}y=LqyVWF0q|rn#zP?uREN`I103Pvd+qWTV%@C+^m+)6`p1=-`9=A}TP8fG9e!Y?a^~ApSD0 z2atayzK7qsdc91MFn3~rmNVNhE{6aomZ_J)$xc#xmNUxCyosIf_=w_cv6W4Ac^<~} z*k|qZyooqAoDoNfy&|dDn;j*2Hv(plVP+>Lyyk;m1>uU|JW#NX8gI(MdeKwVhrA(A zRT0;qU>-F^7uEhr+kTS%xB;r(QQfvroREL|QDi<^tBrfvhl)kph5hs!Yc)6PrGL3t z>GvQM#;8cK`T8q3J@?FIdJ z_M*>c8H?r;@7zR(77PuJk$^#gdD4*$WNF_=jx^PJVT{hX;pEVQkSVG%*faEY`a32t0#@wzY(8A zfA*m_cd$I4R96_aa;slE4{5W=u)GW#E{mK2teY&R#>mN=6kL6wngX5 z9!6`W>wEcoXMi~2M8i(Q2}d2kRN!m=mtLMvqW;_jpi0gr^RXCXvPu20DQ((*KdNQLS_%WoZ%j)^R<^ zx&Lo63FKwxAbXu$9n zJ$qlh_t87E8A~+gOkaKf`YuWszUf8U*tYD!ek-B`QvHE|_k6h@#+m9iDy6A80( z5bDacrkOQEUf>Aq!Nv=lp;vsg*>CcRL`PvmTGyd<7`B zd%;E0@F9>Gl0l3^7vK|f{X;N_Aw@l=1bP{gQY_r)0&05D)2ylov7d%jA>84Vu4Jel z-eD(lPOUl(%dqKc&B-O~9pQQ?nF!5|^PRutyzx2sZhz~Bh1JJH@o2GkJ3Ut~{ww@g zigkKydv7rs4}}xk#`q5BjcrSa#KIVGTzPB;awyQhmq?-5!;KVIl{HeQK)|q8$kZW? zpuX*tv%}&f7>ydqgRxThs(}Nn;`Y@6XIZ=Lmup2)VCx`#G_kT{d_q)+)*C|m?IeSJ ziu%x@=p}Ii!)Oj=*eVaLTu&p3aRff9E}jXinz75v89N{L;z}{z7w-n5V|P@46YYMl z(SOm3XT^?!JYwk$Gch-Uz8B!}i`9b$_720}fto-O=8-QsRB0 z=$fxfC|bTgzV*~q^%oO{_H^IaLLJ7KQpWHQ_H*#07;*3-#9~f?7HDwE8K7@<6@nPT1roLk8x1RC75-VCfPw)jkg*treuusWx4wruF|IA1IL&Ks;l?HTyv?Yw1tJXY^@33yA9GgazR3 z2K_hSHJ7{r(THMU0)H3PmFtAKPHFxrwhbumobWR%^q&VeIPPm49s=G_nK7Kv*JKrE z5Y&|~t-;2C$pr!fYg2uYHV5DeW4)?p(#qZOc=PWvnXe?2XgCKj`#HEa=E6~!4aDOj zlgT)bgb`^u{74DvbllZ$C+K8EOMz})#3^<495=&2hZRS~%I9yIZ3wY->Ddjq^X@OsR&9q241=f)|0QY<+ z4%!Ao%@sQSO9%##D{b<>o$BCj+L_ohDRvqMTm$Av5wGEw3A_w13N`;zz(?3`Yo%V( zO11MIXuy_X8UFsV7=&H|O&!^Y;D6X?OPR|KcrYICdKvb#U^4kWAqZj8fz^%03k`(& zql%ff%c`{J#?sbl+bo~z{Dn-5PkYiym7L?7tB^Of{y|=ctNUpc4A z#C!Q?ck%JOeC9laHpf2RkuUEC`yni*R=V6u8VP`~o0BpV$Ffay*s={_blM z@k8DHm7U$uWI9~P=vH#`uaA$$li5gLw_*QdIvE|=oV4^z;a%Bed~`f%Yq3;zb@xq` zTmeq-xyns<&W!4++a1e|I=x@N^Or0d&gw}tncUbwyU4he^bAO0qIobB z<$cr))R;_XJ`01I>a-J2V4lnj)a>~5u&ugxV?TYpJz&QTx8E`2`8)F?RXeVBE3R?3 ztJ>AyiDXB6mJoZ)^ALh;DG_&iOb1VX&IuXaN24W7o{3%kM{{}#zcJ0LB9UIlNE=S? z=;%VX5pwP}O{H5+>A4SNW;f-T%XeL7`%BTy4h--e$R?WDD;2Sfe%gh|#8^kL(xR^b zgpT^Rbu*KVPmIm72;n> zlcm~-h{em}b6tFjrjs_pmYK%(n33u!#+LiHc(La937hB3MNY_ zju++Q(F`KVs0wJ;E)DDID)UklXN0jN5S8=_EdY@}am~!(kl>A&=N4*~-xMwIO!19$ z9{T`_=GVBGPp8dIJuc(FxILT9=C85g%B)DogrmU%UxYa08(KLtF_0K;S8X^xIFTu9 z$9wv@rp5lAFSD-qrMnUA=Tm_%581$fQM?7?n*GDkod{3C+ndA}Wx+Nb$WefF$(V|y z7U74)YaK80_5z$*muy=ryglMMi+vH#KGGX84CihYW((@whyWGoJz{&2zI|>_cG8MO ztjTPTdwtG*3A`%qM}QCYem4|;i3@g1(zkNoieL>YGp&f_QyMQ4Tp*en1lSIdE)w>P zOo^2@zjVi`?eg%sH}4ly``^qb@xWMNQ?iugm8`5nC6+Yin8{_xN~xU>s^z%K_C_3|FGg&ZL^?w%TKnJ(B)9Qvgio&?YtQ=lXa>wlPuOSRJ#)5osl_ z*u4&pBB40lAOZ&!XV6x&uv|!~cEwRDKz7uQY^0@muFJVC9|6qMy;jdn@Va}#wr}w= z*V*6(kx@WD)di()p&tCIUDZ z7IS7GzlngjA)l6I*{^3i#`&E?`TS7tdALKIf_p?&?BiycSTlyBY&P|mXYjyjdI(x8 z@ItM!Bw-gcM)Q-l9G+i_B(j*gs$bG_#6CjRJqrgGY(f(9VwM3e2!$&J_Zb8gPCQ`?d*IBzp? zw}VsuaNf=7_Q?H@x5jpRKGK*W+lSVOxujn(q9fQ4c~)XM_eV8qI2#O{^Bq0#^`(M~ z5q^fa0vr&U*&jP#{oA9bNvQMnivLj9snlUXg|XajYbw_?P4`RipdOtQ;NGNAs#OIB9-t(4 zDX=e7)LF?Qg1o2`<~tBPMvsb3Mz?MT#w#7 zf6ZNYT{C}kRFC6xj0yPrXtu9*0j5?+UqABk0VR>BRZJaQd0l)z)U6y)QqCJ1PVvX8 zr8R$WXIKe|&zrGG6S05wnL{Brc2o=^MAuI@8wJQ9Sf=|mU@|@hDTMTz2dTucVN4P* zRU62XKo5hHsR0*?{I^;ZAqn?kR(#Bb>Nm$14h!? z#bE8jmSTvZKYw@KOyO~%SJ4hr(`M2(A8{>nYH#y%@a39jRmkZgeucIUlSLa%`~B?BCy;yd!%UW>sUETk+0X@ew`#R^L!&Xc&f*qPoqTP$?~C@*&iMLI)G zbmr4IDf)I9C0sCX(GtIu+l)P#ArpTgAbydUNkta46v>zPa6BTzC#?6|;1 zU8M9PCuO8pnQmU-Ldy$&<|03Hk+NkH;vdv5N*U3P7Ojk%80Odf2B4-lc&pO345zxf&*L3;~FAK5;;;ES)(~QLt`}?&gMu%gt zSkBEH@}T7MCbHQvD{jZEn01^EF*~-+KQ|vo&|LI)bq@YF;xt~7G-Jb~Cti!!#ABw} z1N?;Sc6v#6lO4w|@fYKF#k=tuyfeN6{FksjN8VfLd)W5FZunWY#UCX5>%a>nV-D59 z>(I$C>o{TC!&aBB4?&bsqnosNk@@h;a`UnNp`GD_2g5su%F+2;#X3G%*txSXc-*Qy zTR42U;Jb)Co8Ed%ttI+KM*0#p_1M<*!c4z=D4tBl54rs_+6{AaHxPaU$; z-20by-O+V_*F#;u)b+lu-|YG%XeLG-#TLy{hS{0Pdd18Dv%Z~^p-#cf#M+R0p=tdE z{8`4tbd9AY!#%00uD(fKk`m4niPEFMiC^M{w^+Nuz2z47hFXy?m-!aUK|w$?#4=Vn20T7Z;bDbB+ zZqhAM*nB;iFJ(ymXMy6rU_JY+MV6Dnzok|R34dskyp-@S9ul8`Ogu;NS>V2lX*pCW zvS^pgcG7`Mf`pTXONW1}Hl@5y*WoXFck|nKyKcX(pZwtupJM|M;qs07C+21T(_&DA zS+?umdMjmwwWC|MH2Qjy+8e`fJ#(`5 z`e$j2*58leeNq)GwXcGMRAFEvGS#9VF}_04-h%^T!w1QBYE5SIujqM!r-UC5s~2Mq z!LSase)yJF>UFJDN8U&11#}Sl?UbYg^;_V(Tb4F6YrJpn8L19M{T0HM7KTQq;+zx*>H!G^u`Z{;e>vBDZh-7}LR3H|Dx z*viPS!tsQ9_QQ-08wpSSXs{<%h+*!s9TE2@NQPXx=$Pa&>IiG1SU6L}$NBc7y*5bQ_}i5E402gt*c&JXs-xi-(FGoLsH zos9XSnn!?wt5IIuH~U>|3FT2)if9r)pg^^ zTxjRD1G|Tdb1|Qf`V;tqtNj`{JKeU7iDGF}R#UVx02ei(LL+Nv*X|fzsAP%NWnM&< zaVtp_XjBua2E((!`~#)qpSL}@sC#MXQ|(ewDr)Y(MR z4oAIAyxcd}6ZK^kE1)^ckf6+CF90_8U_VIT{tAW?1{e+)W8m02O(QVsO9*)ZL^l2d zD>sd?j^}1cxH!FG5?<*;<3rh@Y^Lglkb;AHlCw@F31%AuDDlQ0t+&piIcMNzRZ`qNXFf9j^QM-`M7=W4?H~`L`d?g|YqM(m7Rq z;CjbSqY%XC&TfB=ioKv7MGlybJZBTO75ZLRYl0O8vg1edBo;L!V-BkWM3eK z?5oGvp>i)$R~I?dBGES}8_^gp+5|dX6h!j*Xbma2t@LBQ(*_5QPAo5;IkUJzhh;WO z{5Jy4o}8Q%%dlm^zjv~;@N-?bS${VK9v*boYM!dngx{`i%F5T^2rNH)Y>A`AoVo90kFO4e) z@Fp8?+@J01+bresygtpKovxucQvR@Fb+Uh;-LFk(^Hs1R`kQwUFSQP>E2zd6X%eU< zB_tIfv(8FZDxOEQb`!GiqoAtY>de@9P0wpukD*^CpXP%vuVU;`R^GG(R+1MYB88}t*@Ubfr(34u5Du`j z>$9cI8L%p*9d@3WTjbPJroA}#gcIhAGa1-gifpFTJWqpDJm!RPlamvmalSjZNcLEC zy$a$TTt3fLtd9%WU#5YC*fm&!#Ucb0{w4>tWtozgazlg+2Jm{Hjsk0jMVYnzL)d?? zQjj4PW)^CaW@V_?=NQZ`)_BL2U{%Gp$(FhcgeeKd+r>5d6H z@a>S?j%)X!yqE{5Dk|1WE*Il&cch#t71Q0ZXf}($34JLSkXGU(OF?y8AC0>g6OWMq z!>sb}I+DEXp)Z2^f*$&L>x=4gZLxr0$$r7rd(9?@VK%h@D4uV z0#`8e_nj|uKF5qdbRmqVYpuA(RvU_bgg#TCTgn1XllR^oD{-9(FCry|2k zdKOb0YGxt;sJWr4B_0EG8j2qg^>IWJ!f6K3j}StpCg3|k7F4J)V!RZ{rb;aLmSw1s z!9us@SX<+bec>K6?d0J_;iS!;@V-WTo8_oa7qe6E7@5jmZET*I8Y2Q*3n!C?0+hVo zv|&9Q-%*xPM+SDrw_D-9QYeuOP4?Tm9yZOeuG{^SWPM)h3tNAWHG5^HSp5`aIfen* zPB%pGv6x|`BCx%su}J)|+~W>l?!7{;ZE1r&cO5{8tBF-`Fb2V&y2d2^qFIt?VUYpz7 z_x|JpO{c}MnXZ`bDCJ&TOf`Q+Zg}RfjtDa2;>XyXENjx=>Ogq*_iYkg2WM*6V5{3U zl!^?GW}V1L?NDv{fC2?tH^An?RS+te=3Zq4*1GT*shbyjQd#eyz@B$a|CDl6hdT>i zd2OcHKcOfP#ejD4>2Zny-rx~~1&Rq;7`CRu2ruI6hh}RPQUQRrF@seLQEGxIf*)~f ziZi>8Jo=Z99@%ACrRh9Gr8}mrLo8RoE|gDtu}aKK<`W@|`%vQ59xy^7z0Qw$wwBQ& z375joM0)@g@huiG{0JhbWZts!$)!*N{}PZ{GIrA{?4&*j3Fa_LoSA0i&*?fv%}HSL zl^ME%4`mrPmOV}ok~aN{&lnN?GdC8tXi4qQ2DH)xc_b#c>M3pD_L4TBR_-Pp`rVa3 z+YBSS&mDLpa5+PRcU0@Pee;`a=S206L1+&1y+cD(4&H}~u(>W#Ik4qi>6+fDC9s zQJkL~fD1pUY&uQOAA9iFs&q++P9Jv3rP{we;~t*ge(YFJ;G!UDLCDgU;k#0#5l&+i z6ff;6)H@_ACu%nUloa=Q5j}P^jV~PAK2lzc0TSXf63%bgJAxH6wpbp)7aly8J{r>_ z%@r<&zZQxj*1~NZuj)0eIFw5C>c=m)EgqQx@%GBHhY z5N%B86-}L%?eWZ|&9Qrvsuss}%Sl9%$w&g>tHz6(vZ-G-5%tLm%NogcY;F5ov3D-l zaO-<&T_div8WAPUqvHscfll0U8@1^w+H{eyde`*bWy=PfP@>I2fx&+YEEP5%YFgmS z`sk(^EXr%U{4ZsfuPJ$Px;Gt7+E(7S6A5%Q72Aj<6Smb07CKr!wq|HtwpM0!TmMKo znzZmUevx4vp|2%mPBNNaTV-BfRzXk8IRc94`Ogv^8dHpJBDt}$fZ&!&hFP++PlFC( zJ_8q6fiU>5FsDi#bFD9zax)&s$-WQ*N>$F@%c z^R;9BqJkwEQlfeX@pb7k_ zoWP%kMUlL>eQeTsHI+h4ibnX(4)sDf+;>pQ(Vrhqo&@z*S~E*jR=LB zB|Vrbl+-vqiR$_FYhcV)x(;C6uB#vDgY}&u%dK&zTy|80Vq(oAG>r4rrEgFVU9y%w++N>M7vhIEfl^1Un9xJ7 zG4e{Q_lN_QD+A~xY$9uyR^7zVhyAM!=;m;ox@c%&XrvsE@bn1BIu~0sH_bRaO>;0D z=Pucf=hN}9g%==;I;V5}T@@wq6-dco=~IV50n0lU*0zBFrMOh=L+bCtm@VnRrSjiL zP@<7SHA$9d$t*rk;hO+=l9f5tA>h1@kAHgvd&7exy>^bl*s>A%Sh$-nbN08m$;Nq4 z=$a5e5{t0EpTNG0MTpiTFv4&0``FE0H=|7$)G&q`?fu&N3yg$+P%S7X|>Eo z^nc;9d_5?j=OwF!p!~R?(x3AS(%yF|MwwhuWD$aWmKFyLEm{-scHUnk4p~DKQe7#(RHQ5x~f%MoX zq50?%zNj1?VLZgBT*1(%bLRizeX-gEAq8)V6&#@zfJ5_PK3?|%^9A&O{3aZ(lfh8< z`1da;yS-*CW6dCKA7l)d+H$n`-WKN+AVvZ^fJmCQh5_V+40lsgID{VWfT}%JO_k|Go`n?LlcFYy+kghBX!d zf6J9qjQ3jeie)?uK%k84j*Yo)#`8wkTs7anQAsau^r-*Cof{Mv;~oQ*Xg`y*sKBIU zYP{9DM3o07HGxzVqB}J4^f&#{k06$0$I|TL6CYLqEx`l&=)%|v%LiCWAeJb7@f?I2 z+(y0*h$5FrD-v*1)JgLsW$`5|<~kjm;g5B(a(HH5Q;p_DL)GSI4j-9ZnK}#+T^n`( zeJ~IiD~YA&x`wt)K~1AhZ5a|sZ}|kw5v5^bjf_aheYi_!8gB)CM)8|zuI;~anXo*y zywafH@P#YVC^9HxfW*FGS)T>`DU}02p6%duCv1aM|{}uzdN?(R?hj4=MHC z^XR$Der4lt;PtT0gM1BfmcIg9QpDMAiPgag(5wTbz9Gi$oKp>R(hRAyC#^JWg+QA> za276ZX#~r8=*2cvyZ;%8!p-kl8Ghdv1^HMVz{^Q>N$xT}neE%tF-00yT9U3d={Uk5s7__=!{HZG#(!-07fs!RpHj7YHIt2cvv?l&R}CcGbxzH zPyxOjhc!K*V1s=8s7faG!7XYFT8AVru^Cznp7Vau!5LuTV=4sP5$q}@mqbcC;+D92 zdJ-w*M))1UUd zvxxa});r*YXW;rQ#y#oCAw{pn71nIL(*Kd~c=WVNN#Aw{s5g>Vh8~;Aj0hu{|MU zmkrXwid}%k>7Z~Zm>J|iR8GbzdzL;YAl?K>8GK}5>4GxQH5UJ8>o=22fPCi)>s%r{ zkLWdWz2n!$@G{4hsuRfmyyqk?C9ariT*iiIf;1=mMb_9&D}K z2q^`j-JJ)WLM{>79!lnVo#g}P#8ds-%CpGSb=Pur|HjwP9f0gEu${P2u^1xaT=(H_ zY{ItrCaZ$zoZ}?`c5k1lz34ulk}VHx-aH_>3jO_nd0pRDKf946%^!y790e1nFV{|sXsy3K zvE!mxzEU%BTb(<;4K0PHVH!xb6>~s8qq}_WBsn--G!-sFS{D5BnE-vk}UG2M~oSlR-(W}p(W*TI?yXi((WNIt^Y0V*gU ztmB}dVFq88iCF!D(pfyL3gUfE!qI!wp6DMr8RHE|mh2+3Vp&Ka9V_Y@RwjyztZ2A# z_t8x1Rne4ZeLP%B=%LO3fUIon6W_(jaHH0DJ_#jT?83=dmiuoNZTMkA#Ym&2h?{3s zQg8;C6>DhtAbm1D z%ZTyj4@%?d$n9P%mT|WXSI_B23_pK^0T}47=z1(;g{{A`tfycKtLQz^-xQYdx==h5 z11kc(n?KH0U`0I%1U<-|2gyL1M_Mq@K&%Brf6bY)bvTC*LM#1YycX4T_+rvqmSc@N zvE%Q#F3Y-(|6N?twX@+^^nx5~B1wbd>s2~dvvj1x%a-UrG&N)W63+xrLx9M)r^1*( z5z)~MnE+%cH22y9insM=xJ=I&VNY$Cy4QEmj1CT1d&3x9T(+k(u|+NnbeCsBy>|B( z5(ANF{8Ms-%F!C5_0x}O*v-@%W~B6KXG)9)ncPFCMH*uc-aBQoA)%yFCZ?PQVm(3Q z(ud7ODkF5V(=+wsrVg_d!tGV=6QP<5)wgRFRC~%+`r-&ahszpt3t8drveivd*c5G2 z?Om=AOCU8j>E@4#VEwVFZ}OUd9&+DO>rWmx&EvH~_AP|gQgy92&K6T|v|QAo(~dtv zcKm}NJz-s)u1OutR02|IhK*@)ojU>$7}1+AK&$pWw&sV0Q{~S6b|hkFoN#Wl8P0~o zKkl9Lh8QWldH#r!oqBQDd73uU11}0?@onCNn1(5nUm5mm36%nRk@~blZbAzR(@z`& zcaheLXD)Qm7tc@*q91lK*|Y-eBqj_bkpRH&21uy$90gbI%QSX+LCNmNS4%{`q9fW; zK6C{!5>y7g)EUD?2f@7-LdOR}!R!{FULUrlc}+X0%K>jY2ys%;^9e@xYofRe0Cu<) z;^pD?b4YO?1%5VEX2^A3P?)rLk=tv#fVPJd2{Wct?^L!zQtV!@$_ZxMhb(@jVZU z^yUQ3xHC@ponE)dTj8*b8ZG&juUv%K!Ye{L$DL4*oP~y?jK-nCar>P z$td0_i;f*pC6N zdS64l+;um@C~6S|8Lb#mySe4e8KgvpGwscEzgR>g(Aw}fN&~c@(-lTJfzL^>+%b|* z)UkyoY9LHwAPgfShRxyOcUa+-m5&*=Nf+X3AZ#jg&E7;%mOc=tTYOi*z2W_oy@Up7p&b`41Em1 zy&u7P`Jgl^f12&Vq)}Kq=^Kzgd7c_+?SaNeCl+C*{Y6k&L{qi)2H$M`y7ntBd2idc zhp?td(@6FPZO3Z4X_K!#-ra8m`h~#HSS&4#mzt}k@g=aLE6a#A^C+tbKE+3@@y{@0 z87-0_Y7q@qd3T2bpiASq(-6Oby{^`^Kw3`FHyCVy$)wT90Eu!#0I^E6*>pfmfVSZh zVOv00j!F0EOM|FCFj>74cQ-EfSN(6Qk& zvUIER^fbuJCtaA1#Ghmq={>F%&AG35g`10N?t8+Y!#r-gwy#fdKS3_AD!v37csK8E zR5NU4OmUD^ED5=Npm86n1(QnJzEXlGA?n;pun|=m!6y~xNai5CM=aqiMx<>+_~xi^ zhCzr#4&q?`%qKpVxg{eUXW7=P&I!lXujK<>U6S>w&g#zF4|ngTRF z>z>lSRx21M3Dg!?KulkW+OOZRuyDh|4J@aAQ%CxA5$3qfM@+9j41dTo<|>|AxZy?? zXn&<6Ek2y{u!6z{>Y@W#ecR_zYRC4Y$^CK!!Hhs~O3KO4&+J6B39O?8!$8JqSUw1Y zfh075MnQl;*eolvHE{y|oF9K}^N*QadV+1I|Dupe6;js%pU5>2Tywy5flM^p3y%O` zzl7Ad=4f#>6h>BgPGB#L!dg2f|5PmP$tbG4&%O_2C`eMTUeCK{e)qV zg6TCmu>)U=#IT@#c>ra^>lH;;-eBp!AbvcryV-7iKpV*A26C@76bm+bw+lrReG6K) z+tX_h@jKxiCP*Q3UTEJ?&5QW)m*4Mo148gRu^qq44Sd;38u;l$z$*|#cm1B{+1b#q zJef^0o|)RGA38hT(!KQc$o5 z1sI1gt3$l^&c*FRcFqPk&lBnH@$gq6s#_weQ=A8F`EOekd%#k+Akc!Y_S&j7W2ts8 zFrc2yjuy5MHNItR_M3%*;W)YO?BvZiwJnD8|N4YwJppVR)h-ll-8@#z?{)6loG0x-xR zPi&*(ftNK#$L8UHVu_*#TR-^3%mFM&D+;Tj>*gai0L3s~;8>(#ytp@wj#>_E9|s35 zTX!lwJr-aW&1BL9vg5YKZ~u0~v8uYGsz+Vp`s)q%C<0yTRaJa2+8;$M87S;w)Cc{y zCQj5It^utFVRP?8+*`x0m#-`1+O%>DImlvxmRUlb)7B$zQt*_Ku^dVAul?!IvqY!9HH(3LY=vbH2}pz*(10u^c}zo*5Oh0-Ds9925`iFHTmvSkyI)& zKk7xJUb>L!N$|*>3o|XtCc%o} zA%+c*o_IitufRA&!Gk>Y;M7j8KxA`UC)0Nj37K>qt9uQOQ@EIhDI3&Q5XS)E7eXF# zAra+bX-C$KhCzY4n{qeqhB|Ar71=uM?6cBg#Y%?yt8N^T=RGr%8r|fWx}F+z(vhSS zwbPCni-|Mqp0?pF()qOA`GNcm^nuUvFHL$)N~lqwiFJ2}GI_hC>BfsAcIoQtw_saH zo3TVjSAd}!vV{_IQhLg9%w6bJCuTwHGZVGeJ_(@J&L{P?FW!%z;CqoslE$b8tT^(? z|0;HrIar||{dvbHTjxj)AcN+{N{x+)_<`p&9K|2l_DQf?mUR+}!#{?3(t9;WrIYo- zM&Ykncn@)6CvBVFW4%|?z{|atm@ZtIrcING1?~GH1gAj3B2@35*@KStmgU zQ)d`H7)2O8@O!{t9Wp^eJwipzAiwoME5WpB>Lszz&R>AI&wbW6heppM`%a0Si8|u9Xn&*q#xphbxMd> zCO+WBj2I$V;NViq#fZr!RO5Ol{!3m$Nodi39K+A?lbBm}EJeheiCEgZJ`&!I51FcS zi~1TTYvLoX)ozxFw^Y0sN{2R6o_iMl77eu7C}Y3Vz7&|E4?zo@AOZw4FM|n(>4sLI z?W~Uwanfesn^nsMPP4UH5GBeM)0{lHNms29NQIvy<6nr!(&^y`qMU<_D22u))5dGXk6@+I-Q9XfVxT1h6i z;eE??{SS5Z)mgw7X;%qHalMi&uD2QlFv+hN7G0~MM1#}dbX*TF)GD6lL{moW+SR&! zFu5H7%E=z^jKLn2F z&CG_2*QadPwNuv@!`THx>zT%-;o4y_-J=;{MbXsUloA69DnL$S%2W>Fwo!?;%#i4h zJ?Kd=r@oy*aBkHNm_8)5;QXKmC0`C6fI^59`v@`}yLP0$V3#3Mia#Wg$)rl`xqRdPL+8 z%*-5^`Q)dzglCGXma3*SwKx;@g%XpvHFKc({XIP;VVa@@2V;%KEb~F+Z_HM7zFfN1 zW>|1!55j2MxI+60mQzbgpAFFXklv`3SZv*5CyH{al5C?gBRf{M4BEkL^{b6twU2vt zo}!Pj+^>YqW?F4U>wskA3VkR0G#H~2?2;f#{c!+H2F#nEu3(fY4UACqu~=HymAHJA z>+?H`V|~s7W7?mxFlqrx8mDfK;tkC+VxoBw1LP+iJt})w*6<@{$g>jNmgRzKpnY@& zHa#oA0U@5JE0H2nwhRnCP_r14AZ=Bms>X~!>JkRi3HLUi^p%ewh{0;{;H;Rvn&PS~ z!8KMf5Wf{+%By*SC@87{EWE+gE)e1rpSdWO{&a8xe!R021Ahu9p62QClHp-(ur*u! zH4W~+7Fg!6RJbOr(iaJQe=z=cWUKmj@s2V_fPRTGuP;jdk}9O&8@jFnv?fp#94=3> zUHIt6MHi)U#CxD(e3Xju(fCAX1*));xqSIyLDFvL|4+(%2bKAb|9_R4v66>>?lPN@ zC_}FhaI7zAObpicKA!>c5@s?}FJvIVaG34TK6qIk`xFpw9_adQ*0f5=R=`91vLNu8 zG%J(fGv)mtpL20Hcs{uAp9605a%Xxcy&LiipW+96hxG5q3SS1=V~3+ONJ1tI!KjjT zlNe@dM;_~!q<@ujBn?yK^c|Nxli?isTbaI!b1ItlF)a+;hh~HlVc1S+TDq5Y4_8g4 zrXo(R$3p~L1CK1*^n*M2Sm)#LC29F}S(3~p&&VA4TbaI!pZV{2`^PktA&f$dC3{}QQLTH06qk|6X={khfX_gGDH$q?^laN}HmXShm+EBP@;hF^@ zQ>!QH98(*#LXo0AarK|;;uB!EE>by~MLI@@^Ior&7%hV|1s2mC@|1_)Y}{*1OvH!1 zVSbEtGq`v+JALxu_w&OZ5K;0lEW@wvkf-wIBo?;c_xI@)>=Q2bz@uF+CV3?xY0l0} zp>{*;ugCTlB)h;BIrR}GSt0)3fP9DAz#zVYaBarmy-xT5phodWj6FH^$nhs!<7z;5 zFNg2fjj*ZdV<&fPxmG9>I)YytdM_};W+ABj+?)5oauvWkgPY@}O||@0r$z=;TpH?@ zydIh@IKAJ1&woH_mpT|@XBW7EzZ#}(!1mR*|-#M9CA-ssXiR&cSN79ux^Vmibwb+rF8f zK+FUBHu!J<+iP*U-q`iaK{+J3i!Byzzz_km7??=(7WvLb56|a%5HQfN7ziBrW)OAg z1zl6SbNz5wGUCR_2o9G!Hw#z1ZN$+wOWauJaXjn+K!3t8Zokag!#yC38^+S*6V#pp zGPD)(N0?i`g)zX9vBxooBnXNEynlZczzhOYfT6)^Vggs1ZHKK0d`={`ExDUX!5drW zfRFEEBON4Q4W+;`3cp4kh6;5OX|Vm}CPiTcD6B{Xd02rW#Ps_7Fv;4Gg@TEv3{{Pq z;Sxf18xe%RNX*ajf}tVi5Eh~&oW(s|ugxbA0|UVZgjoukQ7hb^gWZ${>zaLy#y-;( z8pI8`{;(xq1#6s$hM4n-`5G2m*9BxQy-TkCco(8q;a!SB?=nLhzU!14(tCg&l`{}S zT``UQ1BYkj8kmsi6A4+&+TnrykX~qbWiDxkdO}vhS&qjn0hT1`$2TsOF4 zW$bCo{!S`1F!^?Ie&p?w1EJJ+Y*@u*td+s*1}5+Vf3FeeVG}n(@z4^y%wp`&K*8=! z9>Cb1Q!p-o2%621kwhW^aTr_R`+Iu*Vsx+=0`Ne?iHK0DFBVlcE0BT+O{Ij1q_X)n zoBIMRE6U6Va&kRz-PNwE3;_iE9=r z(k>$EV7()q-v1DvC7VIAtHhv&BPahZri&sF#@=yw>sg1JFs6owQw(xryCZYFh_3QyZ;uz`;54Su=7@6FAeM^Jr(8{ z?OzmQkuXd5LT1?F+)xZCH1R#KXV|GXOs`v=eeG?ZCuBmf^n@ODza zjKN08!0ZTK6ZcLoY<&r0mv4bGIrjGJZ#gg!v{&;x)M_J>3za<+_PPhew$c4_wymGM zcke*Z{;w&xBcr7)gKM&BY(~-MpFx}Vv(Km0kkrTx6)lZ*2eJ-zMey<;C{Oh*|de}e-`^wFa zX_louCRJMK`=0z}bTP zgxUPMcZ`rHjv?3;@m0sXPdtI9SPDB!PIw6|_k@}Jm^W8lsm`HPiO@=PiBAhhMj*_)LR+S(BV`zNW77SAkxbB2O z_*qy5Vg7ZF7py-+6@uI%EIl-d4>l;eZr$G+86y)5dv6osW&7qQ5dXn;_TO~sk#~!y z+CyPvvkm{z?U5+L`iN)Xt}U(S_B3e9tck#eqgq!3P5a?#Rw#5SsMSk6@tnro!_f3S9JS?JmY zO&8Yox$T3Tb4085VAC)3RJC-uFp}uaRmMx*DP^u2iB)pFiIGD2C9DQ}5GFxds#sj& zE2f86l?LcQNq>PbBDo00`Z_A>lc`NA-4H}Q5eVu zsm0-)eu%pmd9?JB5gj5E&X!Gt?-Kt!W?Qec?J-0+-X8uTrE{1TD{=3&MgO_e6AhR*^19V3kBJuR5*hhr=5U6XgDfvM z|Nb5?DnjB%;qaE_E%>^)1$l@J<=rEOaY>nByiD=m^(Cz3CA^E~3ctey@HKH8q!?tx z3%|bNpMy94{_z)mwf~-Rd`7SLKbE5JQK#b7k9_L5+Dcy1PO2_ zM34k2Q4~b2)=EoWEdHyo>aGGh7)N=I z+wwTYSzaLXAJKl_VbGu&e;?2ysXk%sBH_Z)FLmC2X7j^HR>1c^kMD!@4`8(ro5oxs zLf8m<)WlXiK|}UY{ABYR2q@!cXn_D4WRGYr=snKiJ${S&5eJ6B>=R6YYD9sM`=(E9 z{%Mi*dPYx`&ww5S@3KZZ7U|JN!A-OPldW6WfNlO&sx3 zH@yGSIuNN&SlTcl-W+}obNG3BHXLo*ph%|A_Jk&%f6>S6ZT(j3fM~YIUy%OH=Vh5k zhHa|Q#CXE>$#%2KKd}$qCHI@={ctte2YZQ|L;leR!Wy+|;RjsWx8b>7G(6|4L*Mae zP{A76J;d$olGXWuSvD?g{-w=*^?XRu6zGT%!0G}g!L?VVn`GxBU5mued*+O*Q>(*8 zpB{*=rUY9r>Ph;xI%X!Mj(ZNT`s6^>>i^W&Ony$s=DP<9G#R4pv8l^@C zabR#;BcAaz)#N}nIINa`2F5{!gnyy+vuYWu9!N6d*j$J6E#-Y&rA78H2JTE4|BU4& z`z6pSq2bD>(QipX5b#%c~HXn_{KXj#3c^+hB!4Q(jk(2o?UU$o3#i>~p? z20YPN{4;ogcVI1!z~h(Rm|hzI;Bq|R2{btbT;rpSBM~HYD(@^A#uAX*85BE~zQ+${yU=>e8kAa)kSEr`IFGE7H%Y z0bHs24Cwlzux3(L+H|RcT#xlq&44Wy;#mbryP^Ms^B%~p_`$We?y2r+{%FtY(wRJ!K}$Q#SJJUZJU!hvrL2dl(7Ku9)VE(<35&B!_{J`APJZpSg}_ zex9D`k~NlyfE4)Aj33itD?Kh`e~FUYsM-~HoK3$X_B%aPxGJp8`bDJ2!B5~ZyoMWi zCgfIBy(cCeRDuKs62VB5#cf1ZB*B}W5_i1eT27@mlJ6O=(yEl}7i;dC9ZMumEaits z^80d$b-IYn-Uc4dF!4FIiKbz3gb$()m?VZ6^}I>FFTEE2plf@!&k3sVJynBFUltxu z*#xKRm?@p;pHB5C0Hh_BuZSMGg{?R56O{b;>YcL$=ZvgocV5jZ=EW^@S6Id=u1$5N<6P-|1XS78 z#hb0Zwl=!Yx??wMY=&z`{QBY9DylKh4z7{h1#5M|{m57cnj1kdOSX5yWCS&Ge%R{n zWjd}$iL&Do-bgSreU1kHW|jm_2c8Y!Z=-3rN!G!5_8KvZeAdr`k{LXJ^rlAmrXp9K;WfP_3 z%?KqvFcp6oIwDgSz(mlg*V5WlG@Q2hm7_-MdN*g^4%p6GnYsG9Lp@mqHp&cf9=FsnxB zaeq*Q-;DT*9n1u*=8yXaCY|U?OzZN;*H&q0S+DK-1CSquH1#pT@0rvtgEr9+eXYRO6Z;YORxkI(ew z0#BPlIb#RIOTx+wEsl;}nL(cB-pO)LJgA8i;h=rSNYQ(eZsgPAJYY6UYn%%6NP z4B>|EOV>y#&`#Xv#U4EMkIkGDp-gV?PWI7DS^&BeqIVkqdOJDj6PiwZREAZs{q%x3+ zhQraG_?yDGu6$pr18AHvsSV%-74r#$e;m1Z`tgP?Yq1^FnwC7VJ47k^DmW`j6%$%! zrdLG+*>Fzh5}*;+`Ta}XW65tY-ujmKs`y>VuobF7u~D)l z(VFt{c{CdQCF``bn~R>1*?V)q$ppj~Hn${i?)7BP;?03T#t}DdZsGOo$-i;JoApcl zme(g4fA3}m`^%H<4xDu0`{>99Bqqo^z1;GPC)*w1hP$W%ISz>1E^>>+lhQw{fK@gM z%#G5JoKdl&8)U<$x{$yj(4`|1BY`r(12d=zXVekDP_B!Wcya$Nx9l$@dZM|RnOvkN zUfBQa{zAMblAEb_N1GQinch_LC#X`NOkGjw-MhE95-R3){~g3Hl3V_{j7f<8$Kpj^+oB)DPQYe*FDY{+r%2KC2wxA#R|i=9jqXQ*^8N_~H7I z(LWpCdy{{v@5r#S=e^_a-*H?S-P9od2i=Bl`uweada+Kes6G$7%#axX1_AF}dbr)i zNJDA?-K6@Ty1Z%Cu+Cqr zs)j}En)~R2WvJ@4%;)Xgu>%4Vp8Owvw>n=Ko5Rj}z|Ra7}avhDbN!1Gq>mLXC)ZLCUVSgz1i|xo_ABak9dYQ!d`E zC;`P#Zt0#~pQY6NaIT=&HrA%!iXzhvQ4c4o_HMr$Hw6^s*7=cL(b3W9$+o$MxCeLM zr5qIoo=Rga^nyRFU^Psjr*-JgcEEpaA6GR$4xi=gkoECqRM)r*K0x=w3+NYoZvtB{4 z^e{EDtkXRedM4Tiu!ksCySO*OZ zQzjs$w^G1o@kLr4!=m`otB{JkVB*(kD^>v5;z0BH1E_0<8rkL`vd+-1J>$%PXxj77 zYg#Z~buVLw#7G`byM~#cpu9H#PxOT71Fux9XsAF)WxarQSe{v_3uHd!db>iNp+!$T z8@~a(c2Rdi3B3F0ea-biA~5GfQsfmLhO>d8M-V>{aKV;)|Fjyl9>+>XWsCrd$Ap7D zX}w3w1ScKM$%l1KQ9g)o1R~8pZ@&)VNY-0nU9ACTXhR0Cx zF<+A=dCTW=Ht|irCo;w*G}bqF?TP9XVE$8P$Zu8;$7SkcT>)UVko9qI9wiuCp7yV|`Kre^y6&pn3_ zLoI^12uI`-$T^Pu))8bJkM*d+L2D;mP_9$x(RrSYM7lUL4QE^KClm`Cj{yNHB-}EYi?WYreW?8l@0d;cIcaJy(hh0?G&-DRXao^ zB4jHNezC(jZ=mVp{c5`jhhiCA@p-y*3X2R6Sd}|miE!&WuCLJ1lTXrC=3k)WPTH?S z>P=Fd6heh700>w>(=dWoAb6!=NQxU|rGs+%qP^6Ga|R6rm~7q?D=hwdQ2Yi8S~aKS zJ{CQ5`#15qttY2zaE<9n=TM14*K?^JjrV-2z2sH#=+yLY2n14JC-+}@nmV;^>2K>p5BOIhe8kta@;GbPQ!p zzuvPl6`qLidsSibX#VCMm!B^8eqHaLdAJhNC*OAEpb++!p=5R>HhlH5M5Zqpo)GVh z?!Ivv8tl-XM+m%3)>9Ktu@$T10Q9EU`fl>w>7&ASjEPB8ffa(4@8*UB5Mu2B2@=VE zk>kx;4^PyXakU`cxwrS)#S_`M%q!OwmTBd>fabwucW(cRosqz};P0}Fj)%BKZpBhO z_;f0P>~jg3e6IM9va^Ci1xmUpc#;Ewg$B4C4>^&SSj2x8oT7Z1Wfv!>vzL)8LEYq?QIxJhO$6 zfKdcSAx3OkG{rx>!-<8|@B9OBLnd;w7cz&?rgiui7uSt5;n=zJq^j|r-2nU~V1Zu1 zx@3@O=_g=Rtf!|@Op>5Qp13?#$<^Hu`fXoSszkk+k%C;*WD1XiC2D1+&$|SAzfO(V zEGLu8;11j)K9HxaHm{$g=gC0BJ;yvrr{)?$tH+pBAYrhr{6$i9b?SYVa*4G>Zhf_2 z&Vo+QB2z!_L<6d)b2LKaeO#r3YN1g0S;sBrEKnQi_g67?HekqyDm@abPt8Di2?_+X zwtnSZcm3X7caB~$v%DBfM-y?=jO7!uuh7#>P*IOCedNO4NhTsDu;f>#m{1T9B zh4|7Ar)}3Y!CL|84H~voy;Ivw-U%}d{I6gSxOToPc230Dx4jg)80x>x)mz%BuFxOS z-N2Hmy(r07 zQd7YYV&}V&OC%q^?z(th*Lry-%B*_#FI;J`YdgozO}kb|r~`U*={{_e9cgQ1;w5kx?NwxMQx7N%aJjXuSX0*(|Ogbj1oeB9rLqIu(gT znrE?*>+Vmu&SDY}z8$!L!usLkPzR%wS76`*XIEza4ooc=lyYaW#dMq;R#WL#HBOKM zq5Bt#+l$*(O0+T$m-ydGH?jRov3sm%L^DUPzlJ7jC2ia?mU~_gD9ul>%iiy;`AtJ4 zZcf~s6apE`{}>4i-QiTX;4LSJAKa=KbQObgj*hEyWrgY)Po00PiR(yzlXL0n+HqpV6r`uS^+Mj^DgDlAH zPQVWdb;tk?kYUIlnX?CQ$|4MwOaDlV%DoqbR!{bp6kC}~T}wkJj}waa4v@N#{p^3@ zUUOP=?$eWd{r*=WO`b*jK|eURAKIZixZhGfJ*SY~#e#e~M7ozYw?sbc9B150g~^z; zHD0cz8Qc_TDJbfyfKF}G04>oBRRsuA69l*_)|-uuBzIl9DqwV&CZI3mpD_S$neEWM z-0Hi}_XdpFW@^>q47}NMx!)G9@ARzeqz8y0e$g3!F&d&kPy`k{XTa*W%0AW?d=NET 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

    ?37MH!0WI0j&U(dp&T! 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 b$muU9;@@)p`~2JgIQEbKyxjgA_t*aeWB-ER literal 0 HcmV?d00001 diff --git a/src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff b/src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff new file mode 100644 index 0000000000000000000000000000000000000000..65f1d331a0c308a5517c4f2632ad4b9a6e8ac4e4 GIT binary patch literal 104252 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 MY+}w2chO^vV8tzjbY@8?OBy>_T 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/g, '>').replace(/"/g, '"') : html; + } + + /* SECURITY ***************************************/ + abp.security = abp.security || {}; + abp.security.antiForgery = abp.security.antiForgery || {}; + + abp.security.antiForgery.tokenCookieName = 'XSRF-TOKEN'; + abp.security.antiForgery.tokenHeaderName = 'RequestVerificationToken'; + + abp.security.antiForgery.getToken = function () { + return abp.utils.getCookieValue(abp.security.antiForgery.tokenCookieName); + }; + + /* CLOCK *****************************************/ + abp.clock = abp.clock || {}; + + abp.clock.kind = 'Unspecified'; + + abp.clock.supportsMultipleTimezone = function () { + return abp.clock.kind === 'Utc'; + }; + + var toLocal = function (date) { + return new Date( + date.getFullYear(), + date.getMonth(), + date.getDate(), + date.getHours(), + date.getMinutes(), + date.getSeconds(), + date.getMilliseconds() + ); + }; + + var toUtc = function (date) { + return Date.UTC( + date.getUTCFullYear(), + date.getUTCMonth(), + date.getUTCDate(), + date.getUTCHours(), + date.getUTCMinutes(), + date.getUTCSeconds(), + date.getUTCMilliseconds() + ); + }; + + abp.clock.now = function () { + if (abp.clock.kind === 'Utc') { + return toUtc(new Date()); + } + return new Date(); + }; + + abp.clock.normalize = function (date) { + var kind = abp.clock.kind; + + if (kind === 'Unspecified') { + return date; + } + + if (kind === 'Local') { + return toLocal(date); + } + + if (kind === 'Utc') { + return toUtc(date); + } + }; + + /* FEATURES *************************************************/ + + abp.features = abp.features || {}; + + abp.features.values = abp.features.values || {}; + + abp.features.isEnabled = function(name){ + var value = abp.features.get(name); + return value == 'true' || value == 'True'; + } + + abp.features.get = function (name) { + return abp.features.values[name]; + }; + +})(); diff --git a/src/API.Web/wwwroot/libs/abp/jquery/abp.jquery.js b/src/API.Web/wwwroot/libs/abp/jquery/abp.jquery.js new file mode 100644 index 0000000..81ebf1e --- /dev/null +++ b/src/API.Web/wwwroot/libs/abp/jquery/abp.jquery.js @@ -0,0 +1,404 @@ +var abp = abp || {}; +(function($) { + + if (!$) { + throw "abp/jquery library requires the jquery library included to the page!"; + } + + // ABP CORE OVERRIDES ///////////////////////////////////////////////////// + + abp.message._showMessage = function (message, title) { + alert((title || '') + ' ' + message); + + return $.Deferred(function ($dfd) { + $dfd.resolve(); + }); + }; + + abp.message.confirm = function (message, titleOrCallback, callback) { + if (titleOrCallback && !(typeof titleOrCallback == 'string')) { + callback = titleOrCallback; + } + + var result = confirm(message); + callback && callback(result); + + return $.Deferred(function ($dfd) { + $dfd.resolve(result); + }); + }; + + abp.utils.isFunction = function (obj) { + return $.isFunction(obj); + }; + + // JQUERY EXTENSIONS ////////////////////////////////////////////////////// + + $.fn.findWithSelf = function (selector) { + return this.filter(selector).add(this.find(selector)); + }; + + // DOM //////////////////////////////////////////////////////////////////// + + abp.dom = abp.dom || {}; + + abp.dom.onNodeAdded = function (callback) { + abp.event.on('abp.dom.nodeAdded', callback); + }; + + abp.dom.onNodeRemoved = function (callback) { + abp.event.on('abp.dom.nodeRemoved', callback); + }; + + var mutationObserverCallback = function (mutationsList) { + for (var i = 0; i < mutationsList.length; i++) { + var mutation = mutationsList[i]; + if (mutation.type === 'childList') { + if (mutation.addedNodes && mutation.removedNodes.length) { + for (var k = 0; k < mutation.removedNodes.length; k++) { + abp.event.trigger( + 'abp.dom.nodeRemoved', + { + $el: $(mutation.removedNodes[k]) + } + ); + } + } + + if (mutation.addedNodes && mutation.addedNodes.length) { + for (var j = 0; j < mutation.addedNodes.length; j++) { + abp.event.trigger( + 'abp.dom.nodeAdded', + { + $el: $(mutation.addedNodes[j]) + } + ); + } + } + } + } + }; + + $(function(){ + new MutationObserver(mutationObserverCallback).observe( + $('body')[0], + { + subtree: true, + childList: true + } + ); + }); + + // AJAX /////////////////////////////////////////////////////////////////// + + abp.ajax = function (userOptions) { + userOptions = userOptions || {}; + + var options = $.extend(true, {}, abp.ajax.defaultOpts, userOptions); + + options.success = undefined; + options.error = undefined; + + var xhr = null; + var promise = $.Deferred(function ($dfd) { + xhr = $.ajax(options) + .done(function (data, textStatus, jqXHR) { + $dfd.resolve(data); + userOptions.success && userOptions.success(data); + }).fail(function (jqXHR) { + if(jqXHR.statusText === 'abort') { + //ajax request is abort, ignore error handle. + return; + } + if (jqXHR.getResponseHeader('_AbpErrorFormat') === 'true') { + abp.ajax.handleAbpErrorResponse(jqXHR, userOptions, $dfd); + } else { + abp.ajax.handleNonAbpErrorResponse(jqXHR, userOptions, $dfd); + } + }); + }).promise(); + + promise['jqXHR'] = xhr; + + return promise; + }; + + $.extend(abp.ajax, { + defaultOpts: { + dataType: 'json', + type: 'POST', + contentType: 'application/json', + headers: { + 'X-Requested-With': 'XMLHttpRequest' + } + }, + + defaultError: { + message: 'An error has occurred!', + details: 'Error detail not sent by server.' + }, + + defaultError401: { + message: 'You are not authenticated!', + details: 'You should be authenticated (sign in) in order to perform this operation.' + }, + + defaultError403: { + message: 'You are not authorized!', + details: 'You are not allowed to perform this operation.' + }, + + defaultError404: { + message: 'Resource not found!', + details: 'The resource requested could not found on the server.' + }, + + logError: function (error) { + abp.log.error(error); + }, + + showError: function (error) { + if (error.details) { + return abp.message.error(error.details, error.message); + } else { + return abp.message.error(error.message || abp.ajax.defaultError.message); + } + }, + + handleTargetUrl: function (targetUrl) { + if (!targetUrl) { + location.href = abp.appPath; + } else { + location.href = targetUrl; + } + }, + + handleErrorStatusCode: function (status) { + switch (status) { + case 401: + abp.ajax.handleUnAuthorizedRequest( + abp.ajax.showError(abp.ajax.defaultError401), + abp.appPath + ); + break; + case 403: + abp.ajax.showError(abp.ajax.defaultError403); + break; + case 404: + abp.ajax.showError(abp.ajax.defaultError404); + break; + default: + abp.ajax.showError(abp.ajax.defaultError); + break; + } + }, + + handleNonAbpErrorResponse: function (jqXHR, userOptions, $dfd) { + if (userOptions.abpHandleError !== false) { + abp.ajax.handleErrorStatusCode(jqXHR.status); + } + + $dfd.reject.apply(this, arguments); + userOptions.error && userOptions.error.apply(this, arguments); + }, + + handleAbpErrorResponse: function (jqXHR, userOptions, $dfd) { + var messagePromise = null; + + if (userOptions.abpHandleError !== false) { + messagePromise = abp.ajax.showError(jqXHR.responseJSON.error); + } + + abp.ajax.logError(jqXHR.responseJSON.error); + + $dfd && $dfd.reject(jqXHR.responseJSON.error, jqXHR); + userOptions.error && userOptions.error(jqXHR.responseJSON.error, jqXHR); + + if (jqXHR.status === 401 && userOptions.abpHandleError !== false) { + abp.ajax.handleUnAuthorizedRequest(messagePromise); + } + }, + + handleUnAuthorizedRequest: function (messagePromise, targetUrl) { + if (messagePromise) { + messagePromise.done(function () { + abp.ajax.handleTargetUrl(targetUrl); + }); + } else { + abp.ajax.handleTargetUrl(targetUrl); + } + }, + + blockUI: function (options) { + if (options.blockUI) { + if (options.blockUI === true) { //block whole page + abp.ui.setBusy(); + } else { //block an element + abp.ui.setBusy(options.blockUI); + } + } + }, + + unblockUI: function (options) { + if (options.blockUI) { + if (options.blockUI === true) { //unblock whole page + abp.ui.clearBusy(); + } else { //unblock an element + abp.ui.clearBusy(options.blockUI); + } + } + }, + + ajaxSendHandler: function (event, request, settings) { + var token = abp.security.antiForgery.getToken(); + if (!token) { + return; + } + + if (!settings.headers || settings.headers[abp.security.antiForgery.tokenHeaderName] === undefined) { + request.setRequestHeader(abp.security.antiForgery.tokenHeaderName, token); + } + } + }); + + $(document).ajaxSend(function (event, request, settings) { + return abp.ajax.ajaxSendHandler(event, request, settings); + }); + + abp.event.on('abp.configurationInitialized', function () { + var l = abp.localization.getResource('AbpUi'); + + abp.ajax.defaultError.message = l('DefaultErrorMessage'); + abp.ajax.defaultError.details = l('DefaultErrorMessageDetail'); + abp.ajax.defaultError401.message = l('DefaultErrorMessage401'); + abp.ajax.defaultError401.details = l('DefaultErrorMessage401Detail'); + abp.ajax.defaultError403.message = l('DefaultErrorMessage403'); + abp.ajax.defaultError403.details = l('DefaultErrorMessage403Detail'); + abp.ajax.defaultError404.message = l('DefaultErrorMessage404'); + abp.ajax.defaultError404.details = l('DefaultErrorMessage404Detail'); + }); + + // RESOURCE LOADER //////////////////////////////////////////////////////// + + /* UrlStates enum */ + var UrlStates = { + LOADING: 'LOADING', + LOADED: 'LOADED', + FAILED: 'FAILED' + }; + + /* UrlInfo class */ + function UrlInfo(url) { + this.url = url; + this.state = UrlStates.LOADING; + this.loadCallbacks = []; + this.failCallbacks = []; + } + + UrlInfo.prototype.succeed = function () { + this.state = UrlStates.LOADED; + for (var i = 0; i < this.loadCallbacks.length; i++) { + this.loadCallbacks[i](); + } + }; + + UrlInfo.prototype.failed = function () { + this.state = UrlStates.FAILED; + for (var i = 0; i < this.failCallbacks.length; i++) { + this.failCallbacks[i](); + } + }; + + UrlInfo.prototype.handleCallbacks = function (loadCallback, failCallback) { + switch (this.state) { + case UrlStates.LOADED: + loadCallback && loadCallback(); + break; + case UrlStates.FAILED: + failCallback && failCallback(); + break; + case UrlStates.LOADING: + this.addCallbacks(loadCallback, failCallback); + break; + } + }; + + UrlInfo.prototype.addCallbacks = function (loadCallback, failCallback) { + loadCallback && this.loadCallbacks.push(loadCallback); + failCallback && this.failCallbacks.push(failCallback); + }; + + /* ResourceLoader API */ + + abp.ResourceLoader = (function () { + + var _urlInfos = {}; + + function getCacheKey(url) { + return url; + } + + function appendTimeToUrl(url) { + + if (url.indexOf('?') < 0) { + url += '?'; + } else { + url += '&'; + } + + url += '_=' + new Date().getTime(); + + return url; + } + + var _loadFromUrl = function (url, loadCallback, failCallback, serverLoader) { + + var cacheKey = getCacheKey(url); + + var urlInfo = _urlInfos[cacheKey]; + + if (urlInfo) { + urlInfo.handleCallbacks(loadCallback, failCallback); + return; + } + + _urlInfos[cacheKey] = urlInfo = new UrlInfo(url); + urlInfo.addCallbacks(loadCallback, failCallback); + + serverLoader(urlInfo); + }; + + var _loadScript = function (url, loadCallback, failCallback) { + _loadFromUrl(url, loadCallback, failCallback, function (urlInfo) { + $.get({ + url: url, + dataType: 'text' + }) + .done(function (script) { + $.globalEval(script); + urlInfo.succeed(); + }) + .fail(function () { + urlInfo.failed(); + }); + }); + }; + + var _loadStyle = function (url) { + _loadFromUrl(url, undefined, undefined, function (urlInfo) { + + $('', { + rel: 'stylesheet', + type: 'text/css', + href: appendTimeToUrl(url) + }).appendTo('head'); + }); + }; + + return { + loadScript: _loadScript, + loadStyle: _loadStyle + } + })(); + +})(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/abp/luxon/abp.luxon.js b/src/API.Web/wwwroot/libs/abp/luxon/abp.luxon.js new file mode 100644 index 0000000..b04de7c --- /dev/null +++ b/src/API.Web/wwwroot/libs/abp/luxon/abp.luxon.js @@ -0,0 +1,46 @@ +var abp = abp || {}; +(function () { + + if (!luxon) { + throw "abp/luxon library requires the luxon library included to the page!"; + } + + /* TIMING *************************************************/ + + abp.timing = abp.timing || {}; + + var setObjectValue = function (obj, property, value) { + if (typeof property === "string") { + property = property.split('.'); + } + + if (property.length > 1) { + var p = property.shift(); + setObjectValue(obj[p], property, value); + } else { + obj[property[0]] = value; + } + } + + var getObjectValue = function (obj, property) { + return property.split('.').reduce((a, v) => a[v], obj) + } + + abp.timing.convertFieldsToIsoDate = function (form, fields) { + for (var field of fields) { + var dateTime = luxon.DateTime + .fromFormat( + getObjectValue(form, field), + abp.localization.currentCulture.dateTimeFormat.shortDatePattern, + {locale: abp.localization.currentCulture.cultureName} + ); + + if (!dateTime.invalid) { + setObjectValue(form, field, dateTime.toFormat("yyyy-MM-dd HH:mm:ss")) + } + } + + return form; + } + +})(jQuery); diff --git a/src/API.Web/wwwroot/libs/abp/utils/abp-utils.umd.js b/src/API.Web/wwwroot/libs/abp/utils/abp-utils.umd.js new file mode 100644 index 0000000..28ebcc3 --- /dev/null +++ b/src/API.Web/wwwroot/libs/abp/utils/abp-utils.umd.js @@ -0,0 +1,694 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('just-compare')) : + typeof define === 'function' && define.amd ? define('@abp/utils', ['exports', 'just-compare'], factory) : + (global = global || self, factory((global.abp = global.abp || {}, global.abp.utils = global.abp.utils || {}, global.abp.utils.common = {}), global.compare)); +}(this, (function (exports, compare) { 'use strict'; + + compare = compare && Object.prototype.hasOwnProperty.call(compare, 'default') ? compare['default'] : compare; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + /* global Reflect, Promise */ + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) + if (b.hasOwnProperty(p)) + d[p] = b[p]; }; + return extendStatics(d, b); + }; + function __extends(d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + } + var __assign = function () { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + function __rest(s, e) { + var t = {}; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; + } + function __decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") + r = Reflect.decorate(decorators, target, key, desc); + else + for (var i = decorators.length - 1; i >= 0; i--) + if (d = decorators[i]) + r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + } + function __param(paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); }; + } + function __metadata(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") + return Reflect.metadata(metadataKey, metadataValue); + } + function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { + step(generator.next(value)); + } + catch (e) { + reject(e); + } } + function rejected(value) { try { + step(generator["throw"](value)); + } + catch (e) { + reject(e); + } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + } + function __generator(thisArg, body) { + var _ = { label: 0, sent: function () { if (t[0] & 1) + throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) + throw new TypeError("Generator is already executing."); + while (_) + try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) + return t; + if (y = 0, t) + op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: + case 1: + t = op; + break; + case 4: + _.label++; + return { value: op[1], done: false }; + case 5: + _.label++; + y = op[1]; + op = [0]; + continue; + case 7: + op = _.ops.pop(); + _.trys.pop(); + continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { + _ = 0; + continue; + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1]; + break; + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } + if (t && _.label < t[2]) { + _.label = t[2]; + _.ops.push(op); + break; + } + if (t[2]) + _.ops.pop(); + _.trys.pop(); + continue; + } + op = body.call(thisArg, _); + } + catch (e) { + op = [6, e]; + y = 0; + } + finally { + f = t = 0; + } + if (op[0] & 5) + throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; + } + } + var __createBinding = Object.create ? (function (o, m, k, k2) { + if (k2 === undefined) + k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function () { return m[k]; } }); + }) : (function (o, m, k, k2) { + if (k2 === undefined) + k2 = k; + o[k2] = m[k]; + }); + function __exportStar(m, exports) { + for (var p in m) + if (p !== "default" && !exports.hasOwnProperty(p)) + __createBinding(exports, m, p); + } + function __values(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) + return m.call(o); + if (o && typeof o.length === "number") + return { + next: function () { + if (o && i >= o.length) + o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + } + function __read(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } + catch (error) { + e = { error: error }; + } + finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } + finally { + if (e) + throw e.error; + } + } + return ar; + } + function __spread() { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(__read(arguments[i])); + return ar; + } + function __spreadArrays() { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) + s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; + } + ; + function __await(v) { + return this instanceof __await ? (this.v = v, this) : new __await(v); + } + function __asyncGenerator(thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) + throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; + function verb(n) { if (g[n]) + i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } + function resume(n, v) { try { + step(g[n](v)); + } + catch (e) { + settle(q[0][3], e); + } } + function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } + function fulfill(value) { resume("next", value); } + function reject(value) { resume("throw", value); } + function settle(f, v) { if (f(v), q.shift(), q.length) + resume(q[0][0], q[0][1]); } + } + function __asyncDelegator(o) { + var i, p; + return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; + function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } + } + function __asyncValues(o) { + if (!Symbol.asyncIterator) + throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); + function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } + function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); } + } + function __makeTemplateObject(cooked, raw) { + if (Object.defineProperty) { + Object.defineProperty(cooked, "raw", { value: raw }); + } + else { + cooked.raw = raw; + } + return cooked; + } + ; + var __setModuleDefault = Object.create ? (function (o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + }) : function (o, v) { + o["default"] = v; + }; + function __importStar(mod) { + if (mod && mod.__esModule) + return mod; + var result = {}; + if (mod != null) + for (var k in mod) + if (Object.hasOwnProperty.call(mod, k)) + __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; + } + function __importDefault(mod) { + return (mod && mod.__esModule) ? mod : { default: mod }; + } + function __classPrivateFieldGet(receiver, privateMap) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to get private field on non-instance"); + } + return privateMap.get(receiver); + } + function __classPrivateFieldSet(receiver, privateMap, value) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to set private field on non-instance"); + } + privateMap.set(receiver, value); + return value; + } + + var ListNode = /** @class */ (function () { + function ListNode(value) { + this.value = value; + } + return ListNode; + }()); + var LinkedList = /** @class */ (function () { + function LinkedList() { + this.size = 0; + } + Object.defineProperty(LinkedList.prototype, "head", { + get: function () { + return this.first; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(LinkedList.prototype, "tail", { + get: function () { + return this.last; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(LinkedList.prototype, "length", { + get: function () { + return this.size; + }, + enumerable: false, + configurable: true + }); + LinkedList.prototype.attach = function (value, previousNode, nextNode) { + if (!previousNode) + return this.addHead(value); + if (!nextNode) + return this.addTail(value); + var node = new ListNode(value); + node.previous = previousNode; + previousNode.next = node; + node.next = nextNode; + nextNode.previous = node; + this.size++; + return node; + }; + LinkedList.prototype.attachMany = function (values, previousNode, nextNode) { + if (!values.length) + return []; + if (!previousNode) + return this.addManyHead(values); + if (!nextNode) + return this.addManyTail(values); + var list = new LinkedList(); + list.addManyTail(values); + list.first.previous = previousNode; + previousNode.next = list.first; + list.last.next = nextNode; + nextNode.previous = list.last; + this.size += values.length; + return list.toNodeArray(); + }; + LinkedList.prototype.detach = function (node) { + if (!node.previous) + return this.dropHead(); + if (!node.next) + return this.dropTail(); + node.previous.next = node.next; + node.next.previous = node.previous; + this.size--; + return node; + }; + LinkedList.prototype.add = function (value) { + var _this = this; + return { + after: function () { + var _a; + var params = []; + for (var _i = 0; _i < arguments.length; _i++) { + params[_i] = arguments[_i]; + } + return (_a = _this.addAfter).call.apply(_a, __spread([_this, value], params)); + }, + before: function () { + var _a; + var params = []; + for (var _i = 0; _i < arguments.length; _i++) { + params[_i] = arguments[_i]; + } + return (_a = _this.addBefore).call.apply(_a, __spread([_this, value], params)); + }, + byIndex: function (position) { return _this.addByIndex(value, position); }, + head: function () { return _this.addHead(value); }, + tail: function () { return _this.addTail(value); }, + }; + }; + LinkedList.prototype.addMany = function (values) { + var _this = this; + return { + after: function () { + var _a; + var params = []; + for (var _i = 0; _i < arguments.length; _i++) { + params[_i] = arguments[_i]; + } + return (_a = _this.addManyAfter).call.apply(_a, __spread([_this, values], params)); + }, + before: function () { + var _a; + var params = []; + for (var _i = 0; _i < arguments.length; _i++) { + params[_i] = arguments[_i]; + } + return (_a = _this.addManyBefore).call.apply(_a, __spread([_this, values], params)); + }, + byIndex: function (position) { return _this.addManyByIndex(values, position); }, + head: function () { return _this.addManyHead(values); }, + tail: function () { return _this.addManyTail(values); }, + }; + }; + LinkedList.prototype.addAfter = function (value, previousValue, compareFn) { + if (compareFn === void 0) { compareFn = compare; } + var previous = this.find(function (node) { return compareFn(node.value, previousValue); }); + return previous ? this.attach(value, previous, previous.next) : this.addTail(value); + }; + LinkedList.prototype.addBefore = function (value, nextValue, compareFn) { + if (compareFn === void 0) { compareFn = compare; } + var next = this.find(function (node) { return compareFn(node.value, nextValue); }); + return next ? this.attach(value, next.previous, next) : this.addHead(value); + }; + LinkedList.prototype.addByIndex = function (value, position) { + if (position < 0) + position += this.size; + else if (position >= this.size) + return this.addTail(value); + if (position <= 0) + return this.addHead(value); + var next = this.get(position); + return this.attach(value, next.previous, next); + }; + LinkedList.prototype.addHead = function (value) { + var node = new ListNode(value); + node.next = this.first; + if (this.first) + this.first.previous = node; + else + this.last = node; + this.first = node; + this.size++; + return node; + }; + LinkedList.prototype.addTail = function (value) { + var node = new ListNode(value); + if (this.first) { + node.previous = this.last; + this.last.next = node; + this.last = node; + } + else { + this.first = node; + this.last = node; + } + this.size++; + return node; + }; + LinkedList.prototype.addManyAfter = function (values, previousValue, compareFn) { + if (compareFn === void 0) { compareFn = compare; } + var previous = this.find(function (node) { return compareFn(node.value, previousValue); }); + return previous ? this.attachMany(values, previous, previous.next) : this.addManyTail(values); + }; + LinkedList.prototype.addManyBefore = function (values, nextValue, compareFn) { + if (compareFn === void 0) { compareFn = compare; } + var next = this.find(function (node) { return compareFn(node.value, nextValue); }); + return next ? this.attachMany(values, next.previous, next) : this.addManyHead(values); + }; + LinkedList.prototype.addManyByIndex = function (values, position) { + if (position < 0) + position += this.size; + if (position <= 0) + return this.addManyHead(values); + if (position >= this.size) + return this.addManyTail(values); + var next = this.get(position); + return this.attachMany(values, next.previous, next); + }; + LinkedList.prototype.addManyHead = function (values) { + var _this = this; + return values.reduceRight(function (nodes, value) { + nodes.unshift(_this.addHead(value)); + return nodes; + }, []); + }; + LinkedList.prototype.addManyTail = function (values) { + var _this = this; + return values.map(function (value) { return _this.addTail(value); }); + }; + LinkedList.prototype.drop = function () { + var _this = this; + return { + byIndex: function (position) { return _this.dropByIndex(position); }, + byValue: function () { + var params = []; + for (var _i = 0; _i < arguments.length; _i++) { + params[_i] = arguments[_i]; + } + return _this.dropByValue.apply(_this, params); + }, + byValueAll: function () { + var params = []; + for (var _i = 0; _i < arguments.length; _i++) { + params[_i] = arguments[_i]; + } + return _this.dropByValueAll.apply(_this, params); + }, + head: function () { return _this.dropHead(); }, + tail: function () { return _this.dropTail(); }, + }; + }; + LinkedList.prototype.dropMany = function (count) { + var _this = this; + return { + byIndex: function (position) { return _this.dropManyByIndex(count, position); }, + head: function () { return _this.dropManyHead(count); }, + tail: function () { return _this.dropManyTail(count); }, + }; + }; + LinkedList.prototype.dropByIndex = function (position) { + if (position < 0) + position += this.size; + var current = this.get(position); + return current ? this.detach(current) : undefined; + }; + LinkedList.prototype.dropByValue = function (value, compareFn) { + if (compareFn === void 0) { compareFn = compare; } + var position = this.findIndex(function (node) { return compareFn(node.value, value); }); + return position < 0 ? undefined : this.dropByIndex(position); + }; + LinkedList.prototype.dropByValueAll = function (value, compareFn) { + if (compareFn === void 0) { compareFn = compare; } + var dropped = []; + for (var current = this.first, position = 0; current; position++, current = current.next) { + if (compareFn(current.value, value)) { + dropped.push(this.dropByIndex(position - dropped.length)); + } + } + return dropped; + }; + LinkedList.prototype.dropHead = function () { + var head = this.first; + if (head) { + this.first = head.next; + if (this.first) + this.first.previous = undefined; + else + this.last = undefined; + this.size--; + return head; + } + return undefined; + }; + LinkedList.prototype.dropTail = function () { + var tail = this.last; + if (tail) { + this.last = tail.previous; + if (this.last) + this.last.next = undefined; + else + this.first = undefined; + this.size--; + return tail; + } + return undefined; + }; + LinkedList.prototype.dropManyByIndex = function (count, position) { + if (count <= 0) + return []; + if (position < 0) + position = Math.max(position + this.size, 0); + else if (position >= this.size) + return []; + count = Math.min(count, this.size - position); + var dropped = []; + while (count--) { + var current = this.get(position); + dropped.push(this.detach(current)); + } + return dropped; + }; + LinkedList.prototype.dropManyHead = function (count) { + if (count <= 0) + return []; + count = Math.min(count, this.size); + var dropped = []; + while (count--) + dropped.unshift(this.dropHead()); + return dropped; + }; + LinkedList.prototype.dropManyTail = function (count) { + if (count <= 0) + return []; + count = Math.min(count, this.size); + var dropped = []; + while (count--) + dropped.push(this.dropTail()); + return dropped; + }; + LinkedList.prototype.find = function (predicate) { + for (var current = this.first, position = 0; current; position++, current = current.next) { + if (predicate(current, position, this)) + return current; + } + return undefined; + }; + LinkedList.prototype.findIndex = function (predicate) { + for (var current = this.first, position = 0; current; position++, current = current.next) { + if (predicate(current, position, this)) + return position; + } + return -1; + }; + LinkedList.prototype.forEach = function (iteratorFn) { + for (var node = this.first, position = 0; node; position++, node = node.next) { + iteratorFn(node, position, this); + } + }; + LinkedList.prototype.get = function (position) { + return this.find(function (_, index) { return position === index; }); + }; + LinkedList.prototype.indexOf = function (value, compareFn) { + if (compareFn === void 0) { compareFn = compare; } + return this.findIndex(function (node) { return compareFn(node.value, value); }); + }; + LinkedList.prototype.toArray = function () { + var array = new Array(this.size); + this.forEach(function (node, index) { return (array[index] = node.value); }); + return array; + }; + LinkedList.prototype.toNodeArray = function () { + var array = new Array(this.size); + this.forEach(function (node, index) { return (array[index] = node); }); + return array; + }; + LinkedList.prototype.toString = function (mapperFn) { + if (mapperFn === void 0) { mapperFn = JSON.stringify; } + return this.toArray() + .map(function (value) { return mapperFn(value); }) + .join(' <-> '); + }; + // Cannot use Generator type because of ng-packagr + LinkedList.prototype[Symbol.iterator] = function () { + var node, position; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + node = this.first, position = 0; + _a.label = 1; + case 1: + if (!node) return [3 /*break*/, 4]; + return [4 /*yield*/, node.value]; + case 2: + _a.sent(); + _a.label = 3; + case 3: + position++, node = node.next; + return [3 /*break*/, 1]; + case 4: return [2 /*return*/]; + } + }); + }; + return LinkedList; + }()); + + /* + * Public API Surface of utils + */ + + /** + * Generated bundle index. Do not edit. + */ + + exports.LinkedList = LinkedList; + exports.ListNode = ListNode; + + Object.defineProperty(exports, '__esModule', { value: true }); + +}))); +//# sourceMappingURL=abp-utils.umd.js.map diff --git a/src/API.Web/wwwroot/libs/abp/utils/abp-utils.umd.js.map b/src/API.Web/wwwroot/libs/abp/utils/abp-utils.umd.js.map new file mode 100644 index 0000000..2c5d45d --- /dev/null +++ b/src/API.Web/wwwroot/libs/abp/utils/abp-utils.umd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"abp-utils.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","../../projects/utils/src/lib/linked-list.ts","../../projects/utils/src/public-api.ts","../../projects/utils/src/abp-utils.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/* tslint:disable:no-non-null-assertion */\n\nimport compare from 'just-compare';\n\nexport class ListNode {\n next: ListNode | undefined;\n previous: ListNode | undefined;\n constructor(public readonly value: T) {}\n}\n\nexport class LinkedList {\n private first: ListNode | undefined;\n private last: ListNode | undefined;\n private size = 0;\n\n get head(): ListNode | undefined {\n return this.first;\n }\n get tail(): ListNode | undefined {\n return this.last;\n }\n get length(): number {\n return this.size;\n }\n\n private attach(\n value: T,\n previousNode: ListNode | undefined,\n nextNode: ListNode | undefined,\n ): ListNode {\n if (!previousNode) return this.addHead(value);\n\n if (!nextNode) return this.addTail(value);\n\n const node = new ListNode(value);\n node.previous = previousNode;\n previousNode.next = node;\n node.next = nextNode;\n nextNode.previous = node;\n\n this.size++;\n\n return node;\n }\n\n private attachMany(\n values: T[],\n previousNode: ListNode | undefined,\n nextNode: ListNode | undefined,\n ): ListNode[] {\n if (!values.length) return [];\n\n if (!previousNode) return this.addManyHead(values);\n\n if (!nextNode) return this.addManyTail(values);\n\n const list = new LinkedList();\n list.addManyTail(values);\n list.first!.previous = previousNode;\n previousNode.next = list.first;\n list.last!.next = nextNode;\n nextNode.previous = list.last;\n\n this.size += values.length;\n\n return list.toNodeArray();\n }\n\n private detach(node: ListNode) {\n if (!node.previous) return this.dropHead();\n\n if (!node.next) return this.dropTail();\n\n node.previous.next = node.next;\n node.next.previous = node.previous;\n\n this.size--;\n\n return node;\n }\n\n add(value: T) {\n return {\n after: (...params: [T] | [any, ListComparisonFn]) =>\n this.addAfter.call(this, value, ...params),\n before: (...params: [T] | [any, ListComparisonFn]) =>\n this.addBefore.call(this, value, ...params),\n byIndex: (position: number) => this.addByIndex(value, position),\n head: () => this.addHead(value),\n tail: () => this.addTail(value),\n };\n }\n\n addMany(values: T[]) {\n return {\n after: (...params: [T] | [any, ListComparisonFn]) =>\n this.addManyAfter.call(this, values, ...params),\n before: (...params: [T] | [any, ListComparisonFn]) =>\n this.addManyBefore.call(this, values, ...params),\n byIndex: (position: number) => this.addManyByIndex(values, position),\n head: () => this.addManyHead(values),\n tail: () => this.addManyTail(values),\n };\n }\n\n addAfter(value: T, previousValue: T): ListNode;\n addAfter(value: T, previousValue: any, compareFn: ListComparisonFn): ListNode;\n addAfter(value: T, previousValue: any, compareFn: ListComparisonFn = compare): ListNode {\n const previous = this.find(node => compareFn(node.value, previousValue));\n\n return previous ? this.attach(value, previous, previous.next) : this.addTail(value);\n }\n\n addBefore(value: T, nextValue: T): ListNode;\n addBefore(value: T, nextValue: any, compareFn: ListComparisonFn): ListNode;\n addBefore(value: T, nextValue: any, compareFn: ListComparisonFn = compare): ListNode {\n const next = this.find(node => compareFn(node.value, nextValue));\n\n return next ? this.attach(value, next.previous, next) : this.addHead(value);\n }\n\n addByIndex(value: T, position: number): ListNode {\n if (position < 0) position += this.size;\n else if (position >= this.size) return this.addTail(value);\n\n if (position <= 0) return this.addHead(value);\n\n const next = this.get(position)!;\n\n return this.attach(value, next.previous, next);\n }\n\n addHead(value: T): ListNode {\n const node = new ListNode(value);\n\n node.next = this.first;\n\n if (this.first) this.first.previous = node;\n else this.last = node;\n\n this.first = node;\n this.size++;\n\n return node;\n }\n\n addTail(value: T): ListNode {\n const node = new ListNode(value);\n\n if (this.first) {\n node.previous = this.last;\n this.last!.next = node;\n this.last = node;\n } else {\n this.first = node;\n this.last = node;\n }\n\n this.size++;\n\n return node;\n }\n\n addManyAfter(values: T[], previousValue: T): ListNode[];\n addManyAfter(values: T[], previousValue: any, compareFn: ListComparisonFn): ListNode[];\n addManyAfter(\n values: T[],\n previousValue: any,\n compareFn: ListComparisonFn = compare,\n ): ListNode[] {\n const previous = this.find(node => compareFn(node.value, previousValue));\n\n return previous ? this.attachMany(values, previous, previous.next) : this.addManyTail(values);\n }\n\n addManyBefore(values: T[], nextValue: T): ListNode[];\n addManyBefore(values: T[], nextValue: any, compareFn: ListComparisonFn): ListNode[];\n addManyBefore(\n values: T[],\n nextValue: any,\n compareFn: ListComparisonFn = compare,\n ): ListNode[] {\n const next = this.find(node => compareFn(node.value, nextValue));\n\n return next ? this.attachMany(values, next.previous, next) : this.addManyHead(values);\n }\n\n addManyByIndex(values: T[], position: number): ListNode[] {\n if (position < 0) position += this.size;\n\n if (position <= 0) return this.addManyHead(values);\n\n if (position >= this.size) return this.addManyTail(values);\n\n const next = this.get(position)!;\n\n return this.attachMany(values, next.previous, next);\n }\n\n addManyHead(values: T[]): ListNode[] {\n return values.reduceRight[]>((nodes, value) => {\n nodes.unshift(this.addHead(value));\n return nodes;\n }, []);\n }\n\n addManyTail(values: T[]): ListNode[] {\n return values.map(value => this.addTail(value));\n }\n\n drop() {\n return {\n byIndex: (position: number) => this.dropByIndex(position),\n byValue: (...params: [T] | [any, ListComparisonFn]) =>\n this.dropByValue.apply(this, params),\n byValueAll: (...params: [T] | [any, ListComparisonFn]) =>\n this.dropByValueAll.apply(this, params),\n head: () => this.dropHead(),\n tail: () => this.dropTail(),\n };\n }\n\n dropMany(count: number) {\n return {\n byIndex: (position: number) => this.dropManyByIndex(count, position),\n head: () => this.dropManyHead(count),\n tail: () => this.dropManyTail(count),\n };\n }\n\n dropByIndex(position: number): ListNode | undefined {\n if (position < 0) position += this.size;\n\n const current = this.get(position);\n\n return current ? this.detach(current) : undefined;\n }\n\n dropByValue(value: T): ListNode | undefined;\n dropByValue(value: any, compareFn: ListComparisonFn): ListNode | undefined;\n dropByValue(value: any, compareFn: ListComparisonFn = compare): ListNode | undefined {\n const position = this.findIndex(node => compareFn(node.value, value));\n\n return position < 0 ? undefined : this.dropByIndex(position);\n }\n\n dropByValueAll(value: T): ListNode[];\n dropByValueAll(value: any, compareFn: ListComparisonFn): ListNode[];\n dropByValueAll(value: any, compareFn: ListComparisonFn = compare): ListNode[] {\n const dropped: ListNode[] = [];\n\n for (let current = this.first, position = 0; current; position++, current = current.next) {\n if (compareFn(current.value, value)) {\n dropped.push(this.dropByIndex(position - dropped.length)!);\n }\n }\n\n return dropped;\n }\n\n dropHead(): ListNode | undefined {\n const head = this.first;\n\n if (head) {\n this.first = head.next;\n\n if (this.first) this.first.previous = undefined;\n else this.last = undefined;\n\n this.size--;\n\n return head;\n }\n\n return undefined;\n }\n\n dropTail(): ListNode | undefined {\n const tail = this.last;\n\n if (tail) {\n this.last = tail.previous;\n\n if (this.last) this.last.next = undefined;\n else this.first = undefined;\n\n this.size--;\n\n return tail;\n }\n\n return undefined;\n }\n\n dropManyByIndex(count: number, position: number): ListNode[] {\n if (count <= 0) return [];\n\n if (position < 0) position = Math.max(position + this.size, 0);\n else if (position >= this.size) return [];\n\n count = Math.min(count, this.size - position);\n\n const dropped: ListNode[] = [];\n\n while (count--) {\n const current = this.get(position);\n dropped.push(this.detach(current!)!);\n }\n\n return dropped;\n }\n\n dropManyHead(count: Exclude): ListNode[] {\n if (count <= 0) return [];\n\n count = Math.min(count, this.size);\n\n const dropped: ListNode[] = [];\n\n while (count--) dropped.unshift(this.dropHead()!);\n\n return dropped;\n }\n\n dropManyTail(count: Exclude): ListNode[] {\n if (count <= 0) return [];\n\n count = Math.min(count, this.size);\n\n const dropped: ListNode[] = [];\n\n while (count--) dropped.push(this.dropTail()!);\n\n return dropped;\n }\n\n find(predicate: ListIteratorFn): ListNode | undefined {\n for (let current = this.first, position = 0; current; position++, current = current.next) {\n if (predicate(current, position, this)) return current;\n }\n\n return undefined;\n }\n\n findIndex(predicate: ListIteratorFn): number {\n for (let current = this.first, position = 0; current; position++, current = current.next) {\n if (predicate(current, position, this)) return position;\n }\n\n return -1;\n }\n\n forEach(iteratorFn: ListIteratorFn) {\n for (let node = this.first, position = 0; node; position++, node = node.next) {\n iteratorFn(node, position, this);\n }\n }\n\n get(position: number): ListNode | undefined {\n return this.find((_, index) => position === index);\n }\n\n indexOf(value: T): number;\n indexOf(value: any, compareFn: ListComparisonFn): number;\n indexOf(value: any, compareFn: ListComparisonFn = compare): number {\n return this.findIndex(node => compareFn(node.value, value));\n }\n\n toArray(): T[] {\n const array = new Array(this.size);\n\n this.forEach((node, index) => (array[index!] = node.value));\n\n return array;\n }\n\n toNodeArray(): ListNode[] {\n const array = new Array(this.size);\n\n this.forEach((node, index) => (array[index!] = node));\n\n return array;\n }\n\n toString(mapperFn: ListMapperFn = JSON.stringify): string {\n return this.toArray()\n .map(value => mapperFn(value))\n .join(' <-> ');\n }\n\n // Cannot use Generator type because of ng-packagr\n *[Symbol.iterator](): any {\n for (let node = this.first, position = 0; node; position++, node = node.next) {\n yield node.value;\n }\n }\n}\n\nexport type ListMapperFn = (value: T) => any;\n\nexport type ListComparisonFn = (value1: T, value2: any) => boolean;\n\nexport type ListIteratorFn = (\n node: ListNode,\n index?: number,\n list?: LinkedList,\n) => R;\n","/*\n * Public API Surface of utils\n */\n\nexport * from './lib/linked-list';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/abp/utils/abp-utils.umd.min.js b/src/API.Web/wwwroot/libs/abp/utils/abp-utils.umd.min.js new file mode 100644 index 0000000..57b22e5 --- /dev/null +++ b/src/API.Web/wwwroot/libs/abp/utils/abp-utils.umd.min.js @@ -0,0 +1,2 @@ +!function(t,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("just-compare")):"function"==typeof define&&define.amd?define("@abp/utils",["exports","just-compare"],r):r(((t=t||self).abp=t.abp||{},t.abp.utils=t.abp.utils||{},t.abp.utils.common={}),t.compare)}(this,(function(t,r){"use strict";r=r&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r;function e(t,r){var e,n,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function u(o){return function(u){return function(o){if(e)throw new TypeError("Generator is already executing.");for(;a;)try{if(e=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,n=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0)&&!(n=o.next()).done;)a.push(n.value)}catch(t){i={error:t}}finally{try{n&&!n.done&&(e=o.return)&&e.call(o)}finally{if(i)throw i.error}}return a}function i(){for(var t=[],r=0;r=this.size)return this.addTail(t);if(r<=0)return this.addHead(t);var e=this.get(r);return this.attach(t,e.previous,e)},t.prototype.addHead=function(t){var r=new o(t);return r.next=this.first,this.first?this.first.previous=r:this.last=r,this.first=r,this.size++,r},t.prototype.addTail=function(t){var r=new o(t);return this.first?(r.previous=this.last,this.last.next=r,this.last=r):(this.first=r,this.last=r),this.size++,r},t.prototype.addManyAfter=function(t,e,n){void 0===n&&(n=r);var i=this.find((function(t){return n(t.value,e)}));return i?this.attachMany(t,i,i.next):this.addManyTail(t)},t.prototype.addManyBefore=function(t,e,n){void 0===n&&(n=r);var i=this.find((function(t){return n(t.value,e)}));return i?this.attachMany(t,i.previous,i):this.addManyHead(t)},t.prototype.addManyByIndex=function(t,r){if(r<0&&(r+=this.size),r<=0)return this.addManyHead(t);if(r>=this.size)return this.addManyTail(t);var e=this.get(r);return this.attachMany(t,e.previous,e)},t.prototype.addManyHead=function(t){var r=this;return t.reduceRight((function(t,e){return t.unshift(r.addHead(e)),t}),[])},t.prototype.addManyTail=function(t){var r=this;return t.map((function(t){return r.addTail(t)}))},t.prototype.drop=function(){var t=this;return{byIndex:function(r){return t.dropByIndex(r)},byValue:function(){for(var r=[],e=0;e=this.size)return[];t=Math.min(t,this.size-r);for(var e=[];t--;){var n=this.get(r);e.push(this.detach(n))}return e},t.prototype.dropManyHead=function(t){if(t<=0)return[];t=Math.min(t,this.size);for(var r=[];t--;)r.unshift(this.dropHead());return r},t.prototype.dropManyTail=function(t){if(t<=0)return[];t=Math.min(t,this.size);for(var r=[];t--;)r.push(this.dropTail());return r},t.prototype.find=function(t){for(var r=this.first,e=0;r;e++,r=r.next)if(t(r,e,this))return r},t.prototype.findIndex=function(t){for(var r=this.first,e=0;r;e++,r=r.next)if(t(r,e,this))return e;return-1},t.prototype.forEach=function(t){for(var r=this.first,e=0;r;e++,r=r.next)t(r,e,this)},t.prototype.get=function(t){return this.find((function(r,e){return t===e}))},t.prototype.indexOf=function(t,e){return void 0===e&&(e=r),this.findIndex((function(r){return e(r.value,t)}))},t.prototype.toArray=function(){var t=new Array(this.size);return this.forEach((function(r,e){return t[e]=r.value})),t},t.prototype.toNodeArray=function(){var t=new Array(this.size);return this.forEach((function(r,e){return t[e]=r})),t},t.prototype.toString=function(t){return void 0===t&&(t=JSON.stringify),this.toArray().map((function(r){return t(r)})).join(" <-> ")},t.prototype[Symbol.iterator]=function(){var t;return e(this,(function(r){switch(r.label){case 0:t=this.first,0,r.label=1;case 1:return t?[4,t.value]:[3,4];case 2:r.sent(),r.label=3;case 3:return t=t.next,[3,1];case 4:return[2]}}))},t}();t.LinkedList=a,t.ListNode=o,Object.defineProperty(t,"__esModule",{value:!0})})); +//# sourceMappingURL=abp-utils.umd.min.js.map \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/abp/utils/abp-utils.umd.min.js.map b/src/API.Web/wwwroot/libs/abp/utils/abp-utils.umd.min.js.map new file mode 100644 index 0000000..b4e4d3e --- /dev/null +++ b/src/API.Web/wwwroot/libs/abp/utils/abp-utils.umd.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","../../projects/utils/src/lib/linked-list.ts"],"names":["__generator","thisArg","body","f","y","t","g","_","label","sent","trys","ops","next","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","done","value","pop","length","push","e","step","Object","create","__read","o","m","r","i","ar","error","__spread","arguments","concat","LinkedList","size","defineProperty","prototype","first","last","attach","previousNode","nextNode","addHead","addTail","node","ListNode","previous","attachMany","values","addManyHead","addManyTail","list","toNodeArray","detach","dropTail","dropHead","add","_this","after","params","_i","_a","addAfter","apply","before","addBefore","byIndex","position","addByIndex","head","tail","addMany","addManyAfter","addManyBefore","addManyByIndex","previousValue","compareFn","compare","find","nextValue","get","reduceRight","nodes","unshift","map","drop","dropByIndex","byValue","dropByValue","byValueAll","dropByValueAll","dropMany","count","dropManyByIndex","dropManyHead","dropManyTail","current","undefined","findIndex","dropped","Math","max","min","predicate","forEach","iteratorFn","index","indexOf","toArray","array","Array","toString","mapperFn","JSON","stringify","join"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/* tslint:disable:no-non-null-assertion */\n\nimport compare from 'just-compare';\n\nexport class ListNode {\n next: ListNode | undefined;\n previous: ListNode | undefined;\n constructor(public readonly value: T) {}\n}\n\nexport class LinkedList {\n private first: ListNode | undefined;\n private last: ListNode | undefined;\n private size = 0;\n\n get head(): ListNode | undefined {\n return this.first;\n }\n get tail(): ListNode | undefined {\n return this.last;\n }\n get length(): number {\n return this.size;\n }\n\n private attach(\n value: T,\n previousNode: ListNode | undefined,\n nextNode: ListNode | undefined,\n ): ListNode {\n if (!previousNode) return this.addHead(value);\n\n if (!nextNode) return this.addTail(value);\n\n const node = new ListNode(value);\n node.previous = previousNode;\n previousNode.next = node;\n node.next = nextNode;\n nextNode.previous = node;\n\n this.size++;\n\n return node;\n }\n\n private attachMany(\n values: T[],\n previousNode: ListNode | undefined,\n nextNode: ListNode | undefined,\n ): ListNode[] {\n if (!values.length) return [];\n\n if (!previousNode) return this.addManyHead(values);\n\n if (!nextNode) return this.addManyTail(values);\n\n const list = new LinkedList();\n list.addManyTail(values);\n list.first!.previous = previousNode;\n previousNode.next = list.first;\n list.last!.next = nextNode;\n nextNode.previous = list.last;\n\n this.size += values.length;\n\n return list.toNodeArray();\n }\n\n private detach(node: ListNode) {\n if (!node.previous) return this.dropHead();\n\n if (!node.next) return this.dropTail();\n\n node.previous.next = node.next;\n node.next.previous = node.previous;\n\n this.size--;\n\n return node;\n }\n\n add(value: T) {\n return {\n after: (...params: [T] | [any, ListComparisonFn]) =>\n this.addAfter.call(this, value, ...params),\n before: (...params: [T] | [any, ListComparisonFn]) =>\n this.addBefore.call(this, value, ...params),\n byIndex: (position: number) => this.addByIndex(value, position),\n head: () => this.addHead(value),\n tail: () => this.addTail(value),\n };\n }\n\n addMany(values: T[]) {\n return {\n after: (...params: [T] | [any, ListComparisonFn]) =>\n this.addManyAfter.call(this, values, ...params),\n before: (...params: [T] | [any, ListComparisonFn]) =>\n this.addManyBefore.call(this, values, ...params),\n byIndex: (position: number) => this.addManyByIndex(values, position),\n head: () => this.addManyHead(values),\n tail: () => this.addManyTail(values),\n };\n }\n\n addAfter(value: T, previousValue: T): ListNode;\n addAfter(value: T, previousValue: any, compareFn: ListComparisonFn): ListNode;\n addAfter(value: T, previousValue: any, compareFn: ListComparisonFn = compare): ListNode {\n const previous = this.find(node => compareFn(node.value, previousValue));\n\n return previous ? this.attach(value, previous, previous.next) : this.addTail(value);\n }\n\n addBefore(value: T, nextValue: T): ListNode;\n addBefore(value: T, nextValue: any, compareFn: ListComparisonFn): ListNode;\n addBefore(value: T, nextValue: any, compareFn: ListComparisonFn = compare): ListNode {\n const next = this.find(node => compareFn(node.value, nextValue));\n\n return next ? this.attach(value, next.previous, next) : this.addHead(value);\n }\n\n addByIndex(value: T, position: number): ListNode {\n if (position < 0) position += this.size;\n else if (position >= this.size) return this.addTail(value);\n\n if (position <= 0) return this.addHead(value);\n\n const next = this.get(position)!;\n\n return this.attach(value, next.previous, next);\n }\n\n addHead(value: T): ListNode {\n const node = new ListNode(value);\n\n node.next = this.first;\n\n if (this.first) this.first.previous = node;\n else this.last = node;\n\n this.first = node;\n this.size++;\n\n return node;\n }\n\n addTail(value: T): ListNode {\n const node = new ListNode(value);\n\n if (this.first) {\n node.previous = this.last;\n this.last!.next = node;\n this.last = node;\n } else {\n this.first = node;\n this.last = node;\n }\n\n this.size++;\n\n return node;\n }\n\n addManyAfter(values: T[], previousValue: T): ListNode[];\n addManyAfter(values: T[], previousValue: any, compareFn: ListComparisonFn): ListNode[];\n addManyAfter(\n values: T[],\n previousValue: any,\n compareFn: ListComparisonFn = compare,\n ): ListNode[] {\n const previous = this.find(node => compareFn(node.value, previousValue));\n\n return previous ? this.attachMany(values, previous, previous.next) : this.addManyTail(values);\n }\n\n addManyBefore(values: T[], nextValue: T): ListNode[];\n addManyBefore(values: T[], nextValue: any, compareFn: ListComparisonFn): ListNode[];\n addManyBefore(\n values: T[],\n nextValue: any,\n compareFn: ListComparisonFn = compare,\n ): ListNode[] {\n const next = this.find(node => compareFn(node.value, nextValue));\n\n return next ? this.attachMany(values, next.previous, next) : this.addManyHead(values);\n }\n\n addManyByIndex(values: T[], position: number): ListNode[] {\n if (position < 0) position += this.size;\n\n if (position <= 0) return this.addManyHead(values);\n\n if (position >= this.size) return this.addManyTail(values);\n\n const next = this.get(position)!;\n\n return this.attachMany(values, next.previous, next);\n }\n\n addManyHead(values: T[]): ListNode[] {\n return values.reduceRight[]>((nodes, value) => {\n nodes.unshift(this.addHead(value));\n return nodes;\n }, []);\n }\n\n addManyTail(values: T[]): ListNode[] {\n return values.map(value => this.addTail(value));\n }\n\n drop() {\n return {\n byIndex: (position: number) => this.dropByIndex(position),\n byValue: (...params: [T] | [any, ListComparisonFn]) =>\n this.dropByValue.apply(this, params),\n byValueAll: (...params: [T] | [any, ListComparisonFn]) =>\n this.dropByValueAll.apply(this, params),\n head: () => this.dropHead(),\n tail: () => this.dropTail(),\n };\n }\n\n dropMany(count: number) {\n return {\n byIndex: (position: number) => this.dropManyByIndex(count, position),\n head: () => this.dropManyHead(count),\n tail: () => this.dropManyTail(count),\n };\n }\n\n dropByIndex(position: number): ListNode | undefined {\n if (position < 0) position += this.size;\n\n const current = this.get(position);\n\n return current ? this.detach(current) : undefined;\n }\n\n dropByValue(value: T): ListNode | undefined;\n dropByValue(value: any, compareFn: ListComparisonFn): ListNode | undefined;\n dropByValue(value: any, compareFn: ListComparisonFn = compare): ListNode | undefined {\n const position = this.findIndex(node => compareFn(node.value, value));\n\n return position < 0 ? undefined : this.dropByIndex(position);\n }\n\n dropByValueAll(value: T): ListNode[];\n dropByValueAll(value: any, compareFn: ListComparisonFn): ListNode[];\n dropByValueAll(value: any, compareFn: ListComparisonFn = compare): ListNode[] {\n const dropped: ListNode[] = [];\n\n for (let current = this.first, position = 0; current; position++, current = current.next) {\n if (compareFn(current.value, value)) {\n dropped.push(this.dropByIndex(position - dropped.length)!);\n }\n }\n\n return dropped;\n }\n\n dropHead(): ListNode | undefined {\n const head = this.first;\n\n if (head) {\n this.first = head.next;\n\n if (this.first) this.first.previous = undefined;\n else this.last = undefined;\n\n this.size--;\n\n return head;\n }\n\n return undefined;\n }\n\n dropTail(): ListNode | undefined {\n const tail = this.last;\n\n if (tail) {\n this.last = tail.previous;\n\n if (this.last) this.last.next = undefined;\n else this.first = undefined;\n\n this.size--;\n\n return tail;\n }\n\n return undefined;\n }\n\n dropManyByIndex(count: number, position: number): ListNode[] {\n if (count <= 0) return [];\n\n if (position < 0) position = Math.max(position + this.size, 0);\n else if (position >= this.size) return [];\n\n count = Math.min(count, this.size - position);\n\n const dropped: ListNode[] = [];\n\n while (count--) {\n const current = this.get(position);\n dropped.push(this.detach(current!)!);\n }\n\n return dropped;\n }\n\n dropManyHead(count: Exclude): ListNode[] {\n if (count <= 0) return [];\n\n count = Math.min(count, this.size);\n\n const dropped: ListNode[] = [];\n\n while (count--) dropped.unshift(this.dropHead()!);\n\n return dropped;\n }\n\n dropManyTail(count: Exclude): ListNode[] {\n if (count <= 0) return [];\n\n count = Math.min(count, this.size);\n\n const dropped: ListNode[] = [];\n\n while (count--) dropped.push(this.dropTail()!);\n\n return dropped;\n }\n\n find(predicate: ListIteratorFn): ListNode | undefined {\n for (let current = this.first, position = 0; current; position++, current = current.next) {\n if (predicate(current, position, this)) return current;\n }\n\n return undefined;\n }\n\n findIndex(predicate: ListIteratorFn): number {\n for (let current = this.first, position = 0; current; position++, current = current.next) {\n if (predicate(current, position, this)) return position;\n }\n\n return -1;\n }\n\n forEach(iteratorFn: ListIteratorFn) {\n for (let node = this.first, position = 0; node; position++, node = node.next) {\n iteratorFn(node, position, this);\n }\n }\n\n get(position: number): ListNode | undefined {\n return this.find((_, index) => position === index);\n }\n\n indexOf(value: T): number;\n indexOf(value: any, compareFn: ListComparisonFn): number;\n indexOf(value: any, compareFn: ListComparisonFn = compare): number {\n return this.findIndex(node => compareFn(node.value, value));\n }\n\n toArray(): T[] {\n const array = new Array(this.size);\n\n this.forEach((node, index) => (array[index!] = node.value));\n\n return array;\n }\n\n toNodeArray(): ListNode[] {\n const array = new Array(this.size);\n\n this.forEach((node, index) => (array[index!] = node));\n\n return array;\n }\n\n toString(mapperFn: ListMapperFn = JSON.stringify): string {\n return this.toArray()\n .map(value => mapperFn(value))\n .join(' <-> ');\n }\n\n // Cannot use Generator type because of ng-packagr\n *[Symbol.iterator](): any {\n for (let node = this.first, position = 0; node; position++, node = node.next) {\n yield node.value;\n }\n }\n}\n\nexport type ListMapperFn = (value: T) => any;\n\nexport type ListComparisonFn = (value1: T, value2: any) => boolean;\n\nexport type ListIteratorFn = (\n node: ListNode,\n index?: number,\n list?: LinkedList,\n) => R;\n"]} \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/bootstrap-datepicker.css.map b/src/API.Web/wwwroot/libs/bootstrap-datepicker/bootstrap-datepicker.css.map new file mode 100644 index 0000000..7e08a21 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/bootstrap-datepicker.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["less/datepicker.less","build/build.less"],"names":[],"mappings":"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","sourcesContent":[".datepicker {\n\tpadding: 4px;\n\t.border-radius(@baseBorderRadius);\n\t&-inline {\n\t\twidth: 220px;\n\t}\n\tdirection: ltr;\n\t&-rtl {\n\t\tdirection: rtl;\n\t\t&.dropdown-menu { left: auto; }\n\t\ttable tr td span {\n\t\t\tfloat: right;\n\t\t}\n\t}\n\t&-dropdown {\n\t\ttop: 0;\n\t\tleft: 0;\n\t\t&:before {\n\t\t\tcontent: '';\n\t\t\tdisplay: inline-block;\n\t\t\tborder-left: 7px solid transparent;\n\t\t\tborder-right: 7px solid transparent;\n\t\t\tborder-bottom: 7px solid @grayLight;\n\t\t\tborder-top: 0;\n\t\t\tborder-bottom-color: rgba(0,0,0,.2);\n\t\t\tposition: absolute;\n\t\t}\n\t\t&:after {\n\t\t\tcontent: '';\n\t\t\tdisplay: inline-block;\n\t\t\tborder-left: 6px solid transparent;\n\t\t\tborder-right: 6px solid transparent;\n\t\t\tborder-bottom: 6px solid @white;\n\t\t\tborder-top: 0;\n\t\t\tposition: absolute;\n\t\t}\n\t\t&.datepicker-orient-left:before { left: 6px; }\n\t\t&.datepicker-orient-left:after { left: 7px; }\n\t\t&.datepicker-orient-right:before { right: 6px; }\n\t\t&.datepicker-orient-right:after { right: 7px; }\n\t\t&.datepicker-orient-bottom:before { top: -7px; }\n\t\t&.datepicker-orient-bottom:after { top: -6px; }\n\t\t&.datepicker-orient-top:before {\n\t\t\tbottom: -7px;\n\t\t\tborder-bottom: 0;\n\t\t\tborder-top: 7px solid @grayLight;\n\t\t}\n\t\t&.datepicker-orient-top:after {\n\t\t\tbottom: -6px;\n\t\t\tborder-bottom: 0;\n\t\t\tborder-top: 6px solid @white;\n\t\t}\n\t}\n\ttable {\n\t\tmargin: 0;\n\t\t-webkit-touch-callout: none;\n\t\t-webkit-user-select: none;\n\t\t-khtml-user-select: none;\n\t\t-moz-user-select: none;\n\t\t-ms-user-select: none;\n\t\tuser-select: none;\n\t}\n\ttd, th {\n\t\ttext-align: center;\n\t\twidth: 20px;\n\t\theight: 20px;\n\t\t.border-radius(4px);\n\n\t\tborder: none;\n\t}\n\t// Inline display inside a table presents some problems with\n\t// border and background colors.\n\t.table-striped & table tr {\n\t\ttd, th {\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\ttable tr td {\n\t\t&.day:hover,\n\t\t&.day.focused {\n\t\t\tbackground: @grayLighter;\n\t\t\tcursor: pointer;\n\t\t}\n\t\t&.old,\n\t\t&.new {\n\t\t\tcolor: @grayLight;\n\t\t}\n\t\t&.disabled,\n\t\t&.disabled:hover {\n\t\t\tbackground: none;\n\t\t\tcolor: @grayLight;\n\t\t\tcursor: default;\n\t\t}\n\t\t&.highlighted {\n\t\t\tbackground: @infoBackground;\n\t\t\tborder-radius: 0;\n\t\t}\n\t\t&.today,\n\t\t&.today:hover,\n\t\t&.today.disabled,\n\t\t&.today.disabled:hover {\n\t\t\t@todayBackground: lighten(@orange, 30%);\n\t\t\t.buttonBackground(@todayBackground, spin(@todayBackground, 20));\n\t\t\tcolor: #000;\n\t\t}\n\t\t&.today:hover:hover { // Thank bootstrap 2.0 for this selector...\n\t\t\t// TODO: Bump min BS to 2.1, use @textColor in buttonBackground above\n\t\t\tcolor: #000;\n\t\t}\n\t\t&.today.active:hover {\n\t\t\tcolor: #fff;\n\t\t}\n\t\t&.range,\n\t\t&.range:hover,\n\t\t&.range.disabled,\n\t\t&.range.disabled:hover {\n\t\t\tbackground: @grayLighter;\n\t\t\t.border-radius(0);\n\t\t}\n\t\t&.range.today,\n\t\t&.range.today:hover,\n\t\t&.range.today.disabled,\n\t\t&.range.today.disabled:hover {\n\t\t\t@todayBackground: mix(@orange, @grayLighter, 50%);\n\t\t\t.buttonBackground(@todayBackground, spin(@todayBackground, 20));\n\t\t\t.border-radius(0);\n\t\t}\n\t\t&.selected,\n\t\t&.selected:hover,\n\t\t&.selected.disabled,\n\t\t&.selected.disabled:hover {\n\t\t\t.buttonBackground(lighten(@grayLight, 10), darken(@grayLight, 10));\n\t\t\tcolor: #fff;\n\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t}\n\t\t&.active,\n\t\t&.active:hover,\n\t\t&.active.disabled,\n\t\t&.active.disabled:hover {\n\t\t\t.buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));\n\t\t\tcolor: #fff;\n\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t}\n\t\tspan {\n\t\t\tdisplay: block;\n\t\t\twidth: 23%;\n\t\t\theight: 54px;\n\t\t\tline-height: 54px;\n\t\t\tfloat: left;\n\t\t\tmargin: 1%;\n\t\t\tcursor: pointer;\n\t\t\t.border-radius(4px);\n\t\t\t&:hover,\n\t\t\t&.focused {\n\t\t\t\tbackground: @grayLighter;\n\t\t\t}\n\t\t\t&.disabled,\n\t\t\t&.disabled:hover {\n\t\t\t\tbackground: none;\n\t\t\t\tcolor: @grayLight;\n\t\t\t\tcursor: default;\n\t\t\t}\n\t\t\t&.active,\n\t\t\t&.active:hover,\n\t\t\t&.active.disabled,\n\t\t\t&.active.disabled:hover {\n\t\t\t\t.buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));\n\t\t\t\tcolor: #fff;\n\t\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t\t}\n\t\t\t&.old,\n\t\t\t&.new {\n\t\t\t\tcolor: @grayLight;\n\t\t\t}\n\t\t}\n\t}\n\n\t.datepicker-switch {\n\t\twidth: 145px;\n\t}\n\n\t.datepicker-switch,\n\t.prev,\n\t.next,\n\ttfoot tr th {\n\t\tcursor: pointer;\n\t\t&:hover {\n\t\t\tbackground: @grayLighter;\n\t\t}\n\t}\n\n\t.prev, .next {\n\t\t&.disabled {\n\t\t\tvisibility: hidden;\n\t\t}\n\t}\n\n\t// Basic styling for calendar-week cells\n\t.cw {\n\t\tfont-size: 10px;\n\t\twidth: 12px;\n\t\tpadding: 0 2px 0 5px;\n\t\tvertical-align: middle;\n\t}\n}\n.input-append,\n.input-prepend {\n\t&.date .add-on {\n\t\tcursor: pointer;\n\n\t\ti {\n\t\t\tmargin-top: 3px;\n\t\t}\n\t}\n}\n.input-daterange {\n\tinput {\n\t\ttext-align:center;\n\t}\n\tinput:first-child {\n\t\t.border-radius(3px 0 0 3px);\n\t}\n\tinput:last-child {\n\t\t.border-radius(0 3px 3px 0);\n\t}\n\t.add-on {\n\t\tdisplay: inline-block;\n\t\twidth: auto;\n\t\tmin-width: 16px;\n\t\theight: @baseLineHeight;\n\t\tpadding: 4px 5px;\n\t\tfont-weight: normal;\n\t\tline-height: @baseLineHeight;\n\t\ttext-align: center;\n\t\ttext-shadow: 0 1px 0 @white;\n\t\tvertical-align: middle;\n\t\tbackground-color: @grayLighter;\n\t\tborder: 1px solid #ccc;\n\t\tmargin-left: -5px;\n\t\tmargin-right: -5px;\n\t}\n}\n","// Datepicker .less buildfile. Includes select mixins/variables from bootstrap\n// and imports the included datepicker.less to output a minimal datepicker.css\n//\n// Usage:\n// lessc build.less datepicker.css\n//\n// Variables and mixins copied from bootstrap 2.0.2\n\n// Variables\n@grayLight: #999;\n@grayLighter: #eee;\n@white: #fff;\n@linkColor: #08c;\n@btnPrimaryBackground: @linkColor;\n@orange: #f89406;\n@infoBackground: #d9edf7;\n@baseLineHeight: 18px;\n@baseBorderRadius: 4px;\n\n// Mixins\n\n// Border Radius\n.border-radius(@radius: 5px) {\n -webkit-border-radius: @radius;\n -moz-border-radius: @radius;\n border-radius: @radius;\n}\n\n// Button backgrounds\n.buttonBackground(@startColor, @endColor) {\n .gradientBar(@startColor, @endColor);\n .reset-filter();\n &:hover, &:active, &.active, &.disabled, &[disabled] {\n background-color: @endColor;\n }\n &:active,\n &.active {\n background-color: darken(@endColor, 10%) e(\"\\9\");\n }\n}\n\n// Reset filters for IE\n.reset-filter() {\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n\n// Gradient Bar Colors for buttons and alerts\n.gradientBar(@primaryColor, @secondaryColor) {\n #gradient > .vertical(@primaryColor, @secondaryColor);\n border-color: @secondaryColor @secondaryColor darken(@secondaryColor, 15%);\n border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) fadein(rgba(0,0,0,.1), 15%);\n}\n\n// Gradients\n#gradient {\n .vertical(@startColor: #555, @endColor: #333) {\n background-color: mix(@startColor, @endColor, 60%);\n background-image: -moz-linear-gradient(to bottom, @startColor, @endColor); // FF 3.6+\n background-image: -ms-linear-gradient(to bottom, @startColor, @endColor); // IE10\n background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+\n background-image: -webkit-linear-gradient(to bottom, @startColor, @endColor); // Safari 5.1+, Chrome 10+\n background-image: -o-linear-gradient(to bottom, @startColor, @endColor); // Opera 11.10\n background-image: linear-gradient(to bottom, @startColor, @endColor); // The standard\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",@startColor,@endColor)); // IE9 and down\n }\n}\n\n@import \"../less/datepicker.less\";\n"]} \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/bootstrap-datepicker.min.css b/src/API.Web/wwwroot/libs/bootstrap-datepicker/bootstrap-datepicker.min.css new file mode 100644 index 0000000..eb68151 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/bootstrap-datepicker.min.css @@ -0,0 +1,7 @@ +/*! + * Datepicker for Bootstrap v1.9.0 (https://github.com/uxsolutions/bootstrap-datepicker) + * + * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) + */ + +.datepicker{padding:4px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;direction:ltr}.datepicker-inline{width:220px}.datepicker-rtl{direction:rtl}.datepicker-rtl.dropdown-menu{left:auto}.datepicker-rtl table tr td span{float:right}.datepicker-dropdown{top:0;left:0}.datepicker-dropdown:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #999;border-top:0;border-bottom-color:rgba(0,0,0,.2);position:absolute}.datepicker-dropdown:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;border-top:0;position:absolute}.datepicker-dropdown.datepicker-orient-left:before{left:6px}.datepicker-dropdown.datepicker-orient-left:after{left:7px}.datepicker-dropdown.datepicker-orient-right:before{right:6px}.datepicker-dropdown.datepicker-orient-right:after{right:7px}.datepicker-dropdown.datepicker-orient-bottom:before{top:-7px}.datepicker-dropdown.datepicker-orient-bottom:after{top:-6px}.datepicker-dropdown.datepicker-orient-top:before{bottom:-7px;border-bottom:0;border-top:7px solid #999}.datepicker-dropdown.datepicker-orient-top:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff}.datepicker table{margin:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker td,.datepicker th{text-align:center;width:20px;height:20px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:none}.table-striped .datepicker table tr td,.table-striped .datepicker table tr th{background-color:transparent}.datepicker table tr td.day.focused,.datepicker table tr td.day:hover{background:#eee;cursor:pointer}.datepicker table tr td.new,.datepicker table tr td.old{color:#999}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td.highlighted{background:#d9edf7;border-radius:0}.datepicker table tr td.today,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today:hover{background-color:#fde19a;background-image:-moz-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-ms-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdd49a),to(#fdf59a));background-image:-webkit-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-o-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:linear-gradient(to bottom,#fdd49a,#fdf59a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);border-color:#fdf59a #fdf59a #fbed50;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#000}.datepicker table tr td.today.active,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled.disabled,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled:hover.disabled,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today.disabled:hover:hover,.datepicker table tr td.today.disabled:hover[disabled],.datepicker table tr td.today.disabled[disabled],.datepicker table tr td.today:active,.datepicker table tr td.today:hover,.datepicker table tr td.today:hover.active,.datepicker table tr td.today:hover.disabled,.datepicker table tr td.today:hover:active,.datepicker table tr td.today:hover:hover,.datepicker table tr td.today:hover[disabled],.datepicker table tr td.today[disabled]{background-color:#fdf59a}.datepicker table tr td.today.active,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today:active,.datepicker table tr td.today:hover.active,.datepicker table tr td.today:hover:active{background-color:#fbf069\9}.datepicker table tr td.today:hover:hover{color:#000}.datepicker table tr td.today.active:hover{color:#fff}.datepicker table tr td.range,.datepicker table tr td.range.disabled,.datepicker table tr td.range.disabled:hover,.datepicker table tr td.range:hover{background:#eee;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today:hover{background-color:#f3d17a;background-image:-moz-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-ms-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f3c17a),to(#f3e97a));background-image:-webkit-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-o-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:linear-gradient(to bottom,#f3c17a,#f3e97a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);border-color:#f3e97a #f3e97a #edde34;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled.disabled,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled:hover.disabled,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today.disabled:hover:hover,.datepicker table tr td.range.today.disabled:hover[disabled],.datepicker table tr td.range.today.disabled[disabled],.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today:hover.disabled,.datepicker table tr td.range.today:hover:active,.datepicker table tr td.range.today:hover:hover,.datepicker table tr td.range.today:hover[disabled],.datepicker table tr td.range.today[disabled]{background-color:#f3e97a}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today:hover:active{background-color:#efe24b\9}.datepicker table tr td.selected,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected:hover{background-color:#9e9e9e;background-image:-moz-linear-gradient(to bottom,#b3b3b3,grey);background-image:-ms-linear-gradient(to bottom,#b3b3b3,grey);background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3b3b3),to(grey));background-image:-webkit-linear-gradient(to bottom,#b3b3b3,grey);background-image:-o-linear-gradient(to bottom,#b3b3b3,grey);background-image:linear-gradient(to bottom,#b3b3b3,grey);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);border-color:grey grey #595959;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.selected.active,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled.disabled,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled:hover.disabled,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected.disabled:hover:hover,.datepicker table tr td.selected.disabled:hover[disabled],.datepicker table tr td.selected.disabled[disabled],.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected:hover.disabled,.datepicker table tr td.selected:hover:active,.datepicker table tr td.selected:hover:hover,.datepicker table tr td.selected:hover[disabled],.datepicker table tr td.selected[disabled]{background-color:grey}.datepicker table tr td.selected.active,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected:hover:active{background-color:#666\9}.datepicker table tr td.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active:hover{background-color:#006dcc;background-image:-moz-linear-gradient(to bottom,#08c,#04c);background-image:-ms-linear-gradient(to bottom,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(to bottom,#08c,#04c);background-image:-o-linear-gradient(to bottom,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled.disabled,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover.disabled,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active.disabled:hover:hover,.datepicker table tr td.active.disabled:hover[disabled],.datepicker table tr td.active.disabled[disabled],.datepicker table tr td.active:active,.datepicker table tr td.active:hover,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover.disabled,.datepicker table tr td.active:hover:active,.datepicker table tr td.active:hover:hover,.datepicker table tr td.active:hover[disabled],.datepicker table tr td.active[disabled]{background-color:#04c}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active:active,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover:active{background-color:#039\9}.datepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.datepicker table tr td span.focused,.datepicker table tr td span:hover{background:#eee}.datepicker table tr td span.disabled,.datepicker table tr td span.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td span.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active:hover{background-color:#006dcc;background-image:-moz-linear-gradient(to bottom,#08c,#04c);background-image:-ms-linear-gradient(to bottom,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(to bottom,#08c,#04c);background-image:-o-linear-gradient(to bottom,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled.disabled,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover.disabled,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active.disabled:hover[disabled],.datepicker table tr td span.active.disabled[disabled],.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover.disabled,.datepicker table tr td span.active:hover:active,.datepicker table tr td span.active:hover:hover,.datepicker table tr td span.active:hover[disabled],.datepicker table tr td span.active[disabled]{background-color:#04c}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active{background-color:#039\9}.datepicker table tr td span.new,.datepicker table tr td span.old{color:#999}.datepicker .datepicker-switch{width:145px}.datepicker .datepicker-switch,.datepicker .next,.datepicker .prev,.datepicker tfoot tr th{cursor:pointer}.datepicker .datepicker-switch:hover,.datepicker .next:hover,.datepicker .prev:hover,.datepicker tfoot tr th:hover{background:#eee}.datepicker .next.disabled,.datepicker .prev.disabled{visibility:hidden}.datepicker .cw{font-size:10px;width:12px;padding:0 2px 0 5px;vertical-align:middle}.input-append.date .add-on,.input-prepend.date .add-on{cursor:pointer}.input-append.date .add-on i,.input-prepend.date .add-on i{margin-top:3px}.input-daterange input{text-align:center}.input-daterange input:first-child{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-daterange input:last-child{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-daterange .add-on{display:inline-block;width:auto;min-width:16px;height:18px;padding:4px 5px;font-weight:400;line-height:18px;text-align:center;text-shadow:0 1px 0 #fff;vertical-align:middle;background-color:#eee;border:1px solid #ccc;margin-left:-5px;margin-right:-5px} \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/bootstrap-datepicker.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/bootstrap-datepicker.min.js new file mode 100644 index 0000000..8800106 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/bootstrap-datepicker.min.js @@ -0,0 +1,8 @@ +/*! + * Datepicker for Bootstrap v1.9.0 (https://github.com/uxsolutions/bootstrap-datepicker) + * + * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) + */ + +!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a,b){function c(){return new Date(Date.UTC.apply(Date,arguments))}function d(){var a=new Date;return c(a.getFullYear(),a.getMonth(),a.getDate())}function e(a,b){return a.getUTCFullYear()===b.getUTCFullYear()&&a.getUTCMonth()===b.getUTCMonth()&&a.getUTCDate()===b.getUTCDate()}function f(c,d){return function(){return d!==b&&a.fn.datepicker.deprecated(d),this[c].apply(this,arguments)}}function g(a){return a&&!isNaN(a.getTime())}function h(b,c){function d(a,b){return b.toLowerCase()}var e,f=a(b).data(),g={},h=new RegExp("^"+c.toLowerCase()+"([A-Z])");c=new RegExp("^"+c.toLowerCase());for(var i in f)c.test(i)&&(e=i.replace(h,d),g[e]=f[i]);return g}function i(b){var c={};if(q[b]||(b=b.split("-")[0],q[b])){var d=q[b];return a.each(p,function(a,b){b in d&&(c[b]=d[b])}),c}}var j=function(){var b={get:function(a){return this.slice(a)[0]},contains:function(a){for(var b=a&&a.valueOf(),c=0,d=this.length;c]/g)||[]).length<=0)return!0;return a(c).length>0}catch(a){return!1}},_process_options:function(b){this._o=a.extend({},this._o,b);var e=this.o=a.extend({},this._o),f=e.language;q[f]||(f=f.split("-")[0],q[f]||(f=o.language)),e.language=f,e.startView=this._resolveViewName(e.startView),e.minViewMode=this._resolveViewName(e.minViewMode),e.maxViewMode=this._resolveViewName(e.maxViewMode),e.startView=Math.max(this.o.minViewMode,Math.min(this.o.maxViewMode,e.startView)),!0!==e.multidate&&(e.multidate=Number(e.multidate)||!1,!1!==e.multidate&&(e.multidate=Math.max(0,e.multidate))),e.multidateSeparator=String(e.multidateSeparator),e.weekStart%=7,e.weekEnd=(e.weekStart+6)%7;var g=r.parseFormat(e.format);e.startDate!==-1/0&&(e.startDate?e.startDate instanceof Date?e.startDate=this._local_to_utc(this._zero_time(e.startDate)):e.startDate=r.parseDate(e.startDate,g,e.language,e.assumeNearbyYear):e.startDate=-1/0),e.endDate!==1/0&&(e.endDate?e.endDate instanceof Date?e.endDate=this._local_to_utc(this._zero_time(e.endDate)):e.endDate=r.parseDate(e.endDate,g,e.language,e.assumeNearbyYear):e.endDate=1/0),e.daysOfWeekDisabled=this._resolveDaysOfWeek(e.daysOfWeekDisabled||[]),e.daysOfWeekHighlighted=this._resolveDaysOfWeek(e.daysOfWeekHighlighted||[]),e.datesDisabled=e.datesDisabled||[],a.isArray(e.datesDisabled)||(e.datesDisabled=e.datesDisabled.split(",")),e.datesDisabled=a.map(e.datesDisabled,function(a){return r.parseDate(a,g,e.language,e.assumeNearbyYear)});var h=String(e.orientation).toLowerCase().split(/\s+/g),i=e.orientation.toLowerCase();if(h=a.grep(h,function(a){return/^auto|left|right|top|bottom$/.test(a)}),e.orientation={x:"auto",y:"auto"},i&&"auto"!==i)if(1===h.length)switch(h[0]){case"top":case"bottom":e.orientation.y=h[0];break;case"left":case"right":e.orientation.x=h[0]}else i=a.grep(h,function(a){return/^left|right$/.test(a)}),e.orientation.x=i[0]||"auto",i=a.grep(h,function(a){return/^top|bottom$/.test(a)}),e.orientation.y=i[0]||"auto";else;if(e.defaultViewDate instanceof Date||"string"==typeof e.defaultViewDate)e.defaultViewDate=r.parseDate(e.defaultViewDate,g,e.language,e.assumeNearbyYear);else if(e.defaultViewDate){var j=e.defaultViewDate.year||(new Date).getFullYear(),k=e.defaultViewDate.month||0,l=e.defaultViewDate.day||1;e.defaultViewDate=c(j,k,l)}else e.defaultViewDate=d()},_applyEvents:function(a){for(var c,d,e,f=0;fe?(this.picker.addClass("datepicker-orient-right"),m+=l-b):this.o.rtl?this.picker.addClass("datepicker-orient-right"):this.picker.addClass("datepicker-orient-left");var o,p=this.o.orientation.y;if("auto"===p&&(o=-f+n-c,p=o<0?"bottom":"top"),this.picker.addClass("datepicker-orient-"+p),"top"===p?n-=c+parseInt(this.picker.css("padding-top")):n+=k,this.o.rtl){var q=e-(m+l);this.picker.css({top:n,right:q,zIndex:i})}else this.picker.css({top:n,left:m,zIndex:i});return this},_allow_update:!0,update:function(){if(!this._allow_update)return this;var b=this.dates.copy(),c=[],d=!1;return arguments.length?(a.each(arguments,a.proxy(function(a,b){b instanceof Date&&(b=this._local_to_utc(b)),c.push(b)},this)),d=!0):(c=this.isInput?this.element.val():this.element.data("date")||this.inputField.val(),c=c&&this.o.multidate?c.split(this.o.multidateSeparator):[c],delete this.element.data().date),c=a.map(c,a.proxy(function(a){return r.parseDate(a,this.o.format,this.o.language,this.o.assumeNearbyYear)},this)),c=a.grep(c,a.proxy(function(a){return!this.dateWithinRange(a)||!a},this),!0),this.dates.replace(c),this.o.updateViewDate&&(this.dates.length?this.viewDate=new Date(this.dates.get(-1)):this.viewDatethis.o.endDate?this.viewDate=new Date(this.o.endDate):this.viewDate=this.o.defaultViewDate),d?(this.setValue(),this.element.change()):this.dates.length&&String(b)!==String(this.dates)&&d&&(this._trigger("changeDate"),this.element.change()),!this.dates.length&&b.length&&(this._trigger("clearDate"),this.element.change()),this.fill(),this},fillDow:function(){if(this.o.showWeekDays){var b=this.o.weekStart,c="";for(this.o.calendarWeeks&&(c+=' ');b";c+="",this.picker.find(".datepicker-days thead").append(c)}},fillMonths:function(){for(var a,b=this._utc_to_local(this.viewDate),c="",d=0;d<12;d++)a=b&&b.getMonth()===d?" focused":"",c+=''+q[this.o.language].monthsShort[d]+"";this.picker.find(".datepicker-months td").html(c)},setRange:function(b){b&&b.length?this.range=a.map(b,function(a){return a.valueOf()}):delete this.range,this.fill()},getClassNames:function(b){var c=[],f=this.viewDate.getUTCFullYear(),g=this.viewDate.getUTCMonth(),h=d();return b.getUTCFullYear()f||b.getUTCFullYear()===f&&b.getUTCMonth()>g)&&c.push("new"),this.focusDate&&b.valueOf()===this.focusDate.valueOf()&&c.push("focused"),this.o.todayHighlight&&e(b,h)&&c.push("today"),-1!==this.dates.contains(b)&&c.push("active"),this.dateWithinRange(b)||c.push("disabled"),this.dateIsDisabled(b)&&c.push("disabled","disabled-date"),-1!==a.inArray(b.getUTCDay(),this.o.daysOfWeekHighlighted)&&c.push("highlighted"),this.range&&(b>this.range[0]&&bh)&&j.push("disabled"),t===r&&j.push("focused"),i!==a.noop&&(l=i(new Date(t,0,1)),l===b?l={}:"boolean"==typeof l?l={enabled:l}:"string"==typeof l&&(l={classes:l}),!1===l.enabled&&j.push("disabled"),l.classes&&(j=j.concat(l.classes.split(/\s+/))),l.tooltip&&(k=l.tooltip)),m+='"+t+"";o.find(".datepicker-switch").text(p+"-"+q),o.find("td").html(m)},fill:function(){var e,f,g=new Date(this.viewDate),h=g.getUTCFullYear(),i=g.getUTCMonth(),j=this.o.startDate!==-1/0?this.o.startDate.getUTCFullYear():-1/0,k=this.o.startDate!==-1/0?this.o.startDate.getUTCMonth():-1/0,l=this.o.endDate!==1/0?this.o.endDate.getUTCFullYear():1/0,m=this.o.endDate!==1/0?this.o.endDate.getUTCMonth():1/0,n=q[this.o.language].today||q.en.today||"",o=q[this.o.language].clear||q.en.clear||"",p=q[this.o.language].titleFormat||q.en.titleFormat,s=d(),t=(!0===this.o.todayBtn||"linked"===this.o.todayBtn)&&s>=this.o.startDate&&s<=this.o.endDate&&!this.weekOfDateIsDisabled(s);if(!isNaN(h)&&!isNaN(i)){this.picker.find(".datepicker-days .datepicker-switch").text(r.formatDate(g,p,this.o.language)),this.picker.find("tfoot .today").text(n).css("display",t?"table-cell":"none"),this.picker.find("tfoot .clear").text(o).css("display",!0===this.o.clearBtn?"table-cell":"none"),this.picker.find("thead .datepicker-title").text(this.o.title).css("display","string"==typeof this.o.title&&""!==this.o.title?"table-cell":"none"),this.updateNavArrows(),this.fillMonths();var u=c(h,i,0),v=u.getUTCDate();u.setUTCDate(v-(u.getUTCDay()-this.o.weekStart+7)%7);var w=new Date(u);u.getUTCFullYear()<100&&w.setUTCFullYear(u.getUTCFullYear()),w.setUTCDate(w.getUTCDate()+42),w=w.valueOf();for(var x,y,z=[];u.valueOf()"),this.o.calendarWeeks)){var A=new Date(+u+(this.o.weekStart-x-7)%7*864e5),B=new Date(Number(A)+(11-A.getUTCDay())%7*864e5),C=new Date(Number(C=c(B.getUTCFullYear(),0,1))+(11-C.getUTCDay())%7*864e5),D=(B-C)/864e5/7+1;z.push(''+D+"")}y=this.getClassNames(u),y.push("day");var E=u.getUTCDate();this.o.beforeShowDay!==a.noop&&(f=this.o.beforeShowDay(this._utc_to_local(u)),f===b?f={}:"boolean"==typeof f?f={enabled:f}:"string"==typeof f&&(f={classes:f}),!1===f.enabled&&y.push("disabled"),f.classes&&(y=y.concat(f.classes.split(/\s+/))),f.tooltip&&(e=f.tooltip),f.content&&(E=f.content)),y=a.isFunction(a.uniqueSort)?a.uniqueSort(y):a.unique(y),z.push(''+E+""),e=null,x===this.o.weekEnd&&z.push(""),u.setUTCDate(u.getUTCDate()+1)}this.picker.find(".datepicker-days tbody").html(z.join(""));var F=q[this.o.language].monthsTitle||q.en.monthsTitle||"Months",G=this.picker.find(".datepicker-months").find(".datepicker-switch").text(this.o.maxViewMode<2?F:h).end().find("tbody span").removeClass("active");if(a.each(this.dates,function(a,b){b.getUTCFullYear()===h&&G.eq(b.getUTCMonth()).addClass("active")}),(hl)&&G.addClass("disabled"),h===j&&G.slice(0,k).addClass("disabled"),h===l&&G.slice(m+1).addClass("disabled"),this.o.beforeShowMonth!==a.noop){var H=this;a.each(G,function(c,d){var e=new Date(h,c,1),f=H.o.beforeShowMonth(e);f===b?f={}:"boolean"==typeof f?f={enabled:f}:"string"==typeof f&&(f={classes:f}),!1!==f.enabled||a(d).hasClass("disabled")||a(d).addClass("disabled"),f.classes&&a(d).addClass(f.classes),f.tooltip&&a(d).prop("title",f.tooltip)})}this._fill_yearsView(".datepicker-years","year",10,h,j,l,this.o.beforeShowYear),this._fill_yearsView(".datepicker-decades","decade",100,h,j,l,this.o.beforeShowDecade),this._fill_yearsView(".datepicker-centuries","century",1e3,h,j,l,this.o.beforeShowCentury)}},updateNavArrows:function(){if(this._allow_update){var a,b,c=new Date(this.viewDate),d=c.getUTCFullYear(),e=c.getUTCMonth(),f=this.o.startDate!==-1/0?this.o.startDate.getUTCFullYear():-1/0,g=this.o.startDate!==-1/0?this.o.startDate.getUTCMonth():-1/0,h=this.o.endDate!==1/0?this.o.endDate.getUTCFullYear():1/0,i=this.o.endDate!==1/0?this.o.endDate.getUTCMonth():1/0,j=1;switch(this.viewMode){case 4:j*=10;case 3:j*=10;case 2:j*=10;case 1:a=Math.floor(d/j)*j<=f,b=Math.floor(d/j)*j+j>h;break;case 0:a=d<=f&&e<=g,b=d>=h&&e>=i}this.picker.find(".prev").toggleClass("disabled",a),this.picker.find(".next").toggleClass("disabled",b)}},click:function(b){b.preventDefault(),b.stopPropagation();var e,f,g,h;e=a(b.target),e.hasClass("datepicker-switch")&&this.viewMode!==this.o.maxViewMode&&this.setViewMode(this.viewMode+1),e.hasClass("today")&&!e.hasClass("day")&&(this.setViewMode(0),this._setDate(d(),"linked"===this.o.todayBtn?null:"view")),e.hasClass("clear")&&this.clearDates(),e.hasClass("disabled")||(e.hasClass("month")||e.hasClass("year")||e.hasClass("decade")||e.hasClass("century"))&&(this.viewDate.setUTCDate(1),f=1,1===this.viewMode?(h=e.parent().find("span").index(e),g=this.viewDate.getUTCFullYear(),this.viewDate.setUTCMonth(h)):(h=0,g=Number(e.text()),this.viewDate.setUTCFullYear(g)),this._trigger(r.viewModes[this.viewMode-1].e,this.viewDate),this.viewMode===this.o.minViewMode?this._setDate(c(g,h,f)):(this.setViewMode(this.viewMode-1),this.fill())),this.picker.is(":visible")&&this._focused_from&&this._focused_from.focus(),delete this._focused_from},dayCellClick:function(b){var c=a(b.currentTarget),d=c.data("date"),e=new Date(d);this.o.updateViewDate&&(e.getUTCFullYear()!==this.viewDate.getUTCFullYear()&&this._trigger("changeYear",this.viewDate),e.getUTCMonth()!==this.viewDate.getUTCMonth()&&this._trigger("changeMonth",this.viewDate)),this._setDate(e)},navArrowsClick:function(b){var c=a(b.currentTarget),d=c.hasClass("prev")?-1:1;0!==this.viewMode&&(d*=12*r.viewModes[this.viewMode].navStep),this.viewDate=this.moveMonth(this.viewDate,d),this._trigger(r.viewModes[this.viewMode].e,this.viewDate),this.fill()},_toggle_multidate:function(a){var b=this.dates.contains(a);if(a||this.dates.clear(),-1!==b?(!0===this.o.multidate||this.o.multidate>1||this.o.toggleActive)&&this.dates.remove(b):!1===this.o.multidate?(this.dates.clear(),this.dates.push(a)):this.dates.push(a),"number"==typeof this.o.multidate)for(;this.dates.length>this.o.multidate;)this.dates.remove(0)},_setDate:function(a,b){b&&"date"!==b||this._toggle_multidate(a&&new Date(a)),(!b&&this.o.updateViewDate||"view"===b)&&(this.viewDate=a&&new Date(a)),this.fill(),this.setValue(),b&&"view"===b||this._trigger("changeDate"),this.inputField.trigger("change"),!this.o.autoclose||b&&"date"!==b||this.hide()},moveDay:function(a,b){var c=new Date(a);return c.setUTCDate(a.getUTCDate()+b),c},moveWeek:function(a,b){return this.moveDay(a,7*b)},moveMonth:function(a,b){if(!g(a))return this.o.defaultViewDate;if(!b)return a;var c,d,e=new Date(a.valueOf()),f=e.getUTCDate(),h=e.getUTCMonth(),i=Math.abs(b);if(b=b>0?1:-1,1===i)d=-1===b?function(){return e.getUTCMonth()===h}:function(){return e.getUTCMonth()!==c},c=h+b,e.setUTCMonth(c),c=(c+12)%12;else{for(var j=0;j0},dateWithinRange:function(a){return a>=this.o.startDate&&a<=this.o.endDate},keydown:function(a){if(!this.picker.is(":visible"))return void(40!==a.keyCode&&27!==a.keyCode||(this.show(),a.stopPropagation()));var b,c,d=!1,e=this.focusDate||this.viewDate;switch(a.keyCode){case 27:this.focusDate?(this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.fill()):this.hide(),a.preventDefault(),a.stopPropagation();break;case 37:case 38:case 39:case 40:if(!this.o.keyboardNavigation||7===this.o.daysOfWeekDisabled.length)break;b=37===a.keyCode||38===a.keyCode?-1:1,0===this.viewMode?a.ctrlKey?(c=this.moveAvailableDate(e,b,"moveYear"))&&this._trigger("changeYear",this.viewDate):a.shiftKey?(c=this.moveAvailableDate(e,b,"moveMonth"))&&this._trigger("changeMonth",this.viewDate):37===a.keyCode||39===a.keyCode?c=this.moveAvailableDate(e,b,"moveDay"):this.weekOfDateIsDisabled(e)||(c=this.moveAvailableDate(e,b,"moveWeek")):1===this.viewMode?(38!==a.keyCode&&40!==a.keyCode||(b*=4),c=this.moveAvailableDate(e,b,"moveMonth")):2===this.viewMode&&(38!==a.keyCode&&40!==a.keyCode||(b*=4),c=this.moveAvailableDate(e,b,"moveYear")),c&&(this.focusDate=this.viewDate=c,this.setValue(),this.fill(),a.preventDefault());break;case 13:if(!this.o.forceParse)break;e=this.focusDate||this.dates.get(-1)||this.viewDate,this.o.keyboardNavigation&&(this._toggle_multidate(e),d=!0),this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.setValue(),this.fill(),this.picker.is(":visible")&&(a.preventDefault(),a.stopPropagation(),this.o.autoclose&&this.hide());break;case 9:this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.fill(),this.hide()}d&&(this.dates.length?this._trigger("changeDate"):this._trigger("clearDate"),this.inputField.trigger("change"))},setViewMode:function(a){this.viewMode=a,this.picker.children("div").hide().filter(".datepicker-"+r.viewModes[this.viewMode].clsName).show(),this.updateNavArrows(),this._trigger("changeViewMode",new Date(this.viewDate))}};var l=function(b,c){a.data(b,"datepicker",this),this.element=a(b),this.inputs=a.map(c.inputs,function(a){return a.jquery?a[0]:a}),delete c.inputs,this.keepEmptyValues=c.keepEmptyValues,delete c.keepEmptyValues,n.call(a(this.inputs),c).on("changeDate",a.proxy(this.dateUpdated,this)),this.pickers=a.map(this.inputs,function(b){return a.data(b,"datepicker")}),this.updateDates()};l.prototype={updateDates:function(){this.dates=a.map(this.pickers,function(a){return a.getUTCDate()}),this.updateRanges()},updateRanges:function(){var b=a.map(this.dates,function(a){return a.valueOf()});a.each(this.pickers,function(a,c){c.setRange(b)})},clearDates:function(){a.each(this.pickers,function(a,b){b.clearDates()})},dateUpdated:function(c){if(!this.updating){this.updating=!0;var d=a.data(c.target,"datepicker");if(d!==b){var e=d.getUTCDate(),f=this.keepEmptyValues,g=a.inArray(c.target,this.inputs),h=g-1,i=g+1,j=this.inputs.length;if(-1!==g){if(a.each(this.pickers,function(a,b){b.getUTCDate()||b!==d&&f||b.setUTCDate(e)}),e=0&&ethis.dates[i])for(;ithis.dates[i];)this.pickers[i++].setUTCDate(e);this.updateDates(),delete this.updating}}}},destroy:function(){a.map(this.pickers,function(a){a.destroy()}),a(this.inputs).off("changeDate",this.dateUpdated),delete this.element.data().datepicker},remove:f("destroy","Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead")};var m=a.fn.datepicker,n=function(c){var d=Array.apply(null,arguments);d.shift();var e;if(this.each(function(){var b=a(this),f=b.data("datepicker"),g="object"==typeof c&&c;if(!f){var j=h(this,"date"),m=a.extend({},o,j,g),n=i(m.language),p=a.extend({},o,n,j,g);b.hasClass("input-daterange")||p.inputs?(a.extend(p,{inputs:p.inputs||b.find("input").toArray()}),f=new l(this,p)):f=new k(this,p),b.data("datepicker",f)}"string"==typeof c&&"function"==typeof f[c]&&(e=f[c].apply(f,d))}),e===b||e instanceof k||e instanceof l)return this;if(this.length>1)throw new Error("Using only allowed for the collection of a single element ("+c+" function)");return e};a.fn.datepicker=n;var o=a.fn.datepicker.defaults={assumeNearbyYear:!1,autoclose:!1,beforeShowDay:a.noop,beforeShowMonth:a.noop,beforeShowYear:a.noop,beforeShowDecade:a.noop,beforeShowCentury:a.noop,calendarWeeks:!1,clearBtn:!1,toggleActive:!1,daysOfWeekDisabled:[],daysOfWeekHighlighted:[],datesDisabled:[],endDate:1/0,forceParse:!0,format:"mm/dd/yyyy",keepEmptyValues:!1,keyboardNavigation:!0,language:"en",minViewMode:0,maxViewMode:4,multidate:!1,multidateSeparator:",",orientation:"auto",rtl:!1,startDate:-1/0,startView:0,todayBtn:!1,todayHighlight:!1,updateViewDate:!0,weekStart:0,disableTouchKeyboard:!1,enableOnReadonly:!0,showOnFocus:!0,zIndexOffset:10,container:"body",immediateUpdates:!1,title:"",templates:{leftArrow:"«",rightArrow:"»"},showWeekDays:!0},p=a.fn.datepicker.locale_opts=["format","rtl","weekStart"];a.fn.datepicker.Constructor=k;var q=a.fn.datepicker.dates={en:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",clear:"Clear",titleFormat:"MM yyyy"}},r={viewModes:[{names:["days","month"],clsName:"days",e:"changeMonth"},{names:["months","year"],clsName:"months",e:"changeYear",navStep:1},{names:["years","decade"],clsName:"years",e:"changeDecade",navStep:10},{names:["decades","century"],clsName:"decades",e:"changeCentury",navStep:100},{names:["centuries","millennium"],clsName:"centuries",e:"changeMillennium",navStep:1e3}],validParts:/dd?|DD?|mm?|MM?|yy(?:yy)?/g,nonpunctuation:/[^ -\/:-@\u5e74\u6708\u65e5\[-`{-~\t\n\r]+/g,parseFormat:function(a){if("function"==typeof a.toValue&&"function"==typeof a.toDisplay)return a;var b=a.replace(this.validParts,"\0").split("\0"),c=a.match(this.validParts);if(!b||!b.length||!c||0===c.length)throw new Error("Invalid date format.");return{separators:b,parts:c}},parseDate:function(c,e,f,g){function h(a,b){return!0===b&&(b=10),a<100&&(a+=2e3)>(new Date).getFullYear()+b&&(a-=100),a}function i(){var a=this.slice(0,j[n].length),b=j[n].slice(0,a.length);return a.toLowerCase()===b.toLowerCase()}if(!c)return b;if(c instanceof Date)return c;if("string"==typeof e&&(e=r.parseFormat(e)),e.toValue)return e.toValue(c,e,f);var j,l,m,n,o,p={d:"moveDay",m:"moveMonth",w:"moveWeek",y:"moveYear"},s={yesterday:"-1d",today:"+0d",tomorrow:"+1d"};if(c in s&&(c=s[c]),/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/i.test(c)){for(j=c.match(/([\-+]\d+)([dmwy])/gi),c=new Date,n=0;n'+o.templates.leftArrow+''+o.templates.rightArrow+"",contTemplate:'',footTemplate:''};r.template='

    ",a.fn.datepicker.DPGlobal=r,a.fn.datepicker.noConflict=function(){return a.fn.datepicker=m,this},a.fn.datepicker.version="1.9.0",a.fn.datepicker.deprecated=function(a){var b=window.console;b&&b.warn&&b.warn("DEPRECATED: "+a)},a(document).on("focus.datepicker.data-api click.datepicker.data-api",'[data-provide="datepicker"]',function(b){var c=a(this);c.data("datepicker")||(b.preventDefault(),n.call(c,"show"))}),a(function(){n.call(a('[data-provide="datepicker-inline"]'))})}); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker-en-CA.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker-en-CA.min.js new file mode 100644 index 0000000..0aab38f --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker-en-CA.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["en-CA"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:0,format:"yyyy-mm-dd"},a.fn.datepicker.deprecated("This filename doesn't follow the convention, use bootstrap-datepicker.en-CA.js instead.")}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ar-tn.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ar-tn.min.js new file mode 100644 index 0000000..9d70dc2 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ar-tn.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["ar-tn"]={days:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت","الأحد"],daysShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت","أحد"],daysMin:["ح","ن","ث","ع","خ","ج","س","ح"],months:["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويليه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],monthsShort:["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويليه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],today:"هذا اليوم",rtl:!0}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ar.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ar.min.js new file mode 100644 index 0000000..ece41af --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ar.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.ar={days:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت","الأحد"],daysShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت","أحد"],daysMin:["ح","ن","ث","ع","خ","ج","س","ح"],months:["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],monthsShort:["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],today:"هذا اليوم",rtl:!0}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.az.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.az.min.js new file mode 100644 index 0000000..aa1edbf --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.az.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.az={days:["Bazar","Bazar ertəsi","Çərşənbə axşamı","Çərşənbə","Cümə axşamı","Cümə","Şənbə"],daysShort:["B.","B.e","Ç.a","Ç.","C.a","C.","Ş."],daysMin:["B.","B.e","Ç.a","Ç.","C.a","C.","Ş."],months:["Yanvar","Fevral","Mart","Aprel","May","İyun","İyul","Avqust","Sentyabr","Oktyabr","Noyabr","Dekabr"],monthsShort:["Yan","Fev","Mar","Apr","May","İyun","İyul","Avq","Sen","Okt","Noy","Dek"],today:"Bu gün",weekStart:1,clear:"Təmizlə",monthsTitle:"Aylar"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bg.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bg.min.js new file mode 100644 index 0000000..28e8b22 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bg.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.bg={days:["Неделя","Понеделник","Вторник","Сряда","Четвъртък","Петък","Събота"],daysShort:["Нед","Пон","Вто","Сря","Чет","Пет","Съб"],daysMin:["Н","П","В","С","Ч","П","С"],months:["Януари","Февруари","Март","Април","Май","Юни","Юли","Август","Септември","Октомври","Ноември","Декември"],monthsShort:["Ян","Фев","Мар","Апр","Май","Юни","Юли","Авг","Сеп","Окт","Ное","Дек"],today:"днес"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bm.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bm.min.js new file mode 100644 index 0000000..e0796a3 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bm.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.bm={days:["Kari","Ntɛnɛn","Tarata","Araba","Alamisa","Juma","Sibiri"],daysShort:["Kar","Ntɛ","Tar","Ara","Ala","Jum","Sib"],daysMin:["Ka","Nt","Ta","Ar","Al","Ju","Si"],months:["Zanwuyekalo","Fewuruyekalo","Marisikalo","Awirilikalo","Mɛkalo","Zuwɛnkalo","Zuluyekalo","Utikalo","Sɛtanburukalo","ɔkutɔburukalo","Nowanburukalo","Desanburukalo"],monthsShort:["Zan","Few","Mar","Awi","Mɛ","Zuw","Zul","Uti","Sɛt","ɔku","Now","Des"],today:"Bi",monthsTitle:"Kalo",clear:"Ka jɔsi",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bn.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bn.min.js new file mode 100644 index 0000000..f67b5e2 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bn.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.bn={days:["রবিবার","সোমবার","মঙ্গলবার","বুধবার","বৃহস্পতিবার","শুক্রবার","শনিবার"],daysShort:["রবিবার","সোমবার","মঙ্গলবার","বুধবার","বৃহস্পতিবার","শুক্রবার","শনিবার"],daysMin:["রবি","সোম","মঙ্গল","বুধ","বৃহস্পতি","শুক্র","শনি"],months:["জানুয়ারী","ফেব্রুয়ারি","মার্চ","এপ্রিল","মে","জুন","জুলাই","অগাস্ট","সেপ্টেম্বর","অক্টোবর","নভেম্বর","ডিসেম্বর"],monthsShort:["জানুয়ারী","ফেব্রুয়ারি","মার্চ","এপ্রিল","মে","জুন","জুলাই","অগাস্ট","সেপ্টেম্বর","অক্টোবর","নভেম্বর","ডিসেম্বর"],today:"আজ",monthsTitle:"মাস",clear:"পরিষ্কার",weekStart:0,format:"mm/dd/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.br.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.br.min.js new file mode 100644 index 0000000..af3e3bd --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.br.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.br={days:["Sul","Lun","Meurzh","Merc'her","Yaou","Gwener","Sadorn"],daysShort:["Sul","Lun","Meu.","Mer.","Yao.","Gwe.","Sad."],daysMin:["Su","L","Meu","Mer","Y","G","Sa"],months:["Genver","C'hwevrer","Meurzh","Ebrel","Mae","Mezheven","Gouere","Eost","Gwengolo","Here","Du","Kerzu"],monthsShort:["Genv.","C'hw.","Meur.","Ebre.","Mae","Mezh.","Goue.","Eost","Gwen.","Here","Du","Kerz."],today:"Hiziv",monthsTitle:"Miz",clear:"Dilemel",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bs.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bs.min.js new file mode 100644 index 0000000..cfb06fd --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bs.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.bs={days:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"],daysShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],daysMin:["N","Po","U","Sr","Č","Pe","Su"],months:["Januar","Februar","Mart","April","Maj","Juni","Juli","August","Septembar","Oktobar","Novembar","Decembar"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],today:"Danas",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ca.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ca.min.js new file mode 100644 index 0000000..ac10789 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ca.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.ca={days:["Diumenge","Dilluns","Dimarts","Dimecres","Dijous","Divendres","Dissabte"],daysShort:["Diu","Dil","Dmt","Dmc","Dij","Div","Dis"],daysMin:["dg","dl","dt","dc","dj","dv","ds"],months:["Gener","Febrer","Març","Abril","Maig","Juny","Juliol","Agost","Setembre","Octubre","Novembre","Desembre"],monthsShort:["Gen","Feb","Mar","Abr","Mai","Jun","Jul","Ago","Set","Oct","Nov","Des"],today:"Avui",monthsTitle:"Mesos",clear:"Esborrar",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.cs.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.cs.min.js new file mode 100644 index 0000000..42dfd1a --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.cs.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.cs={days:["Neděle","Pondělí","Úterý","Středa","Čtvrtek","Pátek","Sobota"],daysShort:["Ned","Pon","Úte","Stř","Čtv","Pát","Sob"],daysMin:["Ne","Po","Út","St","Čt","Pá","So"],months:["Leden","Únor","Březen","Duben","Květen","Červen","Červenec","Srpen","Září","Říjen","Listopad","Prosinec"],monthsShort:["Led","Úno","Bře","Dub","Kvě","Čer","Čnc","Srp","Zář","Říj","Lis","Pro"],today:"Dnes",clear:"Vymazat",monthsTitle:"Měsíc",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.cy.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.cy.min.js new file mode 100644 index 0000000..f85ea03 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.cy.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.cy={days:["Sul","Llun","Mawrth","Mercher","Iau","Gwener","Sadwrn"],daysShort:["Sul","Llu","Maw","Mer","Iau","Gwe","Sad"],daysMin:["Su","Ll","Ma","Me","Ia","Gwe","Sa"],months:["Ionawr","Chewfror","Mawrth","Ebrill","Mai","Mehefin","Gorfennaf","Awst","Medi","Hydref","Tachwedd","Rhagfyr"],monthsShort:["Ion","Chw","Maw","Ebr","Mai","Meh","Gor","Aws","Med","Hyd","Tach","Rha"],today:"Heddiw"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.da.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.da.min.js new file mode 100644 index 0000000..53c8180 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.da.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.da={days:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],daysShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],daysMin:["Sø","Ma","Ti","On","To","Fr","Lø"],months:["Januar","Februar","Marts","April","Maj","Juni","Juli","August","September","Oktober","November","December"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],today:"I Dag",weekStart:1,clear:"Nulstil",format:"dd/mm/yyyy",monthsTitle:"Måneder"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.de.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.de.min.js new file mode 100644 index 0000000..1b5d6a2 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.de.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.de={days:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],daysShort:["Son","Mon","Die","Mit","Don","Fre","Sam"],daysMin:["So","Mo","Di","Mi","Do","Fr","Sa"],months:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthsShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],today:"Heute",monthsTitle:"Monate",clear:"Löschen",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.el.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.el.min.js new file mode 100644 index 0000000..046e9eb --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.el.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.el={days:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],daysShort:["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],daysMin:["Κυ","Δε","Τρ","Τε","Πε","Πα","Σα"],months:["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],monthsShort:["Ιαν","Φεβ","Μαρ","Απρ","Μάι","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],today:"Σήμερα",clear:"Καθαρισμός",weekStart:1,format:"d/m/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-AU.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-AU.min.js new file mode 100644 index 0000000..b8d5f41 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-AU.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["en-AU"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:1,format:"d/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-CA.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-CA.min.js new file mode 100644 index 0000000..7b1070f --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-CA.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["en-CA"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:0,format:"yyyy-mm-dd"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-GB.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-GB.min.js new file mode 100644 index 0000000..2966f54 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-GB.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["en-GB"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-IE.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-IE.min.js new file mode 100644 index 0000000..dc8f71c --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-IE.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["en-IE"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-NZ.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-NZ.min.js new file mode 100644 index 0000000..c374a8d --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-NZ.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["en-NZ"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:1,format:"d/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-ZA.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-ZA.min.js new file mode 100644 index 0000000..885a928 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-ZA.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["en-ZA"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:1,format:"yyyy/mm/d"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.eo.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.eo.min.js new file mode 100644 index 0000000..736db02 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.eo.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.eo={days:["dimanĉo","lundo","mardo","merkredo","ĵaŭdo","vendredo","sabato"],daysShort:["dim.","lun.","mar.","mer.","ĵaŭ.","ven.","sam."],daysMin:["d","l","ma","me","ĵ","v","s"],months:["januaro","februaro","marto","aprilo","majo","junio","julio","aŭgusto","septembro","oktobro","novembro","decembro"],monthsShort:["jan.","feb.","mar.","apr.","majo","jun.","jul.","aŭg.","sep.","okt.","nov.","dec."],today:"Hodiaŭ",clear:"Nuligi",weekStart:1,format:"yyyy-mm-dd"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.es.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.es.min.js new file mode 100644 index 0000000..f3cef5d --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.es.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.es={days:["Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"],daysShort:["Dom","Lun","Mar","Mié","Jue","Vie","Sáb"],daysMin:["Do","Lu","Ma","Mi","Ju","Vi","Sa"],months:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],monthsShort:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],today:"Hoy",monthsTitle:"Meses",clear:"Borrar",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.et.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.et.min.js new file mode 100644 index 0000000..34cd9c6 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.et.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.et={days:["Pühapäev","Esmaspäev","Teisipäev","Kolmapäev","Neljapäev","Reede","Laupäev"],daysShort:["Pühap","Esmasp","Teisip","Kolmap","Neljap","Reede","Laup"],daysMin:["P","E","T","K","N","R","L"],months:["Jaanuar","Veebruar","Märts","Aprill","Mai","Juuni","Juuli","August","September","Oktoober","November","Detsember"],monthsShort:["Jaan","Veebr","Märts","Apr","Mai","Juuni","Juuli","Aug","Sept","Okt","Nov","Dets"],today:"Täna",clear:"Tühjenda",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.eu.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.eu.min.js new file mode 100644 index 0000000..c5aa359 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.eu.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.eu={days:["Igandea","Astelehena","Asteartea","Asteazkena","Osteguna","Ostirala","Larunbata"],daysShort:["Ig","Al","Ar","Az","Og","Ol","Lr"],daysMin:["Ig","Al","Ar","Az","Og","Ol","Lr"],months:["Urtarrila","Otsaila","Martxoa","Apirila","Maiatza","Ekaina","Uztaila","Abuztua","Iraila","Urria","Azaroa","Abendua"],monthsShort:["Urt","Ots","Mar","Api","Mai","Eka","Uzt","Abu","Ira","Urr","Aza","Abe"],today:"Gaur",monthsTitle:"Hilabeteak",clear:"Ezabatu",weekStart:1,format:"yyyy/mm/dd"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fa.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fa.min.js new file mode 100644 index 0000000..8575237 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fa.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.fa={days:["یک‌شنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنج‌شنبه","جمعه","شنبه","یک‌شنبه"],daysShort:["یک","دو","سه","چهار","پنج","جمعه","شنبه","یک"],daysMin:["ی","د","س","چ","پ","ج","ش","ی"],months:["ژانویه","فوریه","مارس","آوریل","مه","ژوئن","ژوئیه","اوت","سپتامبر","اکتبر","نوامبر","دسامبر"],monthsShort:["ژان","فور","مار","آور","مه","ژون","ژوی","اوت","سپت","اکت","نوا","دسا"],today:"امروز",clear:"پاک کن",weekStart:1,format:"yyyy/mm/dd"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fi.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fi.min.js new file mode 100644 index 0000000..239dfb7 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fi.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.fi={days:["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],daysShort:["sun","maa","tii","kes","tor","per","lau"],daysMin:["su","ma","ti","ke","to","pe","la"],months:["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"],monthsShort:["tam","hel","maa","huh","tou","kes","hei","elo","syy","lok","mar","jou"],today:"tänään",clear:"Tyhjennä",weekStart:1,format:"d.m.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fo.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fo.min.js new file mode 100644 index 0000000..fa24e3a --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fo.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.fo={days:["Sunnudagur","Mánadagur","Týsdagur","Mikudagur","Hósdagur","Fríggjadagur","Leygardagur"],daysShort:["Sun","Mán","Týs","Mik","Hós","Frí","Ley"],daysMin:["Su","Má","Tý","Mi","Hó","Fr","Le"],months:["Januar","Februar","Marts","Apríl","Mei","Juni","Juli","August","Septembur","Oktobur","Novembur","Desembur"],monthsShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Des"],today:"Í Dag",clear:"Reinsa"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fr-CH.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fr-CH.min.js new file mode 100644 index 0000000..1c6bcdc --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fr-CH.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.fr={days:["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],daysShort:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],daysMin:["D","L","Ma","Me","J","V","S"],months:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],monthsShort:["Jan","Fév","Mar","Avr","Mai","Jui","Jul","Aou","Sep","Oct","Nov","Déc"],today:"Aujourd'hui",monthsTitle:"Mois",clear:"Effacer",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js new file mode 100644 index 0000000..244cfba --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.fr={days:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],daysShort:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],daysMin:["d","l","ma","me","j","v","s"],months:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthsShort:["janv.","févr.","mars","avril","mai","juin","juil.","août","sept.","oct.","nov.","déc."],today:"Aujourd'hui",monthsTitle:"Mois",clear:"Effacer",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.gl.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.gl.min.js new file mode 100644 index 0000000..3d92606 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.gl.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.gl={days:["Domingo","Luns","Martes","Mércores","Xoves","Venres","Sábado"],daysShort:["Dom","Lun","Mar","Mér","Xov","Ven","Sáb"],daysMin:["Do","Lu","Ma","Me","Xo","Ve","Sa"],months:["Xaneiro","Febreiro","Marzo","Abril","Maio","Xuño","Xullo","Agosto","Setembro","Outubro","Novembro","Decembro"],monthsShort:["Xan","Feb","Mar","Abr","Mai","Xun","Xul","Ago","Sep","Out","Nov","Dec"],today:"Hoxe",clear:"Limpar",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.he.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.he.min.js new file mode 100644 index 0000000..191cb45 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.he.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.he={days:["ראשון","שני","שלישי","רביעי","חמישי","שישי","שבת","ראשון"],daysShort:["א","ב","ג","ד","ה","ו","ש","א"],daysMin:["א","ב","ג","ד","ה","ו","ש","א"],months:["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],monthsShort:["ינו","פבר","מרץ","אפר","מאי","יונ","יול","אוג","ספט","אוק","נוב","דצמ"],today:"היום",rtl:!0}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hi.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hi.min.js new file mode 100644 index 0000000..635baff --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hi.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.hi={days:["रविवार","सोमवार","मंगलवार","बुधवार","गुरुवार","शुक्रवार","शनिवार"],daysShort:["सूर्य","सोम","मंगल","बुध","गुरु","शुक्र","शनि"],daysMin:["र","सो","मं","बु","गु","शु","श"],months:["जनवरी","फ़रवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितम्बर","अक्टूबर","नवंबर","दिसम्बर"],monthsShort:["जन","फ़रवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितं","अक्टूबर","नवं","दिसम्बर"],today:"आज",monthsTitle:"महीने",clear:"साफ",weekStart:1,format:"dd / mm / yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hr.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hr.min.js new file mode 100644 index 0000000..8b34bce --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hr.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.hr={days:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"],daysShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],daysMin:["Ne","Po","Ut","Sr","Če","Pe","Su"],months:["Siječanj","Veljača","Ožujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"],monthsShort:["Sij","Velj","Ožu","Tra","Svi","Lip","Srp","Kol","Ruj","Lis","Stu","Pro"],today:"Danas"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hu.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hu.min.js new file mode 100644 index 0000000..f9decf9 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hu.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.hu={days:["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],daysShort:["vas","hét","ked","sze","csü","pén","szo"],daysMin:["V","H","K","Sze","Cs","P","Szo"],months:["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"],monthsShort:["jan","feb","már","ápr","máj","jún","júl","aug","sze","okt","nov","dec"],today:"ma",weekStart:1,clear:"töröl",titleFormat:"yyyy. MM",format:"yyyy.mm.dd"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hy.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hy.min.js new file mode 100644 index 0000000..a1cf653 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hy.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.hy={days:["Կիրակի","Երկուշաբթի","Երեքշաբթի","Չորեքշաբթի","Հինգշաբթի","Ուրբաթ","Շաբաթ"],daysShort:["Կիր","Երկ","Երե","Չոր","Հին","Ուրբ","Շաբ"],daysMin:["Կի","Եկ","Եք","Չո","Հի","Ու","Շա"],months:["Հունվար","Փետրվար","Մարտ","Ապրիլ","Մայիս","Հունիս","Հուլիս","Օգոստոս","Սեպտեմբեր","Հոկտեմբեր","Նոյեմբեր","Դեկտեմբեր"],monthsShort:["Հնվ","Փետ","Մար","Ապր","Մայ","Հուն","Հուլ","Օգս","Սեպ","Հոկ","Նոյ","Դեկ"],today:"Այսօր",clear:"Ջնջել",format:"dd.mm.yyyy",weekStart:1,monthsTitle:"Ամիսնէր"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.id.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.id.min.js new file mode 100644 index 0000000..7c3220a --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.id.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.id={days:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],daysShort:["Mgu","Sen","Sel","Rab","Kam","Jum","Sab"],daysMin:["Mg","Sn","Sl","Ra","Ka","Ju","Sa"],months:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"],monthsShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Ags","Sep","Okt","Nov","Des"],today:"Hari Ini",clear:"Kosongkan"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.is.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.is.min.js new file mode 100644 index 0000000..f49bd18 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.is.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.is={days:["Sunnudagur","Mánudagur","Þriðjudagur","Miðvikudagur","Fimmtudagur","Föstudagur","Laugardagur"],daysShort:["Sun","Mán","Þri","Mið","Fim","Fös","Lau"],daysMin:["Su","Má","Þr","Mi","Fi","Fö","La"],months:["Janúar","Febrúar","Mars","Apríl","Maí","Júní","Júlí","Ágúst","September","Október","Nóvember","Desember"],monthsShort:["Jan","Feb","Mar","Apr","Maí","Jún","Júl","Ágú","Sep","Okt","Nóv","Des"],today:"Í Dag"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.it-CH.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.it-CH.min.js new file mode 100644 index 0000000..7e1adbb --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.it-CH.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.it={days:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],daysShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],daysMin:["Do","Lu","Ma","Me","Gi","Ve","Sa"],months:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],monthsShort:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],today:"Oggi",clear:"Cancella",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.it.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.it.min.js new file mode 100644 index 0000000..cc30766 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.it.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.it={days:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],daysShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],daysMin:["Do","Lu","Ma","Me","Gi","Ve","Sa"],months:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],monthsShort:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],today:"Oggi",monthsTitle:"Mesi",clear:"Cancella",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ja.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ja.min.js new file mode 100644 index 0000000..e321f04 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ja.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.ja={days:["日曜","月曜","火曜","水曜","木曜","金曜","土曜"],daysShort:["日","月","火","水","木","金","土"],daysMin:["日","月","火","水","木","金","土"],months:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],monthsShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],today:"今日",format:"yyyy/mm/dd",titleFormat:"yyyy年mm月",clear:"クリア"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ka.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ka.min.js new file mode 100644 index 0000000..84f14c0 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ka.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.ka={days:["კვირა","ორშაბათი","სამშაბათი","ოთხშაბათი","ხუთშაბათი","პარასკევი","შაბათი"],daysShort:["კვი","ორშ","სამ","ოთხ","ხუთ","პარ","შაბ"],daysMin:["კვ","ორ","სა","ოთ","ხუ","პა","შა"],months:["იანვარი","თებერვალი","მარტი","აპრილი","მაისი","ივნისი","ივლისი","აგვისტო","სექტემბერი","ოქტომბერი","ნოემბერი","დეკემბერი"],monthsShort:["იან","თებ","მარ","აპრ","მაი","ივნ","ივლ","აგვ","სექ","ოქტ","ნოე","დეკ"],today:"დღეს",clear:"გასუფთავება",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.kh.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.kh.min.js new file mode 100644 index 0000000..bf2abc5 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.kh.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.kh={days:["អាទិត្យ","ចន្ទ","អង្គារ","ពុធ","ព្រហស្បតិ៍","សុក្រ","សៅរ៍"],daysShort:["អា.ទិ","ចន្ទ","អង្គារ","ពុធ","ព្រ.ហ","សុក្រ","សៅរ៍"],daysMin:["អា.ទិ","ចន្ទ","អង្គារ","ពុធ","ព្រ.ហ","សុក្រ","សៅរ៍"],months:["មករា","កុម្ភះ","មិនា","មេសា","ឧសភា","មិថុនា","កក្កដា","សីហា","កញ្ញា","តុលា","វិច្ឆិកា","ធ្នូ"],monthsShort:["មករា","កុម្ភះ","មិនា","មេសា","ឧសភា","មិថុនា","កក្កដា","សីហា","កញ្ញា","តុលា","វិច្ឆិកា","ធ្នូ"],today:"ថ្ងៃនេះ",clear:"សំអាត"},a.fn.datepicker.deprecated('The language code "kh" is deprecated and will be removed in 2.0. For Khmer support use "km" instead.')}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.kk.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.kk.min.js new file mode 100644 index 0000000..f4e2f3f --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.kk.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.kk={days:["Жексенбі","Дүйсенбі","Сейсенбі","Сәрсенбі","Бейсенбі","Жұма","Сенбі"],daysShort:["Жек","Дүй","Сей","Сәр","Бей","Жұм","Сен"],daysMin:["Жк","Дс","Сс","Ср","Бс","Жм","Сн"],months:["Қаңтар","Ақпан","Наурыз","Сәуір","Мамыр","Маусым","Шілде","Тамыз","Қыркүйек","Қазан","Қараша","Желтоқсан"],monthsShort:["Қаң","Ақп","Нау","Сәу","Мам","Мау","Шіл","Там","Қыр","Қаз","Қар","Жел"],today:"Бүгін",weekStart:1}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.km.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.km.min.js new file mode 100644 index 0000000..648d83f --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.km.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.km={days:["អាទិត្យ","ចន្ទ","អង្គារ","ពុធ","ព្រហស្បតិ៍","សុក្រ","សៅរ៍"],daysShort:["អា.ទិ","ចន្ទ","អង្គារ","ពុធ","ព្រ.ហ","សុក្រ","សៅរ៍"],daysMin:["អា.ទិ","ចន្ទ","អង្គារ","ពុធ","ព្រ.ហ","សុក្រ","សៅរ៍"],months:["មករា","កុម្ភះ","មិនា","មេសា","ឧសភា","មិថុនា","កក្កដា","សីហា","កញ្ញា","តុលា","វិច្ឆិកា","ធ្នូ"],monthsShort:["មករា","កុម្ភះ","មិនា","មេសា","ឧសភា","មិថុនា","កក្កដា","សីហា","កញ្ញា","តុលា","វិច្ឆិកា","ធ្នូ"],today:"ថ្ងៃនេះ",clear:"សំអាត"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ko.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ko.min.js new file mode 100644 index 0000000..9751ee5 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ko.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.ko={days:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],daysShort:["일","월","화","수","목","금","토"],daysMin:["일","월","화","수","목","금","토"],months:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],monthsShort:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],today:"오늘",clear:"삭제",format:"yyyy-mm-dd",titleFormat:"yyyy년mm월",weekStart:0}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.kr.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.kr.min.js new file mode 100644 index 0000000..4339340 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.kr.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.kr={days:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],daysShort:["일","월","화","수","목","금","토"],daysMin:["일","월","화","수","목","금","토"],months:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],monthsShort:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"]},a.fn.datepicker.deprecated('The language code "kr" is deprecated and will be removed in 2.0. For korean support use "ko" instead.')}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.lt.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.lt.min.js new file mode 100644 index 0000000..da78ea8 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.lt.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.lt={days:["Sekmadienis","Pirmadienis","Antradienis","Trečiadienis","Ketvirtadienis","Penktadienis","Šeštadienis"],daysShort:["S","Pr","A","T","K","Pn","Š"],daysMin:["Sk","Pr","An","Tr","Ke","Pn","Št"],months:["Sausis","Vasaris","Kovas","Balandis","Gegužė","Birželis","Liepa","Rugpjūtis","Rugsėjis","Spalis","Lapkritis","Gruodis"],monthsShort:["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rugp","Rugs","Spa","Lap","Gru"],today:"Šiandien",monthsTitle:"Mėnesiai",clear:"Išvalyti",weekStart:1,format:"yyyy-mm-dd"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.lv.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.lv.min.js new file mode 100644 index 0000000..89cea00 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.lv.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.lv={days:["Svētdiena","Pirmdiena","Otrdiena","Trešdiena","Ceturtdiena","Piektdiena","Sestdiena"],daysShort:["Sv","P","O","T","C","Pk","S"],daysMin:["Sv","Pr","Ot","Tr","Ce","Pk","Se"],months:["Janvāris","Februāris","Marts","Aprīlis","Maijs","Jūnijs","Jūlijs","Augusts","Septembris","Oktobris","Novembris","Decembris"],monthsShort:["Jan","Feb","Mar","Apr","Mai","Jūn","Jūl","Aug","Sep","Okt","Nov","Dec"],monthsTitle:"Mēneši",today:"Šodien",clear:"Nodzēst",weekStart:1}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.me.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.me.min.js new file mode 100644 index 0000000..c65a891 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.me.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.me={days:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"],daysShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],daysMin:["Ne","Po","Ut","Sr","Če","Pe","Su"],months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],today:"Danas",weekStart:1,clear:"Izbriši",format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.mk.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.mk.min.js new file mode 100644 index 0000000..46423f7 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.mk.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.mk={days:["Недела","Понеделник","Вторник","Среда","Четврток","Петок","Сабота"],daysShort:["Нед","Пон","Вто","Сре","Чет","Пет","Саб"],daysMin:["Не","По","Вт","Ср","Че","Пе","Са"],months:["Јануари","Февруари","Март","Април","Мај","Јуни","Јули","Август","Септември","Октомври","Ноември","Декември"],monthsShort:["Јан","Фев","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Ное","Дек"],today:"Денес",format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.mn.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.mn.min.js new file mode 100644 index 0000000..6ebaec9 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.mn.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.mn={days:["Ням","Даваа","Мягмар","Лхагва","Пүрэв","Баасан","Бямба"],daysShort:["Ням","Дав","Мяг","Лха","Пүр","Баа","Бям"],daysMin:["Ня","Да","Мя","Лх","Пү","Ба","Бя"],months:["Хулгана","Үхэр","Бар","Туулай","Луу","Могой","Морь","Хонь","Бич","Тахиа","Нохой","Гахай"],monthsShort:["Хул","Үхэ","Бар","Туу","Луу","Мог","Мор","Хон","Бич","Тах","Нох","Гах"],today:"Өнөөдөр",clear:"Тодорхой",format:"yyyy.mm.dd",weekStart:1}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ms.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ms.min.js new file mode 100644 index 0000000..47efafd --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ms.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.ms={days:["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"],daysShort:["Aha","Isn","Sel","Rab","Kha","Jum","Sab"],daysMin:["Ah","Is","Se","Ra","Kh","Ju","Sa"],months:["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember"],monthsShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Ogo","Sep","Okt","Nov","Dis"],today:"Hari Ini",clear:"Bersihkan"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.nl-BE.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.nl-BE.min.js new file mode 100644 index 0000000..85d3146 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.nl-BE.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["nl-BE"]={days:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],daysShort:["zo","ma","di","wo","do","vr","za"],daysMin:["zo","ma","di","wo","do","vr","za"],months:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],monthsShort:["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],today:"Vandaag",monthsTitle:"Maanden",clear:"Leegmaken",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.nl.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.nl.min.js new file mode 100644 index 0000000..af977b7 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.nl.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.nl={days:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],daysShort:["zo","ma","di","wo","do","vr","za"],daysMin:["zo","ma","di","wo","do","vr","za"],months:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],monthsShort:["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],today:"Vandaag",monthsTitle:"Maanden",clear:"Wissen",weekStart:1,format:"dd-mm-yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.no.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.no.min.js new file mode 100644 index 0000000..0c5136e --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.no.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.no={days:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],daysShort:["søn","man","tir","ons","tor","fre","lør"],daysMin:["sø","ma","ti","on","to","fr","lø"],months:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],monthsShort:["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des"],today:"i dag",monthsTitle:"Måneder",clear:"Nullstill",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.oc.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.oc.min.js new file mode 100644 index 0000000..630fa16 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.oc.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.oc={days:["Dimenge","Diluns","Dimars","Dimècres","Dijòus","Divendres","Dissabte"],daysShort:["Dim","Dil","Dmr","Dmc","Dij","Div","Dis"],daysMin:["dg","dl","dr","dc","dj","dv","ds"],months:["Genièr","Febrièr","Març","Abrial","Mai","Junh","Julhet","Agost","Setembre","Octobre","Novembre","Decembre"],monthsShort:["Gen","Feb","Mar","Abr","Mai","Jun","Jul","Ago","Set","Oct","Nov","Dec"],today:"Uèi",monthsTitle:"Meses",clear:"Escafar",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.pl.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.pl.min.js new file mode 100644 index 0000000..ffb30ec --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.pl.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.pl={days:["Niedziela","Poniedziałek","Wtorek","Środa","Czwartek","Piątek","Sobota"],daysShort:["Niedz.","Pon.","Wt.","Śr.","Czw.","Piąt.","Sob."],daysMin:["Ndz.","Pn.","Wt.","Śr.","Czw.","Pt.","Sob."],months:["Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień"],monthsShort:["Sty.","Lut.","Mar.","Kwi.","Maj","Cze.","Lip.","Sie.","Wrz.","Paź.","Lis.","Gru."],today:"Dzisiaj",weekStart:1,clear:"Wyczyść",format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.pt-BR.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.pt-BR.min.js new file mode 100644 index 0000000..2d3f8af --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.pt-BR.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["pt-BR"]={days:["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"],daysShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],daysMin:["Do","Se","Te","Qu","Qu","Se","Sa"],months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthsShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],today:"Hoje",monthsTitle:"Meses",clear:"Limpar",format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.pt.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.pt.min.js new file mode 100644 index 0000000..e2b4e64 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.pt.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.pt={days:["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"],daysShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],daysMin:["Do","Se","Te","Qu","Qu","Se","Sa"],months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthsShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],today:"Hoje",monthsTitle:"Meses",clear:"Limpar",format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ro.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ro.min.js new file mode 100644 index 0000000..5fff298 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ro.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.ro={days:["Duminică","Luni","Marţi","Miercuri","Joi","Vineri","Sâmbătă"],daysShort:["Dum","Lun","Mar","Mie","Joi","Vin","Sâm"],daysMin:["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],months:["Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"],monthsShort:["Ian","Feb","Mar","Apr","Mai","Iun","Iul","Aug","Sep","Oct","Nov","Dec"],today:"Astăzi",clear:"Șterge",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.rs-latin.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.rs-latin.min.js new file mode 100644 index 0000000..e520c95 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.rs-latin.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["rs-latin"]={days:["Nedelja","Ponedeljak","Utorak","Sreda","Četvrtak","Petak","Subota"],daysShort:["Ned","Pon","Uto","Sre","Čet","Pet","Sub"],daysMin:["N","Po","U","Sr","Č","Pe","Su"],months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],today:"Danas",weekStart:1,format:"dd.mm.yyyy"},a.fn.datepicker.deprecated('This language code "rs-latin" is deprecated (invalid serbian language code) and will be removed in 2.0. For Serbian latin support use "sr-latin" instead.')}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.rs.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.rs.min.js new file mode 100644 index 0000000..ba95ae2 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.rs.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.rs={days:["Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"],daysShort:["Нед","Пон","Уто","Сре","Чет","Пет","Суб"],daysMin:["Н","По","У","Ср","Ч","Пе","Су"],months:["Јануар","Фебруар","Март","Април","Мај","Јун","Јул","Август","Септембар","Октобар","Новембар","Децембар"],monthsShort:["Јан","Феб","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Нов","Дец"],today:"Данас",weekStart:1,format:"dd.mm.yyyy"},a.fn.datepicker.deprecated('This language code "rs" is deprecated (invalid serbian language code) and will be removed in 2.0. For Serbian support use "sr" instead.')}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ru.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ru.min.js new file mode 100644 index 0000000..52bc010 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ru.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.ru={days:["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"],daysShort:["Вск","Пнд","Втр","Срд","Чтв","Птн","Суб"],daysMin:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],months:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],monthsShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],today:"Сегодня",clear:"Очистить",format:"dd.mm.yyyy",weekStart:1,monthsTitle:"Месяцы"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.si.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.si.min.js new file mode 100644 index 0000000..b9746b8 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.si.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.si={days:["ඉරිදා","සඳුදා","අඟහරුවාදා","බදාදා","බ්‍රහස්පතින්දා","සිකුරාදා","සෙනසුරාදා"],daysShort:["ඉරි","සඳු","අඟ","බදා","බ්‍රහ","සිකු","සෙන"],daysMin:["ඉ","ස","අ","බ","බ්‍ර","සි","සෙ"],months:["ජනවාරි","පෙබරවාරි","මාර්තු","අප්‍රේල්","මැයි","ජුනි","ජූලි","අගෝස්තු","සැප්තැම්බර්","ඔක්තෝබර්","නොවැම්බර්","දෙසැම්බර්"],monthsShort:["ජන","පෙබ","මාර්","අප්‍රේ","මැයි","ජුනි","ජූලි","අගෝ","සැප්","ඔක්","නොවැ","දෙසැ"],today:"අද",monthsTitle:"මාස",clear:"මකන්න",weekStart:0,format:"yyyy-mm-dd"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sk.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sk.min.js new file mode 100644 index 0000000..79a9267 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sk.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.sk={days:["Nedeľa","Pondelok","Utorok","Streda","Štvrtok","Piatok","Sobota"],daysShort:["Ned","Pon","Uto","Str","Štv","Pia","Sob"],daysMin:["Ne","Po","Ut","St","Št","Pia","So"],months:["Január","Február","Marec","Apríl","Máj","Jún","Júl","August","September","Október","November","December"],monthsShort:["Jan","Feb","Mar","Apr","Máj","Jún","Júl","Aug","Sep","Okt","Nov","Dec"],today:"Dnes",clear:"Vymazať",weekStart:1,format:"d.m.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sl.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sl.min.js new file mode 100644 index 0000000..831cf73 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sl.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.sl={days:["Nedelja","Ponedeljek","Torek","Sreda","Četrtek","Petek","Sobota"],daysShort:["Ned","Pon","Tor","Sre","Čet","Pet","Sob"],daysMin:["Ne","Po","To","Sr","Če","Pe","So"],months:["Januar","Februar","Marec","April","Maj","Junij","Julij","Avgust","September","Oktober","November","December"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],today:"Danes",weekStart:1}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sq.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sq.min.js new file mode 100644 index 0000000..8c58605 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sq.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.sq={days:["E Diel","E Hënë","E Martē","E Mërkurë","E Enjte","E Premte","E Shtunë"],daysShort:["Die","Hën","Mar","Mër","Enj","Pre","Shtu"],daysMin:["Di","Hë","Ma","Më","En","Pr","Sht"],months:["Janar","Shkurt","Mars","Prill","Maj","Qershor","Korrik","Gusht","Shtator","Tetor","Nëntor","Dhjetor"],monthsShort:["Jan","Shk","Mar","Pri","Maj","Qer","Korr","Gu","Sht","Tet","Nën","Dhjet"],monthsTitle:"Muaj",today:"Sot",weekStart:1,format:"dd/mm/yyyy",clear:"Pastro"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sr-latin.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sr-latin.min.js new file mode 100644 index 0000000..c6b7001 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sr-latin.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["sr-latin"]={days:["Nedelja","Ponedeljak","Utorak","Sreda","Četvrtak","Petak","Subota"],daysShort:["Ned","Pon","Uto","Sre","Čet","Pet","Sub"],daysMin:["N","Po","U","Sr","Č","Pe","Su"],months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],today:"Danas",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sr.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sr.min.js new file mode 100644 index 0000000..4e46dbf --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sr.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.sr={days:["Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"],daysShort:["Нед","Пон","Уто","Сре","Чет","Пет","Суб"],daysMin:["Н","По","У","Ср","Ч","Пе","Су"],months:["Јануар","Фебруар","Март","Април","Мај","Јун","Јул","Август","Септембар","Октобар","Новембар","Децембар"],monthsShort:["Јан","Феб","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Нов","Дец"],today:"Данас",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sv.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sv.min.js new file mode 100644 index 0000000..7ab6bec --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sv.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.sv={days:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],daysShort:["sön","mån","tis","ons","tor","fre","lör"],daysMin:["sö","må","ti","on","to","fr","lö"],months:["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],monthsShort:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],today:"Idag",format:"yyyy-mm-dd",weekStart:1,clear:"Rensa"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sw.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sw.min.js new file mode 100644 index 0000000..454d305 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sw.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.sw={days:["Jumapili","Jumatatu","Jumanne","Jumatano","Alhamisi","Ijumaa","Jumamosi"],daysShort:["J2","J3","J4","J5","Alh","Ij","J1"],daysMin:["2","3","4","5","A","I","1"],months:["Januari","Februari","Machi","Aprili","Mei","Juni","Julai","Agosti","Septemba","Oktoba","Novemba","Desemba"],monthsShort:["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ago","Sep","Okt","Nov","Des"],today:"Leo"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ta.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ta.min.js new file mode 100644 index 0000000..e790949 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ta.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.ta={days:["ஞாயிறு","திங்கள்","செவ்வாய்","புதன்","வியாழன்","வெள்ளி","சனி"],daysShort:["ஞாயி","திங்","செவ்","புத","வியா","வெள்","சனி"],daysMin:["ஞா","தி","செ","பு","வி","வெ","ச"],months:["ஜனவரி","பிப்ரவரி","மார்ச்","ஏப்ரல்","மே","ஜூன்","ஜூலை","ஆகஸ்டு","செப்டம்பர்","அக்டோபர்","நவம்பர்","டிசம்பர்"],monthsShort:["ஜன","பிப்","மார்","ஏப்","மே","ஜூன்","ஜூலை","ஆக","செப்","அக்","நவ","டிச"],today:"இன்று",monthsTitle:"மாதங்கள்",clear:"நீக்கு",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.tg.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.tg.min.js new file mode 100644 index 0000000..104b6dd --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.tg.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.tg={days:["Якшанбе","Душанбе","Сешанбе","Чоршанбе","Панҷшанбе","Ҷумъа","Шанбе"],daysShort:["Яшб","Дшб","Сшб","Чшб","Пшб","Ҷум","Шнб"],daysMin:["Яш","Дш","Сш","Чш","Пш","Ҷм","Шб"],months:["Январ","Феврал","Март","Апрел","Май","Июн","Июл","Август","Сентябр","Октябр","Ноябр","Декабр"],monthsShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],today:"Имрӯз",monthsTitle:"Моҳҳо",clear:"Тоза намудан",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.th.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.th.min.js new file mode 100644 index 0000000..1e398ba --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.th.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.th={days:["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัส","ศุกร์","เสาร์","อาทิตย์"],daysShort:["อา","จ","อ","พ","พฤ","ศ","ส","อา"],daysMin:["อา","จ","อ","พ","พฤ","ศ","ส","อา"],months:["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],monthsShort:["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],today:"วันนี้"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.tk.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.tk.min.js new file mode 100644 index 0000000..716edef --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.tk.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.tk={days:["Ýekşenbe","Duşenbe","Sişenbe","Çarşenbe","Penşenbe","Anna","Şenbe"],daysShort:["Ýek","Duş","Siş","Çar","Pen","Ann","Şen"],daysMin:["Ýe","Du","Si","Ça","Pe","An","Şe"],months:["Ýanwar","Fewral","Mart","Aprel","Maý","Iýun","Iýul","Awgust","Sentýabr","Oktýabr","Noýabr","Dekabr"],monthsShort:["Ýan","Few","Mar","Apr","Maý","Iýn","Iýl","Awg","Sen","Okt","Noý","Dek"],today:"Bu gün",monthsTitle:"Aýlar",clear:"Aýyr",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.tr.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.tr.min.js new file mode 100644 index 0000000..7889b11 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.tr.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.tr={days:["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],daysShort:["Pz","Pzt","Sal","Çrş","Prş","Cu","Cts"],daysMin:["Pz","Pzt","Sa","Çr","Pr","Cu","Ct"],months:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],monthsShort:["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],today:"Bugün",clear:"Temizle",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.uk.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.uk.min.js new file mode 100644 index 0000000..41b02e6 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.uk.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.uk={days:["Неділя","Понеділок","Вівторок","Середа","Четвер","П'ятниця","Субота"],daysShort:["Нед","Пнд","Втр","Срд","Чтв","Птн","Суб"],daysMin:["Нд","Пн","Вт","Ср","Чт","Пт","Сб"],months:["Cічень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"],monthsShort:["Січ","Лют","Бер","Кві","Тра","Чер","Лип","Сер","Вер","Жов","Лис","Гру"],today:"Сьогодні",clear:"Очистити",format:"dd.mm.yyyy",weekStart:1}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.uz-cyrl.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.uz-cyrl.min.js new file mode 100644 index 0000000..a0a8f21 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.uz-cyrl.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["uz-cyrl"]={days:["Якшанба","Душанба","Сешанба","Чоршанба","Пайшанба","Жума","Шанба"],daysShort:["Якш","Ду","Се","Чор","Пай","Жу","Ша"],daysMin:["Як","Ду","Се","Чо","Па","Жу","Ша"],months:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],monthsShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],today:"Бугун",clear:"Ўчириш",format:"dd.mm.yyyy",weekStart:1,monthsTitle:"Ойлар"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.uz-latn.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.uz-latn.min.js new file mode 100644 index 0000000..2f58e34 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.uz-latn.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["uz-latn"]={days:["Yakshanba","Dushanba","Seshanba","Chorshanba","Payshanba","Juma","Shanba"],daysShort:["Yak","Du","Se","Chor","Pay","Ju","Sha"],daysMin:["Ya","Du","Se","Cho","Pa","Ju","Sha"],months:["Yanvar","Fevral","Mart","Aprel","May","Iyun","Iyul","Avgust","Sentabr","Oktabr","Noyabr","Dekabr"],monthsShort:["Yan","Fev","Mar","Apr","May","Iyn","Iyl","Avg","Sen","Okt","Noy","Dek"],today:"Bugun",clear:"O'chirish",format:"dd.mm.yyyy",weekStart:1,monthsTitle:"Oylar"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.vi.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.vi.min.js new file mode 100644 index 0000000..3311d23 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.vi.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.vi={days:["Chủ nhật","Thứ hai","Thứ ba","Thứ tư","Thứ năm","Thứ sáu","Thứ bảy"],daysShort:["CN","Thứ 2","Thứ 3","Thứ 4","Thứ 5","Thứ 6","Thứ 7"],daysMin:["CN","T2","T3","T4","T5","T6","T7"],months:["Tháng 1","Tháng 2","Tháng 3","Tháng 4","Tháng 5","Tháng 6","Tháng 7","Tháng 8","Tháng 9","Tháng 10","Tháng 11","Tháng 12"],monthsShort:["Th1","Th2","Th3","Th4","Th5","Th6","Th7","Th8","Th9","Th10","Th11","Th12"],today:"Hôm nay",clear:"Xóa",format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.zh-CN.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.zh-CN.min.js new file mode 100644 index 0000000..8e6920b --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.zh-CN.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["zh-CN"]={days:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],daysShort:["周日","周一","周二","周三","周四","周五","周六"],daysMin:["日","一","二","三","四","五","六"],months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthsShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],today:"今天",monthsTitle:"选择月份",clear:"清除",format:"yyyy-mm-dd",titleFormat:"yyyy年mm月",weekStart:1}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.zh-TW.min.js b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.zh-TW.min.js new file mode 100644 index 0000000..e309c1d --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.zh-TW.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["zh-TW"]={days:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],daysShort:["週日","週一","週二","週三","週四","週五","週六"],daysMin:["日","一","二","三","四","五","六"],months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthsShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],today:"今天",format:"yyyy年mm月dd日",weekStart:1,clear:"清除"}}(jQuery); \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap/css/bootstrap-rtl.css b/src/API.Web/wwwroot/libs/bootstrap/css/bootstrap-rtl.css new file mode 100644 index 0000000..0a5e9b5 --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap/css/bootstrap-rtl.css @@ -0,0 +1,11453 @@ +/*! + * Bootstrap v4.5.2 (https://getbootstrap.com/) + * Copyright 2011-2020 The Bootstrap Authors + * Copyright 2011-2020 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +:root { + --blue: #007bff; + --indigo: #6610f2; + --purple: #6f42c1; + --pink: #e83e8c; + --red: #dc3545; + --orange: #fd7e14; + --yellow: #ffc107; + --green: #28a745; + --teal: #20c997; + --cyan: #17a2b8; + --white: #fff; + --gray: #6c757d; + --gray-dark: #343a40; + --primary: #007bff; + --secondary: #6c757d; + --success: #28a745; + --info: #17a2b8; + --warning: #ffc107; + --danger: #dc3545; + --light: #f8f9fa; + --dark: #343a40; + --breakpoint-xs: 0; + --breakpoint-sm: 576px; + --breakpoint-md: 768px; + --breakpoint-lg: 992px; + --breakpoint-xl: 1200px; + --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +html { + font-family: sans-serif; + line-height: 1.15; + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +article, aside, figcaption, figure, footer, header, hgroup, main, nav, section { + display: block; +} + +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: left; + background-color: #fff; +} + +[tabindex="-1"]:focus:not(:focus-visible) { + outline: 0 !important; +} + +hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +h1, h2, h3, h4, h5, h6 { + margin-top: 0; + margin-bottom: 0.5rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +abbr[title], +abbr[data-original-title] { + text-decoration: underline; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + border-bottom: 0; + -webkit-text-decoration-skip-ink: none; + text-decoration-skip-ink: none; +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: 700; +} + +dd { + margin-bottom: .5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +b, +strong { + font-weight: bolder; +} + +small { + font-size: 80%; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -.25em; +} + +sup { + top: -.5em; +} + +a { + color: #007bff; + text-decoration: none; + background-color: transparent; +} + +a:hover { + color: #0056b3; + text-decoration: underline; +} + +a:not([href]):not([class]) { + color: inherit; + text-decoration: none; +} + +a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none; +} + +pre, +code, +kbd, +samp { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + font-size: 1em; +} + +pre { + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + -ms-overflow-style: scrollbar; +} + +figure { + margin: 0 0 1rem; +} + +img { + vertical-align: middle; + border-style: none; +} + +svg { + overflow: hidden; + vertical-align: middle; +} + +table { + border-collapse: collapse; +} + +caption { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #6c757d; + text-align: left; + caption-side: bottom; +} + +th { + text-align: inherit; + text-align: -webkit-match-parent; +} + +label { + display: inline-block; + margin-bottom: 0.5rem; +} + +button { + border-radius: 0; +} + +button:focus:not(:focus-visible) { + outline: 0; +} + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +input { + overflow: visible; +} + +button, +select { + text-transform: none; +} + +[role="button"] { + cursor: pointer; +} + +select { + word-wrap: normal; +} + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +button:not(:disabled), +[type="button"]:not(:disabled), +[type="reset"]:not(:disabled), +[type="submit"]:not(:disabled) { + cursor: pointer; +} + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + padding: 0; + border-style: none; +} + +input[type="radio"], +input[type="checkbox"] { + box-sizing: border-box; + padding: 0; +} + +textarea { + overflow: auto; + resize: vertical; +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + max-width: 100%; + padding: 0; + margin-bottom: .5rem; + font-size: 1.5rem; + line-height: inherit; + color: inherit; + white-space: normal; +} + +progress { + vertical-align: baseline; +} + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +[type="search"] { + outline-offset: -2px; + -webkit-appearance: none; +} + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} + +output { + display: inline-block; +} + +summary { + display: list-item; + cursor: pointer; +} + +template { + display: none; +} + +[hidden] { + display: none !important; +} + +h1, h2, h3, h4, h5, h6, +.h1, .h2, .h3, .h4, .h5, .h6 { + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; +} + +h1, .h1 { + font-size: 2.5rem; +} + +h2, .h2 { + font-size: 2rem; +} + +h3, .h3 { + font-size: 1.75rem; +} + +h4, .h4 { + font-size: 1.5rem; +} + +h5, .h5 { + font-size: 1.25rem; +} + +h6, .h6 { + font-size: 1rem; +} + +.lead { + font-size: 1.25rem; + font-weight: 300; +} + +.display-1 { + font-size: 6rem; + font-weight: 300; + line-height: 1.2; +} + +.display-2 { + font-size: 5.5rem; + font-weight: 300; + line-height: 1.2; +} + +.display-3 { + font-size: 4.5rem; + font-weight: 300; + line-height: 1.2; +} + +.display-4 { + font-size: 3.5rem; + font-weight: 300; + line-height: 1.2; +} + +hr { + margin-top: 1rem; + margin-bottom: 1rem; + border: 0; + border-top: 1px solid rgba(0, 0, 0, 0.1); +} + +small, +.small { + font-size: 80%; + font-weight: 400; +} + +mark, +.mark { + padding: 0.2em; + background-color: #fcf8e3; +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.list-inline { + padding-left: 0; + list-style: none; +} + +.list-inline-item { + display: inline-block; +} + +.list-inline-item:not(:last-child) { + margin-right: 0.5rem; +} + +.initialism { + font-size: 90%; + text-transform: uppercase; +} + +.blockquote { + margin-bottom: 1rem; + font-size: 1.25rem; +} + +.blockquote-footer { + display: block; + font-size: 80%; + color: #6c757d; +} + +.blockquote-footer::before { + content: "\2014\00A0"; +} + +.img-fluid { + max-width: 100%; + height: auto; +} + +.img-thumbnail { + padding: 0.25rem; + background-color: #fff; + border: 1px solid #dee2e6; + border-radius: 0.25rem; + max-width: 100%; + height: auto; +} + +.figure { + display: inline-block; +} + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} + +.figure-caption { + font-size: 90%; + color: #6c757d; +} + +code { + font-size: 87.5%; + color: #e83e8c; + word-wrap: break-word; +} + +a > code { + color: inherit; +} + +kbd { + padding: 0.2rem 0.4rem; + font-size: 87.5%; + color: #fff; + background-color: #212529; + border-radius: 0.2rem; +} + +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: 700; +} + +pre { + display: block; + font-size: 87.5%; + color: #212529; +} + +pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +.container, +.container-fluid, +.container-sm, +.container-md, +.container-lg, +.container-xl { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container, .container-sm { + max-width: 540px; + } +} + +@media (min-width: 768px) { + .container, .container-sm, .container-md { + max-width: 720px; + } +} + +@media (min-width: 992px) { + .container, .container-sm, .container-md, .container-lg { + max-width: 960px; + } +} + +@media (min-width: 1200px) { + .container, .container-sm, .container-md, .container-lg, .container-xl { + max-width: 1140px; + } +} + +.row { + display: flex; + flex-wrap: wrap; + margin-right: -15px; + margin-left: -15px; +} + +.no-gutters { + margin-right: 0; + margin-left: 0; +} + +.no-gutters > .col, +.no-gutters > [class*="col-"] { + padding-right: 0; + padding-left: 0; +} + +.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, +.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, +.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, +.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, +.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl, +.col-xl-auto { + position: relative; + width: 100%; + padding-right: 15px; + padding-left: 15px; +} + +.col { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; +} + +.row-cols-1 > * { + flex: 0 0 100%; + max-width: 100%; +} + +.row-cols-2 > * { + flex: 0 0 50%; + max-width: 50%; +} + +.row-cols-3 > * { + flex: 0 0 33.333333%; + max-width: 33.333333%; +} + +.row-cols-4 > * { + flex: 0 0 25%; + max-width: 25%; +} + +.row-cols-5 > * { + flex: 0 0 20%; + max-width: 20%; +} + +.row-cols-6 > * { + flex: 0 0 16.666667%; + max-width: 16.666667%; +} + +.col-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; +} + +.col-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; +} + +.col-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; +} + +.col-3 { + flex: 0 0 25%; + max-width: 25%; +} + +.col-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; +} + +.col-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; +} + +.col-6 { + flex: 0 0 50%; + max-width: 50%; +} + +.col-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; +} + +.col-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; +} + +.col-9 { + flex: 0 0 75%; + max-width: 75%; +} + +.col-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; +} + +.col-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; +} + +.col-12 { + flex: 0 0 100%; + max-width: 100%; +} + +.order-first { + order: -1; +} + +.order-last { + order: 13; +} + +.order-0 { + order: 0; +} + +.order-1 { + order: 1; +} + +.order-2 { + order: 2; +} + +.order-3 { + order: 3; +} + +.order-4 { + order: 4; +} + +.order-5 { + order: 5; +} + +.order-6 { + order: 6; +} + +.order-7 { + order: 7; +} + +.order-8 { + order: 8; +} + +.order-9 { + order: 9; +} + +.order-10 { + order: 10; +} + +.order-11 { + order: 11; +} + +.order-12 { + order: 12; +} + +.offset-1 { + margin-left: 8.333333%; +} + +.offset-2 { + margin-left: 16.666667%; +} + +.offset-3 { + margin-left: 25%; +} + +.offset-4 { + margin-left: 33.333333%; +} + +.offset-5 { + margin-left: 41.666667%; +} + +.offset-6 { + margin-left: 50%; +} + +.offset-7 { + margin-left: 58.333333%; +} + +.offset-8 { + margin-left: 66.666667%; +} + +.offset-9 { + margin-left: 75%; +} + +.offset-10 { + margin-left: 83.333333%; +} + +.offset-11 { + margin-left: 91.666667%; +} + +@media (min-width: 576px) { + .col-sm { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .row-cols-sm-1 > * { + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-sm-2 > * { + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-sm-3 > * { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-sm-4 > * { + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-sm-5 > * { + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-sm-6 > * { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-sm-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-sm-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-sm-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-sm-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-sm-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-sm-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-sm-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-sm-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-sm-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-sm-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-sm-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-sm-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-sm-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-sm-first { + order: -1; + } + .order-sm-last { + order: 13; + } + .order-sm-0 { + order: 0; + } + .order-sm-1 { + order: 1; + } + .order-sm-2 { + order: 2; + } + .order-sm-3 { + order: 3; + } + .order-sm-4 { + order: 4; + } + .order-sm-5 { + order: 5; + } + .order-sm-6 { + order: 6; + } + .order-sm-7 { + order: 7; + } + .order-sm-8 { + order: 8; + } + .order-sm-9 { + order: 9; + } + .order-sm-10 { + order: 10; + } + .order-sm-11 { + order: 11; + } + .order-sm-12 { + order: 12; + } + .offset-sm-0 { + margin-left: 0; + } + .offset-sm-1 { + margin-left: 8.333333%; + } + .offset-sm-2 { + margin-left: 16.666667%; + } + .offset-sm-3 { + margin-left: 25%; + } + .offset-sm-4 { + margin-left: 33.333333%; + } + .offset-sm-5 { + margin-left: 41.666667%; + } + .offset-sm-6 { + margin-left: 50%; + } + .offset-sm-7 { + margin-left: 58.333333%; + } + .offset-sm-8 { + margin-left: 66.666667%; + } + .offset-sm-9 { + margin-left: 75%; + } + .offset-sm-10 { + margin-left: 83.333333%; + } + .offset-sm-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 768px) { + .col-md { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .row-cols-md-1 > * { + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-md-2 > * { + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-md-3 > * { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-md-4 > * { + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-md-5 > * { + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-md-6 > * { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-md-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-md-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-md-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-md-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-md-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-md-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-md-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-md-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-md-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-md-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-md-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-md-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-md-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-md-first { + order: -1; + } + .order-md-last { + order: 13; + } + .order-md-0 { + order: 0; + } + .order-md-1 { + order: 1; + } + .order-md-2 { + order: 2; + } + .order-md-3 { + order: 3; + } + .order-md-4 { + order: 4; + } + .order-md-5 { + order: 5; + } + .order-md-6 { + order: 6; + } + .order-md-7 { + order: 7; + } + .order-md-8 { + order: 8; + } + .order-md-9 { + order: 9; + } + .order-md-10 { + order: 10; + } + .order-md-11 { + order: 11; + } + .order-md-12 { + order: 12; + } + .offset-md-0 { + margin-left: 0; + } + .offset-md-1 { + margin-left: 8.333333%; + } + .offset-md-2 { + margin-left: 16.666667%; + } + .offset-md-3 { + margin-left: 25%; + } + .offset-md-4 { + margin-left: 33.333333%; + } + .offset-md-5 { + margin-left: 41.666667%; + } + .offset-md-6 { + margin-left: 50%; + } + .offset-md-7 { + margin-left: 58.333333%; + } + .offset-md-8 { + margin-left: 66.666667%; + } + .offset-md-9 { + margin-left: 75%; + } + .offset-md-10 { + margin-left: 83.333333%; + } + .offset-md-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 992px) { + .col-lg { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .row-cols-lg-1 > * { + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-lg-2 > * { + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-lg-3 > * { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-lg-4 > * { + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-lg-5 > * { + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-lg-6 > * { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-lg-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-lg-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-lg-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-lg-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-lg-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-lg-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-lg-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-lg-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-lg-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-lg-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-lg-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-lg-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-lg-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-lg-first { + order: -1; + } + .order-lg-last { + order: 13; + } + .order-lg-0 { + order: 0; + } + .order-lg-1 { + order: 1; + } + .order-lg-2 { + order: 2; + } + .order-lg-3 { + order: 3; + } + .order-lg-4 { + order: 4; + } + .order-lg-5 { + order: 5; + } + .order-lg-6 { + order: 6; + } + .order-lg-7 { + order: 7; + } + .order-lg-8 { + order: 8; + } + .order-lg-9 { + order: 9; + } + .order-lg-10 { + order: 10; + } + .order-lg-11 { + order: 11; + } + .order-lg-12 { + order: 12; + } + .offset-lg-0 { + margin-left: 0; + } + .offset-lg-1 { + margin-left: 8.333333%; + } + .offset-lg-2 { + margin-left: 16.666667%; + } + .offset-lg-3 { + margin-left: 25%; + } + .offset-lg-4 { + margin-left: 33.333333%; + } + .offset-lg-5 { + margin-left: 41.666667%; + } + .offset-lg-6 { + margin-left: 50%; + } + .offset-lg-7 { + margin-left: 58.333333%; + } + .offset-lg-8 { + margin-left: 66.666667%; + } + .offset-lg-9 { + margin-left: 75%; + } + .offset-lg-10 { + margin-left: 83.333333%; + } + .offset-lg-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 1200px) { + .col-xl { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .row-cols-xl-1 > * { + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-xl-2 > * { + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-xl-3 > * { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-xl-4 > * { + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-xl-5 > * { + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-xl-6 > * { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-xl-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-xl-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-xl-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-xl-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-xl-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-xl-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-xl-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-xl-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-xl-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-xl-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-xl-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-xl-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-xl-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-xl-first { + order: -1; + } + .order-xl-last { + order: 13; + } + .order-xl-0 { + order: 0; + } + .order-xl-1 { + order: 1; + } + .order-xl-2 { + order: 2; + } + .order-xl-3 { + order: 3; + } + .order-xl-4 { + order: 4; + } + .order-xl-5 { + order: 5; + } + .order-xl-6 { + order: 6; + } + .order-xl-7 { + order: 7; + } + .order-xl-8 { + order: 8; + } + .order-xl-9 { + order: 9; + } + .order-xl-10 { + order: 10; + } + .order-xl-11 { + order: 11; + } + .order-xl-12 { + order: 12; + } + .offset-xl-0 { + margin-left: 0; + } + .offset-xl-1 { + margin-left: 8.333333%; + } + .offset-xl-2 { + margin-left: 16.666667%; + } + .offset-xl-3 { + margin-left: 25%; + } + .offset-xl-4 { + margin-left: 33.333333%; + } + .offset-xl-5 { + margin-left: 41.666667%; + } + .offset-xl-6 { + margin-left: 50%; + } + .offset-xl-7 { + margin-left: 58.333333%; + } + .offset-xl-8 { + margin-left: 66.666667%; + } + .offset-xl-9 { + margin-left: 75%; + } + .offset-xl-10 { + margin-left: 83.333333%; + } + .offset-xl-11 { + margin-left: 91.666667%; + } +} + +.table { + width: 100%; + margin-bottom: 1rem; + color: #212529; +} + +.table th, +.table td { + padding: 0.75rem; + vertical-align: top; + border-top: 1px solid #dee2e6; +} + +.table thead th { + vertical-align: bottom; + border-bottom: 2px solid #dee2e6; +} + +.table tbody + tbody { + border-top: 2px solid #dee2e6; +} + +.table-sm th, +.table-sm td { + padding: 0.3rem; +} + +.table-bordered { + border: 1px solid #dee2e6; +} + +.table-bordered th, +.table-bordered td { + border: 1px solid #dee2e6; +} + +.table-bordered thead th, +.table-bordered thead td { + border-bottom-width: 2px; +} + +.table-borderless th, +.table-borderless td, +.table-borderless thead th, +.table-borderless tbody + tbody { + border: 0; +} + +.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(0, 0, 0, 0.05); +} + +.table-hover tbody tr:hover { + color: #212529; + background-color: rgba(0, 0, 0, 0.075); +} + +.table-primary, +.table-primary > th, +.table-primary > td { + background-color: #b8daff; +} + +.table-primary th, +.table-primary td, +.table-primary thead th, +.table-primary tbody + tbody { + border-color: #7abaff; +} + +.table-hover .table-primary:hover { + background-color: #9fcdff; +} + +.table-hover .table-primary:hover > td, +.table-hover .table-primary:hover > th { + background-color: #9fcdff; +} + +.table-secondary, +.table-secondary > th, +.table-secondary > td { + background-color: #d6d8db; +} + +.table-secondary th, +.table-secondary td, +.table-secondary thead th, +.table-secondary tbody + tbody { + border-color: #b3b7bb; +} + +.table-hover .table-secondary:hover { + background-color: #c8cbcf; +} + +.table-hover .table-secondary:hover > td, +.table-hover .table-secondary:hover > th { + background-color: #c8cbcf; +} + +.table-success, +.table-success > th, +.table-success > td { + background-color: #c3e6cb; +} + +.table-success th, +.table-success td, +.table-success thead th, +.table-success tbody + tbody { + border-color: #8fd19e; +} + +.table-hover .table-success:hover { + background-color: #b1dfbb; +} + +.table-hover .table-success:hover > td, +.table-hover .table-success:hover > th { + background-color: #b1dfbb; +} + +.table-info, +.table-info > th, +.table-info > td { + background-color: #bee5eb; +} + +.table-info th, +.table-info td, +.table-info thead th, +.table-info tbody + tbody { + border-color: #86cfda; +} + +.table-hover .table-info:hover { + background-color: #abdde5; +} + +.table-hover .table-info:hover > td, +.table-hover .table-info:hover > th { + background-color: #abdde5; +} + +.table-warning, +.table-warning > th, +.table-warning > td { + background-color: #ffeeba; +} + +.table-warning th, +.table-warning td, +.table-warning thead th, +.table-warning tbody + tbody { + border-color: #ffdf7e; +} + +.table-hover .table-warning:hover { + background-color: #ffe8a1; +} + +.table-hover .table-warning:hover > td, +.table-hover .table-warning:hover > th { + background-color: #ffe8a1; +} + +.table-danger, +.table-danger > th, +.table-danger > td { + background-color: #f5c6cb; +} + +.table-danger th, +.table-danger td, +.table-danger thead th, +.table-danger tbody + tbody { + border-color: #ed969e; +} + +.table-hover .table-danger:hover { + background-color: #f1b0b7; +} + +.table-hover .table-danger:hover > td, +.table-hover .table-danger:hover > th { + background-color: #f1b0b7; +} + +.table-light, +.table-light > th, +.table-light > td { + background-color: #fdfdfe; +} + +.table-light th, +.table-light td, +.table-light thead th, +.table-light tbody + tbody { + border-color: #fbfcfc; +} + +.table-hover .table-light:hover { + background-color: #ececf6; +} + +.table-hover .table-light:hover > td, +.table-hover .table-light:hover > th { + background-color: #ececf6; +} + +.table-dark, +.table-dark > th, +.table-dark > td { + background-color: #c6c8ca; +} + +.table-dark th, +.table-dark td, +.table-dark thead th, +.table-dark tbody + tbody { + border-color: #95999c; +} + +.table-hover .table-dark:hover { + background-color: #b9bbbe; +} + +.table-hover .table-dark:hover > td, +.table-hover .table-dark:hover > th { + background-color: #b9bbbe; +} + +.table-active, +.table-active > th, +.table-active > td { + background-color: rgba(0, 0, 0, 0.075); +} + +.table-hover .table-active:hover { + background-color: rgba(0, 0, 0, 0.075); +} + +.table-hover .table-active:hover > td, +.table-hover .table-active:hover > th { + background-color: rgba(0, 0, 0, 0.075); +} + +.table .thead-dark th { + color: #fff; + background-color: #343a40; + border-color: #454d55; +} + +.table .thead-light th { + color: #495057; + background-color: #e9ecef; + border-color: #dee2e6; +} + +.table-dark { + color: #fff; + background-color: #343a40; +} + +.table-dark th, +.table-dark td, +.table-dark thead th { + border-color: #454d55; +} + +.table-dark.table-bordered { + border: 0; +} + +.table-dark.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(255, 255, 255, 0.05); +} + +.table-dark.table-hover tbody tr:hover { + color: #fff; + background-color: rgba(255, 255, 255, 0.075); +} + +@media (max-width: 575.98px) { + .table-responsive-sm { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-sm > .table-bordered { + border: 0; + } +} + +@media (max-width: 767.98px) { + .table-responsive-md { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-md > .table-bordered { + border: 0; + } +} + +@media (max-width: 991.98px) { + .table-responsive-lg { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-lg > .table-bordered { + border: 0; + } +} + +@media (max-width: 1199.98px) { + .table-responsive-xl { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-xl > .table-bordered { + border: 0; + } +} + +.table-responsive { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; +} + +.table-responsive > .table-bordered { + border: 0; +} + +.form-control { + display: block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da; + border-radius: 0.25rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .form-control { + transition: none; + } +} + +.form-control::-ms-expand { + background-color: transparent; + border: 0; +} + +.form-control:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #495057; +} + +.form-control:focus { + color: #495057; + background-color: #fff; + border-color: #80bdff; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.form-control::-moz-placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control:-ms-input-placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control::placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control:disabled, .form-control[readonly] { + background-color: #e9ecef; + opacity: 1; +} + +input[type="date"].form-control, +input[type="time"].form-control, +input[type="datetime-local"].form-control, +input[type="month"].form-control { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +select.form-control:focus::-ms-value { + color: #495057; + background-color: #fff; +} + +.form-control-file, +.form-control-range { + display: block; + width: 100%; +} + +.col-form-label { + padding-top: calc(0.375rem + 1px); + padding-bottom: calc(0.375rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} + +.col-form-label-lg { + padding-top: calc(0.5rem + 1px); + padding-bottom: calc(0.5rem + 1px); + font-size: 1.25rem; + line-height: 1.5; +} + +.col-form-label-sm { + padding-top: calc(0.25rem + 1px); + padding-bottom: calc(0.25rem + 1px); + font-size: 0.875rem; + line-height: 1.5; +} + +.form-control-plaintext { + display: block; + width: 100%; + padding: 0.375rem 0; + margin-bottom: 0; + font-size: 1rem; + line-height: 1.5; + color: #212529; + background-color: transparent; + border: solid transparent; + border-width: 1px 0; +} + +.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { + padding-right: 0; + padding-left: 0; +} + +.form-control-sm { + height: calc(1.5em + 0.5rem + 2px); + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +.form-control-lg { + height: calc(1.5em + 1rem + 2px); + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} + +select.form-control[size], select.form-control[multiple] { + height: auto; +} + +textarea.form-control { + height: auto; +} + +.form-group { + margin-bottom: 1rem; +} + +.form-text { + display: block; + margin-top: 0.25rem; +} + +.form-row { + display: flex; + flex-wrap: wrap; + margin-right: -5px; + margin-left: -5px; +} + +.form-row > .col, +.form-row > [class*="col-"] { + padding-right: 5px; + padding-left: 5px; +} + +.form-check { + position: relative; + display: block; + padding-left: 1.25rem; +} + +.form-check-input { + position: absolute; + margin-top: 0.3rem; + margin-left: -1.25rem; +} + +.form-check-input[disabled] ~ .form-check-label, +.form-check-input:disabled ~ .form-check-label { + color: #6c757d; +} + +.form-check-label { + margin-bottom: 0; +} + +.form-check-inline { + display: inline-flex; + align-items: center; + padding-left: 0; + margin-right: 0.75rem; +} + +.form-check-inline .form-check-input { + position: static; + margin-top: 0; + margin-right: 0.3125rem; + margin-left: 0; +} + +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #28a745; +} + +.valid-tooltip { + position: absolute; + top: 100%; + left: 0; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: .1rem; + font-size: 0.875rem; + line-height: 1.5; + color: #fff; + background-color: rgba(40, 167, 69, 0.9); + border-radius: 0.25rem; +} + +.form-row > .col > .valid-tooltip, +.form-row > [class*="col-"] > .valid-tooltip { + left: 5px; +} + +.was-validated :valid ~ .valid-feedback, +.was-validated :valid ~ .valid-tooltip, +.is-valid ~ .valid-feedback, +.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .form-control:valid, .form-control.is-valid { + border-color: #28a745; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.was-validated .form-control:valid:focus, .form-control.is-valid:focus { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.was-validated textarea.form-control:valid, textarea.form-control.is-valid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .custom-select:valid, .custom-select.is-valid { + border-color: #28a745; + padding-right: calc(0.75em + 2.3125rem); + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat, #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat; +} + +.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { + color: #28a745; +} + +.was-validated .form-check-input:valid ~ .valid-feedback, +.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback, +.form-check-input.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label { + color: #28a745; +} + +.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before { + border-color: #28a745; +} + +.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before { + border-color: #34ce57; + background-color: #34ce57; +} + +.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before { + border-color: #28a745; +} + +.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label { + border-color: #28a745; +} + +.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #dc3545; +} + +.invalid-tooltip { + position: absolute; + top: 100%; + left: 0; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: .1rem; + font-size: 0.875rem; + line-height: 1.5; + color: #fff; + background-color: rgba(220, 53, 69, 0.9); + border-radius: 0.25rem; +} + +.form-row > .col > .invalid-tooltip, +.form-row > [class*="col-"] > .invalid-tooltip { + left: 5px; +} + +.was-validated :invalid ~ .invalid-feedback, +.was-validated :invalid ~ .invalid-tooltip, +.is-invalid ~ .invalid-feedback, +.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .form-control:invalid, .form-control.is-invalid { + border-color: #dc3545; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .custom-select:invalid, .custom-select.is-invalid { + border-color: #dc3545; + padding-right: calc(0.75em + 2.3125rem); + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat, #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat; +} + +.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { + color: #dc3545; +} + +.was-validated .form-check-input:invalid ~ .invalid-feedback, +.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback, +.form-check-input.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label { + color: #dc3545; +} + +.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before { + border-color: #dc3545; +} + +.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before { + border-color: #e4606d; + background-color: #e4606d; +} + +.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before { + border-color: #dc3545; +} + +.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label { + border-color: #dc3545; +} + +.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.form-inline { + display: flex; + flex-flow: row wrap; + align-items: center; +} + +.form-inline .form-check { + width: 100%; +} + +@media (min-width: 576px) { + .form-inline label { + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 0; + } + .form-inline .form-group { + display: flex; + flex: 0 0 auto; + flex-flow: row wrap; + align-items: center; + margin-bottom: 0; + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .form-inline .form-control-plaintext { + display: inline-block; + } + .form-inline .input-group, + .form-inline .custom-select { + width: auto; + } + .form-inline .form-check { + display: flex; + align-items: center; + justify-content: center; + width: auto; + padding-left: 0; + } + .form-inline .form-check-input { + position: relative; + flex-shrink: 0; + margin-top: 0; + margin-right: 0.25rem; + margin-left: 0; + } + .form-inline .custom-control { + align-items: center; + justify-content: center; + } + .form-inline .custom-control-label { + margin-bottom: 0; + } +} + +.btn { + display: inline-block; + font-weight: 400; + color: #212529; + text-align: center; + vertical-align: middle; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-color: transparent; + border: 1px solid transparent; + padding: 0.375rem 0.75rem; + font-size: 1rem; + line-height: 1.5; + border-radius: 0.25rem; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .btn { + transition: none; + } +} + +.btn:hover { + color: #212529; + text-decoration: none; +} + +.btn:focus, .btn.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.btn.disabled, .btn:disabled { + opacity: 0.65; +} + +.btn:not(:disabled):not(.disabled) { + cursor: pointer; +} + +a.btn.disabled, +fieldset:disabled a.btn { + pointer-events: none; +} + +.btn-primary { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-primary:hover { + color: #fff; + background-color: #0069d9; + border-color: #0062cc; +} + +.btn-primary:focus, .btn-primary.focus { + color: #fff; + background-color: #0069d9; + border-color: #0062cc; + box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5); +} + +.btn-primary.disabled, .btn-primary:disabled { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, +.show > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #0062cc; + border-color: #005cbf; +} + +.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, +.show > .btn-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5); +} + +.btn-secondary { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-secondary:hover { + color: #fff; + background-color: #5a6268; + border-color: #545b62; +} + +.btn-secondary:focus, .btn-secondary.focus { + color: #fff; + background-color: #5a6268; + border-color: #545b62; + box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5); +} + +.btn-secondary.disabled, .btn-secondary:disabled { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, +.show > .btn-secondary.dropdown-toggle { + color: #fff; + background-color: #545b62; + border-color: #4e555b; +} + +.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, +.show > .btn-secondary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5); +} + +.btn-success { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-success:hover { + color: #fff; + background-color: #218838; + border-color: #1e7e34; +} + +.btn-success:focus, .btn-success.focus { + color: #fff; + background-color: #218838; + border-color: #1e7e34; + box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); +} + +.btn-success.disabled, .btn-success:disabled { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, +.show > .btn-success.dropdown-toggle { + color: #fff; + background-color: #1e7e34; + border-color: #1c7430; +} + +.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, +.show > .btn-success.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); +} + +.btn-info { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-info:hover { + color: #fff; + background-color: #138496; + border-color: #117a8b; +} + +.btn-info:focus, .btn-info.focus { + color: #fff; + background-color: #138496; + border-color: #117a8b; + box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); +} + +.btn-info.disabled, .btn-info:disabled { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active, +.show > .btn-info.dropdown-toggle { + color: #fff; + background-color: #117a8b; + border-color: #10707f; +} + +.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus, +.show > .btn-info.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); +} + +.btn-warning { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-warning:hover { + color: #212529; + background-color: #e0a800; + border-color: #d39e00; +} + +.btn-warning:focus, .btn-warning.focus { + color: #212529; + background-color: #e0a800; + border-color: #d39e00; + box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5); +} + +.btn-warning.disabled, .btn-warning:disabled { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active, +.show > .btn-warning.dropdown-toggle { + color: #212529; + background-color: #d39e00; + border-color: #c69500; +} + +.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus, +.show > .btn-warning.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5); +} + +.btn-danger { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-danger:hover { + color: #fff; + background-color: #c82333; + border-color: #bd2130; +} + +.btn-danger:focus, .btn-danger.focus { + color: #fff; + background-color: #c82333; + border-color: #bd2130; + box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); +} + +.btn-danger.disabled, .btn-danger:disabled { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active, +.show > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #bd2130; + border-color: #b21f2d; +} + +.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus, +.show > .btn-danger.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); +} + +.btn-light { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-light:hover { + color: #212529; + background-color: #e2e6ea; + border-color: #dae0e5; +} + +.btn-light:focus, .btn-light.focus { + color: #212529; + background-color: #e2e6ea; + border-color: #dae0e5; + box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); +} + +.btn-light.disabled, .btn-light:disabled { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active, +.show > .btn-light.dropdown-toggle { + color: #212529; + background-color: #dae0e5; + border-color: #d3d9df; +} + +.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus, +.show > .btn-light.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); +} + +.btn-dark { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-dark:hover { + color: #fff; + background-color: #23272b; + border-color: #1d2124; +} + +.btn-dark:focus, .btn-dark.focus { + color: #fff; + background-color: #23272b; + border-color: #1d2124; + box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); +} + +.btn-dark.disabled, .btn-dark:disabled { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active, +.show > .btn-dark.dropdown-toggle { + color: #fff; + background-color: #1d2124; + border-color: #171a1d; +} + +.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus, +.show > .btn-dark.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); +} + +.btn-outline-primary { + color: #007bff; + border-color: #007bff; +} + +.btn-outline-primary:hover { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-outline-primary:focus, .btn-outline-primary.focus { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} + +.btn-outline-primary.disabled, .btn-outline-primary:disabled { + color: #007bff; + background-color: transparent; +} + +.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active, +.show > .btn-outline-primary.dropdown-toggle { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} + +.btn-outline-secondary { + color: #6c757d; + border-color: #6c757d; +} + +.btn-outline-secondary:hover { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-outline-secondary:focus, .btn-outline-secondary.focus { + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.btn-outline-secondary.disabled, .btn-outline-secondary:disabled { + color: #6c757d; + background-color: transparent; +} + +.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active, +.show > .btn-outline-secondary.dropdown-toggle { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-secondary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.btn-outline-success { + color: #28a745; + border-color: #28a745; +} + +.btn-outline-success:hover { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-outline-success:focus, .btn-outline-success.focus { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} + +.btn-outline-success.disabled, .btn-outline-success:disabled { + color: #28a745; + background-color: transparent; +} + +.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active, +.show > .btn-outline-success.dropdown-toggle { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-success.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} + +.btn-outline-info { + color: #17a2b8; + border-color: #17a2b8; +} + +.btn-outline-info:hover { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-outline-info:focus, .btn-outline-info.focus { + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} + +.btn-outline-info.disabled, .btn-outline-info:disabled { + color: #17a2b8; + background-color: transparent; +} + +.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active, +.show > .btn-outline-info.dropdown-toggle { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-info.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} + +.btn-outline-warning { + color: #ffc107; + border-color: #ffc107; +} + +.btn-outline-warning:hover { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-outline-warning:focus, .btn-outline-warning.focus { + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} + +.btn-outline-warning.disabled, .btn-outline-warning:disabled { + color: #ffc107; + background-color: transparent; +} + +.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active, +.show > .btn-outline-warning.dropdown-toggle { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-warning.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} + +.btn-outline-danger { + color: #dc3545; + border-color: #dc3545; +} + +.btn-outline-danger:hover { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-outline-danger:focus, .btn-outline-danger.focus { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} + +.btn-outline-danger.disabled, .btn-outline-danger:disabled { + color: #dc3545; + background-color: transparent; +} + +.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active, +.show > .btn-outline-danger.dropdown-toggle { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-danger.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} + +.btn-outline-light { + color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-outline-light:hover { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-outline-light:focus, .btn-outline-light.focus { + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.btn-outline-light.disabled, .btn-outline-light:disabled { + color: #f8f9fa; + background-color: transparent; +} + +.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active, +.show > .btn-outline-light.dropdown-toggle { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-light.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.btn-outline-dark { + color: #343a40; + border-color: #343a40; +} + +.btn-outline-dark:hover { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-outline-dark:focus, .btn-outline-dark.focus { + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.btn-outline-dark.disabled, .btn-outline-dark:disabled { + color: #343a40; + background-color: transparent; +} + +.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active, +.show > .btn-outline-dark.dropdown-toggle { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-dark.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.btn-link { + font-weight: 400; + color: #007bff; + text-decoration: none; +} + +.btn-link:hover { + color: #0056b3; + text-decoration: underline; +} + +.btn-link:focus, .btn-link.focus { + text-decoration: underline; +} + +.btn-link:disabled, .btn-link.disabled { + color: #6c757d; + pointer-events: none; +} + +.btn-lg, .btn-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} + +.btn-sm, .btn-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +.btn-block { + display: block; + width: 100%; +} + +.btn-block + .btn-block { + margin-top: 0.5rem; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.fade { + transition: opacity 0.15s linear; +} + +@media (prefers-reduced-motion: reduce) { + .fade { + transition: none; + } +} + +.fade:not(.show) { + opacity: 0; +} + +.collapse:not(.show) { + display: none; +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + transition: height 0.35s ease; +} + +@media (prefers-reduced-motion: reduce) { + .collapsing { + transition: none; + } +} + +.dropup, +.dropright, +.dropdown, +.dropleft { + position: relative; +} + +.dropdown-toggle { + white-space: nowrap; +} + +.dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} + +.dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 10rem; + padding: 0.5rem 0; + margin: 0.125rem 0 0; + font-size: 1rem; + color: #212529; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; +} + +.dropdown-menu-left { + right: auto; + left: 0; +} + +.dropdown-menu-right { + right: 0; + left: auto; +} + +@media (min-width: 576px) { + .dropdown-menu-sm-left { + right: auto; + left: 0; + } + .dropdown-menu-sm-right { + right: 0; + left: auto; + } +} + +@media (min-width: 768px) { + .dropdown-menu-md-left { + right: auto; + left: 0; + } + .dropdown-menu-md-right { + right: 0; + left: auto; + } +} + +@media (min-width: 992px) { + .dropdown-menu-lg-left { + right: auto; + left: 0; + } + .dropdown-menu-lg-right { + right: 0; + left: auto; + } +} + +@media (min-width: 1200px) { + .dropdown-menu-xl-left { + right: auto; + left: 0; + } + .dropdown-menu-xl-right { + right: 0; + left: auto; + } +} + +.dropup .dropdown-menu { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: 0.125rem; +} + +.dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} + +.dropup .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropright .dropdown-menu { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: 0.125rem; +} + +.dropright .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} + +.dropright .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropright .dropdown-toggle::after { + vertical-align: 0; +} + +.dropleft .dropdown-menu { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: 0.125rem; +} + +.dropleft .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; +} + +.dropleft .dropdown-toggle::after { + display: none; +} + +.dropleft .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} + +.dropleft .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropleft .dropdown-toggle::before { + vertical-align: 0; +} + +.dropdown-menu[x-placement^="top"], .dropdown-menu[x-placement^="right"], .dropdown-menu[x-placement^="bottom"], .dropdown-menu[x-placement^="left"] { + right: auto; + bottom: auto; +} + +.dropdown-divider { + height: 0; + margin: 0.5rem 0; + overflow: hidden; + border-top: 1px solid #e9ecef; +} + +.dropdown-item { + display: block; + width: 100%; + padding: 0.25rem 1.5rem; + clear: both; + font-weight: 400; + color: #212529; + text-align: inherit; + white-space: nowrap; + background-color: transparent; + border: 0; +} + +.dropdown-item:hover, .dropdown-item:focus { + color: #16181b; + text-decoration: none; + background-color: #e9ecef; +} + +.dropdown-item.active, .dropdown-item:active { + color: #fff; + text-decoration: none; + background-color: #007bff; +} + +.dropdown-item.disabled, .dropdown-item:disabled { + color: #adb5bd; + pointer-events: none; + background-color: transparent; +} + +.dropdown-menu.show { + display: block; +} + +.dropdown-header { + display: block; + padding: 0.5rem 1.5rem; + margin-bottom: 0; + font-size: 0.875rem; + color: #6c757d; + white-space: nowrap; +} + +.dropdown-item-text { + display: block; + padding: 0.25rem 1.5rem; + color: #212529; +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle; +} + +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + flex: 1 1 auto; +} + +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover { + z-index: 1; +} + +.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .btn:active, +.btn-group-vertical > .btn.active { + z-index: 1; +} + +.btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} + +.btn-toolbar .input-group { + width: auto; +} + +.btn-group > .btn:not(:first-child), +.btn-group > .btn-group:not(:first-child) { + margin-left: -1px; +} + +.btn-group > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.btn-group > .btn:not(:first-child), +.btn-group > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; +} + +.dropdown-toggle-split::after, +.dropup .dropdown-toggle-split::after, +.dropright .dropdown-toggle-split::after { + margin-left: 0; +} + +.dropleft .dropdown-toggle-split::before { + margin-right: 0; +} + +.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; +} + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; +} + +.btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center; +} + +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group { + width: 100%; +} + +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) { + margin-top: -1px; +} + +.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group-vertical > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.btn-group-toggle > .btn, +.btn-group-toggle > .btn-group > .btn { + margin-bottom: 0; +} + +.btn-group-toggle > .btn input[type="radio"], +.btn-group-toggle > .btn input[type="checkbox"], +.btn-group-toggle > .btn-group > .btn input[type="radio"], +.btn-group-toggle > .btn-group > .btn input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} + +.input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100%; +} + +.input-group > .form-control, +.input-group > .form-control-plaintext, +.input-group > .custom-select, +.input-group > .custom-file { + position: relative; + flex: 1 1 auto; + width: 1%; + min-width: 0; + margin-bottom: 0; +} + +.input-group > .form-control + .form-control, +.input-group > .form-control + .custom-select, +.input-group > .form-control + .custom-file, +.input-group > .form-control-plaintext + .form-control, +.input-group > .form-control-plaintext + .custom-select, +.input-group > .form-control-plaintext + .custom-file, +.input-group > .custom-select + .form-control, +.input-group > .custom-select + .custom-select, +.input-group > .custom-select + .custom-file, +.input-group > .custom-file + .form-control, +.input-group > .custom-file + .custom-select, +.input-group > .custom-file + .custom-file { + margin-left: -1px; +} + +.input-group > .form-control:focus, +.input-group > .custom-select:focus, +.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label { + z-index: 3; +} + +.input-group > .custom-file .custom-file-input:focus { + z-index: 4; +} + +.input-group > .form-control:not(:first-child), +.input-group > .custom-select:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.input-group > .custom-file { + display: flex; + align-items: center; +} + +.input-group > .custom-file:not(:last-child) .custom-file-label, +.input-group > .custom-file:not(:first-child) .custom-file-label { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.input-group:not(.has-validation) > .form-control:not(:last-child), +.input-group:not(.has-validation) > .custom-select:not(:last-child), +.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label::after { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group.has-validation > .form-control:nth-last-child(n + 3), +.input-group.has-validation > .custom-select:nth-last-child(n + 3), +.input-group.has-validation > .custom-file:nth-last-child(n + 3) .custom-file-label::after { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group-prepend, +.input-group-append { + display: flex; +} + +.input-group-prepend .btn, +.input-group-append .btn { + position: relative; + z-index: 2; +} + +.input-group-prepend .btn:focus, +.input-group-append .btn:focus { + z-index: 3; +} + +.input-group-prepend .btn + .btn, +.input-group-prepend .btn + .input-group-text, +.input-group-prepend .input-group-text + .input-group-text, +.input-group-prepend .input-group-text + .btn, +.input-group-append .btn + .btn, +.input-group-append .btn + .input-group-text, +.input-group-append .input-group-text + .input-group-text, +.input-group-append .input-group-text + .btn { + margin-left: -1px; +} + +.input-group-prepend { + margin-right: -1px; +} + +.input-group-append { + margin-left: -1px; +} + +.input-group-text { + display: flex; + align-items: center; + padding: 0.375rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + text-align: center; + white-space: nowrap; + background-color: #e9ecef; + border: 1px solid #ced4da; + border-radius: 0.25rem; +} + +.input-group-text input[type="radio"], +.input-group-text input[type="checkbox"] { + margin-top: 0; +} + +.input-group-lg > .form-control:not(textarea), +.input-group-lg > .custom-select { + height: calc(1.5em + 1rem + 2px); +} + +.input-group-lg > .form-control, +.input-group-lg > .custom-select, +.input-group-lg > .input-group-prepend > .input-group-text, +.input-group-lg > .input-group-append > .input-group-text, +.input-group-lg > .input-group-prepend > .btn, +.input-group-lg > .input-group-append > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} + +.input-group-sm > .form-control:not(textarea), +.input-group-sm > .custom-select { + height: calc(1.5em + 0.5rem + 2px); +} + +.input-group-sm > .form-control, +.input-group-sm > .custom-select, +.input-group-sm > .input-group-prepend > .input-group-text, +.input-group-sm > .input-group-append > .input-group-text, +.input-group-sm > .input-group-prepend > .btn, +.input-group-sm > .input-group-append > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +.input-group-lg > .custom-select, +.input-group-sm > .custom-select { + padding-right: 1.75rem; +} + +.input-group > .input-group-prepend > .btn, +.input-group > .input-group-prepend > .input-group-text, +.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn, +.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text, +.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .btn, +.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text, +.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group > .input-group-append > .btn, +.input-group > .input-group-append > .input-group-text, +.input-group > .input-group-prepend:not(:first-child) > .btn, +.input-group > .input-group-prepend:not(:first-child) > .input-group-text, +.input-group > .input-group-prepend:first-child > .btn:not(:first-child), +.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-control { + position: relative; + z-index: 1; + display: block; + min-height: 1.5rem; + padding-left: 1.5rem; + -webkit-print-color-adjust: exact; + color-adjust: exact; +} + +.custom-control-inline { + display: inline-flex; + margin-right: 1rem; +} + +.custom-control-input { + position: absolute; + left: 0; + z-index: -1; + width: 1rem; + height: 1.25rem; + opacity: 0; +} + +.custom-control-input:checked ~ .custom-control-label::before { + color: #fff; + border-color: #007bff; + background-color: #007bff; +} + +.custom-control-input:focus ~ .custom-control-label::before { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-control-input:focus:not(:checked) ~ .custom-control-label::before { + border-color: #80bdff; +} + +.custom-control-input:not(:disabled):active ~ .custom-control-label::before { + color: #fff; + background-color: #b3d7ff; + border-color: #b3d7ff; +} + +.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label { + color: #6c757d; +} + +.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before { + background-color: #e9ecef; +} + +.custom-control-label { + position: relative; + margin-bottom: 0; + vertical-align: top; +} + +.custom-control-label::before { + position: absolute; + top: 0.25rem; + left: -1.5rem; + display: block; + width: 1rem; + height: 1rem; + pointer-events: none; + content: ""; + background-color: #fff; + border: #adb5bd solid 1px; +} + +.custom-control-label::after { + position: absolute; + top: 0.25rem; + left: -1.5rem; + display: block; + width: 1rem; + height: 1rem; + content: ""; + background: 50% / 50% 50% no-repeat; +} + +.custom-checkbox .custom-control-label::before { + border-radius: 0.25rem; +} + +.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e"); +} + +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before { + border-color: #007bff; + background-color: #007bff; +} + +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e"); +} + +.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-radio .custom-control-label::before { + border-radius: 50%; +} + +.custom-radio .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); +} + +.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-switch { + padding-left: 2.25rem; +} + +.custom-switch .custom-control-label::before { + left: -2.25rem; + width: 1.75rem; + pointer-events: all; + border-radius: 0.5rem; +} + +.custom-switch .custom-control-label::after { + top: calc(0.25rem + 2px); + left: calc(-2.25rem + 2px); + width: calc(1rem - 4px); + height: calc(1rem - 4px); + background-color: #adb5bd; + border-radius: 0.5rem; + transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .custom-switch .custom-control-label::after { + transition: none; + } +} + +.custom-switch .custom-control-input:checked ~ .custom-control-label::after { + background-color: #fff; + transform: translateX(0.75rem); +} + +.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-select { + display: inline-block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 1.75rem 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + vertical-align: middle; + background: #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat; + border: 1px solid #ced4da; + border-radius: 0.25rem; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.custom-select:focus { + border-color: #80bdff; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-select:focus::-ms-value { + color: #495057; + background-color: #fff; +} + +.custom-select[multiple], .custom-select[size]:not([size="1"]) { + height: auto; + padding-right: 0.75rem; + background-image: none; +} + +.custom-select:disabled { + color: #6c757d; + background-color: #e9ecef; +} + +.custom-select::-ms-expand { + display: none; +} + +.custom-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #495057; +} + +.custom-select-sm { + height: calc(1.5em + 0.5rem + 2px); + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.875rem; +} + +.custom-select-lg { + height: calc(1.5em + 1rem + 2px); + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.25rem; +} + +.custom-file { + position: relative; + display: inline-block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + margin-bottom: 0; +} + +.custom-file-input { + position: relative; + z-index: 2; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + margin: 0; + overflow: hidden; + opacity: 0; +} + +.custom-file-input:focus ~ .custom-file-label { + border-color: #80bdff; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-file-input[disabled] ~ .custom-file-label, +.custom-file-input:disabled ~ .custom-file-label { + background-color: #e9ecef; +} + +.custom-file-input:lang(en) ~ .custom-file-label::after { + content: "Browse"; +} + +.custom-file-input ~ .custom-file-label[data-browse]::after { + content: attr(data-browse); +} + +.custom-file-label { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 1; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 0.75rem; + overflow: hidden; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #fff; + border: 1px solid #ced4da; + border-radius: 0.25rem; +} + +.custom-file-label::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + z-index: 3; + display: block; + height: calc(1.5em + 0.75rem); + padding: 0.375rem 0.75rem; + line-height: 1.5; + color: #495057; + content: "Browse"; + background-color: #e9ecef; + border-left: inherit; + border-radius: 0 0.25rem 0.25rem 0; +} + +.custom-range { + width: 100%; + height: 1.4rem; + padding: 0; + background-color: transparent; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.custom-range:focus { + outline: 0; +} + +.custom-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-range:focus::-ms-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-range::-moz-focus-outer { + border: 0; +} + +.custom-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + background-color: #007bff; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .custom-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none; + } +} + +.custom-range::-webkit-slider-thumb:active { + background-color: #b3d7ff; +} + +.custom-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} + +.custom-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background-color: #007bff; + border: 0; + border-radius: 1rem; + -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -moz-appearance: none; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .custom-range::-moz-range-thumb { + -moz-transition: none; + transition: none; + } +} + +.custom-range::-moz-range-thumb:active { + background-color: #b3d7ff; +} + +.custom-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} + +.custom-range::-ms-thumb { + width: 1rem; + height: 1rem; + margin-top: 0; + margin-right: 0.2rem; + margin-left: 0.2rem; + background-color: #007bff; + border: 0; + border-radius: 1rem; + -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .custom-range::-ms-thumb { + -ms-transition: none; + transition: none; + } +} + +.custom-range::-ms-thumb:active { + background-color: #b3d7ff; +} + +.custom-range::-ms-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: transparent; + border-color: transparent; + border-width: 0.5rem; +} + +.custom-range::-ms-fill-lower { + background-color: #dee2e6; + border-radius: 1rem; +} + +.custom-range::-ms-fill-upper { + margin-right: 15px; + background-color: #dee2e6; + border-radius: 1rem; +} + +.custom-range:disabled::-webkit-slider-thumb { + background-color: #adb5bd; +} + +.custom-range:disabled::-webkit-slider-runnable-track { + cursor: default; +} + +.custom-range:disabled::-moz-range-thumb { + background-color: #adb5bd; +} + +.custom-range:disabled::-moz-range-track { + cursor: default; +} + +.custom-range:disabled::-ms-thumb { + background-color: #adb5bd; +} + +.custom-control-label::before, +.custom-file-label, +.custom-select { + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .custom-control-label::before, + .custom-file-label, + .custom-select { + transition: none; + } +} + +.nav { + display: flex; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.nav-link { + display: block; + padding: 0.5rem 1rem; +} + +.nav-link:hover, .nav-link:focus { + text-decoration: none; +} + +.nav-link.disabled { + color: #6c757d; + pointer-events: none; + cursor: default; +} + +.nav-tabs { + border-bottom: 1px solid #dee2e6; +} + +.nav-tabs .nav-link { + margin-bottom: -1px; + border: 1px solid transparent; + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} + +.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { + border-color: #e9ecef #e9ecef #dee2e6; +} + +.nav-tabs .nav-link.disabled { + color: #6c757d; + background-color: transparent; + border-color: transparent; +} + +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + color: #495057; + background-color: #fff; + border-color: #dee2e6 #dee2e6 #fff; +} + +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.nav-pills .nav-link { + border-radius: 0.25rem; +} + +.nav-pills .nav-link.active, +.nav-pills .show > .nav-link { + color: #fff; + background-color: #007bff; +} + +.nav-fill > .nav-link, +.nav-fill .nav-item { + flex: 1 1 auto; + text-align: center; +} + +.nav-justified > .nav-link, +.nav-justified .nav-item { + flex-basis: 0; + flex-grow: 1; + text-align: center; +} + +.tab-content > .tab-pane { + display: none; +} + +.tab-content > .active { + display: block; +} + +.navbar { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + padding: 0.5rem 1rem; +} + +.navbar .container, +.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; +} + +.navbar-brand { + display: inline-block; + padding-top: 0.3125rem; + padding-bottom: 0.3125rem; + margin-right: 1rem; + font-size: 1.25rem; + line-height: inherit; + white-space: nowrap; +} + +.navbar-brand:hover, .navbar-brand:focus { + text-decoration: none; +} + +.navbar-nav { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.navbar-nav .nav-link { + padding-right: 0; + padding-left: 0; +} + +.navbar-nav .dropdown-menu { + position: static; + float: none; +} + +.navbar-text { + display: inline-block; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.navbar-collapse { + flex-basis: 100%; + flex-grow: 1; + align-items: center; +} + +.navbar-toggler { + padding: 0.25rem 0.75rem; + font-size: 1.25rem; + line-height: 1; + background-color: transparent; + border: 1px solid transparent; + border-radius: 0.25rem; +} + +.navbar-toggler:hover, .navbar-toggler:focus { + text-decoration: none; +} + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + content: ""; + background: 50% / 100% 100% no-repeat; +} + +.navbar-nav-scroll { + max-height: 75vh; + overflow-y: auto; +} + +@media (max-width: 575.98px) { + .navbar-expand-sm > .container, + .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 576px) { + .navbar-expand-sm { + flex-flow: row nowrap; + justify-content: flex-start; + } + .navbar-expand-sm .navbar-nav { + flex-direction: row; + } + .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-sm .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-sm > .container, + .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl { + flex-wrap: nowrap; + } + .navbar-expand-sm .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-sm .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-sm .navbar-toggler { + display: none; + } +} + +@media (max-width: 767.98px) { + .navbar-expand-md > .container, + .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 768px) { + .navbar-expand-md { + flex-flow: row nowrap; + justify-content: flex-start; + } + .navbar-expand-md .navbar-nav { + flex-direction: row; + } + .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-md .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-md > .container, + .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl { + flex-wrap: nowrap; + } + .navbar-expand-md .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-md .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-md .navbar-toggler { + display: none; + } +} + +@media (max-width: 991.98px) { + .navbar-expand-lg > .container, + .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 992px) { + .navbar-expand-lg { + flex-flow: row nowrap; + justify-content: flex-start; + } + .navbar-expand-lg .navbar-nav { + flex-direction: row; + } + .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-lg .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-lg > .container, + .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl { + flex-wrap: nowrap; + } + .navbar-expand-lg .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-lg .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-lg .navbar-toggler { + display: none; + } +} + +@media (max-width: 1199.98px) { + .navbar-expand-xl > .container, + .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 1200px) { + .navbar-expand-xl { + flex-flow: row nowrap; + justify-content: flex-start; + } + .navbar-expand-xl .navbar-nav { + flex-direction: row; + } + .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-xl .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-xl > .container, + .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl { + flex-wrap: nowrap; + } + .navbar-expand-xl .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-xl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-xl .navbar-toggler { + display: none; + } +} + +.navbar-expand { + flex-flow: row nowrap; + justify-content: flex-start; +} + +.navbar-expand > .container, +.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl { + padding-right: 0; + padding-left: 0; +} + +.navbar-expand .navbar-nav { + flex-direction: row; +} + +.navbar-expand .navbar-nav .dropdown-menu { + position: absolute; +} + +.navbar-expand .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; +} + +.navbar-expand > .container, +.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl { + flex-wrap: nowrap; +} + +.navbar-expand .navbar-nav-scroll { + overflow: visible; +} + +.navbar-expand .navbar-collapse { + display: flex !important; + flex-basis: auto; +} + +.navbar-expand .navbar-toggler { + display: none; +} + +.navbar-light .navbar-brand { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-nav .nav-link { + color: rgba(0, 0, 0, 0.5); +} + +.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus { + color: rgba(0, 0, 0, 0.7); +} + +.navbar-light .navbar-nav .nav-link.disabled { + color: rgba(0, 0, 0, 0.3); +} + +.navbar-light .navbar-nav .show > .nav-link, +.navbar-light .navbar-nav .active > .nav-link, +.navbar-light .navbar-nav .nav-link.show, +.navbar-light .navbar-nav .nav-link.active { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-toggler { + color: rgba(0, 0, 0, 0.5); + border-color: rgba(0, 0, 0, 0.1); +} + +.navbar-light .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} + +.navbar-light .navbar-text { + color: rgba(0, 0, 0, 0.5); +} + +.navbar-light .navbar-text a { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-dark .navbar-brand { + color: #fff; +} + +.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus { + color: #fff; +} + +.navbar-dark .navbar-nav .nav-link { + color: rgba(255, 255, 255, 0.5); +} + +.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus { + color: rgba(255, 255, 255, 0.75); +} + +.navbar-dark .navbar-nav .nav-link.disabled { + color: rgba(255, 255, 255, 0.25); +} + +.navbar-dark .navbar-nav .show > .nav-link, +.navbar-dark .navbar-nav .active > .nav-link, +.navbar-dark .navbar-nav .nav-link.show, +.navbar-dark .navbar-nav .nav-link.active { + color: #fff; +} + +.navbar-dark .navbar-toggler { + color: rgba(255, 255, 255, 0.5); + border-color: rgba(255, 255, 255, 0.1); +} + +.navbar-dark .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} + +.navbar-dark .navbar-text { + color: rgba(255, 255, 255, 0.5); +} + +.navbar-dark .navbar-text a { + color: #fff; +} + +.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus { + color: #fff; +} + +.card { + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #fff; + background-clip: border-box; + border: 1px solid rgba(0, 0, 0, 0.125); + border-radius: 0.25rem; +} + +.card > hr { + margin-right: 0; + margin-left: 0; +} + +.card > .list-group { + border-top: inherit; + border-bottom: inherit; +} + +.card > .list-group:first-child { + border-top-width: 0; + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} + +.card > .list-group:last-child { + border-bottom-width: 0; + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} + +.card > .card-header + .list-group, +.card > .list-group + .card-footer { + border-top: 0; +} + +.card-body { + flex: 1 1 auto; + min-height: 1px; + padding: 1.25rem; +} + +.card-title { + margin-bottom: 0.75rem; +} + +.card-subtitle { + margin-top: -0.375rem; + margin-bottom: 0; +} + +.card-text:last-child { + margin-bottom: 0; +} + +.card-link:hover { + text-decoration: none; +} + +.card-link + .card-link { + margin-left: 1.25rem; +} + +.card-header { + padding: 0.75rem 1.25rem; + margin-bottom: 0; + background-color: rgba(0, 0, 0, 0.03); + border-bottom: 1px solid rgba(0, 0, 0, 0.125); +} + +.card-header:first-child { + border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; +} + +.card-footer { + padding: 0.75rem 1.25rem; + background-color: rgba(0, 0, 0, 0.03); + border-top: 1px solid rgba(0, 0, 0, 0.125); +} + +.card-footer:last-child { + border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); +} + +.card-header-tabs { + margin-right: -0.625rem; + margin-bottom: -0.75rem; + margin-left: -0.625rem; + border-bottom: 0; +} + +.card-header-pills { + margin-right: -0.625rem; + margin-left: -0.625rem; +} + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1.25rem; + border-radius: calc(0.25rem - 1px); +} + +.card-img, +.card-img-top, +.card-img-bottom { + flex-shrink: 0; + width: 100%; +} + +.card-img, +.card-img-top { + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} + +.card-img, +.card-img-bottom { + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} + +.card-deck .card { + margin-bottom: 15px; +} + +@media (min-width: 576px) { + .card-deck { + display: flex; + flex-flow: row wrap; + margin-right: -15px; + margin-left: -15px; + } + .card-deck .card { + flex: 1 0 0%; + margin-right: 15px; + margin-bottom: 0; + margin-left: 15px; + } +} + +.card-group > .card { + margin-bottom: 15px; +} + +@media (min-width: 576px) { + .card-group { + display: flex; + flex-flow: row wrap; + } + .card-group > .card { + flex: 1 0 0%; + margin-bottom: 0; + } + .card-group > .card + .card { + margin-left: 0; + border-left: 0; + } + .card-group > .card:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-top, + .card-group > .card:not(:last-child) .card-header { + border-top-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-bottom, + .card-group > .card:not(:last-child) .card-footer { + border-bottom-right-radius: 0; + } + .card-group > .card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-top, + .card-group > .card:not(:first-child) .card-header { + border-top-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-bottom, + .card-group > .card:not(:first-child) .card-footer { + border-bottom-left-radius: 0; + } +} + +.card-columns .card { + margin-bottom: 0.75rem; +} + +@media (min-width: 576px) { + .card-columns { + -moz-column-count: 3; + column-count: 3; + -moz-column-gap: 1.25rem; + column-gap: 1.25rem; + orphans: 1; + widows: 1; + } + .card-columns .card { + display: inline-block; + width: 100%; + } +} + +.accordion { + overflow-anchor: none; +} + +.accordion > .card { + overflow: hidden; +} + +.accordion > .card:not(:last-of-type) { + border-bottom: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.accordion > .card:not(:first-of-type) { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.accordion > .card > .card-header { + border-radius: 0; + margin-bottom: -1px; +} + +.breadcrumb { + display: flex; + flex-wrap: wrap; + padding: 0.75rem 1rem; + margin-bottom: 1rem; + list-style: none; + background-color: #e9ecef; + border-radius: 0.25rem; +} + +.breadcrumb-item + .breadcrumb-item { + padding-left: 0.5rem; +} + +.breadcrumb-item + .breadcrumb-item::before { + float: left; + padding-right: 0.5rem; + color: #6c757d; + content: "/"; +} + +.breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: underline; +} + +.breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: none; +} + +.breadcrumb-item.active { + color: #6c757d; +} + +.pagination { + display: flex; + padding-left: 0; + list-style: none; + border-radius: 0.25rem; +} + +.page-link { + position: relative; + display: block; + padding: 0.5rem 0.75rem; + margin-left: -1px; + line-height: 1.25; + color: #007bff; + background-color: #fff; + border: 1px solid #dee2e6; +} + +.page-link:hover { + z-index: 2; + color: #0056b3; + text-decoration: none; + background-color: #e9ecef; + border-color: #dee2e6; +} + +.page-link:focus { + z-index: 3; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.page-item:first-child .page-link { + margin-left: 0; + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.page-item:last-child .page-link { + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} + +.page-item.active .page-link { + z-index: 3; + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.page-item.disabled .page-link { + color: #6c757d; + pointer-events: none; + cursor: auto; + background-color: #fff; + border-color: #dee2e6; +} + +.pagination-lg .page-link { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; + line-height: 1.5; +} + +.pagination-lg .page-item:first-child .page-link { + border-top-left-radius: 0.3rem; + border-bottom-left-radius: 0.3rem; +} + +.pagination-lg .page-item:last-child .page-link { + border-top-right-radius: 0.3rem; + border-bottom-right-radius: 0.3rem; +} + +.pagination-sm .page-link { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; +} + +.pagination-sm .page-item:first-child .page-link { + border-top-left-radius: 0.2rem; + border-bottom-left-radius: 0.2rem; +} + +.pagination-sm .page-item:last-child .page-link { + border-top-right-radius: 0.2rem; + border-bottom-right-radius: 0.2rem; +} + +.badge { + display: inline-block; + padding: 0.25em 0.4em; + font-size: 75%; + font-weight: 700; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 0.25rem; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .badge { + transition: none; + } +} + +a.badge:hover, a.badge:focus { + text-decoration: none; +} + +.badge:empty { + display: none; +} + +.btn .badge { + position: relative; + top: -1px; +} + +.badge-pill { + padding-right: 0.6em; + padding-left: 0.6em; + border-radius: 10rem; +} + +.badge-primary { + color: #fff; + background-color: #007bff; +} + +a.badge-primary:hover, a.badge-primary:focus { + color: #fff; + background-color: #0062cc; +} + +a.badge-primary:focus, a.badge-primary.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} + +.badge-secondary { + color: #fff; + background-color: #6c757d; +} + +a.badge-secondary:hover, a.badge-secondary:focus { + color: #fff; + background-color: #545b62; +} + +a.badge-secondary:focus, a.badge-secondary.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.badge-success { + color: #fff; + background-color: #28a745; +} + +a.badge-success:hover, a.badge-success:focus { + color: #fff; + background-color: #1e7e34; +} + +a.badge-success:focus, a.badge-success.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} + +.badge-info { + color: #fff; + background-color: #17a2b8; +} + +a.badge-info:hover, a.badge-info:focus { + color: #fff; + background-color: #117a8b; +} + +a.badge-info:focus, a.badge-info.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} + +.badge-warning { + color: #212529; + background-color: #ffc107; +} + +a.badge-warning:hover, a.badge-warning:focus { + color: #212529; + background-color: #d39e00; +} + +a.badge-warning:focus, a.badge-warning.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} + +.badge-danger { + color: #fff; + background-color: #dc3545; +} + +a.badge-danger:hover, a.badge-danger:focus { + color: #fff; + background-color: #bd2130; +} + +a.badge-danger:focus, a.badge-danger.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} + +.badge-light { + color: #212529; + background-color: #f8f9fa; +} + +a.badge-light:hover, a.badge-light:focus { + color: #212529; + background-color: #dae0e5; +} + +a.badge-light:focus, a.badge-light.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.badge-dark { + color: #fff; + background-color: #343a40; +} + +a.badge-dark:hover, a.badge-dark:focus { + color: #fff; + background-color: #1d2124; +} + +a.badge-dark:focus, a.badge-dark.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.jumbotron { + padding: 2rem 1rem; + margin-bottom: 2rem; + background-color: #e9ecef; + border-radius: 0.3rem; +} + +@media (min-width: 576px) { + .jumbotron { + padding: 4rem 2rem; + } +} + +.jumbotron-fluid { + padding-right: 0; + padding-left: 0; + border-radius: 0; +} + +.alert { + position: relative; + padding: 0.75rem 1.25rem; + margin-bottom: 1rem; + border: 1px solid transparent; + border-radius: 0.25rem; +} + +.alert-heading { + color: inherit; +} + +.alert-link { + font-weight: 700; +} + +.alert-dismissible { + padding-right: 4rem; +} + +.alert-dismissible .close { + position: absolute; + top: 0; + right: 0; + z-index: 2; + padding: 0.75rem 1.25rem; + color: inherit; +} + +.alert-primary { + color: #004085; + background-color: #cce5ff; + border-color: #b8daff; +} + +.alert-primary hr { + border-top-color: #9fcdff; +} + +.alert-primary .alert-link { + color: #002752; +} + +.alert-secondary { + color: #383d41; + background-color: #e2e3e5; + border-color: #d6d8db; +} + +.alert-secondary hr { + border-top-color: #c8cbcf; +} + +.alert-secondary .alert-link { + color: #202326; +} + +.alert-success { + color: #155724; + background-color: #d4edda; + border-color: #c3e6cb; +} + +.alert-success hr { + border-top-color: #b1dfbb; +} + +.alert-success .alert-link { + color: #0b2e13; +} + +.alert-info { + color: #0c5460; + background-color: #d1ecf1; + border-color: #bee5eb; +} + +.alert-info hr { + border-top-color: #abdde5; +} + +.alert-info .alert-link { + color: #062c33; +} + +.alert-warning { + color: #856404; + background-color: #fff3cd; + border-color: #ffeeba; +} + +.alert-warning hr { + border-top-color: #ffe8a1; +} + +.alert-warning .alert-link { + color: #533f03; +} + +.alert-danger { + color: #721c24; + background-color: #f8d7da; + border-color: #f5c6cb; +} + +.alert-danger hr { + border-top-color: #f1b0b7; +} + +.alert-danger .alert-link { + color: #491217; +} + +.alert-light { + color: #818182; + background-color: #fefefe; + border-color: #fdfdfe; +} + +.alert-light hr { + border-top-color: #ececf6; +} + +.alert-light .alert-link { + color: #686868; +} + +.alert-dark { + color: #1b1e21; + background-color: #d6d8d9; + border-color: #c6c8ca; +} + +.alert-dark hr { + border-top-color: #b9bbbe; +} + +.alert-dark .alert-link { + color: #040505; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 1rem 0; + } + to { + background-position: 0 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 1rem 0; + } + to { + background-position: 0 0; + } +} + +.progress { + display: flex; + height: 1rem; + overflow: hidden; + line-height: 0; + font-size: 0.75rem; + background-color: #e9ecef; + border-radius: 0.25rem; +} + +.progress-bar { + display: flex; + flex-direction: column; + justify-content: center; + overflow: hidden; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: #007bff; + transition: width 0.6s ease; +} + +@media (prefers-reduced-motion: reduce) { + .progress-bar { + transition: none; + } +} + +.progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem; +} + +.progress-bar-animated { + -webkit-animation: 1s linear infinite progress-bar-stripes; + animation: 1s linear infinite progress-bar-stripes; +} + +@media (prefers-reduced-motion: reduce) { + .progress-bar-animated { + -webkit-animation: none; + animation: none; + } +} + +.media { + display: flex; + align-items: flex-start; +} + +.media-body { + flex: 1; +} + +.list-group { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + border-radius: 0.25rem; +} + +.list-group-item-action { + width: 100%; + color: #495057; + text-align: inherit; +} + +.list-group-item-action:hover, .list-group-item-action:focus { + z-index: 1; + color: #495057; + text-decoration: none; + background-color: #f8f9fa; +} + +.list-group-item-action:active { + color: #212529; + background-color: #e9ecef; +} + +.list-group-item { + position: relative; + display: block; + padding: 0.75rem 1.25rem; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.125); +} + +.list-group-item:first-child { + border-top-left-radius: inherit; + border-top-right-radius: inherit; +} + +.list-group-item:last-child { + border-bottom-right-radius: inherit; + border-bottom-left-radius: inherit; +} + +.list-group-item.disabled, .list-group-item:disabled { + color: #6c757d; + pointer-events: none; + background-color: #fff; +} + +.list-group-item.active { + z-index: 2; + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.list-group-item + .list-group-item { + border-top-width: 0; +} + +.list-group-item + .list-group-item.active { + margin-top: -1px; + border-top-width: 1px; +} + +.list-group-horizontal { + flex-direction: row; +} + +.list-group-horizontal > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; +} + +.list-group-horizontal > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; +} + +.list-group-horizontal > .list-group-item.active { + margin-top: 0; +} + +.list-group-horizontal > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; +} + +.list-group-horizontal > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; +} + +@media (min-width: 576px) { + .list-group-horizontal-sm { + flex-direction: row; + } + .list-group-horizontal-sm > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-sm > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-sm > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} + +@media (min-width: 768px) { + .list-group-horizontal-md { + flex-direction: row; + } + .list-group-horizontal-md > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-md > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-md > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} + +@media (min-width: 992px) { + .list-group-horizontal-lg { + flex-direction: row; + } + .list-group-horizontal-lg > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-lg > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-lg > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} + +@media (min-width: 1200px) { + .list-group-horizontal-xl { + flex-direction: row; + } + .list-group-horizontal-xl > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-xl > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-xl > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} + +.list-group-flush { + border-radius: 0; +} + +.list-group-flush > .list-group-item { + border-width: 0 0 1px; +} + +.list-group-flush > .list-group-item:last-child { + border-bottom-width: 0; +} + +.list-group-item-primary { + color: #004085; + background-color: #b8daff; +} + +.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus { + color: #004085; + background-color: #9fcdff; +} + +.list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #004085; + border-color: #004085; +} + +.list-group-item-secondary { + color: #383d41; + background-color: #d6d8db; +} + +.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus { + color: #383d41; + background-color: #c8cbcf; +} + +.list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #383d41; + border-color: #383d41; +} + +.list-group-item-success { + color: #155724; + background-color: #c3e6cb; +} + +.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus { + color: #155724; + background-color: #b1dfbb; +} + +.list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #155724; + border-color: #155724; +} + +.list-group-item-info { + color: #0c5460; + background-color: #bee5eb; +} + +.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus { + color: #0c5460; + background-color: #abdde5; +} + +.list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #0c5460; + border-color: #0c5460; +} + +.list-group-item-warning { + color: #856404; + background-color: #ffeeba; +} + +.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus { + color: #856404; + background-color: #ffe8a1; +} + +.list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #856404; + border-color: #856404; +} + +.list-group-item-danger { + color: #721c24; + background-color: #f5c6cb; +} + +.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus { + color: #721c24; + background-color: #f1b0b7; +} + +.list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #721c24; + border-color: #721c24; +} + +.list-group-item-light { + color: #818182; + background-color: #fdfdfe; +} + +.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus { + color: #818182; + background-color: #ececf6; +} + +.list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #818182; + border-color: #818182; +} + +.list-group-item-dark { + color: #1b1e21; + background-color: #c6c8ca; +} + +.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus { + color: #1b1e21; + background-color: #b9bbbe; +} + +.list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #1b1e21; + border-color: #1b1e21; +} + +.close { + float: right; + font-size: 1.5rem; + font-weight: 700; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + opacity: .5; +} + +.close:hover { + color: #000; + text-decoration: none; +} + +.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus { + opacity: .75; +} + +button.close { + padding: 0; + background-color: transparent; + border: 0; +} + +a.close.disabled { + pointer-events: none; +} + +.toast { + flex-basis: 350px; + max-width: 350px; + font-size: 0.875rem; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.1); + box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1); + opacity: 0; + border-radius: 0.25rem; +} + +.toast:not(:last-child) { + margin-bottom: 0.75rem; +} + +.toast.showing { + opacity: 1; +} + +.toast.show { + display: block; + opacity: 1; +} + +.toast.hide { + display: none; +} + +.toast-header { + display: flex; + align-items: center; + padding: 0.25rem 0.75rem; + color: #6c757d; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} + +.toast-body { + padding: 0.75rem; +} + +.modal-open { + overflow: hidden; +} + +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} + +.modal { + position: fixed; + top: 0; + left: 0; + z-index: 1050; + display: none; + width: 100%; + height: 100%; + overflow: hidden; + outline: 0; +} + +.modal-dialog { + position: relative; + width: auto; + margin: 0.5rem; + pointer-events: none; +} + +.modal.fade .modal-dialog { + transition: transform 0.3s ease-out; + transform: translate(0, -50px); +} + +@media (prefers-reduced-motion: reduce) { + .modal.fade .modal-dialog { + transition: none; + } +} + +.modal.show .modal-dialog { + transform: none; +} + +.modal.modal-static .modal-dialog { + transform: scale(1.02); +} + +.modal-dialog-scrollable { + display: flex; + max-height: calc(100% - 1rem); +} + +.modal-dialog-scrollable .modal-content { + max-height: calc(100vh - 1rem); + overflow: hidden; +} + +.modal-dialog-scrollable .modal-header, +.modal-dialog-scrollable .modal-footer { + flex-shrink: 0; +} + +.modal-dialog-scrollable .modal-body { + overflow-y: auto; +} + +.modal-dialog-centered { + display: flex; + align-items: center; + min-height: calc(100% - 1rem); +} + +.modal-dialog-centered::before { + display: block; + height: calc(100vh - 1rem); + height: -webkit-min-content; + height: -moz-min-content; + height: min-content; + content: ""; +} + +.modal-dialog-centered.modal-dialog-scrollable { + flex-direction: column; + justify-content: center; + height: 100%; +} + +.modal-dialog-centered.modal-dialog-scrollable .modal-content { + max-height: none; +} + +.modal-dialog-centered.modal-dialog-scrollable::before { + content: none; +} + +.modal-content { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + pointer-events: auto; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; + outline: 0; +} + +.modal-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000; +} + +.modal-backdrop.fade { + opacity: 0; +} + +.modal-backdrop.show { + opacity: 0.5; +} + +.modal-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + padding: 1rem 1rem; + border-bottom: 1px solid #dee2e6; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} + +.modal-header .close { + padding: 1rem 1rem; + margin: -1rem -1rem -1rem auto; +} + +.modal-title { + margin-bottom: 0; + line-height: 1.5; +} + +.modal-body { + position: relative; + flex: 1 1 auto; + padding: 1rem; +} + +.modal-footer { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: flex-end; + padding: 0.75rem; + border-top: 1px solid #dee2e6; + border-bottom-right-radius: calc(0.3rem - 1px); + border-bottom-left-radius: calc(0.3rem - 1px); +} + +.modal-footer > * { + margin: 0.25rem; +} + +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} + +@media (min-width: 576px) { + .modal-dialog { + max-width: 500px; + margin: 1.75rem auto; + } + .modal-dialog-scrollable { + max-height: calc(100% - 3.5rem); + } + .modal-dialog-scrollable .modal-content { + max-height: calc(100vh - 3.5rem); + } + .modal-dialog-centered { + min-height: calc(100% - 3.5rem); + } + .modal-dialog-centered::before { + height: calc(100vh - 3.5rem); + height: -webkit-min-content; + height: -moz-min-content; + height: min-content; + } + .modal-sm { + max-width: 300px; + } +} + +@media (min-width: 992px) { + .modal-lg, + .modal-xl { + max-width: 800px; + } +} + +@media (min-width: 1200px) { + .modal-xl { + max-width: 1140px; + } +} + +.tooltip { + position: absolute; + z-index: 1070; + display: block; + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + opacity: 0; +} + +.tooltip.show { + opacity: 0.9; +} + +.tooltip .arrow { + position: absolute; + display: block; + width: 0.8rem; + height: 0.4rem; +} + +.tooltip .arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] { + padding: 0.4rem 0; +} + +.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^="top"] .arrow { + bottom: 0; +} + +.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before { + top: 0; + border-width: 0.4rem 0.4rem 0; + border-top-color: #000; +} + +.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] { + padding: 0 0.4rem; +} + +.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow { + left: 0; + width: 0.4rem; + height: 0.8rem; +} + +.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before { + right: 0; + border-width: 0.4rem 0.4rem 0.4rem 0; + border-right-color: #000; +} + +.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] { + padding: 0.4rem 0; +} + +.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^="bottom"] .arrow { + top: 0; +} + +.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before { + bottom: 0; + border-width: 0 0.4rem 0.4rem; + border-bottom-color: #000; +} + +.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] { + padding: 0 0.4rem; +} + +.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow { + right: 0; + width: 0.4rem; + height: 0.8rem; +} + +.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before { + left: 0; + border-width: 0.4rem 0 0.4rem 0.4rem; + border-left-color: #000; +} + +.tooltip-inner { + max-width: 200px; + padding: 0.25rem 0.5rem; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 0.25rem; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: block; + max-width: 276px; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; +} + +.popover .arrow { + position: absolute; + display: block; + width: 1rem; + height: 0.5rem; + margin: 0 0.3rem; +} + +.popover .arrow::before, .popover .arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-popover-top, .bs-popover-auto[x-placement^="top"] { + margin-bottom: 0.5rem; +} + +.bs-popover-top > .arrow, .bs-popover-auto[x-placement^="top"] > .arrow { + bottom: calc(-0.5rem - 1px); +} + +.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^="top"] > .arrow::before { + bottom: 0; + border-width: 0.5rem 0.5rem 0; + border-top-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^="top"] > .arrow::after { + bottom: 1px; + border-width: 0.5rem 0.5rem 0; + border-top-color: #fff; +} + +.bs-popover-right, .bs-popover-auto[x-placement^="right"] { + margin-left: 0.5rem; +} + +.bs-popover-right > .arrow, .bs-popover-auto[x-placement^="right"] > .arrow { + left: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; +} + +.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^="right"] > .arrow::before { + left: 0; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^="right"] > .arrow::after { + left: 1px; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: #fff; +} + +.bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] { + margin-top: 0.5rem; +} + +.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^="bottom"] > .arrow { + top: calc(-0.5rem - 1px); +} + +.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^="bottom"] > .arrow::before { + top: 0; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^="bottom"] > .arrow::after { + top: 1px; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: #fff; +} + +.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: 1rem; + margin-left: -0.5rem; + content: ""; + border-bottom: 1px solid #f7f7f7; +} + +.bs-popover-left, .bs-popover-auto[x-placement^="left"] { + margin-right: 0.5rem; +} + +.bs-popover-left > .arrow, .bs-popover-auto[x-placement^="left"] > .arrow { + right: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; +} + +.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^="left"] > .arrow::before { + right: 0; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^="left"] > .arrow::after { + right: 1px; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: #fff; +} + +.popover-header { + padding: 0.5rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} + +.popover-header:empty { + display: none; +} + +.popover-body { + padding: 0.5rem 0.75rem; + color: #212529; +} + +.carousel { + position: relative; +} + +.carousel.pointer-event { + touch-action: pan-y; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-inner::after { + display: block; + clear: both; + content: ""; +} + +.carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: transform 0.6s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-item { + transition: none; + } +} + +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; +} + +.carousel-item-next:not(.carousel-item-left), +.active.carousel-item-right { + transform: translateX(100%); +} + +.carousel-item-prev:not(.carousel-item-right), +.active.carousel-item-left { + transform: translateX(-100%); +} + +.carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + transform: none; +} + +.carousel-fade .carousel-item.active, +.carousel-fade .carousel-item-next.carousel-item-left, +.carousel-fade .carousel-item-prev.carousel-item-right { + z-index: 1; + opacity: 1; +} + +.carousel-fade .active.carousel-item-left, +.carousel-fade .active.carousel-item-right { + z-index: 0; + opacity: 0; + transition: opacity 0s 0.6s; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-left, + .carousel-fade .active.carousel-item-right { + transition: none; + } +} + +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: flex; + align-items: center; + justify-content: center; + width: 15%; + color: #fff; + text-align: center; + opacity: 0.5; + transition: opacity 0.15s ease; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-control-prev, + .carousel-control-next { + transition: none; + } +} + +.carousel-control-prev:hover, .carousel-control-prev:focus, +.carousel-control-next:hover, +.carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; +} + +.carousel-control-prev { + left: 0; +} + +.carousel-control-next { + right: 0; +} + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 20px; + height: 20px; + background: 50% / 100% 100% no-repeat; +} + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e"); +} + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e"); +} + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 15; + display: flex; + justify-content: center; + padding-left: 0; + margin-right: 15%; + margin-left: 15%; + list-style: none; +} + +.carousel-indicators li { + box-sizing: content-box; + flex: 0 1 auto; + width: 30px; + height: 3px; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: .5; + transition: opacity 0.6s ease; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-indicators li { + transition: none; + } +} + +.carousel-indicators .active { + opacity: 1; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; +} + +@-webkit-keyframes spinner-border { + to { + transform: rotate(360deg); + } +} + +@keyframes spinner-border { + to { + transform: rotate(360deg); + } +} + +.spinner-border { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + border: 0.25em solid currentColor; + border-right-color: transparent; + border-radius: 50%; + -webkit-animation: .75s linear infinite spinner-border; + animation: .75s linear infinite spinner-border; +} + +.spinner-border-sm { + width: 1rem; + height: 1rem; + border-width: 0.2em; +} + +@-webkit-keyframes spinner-grow { + 0% { + transform: scale(0); + } + 50% { + opacity: 1; + transform: none; + } +} + +@keyframes spinner-grow { + 0% { + transform: scale(0); + } + 50% { + opacity: 1; + transform: none; + } +} + +.spinner-grow { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + background-color: currentColor; + border-radius: 50%; + opacity: 0; + -webkit-animation: .75s linear infinite spinner-grow; + animation: .75s linear infinite spinner-grow; +} + +.spinner-grow-sm { + width: 1rem; + height: 1rem; +} + +@media (prefers-reduced-motion: reduce) { + .spinner-border, + .spinner-grow { + -webkit-animation-duration: 1.5s; + animation-duration: 1.5s; + } +} + +.align-baseline { + vertical-align: baseline !important; +} + +.align-top { + vertical-align: top !important; +} + +.align-middle { + vertical-align: middle !important; +} + +.align-bottom { + vertical-align: bottom !important; +} + +.align-text-bottom { + vertical-align: text-bottom !important; +} + +.align-text-top { + vertical-align: text-top !important; +} + +.bg-primary { + background-color: #007bff !important; +} + +a.bg-primary:hover, a.bg-primary:focus, +button.bg-primary:hover, +button.bg-primary:focus { + background-color: #0062cc !important; +} + +.bg-secondary { + background-color: #6c757d !important; +} + +a.bg-secondary:hover, a.bg-secondary:focus, +button.bg-secondary:hover, +button.bg-secondary:focus { + background-color: #545b62 !important; +} + +.bg-success { + background-color: #28a745 !important; +} + +a.bg-success:hover, a.bg-success:focus, +button.bg-success:hover, +button.bg-success:focus { + background-color: #1e7e34 !important; +} + +.bg-info { + background-color: #17a2b8 !important; +} + +a.bg-info:hover, a.bg-info:focus, +button.bg-info:hover, +button.bg-info:focus { + background-color: #117a8b !important; +} + +.bg-warning { + background-color: #ffc107 !important; +} + +a.bg-warning:hover, a.bg-warning:focus, +button.bg-warning:hover, +button.bg-warning:focus { + background-color: #d39e00 !important; +} + +.bg-danger { + background-color: #dc3545 !important; +} + +a.bg-danger:hover, a.bg-danger:focus, +button.bg-danger:hover, +button.bg-danger:focus { + background-color: #bd2130 !important; +} + +.bg-light { + background-color: #f8f9fa !important; +} + +a.bg-light:hover, a.bg-light:focus, +button.bg-light:hover, +button.bg-light:focus { + background-color: #dae0e5 !important; +} + +.bg-dark { + background-color: #343a40 !important; +} + +a.bg-dark:hover, a.bg-dark:focus, +button.bg-dark:hover, +button.bg-dark:focus { + background-color: #1d2124 !important; +} + +.bg-white { + background-color: #fff !important; +} + +.bg-transparent { + background-color: transparent !important; +} + +.border { + border: 1px solid #dee2e6 !important; +} + +.border-top { + border-top: 1px solid #dee2e6 !important; +} + +.border-right { + border-right: 1px solid #dee2e6 !important; +} + +.border-bottom { + border-bottom: 1px solid #dee2e6 !important; +} + +.border-left { + border-left: 1px solid #dee2e6 !important; +} + +.border-0 { + border: 0 !important; +} + +.border-top-0 { + border-top: 0 !important; +} + +.border-right-0 { + border-right: 0 !important; +} + +.border-bottom-0 { + border-bottom: 0 !important; +} + +.border-left-0 { + border-left: 0 !important; +} + +.border-primary { + border-color: #007bff !important; +} + +.border-secondary { + border-color: #6c757d !important; +} + +.border-success { + border-color: #28a745 !important; +} + +.border-info { + border-color: #17a2b8 !important; +} + +.border-warning { + border-color: #ffc107 !important; +} + +.border-danger { + border-color: #dc3545 !important; +} + +.border-light { + border-color: #f8f9fa !important; +} + +.border-dark { + border-color: #343a40 !important; +} + +.border-white { + border-color: #fff !important; +} + +.rounded-sm { + border-radius: 0.2rem !important; +} + +.rounded { + border-radius: 0.25rem !important; +} + +.rounded-top { + border-top-left-radius: 0.25rem !important; + border-top-right-radius: 0.25rem !important; +} + +.rounded-right { + border-top-right-radius: 0.25rem !important; + border-bottom-right-radius: 0.25rem !important; +} + +.rounded-bottom { + border-bottom-right-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; +} + +.rounded-left { + border-top-left-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; +} + +.rounded-lg { + border-radius: 0.3rem !important; +} + +.rounded-circle { + border-radius: 50% !important; +} + +.rounded-pill { + border-radius: 50rem !important; +} + +.rounded-0 { + border-radius: 0 !important; +} + +.clearfix::after { + display: block; + clear: both; + content: ""; +} + +.d-none { + display: none !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !important; +} + +.d-table { + display: table !important; +} + +.d-table-row { + display: table-row !important; +} + +.d-table-cell { + display: table-cell !important; +} + +.d-flex { + display: flex !important; +} + +.d-inline-flex { + display: inline-flex !important; +} + +@media (min-width: 576px) { + .d-sm-none { + display: none !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-block { + display: block !important; + } + .d-sm-table { + display: table !important; + } + .d-sm-table-row { + display: table-row !important; + } + .d-sm-table-cell { + display: table-cell !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline-flex { + display: inline-flex !important; + } +} + +@media (min-width: 768px) { + .d-md-none { + display: none !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-block { + display: block !important; + } + .d-md-table { + display: table !important; + } + .d-md-table-row { + display: table-row !important; + } + .d-md-table-cell { + display: table-cell !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline-flex { + display: inline-flex !important; + } +} + +@media (min-width: 992px) { + .d-lg-none { + display: none !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-block { + display: block !important; + } + .d-lg-table { + display: table !important; + } + .d-lg-table-row { + display: table-row !important; + } + .d-lg-table-cell { + display: table-cell !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline-flex { + display: inline-flex !important; + } +} + +@media (min-width: 1200px) { + .d-xl-none { + display: none !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-block { + display: block !important; + } + .d-xl-table { + display: table !important; + } + .d-xl-table-row { + display: table-row !important; + } + .d-xl-table-cell { + display: table-cell !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline-flex { + display: inline-flex !important; + } +} + +@media print { + .d-print-none { + display: none !important; + } + .d-print-inline { + display: inline !important; + } + .d-print-inline-block { + display: inline-block !important; + } + .d-print-block { + display: block !important; + } + .d-print-table { + display: table !important; + } + .d-print-table-row { + display: table-row !important; + } + .d-print-table-cell { + display: table-cell !important; + } + .d-print-flex { + display: flex !important; + } + .d-print-inline-flex { + display: inline-flex !important; + } +} + +.embed-responsive { + position: relative; + display: block; + width: 100%; + padding: 0; + overflow: hidden; +} + +.embed-responsive::before { + display: block; + content: ""; +} + +.embed-responsive .embed-responsive-item, +.embed-responsive iframe, +.embed-responsive embed, +.embed-responsive object, +.embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; +} + +.embed-responsive-21by9::before { + padding-top: 42.857143%; +} + +.embed-responsive-16by9::before { + padding-top: 56.25%; +} + +.embed-responsive-4by3::before { + padding-top: 75%; +} + +.embed-responsive-1by1::before { + padding-top: 100%; +} + +.flex-row { + flex-direction: row !important; +} + +.flex-column { + flex-direction: column !important; +} + +.flex-row-reverse { + flex-direction: row-reverse !important; +} + +.flex-column-reverse { + flex-direction: column-reverse !important; +} + +.flex-wrap { + flex-wrap: wrap !important; +} + +.flex-nowrap { + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important; +} + +.flex-fill { + flex: 1 1 auto !important; +} + +.flex-grow-0 { + flex-grow: 0 !important; +} + +.flex-grow-1 { + flex-grow: 1 !important; +} + +.flex-shrink-0 { + flex-shrink: 0 !important; +} + +.flex-shrink-1 { + flex-shrink: 1 !important; +} + +.justify-content-start { + justify-content: flex-start !important; +} + +.justify-content-end { + justify-content: flex-end !important; +} + +.justify-content-center { + justify-content: center !important; +} + +.justify-content-between { + justify-content: space-between !important; +} + +.justify-content-around { + justify-content: space-around !important; +} + +.align-items-start { + align-items: flex-start !important; +} + +.align-items-end { + align-items: flex-end !important; +} + +.align-items-center { + align-items: center !important; +} + +.align-items-baseline { + align-items: baseline !important; +} + +.align-items-stretch { + align-items: stretch !important; +} + +.align-content-start { + align-content: flex-start !important; +} + +.align-content-end { + align-content: flex-end !important; +} + +.align-content-center { + align-content: center !important; +} + +.align-content-between { + align-content: space-between !important; +} + +.align-content-around { + align-content: space-around !important; +} + +.align-content-stretch { + align-content: stretch !important; +} + +.align-self-auto { + align-self: auto !important; +} + +.align-self-start { + align-self: flex-start !important; +} + +.align-self-end { + align-self: flex-end !important; +} + +.align-self-center { + align-self: center !important; +} + +.align-self-baseline { + align-self: baseline !important; +} + +.align-self-stretch { + align-self: stretch !important; +} + +@media (min-width: 576px) { + .flex-sm-row { + flex-direction: row !important; + } + .flex-sm-column { + flex-direction: column !important; + } + .flex-sm-row-reverse { + flex-direction: row-reverse !important; + } + .flex-sm-column-reverse { + flex-direction: column-reverse !important; + } + .flex-sm-wrap { + flex-wrap: wrap !important; + } + .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .flex-sm-fill { + flex: 1 1 auto !important; + } + .flex-sm-grow-0 { + flex-grow: 0 !important; + } + .flex-sm-grow-1 { + flex-grow: 1 !important; + } + .flex-sm-shrink-0 { + flex-shrink: 0 !important; + } + .flex-sm-shrink-1 { + flex-shrink: 1 !important; + } + .justify-content-sm-start { + justify-content: flex-start !important; + } + .justify-content-sm-end { + justify-content: flex-end !important; + } + .justify-content-sm-center { + justify-content: center !important; + } + .justify-content-sm-between { + justify-content: space-between !important; + } + .justify-content-sm-around { + justify-content: space-around !important; + } + .align-items-sm-start { + align-items: flex-start !important; + } + .align-items-sm-end { + align-items: flex-end !important; + } + .align-items-sm-center { + align-items: center !important; + } + .align-items-sm-baseline { + align-items: baseline !important; + } + .align-items-sm-stretch { + align-items: stretch !important; + } + .align-content-sm-start { + align-content: flex-start !important; + } + .align-content-sm-end { + align-content: flex-end !important; + } + .align-content-sm-center { + align-content: center !important; + } + .align-content-sm-between { + align-content: space-between !important; + } + .align-content-sm-around { + align-content: space-around !important; + } + .align-content-sm-stretch { + align-content: stretch !important; + } + .align-self-sm-auto { + align-self: auto !important; + } + .align-self-sm-start { + align-self: flex-start !important; + } + .align-self-sm-end { + align-self: flex-end !important; + } + .align-self-sm-center { + align-self: center !important; + } + .align-self-sm-baseline { + align-self: baseline !important; + } + .align-self-sm-stretch { + align-self: stretch !important; + } +} + +@media (min-width: 768px) { + .flex-md-row { + flex-direction: row !important; + } + .flex-md-column { + flex-direction: column !important; + } + .flex-md-row-reverse { + flex-direction: row-reverse !important; + } + .flex-md-column-reverse { + flex-direction: column-reverse !important; + } + .flex-md-wrap { + flex-wrap: wrap !important; + } + .flex-md-nowrap { + flex-wrap: nowrap !important; + } + .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .flex-md-fill { + flex: 1 1 auto !important; + } + .flex-md-grow-0 { + flex-grow: 0 !important; + } + .flex-md-grow-1 { + flex-grow: 1 !important; + } + .flex-md-shrink-0 { + flex-shrink: 0 !important; + } + .flex-md-shrink-1 { + flex-shrink: 1 !important; + } + .justify-content-md-start { + justify-content: flex-start !important; + } + .justify-content-md-end { + justify-content: flex-end !important; + } + .justify-content-md-center { + justify-content: center !important; + } + .justify-content-md-between { + justify-content: space-between !important; + } + .justify-content-md-around { + justify-content: space-around !important; + } + .align-items-md-start { + align-items: flex-start !important; + } + .align-items-md-end { + align-items: flex-end !important; + } + .align-items-md-center { + align-items: center !important; + } + .align-items-md-baseline { + align-items: baseline !important; + } + .align-items-md-stretch { + align-items: stretch !important; + } + .align-content-md-start { + align-content: flex-start !important; + } + .align-content-md-end { + align-content: flex-end !important; + } + .align-content-md-center { + align-content: center !important; + } + .align-content-md-between { + align-content: space-between !important; + } + .align-content-md-around { + align-content: space-around !important; + } + .align-content-md-stretch { + align-content: stretch !important; + } + .align-self-md-auto { + align-self: auto !important; + } + .align-self-md-start { + align-self: flex-start !important; + } + .align-self-md-end { + align-self: flex-end !important; + } + .align-self-md-center { + align-self: center !important; + } + .align-self-md-baseline { + align-self: baseline !important; + } + .align-self-md-stretch { + align-self: stretch !important; + } +} + +@media (min-width: 992px) { + .flex-lg-row { + flex-direction: row !important; + } + .flex-lg-column { + flex-direction: column !important; + } + .flex-lg-row-reverse { + flex-direction: row-reverse !important; + } + .flex-lg-column-reverse { + flex-direction: column-reverse !important; + } + .flex-lg-wrap { + flex-wrap: wrap !important; + } + .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .flex-lg-fill { + flex: 1 1 auto !important; + } + .flex-lg-grow-0 { + flex-grow: 0 !important; + } + .flex-lg-grow-1 { + flex-grow: 1 !important; + } + .flex-lg-shrink-0 { + flex-shrink: 0 !important; + } + .flex-lg-shrink-1 { + flex-shrink: 1 !important; + } + .justify-content-lg-start { + justify-content: flex-start !important; + } + .justify-content-lg-end { + justify-content: flex-end !important; + } + .justify-content-lg-center { + justify-content: center !important; + } + .justify-content-lg-between { + justify-content: space-between !important; + } + .justify-content-lg-around { + justify-content: space-around !important; + } + .align-items-lg-start { + align-items: flex-start !important; + } + .align-items-lg-end { + align-items: flex-end !important; + } + .align-items-lg-center { + align-items: center !important; + } + .align-items-lg-baseline { + align-items: baseline !important; + } + .align-items-lg-stretch { + align-items: stretch !important; + } + .align-content-lg-start { + align-content: flex-start !important; + } + .align-content-lg-end { + align-content: flex-end !important; + } + .align-content-lg-center { + align-content: center !important; + } + .align-content-lg-between { + align-content: space-between !important; + } + .align-content-lg-around { + align-content: space-around !important; + } + .align-content-lg-stretch { + align-content: stretch !important; + } + .align-self-lg-auto { + align-self: auto !important; + } + .align-self-lg-start { + align-self: flex-start !important; + } + .align-self-lg-end { + align-self: flex-end !important; + } + .align-self-lg-center { + align-self: center !important; + } + .align-self-lg-baseline { + align-self: baseline !important; + } + .align-self-lg-stretch { + align-self: stretch !important; + } +} + +@media (min-width: 1200px) { + .flex-xl-row { + flex-direction: row !important; + } + .flex-xl-column { + flex-direction: column !important; + } + .flex-xl-row-reverse { + flex-direction: row-reverse !important; + } + .flex-xl-column-reverse { + flex-direction: column-reverse !important; + } + .flex-xl-wrap { + flex-wrap: wrap !important; + } + .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .flex-xl-fill { + flex: 1 1 auto !important; + } + .flex-xl-grow-0 { + flex-grow: 0 !important; + } + .flex-xl-grow-1 { + flex-grow: 1 !important; + } + .flex-xl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xl-shrink-1 { + flex-shrink: 1 !important; + } + .justify-content-xl-start { + justify-content: flex-start !important; + } + .justify-content-xl-end { + justify-content: flex-end !important; + } + .justify-content-xl-center { + justify-content: center !important; + } + .justify-content-xl-between { + justify-content: space-between !important; + } + .justify-content-xl-around { + justify-content: space-around !important; + } + .align-items-xl-start { + align-items: flex-start !important; + } + .align-items-xl-end { + align-items: flex-end !important; + } + .align-items-xl-center { + align-items: center !important; + } + .align-items-xl-baseline { + align-items: baseline !important; + } + .align-items-xl-stretch { + align-items: stretch !important; + } + .align-content-xl-start { + align-content: flex-start !important; + } + .align-content-xl-end { + align-content: flex-end !important; + } + .align-content-xl-center { + align-content: center !important; + } + .align-content-xl-between { + align-content: space-between !important; + } + .align-content-xl-around { + align-content: space-around !important; + } + .align-content-xl-stretch { + align-content: stretch !important; + } + .align-self-xl-auto { + align-self: auto !important; + } + .align-self-xl-start { + align-self: flex-start !important; + } + .align-self-xl-end { + align-self: flex-end !important; + } + .align-self-xl-center { + align-self: center !important; + } + .align-self-xl-baseline { + align-self: baseline !important; + } + .align-self-xl-stretch { + align-self: stretch !important; + } +} + +.float-left { + float: left !important; +} + +.float-right { + float: right !important; +} + +.float-none { + float: none !important; +} + +@media (min-width: 576px) { + .float-sm-left { + float: left !important; + } + .float-sm-right { + float: right !important; + } + .float-sm-none { + float: none !important; + } +} + +@media (min-width: 768px) { + .float-md-left { + float: left !important; + } + .float-md-right { + float: right !important; + } + .float-md-none { + float: none !important; + } +} + +@media (min-width: 992px) { + .float-lg-left { + float: left !important; + } + .float-lg-right { + float: right !important; + } + .float-lg-none { + float: none !important; + } +} + +@media (min-width: 1200px) { + .float-xl-left { + float: left !important; + } + .float-xl-right { + float: right !important; + } + .float-xl-none { + float: none !important; + } +} + +.user-select-all { + -webkit-user-select: all !important; + -moz-user-select: all !important; + user-select: all !important; +} + +.user-select-auto { + -webkit-user-select: auto !important; + -moz-user-select: auto !important; + -ms-user-select: auto !important; + user-select: auto !important; +} + +.user-select-none { + -webkit-user-select: none !important; + -moz-user-select: none !important; + -ms-user-select: none !important; + user-select: none !important; +} + +.overflow-auto { + overflow: auto !important; +} + +.overflow-hidden { + overflow: hidden !important; +} + +.position-static { + position: static !important; +} + +.position-relative { + position: relative !important; +} + +.position-absolute { + position: absolute !important; +} + +.position-fixed { + position: fixed !important; +} + +.position-sticky { + position: -webkit-sticky !important; + position: sticky !important; +} + +.fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} + +.fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; +} + +@supports ((position: -webkit-sticky) or (position: sticky)) { + .sticky-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; +} + +.sr-only-focusable:active, .sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + overflow: visible; + clip: auto; + white-space: normal; +} + +.shadow-sm { + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; +} + +.shadow { + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; +} + +.shadow-lg { + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; +} + +.shadow-none { + box-shadow: none !important; +} + +.w-25 { + width: 25% !important; +} + +.w-50 { + width: 50% !important; +} + +.w-75 { + width: 75% !important; +} + +.w-100 { + width: 100% !important; +} + +.w-auto { + width: auto !important; +} + +.h-25 { + height: 25% !important; +} + +.h-50 { + height: 50% !important; +} + +.h-75 { + height: 75% !important; +} + +.h-100 { + height: 100% !important; +} + +.h-auto { + height: auto !important; +} + +.mw-100 { + max-width: 100% !important; +} + +.mh-100 { + max-height: 100% !important; +} + +.min-vw-100 { + min-width: 100vw !important; +} + +.min-vh-100 { + min-height: 100vh !important; +} + +.vw-100 { + width: 100vw !important; +} + +.vh-100 { + height: 100vh !important; +} + +.m-0 { + margin: 0 !important; +} + +.mt-0, +.my-0 { + margin-top: 0 !important; +} + +.mr-0, +.mx-0 { + margin-right: 0 !important; +} + +.mb-0, +.my-0 { + margin-bottom: 0 !important; +} + +.ml-0, +.mx-0 { + margin-left: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.mt-1, +.my-1 { + margin-top: 0.25rem !important; +} + +.mr-1, +.mx-1 { + margin-right: 0.25rem !important; +} + +.mb-1, +.my-1 { + margin-bottom: 0.25rem !important; +} + +.ml-1, +.mx-1 { + margin-left: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.mt-2, +.my-2 { + margin-top: 0.5rem !important; +} + +.mr-2, +.mx-2 { + margin-right: 0.5rem !important; +} + +.mb-2, +.my-2 { + margin-bottom: 0.5rem !important; +} + +.ml-2, +.mx-2 { + margin-left: 0.5rem !important; +} + +.m-3 { + margin: 1rem !important; +} + +.mt-3, +.my-3 { + margin-top: 1rem !important; +} + +.mr-3, +.mx-3 { + margin-right: 1rem !important; +} + +.mb-3, +.my-3 { + margin-bottom: 1rem !important; +} + +.ml-3, +.mx-3 { + margin-left: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.mt-4, +.my-4 { + margin-top: 1.5rem !important; +} + +.mr-4, +.mx-4 { + margin-right: 1.5rem !important; +} + +.mb-4, +.my-4 { + margin-bottom: 1.5rem !important; +} + +.ml-4, +.mx-4 { + margin-left: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.mt-5, +.my-5 { + margin-top: 3rem !important; +} + +.mr-5, +.mx-5 { + margin-right: 3rem !important; +} + +.mb-5, +.my-5 { + margin-bottom: 3rem !important; +} + +.ml-5, +.mx-5 { + margin-left: 3rem !important; +} + +.p-0 { + padding: 0 !important; +} + +.pt-0, +.py-0 { + padding-top: 0 !important; +} + +.pr-0, +.px-0 { + padding-right: 0 !important; +} + +.pb-0, +.py-0 { + padding-bottom: 0 !important; +} + +.pl-0, +.px-0 { + padding-left: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.pt-1, +.py-1 { + padding-top: 0.25rem !important; +} + +.pr-1, +.px-1 { + padding-right: 0.25rem !important; +} + +.pb-1, +.py-1 { + padding-bottom: 0.25rem !important; +} + +.pl-1, +.px-1 { + padding-left: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.pt-2, +.py-2 { + padding-top: 0.5rem !important; +} + +.pr-2, +.px-2 { + padding-right: 0.5rem !important; +} + +.pb-2, +.py-2 { + padding-bottom: 0.5rem !important; +} + +.pl-2, +.px-2 { + padding-left: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.pt-3, +.py-3 { + padding-top: 1rem !important; +} + +.pr-3, +.px-3 { + padding-right: 1rem !important; +} + +.pb-3, +.py-3 { + padding-bottom: 1rem !important; +} + +.pl-3, +.px-3 { + padding-left: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.pt-4, +.py-4 { + padding-top: 1.5rem !important; +} + +.pr-4, +.px-4 { + padding-right: 1.5rem !important; +} + +.pb-4, +.py-4 { + padding-bottom: 1.5rem !important; +} + +.pl-4, +.px-4 { + padding-left: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.pt-5, +.py-5 { + padding-top: 3rem !important; +} + +.pr-5, +.px-5 { + padding-right: 3rem !important; +} + +.pb-5, +.py-5 { + padding-bottom: 3rem !important; +} + +.pl-5, +.px-5 { + padding-left: 3rem !important; +} + +.m-n1 { + margin: -0.25rem !important; +} + +.mt-n1, +.my-n1 { + margin-top: -0.25rem !important; +} + +.mr-n1, +.mx-n1 { + margin-right: -0.25rem !important; +} + +.mb-n1, +.my-n1 { + margin-bottom: -0.25rem !important; +} + +.ml-n1, +.mx-n1 { + margin-left: -0.25rem !important; +} + +.m-n2 { + margin: -0.5rem !important; +} + +.mt-n2, +.my-n2 { + margin-top: -0.5rem !important; +} + +.mr-n2, +.mx-n2 { + margin-right: -0.5rem !important; +} + +.mb-n2, +.my-n2 { + margin-bottom: -0.5rem !important; +} + +.ml-n2, +.mx-n2 { + margin-left: -0.5rem !important; +} + +.m-n3 { + margin: -1rem !important; +} + +.mt-n3, +.my-n3 { + margin-top: -1rem !important; +} + +.mr-n3, +.mx-n3 { + margin-right: -1rem !important; +} + +.mb-n3, +.my-n3 { + margin-bottom: -1rem !important; +} + +.ml-n3, +.mx-n3 { + margin-left: -1rem !important; +} + +.m-n4 { + margin: -1.5rem !important; +} + +.mt-n4, +.my-n4 { + margin-top: -1.5rem !important; +} + +.mr-n4, +.mx-n4 { + margin-right: -1.5rem !important; +} + +.mb-n4, +.my-n4 { + margin-bottom: -1.5rem !important; +} + +.ml-n4, +.mx-n4 { + margin-left: -1.5rem !important; +} + +.m-n5 { + margin: -3rem !important; +} + +.mt-n5, +.my-n5 { + margin-top: -3rem !important; +} + +.mr-n5, +.mx-n5 { + margin-right: -3rem !important; +} + +.mb-n5, +.my-n5 { + margin-bottom: -3rem !important; +} + +.ml-n5, +.mx-n5 { + margin-left: -3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mt-auto, +.my-auto { + margin-top: auto !important; +} + +.mr-auto, +.mx-auto { + margin-right: auto !important; +} + +.mb-auto, +.my-auto { + margin-bottom: auto !important; +} + +.ml-auto, +.mx-auto { + margin-left: auto !important; +} + +@media (min-width: 576px) { + .m-sm-0 { + margin: 0 !important; + } + .mt-sm-0, + .my-sm-0 { + margin-top: 0 !important; + } + .mr-sm-0, + .mx-sm-0 { + margin-right: 0 !important; + } + .mb-sm-0, + .my-sm-0 { + margin-bottom: 0 !important; + } + .ml-sm-0, + .mx-sm-0 { + margin-left: 0 !important; + } + .m-sm-1 { + margin: 0.25rem !important; + } + .mt-sm-1, + .my-sm-1 { + margin-top: 0.25rem !important; + } + .mr-sm-1, + .mx-sm-1 { + margin-right: 0.25rem !important; + } + .mb-sm-1, + .my-sm-1 { + margin-bottom: 0.25rem !important; + } + .ml-sm-1, + .mx-sm-1 { + margin-left: 0.25rem !important; + } + .m-sm-2 { + margin: 0.5rem !important; + } + .mt-sm-2, + .my-sm-2 { + margin-top: 0.5rem !important; + } + .mr-sm-2, + .mx-sm-2 { + margin-right: 0.5rem !important; + } + .mb-sm-2, + .my-sm-2 { + margin-bottom: 0.5rem !important; + } + .ml-sm-2, + .mx-sm-2 { + margin-left: 0.5rem !important; + } + .m-sm-3 { + margin: 1rem !important; + } + .mt-sm-3, + .my-sm-3 { + margin-top: 1rem !important; + } + .mr-sm-3, + .mx-sm-3 { + margin-right: 1rem !important; + } + .mb-sm-3, + .my-sm-3 { + margin-bottom: 1rem !important; + } + .ml-sm-3, + .mx-sm-3 { + margin-left: 1rem !important; + } + .m-sm-4 { + margin: 1.5rem !important; + } + .mt-sm-4, + .my-sm-4 { + margin-top: 1.5rem !important; + } + .mr-sm-4, + .mx-sm-4 { + margin-right: 1.5rem !important; + } + .mb-sm-4, + .my-sm-4 { + margin-bottom: 1.5rem !important; + } + .ml-sm-4, + .mx-sm-4 { + margin-left: 1.5rem !important; + } + .m-sm-5 { + margin: 3rem !important; + } + .mt-sm-5, + .my-sm-5 { + margin-top: 3rem !important; + } + .mr-sm-5, + .mx-sm-5 { + margin-right: 3rem !important; + } + .mb-sm-5, + .my-sm-5 { + margin-bottom: 3rem !important; + } + .ml-sm-5, + .mx-sm-5 { + margin-left: 3rem !important; + } + .p-sm-0 { + padding: 0 !important; + } + .pt-sm-0, + .py-sm-0 { + padding-top: 0 !important; + } + .pr-sm-0, + .px-sm-0 { + padding-right: 0 !important; + } + .pb-sm-0, + .py-sm-0 { + padding-bottom: 0 !important; + } + .pl-sm-0, + .px-sm-0 { + padding-left: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .pt-sm-1, + .py-sm-1 { + padding-top: 0.25rem !important; + } + .pr-sm-1, + .px-sm-1 { + padding-right: 0.25rem !important; + } + .pb-sm-1, + .py-sm-1 { + padding-bottom: 0.25rem !important; + } + .pl-sm-1, + .px-sm-1 { + padding-left: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .pt-sm-2, + .py-sm-2 { + padding-top: 0.5rem !important; + } + .pr-sm-2, + .px-sm-2 { + padding-right: 0.5rem !important; + } + .pb-sm-2, + .py-sm-2 { + padding-bottom: 0.5rem !important; + } + .pl-sm-2, + .px-sm-2 { + padding-left: 0.5rem !important; + } + .p-sm-3 { + padding: 1rem !important; + } + .pt-sm-3, + .py-sm-3 { + padding-top: 1rem !important; + } + .pr-sm-3, + .px-sm-3 { + padding-right: 1rem !important; + } + .pb-sm-3, + .py-sm-3 { + padding-bottom: 1rem !important; + } + .pl-sm-3, + .px-sm-3 { + padding-left: 1rem !important; + } + .p-sm-4 { + padding: 1.5rem !important; + } + .pt-sm-4, + .py-sm-4 { + padding-top: 1.5rem !important; + } + .pr-sm-4, + .px-sm-4 { + padding-right: 1.5rem !important; + } + .pb-sm-4, + .py-sm-4 { + padding-bottom: 1.5rem !important; + } + .pl-sm-4, + .px-sm-4 { + padding-left: 1.5rem !important; + } + .p-sm-5 { + padding: 3rem !important; + } + .pt-sm-5, + .py-sm-5 { + padding-top: 3rem !important; + } + .pr-sm-5, + .px-sm-5 { + padding-right: 3rem !important; + } + .pb-sm-5, + .py-sm-5 { + padding-bottom: 3rem !important; + } + .pl-sm-5, + .px-sm-5 { + padding-left: 3rem !important; + } + .m-sm-n1 { + margin: -0.25rem !important; + } + .mt-sm-n1, + .my-sm-n1 { + margin-top: -0.25rem !important; + } + .mr-sm-n1, + .mx-sm-n1 { + margin-right: -0.25rem !important; + } + .mb-sm-n1, + .my-sm-n1 { + margin-bottom: -0.25rem !important; + } + .ml-sm-n1, + .mx-sm-n1 { + margin-left: -0.25rem !important; + } + .m-sm-n2 { + margin: -0.5rem !important; + } + .mt-sm-n2, + .my-sm-n2 { + margin-top: -0.5rem !important; + } + .mr-sm-n2, + .mx-sm-n2 { + margin-right: -0.5rem !important; + } + .mb-sm-n2, + .my-sm-n2 { + margin-bottom: -0.5rem !important; + } + .ml-sm-n2, + .mx-sm-n2 { + margin-left: -0.5rem !important; + } + .m-sm-n3 { + margin: -1rem !important; + } + .mt-sm-n3, + .my-sm-n3 { + margin-top: -1rem !important; + } + .mr-sm-n3, + .mx-sm-n3 { + margin-right: -1rem !important; + } + .mb-sm-n3, + .my-sm-n3 { + margin-bottom: -1rem !important; + } + .ml-sm-n3, + .mx-sm-n3 { + margin-left: -1rem !important; + } + .m-sm-n4 { + margin: -1.5rem !important; + } + .mt-sm-n4, + .my-sm-n4 { + margin-top: -1.5rem !important; + } + .mr-sm-n4, + .mx-sm-n4 { + margin-right: -1.5rem !important; + } + .mb-sm-n4, + .my-sm-n4 { + margin-bottom: -1.5rem !important; + } + .ml-sm-n4, + .mx-sm-n4 { + margin-left: -1.5rem !important; + } + .m-sm-n5 { + margin: -3rem !important; + } + .mt-sm-n5, + .my-sm-n5 { + margin-top: -3rem !important; + } + .mr-sm-n5, + .mx-sm-n5 { + margin-right: -3rem !important; + } + .mb-sm-n5, + .my-sm-n5 { + margin-bottom: -3rem !important; + } + .ml-sm-n5, + .mx-sm-n5 { + margin-left: -3rem !important; + } + .m-sm-auto { + margin: auto !important; + } + .mt-sm-auto, + .my-sm-auto { + margin-top: auto !important; + } + .mr-sm-auto, + .mx-sm-auto { + margin-right: auto !important; + } + .mb-sm-auto, + .my-sm-auto { + margin-bottom: auto !important; + } + .ml-sm-auto, + .mx-sm-auto { + margin-left: auto !important; + } +} + +@media (min-width: 768px) { + .m-md-0 { + margin: 0 !important; + } + .mt-md-0, + .my-md-0 { + margin-top: 0 !important; + } + .mr-md-0, + .mx-md-0 { + margin-right: 0 !important; + } + .mb-md-0, + .my-md-0 { + margin-bottom: 0 !important; + } + .ml-md-0, + .mx-md-0 { + margin-left: 0 !important; + } + .m-md-1 { + margin: 0.25rem !important; + } + .mt-md-1, + .my-md-1 { + margin-top: 0.25rem !important; + } + .mr-md-1, + .mx-md-1 { + margin-right: 0.25rem !important; + } + .mb-md-1, + .my-md-1 { + margin-bottom: 0.25rem !important; + } + .ml-md-1, + .mx-md-1 { + margin-left: 0.25rem !important; + } + .m-md-2 { + margin: 0.5rem !important; + } + .mt-md-2, + .my-md-2 { + margin-top: 0.5rem !important; + } + .mr-md-2, + .mx-md-2 { + margin-right: 0.5rem !important; + } + .mb-md-2, + .my-md-2 { + margin-bottom: 0.5rem !important; + } + .ml-md-2, + .mx-md-2 { + margin-left: 0.5rem !important; + } + .m-md-3 { + margin: 1rem !important; + } + .mt-md-3, + .my-md-3 { + margin-top: 1rem !important; + } + .mr-md-3, + .mx-md-3 { + margin-right: 1rem !important; + } + .mb-md-3, + .my-md-3 { + margin-bottom: 1rem !important; + } + .ml-md-3, + .mx-md-3 { + margin-left: 1rem !important; + } + .m-md-4 { + margin: 1.5rem !important; + } + .mt-md-4, + .my-md-4 { + margin-top: 1.5rem !important; + } + .mr-md-4, + .mx-md-4 { + margin-right: 1.5rem !important; + } + .mb-md-4, + .my-md-4 { + margin-bottom: 1.5rem !important; + } + .ml-md-4, + .mx-md-4 { + margin-left: 1.5rem !important; + } + .m-md-5 { + margin: 3rem !important; + } + .mt-md-5, + .my-md-5 { + margin-top: 3rem !important; + } + .mr-md-5, + .mx-md-5 { + margin-right: 3rem !important; + } + .mb-md-5, + .my-md-5 { + margin-bottom: 3rem !important; + } + .ml-md-5, + .mx-md-5 { + margin-left: 3rem !important; + } + .p-md-0 { + padding: 0 !important; + } + .pt-md-0, + .py-md-0 { + padding-top: 0 !important; + } + .pr-md-0, + .px-md-0 { + padding-right: 0 !important; + } + .pb-md-0, + .py-md-0 { + padding-bottom: 0 !important; + } + .pl-md-0, + .px-md-0 { + padding-left: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .pt-md-1, + .py-md-1 { + padding-top: 0.25rem !important; + } + .pr-md-1, + .px-md-1 { + padding-right: 0.25rem !important; + } + .pb-md-1, + .py-md-1 { + padding-bottom: 0.25rem !important; + } + .pl-md-1, + .px-md-1 { + padding-left: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .pt-md-2, + .py-md-2 { + padding-top: 0.5rem !important; + } + .pr-md-2, + .px-md-2 { + padding-right: 0.5rem !important; + } + .pb-md-2, + .py-md-2 { + padding-bottom: 0.5rem !important; + } + .pl-md-2, + .px-md-2 { + padding-left: 0.5rem !important; + } + .p-md-3 { + padding: 1rem !important; + } + .pt-md-3, + .py-md-3 { + padding-top: 1rem !important; + } + .pr-md-3, + .px-md-3 { + padding-right: 1rem !important; + } + .pb-md-3, + .py-md-3 { + padding-bottom: 1rem !important; + } + .pl-md-3, + .px-md-3 { + padding-left: 1rem !important; + } + .p-md-4 { + padding: 1.5rem !important; + } + .pt-md-4, + .py-md-4 { + padding-top: 1.5rem !important; + } + .pr-md-4, + .px-md-4 { + padding-right: 1.5rem !important; + } + .pb-md-4, + .py-md-4 { + padding-bottom: 1.5rem !important; + } + .pl-md-4, + .px-md-4 { + padding-left: 1.5rem !important; + } + .p-md-5 { + padding: 3rem !important; + } + .pt-md-5, + .py-md-5 { + padding-top: 3rem !important; + } + .pr-md-5, + .px-md-5 { + padding-right: 3rem !important; + } + .pb-md-5, + .py-md-5 { + padding-bottom: 3rem !important; + } + .pl-md-5, + .px-md-5 { + padding-left: 3rem !important; + } + .m-md-n1 { + margin: -0.25rem !important; + } + .mt-md-n1, + .my-md-n1 { + margin-top: -0.25rem !important; + } + .mr-md-n1, + .mx-md-n1 { + margin-right: -0.25rem !important; + } + .mb-md-n1, + .my-md-n1 { + margin-bottom: -0.25rem !important; + } + .ml-md-n1, + .mx-md-n1 { + margin-left: -0.25rem !important; + } + .m-md-n2 { + margin: -0.5rem !important; + } + .mt-md-n2, + .my-md-n2 { + margin-top: -0.5rem !important; + } + .mr-md-n2, + .mx-md-n2 { + margin-right: -0.5rem !important; + } + .mb-md-n2, + .my-md-n2 { + margin-bottom: -0.5rem !important; + } + .ml-md-n2, + .mx-md-n2 { + margin-left: -0.5rem !important; + } + .m-md-n3 { + margin: -1rem !important; + } + .mt-md-n3, + .my-md-n3 { + margin-top: -1rem !important; + } + .mr-md-n3, + .mx-md-n3 { + margin-right: -1rem !important; + } + .mb-md-n3, + .my-md-n3 { + margin-bottom: -1rem !important; + } + .ml-md-n3, + .mx-md-n3 { + margin-left: -1rem !important; + } + .m-md-n4 { + margin: -1.5rem !important; + } + .mt-md-n4, + .my-md-n4 { + margin-top: -1.5rem !important; + } + .mr-md-n4, + .mx-md-n4 { + margin-right: -1.5rem !important; + } + .mb-md-n4, + .my-md-n4 { + margin-bottom: -1.5rem !important; + } + .ml-md-n4, + .mx-md-n4 { + margin-left: -1.5rem !important; + } + .m-md-n5 { + margin: -3rem !important; + } + .mt-md-n5, + .my-md-n5 { + margin-top: -3rem !important; + } + .mr-md-n5, + .mx-md-n5 { + margin-right: -3rem !important; + } + .mb-md-n5, + .my-md-n5 { + margin-bottom: -3rem !important; + } + .ml-md-n5, + .mx-md-n5 { + margin-left: -3rem !important; + } + .m-md-auto { + margin: auto !important; + } + .mt-md-auto, + .my-md-auto { + margin-top: auto !important; + } + .mr-md-auto, + .mx-md-auto { + margin-right: auto !important; + } + .mb-md-auto, + .my-md-auto { + margin-bottom: auto !important; + } + .ml-md-auto, + .mx-md-auto { + margin-left: auto !important; + } +} + +@media (min-width: 992px) { + .m-lg-0 { + margin: 0 !important; + } + .mt-lg-0, + .my-lg-0 { + margin-top: 0 !important; + } + .mr-lg-0, + .mx-lg-0 { + margin-right: 0 !important; + } + .mb-lg-0, + .my-lg-0 { + margin-bottom: 0 !important; + } + .ml-lg-0, + .mx-lg-0 { + margin-left: 0 !important; + } + .m-lg-1 { + margin: 0.25rem !important; + } + .mt-lg-1, + .my-lg-1 { + margin-top: 0.25rem !important; + } + .mr-lg-1, + .mx-lg-1 { + margin-right: 0.25rem !important; + } + .mb-lg-1, + .my-lg-1 { + margin-bottom: 0.25rem !important; + } + .ml-lg-1, + .mx-lg-1 { + margin-left: 0.25rem !important; + } + .m-lg-2 { + margin: 0.5rem !important; + } + .mt-lg-2, + .my-lg-2 { + margin-top: 0.5rem !important; + } + .mr-lg-2, + .mx-lg-2 { + margin-right: 0.5rem !important; + } + .mb-lg-2, + .my-lg-2 { + margin-bottom: 0.5rem !important; + } + .ml-lg-2, + .mx-lg-2 { + margin-left: 0.5rem !important; + } + .m-lg-3 { + margin: 1rem !important; + } + .mt-lg-3, + .my-lg-3 { + margin-top: 1rem !important; + } + .mr-lg-3, + .mx-lg-3 { + margin-right: 1rem !important; + } + .mb-lg-3, + .my-lg-3 { + margin-bottom: 1rem !important; + } + .ml-lg-3, + .mx-lg-3 { + margin-left: 1rem !important; + } + .m-lg-4 { + margin: 1.5rem !important; + } + .mt-lg-4, + .my-lg-4 { + margin-top: 1.5rem !important; + } + .mr-lg-4, + .mx-lg-4 { + margin-right: 1.5rem !important; + } + .mb-lg-4, + .my-lg-4 { + margin-bottom: 1.5rem !important; + } + .ml-lg-4, + .mx-lg-4 { + margin-left: 1.5rem !important; + } + .m-lg-5 { + margin: 3rem !important; + } + .mt-lg-5, + .my-lg-5 { + margin-top: 3rem !important; + } + .mr-lg-5, + .mx-lg-5 { + margin-right: 3rem !important; + } + .mb-lg-5, + .my-lg-5 { + margin-bottom: 3rem !important; + } + .ml-lg-5, + .mx-lg-5 { + margin-left: 3rem !important; + } + .p-lg-0 { + padding: 0 !important; + } + .pt-lg-0, + .py-lg-0 { + padding-top: 0 !important; + } + .pr-lg-0, + .px-lg-0 { + padding-right: 0 !important; + } + .pb-lg-0, + .py-lg-0 { + padding-bottom: 0 !important; + } + .pl-lg-0, + .px-lg-0 { + padding-left: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .pt-lg-1, + .py-lg-1 { + padding-top: 0.25rem !important; + } + .pr-lg-1, + .px-lg-1 { + padding-right: 0.25rem !important; + } + .pb-lg-1, + .py-lg-1 { + padding-bottom: 0.25rem !important; + } + .pl-lg-1, + .px-lg-1 { + padding-left: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .pt-lg-2, + .py-lg-2 { + padding-top: 0.5rem !important; + } + .pr-lg-2, + .px-lg-2 { + padding-right: 0.5rem !important; + } + .pb-lg-2, + .py-lg-2 { + padding-bottom: 0.5rem !important; + } + .pl-lg-2, + .px-lg-2 { + padding-left: 0.5rem !important; + } + .p-lg-3 { + padding: 1rem !important; + } + .pt-lg-3, + .py-lg-3 { + padding-top: 1rem !important; + } + .pr-lg-3, + .px-lg-3 { + padding-right: 1rem !important; + } + .pb-lg-3, + .py-lg-3 { + padding-bottom: 1rem !important; + } + .pl-lg-3, + .px-lg-3 { + padding-left: 1rem !important; + } + .p-lg-4 { + padding: 1.5rem !important; + } + .pt-lg-4, + .py-lg-4 { + padding-top: 1.5rem !important; + } + .pr-lg-4, + .px-lg-4 { + padding-right: 1.5rem !important; + } + .pb-lg-4, + .py-lg-4 { + padding-bottom: 1.5rem !important; + } + .pl-lg-4, + .px-lg-4 { + padding-left: 1.5rem !important; + } + .p-lg-5 { + padding: 3rem !important; + } + .pt-lg-5, + .py-lg-5 { + padding-top: 3rem !important; + } + .pr-lg-5, + .px-lg-5 { + padding-right: 3rem !important; + } + .pb-lg-5, + .py-lg-5 { + padding-bottom: 3rem !important; + } + .pl-lg-5, + .px-lg-5 { + padding-left: 3rem !important; + } + .m-lg-n1 { + margin: -0.25rem !important; + } + .mt-lg-n1, + .my-lg-n1 { + margin-top: -0.25rem !important; + } + .mr-lg-n1, + .mx-lg-n1 { + margin-right: -0.25rem !important; + } + .mb-lg-n1, + .my-lg-n1 { + margin-bottom: -0.25rem !important; + } + .ml-lg-n1, + .mx-lg-n1 { + margin-left: -0.25rem !important; + } + .m-lg-n2 { + margin: -0.5rem !important; + } + .mt-lg-n2, + .my-lg-n2 { + margin-top: -0.5rem !important; + } + .mr-lg-n2, + .mx-lg-n2 { + margin-right: -0.5rem !important; + } + .mb-lg-n2, + .my-lg-n2 { + margin-bottom: -0.5rem !important; + } + .ml-lg-n2, + .mx-lg-n2 { + margin-left: -0.5rem !important; + } + .m-lg-n3 { + margin: -1rem !important; + } + .mt-lg-n3, + .my-lg-n3 { + margin-top: -1rem !important; + } + .mr-lg-n3, + .mx-lg-n3 { + margin-right: -1rem !important; + } + .mb-lg-n3, + .my-lg-n3 { + margin-bottom: -1rem !important; + } + .ml-lg-n3, + .mx-lg-n3 { + margin-left: -1rem !important; + } + .m-lg-n4 { + margin: -1.5rem !important; + } + .mt-lg-n4, + .my-lg-n4 { + margin-top: -1.5rem !important; + } + .mr-lg-n4, + .mx-lg-n4 { + margin-right: -1.5rem !important; + } + .mb-lg-n4, + .my-lg-n4 { + margin-bottom: -1.5rem !important; + } + .ml-lg-n4, + .mx-lg-n4 { + margin-left: -1.5rem !important; + } + .m-lg-n5 { + margin: -3rem !important; + } + .mt-lg-n5, + .my-lg-n5 { + margin-top: -3rem !important; + } + .mr-lg-n5, + .mx-lg-n5 { + margin-right: -3rem !important; + } + .mb-lg-n5, + .my-lg-n5 { + margin-bottom: -3rem !important; + } + .ml-lg-n5, + .mx-lg-n5 { + margin-left: -3rem !important; + } + .m-lg-auto { + margin: auto !important; + } + .mt-lg-auto, + .my-lg-auto { + margin-top: auto !important; + } + .mr-lg-auto, + .mx-lg-auto { + margin-right: auto !important; + } + .mb-lg-auto, + .my-lg-auto { + margin-bottom: auto !important; + } + .ml-lg-auto, + .mx-lg-auto { + margin-left: auto !important; + } +} + +@media (min-width: 1200px) { + .m-xl-0 { + margin: 0 !important; + } + .mt-xl-0, + .my-xl-0 { + margin-top: 0 !important; + } + .mr-xl-0, + .mx-xl-0 { + margin-right: 0 !important; + } + .mb-xl-0, + .my-xl-0 { + margin-bottom: 0 !important; + } + .ml-xl-0, + .mx-xl-0 { + margin-left: 0 !important; + } + .m-xl-1 { + margin: 0.25rem !important; + } + .mt-xl-1, + .my-xl-1 { + margin-top: 0.25rem !important; + } + .mr-xl-1, + .mx-xl-1 { + margin-right: 0.25rem !important; + } + .mb-xl-1, + .my-xl-1 { + margin-bottom: 0.25rem !important; + } + .ml-xl-1, + .mx-xl-1 { + margin-left: 0.25rem !important; + } + .m-xl-2 { + margin: 0.5rem !important; + } + .mt-xl-2, + .my-xl-2 { + margin-top: 0.5rem !important; + } + .mr-xl-2, + .mx-xl-2 { + margin-right: 0.5rem !important; + } + .mb-xl-2, + .my-xl-2 { + margin-bottom: 0.5rem !important; + } + .ml-xl-2, + .mx-xl-2 { + margin-left: 0.5rem !important; + } + .m-xl-3 { + margin: 1rem !important; + } + .mt-xl-3, + .my-xl-3 { + margin-top: 1rem !important; + } + .mr-xl-3, + .mx-xl-3 { + margin-right: 1rem !important; + } + .mb-xl-3, + .my-xl-3 { + margin-bottom: 1rem !important; + } + .ml-xl-3, + .mx-xl-3 { + margin-left: 1rem !important; + } + .m-xl-4 { + margin: 1.5rem !important; + } + .mt-xl-4, + .my-xl-4 { + margin-top: 1.5rem !important; + } + .mr-xl-4, + .mx-xl-4 { + margin-right: 1.5rem !important; + } + .mb-xl-4, + .my-xl-4 { + margin-bottom: 1.5rem !important; + } + .ml-xl-4, + .mx-xl-4 { + margin-left: 1.5rem !important; + } + .m-xl-5 { + margin: 3rem !important; + } + .mt-xl-5, + .my-xl-5 { + margin-top: 3rem !important; + } + .mr-xl-5, + .mx-xl-5 { + margin-right: 3rem !important; + } + .mb-xl-5, + .my-xl-5 { + margin-bottom: 3rem !important; + } + .ml-xl-5, + .mx-xl-5 { + margin-left: 3rem !important; + } + .p-xl-0 { + padding: 0 !important; + } + .pt-xl-0, + .py-xl-0 { + padding-top: 0 !important; + } + .pr-xl-0, + .px-xl-0 { + padding-right: 0 !important; + } + .pb-xl-0, + .py-xl-0 { + padding-bottom: 0 !important; + } + .pl-xl-0, + .px-xl-0 { + padding-left: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .pt-xl-1, + .py-xl-1 { + padding-top: 0.25rem !important; + } + .pr-xl-1, + .px-xl-1 { + padding-right: 0.25rem !important; + } + .pb-xl-1, + .py-xl-1 { + padding-bottom: 0.25rem !important; + } + .pl-xl-1, + .px-xl-1 { + padding-left: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .pt-xl-2, + .py-xl-2 { + padding-top: 0.5rem !important; + } + .pr-xl-2, + .px-xl-2 { + padding-right: 0.5rem !important; + } + .pb-xl-2, + .py-xl-2 { + padding-bottom: 0.5rem !important; + } + .pl-xl-2, + .px-xl-2 { + padding-left: 0.5rem !important; + } + .p-xl-3 { + padding: 1rem !important; + } + .pt-xl-3, + .py-xl-3 { + padding-top: 1rem !important; + } + .pr-xl-3, + .px-xl-3 { + padding-right: 1rem !important; + } + .pb-xl-3, + .py-xl-3 { + padding-bottom: 1rem !important; + } + .pl-xl-3, + .px-xl-3 { + padding-left: 1rem !important; + } + .p-xl-4 { + padding: 1.5rem !important; + } + .pt-xl-4, + .py-xl-4 { + padding-top: 1.5rem !important; + } + .pr-xl-4, + .px-xl-4 { + padding-right: 1.5rem !important; + } + .pb-xl-4, + .py-xl-4 { + padding-bottom: 1.5rem !important; + } + .pl-xl-4, + .px-xl-4 { + padding-left: 1.5rem !important; + } + .p-xl-5 { + padding: 3rem !important; + } + .pt-xl-5, + .py-xl-5 { + padding-top: 3rem !important; + } + .pr-xl-5, + .px-xl-5 { + padding-right: 3rem !important; + } + .pb-xl-5, + .py-xl-5 { + padding-bottom: 3rem !important; + } + .pl-xl-5, + .px-xl-5 { + padding-left: 3rem !important; + } + .m-xl-n1 { + margin: -0.25rem !important; + } + .mt-xl-n1, + .my-xl-n1 { + margin-top: -0.25rem !important; + } + .mr-xl-n1, + .mx-xl-n1 { + margin-right: -0.25rem !important; + } + .mb-xl-n1, + .my-xl-n1 { + margin-bottom: -0.25rem !important; + } + .ml-xl-n1, + .mx-xl-n1 { + margin-left: -0.25rem !important; + } + .m-xl-n2 { + margin: -0.5rem !important; + } + .mt-xl-n2, + .my-xl-n2 { + margin-top: -0.5rem !important; + } + .mr-xl-n2, + .mx-xl-n2 { + margin-right: -0.5rem !important; + } + .mb-xl-n2, + .my-xl-n2 { + margin-bottom: -0.5rem !important; + } + .ml-xl-n2, + .mx-xl-n2 { + margin-left: -0.5rem !important; + } + .m-xl-n3 { + margin: -1rem !important; + } + .mt-xl-n3, + .my-xl-n3 { + margin-top: -1rem !important; + } + .mr-xl-n3, + .mx-xl-n3 { + margin-right: -1rem !important; + } + .mb-xl-n3, + .my-xl-n3 { + margin-bottom: -1rem !important; + } + .ml-xl-n3, + .mx-xl-n3 { + margin-left: -1rem !important; + } + .m-xl-n4 { + margin: -1.5rem !important; + } + .mt-xl-n4, + .my-xl-n4 { + margin-top: -1.5rem !important; + } + .mr-xl-n4, + .mx-xl-n4 { + margin-right: -1.5rem !important; + } + .mb-xl-n4, + .my-xl-n4 { + margin-bottom: -1.5rem !important; + } + .ml-xl-n4, + .mx-xl-n4 { + margin-left: -1.5rem !important; + } + .m-xl-n5 { + margin: -3rem !important; + } + .mt-xl-n5, + .my-xl-n5 { + margin-top: -3rem !important; + } + .mr-xl-n5, + .mx-xl-n5 { + margin-right: -3rem !important; + } + .mb-xl-n5, + .my-xl-n5 { + margin-bottom: -3rem !important; + } + .ml-xl-n5, + .mx-xl-n5 { + margin-left: -3rem !important; + } + .m-xl-auto { + margin: auto !important; + } + .mt-xl-auto, + .my-xl-auto { + margin-top: auto !important; + } + .mr-xl-auto, + .mx-xl-auto { + margin-right: auto !important; + } + .mb-xl-auto, + .my-xl-auto { + margin-bottom: auto !important; + } + .ml-xl-auto, + .mx-xl-auto { + margin-left: auto !important; + } +} + +.stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + pointer-events: auto; + content: ""; + background-color: rgba(0, 0, 0, 0); +} + +.text-monospace { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important; +} + +.text-justify { + text-align: justify !important; +} + +.text-wrap { + white-space: normal !important; +} + +.text-nowrap { + white-space: nowrap !important; +} + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.text-left { + text-align: left !important; +} + +.text-right { + text-align: right !important; +} + +.text-center { + text-align: center !important; +} + +@media (min-width: 576px) { + .text-sm-left { + text-align: left !important; + } + .text-sm-right { + text-align: right !important; + } + .text-sm-center { + text-align: center !important; + } +} + +@media (min-width: 768px) { + .text-md-left { + text-align: left !important; + } + .text-md-right { + text-align: right !important; + } + .text-md-center { + text-align: center !important; + } +} + +@media (min-width: 992px) { + .text-lg-left { + text-align: left !important; + } + .text-lg-right { + text-align: right !important; + } + .text-lg-center { + text-align: center !important; + } +} + +@media (min-width: 1200px) { + .text-xl-left { + text-align: left !important; + } + .text-xl-right { + text-align: right !important; + } + .text-xl-center { + text-align: center !important; + } +} + +.text-lowercase { + text-transform: lowercase !important; +} + +.text-uppercase { + text-transform: uppercase !important; +} + +.text-capitalize { + text-transform: capitalize !important; +} + +.font-weight-light { + font-weight: 300 !important; +} + +.font-weight-lighter { + font-weight: lighter !important; +} + +.font-weight-normal { + font-weight: 400 !important; +} + +.font-weight-bold { + font-weight: 700 !important; +} + +.font-weight-bolder { + font-weight: bolder !important; +} + +.font-italic { + font-style: italic !important; +} + +.text-white { + color: #fff !important; +} + +.text-primary { + color: #007bff !important; +} + +a.text-primary:hover, a.text-primary:focus { + color: #0056b3 !important; +} + +.text-secondary { + color: #6c757d !important; +} + +a.text-secondary:hover, a.text-secondary:focus { + color: #494f54 !important; +} + +.text-success { + color: #28a745 !important; +} + +a.text-success:hover, a.text-success:focus { + color: #19692c !important; +} + +.text-info { + color: #17a2b8 !important; +} + +a.text-info:hover, a.text-info:focus { + color: #0f6674 !important; +} + +.text-warning { + color: #ffc107 !important; +} + +a.text-warning:hover, a.text-warning:focus { + color: #ba8b00 !important; +} + +.text-danger { + color: #dc3545 !important; +} + +a.text-danger:hover, a.text-danger:focus { + color: #a71d2a !important; +} + +.text-light { + color: #f8f9fa !important; +} + +a.text-light:hover, a.text-light:focus { + color: #cbd3da !important; +} + +.text-dark { + color: #343a40 !important; +} + +a.text-dark:hover, a.text-dark:focus { + color: #121416 !important; +} + +.text-body { + color: #212529 !important; +} + +.text-muted { + color: #6c757d !important; +} + +.text-black-50 { + color: rgba(0, 0, 0, 0.5) !important; +} + +.text-white-50 { + color: rgba(255, 255, 255, 0.5) !important; +} + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.text-decoration-none { + text-decoration: none !important; +} + +.text-break { + word-break: break-word !important; + word-wrap: break-word !important; +} + +.text-reset { + color: inherit !important; +} + +.visible { + visibility: visible !important; +} + +.invisible { + visibility: hidden !important; +} + +@media print { + *, + *::before, + *::after { + text-shadow: none !important; + box-shadow: none !important; + } + a:not(.btn) { + text-decoration: underline; + } + abbr[title]::after { + content: " (" attr(title) ")"; + } + pre { + white-space: pre-wrap !important; + } + pre, + blockquote { + border: 1px solid #adb5bd; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + @page { + size: a3; + } + body { + min-width: 992px !important; + } + .container { + min-width: 992px !important; + } + .navbar { + display: none; + } + .badge { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table td, + .table th { + background-color: #fff !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #dee2e6 !important; + } + .table-dark { + color: inherit; + } + .table-dark th, + .table-dark td, + .table-dark thead th, + .table-dark tbody + tbody { + border-color: #dee2e6; + } + .table .thead-dark th { + color: inherit; + border-color: #dee2e6; + } +} + +.rtl, +[dir="rtl"] { + text-align: right; + direction: rtl; +} + +.rtl .nav, +[dir="rtl"] .nav { + padding-right: 0; +} + +.rtl .navbar-nav .nav-item, +[dir="rtl"] .navbar-nav .nav-item { + float: right; +} + +.rtl .navbar-nav .nav-item + .nav-item, +[dir="rtl"] .navbar-nav .nav-item + .nav-item { + margin-right: inherit; + margin-left: 1rem; +} + +.rtl th, +[dir="rtl"] th { + text-align: right; +} + +.rtl .alert-dismissible, +[dir="rtl"] .alert-dismissible { + padding-right: 1.25rem; + padding-left: 4rem; +} + +.rtl .dropdown-menu, +[dir="rtl"] .dropdown-menu { + right: 0; + left: inherit; + text-align: right; +} + +.rtl .checkbox label, +[dir="rtl"] .checkbox label { + padding-right: 1.25rem; + padding-left: inherit; +} + +.rtl .btn-group > .btn:not(:first-child), +.rtl .btn-group > .btn-group:not(:first-child), +[dir="rtl"] .btn-group > .btn:not(:first-child), +[dir="rtl"] .btn-group > .btn-group:not(:first-child) { + margin-left: initial; + margin-right: -1px; +} + +.rtl .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle), +[dir="rtl"] .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-radius: 0 0.25rem 0.25rem 0; +} + +.rtl .btn-group > .btn:last-child:not(:first-child), +.rtl .btn-group > .dropdown-toggle:not(:first-child), +[dir="rtl"] .btn-group > .btn:last-child:not(:first-child), +[dir="rtl"] .btn-group > .dropdown-toggle:not(:first-child) { + border-radius: 0.25rem 0 0 0.25rem; +} + +.rtl .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child, +[dir="rtl"] .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-radius: 0.25rem 0 0 0.25rem; +} + +.rtl .custom-control, +[dir="rtl"] .custom-control { + padding-right: 1.5rem; + padding-left: inherit; + margin-right: inherit; + margin-left: 1rem; +} + +.rtl .custom-control-indicator, +[dir="rtl"] .custom-control-indicator { + right: 0; + left: inherit; +} + +.rtl .custom-file-label::after, +[dir="rtl"] .custom-file-label::after { + right: initial; + left: -1px; + border-radius: .25rem 0 0 .25rem; +} + +.rtl .custom-control-label::after, +.rtl .custom-control-label::before, +[dir="rtl"] .custom-control-label::after, +[dir="rtl"] .custom-control-label::before { + right: -1.5rem; + left: inherit; +} + +.rtl .custom-select, +[dir="rtl"] .custom-select { + padding: 0.375rem 0.75rem 0.375rem 1.75rem; + background: #fff url("data:image/svg+xml,") no-repeat left 0.75rem center; + background-size: 8px 10px; +} + +.rtl .custom-switch, +[dir="rtl"] .custom-switch { + padding-right: 2.25rem; + padding-left: inherit; +} + +.rtl .custom-switch .custom-control-label::before, +[dir="rtl"] .custom-switch .custom-control-label::before { + right: -2.25rem; +} + +.rtl .custom-switch .custom-control-label::after, +[dir="rtl"] .custom-switch .custom-control-label::after { + right: calc(-2.25rem + 2px); +} + +.rtl .custom-switch .custom-control-input:checked ~ .custom-control-label::after, +[dir="rtl"] .custom-switch .custom-control-input:checked ~ .custom-control-label::after { + transform: translateX(-0.75rem); +} + +.rtl .input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.rtl .input-group > .input-group-append:last-child > .input-group-text:not(:last-child), +.rtl .input-group > .input-group-append:not(:last-child) > .btn, +.rtl .input-group > .input-group-append:not(:last-child) > .input-group-text, +.rtl .input-group > .input-group-prepend > .btn, +.rtl .input-group > .input-group-prepend > .input-group-text, +[dir="rtl"] .input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), +[dir="rtl"] .input-group > .input-group-append:last-child > .input-group-text:not(:last-child), +[dir="rtl"] .input-group > .input-group-append:not(:last-child) > .btn, +[dir="rtl"] .input-group > .input-group-append:not(:last-child) > .input-group-text, +[dir="rtl"] .input-group > .input-group-prepend > .btn, +[dir="rtl"] .input-group > .input-group-prepend > .input-group-text { + border-radius: 0 0.25rem 0.25rem 0; +} + +.rtl .input-group > .input-group-append > .btn, +.rtl .input-group > .input-group-append > .input-group-text, +.rtl .input-group > .input-group-prepend:first-child > .btn:not(:first-child), +.rtl .input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child), +.rtl .input-group > .input-group-prepend:not(:first-child) > .btn, +.rtl .input-group > .input-group-prepend:not(:first-child) > .input-group-text, +[dir="rtl"] .input-group > .input-group-append > .btn, +[dir="rtl"] .input-group > .input-group-append > .input-group-text, +[dir="rtl"] .input-group > .input-group-prepend:first-child > .btn:not(:first-child), +[dir="rtl"] .input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child), +[dir="rtl"] .input-group > .input-group-prepend:not(:first-child) > .btn, +[dir="rtl"] .input-group > .input-group-prepend:not(:first-child) > .input-group-text { + border-radius: 0.25rem 0 0 0.25rem; +} + +.rtl .input-group > .custom-select:not(:first-child), +.rtl .input-group > .form-control:not(:first-child), +[dir="rtl"] .input-group > .custom-select:not(:first-child), +[dir="rtl"] .input-group > .form-control:not(:first-child) { + border-radius: 0.25rem 0 0 0.25rem; +} + +.rtl .input-group > .custom-select:not(:last-child), +.rtl .input-group > .form-control:not(:last-child), +[dir="rtl"] .input-group > .custom-select:not(:last-child), +[dir="rtl"] .input-group > .form-control:not(:last-child) { + border-radius: 0 0.25rem 0.25rem 0; +} + +.rtl .input-group > .custom-select:not(:last-child):not(:first-child), +.rtl .input-group > .form-control:not(:last-child):not(:first-child), +[dir="rtl"] .input-group > .custom-select:not(:last-child):not(:first-child), +[dir="rtl"] .input-group > .form-control:not(:last-child):not(:first-child) { + border-radius: 0; +} + +.rtl .radio input, +.rtl .radio-inline, +.rtl .checkbox input, +.rtl .checkbox-inline input, +[dir="rtl"] .radio input, +[dir="rtl"] .radio-inline, +[dir="rtl"] .checkbox input, +[dir="rtl"] .checkbox-inline input { + margin-right: -1.25rem; + margin-left: inherit; +} + +.rtl .breadcrumb-item + .breadcrumb-item, +[dir="rtl"] .breadcrumb-item + .breadcrumb-item { + padding-right: 0.5rem; + padding-left: 0; + color: #6c757d; + content: "/"; +} + +.rtl .breadcrumb-item + .breadcrumb-item::before, +[dir="rtl"] .breadcrumb-item + .breadcrumb-item::before { + padding-right: 0; + padding-left: 0.5rem; +} + +.rtl .list-group, +[dir="rtl"] .list-group { + padding-right: 0; + padding-left: 40px; +} + +.rtl .close, +[dir="rtl"] .close { + float: left; +} + +.rtl .modal-header .close, +[dir="rtl"] .modal-header .close { + margin: -15px auto -15px -15px; +} + +.rtl .modal-footer > :not(:first-child), +[dir="rtl"] .modal-footer > :not(:first-child) { + margin-right: .25rem; +} + +.rtl .modal-footer > :not(:last-child), +[dir="rtl"] .modal-footer > :not(:last-child) { + margin-left: .25rem; +} + +.rtl .modal-footer > :first-child, +[dir="rtl"] .modal-footer > :first-child { + margin-right: 0; +} + +.rtl .modal-footer > :last-child, +[dir="rtl"] .modal-footer > :last-child { + margin-left: 0; +} + +.rtl .alert-dismissible .close, +[dir="rtl"] .alert-dismissible .close { + right: inherit; + left: 0; +} + +.rtl .dropdown-toggle::after, +[dir="rtl"] .dropdown-toggle::after { + margin-right: .255em; + margin-left: 0; +} + +.rtl .form-check-input, +[dir="rtl"] .form-check-input { + margin-right: -1.25rem; + margin-left: inherit; +} + +.rtl .form-check-label, +[dir="rtl"] .form-check-label { + padding-right: 1.25rem; + padding-left: inherit; +} + +.rtl .pagination, +.rtl .list-unstyled, +.rtl .list-inline, +[dir="rtl"] .pagination, +[dir="rtl"] .list-unstyled, +[dir="rtl"] .list-inline { + padding-right: 0; + padding-left: inherit; +} + +.rtl .pagination .page-item:first-child .page-link, +[dir="rtl"] .pagination .page-item:first-child .page-link { + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.rtl .pagination .page-item:last-child .page-link, +[dir="rtl"] .pagination .page-item:last-child .page-link { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.rtl .offset-1, +[dir="rtl"] .offset-1 { + margin-right: 8.333333%; + margin-left: 0; +} + +.rtl .offset-2, +[dir="rtl"] .offset-2 { + margin-right: 16.666667%; + margin-left: 0; +} + +.rtl .offset-3, +[dir="rtl"] .offset-3 { + margin-right: 25%; + margin-left: 0; +} + +.rtl .offset-4, +[dir="rtl"] .offset-4 { + margin-right: 33.333333%; + margin-left: 0; +} + +.rtl .offset-5, +[dir="rtl"] .offset-5 { + margin-right: 41.666667%; + margin-left: 0; +} + +.rtl .offset-6, +[dir="rtl"] .offset-6 { + margin-right: 50%; + margin-left: 0; +} + +.rtl .offset-7, +[dir="rtl"] .offset-7 { + margin-right: 58.333333%; + margin-left: 0; +} + +.rtl .offset-8, +[dir="rtl"] .offset-8 { + margin-right: 66.666667%; + margin-left: 0; +} + +.rtl .offset-9, +[dir="rtl"] .offset-9 { + margin-right: 75%; + margin-left: 0; +} + +.rtl .offset-10, +[dir="rtl"] .offset-10 { + margin-right: 83.333333%; + margin-left: 0; +} + +.rtl .offset-11, +[dir="rtl"] .offset-11 { + margin-right: 91.666667%; + margin-left: 0; +} + +@media (min-width: 576px) { + .rtl .offset-sm-0, + [dir="rtl"] .offset-sm-0 { + margin-right: 0; + margin-left: 0; + } + .rtl .offset-sm-1, + [dir="rtl"] .offset-sm-1 { + margin-right: 8.333333%; + margin-left: 0; + } + .rtl .offset-sm-2, + [dir="rtl"] .offset-sm-2 { + margin-right: 16.666667%; + margin-left: 0; + } + .rtl .offset-sm-3, + [dir="rtl"] .offset-sm-3 { + margin-right: 25%; + margin-left: 0; + } + .rtl .offset-sm-4, + [dir="rtl"] .offset-sm-4 { + margin-right: 33.333333%; + margin-left: 0; + } + .rtl .offset-sm-5, + [dir="rtl"] .offset-sm-5 { + margin-right: 41.666667%; + margin-left: 0; + } + .rtl .offset-sm-6, + [dir="rtl"] .offset-sm-6 { + margin-right: 50%; + margin-left: 0; + } + .rtl .offset-sm-7, + [dir="rtl"] .offset-sm-7 { + margin-right: 58.333333%; + margin-left: 0; + } + .rtl .offset-sm-8, + [dir="rtl"] .offset-sm-8 { + margin-right: 66.666667%; + margin-left: 0; + } + .rtl .offset-sm-9, + [dir="rtl"] .offset-sm-9 { + margin-right: 75%; + margin-left: 0; + } + .rtl .offset-sm-10, + [dir="rtl"] .offset-sm-10 { + margin-right: 83.333333%; + margin-left: 0; + } + .rtl .offset-sm-11, + [dir="rtl"] .offset-sm-11 { + margin-right: 91.666667%; + margin-left: 0; + } +} + +@media (min-width: 768px) { + .rtl .offset-md-0, + [dir="rtl"] .offset-md-0 { + margin-right: 0; + margin-left: 0; + } + .rtl .offset-md-1, + [dir="rtl"] .offset-md-1 { + margin-right: 8.333333%; + margin-left: 0; + } + .rtl .offset-md-2, + [dir="rtl"] .offset-md-2 { + margin-right: 16.666667%; + margin-left: 0; + } + .rtl .offset-md-3, + [dir="rtl"] .offset-md-3 { + margin-right: 25%; + margin-left: 0; + } + .rtl .offset-md-4, + [dir="rtl"] .offset-md-4 { + margin-right: 33.333333%; + margin-left: 0; + } + .rtl .offset-md-5, + [dir="rtl"] .offset-md-5 { + margin-right: 41.666667%; + margin-left: 0; + } + .rtl .offset-md-6, + [dir="rtl"] .offset-md-6 { + margin-right: 50%; + margin-left: 0; + } + .rtl .offset-md-7, + [dir="rtl"] .offset-md-7 { + margin-right: 58.333333%; + margin-left: 0; + } + .rtl .offset-md-8, + [dir="rtl"] .offset-md-8 { + margin-right: 66.666667%; + margin-left: 0; + } + .rtl .offset-md-9, + [dir="rtl"] .offset-md-9 { + margin-right: 75%; + margin-left: 0; + } + .rtl .offset-md-10, + [dir="rtl"] .offset-md-10 { + margin-right: 83.333333%; + margin-left: 0; + } + .rtl .offset-md-11, + [dir="rtl"] .offset-md-11 { + margin-right: 91.666667%; + margin-left: 0; + } +} + +@media (min-width: 992px) { + .rtl .offset-lg-0, + [dir="rtl"] .offset-lg-0 { + margin-right: 0; + margin-left: 0; + } + .rtl .offset-lg-1, + [dir="rtl"] .offset-lg-1 { + margin-right: 8.333333%; + margin-left: 0; + } + .rtl .offset-lg-2, + [dir="rtl"] .offset-lg-2 { + margin-right: 16.666667%; + margin-left: 0; + } + .rtl .offset-lg-3, + [dir="rtl"] .offset-lg-3 { + margin-right: 25%; + margin-left: 0; + } + .rtl .offset-lg-4, + [dir="rtl"] .offset-lg-4 { + margin-right: 33.333333%; + margin-left: 0; + } + .rtl .offset-lg-5, + [dir="rtl"] .offset-lg-5 { + margin-right: 41.666667%; + margin-left: 0; + } + .rtl .offset-lg-6, + [dir="rtl"] .offset-lg-6 { + margin-right: 50%; + margin-left: 0; + } + .rtl .offset-lg-7, + [dir="rtl"] .offset-lg-7 { + margin-right: 58.333333%; + margin-left: 0; + } + .rtl .offset-lg-8, + [dir="rtl"] .offset-lg-8 { + margin-right: 66.666667%; + margin-left: 0; + } + .rtl .offset-lg-9, + [dir="rtl"] .offset-lg-9 { + margin-right: 75%; + margin-left: 0; + } + .rtl .offset-lg-10, + [dir="rtl"] .offset-lg-10 { + margin-right: 83.333333%; + margin-left: 0; + } + .rtl .offset-lg-11, + [dir="rtl"] .offset-lg-11 { + margin-right: 91.666667%; + margin-left: 0; + } +} + +@media (min-width: 1200px) { + .rtl .offset-xl-0, + [dir="rtl"] .offset-xl-0 { + margin-right: 0; + margin-left: 0; + } + .rtl .offset-xl-1, + [dir="rtl"] .offset-xl-1 { + margin-right: 8.333333%; + margin-left: 0; + } + .rtl .offset-xl-2, + [dir="rtl"] .offset-xl-2 { + margin-right: 16.666667%; + margin-left: 0; + } + .rtl .offset-xl-3, + [dir="rtl"] .offset-xl-3 { + margin-right: 25%; + margin-left: 0; + } + .rtl .offset-xl-4, + [dir="rtl"] .offset-xl-4 { + margin-right: 33.333333%; + margin-left: 0; + } + .rtl .offset-xl-5, + [dir="rtl"] .offset-xl-5 { + margin-right: 41.666667%; + margin-left: 0; + } + .rtl .offset-xl-6, + [dir="rtl"] .offset-xl-6 { + margin-right: 50%; + margin-left: 0; + } + .rtl .offset-xl-7, + [dir="rtl"] .offset-xl-7 { + margin-right: 58.333333%; + margin-left: 0; + } + .rtl .offset-xl-8, + [dir="rtl"] .offset-xl-8 { + margin-right: 66.666667%; + margin-left: 0; + } + .rtl .offset-xl-9, + [dir="rtl"] .offset-xl-9 { + margin-right: 75%; + margin-left: 0; + } + .rtl .offset-xl-10, + [dir="rtl"] .offset-xl-10 { + margin-right: 83.333333%; + margin-left: 0; + } + .rtl .offset-xl-11, + [dir="rtl"] .offset-xl-11 { + margin-right: 91.666667%; + margin-left: 0; + } +} + +.rtl .mr-0, +[dir="rtl"] .mr-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} + +.rtl .ml-0, +[dir="rtl"] .ml-0 { + margin-left: 0 !important; + margin-right: 0 !important; +} + +.rtl mx-0, +[dir="rtl"] mx-0 { + margin-left: 0 !important; + margin-right: 0 !important; +} + +.rtl .mr-1, +[dir="rtl"] .mr-1 { + margin-right: 0 !important; + margin-left: 0.25rem !important; +} + +.rtl .ml-1, +[dir="rtl"] .ml-1 { + margin-left: 0 !important; + margin-right: 0.25rem !important; +} + +.rtl mx-1, +[dir="rtl"] mx-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; +} + +.rtl .mr-2, +[dir="rtl"] .mr-2 { + margin-right: 0 !important; + margin-left: 0.5rem !important; +} + +.rtl .ml-2, +[dir="rtl"] .ml-2 { + margin-left: 0 !important; + margin-right: 0.5rem !important; +} + +.rtl mx-2, +[dir="rtl"] mx-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; +} + +.rtl .mr-3, +[dir="rtl"] .mr-3 { + margin-right: 0 !important; + margin-left: 1rem !important; +} + +.rtl .ml-3, +[dir="rtl"] .ml-3 { + margin-left: 0 !important; + margin-right: 1rem !important; +} + +.rtl mx-3, +[dir="rtl"] mx-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; +} + +.rtl .mr-4, +[dir="rtl"] .mr-4 { + margin-right: 0 !important; + margin-left: 1.5rem !important; +} + +.rtl .ml-4, +[dir="rtl"] .ml-4 { + margin-left: 0 !important; + margin-right: 1.5rem !important; +} + +.rtl mx-4, +[dir="rtl"] mx-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; +} + +.rtl .mr-5, +[dir="rtl"] .mr-5 { + margin-right: 0 !important; + margin-left: 3rem !important; +} + +.rtl .ml-5, +[dir="rtl"] .ml-5 { + margin-left: 0 !important; + margin-right: 3rem !important; +} + +.rtl mx-5, +[dir="rtl"] mx-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; +} + +.rtl .pr-0, +[dir="rtl"] .pr-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} + +.rtl .pl-0, +[dir="rtl"] .pl-0 { + padding-left: 0 !important; + padding-right: 0 !important; +} + +.rtl px-0, +[dir="rtl"] px-0 { + padding-left: 0 !important; + padding-right: 0 !important; +} + +.rtl .pr-1, +[dir="rtl"] .pr-1 { + padding-right: 0 !important; + padding-left: 0.25rem !important; +} + +.rtl .pl-1, +[dir="rtl"] .pl-1 { + padding-left: 0 !important; + padding-right: 0.25rem !important; +} + +.rtl px-1, +[dir="rtl"] px-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; +} + +.rtl .pr-2, +[dir="rtl"] .pr-2 { + padding-right: 0 !important; + padding-left: 0.5rem !important; +} + +.rtl .pl-2, +[dir="rtl"] .pl-2 { + padding-left: 0 !important; + padding-right: 0.5rem !important; +} + +.rtl px-2, +[dir="rtl"] px-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; +} + +.rtl .pr-3, +[dir="rtl"] .pr-3 { + padding-right: 0 !important; + padding-left: 1rem !important; +} + +.rtl .pl-3, +[dir="rtl"] .pl-3 { + padding-left: 0 !important; + padding-right: 1rem !important; +} + +.rtl px-3, +[dir="rtl"] px-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; +} + +.rtl .pr-4, +[dir="rtl"] .pr-4 { + padding-right: 0 !important; + padding-left: 1.5rem !important; +} + +.rtl .pl-4, +[dir="rtl"] .pl-4 { + padding-left: 0 !important; + padding-right: 1.5rem !important; +} + +.rtl px-4, +[dir="rtl"] px-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; +} + +.rtl .pr-5, +[dir="rtl"] .pr-5 { + padding-right: 0 !important; + padding-left: 3rem !important; +} + +.rtl .pl-5, +[dir="rtl"] .pl-5 { + padding-left: 0 !important; + padding-right: 3rem !important; +} + +.rtl px-5, +[dir="rtl"] px-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; +} + +.rtl .mr-auto, +[dir="rtl"] .mr-auto { + margin-right: 0 !important; + margin-left: auto !important; +} + +.rtl .ml-auto, +[dir="rtl"] .ml-auto { + margin-right: auto !important; + margin-left: 0 !important; +} + +.rtl .mx-auto, +[dir="rtl"] .mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +@media (min-width: 576px) { + .rtl .mr-sm-0, + [dir="rtl"] .mr-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .rtl .ml-sm-0, + [dir="rtl"] .ml-sm-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .rtl mx-sm-0, + [dir="rtl"] mx-sm-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .rtl .mr-sm-1, + [dir="rtl"] .mr-sm-1 { + margin-right: 0 !important; + margin-left: 0.25rem !important; + } + .rtl .ml-sm-1, + [dir="rtl"] .ml-sm-1 { + margin-left: 0 !important; + margin-right: 0.25rem !important; + } + .rtl mx-sm-1, + [dir="rtl"] mx-sm-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .rtl .mr-sm-2, + [dir="rtl"] .mr-sm-2 { + margin-right: 0 !important; + margin-left: 0.5rem !important; + } + .rtl .ml-sm-2, + [dir="rtl"] .ml-sm-2 { + margin-left: 0 !important; + margin-right: 0.5rem !important; + } + .rtl mx-sm-2, + [dir="rtl"] mx-sm-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .rtl .mr-sm-3, + [dir="rtl"] .mr-sm-3 { + margin-right: 0 !important; + margin-left: 1rem !important; + } + .rtl .ml-sm-3, + [dir="rtl"] .ml-sm-3 { + margin-left: 0 !important; + margin-right: 1rem !important; + } + .rtl mx-sm-3, + [dir="rtl"] mx-sm-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .rtl .mr-sm-4, + [dir="rtl"] .mr-sm-4 { + margin-right: 0 !important; + margin-left: 1.5rem !important; + } + .rtl .ml-sm-4, + [dir="rtl"] .ml-sm-4 { + margin-left: 0 !important; + margin-right: 1.5rem !important; + } + .rtl mx-sm-4, + [dir="rtl"] mx-sm-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .rtl .mr-sm-5, + [dir="rtl"] .mr-sm-5 { + margin-right: 0 !important; + margin-left: 3rem !important; + } + .rtl .ml-sm-5, + [dir="rtl"] .ml-sm-5 { + margin-left: 0 !important; + margin-right: 3rem !important; + } + .rtl mx-sm-5, + [dir="rtl"] mx-sm-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .rtl .pr-sm-0, + [dir="rtl"] .pr-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .rtl .pl-sm-0, + [dir="rtl"] .pl-sm-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .rtl px-sm-0, + [dir="rtl"] px-sm-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .rtl .pr-sm-1, + [dir="rtl"] .pr-sm-1 { + padding-right: 0 !important; + padding-left: 0.25rem !important; + } + .rtl .pl-sm-1, + [dir="rtl"] .pl-sm-1 { + padding-left: 0 !important; + padding-right: 0.25rem !important; + } + .rtl px-sm-1, + [dir="rtl"] px-sm-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .rtl .pr-sm-2, + [dir="rtl"] .pr-sm-2 { + padding-right: 0 !important; + padding-left: 0.5rem !important; + } + .rtl .pl-sm-2, + [dir="rtl"] .pl-sm-2 { + padding-left: 0 !important; + padding-right: 0.5rem !important; + } + .rtl px-sm-2, + [dir="rtl"] px-sm-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .rtl .pr-sm-3, + [dir="rtl"] .pr-sm-3 { + padding-right: 0 !important; + padding-left: 1rem !important; + } + .rtl .pl-sm-3, + [dir="rtl"] .pl-sm-3 { + padding-left: 0 !important; + padding-right: 1rem !important; + } + .rtl px-sm-3, + [dir="rtl"] px-sm-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .rtl .pr-sm-4, + [dir="rtl"] .pr-sm-4 { + padding-right: 0 !important; + padding-left: 1.5rem !important; + } + .rtl .pl-sm-4, + [dir="rtl"] .pl-sm-4 { + padding-left: 0 !important; + padding-right: 1.5rem !important; + } + .rtl px-sm-4, + [dir="rtl"] px-sm-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .rtl .pr-sm-5, + [dir="rtl"] .pr-sm-5 { + padding-right: 0 !important; + padding-left: 3rem !important; + } + .rtl .pl-sm-5, + [dir="rtl"] .pl-sm-5 { + padding-left: 0 !important; + padding-right: 3rem !important; + } + .rtl px-sm-5, + [dir="rtl"] px-sm-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .rtl .mr-sm-auto, + [dir="rtl"] .mr-sm-auto { + margin-right: 0 !important; + margin-left: auto !important; + } + .rtl .ml-sm-auto, + [dir="rtl"] .ml-sm-auto { + margin-right: auto !important; + margin-left: 0 !important; + } + .rtl .mx-sm-auto, + [dir="rtl"] .mx-sm-auto { + margin-right: auto !important; + margin-left: auto !important; + } +} + +@media (min-width: 768px) { + .rtl .mr-md-0, + [dir="rtl"] .mr-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .rtl .ml-md-0, + [dir="rtl"] .ml-md-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .rtl mx-md-0, + [dir="rtl"] mx-md-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .rtl .mr-md-1, + [dir="rtl"] .mr-md-1 { + margin-right: 0 !important; + margin-left: 0.25rem !important; + } + .rtl .ml-md-1, + [dir="rtl"] .ml-md-1 { + margin-left: 0 !important; + margin-right: 0.25rem !important; + } + .rtl mx-md-1, + [dir="rtl"] mx-md-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .rtl .mr-md-2, + [dir="rtl"] .mr-md-2 { + margin-right: 0 !important; + margin-left: 0.5rem !important; + } + .rtl .ml-md-2, + [dir="rtl"] .ml-md-2 { + margin-left: 0 !important; + margin-right: 0.5rem !important; + } + .rtl mx-md-2, + [dir="rtl"] mx-md-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .rtl .mr-md-3, + [dir="rtl"] .mr-md-3 { + margin-right: 0 !important; + margin-left: 1rem !important; + } + .rtl .ml-md-3, + [dir="rtl"] .ml-md-3 { + margin-left: 0 !important; + margin-right: 1rem !important; + } + .rtl mx-md-3, + [dir="rtl"] mx-md-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .rtl .mr-md-4, + [dir="rtl"] .mr-md-4 { + margin-right: 0 !important; + margin-left: 1.5rem !important; + } + .rtl .ml-md-4, + [dir="rtl"] .ml-md-4 { + margin-left: 0 !important; + margin-right: 1.5rem !important; + } + .rtl mx-md-4, + [dir="rtl"] mx-md-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .rtl .mr-md-5, + [dir="rtl"] .mr-md-5 { + margin-right: 0 !important; + margin-left: 3rem !important; + } + .rtl .ml-md-5, + [dir="rtl"] .ml-md-5 { + margin-left: 0 !important; + margin-right: 3rem !important; + } + .rtl mx-md-5, + [dir="rtl"] mx-md-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .rtl .pr-md-0, + [dir="rtl"] .pr-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .rtl .pl-md-0, + [dir="rtl"] .pl-md-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .rtl px-md-0, + [dir="rtl"] px-md-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .rtl .pr-md-1, + [dir="rtl"] .pr-md-1 { + padding-right: 0 !important; + padding-left: 0.25rem !important; + } + .rtl .pl-md-1, + [dir="rtl"] .pl-md-1 { + padding-left: 0 !important; + padding-right: 0.25rem !important; + } + .rtl px-md-1, + [dir="rtl"] px-md-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .rtl .pr-md-2, + [dir="rtl"] .pr-md-2 { + padding-right: 0 !important; + padding-left: 0.5rem !important; + } + .rtl .pl-md-2, + [dir="rtl"] .pl-md-2 { + padding-left: 0 !important; + padding-right: 0.5rem !important; + } + .rtl px-md-2, + [dir="rtl"] px-md-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .rtl .pr-md-3, + [dir="rtl"] .pr-md-3 { + padding-right: 0 !important; + padding-left: 1rem !important; + } + .rtl .pl-md-3, + [dir="rtl"] .pl-md-3 { + padding-left: 0 !important; + padding-right: 1rem !important; + } + .rtl px-md-3, + [dir="rtl"] px-md-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .rtl .pr-md-4, + [dir="rtl"] .pr-md-4 { + padding-right: 0 !important; + padding-left: 1.5rem !important; + } + .rtl .pl-md-4, + [dir="rtl"] .pl-md-4 { + padding-left: 0 !important; + padding-right: 1.5rem !important; + } + .rtl px-md-4, + [dir="rtl"] px-md-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .rtl .pr-md-5, + [dir="rtl"] .pr-md-5 { + padding-right: 0 !important; + padding-left: 3rem !important; + } + .rtl .pl-md-5, + [dir="rtl"] .pl-md-5 { + padding-left: 0 !important; + padding-right: 3rem !important; + } + .rtl px-md-5, + [dir="rtl"] px-md-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .rtl .mr-md-auto, + [dir="rtl"] .mr-md-auto { + margin-right: 0 !important; + margin-left: auto !important; + } + .rtl .ml-md-auto, + [dir="rtl"] .ml-md-auto { + margin-right: auto !important; + margin-left: 0 !important; + } + .rtl .mx-md-auto, + [dir="rtl"] .mx-md-auto { + margin-right: auto !important; + margin-left: auto !important; + } +} + +@media (min-width: 992px) { + .rtl .mr-lg-0, + [dir="rtl"] .mr-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .rtl .ml-lg-0, + [dir="rtl"] .ml-lg-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .rtl mx-lg-0, + [dir="rtl"] mx-lg-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .rtl .mr-lg-1, + [dir="rtl"] .mr-lg-1 { + margin-right: 0 !important; + margin-left: 0.25rem !important; + } + .rtl .ml-lg-1, + [dir="rtl"] .ml-lg-1 { + margin-left: 0 !important; + margin-right: 0.25rem !important; + } + .rtl mx-lg-1, + [dir="rtl"] mx-lg-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .rtl .mr-lg-2, + [dir="rtl"] .mr-lg-2 { + margin-right: 0 !important; + margin-left: 0.5rem !important; + } + .rtl .ml-lg-2, + [dir="rtl"] .ml-lg-2 { + margin-left: 0 !important; + margin-right: 0.5rem !important; + } + .rtl mx-lg-2, + [dir="rtl"] mx-lg-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .rtl .mr-lg-3, + [dir="rtl"] .mr-lg-3 { + margin-right: 0 !important; + margin-left: 1rem !important; + } + .rtl .ml-lg-3, + [dir="rtl"] .ml-lg-3 { + margin-left: 0 !important; + margin-right: 1rem !important; + } + .rtl mx-lg-3, + [dir="rtl"] mx-lg-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .rtl .mr-lg-4, + [dir="rtl"] .mr-lg-4 { + margin-right: 0 !important; + margin-left: 1.5rem !important; + } + .rtl .ml-lg-4, + [dir="rtl"] .ml-lg-4 { + margin-left: 0 !important; + margin-right: 1.5rem !important; + } + .rtl mx-lg-4, + [dir="rtl"] mx-lg-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .rtl .mr-lg-5, + [dir="rtl"] .mr-lg-5 { + margin-right: 0 !important; + margin-left: 3rem !important; + } + .rtl .ml-lg-5, + [dir="rtl"] .ml-lg-5 { + margin-left: 0 !important; + margin-right: 3rem !important; + } + .rtl mx-lg-5, + [dir="rtl"] mx-lg-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .rtl .pr-lg-0, + [dir="rtl"] .pr-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .rtl .pl-lg-0, + [dir="rtl"] .pl-lg-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .rtl px-lg-0, + [dir="rtl"] px-lg-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .rtl .pr-lg-1, + [dir="rtl"] .pr-lg-1 { + padding-right: 0 !important; + padding-left: 0.25rem !important; + } + .rtl .pl-lg-1, + [dir="rtl"] .pl-lg-1 { + padding-left: 0 !important; + padding-right: 0.25rem !important; + } + .rtl px-lg-1, + [dir="rtl"] px-lg-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .rtl .pr-lg-2, + [dir="rtl"] .pr-lg-2 { + padding-right: 0 !important; + padding-left: 0.5rem !important; + } + .rtl .pl-lg-2, + [dir="rtl"] .pl-lg-2 { + padding-left: 0 !important; + padding-right: 0.5rem !important; + } + .rtl px-lg-2, + [dir="rtl"] px-lg-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .rtl .pr-lg-3, + [dir="rtl"] .pr-lg-3 { + padding-right: 0 !important; + padding-left: 1rem !important; + } + .rtl .pl-lg-3, + [dir="rtl"] .pl-lg-3 { + padding-left: 0 !important; + padding-right: 1rem !important; + } + .rtl px-lg-3, + [dir="rtl"] px-lg-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .rtl .pr-lg-4, + [dir="rtl"] .pr-lg-4 { + padding-right: 0 !important; + padding-left: 1.5rem !important; + } + .rtl .pl-lg-4, + [dir="rtl"] .pl-lg-4 { + padding-left: 0 !important; + padding-right: 1.5rem !important; + } + .rtl px-lg-4, + [dir="rtl"] px-lg-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .rtl .pr-lg-5, + [dir="rtl"] .pr-lg-5 { + padding-right: 0 !important; + padding-left: 3rem !important; + } + .rtl .pl-lg-5, + [dir="rtl"] .pl-lg-5 { + padding-left: 0 !important; + padding-right: 3rem !important; + } + .rtl px-lg-5, + [dir="rtl"] px-lg-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .rtl .mr-lg-auto, + [dir="rtl"] .mr-lg-auto { + margin-right: 0 !important; + margin-left: auto !important; + } + .rtl .ml-lg-auto, + [dir="rtl"] .ml-lg-auto { + margin-right: auto !important; + margin-left: 0 !important; + } + .rtl .mx-lg-auto, + [dir="rtl"] .mx-lg-auto { + margin-right: auto !important; + margin-left: auto !important; + } +} + +@media (min-width: 1200px) { + .rtl .mr-xl-0, + [dir="rtl"] .mr-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .rtl .ml-xl-0, + [dir="rtl"] .ml-xl-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .rtl mx-xl-0, + [dir="rtl"] mx-xl-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .rtl .mr-xl-1, + [dir="rtl"] .mr-xl-1 { + margin-right: 0 !important; + margin-left: 0.25rem !important; + } + .rtl .ml-xl-1, + [dir="rtl"] .ml-xl-1 { + margin-left: 0 !important; + margin-right: 0.25rem !important; + } + .rtl mx-xl-1, + [dir="rtl"] mx-xl-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .rtl .mr-xl-2, + [dir="rtl"] .mr-xl-2 { + margin-right: 0 !important; + margin-left: 0.5rem !important; + } + .rtl .ml-xl-2, + [dir="rtl"] .ml-xl-2 { + margin-left: 0 !important; + margin-right: 0.5rem !important; + } + .rtl mx-xl-2, + [dir="rtl"] mx-xl-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .rtl .mr-xl-3, + [dir="rtl"] .mr-xl-3 { + margin-right: 0 !important; + margin-left: 1rem !important; + } + .rtl .ml-xl-3, + [dir="rtl"] .ml-xl-3 { + margin-left: 0 !important; + margin-right: 1rem !important; + } + .rtl mx-xl-3, + [dir="rtl"] mx-xl-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .rtl .mr-xl-4, + [dir="rtl"] .mr-xl-4 { + margin-right: 0 !important; + margin-left: 1.5rem !important; + } + .rtl .ml-xl-4, + [dir="rtl"] .ml-xl-4 { + margin-left: 0 !important; + margin-right: 1.5rem !important; + } + .rtl mx-xl-4, + [dir="rtl"] mx-xl-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .rtl .mr-xl-5, + [dir="rtl"] .mr-xl-5 { + margin-right: 0 !important; + margin-left: 3rem !important; + } + .rtl .ml-xl-5, + [dir="rtl"] .ml-xl-5 { + margin-left: 0 !important; + margin-right: 3rem !important; + } + .rtl mx-xl-5, + [dir="rtl"] mx-xl-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .rtl .pr-xl-0, + [dir="rtl"] .pr-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .rtl .pl-xl-0, + [dir="rtl"] .pl-xl-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .rtl px-xl-0, + [dir="rtl"] px-xl-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .rtl .pr-xl-1, + [dir="rtl"] .pr-xl-1 { + padding-right: 0 !important; + padding-left: 0.25rem !important; + } + .rtl .pl-xl-1, + [dir="rtl"] .pl-xl-1 { + padding-left: 0 !important; + padding-right: 0.25rem !important; + } + .rtl px-xl-1, + [dir="rtl"] px-xl-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .rtl .pr-xl-2, + [dir="rtl"] .pr-xl-2 { + padding-right: 0 !important; + padding-left: 0.5rem !important; + } + .rtl .pl-xl-2, + [dir="rtl"] .pl-xl-2 { + padding-left: 0 !important; + padding-right: 0.5rem !important; + } + .rtl px-xl-2, + [dir="rtl"] px-xl-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .rtl .pr-xl-3, + [dir="rtl"] .pr-xl-3 { + padding-right: 0 !important; + padding-left: 1rem !important; + } + .rtl .pl-xl-3, + [dir="rtl"] .pl-xl-3 { + padding-left: 0 !important; + padding-right: 1rem !important; + } + .rtl px-xl-3, + [dir="rtl"] px-xl-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .rtl .pr-xl-4, + [dir="rtl"] .pr-xl-4 { + padding-right: 0 !important; + padding-left: 1.5rem !important; + } + .rtl .pl-xl-4, + [dir="rtl"] .pl-xl-4 { + padding-left: 0 !important; + padding-right: 1.5rem !important; + } + .rtl px-xl-4, + [dir="rtl"] px-xl-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .rtl .pr-xl-5, + [dir="rtl"] .pr-xl-5 { + padding-right: 0 !important; + padding-left: 3rem !important; + } + .rtl .pl-xl-5, + [dir="rtl"] .pl-xl-5 { + padding-left: 0 !important; + padding-right: 3rem !important; + } + .rtl px-xl-5, + [dir="rtl"] px-xl-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .rtl .mr-xl-auto, + [dir="rtl"] .mr-xl-auto { + margin-right: 0 !important; + margin-left: auto !important; + } + .rtl .ml-xl-auto, + [dir="rtl"] .ml-xl-auto { + margin-right: auto !important; + margin-left: 0 !important; + } + .rtl .mx-xl-auto, + [dir="rtl"] .mx-xl-auto { + margin-right: auto !important; + margin-left: auto !important; + } +} + +.rtl .text-right, +[dir="rtl"] .text-right { + text-align: left !important; +} + +.rtl .text-left, +[dir="rtl"] .text-left { + text-align: right !important; +} + +@media (min-width: 576px) { + .rtl .text-sm-right, + [dir="rtl"] .text-sm-right { + text-align: left !important; + } + .rtl .text-sm-left, + [dir="rtl"] .text-sm-left { + text-align: right !important; + } +} + +@media (min-width: 768px) { + .rtl .text-md-right, + [dir="rtl"] .text-md-right { + text-align: left !important; + } + .rtl .text-md-left, + [dir="rtl"] .text-md-left { + text-align: right !important; + } +} + +@media (min-width: 992px) { + .rtl .text-lg-right, + [dir="rtl"] .text-lg-right { + text-align: left !important; + } + .rtl .text-lg-left, + [dir="rtl"] .text-lg-left { + text-align: right !important; + } +} + +@media (min-width: 1200px) { + .rtl .text-xl-right, + [dir="rtl"] .text-xl-right { + text-align: left !important; + } + .rtl .text-xl-left, + [dir="rtl"] .text-xl-left { + text-align: right !important; + } +} +/*# sourceMappingURL=bootstrap-rtl.css.map */ \ No newline at end of file diff --git a/src/API.Web/wwwroot/libs/bootstrap/css/bootstrap-rtl.css.map b/src/API.Web/wwwroot/libs/bootstrap/css/bootstrap-rtl.css.map new file mode 100644 index 0000000..69262df --- /dev/null +++ b/src/API.Web/wwwroot/libs/bootstrap/css/bootstrap-rtl.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/bootstrap-rtl.scss","bootstrap-rtl.css","../../scss/_root.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_functions.scss","../../scss/_forms.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_gradients.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/mixins/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_toasts.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/mixins/_clearfix.scss","../../scss/_spinners.scss","../../scss/utilities/_align.scss","../../scss/mixins/_background-variant.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/utilities/_interactions.scss","../../scss/utilities/_overflow.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_shadows.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_stretched-link.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_text-hide.scss","../../scss/utilities/_visibility.scss","../../scss/_print.scss","../../scss/_rtl.scss"],"names":[],"mappings":"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E,wBAAwB;AFxH1B;;AEgIA;EACE,aAAa;EACb,0BAA0B;AF7H5B;;AEoIA;EACE,qBAAqB;AFjIvB;;AEoIA;EACE,kBAAkB;EAClB,eAAe;AFjIjB;;AEoIA;EACE,aAAa;AFjIf;;AAEA;EEqIE,wBAAwB;AFnI1B;;AMzVA;;EAEE,qBHqSuC;EGnSvC,gBHqS+B;EGpS/B,gBHqS+B;AHsDjC;;AMvVA;EFgHM,iBAtCY;AJiRlB;;AM1VA;EF+GM,eAtCY;AJqRlB;;AM7VA;EF8GM,kBAtCY;AJyRlB;;AMhWA;EF6GM,iBAtCY;AJ6RlB;;AMnWA;EF4GM,kBAtCY;AJiSlB;;AMtWA;EF2GM,eAtCY;AJqSlB;;AMxWA;EFyGM,kBAtCY;EEjEhB,gBHuS+B;AHoEjC;;AMvWA;EFmGM,eAtCY;EE3DhB,gBH0R+B;EGzR/B,gBHiR+B;AHyFjC;;AMxWA;EF8FM,iBAtCY;EEtDhB,gBHsR+B;EGrR/B,gBH4Q+B;AH+FjC;;AMzWA;EFyFM,iBAtCY;EEjDhB,gBHkR+B;EGjR/B,gBHuQ+B;AHqGjC;;AM1WA;EFoFM,iBAtCY;EE5ChB,gBH8Q+B;EG7Q/B,gBHkQ+B;AH2GjC;;AEhVA;EIpBE,gBHgFW;EG/EX,mBH+EW;EG9EX,SAAS;EACT,wCHzCa;AHiZf;;AMhWA;;EFMI,cAAW;EEHb,gBH0N+B;AHyIjC;;AMhWA;;EAEE,cHkQgC;EGjQhC,yBH0QmC;AHyFrC;;AM3VA;EC/EE,eAAe;EACf,gBAAgB;AP8alB;;AM3VA;ECpFE,eAAe;EACf,gBAAgB;APmblB;;AM7VA;EACE,qBAAqB;ANgWvB;;AMjWA;EAII,oBHoP+B;AH6GnC;;AMvVA;EFjCI,cAAW;EEmCb,yBAAyB;AN0V3B;;AMtVA;EACE,mBHuBW;ECRP,kBAtCY;AJiXlB;;AMtVA;EACE,cAAc;EF7CZ,cAAW;EE+Cb,cH1GgB;AHmclB;;AM5VA;EAMI,qBAAqB;AN0VzB;;AQ7cA;ECIE,eAAe;EAGf,YAAY;AT2cd;;AQ5cA;EACE,gBLmgCwC;EKlgCxC,sBLRa;EKSb,yBLNgB;EOQd,sBP6NgC;EMpOlC,eAAe;EAGf,YAAY;ATodd;;AQtcA;EAEE,qBAAqB;ARwcvB;;AQrcA;EACE,qBAA0B;EAC1B,cAAc;ARwchB;;AQrcA;EJkCI,cAAW;EIhCb,cL3BgB;AHmelB;;AW/eA;EPuEI,gBAAW;EOrEb,cRmCe;EQlCf,qBAAqB;AXkfvB;;AW/eE;EACE,cAAc;AXkflB;;AW7eA;EACE,sBRulCuC;EC7hCrC,gBAAW;EOxDb,WRTa;EQUb,yBRDgB;EOEd,qBP+N+B;AHiRnC;;AWrfA;EASI,UAAU;EPkDV,eAAW;EOhDX,gBRwQ6B;AHwOjC;;AExSA;ESjME,cAAc;EPyCZ,gBAAW;EOvCb,cRjBgB;AH8flB;;AWhfA;EP0CI,kBAAW;EOlCX,cAAc;EACd,kBAAkB;AX6etB;;AWxeA;EACE,iBR8jCuC;EQ7jCvC,kBAAkB;AX2epB;;AYnhBE;;;;;;ECDA,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;EACzB,kBAAkB;EAClB,iBAAiB;Ab6hBnB;;Ac1eI;EFzCE;IACE,gBT+LG;EHwVT;AACF;;AchfI;EFzCE;IACE,gBTgMG;EH6VT;AACF;;ActfI;EFzCE;IACE,gBTiMG;EHkWT;AACF;;Ac5fI;EFzCE;IACE,iBTkMI;EHuWV;AACF;;AY9gBE;ECnCA,aAAa;EACb,eAAe;EACf,mBAA0B;EAC1B,kBAAyB;AbqjB3B;;AY/gBE;EACE,eAAe;EACf,cAAc;AZkhBlB;;AYphBE;;EAMI,gBAAgB;EAChB,eAAe;AZmhBrB;;AezkBE;;;;;;EACE,kBAAkB;EAClB,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;AfilB7B;;Ae3jBM;EACE,aAAa;EACb,YAAY;EACZ,eAAe;Af8jBvB;;AezjBU;EFwBN,cAAuB;EACvB,eAAwB;AbqiB5B;;Ae9jBU;EFwBN,aAAuB;EACvB,cAAwB;Ab0iB5B;;AenkBU;EFwBN,oBAAuB;EACvB,qBAAwB;Ab+iB5B;;AexkBU;EFwBN,aAAuB;EACvB,cAAwB;AbojB5B;;Ae7kBU;EFwBN,aAAuB;EACvB,cAAwB;AbyjB5B;;AellBU;EFwBN,oBAAuB;EACvB,qBAAwB;Ab8jB5B;;AejlBM;EFCJ,cAAc;EACd,WAAW;EACX,eAAe;AbolBjB;;AejlBU;EFbR,mBAAsC;EAItC,oBAAuC;Ab+lBzC;;AetlBU;EFbR,oBAAsC;EAItC,qBAAuC;AbomBzC;;Ae3lBU;EFbR,aAAsC;EAItC,cAAuC;AbymBzC;;AehmBU;EFbR,oBAAsC;EAItC,qBAAuC;Ab8mBzC;;AermBU;EFbR,oBAAsC;EAItC,qBAAuC;AbmnBzC;;Ae1mBU;EFbR,aAAsC;EAItC,cAAuC;AbwnBzC;;Ae/mBU;EFbR,oBAAsC;EAItC,qBAAuC;Ab6nBzC;;AepnBU;EFbR,oBAAsC;EAItC,qBAAuC;AbkoBzC;;AeznBU;EFbR,aAAsC;EAItC,cAAuC;AbuoBzC;;Ae9nBU;EFbR,oBAAsC;EAItC,qBAAuC;Ab4oBzC;;AenoBU;EFbR,oBAAsC;EAItC,qBAAuC;AbipBzC;;AexoBU;EFbR,cAAsC;EAItC,eAAuC;AbspBzC;;AevoBM;EAAwB,SAAS;Af2oBvC;;AezoBM;EAAuB,SZmKG;AH0ehC;;Ae1oBQ;EAAwB,QADZ;Af+oBpB;;Ae9oBQ;EAAwB,QADZ;AfmpBpB;;AelpBQ;EAAwB,QADZ;AfupBpB;;AetpBQ;EAAwB,QADZ;Af2pBpB;;Ae1pBQ;EAAwB,QADZ;Af+pBpB;;Ae9pBQ;EAAwB,QADZ;AfmqBpB;;AelqBQ;EAAwB,QADZ;AfuqBpB;;AetqBQ;EAAwB,QADZ;Af2qBpB;;Ae1qBQ;EAAwB,QADZ;Af+qBpB;;Ae9qBQ;EAAwB,QADZ;AfmrBpB;;AelrBQ;EAAwB,SADZ;AfurBpB;;AetrBQ;EAAwB,SADZ;Af2rBpB;;Ae1rBQ;EAAwB,SADZ;Af+rBpB;;AevrBY;EFhBV,sBAA8C;Ab2sBhD;;Ae3rBY;EFhBV,uBAA8C;Ab+sBhD;;Ae/rBY;EFhBV,gBAA8C;AbmtBhD;;AensBY;EFhBV,uBAA8C;AbutBhD;;AevsBY;EFhBV,uBAA8C;Ab2tBhD;;Ae3sBY;EFhBV,gBAA8C;Ab+tBhD;;Ae/sBY;EFhBV,uBAA8C;AbmuBhD;;AentBY;EFhBV,uBAA8C;AbuuBhD;;AevtBY;EFhBV,gBAA8C;Ab2uBhD;;Ae3tBY;EFhBV,uBAA8C;Ab+uBhD;;Ae/tBY;EFhBV,uBAA8C;AbmvBhD;;Ac9uBI;EC3BE;IACE,aAAa;IACb,YAAY;IACZ,eAAe;Ef6wBrB;EexwBQ;IFwBN,cAAuB;IACvB,eAAwB;EbmvB1B;Ee5wBQ;IFwBN,aAAuB;IACvB,cAAwB;EbuvB1B;EehxBQ;IFwBN,oBAAuB;IACvB,qBAAwB;Eb2vB1B;EepxBQ;IFwBN,aAAuB;IACvB,cAAwB;Eb+vB1B;EexxBQ;IFwBN,aAAuB;IACvB,cAAwB;EbmwB1B;Ee5xBQ;IFwBN,oBAAuB;IACvB,qBAAwB;EbuwB1B;Ee1xBI;IFCJ,cAAc;IACd,WAAW;IACX,eAAe;Eb4xBf;EezxBQ;IFbR,mBAAsC;IAItC,oBAAuC;EbsyBvC;Ee7xBQ;IFbR,oBAAsC;IAItC,qBAAuC;Eb0yBvC;EejyBQ;IFbR,aAAsC;IAItC,cAAuC;Eb8yBvC;EeryBQ;IFbR,oBAAsC;IAItC,qBAAuC;EbkzBvC;EezyBQ;IFbR,oBAAsC;IAItC,qBAAuC;EbszBvC;Ee7yBQ;IFbR,aAAsC;IAItC,cAAuC;Eb0zBvC;EejzBQ;IFbR,oBAAsC;IAItC,qBAAuC;Eb8zBvC;EerzBQ;IFbR,oBAAsC;IAItC,qBAAuC;Ebk0BvC;EezzBQ;IFbR,aAAsC;IAItC,cAAuC;Ebs0BvC;Ee7zBQ;IFbR,oBAAsC;IAItC,qBAAuC;Eb00BvC;Eej0BQ;IFbR,oBAAsC;IAItC,qBAAuC;Eb80BvC;Eer0BQ;IFbR,cAAsC;IAItC,eAAuC;Ebk1BvC;Een0BI;IAAwB,SAAS;Efs0BrC;Eep0BI;IAAuB,SZmKG;EHoqB9B;Eep0BM;IAAwB,QADZ;Efw0BlB;Eev0BM;IAAwB,QADZ;Ef20BlB;Ee10BM;IAAwB,QADZ;Ef80BlB;Ee70BM;IAAwB,QADZ;Efi1BlB;Eeh1BM;IAAwB,QADZ;Efo1BlB;Een1BM;IAAwB,QADZ;Efu1BlB;Eet1BM;IAAwB,QADZ;Ef01BlB;Eez1BM;IAAwB,QADZ;Ef61BlB;Ee51BM;IAAwB,QADZ;Efg2BlB;Ee/1BM;IAAwB,QADZ;Efm2BlB;Eel2BM;IAAwB,SADZ;Efs2BlB;Eer2BM;IAAwB,SADZ;Efy2BlB;Eex2BM;IAAwB,SADZ;Ef42BlB;Eep2BU;IFhBV,cAA4B;Ebu3B5B;Eev2BU;IFhBV,sBAA8C;Eb03B9C;Ee12BU;IFhBV,uBAA8C;Eb63B9C;Ee72BU;IFhBV,gBAA8C;Ebg4B9C;Eeh3BU;IFhBV,uBAA8C;Ebm4B9C;Een3BU;IFhBV,uBAA8C;Ebs4B9C;Eet3BU;IFhBV,gBAA8C;Eby4B9C;Eez3BU;IFhBV,uBAA8C;Eb44B9C;Ee53BU;IFhBV,uBAA8C;Eb+4B9C;Ee/3BU;IFhBV,gBAA8C;Ebk5B9C;Eel4BU;IFhBV,uBAA8C;Ebq5B9C;Eer4BU;IFhBV,uBAA8C;Ebw5B9C;AACF;;Acp5BI;EC3BE;IACE,aAAa;IACb,YAAY;IACZ,eAAe;Efm7BrB;Ee96BQ;IFwBN,cAAuB;IACvB,eAAwB;Eby5B1B;Eel7BQ;IFwBN,aAAuB;IACvB,cAAwB;Eb65B1B;Eet7BQ;IFwBN,oBAAuB;IACvB,qBAAwB;Ebi6B1B;Ee17BQ;IFwBN,aAAuB;IACvB,cAAwB;Ebq6B1B;Ee97BQ;IFwBN,aAAuB;IACvB,cAAwB;Eby6B1B;Eel8BQ;IFwBN,oBAAuB;IACvB,qBAAwB;Eb66B1B;Eeh8BI;IFCJ,cAAc;IACd,WAAW;IACX,eAAe;Ebk8Bf;Ee/7BQ;IFbR,mBAAsC;IAItC,oBAAuC;Eb48BvC;Een8BQ;IFbR,oBAAsC;IAItC,qBAAuC;Ebg9BvC;Eev8BQ;IFbR,aAAsC;IAItC,cAAuC;Ebo9BvC;Ee38BQ;IFbR,oBAAsC;IAItC,qBAAuC;Ebw9BvC;Ee/8BQ;IFbR,oBAAsC;IAItC,qBAAuC;Eb49BvC;Een9BQ;IFbR,aAAsC;IAItC,cAAuC;Ebg+BvC;Eev9BQ;IFbR,oBAAsC;IAItC,qBAAuC;Ebo+BvC;Ee39BQ;IFbR,oBAAsC;IAItC,qBAAuC;Ebw+BvC;Ee/9BQ;IFbR,aAAsC;IAItC,cAAuC;Eb4+BvC;Een+BQ;IFbR,oBAAsC;IAItC,qBAAuC;Ebg/BvC;Eev+BQ;IFbR,oBAAsC;IAItC,qBAAuC;Ebo/BvC;Ee3+BQ;IFbR,cAAsC;IAItC,eAAuC;Ebw/BvC;Eez+BI;IAAwB,SAAS;Ef4+BrC;Ee1+BI;IAAuB,SZmKG;EH00B9B;Ee1+BM;IAAwB,QADZ;Ef8+BlB;Ee7+BM;IAAwB,QADZ;Efi/BlB;Eeh/BM;IAAwB,QADZ;Efo/BlB;Een/BM;IAAwB,QADZ;Efu/BlB;Eet/BM;IAAwB,QADZ;Ef0/BlB;Eez/BM;IAAwB,QADZ;Ef6/BlB;Ee5/BM;IAAwB,QADZ;EfggClB;Ee//BM;IAAwB,QADZ;EfmgClB;EelgCM;IAAwB,QADZ;EfsgClB;EergCM;IAAwB,QADZ;EfygClB;EexgCM;IAAwB,SADZ;Ef4gClB;Ee3gCM;IAAwB,SADZ;Ef+gClB;Ee9gCM;IAAwB,SADZ;EfkhClB;Ee1gCU;IFhBV,cAA4B;Eb6hC5B;Ee7gCU;IFhBV,sBAA8C;EbgiC9C;EehhCU;IFhBV,uBAA8C;EbmiC9C;EenhCU;IFhBV,gBAA8C;EbsiC9C;EethCU;IFhBV,uBAA8C;EbyiC9C;EezhCU;IFhBV,uBAA8C;Eb4iC9C;Ee5hCU;IFhBV,gBAA8C;Eb+iC9C;Ee/hCU;IFhBV,uBAA8C;EbkjC9C;EeliCU;IFhBV,uBAA8C;EbqjC9C;EeriCU;IFhBV,gBAA8C;EbwjC9C;EexiCU;IFhBV,uBAA8C;Eb2jC9C;Ee3iCU;IFhBV,uBAA8C;Eb8jC9C;AACF;;Ac1jCI;EC3BE;IACE,aAAa;IACb,YAAY;IACZ,eAAe;EfylCrB;EeplCQ;IFwBN,cAAuB;IACvB,eAAwB;Eb+jC1B;EexlCQ;IFwBN,aAAuB;IACvB,cAAwB;EbmkC1B;Ee5lCQ;IFwBN,oBAAuB;IACvB,qBAAwB;EbukC1B;EehmCQ;IFwBN,aAAuB;IACvB,cAAwB;Eb2kC1B;EepmCQ;IFwBN,aAAuB;IACvB,cAAwB;Eb+kC1B;EexmCQ;IFwBN,oBAAuB;IACvB,qBAAwB;EbmlC1B;EetmCI;IFCJ,cAAc;IACd,WAAW;IACX,eAAe;EbwmCf;EermCQ;IFbR,mBAAsC;IAItC,oBAAuC;EbknCvC;EezmCQ;IFbR,oBAAsC;IAItC,qBAAuC;EbsnCvC;Ee7mCQ;IFbR,aAAsC;IAItC,cAAuC;Eb0nCvC;EejnCQ;IFbR,oBAAsC;IAItC,qBAAuC;Eb8nCvC;EernCQ;IFbR,oBAAsC;IAItC,qBAAuC;EbkoCvC;EeznCQ;IFbR,aAAsC;IAItC,cAAuC;EbsoCvC;Ee7nCQ;IFbR,oBAAsC;IAItC,qBAAuC;Eb0oCvC;EejoCQ;IFbR,oBAAsC;IAItC,qBAAuC;Eb8oCvC;EeroCQ;IFbR,aAAsC;IAItC,cAAuC;EbkpCvC;EezoCQ;IFbR,oBAAsC;IAItC,qBAAuC;EbspCvC;Ee7oCQ;IFbR,oBAAsC;IAItC,qBAAuC;Eb0pCvC;EejpCQ;IFbR,cAAsC;IAItC,eAAuC;Eb8pCvC;Ee/oCI;IAAwB,SAAS;EfkpCrC;EehpCI;IAAuB,SZmKG;EHg/B9B;EehpCM;IAAwB,QADZ;EfopClB;EenpCM;IAAwB,QADZ;EfupClB;EetpCM;IAAwB,QADZ;Ef0pClB;EezpCM;IAAwB,QADZ;Ef6pClB;Ee5pCM;IAAwB,QADZ;EfgqClB;Ee/pCM;IAAwB,QADZ;EfmqClB;EelqCM;IAAwB,QADZ;EfsqClB;EerqCM;IAAwB,QADZ;EfyqClB;EexqCM;IAAwB,QADZ;Ef4qClB;Ee3qCM;IAAwB,QADZ;Ef+qClB;Ee9qCM;IAAwB,SADZ;EfkrClB;EejrCM;IAAwB,SADZ;EfqrClB;EeprCM;IAAwB,SADZ;EfwrClB;EehrCU;IFhBV,cAA4B;EbmsC5B;EenrCU;IFhBV,sBAA8C;EbssC9C;EetrCU;IFhBV,uBAA8C;EbysC9C;EezrCU;IFhBV,gBAA8C;Eb4sC9C;Ee5rCU;IFhBV,uBAA8C;Eb+sC9C;Ee/rCU;IFhBV,uBAA8C;EbktC9C;EelsCU;IFhBV,gBAA8C;EbqtC9C;EersCU;IFhBV,uBAA8C;EbwtC9C;EexsCU;IFhBV,uBAA8C;Eb2tC9C;Ee3sCU;IFhBV,gBAA8C;Eb8tC9C;Ee9sCU;IFhBV,uBAA8C;EbiuC9C;EejtCU;IFhBV,uBAA8C;EbouC9C;AACF;;AchuCI;EC3BE;IACE,aAAa;IACb,YAAY;IACZ,eAAe;Ef+vCrB;Ee1vCQ;IFwBN,cAAuB;IACvB,eAAwB;EbquC1B;Ee9vCQ;IFwBN,aAAuB;IACvB,cAAwB;EbyuC1B;EelwCQ;IFwBN,oBAAuB;IACvB,qBAAwB;Eb6uC1B;EetwCQ;IFwBN,aAAuB;IACvB,cAAwB;EbivC1B;Ee1wCQ;IFwBN,aAAuB;IACvB,cAAwB;EbqvC1B;Ee9wCQ;IFwBN,oBAAuB;IACvB,qBAAwB;EbyvC1B;Ee5wCI;IFCJ,cAAc;IACd,WAAW;IACX,eAAe;Eb8wCf;Ee3wCQ;IFbR,mBAAsC;IAItC,oBAAuC;EbwxCvC;Ee/wCQ;IFbR,oBAAsC;IAItC,qBAAuC;Eb4xCvC;EenxCQ;IFbR,aAAsC;IAItC,cAAuC;EbgyCvC;EevxCQ;IFbR,oBAAsC;IAItC,qBAAuC;EboyCvC;Ee3xCQ;IFbR,oBAAsC;IAItC,qBAAuC;EbwyCvC;Ee/xCQ;IFbR,aAAsC;IAItC,cAAuC;Eb4yCvC;EenyCQ;IFbR,oBAAsC;IAItC,qBAAuC;EbgzCvC;EevyCQ;IFbR,oBAAsC;IAItC,qBAAuC;EbozCvC;Ee3yCQ;IFbR,aAAsC;IAItC,cAAuC;EbwzCvC;Ee/yCQ;IFbR,oBAAsC;IAItC,qBAAuC;Eb4zCvC;EenzCQ;IFbR,oBAAsC;IAItC,qBAAuC;Ebg0CvC;EevzCQ;IFbR,cAAsC;IAItC,eAAuC;Ebo0CvC;EerzCI;IAAwB,SAAS;EfwzCrC;EetzCI;IAAuB,SZmKG;EHspC9B;EetzCM;IAAwB,QADZ;Ef0zClB;EezzCM;IAAwB,QADZ;Ef6zClB;Ee5zCM;IAAwB,QADZ;Efg0ClB;Ee/zCM;IAAwB,QADZ;Efm0ClB;Eel0CM;IAAwB,QADZ;Efs0ClB;Eer0CM;IAAwB,QADZ;Efy0ClB;Eex0CM;IAAwB,QADZ;Ef40ClB;Ee30CM;IAAwB,QADZ;Ef+0ClB;Ee90CM;IAAwB,QADZ;Efk1ClB;Eej1CM;IAAwB,QADZ;Efq1ClB;Eep1CM;IAAwB,SADZ;Efw1ClB;Eev1CM;IAAwB,SADZ;Ef21ClB;Ee11CM;IAAwB,SADZ;Ef81ClB;Eet1CU;IFhBV,cAA4B;Eby2C5B;Eez1CU;IFhBV,sBAA8C;Eb42C9C;Ee51CU;IFhBV,uBAA8C;Eb+2C9C;Ee/1CU;IFhBV,gBAA8C;Ebk3C9C;Eel2CU;IFhBV,uBAA8C;Ebq3C9C;Eer2CU;IFhBV,uBAA8C;Ebw3C9C;Eex2CU;IFhBV,gBAA8C;Eb23C9C;Ee32CU;IFhBV,uBAA8C;Eb83C9C;Ee92CU;IFhBV,uBAA8C;Ebi4C9C;Eej3CU;IFhBV,gBAA8C;Ebo4C9C;Eep3CU;IFhBV,uBAA8C;Ebu4C9C;Eev3CU;IFhBV,uBAA8C;Eb04C9C;AACF;;AgB97CA;EACE,WAAW;EACX,mBbiIW;EahIX,cbSgB;AHw7ClB;;AgBp8CA;;EAQI,gBbkVgC;EajVhC,mBAAmB;EACnB,6BbJc;AHq8ClB;;AgB38CA;EAcI,sBAAsB;EACtB,gCbTc;AH08ClB;;AgBh9CA;EAmBI,6Bbbc;AH88ClB;;AgBx7CA;;EAGI,eb4T+B;AH8nCnC;;AgBj7CA;EACE,yBbnCgB;AHu9ClB;;AgBr7CA;;EAKI,yBbvCc;AH49ClB;;AgB17CA;;EAWM,wBAA4C;AhBo7ClD;;AgB/6CA;;;;EAKI,SAAS;AhBi7Cb;;AgBz6CA;EAEI,qCb1DW;AHq+Cf;;AK1+CE;EW2EI,cbvEY;EawEZ,sCbvES;AH0+Cf;;AiBt/CE;;;EAII,yBCgG4D;AlBw5ClE;;AiB5/CE;;;;EAYM,qBCwF0D;AlB+5ClE;;AK5/CE;EYiBM,yBAJsC;AjBm/C9C;;AiBp/CE;;EASQ,yBARoC;AjBw/C9C;;AiB5gDE;;;EAII,yBCgG4D;AlB86ClE;;AiBlhDE;;;;EAYM,qBCwF0D;AlBq7ClE;;AKlhDE;EYiBM,yBAJsC;AjBygD9C;;AiB1gDE;;EASQ,yBARoC;AjB8gD9C;;AiBliDE;;;EAII,yBCgG4D;AlBo8ClE;;AiBxiDE;;;;EAYM,qBCwF0D;AlB28ClE;;AKxiDE;EYiBM,yBAJsC;AjB+hD9C;;AiBhiDE;;EASQ,yBARoC;AjBoiD9C;;AiBxjDE;;;EAII,yBCgG4D;AlB09ClE;;AiB9jDE;;;;EAYM,qBCwF0D;AlBi+ClE;;AK9jDE;EYiBM,yBAJsC;AjBqjD9C;;AiBtjDE;;EASQ,yBARoC;AjB0jD9C;;AiB9kDE;;;EAII,yBCgG4D;AlBg/ClE;;AiBplDE;;;;EAYM,qBCwF0D;AlBu/ClE;;AKplDE;EYiBM,yBAJsC;AjB2kD9C;;AiB5kDE;;EASQ,yBARoC;AjBglD9C;;AiBpmDE;;;EAII,yBCgG4D;AlBsgDlE;;AiB1mDE;;;;EAYM,qBCwF0D;AlB6gDlE;;AK1mDE;EYiBM,yBAJsC;AjBimD9C;;AiBlmDE;;EASQ,yBARoC;AjBsmD9C;;AiB1nDE;;;EAII,yBCgG4D;AlB4hDlE;;AiBhoDE;;;;EAYM,qBCwF0D;AlBmiDlE;;AKhoDE;EYiBM,yBAJsC;AjBunD9C;;AiBxnDE;;EASQ,yBARoC;AjB4nD9C;;AiBhpDE;;;EAII,yBCgG4D;AlBkjDlE;;AiBtpDE;;;;EAYM,qBCwF0D;AlByjDlE;;AKtpDE;EYiBM,yBAJsC;AjB6oD9C;;AiB9oDE;;EASQ,yBARoC;AjBkpD9C;;AiBtqDE;;;EAII,sCdQS;AHgqDf;;AKrqDE;EYiBM,sCAJsC;AjB4pD9C;;AiB7pDE;;EASQ,sCARoC;AjBiqD9C;;AgB3kDA;EAGM,Wb3GS;Ea4GT,yBbpGY;EaqGZ,qBbgQqD;AH40C3D;;AgBjlDA;EAWM,cb5GY;Ea6GZ,yBblHY;EamHZ,qBblHY;AH4rDlB;;AgBrkDA;EACE,Wb3Ha;Ea4Hb,yBbpHgB;AH4rDlB;;AgB1kDA;;;EAOI,qBb4OuD;AH61C3D;;AgBhlDA;EAWI,SAAS;AhBykDb;;AgBplDA;EAgBM,2Cb1IS;AHktDf;;AK7sDE;EW4IM,WbjJO;EakJP,4CblJO;AHutDf;;AcrpDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBujDvC;EgB5jDG;IASK,SAAS;EhBsjDjB;AACF;;AcjqDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBmkDvC;EgBxkDG;IASK,SAAS;EhBkkDjB;AACF;;Ac7qDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhB+kDvC;EgBplDG;IASK,SAAS;EhB8kDjB;AACF;;AczrDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhB2lDvC;EgBhmDG;IASK,SAAS;EhB0lDjB;AACF;;AgBzmDA;EAOQ,cAAc;EACd,WAAW;EACX,gBAAgB;EAChB,iCAAiC;AhBsmDzC;;AgBhnDA;EAcU,SAAS;AhBsmDnB;;AmBnxDA;EACE,cAAc;EACd,WAAW;EACX,mCDiH8D;EChH9D,yBhByXkC;ECpQ9B,eAtCY;Ee5EhB,gBhBkR+B;EgBjR/B,gBhBsR+B;EgBrR/B,chBDgB;EgBEhB,sBhBTa;EgBUb,4BAA4B;EAC5B,yBhBPgB;EOOd,sBP6NgC;EiB/N9B,wEjBue4F;AHkzClG;;AoBrxDM;EDdN;ICeQ,gBAAgB;EpByxDtB;AACF;;AmBzyDA;EAsBI,6BAA6B;EAC7B,SAAS;AnBuxDb;;AmB9yDA;EA4BI,kBAAkB;EAClB,0BhBrBc;AH2yDlB;;AqB5yDE;EACE,clBAc;EkBCd,sBlBRW;EkBSX,qBlBqdsE;EkBpdtE,UAAU;EAKR,gDlBaW;AH8xDjB;;AmB3zDA;EAqCI,chB9Bc;EgBgCd,UAAU;AnByxDd;;AmBh0DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnByxDd;;AmBh0DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnByxDd;;AmBh0DA;EAiDI,yBhB9Cc;EgBgDd,UAAU;AnBkxDd;;AmB9wDA;;;;EAKI,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;AnBgxDpB;;AmB5wDA;EAOI,chB/Dc;EgBgEd,sBhBvEW;AHg1Df;;AmBpwDA;;EAEE,cAAc;EACd,WAAW;AnBuwDb;;AmB7vDA;EACE,iCDyB8D;ECxB9D,oCDwB8D;ECvB9D,gBAAgB;Ef3Bd,kBAAW;Ee6Bb,gBhB+L+B;AHikDjC;;AmB7vDA;EACE,+BDiB8D;EChB9D,kCDgB8D;EdK1D,kBAtCY;EemBhB,gBhB6H+B;AHmoDjC;;AmB7vDA;EACE,gCDU8D;ECT9D,mCDS8D;EdK1D,mBAtCY;Ee0BhB,gBhBuH+B;AHyoDjC;;AmBvvDA;EACE,cAAc;EACd,WAAW;EACX,mBAA2B;EAC3B,gBAAgB;EfDZ,eAtCY;EeyChB,gBhBkK+B;EgBjK/B,chBnHgB;EgBoHhB,6BAA6B;EAC7B,yBAAyB;EACzB,mBAAmC;AnB0vDrC;;AmBpwDA;EAcI,gBAAgB;EAChB,eAAe;AnB0vDnB;;AmB9uDA;EACE,kCD9B8D;EC+B9D,uBhBoPiC;EC9Q7B,mBAtCY;EekEhB,gBhB+E+B;EOxN7B,qBP+N+B;AH4pDnC;;AmB9uDA;EACE,gCDtC8D;ECuC9D,oBhBiPgC;ECnR5B,kBAtCY;Ee0EhB,gBhBsE+B;EOvN7B,qBP8N+B;AHqqDnC;;AmB7uDA;EAGI,YAAY;AnB8uDhB;;AmB1uDA;EACE,YAAY;AnB6uDd;;AmBruDA;EACE,mBhB0U0C;AH85C5C;;AmBruDA;EACE,cAAc;EACd,mBhB2T4C;AH66C9C;;AmBhuDA;EACE,aAAa;EACb,eAAe;EACf,kBAA0C;EAC1C,iBAAyC;AnBmuD3C;;AmBvuDA;;EAQI,kBAA0C;EAC1C,iBAAyC;AnBouD7C;;AmB3tDA;EACE,kBAAkB;EAClB,cAAc;EACd,qBhBgS6C;AH87C/C;;AmB3tDA;EACE,kBAAkB;EAClB,kBhB4R2C;EgB3R3C,qBhB0R6C;AHo8C/C;;AmBjuDA;;EAQI,chBzNc;AHu7DlB;;AmB1tDA;EACE,gBAAgB;AnB6tDlB;;AmB1tDA;EACE,oBAAoB;EACpB,mBAAmB;EACnB,eAAe;EACf,qBhB6Q4C;AHg9C9C;;AmBjuDA;EAQI,gBAAgB;EAChB,aAAa;EACb,uBhBwQ4C;EgBvQ5C,cAAc;AnB6tDlB;;AqB16DE;EACE,aAAa;EACb,WAAW;EACX,mBlB0c0C;ECjb1C,cAAW;EiBvBX,clBPa;AHo7DjB;;AqB16DE;EACE,kBAAkB;EAClB,SAAS;EACT,OAAO;EACP,UAAU;EACV,aAAa;EACb,eAAe;EACf,uBlBoyBqC;EkBnyBrC,iBAAiB;EjBmEf,mBAtCY;EiB3Bd,gBlBsO6B;EkBrO7B,WlBxDW;EkByDX,wClBtBa;EOxBb,sBP6NgC;AH+vDpC;;AqBz6DI;;EAEE,SAAiC;ArB46DvC;;AqBn9DI;;;;EA8CE,cAAc;ArB46DpB;;AqB19DI;EAoDE,qBlB1CW;EkB6CT,oCHmCwD;EGlCxD,iRH3B0E;EG4B1E,4BAA4B;EAC5B,2DAA6D;EAC7D,gEH+BwD;AlBy4DhE;;AqBn+DI;EA+DI,qBlBrDS;EkBsDT,gDlBtDS;AH89DjB;;AqBx+DI;EAyEI,oCHiBwD;EGhBxD,kFHgBwD;AlBm5DhE;;AqB7+DI;EAiFE,qBlBvEW;EkB0ET,uCHMwD;EGLxD,ujBAA8J;ArB85DtK;;AqBn/DI;EAyFI,qBlB/ES;EkBgFT,gDlBhFS;AH8+DjB;;AqBx/DI;EAkGI,clBxFS;AHk/DjB;;AqB5/DI;;;EAuGI,cAAc;ArB25DtB;;AqBlgEI;EA+GI,clBrGS;AH4/DjB;;AqBtgEI;EAkHM,qBlBxGO;AHggEjB;;AqB1gEI;EAwHM,qBAAkC;EClJxC,yBDmJ+C;ArBs5DnD;;AqB/gEI;EA+HM,gDlBrHO;AHygEjB;;AqBnhEI;EAmIM,qBlBzHO;AH6gEjB;;AqBvhEI;EA6II,qBlBnIS;AHihEjB;;AqB3hEI;EAkJM,qBlBxIO;EkByIP,gDlBzIO;AHshEjB;;AqBphEE;EACE,aAAa;EACb,WAAW;EACX,mBlB0c0C;ECjb1C,cAAW;EiBvBX,clBVa;AHiiEjB;;AqBphEE;EACE,kBAAkB;EAClB,SAAS;EACT,OAAO;EACP,UAAU;EACV,aAAa;EACb,eAAe;EACf,uBlBoyBqC;EkBnyBrC,iBAAiB;EjBmEf,mBAtCY;EiB3Bd,gBlBsO6B;EkBrO7B,WlBxDW;EkByDX,wClBzBa;EOrBb,sBP6NgC;AHy2DpC;;AqBnhEI;;EAEE,SAAiC;ArBshEvC;;AqB7jEI;;;;EA8CE,cAAc;ArBshEpB;;AqBpkEI;EAoDE,qBlB7CW;EkBgDT,oCHmCwD;EGlCxD,4UH3B0E;EG4B1E,4BAA4B;EAC5B,2DAA6D;EAC7D,gEH+BwD;AlBm/DhE;;AqB7kEI;EA+DI,qBlBxDS;EkByDT,gDlBzDS;AH2kEjB;;AqBllEI;EAyEI,oCHiBwD;EGhBxD,kFHgBwD;AlB6/DhE;;AqBvlEI;EAiFE,qBlB1EW;EkB6ET,uCHMwD;EGLxD,knBAA8J;ArBwgEtK;;AqB7lEI;EAyFI,qBlBlFS;EkBmFT,gDlBnFS;AH2lEjB;;AqBlmEI;EAkGI,clB3FS;AH+lEjB;;AqBtmEI;;;EAuGI,cAAc;ArBqgEtB;;AqB5mEI;EA+GI,clBxGS;AHymEjB;;AqBhnEI;EAkHM,qBlB3GO;AH6mEjB;;AqBpnEI;EAwHM,qBAAkC;EClJxC,yBDmJ+C;ArBggEnD;;AqBznEI;EA+HM,gDlBxHO;AHsnEjB;;AqB7nEI;EAmIM,qBlB5HO;AH0nEjB;;AqBjoEI;EA6II,qBlBtIS;AH8nEjB;;AqBroEI;EAkJM,qBlB3IO;EkB4IP,gDlB5IO;AHmoEjB;;AmBx5DA;EACE,aAAa;EACb,mBAAmB;EACnB,mBAAmB;AnB25DrB;;AmB95DA;EASI,WAAW;AnBy5Df;;AcxnEI;EKsNJ;IAeM,aAAa;IACb,mBAAmB;IACnB,uBAAuB;IACvB,gBAAgB;EnBw5DpB;EmB16DF;IAuBM,aAAa;IACb,cAAc;IACd,mBAAmB;IACnB,mBAAmB;IACnB,gBAAgB;EnBs5DpB;EmBj7DF;IAgCM,qBAAqB;IACrB,WAAW;IACX,sBAAsB;EnBo5D1B;EmBt7DF;IAuCM,qBAAqB;EnBk5DzB;EmBz7DF;;IA4CM,WAAW;EnBi5Df;EmB77DF;IAkDM,aAAa;IACb,mBAAmB;IACnB,uBAAuB;IACvB,WAAW;IACX,eAAe;EnB84DnB;EmBp8DF;IAyDM,kBAAkB;IAClB,cAAc;IACd,aAAa;IACb,qBhB+KwC;IgB9KxC,cAAc;EnB84DlB;EmB38DF;IAiEM,mBAAmB;IACnB,uBAAuB;EnB64D3B;EmB/8DF;IAqEM,gBAAgB;EnB64DpB;AACF;;AuB/tEA;EACE,qBAAqB;EAErB,gBpBsR+B;EoBrR/B,cpBMgB;EoBLhB,kBAAkB;EAGlB,sBAAsB;EACtB,yBAAiB;EAAjB,sBAAiB;EAAjB,qBAAiB;EAAjB,iBAAiB;EACjB,6BAA6B;EAC7B,6BAA2C;ECuF3C,yBrB2RkC;ECpQ9B,eAtCY;EoBiBhB,gBrB0L+B;EOlR7B,sBP6NgC;EiB/N9B,qIjBgb6I;AHqzDnJ;;AoBjuEM;EGdN;IHeQ,gBAAgB;EpBquEtB;AACF;;AK/uEE;EkBUE,cpBNc;EoBOd,qBAAqB;AvByuEzB;;AuB1vEA;EAsBI,UAAU;EACV,gDpBMa;AHkuEjB;;AuB/vEA;EA6BI,apBiZ6B;AHq1DjC;;AuBnwEA;EAkCI,eAAsD;AvBquE1D;;AuBvtEA;;EAEE,oBAAoB;AvB0tEtB;;AuBjtEE;EC3DA,WrBCa;EmBDX,yBnB6Ba;EqB3Bf,qBrB2Be;AHqvEjB;;AK5wEE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxByxE7H;;AwB7wEE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxB2wEvF;;AwBtwEE;EAEE,WrB1BW;EqB2BX,yBrBCa;EqBAb,qBrBAa;AHwwEjB;;AwBjwEE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxB6yEnN;;AwB9vEI;;EAKI,gDAAiF;AxB8vEzF;;AuBtvEE;EC3DA,WrBCa;EmBDX,yBnBOc;EqBLhB,qBrBKgB;AHgzElB;;AKjzEE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxB8zE7H;;AwBlzEE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,iDAAiF;AxBgzEvF;;AwB3yEE;EAEE,WrB1BW;EqB2BX,yBrBrBc;EqBsBd,qBrBtBc;AHm0ElB;;AwBtyEE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBk1EnN;;AwBnyEI;;EAKI,iDAAiF;AxBmyEzF;;AuB3xEE;EC3DA,WrBCa;EmBDX,yBnBoCa;EqBlCf,qBrBkCe;AHwzEjB;;AKt1EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBm2E7H;;AwBv1EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,+CAAiF;AxBq1EvF;;AwBh1EE;EAEE,WrB1BW;EqB2BX,yBrBQa;EqBPb,qBrBOa;AH20EjB;;AwB30EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBu3EnN;;AwBx0EI;;EAKI,+CAAiF;AxBw0EzF;;AuBh0EE;EC3DA,WrBCa;EmBDX,yBnBsCa;EqBpCf,qBrBoCe;AH21EjB;;AK33EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBw4E7H;;AwB53EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxB03EvF;;AwBr3EE;EAEE,WrB1BW;EqB2BX,yBrBUa;EqBTb,qBrBSa;AH82EjB;;AwBh3EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxB45EnN;;AwB72EI;;EAKI,gDAAiF;AxB62EzF;;AuBr2EE;EC3DA,crBUgB;EmBVd,yBnBmCa;EqBjCf,qBrBiCe;AHm4EjB;;AKh6EE;EmBAE,crBIc;EmBVd,yBEDoF;EASpF,qBATyH;AxB66E7H;;AwBj6EE;EAEE,crBHc;EmBVd,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxB+5EvF;;AwB15EE;EAEE,crBjBc;EqBkBd,yBrBOa;EqBNb,qBrBMa;AHs5EjB;;AwBr5EE;;EAGE,crB7Bc;EqB8Bd,yBAzCuK;EA6CvK,qBA7C+M;AxBi8EnN;;AwBl5EI;;EAKI,gDAAiF;AxBk5EzF;;AuB14EE;EC3DA,WrBCa;EmBDX,yBnBiCa;EqB/Bf,qBrB+Be;AH06EjB;;AKr8EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBk9E7H;;AwBt8EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,+CAAiF;AxBo8EvF;;AwB/7EE;EAEE,WrB1BW;EqB2BX,yBrBKa;EqBJb,qBrBIa;AH67EjB;;AwB17EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBs+EnN;;AwBv7EI;;EAKI,+CAAiF;AxBu7EzF;;AuB/6EE;EC3DA,crBUgB;EmBVd,yBnBEc;EqBAhB,qBrBAgB;AH8+ElB;;AK1+EE;EmBAE,crBIc;EmBVd,yBEDoF;EASpF,qBATyH;AxBu/E7H;;AwB3+EE;EAEE,crBHc;EmBVd,yBEDoF;EAgBpF,qBAhByH;EAqBvH,iDAAiF;AxBy+EvF;;AwBp+EE;EAEE,crBjBc;EqBkBd,yBrB1Bc;EqB2Bd,qBrB3Bc;AHigFlB;;AwB/9EE;;EAGE,crB7Bc;EqB8Bd,yBAzCuK;EA6CvK,qBA7C+M;AxB2gFnN;;AwB59EI;;EAKI,iDAAiF;AxB49EzF;;AuBp9EE;EC3DA,WrBCa;EmBDX,yBnBSc;EqBPhB,qBrBOgB;AH4gFlB;;AK/gFE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxB4hF7H;;AwBhhFE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,8CAAiF;AxB8gFvF;;AwBzgFE;EAEE,WrB1BW;EqB2BX,yBrBnBc;EqBoBd,qBrBpBc;AH+hFlB;;AwBpgFE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBgjFnN;;AwBjgFI;;EAKI,8CAAiF;AxBigFzF;;AuBn/EE;ECPA,crB7Be;EqB8Bf,qBrB9Be;AH4hFjB;;AKnjFE;EmBwDE,WrB7DW;EqB8DX,yBrBlCa;EqBmCb,qBrBnCa;AHkiFjB;;AwB5/EE;EAEE,+CrBxCa;AHsiFjB;;AwB3/EE;EAEE,crB7Ca;EqB8Cb,6BAA6B;AxB6/EjC;;AwB1/EE;;EAGE,WrBhFW;EqBiFX,yBrBrDa;EqBsDb,qBrBtDa;AHkjFjB;;AwB1/EI;;EAKI,+CrB7DS;AHujFjB;;AuBnhFE;ECPA,crBnDgB;EqBoDhB,qBrBpDgB;AHklFlB;;AKnlFE;EmBwDE,WrB7DW;EqB8DX,yBrBxDc;EqByDd,qBrBzDc;AHwlFlB;;AwB5hFE;EAEE,iDrB9Dc;AH4lFlB;;AwB3hFE;EAEE,crBnEc;EqBoEd,6BAA6B;AxB6hFjC;;AwB1hFE;;EAGE,WrBhFW;EqBiFX,yBrB3Ec;EqB4Ed,qBrB5Ec;AHwmFlB;;AwB1hFI;;EAKI,iDrBnFU;AH6mFlB;;AuBnjFE;ECPA,crBtBe;EqBuBf,qBrBvBe;AHqlFjB;;AKnnFE;EmBwDE,WrB7DW;EqB8DX,yBrB3Ba;EqB4Bb,qBrB5Ba;AH2lFjB;;AwB5jFE;EAEE,+CrBjCa;AH+lFjB;;AwB3jFE;EAEE,crBtCa;EqBuCb,6BAA6B;AxB6jFjC;;AwB1jFE;;EAGE,WrBhFW;EqBiFX,yBrB9Ca;EqB+Cb,qBrB/Ca;AH2mFjB;;AwB1jFI;;EAKI,+CrBtDS;AHgnFjB;;AuBnlFE;ECPA,crBpBe;EqBqBf,qBrBrBe;AHmnFjB;;AKnpFE;EmBwDE,WrB7DW;EqB8DX,yBrBzBa;EqB0Bb,qBrB1Ba;AHynFjB;;AwB5lFE;EAEE,gDrB/Ba;AH6nFjB;;AwB3lFE;EAEE,crBpCa;EqBqCb,6BAA6B;AxB6lFjC;;AwB1lFE;;EAGE,WrBhFW;EqBiFX,yBrB5Ca;EqB6Cb,qBrB7Ca;AHyoFjB;;AwB1lFI;;EAKI,gDrBpDS;AH8oFjB;;AuBnnFE;ECPA,crBvBe;EqBwBf,qBrBxBe;AHspFjB;;AKnrFE;EmBwDE,crBpDc;EqBqDd,yBrB5Ba;EqB6Bb,qBrB7Ba;AH4pFjB;;AwB5nFE;EAEE,+CrBlCa;AHgqFjB;;AwB3nFE;EAEE,crBvCa;EqBwCb,6BAA6B;AxB6nFjC;;AwB1nFE;;EAGE,crBvEc;EqBwEd,yBrB/Ca;EqBgDb,qBrBhDa;AH4qFjB;;AwB1nFI;;EAKI,+CrBvDS;AHirFjB;;AuBnpFE;ECPA,crBzBe;EqB0Bf,qBrB1Be;AHwrFjB;;AKntFE;EmBwDE,WrB7DW;EqB8DX,yBrB9Ba;EqB+Bb,qBrB/Ba;AH8rFjB;;AwB5pFE;EAEE,+CrBpCa;AHksFjB;;AwB3pFE;EAEE,crBzCa;EqB0Cb,6BAA6B;AxB6pFjC;;AwB1pFE;;EAGE,WrBhFW;EqBiFX,yBrBjDa;EqBkDb,qBrBlDa;AH8sFjB;;AwB1pFI;;EAKI,+CrBzDS;AHmtFjB;;AuBnrFE;ECPA,crBxDgB;EqByDhB,qBrBzDgB;AHuvFlB;;AKnvFE;EmBwDE,crBpDc;EqBqDd,yBrB7Dc;EqB8Dd,qBrB9Dc;AH6vFlB;;AwB5rFE;EAEE,iDrBnEc;AHiwFlB;;AwB3rFE;EAEE,crBxEc;EqByEd,6BAA6B;AxB6rFjC;;AwB1rFE;;EAGE,crBvEc;EqBwEd,yBrBhFc;EqBiFd,qBrBjFc;AH6wFlB;;AwB1rFI;;EAKI,iDrBxFU;AHkxFlB;;AuBntFE;ECPA,crBjDgB;EqBkDhB,qBrBlDgB;AHgxFlB;;AKnxFE;EmBwDE,WrB7DW;EqB8DX,yBrBtDc;EqBuDd,qBrBvDc;AHsxFlB;;AwB5tFE;EAEE,8CrB5Dc;AH0xFlB;;AwB3tFE;EAEE,crBjEc;EqBkEd,6BAA6B;AxB6tFjC;;AwB1tFE;;EAGE,WrBhFW;EqBiFX,yBrBzEc;EqB0Ed,qBrB1Ec;AHsyFlB;;AwB1tFI;;EAKI,8CrBjFU;AH2yFlB;;AuBxuFA;EACE,gBpB4M+B;EoB3M/B,cpBjDe;EoBkDf,qBpB2F4C;AHgpF9C;;AKpzFE;EkB4EE,cpByF8D;EoBxF9D,0BpByF+C;AHmpFnD;;AuBnvFA;EAYI,0BpBoF+C;AHupFnD;;AuBvvFA;EAiBI,cpBtFc;EoBuFd,oBAAoB;AvB0uFxB;;AuB/tFA;ECPE,oBrB0SgC;ECnR5B,kBAtCY;EoBiBhB,gBrB+H+B;EOvN7B,qBP8N+B;AHqmFnC;;AuBluFA;ECXE,uBrBqSiC;EC9Q7B,mBAtCY;EoBiBhB,gBrBgI+B;EOxN7B,qBP+N+B;AH2mFnC;;AuBhuFA;EACE,cAAc;EACd,WAAW;AvBmuFb;;AuBruFA;EAMI,kBpBuT+B;AH46EnC;;AuB9tFA;;;EAII,WAAW;AvBguFf;;AyB32FA;ELgBM,gCjBiP2C;AH8mFjD;;AoB31FM;EKpBN;ILqBQ,gBAAgB;EpB+1FtB;AACF;;AyBr3FA;EAII,UAAU;AzBq3Fd;;AyBj3FA;EAEI,aAAa;AzBm3FjB;;AyB/2FA;EACE,kBAAkB;EAClB,SAAS;EACT,gBAAgB;ELDZ,6BjBkPwC;AHkoF9C;;AoBh3FM;EKNN;ILOQ,gBAAgB;EpBo3FtB;AACF;;A0Bz4FA;;;;EAIE,kBAAkB;A1B44FpB;;A0Bz4FA;EACE,mBAAmB;A1B44FrB;;A2Bx3FI;EACE,qBAAqB;EACrB,oBxB+N0C;EwB9N1C,uBxB6N0C;EwB5N1C,WAAW;EAhCf,uBAA8B;EAC9B,qCAA4C;EAC5C,gBAAgB;EAChB,oCAA2C;A3B45F7C;;A2Bv2FI;EACE,cAAc;A3B02FpB;;A0Bp5FA;EACE,kBAAkB;EAClB,SAAS;EACT,OAAO;EACP,avBwpBsC;EuBvpBtC,aAAa;EACb,WAAW;EACX,gBvBguBuC;EuB/tBvC,iBvBguBmC;EuB/tBnC,oBAA4B;EtBsGxB,eAtCY;EsB9DhB,cvBXgB;EuBYhB,gBAAgB;EAChB,gBAAgB;EAChB,sBvBvBa;EuBwBb,4BAA4B;EAC5B,qCvBfa;EOCX,sBP6NgC;AHysFpC;;A0B/4FI;EACE,WAAW;EACX,OAAO;A1Bk5Fb;;A0B/4FI;EACE,QAAQ;EACR,UAAU;A1Bk5FhB;;Act4FI;EYnBA;IACE,WAAW;IACX,OAAO;E1B65FX;E0B15FE;IACE,QAAQ;IACR,UAAU;E1B45Fd;AACF;;Acj5FI;EYnBA;IACE,WAAW;IACX,OAAO;E1Bw6FX;E0Br6FE;IACE,QAAQ;IACR,UAAU;E1Bu6Fd;AACF;;Ac55FI;EYnBA;IACE,WAAW;IACX,OAAO;E1Bm7FX;E0Bh7FE;IACE,QAAQ;IACR,UAAU;E1Bk7Fd;AACF;;Acv6FI;EYnBA;IACE,WAAW;IACX,OAAO;E1B87FX;E0B37FE;IACE,QAAQ;IACR,UAAU;E1B67Fd;AACF;;A0Bv7FA;EAEI,SAAS;EACT,YAAY;EACZ,aAAa;EACb,uBvB8rBuC;AH2vE3C;;A2Bx9FI;EACE,qBAAqB;EACrB,oBxB+N0C;EwB9N1C,uBxB6N0C;EwB5N1C,WAAW;EAzBf,aAAa;EACb,qCAA4C;EAC5C,0BAAiC;EACjC,oCAA2C;A3Bq/F7C;;A2Bv8FI;EACE,cAAc;A3B08FpB;;A0Bh8FA;EAEI,MAAM;EACN,WAAW;EACX,UAAU;EACV,aAAa;EACb,qBvBgrBuC;AHkxE3C;;A2B/+FI;EACE,qBAAqB;EACrB,oBxB+N0C;EwB9N1C,uBxB6N0C;EwB5N1C,WAAW;EAlBf,mCAA0C;EAC1C,eAAe;EACf,sCAA6C;EAC7C,wBAA+B;A3BqgGjC;;A2B99FI;EACE,cAAc;A3Bi+FpB;;A2B9/FI;EDmDE,iBAAiB;A1B+8FvB;;A0B18FA;EAEI,MAAM;EACN,WAAW;EACX,UAAU;EACV,aAAa;EACb,sBvB+pBuC;AH6yE3C;;A2B1gGI;EACE,qBAAqB;EACrB,oBxB+N0C;EwB9N1C,uBxB6N0C;EwB5N1C,WAAW;A3B6gGjB;;A2BjhGI;EAgBI,aAAa;A3BqgGrB;;A2BlgGM;EACE,qBAAqB;EACrB,qBxB4MwC;EwB3MxC,uBxB0MwC;EwBzMxC,WAAW;EA9BjB,mCAA0C;EAC1C,yBAAgC;EAChC,sCAA6C;A3BoiG/C;;A2BngGI;EACE,cAAc;A3BsgGpB;;A2BhhGM;EDiDA,iBAAiB;A1Bm+FvB;;A0B59FA;EAKI,WAAW;EACX,YAAY;A1B29FhB;;A0Bt9FA;EE9GE,SAAS;EACT,gBAAmB;EACnB,gBAAgB;EAChB,6BzBCgB;AHukGlB;;A0Bt9FA;EACE,cAAc;EACd,WAAW;EACX,uBvBmpBwC;EuBlpBxC,WAAW;EACX,gBvBgK+B;EuB/J/B,cvBhHgB;EuBiHhB,mBAAmB;EAEnB,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;A1Bw9FX;;AK7kGE;EqBoIE,cvBmnBqD;EuBlnBrD,qBAAqB;EJ/IrB,yBnBGc;AH0lGlB;;A0Bz+FA;EAiCI,WvBpJW;EuBqJX,qBAAqB;EJtJrB,yBnB6Ba;AHskGjB;;A0B/+FA;EAwCI,cvBtJc;EuBuJd,oBAAoB;EACpB,6BAA6B;A1B28FjC;;A0Bn8FA;EACE,cAAc;A1Bs8FhB;;A0Bl8FA;EACE,cAAc;EACd,sBvB6lBwC;EuB5lBxC,gBAAgB;EtBrDZ,mBAtCY;EsB6FhB,cvBzKgB;EuB0KhB,mBAAmB;A1Bq8FrB;;A0Bj8FA;EACE,cAAc;EACd,uBvBmlBwC;EuBllBxC,cvB9KgB;AHknGlB;;A6B/nGA;;EAEE,kBAAkB;EAClB,oBAAoB;EACpB,sBAAsB;A7BkoGxB;;A6BtoGA;;EAOI,kBAAkB;EAClB,cAAc;A7BooGlB;;AKnoGE;;EwBII,UAAU;A7BooGhB;;A6BjpGA;;;;EAkBM,UAAU;A7BsoGhB;;A6BhoGA;EACE,aAAa;EACb,eAAe;EACf,2BAA2B;A7BmoG7B;;A6BtoGA;EAMI,WAAW;A7BooGf;;A6BhoGA;;EAII,iB1BmM6B;AH87FjC;;A6BroGA;;EnBHI,0BmBa8B;EnBZ9B,6BmBY8B;A7BioGlC;;A6B3oGA;;EnBWI,yBmBI6B;EnBH7B,4BmBG6B;A7BkoGjC;;A6BlnGA;EACE,wBAAmC;EACnC,uBAAkC;A7BqnGpC;;A6BvnGA;;;EAOI,cAAc;A7BsnGlB;;A6BnnGE;EACE,eAAe;A7BsnGnB;;A6BlnGA;EACE,uBAAsC;EACtC,sBAAqC;A7BqnGvC;;A6BlnGA;EACE,sBAAsC;EACtC,qBAAqC;A7BqnGvC;;A6BjmGA;EACE,sBAAsB;EACtB,uBAAuB;EACvB,uBAAuB;A7BomGzB;;A6BvmGA;;EAOI,WAAW;A7BqmGf;;A6B5mGA;;EAYI,gB1BkH6B;AHm/FjC;;A6BjnGA;;EnBrEI,6BmBuF+B;EnBtF/B,4BmBsF+B;A7BqmGnC;;A6BvnGA;;EnBnFI,yBmB0G4B;EnBzG5B,0BmByG4B;A7BsmGhC;;A6BrlGA;;EAGI,gBAAgB;A7BulGpB;;A6B1lGA;;;;EAOM,kBAAkB;EAClB,sBAAsB;EACtB,oBAAoB;A7B0lG1B;;A8BnvGA;EACE,kBAAkB;EAClB,aAAa;EACb,eAAe;EACf,oBAAoB;EACpB,WAAW;A9BsvGb;;A8B3vGA;;;;EAWI,kBAAkB;EAClB,cAAc;EACd,SAAS;EACT,YAAY;EACZ,gBAAgB;A9BuvGpB;;A8BtwGA;;;;;;;;;;;;EAoBM,iB3BkN2B;AH+iGjC;;A8BrxGA;;;EA4BI,UAAU;A9B+vGd;;A8B3xGA;EAiCI,UAAU;A9B8vGd;;A8B/xGA;;EpB0CI,yBoBJmD;EpBKnD,4BoBLmD;A9B+vGvD;;A8BryGA;EA4CI,aAAa;EACb,mBAAmB;A9B6vGvB;;A8B1yGA;;EpB0CI,yBoBMsE;EpBLtE,4BoBKsE;A9BgwG1E;;A8BhzGA;;;EpB4BI,0BoB2BgC;EpB1BhC,6BoB0BgC;A9BgwGpC;;A8BvzGA;;;EpB4BI,0BoBmCgC;EpBlChC,6BoBkCgC;A9B+vGpC;;A8BnvGA;;EAEE,aAAa;A9BsvGf;;A8BxvGA;;EAQI,kBAAkB;EAClB,UAAU;A9BqvGd;;A8B9vGA;;EAYM,UAAU;A9BuvGhB;;A8BnwGA;;;;;;;;EAoBI,iB3BuI6B;AHmnGjC;;A8BtvGA;EAAuB,kB3BmIU;AHunGjC;;A8BzvGA;EAAsB,iB3BkIW;AH2nGjC;;A8BrvGA;EACE,aAAa;EACb,mBAAmB;EACnB,yB3B8QkC;E2B7QlC,gBAAgB;E1BSZ,eAtCY;E0B+BhB,gB3BuK+B;E2BtK/B,gB3B2K+B;E2B1K/B,c3B5GgB;E2B6GhB,kBAAkB;EAClB,mBAAmB;EACnB,yB3BpHgB;E2BqHhB,yB3BnHgB;EOOd,sBP6NgC;AHwoGpC;;A8BrwGA;;EAkBI,aAAa;A9BwvGjB;;A8B9uGA;;EAEE,gCZtB8D;AlBuwGhE;;A8B9uGA;;;;;;EAME,oB3ByPgC;ECnR5B,kBAtCY;E0BkEhB,gB3B8E+B;EOvN7B,qBP8N+B;AH6pGnC;;A8B9uGA;;EAEE,kCZvC8D;AlBwxGhE;;A8B9uGA;;;;;;EAME,uB3BmOiC;EC9Q7B,mBAtCY;E0BmFhB,gB3B8D+B;EOxN7B,qBP+N+B;AH6qGnC;;A8B9uGA;;EAEE,sBAA0E;A9BivG5E;;A8BtuGA;;;;;;;;EpB3JI,0BoBmK4B;EpBlK5B,6BoBkK4B;A9B0uGhC;;A8BvuGA;;;;;;EpBxJI,yBoB8J2B;EpB7J3B,4BoB6J2B;A9B2uG/B;;A+Bh7GA;EACE,kBAAkB;EAClB,UAAU;EACV,cAAc;EACd,kBAA+C;EAC/C,oBAAqE;EACrE,iCAAmB;EAAnB,mBAAmB;A/Bm7GrB;;A+Bh7GA;EACE,oBAAoB;EACpB,kB5Bwf0C;AH27F5C;;A+Bh7GA;EACE,kBAAkB;EAClB,OAAO;EACP,WAAW;EACX,W5Bof0C;E4Bnf1C,eAAkF;EAClF,UAAU;A/Bm7GZ;;A+Bz7GA;EASI,W5BzBW;E4B0BX,qB5BEa;EmB7Bb,yBnB6Ba;AHm7GjB;;A+B/7GA;EAoBM,gD5BRW;AHu7GjB;;A+Bn8GA;EAyBI,qB5BqbsE;AHy/F1E;;A+Bv8GA;EA6BI,W5B7CW;E4B8CX,yB5Bif8E;E4Bhf9E,qB5Bgf8E;AH87FlF;;A+B78GA;EAuCM,c5BjDY;AH29GlB;;A+Bj9GA;EA0CQ,yB5BxDU;AHm+GlB;;A+Bj6GA;EACE,kBAAkB;EAClB,gBAAgB;EAEhB,mBAAmB;A/Bm6GrB;;A+Bv6GA;EASI,kBAAkB;EAClB,YAA+E;EAC/E,aAA+D;EAC/D,cAAc;EACd,W5BubwC;E4BtbxC,Y5BsbwC;E4BrbxC,oBAAoB;EACpB,WAAW;EACX,sB5BrFW;E4BsFX,yB5B+I6B;AHmxGjC;;A+Bp7GA;EAwBI,kBAAkB;EAClB,YAA+E;EAC/E,aAA+D;EAC/D,cAAc;EACd,W5BwawC;E4BvaxC,Y5BuawC;E4BtaxC,WAAW;EACX,mCAAgE;A/Bg6GpE;;A+Bv5GA;ErBjGI,sBP6NgC;AH+xGpC;;A+B35GA;EAOM,kOb7D4E;AlBq9GlF;;A+B/5GA;EAaM,qB5B7FW;EmB7Bb,yBnB6Ba;AHo/GjB;;A+Bp6GA;EAkBM,+KbxE4E;AlB89GlF;;A+Bx6GA;ET7GI,wCnB6Ba;AH4/GjB;;A+B56GA;ET7GI,wCnB6Ba;AHggHjB;;A+B54GA;EAGI,kB5ByZ+C;AHo/FnD;;A+Bh5GA;EAQM,8KblG4E;AlB8+GlF;;A+Bp5GA;ETjJI,wCnB6Ba;AH4gHjB;;A+Bh4GA;EACE,qBAA2D;A/Bm4G7D;;A+Bp4GA;EAKM,cAAqD;EACrD,c5BiY+E;E4BhY/E,mBAAmB;EAEnB,qB5B+X4E;AHmgGlF;;A+B34GA;EAaM,wBblE0D;EamE1D,0BbnE0D;EaoE1D,uBbhD0D;EaiD1D,wBbjD0D;EakD1D,yB5BpLY;E4BsLZ,qB5BqX4E;EiBviB5E,yIjByf+H;AH2jGrI;;AoBhjHM;EW2JN;IX1JQ,gBAAgB;EpBojHtB;AACF;;A+B35GA;EA0BM,sB5BlMS;E4BmMT,8BAA4E;A/Bq4GlF;;A+Bh6GA;ETzKI,wCnB6Ba;AHgjHjB;;A+Bv3GA;EACE,qBAAqB;EACrB,WAAW;EACX,mCbrG8D;EasG9D,0C5BmKkC;ECpQ9B,eAtCY;E2B0IhB,gB5B4D+B;E4B3D/B,gB5BgE+B;E4B/D/B,c5BvNgB;E4BwNhB,sBAAsB;EACtB,uO5BkW+I;E4BjW/I,yB5B7NgB;EOOd,sBP6NgC;E4BJlC,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/Bw3GlB;;A+Bv4GA;EAkBI,qB5BuPsE;E4BtPtE,UAAU;EAKR,gD5BjNW;AHskHjB;;A+B74GA;EAiCM,c5B/OY;E4BgPZ,sB5BvPS;AHumHf;;A+Bl5GA;EAwCI,YAAY;EACZ,sB5B8HgC;E4B7HhC,sBAAsB;A/B82G1B;;A+Bx5GA;EA8CI,c5B7Pc;E4B8Pd,yB5BlQc;AHgnHlB;;A+B75GA;EAoDI,aAAa;A/B62GjB;;A+Bj6GA;EAyDI,kBAAkB;EAClB,0B5BxQc;AHonHlB;;A+Bx2GA;EACE,kCbjK8D;EakK9D,oB5BgHkC;E4B/GlC,uB5B+GkC;E4B9GlC,oB5B+GiC;EC9Q7B,mBAtCY;AJijHlB;;A+Bx2GA;EACE,gCbzK8D;Ea0K9D,mB5B6GiC;E4B5GjC,sB5B4GiC;E4B3GjC,kB5B4GgC;ECnR5B,kBAtCY;AJyjHlB;;A+Bn2GA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,WAAW;EACX,mCbzL8D;Ea0L9D,gBAAgB;A/Bs2GlB;;A+Bn2GA;EACE,kBAAkB;EAClB,UAAU;EACV,WAAW;EACX,mCbjM8D;EakM9D,SAAS;EACT,gBAAgB;EAChB,UAAU;A/Bs2GZ;;A+B72GA;EAUI,qB5BoKsE;E4BnKtE,gD5B/Ra;AHsoHjB;;A+Bl3GA;;EAiBI,yB5B/Tc;AHqqHlB;;A+Bv3GA;EAsBM,iB5B2TQ;AH0iGd;;A+B33GA;EA2BI,0BAA0B;A/Bo2G9B;;A+Bh2GA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,OAAO;EACP,UAAU;EACV,mCblO8D;EamO9D,yB5BsCkC;E4BrClC,gBAAgB;EAEhB,gB5BjE+B;E4BkE/B,gB5B7D+B;E4B8D/B,c5BpVgB;E4BqVhB,sB5B5Va;E4B6Vb,yB5BzVgB;EOOd,sBP6NgC;AHw9GpC;;A+Bj3GA;EAmBI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,UAAU;EACV,cAAc;EACd,6BbrP4D;EasP5D,yB5BmBgC;E4BlBhC,gB5B7E6B;E4B8E7B,c5BpWc;E4BqWd,iBAAiB;ET7WjB,yBnBGc;E4B4Wd,oBAAoB;ErBnWpB,kCqBoWgF;A/Bk2GpF;;A+Bx1GA;EACE,WAAW;EACX,cb3Q2B;Ea4Q3B,UAAU;EACV,6BAA6B;EAC7B,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/B21GlB;;A+Bh2GA;EAQI,UAAU;A/B41Gd;;A+Bp2GA;EAY8B,gE5BzWb;AHqsHjB;;A+Bx2GA;EAa8B,gE5B1Wb;AHysHjB;;A+B52GA;EAc8B,gE5B3Wb;AH6sHjB;;A+Bh3GA;EAkBI,SAAS;A/Bk2Gb;;A+Bp3GA;EAsBI,W5BmN6C;E4BlN7C,Y5BkN6C;E4BjN7C,oBAAyE;ETlZzE,yBnB6Ba;E4BuXb,S5BkN0C;EO1lB1C,mBP2lB6C;EiB7lB3C,oHjByf+H;EiBzf/H,4GjByf+H;E4B3GjI,wBAAgB;EAAhB,gBAAgB;A/Bi2GpB;;AoB3uHM;EW4WN;IX3WQ,wBAAgB;IAAhB,gBAAgB;EpB+uHtB;AACF;;A+Br4GA;ET1XI,yBnB2mB2E;AHwpG/E;;A+Bz4GA;EAsCI,W5B4LoC;E4B3LpC,c5B4LqC;E4B3LrC,kBAAkB;EAClB,e5B2LuC;E4B1LvC,yB5Bhac;E4Biad,yBAAyB;ErBzZzB,mBPolBoC;AH6qGxC;;A+Bn5GA;EAiDI,W5BwL6C;E4BvL7C,Y5BuL6C;EmBnmB7C,yBnB6Ba;E4BiZb,S5BwL0C;EO1lB1C,mBP2lB6C;EiB7lB3C,iHjByf+H;EiBzf/H,4GjByf+H;E4BjFjI,qBAAgB;EAAhB,gBAAgB;A/Bq2GpB;;AoBzwHM;EW4WN;IX3WQ,qBAAgB;IAAhB,gBAAgB;EpB6wHtB;AACF;;A+Bn6GA;ET1XI,yBnB2mB2E;AHsrG/E;;A+Bv6GA;EAgEI,W5BkKoC;E4BjKpC,c5BkKqC;E4BjKrC,kBAAkB;EAClB,e5BiKuC;E4BhKvC,yB5B1bc;E4B2bd,yBAAyB;ErBnbzB,mBPolBoC;AH2sGxC;;A+Bj7GA;EA2EI,W5B8J6C;E4B7J7C,Y5B6J6C;E4B5J7C,aAAa;EACb,oB5BtE+B;E4BuE/B,mB5BvE+B;EmBlY/B,yBnB6Ba;E4B8ab,S5B2J0C;EO1lB1C,mBP2lB6C;EiB7lB3C,gHjByf+H;EiBzf/H,4GjByf+H;E4BpDjI,gBAAgB;A/By2GpB;;AoB1yHM;EW4WN;IX3WQ,oBAAgB;IAAhB,gBAAgB;EpB8yHtB;AACF;;A+Bp8GA;ET1XI,yBnB2mB2E;AHutG/E;;A+Bx8GA;EA6FI,W5BqIoC;E4BpIpC,c5BqIqC;E4BpIrC,kBAAkB;EAClB,e5BoIuC;E4BnIvC,6BAA6B;EAC7B,yBAAyB;EACzB,oBAA4C;A/B+2GhD;;A+Bl9GA;EAwGI,yB5B9dc;EOQd,mBPolBoC;AHivGxC;;A+Bv9GA;EA6GI,kBAAkB;EAClB,yB5Bpec;EOQd,mBPolBoC;AHuvGxC;;A+B79GA;EAoHM,yB5BxeY;AHq1HlB;;A+Bj+GA;EAwHM,eAAe;A/B62GrB;;A+Br+GA;EA4HM,yB5BhfY;AH61HlB;;A+Bz+GA;EAgIM,eAAe;A/B62GrB;;A+B7+GA;EAoIM,yB5BxfY;AHq2HlB;;A+Bx2GA;;;EXzfM,4GjByf+H;AH82GrI;;AoBn2HM;EWqfN;;;IXpfQ,gBAAgB;EpBy2HtB;AACF;;AgC13HA;EACE,aAAa;EACb,eAAe;EACf,eAAe;EACf,gBAAgB;EAChB,gBAAgB;AhC63HlB;;AgC13HA;EACE,cAAc;EACd,oB7ByqBsC;AHotGxC;;AK53HE;E2BGE,qBAAqB;AhC63HzB;;AgCn4HA;EAWI,c7BXc;E6BYd,oBAAoB;EACpB,eAAe;AhC43HnB;;AgCp3HA;EACE,gC7BzBgB;AHg5HlB;;AgCx3HA;EAII,mB7BsM6B;E6BrM7B,6BAAgD;EtBZhD,+BPoNgC;EOnNhC,gCPmNgC;AHkrHpC;;AKj5HE;E2B2BI,qC7BjCY;AH25HlB;;AgCn4HA;EAaM,c7BlCY;E6BmCZ,6BAA6B;EAC7B,yBAAyB;AhC03H/B;;AgCz4HA;;EAqBI,c7BzCc;E6B0Cd,sB7BjDW;E6BkDX,kC7BlDW;AH26Hf;;AgCh5HA;EA4BI,gB7B8K6B;EOjN7B,yBsBqC4B;EtBpC5B,0BsBoC4B;AhCw3HhC;;AgC/2HA;EtBvDI,sBP6NgC;AH6sHpC;;AgCn3HA;;EAOI,W7BzEW;E6B0EX,yB7B9Ca;AH+5HjB;;AgCx2HA;;EAGI,cAAc;EACd,kBAAkB;AhC02HtB;;AgCt2HA;;EAGI,aAAa;EACb,YAAY;EACZ,kBAAkB;AhCw2HtB;;AgC/1HA;EAEI,aAAa;AhCi2HjB;;AgCn2HA;EAKI,cAAc;AhCk2HlB;;AiCt8HA;EACE,kBAAkB;EAClB,aAAa;EACb,eAAe;EACf,mBAAmB;EACnB,8BAA8B;EAC9B,oB9BgHW;AHy1Hb;;AiC/8HA;;EAWI,aAAa;EACb,eAAe;EACf,mBAAmB;EACnB,8BAA8B;AjCy8HlC;;AiCr7HA;EACE,qBAAqB;EACrB,sB9BiqB+E;E8BhqB/E,yB9BgqB+E;E8B/pB/E,kB9BgFW;ECRP,kBAtCY;E6BhChB,oBAAoB;EACpB,mBAAmB;AjCw7HrB;;AKl+HE;E4B6CE,qBAAqB;AjCy7HzB;;AiCh7HA;EACE,aAAa;EACb,sBAAsB;EACtB,eAAe;EACf,gBAAgB;EAChB,gBAAgB;AjCm7HlB;;AiCx7HA;EAQI,gBAAgB;EAChB,eAAe;AjCo7HnB;;AiC77HA;EAaI,gBAAgB;EAChB,WAAW;AjCo7Hf;;AiC36HA;EACE,qBAAqB;EACrB,mB9BwlBuC;E8BvlBvC,sB9BulBuC;AHu1GzC;;AiCl6HA;EACE,gBAAgB;EAChB,YAAY;EAGZ,mBAAmB;AjCm6HrB;;AiC/5HA;EACE,wB9BmmBwC;EC1lBpC,kBAtCY;E6B+BhB,cAAc;EACd,6BAA6B;EAC7B,6BAAuC;EvBxGrC,sBP6NgC;AH8yHpC;;AK7gIE;E4B8GE,qBAAqB;AjCm6HzB;;AiC75HA;EACE,qBAAqB;EACrB,YAAY;EACZ,aAAa;EACb,sBAAsB;EACtB,WAAW;EACX,qCAAqC;AjCg6HvC;;AiC75HA;EACE,gB9B+kBsC;E8B9kBtC,gBAAgB;AjCg6HlB;;Act+HI;EmBgFC;;IAGK,gBAAgB;IAChB,eAAe;EjCy5HvB;AACF;;Ac3/HI;EmB6FA;IAoBI,qBAAqB;IACrB,2BAA2B;EjC+4HjC;EiCp6HG;IAwBK,mBAAmB;EjC+4H3B;EiCv6HG;IA2BO,kBAAkB;EjC+4H5B;EiC16HG;IA+BO,qB9BwhB6B;I8BvhB7B,oB9BuhB6B;EHu3GvC;EiC96HG;;IAsCK,iBAAiB;EjC44HzB;EiCl7HG;IAqDK,iBAAiB;EjCg4HzB;EiCr7HG;IAyDK,wBAAwB;IAGxB,gBAAgB;EjC63HxB;EiCz7HG;IAgEK,aAAa;EjC43HrB;AACF;;Ac7gII;EmBgFC;;IAGK,gBAAgB;IAChB,eAAe;EjCg8HvB;AACF;;AcliII;EmB6FA;IAoBI,qBAAqB;IACrB,2BAA2B;EjCs7HjC;EiC38HG;IAwBK,mBAAmB;EjCs7H3B;EiC98HG;IA2BO,kBAAkB;EjCs7H5B;EiCj9HG;IA+BO,qB9BwhB6B;I8BvhB7B,oB9BuhB6B;EH85GvC;EiCr9HG;;IAsCK,iBAAiB;EjCm7HzB;EiCz9HG;IAqDK,iBAAiB;EjCu6HzB;EiC59HG;IAyDK,wBAAwB;IAGxB,gBAAgB;EjCo6HxB;EiCh+HG;IAgEK,aAAa;EjCm6HrB;AACF;;AcpjII;EmBgFC;;IAGK,gBAAgB;IAChB,eAAe;EjCu+HvB;AACF;;AczkII;EmB6FA;IAoBI,qBAAqB;IACrB,2BAA2B;EjC69HjC;EiCl/HG;IAwBK,mBAAmB;EjC69H3B;EiCr/HG;IA2BO,kBAAkB;EjC69H5B;EiCx/HG;IA+BO,qB9BwhB6B;I8BvhB7B,oB9BuhB6B;EHq8GvC;EiC5/HG;;IAsCK,iBAAiB;EjC09HzB;EiChgIG;IAqDK,iBAAiB;EjC88HzB;EiCngIG;IAyDK,wBAAwB;IAGxB,gBAAgB;EjC28HxB;EiCvgIG;IAgEK,aAAa;EjC08HrB;AACF;;Ac3lII;EmBgFC;;IAGK,gBAAgB;IAChB,eAAe;EjC8gIvB;AACF;;AchnII;EmB6FA;IAoBI,qBAAqB;IACrB,2BAA2B;EjCogIjC;EiCzhIG;IAwBK,mBAAmB;EjCogI3B;EiC5hIG;IA2BO,kBAAkB;EjCogI5B;EiC/hIG;IA+BO,qB9BwhB6B;I8BvhB7B,oB9BuhB6B;EH4+GvC;EiCniIG;;IAsCK,iBAAiB;EjCigIzB;EiCviIG;IAqDK,iBAAiB;EjCq/HzB;EiC1iIG;IAyDK,wBAAwB;IAGxB,gBAAgB;EjCk/HxB;EiC9iIG;IAgEK,aAAa;EjCi/HrB;AACF;;AiCvjIA;EAyBQ,qBAAqB;EACrB,2BAA2B;AjCkiInC;;AiC5jIA;;EAQU,gBAAgB;EAChB,eAAe;AjCyjIzB;;AiClkIA;EA6BU,mBAAmB;AjCyiI7B;;AiCtkIA;EAgCY,kBAAkB;AjC0iI9B;;AiC1kIA;EAoCY,qB9BwhB6B;E8BvhB7B,oB9BuhB6B;AHmhHzC;;AiC/kIA;;EA2CU,iBAAiB;AjCyiI3B;;AiCplIA;EA0DU,iBAAiB;AjC8hI3B;;AiCxlIA;EA8DU,wBAAwB;EAGxB,gBAAgB;AjC4hI1B;;AiC7lIA;EAqEU,aAAa;AjC4hIvB;;AiC/gIA;EAEI,yB9BvNW;AHwuIf;;AKzuIE;E4B2NI,yB9B1NS;AH4uIf;;AiCvhIA;EAWM,yB9BhOS;AHgvIf;;AKjvIE;E4BoOM,yB9BnOO;AHovIf;;AiC/hIA;EAkBQ,yB9BvOO;AHwvIf;;AiCniIA;;;;EA0BM,yB9B/OS;AH+vIf;;AiC1iIA;EA+BI,yB9BpPW;E8BqPX,gC9BrPW;AHowIf;;AiC/iIA;EAoCI,mRf7M8E;AlB4tIlF;;AiCnjIA;EAwCI,yB9B7PW;AH4wIf;;AiCvjIA;EA0CM,yB9B/PS;AHgxIf;;AKjxIE;E4BmQM,yB9BlQO;AHoxIf;;AiC3gIA;EAEI,W9BrRW;AHkyIf;;AKzxIE;E4B+QI,W9BxRS;AHsyIf;;AiCnhIA;EAWM,+B9B9RS;AH0yIf;;AKjyIE;E4BwRM,gC9BjSO;AH8yIf;;AiC3hIA;EAkBQ,gC9BrSO;AHkzIf;;AiC/hIA;;;;EA0BM,W9B7SS;AHyzIf;;AiCtiIA;EA+BI,+B9BlTW;E8BmTX,sC9BnTW;AH8zIf;;AiC3iIA;EAoCI,yRfjQ8E;AlB4wIlF;;AiC/iIA;EAwCI,+B9B3TW;AHs0If;;AiCnjIA;EA0CM,W9B7TS;AH00If;;AKj0IE;E4BuTM,W9BhUO;AH80If;;AkCj1IA;EACE,kBAAkB;EAClB,aAAa;EACb,sBAAsB;EACtB,YAAY;EAEZ,qBAAqB;EACrB,sB/BJa;E+BKb,2BAA2B;EAC3B,sC/BIa;EOCX,sBP6NgC;AHknIpC;;AkC71IA;EAaI,eAAe;EACf,cAAc;AlCo1IlB;;AkCl2IA;EAkBI,mBAAmB;EACnB,sBAAsB;AlCo1I1B;;AkCv2IA;EAsBM,mBAAmB;ExBCrB,2CQmH4D;ERlH5D,4CQkH4D;AlBmuIhE;;AkC72IA;EA2BM,sBAAsB;ExBUxB,+CQqG4D;ERpG5D,8CQoG4D;AlByuIhE;;AkCn3IA;;EAoCI,aAAa;AlCo1IjB;;AkCh1IA;EAGE,cAAc;EAGd,eAAe;EACf,gB/B8wByC;AHikH3C;;AkC30IA;EACE,sB/BwwBwC;AHskH1C;;AkC30IA;EACE,qBAA+B;EAC/B,gBAAgB;AlC80IlB;;AkC30IA;EACE,gBAAgB;AlC80IlB;;AKn4IE;E6B0DE,qBAAqB;AlC60IzB;;AkC/0IA;EAMI,oB/BuvBuC;AHslH3C;;AkCr0IA;EACE,wB/B8uByC;E+B7uBzC,gBAAgB;EAEhB,qC/BrEa;E+BsEb,6C/BtEa;AH64If;;AkC50IA;ExBhEI,0DwBwE8E;AlCw0IlF;;AkCp0IA;EACE,wB/BkuByC;E+BhuBzC,qC/BhFa;E+BiFb,0C/BjFa;AHu5If;;AkC10IA;ExB5EI,0DQ4H4D;AlB8xIhE;;AkC9zIA;EACE,uBAAiC;EACjC,uB/BgtBwC;E+B/sBxC,sBAAgC;EAChC,gBAAgB;AlCi0IlB;;AkC9zIA;EACE,uBAAiC;EACjC,sBAAgC;AlCi0IlC;;AkC7zIA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,OAAO;EACP,gB/B2sByC;EO1zBvC,kCQ4H4D;AlBozIhE;;AkC7zIA;;;EAGE,cAAc;EACd,WAAW;AlCg0Ib;;AkC7zIA;;ExBjHI,2CQmH4D;ERlH5D,4CQkH4D;AlBi0IhE;;AkC9zIA;;ExBxGI,+CQqG4D;ERpG5D,8CQoG4D;AlBu0IhE;;AkC5zIA;EAEI,mB/BmrBsD;AH2oH1D;;Ac75II;EoB6FJ;IAMI,aAAa;IACb,mBAAmB;IACnB,mB/B6qBsD;I+B5qBtD,kB/B4qBsD;EHmpHxD;EkCx0IF;IAaM,YAAY;IACZ,kB/BuqBoD;I+BtqBpD,gBAAgB;IAChB,iB/BqqBoD;EHypHxD;AACF;;AkCrzIA;EAII,mB/BupBsD;AH8pH1D;;Ach7II;EoBuHJ;IAQI,aAAa;IACb,mBAAmB;ElCszIrB;EkC/zIF;IAcM,YAAY;IACZ,gBAAgB;ElCozIpB;EkCn0IF;IAkBQ,cAAc;IACd,cAAc;ElCozIpB;EkCv0IF;IxBjJI,0BwB0KoC;IxBzKpC,6BwByKoC;ElCkzItC;EkC30IF;;IA8BY,0BAA0B;ElCizIpC;EkC/0IF;;IAmCY,6BAA6B;ElCgzIvC;EkCn1IF;IxBnII,yBwB2KmC;IxB1KnC,4BwB0KmC;ElC+yIrC;EkCv1IF;;IA6CY,yBAAyB;ElC8yInC;EkC31IF;;IAkDY,4BAA4B;ElC6yItC;AACF;;AkCjyIA;EAEI,sB/B4kBsC;AHutH1C;;Ac39II;EoBsLJ;IAMI,oB/BylBiC;I+BzlBjC,e/BylBiC;I+BxlBjC,wB/BylBuC;I+BzlBvC,mB/BylBuC;I+BxlBvC,UAAU;IACV,SAAS;ElCoyIX;EkC7yIF;IAYM,qBAAqB;IACrB,WAAW;ElCoyIf;AACF;;AkC3xIA;EACE,qBAAqB;AlC8xIvB;;AkC/xIA;EAII,gBAAgB;AlC+xIpB;;AkCnyIA;EAOM,gBAAgB;ExBvOlB,6BwBwOiC;ExBvOjC,4BwBuOiC;AlCiyIrC;;AkCzyIA;ExB9OI,yBwB0P8B;ExBzP9B,0BwByP8B;AlCkyIlC;;AkC9yIA;ExBvPI,gBwBuQ0B;EACxB,mB/B9C2B;AHg1IjC;;AmC5jJA;EACE,aAAa;EACb,eAAe;EACf,qBhCiiCsC;EgChiCtC,mBhCmiCsC;EgCjiCtC,gBAAgB;EAChB,yBhCEgB;EOSd,sBP6NgC;AHu1IpC;;AmC3jJA;EAGI,oBhCuhCqC;AHqiHzC;;AmC/jJA;EAMM,WAAW;EACX,qBhCmhCmC;EgClhCnC,chCNY;EgCOZ,YhCwhCuC;AHqiH7C;;AmCtkJA;EAoBI,0BAA0B;AnCsjJ9B;;AmC1kJA;EAwBI,qBAAqB;AnCsjJzB;;AmC9kJA;EA4BI,chC1Bc;AHglJlB;;AoC7lJA;EACE,aAAa;E7BGb,eAAe;EACf,gBAAgB;EGad,sBP6NgC;AHq3IpC;;AoC9lJA;EACE,kBAAkB;EAClB,cAAc;EACd,uBjCgxBwC;EiC/wBxC,iBjCkO+B;EiCjO/B,iBjCmxBsC;EiClxBtC,cjCuBe;EiCrBf,sBjCPa;EiCQb,yBjCLgB;AHqmJlB;;AoCzmJA;EAYI,UAAU;EACV,cjC8J8D;EiC7J9D,qBAAqB;EACrB,yBjCZc;EiCad,qBjCZc;AH6mJlB;;AoCjnJA;EAoBI,UAAU;EACV,UjC2wBiC;EiC1wBjC,gDjCOa;AH0lJjB;;AoC7lJA;EAGM,cAAc;E1BahB,+BP+LgC;EO9LhC,kCP8LgC;AHo5IpC;;AoCnmJA;E1BEI,gCP6MgC;EO5MhC,mCP4MgC;AHy5IpC;;AoCxmJA;EAcI,UAAU;EACV,WjCxCW;EiCyCX,yBjCba;EiCcb,qBjCda;AH4mJjB;;AoC/mJA;EAqBI,cjCxCc;EiCyCd,oBAAoB;EAEpB,YAAY;EACZ,sBjClDW;EiCmDX,qBjChDc;AH6oJlB;;AqCppJE;EACE,uBlCyxBsC;EC9pBpC,kBAtCY;EiCnFd,gBlCmO6B;AHo7IjC;;AqClpJM;E3BqCF,8BPgM+B;EO/L/B,iCP+L+B;AHk7InC;;AqClpJM;E3BkBF,+BP8M+B;EO7M/B,kCP6M+B;AHu7InC;;AqCpqJE;EACE,uBlCuxBqC;EC5pBnC,mBAtCY;EiCnFd,gBlCoO6B;AHm8IjC;;AqClqJM;E3BqCF,8BPiM+B;EOhM/B,iCPgM+B;AHi8InC;;AqClqJM;E3BkBF,+BP+M+B;EO9M/B,kCP8M+B;AHs8InC;;AsClrJA;EACE,qBAAqB;EACrB,qBnC05BsC;ECz1BpC,cAAW;EkC/Db,gBnCuR+B;EmCtR/B,cAAc;EACd,kBAAkB;EAClB,mBAAmB;EACnB,wBAAwB;E5BKtB,sBP6NgC;EiB/N9B,qIjBgb6I;AHowInJ;;AoBhrJM;EkBfN;IlBgBQ,gBAAgB;EpBorJtB;AACF;;AK1rJE;EiCGI,qBAAqB;AtC2rJ3B;;AsCzsJA;EAoBI,aAAa;AtCyrJjB;;AsCprJA;EACE,kBAAkB;EAClB,SAAS;AtCurJX;;AsChrJA;EACE,oBnC+3BsC;EmC93BtC,mBnC83BsC;EOr5BpC,oBPw5BqC;AHmzHzC;;AsC3qJE;ECjDA,WpCMa;EoCLb,yBpCiCe;AH+rJjB;;AKltJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvCguJxC;;AuCnuJU;EAQJ,UAAU;EACV,+CpCsBW;AHysJjB;;AsC1rJE;ECjDA,WpCMa;EoCLb,yBpCWgB;AHouJlB;;AKjuJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC+uJxC;;AuClvJU;EAQJ,UAAU;EACV,iDpCAY;AH8uJlB;;AsCzsJE;ECjDA,WpCMa;EoCLb,yBpCwCe;AHstJjB;;AKhvJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC8vJxC;;AuCjwJU;EAQJ,UAAU;EACV,+CpC6BW;AHguJjB;;AsCxtJE;ECjDA,WpCMa;EoCLb,yBpC0Ce;AHmuJjB;;AK/vJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC6wJxC;;AuChxJU;EAQJ,UAAU;EACV,gDpC+BW;AH6uJjB;;AsCvuJE;ECjDA,cpCegB;EoCdhB,yBpCuCe;AHqvJjB;;AK9wJE;EkCVI,cpCUY;EoCTZ,yBAAkC;AvC4xJxC;;AuC/xJU;EAQJ,UAAU;EACV,+CpC4BW;AH+vJjB;;AsCtvJE;ECjDA,WpCMa;EoCLb,yBpCqCe;AHswJjB;;AK7xJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC2yJxC;;AuC9yJU;EAQJ,UAAU;EACV,+CpC0BW;AHgxJjB;;AsCrwJE;ECjDA,cpCegB;EoCdhB,yBpCMgB;AHozJlB;;AK5yJE;EkCVI,cpCUY;EoCTZ,yBAAkC;AvC0zJxC;;AuC7zJU;EAQJ,UAAU;EACV,iDpCLY;AH8zJlB;;AsCpxJE;ECjDA,WpCMa;EoCLb,yBpCagB;AH4zJlB;;AK3zJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvCy0JxC;;AuC50JU;EAQJ,UAAU;EACV,8CpCEY;AHs0JlB;;AwCr1JA;EACE,kBAAoD;EACpD,mBrCuzBsC;EqCrzBtC,yBrCKgB;EOSd,qBP8N+B;AH4mJnC;;AchyJI;E0B5DJ;IAQI,kBrCizBoC;EHwiItC;AACF;;AwCt1JA;EACE,gBAAgB;EAChB,eAAe;E9BIb,gB8BHsB;AxCy1J1B;;AyCp2JA;EACE,kBAAkB;EAClB,wBtCu9ByC;EsCt9BzC,mBtCu9BsC;EsCt9BtC,6BAA6C;E/BU3C,sBP6NgC;AHioJpC;;AyCn2JA;EAEE,cAAc;AzCq2JhB;;AyCj2JA;EACE,gBtC4Q+B;AHwlJjC;;AyC51JA;EACE,mBAAsD;AzC+1JxD;;AyCh2JA;EAKI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,UAAU;EACV,wBtCw7BuC;EsCv7BvC,cAAc;AzC+1JlB;;AyCr1JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlBkyJlE;;A0Ct4JE;EACE,yBAAqC;A1Cy4JzC;;A0Ct4JE;EACE,cAA0B;A1Cy4J9B;;AyCn2JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlBgzJlE;;A0Cp5JE;EACE,yBAAqC;A1Cu5JzC;;A0Cp5JE;EACE,cAA0B;A1Cu5J9B;;AyCj3JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlB8zJlE;;A0Cl6JE;EACE,yBAAqC;A1Cq6JzC;;A0Cl6JE;EACE,cAA0B;A1Cq6J9B;;AyC/3JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlB40JlE;;A0Ch7JE;EACE,yBAAqC;A1Cm7JzC;;A0Ch7JE;EACE,cAA0B;A1Cm7J9B;;AyC74JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlB01JlE;;A0C97JE;EACE,yBAAqC;A1Ci8JzC;;A0C97JE;EACE,cAA0B;A1Ci8J9B;;AyC35JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlBw2JlE;;A0C58JE;EACE,yBAAqC;A1C+8JzC;;A0C58JE;EACE,cAA0B;A1C+8J9B;;AyCz6JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlBs3JlE;;A0C19JE;EACE,yBAAqC;A1C69JzC;;A0C19JE;EACE,cAA0B;A1C69J9B;;AyCv7JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlBo4JlE;;A0Cx+JE;EACE,yBAAqC;A1C2+JzC;;A0Cx+JE;EACE,cAA0B;A1C2+J9B;;A2Cn/JE;EACE;IAAO,2BAAuC;E3Cu/JhD;E2Ct/JE;IAAK,wBAAwB;E3Cy/J/B;AACF;;A2C5/JE;EACE;IAAO,2BAAuC;E3Cu/JhD;E2Ct/JE;IAAK,wBAAwB;E3Cy/J/B;AACF;;A2Ct/JA;EACE,aAAa;EACb,YxCg+BsC;EwC/9BtC,gBAAgB;EAChB,cAAc;EvCmHV,kBAtCY;EuC3EhB,yBxCLgB;EOSd,sBP6NgC;AHyxJpC;;A2Cr/JA;EACE,aAAa;EACb,sBAAsB;EACtB,uBAAuB;EACvB,gBAAgB;EAChB,WxCjBa;EwCkBb,kBAAkB;EAClB,mBAAmB;EACnB,yBxCQe;EiBnBX,2BjBk+B4C;AHkiIlD;;AoBhgKM;EuBDN;IvBEQ,gBAAgB;EpBogKtB;AACF;;A2C3/JA;ErBYE,qMAA6I;EqBV7I,0BxCy8BsC;AHqjIxC;;A2C1/JE;EACE,0DAA8D;EAA9D,kDAA8D;A3C6/JlE;;A2C1/JM;EAJJ;IAKM,uBAAe;IAAf,eAAe;E3C8/JrB;AACF;;A4CziKA;EACE,aAAa;EACb,uBAAuB;A5C4iKzB;;A4CziKA;EACE,OAAO;A5C4iKT;;A6C9iKA;EACE,aAAa;EACb,sBAAsB;EAGtB,eAAe;EACf,gBAAgB;EnCQd,sBP6NgC;AH20JpC;;A6CtiKA;EACE,WAAW;EACX,c1CRgB;E0CShB,mBAAmB;A7CyiKrB;;AKhjKE;EwCWE,UAAU;EACV,c1Cdc;E0Ced,qBAAqB;EACrB,yB1CtBc;AH+jKlB;;A6CnjKA;EAcI,c1ClBc;E0CmBd,yB1C1Bc;AHmkKlB;;A6ChiKA;EACE,kBAAkB;EAClB,cAAc;EACd,wB1C+8ByC;E0C58BzC,sB1C3Ca;E0C4Cb,sC1ClCa;AHmkKf;;A6CxiKA;EnCjBI,+BmC2BkC;EnC1BlC,gCmC0BkC;A7CmiKtC;;A6C7iKA;EnCHI,mCmCiBqC;EnChBrC,kCmCgBqC;A7CoiKzC;;A6CljKA;EAmBI,c1ClDc;E0CmDd,oBAAoB;EACpB,sB1C1DW;AH6lKf;;A6CxjKA;EA0BI,UAAU;EACV,W1ChEW;E0CiEX,yB1CrCa;E0CsCb,qB1CtCa;AHwkKjB;;A6C/jKA;EAiCI,mBAAmB;A7CkiKvB;;A6CnkKA;EAoCM,gB1C4J2B;E0C3J3B,qB1C2J2B;AHw4JjC;;A6CrhKI;EACE,mBAAmB;A7CwhKzB;;A6CzhKI;EnCtBA,kCPsKgC;EOlLhC,0BmCwCwC;A7CwhK5C;;A6C9hKI;EnClCA,gCPkLgC;EOtKhC,4BmCiC0C;A7CwhK9C;;A6CniKI;EAeM,aAAa;A7CwhKvB;;A6CviKI;EAmBM,qB1C0HuB;E0CzHvB,oBAAoB;A7CwhK9B;;A6C5iKI;EAuBQ,iB1CsHqB;E0CrHrB,sB1CqHqB;AHo6JjC;;AcplKI;E+BmCA;IACE,mBAAmB;E7CqjKvB;E6CtjKE;InCtBA,kCPsKgC;IOlLhC,0BmCwCwC;E7CojK1C;E6C1jKE;InClCA,gCPkLgC;IOtKhC,4BmCiC0C;E7CmjK5C;E6C9jKE;IAeM,aAAa;E7CkjKrB;E6CjkKE;IAmBM,qB1C0HuB;I0CzHvB,oBAAoB;E7CijK5B;E6CrkKE;IAuBQ,iB1CsHqB;I0CrHrB,sB1CqHqB;EH47J/B;AACF;;Ac7mKI;E+BmCA;IACE,mBAAmB;E7C8kKvB;E6C/kKE;InCtBA,kCPsKgC;IOlLhC,0BmCwCwC;E7C6kK1C;E6CnlKE;InClCA,gCPkLgC;IOtKhC,4BmCiC0C;E7C4kK5C;E6CvlKE;IAeM,aAAa;E7C2kKrB;E6C1lKE;IAmBM,qB1C0HuB;I0CzHvB,oBAAoB;E7C0kK5B;E6C9lKE;IAuBQ,iB1CsHqB;I0CrHrB,sB1CqHqB;EHq9J/B;AACF;;ActoKI;E+BmCA;IACE,mBAAmB;E7CumKvB;E6CxmKE;InCtBA,kCPsKgC;IOlLhC,0BmCwCwC;E7CsmK1C;E6C5mKE;InClCA,gCPkLgC;IOtKhC,4BmCiC0C;E7CqmK5C;E6ChnKE;IAeM,aAAa;E7ComKrB;E6CnnKE;IAmBM,qB1C0HuB;I0CzHvB,oBAAoB;E7CmmK5B;E6CvnKE;IAuBQ,iB1CsHqB;I0CrHrB,sB1CqHqB;EH8+J/B;AACF;;Ac/pKI;E+BmCA;IACE,mBAAmB;E7CgoKvB;E6CjoKE;InCtBA,kCPsKgC;IOlLhC,0BmCwCwC;E7C+nK1C;E6CroKE;InClCA,gCPkLgC;IOtKhC,4BmCiC0C;E7C8nK5C;E6CzoKE;IAeM,aAAa;E7C6nKrB;E6C5oKE;IAmBM,qB1C0HuB;I0CzHvB,oBAAoB;E7C4nK5B;E6ChpKE;IAuBQ,iB1CsHqB;I0CrHrB,sB1CqHqB;EHugK/B;AACF;;A6C/mKA;EnCnHI,gBmCoHsB;A7CknK1B;;A6CnnKA;EAII,qB1CmG6B;AHghKjC;;A6CvnKA;EAOM,sBAAsB;A7ConK5B;;A8C7vKE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB4pKlE;;AKrvKE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9CgwKjD;;A8CvwKE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlBuqKlE;;A8C7wKE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB4qKlE;;AKrwKE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9CgxKjD;;A8CvxKE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlBurKlE;;A8C7xKE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB4rKlE;;AKrxKE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9CgyKjD;;A8CvyKE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlBusKlE;;A8C7yKE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB4sKlE;;AKryKE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9CgzKjD;;A8CvzKE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlButKlE;;A8C7zKE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB4tKlE;;AKrzKE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9Cg0KjD;;A8Cv0KE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlBuuKlE;;A8C70KE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB4uKlE;;AKr0KE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9Cg1KjD;;A8Cv1KE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlBuvKlE;;A8C71KE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB4vKlE;;AKr1KE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9Cg2KjD;;A8Cv2KE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlBuwKlE;;A8C72KE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB4wKlE;;AKr2KE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9Cg3KjD;;A8Cv3KE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlBuxKlE;;A+Ch4KA;EACE,YAAY;E3C8HR,iBAtCY;E2CtFhB,gB5C6R+B;E4C5R/B,cAAc;EACd,W5CYa;E4CXb,yB5CCa;E4CAb,WAAW;A/Cm4Kb;;AK93KE;E0CDE,W5CMW;E4CLX,qBAAqB;A/Cm4KzB;;AK/3KE;E0CCI,YAAY;A/Ck4KlB;;A+Cv3KA;EACE,UAAU;EACV,6BAA6B;EAC7B,SAAS;A/C03KX;;A+Cp3KA;EACE,oBAAoB;A/Cu3KtB;;AgD75KA;EAGE,iB7Cy4BuC;E6Cx4BvC,gB7Cw4BuC;EC7wBnC,mBAtCY;E4ClFhB,2C7CAa;E6CCb,4BAA4B;EAC5B,oC7C04BmD;E6Cz4BnD,gD7COa;E6CNb,UAAU;EtCOR,sBPk4BsC;AHqhJ1C;;AgDz6KA;EAeI,sB7C83BsC;AHgiJ1C;;AgD76KA;EAmBI,UAAU;AhD85Kd;;AgDj7KA;EAuBI,cAAc;EACd,UAAU;AhD85Kd;;AgDt7KA;EA4BI,aAAa;AhD85KjB;;AgD15KA;EACE,aAAa;EACb,mBAAmB;EACnB,wB7C02BwC;E6Cz2BxC,c7CvBgB;E6CwBhB,2C7C9Ba;E6C+Bb,4BAA4B;EAC5B,4C7Ck3BoD;EO93BlD,2CQmH4D;ERlH5D,4CQkH4D;AlBwzKhE;;AgD35KA;EACE,gB7Ci2BwC;AH6jJ1C;;AiDp8KA;EAEE,gBAAgB;AjDs8KlB;;AiDx8KA;EAKI,kBAAkB;EAClB,gBAAgB;AjDu8KpB;;AiDl8KA;EACE,eAAe;EACf,MAAM;EACN,OAAO;EACP,a9C2pBsC;E8C1pBtC,aAAa;EACb,WAAW;EACX,YAAY;EACZ,gBAAgB;EAGhB,UAAU;AjDm8KZ;;AiD57KA;EACE,kBAAkB;EAClB,WAAW;EACX,c9C+4BuC;E8C74BvC,oBAAoB;AjD87KtB;;AiD37KE;E7B3BI,mCjBo8BoD;E8Cv6BtD,8B9Cq6BmD;AHyhJvD;;AoBv9KM;E6BuBJ;I7BtBM,gBAAgB;EpB29KtB;AACF;;AiDl8KE;EACE,e9Cm6BoC;AHkiJxC;;AiDj8KE;EACE,sB9Cg6B2C;AHoiJ/C;;AiDh8KA;EACE,aAAa;EACb,6B/BmF8D;AlBg3KhE;;AiDr8KA;EAKI,8B/BgF4D;E+B/E5D,gBAAgB;AjDo8KpB;;AiD18KA;;EAWI,cAAc;AjDo8KlB;;AiD/8KA;EAeI,gBAAgB;AjDo8KpB;;AiDh8KA;EACE,aAAa;EACb,mBAAmB;EACnB,6B/B+D8D;AlBo4KhE;;AiDt8KA;EAOI,cAAc;EACd,0B/B0D4D;E+BzD5D,2BAAmB;EAAnB,wBAAmB;EAAnB,mBAAmB;EACnB,WAAW;AjDm8Kf;;AiD78KA;EAeI,sBAAsB;EACtB,uBAAuB;EACvB,YAAY;AjDk8KhB;;AiDn9KA;EAoBM,gBAAgB;AjDm8KtB;;AiDv9KA;EAwBM,aAAa;AjDm8KnB;;AiD77KA;EACE,kBAAkB;EAClB,aAAa;EACb,sBAAsB;EACtB,WAAW;EAGX,oBAAoB;EACpB,sB9C3Ga;E8C4Gb,4BAA4B;EAC5B,oC9CnGa;EOCX,qBP8N+B;E8CxHjC,UAAU;AjD47KZ;;AiDx7KA;EACE,eAAe;EACf,MAAM;EACN,OAAO;EACP,a9C+iBsC;E8C9iBtC,YAAY;EACZ,aAAa;EACb,sB9ClHa;AH6iLf;;AiDl8KA;EAUW,UAAU;AjD47KrB;;AiDt8KA;EAWW,Y9C6zB2B;AHkoJtC;;AiD17KA;EACE,aAAa;EACb,uBAAuB;EACvB,8BAA8B;EAC9B,kB9C0zBsC;E8CzzBtC,gC9CvIgB;EOiBd,0CQmH4D;ERlH5D,2CQkH4D;AlBk8KhE;;AiDp8KA;EASI,kB9CqzBoC;E8CnzBpC,8BAA6F;AjD87KjG;;AiDz7KA;EACE,gBAAgB;EAChB,gB9CsI+B;AHszKjC;;AiDv7KA;EACE,kBAAkB;EAGlB,cAAc;EACd,a9CwwBsC;AHgrJxC;;AiDp7KA;EACE,aAAa;EACb,eAAe;EACf,mBAAmB;EACnB,yBAAyB;EACzB,gBAAgE;EAChE,6B9CxKgB;EO+Bd,8CQqG4D;ERpG5D,6CQoG4D;AlB69KhE;;AiD/7KA;EAaI,eAAwC;AjDs7K5C;;AiDj7KA;EACE,kBAAkB;EAClB,YAAY;EACZ,WAAW;EACX,YAAY;EACZ,gBAAgB;AjDo7KlB;;Ac3jLI;EmCzBJ;IAuKI,gB9CqwBqC;I8CpwBrC,oBAAyC;EjDk7K3C;EiDpkLF;IAsJI,+B/BjE4D;ElBk/K9D;EiDvkLF;IAyJM,gC/BpE0D;ElBq/K9D;EiDvjLF;IA2II,+B/BzE4D;ElBw/K9D;EiD1jLF;IA8IM,4B/B5E0D;I+B6E1D,2BAAmB;IAAnB,wBAAmB;IAAnB,mBAAmB;EjD+6KvB;EiDv6KA;IAAY,gB9C6uB2B;EH6rJvC;AACF;;AcllLI;EmC2KF;;IAEE,gB9CquBqC;EHssJvC;AACF;;AczlLI;EmCkLF;IAAY,iB9C+tB4B;EH6sJxC;AACF;;AkD1pLA;EACE,kBAAkB;EAClB,a/C+qBsC;E+C9qBtC,cAAc;EACd,S/C21BmC;EgD/1BnC,qNhDmRoO;EgDjRpO,kBAAkB;EAClB,gBhD2R+B;EgD1R/B,gBhD+R+B;EgD9R/B,gBAAgB;EAChB,iBAAiB;EACjB,qBAAqB;EACrB,iBAAiB;EACjB,oBAAoB;EACpB,sBAAsB;EACtB,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,gBAAgB;E/CgHZ,mBAtCY;E8C9EhB,qBAAqB;EACrB,UAAU;AlDuqLZ;;AkDlrLA;EAaW,Y/C+0B2B;AH01JtC;;AkDtrLA;EAgBI,kBAAkB;EAClB,cAAc;EACd,a/C+0BqC;E+C90BrC,c/C+0BqC;AH21JzC;;AkD7rLA;EAsBM,kBAAkB;EAClB,WAAW;EACX,yBAAyB;EACzB,mBAAmB;AlD2qLzB;;AkDtqLA;EACE,iBAAgC;AlDyqLlC;;AkD1qLA;EAII,SAAS;AlD0qLb;;AkD9qLA;EAOM,MAAM;EACN,6BAAgE;EAChE,sB/CvBS;AHksLf;;AkDtqLA;EACE,iB/CqzBuC;AHo3JzC;;AkD1qLA;EAII,OAAO;EACP,a/CizBqC;E+ChzBrC,c/C+yBqC;AH23JzC;;AkDhrLA;EASM,QAAQ;EACR,oCAA2F;EAC3F,wB/CvCS;AHktLf;;AkDtqLA;EACE,iBAAgC;AlDyqLlC;;AkD1qLA;EAII,MAAM;AlD0qLV;;AkD9qLA;EAOM,SAAS;EACT,6B/C8xBmC;E+C7xBnC,yB/CrDS;AHguLf;;AkDtqLA;EACE,iB/CuxBuC;AHk5JzC;;AkD1qLA;EAII,QAAQ;EACR,a/CmxBqC;E+ClxBrC,c/CixBqC;AHy5JzC;;AkDhrLA;EASM,OAAO;EACP,oC/C8wBmC;E+C7wBnC,uB/CrES;AHgvLf;;AkDtpLA;EACE,gB/C6uBuC;E+C5uBvC,uB/CkvBuC;E+CjvBvC,W/CvGa;E+CwGb,kBAAkB;EAClB,sB/C/Fa;EOCX,sBP6NgC;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EoD5jC5B,YpD4jC4B;EoD3jC5B,mBpD6jC4B;AH0iK9B;;AuDhmMA;EACE;IACE,mBAAmB;EvDmmMrB;EuDjmMA;IACE,UAAU;IACV,eAAe;EvDmmMjB;AACF;;AuD1mMA;EACE;IACE,mBAAmB;EvDmmMrB;EuDjmMA;IACE,UAAU;IACV,eAAe;EvDmmMjB;AACF;;AuDhmMA;EACE,qBAAqB;EACrB,WpDoiC0B;EoDniC1B,YpDmiC0B;EoDliC1B,2BAA2B;EAC3B,8BAA8B;EAE9B,kBAAkB;EAClB,UAAU;EACV,oDAA4C;EAA5C,4CAA4C;AvDkmM9C;;AuD/lMA;EACE,WpD6hC4B;EoD5hC5B,YpD4hC4B;AHskK9B;;AuD9lME;EACE;;IAEE,gCAAwB;IAAxB,wBAAwB;EvDimM5B;AACF;;AwD7pMA;EAAqB,mCAAmC;AxDiqMxD;;AwDhqMA;EAAqB,8BAA8B;AxDoqMnD;;AwDnqMA;EAAqB,iCAAiC;AxDuqMtD;;AwDtqMA;EAAqB,iCAAiC;AxD0qMtD;;AwDzqMA;EAAqB,sCAAsC;AxD6qM3D;;AwD5qMA;EAAqB,mCAAmC;AxDgrMxD;;AyDlrME;EACE,oCAAmC;AzDqrMvC;;AK3qME;;;EoDLI,oCAAgD;AzDsrMtD;;AyD5rME;EACE,oCAAmC;AzD+rMvC;;AKrrME;;;EoDLI,oCAAgD;AzDgsMtD;;AyDtsME;EACE,oCAAmC;AzDysMvC;;AK/rME;;;EoDLI,oCAAgD;AzD0sMtD;;AyDhtME;EACE,oCAAmC;AzDmtMvC;;AKzsME;;;EoDLI,oCAAgD;AzDotMtD;;AyD1tME;EACE,oCAAmC;AzD6tMvC;;AKntME;;;EoDLI,oCAAgD;AzD8tMtD;;AyDpuME;EACE,oCAAmC;AzDuuMvC;;AK7tME;;;EoDLI,oCAAgD;AzDwuMtD;;AyD9uME;EACE,oCAAmC;AzDivMvC;;AKvuME;;;EoDLI,oCAAgD;AzDkvMtD;;AyDxvME;EACE,oCAAmC;AzD2vMvC;;AKjvME;;;EoDLI,oCAAgD;AzD4vMtD;;A0D3vMA;EACE,iCAAmC;A1D8vMrC;;A0D3vMA;EACE,wCAAwC;A1D8vM1C;;A2DzwMA;EAAkB,oCAAoD;A3D6wMtE;;A2D5wMA;EAAkB,wCAAwD;A3DgxM1E;;A2D/wMA;EAAkB,0CAA0D;A3DmxM5E;;A2DlxMA;EAAkB,2CAA2D;A3DsxM7E;;A2DrxMA;EAAkB,yCAAyD;A3DyxM3E;;A2DvxMA;EAAmB,oBAAoB;A3D2xMvC;;A2D1xMA;EAAmB,wBAAwB;A3D8xM3C;;A2D7xMA;EAAmB,0BAA0B;A3DiyM7C;;A2DhyMA;EAAmB,2BAA2B;A3DoyM9C;;A2DnyMA;EAAmB,yBAAyB;A3DuyM5C;;A2DpyME;EACE,gCAA+B;A3DuyMnC;;A2DxyME;EACE,gCAA+B;A3D2yMnC;;A2D5yME;EACE,gCAA+B;A3D+yMnC;;A2DhzME;EACE,gCAA+B;A3DmzMnC;;A2DpzME;EACE,gCAA+B;A3DuzMnC;;A2DxzME;EACE,gCAA+B;A3D2zMnC;;A2D5zME;EACE,gCAA+B;A3D+zMnC;;A2Dh0ME;EACE,gCAA+B;A3Dm0MnC;;A2D/zMA;EACE,6BAA+B;A3Dk0MjC;;A2D3zMA;EACE,gCAA2C;A3D8zM7C;;A2D3zMA;EACE,iCAAwC;A3D8zM1C;;A2D3zMA;EACE,0CAAiD;EACjD,2CAAkD;A3D8zMpD;;A2D3zMA;EACE,2CAAkD;EAClD,8CAAqD;A3D8zMvD;;A2D3zMA;EACE,8CAAqD;EACrD,6CAAoD;A3D8zMtD;;A2D3zMA;EACE,0CAAiD;EACjD,6CAAoD;A3D8zMtD;;A2D3zMA;EACE,gCAA2C;A3D8zM7C;;A2D3zMA;EACE,6BAA6B;A3D8zM/B;;A2D3zMA;EACE,+BAAuC;A3D8zMzC;;A2D3zMA;EACE,2BAA2B;A3D8zM7B;;AsDt4ME;EACE,cAAc;EACd,WAAW;EACX,WAAW;AtDy4Mf;;A4Dl4MM;EAAwB,wBAA0B;A5Ds4MxD;;A4Dt4MM;EAAwB,0BAA0B;A5D04MxD;;A4D14MM;EAAwB,gCAA0B;A5D84MxD;;A4D94MM;EAAwB,yBAA0B;A5Dk5MxD;;A4Dl5MM;EAAwB,yBAA0B;A5Ds5MxD;;A4Dt5MM;EAAwB,6BAA0B;A5D05MxD;;A4D15MM;EAAwB,8BAA0B;A5D85MxD;;A4D95MM;EAAwB,wBAA0B;A5Dk6MxD;;A4Dl6MM;EAAwB,+BAA0B;A5Ds6MxD;;Acr3MI;E8CjDE;IAAwB,wBAA0B;E5D26MtD;E4D36MI;IAAwB,0BAA0B;E5D86MtD;E4D96MI;IAAwB,gCAA0B;E5Di7MtD;E4Dj7MI;IAAwB,yBAA0B;E5Do7MtD;E4Dp7MI;IAAwB,yBAA0B;E5Du7MtD;E4Dv7MI;IAAwB,6BAA0B;E5D07MtD;E4D17MI;IAAwB,8BAA0B;E5D67MtD;E4D77MI;IAAwB,wBAA0B;E5Dg8MtD;E4Dh8MI;IAAwB,+BAA0B;E5Dm8MtD;AACF;;Acn5MI;E8CjDE;IAAwB,wBAA0B;E5Dy8MtD;E4Dz8MI;IAAwB,0BAA0B;E5D48MtD;E4D58MI;IAAwB,gCAA0B;E5D+8MtD;E4D/8MI;IAAwB,yBAA0B;E5Dk9MtD;E4Dl9MI;IAAwB,yBAA0B;E5Dq9MtD;E4Dr9MI;IAAwB,6BAA0B;E5Dw9MtD;E4Dx9MI;IAAwB,8BAA0B;E5D29MtD;E4D39MI;IAAwB,wBAA0B;E5D89MtD;E4D99MI;IAAwB,+BAA0B;E5Di+MtD;AACF;;Acj7MI;E8CjDE;IAAwB,wBAA0B;E5Du+MtD;E4Dv+MI;IAAwB,0BAA0B;E5D0+MtD;E4D1+MI;IAAwB,gCAA0B;E5D6+MtD;E4D7+MI;IAAwB,yBAA0B;E5Dg/MtD;E4Dh/MI;IAAwB,yBAA0B;E5Dm/MtD;E4Dn/MI;IAAwB,6BAA0B;E5Ds/MtD;E4Dt/MI;IAAwB,8BAA0B;E5Dy/MtD;E4Dz/MI;IAAwB,wBAA0B;E5D4/MtD;E4D5/MI;IAAwB,+BAA0B;E5D+/MtD;AACF;;Ac/8MI;E8CjDE;IAAwB,wBAA0B;E5DqgNtD;E4DrgNI;IAAwB,0BAA0B;E5DwgNtD;E4DxgNI;IAAwB,gCAA0B;E5D2gNtD;E4D3gNI;IAAwB,yBAA0B;E5D8gNtD;E4D9gNI;IAAwB,yBAA0B;E5DihNtD;E4DjhNI;IAAwB,6BAA0B;E5DohNtD;E4DphNI;IAAwB,8BAA0B;E5DuhNtD;E4DvhNI;IAAwB,wBAA0B;E5D0hNtD;E4D1hNI;IAAwB,+BAA0B;E5D6hNtD;AACF;;A4DphNA;EAEI;IAAqB,wBAA0B;E5DuhNjD;E4DvhNE;IAAqB,0BAA0B;E5D0hNjD;E4D1hNE;IAAqB,gCAA0B;E5D6hNjD;E4D7hNE;IAAqB,yBAA0B;E5DgiNjD;E4DhiNE;IAAqB,yBAA0B;E5DmiNjD;E4DniNE;IAAqB,6BAA0B;E5DsiNjD;E4DtiNE;IAAqB,8BAA0B;E5DyiNjD;E4DziNE;IAAqB,wBAA0B;E5D4iNjD;E4D5iNE;IAAqB,+BAA0B;E5D+iNjD;AACF;;A6DrkNA;EACE,kBAAkB;EAClB,cAAc;EACd,WAAW;EACX,UAAU;EACV,gBAAgB;A7DwkNlB;;A6D7kNA;EAQI,cAAc;EACd,WAAW;A7DykNf;;A6DllNA;;;;;EAiBI,kBAAkB;EAClB,MAAM;EACN,SAAS;EACT,OAAO;EACP,WAAW;EACX,YAAY;EACZ,SAAS;A7DykNb;;A6DjkNE;EAEI,uBAA4F;A7DmkNlG;;A6DrkNE;EAEI,mBAA4F;A7DukNlG;;A6DzkNE;EAEI,gBAA4F;A7D2kNlG;;A6D7kNE;EAEI,iBAA4F;A7D+kNlG;;A8DxmNI;EAAgC,8BAA8B;A9D4mNlE;;A8D3mNI;EAAgC,iCAAiC;A9D+mNrE;;A8D9mNI;EAAgC,sCAAsC;A9DknN1E;;A8DjnNI;EAAgC,yCAAyC;A9DqnN7E;;A8DnnNI;EAA8B,0BAA0B;A9DunN5D;;A8DtnNI;EAA8B,4BAA4B;A9D0nN9D;;A8DznNI;EAA8B,kCAAkC;A9D6nNpE;;A8D5nNI;EAA8B,yBAAyB;A9DgoN3D;;A8D/nNI;EAA8B,uBAAuB;A9DmoNzD;;A8DloNI;EAA8B,uBAAuB;A9DsoNzD;;A8DroNI;EAA8B,yBAAyB;A9DyoN3D;;A8DxoNI;EAA8B,yBAAyB;A9D4oN3D;;A8D1oNI;EAAoC,sCAAsC;A9D8oN9E;;A8D7oNI;EAAoC,oCAAoC;A9DipN5E;;A8DhpNI;EAAoC,kCAAkC;A9DopN1E;;A8DnpNI;EAAoC,yCAAyC;A9DupNjF;;A8DtpNI;EAAoC,wCAAwC;A9D0pNhF;;A8DxpNI;EAAiC,kCAAkC;A9D4pNvE;;A8D3pNI;EAAiC,gCAAgC;A9D+pNrE;;A8D9pNI;EAAiC,8BAA8B;A9DkqNnE;;A8DjqNI;EAAiC,gCAAgC;A9DqqNrE;;A8DpqNI;EAAiC,+BAA+B;A9DwqNpE;;A8DtqNI;EAAkC,oCAAoC;A9D0qN1E;;A8DzqNI;EAAkC,kCAAkC;A9D6qNxE;;A8D5qNI;EAAkC,gCAAgC;A9DgrNtE;;A8D/qNI;EAAkC,uCAAuC;A9DmrN7E;;A8DlrNI;EAAkC,sCAAsC;A9DsrN5E;;A8DrrNI;EAAkC,iCAAiC;A9DyrNvE;;A8DvrNI;EAAgC,2BAA2B;A9D2rN/D;;A8D1rNI;EAAgC,iCAAiC;A9D8rNrE;;A8D7rNI;EAAgC,+BAA+B;A9DisNnE;;A8DhsNI;EAAgC,6BAA6B;A9DosNjE;;A8DnsNI;EAAgC,+BAA+B;A9DusNnE;;A8DtsNI;EAAgC,8BAA8B;A9D0sNlE;;Ac9rNI;EgDlDA;IAAgC,8BAA8B;E9DqvNhE;E8DpvNE;IAAgC,iCAAiC;E9DuvNnE;E8DtvNE;IAAgC,sCAAsC;E9DyvNxE;E8DxvNE;IAAgC,yCAAyC;E9D2vN3E;E8DzvNE;IAA8B,0BAA0B;E9D4vN1D;E8D3vNE;IAA8B,4BAA4B;E9D8vN5D;E8D7vNE;IAA8B,kCAAkC;E9DgwNlE;E8D/vNE;IAA8B,yBAAyB;E9DkwNzD;E8DjwNE;IAA8B,uBAAuB;E9DowNvD;E8DnwNE;IAA8B,uBAAuB;E9DswNvD;E8DrwNE;IAA8B,yBAAyB;E9DwwNzD;E8DvwNE;IAA8B,yBAAyB;E9D0wNzD;E8DxwNE;IAAoC,sCAAsC;E9D2wN5E;E8D1wNE;IAAoC,oCAAoC;E9D6wN1E;E8D5wNE;IAAoC,kCAAkC;E9D+wNxE;E8D9wNE;IAAoC,yCAAyC;E9DixN/E;E8DhxNE;IAAoC,wCAAwC;E9DmxN9E;E8DjxNE;IAAiC,kCAAkC;E9DoxNrE;E8DnxNE;IAAiC,gCAAgC;E9DsxNnE;E8DrxNE;IAAiC,8BAA8B;E9DwxNjE;E8DvxNE;IAAiC,gCAAgC;E9D0xNnE;E8DzxNE;IAAiC,+BAA+B;E9D4xNlE;E8D1xNE;IAAkC,oCAAoC;E9D6xNxE;E8D5xNE;IAAkC,kCAAkC;E9D+xNtE;E8D9xNE;IAAkC,gCAAgC;E9DiyNpE;E8DhyNE;IAAkC,uCAAuC;E9DmyN3E;E8DlyNE;IAAkC,sCAAsC;E9DqyN1E;E8DpyNE;IAAkC,iCAAiC;E9DuyNrE;E8DryNE;IAAgC,2BAA2B;E9DwyN7D;E8DvyNE;IAAgC,iCAAiC;E9D0yNnE;E8DzyNE;IAAgC,+BAA+B;E9D4yNjE;E8D3yNE;IAAgC,6BAA6B;E9D8yN/D;E8D7yNE;IAAgC,+BAA+B;E9DgzNjE;E8D/yNE;IAAgC,8BAA8B;E9DkzNhE;AACF;;AcvyNI;EgDlDA;IAAgC,8BAA8B;E9D81NhE;E8D71NE;IAAgC,iCAAiC;E9Dg2NnE;E8D/1NE;IAAgC,sCAAsC;E9Dk2NxE;E8Dj2NE;IAAgC,yCAAyC;E9Do2N3E;E8Dl2NE;IAA8B,0BAA0B;E9Dq2N1D;E8Dp2NE;IAA8B,4BAA4B;E9Du2N5D;E8Dt2NE;IAA8B,kCAAkC;E9Dy2NlE;E8Dx2NE;IAA8B,yBAAyB;E9D22NzD;E8D12NE;IAA8B,uBAAuB;E9D62NvD;E8D52NE;IAA8B,uBAAuB;E9D+2NvD;E8D92NE;IAA8B,yBAAyB;E9Di3NzD;E8Dh3NE;IAA8B,yBAAyB;E9Dm3NzD;E8Dj3NE;IAAoC,sCAAsC;E9Do3N5E;E8Dn3NE;IAAoC,oCAAoC;E9Ds3N1E;E8Dr3NE;IAAoC,kCAAkC;E9Dw3NxE;E8Dv3NE;IAAoC,yCAAyC;E9D03N/E;E8Dz3NE;IAAoC,wCAAwC;E9D43N9E;E8D13NE;IAAiC,kCAAkC;E9D63NrE;E8D53NE;IAAiC,gCAAgC;E9D+3NnE;E8D93NE;IAAiC,8BAA8B;E9Di4NjE;E8Dh4NE;IAAiC,gCAAgC;E9Dm4NnE;E8Dl4NE;IAAiC,+BAA+B;E9Dq4NlE;E8Dn4NE;IAAkC,oCAAoC;E9Ds4NxE;E8Dr4NE;IAAkC,kCAAkC;E9Dw4NtE;E8Dv4NE;IAAkC,gCAAgC;E9D04NpE;E8Dz4NE;IAAkC,uCAAuC;E9D44N3E;E8D34NE;IAAkC,sCAAsC;E9D84N1E;E8D74NE;IAAkC,iCAAiC;E9Dg5NrE;E8D94NE;IAAgC,2BAA2B;E9Di5N7D;E8Dh5NE;IAAgC,iCAAiC;E9Dm5NnE;E8Dl5NE;IAAgC,+BAA+B;E9Dq5NjE;E8Dp5NE;IAAgC,6BAA6B;E9Du5N/D;E8Dt5NE;IAAgC,+BAA+B;E9Dy5NjE;E8Dx5NE;IAAgC,8BAA8B;E9D25NhE;AACF;;Ach5NI;EgDlDA;IAAgC,8BAA8B;E9Du8NhE;E8Dt8NE;IAAgC,iCAAiC;E9Dy8NnE;E8Dx8NE;IAAgC,sCAAsC;E9D28NxE;E8D18NE;IAAgC,yCAAyC;E9D68N3E;E8D38NE;IAA8B,0BAA0B;E9D88N1D;E8D78NE;IAA8B,4BAA4B;E9Dg9N5D;E8D/8NE;IAA8B,kCAAkC;E9Dk9NlE;E8Dj9NE;IAA8B,yBAAyB;E9Do9NzD;E8Dn9NE;IAA8B,uBAAuB;E9Ds9NvD;E8Dr9NE;IAA8B,uBAAuB;E9Dw9NvD;E8Dv9NE;IAA8B,yBAAyB;E9D09NzD;E8Dz9NE;IAA8B,yBAAyB;E9D49NzD;E8D19NE;IAAoC,sCAAsC;E9D69N5E;E8D59NE;IAAoC,oCAAoC;E9D+9N1E;E8D99NE;IAAoC,kCAAkC;E9Di+NxE;E8Dh+NE;IAAoC,yCAAyC;E9Dm+N/E;E8Dl+NE;IAAoC,wCAAwC;E9Dq+N9E;E8Dn+NE;IAAiC,kCAAkC;E9Ds+NrE;E8Dr+NE;IAAiC,gCAAgC;E9Dw+NnE;E8Dv+NE;IAAiC,8BAA8B;E9D0+NjE;E8Dz+NE;IAAiC,gCAAgC;E9D4+NnE;E8D3+NE;IAAiC,+BAA+B;E9D8+NlE;E8D5+NE;IAAkC,oCAAoC;E9D++NxE;E8D9+NE;IAAkC,kCAAkC;E9Di/NtE;E8Dh/NE;IAAkC,gCAAgC;E9Dm/NpE;E8Dl/NE;IAAkC,uCAAuC;E9Dq/N3E;E8Dp/NE;IAAkC,sCAAsC;E9Du/N1E;E8Dt/NE;IAAkC,iCAAiC;E9Dy/NrE;E8Dv/NE;IAAgC,2BAA2B;E9D0/N7D;E8Dz/NE;IAAgC,iCAAiC;E9D4/NnE;E8D3/NE;IAAgC,+BAA+B;E9D8/NjE;E8D7/NE;IAAgC,6BAA6B;E9DggO/D;E8D//NE;IAAgC,+BAA+B;E9DkgOjE;E8DjgOE;IAAgC,8BAA8B;E9DogOhE;AACF;;Acz/NI;EgDlDA;IAAgC,8BAA8B;E9DgjOhE;E8D/iOE;IAAgC,iCAAiC;E9DkjOnE;E8DjjOE;IAAgC,sCAAsC;E9DojOxE;E8DnjOE;IAAgC,yCAAyC;E9DsjO3E;E8DpjOE;IAA8B,0BAA0B;E9DujO1D;E8DtjOE;IAA8B,4BAA4B;E9DyjO5D;E8DxjOE;IAA8B,kCAAkC;E9D2jOlE;E8D1jOE;IAA8B,yBAAyB;E9D6jOzD;E8D5jOE;IAA8B,uBAAuB;E9D+jOvD;E8D9jOE;IAA8B,uBAAuB;E9DikOvD;E8DhkOE;IAA8B,yBAAyB;E9DmkOzD;E8DlkOE;IAA8B,yBAAyB;E9DqkOzD;E8DnkOE;IAAoC,sCAAsC;E9DskO5E;E8DrkOE;IAAoC,oCAAoC;E9DwkO1E;E8DvkOE;IAAoC,kCAAkC;E9D0kOxE;E8DzkOE;IAAoC,yCAAyC;E9D4kO/E;E8D3kOE;IAAoC,wCAAwC;E9D8kO9E;E8D5kOE;IAAiC,kCAAkC;E9D+kOrE;E8D9kOE;IAAiC,gCAAgC;E9DilOnE;E8DhlOE;IAAiC,8BAA8B;E9DmlOjE;E8DllOE;IAAiC,gCAAgC;E9DqlOnE;E8DplOE;IAAiC,+BAA+B;E9DulOlE;E8DrlOE;IAAkC,oCAAoC;E9DwlOxE;E8DvlOE;IAAkC,kCAAkC;E9D0lOtE;E8DzlOE;IAAkC,gCAAgC;E9D4lOpE;E8D3lOE;IAAkC,uCAAuC;E9D8lO3E;E8D7lOE;IAAkC,sCAAsC;E9DgmO1E;E8D/lOE;IAAkC,iCAAiC;E9DkmOrE;E8DhmOE;IAAgC,2BAA2B;E9DmmO7D;E8DlmOE;IAAgC,iCAAiC;E9DqmOnE;E8DpmOE;IAAgC,+BAA+B;E9DumOjE;E8DtmOE;IAAgC,6BAA6B;E9DymO/D;E8DxmOE;IAAgC,+BAA+B;E9D2mOjE;E8D1mOE;IAAgC,8BAA8B;E9D6mOhE;AACF;;A+DxpOI;EAAwB,sBAAsB;A/D4pOlD;;A+D3pOI;EAAwB,uBAAuB;A/D+pOnD;;A+D9pOI;EAAwB,sBAAsB;A/DkqOlD;;Ac9mOI;EiDtDA;IAAwB,sBAAsB;E/DyqOhD;E+DxqOE;IAAwB,uBAAuB;E/D2qOjD;E+D1qOE;IAAwB,sBAAsB;E/D6qOhD;AACF;;Ac1nOI;EiDtDA;IAAwB,sBAAsB;E/DqrOhD;E+DprOE;IAAwB,uBAAuB;E/DurOjD;E+DtrOE;IAAwB,sBAAsB;E/DyrOhD;AACF;;ActoOI;EiDtDA;IAAwB,sBAAsB;E/DisOhD;E+DhsOE;IAAwB,uBAAuB;E/DmsOjD;E+DlsOE;IAAwB,sBAAsB;E/DqsOhD;AACF;;AclpOI;EiDtDA;IAAwB,sBAAsB;E/D6sOhD;E+D5sOE;IAAwB,uBAAuB;E/D+sOjD;E+D9sOE;IAAwB,sBAAsB;E/DitOhD;AACF;;AgEvtOE;EAAyB,mCAA8B;EAA9B,gCAA8B;EAA9B,2BAA8B;AhE2tOzD;;AgE3tOE;EAAyB,oCAA8B;EAA9B,iCAA8B;EAA9B,gCAA8B;EAA9B,4BAA8B;AhE+tOzD;;AgE/tOE;EAAyB,oCAA8B;EAA9B,iCAA8B;EAA9B,gCAA8B;EAA9B,4BAA8B;AhEmuOzD;;AiEnuOE;EAAsB,yBAA2B;AjEuuOnD;;AiEvuOE;EAAsB,2BAA2B;AjE2uOnD;;AkE1uOE;EAAyB,2BAA8B;AlE8uOzD;;AkE9uOE;EAAyB,6BAA8B;AlEkvOzD;;AkElvOE;EAAyB,6BAA8B;AlEsvOzD;;AkEtvOE;EAAyB,0BAA8B;AlE0vOzD;;AkE1vOE;EAAyB,mCAA8B;EAA9B,2BAA8B;AlE8vOzD;;AkEzvOA;EACE,eAAe;EACf,MAAM;EACN,QAAQ;EACR,OAAO;EACP,a/DgqBsC;AH4lNxC;;AkEzvOA;EACE,eAAe;EACf,QAAQ;EACR,SAAS;EACT,OAAO;EACP,a/DwpBsC;AHomNxC;;AkExvO8B;EAD9B;IAEI,wBAAgB;IAAhB,gBAAgB;IAChB,MAAM;IACN,a/DgpBoC;EH4mNtC;AACF;;AmEtxOA;ECEE,kBAAkB;EAClB,UAAU;EACV,WAAW;EACX,UAAU;EACV,YAAY;EACZ,gBAAgB;EAChB,sBAAsB;EACtB,mBAAmB;EACnB,SAAS;ApEwxOX;;AoE9wOE;EAEE,gBAAgB;EAChB,WAAW;EACX,YAAY;EACZ,iBAAiB;EACjB,UAAU;EACV,mBAAmB;ApEgxOvB;;AqE7yOA;EAAa,8DAAqC;ArEizOlD;;AqEhzOA;EAAU,wDAAkC;ArEozO5C;;AqEnzOA;EAAa,uDAAqC;ArEuzOlD;;AqEtzOA;EAAe,2BAA2B;ArE0zO1C;;AsEzzOI;EAAuB,qBAA4B;AtE6zOvD;;AsE7zOI;EAAuB,qBAA4B;AtEi0OvD;;AsEj0OI;EAAuB,qBAA4B;AtEq0OvD;;AsEr0OI;EAAuB,sBAA4B;AtEy0OvD;;AsEz0OI;EAAuB,sBAA4B;AtE60OvD;;AsE70OI;EAAuB,sBAA4B;AtEi1OvD;;AsEj1OI;EAAuB,sBAA4B;AtEq1OvD;;AsEr1OI;EAAuB,sBAA4B;AtEy1OvD;;AsEz1OI;EAAuB,uBAA4B;AtE61OvD;;AsE71OI;EAAuB,uBAA4B;AtEi2OvD;;AsE71OA;EAAU,0BAA0B;AtEi2OpC;;AsEh2OA;EAAU,2BAA2B;AtEo2OrC;;AsEh2OA;EAAc,2BAA2B;AtEo2OzC;;AsEn2OA;EAAc,4BAA4B;AtEu2O1C;;AsEr2OA;EAAU,uBAAuB;AtEy2OjC;;AsEx2OA;EAAU,wBAAwB;AtE42OlC;;AuEr3OQ;EAAgC,oBAA4B;AvEy3OpE;;AuEx3OQ;;EAEE,wBAAoC;AvE23O9C;;AuEz3OQ;;EAEE,0BAAwC;AvE43OlD;;AuE13OQ;;EAEE,2BAA0C;AvE63OpD;;AuE33OQ;;EAEE,yBAAsC;AvE83OhD;;AuE74OQ;EAAgC,0BAA4B;AvEi5OpE;;AuEh5OQ;;EAEE,8BAAoC;AvEm5O9C;;AuEj5OQ;;EAEE,gCAAwC;AvEo5OlD;;AuEl5OQ;;EAEE,iCAA0C;AvEq5OpD;;AuEn5OQ;;EAEE,+BAAsC;AvEs5OhD;;AuEr6OQ;EAAgC,yBAA4B;AvEy6OpE;;AuEx6OQ;;EAEE,6BAAoC;AvE26O9C;;AuEz6OQ;;EAEE,+BAAwC;AvE46OlD;;AuE16OQ;;EAEE,gCAA0C;AvE66OpD;;AuE36OQ;;EAEE,8BAAsC;AvE86OhD;;AuE77OQ;EAAgC,uBAA4B;AvEi8OpE;;AuEh8OQ;;EAEE,2BAAoC;AvEm8O9C;;AuEj8OQ;;EAEE,6BAAwC;AvEo8OlD;;AuEl8OQ;;EAEE,8BAA0C;AvEq8OpD;;AuEn8OQ;;EAEE,4BAAsC;AvEs8OhD;;AuEr9OQ;EAAgC,yBAA4B;AvEy9OpE;;AuEx9OQ;;EAEE,6BAAoC;AvE29O9C;;AuEz9OQ;;EAEE,+BAAwC;AvE49OlD;;AuE19OQ;;EAEE,gCAA0C;AvE69OpD;;AuE39OQ;;EAEE,8BAAsC;AvE89OhD;;AuE7+OQ;EAAgC,uBAA4B;AvEi/OpE;;AuEh/OQ;;EAEE,2BAAoC;AvEm/O9C;;AuEj/OQ;;EAEE,6BAAwC;AvEo/OlD;;AuEl/OQ;;EAEE,8BAA0C;AvEq/OpD;;AuEn/OQ;;EAEE,4BAAsC;AvEs/OhD;;AuErgPQ;EAAgC,qBAA4B;AvEygPpE;;AuExgPQ;;EAEE,yBAAoC;AvE2gP9C;;AuEzgPQ;;EAEE,2BAAwC;AvE4gPlD;;AuE1gPQ;;EAEE,4BAA0C;AvE6gPpD;;AuE3gPQ;;EAEE,0BAAsC;AvE8gPhD;;AuE7hPQ;EAAgC,2BAA4B;AvEiiPpE;;AuEhiPQ;;EAEE,+BAAoC;AvEmiP9C;;AuEjiPQ;;EAEE,iCAAwC;AvEoiPlD;;AuEliPQ;;EAEE,kCAA0C;AvEqiPpD;;AuEniPQ;;EAEE,gCAAsC;AvEsiPhD;;AuErjPQ;EAAgC,0BAA4B;AvEyjPpE;;AuExjPQ;;EAEE,8BAAoC;AvE2jP9C;;AuEzjPQ;;EAEE,gCAAwC;AvE4jPlD;;AuE1jPQ;;EAEE,iCAA0C;AvE6jPpD;;AuE3jPQ;;EAEE,+BAAsC;AvE8jPhD;;AuE7kPQ;EAAgC,wBAA4B;AvEilPpE;;AuEhlPQ;;EAEE,4BAAoC;AvEmlP9C;;AuEjlPQ;;EAEE,8BAAwC;AvEolPlD;;AuEllPQ;;EAEE,+BAA0C;AvEqlPpD;;AuEnlPQ;;EAEE,6BAAsC;AvEslPhD;;AuErmPQ;EAAgC,0BAA4B;AvEymPpE;;AuExmPQ;;EAEE,8BAAoC;AvE2mP9C;;AuEzmPQ;;EAEE,gCAAwC;AvE4mPlD;;AuE1mPQ;;EAEE,iCAA0C;AvE6mPpD;;AuE3mPQ;;EAEE,+BAAsC;AvE8mPhD;;AuE7nPQ;EAAgC,wBAA4B;AvEioPpE;;AuEhoPQ;;EAEE,4BAAoC;AvEmoP9C;;AuEjoPQ;;EAEE,8BAAwC;AvEooPlD;;AuEloPQ;;EAEE,+BAA0C;AvEqoPpD;;AuEnoPQ;;EAEE,6BAAsC;AvEsoPhD;;AuE9nPQ;EAAwB,2BAA2B;AvEkoP3D;;AuEjoPQ;;EAEE,+BAA+B;AvEooPzC;;AuEloPQ;;EAEE,iCAAiC;AvEqoP3C;;AuEnoPQ;;EAEE,kCAAkC;AvEsoP5C;;AuEpoPQ;;EAEE,gCAAgC;AvEuoP1C;;AuEtpPQ;EAAwB,0BAA2B;AvE0pP3D;;AuEzpPQ;;EAEE,8BAA+B;AvE4pPzC;;AuE1pPQ;;EAEE,gCAAiC;AvE6pP3C;;AuE3pPQ;;EAEE,iCAAkC;AvE8pP5C;;AuE5pPQ;;EAEE,+BAAgC;AvE+pP1C;;AuE9qPQ;EAAwB,wBAA2B;AvEkrP3D;;AuEjrPQ;;EAEE,4BAA+B;AvEorPzC;;AuElrPQ;;EAEE,8BAAiC;AvEqrP3C;;AuEnrPQ;;EAEE,+BAAkC;AvEsrP5C;;AuEprPQ;;EAEE,6BAAgC;AvEurP1C;;AuEtsPQ;EAAwB,0BAA2B;AvE0sP3D;;AuEzsPQ;;EAEE,8BAA+B;AvE4sPzC;;AuE1sPQ;;EAEE,gCAAiC;AvE6sP3C;;AuE3sPQ;;EAEE,iCAAkC;AvE8sP5C;;AuE5sPQ;;EAEE,+BAAgC;AvE+sP1C;;AuE9tPQ;EAAwB,wBAA2B;AvEkuP3D;;AuEjuPQ;;EAEE,4BAA+B;AvEouPzC;;AuEluPQ;;EAEE,8BAAiC;AvEquP3C;;AuEnuPQ;;EAEE,+BAAkC;AvEsuP5C;;AuEpuPQ;;EAEE,6BAAgC;AvEuuP1C;;AuEjuPI;EAAmB,uBAAuB;AvEquP9C;;AuEpuPI;;EAEE,2BAA2B;AvEuuPjC;;AuEruPI;;EAEE,6BAA6B;AvEwuPnC;;AuEtuPI;;EAEE,8BAA8B;AvEyuPpC;;AuEvuPI;;EAEE,4BAA4B;AvE0uPlC;;AcnvPI;EyDlDI;IAAgC,oBAA4B;EvE0yPlE;EuEzyPM;;IAEE,wBAAoC;EvE2yP5C;EuEzyPM;;IAEE,0BAAwC;EvE2yPhD;EuEzyPM;;IAEE,2BAA0C;EvE2yPlD;EuEzyPM;;IAEE,yBAAsC;EvE2yP9C;EuE1zPM;IAAgC,0BAA4B;EvE6zPlE;EuE5zPM;;IAEE,8BAAoC;EvE8zP5C;EuE5zPM;;IAEE,gCAAwC;EvE8zPhD;EuE5zPM;;IAEE,iCAA0C;EvE8zPlD;EuE5zPM;;IAEE,+BAAsC;EvE8zP9C;EuE70PM;IAAgC,yBAA4B;EvEg1PlE;EuE/0PM;;IAEE,6BAAoC;EvEi1P5C;EuE/0PM;;IAEE,+BAAwC;EvEi1PhD;EuE/0PM;;IAEE,gCAA0C;EvEi1PlD;EuE/0PM;;IAEE,8BAAsC;EvEi1P9C;EuEh2PM;IAAgC,uBAA4B;EvEm2PlE;EuEl2PM;;IAEE,2BAAoC;EvEo2P5C;EuEl2PM;;IAEE,6BAAwC;EvEo2PhD;EuEl2PM;;IAEE,8BAA0C;EvEo2PlD;EuEl2PM;;IAEE,4BAAsC;EvEo2P9C;EuEn3PM;IAAgC,yBAA4B;EvEs3PlE;EuEr3PM;;IAEE,6BAAoC;EvEu3P5C;EuEr3PM;;IAEE,+BAAwC;EvEu3PhD;EuEr3PM;;IAEE,gCAA0C;EvEu3PlD;EuEr3PM;;IAEE,8BAAsC;EvEu3P9C;EuEt4PM;IAAgC,uBAA4B;EvEy4PlE;EuEx4PM;;IAEE,2BAAoC;EvE04P5C;EuEx4PM;;IAEE,6BAAwC;EvE04PhD;EuEx4PM;;IAEE,8BAA0C;EvE04PlD;EuEx4PM;;IAEE,4BAAsC;EvE04P9C;EuEz5PM;IAAgC,qBAA4B;EvE45PlE;EuE35PM;;IAEE,yBAAoC;EvE65P5C;EuE35PM;;IAEE,2BAAwC;EvE65PhD;EuE35PM;;IAEE,4BAA0C;EvE65PlD;EuE35PM;;IAEE,0BAAsC;EvE65P9C;EuE56PM;IAAgC,2BAA4B;EvE+6PlE;EuE96PM;;IAEE,+BAAoC;EvEg7P5C;EuE96PM;;IAEE,iCAAwC;EvEg7PhD;EuE96PM;;IAEE,kCAA0C;EvEg7PlD;EuE96PM;;IAEE,gCAAsC;EvEg7P9C;EuE/7PM;IAAgC,0BAA4B;EvEk8PlE;EuEj8PM;;IAEE,8BAAoC;EvEm8P5C;EuEj8PM;;IAEE,gCAAwC;EvEm8PhD;EuEj8PM;;IAEE,iCAA0C;EvEm8PlD;EuEj8PM;;IAEE,+BAAsC;EvEm8P9C;EuEl9PM;IAAgC,wBAA4B;EvEq9PlE;EuEp9PM;;IAEE,4BAAoC;EvEs9P5C;EuEp9PM;;IAEE,8BAAwC;EvEs9PhD;EuEp9PM;;IAEE,+BAA0C;EvEs9PlD;EuEp9PM;;IAEE,6BAAsC;EvEs9P9C;EuEr+PM;IAAgC,0BAA4B;EvEw+PlE;EuEv+PM;;IAEE,8BAAoC;EvEy+P5C;EuEv+PM;;IAEE,gCAAwC;EvEy+PhD;EuEv+PM;;IAEE,iCAA0C;EvEy+PlD;EuEv+PM;;IAEE,+BAAsC;EvEy+P9C;EuEx/PM;IAAgC,wBAA4B;EvE2/PlE;EuE1/PM;;IAEE,4BAAoC;EvE4/P5C;EuE1/PM;;IAEE,8BAAwC;EvE4/PhD;EuE1/PM;;IAEE,+BAA0C;EvE4/PlD;EuE1/PM;;IAEE,6BAAsC;EvE4/P9C;EuEp/PM;IAAwB,2BAA2B;EvEu/PzD;EuEt/PM;;IAEE,+BAA+B;EvEw/PvC;EuEt/PM;;IAEE,iCAAiC;EvEw/PzC;EuEt/PM;;IAEE,kCAAkC;EvEw/P1C;EuEt/PM;;IAEE,gCAAgC;EvEw/PxC;EuEvgQM;IAAwB,0BAA2B;EvE0gQzD;EuEzgQM;;IAEE,8BAA+B;EvE2gQvC;EuEzgQM;;IAEE,gCAAiC;EvE2gQzC;EuEzgQM;;IAEE,iCAAkC;EvE2gQ1C;EuEzgQM;;IAEE,+BAAgC;EvE2gQxC;EuE1hQM;IAAwB,wBAA2B;EvE6hQzD;EuE5hQM;;IAEE,4BAA+B;EvE8hQvC;EuE5hQM;;IAEE,8BAAiC;EvE8hQzC;EuE5hQM;;IAEE,+BAAkC;EvE8hQ1C;EuE5hQM;;IAEE,6BAAgC;EvE8hQxC;EuE7iQM;IAAwB,0BAA2B;EvEgjQzD;EuE/iQM;;IAEE,8BAA+B;EvEijQvC;EuE/iQM;;IAEE,gCAAiC;EvEijQzC;EuE/iQM;;IAEE,iCAAkC;EvEijQ1C;EuE/iQM;;IAEE,+BAAgC;EvEijQxC;EuEhkQM;IAAwB,wBAA2B;EvEmkQzD;EuElkQM;;IAEE,4BAA+B;EvEokQvC;EuElkQM;;IAEE,8BAAiC;EvEokQzC;EuElkQM;;IAEE,+BAAkC;EvEokQ1C;EuElkQM;;IAEE,6BAAgC;EvEokQxC;EuE9jQE;IAAmB,uBAAuB;EvEikQ5C;EuEhkQE;;IAEE,2BAA2B;EvEkkQ/B;EuEhkQE;;IAEE,6BAA6B;EvEkkQjC;EuEhkQE;;IAEE,8BAA8B;EvEkkQlC;EuEhkQE;;IAEE,4BAA4B;EvEkkQhC;AACF;;Ac5kQI;EyDlDI;IAAgC,oBAA4B;EvEmoQlE;EuEloQM;;IAEE,wBAAoC;EvEooQ5C;EuEloQM;;IAEE,0BAAwC;EvEooQhD;EuEloQM;;IAEE,2BAA0C;EvEooQlD;EuEloQM;;IAEE,yBAAsC;EvEooQ9C;EuEnpQM;IAAgC,0BAA4B;EvEspQlE;EuErpQM;;IAEE,8BAAoC;EvEupQ5C;EuErpQM;;IAEE,gCAAwC;EvEupQhD;EuErpQM;;IAEE,iCAA0C;EvEupQlD;EuErpQM;;IAEE,+BAAsC;EvEupQ9C;EuEtqQM;IAAgC,yBAA4B;EvEyqQlE;EuExqQM;;IAEE,6BAAoC;EvE0qQ5C;EuExqQM;;IAEE,+BAAwC;EvE0qQhD;EuExqQM;;IAEE,gCAA0C;EvE0qQlD;EuExqQM;;IAEE,8BAAsC;EvE0qQ9C;EuEzrQM;IAAgC,uBAA4B;EvE4rQlE;EuE3rQM;;IAEE,2BAAoC;EvE6rQ5C;EuE3rQM;;IAEE,6BAAwC;EvE6rQhD;EuE3rQM;;IAEE,8BAA0C;EvE6rQlD;EuE3rQM;;IAEE,4BAAsC;EvE6rQ9C;EuE5sQM;IAAgC,yBAA4B;EvE+sQlE;EuE9sQM;;IAEE,6BAAoC;EvEgtQ5C;EuE9sQM;;IAEE,+BAAwC;EvEgtQhD;EuE9sQM;;IAEE,gCAA0C;EvEgtQlD;EuE9sQM;;IAEE,8BAAsC;EvEgtQ9C;EuE/tQM;IAAgC,uBAA4B;EvEkuQlE;EuEjuQM;;IAEE,2BAAoC;EvEmuQ5C;EuEjuQM;;IAEE,6BAAwC;EvEmuQhD;EuEjuQM;;IAEE,8BAA0C;EvEmuQlD;EuEjuQM;;IAEE,4BAAsC;EvEmuQ9C;EuElvQM;IAAgC,qBAA4B;EvEqvQlE;EuEpvQM;;IAEE,yBAAoC;EvEsvQ5C;EuEpvQM;;IAEE,2BAAwC;EvEsvQhD;EuEpvQM;;IAEE,4BAA0C;EvEsvQlD;EuEpvQM;;IAEE,0BAAsC;EvEsvQ9C;EuErwQM;IAAgC,2BAA4B;EvEwwQlE;EuEvwQM;;IAEE,+BAAoC;EvEywQ5C;EuEvwQM;;IAEE,iCAAwC;EvEywQhD;EuEvwQM;;IAEE,kCAA0C;EvEywQlD;EuEvwQM;;IAEE,gCAAsC;EvEywQ9C;EuExxQM;IAAgC,0BAA4B;EvE2xQlE;EuE1xQM;;IAEE,8BAAoC;EvE4xQ5C;EuE1xQM;;IAEE,gCAAwC;EvE4xQhD;EuE1xQM;;IAEE,iCAA0C;EvE4xQlD;EuE1xQM;;IAEE,+BAAsC;EvE4xQ9C;EuE3yQM;IAAgC,wBAA4B;EvE8yQlE;EuE7yQM;;IAEE,4BAAoC;EvE+yQ5C;EuE7yQM;;IAEE,8BAAwC;EvE+yQhD;EuE7yQM;;IAEE,+BAA0C;EvE+yQlD;EuE7yQM;;IAEE,6BAAsC;EvE+yQ9C;EuE9zQM;IAAgC,0BAA4B;EvEi0QlE;EuEh0QM;;IAEE,8BAAoC;EvEk0Q5C;EuEh0QM;;IAEE,gCAAwC;EvEk0QhD;EuEh0QM;;IAEE,iCAA0C;EvEk0QlD;EuEh0QM;;IAEE,+BAAsC;EvEk0Q9C;EuEj1QM;IAAgC,wBAA4B;EvEo1QlE;EuEn1QM;;IAEE,4BAAoC;EvEq1Q5C;EuEn1QM;;IAEE,8BAAwC;EvEq1QhD;EuEn1QM;;IAEE,+BAA0C;EvEq1QlD;EuEn1QM;;IAEE,6BAAsC;EvEq1Q9C;EuE70QM;IAAwB,2BAA2B;EvEg1QzD;EuE/0QM;;IAEE,+BAA+B;EvEi1QvC;EuE/0QM;;IAEE,iCAAiC;EvEi1QzC;EuE/0QM;;IAEE,kCAAkC;EvEi1Q1C;EuE/0QM;;IAEE,gCAAgC;EvEi1QxC;EuEh2QM;IAAwB,0BAA2B;EvEm2QzD;EuEl2QM;;IAEE,8BAA+B;EvEo2QvC;EuEl2QM;;IAEE,gCAAiC;EvEo2QzC;EuEl2QM;;IAEE,iCAAkC;EvEo2Q1C;EuEl2QM;;IAEE,+BAAgC;EvEo2QxC;EuEn3QM;IAAwB,wBAA2B;EvEs3QzD;EuEr3QM;;IAEE,4BAA+B;EvEu3QvC;EuEr3QM;;IAEE,8BAAiC;EvEu3QzC;EuEr3QM;;IAEE,+BAAkC;EvEu3Q1C;EuEr3QM;;IAEE,6BAAgC;EvEu3QxC;EuEt4QM;IAAwB,0BAA2B;EvEy4QzD;EuEx4QM;;IAEE,8BAA+B;EvE04QvC;EuEx4QM;;IAEE,gCAAiC;EvE04QzC;EuEx4QM;;IAEE,iCAAkC;EvE04Q1C;EuEx4QM;;IAEE,+BAAgC;EvE04QxC;EuEz5QM;IAAwB,wBAA2B;EvE45QzD;EuE35QM;;IAEE,4BAA+B;EvE65QvC;EuE35QM;;IAEE,8BAAiC;EvE65QzC;EuE35QM;;IAEE,+BAAkC;EvE65Q1C;EuE35QM;;IAEE,6BAAgC;EvE65QxC;EuEv5QE;IAAmB,uBAAuB;EvE05Q5C;EuEz5QE;;IAEE,2BAA2B;EvE25Q/B;EuEz5QE;;IAEE,6BAA6B;EvE25QjC;EuEz5QE;;IAEE,8BAA8B;EvE25QlC;EuEz5QE;;IAEE,4BAA4B;EvE25QhC;AACF;;Acr6QI;EyDlDI;IAAgC,oBAA4B;EvE49QlE;EuE39QM;;IAEE,wBAAoC;EvE69Q5C;EuE39QM;;IAEE,0BAAwC;EvE69QhD;EuE39QM;;IAEE,2BAA0C;EvE69QlD;EuE39QM;;IAEE,yBAAsC;EvE69Q9C;EuE5+QM;IAAgC,0BAA4B;EvE++QlE;EuE9+QM;;IAEE,8BAAoC;EvEg/Q5C;EuE9+QM;;IAEE,gCAAwC;EvEg/QhD;EuE9+QM;;IAEE,iCAA0C;EvEg/QlD;EuE9+QM;;IAEE,+BAAsC;EvEg/Q9C;EuE//QM;IAAgC,yBAA4B;EvEkgRlE;EuEjgRM;;IAEE,6BAAoC;EvEmgR5C;EuEjgRM;;IAEE,+BAAwC;EvEmgRhD;EuEjgRM;;IAEE,gCAA0C;EvEmgRlD;EuEjgRM;;IAEE,8BAAsC;EvEmgR9C;EuElhRM;IAAgC,uBAA4B;EvEqhRlE;EuEphRM;;IAEE,2BAAoC;EvEshR5C;EuEphRM;;IAEE,6BAAwC;EvEshRhD;EuEphRM;;IAEE,8BAA0C;EvEshRlD;EuEphRM;;IAEE,4BAAsC;EvEshR9C;EuEriRM;IAAgC,yBAA4B;EvEwiRlE;EuEviRM;;IAEE,6BAAoC;EvEyiR5C;EuEviRM;;IAEE,+BAAwC;EvEyiRhD;EuEviRM;;IAEE,gCAA0C;EvEyiRlD;EuEviRM;;IAEE,8BAAsC;EvEyiR9C;EuExjRM;IAAgC,uBAA4B;EvE2jRlE;EuE1jRM;;IAEE,2BAAoC;EvE4jR5C;EuE1jRM;;IAEE,6BAAwC;EvE4jRhD;EuE1jRM;;IAEE,8BAA0C;EvE4jRlD;EuE1jRM;;IAEE,4BAAsC;EvE4jR9C;EuE3kRM;IAAgC,qBAA4B;EvE8kRlE;EuE7kRM;;IAEE,yBAAoC;EvE+kR5C;EuE7kRM;;IAEE,2BAAwC;EvE+kRhD;EuE7kRM;;IAEE,4BAA0C;EvE+kRlD;EuE7kRM;;IAEE,0BAAsC;EvE+kR9C;EuE9lRM;IAAgC,2BAA4B;EvEimRlE;EuEhmRM;;IAEE,+BAAoC;EvEkmR5C;EuEhmRM;;IAEE,iCAAwC;EvEkmRhD;EuEhmRM;;IAEE,kCAA0C;EvEkmRlD;EuEhmRM;;IAEE,gCAAsC;EvEkmR9C;EuEjnRM;IAAgC,0BAA4B;EvEonRlE;EuEnnRM;;IAEE,8BAAoC;EvEqnR5C;EuEnnRM;;IAEE,gCAAwC;EvEqnRhD;EuEnnRM;;IAEE,iCAA0C;EvEqnRlD;EuEnnRM;;IAEE,+BAAsC;EvEqnR9C;EuEpoRM;IAAgC,wBAA4B;EvEuoRlE;EuEtoRM;;IAEE,4BAAoC;EvEwoR5C;EuEtoRM;;IAEE,8BAAwC;EvEwoRhD;EuEtoRM;;IAEE,+BAA0C;EvEwoRlD;EuEtoRM;;IAEE,6BAAsC;EvEwoR9C;EuEvpRM;IAAgC,0BAA4B;EvE0pRlE;EuEzpRM;;IAEE,8BAAoC;EvE2pR5C;EuEzpRM;;IAEE,gCAAwC;EvE2pRhD;EuEzpRM;;IAEE,iCAA0C;EvE2pRlD;EuEzpRM;;IAEE,+BAAsC;EvE2pR9C;EuE1qRM;IAAgC,wBAA4B;EvE6qRlE;EuE5qRM;;IAEE,4BAAoC;EvE8qR5C;EuE5qRM;;IAEE,8BAAwC;EvE8qRhD;EuE5qRM;;IAEE,+BAA0C;EvE8qRlD;EuE5qRM;;IAEE,6BAAsC;EvE8qR9C;EuEtqRM;IAAwB,2BAA2B;EvEyqRzD;EuExqRM;;IAEE,+BAA+B;EvE0qRvC;EuExqRM;;IAEE,iCAAiC;EvE0qRzC;EuExqRM;;IAEE,kCAAkC;EvE0qR1C;EuExqRM;;IAEE,gCAAgC;EvE0qRxC;EuEzrRM;IAAwB,0BAA2B;EvE4rRzD;EuE3rRM;;IAEE,8BAA+B;EvE6rRvC;EuE3rRM;;IAEE,gCAAiC;EvE6rRzC;EuE3rRM;;IAEE,iCAAkC;EvE6rR1C;EuE3rRM;;IAEE,+BAAgC;EvE6rRxC;EuE5sRM;IAAwB,wBAA2B;EvE+sRzD;EuE9sRM;;IAEE,4BAA+B;EvEgtRvC;EuE9sRM;;IAEE,8BAAiC;EvEgtRzC;EuE9sRM;;IAEE,+BAAkC;EvEgtR1C;EuE9sRM;;IAEE,6BAAgC;EvEgtRxC;EuE/tRM;IAAwB,0BAA2B;EvEkuRzD;EuEjuRM;;IAEE,8BAA+B;EvEmuRvC;EuEjuRM;;IAEE,gCAAiC;EvEmuRzC;EuEjuRM;;IAEE,iCAAkC;EvEmuR1C;EuEjuRM;;IAEE,+BAAgC;EvEmuRxC;EuElvRM;IAAwB,wBAA2B;EvEqvRzD;EuEpvRM;;IAEE,4BAA+B;EvEsvRvC;EuEpvRM;;IAEE,8BAAiC;EvEsvRzC;EuEpvRM;;IAEE,+BAAkC;EvEsvR1C;EuEpvRM;;IAEE,6BAAgC;EvEsvRxC;EuEhvRE;IAAmB,uBAAuB;EvEmvR5C;EuElvRE;;IAEE,2BAA2B;EvEovR/B;EuElvRE;;IAEE,6BAA6B;EvEovRjC;EuElvRE;;IAEE,8BAA8B;EvEovRlC;EuElvRE;;IAEE,4BAA4B;EvEovRhC;AACF;;Ac9vRI;EyDlDI;IAAgC,oBAA4B;EvEqzRlE;EuEpzRM;;IAEE,wBAAoC;EvEszR5C;EuEpzRM;;IAEE,0BAAwC;EvEszRhD;EuEpzRM;;IAEE,2BAA0C;EvEszRlD;EuEpzRM;;IAEE,yBAAsC;EvEszR9C;EuEr0RM;IAAgC,0BAA4B;EvEw0RlE;EuEv0RM;;IAEE,8BAAoC;EvEy0R5C;EuEv0RM;;IAEE,gCAAwC;EvEy0RhD;EuEv0RM;;IAEE,iCAA0C;EvEy0RlD;EuEv0RM;;IAEE,+BAAsC;EvEy0R9C;EuEx1RM;IAAgC,yBAA4B;EvE21RlE;EuE11RM;;IAEE,6BAAoC;EvE41R5C;EuE11RM;;IAEE,+BAAwC;EvE41RhD;EuE11RM;;IAEE,gCAA0C;EvE41RlD;EuE11RM;;IAEE,8BAAsC;EvE41R9C;EuE32RM;IAAgC,uBAA4B;EvE82RlE;EuE72RM;;IAEE,2BAAoC;EvE+2R5C;EuE72RM;;IAEE,6BAAwC;EvE+2RhD;EuE72RM;;IAEE,8BAA0C;EvE+2RlD;EuE72RM;;IAEE,4BAAsC;EvE+2R9C;EuE93RM;IAAgC,yBAA4B;EvEi4RlE;EuEh4RM;;IAEE,6BAAoC;EvEk4R5C;EuEh4RM;;IAEE,+BAAwC;EvEk4RhD;EuEh4RM;;IAEE,gCAA0C;EvEk4RlD;EuEh4RM;;IAEE,8BAAsC;EvEk4R9C;EuEj5RM;IAAgC,uBAA4B;EvEo5RlE;EuEn5RM;;IAEE,2BAAoC;EvEq5R5C;EuEn5RM;;IAEE,6BAAwC;EvEq5RhD;EuEn5RM;;IAEE,8BAA0C;EvEq5RlD;EuEn5RM;;IAEE,4BAAsC;EvEq5R9C;EuEp6RM;IAAgC,qBAA4B;EvEu6RlE;EuEt6RM;;IAEE,yBAAoC;EvEw6R5C;EuEt6RM;;IAEE,2BAAwC;EvEw6RhD;EuEt6RM;;IAEE,4BAA0C;EvEw6RlD;EuEt6RM;;IAEE,0BAAsC;EvEw6R9C;EuEv7RM;IAAgC,2BAA4B;EvE07RlE;EuEz7RM;;IAEE,+BAAoC;EvE27R5C;EuEz7RM;;IAEE,iCAAwC;EvE27RhD;EuEz7RM;;IAEE,kCAA0C;EvE27RlD;EuEz7RM;;IAEE,gCAAsC;EvE27R9C;EuE18RM;IAAgC,0BAA4B;EvE68RlE;EuE58RM;;IAEE,8BAAoC;EvE88R5C;EuE58RM;;IAEE,gCAAwC;EvE88RhD;EuE58RM;;IAEE,iCAA0C;EvE88RlD;EuE58RM;;IAEE,+BAAsC;EvE88R9C;EuE79RM;IAAgC,wBAA4B;EvEg+RlE;EuE/9RM;;IAEE,4BAAoC;EvEi+R5C;EuE/9RM;;IAEE,8BAAwC;EvEi+RhD;EuE/9RM;;IAEE,+BAA0C;EvEi+RlD;EuE/9RM;;IAEE,6BAAsC;EvEi+R9C;EuEh/RM;IAAgC,0BAA4B;EvEm/RlE;EuEl/RM;;IAEE,8BAAoC;EvEo/R5C;EuEl/RM;;IAEE,gCAAwC;EvEo/RhD;EuEl/RM;;IAEE,iCAA0C;EvEo/RlD;EuEl/RM;;IAEE,+BAAsC;EvEo/R9C;EuEngSM;IAAgC,wBAA4B;EvEsgSlE;EuErgSM;;IAEE,4BAAoC;EvEugS5C;EuErgSM;;IAEE,8BAAwC;EvEugShD;EuErgSM;;IAEE,+BAA0C;EvEugSlD;EuErgSM;;IAEE,6BAAsC;EvEugS9C;EuE//RM;IAAwB,2BAA2B;EvEkgSzD;EuEjgSM;;IAEE,+BAA+B;EvEmgSvC;EuEjgSM;;IAEE,iCAAiC;EvEmgSzC;EuEjgSM;;IAEE,kCAAkC;EvEmgS1C;EuEjgSM;;IAEE,gCAAgC;EvEmgSxC;EuElhSM;IAAwB,0BAA2B;EvEqhSzD;EuEphSM;;IAEE,8BAA+B;EvEshSvC;EuEphSM;;IAEE,gCAAiC;EvEshSzC;EuEphSM;;IAEE,iCAAkC;EvEshS1C;EuEphSM;;IAEE,+BAAgC;EvEshSxC;EuEriSM;IAAwB,wBAA2B;EvEwiSzD;EuEviSM;;IAEE,4BAA+B;EvEyiSvC;EuEviSM;;IAEE,8BAAiC;EvEyiSzC;EuEviSM;;IAEE,+BAAkC;EvEyiS1C;EuEviSM;;IAEE,6BAAgC;EvEyiSxC;EuExjSM;IAAwB,0BAA2B;EvE2jSzD;EuE1jSM;;IAEE,8BAA+B;EvE4jSvC;EuE1jSM;;IAEE,gCAAiC;EvE4jSzC;EuE1jSM;;IAEE,iCAAkC;EvE4jS1C;EuE1jSM;;IAEE,+BAAgC;EvE4jSxC;EuE3kSM;IAAwB,wBAA2B;EvE8kSzD;EuE7kSM;;IAEE,4BAA+B;EvE+kSvC;EuE7kSM;;IAEE,8BAAiC;EvE+kSzC;EuE7kSM;;IAEE,+BAAkC;EvE+kS1C;EuE7kSM;;IAEE,6BAAgC;EvE+kSxC;EuEzkSE;IAAmB,uBAAuB;EvE4kS5C;EuE3kSE;;IAEE,2BAA2B;EvE6kS/B;EuE3kSE;;IAEE,6BAA6B;EvE6kSjC;EuE3kSE;;IAEE,8BAA8B;EvE6kSlC;EuE3kSE;;IAEE,4BAA4B;EvE6kShC;AACF;;AwE/oSA;EAEI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,OAAO;EACP,UAAU;EAEV,oBAAoB;EACpB,WAAW;EAEX,kCAAkC;AxE+oStC;;AyEzpSA;EAAkB,4GAA8C;AzE6pShE;;AyEzpSA;EAAiB,8BAA8B;AzE6pS/C;;AyE5pSA;EAAiB,8BAA8B;AzEgqS/C;;AyE/pSA;EAAiB,8BAA8B;AzEmqS/C;;AyElqSA;ECTE,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;A1E+qSrB;;AyEhqSI;EAAwB,2BAA2B;AzEoqSvD;;AyEnqSI;EAAwB,4BAA4B;AzEuqSxD;;AyEtqSI;EAAwB,6BAA6B;AzE0qSzD;;AcroSI;E2DvCA;IAAwB,2BAA2B;EzEirSrD;EyEhrSE;IAAwB,4BAA4B;EzEmrStD;EyElrSE;IAAwB,6BAA6B;EzEqrSvD;AACF;;AcjpSI;E2DvCA;IAAwB,2BAA2B;EzE6rSrD;EyE5rSE;IAAwB,4BAA4B;EzE+rStD;EyE9rSE;IAAwB,6BAA6B;EzEisSvD;AACF;;Ac7pSI;E2DvCA;IAAwB,2BAA2B;EzEysSrD;EyExsSE;IAAwB,4BAA4B;EzE2sStD;EyE1sSE;IAAwB,6BAA6B;EzE6sSvD;AACF;;AczqSI;E2DvCA;IAAwB,2BAA2B;EzEqtSrD;EyEptSE;IAAwB,4BAA4B;EzEutStD;EyEttSE;IAAwB,6BAA6B;EzEytSvD;AACF;;AyEptSA;EAAmB,oCAAoC;AzEwtSvD;;AyEvtSA;EAAmB,oCAAoC;AzE2tSvD;;AyE1tSA;EAAmB,qCAAqC;AzE8tSxD;;AyE1tSA;EAAuB,2BAA0C;AzE8tSjE;;AyE7tSA;EAAuB,+BAA4C;AzEiuSnE;;AyEhuSA;EAAuB,2BAA2C;AzEouSlE;;AyEnuSA;EAAuB,2BAAyC;AzEuuShE;;AyEtuSA;EAAuB,8BAA2C;AzE0uSlE;;AyEzuSA;EAAuB,6BAA6B;AzE6uSpD;;AyEzuSA;EAAc,sBAAwB;AzE6uStC;;A2EpxSE;EACE,yBAAwB;A3EuxS5B;;AK7wSE;EsELM,yBAA0E;A3EsxSlF;;A2E5xSE;EACE,yBAAwB;A3E+xS5B;;AKrxSE;EsELM,yBAA0E;A3E8xSlF;;A2EpySE;EACE,yBAAwB;A3EuyS5B;;AK7xSE;EsELM,yBAA0E;A3EsySlF;;A2E5ySE;EACE,yBAAwB;A3E+yS5B;;AKrySE;EsELM,yBAA0E;A3E8ySlF;;A2EpzSE;EACE,yBAAwB;A3EuzS5B;;AK7ySE;EsELM,yBAA0E;A3EszSlF;;A2E5zSE;EACE,yBAAwB;A3E+zS5B;;AKrzSE;EsELM,yBAA0E;A3E8zSlF;;A2Ep0SE;EACE,yBAAwB;A3Eu0S5B;;AK7zSE;EsELM,yBAA0E;A3Es0SlF;;A2E50SE;EACE,yBAAwB;A3E+0S5B;;AKr0SE;EsELM,yBAA0E;A3E80SlF;;AyEvySA;EAAa,yBAA6B;AzE2yS1C;;AyE1ySA;EAAc,yBAA6B;AzE8yS3C;;AyE5ySA;EAAiB,oCAAkC;AzEgzSnD;;AyE/ySA;EAAiB,0CAAkC;AzEmzSnD;;AyE/ySA;EGvDE,WAAW;EACX,kBAAkB;EAClB,iBAAiB;EACjB,6BAA6B;EAC7B,SAAS;A5E02SX;;AyEnzSA;EAAwB,gCAAgC;AzEuzSxD;;AyErzSA;EACE,iCAAiC;EACjC,gCAAgC;AzEwzSlC;;AyEnzSA;EAAc,yBAAyB;AzEuzSvC;;A6Ex3SA;EACE,8BAA8B;A7E23ShC;;A6Ex3SA;EACE,6BAA6B;A7E23S/B;;A8E33SE;E5EOF;;;I4EDM,4BAA4B;IAE5B,2BAA2B;E9E23S/B;E8Ex3SE;IAEI,0BAA0B;E9Ey3ShC;E8Eh3SE;IACE,6BAA6B;E9Ek3SjC;EEprSF;I4E/KM,gCAAgC;E9Es2SpC;E8Ep2SE;;IAEE,yB3EzCY;I2E0CZ,wBAAwB;E9Es2S5B;E8E91SE;IACE,2BAA2B;E9Eg2S/B;E8E71SE;;IAEE,wBAAwB;E9E+1S5B;E8E51SE;;;IAGE,UAAU;IACV,SAAS;E9E81Sb;E8E31SE;;IAEE,uBAAuB;E9E61S3B;E8Er1SE;IACE,Q3E+hCgC;EHwzQpC;EEn4SF;I4E+CM,2BAA2C;E9Eu1S/C;E8Er1SE;IACE,2BAA2C;E9Eu1S/C;EiCr6SF;I6CmFM,aAAa;E9Eq1SjB;EsCp7SF;IwCkGM,sB3EtFS;EH26Sb;EgBx7SF;I8DuGM,oCAAoC;E9Eo1SxC;E8Er1SE;;IAKI,iCAAmC;E9Eo1SzC;EgBv5SF;;I8D0EQ,oCAAsC;E9Ei1S5C;EgBt0SF;I8DNM,cAAc;E9E+0SlB;EiBr8SA;;;;I6D4HM,qB3EvHU;EHs8ShB;EgBj2SF;I8DuBM,cAAc;IACd,qB3E7HY;EH08ShB;AACF;;A+Er9SA;;EAEE,iBAAiB;EACjB,c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AA+C;IAC/C,cAAc;E/EwlThB;E+E30TF;;IAkPI,iBAA+C;IAC/C,cAAc;E/E6lThB;E+Eh1TF;;IAkPI,wBAA+C;IAC/C,cAAc;E/EkmThB;E+Er1TF;;IAkPI,wBAA+C;IAC/C,cAAc;E/EumThB;E+E11TF;;IAkPI,iBAA+C;IAC/C,cAAc;E/E4mThB;E+E/1TF;;IAkPI,wBAA+C;IAC/C,cAAc;E/EinThB;E+Ep2TF;;IAkPI,wBAA+C;IAC/C,cAAc;E/EsnThB;E+Ez2TF;;IAkPI,iBAA+C;IAC/C,cAAc;E/E2nThB;E+E92TF;;IAkPI,wBAA+C;IAC/C,cAAc;E/EgoThB;E+En3TF;;IAkPI,wBAA+C;IAC/C,cAAc;E/EqoThB;AACF;;Ac7zTI;EiE5DJ;;IAkPI,eAA6B;IAC7B,cAAc;E/E6oThB;E+Eh4TF;;IAkPI,uBAA+C;IAC/C,cAAc;E/EkpThB;E+Er4TF;;IAkPI,wBAA+C;IAC/C,cAAc;E/EupThB;E+E14TF;;IAkPI,iBAA+C;IAC/C,cAAc;E/E4pThB;E+E/4TF;;IAkPI,wBAA+C;IAC/C,cAAc;E/EiqThB;E+Ep5TF;;IAkPI,wBAA+C;IAC/C,cAAc;E/EsqThB;E+Ez5TF;;IAkPI,iBAA+C;IAC/C,cAAc;E/E2qThB;E+E95TF;;IAkPI,wBAA+C;IAC/C,cAAc;E/EgrThB;E+En6TF;;IAkPI,wBAA+C;IAC/C,cAAc;E/EqrThB;E+Ex6TF;;IAkPI,iBAA+C;IAC/C,cAAc;E/E0rThB;E+E76TF;;IAkPI,wBAA+C;IAC/C,cAAc;E/E+rThB;E+El7TF;;IAkPI,wBAA+C;IAC/C,cAAc;E/EosThB;AACF;;Ac53TI;EiE5DJ;;IAkPI,eAA6B;IAC7B,cAAc;E/E4sThB;E+E/7TF;;IAkPI,uBAA+C;IAC/C,cAAc;E/EitThB;E+Ep8TF;;IAkPI,wBAA+C;IAC/C,cAAc;E/EstThB;E+Ez8TF;;IAkPI,iBAA+C;IAC/C,cAAc;E/E2tThB;E+E98TF;;IAkPI,wBAA+C;IAC/C,cAAc;E/EguThB;E+En9TF;;IAkPI,wBAA+C;IAC/C,cAAc;E/EquThB;E+Ex9TF;;IAkPI,iBAA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","file":"bootstrap-rtl.css","sourcesContent":["/*!\n * Bootstrap v4.5.2 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\n @import \"functions\";\n @import \"variables\";\n @import \"mixins\";\n @import \"root\";\n @import \"reboot\";\n @import \"type\";\n @import \"images\";\n @import \"code\";\n @import \"grid\";\n @import \"tables\";\n @import \"forms\";\n @import \"buttons\";\n @import \"transitions\";\n @import \"dropdown\";\n @import \"button-group\";\n @import \"input-group\";\n @import \"custom-forms\";\n @import \"nav\";\n @import \"navbar\";\n @import \"card\";\n @import \"breadcrumb\";\n @import \"pagination\";\n @import \"badge\";\n @import \"jumbotron\";\n @import \"alert\";\n @import \"progress\";\n @import \"media\";\n @import \"list-group\";\n @import \"close\";\n @import \"toasts\";\n @import \"modal\";\n @import \"tooltip\";\n @import \"popover\";\n @import \"carousel\";\n @import \"spinners\";\n @import \"utilities\";\n @import \"print\";\n\n@import \"rtl\";\n","/*!\n * Bootstrap v4.5.2 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n text-align: -webkit-match-parent;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=\"button\"] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-wrap: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\ninput[type=\"date\"].form-control,\ninput[type=\"time\"].form-control,\ninput[type=\"datetime-local\"].form-control,\ninput[type=\"month\"].form-control {\n appearance: none;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n font-size: 1rem;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label,\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.form-row > .col > .valid-tooltip,\n.form-row > [class*=\"col-\"] > .valid-tooltip {\n left: 5px;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") right 0.75rem center/8px 10px no-repeat, #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat;\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.form-row > .col > .invalid-tooltip,\n.form-row > [class*=\"col-\"] > .invalid-tooltip {\n left: 5px;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") right 0.75rem center/8px 10px no-repeat, #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat;\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\n.btn:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #e9ecef;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #adb5bd;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group:not(.has-validation) > .form-control:not(:last-child),\n.input-group:not(.has-validation) > .custom-select:not(:last-child),\n.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group.has-validation > .form-control:nth-last-child(n + 3),\n.input-group.has-validation > .custom-select:nth-last-child(n + 3),\n.input-group.has-validation > .custom-file:nth-last-child(n + 3) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .btn,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n z-index: 1;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n color-adjust: exact;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1rem;\n height: 1.25rem;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: 50% / 50% 50% no-repeat;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") right 0.75rem center/8px 10px no-repeat;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n overflow: hidden;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input[disabled] ~ .custom-file-label,\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n overflow: hidden;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: 1.4rem;\n padding: 0;\n background-color: transparent;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: 0;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-link {\n margin-bottom: -1px;\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar .container,\n.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: 50% / 100% 100% no-repeat;\n}\n\n.navbar-nav-scroll {\n max-height: 75vh;\n overflow-y: auto;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-nav-scroll {\n overflow: visible;\n}\n\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group {\n border-top: inherit;\n border-bottom: inherit;\n}\n\n.card > .list-group:first-child {\n border-top-width: 0;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card > .list-group:last-child {\n border-bottom-width: 0;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card > .card-header + .list-group,\n.card > .list-group + .card-footer {\n border-top: 0;\n}\n\n.card-body {\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n flex-shrink: 0;\n width: 100%;\n}\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n display: flex;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n flex: 1 0 0%;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion {\n overflow-anchor: none;\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card > .card-header {\n border-radius: 0;\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n float: left;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n line-height: 0;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: 1s linear infinite progress-bar-stripes;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n}\n\n.media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n border-radius: 0.25rem;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n}\n\n.list-group-item:last-child {\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n\n.list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px;\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n\n.list-group-horizontal > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n.list-group-flush {\n border-radius: 0;\n}\n\n.list-group-flush > .list-group-item {\n border-width: 0 0 1px;\n}\n\n.list-group-flush > .list-group-item:last-child {\n border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n flex-basis: 350px;\n max-width: 350px;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n transform: none;\n}\n\n.modal.modal-static .modal-dialog {\n transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n height: min-content;\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px);\n}\n\n.modal-footer > * {\n margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n height: min-content;\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n bottom: calc(-0.5rem - 1px);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n top: calc(-0.5rem - 1px);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: 50% / 100% 100% no-repeat;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: .75s linear infinite spinner-border;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: .75s linear infinite spinner-grow;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .spinner-border,\n .spinner-grow {\n animation-duration: 1.5s;\n }\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.user-select-all {\n user-select: all !important;\n}\n\n.user-select-auto {\n user-select: auto !important;\n}\n\n.user-select-none {\n user-select: none !important;\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n word-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n\n.rtl,\n[dir=\"rtl\"] {\n text-align: right;\n direction: rtl;\n}\n\n.rtl .nav,\n[dir=\"rtl\"] .nav {\n padding-right: 0;\n}\n\n.rtl .navbar-nav .nav-item,\n[dir=\"rtl\"] .navbar-nav .nav-item {\n float: right;\n}\n\n.rtl .navbar-nav .nav-item + .nav-item,\n[dir=\"rtl\"] .navbar-nav .nav-item + .nav-item {\n margin-right: inherit;\n margin-left: 1rem;\n}\n\n.rtl th,\n[dir=\"rtl\"] th {\n text-align: right;\n}\n\n.rtl .alert-dismissible,\n[dir=\"rtl\"] .alert-dismissible {\n padding-right: 1.25rem;\n padding-left: 4rem;\n}\n\n.rtl .dropdown-menu,\n[dir=\"rtl\"] .dropdown-menu {\n right: 0;\n left: inherit;\n text-align: right;\n}\n\n.rtl .checkbox label,\n[dir=\"rtl\"] .checkbox label {\n padding-right: 1.25rem;\n padding-left: inherit;\n}\n\n.rtl .btn-group > .btn:not(:first-child),\n.rtl .btn-group > .btn-group:not(:first-child),\n[dir=\"rtl\"] .btn-group > .btn:not(:first-child),\n[dir=\"rtl\"] .btn-group > .btn-group:not(:first-child) {\n margin-left: initial;\n margin-right: -1px;\n}\n\n.rtl .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle),\n[dir=\"rtl\"] .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.rtl .btn-group > .btn:last-child:not(:first-child),\n.rtl .btn-group > .dropdown-toggle:not(:first-child),\n[dir=\"rtl\"] .btn-group > .btn:last-child:not(:first-child),\n[dir=\"rtl\"] .btn-group > .dropdown-toggle:not(:first-child) {\n border-radius: 0.25rem 0 0 0.25rem;\n}\n\n.rtl .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child,\n[dir=\"rtl\"] .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-radius: 0.25rem 0 0 0.25rem;\n}\n\n.rtl .custom-control,\n[dir=\"rtl\"] .custom-control {\n padding-right: 1.5rem;\n padding-left: inherit;\n margin-right: inherit;\n margin-left: 1rem;\n}\n\n.rtl .custom-control-indicator,\n[dir=\"rtl\"] .custom-control-indicator {\n right: 0;\n left: inherit;\n}\n\n.rtl .custom-file-label::after,\n[dir=\"rtl\"] .custom-file-label::after {\n right: initial;\n left: -1px;\n border-radius: .25rem 0 0 .25rem;\n}\n\n.rtl .custom-control-label::after,\n.rtl .custom-control-label::before,\n[dir=\"rtl\"] .custom-control-label::after,\n[dir=\"rtl\"] .custom-control-label::before {\n right: -1.5rem;\n left: inherit;\n}\n\n.rtl .custom-select,\n[dir=\"rtl\"] .custom-select {\n padding: 0.375rem 0.75rem 0.375rem 1.75rem;\n background: #fff url(\"data:image/svg+xml,\") no-repeat left 0.75rem center;\n background-size: 8px 10px;\n}\n\n.rtl .custom-switch,\n[dir=\"rtl\"] .custom-switch {\n padding-right: 2.25rem;\n padding-left: inherit;\n}\n\n.rtl .custom-switch .custom-control-label::before,\n[dir=\"rtl\"] .custom-switch .custom-control-label::before {\n right: -2.25rem;\n}\n\n.rtl .custom-switch .custom-control-label::after,\n[dir=\"rtl\"] .custom-switch .custom-control-label::after {\n right: calc(-2.25rem + 2px);\n}\n\n.rtl .custom-switch .custom-control-input:checked ~ .custom-control-label::after,\n[dir=\"rtl\"] .custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n transform: translateX(-0.75rem);\n}\n\n.rtl .input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.rtl .input-group > .input-group-append:last-child > .input-group-text:not(:last-child),\n.rtl .input-group > .input-group-append:not(:last-child) > .btn,\n.rtl .input-group > .input-group-append:not(:last-child) > .input-group-text,\n.rtl .input-group > .input-group-prepend > .btn,\n.rtl .input-group > .input-group-prepend > .input-group-text,\n[dir=\"rtl\"] .input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n[dir=\"rtl\"] .input-group > .input-group-append:last-child > .input-group-text:not(:last-child),\n[dir=\"rtl\"] .input-group > .input-group-append:not(:last-child) > .btn,\n[dir=\"rtl\"] .input-group > .input-group-append:not(:last-child) > .input-group-text,\n[dir=\"rtl\"] .input-group > .input-group-prepend > .btn,\n[dir=\"rtl\"] .input-group > .input-group-prepend > .input-group-text {\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.rtl .input-group > .input-group-append > .btn,\n.rtl .input-group > .input-group-append > .input-group-text,\n.rtl .input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.rtl .input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child),\n.rtl .input-group > .input-group-prepend:not(:first-child) > .btn,\n.rtl .input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n[dir=\"rtl\"] .input-group > .input-group-append > .btn,\n[dir=\"rtl\"] .input-group > .input-group-append > .input-group-text,\n[dir=\"rtl\"] .input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n[dir=\"rtl\"] .input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child),\n[dir=\"rtl\"] .input-group > .input-group-prepend:not(:first-child) > .btn,\n[dir=\"rtl\"] .input-group > .input-group-prepend:not(:first-child) > .input-group-text {\n border-radius: 0.25rem 0 0 0.25rem;\n}\n\n.rtl .input-group > .custom-select:not(:first-child),\n.rtl .input-group > .form-control:not(:first-child),\n[dir=\"rtl\"] .input-group > .custom-select:not(:first-child),\n[dir=\"rtl\"] .input-group > .form-control:not(:first-child) {\n border-radius: 0.25rem 0 0 0.25rem;\n}\n\n.rtl .input-group > .custom-select:not(:last-child),\n.rtl .input-group > .form-control:not(:last-child),\n[dir=\"rtl\"] .input-group > .custom-select:not(:last-child),\n[dir=\"rtl\"] .input-group > .form-control:not(:last-child) {\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.rtl .input-group > .custom-select:not(:last-child):not(:first-child),\n.rtl .input-group > .form-control:not(:last-child):not(:first-child),\n[dir=\"rtl\"] .input-group > .custom-select:not(:last-child):not(:first-child),\n[dir=\"rtl\"] .input-group > .form-control:not(:last-child):not(:first-child) {\n border-radius: 0;\n}\n\n.rtl .radio input,\n.rtl .radio-inline,\n.rtl .checkbox input,\n.rtl .checkbox-inline input,\n[dir=\"rtl\"] .radio input,\n[dir=\"rtl\"] .radio-inline,\n[dir=\"rtl\"] .checkbox input,\n[dir=\"rtl\"] .checkbox-inline input {\n margin-right: -1.25rem;\n margin-left: inherit;\n}\n\n.rtl .breadcrumb-item + .breadcrumb-item,\n[dir=\"rtl\"] .breadcrumb-item + .breadcrumb-item {\n padding-right: 0.5rem;\n padding-left: 0;\n color: #6c757d;\n content: \"/\";\n}\n\n.rtl .breadcrumb-item + .breadcrumb-item::before,\n[dir=\"rtl\"] .breadcrumb-item + .breadcrumb-item::before {\n padding-right: 0;\n padding-left: 0.5rem;\n}\n\n.rtl .list-group,\n[dir=\"rtl\"] .list-group {\n padding-right: 0;\n padding-left: 40px;\n}\n\n.rtl .close,\n[dir=\"rtl\"] .close {\n float: left;\n}\n\n.rtl .modal-header .close,\n[dir=\"rtl\"] .modal-header .close {\n margin: -15px auto -15px -15px;\n}\n\n.rtl .modal-footer > :not(:first-child),\n[dir=\"rtl\"] .modal-footer > :not(:first-child) {\n margin-right: .25rem;\n}\n\n.rtl .modal-footer > :not(:last-child),\n[dir=\"rtl\"] .modal-footer > :not(:last-child) {\n margin-left: .25rem;\n}\n\n.rtl .modal-footer > :first-child,\n[dir=\"rtl\"] .modal-footer > :first-child {\n margin-right: 0;\n}\n\n.rtl .modal-footer > :last-child,\n[dir=\"rtl\"] .modal-footer > :last-child {\n margin-left: 0;\n}\n\n.rtl .alert-dismissible .close,\n[dir=\"rtl\"] .alert-dismissible .close {\n right: inherit;\n left: 0;\n}\n\n.rtl .dropdown-toggle::after,\n[dir=\"rtl\"] .dropdown-toggle::after {\n margin-right: .255em;\n margin-left: 0;\n}\n\n.rtl .form-check-input,\n[dir=\"rtl\"] .form-check-input {\n margin-right: -1.25rem;\n margin-left: inherit;\n}\n\n.rtl .form-check-label,\n[dir=\"rtl\"] .form-check-label {\n padding-right: 1.25rem;\n padding-left: inherit;\n}\n\n.rtl .pagination,\n.rtl .list-unstyled,\n.rtl .list-inline,\n[dir=\"rtl\"] .pagination,\n[dir=\"rtl\"] .list-unstyled,\n[dir=\"rtl\"] .list-inline {\n padding-right: 0;\n padding-left: inherit;\n}\n\n.rtl .pagination .page-item:first-child .page-link,\n[dir=\"rtl\"] .pagination .page-item:first-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.rtl .pagination .page-item:last-child .page-link,\n[dir=\"rtl\"] .pagination .page-item:last-child .page-link {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.rtl .offset-1,\n[dir=\"rtl\"] .offset-1 {\n margin-right: 8.333333%;\n margin-left: 0;\n}\n\n.rtl .offset-2,\n[dir=\"rtl\"] .offset-2 {\n margin-right: 16.666667%;\n margin-left: 0;\n}\n\n.rtl .offset-3,\n[dir=\"rtl\"] .offset-3 {\n margin-right: 25%;\n margin-left: 0;\n}\n\n.rtl .offset-4,\n[dir=\"rtl\"] .offset-4 {\n margin-right: 33.333333%;\n margin-left: 0;\n}\n\n.rtl .offset-5,\n[dir=\"rtl\"] .offset-5 {\n margin-right: 41.666667%;\n margin-left: 0;\n}\n\n.rtl .offset-6,\n[dir=\"rtl\"] .offset-6 {\n margin-right: 50%;\n margin-left: 0;\n}\n\n.rtl .offset-7,\n[dir=\"rtl\"] .offset-7 {\n margin-right: 58.333333%;\n margin-left: 0;\n}\n\n.rtl .offset-8,\n[dir=\"rtl\"] .offset-8 {\n margin-right: 66.666667%;\n margin-left: 0;\n}\n\n.rtl .offset-9,\n[dir=\"rtl\"] .offset-9 {\n margin-right: 75%;\n margin-left: 0;\n}\n\n.rtl .offset-10,\n[dir=\"rtl\"] .offset-10 {\n margin-right: 83.333333%;\n margin-left: 0;\n}\n\n.rtl .offset-11,\n[dir=\"rtl\"] .offset-11 {\n margin-right: 91.666667%;\n margin-left: 0;\n}\n\n@media (min-width: 576px) {\n .rtl .offset-sm-0,\n [dir=\"rtl\"] .offset-sm-0 {\n margin-right: 0;\n margin-left: 0;\n }\n .rtl .offset-sm-1,\n [dir=\"rtl\"] .offset-sm-1 {\n margin-right: 8.333333%;\n margin-left: 0;\n }\n .rtl .offset-sm-2,\n [dir=\"rtl\"] .offset-sm-2 {\n margin-right: 16.666667%;\n margin-left: 0;\n }\n .rtl .offset-sm-3,\n [dir=\"rtl\"] .offset-sm-3 {\n margin-right: 25%;\n margin-left: 0;\n }\n .rtl .offset-sm-4,\n [dir=\"rtl\"] .offset-sm-4 {\n margin-right: 33.333333%;\n margin-left: 0;\n }\n .rtl .offset-sm-5,\n [dir=\"rtl\"] .offset-sm-5 {\n margin-right: 41.666667%;\n margin-left: 0;\n }\n .rtl .offset-sm-6,\n [dir=\"rtl\"] .offset-sm-6 {\n margin-right: 50%;\n margin-left: 0;\n }\n .rtl .offset-sm-7,\n [dir=\"rtl\"] .offset-sm-7 {\n margin-right: 58.333333%;\n margin-left: 0;\n }\n .rtl .offset-sm-8,\n [dir=\"rtl\"] .offset-sm-8 {\n margin-right: 66.666667%;\n margin-left: 0;\n }\n .rtl .offset-sm-9,\n [dir=\"rtl\"] .offset-sm-9 {\n margin-right: 75%;\n margin-left: 0;\n }\n .rtl .offset-sm-10,\n [dir=\"rtl\"] .offset-sm-10 {\n margin-right: 83.333333%;\n margin-left: 0;\n }\n .rtl .offset-sm-11,\n [dir=\"rtl\"] .offset-sm-11 {\n margin-right: 91.666667%;\n margin-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .rtl .offset-md-0,\n [dir=\"rtl\"] .offset-md-0 {\n margin-right: 0;\n margin-left: 0;\n }\n .rtl .offset-md-1,\n [dir=\"rtl\"] .offset-md-1 {\n margin-right: 8.333333%;\n margin-left: 0;\n }\n .rtl .offset-md-2,\n [dir=\"rtl\"] .offset-md-2 {\n margin-right: 16.666667%;\n margin-left: 0;\n }\n .rtl .offset-md-3,\n [dir=\"rtl\"] .offset-md-3 {\n margin-right: 25%;\n margin-left: 0;\n }\n .rtl .offset-md-4,\n [dir=\"rtl\"] .offset-md-4 {\n margin-right: 33.333333%;\n margin-left: 0;\n }\n .rtl .offset-md-5,\n [dir=\"rtl\"] .offset-md-5 {\n margin-right: 41.666667%;\n margin-left: 0;\n }\n .rtl .offset-md-6,\n [dir=\"rtl\"] .offset-md-6 {\n margin-right: 50%;\n margin-left: 0;\n }\n .rtl .offset-md-7,\n [dir=\"rtl\"] .offset-md-7 {\n margin-right: 58.333333%;\n margin-left: 0;\n }\n .rtl .offset-md-8,\n [dir=\"rtl\"] .offset-md-8 {\n margin-right: 66.666667%;\n margin-left: 0;\n }\n .rtl .offset-md-9,\n [dir=\"rtl\"] .offset-md-9 {\n margin-right: 75%;\n margin-left: 0;\n }\n .rtl .offset-md-10,\n [dir=\"rtl\"] .offset-md-10 {\n margin-right: 83.333333%;\n margin-left: 0;\n }\n .rtl .offset-md-11,\n [dir=\"rtl\"] .offset-md-11 {\n margin-right: 91.666667%;\n margin-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .rtl .offset-lg-0,\n [dir=\"rtl\"] .offset-lg-0 {\n margin-right: 0;\n margin-left: 0;\n }\n .rtl .offset-lg-1,\n [dir=\"rtl\"] .offset-lg-1 {\n margin-right: 8.333333%;\n margin-left: 0;\n }\n .rtl .offset-lg-2,\n [dir=\"rtl\"] .offset-lg-2 {\n margin-right: 16.666667%;\n margin-left: 0;\n }\n .rtl .offset-lg-3,\n [dir=\"rtl\"] .offset-lg-3 {\n margin-right: 25%;\n margin-left: 0;\n }\n .rtl .offset-lg-4,\n [dir=\"rtl\"] .offset-lg-4 {\n margin-right: 33.333333%;\n margin-left: 0;\n }\n .rtl .offset-lg-5,\n [dir=\"rtl\"] .offset-lg-5 {\n margin-right: 41.666667%;\n margin-left: 0;\n }\n .rtl .offset-lg-6,\n [dir=\"rtl\"] .offset-lg-6 {\n margin-right: 50%;\n margin-left: 0;\n }\n .rtl .offset-lg-7,\n [dir=\"rtl\"] .offset-lg-7 {\n margin-right: 58.333333%;\n margin-left: 0;\n }\n .rtl .offset-lg-8,\n [dir=\"rtl\"] .offset-lg-8 {\n margin-right: 66.666667%;\n margin-left: 0;\n }\n .rtl .offset-lg-9,\n [dir=\"rtl\"] .offset-lg-9 {\n margin-right: 75%;\n margin-left: 0;\n }\n .rtl .offset-lg-10,\n [dir=\"rtl\"] .offset-lg-10 {\n margin-right: 83.333333%;\n margin-left: 0;\n }\n .rtl .offset-lg-11,\n [dir=\"rtl\"] .offset-lg-11 {\n margin-right: 91.666667%;\n margin-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .rtl .offset-xl-0,\n [dir=\"rtl\"] .offset-xl-0 {\n margin-right: 0;\n margin-left: 0;\n }\n .rtl .offset-xl-1,\n [dir=\"rtl\"] .offset-xl-1 {\n margin-right: 8.333333%;\n margin-left: 0;\n }\n .rtl .offset-xl-2,\n [dir=\"rtl\"] .offset-xl-2 {\n margin-right: 16.666667%;\n margin-left: 0;\n }\n .rtl .offset-xl-3,\n [dir=\"rtl\"] .offset-xl-3 {\n margin-right: 25%;\n margin-left: 0;\n }\n .rtl .offset-xl-4,\n [dir=\"rtl\"] .offset-xl-4 {\n margin-right: 33.333333%;\n margin-left: 0;\n }\n .rtl .offset-xl-5,\n [dir=\"rtl\"] .offset-xl-5 {\n margin-right: 41.666667%;\n margin-left: 0;\n }\n .rtl .offset-xl-6,\n [dir=\"rtl\"] .offset-xl-6 {\n margin-right: 50%;\n margin-left: 0;\n }\n .rtl .offset-xl-7,\n [dir=\"rtl\"] .offset-xl-7 {\n margin-right: 58.333333%;\n margin-left: 0;\n }\n .rtl .offset-xl-8,\n [dir=\"rtl\"] .offset-xl-8 {\n margin-right: 66.666667%;\n margin-left: 0;\n }\n .rtl .offset-xl-9,\n [dir=\"rtl\"] .offset-xl-9 {\n margin-right: 75%;\n margin-left: 0;\n }\n .rtl .offset-xl-10,\n [dir=\"rtl\"] .offset-xl-10 {\n margin-right: 83.333333%;\n margin-left: 0;\n }\n .rtl .offset-xl-11,\n [dir=\"rtl\"] .offset-xl-11 {\n margin-right: 91.666667%;\n margin-left: 0;\n }\n}\n\n.rtl .mr-0,\n[dir=\"rtl\"] .mr-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n}\n\n.rtl .ml-0,\n[dir=\"rtl\"] .ml-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n.rtl mx-0,\n[dir=\"rtl\"] mx-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n.rtl .mr-1,\n[dir=\"rtl\"] .mr-1 {\n margin-right: 0 !important;\n margin-left: 0.25rem !important;\n}\n\n.rtl .ml-1,\n[dir=\"rtl\"] .ml-1 {\n margin-left: 0 !important;\n margin-right: 0.25rem !important;\n}\n\n.rtl mx-1,\n[dir=\"rtl\"] mx-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n}\n\n.rtl .mr-2,\n[dir=\"rtl\"] .mr-2 {\n margin-right: 0 !important;\n margin-left: 0.5rem !important;\n}\n\n.rtl .ml-2,\n[dir=\"rtl\"] .ml-2 {\n margin-left: 0 !important;\n margin-right: 0.5rem !important;\n}\n\n.rtl mx-2,\n[dir=\"rtl\"] mx-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n}\n\n.rtl .mr-3,\n[dir=\"rtl\"] .mr-3 {\n margin-right: 0 !important;\n margin-left: 1rem !important;\n}\n\n.rtl .ml-3,\n[dir=\"rtl\"] .ml-3 {\n margin-left: 0 !important;\n margin-right: 1rem !important;\n}\n\n.rtl mx-3,\n[dir=\"rtl\"] mx-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n}\n\n.rtl .mr-4,\n[dir=\"rtl\"] .mr-4 {\n margin-right: 0 !important;\n margin-left: 1.5rem !important;\n}\n\n.rtl .ml-4,\n[dir=\"rtl\"] .ml-4 {\n margin-left: 0 !important;\n margin-right: 1.5rem !important;\n}\n\n.rtl mx-4,\n[dir=\"rtl\"] mx-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n}\n\n.rtl .mr-5,\n[dir=\"rtl\"] .mr-5 {\n margin-right: 0 !important;\n margin-left: 3rem !important;\n}\n\n.rtl .ml-5,\n[dir=\"rtl\"] .ml-5 {\n margin-left: 0 !important;\n margin-right: 3rem !important;\n}\n\n.rtl mx-5,\n[dir=\"rtl\"] mx-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n}\n\n.rtl .pr-0,\n[dir=\"rtl\"] .pr-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n}\n\n.rtl .pl-0,\n[dir=\"rtl\"] .pl-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n}\n\n.rtl px-0,\n[dir=\"rtl\"] px-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n}\n\n.rtl .pr-1,\n[dir=\"rtl\"] .pr-1 {\n padding-right: 0 !important;\n padding-left: 0.25rem !important;\n}\n\n.rtl .pl-1,\n[dir=\"rtl\"] .pl-1 {\n padding-left: 0 !important;\n padding-right: 0.25rem !important;\n}\n\n.rtl px-1,\n[dir=\"rtl\"] px-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n}\n\n.rtl .pr-2,\n[dir=\"rtl\"] .pr-2 {\n padding-right: 0 !important;\n padding-left: 0.5rem !important;\n}\n\n.rtl .pl-2,\n[dir=\"rtl\"] .pl-2 {\n padding-left: 0 !important;\n padding-right: 0.5rem !important;\n}\n\n.rtl px-2,\n[dir=\"rtl\"] px-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n}\n\n.rtl .pr-3,\n[dir=\"rtl\"] .pr-3 {\n padding-right: 0 !important;\n padding-left: 1rem !important;\n}\n\n.rtl .pl-3,\n[dir=\"rtl\"] .pl-3 {\n padding-left: 0 !important;\n padding-right: 1rem !important;\n}\n\n.rtl px-3,\n[dir=\"rtl\"] px-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n}\n\n.rtl .pr-4,\n[dir=\"rtl\"] .pr-4 {\n padding-right: 0 !important;\n padding-left: 1.5rem !important;\n}\n\n.rtl .pl-4,\n[dir=\"rtl\"] .pl-4 {\n padding-left: 0 !important;\n padding-right: 1.5rem !important;\n}\n\n.rtl px-4,\n[dir=\"rtl\"] px-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n}\n\n.rtl .pr-5,\n[dir=\"rtl\"] .pr-5 {\n padding-right: 0 !important;\n padding-left: 3rem !important;\n}\n\n.rtl .pl-5,\n[dir=\"rtl\"] .pl-5 {\n padding-left: 0 !important;\n padding-right: 3rem !important;\n}\n\n.rtl px-5,\n[dir=\"rtl\"] px-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n}\n\n.rtl .mr-auto,\n[dir=\"rtl\"] .mr-auto {\n margin-right: 0 !important;\n margin-left: auto !important;\n}\n\n.rtl .ml-auto,\n[dir=\"rtl\"] .ml-auto {\n margin-right: auto !important;\n margin-left: 0 !important;\n}\n\n.rtl .mx-auto,\n[dir=\"rtl\"] .mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .rtl .mr-sm-0,\n [dir=\"rtl\"] .mr-sm-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .rtl .ml-sm-0,\n [dir=\"rtl\"] .ml-sm-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .rtl mx-sm-0,\n [dir=\"rtl\"] mx-sm-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .rtl .mr-sm-1,\n [dir=\"rtl\"] .mr-sm-1 {\n margin-right: 0 !important;\n margin-left: 0.25rem !important;\n }\n .rtl .ml-sm-1,\n [dir=\"rtl\"] .ml-sm-1 {\n margin-left: 0 !important;\n margin-right: 0.25rem !important;\n }\n .rtl mx-sm-1,\n [dir=\"rtl\"] mx-sm-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n .rtl .mr-sm-2,\n [dir=\"rtl\"] .mr-sm-2 {\n margin-right: 0 !important;\n margin-left: 0.5rem !important;\n }\n .rtl .ml-sm-2,\n [dir=\"rtl\"] .ml-sm-2 {\n margin-left: 0 !important;\n margin-right: 0.5rem !important;\n }\n .rtl mx-sm-2,\n [dir=\"rtl\"] mx-sm-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n .rtl .mr-sm-3,\n [dir=\"rtl\"] .mr-sm-3 {\n margin-right: 0 !important;\n margin-left: 1rem !important;\n }\n .rtl .ml-sm-3,\n [dir=\"rtl\"] .ml-sm-3 {\n margin-left: 0 !important;\n margin-right: 1rem !important;\n }\n .rtl mx-sm-3,\n [dir=\"rtl\"] mx-sm-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n .rtl .mr-sm-4,\n [dir=\"rtl\"] .mr-sm-4 {\n margin-right: 0 !important;\n margin-left: 1.5rem !important;\n }\n .rtl .ml-sm-4,\n [dir=\"rtl\"] .ml-sm-4 {\n margin-left: 0 !important;\n margin-right: 1.5rem !important;\n }\n .rtl mx-sm-4,\n [dir=\"rtl\"] mx-sm-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n .rtl .mr-sm-5,\n [dir=\"rtl\"] .mr-sm-5 {\n margin-right: 0 !important;\n margin-left: 3rem !important;\n }\n .rtl .ml-sm-5,\n [dir=\"rtl\"] .ml-sm-5 {\n margin-left: 0 !important;\n margin-right: 3rem !important;\n }\n .rtl mx-sm-5,\n [dir=\"rtl\"] mx-sm-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n .rtl .pr-sm-0,\n [dir=\"rtl\"] .pr-sm-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .rtl .pl-sm-0,\n [dir=\"rtl\"] .pl-sm-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .rtl px-sm-0,\n [dir=\"rtl\"] px-sm-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .rtl .pr-sm-1,\n [dir=\"rtl\"] .pr-sm-1 {\n padding-right: 0 !important;\n padding-left: 0.25rem !important;\n }\n .rtl .pl-sm-1,\n [dir=\"rtl\"] .pl-sm-1 {\n padding-left: 0 !important;\n padding-right: 0.25rem !important;\n }\n .rtl px-sm-1,\n [dir=\"rtl\"] px-sm-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n .rtl .pr-sm-2,\n [dir=\"rtl\"] .pr-sm-2 {\n padding-right: 0 !important;\n padding-left: 0.5rem !important;\n }\n .rtl .pl-sm-2,\n [dir=\"rtl\"] .pl-sm-2 {\n padding-left: 0 !important;\n padding-right: 0.5rem !important;\n }\n .rtl px-sm-2,\n [dir=\"rtl\"] px-sm-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n .rtl .pr-sm-3,\n [dir=\"rtl\"] .pr-sm-3 {\n padding-right: 0 !important;\n padding-left: 1rem !important;\n }\n .rtl .pl-sm-3,\n [dir=\"rtl\"] .pl-sm-3 {\n padding-left: 0 !important;\n padding-right: 1rem !important;\n }\n .rtl px-sm-3,\n [dir=\"rtl\"] px-sm-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n .rtl .pr-sm-4,\n [dir=\"rtl\"] .pr-sm-4 {\n padding-right: 0 !important;\n padding-left: 1.5rem !important;\n }\n .rtl .pl-sm-4,\n [dir=\"rtl\"] .pl-sm-4 {\n padding-left: 0 !important;\n padding-right: 1.5rem !important;\n }\n .rtl px-sm-4,\n [dir=\"rtl\"] px-sm-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n .rtl .pr-sm-5,\n [dir=\"rtl\"] .pr-sm-5 {\n padding-right: 0 !important;\n padding-left: 3rem !important;\n }\n .rtl .pl-sm-5,\n [dir=\"rtl\"] .pl-sm-5 {\n padding-left: 0 !important;\n padding-right: 3rem !important;\n }\n .rtl px-sm-5,\n [dir=\"rtl\"] px-sm-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n .rtl .mr-sm-auto,\n [dir=\"rtl\"] .mr-sm-auto {\n margin-right: 0 !important;\n margin-left: auto !important;\n }\n .rtl .ml-sm-auto,\n [dir=\"rtl\"] .ml-sm-auto {\n margin-right: auto !important;\n margin-left: 0 !important;\n }\n .rtl .mx-sm-auto,\n [dir=\"rtl\"] .mx-sm-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .rtl .mr-md-0,\n [dir=\"rtl\"] .mr-md-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .rtl .ml-md-0,\n [dir=\"rtl\"] .ml-md-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .rtl mx-md-0,\n [dir=\"rtl\"] mx-md-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .rtl .mr-md-1,\n [dir=\"rtl\"] .mr-md-1 {\n margin-right: 0 !important;\n margin-left: 0.25rem !important;\n }\n .rtl .ml-md-1,\n [dir=\"rtl\"] .ml-md-1 {\n margin-left: 0 !important;\n margin-right: 0.25rem !important;\n }\n .rtl mx-md-1,\n [dir=\"rtl\"] mx-md-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n .rtl .mr-md-2,\n [dir=\"rtl\"] .mr-md-2 {\n margin-right: 0 !important;\n margin-left: 0.5rem !important;\n }\n .rtl .ml-md-2,\n [dir=\"rtl\"] .ml-md-2 {\n margin-left: 0 !important;\n margin-right: 0.5rem !important;\n }\n .rtl mx-md-2,\n [dir=\"rtl\"] mx-md-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n .rtl .mr-md-3,\n [dir=\"rtl\"] .mr-md-3 {\n margin-right: 0 !important;\n margin-left: 1rem !important;\n }\n .rtl .ml-md-3,\n [dir=\"rtl\"] .ml-md-3 {\n margin-left: 0 !important;\n margin-right: 1rem !important;\n }\n .rtl mx-md-3,\n [dir=\"rtl\"] mx-md-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n .rtl .mr-md-4,\n [dir=\"rtl\"] .mr-md-4 {\n margin-right: 0 !important;\n margin-left: 1.5rem !important;\n }\n .rtl .ml-md-4,\n [dir=\"rtl\"] .ml-md-4 {\n margin-left: 0 !important;\n margin-right: 1.5rem !important;\n }\n .rtl mx-md-4,\n [dir=\"rtl\"] mx-md-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n .rtl .mr-md-5,\n [dir=\"rtl\"] .mr-md-5 {\n margin-right: 0 !important;\n margin-left: 3rem !important;\n }\n .rtl .ml-md-5,\n [dir=\"rtl\"] .ml-md-5 {\n margin-left: 0 !important;\n margin-right: 3rem !important;\n }\n .rtl mx-md-5,\n [dir=\"rtl\"] mx-md-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n .rtl .pr-md-0,\n [dir=\"rtl\"] .pr-md-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .rtl .pl-md-0,\n [dir=\"rtl\"] .pl-md-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .rtl px-md-0,\n [dir=\"rtl\"] px-md-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .rtl .pr-md-1,\n [dir=\"rtl\"] .pr-md-1 {\n padding-right: 0 !important;\n padding-left: 0.25rem !important;\n }\n .rtl .pl-md-1,\n [dir=\"rtl\"] .pl-md-1 {\n padding-left: 0 !important;\n padding-right: 0.25rem !important;\n }\n .rtl px-md-1,\n [dir=\"rtl\"] px-md-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n .rtl .pr-md-2,\n [dir=\"rtl\"] .pr-md-2 {\n padding-right: 0 !important;\n padding-left: 0.5rem !important;\n }\n .rtl .pl-md-2,\n [dir=\"rtl\"] .pl-md-2 {\n padding-left: 0 !important;\n padding-right: 0.5rem !important;\n }\n .rtl px-md-2,\n [dir=\"rtl\"] px-md-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n .rtl .pr-md-3,\n [dir=\"rtl\"] .pr-md-3 {\n padding-right: 0 !important;\n padding-left: 1rem !important;\n }\n .rtl .pl-md-3,\n [dir=\"rtl\"] .pl-md-3 {\n padding-left: 0 !important;\n padding-right: 1rem !important;\n }\n .rtl px-md-3,\n [dir=\"rtl\"] px-md-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n .rtl .pr-md-4,\n [dir=\"rtl\"] .pr-md-4 {\n padding-right: 0 !important;\n padding-left: 1.5rem !important;\n }\n .rtl .pl-md-4,\n [dir=\"rtl\"] .pl-md-4 {\n padding-left: 0 !important;\n padding-right: 1.5rem !important;\n }\n .rtl px-md-4,\n [dir=\"rtl\"] px-md-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n .rtl .pr-md-5,\n [dir=\"rtl\"] .pr-md-5 {\n padding-right: 0 !important;\n padding-left: 3rem !important;\n }\n .rtl .pl-md-5,\n [dir=\"rtl\"] .pl-md-5 {\n padding-left: 0 !important;\n padding-right: 3rem !important;\n }\n .rtl px-md-5,\n [dir=\"rtl\"] px-md-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n .rtl .mr-md-auto,\n [dir=\"rtl\"] .mr-md-auto {\n margin-right: 0 !important;\n margin-left: auto !important;\n }\n .rtl .ml-md-auto,\n [dir=\"rtl\"] .ml-md-auto {\n margin-right: auto !important;\n margin-left: 0 !important;\n }\n .rtl .mx-md-auto,\n [dir=\"rtl\"] .mx-md-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .rtl .mr-lg-0,\n [dir=\"rtl\"] .mr-lg-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .rtl .ml-lg-0,\n [dir=\"rtl\"] .ml-lg-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .rtl mx-lg-0,\n [dir=\"rtl\"] mx-lg-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .rtl .mr-lg-1,\n [dir=\"rtl\"] .mr-lg-1 {\n margin-right: 0 !important;\n margin-left: 0.25rem !important;\n }\n .rtl .ml-lg-1,\n [dir=\"rtl\"] .ml-lg-1 {\n margin-left: 0 !important;\n margin-right: 0.25rem !important;\n }\n .rtl mx-lg-1,\n [dir=\"rtl\"] mx-lg-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n .rtl .mr-lg-2,\n [dir=\"rtl\"] .mr-lg-2 {\n margin-right: 0 !important;\n margin-left: 0.5rem !important;\n }\n .rtl .ml-lg-2,\n [dir=\"rtl\"] .ml-lg-2 {\n margin-left: 0 !important;\n margin-right: 0.5rem !important;\n }\n .rtl mx-lg-2,\n [dir=\"rtl\"] mx-lg-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n .rtl .mr-lg-3,\n [dir=\"rtl\"] .mr-lg-3 {\n margin-right: 0 !important;\n margin-left: 1rem !important;\n }\n .rtl .ml-lg-3,\n [dir=\"rtl\"] .ml-lg-3 {\n margin-left: 0 !important;\n margin-right: 1rem !important;\n }\n .rtl mx-lg-3,\n [dir=\"rtl\"] mx-lg-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n .rtl .mr-lg-4,\n [dir=\"rtl\"] .mr-lg-4 {\n margin-right: 0 !important;\n margin-left: 1.5rem !important;\n }\n .rtl .ml-lg-4,\n [dir=\"rtl\"] .ml-lg-4 {\n margin-left: 0 !important;\n margin-right: 1.5rem !important;\n }\n .rtl mx-lg-4,\n [dir=\"rtl\"] mx-lg-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n .rtl .mr-lg-5,\n [dir=\"rtl\"] .mr-lg-5 {\n margin-right: 0 !important;\n margin-left: 3rem !important;\n }\n .rtl .ml-lg-5,\n [dir=\"rtl\"] .ml-lg-5 {\n margin-left: 0 !important;\n margin-right: 3rem !important;\n }\n .rtl mx-lg-5,\n [dir=\"rtl\"] mx-lg-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n .rtl .pr-lg-0,\n [dir=\"rtl\"] .pr-lg-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .rtl .pl-lg-0,\n [dir=\"rtl\"] .pl-lg-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .rtl px-lg-0,\n [dir=\"rtl\"] px-lg-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .rtl .pr-lg-1,\n [dir=\"rtl\"] .pr-lg-1 {\n padding-right: 0 !important;\n padding-left: 0.25rem !important;\n }\n .rtl .pl-lg-1,\n [dir=\"rtl\"] .pl-lg-1 {\n padding-left: 0 !important;\n padding-right: 0.25rem !important;\n }\n .rtl px-lg-1,\n [dir=\"rtl\"] px-lg-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n .rtl .pr-lg-2,\n [dir=\"rtl\"] .pr-lg-2 {\n padding-right: 0 !important;\n padding-left: 0.5rem !important;\n }\n .rtl .pl-lg-2,\n [dir=\"rtl\"] .pl-lg-2 {\n padding-left: 0 !important;\n padding-right: 0.5rem !important;\n }\n .rtl px-lg-2,\n [dir=\"rtl\"] px-lg-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n .rtl .pr-lg-3,\n [dir=\"rtl\"] .pr-lg-3 {\n padding-right: 0 !important;\n padding-left: 1rem !important;\n }\n .rtl .pl-lg-3,\n [dir=\"rtl\"] .pl-lg-3 {\n padding-left: 0 !important;\n padding-right: 1rem !important;\n }\n .rtl px-lg-3,\n [dir=\"rtl\"] px-lg-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n .rtl .pr-lg-4,\n [dir=\"rtl\"] .pr-lg-4 {\n padding-right: 0 !important;\n padding-left: 1.5rem !important;\n }\n .rtl .pl-lg-4,\n [dir=\"rtl\"] .pl-lg-4 {\n padding-left: 0 !important;\n padding-right: 1.5rem !important;\n }\n .rtl px-lg-4,\n [dir=\"rtl\"] px-lg-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n .rtl .pr-lg-5,\n [dir=\"rtl\"] .pr-lg-5 {\n padding-right: 0 !important;\n padding-left: 3rem !important;\n }\n .rtl .pl-lg-5,\n [dir=\"rtl\"] .pl-lg-5 {\n padding-left: 0 !important;\n padding-right: 3rem !important;\n }\n .rtl px-lg-5,\n [dir=\"rtl\"] px-lg-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n .rtl .mr-lg-auto,\n [dir=\"rtl\"] .mr-lg-auto {\n margin-right: 0 !important;\n margin-left: auto !important;\n }\n .rtl .ml-lg-auto,\n [dir=\"rtl\"] .ml-lg-auto {\n margin-right: auto !important;\n margin-left: 0 !important;\n }\n .rtl .mx-lg-auto,\n [dir=\"rtl\"] .mx-lg-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .rtl .mr-xl-0,\n [dir=\"rtl\"] .mr-xl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .rtl .ml-xl-0,\n [dir=\"rtl\"] .ml-xl-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .rtl mx-xl-0,\n [dir=\"rtl\"] mx-xl-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .rtl .mr-xl-1,\n [dir=\"rtl\"] .mr-xl-1 {\n margin-right: 0 !important;\n margin-left: 0.25rem !important;\n }\n .rtl .ml-xl-1,\n [dir=\"rtl\"] .ml-xl-1 {\n margin-left: 0 !important;\n margin-right: 0.25rem !important;\n }\n .rtl mx-xl-1,\n [dir=\"rtl\"] mx-xl-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n .rtl .mr-xl-2,\n [dir=\"rtl\"] .mr-xl-2 {\n margin-right: 0 !important;\n margin-left: 0.5rem !important;\n }\n .rtl .ml-xl-2,\n [dir=\"rtl\"] .ml-xl-2 {\n margin-left: 0 !important;\n margin-right: 0.5rem !important;\n }\n .rtl mx-xl-2,\n [dir=\"rtl\"] mx-xl-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n .rtl .mr-xl-3,\n [dir=\"rtl\"] .mr-xl-3 {\n margin-right: 0 !important;\n margin-left: 1rem !important;\n }\n .rtl .ml-xl-3,\n [dir=\"rtl\"] .ml-xl-3 {\n margin-left: 0 !important;\n margin-right: 1rem !important;\n }\n .rtl mx-xl-3,\n [dir=\"rtl\"] mx-xl-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n .rtl .mr-xl-4,\n [dir=\"rtl\"] .mr-xl-4 {\n margin-right: 0 !important;\n margin-left: 1.5rem !important;\n }\n .rtl .ml-xl-4,\n [dir=\"rtl\"] .ml-xl-4 {\n margin-left: 0 !important;\n margin-right: 1.5rem !important;\n }\n .rtl mx-xl-4,\n [dir=\"rtl\"] mx-xl-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n .rtl .mr-xl-5,\n [dir=\"rtl\"] .mr-xl-5 {\n margin-right: 0 !important;\n margin-left: 3rem !important;\n }\n .rtl .ml-xl-5,\n [dir=\"rtl\"] .ml-xl-5 {\n margin-left: 0 !important;\n margin-right: 3rem !important;\n }\n .rtl mx-xl-5,\n [dir=\"rtl\"] mx-xl-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n .rtl .pr-xl-0,\n [dir=\"rtl\"] .pr-xl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .rtl .pl-xl-0,\n [dir=\"rtl\"] .pl-xl-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .rtl px-xl-0,\n [dir=\"rtl\"] px-xl-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .rtl .pr-xl-1,\n [dir=\"rtl\"] .pr-xl-1 {\n padding-right: 0 !important;\n padding-left: 0.25rem !important;\n }\n .rtl .pl-xl-1,\n [dir=\"rtl\"] .pl-xl-1 {\n padding-left: 0 !important;\n padding-right: 0.25rem !important;\n }\n .rtl px-xl-1,\n [dir=\"rtl\"] px-xl-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n .rtl .pr-xl-2,\n [dir=\"rtl\"] .pr-xl-2 {\n padding-right: 0 !important;\n padding-left: 0.5rem !important;\n }\n .rtl .pl-xl-2,\n [dir=\"rtl\"] .pl-xl-2 {\n padding-left: 0 !important;\n padding-right: 0.5rem !important;\n }\n .rtl px-xl-2,\n [dir=\"rtl\"] px-xl-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n .rtl .pr-xl-3,\n [dir=\"rtl\"] .pr-xl-3 {\n padding-right: 0 !important;\n padding-left: 1rem !important;\n }\n .rtl .pl-xl-3,\n [dir=\"rtl\"] .pl-xl-3 {\n padding-left: 0 !important;\n padding-right: 1rem !important;\n }\n .rtl px-xl-3,\n [dir=\"rtl\"] px-xl-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n .rtl .pr-xl-4,\n [dir=\"rtl\"] .pr-xl-4 {\n padding-right: 0 !important;\n padding-left: 1.5rem !important;\n }\n .rtl .pl-xl-4,\n [dir=\"rtl\"] .pl-xl-4 {\n padding-left: 0 !important;\n padding-right: 1.5rem !important;\n }\n .rtl px-xl-4,\n [dir=\"rtl\"] px-xl-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n .rtl .pr-xl-5,\n [dir=\"rtl\"] .pr-xl-5 {\n padding-right: 0 !important;\n padding-left: 3rem !important;\n }\n .rtl .pl-xl-5,\n [dir=\"rtl\"] .pl-xl-5 {\n padding-left: 0 !important;\n padding-right: 3rem !important;\n }\n .rtl px-xl-5,\n [dir=\"rtl\"] px-xl-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n .rtl .mr-xl-auto,\n [dir=\"rtl\"] .mr-xl-auto {\n margin-right: 0 !important;\n margin-left: auto !important;\n }\n .rtl .ml-xl-auto,\n [dir=\"rtl\"] .ml-xl-auto {\n margin-right: auto !important;\n margin-left: 0 !important;\n }\n .rtl .mx-xl-auto,\n [dir=\"rtl\"] .mx-xl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n}\n\n.rtl .text-right,\n[dir=\"rtl\"] .text-right {\n text-align: left !important;\n}\n\n.rtl .text-left,\n[dir=\"rtl\"] .text-left {\n text-align: right !important;\n}\n\n@media (min-width: 576px) {\n .rtl .text-sm-right,\n [dir=\"rtl\"] .text-sm-right {\n text-align: left !important;\n }\n .rtl .text-sm-left,\n [dir=\"rtl\"] .text-sm-left {\n text-align: right !important;\n }\n}\n\n@media (min-width: 768px) {\n .rtl .text-md-right,\n [dir=\"rtl\"] .text-md-right {\n text-align: left !important;\n }\n .rtl .text-md-left,\n [dir=\"rtl\"] .text-md-left {\n text-align: right !important;\n }\n}\n\n@media (min-width: 992px) {\n .rtl .text-lg-right,\n [dir=\"rtl\"] .text-lg-right {\n text-align: left !important;\n }\n .rtl .text-lg-left,\n [dir=\"rtl\"] .text-lg-left {\n text-align: right !important;\n }\n}\n\n@media (min-width: 1200px) {\n .rtl .text-xl-right,\n [dir=\"rtl\"] .text-xl-right {\n text-align: left !important;\n }\n .rtl .text-xl-left,\n [dir=\"rtl\"] .text-xl-left {\n text-align: right !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-rtl.css.map */",":root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$color}: #{$value};\n }\n\n @each $bp, $value in $grid-breakpoints {\n --breakpoint-#{$bp}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `

    `-`

    ` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

    `s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // Disable auto-hiding scrollbar in IE & legacy Edge to avoid overlap,\n // making it impossible to interact with the content\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Set the cursor for non-`

    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%0Dso|=I1OUj{o3V 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 + + + + +Created by FontForge 20190801 at Thu Jun 18 14:52:21 2020 + By Robert Madole +Copyright (c) Font Awesome + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf b/src/API.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8adeea24eedc0d87282d26536cfd74df4694d970 GIT binary patch literal 204580 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