From 1caae33c4348880f568b4ae01940b476873d2916 Mon Sep 17 00:00:00 2001 From: ericli1018 Date: Wed, 13 Mar 2024 10:43:39 +0800 Subject: [PATCH] first commit --- .editorconfig | 18 + .env.example | 61 + .gitattributes | 11 + .gitignore | 19 + README.md | 66 + app/Console/Kernel.php | 27 + app/Exceptions/Handler.php | 30 + app/Http/Controllers/AboutController.php | 13 + .../Admin/EventCatalogCrudController.php | 93 + .../Controllers/Admin/EventCrudController.php | 156 + .../Admin/HomeCarouselCrudController.php | 123 + .../Admin/NewsCatalogCrudController.php | 93 + .../Controllers/Admin/NewsCrudController.php | 155 + .../Admin/PermissionCrudController.php | 75 + .../ProductApplicationCrudController.php | 99 + .../Admin/ProductCatalogCrudController.php | 99 + .../Admin/ProductCrudController.php | 233 + .../Controllers/Admin/RoleCrudController.php | 85 + ...stributionPartnerCatalogCrudController.php | 93 + ...pportDistributionPartnerCrudController.php | 136 + ...tEcosystemPartnerCatalogCrudController.php | 93 + .../SupportEcosystemPartnerCrudController.php | 136 + .../Admin/SupportSaleCrudController.php | 77 + .../Admin/SupportTechnicalCrudController.php | 77 + .../Controllers/Admin/UserCrudController.php | 77 + app/Http/Controllers/ContactController.php | 13 + app/Http/Controllers/Controller.php | 12 + app/Http/Controllers/EventsController.php | 37 + app/Http/Controllers/HomeController.php | 26 + app/Http/Controllers/NewsController.php | 37 + app/Http/Controllers/ProductsController.php | 111 + .../SupportDistributionPartnersController.php | 49 + .../SupportEcosystemPartnersController.php | 40 + .../SupportSalesInquiryController.php | 39 + .../SupportTechnicalController.php | 31 + app/Http/Kernel.php | 69 + app/Http/Middleware/Authenticate.php | 17 + app/Http/Middleware/CheckIfAdmin.php | 68 + app/Http/Middleware/EncryptCookies.php | 17 + .../PreventRequestsDuringMaintenance.php | 17 + .../Middleware/RedirectIfAuthenticated.php | 30 + app/Http/Middleware/TrimStrings.php | 19 + app/Http/Middleware/TrustHosts.php | 20 + app/Http/Middleware/TrustProxies.php | 28 + app/Http/Middleware/ValidateSignature.php | 22 + app/Http/Middleware/VerifyCsrfToken.php | 17 + app/Http/Requests/EventCatalogRequest.php | 55 + app/Http/Requests/EventRequest.php | 55 + app/Http/Requests/HomeCarouselRequest.php | 55 + app/Http/Requests/NewsCatalogRequest.php | 55 + app/Http/Requests/NewsRequest.php | 55 + .../Requests/ProductApplicationRequest.php | 55 + app/Http/Requests/ProductCatalogRequest.php | 55 + app/Http/Requests/ProductRequest.php | 55 + ...pportDistributionPartnerCatalogRequest.php | 55 + .../SupportDistributionPartnerRequest.php | 55 + .../SupportEcosystemPartnerCatalogRequest.php | 55 + .../SupportEcosystemPartnerRequest.php | 55 + app/Http/Requests/SupportSaleRequest.php | 62 + app/Http/Requests/SupportTechnicalRequest.php | 62 + app/Http/Requests/UserRequest.php | 55 + app/Models/Event.php | 85 + app/Models/EventCatalog.php | 67 + app/Models/HomeCarousel.php | 90 + app/Models/News.php | 86 + app/Models/NewsCatalog.php | 67 + app/Models/Permission.php | 30 + app/Models/Product.php | 90 + app/Models/ProductApplication.php | 62 + app/Models/ProductCatalog.php | 67 + app/Models/Role.php | 30 + app/Models/SupportDistributionPartner.php | 85 + .../SupportDistributionPartnerCatalog.php | 67 + app/Models/SupportEcosystemPartner.php | 84 + app/Models/SupportEcosystemPartnerCatalog.php | 67 + app/Models/SupportSale.php | 56 + app/Models/SupportTechnical.php | 56 + app/Models/User.php | 48 + app/Overrides/backpack/crud/src/helpers.php | 405 + app/Providers/AppServiceProvider.php | 29 + app/Providers/AuthServiceProvider.php | 26 + app/Providers/BroadcastServiceProvider.php | 19 + app/Providers/EventServiceProvider.php | 38 + app/Providers/RouteServiceProvider.php | 40 + artisan | 53 + bootstrap/app.php | 55 + bootstrap/cache/.gitignore | 2 + composer copy.json | 88 + composer.json | 88 + composer.lock | 11098 ++++++++ config/app.php | 188 + config/auth.php | 115 + config/backpack/base.php | 195 + config/backpack/crud.php | 481 + config/backpack/language-switcher.php | 11 + config/backpack/operations/create.php | 42 + config/backpack/operations/form.php | 39 + config/backpack/operations/list.php | 67 + config/backpack/operations/reorder.php | 16 + config/backpack/operations/show.php | 29 + config/backpack/operations/update.php | 42 + config/backpack/permissionmanager.php | 49 + config/backpack/theme-tabler.php | 174 + config/backpack/ui.php | 147 + config/broadcasting.php | 71 + config/cache.php | 111 + config/cors.php | 34 + config/database.php | 151 + config/elfinder.php | 93 + config/filesystems.php | 76 + config/gravatar.php | 34 + config/hashing.php | 54 + config/logging.php | 131 + config/mail.php | 134 + config/permission.php | 163 + config/queue.php | 109 + config/sanctum.php | 83 + config/services.php | 34 + config/session.php | 214 + config/view.php | 36 + database/.gitignore | 1 + database/factories/UserFactory.php | 44 + .../2014_10_12_000000_create_users_table.php | 32 + ...000_create_password_reset_tokens_table.php | 28 + ..._08_19_000000_create_failed_jobs_table.php | 32 + ...01_create_personal_access_tokens_table.php | 33 + ...03_31_114745_remove_backpackuser_model.php | 54 + ..._02_15_045931_create_permission_tables.php | 141 + ...024_02_15_085158_create_sessions_table.php | 31 + ...15_184909_add_slug_to_permission_table.php | 42 + ...2_29_015600_create_news_catalogs_table.php | 36 + .../2024_02_29_015639_create_news_table.php | 41 + ..._29_020326_create_event_catalogs_table.php | 36 + .../2024_02_29_020350_create_events_table.php | 42 + ...9_020623_create_product_catalogs_table.php | 37 + ...0646_create_product_applications_table.php | 37 + ...024_02_29_020703_create_products_table.php | 43 + ...020738_create_support_technicals_table.php | 38 + ...2_29_020804_create_support_sales_table.php | 38 + ...rt_distribution_partner_catalogs_table.php | 36 + ...te_support_distribution_partners_table.php | 36 + ...pport_ecosystem_partner_catalogs_table.php | 36 + ...reate_support_ecosystem_partners_table.php | 36 + ...roduct_product_application_pivot_table.php | 33 + ...3_05_010521_create_home_carousel_table.php | 40 + database/seeders/DatabaseSeeder.php | 27 + lang/en/backend.php | 138 + lang/vendor/backpack/ar/backup.php | 16 + lang/vendor/backpack/ar/base.php | 71 + lang/vendor/backpack/ar/crud.php | 191 + lang/vendor/backpack/ar/langfilemanager.php | 16 + lang/vendor/backpack/ar/logmanager.php | 16 + lang/vendor/backpack/ar/pagemanager.php | 16 + lang/vendor/backpack/ar/permissionmanager.php | 16 + lang/vendor/backpack/ar/settings.php | 16 + lang/vendor/backpack/bg/backup.php | 16 + lang/vendor/backpack/bg/base.php | 34 + lang/vendor/backpack/bg/crud.php | 115 + lang/vendor/backpack/bg/langfilemanager.php | 16 + lang/vendor/backpack/bg/logmanager.php | 16 + lang/vendor/backpack/bg/pagemanager.php | 16 + lang/vendor/backpack/bg/permissionmanager.php | 16 + lang/vendor/backpack/bg/settings.php | 16 + lang/vendor/backpack/bn/backup.php | 16 + lang/vendor/backpack/bn/base.php | 71 + lang/vendor/backpack/bn/crud.php | 180 + lang/vendor/backpack/bn/logmanager.php | 16 + lang/vendor/backpack/bn/pagemanager.php | 16 + lang/vendor/backpack/bn/permissionmanager.php | 16 + lang/vendor/backpack/bn/settings.php | 16 + lang/vendor/backpack/ca/backup.php | 16 + lang/vendor/backpack/ca/base.php | 73 + lang/vendor/backpack/ca/crud.php | 188 + lang/vendor/backpack/ca/langfilemanager.php | 16 + lang/vendor/backpack/ca/logmanager.php | 16 + lang/vendor/backpack/ca/pagemanager.php | 16 + lang/vendor/backpack/ca/permissionmanager.php | 16 + lang/vendor/backpack/ca/settings.php | 16 + lang/vendor/backpack/cs/base.php | 71 + lang/vendor/backpack/cs/crud.php | 147 + lang/vendor/backpack/cs/langfilemanager.php | 16 + lang/vendor/backpack/da-DK/backup.php | 16 + lang/vendor/backpack/da-DK/base.php | 34 + lang/vendor/backpack/da-DK/crud.php | 119 + .../vendor/backpack/da-DK/langfilemanager.php | 16 + lang/vendor/backpack/da-DK/logmanager.php | 16 + lang/vendor/backpack/da-DK/pagemanager.php | 16 + .../backpack/da-DK/permissionmanager.php | 16 + lang/vendor/backpack/da-DK/settings.php | 16 + lang/vendor/backpack/da_DK/backup.php | 16 + lang/vendor/backpack/da_DK/base.php | 45 + lang/vendor/backpack/da_DK/crud.php | 119 + .../vendor/backpack/da_DK/langfilemanager.php | 16 + lang/vendor/backpack/da_DK/logmanager.php | 16 + lang/vendor/backpack/da_DK/pagemanager.php | 16 + .../backpack/da_DK/permissionmanager.php | 16 + lang/vendor/backpack/da_DK/settings.php | 16 + lang/vendor/backpack/de/backup.php | 16 + lang/vendor/backpack/de/base.php | 77 + lang/vendor/backpack/de/crud.php | 188 + lang/vendor/backpack/de/langfilemanager.php | 16 + lang/vendor/backpack/de/logmanager.php | 16 + lang/vendor/backpack/de/pagemanager.php | 16 + lang/vendor/backpack/de/permissionmanager.php | 16 + lang/vendor/backpack/de/settings.php | 16 + lang/vendor/backpack/el/backup.php | 16 + lang/vendor/backpack/el/base.php | 51 + lang/vendor/backpack/el/crud.php | 115 + lang/vendor/backpack/el/langfilemanager.php | 16 + lang/vendor/backpack/el/logmanager.php | 16 + lang/vendor/backpack/el/pagemanager.php | 16 + lang/vendor/backpack/el/permissionmanager.php | 16 + lang/vendor/backpack/el/settings.php | 16 + lang/vendor/backpack/en/backup.php | 16 + lang/vendor/backpack/en/base.php | 97 + lang/vendor/backpack/en/crud.php | 193 + lang/vendor/backpack/en/langfilemanager.php | 16 + lang/vendor/backpack/en/logmanager.php | 16 + lang/vendor/backpack/en/pagemanager.php | 16 + lang/vendor/backpack/en/permissionmanager.php | 16 + lang/vendor/backpack/en/settings.php | 16 + lang/vendor/backpack/es/backup.php | 16 + lang/vendor/backpack/es/base.php | 71 + lang/vendor/backpack/es/crud.php | 180 + lang/vendor/backpack/es/langfilemanager.php | 16 + lang/vendor/backpack/es/logmanager.php | 16 + lang/vendor/backpack/es/pagemanager.php | 16 + lang/vendor/backpack/es/permissionmanager.php | 16 + lang/vendor/backpack/es/settings.php | 16 + lang/vendor/backpack/fa/backup.php | 16 + lang/vendor/backpack/fa/base.php | 71 + lang/vendor/backpack/fa/crud.php | 147 + lang/vendor/backpack/fa/langfilemanager.php | 16 + lang/vendor/backpack/fa/logmanager.php | 16 + lang/vendor/backpack/fa/pagemanager.php | 16 + lang/vendor/backpack/fa/permissionmanager.php | 16 + lang/vendor/backpack/fa/settings.php | 16 + lang/vendor/backpack/fr-CA/backup.php | 16 + lang/vendor/backpack/fr-CA/base.php | 62 + lang/vendor/backpack/fr-CA/crud.php | 142 + .../vendor/backpack/fr-CA/langfilemanager.php | 16 + lang/vendor/backpack/fr-CA/logmanager.php | 16 + lang/vendor/backpack/fr-CA/pagemanager.php | 16 + .../backpack/fr-CA/permissionmanager.php | 16 + lang/vendor/backpack/fr-CA/settings.php | 16 + lang/vendor/backpack/fr/backup.php | 16 + lang/vendor/backpack/fr/base.php | 70 + lang/vendor/backpack/fr/crud.php | 169 + lang/vendor/backpack/fr/langfilemanager.php | 16 + lang/vendor/backpack/fr/logmanager.php | 16 + lang/vendor/backpack/fr/pagemanager.php | 16 + lang/vendor/backpack/fr/permissionmanager.php | 16 + lang/vendor/backpack/fr/settings.php | 16 + lang/vendor/backpack/fr_CA/backup.php | 16 + lang/vendor/backpack/fr_CA/base.php | 62 + lang/vendor/backpack/fr_CA/crud.php | 142 + .../vendor/backpack/fr_CA/langfilemanager.php | 16 + lang/vendor/backpack/fr_CA/logmanager.php | 16 + lang/vendor/backpack/fr_CA/pagemanager.php | 16 + .../backpack/fr_CA/permissionmanager.php | 16 + lang/vendor/backpack/fr_CA/settings.php | 16 + lang/vendor/backpack/gr/backup.php | 16 + lang/vendor/backpack/gr/crud.php | 16 + lang/vendor/backpack/gr/langfilemanager.php | 16 + lang/vendor/backpack/gr/logmanager.php | 16 + lang/vendor/backpack/gr/pagemanager.php | 16 + lang/vendor/backpack/gr/permissionmanager.php | 16 + lang/vendor/backpack/gr/settings.php | 16 + lang/vendor/backpack/hu/backup.php | 16 + lang/vendor/backpack/hu/base.php | 71 + lang/vendor/backpack/hu/crud.php | 166 + lang/vendor/backpack/hu/langfilemanager.php | 16 + lang/vendor/backpack/hu/logmanager.php | 16 + lang/vendor/backpack/hu/pagemanager.php | 16 + lang/vendor/backpack/hu/permissionmanager.php | 16 + lang/vendor/backpack/hu/settings.php | 16 + lang/vendor/backpack/id/backup.php | 16 + lang/vendor/backpack/id/base.php | 71 + lang/vendor/backpack/id/crud.php | 159 + lang/vendor/backpack/id/langfilemanager.php | 16 + lang/vendor/backpack/id/logmanager.php | 16 + lang/vendor/backpack/id/pagemanager.php | 16 + lang/vendor/backpack/id/permissionmanager.php | 16 + lang/vendor/backpack/id/settings.php | 16 + lang/vendor/backpack/it/backup.php | 16 + lang/vendor/backpack/it/base.php | 74 + lang/vendor/backpack/it/crud.php | 183 + lang/vendor/backpack/it/langfilemanager.php | 16 + lang/vendor/backpack/it/logmanager.php | 16 + lang/vendor/backpack/it/pagemanager.php | 16 + lang/vendor/backpack/it/permissionmanager.php | 16 + lang/vendor/backpack/it/settings.php | 16 + lang/vendor/backpack/ja/backup.php | 16 + lang/vendor/backpack/ja/base.php | 71 + lang/vendor/backpack/ja/crud.php | 180 + lang/vendor/backpack/ja/langfilemanager.php | 16 + lang/vendor/backpack/ja/logmanager.php | 16 + lang/vendor/backpack/ja/pagemanager.php | 16 + lang/vendor/backpack/ja/permissionmanager.php | 16 + lang/vendor/backpack/ja/settings.php | 16 + lang/vendor/backpack/lo/backup.php | 16 + lang/vendor/backpack/lo/crud.php | 16 + lang/vendor/backpack/lo/langfilemanager.php | 16 + lang/vendor/backpack/lo/logmanager.php | 16 + lang/vendor/backpack/lo/pagemanager.php | 16 + lang/vendor/backpack/lo/permissionmanager.php | 16 + lang/vendor/backpack/lo/settings.php | 16 + lang/vendor/backpack/lv/backup.php | 16 + lang/vendor/backpack/lv/base.php | 70 + lang/vendor/backpack/lv/crud.php | 159 + lang/vendor/backpack/lv/langfilemanager.php | 16 + lang/vendor/backpack/lv/logmanager.php | 16 + lang/vendor/backpack/lv/pagemanager.php | 16 + lang/vendor/backpack/lv/permissionmanager.php | 16 + lang/vendor/backpack/lv/settings.php | 16 + lang/vendor/backpack/my/backup.php | 16 + lang/vendor/backpack/my/base.php | 73 + lang/vendor/backpack/my/crud.php | 180 + lang/vendor/backpack/my/langfilemanager.php | 16 + lang/vendor/backpack/my/logmanager.php | 16 + lang/vendor/backpack/my/pagemanager.php | 16 + lang/vendor/backpack/my/permissionmanager.php | 16 + lang/vendor/backpack/my/settings.php | 16 + lang/vendor/backpack/nl/backup.php | 16 + lang/vendor/backpack/nl/base.php | 71 + lang/vendor/backpack/nl/crud.php | 180 + lang/vendor/backpack/nl/langfilemanager.php | 16 + lang/vendor/backpack/nl/logmanager.php | 16 + lang/vendor/backpack/nl/pagemanager.php | 16 + lang/vendor/backpack/nl/permissionmanager.php | 16 + lang/vendor/backpack/nl/settings.php | 16 + lang/vendor/backpack/pt-BR/backup.php | 16 + lang/vendor/backpack/pt-BR/base.php | 77 + lang/vendor/backpack/pt-BR/crud.php | 159 + .../vendor/backpack/pt-BR/langfilemanager.php | 16 + lang/vendor/backpack/pt-BR/logmanager.php | 16 + lang/vendor/backpack/pt-BR/pagemanager.php | 16 + .../backpack/pt-BR/permissionmanager.php | 16 + lang/vendor/backpack/pt-BR/settings.php | 16 + lang/vendor/backpack/pt/backup.php | 16 + lang/vendor/backpack/pt/base.php | 77 + lang/vendor/backpack/pt/crud.php | 182 + lang/vendor/backpack/pt/langfilemanager.php | 16 + lang/vendor/backpack/pt/logmanager.php | 16 + lang/vendor/backpack/pt/pagemanager.php | 16 + lang/vendor/backpack/pt/permissionmanager.php | 16 + lang/vendor/backpack/pt/settings.php | 16 + lang/vendor/backpack/pt_br/backup.php | 16 + lang/vendor/backpack/pt_br/base.php | 77 + lang/vendor/backpack/pt_br/crud.php | 159 + .../vendor/backpack/pt_br/langfilemanager.php | 16 + lang/vendor/backpack/pt_br/logmanager.php | 16 + lang/vendor/backpack/pt_br/pagemanager.php | 16 + .../backpack/pt_br/permissionmanager.php | 16 + lang/vendor/backpack/pt_br/settings.php | 16 + lang/vendor/backpack/ro/backup.php | 16 + lang/vendor/backpack/ro/base.php | 63 + lang/vendor/backpack/ro/crud.php | 133 + lang/vendor/backpack/ro/langfilemanager.php | 16 + lang/vendor/backpack/ro/logmanager.php | 16 + lang/vendor/backpack/ro/pagemanager.php | 16 + lang/vendor/backpack/ro/permissionmanager.php | 16 + lang/vendor/backpack/ro/settings.php | 16 + lang/vendor/backpack/ru/backup.php | 16 + lang/vendor/backpack/ru/base.php | 95 + lang/vendor/backpack/ru/crud.php | 188 + lang/vendor/backpack/ru/langfilemanager.php | 16 + lang/vendor/backpack/ru/logmanager.php | 16 + lang/vendor/backpack/ru/pagemanager.php | 16 + lang/vendor/backpack/ru/permissionmanager.php | 16 + lang/vendor/backpack/ru/settings.php | 16 + lang/vendor/backpack/sr/backup.php | 16 + lang/vendor/backpack/sr/base.php | 71 + lang/vendor/backpack/sr/crud.php | 155 + lang/vendor/backpack/sr/langfilemanager.php | 16 + lang/vendor/backpack/sr/logmanager.php | 16 + lang/vendor/backpack/sr/pagemanager.php | 16 + lang/vendor/backpack/sr/permissionmanager.php | 16 + lang/vendor/backpack/sr/settings.php | 16 + lang/vendor/backpack/th/backup.php | 16 + lang/vendor/backpack/th/base.php | 73 + lang/vendor/backpack/th/crud.php | 185 + lang/vendor/backpack/th/langfilemanager.php | 16 + lang/vendor/backpack/th/logmanager.php | 16 + lang/vendor/backpack/th/pagemanager.php | 16 + lang/vendor/backpack/th/permissionmanager.php | 16 + lang/vendor/backpack/th/settings.php | 16 + lang/vendor/backpack/tr/crud.php | 138 + lang/vendor/backpack/tr/langfilemanager.php | 16 + lang/vendor/backpack/uk/backup.php | 16 + lang/vendor/backpack/uk/base.php | 95 + lang/vendor/backpack/uk/crud.php | 188 + lang/vendor/backpack/uk/langfilemanager.php | 16 + lang/vendor/backpack/uk/logmanager.php | 16 + lang/vendor/backpack/uk/pagemanager.php | 16 + lang/vendor/backpack/uk/permissionmanager.php | 16 + lang/vendor/backpack/uk/settings.php | 16 + lang/vendor/backpack/vi/backup.php | 16 + lang/vendor/backpack/vi/base.php | 96 + lang/vendor/backpack/vi/crud.php | 188 + lang/vendor/backpack/vi/langfilemanager.php | 16 + lang/vendor/backpack/vi/logmanager.php | 16 + lang/vendor/backpack/vi/pagemanager.php | 16 + lang/vendor/backpack/vi/permissionmanager.php | 16 + lang/vendor/backpack/vi/settings.php | 16 + lang/vendor/backpack/zh-Hant/backup.php | 16 + lang/vendor/backpack/zh-Hant/base.php | 71 + lang/vendor/backpack/zh-Hant/crud.php | 177 + .../backpack/zh-Hant/langfilemanager.php | 16 + lang/vendor/backpack/zh-Hant/logmanager.php | 16 + lang/vendor/backpack/zh-Hant/pagemanager.php | 16 + .../backpack/zh-Hant/permissionmanager.php | 16 + lang/vendor/backpack/zh-Hant/settings.php | 16 + lang/vendor/backpack/zh-TW/backup.php | 16 + lang/vendor/backpack/zh-TW/base.php | 87 + lang/vendor/backpack/zh-TW/crud.php | 178 + .../vendor/backpack/zh-TW/langfilemanager.php | 16 + lang/vendor/backpack/zh-TW/logmanager.php | 16 + lang/vendor/backpack/zh-TW/pagemanager.php | 16 + .../backpack/zh-TW/permissionmanager.php | 44 + lang/vendor/backpack/zh-TW/settings.php | 16 + lang/vendor/backpack/zh-cn/backup.php | 16 + lang/vendor/backpack/zh-cn/base.php | 71 + lang/vendor/backpack/zh-cn/crud.php | 177 + .../vendor/backpack/zh-cn/langfilemanager.php | 16 + lang/vendor/backpack/zh-cn/logmanager.php | 16 + lang/vendor/backpack/zh-cn/pagemanager.php | 16 + .../backpack/zh-cn/permissionmanager.php | 16 + lang/vendor/backpack/zh-cn/settings.php | 16 + lang/zh-TW.json | 39 + lang/zh-TW/auth.php | 9 + lang/zh-TW/backend.php | 39 + lang/zh-TW/pagination.php | 8 + lang/zh-TW/passwords.php | 11 + lang/zh-TW/validation.php | 150 + package-lock.json | 1355 + package.json | 13 + phpunit.xml | 32 + public/.htaccess | 21 + public/assets/css/all.min.css | 6 + public/assets/css/animate.min.css | 7 + public/assets/css/banner.css | 328 + public/assets/css/bootstrap.css | 9887 +++++++ public/assets/css/bootstrap.css.map | 1 + public/assets/css/bootstrap.min.css | 7 + public/assets/css/fonts.css | 9913 +++++++ public/assets/css/footer.css | 246 + public/assets/css/header-index.css | 280 + public/assets/css/header.css | 235 + public/assets/css/index.css | 962 + public/assets/css/index1.css | 946 + public/assets/css/page.css | 1513 + public/assets/css/page1.css | 1892 ++ public/assets/css/revise.css | 722 + public/assets/file/products-documents-a01.pdf | Bin 0 -> 1414767 bytes public/assets/file/products-mechanics-a01.pdf | Bin 0 -> 42987 bytes public/assets/file/products-mechanics-a02.stp | 23651 ++++++++++++++++ public/assets/fonts/flaticon/Flaticon.eot | Bin 0 -> 13392 bytes public/assets/fonts/flaticon/Flaticon.svg | 415 + public/assets/fonts/flaticon/Flaticon.ttf | Bin 0 -> 13216 bytes public/assets/fonts/flaticon/Flaticon.woff | Bin 0 -> 7992 bytes public/assets/fonts/flaticon/_flaticon.scss | 153 + public/assets/fonts/flaticon/flaticon.css | 87 + public/assets/fonts/flaticon/flaticon.html | 740 + public/assets/fonts/thin/Thin-Regular.ttf | Bin 0 -> 48780 bytes public/assets/fonts/thin/Thin-Regular.woff | Bin 0 -> 28796 bytes public/assets/fonts/thin/thin-style.html | 129 + public/assets/fonts/thin/thin.css | 102 + public/assets/fonts/webfonts.zip | Bin 0 -> 588479 bytes .../assets/fonts/webfonts/fa-brands-400.ttf | Bin 0 -> 186124 bytes .../assets/fonts/webfonts/fa-brands-400.woff2 | Bin 0 -> 107656 bytes .../assets/fonts/webfonts/fa-regular-400.ttf | Bin 0 -> 62320 bytes .../fonts/webfonts/fa-regular-400.woff2 | Bin 0 -> 25236 bytes public/assets/fonts/webfonts/fa-solid-900.ttf | Bin 0 -> 397420 bytes .../assets/fonts/webfonts/fa-solid-900.woff2 | Bin 0 -> 150516 bytes .../fonts/webfonts/fa-v4compatibility.ttf | Bin 0 -> 10140 bytes .../fonts/webfonts/fa-v4compatibility.woff2 | Bin 0 -> 4568 bytes public/assets/img/about-a01.jpg | Bin 0 -> 70476 bytes public/assets/img/about-a02.jpg | Bin 0 -> 88750 bytes public/assets/img/about-bg.jpg | Bin 0 -> 148597 bytes public/assets/img/code.jpg | Bin 0 -> 26049 bytes public/assets/img/content-bg.jpg | Bin 0 -> 45226 bytes public/assets/img/download-icon.png | Bin 0 -> 2822 bytes public/assets/img/event-item-a01.jpg | Bin 0 -> 100371 bytes public/assets/img/event-item-a02.jpg | Bin 0 -> 34262 bytes public/assets/img/event-item-a03.jpg | Bin 0 -> 85432 bytes public/assets/img/icon-fb.png | Bin 0 -> 1385 bytes public/assets/img/icon-line.png | Bin 0 -> 1514 bytes public/assets/img/index/about-bg.jpg | Bin 0 -> 120174 bytes public/assets/img/index/about-img.png | Bin 0 -> 286642 bytes public/assets/img/index/about-item-a01.jpg | Bin 0 -> 189166 bytes public/assets/img/index/about-item-a02.jpg | Bin 0 -> 168410 bytes public/assets/img/index/about-item-a03.jpg | Bin 0 -> 167524 bytes public/assets/img/index/about-item-a04.jpg | Bin 0 -> 206902 bytes .../assets/img/index/carousel-item-text.png | Bin 0 -> 15727 bytes public/assets/img/index/carousel-item01.jpg | Bin 0 -> 262651 bytes public/assets/img/index/carousel-item02.jpg | Bin 0 -> 512907 bytes public/assets/img/index/carousel-item03.jpg | Bin 0 -> 335084 bytes public/assets/img/index/carousel-item04.jpg | Bin 0 -> 429728 bytes public/assets/img/index/contact-bg.jpg | Bin 0 -> 68909 bytes public/assets/img/index/data-bg.jpg | Bin 0 -> 9538 bytes public/assets/img/index/data-item-a01.jpg | Bin 0 -> 92245 bytes public/assets/img/index/data-item-a02.jpg | Bin 0 -> 59021 bytes public/assets/img/index/news-a01.jpg | Bin 0 -> 87693 bytes public/assets/img/index/news-a02.jpg | Bin 0 -> 101718 bytes public/assets/img/index/news-bg.jpg | Bin 0 -> 54579 bytes public/assets/img/index/news-item-a01.jpg | Bin 0 -> 31191 bytes public/assets/img/index/news-item-a02.jpg | Bin 0 -> 30497 bytes public/assets/img/index/news-item-a03.jpg | Bin 0 -> 41445 bytes public/assets/img/index/products-item-a01.jpg | Bin 0 -> 126694 bytes public/assets/img/index/products-item-a02.jpg | Bin 0 -> 137154 bytes public/assets/img/index/products-item-a03.jpg | Bin 0 -> 105408 bytes public/assets/img/index/products-item-a04.jpg | Bin 0 -> 123546 bytes public/assets/img/index/products_bg.jpg | Bin 0 -> 66343 bytes public/assets/img/index/rd-navbar-bg.jpg | Bin 0 -> 189429 bytes public/assets/img/index/service-img.jpg | Bin 0 -> 162804 bytes public/assets/img/line-pic.jpg | Bin 0 -> 92583 bytes public/assets/img/loading.gif | Bin 0 -> 14085 bytes public/assets/img/logo.png | Bin 0 -> 7098 bytes public/assets/img/logo2.png | Bin 0 -> 8010 bytes public/assets/img/magnifier.png | Bin 0 -> 4057 bytes public/assets/img/news-item-a01.jpg | Bin 0 -> 80152 bytes public/assets/img/news-item-a02.jpg | Bin 0 -> 95608 bytes public/assets/img/news-item-a03.jpg | Bin 0 -> 182074 bytes public/assets/img/news-item-a04.jpg | Bin 0 -> 74707 bytes public/assets/img/page-banner1.jpg | Bin 0 -> 199746 bytes public/assets/img/page-banner2.jpg | Bin 0 -> 211557 bytes public/assets/img/page-banner3.jpg | Bin 0 -> 258567 bytes public/assets/img/page-banner4.jpg | Bin 0 -> 232295 bytes public/assets/img/page-banner5.jpg | Bin 0 -> 314096 bytes public/assets/img/page-banner6.jpg | Bin 0 -> 165625 bytes public/assets/img/page-banner7.jpg | Bin 0 -> 216432 bytes public/assets/img/page-banner8.jpg | Bin 0 -> 182390 bytes public/assets/img/page-banner9.jpg | Bin 0 -> 240437 bytes public/assets/img/products-item-a01.jpg | Bin 0 -> 73963 bytes public/assets/img/products-item-a02.jpg | Bin 0 -> 137223 bytes public/assets/img/products-item-a03.jpg | Bin 0 -> 25062 bytes public/assets/img/sidebar/sidebar_buy.png | Bin 0 -> 1601 bytes public/assets/img/sidebar/sidebar_cart.png | Bin 0 -> 1445 bytes .../assets/img/sidebar/sidebar_cart_add.png | Bin 0 -> 1647 bytes public/assets/img/sidebar/sidebar_fb.png | Bin 0 -> 594 bytes public/assets/img/sidebar/sidebar_home.png | Bin 0 -> 2069 bytes public/assets/img/sidebar/sidebar_line.png | Bin 0 -> 1629 bytes public/assets/img/sidebar/sidebar_map.png | Bin 0 -> 1514 bytes public/assets/img/sidebar/sidebar_member.png | Bin 0 -> 1612 bytes public/assets/img/sidebar/sidebar_menu.png | Bin 0 -> 2134 bytes .../assets/img/sidebar/sidebar_messenger.png | Bin 0 -> 1513 bytes public/assets/img/sidebar/sidebar_order.png | Bin 0 -> 2424 bytes public/assets/img/sidebar/sidebar_phone.png | Bin 0 -> 1544 bytes public/assets/img/support-03-a01.png | Bin 0 -> 23940 bytes public/assets/img/support-03-a02.png | Bin 0 -> 21311 bytes public/assets/img/support-03-a03.png | Bin 0 -> 43939 bytes public/assets/img/support-03-a04.png | Bin 0 -> 9032 bytes public/assets/img/support-03-a05.png | Bin 0 -> 10106 bytes public/assets/img/support-03-a06.png | Bin 0 -> 13259 bytes public/assets/img/support-03-a07.png | Bin 0 -> 17232 bytes public/assets/js/aos/aos.css | 1 + public/assets/js/aos/aos.js | 448 + public/assets/js/bootstrap/bootstrap.min.js | 7 + .../assets/js/bootstrap/bootstrap.min.js.map | 1 + public/assets/js/bootstrap/popper.min.js | 5 + public/assets/js/bootstrap/popper.min.js.map | 1 + .../js/fancybox/jquery.fancybox.min.css | 1 + .../assets/js/fancybox/jquery.fancybox.min.js | 1550 + public/assets/js/fullpage/examples.css | 316 + public/assets/js/fullpage/examples.js | 4 + public/assets/js/fullpage/fullpage.css | 310 + public/assets/js/fullpage/fullpage.js | 5991 ++++ public/assets/js/include.js | 10 + public/assets/js/jquery.min.js | 2 + public/assets/js/lazyload.min.js | 2 + .../assets/js/rd-navbar/jquery.rd-navbar.css | 1004 + .../assets/js/rd-navbar/jquery.rd-navbar.js | 717 + .../js/rd-navbar/jquery.rd-navbar.min.js | 28 + public/assets/js/rd-navbar/rd-navbar.js | 176 + public/assets/js/script.js | 89 + public/assets/js/scrollUp/css/image.css | 12 + public/assets/js/scrollUp/css/link.css | 5 + public/assets/js/scrollUp/css/pill.css | 24 + public/assets/js/scrollUp/css/tab.css | 32 + public/assets/js/scrollUp/jquery.scrollUp.js | 162 + public/assets/js/scrollUp/top.png | Bin 0 -> 698 bytes public/assets/js/slick/ajax-loader.gif | Bin 0 -> 4178 bytes public/assets/js/slick/config.rb | 10 + public/assets/js/slick/fonts/slick.eot | Bin 0 -> 2048 bytes public/assets/js/slick/fonts/slick.svg | 14 + public/assets/js/slick/fonts/slick.ttf | Bin 0 -> 1892 bytes public/assets/js/slick/fonts/slick.woff | Bin 0 -> 1380 bytes public/assets/js/slick/next.png | Bin 0 -> 1444 bytes public/assets/js/slick/next1.png | Bin 0 -> 2914 bytes public/assets/js/slick/next2.png | Bin 0 -> 2909 bytes public/assets/js/slick/next3.png | Bin 0 -> 1024 bytes public/assets/js/slick/next4.png | Bin 0 -> 1472 bytes public/assets/js/slick/prev.png | Bin 0 -> 1383 bytes public/assets/js/slick/prev1.png | Bin 0 -> 2905 bytes public/assets/js/slick/prev2.png | Bin 0 -> 2904 bytes public/assets/js/slick/prev3.png | Bin 0 -> 1023 bytes public/assets/js/slick/prev4.png | Bin 0 -> 1480 bytes public/assets/js/slick/slick-theme.css | 455 + public/assets/js/slick/slick-theme.less | 168 + public/assets/js/slick/slick-theme.scss | 190 + public/assets/js/slick/slick-theme1.css | 187 + public/assets/js/slick/slick.css | 120 + public/assets/js/slick/slick.js | 2670 ++ public/assets/js/slick/slick.less | 99 + public/assets/js/slick/slick.min.js | 18 + public/assets/js/slick/slick.scss | 99 + public/favico.ico | Bin 0 -> 16958 bytes public/favicon.ico | 0 public/index.php | 55 + public/robots.txt | 2 + resources/css/app.css | 0 resources/js/app.js | 1 + resources/js/bootstrap.js | 32 + resources/views/about.blade.php | 77 + .../views/components/heading_navbar.blade.php | 60 + resources/views/events.blade.php | 100 + resources/views/events_detail.blade.php | 71 + resources/views/home.blade.php | 206 + .../views/layouts/heading-home.blade.php | 30 + .../views/layouts/heading-page.blade.php | 36 + resources/views/layouts/master.blade.php | 111 + resources/views/news.blade.php | 95 + resources/views/news_detail.blade.php | 80 + resources/views/products.blade.php | 214 + resources/views/products_detail.blade.php | 296 + .../support-distribution-partners.blade.php | 125 + .../support-ecosystem-partners.blade.php | 124 + .../views/support-sales-inquiry.blade.php | 345 + resources/views/support-technical.blade.php | 346 + .../backpack/ui/inc/menu_items.blade.php | 42 + .../cookie-consent/dialogContents.blade.php | 12 + .../vendor/cookie-consent/index.blade.php | 56 + .../views/vendor/elfinder/ckeditor4.blade.php | 67 + resources/views/vendor/elfinder/ckeditor4.php | 83 + .../vendor/elfinder/common_scripts.blade.php | 21 + .../vendor/elfinder/common_styles.blade.php | 89 + .../views/vendor/elfinder/elfinder.blade.php | 47 + resources/views/vendor/elfinder/elfinder.php | 72 + .../vendor/elfinder/filepicker.blade.php | 88 + .../views/vendor/elfinder/filepicker.php | 106 + .../vendor/elfinder/standalonepopup.blade.php | 65 + .../views/vendor/elfinder/standalonepopup.php | 82 + .../views/vendor/elfinder/tinymce.blade.php | 89 + resources/views/vendor/elfinder/tinymce.php | 105 + .../views/vendor/elfinder/tinymce4.blade.php | 71 + resources/views/vendor/elfinder/tinymce4.php | 86 + .../views/vendor/elfinder/tinymce5.blade.php | 55 + resources/views/vendor/elfinder/tinymce5.php | 87 + resources/views/welcome.blade.php | 133 + routes/api.php | 19 + routes/backpack/custom.php | 35 + routes/channels.php | 18 + routes/console.php | 19 + routes/web.php | 50 + run_artisan | 1 + run_composer | 1 + run_npm | 1 + run_npx | 1 + run_php | 1 + run_yarn | 1 + ssl_cert.pem | 0 ssl_key.pem | 0 storage/app/.gitignore | 3 + storage/app/public/.gitignore | 2 + storage/framework/.gitignore | 9 + storage/framework/cache/.gitignore | 3 + storage/framework/cache/data/.gitignore | 2 + storage/framework/sessions/.gitignore | 2 + storage/framework/testing/.gitignore | 2 + storage/framework/views/.gitignore | 2 + storage/logs/.gitignore | 2 + tests/CreatesApplication.php | 21 + tests/Feature/ExampleTest.php | 19 + tests/TestCase.php | 10 + tests/Unit/ExampleTest.php | 16 + vite.config.js | 11 + 677 files changed, 105611 insertions(+) create mode 100644 .editorconfig create mode 100644 .env.example create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 README.md create mode 100644 app/Console/Kernel.php create mode 100644 app/Exceptions/Handler.php create mode 100644 app/Http/Controllers/AboutController.php create mode 100644 app/Http/Controllers/Admin/EventCatalogCrudController.php create mode 100644 app/Http/Controllers/Admin/EventCrudController.php create mode 100644 app/Http/Controllers/Admin/HomeCarouselCrudController.php create mode 100644 app/Http/Controllers/Admin/NewsCatalogCrudController.php create mode 100644 app/Http/Controllers/Admin/NewsCrudController.php create mode 100644 app/Http/Controllers/Admin/PermissionCrudController.php create mode 100644 app/Http/Controllers/Admin/ProductApplicationCrudController.php create mode 100644 app/Http/Controllers/Admin/ProductCatalogCrudController.php create mode 100644 app/Http/Controllers/Admin/ProductCrudController.php create mode 100644 app/Http/Controllers/Admin/RoleCrudController.php create mode 100644 app/Http/Controllers/Admin/SupportDistributionPartnerCatalogCrudController.php create mode 100644 app/Http/Controllers/Admin/SupportDistributionPartnerCrudController.php create mode 100644 app/Http/Controllers/Admin/SupportEcosystemPartnerCatalogCrudController.php create mode 100644 app/Http/Controllers/Admin/SupportEcosystemPartnerCrudController.php create mode 100644 app/Http/Controllers/Admin/SupportSaleCrudController.php create mode 100644 app/Http/Controllers/Admin/SupportTechnicalCrudController.php create mode 100644 app/Http/Controllers/Admin/UserCrudController.php create mode 100644 app/Http/Controllers/ContactController.php create mode 100644 app/Http/Controllers/Controller.php create mode 100644 app/Http/Controllers/EventsController.php create mode 100644 app/Http/Controllers/HomeController.php create mode 100644 app/Http/Controllers/NewsController.php create mode 100644 app/Http/Controllers/ProductsController.php create mode 100644 app/Http/Controllers/SupportDistributionPartnersController.php create mode 100644 app/Http/Controllers/SupportEcosystemPartnersController.php create mode 100644 app/Http/Controllers/SupportSalesInquiryController.php create mode 100644 app/Http/Controllers/SupportTechnicalController.php create mode 100644 app/Http/Kernel.php create mode 100644 app/Http/Middleware/Authenticate.php create mode 100644 app/Http/Middleware/CheckIfAdmin.php create mode 100644 app/Http/Middleware/EncryptCookies.php create mode 100644 app/Http/Middleware/PreventRequestsDuringMaintenance.php create mode 100644 app/Http/Middleware/RedirectIfAuthenticated.php create mode 100644 app/Http/Middleware/TrimStrings.php create mode 100644 app/Http/Middleware/TrustHosts.php create mode 100644 app/Http/Middleware/TrustProxies.php create mode 100644 app/Http/Middleware/ValidateSignature.php create mode 100644 app/Http/Middleware/VerifyCsrfToken.php create mode 100644 app/Http/Requests/EventCatalogRequest.php create mode 100644 app/Http/Requests/EventRequest.php create mode 100644 app/Http/Requests/HomeCarouselRequest.php create mode 100644 app/Http/Requests/NewsCatalogRequest.php create mode 100644 app/Http/Requests/NewsRequest.php create mode 100644 app/Http/Requests/ProductApplicationRequest.php create mode 100644 app/Http/Requests/ProductCatalogRequest.php create mode 100644 app/Http/Requests/ProductRequest.php create mode 100644 app/Http/Requests/SupportDistributionPartnerCatalogRequest.php create mode 100644 app/Http/Requests/SupportDistributionPartnerRequest.php create mode 100644 app/Http/Requests/SupportEcosystemPartnerCatalogRequest.php create mode 100644 app/Http/Requests/SupportEcosystemPartnerRequest.php create mode 100644 app/Http/Requests/SupportSaleRequest.php create mode 100644 app/Http/Requests/SupportTechnicalRequest.php create mode 100644 app/Http/Requests/UserRequest.php create mode 100644 app/Models/Event.php create mode 100644 app/Models/EventCatalog.php create mode 100644 app/Models/HomeCarousel.php create mode 100644 app/Models/News.php create mode 100644 app/Models/NewsCatalog.php create mode 100644 app/Models/Permission.php create mode 100644 app/Models/Product.php create mode 100644 app/Models/ProductApplication.php create mode 100644 app/Models/ProductCatalog.php create mode 100644 app/Models/Role.php create mode 100644 app/Models/SupportDistributionPartner.php create mode 100644 app/Models/SupportDistributionPartnerCatalog.php create mode 100644 app/Models/SupportEcosystemPartner.php create mode 100644 app/Models/SupportEcosystemPartnerCatalog.php create mode 100644 app/Models/SupportSale.php create mode 100644 app/Models/SupportTechnical.php create mode 100644 app/Models/User.php create mode 100644 app/Overrides/backpack/crud/src/helpers.php create mode 100644 app/Providers/AppServiceProvider.php create mode 100644 app/Providers/AuthServiceProvider.php create mode 100644 app/Providers/BroadcastServiceProvider.php create mode 100644 app/Providers/EventServiceProvider.php create mode 100644 app/Providers/RouteServiceProvider.php create mode 100755 artisan create mode 100644 bootstrap/app.php create mode 100644 bootstrap/cache/.gitignore create mode 100644 composer copy.json create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 config/app.php create mode 100644 config/auth.php create mode 100644 config/backpack/base.php create mode 100644 config/backpack/crud.php create mode 100644 config/backpack/language-switcher.php create mode 100644 config/backpack/operations/create.php create mode 100644 config/backpack/operations/form.php create mode 100644 config/backpack/operations/list.php create mode 100644 config/backpack/operations/reorder.php create mode 100644 config/backpack/operations/show.php create mode 100644 config/backpack/operations/update.php create mode 100644 config/backpack/permissionmanager.php create mode 100644 config/backpack/theme-tabler.php create mode 100644 config/backpack/ui.php create mode 100644 config/broadcasting.php create mode 100644 config/cache.php create mode 100644 config/cors.php create mode 100644 config/database.php create mode 100644 config/elfinder.php create mode 100644 config/filesystems.php create mode 100644 config/gravatar.php create mode 100644 config/hashing.php create mode 100644 config/logging.php create mode 100644 config/mail.php create mode 100644 config/permission.php create mode 100644 config/queue.php create mode 100644 config/sanctum.php create mode 100644 config/services.php create mode 100644 config/session.php create mode 100644 config/view.php create mode 100644 database/.gitignore create mode 100644 database/factories/UserFactory.php create mode 100644 database/migrations/2014_10_12_000000_create_users_table.php create mode 100644 database/migrations/2014_10_12_100000_create_password_reset_tokens_table.php create mode 100644 database/migrations/2019_08_19_000000_create_failed_jobs_table.php create mode 100644 database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php create mode 100644 database/migrations/2020_03_31_114745_remove_backpackuser_model.php create mode 100644 database/migrations/2024_02_15_045931_create_permission_tables.php create mode 100644 database/migrations/2024_02_15_085158_create_sessions_table.php create mode 100644 database/migrations/2024_02_15_184909_add_slug_to_permission_table.php create mode 100644 database/migrations/2024_02_29_015600_create_news_catalogs_table.php create mode 100644 database/migrations/2024_02_29_015639_create_news_table.php create mode 100644 database/migrations/2024_02_29_020326_create_event_catalogs_table.php create mode 100644 database/migrations/2024_02_29_020350_create_events_table.php create mode 100644 database/migrations/2024_02_29_020623_create_product_catalogs_table.php create mode 100644 database/migrations/2024_02_29_020646_create_product_applications_table.php create mode 100644 database/migrations/2024_02_29_020703_create_products_table.php create mode 100644 database/migrations/2024_02_29_020738_create_support_technicals_table.php create mode 100644 database/migrations/2024_02_29_020804_create_support_sales_table.php create mode 100644 database/migrations/2024_02_29_020832_create_support_distribution_partner_catalogs_table.php create mode 100644 database/migrations/2024_02_29_020847_create_support_distribution_partners_table.php create mode 100644 database/migrations/2024_02_29_020904_create_support_ecosystem_partner_catalogs_table.php create mode 100644 database/migrations/2024_02_29_020915_create_support_ecosystem_partners_table.php create mode 100644 database/migrations/2024_03_04_092518_create_product_product_application_pivot_table.php create mode 100644 database/migrations/2024_03_05_010521_create_home_carousel_table.php create mode 100644 database/seeders/DatabaseSeeder.php create mode 100644 lang/en/backend.php create mode 100644 lang/vendor/backpack/ar/backup.php create mode 100644 lang/vendor/backpack/ar/base.php create mode 100644 lang/vendor/backpack/ar/crud.php create mode 100644 lang/vendor/backpack/ar/langfilemanager.php create mode 100644 lang/vendor/backpack/ar/logmanager.php create mode 100644 lang/vendor/backpack/ar/pagemanager.php create mode 100644 lang/vendor/backpack/ar/permissionmanager.php create mode 100644 lang/vendor/backpack/ar/settings.php create mode 100644 lang/vendor/backpack/bg/backup.php create mode 100644 lang/vendor/backpack/bg/base.php create mode 100644 lang/vendor/backpack/bg/crud.php create mode 100644 lang/vendor/backpack/bg/langfilemanager.php create mode 100644 lang/vendor/backpack/bg/logmanager.php create mode 100644 lang/vendor/backpack/bg/pagemanager.php create mode 100644 lang/vendor/backpack/bg/permissionmanager.php create mode 100644 lang/vendor/backpack/bg/settings.php create mode 100644 lang/vendor/backpack/bn/backup.php create mode 100644 lang/vendor/backpack/bn/base.php create mode 100644 lang/vendor/backpack/bn/crud.php create mode 100644 lang/vendor/backpack/bn/logmanager.php create mode 100644 lang/vendor/backpack/bn/pagemanager.php create mode 100644 lang/vendor/backpack/bn/permissionmanager.php create mode 100644 lang/vendor/backpack/bn/settings.php create mode 100644 lang/vendor/backpack/ca/backup.php create mode 100644 lang/vendor/backpack/ca/base.php create mode 100644 lang/vendor/backpack/ca/crud.php create mode 100644 lang/vendor/backpack/ca/langfilemanager.php create mode 100644 lang/vendor/backpack/ca/logmanager.php create mode 100644 lang/vendor/backpack/ca/pagemanager.php create mode 100644 lang/vendor/backpack/ca/permissionmanager.php create mode 100644 lang/vendor/backpack/ca/settings.php create mode 100644 lang/vendor/backpack/cs/base.php create mode 100644 lang/vendor/backpack/cs/crud.php create mode 100644 lang/vendor/backpack/cs/langfilemanager.php create mode 100644 lang/vendor/backpack/da-DK/backup.php create mode 100644 lang/vendor/backpack/da-DK/base.php create mode 100644 lang/vendor/backpack/da-DK/crud.php create mode 100644 lang/vendor/backpack/da-DK/langfilemanager.php create mode 100644 lang/vendor/backpack/da-DK/logmanager.php create mode 100644 lang/vendor/backpack/da-DK/pagemanager.php create mode 100644 lang/vendor/backpack/da-DK/permissionmanager.php create mode 100644 lang/vendor/backpack/da-DK/settings.php create mode 100644 lang/vendor/backpack/da_DK/backup.php create mode 100644 lang/vendor/backpack/da_DK/base.php create mode 100644 lang/vendor/backpack/da_DK/crud.php create mode 100644 lang/vendor/backpack/da_DK/langfilemanager.php create mode 100644 lang/vendor/backpack/da_DK/logmanager.php create mode 100644 lang/vendor/backpack/da_DK/pagemanager.php create mode 100644 lang/vendor/backpack/da_DK/permissionmanager.php create mode 100644 lang/vendor/backpack/da_DK/settings.php create mode 100644 lang/vendor/backpack/de/backup.php create mode 100644 lang/vendor/backpack/de/base.php create mode 100644 lang/vendor/backpack/de/crud.php create mode 100644 lang/vendor/backpack/de/langfilemanager.php create mode 100644 lang/vendor/backpack/de/logmanager.php create mode 100644 lang/vendor/backpack/de/pagemanager.php create mode 100644 lang/vendor/backpack/de/permissionmanager.php create mode 100644 lang/vendor/backpack/de/settings.php create mode 100644 lang/vendor/backpack/el/backup.php create mode 100644 lang/vendor/backpack/el/base.php create mode 100644 lang/vendor/backpack/el/crud.php create mode 100644 lang/vendor/backpack/el/langfilemanager.php create mode 100644 lang/vendor/backpack/el/logmanager.php create mode 100644 lang/vendor/backpack/el/pagemanager.php create mode 100644 lang/vendor/backpack/el/permissionmanager.php create mode 100644 lang/vendor/backpack/el/settings.php create mode 100644 lang/vendor/backpack/en/backup.php create mode 100644 lang/vendor/backpack/en/base.php create mode 100644 lang/vendor/backpack/en/crud.php create mode 100644 lang/vendor/backpack/en/langfilemanager.php create mode 100644 lang/vendor/backpack/en/logmanager.php create mode 100644 lang/vendor/backpack/en/pagemanager.php create mode 100644 lang/vendor/backpack/en/permissionmanager.php create mode 100644 lang/vendor/backpack/en/settings.php create mode 100644 lang/vendor/backpack/es/backup.php create mode 100644 lang/vendor/backpack/es/base.php create mode 100644 lang/vendor/backpack/es/crud.php create mode 100644 lang/vendor/backpack/es/langfilemanager.php create mode 100644 lang/vendor/backpack/es/logmanager.php create mode 100644 lang/vendor/backpack/es/pagemanager.php create mode 100644 lang/vendor/backpack/es/permissionmanager.php create mode 100644 lang/vendor/backpack/es/settings.php create mode 100644 lang/vendor/backpack/fa/backup.php create mode 100644 lang/vendor/backpack/fa/base.php create mode 100644 lang/vendor/backpack/fa/crud.php create mode 100644 lang/vendor/backpack/fa/langfilemanager.php create mode 100644 lang/vendor/backpack/fa/logmanager.php create mode 100644 lang/vendor/backpack/fa/pagemanager.php create mode 100644 lang/vendor/backpack/fa/permissionmanager.php create mode 100644 lang/vendor/backpack/fa/settings.php create mode 100644 lang/vendor/backpack/fr-CA/backup.php create mode 100644 lang/vendor/backpack/fr-CA/base.php create mode 100644 lang/vendor/backpack/fr-CA/crud.php create mode 100644 lang/vendor/backpack/fr-CA/langfilemanager.php create mode 100644 lang/vendor/backpack/fr-CA/logmanager.php create mode 100644 lang/vendor/backpack/fr-CA/pagemanager.php create mode 100644 lang/vendor/backpack/fr-CA/permissionmanager.php create mode 100644 lang/vendor/backpack/fr-CA/settings.php create mode 100644 lang/vendor/backpack/fr/backup.php create mode 100644 lang/vendor/backpack/fr/base.php create mode 100644 lang/vendor/backpack/fr/crud.php create mode 100644 lang/vendor/backpack/fr/langfilemanager.php create mode 100644 lang/vendor/backpack/fr/logmanager.php create mode 100644 lang/vendor/backpack/fr/pagemanager.php create mode 100644 lang/vendor/backpack/fr/permissionmanager.php create mode 100644 lang/vendor/backpack/fr/settings.php create mode 100644 lang/vendor/backpack/fr_CA/backup.php create mode 100644 lang/vendor/backpack/fr_CA/base.php create mode 100644 lang/vendor/backpack/fr_CA/crud.php create mode 100644 lang/vendor/backpack/fr_CA/langfilemanager.php create mode 100644 lang/vendor/backpack/fr_CA/logmanager.php create mode 100644 lang/vendor/backpack/fr_CA/pagemanager.php create mode 100644 lang/vendor/backpack/fr_CA/permissionmanager.php create mode 100644 lang/vendor/backpack/fr_CA/settings.php create mode 100644 lang/vendor/backpack/gr/backup.php create mode 100644 lang/vendor/backpack/gr/crud.php create mode 100644 lang/vendor/backpack/gr/langfilemanager.php create mode 100644 lang/vendor/backpack/gr/logmanager.php create mode 100644 lang/vendor/backpack/gr/pagemanager.php create mode 100644 lang/vendor/backpack/gr/permissionmanager.php create mode 100644 lang/vendor/backpack/gr/settings.php create mode 100644 lang/vendor/backpack/hu/backup.php create mode 100644 lang/vendor/backpack/hu/base.php create mode 100644 lang/vendor/backpack/hu/crud.php create mode 100644 lang/vendor/backpack/hu/langfilemanager.php create mode 100644 lang/vendor/backpack/hu/logmanager.php create mode 100644 lang/vendor/backpack/hu/pagemanager.php create mode 100644 lang/vendor/backpack/hu/permissionmanager.php create mode 100644 lang/vendor/backpack/hu/settings.php create mode 100644 lang/vendor/backpack/id/backup.php create mode 100644 lang/vendor/backpack/id/base.php create mode 100644 lang/vendor/backpack/id/crud.php create mode 100644 lang/vendor/backpack/id/langfilemanager.php create mode 100644 lang/vendor/backpack/id/logmanager.php create mode 100644 lang/vendor/backpack/id/pagemanager.php create mode 100644 lang/vendor/backpack/id/permissionmanager.php create mode 100644 lang/vendor/backpack/id/settings.php create mode 100644 lang/vendor/backpack/it/backup.php create mode 100644 lang/vendor/backpack/it/base.php create mode 100644 lang/vendor/backpack/it/crud.php create mode 100644 lang/vendor/backpack/it/langfilemanager.php create mode 100644 lang/vendor/backpack/it/logmanager.php create mode 100644 lang/vendor/backpack/it/pagemanager.php create mode 100644 lang/vendor/backpack/it/permissionmanager.php create mode 100644 lang/vendor/backpack/it/settings.php create mode 100644 lang/vendor/backpack/ja/backup.php create mode 100644 lang/vendor/backpack/ja/base.php create mode 100644 lang/vendor/backpack/ja/crud.php create mode 100644 lang/vendor/backpack/ja/langfilemanager.php create mode 100644 lang/vendor/backpack/ja/logmanager.php create mode 100644 lang/vendor/backpack/ja/pagemanager.php create mode 100644 lang/vendor/backpack/ja/permissionmanager.php create mode 100644 lang/vendor/backpack/ja/settings.php create mode 100644 lang/vendor/backpack/lo/backup.php create mode 100644 lang/vendor/backpack/lo/crud.php create mode 100644 lang/vendor/backpack/lo/langfilemanager.php create mode 100644 lang/vendor/backpack/lo/logmanager.php create mode 100644 lang/vendor/backpack/lo/pagemanager.php create mode 100644 lang/vendor/backpack/lo/permissionmanager.php create mode 100644 lang/vendor/backpack/lo/settings.php create mode 100644 lang/vendor/backpack/lv/backup.php create mode 100644 lang/vendor/backpack/lv/base.php create mode 100644 lang/vendor/backpack/lv/crud.php create mode 100644 lang/vendor/backpack/lv/langfilemanager.php create mode 100644 lang/vendor/backpack/lv/logmanager.php create mode 100644 lang/vendor/backpack/lv/pagemanager.php create mode 100644 lang/vendor/backpack/lv/permissionmanager.php create mode 100644 lang/vendor/backpack/lv/settings.php create mode 100644 lang/vendor/backpack/my/backup.php create mode 100644 lang/vendor/backpack/my/base.php create mode 100644 lang/vendor/backpack/my/crud.php create mode 100644 lang/vendor/backpack/my/langfilemanager.php create mode 100644 lang/vendor/backpack/my/logmanager.php create mode 100644 lang/vendor/backpack/my/pagemanager.php create mode 100644 lang/vendor/backpack/my/permissionmanager.php create mode 100644 lang/vendor/backpack/my/settings.php create mode 100644 lang/vendor/backpack/nl/backup.php create mode 100644 lang/vendor/backpack/nl/base.php create mode 100644 lang/vendor/backpack/nl/crud.php create mode 100644 lang/vendor/backpack/nl/langfilemanager.php create mode 100644 lang/vendor/backpack/nl/logmanager.php create mode 100644 lang/vendor/backpack/nl/pagemanager.php create mode 100644 lang/vendor/backpack/nl/permissionmanager.php create mode 100644 lang/vendor/backpack/nl/settings.php create mode 100644 lang/vendor/backpack/pt-BR/backup.php create mode 100644 lang/vendor/backpack/pt-BR/base.php create mode 100644 lang/vendor/backpack/pt-BR/crud.php create mode 100644 lang/vendor/backpack/pt-BR/langfilemanager.php create mode 100644 lang/vendor/backpack/pt-BR/logmanager.php create mode 100644 lang/vendor/backpack/pt-BR/pagemanager.php create mode 100644 lang/vendor/backpack/pt-BR/permissionmanager.php create mode 100644 lang/vendor/backpack/pt-BR/settings.php create mode 100644 lang/vendor/backpack/pt/backup.php create mode 100644 lang/vendor/backpack/pt/base.php create mode 100644 lang/vendor/backpack/pt/crud.php create mode 100644 lang/vendor/backpack/pt/langfilemanager.php create mode 100644 lang/vendor/backpack/pt/logmanager.php create mode 100644 lang/vendor/backpack/pt/pagemanager.php create mode 100644 lang/vendor/backpack/pt/permissionmanager.php create mode 100644 lang/vendor/backpack/pt/settings.php create mode 100644 lang/vendor/backpack/pt_br/backup.php create mode 100644 lang/vendor/backpack/pt_br/base.php create mode 100644 lang/vendor/backpack/pt_br/crud.php create mode 100644 lang/vendor/backpack/pt_br/langfilemanager.php create mode 100644 lang/vendor/backpack/pt_br/logmanager.php create mode 100644 lang/vendor/backpack/pt_br/pagemanager.php create mode 100644 lang/vendor/backpack/pt_br/permissionmanager.php create mode 100644 lang/vendor/backpack/pt_br/settings.php create mode 100644 lang/vendor/backpack/ro/backup.php create mode 100644 lang/vendor/backpack/ro/base.php create mode 100644 lang/vendor/backpack/ro/crud.php create mode 100644 lang/vendor/backpack/ro/langfilemanager.php create mode 100644 lang/vendor/backpack/ro/logmanager.php create mode 100644 lang/vendor/backpack/ro/pagemanager.php create mode 100644 lang/vendor/backpack/ro/permissionmanager.php create mode 100644 lang/vendor/backpack/ro/settings.php create mode 100644 lang/vendor/backpack/ru/backup.php create mode 100644 lang/vendor/backpack/ru/base.php create mode 100644 lang/vendor/backpack/ru/crud.php create mode 100644 lang/vendor/backpack/ru/langfilemanager.php create mode 100644 lang/vendor/backpack/ru/logmanager.php create mode 100644 lang/vendor/backpack/ru/pagemanager.php create mode 100644 lang/vendor/backpack/ru/permissionmanager.php create mode 100644 lang/vendor/backpack/ru/settings.php create mode 100644 lang/vendor/backpack/sr/backup.php create mode 100644 lang/vendor/backpack/sr/base.php create mode 100644 lang/vendor/backpack/sr/crud.php create mode 100644 lang/vendor/backpack/sr/langfilemanager.php create mode 100644 lang/vendor/backpack/sr/logmanager.php create mode 100644 lang/vendor/backpack/sr/pagemanager.php create mode 100644 lang/vendor/backpack/sr/permissionmanager.php create mode 100644 lang/vendor/backpack/sr/settings.php create mode 100644 lang/vendor/backpack/th/backup.php create mode 100644 lang/vendor/backpack/th/base.php create mode 100644 lang/vendor/backpack/th/crud.php create mode 100644 lang/vendor/backpack/th/langfilemanager.php create mode 100644 lang/vendor/backpack/th/logmanager.php create mode 100644 lang/vendor/backpack/th/pagemanager.php create mode 100644 lang/vendor/backpack/th/permissionmanager.php create mode 100644 lang/vendor/backpack/th/settings.php create mode 100644 lang/vendor/backpack/tr/crud.php create mode 100644 lang/vendor/backpack/tr/langfilemanager.php create mode 100644 lang/vendor/backpack/uk/backup.php create mode 100644 lang/vendor/backpack/uk/base.php create mode 100644 lang/vendor/backpack/uk/crud.php create mode 100644 lang/vendor/backpack/uk/langfilemanager.php create mode 100644 lang/vendor/backpack/uk/logmanager.php create mode 100644 lang/vendor/backpack/uk/pagemanager.php create mode 100644 lang/vendor/backpack/uk/permissionmanager.php create mode 100644 lang/vendor/backpack/uk/settings.php create mode 100644 lang/vendor/backpack/vi/backup.php create mode 100644 lang/vendor/backpack/vi/base.php create mode 100644 lang/vendor/backpack/vi/crud.php create mode 100644 lang/vendor/backpack/vi/langfilemanager.php create mode 100644 lang/vendor/backpack/vi/logmanager.php create mode 100644 lang/vendor/backpack/vi/pagemanager.php create mode 100644 lang/vendor/backpack/vi/permissionmanager.php create mode 100644 lang/vendor/backpack/vi/settings.php create mode 100644 lang/vendor/backpack/zh-Hant/backup.php create mode 100644 lang/vendor/backpack/zh-Hant/base.php create mode 100644 lang/vendor/backpack/zh-Hant/crud.php create mode 100644 lang/vendor/backpack/zh-Hant/langfilemanager.php create mode 100644 lang/vendor/backpack/zh-Hant/logmanager.php create mode 100644 lang/vendor/backpack/zh-Hant/pagemanager.php create mode 100644 lang/vendor/backpack/zh-Hant/permissionmanager.php create mode 100644 lang/vendor/backpack/zh-Hant/settings.php create mode 100644 lang/vendor/backpack/zh-TW/backup.php create mode 100644 lang/vendor/backpack/zh-TW/base.php create mode 100644 lang/vendor/backpack/zh-TW/crud.php create mode 100644 lang/vendor/backpack/zh-TW/langfilemanager.php create mode 100644 lang/vendor/backpack/zh-TW/logmanager.php create mode 100644 lang/vendor/backpack/zh-TW/pagemanager.php create mode 100644 lang/vendor/backpack/zh-TW/permissionmanager.php create mode 100644 lang/vendor/backpack/zh-TW/settings.php create mode 100644 lang/vendor/backpack/zh-cn/backup.php create mode 100644 lang/vendor/backpack/zh-cn/base.php create mode 100644 lang/vendor/backpack/zh-cn/crud.php create mode 100644 lang/vendor/backpack/zh-cn/langfilemanager.php create mode 100644 lang/vendor/backpack/zh-cn/logmanager.php create mode 100644 lang/vendor/backpack/zh-cn/pagemanager.php create mode 100644 lang/vendor/backpack/zh-cn/permissionmanager.php create mode 100644 lang/vendor/backpack/zh-cn/settings.php create mode 100644 lang/zh-TW.json create mode 100644 lang/zh-TW/auth.php create mode 100644 lang/zh-TW/backend.php create mode 100644 lang/zh-TW/pagination.php create mode 100644 lang/zh-TW/passwords.php create mode 100644 lang/zh-TW/validation.php create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 phpunit.xml create mode 100644 public/.htaccess create mode 100644 public/assets/css/all.min.css create mode 100644 public/assets/css/animate.min.css create mode 100644 public/assets/css/banner.css create mode 100644 public/assets/css/bootstrap.css create mode 100644 public/assets/css/bootstrap.css.map create mode 100644 public/assets/css/bootstrap.min.css create mode 100644 public/assets/css/fonts.css create mode 100644 public/assets/css/footer.css create mode 100644 public/assets/css/header-index.css create mode 100644 public/assets/css/header.css create mode 100644 public/assets/css/index.css create mode 100644 public/assets/css/index1.css create mode 100644 public/assets/css/page.css create mode 100644 public/assets/css/page1.css create mode 100644 public/assets/css/revise.css create mode 100644 public/assets/file/products-documents-a01.pdf create mode 100644 public/assets/file/products-mechanics-a01.pdf create mode 100644 public/assets/file/products-mechanics-a02.stp create mode 100644 public/assets/fonts/flaticon/Flaticon.eot create mode 100644 public/assets/fonts/flaticon/Flaticon.svg create mode 100644 public/assets/fonts/flaticon/Flaticon.ttf create mode 100644 public/assets/fonts/flaticon/Flaticon.woff create mode 100644 public/assets/fonts/flaticon/_flaticon.scss create mode 100644 public/assets/fonts/flaticon/flaticon.css create mode 100644 public/assets/fonts/flaticon/flaticon.html create mode 100644 public/assets/fonts/thin/Thin-Regular.ttf create mode 100644 public/assets/fonts/thin/Thin-Regular.woff create mode 100644 public/assets/fonts/thin/thin-style.html create mode 100644 public/assets/fonts/thin/thin.css create mode 100644 public/assets/fonts/webfonts.zip create mode 100644 public/assets/fonts/webfonts/fa-brands-400.ttf create mode 100644 public/assets/fonts/webfonts/fa-brands-400.woff2 create mode 100644 public/assets/fonts/webfonts/fa-regular-400.ttf create mode 100644 public/assets/fonts/webfonts/fa-regular-400.woff2 create mode 100644 public/assets/fonts/webfonts/fa-solid-900.ttf create mode 100644 public/assets/fonts/webfonts/fa-solid-900.woff2 create mode 100644 public/assets/fonts/webfonts/fa-v4compatibility.ttf create mode 100644 public/assets/fonts/webfonts/fa-v4compatibility.woff2 create mode 100644 public/assets/img/about-a01.jpg create mode 100644 public/assets/img/about-a02.jpg create mode 100644 public/assets/img/about-bg.jpg create mode 100644 public/assets/img/code.jpg create mode 100644 public/assets/img/content-bg.jpg create mode 100644 public/assets/img/download-icon.png create mode 100644 public/assets/img/event-item-a01.jpg create mode 100644 public/assets/img/event-item-a02.jpg create mode 100644 public/assets/img/event-item-a03.jpg create mode 100644 public/assets/img/icon-fb.png create mode 100644 public/assets/img/icon-line.png create mode 100644 public/assets/img/index/about-bg.jpg create mode 100644 public/assets/img/index/about-img.png create mode 100644 public/assets/img/index/about-item-a01.jpg create mode 100644 public/assets/img/index/about-item-a02.jpg create mode 100644 public/assets/img/index/about-item-a03.jpg create mode 100644 public/assets/img/index/about-item-a04.jpg create mode 100644 public/assets/img/index/carousel-item-text.png create mode 100644 public/assets/img/index/carousel-item01.jpg create mode 100644 public/assets/img/index/carousel-item02.jpg create mode 100644 public/assets/img/index/carousel-item03.jpg create mode 100644 public/assets/img/index/carousel-item04.jpg create mode 100644 public/assets/img/index/contact-bg.jpg create mode 100644 public/assets/img/index/data-bg.jpg create mode 100644 public/assets/img/index/data-item-a01.jpg create mode 100644 public/assets/img/index/data-item-a02.jpg create mode 100644 public/assets/img/index/news-a01.jpg create mode 100644 public/assets/img/index/news-a02.jpg create mode 100644 public/assets/img/index/news-bg.jpg create mode 100644 public/assets/img/index/news-item-a01.jpg create mode 100644 public/assets/img/index/news-item-a02.jpg create mode 100644 public/assets/img/index/news-item-a03.jpg create mode 100644 public/assets/img/index/products-item-a01.jpg create mode 100644 public/assets/img/index/products-item-a02.jpg create mode 100644 public/assets/img/index/products-item-a03.jpg create mode 100644 public/assets/img/index/products-item-a04.jpg create mode 100644 public/assets/img/index/products_bg.jpg create mode 100644 public/assets/img/index/rd-navbar-bg.jpg create mode 100644 public/assets/img/index/service-img.jpg create mode 100644 public/assets/img/line-pic.jpg create mode 100644 public/assets/img/loading.gif create mode 100644 public/assets/img/logo.png create mode 100644 public/assets/img/logo2.png create mode 100644 public/assets/img/magnifier.png create mode 100644 public/assets/img/news-item-a01.jpg create mode 100644 public/assets/img/news-item-a02.jpg create mode 100644 public/assets/img/news-item-a03.jpg create mode 100644 public/assets/img/news-item-a04.jpg create mode 100644 public/assets/img/page-banner1.jpg create mode 100644 public/assets/img/page-banner2.jpg create mode 100644 public/assets/img/page-banner3.jpg create mode 100644 public/assets/img/page-banner4.jpg create mode 100644 public/assets/img/page-banner5.jpg create mode 100644 public/assets/img/page-banner6.jpg create mode 100644 public/assets/img/page-banner7.jpg create mode 100644 public/assets/img/page-banner8.jpg create mode 100644 public/assets/img/page-banner9.jpg create mode 100644 public/assets/img/products-item-a01.jpg create mode 100644 public/assets/img/products-item-a02.jpg create mode 100644 public/assets/img/products-item-a03.jpg create mode 100644 public/assets/img/sidebar/sidebar_buy.png create mode 100644 public/assets/img/sidebar/sidebar_cart.png create mode 100644 public/assets/img/sidebar/sidebar_cart_add.png create mode 100644 public/assets/img/sidebar/sidebar_fb.png create mode 100644 public/assets/img/sidebar/sidebar_home.png create mode 100644 public/assets/img/sidebar/sidebar_line.png create mode 100644 public/assets/img/sidebar/sidebar_map.png create mode 100644 public/assets/img/sidebar/sidebar_member.png create mode 100644 public/assets/img/sidebar/sidebar_menu.png create mode 100644 public/assets/img/sidebar/sidebar_messenger.png create mode 100644 public/assets/img/sidebar/sidebar_order.png create mode 100644 public/assets/img/sidebar/sidebar_phone.png create mode 100644 public/assets/img/support-03-a01.png create mode 100644 public/assets/img/support-03-a02.png create mode 100644 public/assets/img/support-03-a03.png create mode 100644 public/assets/img/support-03-a04.png create mode 100644 public/assets/img/support-03-a05.png create mode 100644 public/assets/img/support-03-a06.png create mode 100644 public/assets/img/support-03-a07.png create mode 100644 public/assets/js/aos/aos.css create mode 100644 public/assets/js/aos/aos.js create mode 100644 public/assets/js/bootstrap/bootstrap.min.js create mode 100644 public/assets/js/bootstrap/bootstrap.min.js.map create mode 100644 public/assets/js/bootstrap/popper.min.js create mode 100644 public/assets/js/bootstrap/popper.min.js.map create mode 100644 public/assets/js/fancybox/jquery.fancybox.min.css create mode 100644 public/assets/js/fancybox/jquery.fancybox.min.js create mode 100644 public/assets/js/fullpage/examples.css create mode 100644 public/assets/js/fullpage/examples.js create mode 100644 public/assets/js/fullpage/fullpage.css create mode 100644 public/assets/js/fullpage/fullpage.js create mode 100644 public/assets/js/include.js create mode 100644 public/assets/js/jquery.min.js create mode 100644 public/assets/js/lazyload.min.js create mode 100644 public/assets/js/rd-navbar/jquery.rd-navbar.css create mode 100644 public/assets/js/rd-navbar/jquery.rd-navbar.js create mode 100644 public/assets/js/rd-navbar/jquery.rd-navbar.min.js create mode 100644 public/assets/js/rd-navbar/rd-navbar.js create mode 100644 public/assets/js/script.js create mode 100644 public/assets/js/scrollUp/css/image.css create mode 100644 public/assets/js/scrollUp/css/link.css create mode 100644 public/assets/js/scrollUp/css/pill.css create mode 100644 public/assets/js/scrollUp/css/tab.css create mode 100644 public/assets/js/scrollUp/jquery.scrollUp.js create mode 100644 public/assets/js/scrollUp/top.png create mode 100644 public/assets/js/slick/ajax-loader.gif create mode 100644 public/assets/js/slick/config.rb create mode 100644 public/assets/js/slick/fonts/slick.eot create mode 100644 public/assets/js/slick/fonts/slick.svg create mode 100644 public/assets/js/slick/fonts/slick.ttf create mode 100644 public/assets/js/slick/fonts/slick.woff create mode 100644 public/assets/js/slick/next.png create mode 100644 public/assets/js/slick/next1.png create mode 100644 public/assets/js/slick/next2.png create mode 100644 public/assets/js/slick/next3.png create mode 100644 public/assets/js/slick/next4.png create mode 100644 public/assets/js/slick/prev.png create mode 100644 public/assets/js/slick/prev1.png create mode 100644 public/assets/js/slick/prev2.png create mode 100644 public/assets/js/slick/prev3.png create mode 100644 public/assets/js/slick/prev4.png create mode 100644 public/assets/js/slick/slick-theme.css create mode 100644 public/assets/js/slick/slick-theme.less create mode 100644 public/assets/js/slick/slick-theme.scss create mode 100644 public/assets/js/slick/slick-theme1.css create mode 100644 public/assets/js/slick/slick.css create mode 100644 public/assets/js/slick/slick.js create mode 100644 public/assets/js/slick/slick.less create mode 100644 public/assets/js/slick/slick.min.js create mode 100644 public/assets/js/slick/slick.scss create mode 100644 public/favico.ico create mode 100644 public/favicon.ico create mode 100644 public/index.php create mode 100644 public/robots.txt create mode 100644 resources/css/app.css create mode 100644 resources/js/app.js create mode 100644 resources/js/bootstrap.js create mode 100644 resources/views/about.blade.php create mode 100644 resources/views/components/heading_navbar.blade.php create mode 100644 resources/views/events.blade.php create mode 100644 resources/views/events_detail.blade.php create mode 100644 resources/views/home.blade.php create mode 100644 resources/views/layouts/heading-home.blade.php create mode 100644 resources/views/layouts/heading-page.blade.php create mode 100644 resources/views/layouts/master.blade.php create mode 100644 resources/views/news.blade.php create mode 100644 resources/views/news_detail.blade.php create mode 100644 resources/views/products.blade.php create mode 100644 resources/views/products_detail.blade.php create mode 100644 resources/views/support-distribution-partners.blade.php create mode 100644 resources/views/support-ecosystem-partners.blade.php create mode 100644 resources/views/support-sales-inquiry.blade.php create mode 100644 resources/views/support-technical.blade.php create mode 100644 resources/views/vendor/backpack/ui/inc/menu_items.blade.php create mode 100644 resources/views/vendor/cookie-consent/dialogContents.blade.php create mode 100644 resources/views/vendor/cookie-consent/index.blade.php create mode 100644 resources/views/vendor/elfinder/ckeditor4.blade.php create mode 100644 resources/views/vendor/elfinder/ckeditor4.php create mode 100644 resources/views/vendor/elfinder/common_scripts.blade.php create mode 100644 resources/views/vendor/elfinder/common_styles.blade.php create mode 100644 resources/views/vendor/elfinder/elfinder.blade.php create mode 100644 resources/views/vendor/elfinder/elfinder.php create mode 100644 resources/views/vendor/elfinder/filepicker.blade.php create mode 100644 resources/views/vendor/elfinder/filepicker.php create mode 100644 resources/views/vendor/elfinder/standalonepopup.blade.php create mode 100644 resources/views/vendor/elfinder/standalonepopup.php create mode 100644 resources/views/vendor/elfinder/tinymce.blade.php create mode 100644 resources/views/vendor/elfinder/tinymce.php create mode 100644 resources/views/vendor/elfinder/tinymce4.blade.php create mode 100644 resources/views/vendor/elfinder/tinymce4.php create mode 100644 resources/views/vendor/elfinder/tinymce5.blade.php create mode 100644 resources/views/vendor/elfinder/tinymce5.php create mode 100644 resources/views/welcome.blade.php create mode 100644 routes/api.php create mode 100644 routes/backpack/custom.php create mode 100644 routes/channels.php create mode 100644 routes/console.php create mode 100644 routes/web.php create mode 120000 run_artisan create mode 120000 run_composer create mode 120000 run_npm create mode 120000 run_npx create mode 120000 run_php create mode 120000 run_yarn create mode 100644 ssl_cert.pem create mode 100644 ssl_key.pem create mode 100644 storage/app/.gitignore create mode 100644 storage/app/public/.gitignore create mode 100644 storage/framework/.gitignore create mode 100644 storage/framework/cache/.gitignore create mode 100644 storage/framework/cache/data/.gitignore create mode 100644 storage/framework/sessions/.gitignore create mode 100644 storage/framework/testing/.gitignore create mode 100644 storage/framework/views/.gitignore create mode 100644 storage/logs/.gitignore create mode 100644 tests/CreatesApplication.php create mode 100644 tests/Feature/ExampleTest.php create mode 100644 tests/TestCase.php create mode 100644 tests/Unit/ExampleTest.php create mode 100644 vite.config.js diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..8f0de65 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,18 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false + +[*.{yml,yaml}] +indent_size = 2 + +[docker-compose.yml] +indent_size = 4 diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..0cbe98c --- /dev/null +++ b/.env.example @@ -0,0 +1,61 @@ +APP_NAME=Laravel +APP_ENV=local +APP_KEY=base64:Fm7KoD+NfXaxQJwuqrGIf9VPJtTl+zLr3GFfnjeWrig= +APP_DEBUG=true +APP_URL=http://coreality-inc.awesome-tech.com.tw + +LOG_CHANNEL=stack +LOG_DEPRECATIONS_CHANNEL=null +LOG_LEVEL=debug + +DB_CONNECTION=mysql +DB_HOST=mysql5.7 +DB_PORT=3306 +DB_DATABASE=laravel +DB_USERNAME=root +DB_PASSWORD=secret + +BROADCAST_DRIVER=log +CACHE_DRIVER=file +FILESYSTEM_DISK=local +QUEUE_CONNECTION=sync +SESSION_DRIVER=file +SESSION_LIFETIME=120 + +MEMCACHED_HOST=127.0.0.1 + +REDIS_HOST=redis6 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_MAILER=smtp +MAIL_HOST=mailpit +MAIL_PORT=1025 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_ENCRYPTION=null +MAIL_FROM_ADDRESS="hello@example.com" +MAIL_FROM_NAME="${APP_NAME}" + +AWS_ACCESS_KEY_ID= +AWS_SECRET_ACCESS_KEY= +AWS_DEFAULT_REGION=us-east-1 +AWS_BUCKET= +AWS_USE_PATH_STYLE_ENDPOINT=false + +PUSHER_APP_ID= +PUSHER_APP_KEY= +PUSHER_APP_SECRET= +PUSHER_HOST= +PUSHER_PORT=443 +PUSHER_SCHEME=https +PUSHER_APP_CLUSTER=mt1 + +VITE_APP_NAME="${APP_NAME}" +VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}" +VITE_PUSHER_HOST="${PUSHER_HOST}" +VITE_PUSHER_PORT="${PUSHER_PORT}" +VITE_PUSHER_SCHEME="${PUSHER_SCHEME}" +VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" +# SYSTEM PHP VERSION +SYS_PHP_VER=8.1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..fcb21d3 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,11 @@ +* text=auto eol=lf + +*.blade.php diff=html +*.css diff=css +*.html diff=html +*.md diff=markdown +*.php diff=php + +/.github export-ignore +CHANGELOG.md export-ignore +.styleci.yml export-ignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7fe978f --- /dev/null +++ b/.gitignore @@ -0,0 +1,19 @@ +/.phpunit.cache +/node_modules +/public/build +/public/hot +/public/storage +/storage/*.key +/vendor +.env +.env.backup +.env.production +.phpunit.result.cache +Homestead.json +Homestead.yaml +auth.json +npm-debug.log +yarn-error.log +/.fleet +/.idea +/.vscode diff --git a/README.md b/README.md new file mode 100644 index 0000000..1a4c26b --- /dev/null +++ b/README.md @@ -0,0 +1,66 @@ +

Laravel Logo

+ +

+Build Status +Total Downloads +Latest Stable Version +License +

+ +## About Laravel + +Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as: + +- [Simple, fast routing engine](https://laravel.com/docs/routing). +- [Powerful dependency injection container](https://laravel.com/docs/container). +- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage. +- Expressive, intuitive [database ORM](https://laravel.com/docs/eloquent). +- Database agnostic [schema migrations](https://laravel.com/docs/migrations). +- [Robust background job processing](https://laravel.com/docs/queues). +- [Real-time event broadcasting](https://laravel.com/docs/broadcasting). + +Laravel is accessible, powerful, and provides tools required for large, robust applications. + +## Learning Laravel + +Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework. + +You may also try the [Laravel Bootcamp](https://bootcamp.laravel.com), where you will be guided through building a modern Laravel application from scratch. + +If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Laracasts contains thousands of video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library. + +## Laravel Sponsors + +We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the [Laravel Partners program](https://partners.laravel.com). + +### Premium Partners + +- **[Vehikl](https://vehikl.com/)** +- **[Tighten Co.](https://tighten.co)** +- **[WebReinvent](https://webreinvent.com/)** +- **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)** +- **[64 Robots](https://64robots.com)** +- **[Curotec](https://www.curotec.com/services/technologies/laravel/)** +- **[Cyber-Duck](https://cyber-duck.co.uk)** +- **[DevSquad](https://devsquad.com/hire-laravel-developers)** +- **[Jump24](https://jump24.co.uk)** +- **[Redberry](https://redberry.international/laravel/)** +- **[Active Logic](https://activelogic.com)** +- **[byte5](https://byte5.de)** +- **[OP.GG](https://op.gg)** + +## Contributing + +Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions). + +## Code of Conduct + +In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct). + +## Security Vulnerabilities + +If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [taylor@laravel.com](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed. + +## License + +The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT). diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php new file mode 100644 index 0000000..e6b9960 --- /dev/null +++ b/app/Console/Kernel.php @@ -0,0 +1,27 @@ +command('inspire')->hourly(); + } + + /** + * Register the commands for the application. + */ + protected function commands(): void + { + $this->load(__DIR__.'/Commands'); + + require base_path('routes/console.php'); + } +} diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php new file mode 100644 index 0000000..56af264 --- /dev/null +++ b/app/Exceptions/Handler.php @@ -0,0 +1,30 @@ + + */ + protected $dontFlash = [ + 'current_password', + 'password', + 'password_confirmation', + ]; + + /** + * Register the exception handling callbacks for the application. + */ + public function register(): void + { + $this->reportable(function (Throwable $e) { + // + }); + } +} diff --git a/app/Http/Controllers/AboutController.php b/app/Http/Controllers/AboutController.php new file mode 100644 index 0000000..3fe31e3 --- /dev/null +++ b/app/Http/Controllers/AboutController.php @@ -0,0 +1,13 @@ +crud->getRequest()->has('order')){ + $this->crud->orderBy('lft', 'asc')->orderBy('id', 'desc'); + } + + CRUD::addColumn('#'); + CRUD::column('is_front_show')->label(trans('backend.columnName.is_front_show'))->type('checkbox'); + CRUD::column('name')->label(trans('backend.columnName.name'))->type('textarea_nl2br')->escaped(false)->searchLogic('text'); + + } + + /** + * Define what happens when the Create operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-create + * @return void + */ + protected function setupCreateOperation() + { + CRUD::setValidation(EventCatalogRequest::class); + CRUD::addFields([ + [ + 'name' => 'is_front_show', + 'label' => trans('backend.columnName.is_front_show'), + 'type' => 'boolean', + 'default' => true, + ], + [ + 'name' => 'name', + 'lable' => 'Name', + 'type' => 'text', + ], + ]); + } + + /** + * Define what happens when the Update operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-update + * @return void + */ + protected function setupUpdateOperation() + { + $this->setupCreateOperation(); + } +} diff --git a/app/Http/Controllers/Admin/EventCrudController.php b/app/Http/Controllers/Admin/EventCrudController.php new file mode 100644 index 0000000..cfe4fc0 --- /dev/null +++ b/app/Http/Controllers/Admin/EventCrudController.php @@ -0,0 +1,156 @@ +crud->addColumns([ + [ + 'name' => 'post_at', + 'label' => trans('backend.columnName.post_at'), + 'type' => 'datetime', + 'format' => 'YYYY/MM/DD HH:mm:SS', + ], + [ + 'name' => 'is_front_show', + 'label' => trans('backend.columnName.is_front_show'), + 'type' => 'checkbox' + ], + [ + 'name' => 'title', + 'label' => trans('backend.columnName.title'), + 'type' => 'text' + ] + ]); + } + + /** + * Define what happens when the Create operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-create + * @return void + */ + protected function setupCreateOperation() + { + CRUD::setValidation(EventRequest::class); + $this->crud->addFields([ + [ + 'name' => 'event_catalog_id', + 'label' => trans('backend.columnName.catalog'), + 'type' => 'select2_nested', + 'entity' => 'eventCatalog', + 'attribute' => 'name', + 'model' => 'App\Models\EventCatalog', + ], + [ + 'name' => 'post_at', + 'label' => trans('backend.columnName.post_at'), + 'type' => 'datetime', + 'format' => 'YYYY/MM/DD HH:mm:SS', + ], + [ + 'name' => 'is_front_show', + 'label' => trans('backend.columnName.is_front_show'), + 'type' => 'boolean' + ], + [ + 'name' => 'title', + 'label' => trans('backend.columnName.title'), + 'type' => 'text' + ], + [ + 'name' => 'photos', + 'label' => trans('backend.columnName.cover'), + 'type' => 'upload_img_multiple', + 'upload' => true, + 'disk' => 'public', + 'hint' => '', + 'qty' => 1, // 0=no limit, >0=limit + 'showSingleChoise' => '0', // 0=hidden, 1=show(default) + 'showComment' => '0', // 0=hidden, 1=show(default) + ], + [ + 'name' => 'venue', + 'label' => trans('backend.columnName.venue'), + 'type' => 'text' + ], + [ + 'name' => 'contact', + 'label' => trans('backend.columnName.contact'), + 'type' => 'text' + ], + [ + 'name' => 'body', + 'lable' => trans('backend.columnName.body'), + 'type' => 'tinymce', + // optional overwrite of the configuration array + 'options' => [ + //'selector' => 'textarea.tinymce', + //'skin' => 'dick-light', + 'plugins' => 'lists advlist image link media anchor table hr imagetools importcss insertdatetime paste searchreplace textcolor textpattern help', + 'menubar' => 'edit insert view format help', + 'toolbar' => 'undo redo bold italic alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | table image media link', + 'language' => str_replace('-', '_', app()->getLocale()), + 'height' => '500px', + ], + ], + + [ + 'name' => 'seo_keyword', + 'label' => trans('backend.columnName.seo_keyword'), + 'type' => 'text' + ], + [ + 'name' => 'seo_description', + 'label' => trans('backend.columnName.seo_description'), + 'type' => 'textarea' + ], + ]); + } + + /** + * Define what happens when the Update operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-update + * @return void + */ + protected function setupUpdateOperation() + { + $this->setupCreateOperation(); + } +} diff --git a/app/Http/Controllers/Admin/HomeCarouselCrudController.php b/app/Http/Controllers/Admin/HomeCarouselCrudController.php new file mode 100644 index 0000000..5978f83 --- /dev/null +++ b/app/Http/Controllers/Admin/HomeCarouselCrudController.php @@ -0,0 +1,123 @@ +crud->getRequest()->has('order')){ + $this->crud->orderBy('lft', 'asc')->orderBy('id', 'desc'); + } + + $this->crud->addColumns([ + [ + 'name' => 'is_front_show', + 'label' => trans('backend.columnName.is_front_show'), + 'type' => 'checkbox' + ], + [ + 'name' => 'title', + 'label' => trans('backend.columnName.title'), + 'type' => 'text' + ] + ]); + } + + /** + * Define what happens when the Create operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-create + * @return void + */ + protected function setupCreateOperation() + { + CRUD::setValidation(HomeCarouselRequest::class); + CRUD::addFields([ + [ + 'name' => 'is_front_show', + 'label' => trans('backend.columnName.is_front_show'), + 'type' => 'boolean', + 'default' => true, + ], + [ + 'name' => 'title', + 'label' => trans('backend.columnName.title'), + 'type' => 'text' + ], + [ + 'name' => 'body', + 'label' => trans('backend.columnName.body'), + 'type' => 'textarea' + ], + [ + 'name' => 'link', + 'label' => trans('backend.columnName.link'), + 'type' => 'text' + ], + [ + 'name' => 'photos', + 'label' => trans('backend.columnName.cover'), + 'type' => 'upload_img_multiple', + 'upload' => true, + 'disk' => 'public', + 'hint' => '', + 'qty' => 1, // 0=no limit, >0=limit + 'showSingleChoise' => '0', // 0=hidden, 1=show(default) + 'showComment' => '0', // 0=hidden, 1=show(default) + ], + ]); + } + + /** + * Define what happens when the Update operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-update + * @return void + */ + protected function setupUpdateOperation() + { + $this->setupCreateOperation(); + } +} diff --git a/app/Http/Controllers/Admin/NewsCatalogCrudController.php b/app/Http/Controllers/Admin/NewsCatalogCrudController.php new file mode 100644 index 0000000..2c54dea --- /dev/null +++ b/app/Http/Controllers/Admin/NewsCatalogCrudController.php @@ -0,0 +1,93 @@ +crud->getRequest()->has('order')){ + $this->crud->orderBy('lft', 'asc')->orderBy('id', 'desc'); + } + + CRUD::addColumn('#'); + CRUD::column('is_front_show')->label(trans('backend.columnName.is_front_show'))->type('checkbox'); + CRUD::column('name')->label(trans('backend.columnName.name'))->type('textarea_nl2br')->escaped(false)->searchLogic('text'); + + } + + /** + * Define what happens when the Create operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-create + * @return void + */ + protected function setupCreateOperation() + { + CRUD::setValidation(NewsCatalogRequest::class); + CRUD::addFields([ + [ + 'name' => 'is_front_show', + 'label' => trans('backend.columnName.is_front_show'), + 'type' => 'boolean', + 'default' => true, + ], + [ + 'name' => 'name', + 'lable' => 'Name', + 'type' => 'text', + ], + ]); + } + + /** + * Define what happens when the Update operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-update + * @return void + */ + protected function setupUpdateOperation() + { + $this->setupCreateOperation(); + } +} diff --git a/app/Http/Controllers/Admin/NewsCrudController.php b/app/Http/Controllers/Admin/NewsCrudController.php new file mode 100644 index 0000000..671bf70 --- /dev/null +++ b/app/Http/Controllers/Admin/NewsCrudController.php @@ -0,0 +1,155 @@ +crud->addColumns([ + [ + 'name' => 'post_at', + 'label' => trans('backend.columnName.post_at'), + 'type' => 'datetime', + 'format' => 'YYYY/MM/DD HH:mm:SS', + ], + [ + 'name' => 'is_front_show', + 'label' => trans('backend.columnName.is_front_show'), + 'type' => 'checkbox' + ], + [ + 'name' => 'title', + 'label' => trans('backend.columnName.title'), + 'type' => 'text' + ] + ]); + } + + /** + * Define what happens when the Create operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-create + * @return void + */ + protected function setupCreateOperation() + { + CRUD::setValidation(NewsRequest::class); + $this->crud->addFields([ + [ + 'name' => 'news_catalog_id', + 'label' => trans('backend.columnName.catalog'), + 'type' => 'select2_nested', + 'entity' => 'newsCatalog', + 'attribute' => 'name', + 'model' => 'App\Models\NewsCatalog', + ], + [ + 'name' => 'post_at', + 'label' => trans('backend.columnName.post_at'), + 'type' => 'datetime', + 'format' => 'YYYY/MM/DD HH:mm:SS', + ], + [ + 'name' => 'is_front_show', + 'label' => trans('backend.columnName.is_front_show'), + 'type' => 'boolean' + ], + [ + 'name' => 'title', + 'label' => trans('backend.columnName.title'), + 'type' => 'text' + ], + [ + 'name' => 'photos', + 'label' => trans('backend.columnName.cover'), + 'type' => 'upload_img_multiple', + 'upload' => true, + 'disk' => 'public', + 'hint' => '', + 'qty' => 1, // 0=no limit, >0=limit + 'showSingleChoise' => '0', // 0=hidden, 1=show(default) + 'showComment' => '0', // 0=hidden, 1=show(default) + ], + [ + 'name' => 'description', + 'label' => trans('backend.columnName.description'), + 'type' => 'textarea' + ], + [ + 'name' => 'body', + 'lable' => trans('backend.columnName.body'), + 'type' => 'tinymce', + // optional overwrite of the configuration array + 'options' => [ + //'selector' => 'textarea.tinymce', + //'skin' => 'dick-light', + 'plugins' => 'lists advlist image link media anchor table hr imagetools importcss insertdatetime paste searchreplace textcolor textpattern help', + 'menubar' => 'edit insert view format help', + 'toolbar' => 'undo redo bold italic alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | table image media link', + 'language' => str_replace('-', '_', app()->getLocale()), + 'height' => '500px', + ], + ], + [ + 'name' => 'source_links', + 'lable' => 'Source Links', + 'type' => 'key_val_multiple', + ], + [ + 'name' => 'seo_keyword', + 'label' => trans('backend.columnName.seo_keyword'), + 'type' => 'text' + ], + [ + 'name' => 'seo_description', + 'label' => trans('backend.columnName.seo_description'), + 'type' => 'textarea' + ], + ]); + } + + /** + * Define what happens when the Update operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-update + * @return void + */ + protected function setupUpdateOperation() + { + $this->setupCreateOperation(); + } +} diff --git a/app/Http/Controllers/Admin/PermissionCrudController.php b/app/Http/Controllers/Admin/PermissionCrudController.php new file mode 100644 index 0000000..c42351a --- /dev/null +++ b/app/Http/Controllers/Admin/PermissionCrudController.php @@ -0,0 +1,75 @@ +addFields(); + $this->crud->setValidation(StoreRequest::class); + + //otherwise, changes won't have effect + \Cache::forget('spatie.permission.cache'); + } + + public function setupUpdateOperation() + { + $this->addFields(); + $this->crud->setValidation(UpdateRequest::class); + + //otherwise, changes won't have effect + \Cache::forget('spatie.permission.cache'); + } + + private function addFields() + { + $this->crud->addField([ + 'name' => 'slug', + 'label' => 'Slug', + 'type' => 'text', + ]); + + $this->crud->addField([ + 'name' => 'name', + 'label' => trans('backpack::permissionmanager.name'), + 'type' => 'text', + ]); + + if (config('backpack.permissionmanager.multiple_guards')) { + $this->crud->addField([ + 'name' => 'guard_name', + 'label' => trans('backpack::permissionmanager.guard_type'), + 'type' => 'select_from_array', + 'options' => $this->getGuardTypes(), + ]); + } + } + + /* + * Get an array list of all available guard types + * that have been defined in app/config/auth.php + * + * @return array + **/ + private function getGuardTypes() + { + $guards = config('auth.guards'); + + $returnable = []; + foreach ($guards as $key => $details) { + $returnable[$key] = $key; + } + + return $returnable; + } +} diff --git a/app/Http/Controllers/Admin/ProductApplicationCrudController.php b/app/Http/Controllers/Admin/ProductApplicationCrudController.php new file mode 100644 index 0000000..4d24a59 --- /dev/null +++ b/app/Http/Controllers/Admin/ProductApplicationCrudController.php @@ -0,0 +1,99 @@ +crud->getRequest()->has('order')){ + $this->crud->orderBy('lft', 'asc')->orderBy('id', 'desc'); + } + + CRUD::addColumn('#'); + CRUD::column('is_front_show')->label(trans('backend.columnName.is_front_show'))->type('checkbox'); + CRUD::column('slug')->label(trans('backend.columnName.slug'))->type('textarea_nl2br')->escaped(false)->searchLogic('text'); + CRUD::column('name')->label(trans('backend.columnName.name'))->type('textarea_nl2br')->escaped(false)->searchLogic('text'); + + } + + /** + * Define what happens when the Create operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-create + * @return void + */ + protected function setupCreateOperation() + { + CRUD::setValidation(ProductApplicationRequest::class); + CRUD::addFields([ + [ + 'name' => 'is_front_show', + 'label' => trans('backend.columnName.is_front_show'), + 'type' => 'boolean', + 'default' => true, + ], + [ + 'name' => 'slug', + 'lable' => trans('backend.columnName.slug'), + 'type' => 'text', + ], + [ + 'name' => 'name', + 'lable' => trans('backend.columnName.name'), + 'type' => 'text', + ], + ]); + } + + /** + * Define what happens when the Update operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-update + * @return void + */ + protected function setupUpdateOperation() + { + $this->setupCreateOperation(); + } +} diff --git a/app/Http/Controllers/Admin/ProductCatalogCrudController.php b/app/Http/Controllers/Admin/ProductCatalogCrudController.php new file mode 100644 index 0000000..11758f6 --- /dev/null +++ b/app/Http/Controllers/Admin/ProductCatalogCrudController.php @@ -0,0 +1,99 @@ +crud->getRequest()->has('order')){ + $this->crud->orderBy('lft', 'asc')->orderBy('id', 'desc'); + } + + CRUD::addColumn('#'); + CRUD::column('is_front_show')->label(trans('backend.columnName.is_front_show'))->type('checkbox'); + CRUD::column('slug')->label(trans('backend.columnName.slug'))->type('textarea_nl2br')->escaped(false)->searchLogic('text'); + CRUD::column('name')->label(trans('backend.columnName.name'))->type('textarea_nl2br')->escaped(false)->searchLogic('text'); + + } + + /** + * Define what happens when the Create operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-create + * @return void + */ + protected function setupCreateOperation() + { + CRUD::setValidation(ProductCatalogRequest::class); + CRUD::addFields([ + [ + 'name' => 'is_front_show', + 'label' => trans('backend.columnName.is_front_show'), + 'type' => 'boolean', + 'default' => true, + ], + [ + 'name' => 'slug', + 'lable' => trans('backend.columnName.slug'), + 'type' => 'text', + ], + [ + 'name' => 'name', + 'lable' => trans('backend.columnName.name'), + 'type' => 'text', + ], + ]); + } + + /** + * Define what happens when the Update operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-update + * @return void + */ + protected function setupUpdateOperation() + { + $this->setupCreateOperation(); + } +} diff --git a/app/Http/Controllers/Admin/ProductCrudController.php b/app/Http/Controllers/Admin/ProductCrudController.php new file mode 100644 index 0000000..8e154be --- /dev/null +++ b/app/Http/Controllers/Admin/ProductCrudController.php @@ -0,0 +1,233 @@ +crud->addColumns([ + [ + 'name' => 'product_catalog_id', + 'label' => trans('backend.columnName.catalog'), + 'type' => 'select', + 'entity' => 'productCatalog', + 'attribute' => 'name', + 'model' => 'App\Models\ProductCatalog', + ], + [ + 'name' => 'title', + 'label' => trans('backend.columnName.title'), + 'type' => 'text' + ], + [ + 'name' => 'is_front_show', + 'label' => trans('backend.columnName.is_front_show'), + 'type' => 'checkbox' + ], + [ + 'name' => 'tip', + 'label' => trans('backend.columnName.tip'), + 'type' => 'select_from_array', + 'options' => [ + 'none' => trans('backend.product.tip_options.none'), + 'new' => trans('backend.product.tip_options.new'), + 'on_sale' => trans('backend.product.tip_options.on_sale'), + ], + ], + [ + 'name' => 'description', + 'label' => trans('backend.columnName.description'), + 'type' => 'text' + ], + ]); + + $this->crud->addFilter( + [ + 'name' => 'product_catalog_id', + 'type' => 'dropdown', + 'label' => trans('backend.columnName.catalog'), + ], + \App\Models\ProductCatalog::all()->pluck('name', 'id')->toArray(), + function ($value) { // if the filter is active + $this->crud->addClause('whereHas', 'productCatalog', function ($query) use ($value) { + $query->where('product_catalog_id', '=', $value); + }); + } + ); + } + + /** + * Define what happens when the Create operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-create + * @return void + */ + protected function setupCreateOperation() + { + CRUD::setValidation(ProductRequest::class); + $this->crud->addFields([ + [ + 'name' => 'product_catalog_id', + 'label' => trans('backend.columnName.catalog'), + 'type' => 'select2_nested', + 'entity' => 'productCatalog', + 'attribute' => 'name', + 'model' => 'App\Models\ProductCatalog', + ], + [ + 'name' => 'productApplications', + 'label' => trans('backend.columnName.application'), + 'type' => 'select2_multiple', + 'entity' => 'productApplications', + 'attribute' => 'name', + 'model' => 'App\Models\ProductApplication', + 'pivot' => true, + 'allows_null' => true, + 'select_all' => true, + ], + [ + 'name' => 'slug', + 'lable' => trans('backend.columnName.slug'), + 'type' => 'text', + ], + [ + 'name' => 'title', + 'label' => trans('backend.columnName.title'), + 'type' => 'text' + ], + [ + 'name' => 'is_front_show', + 'label' => trans('backend.columnName.is_front_show'), + 'type' => 'boolean' + ], + [ + 'name' => 'tip', + 'label' => trans('backend.columnName.tip'), + 'type' => 'select2_from_array', + 'options' => [ + 'none' => trans('backend.product.tip_options.none'), + 'new' => trans('backend.product.tip_options.new'), + 'on_sale' => trans('backend.product.tip_options.on_sale'), + ], + ], + [ + 'name' => 'photos', + 'label' => trans('backend.columnName.photos'), + 'type' => 'upload_img_multiple', + 'upload' => true, + 'disk' => 'public', + 'hint' => '', + 'qty' => 0, // 0=no limit, >0=limit + 'showSingleChoise' => '1', // 0=hidden, 1=show(default) + 'showComment' => '1', // 0=hidden, 1=show(default) + ], + [ + 'name' => 'description', + 'label' => trans('backend.columnName.description'), + 'type' => 'textarea' + ], + [ + 'name' => 'body', + 'lable' => trans('backend.columnName.body'), + 'type' => 'tinymce', + // optional overwrite of the configuration array + 'options' => [ + //'selector' => 'textarea.tinymce', + //'skin' => 'dick-light', + 'plugins' => 'lists advlist image link media anchor table hr imagetools importcss insertdatetime paste searchreplace textcolor textpattern help', + 'menubar' => 'edit insert view format help', + 'toolbar' => 'undo redo bold italic alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | table image media link', + 'language' => str_replace('-', '_', app()->getLocale()), + 'height' => '500px', + ], + ], + [ + 'name' => 'feature_overview', + 'lable' => trans('backend.columnName.feature_overview'), + 'type' => 'tinymce', + // optional overwrite of the configuration array + 'options' => [ + //'selector' => 'textarea.tinymce', + //'skin' => 'dick-light', + 'plugins' => 'lists advlist image link media anchor table hr imagetools importcss insertdatetime paste searchreplace textcolor textpattern help', + 'menubar' => 'edit insert view format help', + 'toolbar' => 'undo redo bold italic alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | table image media link', + 'language' => str_replace('-', '_', app()->getLocale()), + 'height' => '500px', + ], + ], + + [ + 'name' => 'feature_spec', + 'lable' => trans('backend.columnName.feature_spec'), + 'type' => 'tinymce', + // optional overwrite of the configuration array + 'options' => [ + //'selector' => 'textarea.tinymce', + //'skin' => 'dick-light', + 'plugins' => 'lists advlist image link media anchor table hr imagetools importcss insertdatetime paste searchreplace textcolor textpattern help', + 'menubar' => 'edit insert view format help', + 'toolbar' => 'undo redo bold italic alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | table image media link', + 'language' => str_replace('-', '_', app()->getLocale()), + 'height' => '500px', + ], + ], + + [ + 'name' => 'seo_keyword', + 'label' => trans('backend.columnName.seo_keyword'), + 'type' => 'text' + ], + [ + 'name' => 'seo_description', + 'label' => trans('backend.columnName.seo_description'), + 'type' => 'textarea' + ], + ]); + } + + /** + * Define what happens when the Update operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-update + * @return void + */ + protected function setupUpdateOperation() + { + $this->setupCreateOperation(); + } +} diff --git a/app/Http/Controllers/Admin/RoleCrudController.php b/app/Http/Controllers/Admin/RoleCrudController.php new file mode 100644 index 0000000..59ee30f --- /dev/null +++ b/app/Http/Controllers/Admin/RoleCrudController.php @@ -0,0 +1,85 @@ +addFields(); + $this->crud->setValidation(StoreRequest::class); + + //otherwise, changes won't have effect + \Cache::forget('spatie.permission.cache'); + } + + public function setupUpdateOperation() + { + $this->addFields(); + $this->crud->setValidation(UpdateRequest::class); + + //otherwise, changes won't have effect + \Cache::forget('spatie.permission.cache'); + } + + private function addFields() + { + $this->crud->addField([ + 'name' => 'slug', + 'label' => 'Slug', + 'type' => 'text', + ]); + + $this->crud->addField([ + 'name' => 'name', + 'label' => trans('backpack::permissionmanager.name'), + 'type' => 'text', + ]); + + if (config('backpack.permissionmanager.multiple_guards')) { + $this->crud->addField([ + 'name' => 'guard_name', + 'label' => trans('backpack::permissionmanager.guard_type'), + 'type' => 'select_from_array', + 'options' => $this->getGuardTypes(), + ]); + } + + $this->crud->addField([ + 'label' => mb_ucfirst(trans('backpack::permissionmanager.permission_plural')), + 'type' => 'checklist', + 'name' => 'permissions', + 'entity' => 'permissions', + 'attribute' => 'name', + 'model' => $this->permission_model, + 'pivot' => true, + ]); + } + + /* + * Get an array list of all available guard types + * that have been defined in app/config/auth.php + * + * @return array + **/ + private function getGuardTypes() + { + $guards = config('auth.guards'); + + $returnable = []; + foreach ($guards as $key => $details) { + $returnable[$key] = $key; + } + + return $returnable; + } +} diff --git a/app/Http/Controllers/Admin/SupportDistributionPartnerCatalogCrudController.php b/app/Http/Controllers/Admin/SupportDistributionPartnerCatalogCrudController.php new file mode 100644 index 0000000..1e8fff8 --- /dev/null +++ b/app/Http/Controllers/Admin/SupportDistributionPartnerCatalogCrudController.php @@ -0,0 +1,93 @@ +crud->getRequest()->has('order')){ + $this->crud->orderBy('lft', 'asc')->orderBy('id', 'desc'); + } + + CRUD::addColumn('#'); + CRUD::column('is_front_show')->label(trans('backend.columnName.is_front_show'))->type('checkbox'); + CRUD::column('name')->label(trans('backend.columnName.name'))->type('textarea_nl2br')->escaped(false)->searchLogic('text'); + + } + + /** + * Define what happens when the Create operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-create + * @return void + */ + protected function setupCreateOperation() + { + CRUD::setValidation(SupportDistributionPartnerCatalogRequest::class); + CRUD::addFields([ + [ + 'name' => 'is_front_show', + 'label' => trans('backend.columnName.is_front_show'), + 'type' => 'boolean', + 'default' => true, + ], + [ + 'name' => 'name', + 'lable' => 'Name', + 'type' => 'text', + ], + ]); + } + + /** + * Define what happens when the Update operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-update + * @return void + */ + protected function setupUpdateOperation() + { + $this->setupCreateOperation(); + } +} diff --git a/app/Http/Controllers/Admin/SupportDistributionPartnerCrudController.php b/app/Http/Controllers/Admin/SupportDistributionPartnerCrudController.php new file mode 100644 index 0000000..be2cae1 --- /dev/null +++ b/app/Http/Controllers/Admin/SupportDistributionPartnerCrudController.php @@ -0,0 +1,136 @@ +crud->addColumns([ + [ + 'name' => 'support_distribution_partner_catalog_id', + 'label' => trans('backend.columnName.catalog'), + 'type' => 'select', + 'entity' => 'supportDistributionPartnerCatalog', + 'attribute' => 'name', + 'model' => 'App\Models\SupportDistributionPartnerCatalog', + ], + [ + 'name' => 'title', + 'label' => trans('backend.columnName.title'), + 'type' => 'text' + ], + [ + 'name' => 'is_front_show', + 'label' => trans('backend.columnName.is_front_show'), + 'type' => 'checkbox' + ], + [ + 'name' => 'description', + 'label' => trans('backend.columnName.description'), + 'type' => 'text' + ], + [ + 'name' => 'website', + 'label' => trans('backend.columnName.website'), + 'type' => 'text' + ], + ]); + } + + /** + * Define what happens when the Create operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-create + * @return void + */ + protected function setupCreateOperation() + { + CRUD::setValidation(SupportDistributionPartnerRequest::class); + $this->crud->addFields([ + [ + 'name' => 'support_distribution_partner_catalog_id', + 'label' => trans('backend.columnName.catalog'), + 'type' => 'select2_nested', + 'entity' => 'supportDistributionPartnerCatalog', + 'attribute' => 'name', + 'model' => 'App\Models\SupportDistributionPartnerCatalog', + ], + [ + 'name' => 'title', + 'label' => trans('backend.columnName.title'), + 'type' => 'text' + ], + [ + 'name' => 'is_front_show', + 'label' => trans('backend.columnName.is_front_show'), + 'type' => 'boolean' + ], + [ + 'name' => 'photos', + 'label' => trans('backend.columnName.cover'), + 'type' => 'upload_img_multiple', + 'upload' => true, + 'disk' => 'public', + 'hint' => '', + 'qty' => 1, // 0=no limit, >0=limit + 'showSingleChoise' => '0', // 0=hidden, 1=show(default) + 'showComment' => '0', // 0=hidden, 1=show(default) + ], + [ + 'name' => 'description', + 'label' => trans('backend.columnName.description'), + 'type' => 'textarea' + ], + [ + 'name' => 'website', + 'label' => trans('backend.columnName.website'), + 'type' => 'text' + ], + ]); + } + + /** + * Define what happens when the Update operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-update + * @return void + */ + protected function setupUpdateOperation() + { + $this->setupCreateOperation(); + } +} diff --git a/app/Http/Controllers/Admin/SupportEcosystemPartnerCatalogCrudController.php b/app/Http/Controllers/Admin/SupportEcosystemPartnerCatalogCrudController.php new file mode 100644 index 0000000..cc922e1 --- /dev/null +++ b/app/Http/Controllers/Admin/SupportEcosystemPartnerCatalogCrudController.php @@ -0,0 +1,93 @@ +crud->getRequest()->has('order')){ + $this->crud->orderBy('lft', 'asc')->orderBy('id', 'desc'); + } + + CRUD::addColumn('#'); + CRUD::column('is_front_show')->label(trans('backend.columnName.is_front_show'))->type('checkbox'); + CRUD::column('name')->label(trans('backend.columnName.name'))->type('textarea_nl2br')->escaped(false)->searchLogic('text'); + + } + + /** + * Define what happens when the Create operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-create + * @return void + */ + protected function setupCreateOperation() + { + CRUD::setValidation(SupportEcosystemPartnerCatalogRequest::class); + CRUD::addFields([ + [ + 'name' => 'is_front_show', + 'label' => trans('backend.columnName.is_front_show'), + 'type' => 'boolean', + 'default' => true, + ], + [ + 'name' => 'name', + 'lable' => 'Name', + 'type' => 'text', + ], + ]); + } + + /** + * Define what happens when the Update operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-update + * @return void + */ + protected function setupUpdateOperation() + { + $this->setupCreateOperation(); + } +} diff --git a/app/Http/Controllers/Admin/SupportEcosystemPartnerCrudController.php b/app/Http/Controllers/Admin/SupportEcosystemPartnerCrudController.php new file mode 100644 index 0000000..6c311f0 --- /dev/null +++ b/app/Http/Controllers/Admin/SupportEcosystemPartnerCrudController.php @@ -0,0 +1,136 @@ +crud->addColumns([ + [ + 'name' => 'support_ecosystem_partner_catalog_id', + 'label' => trans('backend.columnName.catalog'), + 'type' => 'select', + 'entity' => 'supportEcosystemPartnerCatalog', + 'attribute' => 'name', + 'model' => 'App\Models\SupportEcosystemPartnerCatalog', + ], + [ + 'name' => 'title', + 'label' => trans('backend.columnName.title'), + 'type' => 'text' + ], + [ + 'name' => 'is_front_show', + 'label' => trans('backend.columnName.is_front_show'), + 'type' => 'checkbox' + ], + [ + 'name' => 'description', + 'label' => trans('backend.columnName.description'), + 'type' => 'text' + ], + [ + 'name' => 'website', + 'label' => trans('backend.columnName.website'), + 'type' => 'text' + ], + ]); + } + + /** + * Define what happens when the Create operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-create + * @return void + */ + protected function setupCreateOperation() + { + CRUD::setValidation(SupportEcosystemPartnerRequest::class); + $this->crud->addFields([ + [ + 'name' => 'support_ecosystem_partner_catalog_id', + 'label' => trans('backend.columnName.catalog'), + 'type' => 'select2_nested', + 'entity' => 'supportEcosystemPartnerCatalog', + 'attribute' => 'name', + 'model' => 'App\Models\SupportEcosystemPartnerCatalog', + ], + [ + 'name' => 'title', + 'label' => trans('backend.columnName.title'), + 'type' => 'text' + ], + [ + 'name' => 'is_front_show', + 'label' => trans('backend.columnName.is_front_show'), + 'type' => 'boolean' + ], + [ + 'name' => 'photos', + 'label' => trans('backend.columnName.cover'), + 'type' => 'upload_img_multiple', + 'upload' => true, + 'disk' => 'public', + 'hint' => '', + 'qty' => 1, // 0=no limit, >0=limit + 'showSingleChoise' => '0', // 0=hidden, 1=show(default) + 'showComment' => '0', // 0=hidden, 1=show(default) + ], + [ + 'name' => 'description', + 'label' => trans('backend.columnName.description'), + 'type' => 'textarea' + ], + [ + 'name' => 'website', + 'label' => trans('backend.columnName.website'), + 'type' => 'text' + ], + ]); + } + + /** + * Define what happens when the Update operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-update + * @return void + */ + protected function setupUpdateOperation() + { + $this->setupCreateOperation(); + } +} diff --git a/app/Http/Controllers/Admin/SupportSaleCrudController.php b/app/Http/Controllers/Admin/SupportSaleCrudController.php new file mode 100644 index 0000000..11f091f --- /dev/null +++ b/app/Http/Controllers/Admin/SupportSaleCrudController.php @@ -0,0 +1,77 @@ +type('number'); + */ + } + + /** + * Define what happens when the Create operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-create + * @return void + */ + protected function setupCreateOperation() + { + CRUD::setValidation(SupportSaleRequest::class); + CRUD::setFromDb(); // set fields from db columns. + + /** + * Fields can be defined using the fluent syntax: + * - CRUD::field('price')->type('number'); + */ + } + + /** + * Define what happens when the Update operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-update + * @return void + */ + protected function setupUpdateOperation() + { + $this->setupCreateOperation(); + } +} diff --git a/app/Http/Controllers/Admin/SupportTechnicalCrudController.php b/app/Http/Controllers/Admin/SupportTechnicalCrudController.php new file mode 100644 index 0000000..7ea62dc --- /dev/null +++ b/app/Http/Controllers/Admin/SupportTechnicalCrudController.php @@ -0,0 +1,77 @@ +type('number'); + */ + } + + /** + * Define what happens when the Create operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-create + * @return void + */ + protected function setupCreateOperation() + { + CRUD::setValidation(SupportTechnicalRequest::class); + CRUD::setFromDb(); // set fields from db columns. + + /** + * Fields can be defined using the fluent syntax: + * - CRUD::field('price')->type('number'); + */ + } + + /** + * Define what happens when the Update operation is loaded. + * + * @see https://backpackforlaravel.com/docs/crud-operation-update + * @return void + */ + protected function setupUpdateOperation() + { + $this->setupCreateOperation(); + } +} diff --git a/app/Http/Controllers/Admin/UserCrudController.php b/app/Http/Controllers/Admin/UserCrudController.php new file mode 100644 index 0000000..77389c2 --- /dev/null +++ b/app/Http/Controllers/Admin/UserCrudController.php @@ -0,0 +1,77 @@ +crud->addColumns([ + [ + 'name' => 'name', + 'label' => trans('backpack::permissionmanager.name'), + 'type' => 'text', + ], + [ + 'name' => 'email', + 'label' => trans('backpack::permissionmanager.email'), + 'type' => 'email', + ], + [ // n-n relationship (with pivot table) + 'label' => trans('backpack::permissionmanager.roles'), // Table column heading + 'type' => 'select_multiple', + 'name' => 'roles', // the method that defines the relationship in your Model + 'entity' => 'roles', // the method that defines the relationship in your Model + 'attribute' => 'name', // foreign key attribute that is shown to user + 'model' => config('permission.models.role'), // foreign key model + ], + [ // n-n relationship (with pivot table) + 'label' => trans('backpack::permissionmanager.extra_permissions'), // Table column heading + 'type' => 'select_multiple', + 'name' => 'permissions', // the method that defines the relationship in your Model + 'entity' => 'permissions', // the method that defines the relationship in your Model + 'attribute' => 'name', // foreign key attribute that is shown to user + 'model' => config('permission.models.permission'), // foreign key model + ], + ]); + + if (backpack_pro()) { + // Role Filter + $this->crud->addFilter( + [ + 'name' => 'role', + 'type' => 'dropdown', + 'label' => trans('backpack::permissionmanager.role'), + ], + config('permission.models.role')::all()->pluck('name', 'id')->toArray(), + function ($value) { // if the filter is active + $this->crud->addClause('whereHas', 'roles', function ($query) use ($value) { + $query->where('role_id', '=', $value); + }); + } + ); + + // Extra Permission Filter + $this->crud->addFilter( + [ + 'name' => 'permissions', + 'type' => 'select2', + 'label' => trans('backpack::permissionmanager.extra_permissions'), + ], + config('permission.models.permission')::all()->pluck('name', 'id')->toArray(), + function ($value) { // if the filter is active + $this->crud->addClause('whereHas', 'permissions', function ($query) use ($value) { + $query->where('permission_id', '=', $value); + }); + } + ); + } + } +} diff --git a/app/Http/Controllers/ContactController.php b/app/Http/Controllers/ContactController.php new file mode 100644 index 0000000..d4a9a34 --- /dev/null +++ b/app/Http/Controllers/ContactController.php @@ -0,0 +1,13 @@ +get("p"); + $page = (!$page || $page < 1) ? 1 : $page; + $pageOffset = $perPageItems * ($page - 1); + + $dataRows = \App\Models\Event::where('is_front_show', '=', true) + ->orderBy('post_at', 'desc') + ->select('id', 'title', 'venue', 'contact', 'photos', 'post_at'); + + return view('events', [ + 'dataRows' => $dataRows->skip($pageOffset)->take($perPageItems)->get(), + 'dataCurrentPage' => $page, + 'dataPerPageItems' => $perPageItems, + 'dataTotalCount' => $dataRows->count(), + ]); + } + + public function detail(Request $request, $id) + { + $dataRow = \App\Models\Event::where('id', '=', $id) + ->where('is_front_show', '=', true); + + return view('events_detail', [ + 'dataRow' => $dataRow->first(), + ]); + } +} diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php new file mode 100644 index 0000000..27491f1 --- /dev/null +++ b/app/Http/Controllers/HomeController.php @@ -0,0 +1,26 @@ +orderBy('lft', 'asc') + ->orderBy('id', 'desc'); + $newsRows = \App\Models\News::where('is_front_show', '=', true) + ->orderBy('post_at', 'desc') + ->take('3'); + $eventRows = \App\Models\News::where('is_front_show', '=', true) + ->orderBy('post_at', 'desc') + ->take('3'); + return view('home', [ + 'carouselRows' => $carouselRows->get(), + 'newsRows' => $newsRows->get(), + 'eventRows' => $eventRows->get(), + ]); + } +} diff --git a/app/Http/Controllers/NewsController.php b/app/Http/Controllers/NewsController.php new file mode 100644 index 0000000..6f569f9 --- /dev/null +++ b/app/Http/Controllers/NewsController.php @@ -0,0 +1,37 @@ +get("p"); + $page = (!$page || $page < 1) ? 1 : $page; + $pageOffset = $perPageItems * ($page - 1); + + $dataRows = \App\Models\News::where('is_front_show', '=', true) + ->orderBy('post_at', 'desc') + ->select('id', 'title', 'description', 'photos', 'post_at'); + + return view('news', [ + 'dataRows' => $dataRows->skip($pageOffset)->take($perPageItems)->get(), + 'dataCurrentPage' => $page, + 'dataPerPageItems' => $perPageItems, + 'dataTotalCount' => $dataRows->count(), + ]); + } + + public function detail(Request $request, $id) + { + $dataRow = \App\Models\News::where('id', '=', $id) + ->where('is_front_show', '=', true); + + return view('news_detail', [ + 'dataRow' => $dataRow->first(), + ]); + } +} diff --git a/app/Http/Controllers/ProductsController.php b/app/Http/Controllers/ProductsController.php new file mode 100644 index 0000000..9cd8273 --- /dev/null +++ b/app/Http/Controllers/ProductsController.php @@ -0,0 +1,111 @@ +get('tags'); + $currentApplications = explode(',', $applications); + $currentApplications = array_values(array_filter($currentApplications)); + $perPageItems = 10; + $page = $request->get("p"); + $page = (!$page || $page < 1) ? 1 : $page; + $pageOffset = $perPageItems * ($page - 1); + + $productRows = \App\Models\Product::where('is_front_show', '=', true) + ->orderByRaw("CASE + WHEN tip = 'none' THEN 1 + WHEN tip = 'new' THEN 2 + WHEN tip = 'on_sale' THEN 3 + END DESC") + ->orderBy('id', 'DESC'); + + $dataCatalogs = \App\Models\ProductCatalog::where('is_front_show', '=', true) + ->orderBy('lft', 'asc') + ->select('id', 'slug', 'name', \DB::raw('( + SELECT COUNT(id) FROM products + WHERE products.product_catalog_id = product_catalogs.id AND products.is_front_show = true + ) as qty')); + + $dataApplications = \App\Models\ProductApplication::where('is_front_show', '=', true) + ->orderBy('lft', 'asc') + ->select('id', 'slug', 'name'); + + $currentCatalogName = \App\Models\ProductCatalog::where('slug', 'like', $catalogSlug)->first(); + if ($currentCatalogName) + { + $currentCatalogName = $currentCatalogName->name; + } + + if (count($currentApplications) > 0) + { + $productRows = $productRows->whereHas('productApplications', + function($query) use ($currentApplications) { + $query->whereIn('slug', $currentApplications); + }); + } + + if ($catalogSlug) + { + $productRows = $productRows->whereHas('productCatalog', + function($query) use ($catalogSlug) { + $query->where('slug', 'like', $catalogSlug); + }); + } + + + $productCount = $productRows->count(); + $productRows = $productRows->skip($pageOffset)->take($perPageItems)->get(); + foreach ($productRows as $row) + { + $row->{'applications'} = \App\Models\Product::find($row->id)->productApplications()->get(); + + } + + return view('products', [ + 'dataCatalogs' => $dataCatalogs->get(), + 'currentCatalogName' => $currentCatalogName, + 'dataApplications' => $dataApplications->get(), + 'currentApplications' => $currentApplications, + 'dataRows' => $productRows, + 'dataCurrentPage' => $page, + 'dataPerPageItems' => $perPageItems, + 'dataTotalCount' => $productCount, + ]); + } + + public function catalogs($catalogs, Request $request) + { + return $this->index($request, $catalogs); + } + + public function detail($product, Request $request) + { + $dataRow = \App\Models\Product::where('slug', 'like', $product) + ->where('is_front_show', '=', true) + ->first(); + + $catalogName = ''; + $catalogSlug = ''; + $catalog = $dataRow->productCatalog()->first(); + if ($catalog) + { + $catalogName = $catalog->name; + $catalogSlug = $catalog->slug; + } + + return view('products_detail', [ + 'dataRow' => $dataRow, + 'catalogName' => $catalogName, + 'catalogSlug' => $catalogSlug, + 'productApplications' => $dataRow->productApplications()->get(), + ]); + } + +} diff --git a/app/Http/Controllers/SupportDistributionPartnersController.php b/app/Http/Controllers/SupportDistributionPartnersController.php new file mode 100644 index 0000000..6fe7c0a --- /dev/null +++ b/app/Http/Controllers/SupportDistributionPartnersController.php @@ -0,0 +1,49 @@ +get('cid'); + $catalogId = (!$catalogId || $catalogId < 1) ? 0 : $catalogId; + $perPageItems = 20; + $page = $request->get("p"); + $page = (!$page || $page < 1) ? 1 : $page; + $pageOffset = $perPageItems * ($page - 1); + + $catalogRows = \App\Models\SupportDistributionPartnerCatalog::where('is_front_show', '=', true) + ->orderBy('lft', 'asc') + ->orderBy('id', 'desc') + ->select('id', 'name'); + if ($catalogId == 0) + { + $catalogRowsGet = $catalogRows->get(); + foreach ($catalogRowsGet as $row) + { + $catalogId = $row->id; + break; + } + } + + + $dataRows = \App\Models\SupportDistributionPartner::where('support_distribution_partner_catalog_id', '=', $catalogId) + ->where('is_front_show', '=', true) + ->orderBy('title', 'desc') + ->select('id', 'title', 'description', 'photos', 'website'); + + return view('support-distribution-partners', [ + 'catalogRows' => $catalogRows->get(), + 'catalogCurrentId' => $catalogId, + 'dataRows' => $dataRows->skip($pageOffset)->take($perPageItems)->get(), + 'dataCurrentPage' => $page, + 'dataPerPageItems' => $perPageItems, + 'dataTotalCount' => $dataRows->count() + ]); + + } + +} diff --git a/app/Http/Controllers/SupportEcosystemPartnersController.php b/app/Http/Controllers/SupportEcosystemPartnersController.php new file mode 100644 index 0000000..a2a30ab --- /dev/null +++ b/app/Http/Controllers/SupportEcosystemPartnersController.php @@ -0,0 +1,40 @@ +get('cid'); + $catalogId = (!$catalogId || $catalogId < 1) ? 0 : $catalogId; + $appclitionId = $request->get('aid'); + $appclitionId = (!$appclitionId || $appclitionId < 1) ? 0 : $appclitionId; + $perPageItems = 20; + $page = $request->get("p"); + $page = (!$page || $page < 1) ? 1 : $page; + $pageOffset = $perPageItems * ($page - 1); + + $catalogRows = \App\Models\SupportEcosystemPartnerCatalog::where('is_front_show', '=', true) + ->orderBy('lft', 'asc') + ->orderBy('id', 'desc') + ->select('id', 'name'); + + $dataRows = \App\Models\SupportEcosystemPartner::where('support_ecosystem_partner_catalog_id', '=', $catalogId) + ->where('is_front_show', '=', true) + ->orderBy('title', 'desc') + ->select('id', 'title', 'description', 'photos', 'website'); + + return view('support-ecosystem-partners', [ + 'catalogRows' => $catalogRows->get(), + 'catalogCurrentId' => $catalogId, + 'dataRows' => $dataRows->skip($pageOffset)->take($perPageItems)->get(), + 'dataCurrentPage' => $page, + 'dataPerPageItems' => $perPageItems, + 'dataTotalCount' => $dataRows->count() + ]); + + } +} diff --git a/app/Http/Controllers/SupportSalesInquiryController.php b/app/Http/Controllers/SupportSalesInquiryController.php new file mode 100644 index 0000000..9756106 --- /dev/null +++ b/app/Http/Controllers/SupportSalesInquiryController.php @@ -0,0 +1,39 @@ +get('pid'); + $product = \App\Models\Product::where('id', '=', $pid)->where('is_front_show', '=', true)->first(); + if ($product) + { + $product = 'I am interested in ' . $product->title; + } + return view('support-sales-inquiry',[ + 'productName' => $product, + ]); + } + + public function indexPost(SupportSaleRequest $request) + { + \App\Models\SupportSale::insert([ + 'name_first' => $request->input('name_first'), + 'name_last' => $request->input('name_last'), + 'company_name' => $request->input('company_name'), + 'job_title' => $request->input('job_title'), + 'email' => $request->input('email'), + 'phone' => $request->input('phone'), + 'contry' => $request->input('contry'), + 'comments' => $request->input('comments'), + 'created_at' => Carbon::now(), + ]); + return redirect()->back()->with('success', 'We have received your sales inquiry!'); + } +} diff --git a/app/Http/Controllers/SupportTechnicalController.php b/app/Http/Controllers/SupportTechnicalController.php new file mode 100644 index 0000000..911b4e6 --- /dev/null +++ b/app/Http/Controllers/SupportTechnicalController.php @@ -0,0 +1,31 @@ + $request->input('name_first'), + 'name_last' => $request->input('name_last'), + 'company_name' => $request->input('company_name'), + 'job_title' => $request->input('job_title'), + 'email' => $request->input('email'), + 'phone' => $request->input('phone'), + 'contry' => $request->input('contry'), + 'comments' => $request->input('comments'), + 'created_at' => Carbon::now(), + ]); + return redirect()->back()->with('success', 'We have received your technical inquiry!'); + } +} diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php new file mode 100644 index 0000000..a8fbd23 --- /dev/null +++ b/app/Http/Kernel.php @@ -0,0 +1,69 @@ + + */ + protected $middleware = [ + // \App\Http\Middleware\TrustHosts::class, + \App\Http\Middleware\TrustProxies::class, + \Illuminate\Http\Middleware\HandleCors::class, + \App\Http\Middleware\PreventRequestsDuringMaintenance::class, + \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, + \App\Http\Middleware\TrimStrings::class, + \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, + \Spatie\CookieConsent\CookieConsentMiddleware::class, + ]; + + /** + * The application's route middleware groups. + * + * @var array> + */ + protected $middlewareGroups = [ + 'web' => [ + \App\Http\Middleware\EncryptCookies::class, + \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, + \Illuminate\Session\Middleware\StartSession::class, + \Illuminate\View\Middleware\ShareErrorsFromSession::class, + \App\Http\Middleware\VerifyCsrfToken::class, + \Illuminate\Routing\Middleware\SubstituteBindings::class, + ], + + 'api' => [ + // \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class, + \Illuminate\Routing\Middleware\ThrottleRequests::class.':api', + \Illuminate\Routing\Middleware\SubstituteBindings::class, + ], + ]; + + /** + * The application's middleware aliases. + * + * Aliases may be used instead of class names to conveniently assign middleware to routes and groups. + * + * @var array + */ + protected $middlewareAliases = [ + 'auth' => \App\Http\Middleware\Authenticate::class, + 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, + 'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class, + 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, + 'can' => \Illuminate\Auth\Middleware\Authorize::class, + 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, + 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class, + 'precognitive' => \Illuminate\Foundation\Http\Middleware\HandlePrecognitiveRequests::class, + 'signed' => \App\Http\Middleware\ValidateSignature::class, + 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, + 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, + ]; +} diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php new file mode 100644 index 0000000..d4ef644 --- /dev/null +++ b/app/Http/Middleware/Authenticate.php @@ -0,0 +1,17 @@ +expectsJson() ? null : route('login'); + } +} diff --git a/app/Http/Middleware/CheckIfAdmin.php b/app/Http/Middleware/CheckIfAdmin.php new file mode 100644 index 0000000..da1fa21 --- /dev/null +++ b/app/Http/Middleware/CheckIfAdmin.php @@ -0,0 +1,68 @@ +is_admin == 1); + return true; + } + + /** + * Answer to unauthorized access request. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse + */ + private function respondToUnauthorizedRequest($request) + { + if ($request->ajax() || $request->wantsJson()) { + return response(trans('backpack::base.unauthorized'), 401); + } else { + return redirect()->guest(backpack_url('login')); + } + } + + /** + * Handle an incoming request. + * + * @param \Illuminate\Http\Request $request + * @param \Closure $next + * @return mixed + */ + public function handle($request, Closure $next) + { + if (backpack_auth()->guest()) { + return $this->respondToUnauthorizedRequest($request); + } + + if (! $this->checkIfUserIsAdmin(backpack_user())) { + return $this->respondToUnauthorizedRequest($request); + } + + return $next($request); + } +} diff --git a/app/Http/Middleware/EncryptCookies.php b/app/Http/Middleware/EncryptCookies.php new file mode 100644 index 0000000..867695b --- /dev/null +++ b/app/Http/Middleware/EncryptCookies.php @@ -0,0 +1,17 @@ + + */ + protected $except = [ + // + ]; +} diff --git a/app/Http/Middleware/PreventRequestsDuringMaintenance.php b/app/Http/Middleware/PreventRequestsDuringMaintenance.php new file mode 100644 index 0000000..74cbd9a --- /dev/null +++ b/app/Http/Middleware/PreventRequestsDuringMaintenance.php @@ -0,0 +1,17 @@ + + */ + protected $except = [ + // + ]; +} diff --git a/app/Http/Middleware/RedirectIfAuthenticated.php b/app/Http/Middleware/RedirectIfAuthenticated.php new file mode 100644 index 0000000..afc78c4 --- /dev/null +++ b/app/Http/Middleware/RedirectIfAuthenticated.php @@ -0,0 +1,30 @@ +check()) { + return redirect(RouteServiceProvider::HOME); + } + } + + return $next($request); + } +} diff --git a/app/Http/Middleware/TrimStrings.php b/app/Http/Middleware/TrimStrings.php new file mode 100644 index 0000000..88cadca --- /dev/null +++ b/app/Http/Middleware/TrimStrings.php @@ -0,0 +1,19 @@ + + */ + protected $except = [ + 'current_password', + 'password', + 'password_confirmation', + ]; +} diff --git a/app/Http/Middleware/TrustHosts.php b/app/Http/Middleware/TrustHosts.php new file mode 100644 index 0000000..c9c58bd --- /dev/null +++ b/app/Http/Middleware/TrustHosts.php @@ -0,0 +1,20 @@ + + */ + public function hosts(): array + { + return [ + $this->allSubdomainsOfApplicationUrl(), + ]; + } +} diff --git a/app/Http/Middleware/TrustProxies.php b/app/Http/Middleware/TrustProxies.php new file mode 100644 index 0000000..3391630 --- /dev/null +++ b/app/Http/Middleware/TrustProxies.php @@ -0,0 +1,28 @@ +|string|null + */ + protected $proxies; + + /** + * The headers that should be used to detect proxies. + * + * @var int + */ + protected $headers = + Request::HEADER_X_FORWARDED_FOR | + Request::HEADER_X_FORWARDED_HOST | + Request::HEADER_X_FORWARDED_PORT | + Request::HEADER_X_FORWARDED_PROTO | + Request::HEADER_X_FORWARDED_AWS_ELB; +} diff --git a/app/Http/Middleware/ValidateSignature.php b/app/Http/Middleware/ValidateSignature.php new file mode 100644 index 0000000..093bf64 --- /dev/null +++ b/app/Http/Middleware/ValidateSignature.php @@ -0,0 +1,22 @@ + + */ + protected $except = [ + // 'fbclid', + // 'utm_campaign', + // 'utm_content', + // 'utm_medium', + // 'utm_source', + // 'utm_term', + ]; +} diff --git a/app/Http/Middleware/VerifyCsrfToken.php b/app/Http/Middleware/VerifyCsrfToken.php new file mode 100644 index 0000000..9e86521 --- /dev/null +++ b/app/Http/Middleware/VerifyCsrfToken.php @@ -0,0 +1,17 @@ + + */ + protected $except = [ + // + ]; +} diff --git a/app/Http/Requests/EventCatalogRequest.php b/app/Http/Requests/EventCatalogRequest.php new file mode 100644 index 0000000..1ca3b8f --- /dev/null +++ b/app/Http/Requests/EventCatalogRequest.php @@ -0,0 +1,55 @@ +check(); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + // 'name' => 'required|min:5|max:255' + ]; + } + + /** + * Get the validation attributes that apply to the request. + * + * @return array + */ + public function attributes() + { + return [ + // + ]; + } + + /** + * Get the validation messages that apply to the request. + * + * @return array + */ + public function messages() + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/EventRequest.php b/app/Http/Requests/EventRequest.php new file mode 100644 index 0000000..a389a11 --- /dev/null +++ b/app/Http/Requests/EventRequest.php @@ -0,0 +1,55 @@ +check(); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + // 'name' => 'required|min:5|max:255' + ]; + } + + /** + * Get the validation attributes that apply to the request. + * + * @return array + */ + public function attributes() + { + return [ + // + ]; + } + + /** + * Get the validation messages that apply to the request. + * + * @return array + */ + public function messages() + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/HomeCarouselRequest.php b/app/Http/Requests/HomeCarouselRequest.php new file mode 100644 index 0000000..e95c63e --- /dev/null +++ b/app/Http/Requests/HomeCarouselRequest.php @@ -0,0 +1,55 @@ +check(); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + // 'name' => 'required|min:5|max:255' + ]; + } + + /** + * Get the validation attributes that apply to the request. + * + * @return array + */ + public function attributes() + { + return [ + // + ]; + } + + /** + * Get the validation messages that apply to the request. + * + * @return array + */ + public function messages() + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/NewsCatalogRequest.php b/app/Http/Requests/NewsCatalogRequest.php new file mode 100644 index 0000000..59367d7 --- /dev/null +++ b/app/Http/Requests/NewsCatalogRequest.php @@ -0,0 +1,55 @@ +check(); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + // 'name' => 'required|min:5|max:255' + ]; + } + + /** + * Get the validation attributes that apply to the request. + * + * @return array + */ + public function attributes() + { + return [ + // + ]; + } + + /** + * Get the validation messages that apply to the request. + * + * @return array + */ + public function messages() + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/NewsRequest.php b/app/Http/Requests/NewsRequest.php new file mode 100644 index 0000000..abe46f8 --- /dev/null +++ b/app/Http/Requests/NewsRequest.php @@ -0,0 +1,55 @@ +check(); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + // 'name' => 'required|min:5|max:255' + ]; + } + + /** + * Get the validation attributes that apply to the request. + * + * @return array + */ + public function attributes() + { + return [ + // + ]; + } + + /** + * Get the validation messages that apply to the request. + * + * @return array + */ + public function messages() + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/ProductApplicationRequest.php b/app/Http/Requests/ProductApplicationRequest.php new file mode 100644 index 0000000..5b13a65 --- /dev/null +++ b/app/Http/Requests/ProductApplicationRequest.php @@ -0,0 +1,55 @@ +check(); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + 'slug' => 'required|unique:product_applications,slug', + ]; + } + + /** + * Get the validation attributes that apply to the request. + * + * @return array + */ + public function attributes() + { + return [ + // + ]; + } + + /** + * Get the validation messages that apply to the request. + * + * @return array + */ + public function messages() + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/ProductCatalogRequest.php b/app/Http/Requests/ProductCatalogRequest.php new file mode 100644 index 0000000..1226590 --- /dev/null +++ b/app/Http/Requests/ProductCatalogRequest.php @@ -0,0 +1,55 @@ +check(); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + 'slug' => 'required|unique:product_catalogs,slug', + ]; + } + + /** + * Get the validation attributes that apply to the request. + * + * @return array + */ + public function attributes() + { + return [ + // + ]; + } + + /** + * Get the validation messages that apply to the request. + * + * @return array + */ + public function messages() + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/ProductRequest.php b/app/Http/Requests/ProductRequest.php new file mode 100644 index 0000000..a77d766 --- /dev/null +++ b/app/Http/Requests/ProductRequest.php @@ -0,0 +1,55 @@ +check(); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + // 'slug' => 'required|unique:products,slug', + ]; + } + + /** + * Get the validation attributes that apply to the request. + * + * @return array + */ + public function attributes() + { + return [ + // + ]; + } + + /** + * Get the validation messages that apply to the request. + * + * @return array + */ + public function messages() + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/SupportDistributionPartnerCatalogRequest.php b/app/Http/Requests/SupportDistributionPartnerCatalogRequest.php new file mode 100644 index 0000000..b97b389 --- /dev/null +++ b/app/Http/Requests/SupportDistributionPartnerCatalogRequest.php @@ -0,0 +1,55 @@ +check(); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + // 'name' => 'required|min:5|max:255' + ]; + } + + /** + * Get the validation attributes that apply to the request. + * + * @return array + */ + public function attributes() + { + return [ + // + ]; + } + + /** + * Get the validation messages that apply to the request. + * + * @return array + */ + public function messages() + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/SupportDistributionPartnerRequest.php b/app/Http/Requests/SupportDistributionPartnerRequest.php new file mode 100644 index 0000000..c380d37 --- /dev/null +++ b/app/Http/Requests/SupportDistributionPartnerRequest.php @@ -0,0 +1,55 @@ +check(); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + // 'name' => 'required|min:5|max:255' + ]; + } + + /** + * Get the validation attributes that apply to the request. + * + * @return array + */ + public function attributes() + { + return [ + // + ]; + } + + /** + * Get the validation messages that apply to the request. + * + * @return array + */ + public function messages() + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/SupportEcosystemPartnerCatalogRequest.php b/app/Http/Requests/SupportEcosystemPartnerCatalogRequest.php new file mode 100644 index 0000000..dd8b5e2 --- /dev/null +++ b/app/Http/Requests/SupportEcosystemPartnerCatalogRequest.php @@ -0,0 +1,55 @@ +check(); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + // 'name' => 'required|min:5|max:255' + ]; + } + + /** + * Get the validation attributes that apply to the request. + * + * @return array + */ + public function attributes() + { + return [ + // + ]; + } + + /** + * Get the validation messages that apply to the request. + * + * @return array + */ + public function messages() + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/SupportEcosystemPartnerRequest.php b/app/Http/Requests/SupportEcosystemPartnerRequest.php new file mode 100644 index 0000000..ad8fa5e --- /dev/null +++ b/app/Http/Requests/SupportEcosystemPartnerRequest.php @@ -0,0 +1,55 @@ +check(); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + // 'name' => 'required|min:5|max:255' + ]; + } + + /** + * Get the validation attributes that apply to the request. + * + * @return array + */ + public function attributes() + { + return [ + // + ]; + } + + /** + * Get the validation messages that apply to the request. + * + * @return array + */ + public function messages() + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/SupportSaleRequest.php b/app/Http/Requests/SupportSaleRequest.php new file mode 100644 index 0000000..c7ad147 --- /dev/null +++ b/app/Http/Requests/SupportSaleRequest.php @@ -0,0 +1,62 @@ +check(); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + 'name_first' => 'required', + 'name_last' => 'required', + 'company_name' => 'required', + //'job_title' => 'required', + 'email' => 'nullable|email', + 'phone' => 'required', + 'contry' => 'required', + 'comments' => 'required', + ]; + } + + /** + * Get the validation attributes that apply to the request. + * + * @return array + */ + public function attributes() + { + return [ + // + ]; + } + + /** + * Get the validation messages that apply to the request. + * + * @return array + */ + public function messages() + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/SupportTechnicalRequest.php b/app/Http/Requests/SupportTechnicalRequest.php new file mode 100644 index 0000000..dc59df5 --- /dev/null +++ b/app/Http/Requests/SupportTechnicalRequest.php @@ -0,0 +1,62 @@ +check(); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + 'name_first' => 'required', + 'name_last' => 'required', + 'company_name' => 'required', + //'job_title' => 'required', + 'email' => 'nullable|email', + 'phone' => 'required', + 'contry' => 'required', + 'comments' => 'required', + ]; + } + + /** + * Get the validation attributes that apply to the request. + * + * @return array + */ + public function attributes() + { + return [ + // + ]; + } + + /** + * Get the validation messages that apply to the request. + * + * @return array + */ + public function messages() + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/UserRequest.php b/app/Http/Requests/UserRequest.php new file mode 100644 index 0000000..207b211 --- /dev/null +++ b/app/Http/Requests/UserRequest.php @@ -0,0 +1,55 @@ +check(); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + // 'name' => 'required|min:5|max:255' + ]; + } + + /** + * Get the validation attributes that apply to the request. + * + * @return array + */ + public function attributes() + { + return [ + // + ]; + } + + /** + * Get the validation messages that apply to the request. + * + * @return array + */ + public function messages() + { + return [ + // + ]; + } +} diff --git a/app/Models/Event.php b/app/Models/Event.php new file mode 100644 index 0000000..b0ff681 --- /dev/null +++ b/app/Models/Event.php @@ -0,0 +1,85 @@ + 'datetime', + 'photos' => 'array', + ]; + /* + |-------------------------------------------------------------------------- + | FUNCTIONS + |-------------------------------------------------------------------------- + */ + public static function boot() + { + parent::boot(); + static::deleting(function($obj) { + if (count((array)$obj->photos)) { + foreach ($obj->photos as $item) { + \Storage::disk('public')->delete($item['file_path']); + } + } + }); + } + /* + |-------------------------------------------------------------------------- + | RELATIONS + |-------------------------------------------------------------------------- + */ + public function eventCatalog() + { + return $this->belongsTo(EventCatalog::class, 'event_catalog_id'); + } + /* + |-------------------------------------------------------------------------- + | SCOPES + |-------------------------------------------------------------------------- + */ + + /* + |-------------------------------------------------------------------------- + | ACCESSORS + |-------------------------------------------------------------------------- + */ + + /* + |-------------------------------------------------------------------------- + | MUTATORS + |-------------------------------------------------------------------------- + */ + public function setPhotosAttribute($value) + { + $attribute_name = "photos"; + $disk = "public"; + $destination_path = "events"; + + $this->uploadImgMultipleFilesToDisk($value, $attribute_name, $disk, $destination_path); + } +} diff --git a/app/Models/EventCatalog.php b/app/Models/EventCatalog.php new file mode 100644 index 0000000..b7c45fc --- /dev/null +++ b/app/Models/EventCatalog.php @@ -0,0 +1,67 @@ +belongsTo(EventCatalog::class, 'parent_id'); + } + + public function children() + { + return $this->hasMany(EventCatalog::class, 'parent_id'); + } + /* + |-------------------------------------------------------------------------- + | SCOPES + |-------------------------------------------------------------------------- + */ + + /* + |-------------------------------------------------------------------------- + | ACCESSORS + |-------------------------------------------------------------------------- + */ + + /* + |-------------------------------------------------------------------------- + | MUTATORS + |-------------------------------------------------------------------------- + */ +} diff --git a/app/Models/HomeCarousel.php b/app/Models/HomeCarousel.php new file mode 100644 index 0000000..4427f8f --- /dev/null +++ b/app/Models/HomeCarousel.php @@ -0,0 +1,90 @@ + 'array', + ]; + + /* + |-------------------------------------------------------------------------- + | FUNCTIONS + |-------------------------------------------------------------------------- + */ + public static function boot() + { + parent::boot(); + static::deleting(function($obj) { + if (count((array)$obj->photos)) { + foreach ($obj->photos as $item) { + \Storage::disk('public')->delete($item['file_path']); + } + } + }); + } + /* + |-------------------------------------------------------------------------- + | RELATIONS + |-------------------------------------------------------------------------- + */ + public function parent() + { + return $this->belongsTo(HomeCarousel::class, 'parent_id'); + } + + public function children() + { + return $this->hasMany(HomeCarousel::class, 'parent_id'); + } + /* + |-------------------------------------------------------------------------- + | SCOPES + |-------------------------------------------------------------------------- + */ + + /* + |-------------------------------------------------------------------------- + | ACCESSORS + |-------------------------------------------------------------------------- + */ + + /* + |-------------------------------------------------------------------------- + | MUTATORS + |-------------------------------------------------------------------------- + */ + public function setPhotosAttribute($value) + { + $attribute_name = "photos"; + $disk = "public"; + $destination_path = "home_carousel"; + + $this->uploadImgMultipleFilesToDisk($value, $attribute_name, $disk, $destination_path); + } +} diff --git a/app/Models/News.php b/app/Models/News.php new file mode 100644 index 0000000..d4d701d --- /dev/null +++ b/app/Models/News.php @@ -0,0 +1,86 @@ + 'datetime', + 'photos' => 'array', + ]; + /* + |-------------------------------------------------------------------------- + | FUNCTIONS + |-------------------------------------------------------------------------- + */ + public static function boot() + { + parent::boot(); + static::deleting(function($obj) { + if (count((array)$obj->photos)) { + foreach ($obj->photos as $item) { + \Storage::disk('public')->delete($item['file_path']); + } + } + }); + } + /* + |-------------------------------------------------------------------------- + | RELATIONS + |-------------------------------------------------------------------------- + */ + public function newsCatalog() + { + return $this->belongsTo(NewsCatalog::class, 'news_catalog_id'); + } + /* + |-------------------------------------------------------------------------- + | SCOPES + |-------------------------------------------------------------------------- + */ + + /* + |-------------------------------------------------------------------------- + | ACCESSORS + |-------------------------------------------------------------------------- + */ + + /* + |-------------------------------------------------------------------------- + | MUTATORS + |-------------------------------------------------------------------------- + */ + public function setPhotosAttribute($value) + { + $attribute_name = "photos"; + $disk = "public"; + $destination_path = "news"; + + $this->uploadImgMultipleFilesToDisk($value, $attribute_name, $disk, $destination_path); + } + +} diff --git a/app/Models/NewsCatalog.php b/app/Models/NewsCatalog.php new file mode 100644 index 0000000..2b46ab1 --- /dev/null +++ b/app/Models/NewsCatalog.php @@ -0,0 +1,67 @@ +belongsTo(NewsCatalog::class, 'parent_id'); + } + + public function children() + { + return $this->hasMany(NewsCatalog::class, 'parent_id'); + } + /* + |-------------------------------------------------------------------------- + | SCOPES + |-------------------------------------------------------------------------- + */ + + /* + |-------------------------------------------------------------------------- + | ACCESSORS + |-------------------------------------------------------------------------- + */ + + /* + |-------------------------------------------------------------------------- + | MUTATORS + |-------------------------------------------------------------------------- + */ +} diff --git a/app/Models/Permission.php b/app/Models/Permission.php new file mode 100644 index 0000000..a226fc9 --- /dev/null +++ b/app/Models/Permission.php @@ -0,0 +1,30 @@ + [ + 'source' => 'slug_or_name', + ], + ]; + } +} diff --git a/app/Models/Product.php b/app/Models/Product.php new file mode 100644 index 0000000..edb029f --- /dev/null +++ b/app/Models/Product.php @@ -0,0 +1,90 @@ + 'array', + ]; + + /* + |-------------------------------------------------------------------------- + | FUNCTIONS + |-------------------------------------------------------------------------- + */ + public static function boot() + { + parent::boot(); + static::deleting(function($obj) { + if (count((array)$obj->photos)) { + foreach ($obj->photos as $item) { + \Storage::disk('public')->delete($item['file_path']); + } + } + }); + } + /* + |-------------------------------------------------------------------------- + | RELATIONS + |-------------------------------------------------------------------------- + */ + public function productCatalog() + { + return $this->belongsTo(ProductCatalog::class, 'product_catalog_id'); + } + + public function productApplications() + { + return $this->belongsToMany(ProductApplication::class, 'product_product_application'); + } + /* + |-------------------------------------------------------------------------- + | SCOPES + |-------------------------------------------------------------------------- + */ + + /* + |-------------------------------------------------------------------------- + | ACCESSORS + |-------------------------------------------------------------------------- + */ + + /* + |-------------------------------------------------------------------------- + | MUTATORS + |-------------------------------------------------------------------------- + */ + public function setPhotosAttribute($value) + { + $attribute_name = "photos"; + $disk = "public"; + $destination_path = "products"; + + $this->uploadImgMultipleFilesToDisk($value, $attribute_name, $disk, $destination_path); + } +} diff --git a/app/Models/ProductApplication.php b/app/Models/ProductApplication.php new file mode 100644 index 0000000..c99b8bb --- /dev/null +++ b/app/Models/ProductApplication.php @@ -0,0 +1,62 @@ +belongsToMany(Product::class, 'product_product_application'); + } + /* + |-------------------------------------------------------------------------- + | SCOPES + |-------------------------------------------------------------------------- + */ + + /* + |-------------------------------------------------------------------------- + | ACCESSORS + |-------------------------------------------------------------------------- + */ + + /* + |-------------------------------------------------------------------------- + | MUTATORS + |-------------------------------------------------------------------------- + */ +} diff --git a/app/Models/ProductCatalog.php b/app/Models/ProductCatalog.php new file mode 100644 index 0000000..17ad7eb --- /dev/null +++ b/app/Models/ProductCatalog.php @@ -0,0 +1,67 @@ +belongsTo(ProductCatalog::class, 'parent_id'); + } + + public function children() + { + return $this->hasMany(ProductCatalog::class, 'parent_id'); + } + /* + |-------------------------------------------------------------------------- + | SCOPES + |-------------------------------------------------------------------------- + */ + + /* + |-------------------------------------------------------------------------- + | ACCESSORS + |-------------------------------------------------------------------------- + */ + + /* + |-------------------------------------------------------------------------- + | MUTATORS + |-------------------------------------------------------------------------- + */ +} diff --git a/app/Models/Role.php b/app/Models/Role.php new file mode 100644 index 0000000..3cacff3 --- /dev/null +++ b/app/Models/Role.php @@ -0,0 +1,30 @@ + [ + 'source' => 'slug_or_name', + ], + ]; + } +} diff --git a/app/Models/SupportDistributionPartner.php b/app/Models/SupportDistributionPartner.php new file mode 100644 index 0000000..2039757 --- /dev/null +++ b/app/Models/SupportDistributionPartner.php @@ -0,0 +1,85 @@ + 'array', + ]; + + /* + |-------------------------------------------------------------------------- + | FUNCTIONS + |-------------------------------------------------------------------------- + */ + public static function boot() + { + parent::boot(); + static::deleting(function($obj) { + if (count((array)$obj->photos)) { + foreach ($obj->photos as $item) { + \Storage::disk('public')->delete($item['file_path']); + } + } + }); + } + /* + |-------------------------------------------------------------------------- + | RELATIONS + |-------------------------------------------------------------------------- + */ + public function supportDistributionPartnerCatalog() + { + return $this->belongsTo(SupportDistributionPartnerCatalog::class, 'support_distribution_partner_catalog_id'); + } + /* + |-------------------------------------------------------------------------- + | SCOPES + |-------------------------------------------------------------------------- + */ + + /* + |-------------------------------------------------------------------------- + | ACCESSORS + |-------------------------------------------------------------------------- + */ + + /* + |-------------------------------------------------------------------------- + | MUTATORS + |-------------------------------------------------------------------------- + */ + public function setPhotosAttribute($value) + { + $attribute_name = "photos"; + $disk = "public"; + $destination_path = "support_distribution_partners"; + + $this->uploadImgMultipleFilesToDisk($value, $attribute_name, $disk, $destination_path); + } +} diff --git a/app/Models/SupportDistributionPartnerCatalog.php b/app/Models/SupportDistributionPartnerCatalog.php new file mode 100644 index 0000000..0764878 --- /dev/null +++ b/app/Models/SupportDistributionPartnerCatalog.php @@ -0,0 +1,67 @@ +belongsTo(SupportDistributionPartnerCatalog::class, 'parent_id'); + } + + public function children() + { + return $this->hasMany(SupportDistributionPartnerCatalog::class, 'parent_id'); + } + /* + |-------------------------------------------------------------------------- + | SCOPES + |-------------------------------------------------------------------------- + */ + + /* + |-------------------------------------------------------------------------- + | ACCESSORS + |-------------------------------------------------------------------------- + */ + + /* + |-------------------------------------------------------------------------- + | MUTATORS + |-------------------------------------------------------------------------- + */ +} diff --git a/app/Models/SupportEcosystemPartner.php b/app/Models/SupportEcosystemPartner.php new file mode 100644 index 0000000..fda934c --- /dev/null +++ b/app/Models/SupportEcosystemPartner.php @@ -0,0 +1,84 @@ + 'array', + ]; + /* + |-------------------------------------------------------------------------- + | FUNCTIONS + |-------------------------------------------------------------------------- + */ + public static function boot() + { + parent::boot(); + static::deleting(function($obj) { + if (count((array)$obj->photos)) { + foreach ($obj->photos as $item) { + \Storage::disk('public')->delete($item['file_path']); + } + } + }); + } + /* + |-------------------------------------------------------------------------- + | RELATIONS + |-------------------------------------------------------------------------- + */ + + /* + |-------------------------------------------------------------------------- + | SCOPES + |-------------------------------------------------------------------------- + */ + public function supportEcosystemPartnerCatalog() + { + return $this->belongsTo(SupportEcosystemPartnerCatalog::class, 'support_ecosystem_partner_catalog_id'); + } + /* + |-------------------------------------------------------------------------- + | ACCESSORS + |-------------------------------------------------------------------------- + */ + + /* + |-------------------------------------------------------------------------- + | MUTATORS + |-------------------------------------------------------------------------- + */ + public function setPhotosAttribute($value) + { + $attribute_name = "photos"; + $disk = "public"; + $destination_path = "support_ecosystem_partners"; + + $this->uploadImgMultipleFilesToDisk($value, $attribute_name, $disk, $destination_path); + } +} diff --git a/app/Models/SupportEcosystemPartnerCatalog.php b/app/Models/SupportEcosystemPartnerCatalog.php new file mode 100644 index 0000000..1493ea7 --- /dev/null +++ b/app/Models/SupportEcosystemPartnerCatalog.php @@ -0,0 +1,67 @@ +belongsTo(SupportEcosystemPartnerCatalog::class, 'parent_id'); + } + + public function children() + { + return $this->hasMany(SupportEcosystemPartnerCatalog::class, 'parent_id'); + } + /* + |-------------------------------------------------------------------------- + | SCOPES + |-------------------------------------------------------------------------- + */ + + /* + |-------------------------------------------------------------------------- + | ACCESSORS + |-------------------------------------------------------------------------- + */ + + /* + |-------------------------------------------------------------------------- + | MUTATORS + |-------------------------------------------------------------------------- + */ +} diff --git a/app/Models/SupportSale.php b/app/Models/SupportSale.php new file mode 100644 index 0000000..67a4769 --- /dev/null +++ b/app/Models/SupportSale.php @@ -0,0 +1,56 @@ + + */ + protected $fillable = [ + 'name', + 'email', + 'password', + ]; + + /** + * The attributes that should be hidden for serialization. + * + * @var array + */ + protected $hidden = [ + 'password', + 'remember_token', + ]; + + /** + * The attributes that should be cast. + * + * @var array + */ + protected $casts = [ + 'email_verified_at' => 'datetime', + 'password' => 'hashed', + ]; +} diff --git a/app/Overrides/backpack/crud/src/helpers.php b/app/Overrides/backpack/crud/src/helpers.php new file mode 100644 index 0000000..87df121 --- /dev/null +++ b/app/Overrides/backpack/crud/src/helpers.php @@ -0,0 +1,405 @@ +getTable(), config('backpack.base.email_column') ?? 'email'); + } +} + +if (! function_exists('backpack_avatar_url')) { + /** + * Returns the avatar URL of a user. + * + * @param $user + * @return string + */ + function backpack_avatar_url($user) + { + switch (config('backpack.base.avatar_type')) { + case 'gravatar': + if (backpack_users_have_email() && ! empty($user->email)) { + $avatarLink = Gravatar::fallback(config('backpack.base.gravatar_fallback'))->get($user->email, ['size' => 80]); + + // if we can save it locally, for safer loading, let's do it + if (in_array(Basset::basset($avatarLink, false)->name, ['INTERNALIZED', 'IN_CACHE', 'LOADED'])) { + return Basset::getUrl($avatarLink); + } + + return $avatarLink; + } + break; + default: + return method_exists($user, config('backpack.base.avatar_type')) ? $user->{config('backpack.base.avatar_type')}() : $user->{config('backpack.base.avatar_type')}; + break; + } + } +} + +if (! function_exists('backpack_middleware')) { + /** + * Return the key of the middleware used across Backpack. + * That middleware checks if the visitor is an admin. + * + * @param $path + * @return string + */ + function backpack_middleware() + { + return config('backpack.base.middleware_key', 'admin'); + } +} + +if (! function_exists('backpack_guard_name')) { + /* + * Returns the name of the guard defined + * by the application config + */ + function backpack_guard_name() + { + return config('backpack.base.guard', config('auth.defaults.guard')); + } +} + +if (! function_exists('backpack_auth')) { + /* + * Returns the user instance if it exists + * of the currently authenticated admin + * based off the defined guard. + */ + function backpack_auth() + { + return \Auth::guard(backpack_guard_name()); + } +} + +if (! function_exists('backpack_user')) { + /* + * Returns back a user instance without + * the admin guard, however allows you + * to pass in a custom guard if you like. + */ + function backpack_user() + { + return backpack_auth()->user(); + } +} + +if (! function_exists('mb_ucfirst')) { + /** + * Capitalize the first letter of a string, + * even if that string is multi-byte (non-latin alphabet). + * + * @param string $string String to have its first letter capitalized. + * @param encoding $encoding Character encoding + * @return string String with first letter capitalized. + */ + function mb_ucfirst($string, $encoding = false) + { + $encoding = $encoding ? $encoding : mb_internal_encoding(); + + $strlen = mb_strlen($string, $encoding); + $firstChar = mb_substr($string, 0, 1, $encoding); + $then = mb_substr($string, 1, $strlen - 1, $encoding); + + return mb_strtoupper($firstChar, $encoding).$then; + } +} + +if (! function_exists('backpack_view')) { + /** + * Returns a new displayable view path, based on the configured backpack view namespace. + * If that view doesn't exist, it falls back to the fallback namespace. + * If that view doesn't exist, it falls back to the one from the Backpack UI directory. + * + * @param string (see config/backpack/base.php) + * @return string + */ + function backpack_view($view) + { + $viewPaths = [ + config('backpack.ui.view_namespace').$view, + backpack_theme_config('view_namespace_fallback').$view, + 'backpack.ui::'.$view, + ]; + + foreach ($viewPaths as $view) { + if (view()->exists($view)) { + return $view; + } + } + + $errorMessage = 'The view: ['.$view.'] was not found in any of the following view paths: ['.implode(' ], [ ', $viewPaths).']'; + + $errorDetails = (function () { + if (env('APP_ENV') === 'production' || ! env('APP_DEBUG')) { + return ''; + } + + $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2) ?? []; + $functionCaller = $backtrace[1] ?? []; + $functionLine = $functionCaller['line'] ?? 'N/A'; + $functionFile = $functionCaller['file'] ?? 'N/A'; + + return '- Called in: '.Str::after($functionFile, base_path()).' on line: '.$functionLine; + })(); + + abort(500, $errorMessage.$errorDetails); + } +} + +if (! function_exists('backpack_theme_config')) { + /** + * Returns a config value from the current theme's config file. + * It assumes the theme's config namespace is the same as the view namespace. + * + * @param string + * @return string + */ + function backpack_theme_config($key) + { + $namespacedKey = config('backpack.ui.view_namespace').$key; + $namespacedKey = str_replace('::', '.', $namespacedKey); + + // if the config exists in the theme config file, use it + if (config()->has($namespacedKey)) { + return config($namespacedKey); + } + + // if not, fall back to a general the config in the fallback theme + $namespacedKey = config('backpack.ui.view_namespace_fallback').$key; + $namespacedKey = str_replace('::', '.', $namespacedKey); + + if (config()->has($namespacedKey)) { + return config($namespacedKey); + } + + // if not, fall back to the config in ui + $namespacedKey = 'backpack.ui.'.$key; + + if (config()->has($namespacedKey)) { + return config($namespacedKey); + } + + Log::error('Could not find config key: '.$key.'. Neither in the Backpack theme, nor in the fallback theme, nor in ui.'); + + return null; + } +} + +if (! function_exists('square_brackets_to_dots')) { + /** + * Turns a string from bracket-type array to dot-notation array. + * Ex: array[0][property] turns into array.0.property. + * + * @param $path + * @return string + */ + function square_brackets_to_dots($string) + { + $string = str_replace(['[', ']'], ['.', ''], $string); + + return $string; + } +} + +if (! function_exists('old_empty_or_null')) { + /** + * This method is an alternative to Laravel's old() helper, which mistakenly + * returns NULL it two cases: + * - if there is an old value, and it was empty or null + * - if there is no old value + * (this is because of the ConvertsEmptyStringsToNull middleware). + * + * In contrast, this method will return: + * - the old value, if there actually is an old value for that key; + * - the second parameter, if there is no old value for that key, but it was empty string or null; + * - null, if there is no old value at all for that key; + * + * @param string $key + * @param array|string $empty_value + * @return mixed + */ + function old_empty_or_null($key, $empty_value = '') + { + $key = square_brackets_to_dots($key); + $old_inputs = session()->getOldInput(); + + // if the input name is present in the old inputs we need to return earlier and not in a coalescing chain + // otherwise `null` aka empty will not pass the condition and the field value would be returned. + if (\Arr::has($old_inputs, $key)) { + return \Arr::get($old_inputs, $key) ?? $empty_value; + } + + return null; + } +} + +if (! function_exists('is_multidimensional_array')) { + /** + * Check if the array is multidimensional. + * + * If $strict is enabled, the array is considered multidimensional only if all elements of the array are arrays. + */ + function is_multidimensional_array(array $array, bool $strict = false): bool + { + foreach ($array as $item) { + if ($strict && ! is_array($item)) { + return false; + } + if (! $strict && is_array($item)) { + return true; + } + } + + return $strict; + } +} + +if (! function_exists('backpack_pro')) { + /** + * Check if the backpack/pro package is installed. + * + * @return bool + */ + function backpack_pro() + { + return true; + if (app()->runningUnitTests()) { + return true; + } + if (! \Composer\InstalledVersions::isInstalled('backpack/pro')) { + return false; + } + + return \Composer\InstalledVersions::getVersion('backpack/pro'); + } +} diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php new file mode 100644 index 0000000..d90c834 --- /dev/null +++ b/app/Providers/AppServiceProvider.php @@ -0,0 +1,29 @@ + \App\Http\Controllers\Admin\PermissionCrudController::class, + \Backpack\PermissionManager\app\Http\Controllers\RoleCrudController::class => \App\Http\Controllers\Admin\RoleCrudController::class, + \Backpack\PermissionManager\app\Http\Controllers\UserCrudController::class => \App\Http\Controllers\Admin\UserCrudController::class, + ]; + /** + * Register any application services. + */ + public function register(): void + { + // + } + + /** + * Bootstrap any application services. + */ + public function boot(): void + { + // + } +} diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php new file mode 100644 index 0000000..54756cd --- /dev/null +++ b/app/Providers/AuthServiceProvider.php @@ -0,0 +1,26 @@ + + */ + protected $policies = [ + // + ]; + + /** + * Register any authentication / authorization services. + */ + public function boot(): void + { + // + } +} diff --git a/app/Providers/BroadcastServiceProvider.php b/app/Providers/BroadcastServiceProvider.php new file mode 100644 index 0000000..2be04f5 --- /dev/null +++ b/app/Providers/BroadcastServiceProvider.php @@ -0,0 +1,19 @@ +> + */ + protected $listen = [ + Registered::class => [ + SendEmailVerificationNotification::class, + ], + ]; + + /** + * Register any events for your application. + */ + public function boot(): void + { + // + } + + /** + * Determine if events and listeners should be automatically discovered. + */ + public function shouldDiscoverEvents(): bool + { + return false; + } +} diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php new file mode 100644 index 0000000..1cf5f15 --- /dev/null +++ b/app/Providers/RouteServiceProvider.php @@ -0,0 +1,40 @@ +by($request->user()?->id ?: $request->ip()); + }); + + $this->routes(function () { + Route::middleware('api') + ->prefix('api') + ->group(base_path('routes/api.php')); + + Route::middleware('web') + ->group(base_path('routes/web.php')); + }); + } +} diff --git a/artisan b/artisan new file mode 100755 index 0000000..67a3329 --- /dev/null +++ b/artisan @@ -0,0 +1,53 @@ +#!/usr/bin/env php +make(Illuminate\Contracts\Console\Kernel::class); + +$status = $kernel->handle( + $input = new Symfony\Component\Console\Input\ArgvInput, + new Symfony\Component\Console\Output\ConsoleOutput +); + +/* +|-------------------------------------------------------------------------- +| Shutdown The Application +|-------------------------------------------------------------------------- +| +| Once Artisan has finished running, we will fire off the shutdown events +| so that any final work may be done by the application before we shut +| down the process. This is the last thing to happen to the request. +| +*/ + +$kernel->terminate($input, $status); + +exit($status); diff --git a/bootstrap/app.php b/bootstrap/app.php new file mode 100644 index 0000000..037e17d --- /dev/null +++ b/bootstrap/app.php @@ -0,0 +1,55 @@ +singleton( + Illuminate\Contracts\Http\Kernel::class, + App\Http\Kernel::class +); + +$app->singleton( + Illuminate\Contracts\Console\Kernel::class, + App\Console\Kernel::class +); + +$app->singleton( + Illuminate\Contracts\Debug\ExceptionHandler::class, + App\Exceptions\Handler::class +); + +/* +|-------------------------------------------------------------------------- +| Return The Application +|-------------------------------------------------------------------------- +| +| This script returns the application instance. The instance is given to +| the calling script so we can separate the building of the instances +| from the actual running of the application and sending responses. +| +*/ + +return $app; diff --git a/bootstrap/cache/.gitignore b/bootstrap/cache/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/bootstrap/cache/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/composer copy.json b/composer copy.json new file mode 100644 index 0000000..ecac211 --- /dev/null +++ b/composer copy.json @@ -0,0 +1,88 @@ +{ + "name": "laravel/laravel", + "type": "project", + "description": "The skeleton application for the Laravel framework.", + "keywords": ["laravel", "framework"], + "license": "MIT", + "require": { + "php": "^8.1", + "backpack/crud": "^6.6", + "backpack/filemanager": "^3.0", + "backpack/language-switcher": "^2.0", + "backpack/permissionmanager": "^7.1", + "backpack/theme-tabler": "^1.2", + "cviebrock/eloquent-sluggable": "^10.0", + "diglactic/laravel-breadcrumbs": "^8.1", + "ericli1018/awesome-fields-for-backpack": "^1.0", + "guzzlehttp/guzzle": "^7.2", + "laravel/framework": "^10.10", + "laravel/sanctum": "^3.3", + "laravel/tinker": "^2.8", + "petercoles/multilingual-country-list": "^1.2", + "select2/select2": "^4.0", + "spatie/laravel-translatable": "^6.5" + }, + "require-dev": { + "backpack/generators": "^4.0", + "fakerphp/faker": "^1.9.1", + "laracasts/generators": "^2.0", + "laravel-lang/lang": "^13", + "laravel-lang/publisher": "^14", + "laravel/pint": "^1.0", + "laravel/sail": "^1.18", + "mockery/mockery": "^1.4.4", + "nunomaduro/collision": "^7.0", + "phpunit/phpunit": "^10.1", + "spatie/laravel-ignition": "^2.0" + }, + "autoload": { + "exclude-from-classmap": [ + "vendor/backpack/crud/src/helpers.php" + ], + "files": [ + "app/Overrides/backpack/crud/src/helpers.php" + ], + "psr-4": { + "App\\": "app/", + "Database\\Factories\\": "database/factories/", + "Database\\Seeders\\": "database/seeders/" + } + }, + "autoload-dev": { + "psr-4": { + "Tests\\": "tests/" + } + }, + "scripts": { + "post-autoload-dump": [ + "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", + "@php artisan package:discover --ansi" + ], + "post-update-cmd": [ + "@php artisan vendor:publish --tag=laravel-assets --ansi --force" + ], + "post-root-package-install": [ + "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" + ], + "post-create-project-cmd": [ + "@php artisan key:generate --ansi" + ], + "post-install-cmd": ["php artisan storage:link --quiet"] + }, + "extra": { + "laravel": { + "dont-discover": [] + } + }, + "config": { + "optimize-autoloader": true, + "preferred-install": "dist", + "sort-packages": true, + "allow-plugins": { + "pestphp/pest-plugin": true, + "php-http/discovery": true + } + }, + "minimum-stability": "stable", + "prefer-stable": true +} diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..34cad99 --- /dev/null +++ b/composer.json @@ -0,0 +1,88 @@ +{ + "name": "laravel/laravel", + "type": "project", + "description": "The skeleton application for the Laravel framework.", + "keywords": ["laravel", "framework"], + "license": "MIT", + "require": { + "php": "^8.1", + "backpack/crud": "^6.6", + "backpack/filemanager": "^3.0", + "backpack/language-switcher": "^2.0", + "backpack/permissionmanager": "^7.1", + "backpack/theme-tabler": "^1.2", + "cviebrock/eloquent-sluggable": "^10.0", + "diglactic/laravel-breadcrumbs": "^8.1", + "ericli1018/awesome-fields-for-backpack": "^1.1", + "guzzlehttp/guzzle": "^7.2", + "laravel/framework": "^10.10", + "laravel/sanctum": "^3.3", + "laravel/tinker": "^2.8", + "petercoles/multilingual-country-list": "^1.2", + "spatie/laravel-cookie-consent": "^3.2", + "spatie/laravel-translatable": "^6.5" + }, + "require-dev": { + "backpack/generators": "^4.0", + "fakerphp/faker": "^1.9.1", + "laracasts/generators": "^2.0", + "laravel-lang/lang": "^13", + "laravel-lang/publisher": "^14", + "laravel/pint": "^1.0", + "laravel/sail": "^1.18", + "mockery/mockery": "^1.4.4", + "nunomaduro/collision": "^7.0", + "phpunit/phpunit": "^10.1", + "spatie/laravel-ignition": "^2.0" + }, + "autoload": { + "exclude-from-classmap": [ + "vendor/backpack/crud/src/helpers.php" + ], + "files": [ + "app/Overrides/backpack/crud/src/helpers.php" + ], + "psr-4": { + "App\\": "app/", + "Database\\Factories\\": "database/factories/", + "Database\\Seeders\\": "database/seeders/" + } + }, + "autoload-dev": { + "psr-4": { + "Tests\\": "tests/" + } + }, + "scripts": { + "post-autoload-dump": [ + "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", + "@php artisan package:discover --ansi" + ], + "post-update-cmd": [ + "@php artisan vendor:publish --tag=laravel-assets --ansi --force" + ], + "post-root-package-install": [ + "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" + ], + "post-create-project-cmd": [ + "@php artisan key:generate --ansi" + ], + "post-install-cmd": ["php artisan storage:link --quiet"] + }, + "extra": { + "laravel": { + "dont-discover": [] + } + }, + "config": { + "optimize-autoloader": true, + "preferred-install": "dist", + "sort-packages": true, + "allow-plugins": { + "pestphp/pest-plugin": true, + "php-http/discovery": true + } + }, + "minimum-stability": "stable", + "prefer-stable": true +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..90f6a15 --- /dev/null +++ b/composer.lock @@ -0,0 +1,11098 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "b261920d908ed479dde8d92e244478ad", + "packages": [ + { + "name": "backpack/basset", + "version": "1.2.4", + "source": { + "type": "git", + "url": "https://github.com/Laravel-Backpack/basset.git", + "reference": "4fc2f6ca2687b7feef7e042127e853082fb66ae0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Laravel-Backpack/basset/zipball/4fc2f6ca2687b7feef7e042127e853082fb66ae0", + "reference": "4fc2f6ca2687b7feef7e042127e853082fb66ae0", + "shasum": "" + }, + "require": { + "guzzlehttp/guzzle": "^7.5", + "laravel/framework": "^10.15" + }, + "require-dev": { + "nunomaduro/collision": "^6.0|^7.2", + "orchestra/testbench": "^7.22|^8.5", + "pestphp/pest": "^1.22|^2.5", + "pestphp/pest-plugin-laravel": "^1.4|^2.0", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "~9.0|~10.0" + }, + "suggest": { + "ext-zip": "Required to use @bassetArchive with .zip archives." + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Backpack\\Basset\\BassetServiceProvider" + ], + "aliases": { + "Basset": "Backpack\\Basset\\Facades\\Basset" + } + } + }, + "autoload": { + "files": [ + "src/Helpers/functions.php" + ], + "psr-4": { + "Backpack\\Basset\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Cristian Tabacitu", + "email": "hello@tabacitu.ro", + "homepage": "https://tabacitu.ro" + } + ], + "description": "Dead-simple way to load CSS or JS assets only once per page, when using Laravel 10+.", + "homepage": "https://github.com/laravel-backpack/basset", + "keywords": [ + "Load CSS once", + "Load JS once", + "assets", + "basset", + "laravel" + ], + "support": { + "issues": "https://github.com/Laravel-Backpack/basset/issues", + "source": "https://github.com/Laravel-Backpack/basset/tree/1.2.4" + }, + "time": "2024-02-22T18:38:57+00:00" + }, + { + "name": "backpack/crud", + "version": "6.6.5", + "source": { + "type": "git", + "url": "https://github.com/Laravel-Backpack/CRUD.git", + "reference": "9b67d0ce33b3e18fdc1c69fa79cbe2a385017080" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Laravel-Backpack/CRUD/zipball/9b67d0ce33b3e18fdc1c69fa79cbe2a385017080", + "reference": "9b67d0ce33b3e18fdc1c69fa79cbe2a385017080", + "shasum": "" + }, + "require": { + "backpack/basset": "^1.1.1", + "creativeorange/gravatar": "~1.0", + "doctrine/dbal": "^3.0", + "guzzlehttp/guzzle": "^7.0", + "laravel/framework": "^10.0", + "prologue/alerts": "^1.0" + }, + "require-dev": { + "orchestra/testbench": "^8.0", + "phpunit/phpunit": "~10.0|~9.0", + "scrutinizer/ocular": "~1.7", + "spatie/laravel-translatable": "^6.0" + }, + "suggest": { + "backpack/filemanager": "Required to use the browse and browse_multiple fields.", + "backpack/generators": "Required on localhost to easily generate CRUDs, models, controllers etc.", + "backpack/revise-operation": "Optional operation to remember all entry changes, undo and redo them (aka audit trait)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + }, + "laravel": { + "providers": [ + "Backpack\\CRUD\\BackpackServiceProvider" + ], + "aliases": { + "CRUD": "Backpack\\CRUD\\app\\Library\\CrudPanel\\CrudPanelFacade", + "Widget": "Backpack\\CRUD\\app\\Library\\Widget" + } + } + }, + "autoload": { + "psr-4": { + "Backpack\\CRUD\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Cristian Tabacitu", + "email": "cristian.tabacitu@backpackforlaravel.com", + "homepage": "https://backpackforlaravel.com", + "role": "Creator & Maintainer" + } + ], + "description": "Quickly build admin interfaces using Laravel, Bootstrap and JavaScript.", + "homepage": "https://github.com/laravel-backpack/CRUD", + "keywords": [ + "Admin Interface", + "Content management system", + "admin panel", + "admin panel for laravel", + "admin template for laravel", + "backpack", + "base", + "bootstrap 5 admin panel laravel", + "bread", + "cms", + "content management framework", + "coreui for laravel", + "create", + "crud", + "dashboard for laravel", + "delete", + "laravel admin", + "read", + "tabler for laravel", + "update" + ], + "support": { + "issues": "https://github.com/Laravel-Backpack/CRUD/issues", + "source": "https://github.com/Laravel-Backpack/CRUD/tree/6.6.5" + }, + "time": "2024-02-27T12:40:14+00:00" + }, + { + "name": "backpack/filemanager", + "version": "3.0.7", + "source": { + "type": "git", + "url": "https://github.com/Laravel-Backpack/FileManager.git", + "reference": "507e4ea6ccfb04c0f4a6e1dd7a81d85317265d16" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Laravel-Backpack/FileManager/zipball/507e4ea6ccfb04c0f4a6e1dd7a81d85317265d16", + "reference": "507e4ea6ccfb04c0f4a6e1dd7a81d85317265d16", + "shasum": "" + }, + "require": { + "backpack/crud": "^6.0", + "barryvdh/laravel-elfinder": "^0.5.2" + }, + "require-dev": { + "mockery/mockery": "^1.5", + "orchestra/testbench": "^8", + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Backpack\\FileManager\\FileManagerServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Backpack\\FileManager\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Cristian Tabacitu", + "email": "tabacitu@backpackforlaravel.com", + "homepage": "https://backpackforlaravel.com" + } + ], + "description": "Backpack admin interface for files and folder, using elFinder", + "homepage": "https://github.com/laravel-backpack/filemanager", + "keywords": [ + "filemanager", + "laravel" + ], + "support": { + "issues": "https://github.com/Laravel-Backpack/FileManager/issues", + "source": "https://github.com/Laravel-Backpack/FileManager/tree/3.0.7" + }, + "time": "2024-01-16T11:09:47+00:00" + }, + { + "name": "backpack/language-switcher", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/Laravel-Backpack/language-switcher.git", + "reference": "6773d5b4caebf4f7e212c318983abe6707c4b117" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Laravel-Backpack/language-switcher/zipball/6773d5b4caebf4f7e212c318983abe6707c4b117", + "reference": "6773d5b4caebf4f7e212c318983abe6707c4b117", + "shasum": "" + }, + "require": { + "backpack/crud": "^6.0", + "outhebox/blade-flags": "^1.2" + }, + "require-dev": { + "phpstan/phpstan": "^1.10" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Backpack\\LanguageSwitcher\\LanguageSwitcherServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Backpack\\LanguageSwitcher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Antonio Almeida", + "email": "promatik@gmail.com", + "homepage": "https://promatik.pt" + }, + { + "name": "Cristian Tabacitu", + "email": "cristian.tabacitu@backpackforlaravel.com", + "homepage": "https://backpackforlaravel.com" + } + ], + "description": "Language Switcher for Backpack", + "homepage": "https://github.com/backpack/language-switcher", + "keywords": [ + "Backpack Addon", + "Backpack for Laravel", + "backpack", + "language", + "laravel", + "locale" + ], + "support": { + "issues": "https://github.com/Laravel-Backpack/language-switcher/issues", + "source": "https://github.com/Laravel-Backpack/language-switcher/tree/2.0.0" + }, + "time": "2024-01-17T13:50:28+00:00" + }, + { + "name": "backpack/permissionmanager", + "version": "7.1.1", + "source": { + "type": "git", + "url": "https://github.com/Laravel-Backpack/PermissionManager.git", + "reference": "3c295ef5ab653f2d1a94d91837d12a04ab64ad3b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Laravel-Backpack/PermissionManager/zipball/3c295ef5ab653f2d1a94d91837d12a04ab64ad3b", + "reference": "3c295ef5ab653f2d1a94d91837d12a04ab64ad3b", + "shasum": "" + }, + "require": { + "backpack/crud": "^6.0", + "spatie/laravel-permission": "^5.0||^4.0||^3.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Backpack\\PermissionManager\\PermissionManagerServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Backpack\\PermissionManager\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "proprietary" + ], + "authors": [ + { + "name": "Marius Constantin", + "email": "marius@updivision.com", + "homepage": "http://www.updivision.com", + "role": "Lead Developer" + }, + { + "name": "Cristian Tabacitu", + "email": "tabacitu@backpackforlaravel.com", + "homepage": "https://backpackforlaravel.com", + "role": "Chief Architect" + } + ], + "description": "Users and permissions management interface for Laravel 5 using Backpack CRUD.", + "homepage": "https://github.com/laravel-backpack/permissionmanager", + "keywords": [ + "backpack", + "backpack permission", + "backpack roles", + "backpack user management", + "laravel backpack", + "manage permission", + "manage roles", + "manage users", + "tabacitu", + "updivision", + "users roles admin" + ], + "support": { + "issues": "https://github.com/Laravel-Backpack/PermissionManager/issues", + "source": "https://github.com/Laravel-Backpack/PermissionManager/tree/7.1.1" + }, + "time": "2023-10-31T09:51:10+00:00" + }, + { + "name": "backpack/theme-tabler", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/Laravel-Backpack/theme-tabler.git", + "reference": "03c37fb1f39624a1106c0f9a106cb758628ab1db" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Laravel-Backpack/theme-tabler/zipball/03c37fb1f39624a1106c0f9a106cb758628ab1db", + "reference": "03c37fb1f39624a1106c0f9a106cb758628ab1db", + "shasum": "" + }, + "require": { + "backpack/crud": "^6.2.1" + }, + "require-dev": { + "orchestra/testbench": "~5|~6", + "phpunit/phpunit": "~9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.0.x-dev" + }, + "laravel": { + "providers": [ + "Backpack\\ThemeTabler\\AddonServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Backpack\\ThemeTabler\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mauro Martinez", + "email": "maurohmartinez@gmail.com", + "homepage": "https://backpackforlaravel.com" + }, + { + "name": "Cristian Tabacitu", + "email": "hello@backpackforlaravel.com", + "homepage": "https://backpackforlaravel.com" + }, + { + "name": "Antonio Almeida", + "email": "promatik@gmail.com", + "homepage": "https://backpackforlaravel.com" + } + ], + "description": "UI for Backpack v6 that uses Tabler and Bootstrap v5.", + "homepage": "https://github.com/backpack/theme-tabler", + "keywords": [ + "Backpack Addon", + "Backpack for Laravel", + "ThemeTabler", + "backpack", + "laravel" + ], + "support": { + "issues": "https://github.com/Laravel-Backpack/theme-tabler/issues", + "source": "https://github.com/Laravel-Backpack/theme-tabler/tree/1.2.0" + }, + "time": "2023-12-30T02:42:47+00:00" + }, + { + "name": "barryvdh/elfinder-flysystem-driver", + "version": "v0.4.3", + "source": { + "type": "git", + "url": "https://github.com/barryvdh/elfinder-flysystem-driver.git", + "reference": "064d5b2c89ca185f3736e7e5c906d76d3632b30c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/barryvdh/elfinder-flysystem-driver/zipball/064d5b2c89ca185f3736e7e5c906d76d3632b30c", + "reference": "064d5b2c89ca185f3736e7e5c906d76d3632b30c", + "shasum": "" + }, + "require": { + "intervention/image": "^2.0", + "league/flysystem": "^3", + "php": "^8.0", + "studio-42/elfinder": "^2.1.60" + }, + "require-dev": { + "league/flysystem-memory": "^3", + "phpstan/phpstan": "^1.4", + "phpunit/phpunit": "^9", + "squizlabs/php_codesniffer": "^3.5" + }, + "suggest": { + "league/glide": "1.x to display images through Glide" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.4-dev" + } + }, + "autoload": { + "psr-4": { + "Barryvdh\\elFinderFlysystemDriver\\": "src/" + }, + "classmap": [ + "elFinderVolumeFlysystem.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" + } + ], + "description": "A Flysystem Driver for elFinder", + "keywords": [ + "Flysystem", + "elfinder", + "filesystem" + ], + "support": { + "issues": "https://github.com/barryvdh/elfinder-flysystem-driver/issues", + "source": "https://github.com/barryvdh/elfinder-flysystem-driver/tree/v0.4.3" + }, + "funding": [ + { + "url": "https://fruitcake.nl", + "type": "custom" + }, + { + "url": "https://github.com/barryvdh", + "type": "github" + } + ], + "time": "2022-03-24T06:03:55+00:00" + }, + { + "name": "barryvdh/laravel-elfinder", + "version": "v0.5.2", + "source": { + "type": "git", + "url": "https://github.com/barryvdh/laravel-elfinder.git", + "reference": "243c7201790934d8c5ffa586c22e832c3713f75a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/barryvdh/laravel-elfinder/zipball/243c7201790934d8c5ffa586c22e832c3713f75a", + "reference": "243c7201790934d8c5ffa586c22e832c3713f75a", + "shasum": "" + }, + "require": { + "barryvdh/elfinder-flysystem-driver": "^0.4.2", + "illuminate/support": "^9|^10", + "php": "^8.0", + "studio-42/elfinder": "~2.1.49" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.5-dev" + }, + "laravel": { + "providers": [ + "Barryvdh\\Elfinder\\ElfinderServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Barryvdh\\Elfinder\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" + } + ], + "description": "A Laravel Package to integrate elFinder 2", + "keywords": [ + "elfinder", + "filebrowser", + "laravel", + "tinymce" + ], + "support": { + "issues": "https://github.com/barryvdh/laravel-elfinder/issues", + "source": "https://github.com/barryvdh/laravel-elfinder/tree/v0.5.2" + }, + "time": "2023-02-05T15:22:18+00:00" + }, + { + "name": "blade-ui-kit/blade-icons", + "version": "1.6.0", + "source": { + "type": "git", + "url": "https://github.com/blade-ui-kit/blade-icons.git", + "reference": "89660d93f9897d231e9113ba203cd17f4c5efade" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/blade-ui-kit/blade-icons/zipball/89660d93f9897d231e9113ba203cd17f4c5efade", + "reference": "89660d93f9897d231e9113ba203cd17f4c5efade", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^8.0|^9.0|^10.0|^11.0", + "illuminate/filesystem": "^8.0|^9.0|^10.0|^11.0", + "illuminate/support": "^8.0|^9.0|^10.0|^11.0", + "illuminate/view": "^8.0|^9.0|^10.0|^11.0", + "php": "^7.4|^8.0", + "symfony/console": "^5.3|^6.0|^7.0", + "symfony/finder": "^5.3|^6.0|^7.0" + }, + "require-dev": { + "mockery/mockery": "^1.5.1", + "orchestra/testbench": "^6.0|^7.0|^8.0|^9.0", + "phpunit/phpunit": "^9.0|^10.5|^11.0" + }, + "bin": [ + "bin/blade-icons-generate" + ], + "type": "library", + "extra": { + "laravel": { + "providers": [ + "BladeUI\\Icons\\BladeIconsServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "BladeUI\\Icons\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dries Vints", + "homepage": "https://driesvints.com" + } + ], + "description": "A package to easily make use of icons in your Laravel Blade views.", + "homepage": "https://github.com/blade-ui-kit/blade-icons", + "keywords": [ + "blade", + "icons", + "laravel", + "svg" + ], + "support": { + "issues": "https://github.com/blade-ui-kit/blade-icons/issues", + "source": "https://github.com/blade-ui-kit/blade-icons" + }, + "funding": [ + { + "url": "https://github.com/sponsors/driesvints", + "type": "github" + }, + { + "url": "https://www.paypal.com/paypalme/driesvints", + "type": "paypal" + } + ], + "time": "2024-02-07T16:09:20+00:00" + }, + { + "name": "brick/math", + "version": "0.11.0", + "source": { + "type": "git", + "url": "https://github.com/brick/math.git", + "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/brick/math/zipball/0ad82ce168c82ba30d1c01ec86116ab52f589478", + "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^9.0", + "vimeo/psalm": "5.0.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Brick\\Math\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Arbitrary-precision arithmetic library", + "keywords": [ + "Arbitrary-precision", + "BigInteger", + "BigRational", + "arithmetic", + "bigdecimal", + "bignum", + "brick", + "math" + ], + "support": { + "issues": "https://github.com/brick/math/issues", + "source": "https://github.com/brick/math/tree/0.11.0" + }, + "funding": [ + { + "url": "https://github.com/BenMorel", + "type": "github" + } + ], + "time": "2023-01-15T23:15:59+00:00" + }, + { + "name": "carbonphp/carbon-doctrine-types", + "version": "2.1.0", + "source": { + "type": "git", + "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git", + "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/99f76ffa36cce3b70a4a6abce41dba15ca2e84cb", + "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "conflict": { + "doctrine/dbal": "<3.7.0 || >=4.0.0" + }, + "require-dev": { + "doctrine/dbal": "^3.7.0", + "nesbot/carbon": "^2.71.0 || ^3.0.0", + "phpunit/phpunit": "^10.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Carbon\\Doctrine\\": "src/Carbon/Doctrine/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "KyleKatarn", + "email": "kylekatarnls@gmail.com" + } + ], + "description": "Types to use Carbon in Doctrine", + "keywords": [ + "carbon", + "date", + "datetime", + "doctrine", + "time" + ], + "support": { + "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues", + "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/2.1.0" + }, + "funding": [ + { + "url": "https://github.com/kylekatarnls", + "type": "github" + }, + { + "url": "https://opencollective.com/Carbon", + "type": "open_collective" + }, + { + "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon", + "type": "tidelift" + } + ], + "time": "2023-12-11T17:09:12+00:00" + }, + { + "name": "cocur/slugify", + "version": "v4.5.1", + "source": { + "type": "git", + "url": "https://github.com/cocur/slugify.git", + "reference": "7c6e088228b9f082050876ae8b0cd287b117b840" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cocur/slugify/zipball/7c6e088228b9f082050876ae8b0cd287b117b840", + "reference": "7c6e088228b9f082050876ae8b0cd287b117b840", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": "~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0" + }, + "conflict": { + "symfony/config": "<3.4 || >=4,<4.3", + "symfony/dependency-injection": "<3.4 || >=4,<4.3", + "symfony/http-kernel": "<3.4 || >=4,<4.3", + "twig/twig": "<2.12.1" + }, + "require-dev": { + "laravel/framework": "^5.0|^6.0|^7.0|^8.0", + "latte/latte": "~2.2", + "league/container": "^2.2.0", + "mikey179/vfsstream": "~1.6.8", + "mockery/mockery": "^1.3", + "nette/di": "~2.4", + "pimple/pimple": "~1.1", + "plumphp/plum": "~0.1", + "symfony/config": "^3.4 || ^4.3 || ^5.0 || ^6.0", + "symfony/dependency-injection": "^3.4 || ^4.3 || ^5.0 || ^6.0", + "symfony/http-kernel": "^3.4 || ^4.3 || ^5.0 || ^6.0", + "symfony/phpunit-bridge": "^5.4 || ^6.0", + "twig/twig": "^2.12.1 || ~3.0", + "zendframework/zend-modulemanager": "~2.2", + "zendframework/zend-servicemanager": "~2.2", + "zendframework/zend-view": "~2.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Cocur\\Slugify\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Florian Eckerstorfer", + "email": "florian@eckerstorfer.co", + "homepage": "https://florian.ec" + }, + { + "name": "Ivo Bathke", + "email": "ivo.bathke@gmail.com" + } + ], + "description": "Converts a string into a slug.", + "keywords": [ + "slug", + "slugify" + ], + "support": { + "issues": "https://github.com/cocur/slugify/issues", + "source": "https://github.com/cocur/slugify/tree/v4.5.1" + }, + "time": "2023-09-17T07:26:20+00:00" + }, + { + "name": "creativeorange/gravatar", + "version": "v1.0.24", + "source": { + "type": "git", + "url": "https://github.com/creativeorange/gravatar.git", + "reference": "ec0d78c7d4ef6d66c3cc09b6a03ab8d53e44379f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/creativeorange/gravatar/zipball/ec0d78c7d4ef6d66c3cc09b6a03ab8d53e44379f", + "reference": "ec0d78c7d4ef6d66c3cc09b6a03ab8d53e44379f", + "shasum": "" + }, + "require": { + "illuminate/support": "^5|^6|^7|^8|^9|^10.0|^11.0", + "php": ">=5.4.0" + }, + "require-dev": { + "nunomaduro/larastan": "^0.6.2|^2.4", + "orchestra/testbench": "^5.4|^8.0|^9.0", + "php": ">=7.2" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Creativeorange\\Gravatar\\GravatarServiceProvider" + ], + "aliases": { + "Gravatar": "Creativeorange\\Gravatar\\Facades\\Gravatar" + } + } + }, + "autoload": { + "psr-4": { + "Creativeorange\\Gravatar\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaco Tijssen", + "email": "jaco@creativeorange.nl", + "homepage": "https://www.creativeorange.nl", + "role": "Developer" + } + ], + "description": "A Laravel Gravatar package for retrieving gravatar image URLs or checking the existance of an image.", + "keywords": [ + "avatar", + "gravatar", + "laravel" + ], + "support": { + "issues": "https://github.com/creativeorange/gravatar/issues", + "source": "https://github.com/creativeorange/gravatar/tree/v1.0.24" + }, + "time": "2024-02-28T09:23:55+00:00" + }, + { + "name": "cviebrock/eloquent-sluggable", + "version": "10.0.0", + "source": { + "type": "git", + "url": "https://github.com/cviebrock/eloquent-sluggable.git", + "reference": "92f456b10337ca97c1cccfcc853a1cf51d2cedd0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cviebrock/eloquent-sluggable/zipball/92f456b10337ca97c1cccfcc853a1cf51d2cedd0", + "reference": "92f456b10337ca97c1cccfcc853a1cf51d2cedd0", + "shasum": "" + }, + "require": { + "cocur/slugify": "^4.3", + "illuminate/config": "^10.0", + "illuminate/database": "^10.0", + "illuminate/support": "^10.0", + "php": "^8.1" + }, + "require-dev": { + "limedeck/phpunit-detailed-printer": "^6.0", + "mockery/mockery": "^1.4.4", + "orchestra/testbench": "^8.0", + "pestphp/pest": "2.x-dev" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Cviebrock\\EloquentSluggable\\ServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Cviebrock\\EloquentSluggable\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Colin Viebrock", + "email": "colin@viebrock.ca" + } + ], + "description": "Easy creation of slugs for your Eloquent models in Laravel", + "homepage": "https://github.com/cviebrock/eloquent-sluggable", + "keywords": [ + "eloquent", + "eloquent-sluggable", + "laravel", + "lumen", + "slug", + "sluggable" + ], + "support": { + "issues": "https://github.com/cviebrock/eloquent-sluggable/issues", + "source": "https://github.com/cviebrock/eloquent-sluggable/tree/10.0.0" + }, + "funding": [ + { + "url": "https://github.com/cviebrock", + "type": "github" + } + ], + "time": "2023-02-16T23:01:35+00:00" + }, + { + "name": "dflydev/dot-access-data", + "version": "v3.0.2", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-dot-access-data.git", + "reference": "f41715465d65213d644d3141a6a93081be5d3549" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549", + "reference": "f41715465d65213d644d3141a6a93081be5d3549", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.42", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3", + "scrutinizer/ocular": "1.6.0", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Dflydev\\DotAccessData\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Carlos Frutos", + "email": "carlos@kiwing.it", + "homepage": "https://github.com/cfrutos" + }, + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com" + } + ], + "description": "Given a deep data structure, access data by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "keywords": [ + "access", + "data", + "dot", + "notation" + ], + "support": { + "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", + "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2" + }, + "time": "2022-10-27T11:44:00+00:00" + }, + { + "name": "diglactic/laravel-breadcrumbs", + "version": "v8.1.1", + "source": { + "type": "git", + "url": "https://github.com/diglactic/laravel-breadcrumbs.git", + "reference": "f72a78eb3e26aea507d7888a65f15e5790864e21" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/diglactic/laravel-breadcrumbs/zipball/f72a78eb3e26aea507d7888a65f15e5790864e21", + "reference": "f72a78eb3e26aea507d7888a65f15e5790864e21", + "shasum": "" + }, + "require": { + "facade/ignition-contracts": "^1.0", + "laravel/framework": "^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "davejamesmiller/laravel-breadcrumbs": "*" + }, + "require-dev": { + "orchestra/testbench": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0", + "php-coveralls/php-coveralls": "^2.4", + "phpunit/phpunit": "^8.5 || ^9.5", + "spatie/phpunit-snapshot-assertions": "^2.2 || ^4.2" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Diglactic\\Breadcrumbs\\ServiceProvider" + ], + "aliases": { + "Breadcrumbs": "Diglactic\\Breadcrumbs\\Breadcrumbs" + } + } + }, + "autoload": { + "psr-4": { + "Diglactic\\Breadcrumbs\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Sheng Slogar", + "email": "sheng@diglactic.com", + "role": "Maintainer" + }, + { + "name": "Dave James Miller", + "email": "dave@davejamesmiller.com", + "role": "Original Creator" + } + ], + "description": "A simple Laravel-style way to create breadcrumbs.", + "homepage": "https://github.com/diglactic/laravel-breadcrumbs", + "keywords": [ + "laravel" + ], + "support": { + "issues": "https://github.com/diglactic/laravel-breadcrumbs/issues", + "source": "https://github.com/diglactic/laravel-breadcrumbs/tree/v8.1.1" + }, + "time": "2023-04-17T23:24:15+00:00" + }, + { + "name": "doctrine/cache", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/cache.git", + "reference": "1ca8f21980e770095a31456042471a57bc4c68fb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/cache/zipball/1ca8f21980e770095a31456042471a57bc4c68fb", + "reference": "1ca8f21980e770095a31456042471a57bc4c68fb", + "shasum": "" + }, + "require": { + "php": "~7.1 || ^8.0" + }, + "conflict": { + "doctrine/common": ">2.2,<2.4" + }, + "require-dev": { + "cache/integration-tests": "dev-master", + "doctrine/coding-standard": "^9", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psr/cache": "^1.0 || ^2.0 || ^3.0", + "symfony/cache": "^4.4 || ^5.4 || ^6", + "symfony/var-exporter": "^4.4 || ^5.4 || ^6" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", + "homepage": "https://www.doctrine-project.org/projects/cache.html", + "keywords": [ + "abstraction", + "apcu", + "cache", + "caching", + "couchdb", + "memcached", + "php", + "redis", + "xcache" + ], + "support": { + "issues": "https://github.com/doctrine/cache/issues", + "source": "https://github.com/doctrine/cache/tree/2.2.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache", + "type": "tidelift" + } + ], + "time": "2022-05-20T20:07:39+00:00" + }, + { + "name": "doctrine/dbal", + "version": "3.8.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/dbal.git", + "reference": "db922ba9436b7b18a23d1653a0b41ff2369ca41c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/db922ba9436b7b18a23d1653a0b41ff2369ca41c", + "reference": "db922ba9436b7b18a23d1653a0b41ff2369ca41c", + "shasum": "" + }, + "require": { + "composer-runtime-api": "^2", + "doctrine/cache": "^1.11|^2.0", + "doctrine/deprecations": "^0.5.3|^1", + "doctrine/event-manager": "^1|^2", + "php": "^7.4 || ^8.0", + "psr/cache": "^1|^2|^3", + "psr/log": "^1|^2|^3" + }, + "require-dev": { + "doctrine/coding-standard": "12.0.0", + "fig/log-test": "^1", + "jetbrains/phpstorm-stubs": "2023.1", + "phpstan/phpstan": "1.10.58", + "phpstan/phpstan-strict-rules": "^1.5", + "phpunit/phpunit": "9.6.16", + "psalm/plugin-phpunit": "0.18.4", + "slevomat/coding-standard": "8.13.1", + "squizlabs/php_codesniffer": "3.9.0", + "symfony/cache": "^5.4|^6.0|^7.0", + "symfony/console": "^4.4|^5.4|^6.0|^7.0", + "vimeo/psalm": "4.30.0" + }, + "suggest": { + "symfony/console": "For helpful console commands such as SQL execution and import of files." + }, + "bin": [ + "bin/doctrine-dbal" + ], + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\DBAL\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + } + ], + "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", + "homepage": "https://www.doctrine-project.org/projects/dbal.html", + "keywords": [ + "abstraction", + "database", + "db2", + "dbal", + "mariadb", + "mssql", + "mysql", + "oci8", + "oracle", + "pdo", + "pgsql", + "postgresql", + "queryobject", + "sasql", + "sql", + "sqlite", + "sqlserver", + "sqlsrv" + ], + "support": { + "issues": "https://github.com/doctrine/dbal/issues", + "source": "https://github.com/doctrine/dbal/tree/3.8.3" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal", + "type": "tidelift" + } + ], + "time": "2024-03-03T15:55:06+00:00" + }, + { + "name": "doctrine/deprecations", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "phpstan/phpstan": "1.4.10 || 1.10.15", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psalm/plugin-phpunit": "0.18.4", + "psr/log": "^1 || ^2 || ^3", + "vimeo/psalm": "4.30.0 || 5.12.0" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/1.1.3" + }, + "time": "2024-01-30T19:34:25+00:00" + }, + { + "name": "doctrine/event-manager", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/event-manager.git", + "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/750671534e0241a7c50ea5b43f67e23eb5c96f32", + "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "conflict": { + "doctrine/common": "<2.9" + }, + "require-dev": { + "doctrine/coding-standard": "^10", + "phpstan/phpstan": "^1.8.8", + "phpunit/phpunit": "^9.5", + "vimeo/psalm": "^4.28" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", + "homepage": "https://www.doctrine-project.org/projects/event-manager.html", + "keywords": [ + "event", + "event dispatcher", + "event manager", + "event system", + "events" + ], + "support": { + "issues": "https://github.com/doctrine/event-manager/issues", + "source": "https://github.com/doctrine/event-manager/tree/2.0.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager", + "type": "tidelift" + } + ], + "time": "2022-10-12T20:59:15+00:00" + }, + { + "name": "doctrine/inflector", + "version": "2.0.10", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc", + "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^11.0", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.3", + "phpunit/phpunit": "^8.5 || ^9.5", + "vimeo/psalm": "^4.25 || ^5.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", + "homepage": "https://www.doctrine-project.org/projects/inflector.html", + "keywords": [ + "inflection", + "inflector", + "lowercase", + "manipulation", + "php", + "plural", + "singular", + "strings", + "uppercase", + "words" + ], + "support": { + "issues": "https://github.com/doctrine/inflector/issues", + "source": "https://github.com/doctrine/inflector/tree/2.0.10" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", + "type": "tidelift" + } + ], + "time": "2024-02-18T20:23:39+00:00" + }, + { + "name": "doctrine/lexer", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "doctrine/coding-standard": "^12", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^10.5", + "psalm/plugin-phpunit": "^0.18.3", + "vimeo/psalm": "^5.21" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Lexer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "keywords": [ + "annotations", + "docblock", + "lexer", + "parser", + "php" + ], + "support": { + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/3.0.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } + ], + "time": "2024-02-05T11:56:58+00:00" + }, + { + "name": "dragonmantank/cron-expression", + "version": "v3.3.3", + "source": { + "type": "git", + "url": "https://github.com/dragonmantank/cron-expression.git", + "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/adfb1f505deb6384dc8b39804c5065dd3c8c8c0a", + "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a", + "shasum": "" + }, + "require": { + "php": "^7.2|^8.0", + "webmozart/assert": "^1.0" + }, + "replace": { + "mtdowling/cron-expression": "^1.0" + }, + "require-dev": { + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-webmozart-assert": "^1.0", + "phpunit/phpunit": "^7.0|^8.0|^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Cron\\": "src/Cron/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Tankersley", + "email": "chris@ctankersley.com", + "homepage": "https://github.com/dragonmantank" + } + ], + "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", + "keywords": [ + "cron", + "schedule" + ], + "support": { + "issues": "https://github.com/dragonmantank/cron-expression/issues", + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.3" + }, + "funding": [ + { + "url": "https://github.com/dragonmantank", + "type": "github" + } + ], + "time": "2023-08-10T19:36:49+00:00" + }, + { + "name": "egulias/email-validator", + "version": "4.0.2", + "source": { + "type": "git", + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e", + "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^2.0 || ^3.0", + "php": ">=8.1", + "symfony/polyfill-intl-idn": "^1.26" + }, + "require-dev": { + "phpunit/phpunit": "^10.2", + "vimeo/psalm": "^5.12" + }, + "suggest": { + "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Egulias\\EmailValidator\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eduardo Gulias Davis" + } + ], + "description": "A library for validating emails against several RFCs", + "homepage": "https://github.com/egulias/EmailValidator", + "keywords": [ + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" + ], + "support": { + "issues": "https://github.com/egulias/EmailValidator/issues", + "source": "https://github.com/egulias/EmailValidator/tree/4.0.2" + }, + "funding": [ + { + "url": "https://github.com/egulias", + "type": "github" + } + ], + "time": "2023-10-06T06:47:41+00:00" + }, + { + "name": "ericli1018/awesome-fields-for-backpack", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/ericli1018/awesome-fields-for-backpack.git", + "reference": "fdc2a8359f04357c460f7013c696c0f4e2d2d7c3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ericli1018/awesome-fields-for-backpack/zipball/fdc2a8359f04357c460f7013c696c0f4e2d2d7c3", + "reference": "fdc2a8359f04357c460f7013c696c0f4e2d2d7c3", + "shasum": "" + }, + "require": { + "backpack/crud": "^6.3", + "illuminate/support": "~8|~9|~10", + "mklkj/tinymce-i18n": "^24.1.29", + "select2/select2": "^4.0.13", + "tinymce/tinymce": "^5.10.9" + }, + "require-dev": { + "orchestra/testbench": "~5|~6", + "phpunit/phpunit": "~9.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Ericli1018\\AwesomeFieldsForBackpack\\AddonServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Ericli1018\\AwesomeFieldsForBackpack\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "ericli1018", + "email": "ericli1018@yahoo.com.tw", + "homepage": "https://github.com/ericli1018" + } + ], + "description": "Provide convenient fields", + "homepage": "https://github.com/ericli1018/awesome-fields-for-backpack", + "keywords": [ + "AwesomeFieldsForBackpack", + "Backpack Addon", + "Backpack for Laravel", + "backpack", + "laravel" + ], + "support": { + "issues": "https://github.com/ericli1018/awesome-fields-for-backpack/issues", + "source": "https://github.com/ericli1018/awesome-fields-for-backpack/tree/1.1.1" + }, + "time": "2024-03-04T18:13:58+00:00" + }, + { + "name": "facade/ignition-contracts", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/facade/ignition-contracts.git", + "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/facade/ignition-contracts/zipball/3c921a1cdba35b68a7f0ccffc6dffc1995b18267", + "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^v2.15.8", + "phpunit/phpunit": "^9.3.11", + "vimeo/psalm": "^3.17.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Facade\\IgnitionContracts\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://flareapp.io", + "role": "Developer" + } + ], + "description": "Solution contracts for Ignition", + "homepage": "https://github.com/facade/ignition-contracts", + "keywords": [ + "contracts", + "flare", + "ignition" + ], + "support": { + "issues": "https://github.com/facade/ignition-contracts/issues", + "source": "https://github.com/facade/ignition-contracts/tree/1.0.2" + }, + "time": "2020-10-16T08:27:54+00:00" + }, + { + "name": "fruitcake/php-cors", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/fruitcake/php-cors.git", + "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/3d158f36e7875e2f040f37bc0573956240a5a38b", + "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b", + "shasum": "" + }, + "require": { + "php": "^7.4|^8.0", + "symfony/http-foundation": "^4.4|^5.4|^6|^7" + }, + "require-dev": { + "phpstan/phpstan": "^1.4", + "phpunit/phpunit": "^9", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "autoload": { + "psr-4": { + "Fruitcake\\Cors\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fruitcake", + "homepage": "https://fruitcake.nl" + }, + { + "name": "Barryvdh", + "email": "barryvdh@gmail.com" + } + ], + "description": "Cross-origin resource sharing library for the Symfony HttpFoundation", + "homepage": "https://github.com/fruitcake/php-cors", + "keywords": [ + "cors", + "laravel", + "symfony" + ], + "support": { + "issues": "https://github.com/fruitcake/php-cors/issues", + "source": "https://github.com/fruitcake/php-cors/tree/v1.3.0" + }, + "funding": [ + { + "url": "https://fruitcake.nl", + "type": "custom" + }, + { + "url": "https://github.com/barryvdh", + "type": "github" + } + ], + "time": "2023-10-12T05:21:21+00:00" + }, + { + "name": "graham-campbell/result-type", + "version": "v1.1.2", + "source": { + "type": "git", + "url": "https://github.com/GrahamCampbell/Result-Type.git", + "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/fbd48bce38f73f8a4ec8583362e732e4095e5862", + "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "GrahamCampbell\\ResultType\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + } + ], + "description": "An Implementation Of The Result Type", + "keywords": [ + "Graham Campbell", + "GrahamCampbell", + "Result Type", + "Result-Type", + "result" + ], + "support": { + "issues": "https://github.com/GrahamCampbell/Result-Type/issues", + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.2" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type", + "type": "tidelift" + } + ], + "time": "2023-11-12T22:16:48+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "7.8.1", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "41042bc7ab002487b876a0683fc8dce04ddce104" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104", + "reference": "41042bc7ab002487b876a0683fc8dce04ddce104", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.5.3 || ^2.0.1", + "guzzlehttp/psr7": "^1.9.1 || ^2.5.1", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "provide": { + "psr/http-client-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "ext-curl": "*", + "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", + "php-http/message-factory": "^1.1", + "phpunit/phpunit": "^8.5.36 || ^9.6.15", + "psr/log": "^1.1 || ^2.0 || ^3.0" + }, + "suggest": { + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "psr-18", + "psr-7", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/7.8.1" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ], + "time": "2023-12-03T20:35:24+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223", + "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.36 || ^9.6.15" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2023-12-03T20:19:20+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "2.6.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221", + "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.1 || ^2.0", + "ralouphie/getallheaders": "^3.0" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "http-interop/http-factory-tests": "^0.9", + "phpunit/phpunit": "^8.5.36 || ^9.6.15" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/2.6.2" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2023-12-03T20:05:35+00:00" + }, + { + "name": "guzzlehttp/uri-template", + "version": "v1.0.3", + "source": { + "type": "git", + "url": "https://github.com/guzzle/uri-template.git", + "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/uri-template/zipball/ecea8feef63bd4fef1f037ecb288386999ecc11c", + "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "symfony/polyfill-php80": "^1.24" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.36 || ^9.6.15", + "uri-template/tests": "1.0.0" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\UriTemplate\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + } + ], + "description": "A polyfill class for uri_template of PHP", + "keywords": [ + "guzzlehttp", + "uri-template" + ], + "support": { + "issues": "https://github.com/guzzle/uri-template/issues", + "source": "https://github.com/guzzle/uri-template/tree/v1.0.3" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/uri-template", + "type": "tidelift" + } + ], + "time": "2023-12-03T19:50:20+00:00" + }, + { + "name": "intervention/image", + "version": "2.7.2", + "source": { + "type": "git", + "url": "https://github.com/Intervention/image.git", + "reference": "04be355f8d6734c826045d02a1079ad658322dad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Intervention/image/zipball/04be355f8d6734c826045d02a1079ad658322dad", + "reference": "04be355f8d6734c826045d02a1079ad658322dad", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "guzzlehttp/psr7": "~1.1 || ^2.0", + "php": ">=5.4.0" + }, + "require-dev": { + "mockery/mockery": "~0.9.2", + "phpunit/phpunit": "^4.8 || ^5.7 || ^7.5.15" + }, + "suggest": { + "ext-gd": "to use GD library based image processing.", + "ext-imagick": "to use Imagick based image processing.", + "intervention/imagecache": "Caching extension for the Intervention Image library" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.4-dev" + }, + "laravel": { + "providers": [ + "Intervention\\Image\\ImageServiceProvider" + ], + "aliases": { + "Image": "Intervention\\Image\\Facades\\Image" + } + } + }, + "autoload": { + "psr-4": { + "Intervention\\Image\\": "src/Intervention/Image" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Oliver Vogel", + "email": "oliver@intervention.io", + "homepage": "https://intervention.io/" + } + ], + "description": "Image handling and manipulation library with support for Laravel integration", + "homepage": "http://image.intervention.io/", + "keywords": [ + "gd", + "image", + "imagick", + "laravel", + "thumbnail", + "watermark" + ], + "support": { + "issues": "https://github.com/Intervention/image/issues", + "source": "https://github.com/Intervention/image/tree/2.7.2" + }, + "funding": [ + { + "url": "https://paypal.me/interventionio", + "type": "custom" + }, + { + "url": "https://github.com/Intervention", + "type": "github" + } + ], + "time": "2022-05-21T17:30:32+00:00" + }, + { + "name": "laravel/framework", + "version": "v10.46.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/framework.git", + "reference": "5e95946a8283a8d5c015035793f9c61c297e937f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/framework/zipball/5e95946a8283a8d5c015035793f9c61c297e937f", + "reference": "5e95946a8283a8d5c015035793f9c61c297e937f", + "shasum": "" + }, + "require": { + "brick/math": "^0.9.3|^0.10.2|^0.11|^0.12", + "composer-runtime-api": "^2.2", + "doctrine/inflector": "^2.0.5", + "dragonmantank/cron-expression": "^3.3.2", + "egulias/email-validator": "^3.2.1|^4.0", + "ext-ctype": "*", + "ext-filter": "*", + "ext-hash": "*", + "ext-mbstring": "*", + "ext-openssl": "*", + "ext-session": "*", + "ext-tokenizer": "*", + "fruitcake/php-cors": "^1.2", + "guzzlehttp/uri-template": "^1.0", + "laravel/prompts": "^0.1.9", + "laravel/serializable-closure": "^1.3", + "league/commonmark": "^2.2.1", + "league/flysystem": "^3.8.0", + "monolog/monolog": "^3.0", + "nesbot/carbon": "^2.67", + "nunomaduro/termwind": "^1.13", + "php": "^8.1", + "psr/container": "^1.1.1|^2.0.1", + "psr/log": "^1.0|^2.0|^3.0", + "psr/simple-cache": "^1.0|^2.0|^3.0", + "ramsey/uuid": "^4.7", + "symfony/console": "^6.2", + "symfony/error-handler": "^6.2", + "symfony/finder": "^6.2", + "symfony/http-foundation": "^6.4", + "symfony/http-kernel": "^6.2", + "symfony/mailer": "^6.2", + "symfony/mime": "^6.2", + "symfony/process": "^6.2", + "symfony/routing": "^6.2", + "symfony/uid": "^6.2", + "symfony/var-dumper": "^6.2", + "tijsverkoyen/css-to-inline-styles": "^2.2.5", + "vlucas/phpdotenv": "^5.4.1", + "voku/portable-ascii": "^2.0" + }, + "conflict": { + "carbonphp/carbon-doctrine-types": ">=3.0", + "doctrine/dbal": ">=4.0", + "phpunit/phpunit": ">=11.0.0", + "tightenco/collect": "<5.5.33" + }, + "provide": { + "psr/container-implementation": "1.1|2.0", + "psr/simple-cache-implementation": "1.0|2.0|3.0" + }, + "replace": { + "illuminate/auth": "self.version", + "illuminate/broadcasting": "self.version", + "illuminate/bus": "self.version", + "illuminate/cache": "self.version", + "illuminate/collections": "self.version", + "illuminate/conditionable": "self.version", + "illuminate/config": "self.version", + "illuminate/console": "self.version", + "illuminate/container": "self.version", + "illuminate/contracts": "self.version", + "illuminate/cookie": "self.version", + "illuminate/database": "self.version", + "illuminate/encryption": "self.version", + "illuminate/events": "self.version", + "illuminate/filesystem": "self.version", + "illuminate/hashing": "self.version", + "illuminate/http": "self.version", + "illuminate/log": "self.version", + "illuminate/macroable": "self.version", + "illuminate/mail": "self.version", + "illuminate/notifications": "self.version", + "illuminate/pagination": "self.version", + "illuminate/pipeline": "self.version", + "illuminate/process": "self.version", + "illuminate/queue": "self.version", + "illuminate/redis": "self.version", + "illuminate/routing": "self.version", + "illuminate/session": "self.version", + "illuminate/support": "self.version", + "illuminate/testing": "self.version", + "illuminate/translation": "self.version", + "illuminate/validation": "self.version", + "illuminate/view": "self.version" + }, + "require-dev": { + "ably/ably-php": "^1.0", + "aws/aws-sdk-php": "^3.235.5", + "doctrine/dbal": "^3.5.1", + "ext-gmp": "*", + "fakerphp/faker": "^1.21", + "guzzlehttp/guzzle": "^7.5", + "league/flysystem-aws-s3-v3": "^3.0", + "league/flysystem-ftp": "^3.0", + "league/flysystem-path-prefixing": "^3.3", + "league/flysystem-read-only": "^3.3", + "league/flysystem-sftp-v3": "^3.0", + "mockery/mockery": "^1.5.1", + "nyholm/psr7": "^1.2", + "orchestra/testbench-core": "^8.18", + "pda/pheanstalk": "^4.0", + "phpstan/phpstan": "^1.4.7", + "phpunit/phpunit": "^10.0.7", + "predis/predis": "^2.0.2", + "symfony/cache": "^6.2", + "symfony/http-client": "^6.2.4", + "symfony/psr-http-message-bridge": "^2.0" + }, + "suggest": { + "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", + "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.235.5).", + "brianium/paratest": "Required to run tests in parallel (^6.0).", + "doctrine/dbal": "Required to rename columns and drop SQLite columns (^3.5.1).", + "ext-apcu": "Required to use the APC cache driver.", + "ext-fileinfo": "Required to use the Filesystem class.", + "ext-ftp": "Required to use the Flysystem FTP driver.", + "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().", + "ext-memcached": "Required to use the memcache cache driver.", + "ext-pcntl": "Required to use all features of the queue worker and console signal trapping.", + "ext-pdo": "Required to use all database features.", + "ext-posix": "Required to use all features of the queue worker.", + "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).", + "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).", + "filp/whoops": "Required for friendly error pages in development (^2.14.3).", + "guzzlehttp/guzzle": "Required to use the HTTP Client and the ping methods on schedules (^7.5).", + "laravel/tinker": "Required to use the tinker console command (^2.0).", + "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.0).", + "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.0).", + "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.3).", + "league/flysystem-read-only": "Required to use read-only disks (^3.3)", + "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.0).", + "mockery/mockery": "Required to use mocking (^1.5.1).", + "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).", + "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).", + "phpunit/phpunit": "Required to use assertions and run tests (^9.5.8|^10.0.7).", + "predis/predis": "Required to use the predis connector (^2.0.2).", + "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", + "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).", + "symfony/cache": "Required to PSR-6 cache bridge (^6.2).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^6.2).", + "symfony/http-client": "Required to enable support for the Symfony API mail transports (^6.2).", + "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^6.2).", + "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^6.2).", + "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "10.x-dev" + } + }, + "autoload": { + "files": [ + "src/Illuminate/Collections/helpers.php", + "src/Illuminate/Events/functions.php", + "src/Illuminate/Filesystem/functions.php", + "src/Illuminate/Foundation/helpers.php", + "src/Illuminate/Support/helpers.php" + ], + "psr-4": { + "Illuminate\\": "src/Illuminate/", + "Illuminate\\Support\\": [ + "src/Illuminate/Macroable/", + "src/Illuminate/Collections/", + "src/Illuminate/Conditionable/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Laravel Framework.", + "homepage": "https://laravel.com", + "keywords": [ + "framework", + "laravel" + ], + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2024-02-27T16:46:54+00:00" + }, + { + "name": "laravel/prompts", + "version": "v0.1.16", + "source": { + "type": "git", + "url": "https://github.com/laravel/prompts.git", + "reference": "ca6872ab6aec3ab61db3a61f83a6caf764ec7781" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/prompts/zipball/ca6872ab6aec3ab61db3a61f83a6caf764ec7781", + "reference": "ca6872ab6aec3ab61db3a61f83a6caf764ec7781", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "illuminate/collections": "^10.0|^11.0", + "php": "^8.1", + "symfony/console": "^6.2|^7.0" + }, + "conflict": { + "illuminate/console": ">=10.17.0 <10.25.0", + "laravel/framework": ">=10.17.0 <10.25.0" + }, + "require-dev": { + "mockery/mockery": "^1.5", + "pestphp/pest": "^2.3", + "phpstan/phpstan": "^1.11", + "phpstan/phpstan-mockery": "^1.1" + }, + "suggest": { + "ext-pcntl": "Required for the spinner to be animated." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "0.1.x-dev" + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Laravel\\Prompts\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "support": { + "issues": "https://github.com/laravel/prompts/issues", + "source": "https://github.com/laravel/prompts/tree/v0.1.16" + }, + "time": "2024-02-21T19:25:27+00:00" + }, + { + "name": "laravel/sanctum", + "version": "v3.3.3", + "source": { + "type": "git", + "url": "https://github.com/laravel/sanctum.git", + "reference": "8c104366459739f3ada0e994bcd3e6fd681ce3d5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/sanctum/zipball/8c104366459739f3ada0e994bcd3e6fd681ce3d5", + "reference": "8c104366459739f3ada0e994bcd3e6fd681ce3d5", + "shasum": "" + }, + "require": { + "ext-json": "*", + "illuminate/console": "^9.21|^10.0", + "illuminate/contracts": "^9.21|^10.0", + "illuminate/database": "^9.21|^10.0", + "illuminate/support": "^9.21|^10.0", + "php": "^8.0.2" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "orchestra/testbench": "^7.28.2|^8.8.3", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + }, + "laravel": { + "providers": [ + "Laravel\\Sanctum\\SanctumServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Sanctum\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Laravel Sanctum provides a featherweight authentication system for SPAs and simple APIs.", + "keywords": [ + "auth", + "laravel", + "sanctum" + ], + "support": { + "issues": "https://github.com/laravel/sanctum/issues", + "source": "https://github.com/laravel/sanctum" + }, + "time": "2023-12-19T18:44:48+00:00" + }, + { + "name": "laravel/serializable-closure", + "version": "v1.3.3", + "source": { + "type": "git", + "url": "https://github.com/laravel/serializable-closure.git", + "reference": "3dbf8a8e914634c48d389c1234552666b3d43754" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/3dbf8a8e914634c48d389c1234552666b3d43754", + "reference": "3dbf8a8e914634c48d389c1234552666b3d43754", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0" + }, + "require-dev": { + "nesbot/carbon": "^2.61", + "pestphp/pest": "^1.21.3", + "phpstan/phpstan": "^1.8.2", + "symfony/var-dumper": "^5.4.11" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laravel\\SerializableClosure\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + }, + { + "name": "Nuno Maduro", + "email": "nuno@laravel.com" + } + ], + "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.", + "keywords": [ + "closure", + "laravel", + "serializable" + ], + "support": { + "issues": "https://github.com/laravel/serializable-closure/issues", + "source": "https://github.com/laravel/serializable-closure" + }, + "time": "2023-11-08T14:08:06+00:00" + }, + { + "name": "laravel/tinker", + "version": "v2.9.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/tinker.git", + "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/tinker/zipball/502e0fe3f0415d06d5db1f83a472f0f3b754bafe", + "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe", + "shasum": "" + }, + "require": { + "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "php": "^7.2.5|^8.0", + "psy/psysh": "^0.11.1|^0.12.0", + "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0" + }, + "require-dev": { + "mockery/mockery": "~1.3.3|^1.4.2", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^8.5.8|^9.3.3" + }, + "suggest": { + "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0)." + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laravel\\Tinker\\TinkerServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Tinker\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Powerful REPL for the Laravel framework.", + "keywords": [ + "REPL", + "Tinker", + "laravel", + "psysh" + ], + "support": { + "issues": "https://github.com/laravel/tinker/issues", + "source": "https://github.com/laravel/tinker/tree/v2.9.0" + }, + "time": "2024-01-04T16:10:04+00:00" + }, + { + "name": "league/commonmark", + "version": "2.4.2", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/commonmark.git", + "reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/91c24291965bd6d7c46c46a12ba7492f83b1cadf", + "reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "league/config": "^1.1.1", + "php": "^7.4 || ^8.0", + "psr/event-dispatcher": "^1.0", + "symfony/deprecation-contracts": "^2.1 || ^3.0", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "cebe/markdown": "^1.0", + "commonmark/cmark": "0.30.3", + "commonmark/commonmark.js": "0.30.0", + "composer/package-versions-deprecated": "^1.8", + "embed/embed": "^4.4", + "erusev/parsedown": "^1.0", + "ext-json": "*", + "github/gfm": "0.29.0", + "michelf/php-markdown": "^1.4 || ^2.0", + "nyholm/psr7": "^1.5", + "phpstan/phpstan": "^1.8.2", + "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0", + "scrutinizer/ocular": "^1.8.1", + "symfony/finder": "^5.3 | ^6.0 || ^7.0", + "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 || ^7.0", + "unleashedtech/php-coding-standard": "^3.1.1", + "vimeo/psalm": "^4.24.0 || ^5.0.0" + }, + "suggest": { + "symfony/yaml": "v2.3+ required if using the Front Matter extension" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + } + }, + "autoload": { + "psr-4": { + "League\\CommonMark\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)", + "homepage": "https://commonmark.thephpleague.com", + "keywords": [ + "commonmark", + "flavored", + "gfm", + "github", + "github-flavored", + "markdown", + "md", + "parser" + ], + "support": { + "docs": "https://commonmark.thephpleague.com/", + "forum": "https://github.com/thephpleague/commonmark/discussions", + "issues": "https://github.com/thephpleague/commonmark/issues", + "rss": "https://github.com/thephpleague/commonmark/releases.atom", + "source": "https://github.com/thephpleague/commonmark" + }, + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/commonmark", + "type": "tidelift" + } + ], + "time": "2024-02-02T11:59:32+00:00" + }, + { + "name": "league/config", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/config.git", + "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/config/zipball/754b3604fb2984c71f4af4a9cbe7b57f346ec1f3", + "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "^3.0.1", + "nette/schema": "^1.2", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.8.2", + "phpunit/phpunit": "^9.5.5", + "scrutinizer/ocular": "^1.8.1", + "unleashedtech/php-coding-standard": "^3.1", + "vimeo/psalm": "^4.7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.2-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Config\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "Define configuration arrays with strict schemas and access values with dot notation", + "homepage": "https://config.thephpleague.com", + "keywords": [ + "array", + "config", + "configuration", + "dot", + "dot-access", + "nested", + "schema" + ], + "support": { + "docs": "https://config.thephpleague.com/", + "issues": "https://github.com/thephpleague/config/issues", + "rss": "https://github.com/thephpleague/config/releases.atom", + "source": "https://github.com/thephpleague/config" + }, + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + } + ], + "time": "2022-12-11T20:36:23+00:00" + }, + { + "name": "league/flysystem", + "version": "3.24.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem.git", + "reference": "b25a361508c407563b34fac6f64a8a17a8819675" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/b25a361508c407563b34fac6f64a8a17a8819675", + "reference": "b25a361508c407563b34fac6f64a8a17a8819675", + "shasum": "" + }, + "require": { + "league/flysystem-local": "^3.0.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" + }, + "conflict": { + "async-aws/core": "<1.19.0", + "async-aws/s3": "<1.14.0", + "aws/aws-sdk-php": "3.209.31 || 3.210.0", + "guzzlehttp/guzzle": "<7.0", + "guzzlehttp/ringphp": "<1.1.1", + "phpseclib/phpseclib": "3.0.15", + "symfony/http-client": "<5.2" + }, + "require-dev": { + "async-aws/s3": "^1.5 || ^2.0", + "async-aws/simple-s3": "^1.1 || ^2.0", + "aws/aws-sdk-php": "^3.295.10", + "composer/semver": "^3.0", + "ext-fileinfo": "*", + "ext-ftp": "*", + "ext-zip": "*", + "friendsofphp/php-cs-fixer": "^3.5", + "google/cloud-storage": "^1.23", + "microsoft/azure-storage-blob": "^1.1", + "phpseclib/phpseclib": "^3.0.34", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.5.11|^10.0", + "sabre/dav": "^4.6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "File storage abstraction for PHP", + "keywords": [ + "WebDAV", + "aws", + "cloud", + "file", + "files", + "filesystem", + "filesystems", + "ftp", + "s3", + "sftp", + "storage" + ], + "support": { + "issues": "https://github.com/thephpleague/flysystem/issues", + "source": "https://github.com/thephpleague/flysystem/tree/3.24.0" + }, + "funding": [ + { + "url": "https://ecologi.com/frankdejonge", + "type": "custom" + }, + { + "url": "https://github.com/frankdejonge", + "type": "github" + } + ], + "time": "2024-02-04T12:10:17+00:00" + }, + { + "name": "league/flysystem-local", + "version": "3.23.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem-local.git", + "reference": "b884d2bf9b53bb4804a56d2df4902bb51e253f00" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/b884d2bf9b53bb4804a56d2df4902bb51e253f00", + "reference": "b884d2bf9b53bb4804a56d2df4902bb51e253f00", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "league/flysystem": "^3.0.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\Local\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "Local filesystem adapter for Flysystem.", + "keywords": [ + "Flysystem", + "file", + "files", + "filesystem", + "local" + ], + "support": { + "issues": "https://github.com/thephpleague/flysystem-local/issues", + "source": "https://github.com/thephpleague/flysystem-local/tree/3.23.1" + }, + "funding": [ + { + "url": "https://ecologi.com/frankdejonge", + "type": "custom" + }, + { + "url": "https://github.com/frankdejonge", + "type": "github" + } + ], + "time": "2024-01-26T18:25:23+00:00" + }, + { + "name": "league/mime-type-detection", + "version": "1.15.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/mime-type-detection.git", + "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", + "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.2", + "phpstan/phpstan": "^0.12.68", + "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\MimeTypeDetection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "Mime-type detection for Flysystem", + "support": { + "issues": "https://github.com/thephpleague/mime-type-detection/issues", + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.15.0" + }, + "funding": [ + { + "url": "https://github.com/frankdejonge", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/flysystem", + "type": "tidelift" + } + ], + "time": "2024-01-28T23:22:08+00:00" + }, + { + "name": "mklkj/tinymce-i18n", + "version": "24.2.26", + "source": { + "type": "git", + "url": "https://github.com/mklkj/tinymce-i18n.git", + "reference": "a8392f310f2f5056e52c34da5f9320ef379881fa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mklkj/tinymce-i18n/zipball/a8392f310f2f5056e52c34da5f9320ef379881fa", + "reference": "a8392f310f2f5056e52c34da5f9320ef379881fa", + "shasum": "" + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "TinyMCE Community" + } + ], + "description": "Languages for TinyMCE 4, 5 and 6", + "homepage": "https://github.com/mklkj/tinymce-i18n", + "keywords": [ + "i18n", + "languages", + "tinymce" + ], + "support": { + "issues": "https://github.com/mklkj/tinymce-i18n/issues", + "source": "https://github.com/mklkj/tinymce-i18n/tree/24.2.26" + }, + "time": "2024-02-26T19:02:04+00:00" + }, + { + "name": "monolog/monolog", + "version": "3.5.0", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c915e2634718dbc8a4a15c61b0e62e7a44e14448", + "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^2.0 || ^3.0" + }, + "provide": { + "psr/log-implementation": "3.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^3.0", + "doctrine/couchdb": "~1.0@dev", + "elasticsearch/elasticsearch": "^7 || ^8", + "ext-json": "*", + "graylog2/gelf-php": "^1.4.2 || ^2.0", + "guzzlehttp/guzzle": "^7.4.5", + "guzzlehttp/psr7": "^2.2", + "mongodb/mongodb": "^1.8", + "php-amqplib/php-amqplib": "~2.4 || ^3", + "phpstan/phpstan": "^1.9", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-strict-rules": "^1.4", + "phpunit/phpunit": "^10.1", + "predis/predis": "^1.1 || ^2", + "ruflin/elastica": "^7", + "symfony/mailer": "^5.4 || ^6", + "symfony/mime": "^5.4 || ^6" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", + "ext-mbstring": "Allow to work properly with unicode symbols", + "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", + "ext-openssl": "Required to send log messages using SSL", + "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "https://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "support": { + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/3.5.0" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2023-10-27T15:32:31+00:00" + }, + { + "name": "nesbot/carbon", + "version": "2.72.3", + "source": { + "type": "git", + "url": "https://github.com/briannesbitt/Carbon.git", + "reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/0c6fd108360c562f6e4fd1dedb8233b423e91c83", + "reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83", + "shasum": "" + }, + "require": { + "carbonphp/carbon-doctrine-types": "*", + "ext-json": "*", + "php": "^7.1.8 || ^8.0", + "psr/clock": "^1.0", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" + }, + "provide": { + "psr/clock-implementation": "1.0" + }, + "require-dev": { + "doctrine/dbal": "^2.0 || ^3.1.4 || ^4.0", + "doctrine/orm": "^2.7 || ^3.0", + "friendsofphp/php-cs-fixer": "^3.0", + "kylekatarnls/multi-tester": "^2.0", + "ondrejmirtes/better-reflection": "*", + "phpmd/phpmd": "^2.9", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12.99 || ^1.7.14", + "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6", + "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20", + "squizlabs/php_codesniffer": "^3.4" + }, + "bin": [ + "bin/carbon" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-3.x": "3.x-dev", + "dev-master": "2.x-dev" + }, + "laravel": { + "providers": [ + "Carbon\\Laravel\\ServiceProvider" + ] + }, + "phpstan": { + "includes": [ + "extension.neon" + ] + } + }, + "autoload": { + "psr-4": { + "Carbon\\": "src/Carbon/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brian Nesbitt", + "email": "brian@nesbot.com", + "homepage": "https://markido.com" + }, + { + "name": "kylekatarnls", + "homepage": "https://github.com/kylekatarnls" + } + ], + "description": "An API extension for DateTime that supports 281 different languages.", + "homepage": "https://carbon.nesbot.com", + "keywords": [ + "date", + "datetime", + "time" + ], + "support": { + "docs": "https://carbon.nesbot.com/docs", + "issues": "https://github.com/briannesbitt/Carbon/issues", + "source": "https://github.com/briannesbitt/Carbon" + }, + "funding": [ + { + "url": "https://github.com/sponsors/kylekatarnls", + "type": "github" + }, + { + "url": "https://opencollective.com/Carbon#sponsor", + "type": "opencollective" + }, + { + "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme", + "type": "tidelift" + } + ], + "time": "2024-01-25T10:35:09+00:00" + }, + { + "name": "nette/schema", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/nette/schema.git", + "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/schema/zipball/a6d3a6d1f545f01ef38e60f375d1cf1f4de98188", + "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188", + "shasum": "" + }, + "require": { + "nette/utils": "^4.0", + "php": "8.1 - 8.3" + }, + "require-dev": { + "nette/tester": "^2.4", + "phpstan/phpstan-nette": "^1.0", + "tracy/tracy": "^2.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "📐 Nette Schema: validating data structures against a given Schema.", + "homepage": "https://nette.org", + "keywords": [ + "config", + "nette" + ], + "support": { + "issues": "https://github.com/nette/schema/issues", + "source": "https://github.com/nette/schema/tree/v1.3.0" + }, + "time": "2023-12-11T11:54:22+00:00" + }, + { + "name": "nette/utils", + "version": "v4.0.4", + "source": { + "type": "git", + "url": "https://github.com/nette/utils.git", + "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/utils/zipball/d3ad0aa3b9f934602cb3e3902ebccf10be34d218", + "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218", + "shasum": "" + }, + "require": { + "php": ">=8.0 <8.4" + }, + "conflict": { + "nette/finder": "<3", + "nette/schema": "<1.2.2" + }, + "require-dev": { + "jetbrains/phpstorm-attributes": "dev-master", + "nette/tester": "^2.5", + "phpstan/phpstan": "^1.0", + "tracy/tracy": "^2.9" + }, + "suggest": { + "ext-gd": "to use Image", + "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", + "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", + "ext-json": "to use Nette\\Utils\\Json", + "ext-mbstring": "to use Strings::lower() etc...", + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", + "homepage": "https://nette.org", + "keywords": [ + "array", + "core", + "datetime", + "images", + "json", + "nette", + "paginator", + "password", + "slugify", + "string", + "unicode", + "utf-8", + "utility", + "validation" + ], + "support": { + "issues": "https://github.com/nette/utils/issues", + "source": "https://github.com/nette/utils/tree/v4.0.4" + }, + "time": "2024-01-17T16:50:36+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v5.0.0", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4a21235f7e56e713259a6f76bf4b5ea08502b9dc", + "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-json": "*", + "ext-tokenizer": "*", + "php": ">=7.4" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.0" + }, + "time": "2024-01-07T17:17:35+00:00" + }, + { + "name": "nunomaduro/termwind", + "version": "v1.15.1", + "source": { + "type": "git", + "url": "https://github.com/nunomaduro/termwind.git", + "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/8ab0b32c8caa4a2e09700ea32925441385e4a5dc", + "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": "^8.0", + "symfony/console": "^5.3.0|^6.0.0" + }, + "require-dev": { + "ergebnis/phpstan-rules": "^1.0.", + "illuminate/console": "^8.0|^9.0", + "illuminate/support": "^8.0|^9.0", + "laravel/pint": "^1.0.0", + "pestphp/pest": "^1.21.0", + "pestphp/pest-plugin-mock": "^1.0", + "phpstan/phpstan": "^1.4.6", + "phpstan/phpstan-strict-rules": "^1.1.0", + "symfony/var-dumper": "^5.2.7|^6.0.0", + "thecodingmachine/phpstan-strict-rules": "^1.0.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Termwind\\Laravel\\TermwindServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/Functions.php" + ], + "psr-4": { + "Termwind\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Its like Tailwind CSS, but for the console.", + "keywords": [ + "cli", + "console", + "css", + "package", + "php", + "style" + ], + "support": { + "issues": "https://github.com/nunomaduro/termwind/issues", + "source": "https://github.com/nunomaduro/termwind/tree/v1.15.1" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://github.com/xiCO2k", + "type": "github" + } + ], + "time": "2023-02-08T01:06:31+00:00" + }, + { + "name": "outhebox/blade-flags", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/MohmmedAshraf/blade-flags.git", + "reference": "85e0480393707894c38ddab5f41f995086ff6833" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/MohmmedAshraf/blade-flags/zipball/85e0480393707894c38ddab5f41f995086ff6833", + "reference": "85e0480393707894c38ddab5f41f995086ff6833", + "shasum": "" + }, + "require": { + "blade-ui-kit/blade-icons": "^1.1", + "illuminate/support": "^8.0|^9.0|^10.0", + "php": "^7.4|^8.0|^8.1|^8.2" + }, + "require-dev": { + "orchestra/testbench": "^6.0|^7.0|^8.0", + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "OutheBox\\BladeFlags\\BladeFlagsServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "OutheBox\\BladeFlags\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mohamed Ashraf", + "email": "cupo.ashraf@gmail.com", + "homepage": "https://github.com/MohmmedAshraf" + } + ], + "description": "A package to easily make use of country & language flags in your Laravel Blade views.", + "homepage": "https://github.com/MohmmedAshraf/blade-flags", + "keywords": [ + "blade", + "country flags", + "flags", + "language flags", + "laravel" + ], + "support": { + "issues": "https://github.com/MohmmedAshraf/blade-flags/issues", + "source": "https://github.com/MohmmedAshraf/blade-flags/tree/1.2.1" + }, + "funding": [ + { + "url": "https://github.com/MohmmedAshraf", + "type": "github" + } + ], + "time": "2023-12-21T08:04:12+00:00" + }, + { + "name": "petercoles/multilingual-country-list", + "version": "1.2.11", + "source": { + "type": "git", + "url": "https://github.com/petercoles/Multilingual-Country-List.git", + "reference": "4b371da668a9aa6ab566d1beca3bc57515d3100d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/petercoles/Multilingual-Country-List/zipball/4b371da668a9aa6ab566d1beca3bc57515d3100d", + "reference": "4b371da668a9aa6ab566d1beca3bc57515d3100d", + "shasum": "" + }, + "require": { + "illuminate/support": "~5|~6|~7|~8|~9|~10", + "php": ">=7.4" + }, + "require-dev": { + "mockery/mockery": "^1", + "phpunit/phpunit": ">=9 <10" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "PeterColes\\Countries\\CountriesServiceProvider" + ], + "aliases": { + "Countries": "PeterColes\\Countries\\CountriesFacade" + } + } + }, + "autoload": { + "psr-4": { + "PeterColes\\Countries\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Peter Coles", + "email": "peterdcoles@gmail.com", + "homepage": "https://petercoles.com" + } + ], + "description": "Lookup Objects for ISO 3166 Country Names and Codes", + "homepage": "https://github.com/petercoles/multilingualcountry-list", + "keywords": [ + "ISO 3166", + "country codes", + "country lists", + "country lookup", + "laravel" + ], + "support": { + "issues": "https://github.com/petercoles/multilingual-country-list/issues", + "source": "https://github.com/petercoles/Multilingual-Country-List/tree/1.2.11" + }, + "time": "2023-09-05T15:52:42+00:00" + }, + { + "name": "phpoption/phpoption", + "version": "1.9.2", + "source": { + "type": "git", + "url": "https://github.com/schmittjoh/php-option.git", + "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/80735db690fe4fc5c76dfa7f9b770634285fa820", + "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": true + }, + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpOption\\": "src/PhpOption/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "https://github.com/schmittjoh" + }, + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + } + ], + "description": "Option Type for PHP", + "keywords": [ + "language", + "option", + "php", + "type" + ], + "support": { + "issues": "https://github.com/schmittjoh/php-option/issues", + "source": "https://github.com/schmittjoh/php-option/tree/1.9.2" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", + "type": "tidelift" + } + ], + "time": "2023-11-12T21:59:55+00:00" + }, + { + "name": "prologue/alerts", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/prologuephp/alerts.git", + "reference": "33e86d1f64dae7a8d6e29e7d6c282abc77a89b97" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/prologuephp/alerts/zipball/33e86d1f64dae7a8d6e29e7d6c282abc77a89b97", + "reference": "33e86d1f64dae7a8d6e29e7d6c282abc77a89b97", + "shasum": "" + }, + "require": { + "illuminate/config": "~9|^10", + "illuminate/session": "~9|^10", + "illuminate/support": "~9|^10" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^9" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Prologue\\Alerts\\AlertsServiceProvider" + ], + "aliases": { + "Alert": "Prologue\\Alerts\\Facades\\Alert" + } + } + }, + "autoload": { + "psr-4": { + "Prologue\\Alerts\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dries Vints", + "email": "dries.vints@gmail.com", + "homepage": "http://driesvints.com", + "role": "Creator" + }, + { + "name": "Cristian Tabacitu", + "email": "hello@tabacitu.ro", + "homepage": "http://tabacitu.ro", + "role": "Maintainer" + } + ], + "description": "Prologue Alerts is a package that handles global site messages.", + "keywords": [ + "alerts", + "laravel", + "messages" + ], + "support": { + "issues": "https://github.com/prologuephp/alerts/issues", + "source": "https://github.com/prologuephp/alerts/tree/1.1.0" + }, + "time": "2023-02-01T06:54:14+00:00" + }, + { + "name": "psr/cache", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/3.0.0" + }, + "time": "2021-02-03T23:26:27+00:00" + }, + { + "name": "psr/clock", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/clock.git", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Clock\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for reading the clock.", + "homepage": "https://github.com/php-fig/clock", + "keywords": [ + "clock", + "now", + "psr", + "psr-20", + "time" + ], + "support": { + "issues": "https://github.com/php-fig/clock/issues", + "source": "https://github.com/php-fig/clock/tree/1.0.0" + }, + "time": "2022-11-25T14:36:26+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Standard interfaces for event handling.", + "keywords": [ + "events", + "psr", + "psr-14" + ], + "support": { + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + }, + "time": "2019-01-08T18:20:26+00:00" + }, + { + "name": "psr/http-client", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client" + }, + "time": "2023-09-23T14:17:50+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "e616d01114759c4c489f93b099585439f795fe35" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35", + "reference": "e616d01114759c4c489f93b099585439f795fe35", + "shasum": "" + }, + "require": { + "php": ">=7.0.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory/tree/1.0.2" + }, + "time": "2023-04-10T20:10:41+00:00" + }, + { + "name": "psr/http-message", + "version": "2.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/2.0" + }, + "time": "2023-04-04T09:54:51+00:00" + }, + { + "name": "psr/log", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.0" + }, + "time": "2021-07-14T16:46:02+00:00" + }, + { + "name": "psr/simple-cache", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interfaces for simple caching", + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], + "support": { + "source": "https://github.com/php-fig/simple-cache/tree/3.0.0" + }, + "time": "2021-10-29T13:26:27+00:00" + }, + { + "name": "psy/psysh", + "version": "v0.12.0", + "source": { + "type": "git", + "url": "https://github.com/bobthecow/psysh.git", + "reference": "750bf031a48fd07c673dbe3f11f72362ea306d0d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/750bf031a48fd07c673dbe3f11f72362ea306d0d", + "reference": "750bf031a48fd07c673dbe3f11f72362ea306d0d", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-tokenizer": "*", + "nikic/php-parser": "^5.0 || ^4.0", + "php": "^8.0 || ^7.4", + "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", + "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" + }, + "conflict": { + "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.2" + }, + "suggest": { + "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", + "ext-pdo-sqlite": "The doc command requires SQLite to work.", + "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well." + }, + "bin": [ + "bin/psysh" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "0.12.x-dev" + }, + "bamarni-bin": { + "bin-links": false, + "forward-command": false + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Psy\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Justin Hileman", + "email": "justin@justinhileman.info", + "homepage": "http://justinhileman.com" + } + ], + "description": "An interactive shell for modern PHP.", + "homepage": "http://psysh.org", + "keywords": [ + "REPL", + "console", + "interactive", + "shell" + ], + "support": { + "issues": "https://github.com/bobthecow/psysh/issues", + "source": "https://github.com/bobthecow/psysh/tree/v0.12.0" + }, + "time": "2023-12-20T15:28:09+00:00" + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "ramsey/collection", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/ramsey/collection.git", + "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/collection/zipball/a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", + "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "captainhook/plugin-composer": "^5.3", + "ergebnis/composer-normalize": "^2.28.3", + "fakerphp/faker": "^1.21", + "hamcrest/hamcrest-php": "^2.0", + "jangregor/phpstan-prophecy": "^1.0", + "mockery/mockery": "^1.5", + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.3", + "phpcsstandards/phpcsutils": "^1.0.0-rc1", + "phpspec/prophecy-phpunit": "^2.0", + "phpstan/extension-installer": "^1.2", + "phpstan/phpstan": "^1.9", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^9.5", + "psalm/plugin-mockery": "^1.1", + "psalm/plugin-phpunit": "^0.18.4", + "ramsey/coding-standard": "^2.0.3", + "ramsey/conventional-commits": "^1.3", + "vimeo/psalm": "^5.4" + }, + "type": "library", + "extra": { + "captainhook": { + "force-install": true + }, + "ramsey/conventional-commits": { + "configFile": "conventional-commits.json" + } + }, + "autoload": { + "psr-4": { + "Ramsey\\Collection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ben Ramsey", + "email": "ben@benramsey.com", + "homepage": "https://benramsey.com" + } + ], + "description": "A PHP library for representing and manipulating collections.", + "keywords": [ + "array", + "collection", + "hash", + "map", + "queue", + "set" + ], + "support": { + "issues": "https://github.com/ramsey/collection/issues", + "source": "https://github.com/ramsey/collection/tree/2.0.0" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/collection", + "type": "tidelift" + } + ], + "time": "2022-12-31T21:50:55+00:00" + }, + { + "name": "ramsey/uuid", + "version": "4.7.5", + "source": { + "type": "git", + "url": "https://github.com/ramsey/uuid.git", + "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e", + "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e", + "shasum": "" + }, + "require": { + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11", + "ext-json": "*", + "php": "^8.0", + "ramsey/collection": "^1.2 || ^2.0" + }, + "replace": { + "rhumsaa/uuid": "self.version" + }, + "require-dev": { + "captainhook/captainhook": "^5.10", + "captainhook/plugin-composer": "^5.3", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "doctrine/annotations": "^1.8", + "ergebnis/composer-normalize": "^2.15", + "mockery/mockery": "^1.3", + "paragonie/random-lib": "^2", + "php-mock/php-mock": "^2.2", + "php-mock/php-mock-mockery": "^1.3", + "php-parallel-lint/php-parallel-lint": "^1.1", + "phpbench/phpbench": "^1.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^8.5 || ^9", + "ramsey/composer-repl": "^1.4", + "slevomat/coding-standard": "^8.4", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.9" + }, + "suggest": { + "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", + "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.", + "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.", + "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", + "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." + }, + "type": "library", + "extra": { + "captainhook": { + "force-install": true + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Ramsey\\Uuid\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", + "keywords": [ + "guid", + "identifier", + "uuid" + ], + "support": { + "issues": "https://github.com/ramsey/uuid/issues", + "source": "https://github.com/ramsey/uuid/tree/4.7.5" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid", + "type": "tidelift" + } + ], + "time": "2023-11-08T05:53:05+00:00" + }, + { + "name": "select2/select2", + "version": "4.0.13", + "source": { + "type": "git", + "url": "https://github.com/select2/select2.git", + "reference": "45f2b83ceed5231afa7b3d5b12b58ad335edd82e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/select2/select2/zipball/45f2b83ceed5231afa7b3d5b12b58ad335edd82e", + "reference": "45f2b83ceed5231afa7b3d5b12b58ad335edd82e", + "shasum": "" + }, + "type": "component", + "extra": { + "component": { + "scripts": [ + "dist/js/select2.js" + ], + "styles": [ + "dist/css/select2.css" + ], + "files": [ + "dist/js/select2.js", + "dist/js/i18n/*.js", + "dist/css/select2.css" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Select2 is a jQuery based replacement for select boxes.", + "homepage": "https://select2.org/", + "support": { + "issues": "https://github.com/select2/select2/issues", + "source": "https://github.com/select2/select2/tree/4.0.13" + }, + "time": "2020-01-28T05:01:22+00:00" + }, + { + "name": "spatie/laravel-cookie-consent", + "version": "3.2.4", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-cookie-consent.git", + "reference": "5a5b2f0a03cc66d8ffede42037a7f3e00f95aaa9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-cookie-consent/zipball/5a5b2f0a03cc66d8ffede42037a7f3e00f95aaa9", + "reference": "5a5b2f0a03cc66d8ffede42037a7f3e00f95aaa9", + "shasum": "" + }, + "require": { + "illuminate/cookie": "^8.0|^9.0|^10.0", + "illuminate/support": "^8.0|^9.0|^10.0", + "illuminate/view": "^8.0|^9.0|^10.0", + "php": "^8.0", + "spatie/laravel-package-tools": "^1.9" + }, + "require-dev": { + "fakerphp/faker": "^1.9", + "orchestra/testbench": "^6.0|^7.0|^8.0", + "pestphp/pest": "^1.22" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Spatie\\CookieConsent\\CookieConsentServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Spatie\\CookieConsent\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + }, + { + "name": "Willem Van Bockstal", + "email": "willem@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Make your Laravel app comply with the crazy EU cookie law", + "homepage": "https://github.com/spatie/cookie-consent", + "keywords": [ + "comply", + "cookie", + "cookie-consent", + "eu", + "law", + "spatie" + ], + "support": { + "source": "https://github.com/spatie/laravel-cookie-consent/tree/3.2.4" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + } + ], + "time": "2023-01-25T09:18:22+00:00" + }, + { + "name": "spatie/laravel-package-tools", + "version": "1.16.2", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-package-tools.git", + "reference": "e62eeb1fe8a8a0b2e83227a6c279c8c59f7d3a15" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/e62eeb1fe8a8a0b2e83227a6c279c8c59f7d3a15", + "reference": "e62eeb1fe8a8a0b2e83227a6c279c8c59f7d3a15", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^9.28|^10.0|^11.0", + "php": "^8.0" + }, + "require-dev": { + "mockery/mockery": "^1.5", + "orchestra/testbench": "^7.7|^8.0", + "pestphp/pest": "^1.22", + "phpunit/phpunit": "^9.5.24", + "spatie/pest-plugin-test-time": "^1.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\LaravelPackageTools\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "role": "Developer" + } + ], + "description": "Tools for creating Laravel packages", + "homepage": "https://github.com/spatie/laravel-package-tools", + "keywords": [ + "laravel-package-tools", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/laravel-package-tools/issues", + "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.2" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2024-01-11T08:43:00+00:00" + }, + { + "name": "spatie/laravel-permission", + "version": "5.11.1", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-permission.git", + "reference": "7090824cca57e693b880ce3aaf7ef78362e28bbd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-permission/zipball/7090824cca57e693b880ce3aaf7ef78362e28bbd", + "reference": "7090824cca57e693b880ce3aaf7ef78362e28bbd", + "shasum": "" + }, + "require": { + "illuminate/auth": "^7.0|^8.0|^9.0|^10.0", + "illuminate/container": "^7.0|^8.0|^9.0|^10.0", + "illuminate/contracts": "^7.0|^8.0|^9.0|^10.0", + "illuminate/database": "^7.0|^8.0|^9.0|^10.0", + "php": "^7.3|^8.0" + }, + "require-dev": { + "orchestra/testbench": "^5.0|^6.0|^7.0|^8.0", + "phpunit/phpunit": "^9.4", + "predis/predis": "^1.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.x-dev", + "dev-master": "5.x-dev" + }, + "laravel": { + "providers": [ + "Spatie\\Permission\\PermissionServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Spatie\\Permission\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Permission handling for Laravel 6.0 and up", + "homepage": "https://github.com/spatie/laravel-permission", + "keywords": [ + "acl", + "laravel", + "permission", + "permissions", + "rbac", + "roles", + "security", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/laravel-permission/issues", + "source": "https://github.com/spatie/laravel-permission/tree/5.11.1" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2023-10-25T05:12:01+00:00" + }, + { + "name": "spatie/laravel-translatable", + "version": "6.5.5", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-translatable.git", + "reference": "d6dc7c9fe3c678ce50b2d6a4a7434fcbcfc3df4c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-translatable/zipball/d6dc7c9fe3c678ce50b2d6a4a7434fcbcfc3df4c", + "reference": "d6dc7c9fe3c678ce50b2d6a4a7434fcbcfc3df4c", + "shasum": "" + }, + "require": { + "illuminate/database": "^9.0|^10.0", + "illuminate/support": "^9.0|^10.0", + "php": "^8.0", + "spatie/laravel-package-tools": "^1.11" + }, + "require-dev": { + "mockery/mockery": "^1.4", + "orchestra/testbench": "^7.0|^8.0", + "pestphp/pest": "^1.20" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Spatie\\Translatable\\TranslatableServiceProvider" + ] + }, + "aliases": { + "Translatable": "Spatie\\Translatable\\Facades\\Translatable" + } + }, + "autoload": { + "psr-4": { + "Spatie\\Translatable\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + }, + { + "name": "Sebastian De Deyne", + "email": "sebastian@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "A trait to make an Eloquent model hold translations", + "homepage": "https://github.com/spatie/laravel-translatable", + "keywords": [ + "eloquent", + "i8n", + "laravel-translatable", + "model", + "multilingual", + "spatie", + "translate" + ], + "support": { + "issues": "https://github.com/spatie/laravel-translatable/issues", + "source": "https://github.com/spatie/laravel-translatable/tree/6.5.5" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2023-12-06T10:56:22+00:00" + }, + { + "name": "studio-42/elfinder", + "version": "2.1.65", + "source": { + "type": "git", + "url": "https://github.com/Studio-42/elFinder.git", + "reference": "5535a8677558c44a20c19ff9b97ec37702f9c44d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Studio-42/elFinder/zipball/5535a8677558c44a20c19ff9b97ec37702f9c44d", + "reference": "5535a8677558c44a20c19ff9b97ec37702f9c44d", + "shasum": "" + }, + "require": { + "php": ">=5.2" + }, + "suggest": { + "barryvdh/elfinder-flysystem-driver": "VolumeDriver for elFinder to use Flysystem as a root.", + "google/apiclient": "VolumeDriver GoogleDrive require `google/apiclient:^2.0.", + "kunalvarma05/dropbox-php-sdk": "VolumeDriver `Dropbox`2 require `kunalvarma05/dropbox-php-sdk.", + "nao-pon/flysystem-google-drive": "require in GoogleDrive network volume mounting with Flysystem." + }, + "type": "library", + "autoload": { + "classmap": [ + "php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Dmitry Levashov", + "email": "dio@std42.ru", + "homepage": "http://std42.ru" + }, + { + "name": "Troex Nevelin", + "email": "troex@fury.scancode.ru", + "homepage": "http://std42.ru" + }, + { + "name": "Naoki Sawada", + "email": "hypweb+elfinder@gmail.com", + "homepage": "http://xoops.hypweb.net" + }, + { + "name": "Community contributions", + "homepage": "https://github.com/Studio-42/elFinder/contributors" + } + ], + "description": "File manager for web", + "homepage": "http://elfinder.org", + "support": { + "issues": "https://github.com/Studio-42/elFinder/issues", + "source": "https://github.com/Studio-42/elFinder/tree/2.1.65" + }, + "funding": [ + { + "url": "https://github.com/nao-pon", + "type": "github" + } + ], + "time": "2024-01-05T05:01:39+00:00" + }, + { + "name": "symfony/console", + "version": "v6.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "0d9e4eb5ad413075624378f474c4167ea202de78" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/0d9e4eb5ad413075624378f474c4167ea202de78", + "reference": "0d9e4eb5ad413075624378f474c4167ea202de78", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^5.4|^6.0|^7.0" + }, + "conflict": { + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/lock": "^5.4|^6.0|^7.0", + "symfony/messenger": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/stopwatch": "^5.4|^6.0|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command-line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v6.4.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-02-22T20:27:10+00:00" + }, + { + "name": "symfony/css-selector", + "version": "v6.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "ee0f7ed5cf298cc019431bb3b3977ebc52b86229" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/ee0f7ed5cf298cc019431bb3b3977ebc52b86229", + "reference": "ee0f7ed5cf298cc019431bb3b3977ebc52b86229", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Converts CSS selectors to XPath expressions", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/css-selector/tree/v6.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-23T14:51:35+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-23T14:45:45+00:00" + }, + { + "name": "symfony/error-handler", + "version": "v6.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/error-handler.git", + "reference": "c725219bdf2afc59423c32793d5019d2a904e13a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/c725219bdf2afc59423c32793d5019d2a904e13a", + "reference": "c725219bdf2afc59423c32793d5019d2a904e13a", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^1|^2|^3", + "symfony/var-dumper": "^5.4|^6.0|^7.0" + }, + "conflict": { + "symfony/deprecation-contracts": "<2.5", + "symfony/http-kernel": "<6.4" + }, + "require-dev": { + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/serializer": "^5.4|^6.0|^7.0" + }, + "bin": [ + "Resources/bin/patch-type-declarations" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\ErrorHandler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to manage errors and ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/error-handler/tree/v6.4.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-02-22T20:27:10+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v6.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "ae9d3a6f3003a6caf56acd7466d8d52378d44fef" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/ae9d3a6f3003a6caf56acd7466d8d52378d44fef", + "reference": "ae9d3a6f3003a6caf56acd7466d8d52378d44fef", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/event-dispatcher-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/dependency-injection": "<5.4", + "symfony/service-contracts": "<2.5" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/error-handler": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^5.4|^6.0|^7.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/stopwatch": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-23T14:51:35+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v3.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "a76aed96a42d2b521153fb382d418e30d18b59df" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df", + "reference": "a76aed96a42d2b521153fb382d418e30d18b59df", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/event-dispatcher": "^1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-23T14:45:45+00:00" + }, + { + "name": "symfony/finder", + "version": "v6.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "11d736e97f116ac375a81f96e662911a34cd50ce" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/11d736e97f116ac375a81f96e662911a34cd50ce", + "reference": "11d736e97f116ac375a81f96e662911a34cd50ce", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "symfony/filesystem": "^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v6.4.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-31T17:30:12+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v6.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "ebc713bc6e6f4b53f46539fc158be85dfcd77304" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ebc713bc6e6f4b53f46539fc158be85dfcd77304", + "reference": "ebc713bc6e6f4b53f46539fc158be85dfcd77304", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php83": "^1.27" + }, + "conflict": { + "symfony/cache": "<6.3" + }, + "require-dev": { + "doctrine/dbal": "^2.13.1|^3|^4", + "predis/predis": "^1.1|^2.0", + "symfony/cache": "^6.3|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0", + "symfony/mime": "^5.4|^6.0|^7.0", + "symfony/rate-limiter": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v6.4.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-02-08T15:01:18+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v6.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "7a186f64a7f02787c04e8476538624d6aa888e42" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/7a186f64a7f02787c04e8476538624d6aa888e42", + "reference": "7a186f64a7f02787c04e8476538624d6aa888e42", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/error-handler": "^6.4|^7.0", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/browser-kit": "<5.4", + "symfony/cache": "<5.4", + "symfony/config": "<6.1", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<6.4", + "symfony/doctrine-bridge": "<5.4", + "symfony/form": "<5.4", + "symfony/http-client": "<5.4", + "symfony/http-client-contracts": "<2.5", + "symfony/mailer": "<5.4", + "symfony/messenger": "<5.4", + "symfony/translation": "<5.4", + "symfony/translation-contracts": "<2.5", + "symfony/twig-bridge": "<5.4", + "symfony/validator": "<6.4", + "symfony/var-dumper": "<6.3", + "twig/twig": "<2.13" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/browser-kit": "^5.4|^6.0|^7.0", + "symfony/clock": "^6.2|^7.0", + "symfony/config": "^6.1|^7.0", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/css-selector": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/dom-crawler": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/finder": "^5.4|^6.0|^7.0", + "symfony/http-client-contracts": "^2.5|^3", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/property-access": "^5.4.5|^6.0.5|^7.0", + "symfony/routing": "^5.4|^6.0|^7.0", + "symfony/serializer": "^6.4.4|^7.0.4", + "symfony/stopwatch": "^5.4|^6.0|^7.0", + "symfony/translation": "^5.4|^6.0|^7.0", + "symfony/translation-contracts": "^2.5|^3", + "symfony/uid": "^5.4|^6.0|^7.0", + "symfony/validator": "^6.4|^7.0", + "symfony/var-exporter": "^6.2|^7.0", + "twig/twig": "^2.13|^3.0.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a structured process for converting a Request into a Response", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-kernel/tree/v6.4.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-02-27T06:32:13+00:00" + }, + { + "name": "symfony/mailer", + "version": "v6.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/mailer.git", + "reference": "791c5d31a8204cf3db0c66faab70282307f4376b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mailer/zipball/791c5d31a8204cf3db0c66faab70282307f4376b", + "reference": "791c5d31a8204cf3db0c66faab70282307f4376b", + "shasum": "" + }, + "require": { + "egulias/email-validator": "^2.1.10|^3|^4", + "php": ">=8.1", + "psr/event-dispatcher": "^1", + "psr/log": "^1|^2|^3", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/mime": "^6.2|^7.0", + "symfony/service-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/http-client-contracts": "<2.5", + "symfony/http-kernel": "<5.4", + "symfony/messenger": "<6.2", + "symfony/mime": "<6.2", + "symfony/twig-bridge": "<6.2.1" + }, + "require-dev": { + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/http-client": "^5.4|^6.0|^7.0", + "symfony/messenger": "^6.2|^7.0", + "symfony/twig-bridge": "^6.2|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mailer\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps sending emails", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/mailer/tree/v6.4.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-02-03T21:33:47+00:00" + }, + { + "name": "symfony/mime", + "version": "v6.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "5017e0a9398c77090b7694be46f20eb796262a34" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/5017e0a9398c77090b7694be46f20eb796262a34", + "reference": "5017e0a9398c77090b7694be46f20eb796262a34", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" + }, + "conflict": { + "egulias/email-validator": "~3.0.0", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/mailer": "<5.4", + "symfony/serializer": "<6.3.2" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3.1|^4", + "league/html-to-markdown": "^5.0", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/property-access": "^5.4|^6.0|^7.0", + "symfony/property-info": "^5.4|^6.0|^7.0", + "symfony/serializer": "^6.3.2|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows manipulating MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "support": { + "source": "https://github.com/symfony/mime/tree/v6.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-30T08:32:12+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4", + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "a287ed7475f85bf6f61890146edbc932c0fff919" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a287ed7475f85bf6f61890146edbc932c0fff919", + "reference": "a287ed7475f85bf6f61890146edbc932c0fff919", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d", + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/861391a8da9a04cbad2d232ddd9e4893220d6e25", + "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php72/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-php83", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php83.git", + "reference": "86fcae159633351e5fd145d1c47de6c528f8caff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/86fcae159633351e5fd145d1c47de6c528f8caff", + "reference": "86fcae159633351e5fd145d1c47de6c528f8caff", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-php80": "^1.14" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php83\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php83/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-uuid", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-uuid.git", + "reference": "3abdd21b0ceaa3000ee950097bc3cf9efc137853" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/3abdd21b0ceaa3000ee950097bc3cf9efc137853", + "reference": "3abdd21b0ceaa3000ee950097bc3cf9efc137853", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-uuid": "*" + }, + "suggest": { + "ext-uuid": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Uuid\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Grégoire Pineau", + "email": "lyrixx@lyrixx.info" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for uuid functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "uuid" + ], + "support": { + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/process", + "version": "v6.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "710e27879e9be3395de2b98da3f52a946039f297" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/710e27879e9be3395de2b98da3f52a946039f297", + "reference": "710e27879e9be3395de2b98da3f52a946039f297", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v6.4.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-02-20T12:31:00+00:00" + }, + { + "name": "symfony/routing", + "version": "v6.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "3b2957ad54902f0f544df83e3d58b38d7e8e5842" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/3b2957ad54902f0f544df83e3d58b38d7e8e5842", + "reference": "3b2957ad54902f0f544df83e3d58b38d7e8e5842", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "doctrine/annotations": "<1.12", + "symfony/config": "<6.2", + "symfony/dependency-injection": "<5.4", + "symfony/yaml": "<5.4" + }, + "require-dev": { + "doctrine/annotations": "^1.12|^2", + "psr/log": "^1|^2|^3", + "symfony/config": "^6.2|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^5.4|^6.0|^7.0", + "symfony/yaml": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Maps an HTTP request to a set of configuration variables", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "support": { + "source": "https://github.com/symfony/routing/tree/v6.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-30T13:55:02+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.4.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/fe07cbc8d837f60caf7018068e350cc5163681a0", + "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^1.1|^2.0" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.4.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-12-26T14:02:43+00:00" + }, + { + "name": "symfony/string", + "version": "v6.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "4e465a95bdc32f49cf4c7f07f751b843bbd6dcd9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/4e465a95bdc32f49cf4c7f07f751b843bbd6dcd9", + "reference": "4e465a95bdc32f49cf4c7f07f751b843bbd6dcd9", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.5" + }, + "require-dev": { + "symfony/error-handler": "^5.4|^6.0|^7.0", + "symfony/http-client": "^5.4|^6.0|^7.0", + "symfony/intl": "^6.2|^7.0", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v6.4.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-02-01T13:16:41+00:00" + }, + { + "name": "symfony/translation", + "version": "v6.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "bce6a5a78e94566641b2594d17e48b0da3184a8e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/bce6a5a78e94566641b2594d17e48b0da3184a8e", + "reference": "bce6a5a78e94566641b2594d17e48b0da3184a8e", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/translation-contracts": "^2.5|^3.0" + }, + "conflict": { + "symfony/config": "<5.4", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/http-client-contracts": "<2.5", + "symfony/http-kernel": "<5.4", + "symfony/service-contracts": "<2.5", + "symfony/twig-bundle": "<5.4", + "symfony/yaml": "<5.4" + }, + "provide": { + "symfony/translation-implementation": "2.3|3.0" + }, + "require-dev": { + "nikic/php-parser": "^4.18|^5.0", + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/finder": "^5.4|^6.0|^7.0", + "symfony/http-client-contracts": "^2.5|^3.0", + "symfony/http-kernel": "^5.4|^6.0|^7.0", + "symfony/intl": "^5.4|^6.0|^7.0", + "symfony/polyfill-intl-icu": "^1.21", + "symfony/routing": "^5.4|^6.0|^7.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/yaml": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to internationalize your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/translation/tree/v6.4.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-02-20T13:16:58+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v3.4.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "06450585bf65e978026bda220cdebca3f867fde7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/06450585bf65e978026bda220cdebca3f867fde7", + "reference": "06450585bf65e978026bda220cdebca3f867fde7", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/translation-contracts/tree/v3.4.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-12-26T14:02:43+00:00" + }, + { + "name": "symfony/uid", + "version": "v6.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/uid.git", + "reference": "1d31267211cc3a2fff32bcfc7c1818dac41b6fc0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/uid/zipball/1d31267211cc3a2fff32bcfc7c1818dac41b6fc0", + "reference": "1d31267211cc3a2fff32bcfc7c1818dac41b6fc0", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-uuid": "^1.15" + }, + "require-dev": { + "symfony/console": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Uid\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Grégoire Pineau", + "email": "lyrixx@lyrixx.info" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to generate and represent UIDs", + "homepage": "https://symfony.com", + "keywords": [ + "UID", + "ulid", + "uuid" + ], + "support": { + "source": "https://github.com/symfony/uid/tree/v6.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-23T14:51:35+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v6.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "b439823f04c98b84d4366c79507e9da6230944b1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/b439823f04c98b84d4366c79507e9da6230944b1", + "reference": "b439823f04c98b84d4366c79507e9da6230944b1", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/console": "<5.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/error-handler": "^6.3|^7.0", + "symfony/http-kernel": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/uid": "^5.4|^6.0|^7.0", + "twig/twig": "^2.13|^3.0.4" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v6.4.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-02-15T11:23:52+00:00" + }, + { + "name": "tijsverkoyen/css-to-inline-styles", + "version": "v2.2.7", + "source": { + "type": "git", + "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", + "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/83ee6f38df0a63106a9e4536e3060458b74ccedb", + "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "php": "^5.5 || ^7.0 || ^8.0", + "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "TijsVerkoyen\\CssToInlineStyles\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Tijs Verkoyen", + "email": "css_to_inline_styles@verkoyen.eu", + "role": "Developer" + } + ], + "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.", + "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", + "support": { + "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", + "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.2.7" + }, + "time": "2023-12-08T13:03:43+00:00" + }, + { + "name": "tinymce/tinymce", + "version": "5.10.9", + "source": { + "type": "git", + "url": "https://github.com/tinymce/tinymce-dist.git", + "reference": "e5650a256f8941a0593ec0b9d3c435f20f1d4245" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tinymce/tinymce-dist/zipball/e5650a256f8941a0593ec0b9d3c435f20f1d4245", + "reference": "e5650a256f8941a0593ec0b9d3c435f20f1d4245", + "shasum": "" + }, + "type": "component", + "extra": { + "component": { + "scripts": [ + "tinymce.js", + "plugins/*/plugin.js", + "themes/*/theme.js", + "themes/*/icons.js" + ], + "files": [ + "tinymce.min.js", + "plugins/*/plugin.min.js", + "themes/*/theme.min.js", + "skins/**", + "icons/*/icons.min.js" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-only" + ], + "description": "Web based JavaScript HTML WYSIWYG editor control.", + "homepage": "https://www.tiny.cloud/", + "keywords": [ + "contenteditable", + "editing", + "html", + "javascript", + "rich editor", + "rich text", + "rich text editor", + "richtext", + "rte", + "text", + "tinymce", + "wysiwyg" + ], + "support": { + "source": "https://github.com/tinymce/tinymce-dist/tree/5.10.9" + }, + "time": "2023-11-15T00:42:08+00:00" + }, + { + "name": "vlucas/phpdotenv", + "version": "v5.6.0", + "source": { + "type": "git", + "url": "https://github.com/vlucas/phpdotenv.git", + "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4", + "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4", + "shasum": "" + }, + "require": { + "ext-pcre": "*", + "graham-campbell/result-type": "^1.1.2", + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9.2", + "symfony/polyfill-ctype": "^1.24", + "symfony/polyfill-mbstring": "^1.24", + "symfony/polyfill-php80": "^1.24" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "ext-filter": "*", + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" + }, + "suggest": { + "ext-filter": "Required to use the boolean validator." + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": true + }, + "branch-alias": { + "dev-master": "5.6-dev" + } + }, + "autoload": { + "psr-4": { + "Dotenv\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Vance Lucas", + "email": "vance@vancelucas.com", + "homepage": "https://github.com/vlucas" + } + ], + "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "support": { + "issues": "https://github.com/vlucas/phpdotenv/issues", + "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv", + "type": "tidelift" + } + ], + "time": "2023-11-12T22:43:29+00:00" + }, + { + "name": "voku/portable-ascii", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/voku/portable-ascii.git", + "reference": "b56450eed252f6801410d810c8e1727224ae0743" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743", + "reference": "b56450eed252f6801410d810c8e1727224ae0743", + "shasum": "" + }, + "require": { + "php": ">=7.0.0" + }, + "require-dev": { + "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0" + }, + "suggest": { + "ext-intl": "Use Intl for transliterator_transliterate() support" + }, + "type": "library", + "autoload": { + "psr-4": { + "voku\\": "src/voku/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Lars Moelleken", + "homepage": "http://www.moelleken.org/" + } + ], + "description": "Portable ASCII library - performance optimized (ascii) string functions for php.", + "homepage": "https://github.com/voku/portable-ascii", + "keywords": [ + "ascii", + "clean", + "php" + ], + "support": { + "issues": "https://github.com/voku/portable-ascii/issues", + "source": "https://github.com/voku/portable-ascii/tree/2.0.1" + }, + "funding": [ + { + "url": "https://www.paypal.me/moelleken", + "type": "custom" + }, + { + "url": "https://github.com/voku", + "type": "github" + }, + { + "url": "https://opencollective.com/portable-ascii", + "type": "open_collective" + }, + { + "url": "https://www.patreon.com/voku", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii", + "type": "tidelift" + } + ], + "time": "2022-03-08T17:03:00+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" + }, + "time": "2022-06-03T18:03:27+00:00" + } + ], + "packages-dev": [ + { + "name": "archtechx/enums", + "version": "v0.3.2", + "source": { + "type": "git", + "url": "https://github.com/archtechx/enums.git", + "reference": "475f45e682b0771253707f9403b704759a08da5f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/archtechx/enums/zipball/475f45e682b0771253707f9403b704759a08da5f", + "reference": "475f45e682b0771253707f9403b704759a08da5f", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "nunomaduro/larastan": "^1.0|^2.4", + "orchestra/testbench": "^6.9|^7.0|^8.0", + "pestphp/pest": "^1.2|^2.0", + "pestphp/pest-plugin-laravel": "^1.0|^2.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "ArchTech\\Enums\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Samuel Štancl", + "email": "samuel@archte.ch" + } + ], + "description": "Helpers for making PHP enums more lovable.", + "support": { + "issues": "https://github.com/archtechx/enums/issues", + "source": "https://github.com/archtechx/enums/tree/v0.3.2" + }, + "time": "2023-02-15T13:05:41+00:00" + }, + { + "name": "backpack/generators", + "version": "v4.0.3", + "source": { + "type": "git", + "url": "https://github.com/Laravel-Backpack/Generators.git", + "reference": "aa90e14a878c1d5318fb92165fb940666a047966" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Laravel-Backpack/Generators/zipball/aa90e14a878c1d5318fb92165fb940666a047966", + "reference": "aa90e14a878c1d5318fb92165fb940666a047966", + "shasum": "" + }, + "require": { + "backpack/crud": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + }, + "laravel": { + "providers": [ + "Backpack\\Generators\\GeneratorsServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Backpack\\Generators\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "proprietary" + ], + "authors": [ + { + "name": "Cristian Tabacitu", + "email": "tabacitu@backpackforlaravel.com", + "homepage": "https://backpackforlaravel.com", + "role": "Lead Developer & Maintainer" + }, + { + "name": "Cristian Tone", + "email": "cristitone@outlook.com", + "homepage": "http://updivision.com", + "role": "Developer" + } + ], + "description": "Generate files for laravel projects", + "homepage": "https://github.com/laravel-backpack/generators", + "keywords": [ + "config", + "generators", + "model", + "request", + "view" + ], + "support": { + "issues": "https://github.com/Laravel-Backpack/Generators/issues", + "source": "https://github.com/Laravel-Backpack/Generators/tree/v4.0.3" + }, + "time": "2024-01-30T17:11:05+00:00" + }, + { + "name": "composer/semver", + "version": "3.4.0", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.4", + "symfony/phpunit-bridge": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.4.0" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2023-08-31T09:50:34+00:00" + }, + { + "name": "dragon-code/contracts", + "version": "2.22.0", + "source": { + "type": "git", + "url": "https://github.com/TheDragonCode/contracts.git", + "reference": "5c4a9653dd5985151adcb56790bd56645edddae3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TheDragonCode/contracts/zipball/5c4a9653dd5985151adcb56790bd56645edddae3", + "reference": "5c4a9653dd5985151adcb56790bd56645edddae3", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "psr/http-message": "^1.0.1 || ^2.0", + "symfony/http-kernel": "^4.0 || ^5.0 || ^6.0 || ^7.0", + "symfony/polyfill-php80": "^1.23" + }, + "conflict": { + "andrey-helldar/contracts": "*" + }, + "require-dev": { + "illuminate/database": "^10.0", + "phpdocumentor/reflection-docblock": "^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "DragonCode\\Contracts\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andrey Helldar", + "email": "helldar@dragon-code.pro", + "homepage": "https://github.com/andrey-helldar" + } + ], + "description": "A set of contracts for any project", + "keywords": [ + "contracts", + "interfaces" + ], + "support": { + "source": "https://github.com/TheDragonCode/contracts" + }, + "funding": [ + { + "url": "https://boosty.to/dragon-code", + "type": "boosty" + }, + { + "url": "https://www.donationalerts.com/r/dragon_code", + "type": "donationalerts" + }, + { + "url": "https://yoomoney.ru/to/410012608840929", + "type": "yoomoney" + } + ], + "time": "2023-12-09T12:44:43+00:00" + }, + { + "name": "dragon-code/pretty-array", + "version": "v4.1.0", + "source": { + "type": "git", + "url": "https://github.com/TheDragonCode/pretty-array.git", + "reference": "6c84e2454491b414efbd37985c322712cdf9012f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TheDragonCode/pretty-array/zipball/6c84e2454491b414efbd37985c322712cdf9012f", + "reference": "6c84e2454491b414efbd37985c322712cdf9012f", + "shasum": "" + }, + "require": { + "dragon-code/contracts": "^2.20", + "dragon-code/support": "^6.11.2", + "ext-dom": "*", + "ext-mbstring": "*", + "php": "^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.6 || ^10.2" + }, + "suggest": { + "symfony/thanks": "Give thanks (in the form of a GitHub) to your fellow PHP package maintainers" + }, + "type": "library", + "autoload": { + "psr-4": { + "DragonCode\\PrettyArray\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andrey Helldar", + "email": "helldar@dragon-code.pro", + "homepage": "https://github.com/andrey-helldar" + } + ], + "description": "Simple conversion of an array to a pretty view", + "keywords": [ + "andrey helldar", + "array", + "dragon", + "dragon code", + "pretty", + "pretty array" + ], + "support": { + "issues": "https://github.com/TheDragonCode/pretty-array/issues", + "source": "https://github.com/TheDragonCode/pretty-array" + }, + "funding": [ + { + "url": "https://boosty.to/dragon-code", + "type": "boosty" + }, + { + "url": "https://github.com/sponsors/TheDragonCode", + "type": "github" + }, + { + "url": "https://opencollective.com/dragon-code", + "type": "open_collective" + }, + { + "url": "https://yoomoney.ru/to/410012608840929", + "type": "yoomoney" + } + ], + "time": "2023-06-02T11:37:44+00:00" + }, + { + "name": "dragon-code/support", + "version": "6.12.0", + "source": { + "type": "git", + "url": "https://github.com/TheDragonCode/support.git", + "reference": "caee4d59725b1331c9970f57b4f047eab40d8fa0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TheDragonCode/support/zipball/caee4d59725b1331c9970f57b4f047eab40d8fa0", + "reference": "caee4d59725b1331c9970f57b4f047eab40d8fa0", + "shasum": "" + }, + "require": { + "dragon-code/contracts": "^2.22.0", + "ext-bcmath": "*", + "ext-ctype": "*", + "ext-dom": "*", + "ext-json": "*", + "ext-mbstring": "*", + "php": "^8.0", + "psr/http-message": "^1.0.1 || ^2.0", + "symfony/polyfill-php81": "^1.25", + "voku/portable-ascii": "^1.4.8 || ^2.0.1" + }, + "conflict": { + "andrey-helldar/support": "*" + }, + "require-dev": { + "illuminate/contracts": "^9.0 || ^10.0", + "phpunit/phpunit": "^9.6", + "symfony/var-dumper": "^6.0 || ^7.0" + }, + "suggest": { + "dragon-code/laravel-support": "Various helper files for the Laravel and Lumen frameworks", + "symfony/thanks": "Give thanks (in the form of a GitHub) to your fellow PHP package maintainers" + }, + "type": "library", + "extra": { + "dragon-code": { + "docs-generator": { + "preview": { + "brand": "php", + "vendor": "The Dragon Code" + } + } + } + }, + "autoload": { + "psr-4": { + "DragonCode\\Support\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andrey Helldar", + "email": "helldar@dragon-code.pro", + "homepage": "https://github.com/andrey-helldar" + } + ], + "description": "Support package is a collection of helpers and tools for any project.", + "keywords": [ + "dragon", + "dragon-code", + "framework", + "helper", + "helpers", + "laravel", + "php", + "support", + "symfony", + "yii", + "yii2" + ], + "support": { + "issues": "https://github.com/TheDragonCode/support/issues", + "source": "https://github.com/TheDragonCode/support" + }, + "funding": [ + { + "url": "https://boosty.to/dragon-code", + "type": "boosty" + }, + { + "url": "https://www.donationalerts.com/r/dragon_code", + "type": "donationalerts" + }, + { + "url": "https://yoomoney.ru/to/410012608840929", + "type": "yoomoney" + } + ], + "time": "2023-12-09T12:52:29+00:00" + }, + { + "name": "fakerphp/faker", + "version": "v1.23.1", + "source": { + "type": "git", + "url": "https://github.com/FakerPHP/Faker.git", + "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/bfb4fe148adbf78eff521199619b93a52ae3554b", + "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0", + "psr/container": "^1.0 || ^2.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "conflict": { + "fzaninotto/faker": "*" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", + "doctrine/persistence": "^1.3 || ^2.0", + "ext-intl": "*", + "phpunit/phpunit": "^9.5.26", + "symfony/phpunit-bridge": "^5.4.16" + }, + "suggest": { + "doctrine/orm": "Required to use Faker\\ORM\\Doctrine", + "ext-curl": "Required by Faker\\Provider\\Image to download images.", + "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.", + "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", + "ext-mbstring": "Required for multibyte Unicode string functionality." + }, + "type": "library", + "autoload": { + "psr-4": { + "Faker\\": "src/Faker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "François Zaninotto" + } + ], + "description": "Faker is a PHP library that generates fake data for you.", + "keywords": [ + "data", + "faker", + "fixtures" + ], + "support": { + "issues": "https://github.com/FakerPHP/Faker/issues", + "source": "https://github.com/FakerPHP/Faker/tree/v1.23.1" + }, + "time": "2024-01-02T13:46:09+00:00" + }, + { + "name": "filp/whoops", + "version": "2.15.4", + "source": { + "type": "git", + "url": "https://github.com/filp/whoops.git", + "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filp/whoops/zipball/a139776fa3f5985a50b509f2a02ff0f709d2a546", + "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546", + "shasum": "" + }, + "require": { + "php": "^5.5.9 || ^7.0 || ^8.0", + "psr/log": "^1.0.1 || ^2.0 || ^3.0" + }, + "require-dev": { + "mockery/mockery": "^0.9 || ^1.0", + "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.3", + "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0" + }, + "suggest": { + "symfony/var-dumper": "Pretty print complex values better with var-dumper available", + "whoops/soap": "Formats errors as SOAP responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Whoops\\": "src/Whoops/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Filipe Dobreira", + "homepage": "https://github.com/filp", + "role": "Developer" + } + ], + "description": "php error handling for cool kids", + "homepage": "https://filp.github.io/whoops/", + "keywords": [ + "error", + "exception", + "handling", + "library", + "throwable", + "whoops" + ], + "support": { + "issues": "https://github.com/filp/whoops/issues", + "source": "https://github.com/filp/whoops/tree/2.15.4" + }, + "funding": [ + { + "url": "https://github.com/denis-sokolov", + "type": "github" + } + ], + "time": "2023-11-03T12:00:00+00:00" + }, + { + "name": "hamcrest/hamcrest-php", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/hamcrest/hamcrest-php.git", + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "shasum": "" + }, + "require": { + "php": "^5.3|^7.0|^8.0" + }, + "replace": { + "cordoval/hamcrest-php": "*", + "davedevelopment/hamcrest-php": "*", + "kodova/hamcrest-php": "*" + }, + "require-dev": { + "phpunit/php-file-iterator": "^1.4 || ^2.0", + "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + } + }, + "autoload": { + "classmap": [ + "hamcrest" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "This is the PHP port of Hamcrest Matchers", + "keywords": [ + "test" + ], + "support": { + "issues": "https://github.com/hamcrest/hamcrest-php/issues", + "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1" + }, + "time": "2020-07-09T08:09:16+00:00" + }, + { + "name": "laracasts/generators", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/laracasts/Laravel-5-Generators-Extended.git", + "reference": "94d454e3b5940ec4df9e33d2e6dc44e84c4f3113" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laracasts/Laravel-5-Generators-Extended/zipball/94d454e3b5940ec4df9e33d2e6dc44e84c4f3113", + "reference": "94d454e3b5940ec4df9e33d2e6dc44e84c4f3113", + "shasum": "" + }, + "require": { + "illuminate/support": "~6.0|~7.0|~8.0|~9.0|^10.0" + }, + "require-dev": { + "phpspec/phpspec": "~6.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laracasts\\Generators\\GeneratorsServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laracasts\\Generators\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jeffrey Way", + "email": "jeffrey@laracasts.com" + }, + { + "name": "Cristian Tabacitu", + "email": "hello@tabaciu.ro" + } + ], + "description": "Advanced Laravel generators, that include schema information.", + "keywords": [ + "generators", + "laravel" + ], + "support": { + "issues": "https://github.com/laracasts/Laravel-5-Generators-Extended/issues", + "source": "https://github.com/laracasts/Laravel-5-Generators-Extended/tree/2.0.2" + }, + "time": "2023-03-22T14:23:28+00:00" + }, + { + "name": "laravel-lang/lang", + "version": "13.12.0", + "source": { + "type": "git", + "url": "https://github.com/Laravel-Lang/lang.git", + "reference": "25a5a07b635f0694cb34a37b58cfb78d0f4ee19e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Laravel-Lang/lang/zipball/25a5a07b635f0694cb34a37b58cfb78d0f4ee19e", + "reference": "25a5a07b635f0694cb34a37b58cfb78d0f4ee19e", + "shasum": "" + }, + "require": { + "ext-json": "*", + "laravel-lang/publisher": "^14.0 || ^15.0 || ^16.0", + "php": "^8.1" + }, + "require-dev": { + "laravel-lang/status-generator": "^1.19 || ^2.0", + "phpunit/phpunit": "^10.0", + "symfony/var-dumper": "^6.0 || ^7.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "LaravelLang\\Lang\\ServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "LaravelLang\\Lang\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laravel-Lang Team", + "homepage": "https://github.com/Laravel-Lang" + } + ], + "description": "List of 78 languages for Laravel Framework, Laravel Jetstream, Laravel Fortify, Laravel Breeze, Laravel Cashier, Laravel Nova, Laravel Spark and Laravel UI", + "keywords": [ + "lang", + "languages", + "laravel", + "lpm" + ], + "support": { + "issues": "https://github.com/Laravel-Lang/lang/issues", + "source": "https://github.com/Laravel-Lang/lang" + }, + "time": "2023-12-16T17:26:12+00:00" + }, + { + "name": "laravel-lang/publisher", + "version": "14.7.1", + "source": { + "type": "git", + "url": "https://github.com/Laravel-Lang/publisher.git", + "reference": "946405e3d8c7105b0ae8cf8de34a3e6e98a70a84" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Laravel-Lang/publisher/zipball/946405e3d8c7105b0ae8cf8de34a3e6e98a70a84", + "reference": "946405e3d8c7105b0ae8cf8de34a3e6e98a70a84", + "shasum": "" + }, + "require": { + "archtechx/enums": "^0.3", + "composer/semver": "^3.3", + "dragon-code/pretty-array": "^4.0", + "dragon-code/support": "^6.3", + "ext-json": "*", + "illuminate/console": "^8.79 || ^9.18 || ^10.0 || ^11.0", + "illuminate/support": "^8.79 || ^9.18 || ^10.0 || ^11.0", + "league/commonmark": "^2.3", + "league/config": "^1.2", + "php": "^8.1" + }, + "conflict": { + "laravel-lang/attributes": "<2.0", + "laravel-lang/http-statuses": "<3.0", + "laravel-lang/lang": "<11.0" + }, + "require-dev": { + "laravel-lang/json-fallback-hotfix": "^1.0", + "orchestra/testbench": "^6.25 || ^7.22 || ^8.0 || ^9.0", + "phpunit/phpunit": "^9.6 || ^10.0", + "symfony/var-dumper": "^5.0 || ^6.0" + }, + "suggest": { + "laravel-lang/attributes": "List of 78 languages for form field names", + "laravel-lang/http-statuses": "List of 78 languages for HTTP statuses", + "laravel-lang/lang": "List of 78 languages for Laravel Framework, Jetstream, Fortify, Breeze, Cashier, Nova, Spark and UI." + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "LaravelLang\\Publisher\\ServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "helper.php" + ], + "psr-4": { + "LaravelLang\\Publisher\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andrey Helldar", + "email": "helldar@dragon-code.pro" + }, + { + "name": "Laravel-Lang Team", + "homepage": "https://github.com/Laravel-Lang" + } + ], + "description": "Publisher lang files for the Laravel and Lumen Frameworks, Jetstream, Fortify, Cashier, Spark and Nova from Laravel-Lang/lang", + "keywords": [ + "breeze", + "cashier", + "fortify", + "framework", + "i18n", + "jetstream", + "lang", + "languages", + "laravel", + "locale", + "locales", + "localization", + "lpm", + "lumen", + "nova", + "publisher", + "spark", + "trans", + "translations", + "validations" + ], + "support": { + "issues": "https://github.com/Laravel-Lang/publisher/issues", + "source": "https://github.com/Laravel-Lang/publisher" + }, + "funding": [ + { + "url": "https://opencollective.com/laravel-lang", + "type": "open_collective" + } + ], + "time": "2023-10-29T21:03:27+00:00" + }, + { + "name": "laravel/pint", + "version": "v1.13.11", + "source": { + "type": "git", + "url": "https://github.com/laravel/pint.git", + "reference": "60a163c3e7e3346a1dec96d3e6f02e6465452552" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/pint/zipball/60a163c3e7e3346a1dec96d3e6f02e6465452552", + "reference": "60a163c3e7e3346a1dec96d3e6f02e6465452552", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-mbstring": "*", + "ext-tokenizer": "*", + "ext-xml": "*", + "php": "^8.1.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.49.0", + "illuminate/view": "^10.43.0", + "larastan/larastan": "^2.8.1", + "laravel-zero/framework": "^10.3.0", + "mockery/mockery": "^1.6.7", + "nunomaduro/termwind": "^1.15.1", + "pestphp/pest": "^2.33.6" + }, + "bin": [ + "builds/pint" + ], + "type": "project", + "autoload": { + "psr-4": { + "App\\": "app/", + "Database\\Seeders\\": "database/seeders/", + "Database\\Factories\\": "database/factories/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "An opinionated code formatter for PHP.", + "homepage": "https://laravel.com", + "keywords": [ + "format", + "formatter", + "lint", + "linter", + "php" + ], + "support": { + "issues": "https://github.com/laravel/pint/issues", + "source": "https://github.com/laravel/pint" + }, + "time": "2024-02-13T17:20:13+00:00" + }, + { + "name": "laravel/sail", + "version": "v1.27.4", + "source": { + "type": "git", + "url": "https://github.com/laravel/sail.git", + "reference": "3047e1a157fad968cc5f6e620d5cbe5c0867fffd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/sail/zipball/3047e1a157fad968cc5f6e620d5cbe5c0867fffd", + "reference": "3047e1a157fad968cc5f6e620d5cbe5c0867fffd", + "shasum": "" + }, + "require": { + "illuminate/console": "^9.52.16|^10.0|^11.0", + "illuminate/contracts": "^9.52.16|^10.0|^11.0", + "illuminate/support": "^9.52.16|^10.0|^11.0", + "php": "^8.0", + "symfony/yaml": "^6.0|^7.0" + }, + "require-dev": { + "orchestra/testbench": "^7.0|^8.0|^9.0", + "phpstan/phpstan": "^1.10" + }, + "bin": [ + "bin/sail" + ], + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laravel\\Sail\\SailServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Sail\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Docker files for running a basic Laravel application.", + "keywords": [ + "docker", + "laravel" + ], + "support": { + "issues": "https://github.com/laravel/sail/issues", + "source": "https://github.com/laravel/sail" + }, + "time": "2024-02-08T15:24:21+00:00" + }, + { + "name": "mockery/mockery", + "version": "1.6.7", + "source": { + "type": "git", + "url": "https://github.com/mockery/mockery.git", + "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mockery/mockery/zipball/0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06", + "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06", + "shasum": "" + }, + "require": { + "hamcrest/hamcrest-php": "^2.0.1", + "lib-pcre": ">=7.0", + "php": ">=7.3" + }, + "conflict": { + "phpunit/phpunit": "<8.0" + }, + "require-dev": { + "phpunit/phpunit": "^8.5 || ^9.6.10", + "symplify/easy-coding-standard": "^12.0.8" + }, + "type": "library", + "autoload": { + "files": [ + "library/helpers.php", + "library/Mockery.php" + ], + "psr-4": { + "Mockery\\": "library/Mockery" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Pádraic Brady", + "email": "padraic.brady@gmail.com", + "homepage": "https://github.com/padraic", + "role": "Author" + }, + { + "name": "Dave Marshall", + "email": "dave.marshall@atstsolutions.co.uk", + "homepage": "https://davedevelopment.co.uk", + "role": "Developer" + }, + { + "name": "Nathanael Esayeas", + "email": "nathanael.esayeas@protonmail.com", + "homepage": "https://github.com/ghostwriter", + "role": "Lead Developer" + } + ], + "description": "Mockery is a simple yet flexible PHP mock object framework", + "homepage": "https://github.com/mockery/mockery", + "keywords": [ + "BDD", + "TDD", + "library", + "mock", + "mock objects", + "mockery", + "stub", + "test", + "test double", + "testing" + ], + "support": { + "docs": "https://docs.mockery.io/", + "issues": "https://github.com/mockery/mockery/issues", + "rss": "https://github.com/mockery/mockery/releases.atom", + "security": "https://github.com/mockery/mockery/security/advisories", + "source": "https://github.com/mockery/mockery" + }, + "time": "2023-12-10T02:24:34+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.11.1", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" + }, + "require-dev": { + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "type": "library", + "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2023-03-08T13:26:56+00:00" + }, + { + "name": "nunomaduro/collision", + "version": "v7.10.0", + "source": { + "type": "git", + "url": "https://github.com/nunomaduro/collision.git", + "reference": "49ec67fa7b002712da8526678abd651c09f375b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/49ec67fa7b002712da8526678abd651c09f375b2", + "reference": "49ec67fa7b002712da8526678abd651c09f375b2", + "shasum": "" + }, + "require": { + "filp/whoops": "^2.15.3", + "nunomaduro/termwind": "^1.15.1", + "php": "^8.1.0", + "symfony/console": "^6.3.4" + }, + "conflict": { + "laravel/framework": ">=11.0.0" + }, + "require-dev": { + "brianium/paratest": "^7.3.0", + "laravel/framework": "^10.28.0", + "laravel/pint": "^1.13.3", + "laravel/sail": "^1.25.0", + "laravel/sanctum": "^3.3.1", + "laravel/tinker": "^2.8.2", + "nunomaduro/larastan": "^2.6.4", + "orchestra/testbench-core": "^8.13.0", + "pestphp/pest": "^2.23.2", + "phpunit/phpunit": "^10.4.1", + "sebastian/environment": "^6.0.1", + "spatie/laravel-ignition": "^2.3.1" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "./src/Adapters/Phpunit/Autoload.php" + ], + "psr-4": { + "NunoMaduro\\Collision\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Cli error handling for console/command-line PHP applications.", + "keywords": [ + "artisan", + "cli", + "command-line", + "console", + "error", + "handling", + "laravel", + "laravel-zero", + "php", + "symfony" + ], + "support": { + "issues": "https://github.com/nunomaduro/collision/issues", + "source": "https://github.com/nunomaduro/collision" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" + } + ], + "time": "2023-10-11T15:45:01+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.3" + }, + "time": "2021-07-20T11:28:43+00:00" + }, + { + "name": "phar-io/version", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "10.1.11", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "78c3b7625965c2513ee96569a4dbb62601784145" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/78c3b7625965c2513ee96569a4dbb62601784145", + "reference": "78c3b7625965c2513ee96569a4dbb62601784145", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^4.18 || ^5.0", + "php": ">=8.1", + "phpunit/php-file-iterator": "^4.0", + "phpunit/php-text-template": "^3.0", + "sebastian/code-unit-reverse-lookup": "^3.0", + "sebastian/complexity": "^3.0", + "sebastian/environment": "^6.0", + "sebastian/lines-of-code": "^2.0", + "sebastian/version": "^4.0", + "theseer/tokenizer": "^1.2.0" + }, + "require-dev": { + "phpunit/phpunit": "^10.1" + }, + "suggest": { + "ext-pcov": "PHP extension that provides line coverage", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "10.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.11" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-12-21T15:38:30+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "4.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c", + "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.1.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-08-31T06:24:48+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "4.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", + "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^10.0" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:56:09+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748", + "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-08-31T14:07:24+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "6.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d", + "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:57:52+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "10.5.10", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "50b8e314b6d0dd06521dc31d1abffa73f25f850c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/50b8e314b6d0dd06521dc31d1abffa73f25f850c", + "reference": "50b8e314b6d0dd06521dc31d1abffa73f25f850c", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.3", + "phar-io/version": "^3.0.2", + "php": ">=8.1", + "phpunit/php-code-coverage": "^10.1.5", + "phpunit/php-file-iterator": "^4.0", + "phpunit/php-invoker": "^4.0", + "phpunit/php-text-template": "^3.0", + "phpunit/php-timer": "^6.0", + "sebastian/cli-parser": "^2.0", + "sebastian/code-unit": "^2.0", + "sebastian/comparator": "^5.0", + "sebastian/diff": "^5.0", + "sebastian/environment": "^6.0", + "sebastian/exporter": "^5.1", + "sebastian/global-state": "^6.0.1", + "sebastian/object-enumerator": "^5.0", + "sebastian/recursion-context": "^5.0", + "sebastian/type": "^4.0", + "sebastian/version": "^4.0" + }, + "suggest": { + "ext-soap": "To be able to generate mocks based on WSDL files" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "10.5-dev" + } + }, + "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.10" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2024-02-04T09:07:51+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/efdc130dbbbb8ef0b545a994fd811725c5282cae", + "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:58:15+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "a81fee9eef0b7a76af11d121767abc44c104e503" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503", + "reference": "a81fee9eef0b7a76af11d121767abc44c104e503", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:58:43+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", + "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:59:15+00:00" + }, + { + "name": "sebastian/comparator", + "version": "5.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "2db5010a484d53ebf536087a70b4a5423c102372" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2db5010a484d53ebf536087a70b4a5423c102372", + "reference": "2db5010a484d53ebf536087a70b4a5423c102372", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-mbstring": "*", + "php": ">=8.1", + "sebastian/diff": "^5.0", + "sebastian/exporter": "^5.0" + }, + "require-dev": { + "phpunit/phpunit": "^10.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "security": "https://github.com/sebastianbergmann/comparator/security/policy", + "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-08-14T13:18:12+00:00" + }, + { + "name": "sebastian/complexity", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "68ff824baeae169ec9f2137158ee529584553799" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799", + "reference": "68ff824baeae169ec9f2137158ee529584553799", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.18 || ^5.0", + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "security": "https://github.com/sebastianbergmann/complexity/security/policy", + "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-12-21T08:37:17+00:00" + }, + { + "name": "sebastian/diff", + "version": "5.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/fbf413a49e54f6b9b17e12d900ac7f6101591b7f", + "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "security": "https://github.com/sebastianbergmann/diff/security/policy", + "source": "https://github.com/sebastianbergmann/diff/tree/5.1.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-12-22T10:55:06+00:00" + }, + { + "name": "sebastian/environment", + "version": "6.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/43c751b41d74f96cbbd4e07b7aec9675651e2951", + "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "https://github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "security": "https://github.com/sebastianbergmann/environment/security/policy", + "source": "https://github.com/sebastianbergmann/environment/tree/6.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-04-11T05:39:26+00:00" + }, + { + "name": "sebastian/exporter", + "version": "5.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/64f51654862e0f5e318db7e9dcc2292c63cdbddc", + "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=8.1", + "sebastian/recursion-context": "^5.0" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "https://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "security": "https://github.com/sebastianbergmann/exporter/security/policy", + "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-09-24T13:22:09+00:00" + }, + { + "name": "sebastian/global-state", + "version": "6.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/7ea9ead78f6d380d2a667864c132c2f7b83055e4", + "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "sebastian/object-reflector": "^3.0", + "sebastian/recursion-context": "^5.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "security": "https://github.com/sebastianbergmann/global-state/security/policy", + "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-07-19T07:19:23+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0", + "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.18 || ^5.0", + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-12-21T08:38:20+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "5.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906", + "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "sebastian/object-reflector": "^3.0", + "sebastian/recursion-context": "^5.0" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T07:08:32+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "24ed13d98130f0e7122df55d06c5c4942a577957" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957", + "reference": "24ed13d98130f0e7122df55d06c5c4942a577957", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T07:06:18+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "5.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "05909fb5bc7df4c52992396d0116aed689f93712" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712", + "reference": "05909fb5bc7df4c52992396d0116aed689f93712", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "https://github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T07:05:40+00:00" + }, + { + "name": "sebastian/type", + "version": "4.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "462699a16464c3944eefc02ebdd77882bd3925bf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf", + "reference": "462699a16464c3944eefc02ebdd77882bd3925bf", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/4.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T07:10:45+00:00" + }, + { + "name": "sebastian/version", + "version": "4.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17", + "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/4.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-07T11:34:05+00:00" + }, + { + "name": "spatie/backtrace", + "version": "1.5.3", + "source": { + "type": "git", + "url": "https://github.com/spatie/backtrace.git", + "reference": "483f76a82964a0431aa836b6ed0edde0c248e3ab" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/backtrace/zipball/483f76a82964a0431aa836b6ed0edde0c248e3ab", + "reference": "483f76a82964a0431aa836b6ed0edde0c248e3ab", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0" + }, + "require-dev": { + "ext-json": "*", + "phpunit/phpunit": "^9.3", + "spatie/phpunit-snapshot-assertions": "^4.2", + "symfony/var-dumper": "^5.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Backtrace\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van de Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "A better backtrace", + "homepage": "https://github.com/spatie/backtrace", + "keywords": [ + "Backtrace", + "spatie" + ], + "support": { + "source": "https://github.com/spatie/backtrace/tree/1.5.3" + }, + "funding": [ + { + "url": "https://github.com/sponsors/spatie", + "type": "github" + }, + { + "url": "https://spatie.be/open-source/support-us", + "type": "other" + } + ], + "time": "2023-06-28T12:59:17+00:00" + }, + { + "name": "spatie/flare-client-php", + "version": "1.4.4", + "source": { + "type": "git", + "url": "https://github.com/spatie/flare-client-php.git", + "reference": "17082e780752d346c2db12ef5d6bee8e835e399c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/17082e780752d346c2db12ef5d6bee8e835e399c", + "reference": "17082e780752d346c2db12ef5d6bee8e835e399c", + "shasum": "" + }, + "require": { + "illuminate/pipeline": "^8.0|^9.0|^10.0|^11.0", + "php": "^8.0", + "spatie/backtrace": "^1.5.2", + "symfony/http-foundation": "^5.2|^6.0|^7.0", + "symfony/mime": "^5.2|^6.0|^7.0", + "symfony/process": "^5.2|^6.0|^7.0", + "symfony/var-dumper": "^5.2|^6.0|^7.0" + }, + "require-dev": { + "dms/phpunit-arraysubset-asserts": "^0.5.0", + "pestphp/pest": "^1.20|^2.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "spatie/phpunit-snapshot-assertions": "^4.0|^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.3.x-dev" + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Spatie\\FlareClient\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Send PHP errors to Flare", + "homepage": "https://github.com/spatie/flare-client-php", + "keywords": [ + "exception", + "flare", + "reporting", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/flare-client-php/issues", + "source": "https://github.com/spatie/flare-client-php/tree/1.4.4" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2024-01-31T14:18:45+00:00" + }, + { + "name": "spatie/ignition", + "version": "1.12.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/ignition.git", + "reference": "5b6f801c605a593106b623e45ca41496a6e7d56d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/ignition/zipball/5b6f801c605a593106b623e45ca41496a6e7d56d", + "reference": "5b6f801c605a593106b623e45ca41496a6e7d56d", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-mbstring": "*", + "php": "^8.0", + "spatie/backtrace": "^1.5.3", + "spatie/flare-client-php": "^1.4.0", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0" + }, + "require-dev": { + "illuminate/cache": "^9.52|^10.0|^11.0", + "mockery/mockery": "^1.4", + "pestphp/pest": "^1.20|^2.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "psr/simple-cache-implementation": "*", + "symfony/cache": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "vlucas/phpdotenv": "^5.5" + }, + "suggest": { + "openai-php/client": "Require get solutions from OpenAI", + "simple-cache-implementation": "To cache solutions from OpenAI" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "Spatie\\Ignition\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Spatie", + "email": "info@spatie.be", + "role": "Developer" + } + ], + "description": "A beautiful error page for PHP applications.", + "homepage": "https://flareapp.io/ignition", + "keywords": [ + "error", + "flare", + "laravel", + "page" + ], + "support": { + "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction", + "forum": "https://twitter.com/flareappio", + "issues": "https://github.com/spatie/ignition/issues", + "source": "https://github.com/spatie/ignition" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2024-01-03T15:49:39+00:00" + }, + { + "name": "spatie/laravel-ignition", + "version": "2.4.2", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-ignition.git", + "reference": "351504f4570e32908839fc5a2dc53bf77d02f85e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/351504f4570e32908839fc5a2dc53bf77d02f85e", + "reference": "351504f4570e32908839fc5a2dc53bf77d02f85e", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-json": "*", + "ext-mbstring": "*", + "illuminate/support": "^10.0|^11.0", + "php": "^8.1", + "spatie/flare-client-php": "^1.3.5", + "spatie/ignition": "^1.9", + "symfony/console": "^6.2.3|^7.0", + "symfony/var-dumper": "^6.2.3|^7.0" + }, + "require-dev": { + "livewire/livewire": "^2.11|^3.3.5", + "mockery/mockery": "^1.5.1", + "openai-php/client": "^0.8.1", + "orchestra/testbench": "^8.0|^9.0", + "pestphp/pest": "^2.30", + "phpstan/extension-installer": "^1.2", + "phpstan/phpstan-deprecation-rules": "^1.1.1", + "phpstan/phpstan-phpunit": "^1.3.3", + "vlucas/phpdotenv": "^5.5" + }, + "suggest": { + "openai-php/client": "Require get solutions from OpenAI", + "psr/simple-cache-implementation": "Needed to cache solutions from OpenAI" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Spatie\\LaravelIgnition\\IgnitionServiceProvider" + ], + "aliases": { + "Flare": "Spatie\\LaravelIgnition\\Facades\\Flare" + } + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Spatie\\LaravelIgnition\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Spatie", + "email": "info@spatie.be", + "role": "Developer" + } + ], + "description": "A beautiful error page for Laravel applications.", + "homepage": "https://flareapp.io/ignition", + "keywords": [ + "error", + "flare", + "laravel", + "page" + ], + "support": { + "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction", + "forum": "https://twitter.com/flareappio", + "issues": "https://github.com/spatie/laravel-ignition/issues", + "source": "https://github.com/spatie/laravel-ignition" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2024-02-09T16:08:40+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/c565ad1e63f30e7477fc40738343c62b40bc672d", + "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/yaml", + "version": "v6.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "d75715985f0f94f978e3a8fa42533e10db921b90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/d75715985f0f94f978e3a8fa42533e10db921b90", + "reference": "d75715985f0f94f978e3a8fa42533e10db921b90", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/console": "<5.4" + }, + "require-dev": { + "symfony/console": "^5.4|^6.0|^7.0" + }, + "bin": [ + "Resources/bin/yaml-lint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v6.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-23T14:51:35+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.2.2", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96", + "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.2" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2023-11-20T00:12:19+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": true, + "prefer-lowest": false, + "platform": { + "php": "^8.1" + }, + "platform-dev": [], + "plugin-api-version": "2.6.0" +} diff --git a/config/app.php b/config/app.php new file mode 100644 index 0000000..22652a2 --- /dev/null +++ b/config/app.php @@ -0,0 +1,188 @@ + env('APP_NAME', 'Laravel'), + + /* + |-------------------------------------------------------------------------- + | Application Environment + |-------------------------------------------------------------------------- + | + | This value determines the "environment" your application is currently + | running in. This may determine how you prefer to configure various + | services the application utilizes. Set this in your ".env" file. + | + */ + + 'env' => env('APP_ENV', 'production'), + + /* + |-------------------------------------------------------------------------- + | Application Debug Mode + |-------------------------------------------------------------------------- + | + | When your application is in debug mode, detailed error messages with + | stack traces will be shown on every error that occurs within your + | application. If disabled, a simple generic error page is shown. + | + */ + + 'debug' => (bool) env('APP_DEBUG', false), + + /* + |-------------------------------------------------------------------------- + | Application URL + |-------------------------------------------------------------------------- + | + | This URL is used by the console to properly generate URLs when using + | the Artisan command line tool. You should set this to the root of + | your application so that it is used when running Artisan tasks. + | + */ + + 'url' => env('APP_URL', 'http://localhost'), + + 'asset_url' => env('ASSET_URL'), + + /* + |-------------------------------------------------------------------------- + | Application Timezone + |-------------------------------------------------------------------------- + | + | Here you may specify the default timezone for your application, which + | will be used by the PHP date and date-time functions. We have gone + | ahead and set this to a sensible default for you out of the box. + | + */ + + 'timezone' => 'UTC', + + /* + |-------------------------------------------------------------------------- + | Application Locale Configuration + |-------------------------------------------------------------------------- + | + | The application locale determines the default locale that will be used + | by the translation service provider. You are free to set this value + | to any of the locales which will be supported by the application. + | + */ + + 'locale' => 'en', + + /* + |-------------------------------------------------------------------------- + | Application Fallback Locale + |-------------------------------------------------------------------------- + | + | The fallback locale determines the locale to use when the current one + | is not available. You may change the value to correspond to any of + | the language folders that are provided through your application. + | + */ + + 'fallback_locale' => 'en', + + /* + |-------------------------------------------------------------------------- + | Faker Locale + |-------------------------------------------------------------------------- + | + | This locale will be used by the Faker PHP library when generating fake + | data for your database seeds. For example, this will be used to get + | localized telephone numbers, street address information and more. + | + */ + + 'faker_locale' => 'en', + + /* + |-------------------------------------------------------------------------- + | Encryption Key + |-------------------------------------------------------------------------- + | + | This key is used by the Illuminate encrypter service and should be set + | to a random, 32 character string, otherwise these encrypted strings + | will not be safe. Please do this before deploying an application! + | + */ + + 'key' => env('APP_KEY'), + + 'cipher' => 'AES-256-CBC', + + /* + |-------------------------------------------------------------------------- + | Maintenance Mode Driver + |-------------------------------------------------------------------------- + | + | These configuration options determine the driver used to determine and + | manage Laravel's "maintenance mode" status. The "cache" driver will + | allow maintenance mode to be controlled across multiple machines. + | + | Supported drivers: "file", "cache" + | + */ + + 'maintenance' => [ + 'driver' => 'file', + // 'store' => 'redis', + ], + + /* + |-------------------------------------------------------------------------- + | Autoloaded Service Providers + |-------------------------------------------------------------------------- + | + | The service providers listed here will be automatically loaded on the + | request to your application. Feel free to add your own services to + | this array to grant expanded functionality to your applications. + | + */ + + 'providers' => ServiceProvider::defaultProviders()->merge([ + /* + * Package Service Providers... + */ + + /* + * Application Service Providers... + */ + App\Providers\AppServiceProvider::class, + App\Providers\AuthServiceProvider::class, + // App\Providers\BroadcastServiceProvider::class, + App\Providers\EventServiceProvider::class, + App\Providers\RouteServiceProvider::class, + ])->toArray(), + + /* + |-------------------------------------------------------------------------- + | Class Aliases + |-------------------------------------------------------------------------- + | + | This array of class aliases will be registered when this application + | is started. However, feel free to register as many as you wish as + | the aliases are "lazy" loaded so they don't hinder performance. + | + */ + + 'aliases' => Facade::defaultAliases()->merge([ + // 'Example' => App\Facades\Example::class, + ])->toArray(), + +]; diff --git a/config/auth.php b/config/auth.php new file mode 100644 index 0000000..9548c15 --- /dev/null +++ b/config/auth.php @@ -0,0 +1,115 @@ + [ + 'guard' => 'web', + 'passwords' => 'users', + ], + + /* + |-------------------------------------------------------------------------- + | Authentication Guards + |-------------------------------------------------------------------------- + | + | Next, you may define every authentication guard for your application. + | Of course, a great default configuration has been defined for you + | here which uses session storage and the Eloquent user provider. + | + | All authentication drivers have a user provider. This defines how the + | users are actually retrieved out of your database or other storage + | mechanisms used by this application to persist your user's data. + | + | Supported: "session" + | + */ + + 'guards' => [ + 'web' => [ + 'driver' => 'session', + 'provider' => 'users', + ], + ], + + /* + |-------------------------------------------------------------------------- + | User Providers + |-------------------------------------------------------------------------- + | + | All authentication drivers have a user provider. This defines how the + | users are actually retrieved out of your database or other storage + | mechanisms used by this application to persist your user's data. + | + | If you have multiple user tables or models you may configure multiple + | sources which represent each model / table. These sources may then + | be assigned to any extra authentication guards you have defined. + | + | Supported: "database", "eloquent" + | + */ + + 'providers' => [ + 'users' => [ + 'driver' => 'eloquent', + 'model' => App\Models\User::class, + ], + + // 'users' => [ + // 'driver' => 'database', + // 'table' => 'users', + // ], + ], + + /* + |-------------------------------------------------------------------------- + | Resetting Passwords + |-------------------------------------------------------------------------- + | + | You may specify multiple password reset configurations if you have more + | than one user table or model in the application and you want to have + | separate password reset settings based on the specific user types. + | + | The expiry time is the number of minutes that each reset token will be + | considered valid. This security feature keeps tokens short-lived so + | they have less time to be guessed. You may change this as needed. + | + | The throttle setting is the number of seconds a user must wait before + | generating more password reset tokens. This prevents the user from + | quickly generating a very large amount of password reset tokens. + | + */ + + 'passwords' => [ + 'users' => [ + 'provider' => 'users', + 'table' => 'password_reset_tokens', + 'expire' => 60, + 'throttle' => 60, + ], + ], + + /* + |-------------------------------------------------------------------------- + | Password Confirmation Timeout + |-------------------------------------------------------------------------- + | + | Here you may define the amount of seconds before a password confirmation + | times out and the user is prompted to re-enter their password via the + | confirmation screen. By default, the timeout lasts for three hours. + | + */ + + 'password_timeout' => 10800, + +]; diff --git a/config/backpack/base.php b/config/backpack/base.php new file mode 100644 index 0000000..5155e06 --- /dev/null +++ b/config/backpack/base.php @@ -0,0 +1,195 @@ + env('BACKPACK_REGISTRATION_OPEN', env('APP_ENV') === 'local'), + + /* + |-------------------------------------------------------------------------- + | Routing + |-------------------------------------------------------------------------- + */ + + // The prefix used in all base routes (the 'admin' in admin/dashboard) + // You can make sure all your URLs use this prefix by using the backpack_url() helper instead of url() + 'route_prefix' => 'admin', + + // The web middleware (group) used in all base & CRUD routes + // If you've modified your "web" middleware group (ex: removed sessions), you can use a different + // route group, that has all the the middleware listed below in the comments. + 'web_middleware' => 'web', + // Or you can comment the above, and uncomment the complete list below. + // 'web_middleware' => [ + // \App\Http\Middleware\EncryptCookies::class, + // \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, + // \Illuminate\Session\Middleware\StartSession::class, + // \Illuminate\View\Middleware\ShareErrorsFromSession::class, + // \App\Http\Middleware\VerifyCsrfToken::class, + // ], + + // Set this to false if you would like to use your own AuthController and PasswordController + // (you then need to setup your auth routes manually in your routes.php file) + // Warning: if you disable this, the password recovery routes (below) will be disabled too! + 'setup_auth_routes' => true, + + // Set this to false if you would like to skip adding the dashboard routes + // (you then need to overwrite the login route on your AuthController) + 'setup_dashboard_routes' => true, + + // Set this to false if you would like to skip adding "my account" routes + // (you then need to manually define the routes in your web.php) + 'setup_my_account_routes' => true, + + // Set this to false if you would like to skip adding the password recovery routes + // (you then need to manually define the routes in your web.php) + 'setup_password_recovery_routes' => false, + + // Set this to true if you would like to enable email verification for your user model. + // Make sure your user model implements the MustVerifyEmail contract and your database + // table contains the `email_verified_at` column. Read the following before enabling: + // https://backpackforlaravel.com/docs/6.x/base-how-to#enable-email-verification-in-backpack-routes + 'setup_email_verification_routes' => false, + + // When email verification is enabled, automatically add the Verified middleware to Backpack routes? + // Set false if you want to use your own Verified middleware in `middleware_class`. + 'setup_email_verification_middleware' => true, + + // How many times in any given time period should the user be allowed to + // request a new verification email? + // Defaults to 1,10 - 1 time in 10 minutes. + 'email_verification_throttle_access' => '3,15', + + /* + |-------------------------------------------------------------------------- + | Security + |-------------------------------------------------------------------------- + */ + + // Backpack will prevent visitors from requesting password recovery too many times + // for a certain email, to make sure they cannot be spammed that way. + // How many seconds should a visitor wait, after they've requested a + // password reset, before they can try again for the same email? + 'password_recovery_throttle_notifications' => 600, // time in seconds + + // How much time should the token sent to the user email be considered valid? + // After this time expires, user needs to request a new reset token. + 'password_recovery_token_expiration' => 60, // time in minutes + + // Backpack will prevent an IP from trying to reset the password too many times, + // so that a malicious actor cannot try too many emails, too see if they have + // accounts or to increase the AWS/SendGrid/etc bill. + // + // How many times in any given time period should the user be allowed to + // attempt a password reset? Take into account that user might wrongly + // type an email at first, so at least allow one more try. + // Defaults to 3,10 - 3 times in 10 minutes. + 'password_recovery_throttle_access' => '3,10', + + /* + |-------------------------------------------------------------------------- + | Authentication + |-------------------------------------------------------------------------- + */ + + // Fully qualified namespace of the User model + 'user_model_fqn' => config('auth.providers.users.model'), + // 'user_model_fqn' => App\User::class, // works on Laravel <= 7 + // 'user_model_fqn' => App\Models\User::class, // works on Laravel >= 8 + + // The classes for the middleware to check if the visitor is an admin + // Can be a single class or an array of classes + 'middleware_class' => [ + App\Http\Middleware\CheckIfAdmin::class, + \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, + \Backpack\CRUD\app\Http\Middleware\AuthenticateSession::class, + // \Backpack\LanguageSwitcher\Http\Middleware\LanguageSwitcherMiddleware::class, + // \Backpack\CRUD\app\Http\Middleware\UseBackpackAuthGuardInsteadOfDefaultAuthGuard::class, + ], + + // Alias for that middleware + 'middleware_key' => 'admin', + // Note: It's recommended to use the backpack_middleware() helper everywhere, which pulls this key for you. + + // Username column for authentication + // The Backpack default is the same as the Laravel default (email) + // If you need to switch to username, you also need to create that column in your db + 'authentication_column' => 'email', + 'authentication_column_name' => 'Email', + + // Backpack assumes that your "database email column" for operations like Login and Register is called "email". + // If your database email column have a different name, you can configure it here. Eg: `user_mail` + 'email_column' => 'email', + + // The guard that protects the Backpack admin panel. + // If null, the config.auth.defaults.guard value will be used. + 'guard' => 'backpack', + + // The password reset configuration for Backpack. + // If null, the config.auth.defaults.passwords value will be used. + 'passwords' => 'backpack', + + // What kind of avatar will you like to show to the user? + // Default: gravatar (automatically use the gravatar for their email) + // Other options: + // - null (generic image with their first letter) + // - example_method_name (specify the method on the User model that returns the URL) + 'avatar_type' => 'gravatar', + + // Gravatar fallback options are 'identicon', 'monsterid', 'wavatar', 'retro', 'robohash', 'blank' + // 'blank' will keep the generic image with the user first letter + 'gravatar_fallback' => 'blank', + + /* + |-------------------------------------------------------------------------- + | File System + |-------------------------------------------------------------------------- + */ + + // Backpack\Base sets up its own filesystem disk, just like you would by + // adding an entry to your config/filesystems.php. It points to the root + // of your project and it's used throughout all Backpack packages. + // + // You can rename this disk here. Default: root + 'root_disk_name' => 'root', + + /* + |-------------------------------------------------------------------------- + | Application + |-------------------------------------------------------------------------- + */ + + // Should we use DB transactions when executing multiple queries? For example when creating an entry and it's relationships. + // By wrapping in a database transaction you ensure that either all queries went ok, or if some failed the whole process + // is rolled back and considered failed. This is a good setting for data integrity. + 'useDatabaseTransactions' => true, + + /* + |-------------------------------------------------------------------------- + | Backpack Token Username + |-------------------------------------------------------------------------- + | + | If you have access to closed-source Backpack add-ons, please provide + | your token username here, if you're getting yellow alerts on your + | admin panel's pages. Normally this is not needed, it is + | preferred to add this as an environment variable + | (most likely in your .env file). + | + | More info and payment form on: + | https://www.backpackforlaravel.com + | + */ + + 'token_username' => env('BACKPACK_TOKEN_USERNAME', false), +]; diff --git a/config/backpack/crud.php b/config/backpack/crud.php new file mode 100644 index 0000000..3ffc530 --- /dev/null +++ b/config/backpack/crud.php @@ -0,0 +1,481 @@ + false, + 'translatable_field_icon_position' => 'right', // left or right + + 'locales' => [ + // "af_NA" => "Afrikaans (Namibia)", + // "af_ZA" => "Afrikaans (South Africa)", + // "af" => "Afrikaans", + // "ak_GH" => "Akan (Ghana)", + // "ak" => "Akan", + // "sq_AL" => "Albanian (Albania)", + // "sq" => "Albanian", + // "am_ET" => "Amharic (Ethiopia)", + // "am" => "Amharic", + // "ar_DZ" => "Arabic (Algeria)", + // "ar_BH" => "Arabic (Bahrain)", + // "ar_EG" => "Arabic (Egypt)", + // "ar_IQ" => "Arabic (Iraq)", + // "ar_JO" => "Arabic (Jordan)", + // "ar_KW" => "Arabic (Kuwait)", + // "ar_LB" => "Arabic (Lebanon)", + // "ar_LY" => "Arabic (Libya)", + // "ar_MA" => "Arabic (Morocco)", + // "ar_OM" => "Arabic (Oman)", + // "ar_QA" => "Arabic (Qatar)", + // "ar_SA" => "Arabic (Saudi Arabia)", + // "ar_SD" => "Arabic (Sudan)", + // "ar_SY" => "Arabic (Syria)", + // "ar_TN" => "Arabic (Tunisia)", + // "ar_AE" => "Arabic (United Arab Emirates)", + // "ar_YE" => "Arabic (Yemen)", + // "ar" => "Arabic", + // "hy_AM" => "Armenian (Armenia)", + // "hy" => "Armenian", + // "as_IN" => "Assamese (India)", + // "as" => "Assamese", + // "asa_TZ" => "Asu (Tanzania)", + // "asa" => "Asu", + // "az_Cyrl" => "Azerbaijani (Cyrillic)", + // "az_Cyrl_AZ" => "Azerbaijani (Cyrillic, Azerbaijan)", + // "az_Latn" => "Azerbaijani (Latin)", + // "az_Latn_AZ" => "Azerbaijani (Latin, Azerbaijan)", + // "az" => "Azerbaijani", + // "bm_ML" => "Bambara (Mali)", + // "bm" => "Bambara", + // "eu_ES" => "Basque (Spain)", + // "eu" => "Basque", + // "be_BY" => "Belarusian (Belarus)", + // "be" => "Belarusian", + // "bem_ZM" => "Bemba (Zambia)", + // "bem" => "Bemba", + // "bez_TZ" => "Bena (Tanzania)", + // "bez" => "Bena", + // "bn_BD" => "Bengali (Bangladesh)", + // "bn_IN" => "Bengali (India)", + // "bn" => "Bengali", + // "bs_BA" => "Bosnian (Bosnia and Herzegovina)", + // "bs" => "Bosnian", + // "bg_BG" => "Bulgarian (Bulgaria)", + // "bg" => "Bulgarian", + // "my_MM" => "Burmese (Myanmar [Burma])", + // "my" => "Burmese", + // "ca_ES" => "Catalan (Spain)", + // "ca" => "Catalan", + // "tzm_Latn" => "Central Morocco Tamazight (Latin)", + // "tzm_Latn_MA" => "Central Morocco Tamazight (Latin, Morocco)", + // "tzm" => "Central Morocco Tamazight", + // "chr_US" => "Cherokee (United States)", + // "chr" => "Cherokee", + // "cgg_UG" => "Chiga (Uganda)", + // "cgg" => "Chiga", + // "zh_Hans" => "Chinese (Simplified Han)", + // "zh_Hans_CN" => "Chinese (Simplified Han, China)", + // "zh_Hans_HK" => "Chinese (Simplified Han, Hong Kong SAR China)", + // "zh_Hans_MO" => "Chinese (Simplified Han, Macau SAR China)", + // "zh_Hans_SG" => "Chinese (Simplified Han, Singapore)", + // "zh_Hant" => "Chinese (Traditional Han)", + // "zh_Hant_HK" => "Chinese (Traditional Han, Hong Kong SAR China)", + // "zh_Hant_MO" => "Chinese (Traditional Han, Macau SAR China)", + //"zh_Hant_TW" => "Chinese (Traditional Han, Taiwan)", + // "zh-TW" => "中文 (繁體)", + // "zh" => "Chinese", + // "kw_GB" => "Cornish (United Kingdom)", + // "kw" => "Cornish", + // "hr_HR" => "Croatian (Croatia)", + // "hr" => "Croatian", + // "cs_CZ" => "Czech (Czech Republic)", + // "cs" => "Czech", + // "da_DK" => "Danish (Denmark)", + // "da" => "Danish", + // "nl_BE" => "Dutch (Belgium)", + // "nl_NL" => "Dutch (Netherlands)", + // "nl" => "Dutch", + // "ebu_KE" => "Embu (Kenya)", + // "ebu" => "Embu", + // "en_AS" => "English (American Samoa)", + // "en_AU" => "English (Australia)", + // "en_BE" => "English (Belgium)", + // "en_BZ" => "English (Belize)", + // "en_BW" => "English (Botswana)", + // "en_CA" => "English (Canada)", + // "en_GU" => "English (Guam)", + // "en_HK" => "English (Hong Kong SAR China)", + // "en_IN" => "English (India)", + // "en_IE" => "English (Ireland)", + // "en_JM" => "English (Jamaica)", + // "en_MT" => "English (Malta)", + // "en_MH" => "English (Marshall Islands)", + // "en_MU" => "English (Mauritius)", + // "en_NA" => "English (Namibia)", + // "en_NZ" => "English (New Zealand)", + // "en_MP" => "English (Northern Mariana Islands)", + // "en_PK" => "English (Pakistan)", + // "en_PH" => "English (Philippines)", + // "en_SG" => "English (Singapore)", + // "en_ZA" => "English (South Africa)", + // "en_TT" => "English (Trinidad and Tobago)", + // "en_UM" => "English (U.S. Minor Outlying Islands)", + // "en_VI" => "English (U.S. Virgin Islands)", + // "en_GB" => "English (United Kingdom)", + // "en_US" => "English (United States)", + // "en_ZW" => "English (Zimbabwe)", + 'en' => 'English', + // "eo" => "Esperanto", + // "et_EE" => "Estonian (Estonia)", + // "et" => "Estonian", + // "ee_GH" => "Ewe (Ghana)", + // "ee_TG" => "Ewe (Togo)", + // "ee" => "Ewe", + // "fo_FO" => "Faroese (Faroe Islands)", + // "fo" => "Faroese", + // "fil_PH" => "Filipino (Philippines)", + // "fil" => "Filipino", + // "fi_FI" => "Finnish (Finland)", + // "fi" => "Finnish", + // "fr_BE" => "French (Belgium)", + // "fr_BJ" => "French (Benin)", + // "fr_BF" => "French (Burkina Faso)", + // "fr_BI" => "French (Burundi)", + // "fr_CM" => "French (Cameroon)", + // "fr_CA" => "French (Canada)", + // "fr_CF" => "French (Central African Republic)", + // "fr_TD" => "French (Chad)", + // "fr_KM" => "French (Comoros)", + // "fr_CG" => "French (Congo - Brazzaville)", + // "fr_CD" => "French (Congo - Kinshasa)", + // "fr_CI" => "French (Côte d’Ivoire)", + // "fr_DJ" => "French (Djibouti)", + // "fr_GQ" => "French (Equatorial Guinea)", + // "fr_FR" => "French (France)", + // "fr_GA" => "French (Gabon)", + // "fr_GP" => "French (Guadeloupe)", + // "fr_GN" => "French (Guinea)", + // "fr_LU" => "French (Luxembourg)", + // "fr_MG" => "French (Madagascar)", + // "fr_ML" => "French (Mali)", + // "fr_MQ" => "French (Martinique)", + // "fr_MC" => "French (Monaco)", + // "fr_NE" => "French (Niger)", + // "fr_RW" => "French (Rwanda)", + // "fr_RE" => "French (Réunion)", + // "fr_BL" => "French (Saint Barthélemy)", + // "fr_MF" => "French (Saint Martin)", + // "fr_SN" => "French (Senegal)", + // "fr_CH" => "French (Switzerland)", + // "fr_TG" => "French (Togo)", + // 'fr' => 'French', + // "ff_SN" => "Fulah (Senegal)", + // "ff" => "Fulah", + // "gl_ES" => "Galician (Spain)", + // "gl" => "Galician", + // "lg_UG" => "Ganda (Uganda)", + // "lg" => "Ganda", + // "ka_GE" => "Georgian (Georgia)", + // "ka" => "Georgian", + // "de_AT" => "German (Austria)", + // "de_BE" => "German (Belgium)", + // "de_DE" => "German (Germany)", + // "de_LI" => "German (Liechtenstein)", + // "de_LU" => "German (Luxembourg)", + // "de_CH" => "German (Switzerland)", + // "de" => "German", + // "el_CY" => "Greek (Cyprus)", + // "el_GR" => "Greek (Greece)", + // "el" => "Greek", + // "gu_IN" => "Gujarati (India)", + // "gu" => "Gujarati", + // "guz_KE" => "Gusii (Kenya)", + // "guz" => "Gusii", + // "ha_Latn" => "Hausa (Latin)", + // "ha_Latn_GH" => "Hausa (Latin, Ghana)", + // "ha_Latn_NE" => "Hausa (Latin, Niger)", + // "ha_Latn_NG" => "Hausa (Latin, Nigeria)", + // "ha" => "Hausa", + // "haw_US" => "Hawaiian (United States)", + // "haw" => "Hawaiian", + // "he_IL" => "Hebrew (Israel)", + // "he" => "Hebrew", + // "hi_IN" => "Hindi (India)", + // "hi" => "Hindi", + // "hu_HU" => "Hungarian (Hungary)", + // "hu" => "Hungarian", + // "is_IS" => "Icelandic (Iceland)", + // "is" => "Icelandic", + // "ig_NG" => "Igbo (Nigeria)", + // "ig" => "Igbo", + // "id_ID" => "Indonesian (Indonesia)", + // "id" => "Indonesian", + // "ga_IE" => "Irish (Ireland)", + // "ga" => "Irish", + // "it_IT" => "Italian (Italy)", + // "it_CH" => "Italian (Switzerland)", + // 'it' => 'Italian', + // "ja_JP" => "Japanese (Japan)", + // "ja" => "Japanese", + // "kea_CV" => "Kabuverdianu (Cape Verde)", + // "kea" => "Kabuverdianu", + // "kab_DZ" => "Kabyle (Algeria)", + // "kab" => "Kabyle", + // "kl_GL" => "Kalaallisut (Greenland)", + // "kl" => "Kalaallisut", + // "kln_KE" => "Kalenjin (Kenya)", + // "kln" => "Kalenjin", + // "kam_KE" => "Kamba (Kenya)", + // "kam" => "Kamba", + // "kn_IN" => "Kannada (India)", + // "kn" => "Kannada", + // "kk_Cyrl" => "Kazakh (Cyrillic)", + // "kk_Cyrl_KZ" => "Kazakh (Cyrillic, Kazakhstan)", + // "kk" => "Kazakh", + // "km_KH" => "Khmer (Cambodia)", + // "km" => "Khmer", + // "ki_KE" => "Kikuyu (Kenya)", + // "ki" => "Kikuyu", + // "rw_RW" => "Kinyarwanda (Rwanda)", + // "rw" => "Kinyarwanda", + // "kok_IN" => "Konkani (India)", + // "kok" => "Konkani", + // "ko_KR" => "Korean (South Korea)", + // "ko" => "Korean", + // "khq_ML" => "Koyra Chiini (Mali)", + // "khq" => "Koyra Chiini", + // "ses_ML" => "Koyraboro Senni (Mali)", + // "ses" => "Koyraboro Senni", + // "lag_TZ" => "Langi (Tanzania)", + // "lag" => "Langi", + // "lv_LV" => "Latvian (Latvia)", + // "lv" => "Latvian", + // "lt_LT" => "Lithuanian (Lithuania)", + // "lt" => "Lithuanian", + // "luo_KE" => "Luo (Kenya)", + // "luo" => "Luo", + // "luy_KE" => "Luyia (Kenya)", + // "luy" => "Luyia", + // "mk_MK" => "Macedonian (Macedonia)", + // "mk" => "Macedonian", + // "jmc_TZ" => "Machame (Tanzania)", + // "jmc" => "Machame", + // "kde_TZ" => "Makonde (Tanzania)", + // "kde" => "Makonde", + // "mg_MG" => "Malagasy (Madagascar)", + // "mg" => "Malagasy", + // "ms_BN" => "Malay (Brunei)", + // "ms_MY" => "Malay (Malaysia)", + // "ms" => "Malay", + // "ml_IN" => "Malayalam (India)", + // "ml" => "Malayalam", + // "mt_MT" => "Maltese (Malta)", + // "mt" => "Maltese", + // "gv_GB" => "Manx (United Kingdom)", + // "gv" => "Manx", + // "mr_IN" => "Marathi (India)", + // "mr" => "Marathi", + // "mas_KE" => "Masai (Kenya)", + // "mas_TZ" => "Masai (Tanzania)", + // "mas" => "Masai", + // "mer_KE" => "Meru (Kenya)", + // "mer" => "Meru", + // "mfe_MU" => "Morisyen (Mauritius)", + // "mfe" => "Morisyen", + // "naq_NA" => "Nama (Namibia)", + // "naq" => "Nama", + // "ne_IN" => "Nepali (India)", + // "ne_NP" => "Nepali (Nepal)", + // "ne" => "Nepali", + // "nd_ZW" => "North Ndebele (Zimbabwe)", + // "nd" => "North Ndebele", + // "nb_NO" => "Norwegian Bokmål (Norway)", + // "nb" => "Norwegian Bokmål", + // "nn_NO" => "Norwegian Nynorsk (Norway)", + // "nn" => "Norwegian Nynorsk", + // "nyn_UG" => "Nyankole (Uganda)", + // "nyn" => "Nyankole", + // "or_IN" => "Oriya (India)", + // "or" => "Oriya", + // "om_ET" => "Oromo (Ethiopia)", + // "om_KE" => "Oromo (Kenya)", + // "om" => "Oromo", + // "ps_AF" => "Pashto (Afghanistan)", + // "ps" => "Pashto", + // "fa_AF" => "Persian (Afghanistan)", + // "fa_IR" => "Persian (Iran)", + // "fa" => "Persian", + // "pl_PL" => "Polish (Poland)", + // "pl" => "Polish", + // "pt_BR" => "Portuguese (Brazil)", + // "pt_GW" => "Portuguese (Guinea-Bissau)", + // "pt_MZ" => "Portuguese (Mozambique)", + // "pt_PT" => "Portuguese (Portugal)", + // "pt" => "Portuguese", + // "pa_Arab" => "Punjabi (Arabic)", + // "pa_Arab_PK" => "Punjabi (Arabic, Pakistan)", + // "pa_Guru" => "Punjabi (Gurmukhi)", + // "pa_Guru_IN" => "Punjabi (Gurmukhi, India)", + // "pa" => "Punjabi", + // "ro_MD" => "Romanian (Moldova)", + // "ro_RO" => "Romanian (Romania)", + // 'ro' => 'Romanian', + // "rm_CH" => "Romansh (Switzerland)", + // "rm" => "Romansh", + // "rof_TZ" => "Rombo (Tanzania)", + // "rof" => "Rombo", + // "ru_MD" => "Russian (Moldova)", + // "ru_RU" => "Russian (Russia)", + // "ru_UA" => "Russian (Ukraine)", + // "ru" => "Russian", + // "rwk_TZ" => "Rwa (Tanzania)", + // "rwk" => "Rwa", + // "saq_KE" => "Samburu (Kenya)", + // "saq" => "Samburu", + // "sg_CF" => "Sango (Central African Republic)", + // "sg" => "Sango", + // "seh_MZ" => "Sena (Mozambique)", + // "seh" => "Sena", + // "sr_Cyrl" => "Serbian (Cyrillic)", + // "sr_Cyrl_BA" => "Serbian (Cyrillic, Bosnia and Herzegovina)", + // "sr_Cyrl_ME" => "Serbian (Cyrillic, Montenegro)", + // "sr_Cyrl_RS" => "Serbian (Cyrillic, Serbia)", + // "sr_Latn" => "Serbian (Latin)", + // "sr_Latn_BA" => "Serbian (Latin, Bosnia and Herzegovina)", + // "sr_Latn_ME" => "Serbian (Latin, Montenegro)", + // "sr_Latn_RS" => "Serbian (Latin, Serbia)", + // "sr" => "Serbian", + // "sn_ZW" => "Shona (Zimbabwe)", + // "sn" => "Shona", + // "ii_CN" => "Sichuan Yi (China)", + // "ii" => "Sichuan Yi", + // "si_LK" => "Sinhala (Sri Lanka)", + // "si" => "Sinhala", + // "sk_SK" => "Slovak (Slovakia)", + // "sk" => "Slovak", + // "sl_SI" => "Slovenian (Slovenia)", + // "sl" => "Slovenian", + // "xog_UG" => "Soga (Uganda)", + // "xog" => "Soga", + // "so_DJ" => "Somali (Djibouti)", + // "so_ET" => "Somali (Ethiopia)", + // "so_KE" => "Somali (Kenya)", + // "so_SO" => "Somali (Somalia)", + // "so" => "Somali", + // "es_AR" => "Spanish (Argentina)", + // "es_BO" => "Spanish (Bolivia)", + // "es_CL" => "Spanish (Chile)", + // "es_CO" => "Spanish (Colombia)", + // "es_CR" => "Spanish (Costa Rica)", + // "es_DO" => "Spanish (Dominican Republic)", + // "es_EC" => "Spanish (Ecuador)", + // "es_SV" => "Spanish (El Salvador)", + // "es_GQ" => "Spanish (Equatorial Guinea)", + // "es_GT" => "Spanish (Guatemala)", + // "es_HN" => "Spanish (Honduras)", + // "es_419" => "Spanish (Latin America)", + // "es_MX" => "Spanish (Mexico)", + // "es_NI" => "Spanish (Nicaragua)", + // "es_PA" => "Spanish (Panama)", + // "es_PY" => "Spanish (Paraguay)", + // "es_PE" => "Spanish (Peru)", + // "es_PR" => "Spanish (Puerto Rico)", + // "es_ES" => "Spanish (Spain)", + // "es_US" => "Spanish (United States)", + // "es_UY" => "Spanish (Uruguay)", + // "es_VE" => "Spanish (Venezuela)", + // "es" => "Spanish", + // "sw_KE" => "Swahili (Kenya)", + // "sw_TZ" => "Swahili (Tanzania)", + // "sw" => "Swahili", + // "sv_FI" => "Swedish (Finland)", + // "sv_SE" => "Swedish (Sweden)", + // "sv" => "Swedish", + // "gsw_CH" => "Swiss German (Switzerland)", + // "gsw" => "Swiss German", + // "shi_Latn" => "Tachelhit (Latin)", + // "shi_Latn_MA" => "Tachelhit (Latin, Morocco)", + // "shi_Tfng" => "Tachelhit (Tifinagh)", + // "shi_Tfng_MA" => "Tachelhit (Tifinagh, Morocco)", + // "shi" => "Tachelhit", + // "dav_KE" => "Taita (Kenya)", + // "dav" => "Taita", + // "ta_IN" => "Tamil (India)", + // "ta_LK" => "Tamil (Sri Lanka)", + // "ta" => "Tamil", + // "te_IN" => "Telugu (India)", + // "te" => "Telugu", + // "teo_KE" => "Teso (Kenya)", + // "teo_UG" => "Teso (Uganda)", + // "teo" => "Teso", + // "th_TH" => "Thai (Thailand)", + // "th" => "Thai", + // "bo_CN" => "Tibetan (China)", + // "bo_IN" => "Tibetan (India)", + // "bo" => "Tibetan", + // "ti_ER" => "Tigrinya (Eritrea)", + // "ti_ET" => "Tigrinya (Ethiopia)", + // "ti" => "Tigrinya", + // "to_TO" => "Tonga (Tonga)", + // "to" => "Tonga", + // "tr_TR" => "Turkish (Turkey)", + // "tr" => "Turkish", + // "uk_UA" => "Ukrainian (Ukraine)", + // "uk" => "Ukrainian", + // "ur_IN" => "Urdu (India)", + // "ur_PK" => "Urdu (Pakistan)", + // "ur" => "Urdu", + // "uz_Arab" => "Uzbek (Arabic)", + // "uz_Arab_AF" => "Uzbek (Arabic, Afghanistan)", + // "uz_Cyrl" => "Uzbek (Cyrillic)", + // "uz_Cyrl_UZ" => "Uzbek (Cyrillic, Uzbekistan)", + // "uz_Latn" => "Uzbek (Latin)", + // "uz_Latn_UZ" => "Uzbek (Latin, Uzbekistan)", + // "uz" => "Uzbek", + // "vi_VN" => "Vietnamese (Vietnam)", + // "vi" => "Vietnamese", + // "vun_TZ" => "Vunjo (Tanzania)", + // "vun" => "Vunjo", + // "cy_GB" => "Welsh (United Kingdom)", + // "cy" => "Welsh", + // "yo_NG" => "Yoruba (Nigeria)", + // "yo" => "Yoruba", + // "zu_ZA" => "Zulu (South Africa)", + // "zu" => "Zulu" + ], + + 'view_namespaces' => [ + 'buttons' => [ + 'crud::buttons', // falls back to 'resources/views/vendor/backpack/crud/buttons' + ], + 'columns' => [ + 'crud::columns', // falls back to 'resources/views/vendor/backpack/crud/columns' + ], + 'fields' => [ + 'crud::fields', // falls back to 'resources/views/vendor/backpack/crud/fields' + ], + 'filters' => [ + 'crud::filters', // falls back to 'resources/views/vendor/backpack/crud/filters' + ], + ], + // the uploaders for the `withFiles` macro + 'uploaders' => [ + 'withFiles' => [ + 'image' => \Backpack\CRUD\app\Library\Uploaders\SingleBase64Image::class, + 'upload' => \Backpack\CRUD\app\Library\Uploaders\SingleFile::class, + 'upload_multiple' => \Backpack\CRUD\app\Library\Uploaders\MultipleFiles::class, + ], + ], + + 'file_name_generator' => \Backpack\CRUD\app\Library\Uploaders\Support\FileNameGenerator::class, + +]; diff --git a/config/backpack/language-switcher.php b/config/backpack/language-switcher.php new file mode 100644 index 0000000..9f3dc57 --- /dev/null +++ b/config/backpack/language-switcher.php @@ -0,0 +1,11 @@ + true, + + // when true, we will add the route prefix on the language-switcher route. + // eg: https://domain.com/admin/set-locale/{locale} instead of https://domain.com/set-locale/{locale} + 'use_backpack_route_prefix' => false, +]; \ No newline at end of file diff --git a/config/backpack/operations/create.php b/config/backpack/operations/create.php new file mode 100644 index 0000000..6d2463a --- /dev/null +++ b/config/backpack/operations/create.php @@ -0,0 +1,42 @@ +crud->setCreateContentClass('class-string') + 'contentClass' => 'col-md-12 bold-labels', + + // When using tabbed forms (create & update), what kind of tabs would you like? + 'tabsType' => 'horizontal', //options: horizontal, vertical + + // How would you like the validation errors to be shown? + 'groupedErrors' => true, + 'inlineErrors' => true, + + // when the page loads, put the cursor on the first input? + 'autoFocusOnFirstField' => true, + + // Where do you want to redirect the user by default, save? + // options: save_and_back, save_and_edit, save_and_new + 'defaultSaveAction' => 'save_and_back', + + // When the user chooses "save and back" or "save and new", show a bubble + // for the fact that the default save action has been changed? + 'showSaveActionChange' => true, //options: true, false + + // Should we show a cancel button to the user? + 'showCancelButton' => true, + + // Should we warn a user before leaving the page with unsaved changes? + 'warnBeforeLeaving' => false, + + // Before saving the entry, how would you like the request to be stripped? + // - false - use Backpack's default (ONLY save inputs that have fields) + // - invokable class - custom stripping (the return should be an array with input names) + // 'strippedRequest' => App\Http\Requests\StripBackpackRequest::class, +]; diff --git a/config/backpack/operations/form.php b/config/backpack/operations/form.php new file mode 100644 index 0000000..e21924a --- /dev/null +++ b/config/backpack/operations/form.php @@ -0,0 +1,39 @@ +crud->setCreateContentClass('class-string') + 'contentClass' => 'col-md-12 bold-labels', + + // When using tabbed forms (create & update), what kind of tabs would you like? + 'tabsType' => 'horizontal', //options: horizontal, vertical + + // How would you like the validation errors to be shown? + 'groupedErrors' => true, + 'inlineErrors' => true, + + // when the page loads, put the cursor on the first input? + 'autoFocusOnFirstField' => true, + + // Where do you want to redirect the user by default, save? + 'defaultSaveAction' => 'save_and_back', + + // When the user chooses "save and back" or "save and new", show a bubble + // for the fact that the default save action has been changed? + 'showSaveActionChange' => false, //options: true, false + + // Should we show a cancel button to the user? + 'showCancelButton' => true, + + // Should we warn a user before leaving the page with unsaved changes? + 'warnBeforeLeaving' => false, + + // Before saving the entry, how would you like the request to be stripped? + // - false - use Backpack's default (ONLY save inputs that have fields) + // - invokable class - custom stripping (the return should be an array with input names) + // 'strippedRequest' => App\Http\Requests\StripBackpackRequest::class, +]; diff --git a/config/backpack/operations/list.php b/config/backpack/operations/list.php new file mode 100644 index 0000000..b1d227f --- /dev/null +++ b/config/backpack/operations/list.php @@ -0,0 +1,67 @@ +crud->setListContentClass('class-string') + 'contentClass' => 'col-md-12', + + // enable the datatables-responsive plugin, which hides columns if they don't fit? + // if not, a horizontal scrollbar will be shown instead + 'responsiveTable' => true, + + // stores pagination and filters in localStorage for two hours + // whenever the user tries to see that page, backpack loads the previous pagination and filtration + 'persistentTable' => true, + + // show search bar in the top-right corner? + 'searchableTable' => true, + + // the time the table will be persisted in minutes + // after this the table info is cleared from localStorage. + // use false to never force localStorage clear. (default) + // keep in mind: User can clear their localStorage whenever they want. + + 'persistentTableDuration' => false, + + // How many items should be shown by default by the Datatable? + // This value can be overwritten on a specific CRUD by calling + // $this->crud->setDefaultPageLength(50); + 'defaultPageLength' => 10, + + // A 1D array of options which will be used for both the displayed option and the value, or + // A 2D array in which the first array is used to define the value options and the second array the displayed options + // If a 2D array is used, strings in the right hand array will be automatically run through trans() + 'pageLengthMenu' => [[10, 25, 50, 100, -1], [10, 25, 50, 100, 'backpack::crud.all']], + + // How important is it for the action buttons to be visible? + // - 0 - most important + // - 1 - as important as bulk buttons + // - 2-3 - more important than the rest of the columns + // - 4 - less important than most columns + 'actionsColumnPriority' => 1, + + // Nest action buttons within a dropdown in actions column + 'lineButtonsAsDropdown' => false, + + // Show a "Reset" button next to the List operation subheading + // (Showing 1 to 25 of 9999 entries. Reset) + // that allows the user to erase local storage for that datatable, + // thus clearing any searching, filtering or pagination that has been + // remembered and persisted using persistentTable + 'resetButton' => true, + + // The query operator that is used to search on the table. + // If you are using PostgreSQL you might want to change + // to `ilike` for case-insensitive search + 'searchOperator' => 'like', + + // Display the `Showing X of XX entries (filtered from X entries)`? + // Setting this to false will improve performance on big datasets. + 'showEntryCount' => true, +]; diff --git a/config/backpack/operations/reorder.php b/config/backpack/operations/reorder.php new file mode 100644 index 0000000..4f17866 --- /dev/null +++ b/config/backpack/operations/reorder.php @@ -0,0 +1,16 @@ +crud->setReorderContentClass('class-string') + 'contentClass' => 'col-md-12 col-md-offset-2', + + // should the content of the reorder label be escaped? + 'escaped' => false, +]; diff --git a/config/backpack/operations/show.php b/config/backpack/operations/show.php new file mode 100644 index 0000000..cf4410a --- /dev/null +++ b/config/backpack/operations/show.php @@ -0,0 +1,29 @@ +crud->setShowContentClass('class-string') + 'contentClass' => 'col-md-12', + + // Automatically add all columns from the db table? + 'setFromDb' => true, + + // Automatically add created_at and updated_at columns, if model has timestamps? + 'timestamps' => true, + + // If model has SoftDeletes, allow the admin to access the Show page for + // soft deleted items & add a deleted_at column to ShowOperation? + 'softDeletes' => false, + + // Enable to group columns in tabs + 'tabsEnabled' => false, + + // When using tabbed forms (create & update), what kind of tabs would you like? + 'tabsType' => 'horizontal', //options: horizontal, vertical +]; diff --git a/config/backpack/operations/update.php b/config/backpack/operations/update.php new file mode 100644 index 0000000..e099f10 --- /dev/null +++ b/config/backpack/operations/update.php @@ -0,0 +1,42 @@ +crud->setEditContentClass('class-string') + 'contentClass' => 'col-md-12 bold-labels', + + // When using tabbed forms (create & update), what kind of tabs would you like? + 'tabsType' => 'horizontal', //options: horizontal, vertical + + // How would you like the validation errors to be shown? + 'groupedErrors' => true, + 'inlineErrors' => true, + + // when the page loads, put the cursor on the first input? + 'autoFocusOnFirstField' => true, + + // Where do you want to redirect the user by default, save? + // options: save_and_back, save_and_edit, save_and_new + 'defaultSaveAction' => 'save_and_back', + + // When the user chooses "save and back" or "save and new", show a bubble + // for the fact that the default save action has been changed? + 'showSaveActionChange' => true, //options: true, false + + // Should we show a cancel button to the user? + 'showCancelButton' => true, + + // Should we warn a user before leaving the page with unsaved changes? + 'warnBeforeLeaving' => false, + + // Before saving the entry, how would you like the request to be stripped? + // - false - use Backpack's default (ONLY save inputs that have fields) + // - invokable class - custom stripping (the return should be an array with input names) + // 'strippedRequest' => App\Http\Requests\StripBackpackRequest::class, +]; diff --git a/config/backpack/permissionmanager.php b/config/backpack/permissionmanager.php new file mode 100644 index 0000000..d496775 --- /dev/null +++ b/config/backpack/permissionmanager.php @@ -0,0 +1,49 @@ + [ + 'user' => config('backpack.base.user_model_fqn', \App\Models\User::class), + //'permission' => Backpack\PermissionManager\app\Models\Permission::class, + 'permission' => App\Models\Permission::class, + 'role' => App\Models\Role::class, + ], + + /* + |-------------------------------------------------------------------------- + | Disallow the user interface for creating/updating permissions or roles. + |-------------------------------------------------------------------------- + | Roles and permissions are used in code by their name + | - ex: $user->hasPermissionTo('edit articles'); + | + | So after the developer has entered all permissions and roles, the administrator should either: + | - not have access to the panels + | or + | - creating and updating should be disabled + */ + + 'allow_permission_create' => true, + 'allow_permission_update' => true, + 'allow_permission_delete' => true, + 'allow_role_create' => true, + 'allow_role_update' => true, + 'allow_role_delete' => true, + + /* + |-------------------------------------------------------------------------- + | Multiple-guards functionality + |-------------------------------------------------------------------------- + | + */ + 'multiple_guards' => true, + +]; diff --git a/config/backpack/theme-tabler.php b/config/backpack/theme-tabler.php new file mode 100644 index 0000000..f1fade1 --- /dev/null +++ b/config/backpack/theme-tabler.php @@ -0,0 +1,174 @@ + 'vertical', + + /** + * Pick a login page layout. + * Possible values: default, illustration, cover + */ + 'auth_layout' => 'default', // default, illustration, cover + + /** + * Here you can easily load your own extra css styles. + * Note: if you want to customize the style to create your own custom skin colors: + * - make a copy of the file "vendor/backpack/theme-tabler/resources/assets/css/colors.css" into your project + * - adjust colors variables as you wish + * - replace "base_path('vendor/backpack/theme-tabler/resources/assets/css/colors.css')," with the path to the file created above + * - boom! + */ + 'styles' => [ + base_path('vendor/backpack/theme-tabler/resources/assets/css/color-adjustments.css'), + base_path('vendor/backpack/theme-tabler/resources/assets/css/colors.css'), + ], + + /** + * 2nd Layer of customization + * + * If you need to further customize the way your panel looks, + * these options will help you achieve that. + */ + 'options' => [ + /** + * The available color modes. + */ + 'colorModes' => [ + 'system' => 'la-desktop', + 'light' => 'la-sun', + 'dark' => 'la-moon', + ], + + /** + * The color mode used by default. + */ + 'defaultColorMode' => 'system', // system, light, dark + + /** + * When true, a switch is displayed to let admins choose their favorite theme mode. + * When false, the theme will only use the "defaultColorMode" set above. + * In case "defaultColorMode" is null, system is the default. + */ + 'showColorModeSwitcher' => true, + + /** + * Fix the top-header component (present in "vertical_transparent") and the menu when the layout type is set as "horizontal". + * This value is skipped when the layout type is horizontal-overlap, using false as default. + */ + 'useStickyHeader' => false, + + /** + * When true, the content area will take the whole screen width. + */ + 'useFluidContainers' => false, + + /** + * When true, the sidebar content for vertical layouts will not scroll with the rest of the content. + */ + 'sidebarFixed' => false, + + /** + * When true, horizontal layouts will display the classic top bar on top to free some space when multiple nav items are used. + */ + 'doubleTopBarInHorizontalLayouts' => false, + + /** + * When true, the password input will have a toggle button to show/hide the password. + */ + 'showPasswordVisibilityToggler' => false, + ], + + /** + * 3rd Layer of customization + * + * In case the first two steps were not enough, here you have full control over + * the classes that make up the look of your panel. + */ + 'classes' => [ + /** + * Use this to pass classes to the HTML element, on all pages. + */ + 'body' => null, + + /** + * For background colors use: + * bg-dark, bg-primary, bg-secondary, bg-danger, bg-warning, bg-success, bg-info, bg-blue, bg-light-blue, + * bg-indigo, bg-purple, bg-pink, bg-red, bg-orange, bg-yellow, bg-green, bg-teal, bg-cyan, bg-white. + * + * For links to be visible on different background colors use: "navbar-dark", "navbar-light". + * + */ + 'topHeader' => null, + + /** + * Applies only for Vertical Menu Layout + * For standard sidebar look (transparent): + * - Remove "navbar-dark/light" + * - Remove "navbar-light/dark" from 'classes.topHeader' and instead use "bg-light" + * You can also add a background class like bg-dark, bg-primary, bg-secondary, bg-danger, bg-warning, bg-success, + * bg-info, bg-blue, bg-light-blue, bg-indigo, bg-purple, bg-pink, bg-red, bg-orange, bg-yellow, bg-green, bg-teal, bg-cyan + */ + 'sidebar' => null, + + /** + * Used in the top container menu when the layout is of horizontal type. + */ + 'menuHorizontalContainer' => null, + + /** + * Used in the top menu content when the layout is of horizontal type. + */ + 'menuHorizontalContent' => null, + + /** + * Make transparent with footer-transparent. + * Hide it with d-none. + * + * Change background color with bg-dark, bg-primary, bg-secondary, bg-danger, bg-warning, bg-success, bg-info, + * bg-blue, bg-light-blue, bg-indigo, bg-purple, bg-pink, bg-red, bg-orange, bg-yellow, bg-green, bg-teal, bg-cyan, bg-white. + */ + 'footer' => null, + + /** + * Use this to pass classes to the table displayed in List Operation + * It defaults to: "table table-striped table-hover nowrap rounded card-table table-vcenter card-table shadow-xs border-xs" + */ + 'table' => null, + + /** + * Use this to pass classes to the table wrapper component displayed in List Operation + */ + 'tableWrapper' => null, + ], + + /** + * 4th Layer of customization + * + * Alright, if nothing so far met your need, then you still have an easy way to build + * a custom layout using the already existing components of this theme. + * + * 1. Create a new blade file in resources/views/layouts/your-custom-layout.blade.php + * 2. Replace the value of layout on this file with "your-custom-layout" + * 3. Customize the blade and place components such as sidebar, header, top-bar, where you need them! + */ +]; diff --git a/config/backpack/ui.php b/config/backpack/ui.php new file mode 100644 index 0000000..6869f34 --- /dev/null +++ b/config/backpack/ui.php @@ -0,0 +1,147 @@ + 'backpack.theme-tabler::', + 'view_namespace_fallback' => 'backpack.theme-tabler::', + + /* + |-------------------------------------------------------------------------- + | Look & feel customizations + |-------------------------------------------------------------------------- + | + | To make the UI feel yours. + | + | Note that values set here might be overriden by theme config files + | (eg. config/backpack/theme-tabler.php) when that theme is in use. + | + */ + + // Date & Datetime Format Syntax: https://carbon.nesbot.com/docs/#api-localization + 'default_date_format' => 'D MMM YYYY', + 'default_datetime_format' => 'D MMM YYYY, HH:mm', + + // Direction, according to language + // (left-to-right vs right-to-left) + 'html_direction' => 'ltr', + + // ---- + // HEAD + // ---- + + // Project name - shown in the window title + 'project_name' => '中光電創境網站管理', + + // Content of the HTML meta robots tag to prevent indexing and link following + 'meta_robots_content' => 'noindex, nofollow', + + // ------ + // HEADER + // ------ + + // When clicking on the admin panel's top-left logo/name, + // where should the user be redirected? + // The string below will be passed through the url() helper. + // - default: '' (project root) + // - alternative: 'admin' (the admin's dashboard) + 'home_link' => '', + + // Menu logo. You can replace this with an tag if you have a logo. + 'project_logo' => '中光電創境網站管理', + + // Show / hide breadcrumbs on admin panel pages. + 'breadcrumbs' => true, + + // ------ + // FOOTER + // ------ + + // Developer or company name. Shown in footer. + 'developer_name' => '智聯網科技股份有限公司 | 03-5511520 | jcnet106h@gmail.com', + + // Developer website. Link in footer. Type false if you want to hide it. + 'developer_link' => 'https://106h.net/', + + // Show powered by Laravel Backpack in the footer? true/false + 'show_powered_by' => false, + + // --------- + // DASHBOARD + // --------- + + // Show "Getting Started with Backpack" info block? + 'show_getting_started' => env('APP_ENV') == 'local', + + // ------------- + // GLOBAL STYLES + // ------------- + + // CSS files that are loaded in all pages, using Laravel's asset() helper + 'styles' => [ + // 'styles/example.css', + // 'https://some-cdn.com/example.css', + ], + + // CSS files that are loaded in all pages, using Laravel's mix() helper + 'mix_styles' => [ // file_path => manifest_directory_path + // 'css/app.css' => '', + ], + + // CSS files that are loaded in all pages, using Laravel's @vite() helper + // Please note that support for Vite was added in Laravel 9.19. Earlier versions are not able to use this feature. + 'vite_styles' => [ // resource file_path + // 'resources/css/app.css', + ], + + // -------------- + // GLOBAL SCRIPTS + // -------------- + + // JS files that are loaded in all pages, using Laravel's asset() helper + 'scripts' => [ + // 'js/example.js', + // 'https://unpkg.com/vue@2.4.4/dist/vue.min.js', + // 'https://unpkg.com/react@16/umd/react.production.min.js', + // 'https://unpkg.com/react-dom@16/umd/react-dom.production.min.js', + ], + + // JS files that are loaded in all pages, using Laravel's mix() helper + 'mix_scripts' => [ // file_path => manifest_directory_path + // 'js/app.js' => '', + ], + + // JS files that are loaded in all pages, using Laravel's @vite() helper + 'vite_scripts' => [ // resource file_path + // 'resources/js/app.js', + ], + + 'classes' => [ + /** + * Use this as fallback config for themes to pass classes to the table displayed in List Operation + * It defaults to: "table table-striped table-hover nowrap rounded card-table table-vcenter card-table shadow-xs border-xs". + */ + 'table' => null, + + /** + * Use this as fallback config for themes to pass classes to the table wrapper component displayed in List Operation. + */ + 'tableWrapper' => null, + ], + +]; diff --git a/config/broadcasting.php b/config/broadcasting.php new file mode 100644 index 0000000..2410485 --- /dev/null +++ b/config/broadcasting.php @@ -0,0 +1,71 @@ + env('BROADCAST_DRIVER', 'null'), + + /* + |-------------------------------------------------------------------------- + | Broadcast Connections + |-------------------------------------------------------------------------- + | + | Here you may define all of the broadcast connections that will be used + | to broadcast events to other systems or over websockets. Samples of + | each available type of connection are provided inside this array. + | + */ + + 'connections' => [ + + 'pusher' => [ + 'driver' => 'pusher', + 'key' => env('PUSHER_APP_KEY'), + 'secret' => env('PUSHER_APP_SECRET'), + 'app_id' => env('PUSHER_APP_ID'), + 'options' => [ + 'cluster' => env('PUSHER_APP_CLUSTER'), + 'host' => env('PUSHER_HOST') ?: 'api-'.env('PUSHER_APP_CLUSTER', 'mt1').'.pusher.com', + 'port' => env('PUSHER_PORT', 443), + 'scheme' => env('PUSHER_SCHEME', 'https'), + 'encrypted' => true, + 'useTLS' => env('PUSHER_SCHEME', 'https') === 'https', + ], + 'client_options' => [ + // Guzzle client options: https://docs.guzzlephp.org/en/stable/request-options.html + ], + ], + + 'ably' => [ + 'driver' => 'ably', + 'key' => env('ABLY_KEY'), + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'default', + ], + + 'log' => [ + 'driver' => 'log', + ], + + 'null' => [ + 'driver' => 'null', + ], + + ], + +]; diff --git a/config/cache.php b/config/cache.php new file mode 100644 index 0000000..d4171e2 --- /dev/null +++ b/config/cache.php @@ -0,0 +1,111 @@ + env('CACHE_DRIVER', 'file'), + + /* + |-------------------------------------------------------------------------- + | Cache Stores + |-------------------------------------------------------------------------- + | + | Here you may define all of the cache "stores" for your application as + | well as their drivers. You may even define multiple stores for the + | same cache driver to group types of items stored in your caches. + | + | Supported drivers: "apc", "array", "database", "file", + | "memcached", "redis", "dynamodb", "octane", "null" + | + */ + + 'stores' => [ + + 'apc' => [ + 'driver' => 'apc', + ], + + 'array' => [ + 'driver' => 'array', + 'serialize' => false, + ], + + 'database' => [ + 'driver' => 'database', + 'table' => 'cache', + 'connection' => null, + 'lock_connection' => null, + ], + + 'file' => [ + 'driver' => 'file', + 'path' => storage_path('framework/cache/data'), + 'lock_path' => storage_path('framework/cache/data'), + ], + + 'memcached' => [ + 'driver' => 'memcached', + 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), + 'sasl' => [ + env('MEMCACHED_USERNAME'), + env('MEMCACHED_PASSWORD'), + ], + 'options' => [ + // Memcached::OPT_CONNECT_TIMEOUT => 2000, + ], + 'servers' => [ + [ + 'host' => env('MEMCACHED_HOST', '127.0.0.1'), + 'port' => env('MEMCACHED_PORT', 11211), + 'weight' => 100, + ], + ], + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'cache', + 'lock_connection' => 'default', + ], + + 'dynamodb' => [ + 'driver' => 'dynamodb', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'), + 'endpoint' => env('DYNAMODB_ENDPOINT'), + ], + + 'octane' => [ + 'driver' => 'octane', + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Cache Key Prefix + |-------------------------------------------------------------------------- + | + | When utilizing the APC, database, memcached, Redis, or DynamoDB cache + | stores there might be other applications using the same cache. For + | that reason, you may prefix every cache key to avoid collisions. + | + */ + + 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache_'), + +]; diff --git a/config/cors.php b/config/cors.php new file mode 100644 index 0000000..8a39e6d --- /dev/null +++ b/config/cors.php @@ -0,0 +1,34 @@ + ['api/*', 'sanctum/csrf-cookie'], + + 'allowed_methods' => ['*'], + + 'allowed_origins' => ['*'], + + 'allowed_origins_patterns' => [], + + 'allowed_headers' => ['*'], + + 'exposed_headers' => [], + + 'max_age' => 0, + + 'supports_credentials' => false, + +]; diff --git a/config/database.php b/config/database.php new file mode 100644 index 0000000..137ad18 --- /dev/null +++ b/config/database.php @@ -0,0 +1,151 @@ + env('DB_CONNECTION', 'mysql'), + + /* + |-------------------------------------------------------------------------- + | Database Connections + |-------------------------------------------------------------------------- + | + | Here are each of the database connections setup for your application. + | Of course, examples of configuring each database platform that is + | supported by Laravel is shown below to make development simple. + | + | + | All database work in Laravel is done through the PHP PDO facilities + | so make sure you have the driver for your particular database of + | choice installed on your machine before you begin development. + | + */ + + 'connections' => [ + + 'sqlite' => [ + 'driver' => 'sqlite', + 'url' => env('DATABASE_URL'), + 'database' => env('DB_DATABASE', database_path('database.sqlite')), + 'prefix' => '', + 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true), + ], + + 'mysql' => [ + 'driver' => 'mysql', + 'url' => env('DATABASE_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '3306'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'unix_socket' => env('DB_SOCKET', ''), + 'charset' => 'utf8mb4', + 'collation' => 'utf8mb4_unicode_ci', + 'prefix' => '', + 'prefix_indexes' => true, + 'strict' => true, + 'engine' => null, + 'options' => extension_loaded('pdo_mysql') ? array_filter([ + PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), + ]) : [], + ], + + 'pgsql' => [ + 'driver' => 'pgsql', + 'url' => env('DATABASE_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '5432'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => 'utf8', + 'prefix' => '', + 'prefix_indexes' => true, + 'search_path' => 'public', + 'sslmode' => 'prefer', + ], + + 'sqlsrv' => [ + 'driver' => 'sqlsrv', + 'url' => env('DATABASE_URL'), + 'host' => env('DB_HOST', 'localhost'), + 'port' => env('DB_PORT', '1433'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => 'utf8', + 'prefix' => '', + 'prefix_indexes' => true, + // 'encrypt' => env('DB_ENCRYPT', 'yes'), + // 'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'false'), + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Migration Repository Table + |-------------------------------------------------------------------------- + | + | This table keeps track of all the migrations that have already run for + | your application. Using this information, we can determine which of + | the migrations on disk haven't actually been run in the database. + | + */ + + 'migrations' => 'migrations', + + /* + |-------------------------------------------------------------------------- + | Redis Databases + |-------------------------------------------------------------------------- + | + | Redis is an open source, fast, and advanced key-value store that also + | provides a richer body of commands than a typical key-value system + | such as APC or Memcached. Laravel makes it easy to dig right in. + | + */ + + 'redis' => [ + + 'client' => env('REDIS_CLIENT', 'phpredis'), + + 'options' => [ + 'cluster' => env('REDIS_CLUSTER', 'redis'), + 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'), + ], + + 'default' => [ + 'url' => env('REDIS_URL'), + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'username' => env('REDIS_USERNAME'), + 'password' => env('REDIS_PASSWORD'), + 'port' => env('REDIS_PORT', '6379'), + 'database' => env('REDIS_DB', '0'), + ], + + 'cache' => [ + 'url' => env('REDIS_URL'), + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'username' => env('REDIS_USERNAME'), + 'password' => env('REDIS_PASSWORD'), + 'port' => env('REDIS_PORT', '6379'), + 'database' => env('REDIS_CACHE_DB', '1'), + ], + + ], + +]; diff --git a/config/elfinder.php b/config/elfinder.php new file mode 100644 index 0000000..d6e50e0 --- /dev/null +++ b/config/elfinder.php @@ -0,0 +1,93 @@ + ['uploads'], + + /* + |-------------------------------------------------------------------------- + | Filesystem disks (Flysytem) + |-------------------------------------------------------------------------- + | + | Define an array of Filesystem disks, which use Flysystem. + | You can set extra options, example: + | + | 'my-disk' => [ + | 'URL' => url('to/disk'), + | 'alias' => 'Local storage', + | ] + */ + 'disks' => [ + // 'uploads', + ], + + /* + |-------------------------------------------------------------------------- + | Routes group config + |-------------------------------------------------------------------------- + | + | The default group settings for the elFinder routes. + | + */ + + 'route' => [ + 'prefix' => config('backpack.base.route_prefix', 'admin').'/elfinder', + 'middleware' => ['web', config('backpack.base.middleware_key', 'admin')], //Set to null to disable middleware filter + ], + + /* + |-------------------------------------------------------------------------- + | Access filter + |-------------------------------------------------------------------------- + | + | Filter callback to check the files + | + */ + + 'access' => 'Barryvdh\Elfinder\Elfinder::checkAccess', + + /* + |-------------------------------------------------------------------------- + | Roots + |-------------------------------------------------------------------------- + | + | By default, the roots file is LocalFileSystem, with the above public dir. + | If you want custom options, you can set your own roots below. + | + */ + + 'roots' => null, + + /* + |-------------------------------------------------------------------------- + | Options + |-------------------------------------------------------------------------- + | + | These options are merged, together with 'roots' and passed to the Connector. + | See https://github.com/Studio-42/elFinder/wiki/Connector-configuration-options-2.1 + | + */ + + 'options' => [], + + /* + |-------------------------------------------------------------------------- + | Root Options + |-------------------------------------------------------------------------- + | + | These options are merged, together with every root by default. + | See https://github.com/Studio-42/elFinder/wiki/Connector-configuration-options-2.1#root-options + | + */ + 'root_options' => [ + + ], +]; diff --git a/config/filesystems.php b/config/filesystems.php new file mode 100644 index 0000000..e9d9dbd --- /dev/null +++ b/config/filesystems.php @@ -0,0 +1,76 @@ + env('FILESYSTEM_DISK', 'local'), + + /* + |-------------------------------------------------------------------------- + | Filesystem Disks + |-------------------------------------------------------------------------- + | + | Here you may configure as many filesystem "disks" as you wish, and you + | may even configure multiple disks of the same driver. Defaults have + | been set up for each driver as an example of the required values. + | + | Supported Drivers: "local", "ftp", "sftp", "s3" + | + */ + + 'disks' => [ + + 'local' => [ + 'driver' => 'local', + 'root' => storage_path('app'), + 'throw' => false, + ], + + 'public' => [ + 'driver' => 'local', + 'root' => storage_path('app/public'), + 'url' => env('APP_URL').'/storage', + 'visibility' => 'public', + 'throw' => false, + ], + + 's3' => [ + 'driver' => 's3', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION'), + 'bucket' => env('AWS_BUCKET'), + 'url' => env('AWS_URL'), + 'endpoint' => env('AWS_ENDPOINT'), + 'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false), + 'throw' => false, + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Symbolic Links + |-------------------------------------------------------------------------- + | + | Here you may configure the symbolic links that will be created when the + | `storage:link` Artisan command is executed. The array keys should be + | the locations of the links and the values should be their targets. + | + */ + + 'links' => [ + public_path('storage') => storage_path('app/public'), + ], + +]; diff --git a/config/gravatar.php b/config/gravatar.php new file mode 100644 index 0000000..3555f1b --- /dev/null +++ b/config/gravatar.php @@ -0,0 +1,34 @@ + [ + + // By default, images are presented at 80px by 80px if no size parameter is supplied. + // You may request a specific image size, which will be dynamically delivered from Gravatar + // by passing a single pixel dimension (since the images are square): + 'size' => 80, + + // the fallback image, can be a string or a url + // for more info, visit: http://en.gravatar.com/site/implement/images/#default-image + 'fallback' => 'mp', + + // would you like to return a https://... image + 'secure' => false, + + // Gravatar allows users to self-rate their images so that they can indicate if an image + // is appropriate for a certain audience. By default, only 'G' rated images are displayed + // unless you indicate that you would like to see higher ratings. + // Available options: + // g: suitable for display on all websites with any audience type. + // pg: may contain rude gestures, provocatively dressed individuals, the lesser swear words, or mild violence. + // r: may contain such things as harsh profanity, intense violence, nudity, or hard drug use. + // x: may contain hardcore sexual imagery or extremely disturbing violence. + 'maximumRating' => 'g', + + // If for some reason you wanted to force the default image to always load, you can do that setting this to true + 'forceDefault' => false, + + // If you require a file-type extension (some places do) then you may also add an (optional) .jpg extension to that URL + 'forceExtension' => 'jpg', + ] +]; diff --git a/config/hashing.php b/config/hashing.php new file mode 100644 index 0000000..0e8a0bb --- /dev/null +++ b/config/hashing.php @@ -0,0 +1,54 @@ + 'bcrypt', + + /* + |-------------------------------------------------------------------------- + | Bcrypt Options + |-------------------------------------------------------------------------- + | + | Here you may specify the configuration options that should be used when + | passwords are hashed using the Bcrypt algorithm. This will allow you + | to control the amount of time it takes to hash the given password. + | + */ + + 'bcrypt' => [ + 'rounds' => env('BCRYPT_ROUNDS', 12), + 'verify' => true, + ], + + /* + |-------------------------------------------------------------------------- + | Argon Options + |-------------------------------------------------------------------------- + | + | Here you may specify the configuration options that should be used when + | passwords are hashed using the Argon algorithm. These will allow you + | to control the amount of time it takes to hash the given password. + | + */ + + 'argon' => [ + 'memory' => 65536, + 'threads' => 1, + 'time' => 4, + 'verify' => true, + ], + +]; diff --git a/config/logging.php b/config/logging.php new file mode 100644 index 0000000..c44d276 --- /dev/null +++ b/config/logging.php @@ -0,0 +1,131 @@ + env('LOG_CHANNEL', 'stack'), + + /* + |-------------------------------------------------------------------------- + | Deprecations Log Channel + |-------------------------------------------------------------------------- + | + | This option controls the log channel that should be used to log warnings + | regarding deprecated PHP and library features. This allows you to get + | your application ready for upcoming major versions of dependencies. + | + */ + + 'deprecations' => [ + 'channel' => env('LOG_DEPRECATIONS_CHANNEL', 'null'), + 'trace' => false, + ], + + /* + |-------------------------------------------------------------------------- + | Log Channels + |-------------------------------------------------------------------------- + | + | Here you may configure the log channels for your application. Out of + | the box, Laravel uses the Monolog PHP logging library. This gives + | you a variety of powerful log handlers / formatters to utilize. + | + | Available Drivers: "single", "daily", "slack", "syslog", + | "errorlog", "monolog", + | "custom", "stack" + | + */ + + 'channels' => [ + 'stack' => [ + 'driver' => 'stack', + 'channels' => ['single'], + 'ignore_exceptions' => false, + ], + + 'single' => [ + 'driver' => 'single', + 'path' => storage_path('logs/laravel.log'), + 'level' => env('LOG_LEVEL', 'debug'), + 'replace_placeholders' => true, + ], + + 'daily' => [ + 'driver' => 'daily', + 'path' => storage_path('logs/laravel.log'), + 'level' => env('LOG_LEVEL', 'debug'), + 'days' => 14, + 'replace_placeholders' => true, + ], + + 'slack' => [ + 'driver' => 'slack', + 'url' => env('LOG_SLACK_WEBHOOK_URL'), + 'username' => 'Laravel Log', + 'emoji' => ':boom:', + 'level' => env('LOG_LEVEL', 'critical'), + 'replace_placeholders' => true, + ], + + 'papertrail' => [ + 'driver' => 'monolog', + 'level' => env('LOG_LEVEL', 'debug'), + 'handler' => env('LOG_PAPERTRAIL_HANDLER', SyslogUdpHandler::class), + 'handler_with' => [ + 'host' => env('PAPERTRAIL_URL'), + 'port' => env('PAPERTRAIL_PORT'), + 'connectionString' => 'tls://'.env('PAPERTRAIL_URL').':'.env('PAPERTRAIL_PORT'), + ], + 'processors' => [PsrLogMessageProcessor::class], + ], + + 'stderr' => [ + 'driver' => 'monolog', + 'level' => env('LOG_LEVEL', 'debug'), + 'handler' => StreamHandler::class, + 'formatter' => env('LOG_STDERR_FORMATTER'), + 'with' => [ + 'stream' => 'php://stderr', + ], + 'processors' => [PsrLogMessageProcessor::class], + ], + + 'syslog' => [ + 'driver' => 'syslog', + 'level' => env('LOG_LEVEL', 'debug'), + 'facility' => LOG_USER, + 'replace_placeholders' => true, + ], + + 'errorlog' => [ + 'driver' => 'errorlog', + 'level' => env('LOG_LEVEL', 'debug'), + 'replace_placeholders' => true, + ], + + 'null' => [ + 'driver' => 'monolog', + 'handler' => NullHandler::class, + ], + + 'emergency' => [ + 'path' => storage_path('logs/laravel.log'), + ], + ], + +]; diff --git a/config/mail.php b/config/mail.php new file mode 100644 index 0000000..e894b2e --- /dev/null +++ b/config/mail.php @@ -0,0 +1,134 @@ + env('MAIL_MAILER', 'smtp'), + + /* + |-------------------------------------------------------------------------- + | Mailer Configurations + |-------------------------------------------------------------------------- + | + | Here you may configure all of the mailers used by your application plus + | their respective settings. Several examples have been configured for + | you and you are free to add your own as your application requires. + | + | Laravel supports a variety of mail "transport" drivers to be used while + | sending an e-mail. You will specify which one you are using for your + | mailers below. You are free to add additional mailers as required. + | + | Supported: "smtp", "sendmail", "mailgun", "ses", "ses-v2", + | "postmark", "log", "array", "failover", "roundrobin" + | + */ + + 'mailers' => [ + 'smtp' => [ + 'transport' => 'smtp', + 'url' => env('MAIL_URL'), + 'host' => env('MAIL_HOST', 'smtp.mailgun.org'), + 'port' => env('MAIL_PORT', 587), + 'encryption' => env('MAIL_ENCRYPTION', 'tls'), + 'username' => env('MAIL_USERNAME'), + 'password' => env('MAIL_PASSWORD'), + 'timeout' => null, + 'local_domain' => env('MAIL_EHLO_DOMAIN'), + ], + + 'ses' => [ + 'transport' => 'ses', + ], + + 'postmark' => [ + 'transport' => 'postmark', + // 'message_stream_id' => null, + // 'client' => [ + // 'timeout' => 5, + // ], + ], + + 'mailgun' => [ + 'transport' => 'mailgun', + // 'client' => [ + // 'timeout' => 5, + // ], + ], + + 'sendmail' => [ + 'transport' => 'sendmail', + 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'), + ], + + 'log' => [ + 'transport' => 'log', + 'channel' => env('MAIL_LOG_CHANNEL'), + ], + + 'array' => [ + 'transport' => 'array', + ], + + 'failover' => [ + 'transport' => 'failover', + 'mailers' => [ + 'smtp', + 'log', + ], + ], + + 'roundrobin' => [ + 'transport' => 'roundrobin', + 'mailers' => [ + 'ses', + 'postmark', + ], + ], + ], + + /* + |-------------------------------------------------------------------------- + | Global "From" Address + |-------------------------------------------------------------------------- + | + | You may wish for all e-mails sent by your application to be sent from + | the same address. Here, you may specify a name and address that is + | used globally for all e-mails that are sent by your application. + | + */ + + 'from' => [ + 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'), + 'name' => env('MAIL_FROM_NAME', 'Example'), + ], + + /* + |-------------------------------------------------------------------------- + | Markdown Mail Settings + |-------------------------------------------------------------------------- + | + | If you are using Markdown based email rendering, you may configure your + | theme and component paths here, allowing you to customize the design + | of the emails. Or, you may simply stick with the Laravel defaults! + | + */ + + 'markdown' => [ + 'theme' => 'default', + + 'paths' => [ + resource_path('views/vendor/mail'), + ], + ], + +]; diff --git a/config/permission.php b/config/permission.php new file mode 100644 index 0000000..10117f6 --- /dev/null +++ b/config/permission.php @@ -0,0 +1,163 @@ + [ + + /* + * When using the "HasPermissions" trait from this package, we need to know which + * Eloquent model should be used to retrieve your permissions. Of course, it + * is often just the "Permission" model but you may use whatever you like. + * + * The model you want to use as a Permission model needs to implement the + * `Spatie\Permission\Contracts\Permission` contract. + */ + + // 'permission' => Spatie\Permission\Models\Permission::class, + 'permission' => App\Models\Permission::class, + + /* + * When using the "HasRoles" trait from this package, we need to know which + * Eloquent model should be used to retrieve your roles. Of course, it + * is often just the "Role" model but you may use whatever you like. + * + * The model you want to use as a Role model needs to implement the + * `Spatie\Permission\Contracts\Role` contract. + */ + + // 'role' => Spatie\Permission\Models\Role::class, + 'role' => App\Models\Role::class, + + ], + + 'table_names' => [ + + /* + * When using the "HasRoles" trait from this package, we need to know which + * table should be used to retrieve your roles. We have chosen a basic + * default value but you may easily change it to any table you like. + */ + + 'roles' => 'roles', + + /* + * When using the "HasPermissions" trait from this package, we need to know which + * table should be used to retrieve your permissions. We have chosen a basic + * default value but you may easily change it to any table you like. + */ + + 'permissions' => 'permissions', + + /* + * When using the "HasPermissions" trait from this package, we need to know which + * table should be used to retrieve your models permissions. We have chosen a + * basic default value but you may easily change it to any table you like. + */ + + 'model_has_permissions' => 'model_has_permissions', + + /* + * When using the "HasRoles" trait from this package, we need to know which + * table should be used to retrieve your models roles. We have chosen a + * basic default value but you may easily change it to any table you like. + */ + + 'model_has_roles' => 'model_has_roles', + + /* + * When using the "HasRoles" trait from this package, we need to know which + * table should be used to retrieve your roles permissions. We have chosen a + * basic default value but you may easily change it to any table you like. + */ + + 'role_has_permissions' => 'role_has_permissions', + ], + + 'column_names' => [ + /* + * Change this if you want to name the related pivots other than defaults + */ + 'role_pivot_key' => null, //default 'role_id', + 'permission_pivot_key' => null, //default 'permission_id', + + /* + * Change this if you want to name the related model primary key other than + * `model_id`. + * + * For example, this would be nice if your primary keys are all UUIDs. In + * that case, name this `model_uuid`. + */ + + 'model_morph_key' => 'model_id', + + /* + * Change this if you want to use the teams feature and your related model's + * foreign key is other than `team_id`. + */ + + 'team_foreign_key' => 'team_id', + ], + + /* + * When set to true, the method for checking permissions will be registered on the gate. + * Set this to false, if you want to implement custom logic for checking permissions. + */ + + 'register_permission_check_method' => true, + + /* + * When set to true the package implements teams using the 'team_foreign_key'. If you want + * the migrations to register the 'team_foreign_key', you must set this to true + * before doing the migration. If you already did the migration then you must make a new + * migration to also add 'team_foreign_key' to 'roles', 'model_has_roles', and + * 'model_has_permissions'(view the latest version of package's migration file) + */ + + 'teams' => false, + + /* + * When set to true, the required permission names are added to the exception + * message. This could be considered an information leak in some contexts, so + * the default setting is false here for optimum safety. + */ + + 'display_permission_in_exception' => false, + + /* + * When set to true, the required role names are added to the exception + * message. This could be considered an information leak in some contexts, so + * the default setting is false here for optimum safety. + */ + + 'display_role_in_exception' => false, + + /* + * By default wildcard permission lookups are disabled. + */ + + 'enable_wildcard_permission' => false, + + 'cache' => [ + + /* + * By default all permissions are cached for 24 hours to speed up performance. + * When permissions or roles are updated the cache is flushed automatically. + */ + + 'expiration_time' => \DateInterval::createFromDateString('24 hours'), + + /* + * The cache key used to store all permissions. + */ + + 'key' => 'spatie.permission.cache', + + /* + * You may optionally indicate a specific cache driver to use for permission and + * role caching using any of the `store` drivers listed in the cache.php config + * file. Using 'default' here means to use the `default` set in cache.php. + */ + + 'store' => 'default', + ], +]; diff --git a/config/queue.php b/config/queue.php new file mode 100644 index 0000000..01c6b05 --- /dev/null +++ b/config/queue.php @@ -0,0 +1,109 @@ + env('QUEUE_CONNECTION', 'sync'), + + /* + |-------------------------------------------------------------------------- + | Queue Connections + |-------------------------------------------------------------------------- + | + | Here you may configure the connection information for each server that + | is used by your application. A default configuration has been added + | for each back-end shipped with Laravel. You are free to add more. + | + | Drivers: "sync", "database", "beanstalkd", "sqs", "redis", "null" + | + */ + + 'connections' => [ + + 'sync' => [ + 'driver' => 'sync', + ], + + 'database' => [ + 'driver' => 'database', + 'table' => 'jobs', + 'queue' => 'default', + 'retry_after' => 90, + 'after_commit' => false, + ], + + 'beanstalkd' => [ + 'driver' => 'beanstalkd', + 'host' => 'localhost', + 'queue' => 'default', + 'retry_after' => 90, + 'block_for' => 0, + 'after_commit' => false, + ], + + 'sqs' => [ + 'driver' => 'sqs', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'), + 'queue' => env('SQS_QUEUE', 'default'), + 'suffix' => env('SQS_SUFFIX'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'after_commit' => false, + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'default', + 'queue' => env('REDIS_QUEUE', 'default'), + 'retry_after' => 90, + 'block_for' => null, + 'after_commit' => false, + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Job Batching + |-------------------------------------------------------------------------- + | + | The following options configure the database and table that store job + | batching information. These options can be updated to any database + | connection and table which has been defined by your application. + | + */ + + 'batching' => [ + 'database' => env('DB_CONNECTION', 'mysql'), + 'table' => 'job_batches', + ], + + /* + |-------------------------------------------------------------------------- + | Failed Queue Jobs + |-------------------------------------------------------------------------- + | + | These options configure the behavior of failed queue job logging so you + | can control which database and table are used to store the jobs that + | have failed. You may change them to any database / table you wish. + | + */ + + 'failed' => [ + 'driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'), + 'database' => env('DB_CONNECTION', 'mysql'), + 'table' => 'failed_jobs', + ], + +]; diff --git a/config/sanctum.php b/config/sanctum.php new file mode 100644 index 0000000..35d75b3 --- /dev/null +++ b/config/sanctum.php @@ -0,0 +1,83 @@ + explode(',', env('SANCTUM_STATEFUL_DOMAINS', sprintf( + '%s%s', + 'localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1', + Sanctum::currentApplicationUrlWithPort() + ))), + + /* + |-------------------------------------------------------------------------- + | Sanctum Guards + |-------------------------------------------------------------------------- + | + | This array contains the authentication guards that will be checked when + | Sanctum is trying to authenticate a request. If none of these guards + | are able to authenticate the request, Sanctum will use the bearer + | token that's present on an incoming request for authentication. + | + */ + + 'guard' => ['web'], + + /* + |-------------------------------------------------------------------------- + | Expiration Minutes + |-------------------------------------------------------------------------- + | + | This value controls the number of minutes until an issued token will be + | considered expired. This will override any values set in the token's + | "expires_at" attribute, but first-party sessions are not affected. + | + */ + + 'expiration' => null, + + /* + |-------------------------------------------------------------------------- + | Token Prefix + |-------------------------------------------------------------------------- + | + | Sanctum can prefix new tokens in order to take advantage of numerous + | security scanning initiatives maintained by open source platforms + | that notify developers if they commit tokens into repositories. + | + | See: https://docs.github.com/en/code-security/secret-scanning/about-secret-scanning + | + */ + + 'token_prefix' => env('SANCTUM_TOKEN_PREFIX', ''), + + /* + |-------------------------------------------------------------------------- + | Sanctum Middleware + |-------------------------------------------------------------------------- + | + | When authenticating your first-party SPA with Sanctum you may need to + | customize some of the middleware Sanctum uses while processing the + | request. You may change the middleware listed below as required. + | + */ + + 'middleware' => [ + 'authenticate_session' => Laravel\Sanctum\Http\Middleware\AuthenticateSession::class, + 'encrypt_cookies' => App\Http\Middleware\EncryptCookies::class, + 'verify_csrf_token' => App\Http\Middleware\VerifyCsrfToken::class, + ], + +]; diff --git a/config/services.php b/config/services.php new file mode 100644 index 0000000..0ace530 --- /dev/null +++ b/config/services.php @@ -0,0 +1,34 @@ + [ + 'domain' => env('MAILGUN_DOMAIN'), + 'secret' => env('MAILGUN_SECRET'), + 'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'), + 'scheme' => 'https', + ], + + 'postmark' => [ + 'token' => env('POSTMARK_TOKEN'), + ], + + 'ses' => [ + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + ], + +]; diff --git a/config/session.php b/config/session.php new file mode 100644 index 0000000..e738cb3 --- /dev/null +++ b/config/session.php @@ -0,0 +1,214 @@ + env('SESSION_DRIVER', 'file'), + + /* + |-------------------------------------------------------------------------- + | Session Lifetime + |-------------------------------------------------------------------------- + | + | Here you may specify the number of minutes that you wish the session + | to be allowed to remain idle before it expires. If you want them + | to immediately expire on the browser closing, set that option. + | + */ + + 'lifetime' => env('SESSION_LIFETIME', 120), + + 'expire_on_close' => false, + + /* + |-------------------------------------------------------------------------- + | Session Encryption + |-------------------------------------------------------------------------- + | + | This option allows you to easily specify that all of your session data + | should be encrypted before it is stored. All encryption will be run + | automatically by Laravel and you can use the Session like normal. + | + */ + + 'encrypt' => false, + + /* + |-------------------------------------------------------------------------- + | Session File Location + |-------------------------------------------------------------------------- + | + | When using the native session driver, we need a location where session + | files may be stored. A default has been set for you but a different + | location may be specified. This is only needed for file sessions. + | + */ + + 'files' => storage_path('framework/sessions'), + + /* + |-------------------------------------------------------------------------- + | Session Database Connection + |-------------------------------------------------------------------------- + | + | When using the "database" or "redis" session drivers, you may specify a + | connection that should be used to manage these sessions. This should + | correspond to a connection in your database configuration options. + | + */ + + 'connection' => env('SESSION_CONNECTION'), + + /* + |-------------------------------------------------------------------------- + | Session Database Table + |-------------------------------------------------------------------------- + | + | When using the "database" session driver, you may specify the table we + | should use to manage the sessions. Of course, a sensible default is + | provided for you; however, you are free to change this as needed. + | + */ + + 'table' => 'sessions', + + /* + |-------------------------------------------------------------------------- + | Session Cache Store + |-------------------------------------------------------------------------- + | + | While using one of the framework's cache driven session backends you may + | list a cache store that should be used for these sessions. This value + | must match with one of the application's configured cache "stores". + | + | Affects: "apc", "dynamodb", "memcached", "redis" + | + */ + + 'store' => env('SESSION_STORE'), + + /* + |-------------------------------------------------------------------------- + | Session Sweeping Lottery + |-------------------------------------------------------------------------- + | + | Some session drivers must manually sweep their storage location to get + | rid of old sessions from storage. Here are the chances that it will + | happen on a given request. By default, the odds are 2 out of 100. + | + */ + + 'lottery' => [2, 100], + + /* + |-------------------------------------------------------------------------- + | Session Cookie Name + |-------------------------------------------------------------------------- + | + | Here you may change the name of the cookie used to identify a session + | instance by ID. The name specified here will get used every time a + | new session cookie is created by the framework for every driver. + | + */ + + 'cookie' => env( + 'SESSION_COOKIE', + Str::slug(env('APP_NAME', 'laravel'), '_').'_session' + ), + + /* + |-------------------------------------------------------------------------- + | Session Cookie Path + |-------------------------------------------------------------------------- + | + | The session cookie path determines the path for which the cookie will + | be regarded as available. Typically, this will be the root path of + | your application but you are free to change this when necessary. + | + */ + + 'path' => '/', + + /* + |-------------------------------------------------------------------------- + | Session Cookie Domain + |-------------------------------------------------------------------------- + | + | Here you may change the domain of the cookie used to identify a session + | in your application. This will determine which domains the cookie is + | available to in your application. A sensible default has been set. + | + */ + + 'domain' => env('SESSION_DOMAIN'), + + /* + |-------------------------------------------------------------------------- + | HTTPS Only Cookies + |-------------------------------------------------------------------------- + | + | By setting this option to true, session cookies will only be sent back + | to the server if the browser has a HTTPS connection. This will keep + | the cookie from being sent to you when it can't be done securely. + | + */ + + 'secure' => env('SESSION_SECURE_COOKIE'), + + /* + |-------------------------------------------------------------------------- + | HTTP Access Only + |-------------------------------------------------------------------------- + | + | Setting this value to true will prevent JavaScript from accessing the + | value of the cookie and the cookie will only be accessible through + | the HTTP protocol. You are free to modify this option if needed. + | + */ + + 'http_only' => true, + + /* + |-------------------------------------------------------------------------- + | Same-Site Cookies + |-------------------------------------------------------------------------- + | + | This option determines how your cookies behave when cross-site requests + | take place, and can be used to mitigate CSRF attacks. By default, we + | will set this value to "lax" since this is a secure default value. + | + | Supported: "lax", "strict", "none", null + | + */ + + 'same_site' => 'lax', + + /* + |-------------------------------------------------------------------------- + | Partitioned Cookies + |-------------------------------------------------------------------------- + | + | Setting this value to true will tie the cookie to the top-level site for + | a cross-site context. Partitioned cookies are accepted by the browser + | when flagged "secure" and the Same-Site attribute is set to "none". + | + */ + + 'partitioned' => false, + +]; diff --git a/config/view.php b/config/view.php new file mode 100644 index 0000000..22b8a18 --- /dev/null +++ b/config/view.php @@ -0,0 +1,36 @@ + [ + resource_path('views'), + ], + + /* + |-------------------------------------------------------------------------- + | Compiled View Path + |-------------------------------------------------------------------------- + | + | This option determines where all the compiled Blade templates will be + | stored for your application. Typically, this is within the storage + | directory. However, as usual, you are free to change this value. + | + */ + + 'compiled' => env( + 'VIEW_COMPILED_PATH', + realpath(storage_path('framework/views')) + ), + +]; diff --git a/database/.gitignore b/database/.gitignore new file mode 100644 index 0000000..9b19b93 --- /dev/null +++ b/database/.gitignore @@ -0,0 +1 @@ +*.sqlite* diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php new file mode 100644 index 0000000..584104c --- /dev/null +++ b/database/factories/UserFactory.php @@ -0,0 +1,44 @@ + + */ +class UserFactory extends Factory +{ + /** + * The current password being used by the factory. + */ + protected static ?string $password; + + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'name' => fake()->name(), + 'email' => fake()->unique()->safeEmail(), + 'email_verified_at' => now(), + 'password' => static::$password ??= Hash::make('password'), + 'remember_token' => Str::random(10), + ]; + } + + /** + * Indicate that the model's email address should be unverified. + */ + public function unverified(): static + { + return $this->state(fn (array $attributes) => [ + 'email_verified_at' => null, + ]); + } +} diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php new file mode 100644 index 0000000..444fafb --- /dev/null +++ b/database/migrations/2014_10_12_000000_create_users_table.php @@ -0,0 +1,32 @@ +id(); + $table->string('name'); + $table->string('email')->unique(); + $table->timestamp('email_verified_at')->nullable(); + $table->string('password'); + $table->rememberToken(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('users'); + } +}; diff --git a/database/migrations/2014_10_12_100000_create_password_reset_tokens_table.php b/database/migrations/2014_10_12_100000_create_password_reset_tokens_table.php new file mode 100644 index 0000000..81a7229 --- /dev/null +++ b/database/migrations/2014_10_12_100000_create_password_reset_tokens_table.php @@ -0,0 +1,28 @@ +string('email')->primary(); + $table->string('token'); + $table->timestamp('created_at')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('password_reset_tokens'); + } +}; diff --git a/database/migrations/2019_08_19_000000_create_failed_jobs_table.php b/database/migrations/2019_08_19_000000_create_failed_jobs_table.php new file mode 100644 index 0000000..249da81 --- /dev/null +++ b/database/migrations/2019_08_19_000000_create_failed_jobs_table.php @@ -0,0 +1,32 @@ +id(); + $table->string('uuid')->unique(); + $table->text('connection'); + $table->text('queue'); + $table->longText('payload'); + $table->longText('exception'); + $table->timestamp('failed_at')->useCurrent(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('failed_jobs'); + } +}; diff --git a/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php new file mode 100644 index 0000000..e828ad8 --- /dev/null +++ b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php @@ -0,0 +1,33 @@ +id(); + $table->morphs('tokenable'); + $table->string('name'); + $table->string('token', 64)->unique(); + $table->text('abilities')->nullable(); + $table->timestamp('last_used_at')->nullable(); + $table->timestamp('expires_at')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('personal_access_tokens'); + } +}; diff --git a/database/migrations/2020_03_31_114745_remove_backpackuser_model.php b/database/migrations/2020_03_31_114745_remove_backpackuser_model.php new file mode 100644 index 0000000..1539c78 --- /dev/null +++ b/database/migrations/2020_03_31_114745_remove_backpackuser_model.php @@ -0,0 +1,54 @@ +replaceModels($model_has_roles); + } + if (\Illuminate\Support\Facades\Schema::hasTable($model_has_permissions)) { + $this->replaceModels($model_has_permissions); + } + } + + public function replaceModels($table_name) + { + Log::info('Replacing BackpackUser model in '.$table_name); + + // if you've ended up with duplicate entries (both for App\User and App\Models\BackpackUser) + // we can just delete them + $userEntries = DB::table($table_name) + ->where('model_type', "App\User") + ->get(); + + foreach ($userEntries as $entry) { + DB::table($table_name) + ->where('role_id', $entry->role_id) + ->where('model_type', 'App\Models\BackpackUser') + ->where('model_id', $entry->model_id) + ->delete(); + } + + // for the rest of them, we can just replace the BackpackUser model with User + DB::table($table_name) + ->where('model_type', "App\Models\BackpackUser") + ->update([ + 'model_type' => "App\User", + ]); + } +} diff --git a/database/migrations/2024_02_15_045931_create_permission_tables.php b/database/migrations/2024_02_15_045931_create_permission_tables.php new file mode 100644 index 0000000..f371195 --- /dev/null +++ b/database/migrations/2024_02_15_045931_create_permission_tables.php @@ -0,0 +1,141 @@ +bigIncrements('id'); // permission id + $table->string('name', 125); // For MySQL 8.0 use string('name', 125); + $table->string('guard_name', 125); // For MySQL 8.0 use string('guard_name', 125); + $table->timestamps(); + + $table->unique(['name', 'guard_name']); + }); + + Schema::create($tableNames['roles'], function (Blueprint $table) use ($teams, $columnNames) { + $table->bigIncrements('id'); // role id + if ($teams || config('permission.testing')) { // permission.testing is a fix for sqlite testing + $table->unsignedBigInteger($columnNames['team_foreign_key'])->nullable(); + $table->index($columnNames['team_foreign_key'], 'roles_team_foreign_key_index'); + } + $table->string('name', 125); // For MySQL 8.0 use string('name', 125); + $table->string('guard_name', 125); // For MySQL 8.0 use string('guard_name', 125); + $table->timestamps(); + if ($teams || config('permission.testing')) { + $table->unique([$columnNames['team_foreign_key'], 'name', 'guard_name']); + } else { + $table->unique(['name', 'guard_name']); + } + }); + + Schema::create($tableNames['model_has_permissions'], function (Blueprint $table) use ($tableNames, $columnNames, $teams) { + $table->unsignedBigInteger(PermissionRegistrar::$pivotPermission); + + $table->string('model_type'); + $table->unsignedBigInteger($columnNames['model_morph_key']); + $table->index([$columnNames['model_morph_key'], 'model_type'], 'model_has_permissions_model_id_model_type_index'); + + $table->foreign(PermissionRegistrar::$pivotPermission) + ->references('id') // permission id + ->on($tableNames['permissions']) + ->onDelete('cascade'); + if ($teams) { + $table->unsignedBigInteger($columnNames['team_foreign_key']); + $table->index($columnNames['team_foreign_key'], 'model_has_permissions_team_foreign_key_index'); + + $table->primary([$columnNames['team_foreign_key'], PermissionRegistrar::$pivotPermission, $columnNames['model_morph_key'], 'model_type'], + 'model_has_permissions_permission_model_type_primary'); + } else { + $table->primary([PermissionRegistrar::$pivotPermission, $columnNames['model_morph_key'], 'model_type'], + 'model_has_permissions_permission_model_type_primary'); + } + + }); + + Schema::create($tableNames['model_has_roles'], function (Blueprint $table) use ($tableNames, $columnNames, $teams) { + $table->unsignedBigInteger(PermissionRegistrar::$pivotRole); + + $table->string('model_type'); + $table->unsignedBigInteger($columnNames['model_morph_key']); + $table->index([$columnNames['model_morph_key'], 'model_type'], 'model_has_roles_model_id_model_type_index'); + + $table->foreign(PermissionRegistrar::$pivotRole) + ->references('id') // role id + ->on($tableNames['roles']) + ->onDelete('cascade'); + if ($teams) { + $table->unsignedBigInteger($columnNames['team_foreign_key']); + $table->index($columnNames['team_foreign_key'], 'model_has_roles_team_foreign_key_index'); + + $table->primary([$columnNames['team_foreign_key'], PermissionRegistrar::$pivotRole, $columnNames['model_morph_key'], 'model_type'], + 'model_has_roles_role_model_type_primary'); + } else { + $table->primary([PermissionRegistrar::$pivotRole, $columnNames['model_morph_key'], 'model_type'], + 'model_has_roles_role_model_type_primary'); + } + }); + + Schema::create($tableNames['role_has_permissions'], function (Blueprint $table) use ($tableNames) { + $table->unsignedBigInteger(PermissionRegistrar::$pivotPermission); + $table->unsignedBigInteger(PermissionRegistrar::$pivotRole); + + $table->foreign(PermissionRegistrar::$pivotPermission) + ->references('id') // permission id + ->on($tableNames['permissions']) + ->onDelete('cascade'); + + $table->foreign(PermissionRegistrar::$pivotRole) + ->references('id') // role id + ->on($tableNames['roles']) + ->onDelete('cascade'); + + $table->primary([PermissionRegistrar::$pivotPermission, PermissionRegistrar::$pivotRole], 'role_has_permissions_permission_id_role_id_primary'); + }); + + app('cache') + ->store(config('permission.cache.store') != 'default' ? config('permission.cache.store') : null) + ->forget(config('permission.cache.key')); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + $tableNames = config('permission.table_names'); + + if (empty($tableNames)) { + throw new \Exception('Error: config/permission.php not found and defaults could not be merged. Please publish the package configuration before proceeding, or drop the tables manually.'); + } + + Schema::drop($tableNames['role_has_permissions']); + Schema::drop($tableNames['model_has_roles']); + Schema::drop($tableNames['model_has_permissions']); + Schema::drop($tableNames['roles']); + Schema::drop($tableNames['permissions']); + } +} diff --git a/database/migrations/2024_02_15_085158_create_sessions_table.php b/database/migrations/2024_02_15_085158_create_sessions_table.php new file mode 100644 index 0000000..f60625b --- /dev/null +++ b/database/migrations/2024_02_15_085158_create_sessions_table.php @@ -0,0 +1,31 @@ +string('id')->primary(); + $table->foreignId('user_id')->nullable()->index(); + $table->string('ip_address', 45)->nullable(); + $table->text('user_agent')->nullable(); + $table->longText('payload'); + $table->integer('last_activity')->index(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('sessions'); + } +}; diff --git a/database/migrations/2024_02_15_184909_add_slug_to_permission_table.php b/database/migrations/2024_02_15_184909_add_slug_to_permission_table.php new file mode 100644 index 0000000..91fcf15 --- /dev/null +++ b/database/migrations/2024_02_15_184909_add_slug_to_permission_table.php @@ -0,0 +1,42 @@ +string('slug')->after('name')->unique(); + }); + + Schema::table($tableNames['roles'], function (Blueprint $table) { + $table->string('slug')->after('name')->unique(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + $tableNames = config('permission.table_names'); + if (Schema::hasColumn('permissions', 'slug')){ + Schema::table($tableNames['permissions'], function (Blueprint $table) { + $table->dropColumn('slug'); + }); + } + if (Schema::hasColumn('roles', 'slug')){ + Schema::table($tableNames['roles'], function (Blueprint $table) { + $table->dropColumn('slug'); + }); + } + } +}; diff --git a/database/migrations/2024_02_29_015600_create_news_catalogs_table.php b/database/migrations/2024_02_29_015600_create_news_catalogs_table.php new file mode 100644 index 0000000..0545fbf --- /dev/null +++ b/database/migrations/2024_02_29_015600_create_news_catalogs_table.php @@ -0,0 +1,36 @@ +bigIncrements('id'); + $table->biginteger('parent_id')->nullable(); + $table->integer('lft')->default(0); + $table->integer('rgt')->default(0); + $table->integer('depth')->default(0); + $table->boolean('is_front_show')->default(true); + $table->text('name'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('news_catalogs'); + } +} diff --git a/database/migrations/2024_02_29_015639_create_news_table.php b/database/migrations/2024_02_29_015639_create_news_table.php new file mode 100644 index 0000000..eb35500 --- /dev/null +++ b/database/migrations/2024_02_29_015639_create_news_table.php @@ -0,0 +1,41 @@ +bigIncrements('id'); + $table->biginteger('news_catalog_id')->default(0); + $table->boolean('is_front_show')->default(true); + $table->dateTime('post_at')->useCurrent(); + $table->text('seo_title')->nullable(); + $table->text('seo_keyword')->nullable(); + $table->text('seo_description')->nullable(); + $table->text('title'); + $table->text('description'); + $table->text('body'); + $table->text('source_links')->nullable(); + $table->text('photo')->nullalbe(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('news'); + } +} diff --git a/database/migrations/2024_02_29_020326_create_event_catalogs_table.php b/database/migrations/2024_02_29_020326_create_event_catalogs_table.php new file mode 100644 index 0000000..7e8b4df --- /dev/null +++ b/database/migrations/2024_02_29_020326_create_event_catalogs_table.php @@ -0,0 +1,36 @@ +bigIncrements('id'); + $table->biginteger('parent_id')->nullable(); + $table->integer('lft')->default(0); + $table->integer('rgt')->default(0); + $table->integer('depth')->default(0); + $table->boolean('is_front_show')->default(true); + $table->text('name'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('event_catalogs'); + } +} diff --git a/database/migrations/2024_02_29_020350_create_events_table.php b/database/migrations/2024_02_29_020350_create_events_table.php new file mode 100644 index 0000000..5d14ef4 --- /dev/null +++ b/database/migrations/2024_02_29_020350_create_events_table.php @@ -0,0 +1,42 @@ +bigIncrements('id'); + $table->biginteger('event_catalog_id')->default(0); + $table->boolean('is_front_show')->default(true); + $table->dateTime('post_at')->useCurrent(); + $table->text('venue')->nullable(); + $table->text('contact')->nullalbe(); + $table->text('seo_title')->nullable(); + $table->text('seo_keyword')->nullable(); + $table->text('seo_description')->nullable(); + $table->text('title'); + $table->text('body'); + $table->text('source_links')->nullable(); + $table->text('photo')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('events'); + } +} diff --git a/database/migrations/2024_02_29_020623_create_product_catalogs_table.php b/database/migrations/2024_02_29_020623_create_product_catalogs_table.php new file mode 100644 index 0000000..960165e --- /dev/null +++ b/database/migrations/2024_02_29_020623_create_product_catalogs_table.php @@ -0,0 +1,37 @@ +bigIncrements('id'); + $table->biginteger('parent_id')->nullable(); + $table->integer('lft')->default(0); + $table->integer('rgt')->default(0); + $table->integer('depth')->default(0); + $table->boolean('is_front_show')->default(true); + $table->string('slug'); + $table->text('name'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('product_catalogs'); + } +} diff --git a/database/migrations/2024_02_29_020646_create_product_applications_table.php b/database/migrations/2024_02_29_020646_create_product_applications_table.php new file mode 100644 index 0000000..e8f337b --- /dev/null +++ b/database/migrations/2024_02_29_020646_create_product_applications_table.php @@ -0,0 +1,37 @@ +bigIncrements('id'); + $table->biginteger('parent_id')->nullable(); + $table->integer('lft')->default(0); + $table->integer('rgt')->default(0); + $table->integer('depth')->default(0); + $table->boolean('is_front_show')->default(true); + $table->string('slug'); + $table->text('name'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('product_applications'); + } +} diff --git a/database/migrations/2024_02_29_020703_create_products_table.php b/database/migrations/2024_02_29_020703_create_products_table.php new file mode 100644 index 0000000..77f1bb5 --- /dev/null +++ b/database/migrations/2024_02_29_020703_create_products_table.php @@ -0,0 +1,43 @@ +bigIncrements('id'); + $table->biginteger('product_catalog_id')->default(0); + $table->boolean('is_front_show')->default(true); + $table->dateTime('post_at')->useCurrent(); + $table->text('seo_title')->nullable(); + $table->text('seo_keyword')->nullable(); + $table->text('seo_description')->nullable(); + $table->text('tip'); + $table->text('title'); + $table->text('description')->nullable(); + $table->text('body')->nullable(); + $table->text('feature_overview')->nullable(); + $table->text('feature_spec')->nullable(); + $table->text('photo')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('products'); + } +} diff --git a/database/migrations/2024_02_29_020738_create_support_technicals_table.php b/database/migrations/2024_02_29_020738_create_support_technicals_table.php new file mode 100644 index 0000000..f62fadb --- /dev/null +++ b/database/migrations/2024_02_29_020738_create_support_technicals_table.php @@ -0,0 +1,38 @@ +bigIncrements('id'); + $table->string('name_first'); + $table->string('name_last'); + $table->text('company_name'); + $table->text('job_title')->nullable(); + $table->string('email', 512); + $table->string('phone'); + $table->text('contry'); + $table->text('comments')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('support_technicals'); + } +} diff --git a/database/migrations/2024_02_29_020804_create_support_sales_table.php b/database/migrations/2024_02_29_020804_create_support_sales_table.php new file mode 100644 index 0000000..574bd1f --- /dev/null +++ b/database/migrations/2024_02_29_020804_create_support_sales_table.php @@ -0,0 +1,38 @@ +bigIncrements('id'); + $table->string('name_first'); + $table->string('name_last'); + $table->text('company_name'); + $table->text('job_title')->nullable(); + $table->string('email', 512); + $table->string('phone'); + $table->text('contry'); + $table->text('comments')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('support_sales'); + } +} diff --git a/database/migrations/2024_02_29_020832_create_support_distribution_partner_catalogs_table.php b/database/migrations/2024_02_29_020832_create_support_distribution_partner_catalogs_table.php new file mode 100644 index 0000000..2eac900 --- /dev/null +++ b/database/migrations/2024_02_29_020832_create_support_distribution_partner_catalogs_table.php @@ -0,0 +1,36 @@ +bigIncrements('id'); + $table->biginteger('parent_id')->nullable(); + $table->integer('lft')->default(0); + $table->integer('rgt')->default(0); + $table->integer('depth')->default(0); + $table->boolean('is_front_show')->default(true); + $table->text('name'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('support_distribution_partner_catalogs'); + } +} diff --git a/database/migrations/2024_02_29_020847_create_support_distribution_partners_table.php b/database/migrations/2024_02_29_020847_create_support_distribution_partners_table.php new file mode 100644 index 0000000..406d46e --- /dev/null +++ b/database/migrations/2024_02_29_020847_create_support_distribution_partners_table.php @@ -0,0 +1,36 @@ +bigIncrements('id'); + $table->biginteger('support_distribution_partner_catalog_id')->default(0); + $table->boolean('is_front_show')->default(true); + $table->text('title'); + $table->text('description'); + $table->string('website')->nullable(); + $table->text('photo')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('support_distribution_partners'); + } +} diff --git a/database/migrations/2024_02_29_020904_create_support_ecosystem_partner_catalogs_table.php b/database/migrations/2024_02_29_020904_create_support_ecosystem_partner_catalogs_table.php new file mode 100644 index 0000000..8eddb85 --- /dev/null +++ b/database/migrations/2024_02_29_020904_create_support_ecosystem_partner_catalogs_table.php @@ -0,0 +1,36 @@ +bigIncrements('id'); + $table->biginteger('parent_id')->nullable(); + $table->integer('lft')->default(0); + $table->integer('rgt')->default(0); + $table->integer('depth')->default(0); + $table->boolean('is_front_show')->default(true); + $table->text('name'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('support_ecosystem_partner_catalogs'); + } +} diff --git a/database/migrations/2024_02_29_020915_create_support_ecosystem_partners_table.php b/database/migrations/2024_02_29_020915_create_support_ecosystem_partners_table.php new file mode 100644 index 0000000..234baef --- /dev/null +++ b/database/migrations/2024_02_29_020915_create_support_ecosystem_partners_table.php @@ -0,0 +1,36 @@ +bigIncrements('id'); + $table->biginteger('support_ecosystem_partner_catalog_id')->default(0); + $table->boolean('is_front_show')->default(true); + $table->text('title'); + $table->text('description'); + $table->string('website')->nullable(); + $table->text('photo')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('support_ecosystem_partners'); + } +} diff --git a/database/migrations/2024_03_04_092518_create_product_product_application_pivot_table.php b/database/migrations/2024_03_04_092518_create_product_product_application_pivot_table.php new file mode 100644 index 0000000..fb41f6d --- /dev/null +++ b/database/migrations/2024_03_04_092518_create_product_product_application_pivot_table.php @@ -0,0 +1,33 @@ +unsignedBigInteger('product_id')->index(); + $table->foreign('product_id')->references('id')->on('products')->onDelete('cascade'); + $table->unsignedBigInteger('product_application_id')->index(); + $table->foreign('product_application_id')->references('id')->on('product_applications')->onDelete('cascade'); + $table->primary(['product_id', 'product_application_id']); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('product_product_application'); + } +} diff --git a/database/migrations/2024_03_05_010521_create_home_carousel_table.php b/database/migrations/2024_03_05_010521_create_home_carousel_table.php new file mode 100644 index 0000000..817c1db --- /dev/null +++ b/database/migrations/2024_03_05_010521_create_home_carousel_table.php @@ -0,0 +1,40 @@ +bigIncrements('id'); + $table->biginteger('parent_id')->nullable(); + $table->integer('lft')->default(0); + $table->integer('rgt')->default(0); + $table->integer('depth')->default(1); + $table->boolean('is_front_show')->default(true); + $table->text('title'); + $table->text('body'); + $table->text('link')->nullable(); + $table->string('link_target')->nullable(); + $table->text('photos'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('home_carousel'); + } +} diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php new file mode 100644 index 0000000..8dc4e84 --- /dev/null +++ b/database/seeders/DatabaseSeeder.php @@ -0,0 +1,27 @@ +create(); + + \App\Models\User::factory()->create([ + 'id' => 1, + 'name' => 'Master', + 'email' => 'master@example.com', + 'email_verified_at' => Carbon::now(), + 'password' => '12345678', + 'remember_token' => null, + ]); + } +} diff --git a/lang/en/backend.php b/lang/en/backend.php new file mode 100644 index 0000000..947a4b6 --- /dev/null +++ b/lang/en/backend.php @@ -0,0 +1,138 @@ + [ + 'seo_keyword' => 'SEO Keyword', + 'seo_description' => 'SEO Description', + 'name' => 'Name', + 'catalog' => 'Catalog', + 'application' => 'Application', + 'is_front_show' => 'Is Front Show', + 'post_at' => 'Post At', + 'title' => 'Title', + 'body' => 'Body', + 'description' => 'Description', + 'venue' => 'Venue', + 'contact' => 'Contact', + 'source_links' => 'Source Links', + 'cover' => 'Cover', + 'website' => 'Website', + 'link' => 'Link', + 'link_target' => 'Link Target', + 'tip' => 'Tip', + 'feature_overview' => 'Overview', + 'feature_spec' => 'Specifications', + 'photos' => 'Photos', + 'slug' => 'Slug', + ], + 'account' => [ + 'title' => 'Account', + 'user' => [ + 'title' => 'Users', + ], + 'role' => [ + 'title' => 'Roles', + ], + 'permission' => [ + 'title' => 'Permissions', + ], + ], + 'home_carousel' => [ + 'title' => 'Home Carousel Manage', + 'content' => [ + 'ttile' => 'Home Carousel', + 'item' => 'Carousel Item', + 'items' => 'Carousel Items' + ], + ], + 'news' => [ + 'title' => 'News Manage', + 'catalog' => [ + 'title' => 'Catalogs', + 'item' => 'News Catalog', + 'items' => 'News Catalogs', + ], + 'content' => [ + 'title' => 'News', + 'item' => 'News', + 'items' => 'News', + ], + ], + 'event' => [ + 'title' => 'Event Manage', + 'catalog' => [ + 'title' => 'Catalogs', + 'item' => 'Event Catalog', + 'items' => 'Event Catalogs', + ], + 'content' => [ + 'title' => 'Events', + 'item' => 'Event', + 'items' => 'Events', + ], + ], + 'product' => [ + 'title' => 'Product Manage', + 'catalog' => [ + 'title' => 'Catalogs', + 'item' => 'Product Catalog', + 'items' => 'Product Catalogs', + ], + 'application' => [ + 'title' => 'Application Tags', + 'item' => 'Product Application Tag', + 'items' => 'Product Application Tags', + ], + 'content' => [ + 'title' => 'Products', + 'item' => 'Product', + 'items' => 'Products', + ], + 'tip_options' => [ + 'none' => 'None', + 'new' => 'New', + 'on_sale' => 'On Sale', + ] + ], + 'support' => [ + 'title' => 'Support Manage', + 'technical' => [ + 'title' => 'Technical Supports', + 'item' => 'Item', + 'items' => 'Items', + ], + 'sales_inquiry' => [ + 'title' => ' Sales Inquiries', + 'item' => 'Sales Inquiry', + 'items' => 'Sales Inquiries', + ], + 'distribution_partner' => [ + 'title' => 'Distribution Partner', + 'catalog' => [ + 'title' => 'Catalogs', + 'item' => 'Distribution Partner Catalog', + 'items' => 'Distribution Partner Catalogs', + ], + 'content' => [ + 'title' => 'Distribution Partners', + 'item' => 'Distribution Partner', + 'items' => 'Distribution Partners', + ], + ], + 'ecosystem_partner' => [ + 'title' => 'Ecosystem Partner', + 'catalog' => [ + 'title' => 'Catalogs', + 'item' => 'Ecosystem Partner Catalog', + 'items' => 'Ecosystem Partner Catalogs', + ], + 'content' => [ + 'title' => 'Ecosystem Partners', + 'item' => 'Ecosystem Partner', + 'items' => 'Ecosystem Partners', + ], + ], + ], +]; diff --git a/lang/vendor/backpack/ar/backup.php b/lang/vendor/backpack/ar/backup.php new file mode 100644 index 0000000..89eea0e --- /dev/null +++ b/lang/vendor/backpack/ar/backup.php @@ -0,0 +1,16 @@ + 'التسجيل مغلق.', + 'no_email_column' => 'لا يوجد بمستخدم مرتبط بهذا البريد إلكتروني.', + 'first_page_you_see' => 'الصفحة الأولى التي تراها بعد تسجيل الدخول', + 'login_status' => 'حالة تسجيل الدخول', + 'logged_in' => 'لقد سجلت الدخول!', + 'toggle_navigation' => 'تبديل التنقل', + 'administration' => 'إدارة', + 'user' => 'مستخدم', + 'logout' => 'تسجيل خروج', + 'login' => 'تسجيل الدخول', + 'register' => 'تسجيل', + 'name' => 'الاسم', + 'email_address' => 'البريد الإلكتروني', + 'password' => 'كلمة المرور', + 'old_password' => 'كلمة المرور القديمة', + 'new_password' => 'كلمة المرور الجديدة', + 'confirm_password' => 'تأكيد كلمة المرور', + 'remember_me' => 'تذكرنى', + 'forgot_your_password' => 'نسيت كلمة السر؟', + 'reset_password' => 'إعادة تعيين كلمة المرور', + 'send_reset_link' => 'إرسال رابط إعادة تعيين كلمة السر', + 'click_here_to_reset' => 'انقر هنا لإعادة تعيين كلمة المرور الخاصة بك', + 'change_password' => 'تغيير كلمة المرور', + 'unauthorized' => 'غير مصرح.', + 'dashboard' => 'لوحة التحكم', + 'handcrafted_by' => 'صنع يدويًا بواسطة', + 'powered_by' => 'مشغل بواسطة', + 'my_account' => 'حسابي', + 'update_account_info' => 'تحديث معلومات الحساب', + 'save' => 'أحفظ', + 'cancel' => 'الفاء', + 'error' => 'خطأ', + 'success' => 'تم بنجاح', + 'warning' => 'تحذير', + 'notice' => 'يلاحظ', + 'old_password_incorrect' => 'كلمة السر القديمة ليست صحيحة.', + 'password_dont_match' => 'كلمة المرور غير مطابقة.', + 'password_empty' => 'تأكد من ملء حقلي كلمة المرور.', + 'password_updated' => 'تم تحديث كلمة السر.', + 'account_updated' => 'تم تحديث الحساب بنجاح.', + 'unknown_error' => 'حدث خطأ غير معروف. ', + 'error_saving' => 'خطأ أثناء الحفظ. ', + 'session_expired_error' => 'انتهت صلاحية جلسة العمل الخاصة بك. يرجى تسجيل الدخول مرة أخرى إلى حسابك.', + 'welcome' => 'مرحباً!', + 'use_sidebar' => 'استخدم الشريط الجانبي على اليسار لإنشاء المحتوى أو تعديله أو حذفه.', + 'password_reset' => [ + 'greeting' => 'مرحبًا!', + 'subject' => 'إعادة تعيين إشعار كلمة المرور', + 'line_1' => 'أنت تتلقى هذا البريد الإلكتروني لأننا تلقينا طلب إعادة تعيين كلمة المرور لحسابك.', + 'line_2' => 'انقر فوق الزر أدناه لإعادة تعيين كلمة المرور الخاصة بك:', + 'button' => 'إعادة تعيين كلمة المرور', + 'notice' => 'إذا لم تطلب إعادة تعيين كلمة المرور ، فلا داعي لاتخاذ أي إجراء آخر.', + ], + 'step' => 'خطوة', + 'confirm_email' => '.تأكيد عنوان البريد الإلكتروني', + 'choose_new_password' => 'اختر كلمة مرور جديدة', + 'confirm_new_password' => 'تأكيد كلمة المرور الجديدة', + 'throttled' => 'لقد طلبت بالفعل إعادة تعيين كلمة المرور مؤخرًا. ', + 'throttled_request' => 'لقد تجاوزت حد المحاولات. ', + +]; diff --git a/lang/vendor/backpack/ar/crud.php b/lang/vendor/backpack/ar/crud.php new file mode 100644 index 0000000..844ebc4 --- /dev/null +++ b/lang/vendor/backpack/ar/crud.php @@ -0,0 +1,191 @@ + 'حفظ وأضف عنصر الجديد', + 'save_action_save_and_edit' => 'حفظ وتحرير هذا العنصر', + 'save_action_save_and_back' => 'حفظ و العودة', + 'save_action_save_and_preview' => 'حفظ و معاينة', + 'save_action_changed_notification' => 'تم تغيير السلوك الافتراضي بعد الحفظ.', + + // Create form + 'add' => 'أضافة', + 'back_to_all' => 'العودة إلى الكل ', + 'cancel' => 'الغاء', + 'add_a_new' => 'أضف جديد ', + + // Edit form + 'edit' => 'تعديل', + 'save' => 'حفظ', + + // Translatable models + 'edit_translations' => 'ترجمة', + 'language' => 'لغة', + + // CRUD table view + 'all' => 'الكل ', + 'in_the_database' => 'في قاعدة البيانات', + 'list' => 'قائمة', + 'reset' => 'إعادة ضبط', + 'actions' => 'أجراءات', + 'preview' => 'معاينة', + 'delete' => 'حذف', + 'admin' => 'مسؤل', + 'details_row' => 'هذا هو صف التفاصيل, قم بتعديلة من فضلك. ', + 'details_row_loading_error' => 'حدث خطأ أثناء تحميل التفاصيل, حاول مرة اخري. ', + 'clone' => 'استنساخ', + 'clone_success' => 'تم الاستنساخ
تمت إضافة نسخة جديد ، بنفس المعلومات مثل هذا الصف.', + 'clone_failure' => 'فشل الاستنساخ
لا يمكن إنشاء نسخة جديد. ', + + // Confirmation messages and bubbles + 'delete_confirm' => 'هل أنت متأكد أنك تريد حذف هذا العنصر؟', + 'delete_confirmation_title' => 'تم حذف العنصر', + 'delete_confirmation_message' => 'تم حذف العنصر بنجاح.', + 'delete_confirmation_not_title' => 'لم يتم حذفه', + 'delete_confirmation_not_message' => 'هناك خطأ, العنصر ربما لم يتم حذفة. ', + 'delete_confirmation_not_deleted_title' => 'غير محذوف', + 'delete_confirmation_not_deleted_message' => 'لم يحدث شيء, العنصر بأمان. ', + + // Bulk actions + 'bulk_no_entries_selected_title' => 'لم يتم تحديد العناصر', + 'bulk_no_entries_selected_message' => 'الرجاء تحديد عنصر واحد أو أكثر لتنفيذ إجراء جماعي عليهم.', + + // Bulk delete + 'bulk_delete_are_you_sure' => 'هل أنت متأكد أنك تريد حذف عدد :number عناصر؟', + 'bulk_delete_sucess_title' => 'تم حذف المدخل', + 'bulk_delete_sucess_message' => ' تم حذف من العناصر', + 'bulk_delete_error_title' => 'فشل الحذف', + 'bulk_delete_error_message' => 'تعذر حذف عنصر أو أكثر', + + // Bulk clone + 'bulk_clone_are_you_sure' => 'هل أنت متأكد من أنك تريد استنساخ هذه:number إدخالات؟', + 'bulk_clone_sucess_title' => 'إدخالات مستنسخة', + 'bulk_clone_sucess_message' => ' تم استنساخ العناصر.', + 'bulk_clone_error_title' => 'فشل الاستنساخ', + 'bulk_clone_error_message' => 'تعذر إنشاء إدخال أو أكثر. ', + + // Ajax errors + 'ajax_error_title' => 'خطأ', + 'ajax_error_text' => 'خطأ في تحميل الصفحة. ', + + // DataTables translation + 'emptyTable' => 'لا توجد بيانات متوفرة في الجدول', + 'info' => 'إظهار _START_ إلى _END_ من _TOTAL_ من الإدخالات', + 'infoEmpty' => 'لا توجد إدخالات', + 'infoFiltered' => '(تمت تصفيته من إجمالي إدخالات _MAX_)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ إدخالات لكل صفحة', + 'loadingRecords' => 'تحميل...', + 'processing' => 'معالجة...', + 'search' => 'بحث', + 'zeroRecords' => 'لم يتم العثور على إدخالات مطابقة', + 'paginate' => [ + 'first' => 'أولاً', + 'last' => 'الاخير', + 'next' => 'التالي', + 'previous' => 'سابق', + ], + 'aria' => [ + 'sortAscending' => ': تفعيل لفرز العمود تصاعديا', + 'sortDescending' => ': تفعيل لفرز العمود تنازلياً', + ], + 'export' => [ + 'export' => 'تصدير', + 'copy' => 'نسخ', + 'excel' => 'اكسل', + 'csv' => 'CSV', + 'pdf' => 'بي دي إف', + 'print' => 'طباعة', + 'column_visibility' => 'الاعمد الظاهرة', + ], + + // global crud - errors + 'unauthorized_access' => 'وصول غير مصرح به - ليس لديك الأذونات اللازمة لرؤية هذه الصفحة.', + 'please_fix' => 'يرجى تصحيح الأخطاء التالية:', + + // global crud - success / error notification bubbles + 'insert_success' => 'تمت إضافة العنصر بنجاح.', + 'update_success' => 'تم تعديل العنصر بنجاح.', + + // CRUD reorder view + 'reorder' => 'إعادة ترتيب', + 'reorder_text' => 'استخدم السحب', + 'reorder_success_title' => 'تم', + 'reorder_success_message' => 'تم حفظ طلبك.', + 'reorder_error_title' => 'خطأ', + 'reorder_error_message' => 'لم يتم حفظ طلبك.', + + // CRUD yes/no + 'yes' => 'نعم', + 'no' => 'لا', + + // CRUD filters navbar view + 'filters' => 'الفلاتر', + 'toggle_filters' => 'تبديل الفلاتر', + 'remove_filters' => 'إزالة الفلاتر', + 'apply' => 'يتقدم', + + //filters language strings + 'today' => 'اليوم', + 'yesterday' => 'أمس', + 'last_7_days' => 'اخر 7 ايام', + 'last_30_days' => 'آخر 30 يومًا', + 'this_month' => 'هذا الشهر', + 'last_month' => 'الشهر الماضي', + 'custom_range' => 'نطاق مخصص', + 'weekLabel' => 'أسب', + + // Fields + 'browse_uploads' => 'تصفح التحميلات', + 'select_all' => 'اختر الكل', + 'select_files' => 'اختر الملفات', + 'select_file' => 'حدد الملف', + 'clear' => 'تهيئة', + 'page_link' => 'رابط الصفحة', + 'page_link_placeholder' => 'http://example.com/your-desired-page', + 'internal_link' => 'ارتباط داخلي', + 'internal_link_placeholder' => "أختصار داخلي. Ex: \'admin/page\' (بدون تنصيص) لاجل \':url\'", + 'external_link' => 'رابط خارجي', + 'choose_file' => 'اختر ملف', + 'new_item' => 'عنصر جديد', + 'select_entry' => 'حدد إدخالاً', + 'select_entries' => 'حدد الإدخالات', + 'upload_multiple_files_selected' => 'تم تحديد الملفات, بعد الحذف، ستظهر بالاعلي.', + + //Table field + 'table_cant_add' => 'لا يمكن إضافة :entity', + 'table_max_reached' => 'وصلت للحد الاقصي :max', + + // google_map + 'google_map_locate' => 'احصل على موقعي', + + // File manager + 'file_manager' => 'مدير الملفات', + + // InlineCreateOperation + 'related_entry_created_success' => 'تم إنشاء المدخل واختياره.', + 'related_entry_created_error' => 'تعذر إنشاء الإدخال.', + 'inline_saving' => 'جاري الحفظ...', + + // returned when no translations found in select inputs + 'empty_translations' => '(فارغ)', + + // The pivot selector required validation message + 'pivot_selector_required_validation_message' => 'الحقل المحوري مطلوب.', +]; diff --git a/lang/vendor/backpack/ar/langfilemanager.php b/lang/vendor/backpack/ar/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/ar/langfilemanager.php @@ -0,0 +1,16 @@ + 'Регистрациите са забранени.', + 'first_page_you_see' => 'Страницата която виждате след като влезете', + 'login_status' => 'Статус', + 'logged_in' => 'Влязохте успешно !', + 'toggle_navigation' => 'Навигация', + 'administration' => 'Администрация', + 'user' => 'Потребител', + 'logout' => 'Изход', + 'login' => 'Вход', + 'register' => 'Регистрация', + 'name' => 'Имей', + 'email_address' => 'E-Mail', + 'password' => 'Парола', + 'confirm_password' => 'Потвърдете паролата', + 'remember_me' => 'Запомни ме', + 'forgot_your_password' => 'Забравена парола', + 'reset_password' => 'Смени парола', + 'send_reset_link' => 'Изпрати линк за ресетване на паролата', + 'click_here_to_reset' => 'Натиснете тук за да ресетнете паролата', + 'unauthorized' => 'Неоторизиран.', + 'dashboard' => 'Табло', + 'handcrafted_by' => 'Ръчна изработка от', + 'powered_by' => 'Задвижван от', +]; diff --git a/lang/vendor/backpack/bg/crud.php b/lang/vendor/backpack/bg/crud.php new file mode 100644 index 0000000..ff319d1 --- /dev/null +++ b/lang/vendor/backpack/bg/crud.php @@ -0,0 +1,115 @@ + 'Запиши и добави нов', + 'save_action_save_and_edit' => 'Запиши и поправи текущия запис', + 'save_action_save_and_back' => 'Запиши и се върни назад', + 'save_action_changed_notification' => 'Действието след запис по подразбиране слез запис беше променено.', + + // Create form + 'add' => 'Добави', + 'back_to_all' => 'Назад към записите ', + 'cancel' => 'Отказ', + 'add_a_new' => 'Добави нов запис ', + + // Create form - advanced options + 'after_saving' => 'След запис', + 'go_to_the_table_view' => 'Върни се към записите', + 'let_me_add_another_item' => 'Нека добавя отново', + 'edit_the_new_item' => 'Поправи току що направеният запис', + + // Edit form + 'edit' => 'Поправи', + 'save' => 'Запиши', + + // CRUD table view + 'all' => 'Всички ', + 'in_the_database' => 'В базите данни', + 'list' => 'Лист', + 'actions' => 'Действия', + 'preview' => 'Преглед', + 'delete' => 'Изтрии', + 'admin' => 'Admin', + 'details_row' => 'Това е колонката с детайли. Променяи както желаеш.', + 'details_row_loading_error' => 'Възникна грешка при зареджането на детайлите. Моля опитайте отново.', + + // Confirmation messages and bubbles + 'delete_confirm' => 'Сигурни ли сте, че искате да изтриете този запис ?', + 'delete_confirmation_title' => 'Запис изтрит', + 'delete_confirmation_message' => 'Записът беше успешно изтрит.', + 'delete_confirmation_not_title' => 'НЕ Е ИЗТРИТ', + 'delete_confirmation_not_message' => 'Възникна грешка. Записът не бе изтрит.', + 'delete_confirmation_not_deleted_title' => 'Не е изтрит', + 'delete_confirmation_not_deleted_message' => 'Споко :). Записът е на сигурно място.', + + // DataTables translation + 'emptyTable' => 'Няма намерени резултати', + 'info' => 'Показване на резултати от _START_ до _END_ от общо _TOTAL_', + 'infoEmpty' => '', + 'infoFiltered' => '(филтрирани от общо _MAX_ резултата))', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ records per page', + 'loadingRecords' => 'Зареждам...', + 'processing' => 'Обработка на резултатите...', + 'search' => 'Търсене', + 'zeroRecords' => 'Няма намерени резултати', + 'paginate' => [ + 'first' => 'Първа', + 'last' => 'Последна', + 'next' => 'Следваща', + 'previous' => 'Предишна', + ], + 'aria' => [ + 'sortAscending' => ': Възходящ ред', + 'sortDescending' => ': Низходящ ред', + ], + + // global crud - errors + 'unauthorized_access' => 'Неразрешен достъп - нямате необходимите разрешения, за да видите тази страница.', + 'please_fix' => 'Моля, поправете следните грешки:', + + // global crud - success / error notification bubbles + 'insert_success' => 'Елементът е добавен успешно.', + 'update_success' => 'Елементът е променен успешно.', + + // CRUD reorder view + 'reorder' => 'Пренареждане', + 'reorder_text' => 'Използвайте влачене и пускане, за да пренаредите.', + 'reorder_success_title' => 'Готово', + 'reorder_success_message' => 'Вашето нареждане е запазено.', + 'reorder_error_title' => 'Грешка', + 'reorder_error_message' => 'Вашето нареждане не е запазено..', + + // CRUD yes/no + 'yes' => 'Да', + 'no' => 'Не', + + // Fields + 'browse_uploads' => 'Browse uploads', + 'clear' => 'Изчисти', + 'page_link' => 'Линк на страницата', + 'page_link_placeholder' => 'http://example.com/your-desired-page', + 'internal_link' => 'Вътрешен линк', + 'internal_link_placeholder' => 'Вътрешен слъг. Пр: \'admin/page\' (без кавички) за \':url\'', + 'external_link' => 'Външен линк', + 'choose_file' => 'Избери файл', + + //Table field + 'table_cant_add' => 'Не може да се добави нов :entity', + 'table_max_reached' => 'Максимален брой :max достигнат', + +]; diff --git a/lang/vendor/backpack/bg/langfilemanager.php b/lang/vendor/backpack/bg/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/bg/langfilemanager.php @@ -0,0 +1,16 @@ + 'রেজিস্ট্রেশন বন্ধ।', + 'no_email_column' => 'ব্যবহারকারীর কোন ই-মেইল নেই।', + 'first_page_you_see' => 'লগিন করার পর প্রথম যে পৃষ্ঠাটি আপনি দেখতে পাবেন', + 'login_status' => 'লগিন অবস্থা', + 'logged_in' => 'আপনি লগিন করেছেন!', + 'toggle_navigation' => 'নেভিগেশন টগল করুন', + 'administration' => 'এডমিনিস্ট্রেশন', + 'user' => 'ব্যবহারকারী', + 'logout' => 'লগআউট', + 'login' => 'লগিন', + 'register' => 'নিবন্ধন', + 'name' => 'নাম', + 'email_address' => 'ই-মেইল ঠিকানা', + 'password' => 'পাসওয়ার্ড', + 'old_password' => 'পুরনো পাসওয়ার্ড', + 'new_password' => 'নতুন পাসওয়ার্ড', + 'confirm_password' => 'পাসওয়ার্ড নিশ্চিত করুন', + 'remember_me' => 'আমাকে মনে রাখুন', + 'forgot_your_password' => 'পাসওয়ার্ড ভুলে গিয়েছেন?', + 'reset_password' => 'পাসওয়ার্ড রিসেট করুন', + 'send_reset_link' => 'পাসওয়ার্ড রিসেট লিংক পাঠান', + 'click_here_to_reset' => 'পাসওয়ার্ড রিসেটের জন্য এখানে ক্লিক করুন', + 'change_password' => 'পাসওয়ার্ড পরিবর্তন', + 'unauthorized' => 'অননুমোদিত।', + 'dashboard' => 'ড্যাশবোর্ড', + 'handcrafted_by' => 'কারুকার্য করেছেন', + 'powered_by' => 'Powered by', + 'my_account' => 'আমার অ্যাকাউন্ট', + 'update_account_info' => 'অ্যাকাউন্টের তথ্য আপডেট করুন', + 'save' => 'সংরক্ষণ', + 'cancel' => 'বাতিল', + 'error' => 'ত্রুটি', + 'success' => 'সফল', + 'warning' => 'সতর্কতা', + 'notice' => 'বিজ্ঞপ্তি', + 'old_password_incorrect' => 'পুরানো পাসওয়ার্ডটি ভুল।', + 'password_dont_match' => 'পাসওয়ার্ড মিলছে না।', + 'password_empty' => 'সবগুলি পাসওয়ার্ড ফিল্ড পূরণ হয়েছে তা নিশ্চিত করুন।', + 'password_updated' => 'পাসওয়ার্ড আপডেট করা হয়েছে।', + 'account_updated' => 'অ্যাকাউন্ট সফলভাবে আপডেট হয়েছে।', + 'unknown_error' => 'একটি অজানা ত্রুটি ঘটেছে। পুনরায় চেষ্টা করুন।', + 'error_saving' => 'সংরক্ষণের সময় ত্রুটি পাওয়া গেছে। আবার চেষ্টা করুন।', + 'session_expired_error' => 'আপনার সেশনের মেয়াদ শেষ হয়ে গেছে। আপনার অ্যাকাউন্টে আবার লগইন করুন.', + 'welcome' => 'স্বাগত!', + 'use_sidebar' => 'কন্টেন্ট তৈরি করতে, সম্পাদনা করতে বা মুছতে বাম দিকে সাইডবারটি ব্যবহার করুন', + + 'password_reset' => [ + 'greeting' => 'হ্যালো!', + 'subject' => 'পাসওয়ার্ড নোটিফিকেশান পুনরায় সেট করুন।', + 'line_1' => 'আপনি এই ইমেলটি পাচ্ছেন কারণ আমরা আপনার অ্যাকাউন্টের জন্য একটি পাসওয়ার্ড পুনরায় সেট করার অনুরোধ পেয়েছি।', + 'line_2' => 'আপনার পাসওয়ার্ডটি পুনরায় সেট করতে নীচের বাটনে ক্লিক করুন:', + 'button' => 'পাসওয়ার্ড রিসেট করুন', + 'notice' => 'আপনি যদি পাসওয়ার্ড পুনরায় সেট করার অনুরোধ না করেন তবে আর কোনও এইয়াকশনের প্রয়োজন নেই।', + ], + + 'step' => 'ধাপ', + 'confirm_email' => 'ইমেইল নিশ্চিত করুন', + 'choose_new_password' => 'নতুন পাসওয়ার্ড চয়ন করুন', + 'confirm_new_password' => 'নতুন পাসওয়ার্ড নিশ্চিত করুন', + +]; diff --git a/lang/vendor/backpack/bn/crud.php b/lang/vendor/backpack/bn/crud.php new file mode 100644 index 0000000..f07d3be --- /dev/null +++ b/lang/vendor/backpack/bn/crud.php @@ -0,0 +1,180 @@ + 'সংরক্ষণ করুন এবং নতুন আইটেম', + 'save_action_save_and_edit' => 'এই আইটেমটি সংরক্ষণ এবং সম্পাদনা করুন', + 'save_action_save_and_back' => 'সংরক্ষণ করুন এবং ফিরে যান', + 'save_action_save_and_preview' => 'সংরক্ষণ এবং প্রদর্শন', + 'save_action_changed_notification' => 'সংরক্ষণের পরে ডিফল্ট আচরণ পরিবর্তন করা হয়েছে।', + + // Create form + 'add' => 'যোগ করুন', + 'back_to_all' => 'সবগুলিতে ফিরে যান ', + 'cancel' => 'বাতিল', + 'add_a_new' => 'নতুন যোগ করুন ', + + // Edit form + 'edit' => 'সম্পাদনা', + 'save' => 'সংরক্ষণ', + + // Translatable models + 'edit_translations' => 'অনুবাদ', + 'language' => 'ভাষা', + + // CRUD table view + 'all' => 'সবগুলি ', + 'in_the_database' => 'ডাটাবেসে', + 'list' => 'তালিকা', + 'reset' => 'রিসেট', + 'actions' => 'অ্যাকশনগুলি', + 'preview' => 'প্রদর্শন', + 'delete' => 'মুছে ফেলুন', + 'admin' => 'অ্যাডমিন', + 'details_row' => 'এটি বিশদ সারি। আপনি দয়া করে পরিবর্তন করুন।', + 'details_row_loading_error' => 'বিস্তারিত লোড করার সময় একটি ত্রুটি হয়েছিল। পুনরায় চেষ্টা করুন', + 'clone' => 'ক্লোন', + 'clone_success' => 'এন্ট্রি ক্লোন করা হয়েছে।
একই তথ্য সহ একটি নতুন এন্ট্রি যুক্ত করা হয়েছে।', + 'clone_failure' => 'ক্লোনিং ব্যর্থ হয়েছে
নতুন এন্ট্রি তৈরি করা যায়নি। আবার চেষ্টা করুন।', + + // Confirmation messages and bubbles + 'delete_confirm' => 'আপনি কি নিশ্চিতভাবে এই আইটেমটি মুছে ফেলতে চান?', + 'delete_confirmation_title' => 'আইটেম মুছে ফেলা হয়েছে।', + 'delete_confirmation_message' => 'আইটেমটি সফলভাবে মুছে ফেলা হয়েছে।', + 'delete_confirmation_not_title' => 'মুছে ফেলা হয়নি।', + 'delete_confirmation_not_message' => 'একটি ত্রুটি পাওয়া গিয়েছে আপনার আইটেম মুছে ফেলা নাও হতে পারে।', + 'delete_confirmation_not_deleted_title' => 'মুছে ফেলা হয়নি।', + 'delete_confirmation_not_deleted_message' => 'কিছুই ঘটেনি। আপনার আইটেমটি নিরাপদে আছে।', + + // Bulk actions + 'bulk_no_entries_selected_title' => 'কোনও এন্ট্রি নির্বাচিত হয়নি।', + 'bulk_no_entries_selected_message' => 'বাল্ক অ্যাকশনের জন্য এক বা একাধিক আইটেম নির্বাচন করুন।', + + // Bulk delete + 'bulk_delete_are_you_sure' => 'আপনি কি :number এন্ট্রিগুলি মুছে ফেলার বিষয়ে নিশ্চিত?', + 'bulk_delete_sucess_title' => 'এন্ট্রিগুলি মুছে ফেলা হয়েছে।', + 'bulk_delete_sucess_message' => ' আইটেমগুলি মুছে ফেলা হয়েছে।', + 'bulk_delete_error_title' => 'মুছে ফেলা ব্যর্থ হয়েছে', + 'bulk_delete_error_message' => 'এক বা একাধিক আইটেম মুছে ফেলা যায়নি', + + // Bulk clone + 'bulk_clone_are_you_sure' => 'আপনি কি :number এন্ট্রিগুলি ক্লোন করার বিষয়ে নিশ্চিত?', + 'bulk_clone_sucess_title' => 'এন্ট্রিগুলি ক্লোন করা হয়েছে', + 'bulk_clone_sucess_message' => ' আইটেমগুলি ক্লোন করা হয়েছে', + 'bulk_clone_error_title' => 'ক্লোনিং ব্যর্থ হয়েছে', + 'bulk_clone_error_message' => 'এক বা একাধিক এন্ট্রি তৈরি করা যায়নি। আবার চেষ্টা করুন।', + + // Ajax errors + 'ajax_error_title' => 'ত্রুটি', + 'ajax_error_text' => 'পৃষ্ঠাটি লোড করার সময় ত্রুটি পাওয়া গেছে। রিফ্রেশ করুন।', + + // DataTables translation + 'emptyTable' => 'সারণীতে কোনও ডেটা নেই', + 'info' => 'সর্বমোট _TOTAL_ এন্ট্রির মধ্যে _START_ থেকে _END_ টি দেখানো হচ্ছে।', + 'infoEmpty' => 'কোনও এন্ট্রি নেই', + 'infoFiltered' => '( _MAX_ টি এন্ট্রি থেকে ফিল্টার করা হয়েছে)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => 'প্রতি পৃষ্ঠায় এন্ট্রি _MENU_ টি।', + 'loadingRecords' => 'লোড হচ্ছে...', + 'processing' => 'প্রসেসিং হচ্ছে...', + 'search' => 'খুঁজুন', + 'zeroRecords' => 'কোনও মিলে যাওয়া এন্ট্রি পাওয়া যায় নি।', + 'paginate' => [ + 'first' => 'প্রথম', + 'last' => 'শেষ', + 'next' => 'পরবর্তী', + 'previous' => 'পূর্ববর্তী', + ], + 'aria' => [ + 'sortAscending' => ': কলাম উর্ধ্বক্রম অনুসারে সাজানোর জন্য অ্যাক্টিভ করুন', + 'sortDescending' => ': কলাম অধঃক্রম অনুসারে সাজানোর জন্য অ্যাক্টিভ করুন', + ], + 'export' => [ + 'export' => 'Export', + 'copy' => 'Copy', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => 'Print', + 'column_visibility' => 'Column visibility', + ], + + // global crud - errors + 'unauthorized_access' => 'অননুমোদিত। এই পৃষ্ঠায় আপনার কাছে প্রয়োজনীয় অনুমতি নেই।', + 'please_fix' => 'নিম্নলিখিত ত্রুটি ঠিক করুন:', + + // global crud - success / error notification bubbles + 'insert_success' => 'আইটেমটি সফলভাবে যুক্ত করা হয়েছে।', + 'update_success' => 'আইটেমটি সফলভাবে পরিবর্তিত হয়েছে।', + + // CRUD reorder view + 'reorder' => 'পুনঃক্রম', + 'reorder_text' => 'পুনরায় অর্ডার করতে ড্রাগ এবং ড্রপ ব্যবহার করুন।', + 'reorder_success_title' => 'সম্পন্ন', + 'reorder_success_message' => 'আপনার অর্ডার সংরক্ষণ করা হয়েছে।', + 'reorder_error_title' => 'ত্রুটি', + 'reorder_error_message' => 'আপনার অর্ডার সংরক্ষণ করা হয়নি।', + + // CRUD yes/no + 'yes' => 'হ্যাঁ', + 'no' => 'না', + + // CRUD filters navbar view + 'filters' => 'ফিল্টার', + 'toggle_filters' => 'ফিল্টারগুলি টগল করুন', + 'remove_filters' => 'ফিল্টারগুলি সরান', + 'apply' => 'প্রয়োগ করুন', + + //filters language strings + 'today' => 'আজ', + 'yesterday' => 'গতকাল', + 'last_7_days' => 'শেষ ৭ দিন', + 'last_30_days' => 'শেষ ৩০ দিন', + 'this_month' => 'এই মাস', + 'last_month' => 'গত মাস', + 'custom_range' => 'কাস্টম রেঞ্জ', + 'weekLabel' => 'W', + + // Fields + 'browse_uploads' => 'আপলোডগুলি ব্রাউজ করুন', + 'select_all' => 'সবগুলি নির্বাচন করুন', + 'select_files' => 'ফাইলগুলি নির্বাচন করুন', + 'select_file' => 'ফাইল নির্বাচন করুন', + 'clear' => 'ক্লিয়ার', + 'page_link' => 'পৃষ্ঠা লিংক', + 'page_link_placeholder' => 'http://example.com/your-desired-page', + 'internal_link' => 'অভ্যন্তরীণ লিংক', + 'internal_link_placeholder' => 'Internal slug. Ex: \'admin/page\' (no quotes) for \':url\'', + 'external_link' => 'বহি:স্থ লিংক', + 'choose_file' => 'ফাইল বাছাই করুন', + 'new_item' => 'নতুন আইটেম', + 'select_entry' => 'একটি এন্ট্রি নির্বাচন করুন', + 'select_entries' => 'এন্ট্রি নির্বাচন করুন', + + //Table field + 'table_cant_add' => 'নতুন :entity যোগ করা যাচ্ছে না', + 'table_max_reached' => 'সর্বাধিক সংখ্যক :max পৌঁছেছে', + + // File manager + 'file_manager' => 'ফাইল ম্যানেজার', + + // InlineCreateOperation + 'related_entry_created_success' => 'সম্পর্কিত এন্ট্রি তৈরি এবং নির্বাচন করা হয়েছে।', + 'related_entry_created_error' => 'সম্পর্কিত এন্ট্রি তৈরি করতে পারেনি।', + + // returned when no translations found in select inputs + 'empty_translations' => '(empty)', +]; diff --git a/lang/vendor/backpack/bn/logmanager.php b/lang/vendor/backpack/bn/logmanager.php new file mode 100644 index 0000000..96a64a7 --- /dev/null +++ b/lang/vendor/backpack/bn/logmanager.php @@ -0,0 +1,16 @@ + 'El registre d\'usuari(e)s està tancat.', + 'no_email_column' => 'Els i les usuàries no tenen una adreça de correu electrònic associada.', + 'first_page_you_see' => 'La pàgina que veus després d\'iniciar sessió', + 'login_status' => 'Estat de la connexió', + 'logged_in' => 'Vostè ha iniciat sessió!', + 'toggle_navigation' => 'Activar/desactivar la navegació', + 'administration' => 'ADMINISTRACIÓ', + 'user' => 'USUARI/A', + 'logout' => 'Sortir', + 'login' => 'Iniciar sessió', + 'register' => 'Crear usuari/a', + 'name' => 'Nom', + 'email_address' => 'Correu', + 'password' => 'Contrasenya', + 'old_password' => 'Contrasenya anterior', + 'new_password' => 'Contrasenya nova', + 'confirm_password' => 'Confirmar contrasenya', + 'remember_me' => 'Recordar contrasenya', + 'forgot_your_password' => 'Ha oblidat la contrasenya?', + 'reset_password' => 'Restaurar contrasenya', + 'send_reset_link' => 'Enviar enllaç per restaurar la contrasenya', + 'click_here_to_reset' => 'Clica aquí per restaurar la contrasenya', + 'change_password' => 'Modificar contrasenya', + 'unauthorized' => 'No autoritzat.', + 'dashboard' => 'Panell', + 'handcrafted_by' => 'Realitzat per', + 'powered_by' => 'Creat amb', + 'my_account' => 'El meu compte', + 'update_account_info' => 'Actualitzar informació del compte', + 'save' => 'Desar', + 'cancel' => 'Cancel·lar', + 'error' => 'Error', + 'success' => 'Exitós', + 'warning' => 'Advertència', + 'notice' => 'Avís', + 'old_password_incorrect' => 'Contrasenya antiga incorrecta.', + 'password_dont_match' => 'Les contrasenyes no coincideixen.', + 'password_empty' => 'Asseguri\'s que ambdós camps de contrasenya estan complets.', + 'password_updated' => 'Contrasenya actualitzada.', + 'account_updated' => 'Compte actualitzat correctament.', + 'unknown_error' => 'Ha ocorregut un error. Si us plau, torni a intentar-ho.', + 'error_saving' => 'Error desant dades. Si us plau, torni a intentar-ho.', + 'error_login' => 'La seva contrasenya ha estat canviada en un altre navegador. Si us plau, torni a iniciar sessió amb la seva nova contrasenya.', + 'welcome' => 'Benvingut!', + 'use_sidebar' => 'Utilitzi la barra lateral a l\'esquerra per crear, editar o eliminar contingut.', + + 'password_reset' => [ + 'greeting' => 'Hola!', + 'subject' => 'Notificació de restabliment de contrasenya', + 'line_1' => 'Ha rebut aquest correu electrònic perquè hem rebut una sol·licitud de restabliment de contrasenya pel seu compte.', + 'line_2' => 'Faci clic al botó següent per restablir la seva contrasenya:', + 'button' => 'Restablir contrasenya', + 'notice' => 'Si no ha sol·licitat un restabliment de contrasenya, no es requereix cap acció addicional.', + ], + + 'step' => 'Pas', + 'confirm_email' => 'Confirmar correu electrònic', + 'choose_new_password' => 'Escollir nova contrasenya', + 'confirm_new_password' => 'Confirmar nova contrasenya', + 'throttled' => 'Ja ha demanat un restabliment de contrasenya recentment. Si us plau, revisi el seu correu electrònic. Si no ha rebut el correu de restabliment, torni-ho a intentar més tard.', + 'throttled_request' => 'Ha excedit el màxim d\'intents. Si us plau, esperi uns minuts i torni-ho a intentar.', + +]; diff --git a/lang/vendor/backpack/ca/crud.php b/lang/vendor/backpack/ca/crud.php new file mode 100644 index 0000000..68976b4 --- /dev/null +++ b/lang/vendor/backpack/ca/crud.php @@ -0,0 +1,188 @@ + 'Desar i crear nou', + 'save_action_save_and_edit' => 'Desar i continuar editant', + 'save_action_save_and_back' => 'Desar i tornar', + 'save_action_save_and_preview' => 'Desar i vista prèvia', + 'save_action_changed_notification' => 'L\'acció per defecte del botó desar ha sigut modificada.', + + // Create form + 'add' => 'Afegir', + 'back_to_all' => 'Tornar al llistat de', + 'cancel' => 'Cancel·lar', + 'add_a_new' => 'Afegir ', + + // Edit form + 'edit' => 'Editar', + 'save' => 'Desar', + + // Translatable models + 'edit_translations' => 'EDITAR TRADUCCIONS', + 'language' => 'Idioma', + + // CRUD table view + 'all' => 'Tots els registres de ', + 'in_the_database' => 'a la base de dades', + 'list' => 'Llistar', + 'reset' => 'Reiniciar', + 'actions' => 'Accions', + 'preview' => 'Vista prèvia', + 'delete' => 'Eliminar', + 'admin' => 'Administrador', + 'details_row' => 'Aquesta és la fila de detalls. Modificar segons conveniència.', + 'details_row_loading_error' => 'S\'ha produït un error durant la càrrega de dades. Si us plau, intenti-ho de nou.', + 'clone' => 'Clonar', + 'clone_success' => 'Element clonat
S\'ha creat un nou element amb la mateixa información que aquest.', + 'clone_failure' => 'La clonació ha fallat
No s\'ha pogut crear el nou element. Intenti-ho de nou.', + + // Confirmation messages and bubbles + 'delete_confirm' => 'Està segur que desitja eliminar aquest element?', + 'delete_confirmation_title' => 'Element eliminat', + 'delete_confirmation_message' => 'L\'element ha sigut eliminat de manera correcta.', + 'delete_confirmation_not_title' => 'No s\'ha pogut eliminar', + 'delete_confirmation_not_message' => 'Ha ocorregut un error. És probable que l\'element no s\'hagi eliminat.', + 'delete_confirmation_not_deleted_title' => 'No s\'ha pogut eliminar', + 'delete_confirmation_not_deleted_message' => 'No ha ocorregut res. El seu element està segur.', + + // Bulk actions + 'bulk_no_entries_selected_title' => 'No hi ha registres seleccionats', + 'bulk_no_entries_selected_message' => 'Seleccioni un o més registres on aplicar l\'operació', + + // Bulk delete + 'bulk_delete_are_you_sure' => 'Està segur que desitja eliminar :number registre/s?', + 'bulk_delete_sucess_title' => 'Registres eliminats', + 'bulk_delete_sucess_message' => ' registre/s eliminat/s', + 'bulk_delete_error_title' => 'Registres no eliminats', + 'bulk_delete_error_message' => 'No s\'han pogut eliminar un o més registres', + + // Bulk clone + 'bulk_clone_are_you_sure' => 'Està segur que desitja clonar :number registre/s?', + 'bulk_clone_sucess_title' => 'Registres clonats', + 'bulk_clone_sucess_message' => ' registre/s clonat/s.', + 'bulk_clone_error_title' => 'Registres no clonats', + 'bulk_clone_error_message' => 'No s\'han pogut clonar una o més entrades. Intenti-ho de nou.', + + // Ajax errors + 'ajax_error_title' => 'Error', + 'ajax_error_text' => 'Error de càrrega de la pàgina. Si us plau, torni a carregar la pàgina.', + + // DataTables translation + 'emptyTable' => 'No hi ha dades disponibles a la taula', + 'info' => 'Mostrant registres _START_ a _END_ d\'un total de _TOTAL_ registres', + 'infoEmpty' => 'Sense entrades', + 'infoFiltered' => '(filtrant de _MAX_ registres totals)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ elements per pàgina', + 'loadingRecords' => 'Carregant...', + 'processing' => 'Processant...', + 'search' => 'Cercar', + 'zeroRecords' => 'No s\'han trobat elements', + 'paginate' => [ + 'first' => 'Primer', + 'last' => 'Últim', + 'next' => 'Següent', + 'previous' => 'Anterior', + ], + 'aria' => [ + 'sortAscending' => ': activar per ordenar ascendentement', + 'sortDescending' => ': activar per ordenar descendentement', + ], + 'export' => [ + 'export' => 'Exportar', + 'copy' => 'Copiar', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => 'Imprimir', + 'column_visibility' => 'Visibilitat de columnes', + ], + + // global crud - errors + 'unauthorized_access' => 'Accés denegat - vostè no té els permisos necessaris per veure aquesta pàgina.', + 'please_fix' => 'Si us plau, corregeixi els següents errors:', + + // global crud - success / error notification bubbles + 'insert_success' => 'L\'element ha sigut afegit correctament.', + 'update_success' => 'L\'element ha sigut modificat correctament.', + + // CRUD reorder view + 'reorder' => 'Reordenar', + 'reorder_text' => 'Arrossegar i deixar anar per reordenar.', + 'reorder_success_title' => 'Fet', + 'reorder_success_message' => 'L\'ordre ha sigut desat.', + 'reorder_error_title' => 'Error', + 'reorder_error_message' => 'L\'ordre no s\'ha desat.', + + // CRUD yes/no + 'yes' => 'Sí', + 'no' => 'No', + + // CRUD filters navbar view + 'filters' => 'Filtres', + 'toggle_filters' => 'Alternar filtres', + 'remove_filters' => 'Eliminar filtres', + 'apply' => 'Aplicar', + + // filters language strings + 'today' => 'Avui', + 'yesterday' => 'Ahir', + 'last_7_days' => 'Darrers 7 dies', + 'last_30_days' => 'Darrers 30 dies', + 'this_month' => 'Aquest mes', + 'last_month' => 'El mes pasat', + 'custom_range' => 'Rang personalitzat', + 'weekLabel' => 'Setmana', + + // Fields + 'browse_uploads' => 'Pujar arxius', + 'select_all' => 'Seleccionar tot', + 'select_files' => 'Selecciona arxius', + 'select_file' => 'Selecciona un arxiu', + 'clear' => 'Netejar', + 'page_link' => 'Enllaç', + 'page_link_placeholder' => 'http://example.com/la-seva-pagina', + 'internal_link' => 'Enllaç intern', + 'internal_link_placeholder' => 'Slug intern. Exemple: \'admin/page\' (sense cometes) per \':url\'', + 'external_link' => 'Enllaç extern', + 'choose_file' => 'Triar arxiu', + 'new_item' => 'Nou element', + 'select_entry' => 'Selecciona un element', + 'select_entries' => 'Selecciona elements', + 'upload_multiple_files_selected' => 'Files selected. After save, they will show up above.', + + // Table field + 'table_cant_add' => 'No es pot afegir una nova :entity', + 'table_max_reached' => 'S\'ha arribat al nombre màxim de :max', + + // google_map + 'google_map_locate' => 'Obtenir la meva ubicació', + + // File manager + 'file_manager' => 'Administrador d\'arxius', + + // InlineCreateOperation + 'related_entry_created_success' => 'L\'element relacionat ha sigut creat i seleccionat.', + 'related_entry_created_error' => 'No s\'han pogut crear elements relacionats.', + 'inline_saving' => 'Guardant...', + + // returned when no translations found in select inputs + 'empty_translations' => '(buit)', + + // The pivot selector required validation message + 'pivot_selector_required_validation_message' => 'El camp dinàmic és obligatori.', +]; diff --git a/lang/vendor/backpack/ca/langfilemanager.php b/lang/vendor/backpack/ca/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/ca/langfilemanager.php @@ -0,0 +1,16 @@ + 'Registrace je uzavřena.', + 'no_email_column' => 'Uživatelé nemají asociované e-mail adresy.', + 'first_page_you_see' => 'První stránka viditelná po přihlášení', + 'login_status' => 'Stav přihlášení', + 'logged_in' => 'Byl jsi přihlášen!', + 'toggle_navigation' => 'Přepnout navigaci', + 'administration' => 'Administrace', + 'user' => 'Uživatel', + 'logout' => 'Odhlásit se', + 'login' => 'Přihlášení', + 'register' => 'Registrace', + 'name' => 'Jméno', + 'email_address' => 'E-mail', + 'password' => 'Heslo', + 'old_password' => 'Staré', + 'new_password' => 'Nové heslo', + 'confirm_password' => 'Heslo znovu', + 'remember_me' => 'Chci zůstat přihlášen', + 'forgot_your_password' => 'Zapomněli jste heslo?', + 'reset_password' => 'Resetovat heslo', + 'send_reset_link' => 'Zaslat žádost o reset hesla', + 'click_here_to_reset' => 'Klikni zde pro reset hesla', + 'change_password' => 'Změnit heslo', + 'unauthorized' => 'Neautorizovaný.', + 'dashboard' => 'Dashboard', + 'handcrafted_by' => 'Ručně vyrobil', + 'powered_by' => 'Běžíme na', + 'my_account' => 'Můj účet', + 'update_account_info' => 'Aktualizovat údaje', + 'save' => 'Uložit', + 'cancel' => 'Zrušit', + 'error' => 'Chyba', + 'success' => 'Úspěch', + 'warning' => 'Varování', + 'notice' => 'Oznámení', + 'old_password_incorrect' => 'Staré heslo je špatně vyplněno.', + 'password_dont_match' => 'Hesla neodpovídají.', + 'password_empty' => 'Některé z hesel není vyplněno.', + 'password_updated' => 'Heslo aktualizováno.', + 'account_updated' => 'Účet uložen.', + 'unknown_error' => 'Nastala neznámá chyba. Zkuste znovu nebo kontaktujte podporu.', + 'error_saving' => 'Chyba při ukládání. Zkuste znovu nebo kontaktujte podporu.', + 'session_expired_error' => 'Vaše relace vypršela. Přihlaste se prosím znovu ke svému účtu.', + 'welcome' => 'Vítejte!', + 'use_sidebar' => 'Použíjte boční menu k vytvoření, editaci nebo smazání záznamů.', + + 'password_reset' => [ + 'greeting' => 'Vítejte!', + 'subject' => 'Žádost o nové heslo', + 'line_1' => 'Obdržel jste tento e-mail, protože jsme obdrželi informaci o zapomenutém hesle.', + 'line_2' => 'Heslo změníte kliknutím na tlačítko', + 'button' => 'Změnit heslo', + 'notice' => 'Pokud jste nežádali o změnu hesla, není třeba pro žádné kroky. Jen se ujistěte, že máte silné heslo.', + ], + + 'step' => 'Krok', + 'confirm_email' => 'Potvrďte váš e-mail', + 'choose_new_password' => 'Vyberte nové heslo', + 'confirm_new_password' => 'Zopakujte nové heslo', + +]; diff --git a/lang/vendor/backpack/cs/crud.php b/lang/vendor/backpack/cs/crud.php new file mode 100644 index 0000000..1e03930 --- /dev/null +++ b/lang/vendor/backpack/cs/crud.php @@ -0,0 +1,147 @@ + 'Uložit a přidat nový', + 'save_action_save_and_edit' => 'Uložit a upravovat', + 'save_action_save_and_back' => 'Uložit a zpět', + 'save_action_changed_notification' => 'Výchozí chování po uložení bylo změněno.', + + // Create form + 'add' => 'Přidat', + 'back_to_all' => 'Zpět na všechny ', + 'cancel' => 'Zrušit', + 'add_a_new' => 'Přidat ', + + // Edit form + 'edit' => 'Upravit', + 'save' => 'Uložit', + + // Translatable models + 'edit_translations' => 'UPRAVIT PŘEKLADY', + 'language' => 'Jazyk', + + // CRUD table view + 'all' => 'Veškeré ', + 'in_the_database' => 'v databázi', + 'list' => 'Seznam', + 'actions' => 'Akce', + 'preview' => 'Zobrazit', + 'delete' => 'Smazat', + 'admin' => 'Admin', + 'details_row' => 'Toto je řádek podrobností. Změňte jej prosím.', + 'details_row_loading_error' => 'Při načítání podrobností došlo k chybě. Zkuste to prosím znovu.', + + // Confirmation messages and bubbles + 'delete_confirm' => 'Opravdu chcete smazat tuto položku?', + 'delete_confirmation_title' => 'Položka smazána', + 'delete_confirmation_message' => 'Položka byla úspěšně smazána.', + 'delete_confirmation_not_title' => 'Položka nebyla smazána', + 'delete_confirmation_not_message' => 'Došlo k chybě. Vaše položka pravděpodobně nebyla smazána.', + 'delete_confirmation_not_deleted_title' => 'Položka nebyla smazána', + 'delete_confirmation_not_deleted_message' => 'Nic se nestalo. Váše položka je v bezpečí.', + + // Bulk actions + 'bulk_no_entries_selected_title' => 'Nebyly vybrány žádné položky', + 'bulk_no_entries_selected_message' => 'Vyberte jednu nebo více položek, abyste na nich provedli hromadnou akci.', + + // Bulk confirmation + 'bulk_delete_are_you_sure' => 'Opravdu chcete smazat těchto :number položek?', + 'bulk_delete_sucess_title' => 'Položky smazány', + 'bulk_delete_sucess_message' => ' položek bylo smazáno', + 'bulk_delete_error_title' => 'Smazání se nezdařilo', + 'bulk_delete_error_message' => 'Nelze smazat jednu nebo více položek.', + + // Ajax errors + 'ajax_error_title' => 'Chyba', + 'ajax_error_text' => 'Chyba při načítání stránky. Obnovte stránku.', + + // DataTables translation + 'emptyTable' => 'V tabulce nejsou k dispozici žádná data', + 'info' => 'Zobrazeno _START_ až _END_ z celkových _TOTAL_ záznamů', + 'infoEmpty' => '', + 'infoFiltered' => '(filtrováno z _MAX_ celkových záznamů)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ záznamů na stránku', + 'loadingRecords' => 'Načítání...', + 'processing' => 'Zpracování...', + 'search' => 'Hledat', + 'zeroRecords' => 'Nebyly nalezeny žádné odpovídající záznamy', + 'paginate' => [ + 'first' => 'První', + 'last' => 'Poslední', + 'next' => 'Další', + 'previous' => 'Předchozí', + ], + 'aria' => [ + 'sortAscending' => ': aktivovat třídění sloupců vzestupně', + 'sortDescending' => ': aktivovat třídění sloupců sestupně', + ], + 'export' => [ + 'export' => 'Exportovat', + 'copy' => 'Kopírovat', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => 'Tisknout', + 'column_visibility' => 'Zobrazené sloupce', + ], + + // global crud - errors + 'unauthorized_access' => 'Neautorizovaný pristup - pro zobrazení této stránky nemáte potrebna opravneni.', + 'please_fix' => 'Prosím opravte následující chyby:', + + // global crud - success / error notification bubbles + 'insert_success' => 'Položka byla úspěšně přidána.', + 'update_success' => 'Položka byla úspěšně upravena.', + + // CRUD reorder view + 'reorder' => 'Změna pořadí pro', + 'reorder_text' => 'Použijte drag & drop pro změnu pořadí', + 'reorder_success_title' => 'Uloženo', + 'reorder_success_message' => 'Vaše úpravy byly uloženy.', + 'reorder_error_title' => 'Chyba', + 'reorder_error_message' => 'Vaše úpravy nebyly uloženy.', + + // CRUD yes/no + 'yes' => 'Ano', + 'no' => 'Ne', + + // CRUD filters navbar view + 'filters' => 'Filtry', + 'toggle_filters' => 'Přepnout filtry', + 'remove_filters' => 'Odstranit filtry', + + // Fields + 'browse_uploads' => 'Procházet soubory', + 'select_all' => 'Vybrat vše', + 'select_files' => 'Vybrat soubory', + 'select_file' => 'Vybrat soubor', + 'clear' => 'Vyčistit', + 'page_link' => 'Odkaz na stránku', + 'page_link_placeholder' => 'http://example.com/your-desired-page', + 'internal_link' => 'Interní link', + 'internal_link_placeholder' => 'Interní slug. např.: \'admin/page\' (bez uvozovek) pro \':url\'', + 'external_link' => 'Externí odkaz', + 'choose_file' => 'Vybrat soubor', + + //Table field + 'table_cant_add' => 'Nelze přidat nové :entity', + 'table_max_reached' => 'Maximální počet :max byl dosáhnut', + + // File manager + 'file_manager' => 'Správce souborů', +]; diff --git a/lang/vendor/backpack/cs/langfilemanager.php b/lang/vendor/backpack/cs/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/cs/langfilemanager.php @@ -0,0 +1,16 @@ + 'Oprettelse af nye brugere er aflåst.', + 'first_page_you_see' => 'Den første side du ser efter login', + 'login_status' => 'Login status', + 'logged_in' => 'Du er logget in!', + 'toggle_navigation' => 'vis/skjul menu', + 'administration' => 'ADMINISTRATION', + 'user' => 'BRUGER', + 'logout' => 'Log ud', + 'login' => 'Log ind', + 'register' => 'Opret', + 'name' => 'Navn', + 'email_address' => 'E-mail adresse', + 'password' => 'adgangskode', + 'confirm_password' => 'bekræft adgangskode', + 'remember_me' => 'husk mig', + 'forgot_your_password' => 'Glemt adgangskode?', + 'reset_password' => 'nulstil adgangskode', + 'send_reset_link' => 'Send nulstilning af adgangskode', + 'click_here_to_reset' => 'Bekræft nulstilning af adgangskode', + 'unauthorized' => 'Ingen adgang.', + 'dashboard' => 'Forside', + 'handcrafted_by' => 'håndlavet af', + 'powered_by' => 'bygget på', +]; diff --git a/lang/vendor/backpack/da-DK/crud.php b/lang/vendor/backpack/da-DK/crud.php new file mode 100644 index 0000000..0cba104 --- /dev/null +++ b/lang/vendor/backpack/da-DK/crud.php @@ -0,0 +1,119 @@ + + | + */ + + // Forms + 'save_action_save_and_new' => 'Gem og nyt emne', + 'save_action_save_and_edit' => 'Gem og rediger dette emne', + 'save_action_save_and_back' => 'Gem og tilbage til listevisning', + 'save_action_changed_notification' => 'standard handling efter gem er blevet ændret.', + + // Create form + 'add' => 'tilføj', + 'back_to_all' => 'tilbage til listevisning', + 'cancel' => 'annuller', + 'add_a_new' => 'tilføj ny ', + + // Edit form + 'edit' => 'Rediger', + 'save' => 'Gem', + + // Translatable models + 'edit_translations' => 'rediger oversættelser', + 'language' => 'Sprog', + + // CRUD table view + 'all' => 'Alle ', + 'in_the_database' => 'i databasen', + 'list' => 'Liste', + 'actions' => 'Handlinger', + 'preview' => 'Forhåndsvisning', + 'delete' => 'Slet', + 'admin' => 'Administrator', + 'details_row' => 'dette er detajle rækken. Ændrer som du har lyst.', + 'details_row_loading_error' => 'Der opstod en fejl under indlæsningen af detajlerne. Prøv igen.', + + // Confirmation messages and bubbles + 'delete_confirm' => 'Er du sikker på at du vil slette dette emne? ', + 'delete_confirmation_title' => 'Emne slettet', + 'delete_confirmation_message' => 'Emnet er blevet slettet successfuldt.', + 'delete_confirmation_not_title' => 'IKKE slettet', + 'delete_confirmation_not_message' => 'Der opstod en fejl. Dit emne er måske ikke fjernet.', + 'delete_confirmation_not_deleted_title' => 'ikke fjernet', + 'delete_confirmation_not_deleted_message' => 'Der skete intet. Dit emne er i god behold', + + // DataTables translation + 'emptyTable' => 'Ingen data tilgængelig', + 'info' => 'Viser fra _START_ til _END_ ud af _TOTAL_ emner', + 'infoEmpty' => '', + 'infoFiltered' => '(filtreret efter max _MAX_ emner)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ felter pr side', + 'loadingRecords' => 'Indlæser...', + 'processing' => 'Arbejder...', + 'search' => 'Søg', + 'zeroRecords' => 'Ingen emner blev fundet', + 'paginate' => [ + 'first' => 'Første', + 'last' => 'Sidste', + 'next' => 'Næste', + 'previous' => 'Tidligere', + ], + 'aria' => [ + 'sortAscending' => ': aktiver for at sortere kolonen efter stigende rækkefølge', + 'sortDescending' => ': aktiver for at sortere kolonen efter faldende rækkefølge', + ], + + // global crud - errors + 'unauthorized_access' => 'Ingen adgang - Du har ikke de nødvendige rettigheder for at se denne side.', + 'please_fix' => 'Ret venligst følgende fejl:', + + // global crud - success / error notification bubbles + 'insert_success' => 'emnet er tilføjet.', + 'update_success' => 'emner er ændret.', + + // CRUD reorder view + 'reorder' => 'skift rækkefølge', + 'reorder_text' => 'træk og slip for at skifte rækkefølge.', + 'reorder_success_title' => 'færdig', + 'reorder_success_message' => 'rækkefølgen er ændret.', + 'reorder_error_title' => 'fejl', + 'reorder_error_message' => 'rækkefølgen blev ikke gemt.', + + // CRUD yes/no + 'yes' => 'Ja', + 'no' => 'Nej', + + // CRUD filters navbar view + 'filters' => 'Filtre', + 'toggle_filters' => 'vis/skjul filtre', + 'remove_filters' => 'fjern filtre', + + // Fields + 'browse_uploads' => 'Se uploadede filer', + 'clear' => 'fjern', + 'page_link' => 'Side link', + 'page_link_placeholder' => 'http://eksempel.dk/din-oenskede-side', + 'internal_link' => 'Internt link', + 'internal_link_placeholder' => 'Interne slug. Ex: \'admin/side\' (no quotes) for \':url\'', + 'external_link' => 'Eksternt link', + 'choose_file' => 'Vælg fil', + + //Table field + 'table_cant_add' => 'Kan ikke tilføje ny :entity', + 'table_max_reached' => 'Maximum antal :max er nået', + + // File manager + 'file_manager' => 'Stifinder', +]; diff --git a/lang/vendor/backpack/da-DK/langfilemanager.php b/lang/vendor/backpack/da-DK/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/da-DK/langfilemanager.php @@ -0,0 +1,16 @@ + 'Oprettelse af nye brugere er aflåst.', + 'first_page_you_see' => 'Den første side du ser efter login', + 'login_status' => 'Login status', + 'logged_in' => 'Du er logget in!', + 'toggle_navigation' => 'vis/skjul menu', + 'administration' => 'ADMINISTRATION', + 'user' => 'BRUGER', + 'logout' => 'Log ud', + 'login' => 'Log ind', + 'register' => 'Opret', + 'name' => 'Navn', + 'email_address' => 'E-mail adresse', + 'password' => 'adgangskode', + 'confirm_password' => 'bekræft adgangskode', + 'remember_me' => 'husk mig', + 'forgot_your_password' => 'Glemt adgangskode?', + 'reset_password' => 'nulstil adgangskode', + 'send_reset_link' => 'Send nulstilning af adgangskode', + 'click_here_to_reset' => 'Bekræft nulstilning af adgangskode', + 'unauthorized' => 'Ingen adgang.', + 'dashboard' => 'Forside', + 'handcrafted_by' => 'håndlavet af', + 'powered_by' => 'bygget på', +]; diff --git a/lang/vendor/backpack/da_DK/crud.php b/lang/vendor/backpack/da_DK/crud.php new file mode 100644 index 0000000..0cba104 --- /dev/null +++ b/lang/vendor/backpack/da_DK/crud.php @@ -0,0 +1,119 @@ + + | + */ + + // Forms + 'save_action_save_and_new' => 'Gem og nyt emne', + 'save_action_save_and_edit' => 'Gem og rediger dette emne', + 'save_action_save_and_back' => 'Gem og tilbage til listevisning', + 'save_action_changed_notification' => 'standard handling efter gem er blevet ændret.', + + // Create form + 'add' => 'tilføj', + 'back_to_all' => 'tilbage til listevisning', + 'cancel' => 'annuller', + 'add_a_new' => 'tilføj ny ', + + // Edit form + 'edit' => 'Rediger', + 'save' => 'Gem', + + // Translatable models + 'edit_translations' => 'rediger oversættelser', + 'language' => 'Sprog', + + // CRUD table view + 'all' => 'Alle ', + 'in_the_database' => 'i databasen', + 'list' => 'Liste', + 'actions' => 'Handlinger', + 'preview' => 'Forhåndsvisning', + 'delete' => 'Slet', + 'admin' => 'Administrator', + 'details_row' => 'dette er detajle rækken. Ændrer som du har lyst.', + 'details_row_loading_error' => 'Der opstod en fejl under indlæsningen af detajlerne. Prøv igen.', + + // Confirmation messages and bubbles + 'delete_confirm' => 'Er du sikker på at du vil slette dette emne? ', + 'delete_confirmation_title' => 'Emne slettet', + 'delete_confirmation_message' => 'Emnet er blevet slettet successfuldt.', + 'delete_confirmation_not_title' => 'IKKE slettet', + 'delete_confirmation_not_message' => 'Der opstod en fejl. Dit emne er måske ikke fjernet.', + 'delete_confirmation_not_deleted_title' => 'ikke fjernet', + 'delete_confirmation_not_deleted_message' => 'Der skete intet. Dit emne er i god behold', + + // DataTables translation + 'emptyTable' => 'Ingen data tilgængelig', + 'info' => 'Viser fra _START_ til _END_ ud af _TOTAL_ emner', + 'infoEmpty' => '', + 'infoFiltered' => '(filtreret efter max _MAX_ emner)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ felter pr side', + 'loadingRecords' => 'Indlæser...', + 'processing' => 'Arbejder...', + 'search' => 'Søg', + 'zeroRecords' => 'Ingen emner blev fundet', + 'paginate' => [ + 'first' => 'Første', + 'last' => 'Sidste', + 'next' => 'Næste', + 'previous' => 'Tidligere', + ], + 'aria' => [ + 'sortAscending' => ': aktiver for at sortere kolonen efter stigende rækkefølge', + 'sortDescending' => ': aktiver for at sortere kolonen efter faldende rækkefølge', + ], + + // global crud - errors + 'unauthorized_access' => 'Ingen adgang - Du har ikke de nødvendige rettigheder for at se denne side.', + 'please_fix' => 'Ret venligst følgende fejl:', + + // global crud - success / error notification bubbles + 'insert_success' => 'emnet er tilføjet.', + 'update_success' => 'emner er ændret.', + + // CRUD reorder view + 'reorder' => 'skift rækkefølge', + 'reorder_text' => 'træk og slip for at skifte rækkefølge.', + 'reorder_success_title' => 'færdig', + 'reorder_success_message' => 'rækkefølgen er ændret.', + 'reorder_error_title' => 'fejl', + 'reorder_error_message' => 'rækkefølgen blev ikke gemt.', + + // CRUD yes/no + 'yes' => 'Ja', + 'no' => 'Nej', + + // CRUD filters navbar view + 'filters' => 'Filtre', + 'toggle_filters' => 'vis/skjul filtre', + 'remove_filters' => 'fjern filtre', + + // Fields + 'browse_uploads' => 'Se uploadede filer', + 'clear' => 'fjern', + 'page_link' => 'Side link', + 'page_link_placeholder' => 'http://eksempel.dk/din-oenskede-side', + 'internal_link' => 'Internt link', + 'internal_link_placeholder' => 'Interne slug. Ex: \'admin/side\' (no quotes) for \':url\'', + 'external_link' => 'Eksternt link', + 'choose_file' => 'Vælg fil', + + //Table field + 'table_cant_add' => 'Kan ikke tilføje ny :entity', + 'table_max_reached' => 'Maximum antal :max er nået', + + // File manager + 'file_manager' => 'Stifinder', +]; diff --git a/lang/vendor/backpack/da_DK/langfilemanager.php b/lang/vendor/backpack/da_DK/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/da_DK/langfilemanager.php @@ -0,0 +1,16 @@ + 'Die Registrierung ist geschlossen.', + 'first_page_you_see' => 'Die erste Seite, welche Sie nach dem Login sehen', + 'login_status' => 'Login-Status', + 'logged_in' => 'Sie sind eingeloggt!', + 'toggle_navigation' => 'Navigation ein-/ausblenden', + 'administration' => 'ADMINISTRATION', + 'user' => 'BENUTZER', + 'logout' => 'Logout', + 'login' => 'Login', + 'register' => 'Registrieren', + 'name' => 'Name', + 'email_address' => 'E-Mail-Adresse', + 'password' => 'Passwort', + 'old_password' => 'Altes Passwort', + 'new_password' => 'Neues Passwort', + 'confirm_password' => 'Passwort bestätigen', + 'remember_me' => 'Automatisch einloggen', + 'forgot_your_password' => 'Passwort vergessen?', + 'reset_password' => 'Passwort zurücksetzen', + 'send_reset_link' => 'Link senden, um Passwort zurückzusetzen', + 'click_here_to_reset' => 'Klicken Sie hier um Ihr Passwort zurückzusetzen', + 'change_password' => 'Passwort ändern', + 'unauthorized' => 'Nicht Autorisiert', + 'dashboard' => 'Übersicht', + 'handcrafted_by' => 'Handgemacht von', + 'powered_by' => 'Erstellt mit', + 'my_account' => 'Mein Account', + 'update_account_info' => 'Account Info aktualisieren', + 'save' => 'Speichern', + 'cancel' => 'Abbrechen', + 'error' => 'Fehler', + 'warning' => 'Achtung', + 'success' => 'Erfolg', + 'old_password_incorrect' => 'Altes Passwort ist falsch.', + 'password_dont_match' => 'Passwörter stimmen nicht überein.', + 'password_empty' => 'Bitte beide Passwort-Felder ausfüllen.', + 'password_updated' => 'Passwort aktualisiert.', + 'account_updated' => 'Account aktualisiert.', + 'unknown_error' => 'Ein unbekannter Fehler ist aufgetreten. Bitte erneut versuchen', + 'error_saving' => 'Fehler beim Speichern. Bitte erneut probieren.', + 'session_expired_error' => 'Deine Sitzung ist abgelaufen. Bitte loggen Sie sich erneut in Ihr Konto ein.', + 'welcome' => 'Willkommen!', + 'use_sidebar' => 'Nutze die Seitenleiste links, um Inhalte zu erstellen oder zu editieren.', + + 'password_reset' => [ + 'greeting' => 'Hallo!', + 'subject' => 'Passwort zurücksetzen Information', + 'line_1' => 'Du erhälst diese E-Mail, da wir eine Anfrage zum Zurücksetzen des Passworts für deinen Account erhalten haben.', + 'line_2' => 'Klicke auf den folgenden Button, um dein Passwort zurückzusetzen:', + 'button' => 'Passwort zurücksetzen', + 'notice' => 'Wenn du kein Zurücksetzen des Passworts beauftragt hast, ist keine weitere Aktion notwendig.', + ], + + 'step' => 'Schritt', + 'confirm_email' => 'E-Mail bestätigen', + 'choose_new_password' => 'Wähle ein neues Passwort', + 'confirm_new_password' => 'Bestätige das neue Passwort', + 'throttled' => 'Du hast kürzlich bereits ein Zurücksetzen des Passworts beantragt. Bitte prüfe deine E-Mails. Solltest du keine E-Mail erhalten haben, versuche es später bitte erneut.', + 'throttled_request' => 'Du hast das Limit an Versuchen erreicht. Bitte warte ein paar Minuten und versuche es erneut.', + + 'verify_email' => [ + 'email_verification' => 'E-Mail-Verifizierung', + 'verification_link_sent' => 'Ein Verifizierungslink wurde an deine E-Mail-Adresse gesendet.', + 'email_verification_required' => 'Bitte verifiziere deine E-Mail-Adresse, indem du auf den Link klickst, den wir dir geschickt haben.', + 'resend_verification_link' => 'Link erneut senden', + ], +]; diff --git a/lang/vendor/backpack/de/crud.php b/lang/vendor/backpack/de/crud.php new file mode 100644 index 0000000..8b4bb2e --- /dev/null +++ b/lang/vendor/backpack/de/crud.php @@ -0,0 +1,188 @@ + 'Speichern und neu', + 'save_action_save_and_edit' => 'Speichern und bearbeiten', + 'save_action_save_and_back' => 'Speichern und zurück', + 'save_action_save_and_preview' => 'Speichern & Vorschau', + 'save_action_changed_notification' => 'Standardverhalten nach dem Speichern wurde geändert.', + + // Create form + 'add' => 'Anlegen: ', + 'back_to_all' => 'Zurück zur Übersicht ', + 'cancel' => 'Abbrechen', + 'add_a_new' => 'Neu anlegen: ', + + // Edit form + 'edit' => 'Bearbeiten', + 'save' => 'Speichern', + + // Translatable models + 'edit_translations' => 'ÜBERSETZUNG BEARBEITEN', + 'language' => 'Sprache', + + // CRUD table view + 'all' => 'Alle ', + 'in_the_database' => 'in der Datenbank', + 'list' => 'Liste', + 'reset' => 'Zurücksetzen', + 'actions' => 'Aktionen', + 'preview' => 'Vorschau', + 'delete' => 'Löschen', + 'admin' => 'Admin', + 'details_row' => 'Diese Zeile zeigt die Details und kann nach Belieben geändert werden.', + 'details_row_loading_error' => 'Beim Laden der Details ist ein Fehler aufgetreten. Bitte versuche es noch einmal.', + 'clone' => 'Duplizieren', + 'clone_success' => 'Eintrag dupliziert
Ein neuer Eintrag wurde mit den selben Informationen erstellt.', + 'clone_failure' => 'Duplizieren fehlgeschlagen
Der neue Eintrag konnte nicht erstellt werden. Bitte versuche es erneut.', + + // Confirmation messages and bubbles + 'delete_confirm' => 'Soll dieser Eintrag wirklich gelöscht werden?', + 'delete_confirmation_title' => 'Eintrag gelöscht', + 'delete_confirmation_message' => 'Der Eintrag wurde erfolgreich gelöscht.', + 'delete_confirmation_not_title' => 'NICHT gelöscht', + 'delete_confirmation_not_message' => 'Ein Fehler ist aufgetreten. Der Eintrag wurde möglicherweise nicht gelöscht.', + 'delete_confirmation_not_deleted_title' => 'Nicht gelöscht', + 'delete_confirmation_not_deleted_message' => 'Nichts passiert. Der Eintrag wurde nicht gelöscht. Bitte versuche es erneut.', + + // Bulk actions + 'bulk_no_entries_selected_title' => 'Keine Einträge ausgewählt', + 'bulk_no_entries_selected_message' => 'Bitte wählen Sie einen oder mehrere Einträge aus, um eine Sammelaktion für diese durchzuführen.', + + // Bulk delete + 'bulk_delete_are_you_sure' => 'Sind Sie sicher, dass Sie diese :number Einträge löschen wollen?', + 'bulk_delete_sucess_title' => 'Einträge gelöscht', + 'bulk_delete_sucess_message' => ' Einträge wurden gelöscht.', + 'bulk_delete_error_title' => 'Löschen fehlgeschlagen', + 'bulk_delete_error_message' => 'Ein oder mehrere Einträge konnten nicht gelöscht werden', + + // Bulk clone + 'bulk_clone_are_you_sure' => 'Sind Sie sicher, dass Sie diese :number Einträge dupliziert wollen?', + 'bulk_clone_sucess_title' => 'Einträge dupliziert', + 'bulk_clone_sucess_message' => ' Einträge wurden dupliziert.', + 'bulk_clone_error_title' => 'Duplizierung fehlgeschlagen', + 'bulk_clone_error_message' => 'Ein oder mehrere Einträge konnten nicht dupliziert werden. Bitte versuche es erneut.', + + // Ajax errors + 'ajax_error_title' => 'Fehler', + 'ajax_error_text' => 'Fehler beim Laden der Seite. Bitte aktualisieren Sie die Seite.', + + // DataTables translation + 'emptyTable' => 'Keine Einträge vorhanden', + 'info' => 'Zeigt _START_ bis _END_ von _TOTAL_ Einträgen', + 'infoEmpty' => '', + 'infoFiltered' => '(gefiltert von insgesamt _MAX_ Einträgen)', + 'infoPostFix' => '.', + 'thousands' => '.', + 'lengthMenu' => '_MENU_ Einträge pro Seite', + 'loadingRecords' => 'Laden...', + 'processing' => 'Verarbeiten...', + 'search' => 'Suchen', + 'zeroRecords' => 'Keine passenden Einträge gefunden', + 'paginate' => [ + 'first' => 'Erste', + 'last' => 'Letzte', + 'next' => 'Nächste', + 'previous' => 'Vorherige', + ], + 'aria' => [ + 'sortAscending' => ': aktivieren um aufsteigend zu Sortieren', + 'sortDescending' => ': aktivieren um absteigend zu Sortieren', + ], + 'export' => [ + 'export' => 'Export', + 'copy' => 'Kopieren', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => 'Drucken', + 'column_visibility' => 'Sichtbarkeit der Spalte', + ], + + // global crud - errors + 'unauthorized_access' => 'Unbefugter Zugriff - Sie haben nicht die notwendigen Rechte um diese Seite anzuzeigen.', + 'please_fix' => 'Bitte beheben Sie die folgenden Fehler:', + + // global crud - success / error notification bubbles + 'insert_success' => 'Der Eintrag wurde erfolgreich angelegt.', + 'update_success' => 'Der Eintrag wurde erfolgreich geändert.', + + // CRUD reorder view + 'reorder' => 'Sortiere', + 'reorder_text' => 'Zum Ändern der Reihenfolge Einträge verschieben. (Drag&Drop)', + 'reorder_success_title' => 'Fertig', + 'reorder_success_message' => 'Die Reihenfolge wurde gespeichert', + 'reorder_error_title' => 'Fehler', + 'reorder_error_message' => 'Die Reihenfolge konnte nicht gespeichert werden', + + // CRUD yes/no + 'yes' => 'Ja', + 'no' => 'Nein', + + // CRUD filters navbar view + 'filters' => 'Filter', + 'toggle_filters' => 'Filter umschalten', + 'remove_filters' => 'Filter entfernen', + 'apply' => 'Anwenden', + + //filters language strings + 'today' => 'Heute', + 'yesterday' => 'Gestern', + 'last_7_days' => 'Letzte 7 Tage', + 'last_30_days' => 'Letzte 30 Tage', + 'this_month' => 'Dieser Monat', + 'last_month' => 'Letzter Monat', + 'custom_range' => 'Eigene Auswahl', + 'weekLabel' => 'W', + + // Fields + 'browse_uploads' => 'Uploads durchsuchen', + 'select_all' => 'Alle auswählen', + 'select_files' => 'Dateien auswählen', + 'select_file' => 'Datei auswählen', + 'clear' => 'Löschen', + 'page_link' => 'Link zur Seite', + 'page_link_placeholder' => 'http://example.com/ihre-gewuenschte-seite', + 'internal_link' => 'Interner Link', + 'internal_link_placeholder' => 'URL-sicherer Name ("Slug"). Bsp: \'admin/page\' (ohne Anführungszeichen) für \':url\'', + 'external_link' => 'Externer Link', + 'choose_file' => 'Datei auswählen', + 'new_item' => 'Neuer Eintrag', + 'select_entry' => 'Eintrag auswählen', + 'select_entries' => 'Einträge auswählen', + 'upload_multiple_files_selected' => 'Dateien ausgewählt. Nach dem Speichern werden sie oben angezeigt.', + + //Table field + 'table_cant_add' => 'Kann :entity nicht hinzufügen', + 'table_max_reached' => 'Maximale Anzahl von :max erreicht', + + // google_map + 'google_map_locate' => 'Meinen Standort ermitteln', + + // File manager + 'file_manager' => 'Datei-Manager', + + // InlineCreateOperation + 'related_entry_created_success' => 'Der zugehörige Eintrag wurde erstellt und ausgewählt.', + 'related_entry_created_error' => 'Es konnte kein verwandter Eintrag erstellt werden.', + 'inline_saving' => 'Speichern...', + + // returned when no translations found in select inputs + 'empty_translations' => '(empty)', + + // The pivot selector required validation message + 'pivot_selector_required_validation_message' => 'Das Pivot-Feld ist erforderlich.', +]; diff --git a/lang/vendor/backpack/de/langfilemanager.php b/lang/vendor/backpack/de/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/de/langfilemanager.php @@ -0,0 +1,16 @@ + 'Οι εγγραφές είναι κλειστές.', + 'first_page_you_see' => 'Η πρώτη σελίδα που βλέπετε μετά την είσοδο', + 'login_status' => 'Κατάσταση σύνδεσης', + 'logged_in' => 'Είστε συνδεδεμένος/η!', + 'toggle_navigation' => 'Εναλλαγή Πλοήγησης', + 'administration' => 'ΔΙΑΧΕΙΡΗΣΗ', + 'user' => 'ΧΡΗΣΤΗΣ', + 'logout' => 'Αποσύνδεση', + 'login' => 'Είσοδος', + 'register' => 'Εγγραφή', + 'name' => 'Όνομα', + 'email_address' => 'Διεύθυνση E-Mail', + 'password' => 'Κωδικός', + 'old_password' => 'Παλιός Κωδικός', + 'new_password' => 'Νέος Κωδικός', + 'confirm_password' => 'Επιβεβαίωση Κωδικού', + 'remember_me' => 'Να με θυμάσαι', + 'forgot_your_password' => 'Ξεχάσατε τον κωδικό σας;', + 'reset_password' => 'Επαναφορά Κωδικού', + 'send_reset_link' => 'Αποστολή Συνδέσμου Επαναφοράς Κωδικού', + 'click_here_to_reset' => 'Πατήστε εδώ για να επαναφέρετε τον κωδικό σας', + 'change_password' => 'Αλλαγή Κωδικού', + 'unauthorized' => 'Χωρίς εξουσιοδότηση.', + 'dashboard' => 'Πίνακας Ελέγχου', + 'handcrafted_by' => 'Κατασκευάστηκε από', + 'powered_by' => 'Υποστηρίζεται από', + 'my_account' => 'Λογαριασμός', + 'update_account_info' => 'Ενημέρωση Λογαριασμού', + 'save' => 'Αποθήκευση', + 'cancel' => 'Ακύρωση', + 'error' => 'Σφάλμα', + 'success' => 'Επιτυχία', + 'old_password_incorrect' => 'Ο παλιός κωδικός είναι λάθος.', + 'password_dont_match' => 'Οι κωδικοί δεν ταιριάζουν.', + 'password_empty' => 'Και τα δύο πεδία κωδικών πρέπει να συμπληρωθούν.', + 'password_updated' => 'Ο κωδικός ανανεώθηκε.', + 'account_updated' => 'Ο λογαριασμός ανανεώθηκε επιτυχώς.', + 'unknown_error' => 'Προέκυψε κάποιο σφάλμα. Παρακαλώ προσπαθήστε ξανά.', + 'error_saving' => 'Σφάλμα κατά την αποθήκευση. Παρακαλώ προσπαθήστε ξανά.', + 'session_expired_error' => 'Η συνεδρία σας έχει λήξει. Παρακαλούμε συνδεθείτε ξανά στο λογαριασμό σας.', +]; diff --git a/lang/vendor/backpack/el/crud.php b/lang/vendor/backpack/el/crud.php new file mode 100644 index 0000000..b843bb1 --- /dev/null +++ b/lang/vendor/backpack/el/crud.php @@ -0,0 +1,115 @@ + 'Αποθήκευση και εισαγωγή νέου', + 'save_action_save_and_edit' => 'Αποθήκευση και επεξεργασία', + 'save_action_save_and_back' => 'Αποθήκευση και επιστροφή', + 'save_action_changed_notification' => 'Η προκαθορισμένη συμπεριφορά μετά την αποθήκευση έχει αλλάξει.', + + // Create form + 'add' => 'Προσθήκη', + 'back_to_all' => 'Επιστροφή στη λίστα ', + 'cancel' => 'Ακύρωση', + 'add_a_new' => 'Προσθήκη ', + + // Create form - advanced options + 'after_saving' => 'Μετά την αποθήκευση', + 'go_to_the_table_view' => 'επιστροφή στον πίνακα', + 'let_me_add_another_item' => 'προσθήκη νέου αντικειμένου', + 'edit_the_new_item' => 'τροποποίηση νέου αντικειμένου', + + // Edit form + 'edit' => 'Τροποποίηση', + 'save' => 'Αποθήκευση', + + // CRUD table view + 'all' => '', + 'in_the_database' => 'της βάσης δεδομένων', + 'list' => 'Λίστα', + 'actions' => 'Ενέργειες', + 'preview' => 'Προεπισκόπηση', + 'delete' => 'Διαγραφή', + 'admin' => 'Διαχειριστής', + 'details_row' => 'Αυτή είναι η γραμμή λεπτομερειών. Τροποποιήστε την όπως επιθυμείτε.', + 'details_row_loading_error' => 'Υπήρξε ένα σφάλμα κατά τη φόρτωση λεπτομερειών. Παρακαλώ δοκιμάστε ξανά.', + + // Confirmation messages and bubbles + 'delete_confirm' => 'Είστε σίγουρος/η πως θέλετε να διαγράψετε αυτό το αντικείμενο?', + 'delete_confirmation_title' => 'Το αντικείμενο διαγράφηκε', + 'delete_confirmation_message' => 'Το αντικείμενο διαγράφηκε επιτυχώς.', + 'delete_confirmation_not_title' => 'ΔΕΝ διαγράφηκε', + 'delete_confirmation_not_message' => 'Υπήρξε σφάλμα. Το αντικείμενο ενδέχεται να μην έχει διαγραφεί.', + 'delete_confirmation_not_deleted_title' => 'Δεν διαγράφηκε', + 'delete_confirmation_not_deleted_message' => 'Δεν έγινε τίποτα. Το αντικείμενό σας είναι ασφαλές.', + + // DataTables translation + 'emptyTable' => 'Δεν υπάρχουν διαθέσιμα δεδομένα στον πίνακα', + 'info' => 'Εμφάνιση _START_ έως _END_ από _TOTAL_ εγγραφές', + 'infoEmpty' => '', + 'infoFiltered' => '(Επιστράφηκαν από _MAX_ συνολικές εγγραφές)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ εγγραφές ανά σελίδα', + 'loadingRecords' => 'Loading...', + 'processing' => 'Processing...', + 'search' => 'Αναζήτηση', + 'zeroRecords' => 'Δεν βρέθηκε καμία σχετική εγγραφή', + 'paginate' => [ + 'first' => 'Πρώτη', + 'last' => 'Τελευταία', + 'next' => 'Επόμενη', + 'previous' => 'Προηγούμενη', + ], + 'aria' => [ + 'sortAscending' => ': ενεργοποίηση για αύξουσα ταξινόμηση', + 'sortDescending' => ': ενεργοποίηση για φθίνουσα ταξινόμηση', + ], + + // global crud - errors + 'unauthorized_access' => 'Μη εξουσιοδοτημένη πρόσβαση - δεν έχετε την απαιτούμενη εξουσιοδότηση για να δείτε τη σελίδα αυτή.', + 'please_fix' => 'Παρακαλώ διορθώστε τα παρακάτω σφάλματα:', + + // global crud - success / error notification bubbles + 'insert_success' => 'Το αντικείμενο προστέθηκε με επιτυχία.', + 'update_success' => 'Το αντικείμενο τροποποιήθηκε με επιτυχία.', + + // CRUD reorder view + 'reorder' => 'Αλλαγή σειράς εμφάνισης', + 'reorder_text' => 'Χρησιμοποιήστε drag&drop για αλλαγή σειράς εμφάνισης.', + 'reorder_success_title' => 'Πραγματοποιήθηκε', + 'reorder_success_message' => 'Η σειρά εμφάνισης έχει αποθηκευτεί.', + 'reorder_error_title' => 'Σφάλμα', + 'reorder_error_message' => 'Η σειρά εμφάνισης δεν έχει αποθηκευτεί.', + + // CRUD yes/no + 'yes' => 'Ναι', + 'no' => 'Όχι', + + // Fields + 'browse_uploads' => 'Αναζήτηση μεταφορτωμένων αρχείων', + 'clear' => 'Εκκαθάριση', + 'page_link' => 'Σύνδεσμος Σελίδας', + 'page_link_placeholder' => 'http://example.com/your-desired-page', + 'internal_link' => 'Εσωτερικός σύνδεσμος', + 'internal_link_placeholder' => 'Εσωτερικό slug. πχ: \'admin/page\' (χωρίς εισαγωγικά) για \':url\'', + 'external_link' => 'Εξωτερικός σύνδεσμος', + 'choose_file' => 'Επιλογή αρχείου', + + //Table field + 'table_cant_add' => 'Δεν μπορεί να προστεθεί νέο/α :entity', + 'table_max_reached' => 'Μέγιστο πλήθος από :max reached', + +]; diff --git a/lang/vendor/backpack/el/langfilemanager.php b/lang/vendor/backpack/el/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/el/langfilemanager.php @@ -0,0 +1,16 @@ + 'Registration is closed.', + 'no_email_column' => 'Users do not have an associated email address.', + 'first_page_you_see' => 'The first page you see after login', + 'login_status' => 'Login status', + 'logged_in' => 'You are logged in!', + 'toggle_navigation' => 'Toggle navigation', + 'administration' => 'ADMINISTRATION', + 'user' => 'USER', + 'logout' => 'Logout', + 'login' => 'Login', + 'register' => 'Register', + 'name' => 'Name', + 'email_address' => 'E-mail address', + 'email' => 'Email', + 'username' => 'Username', + 'password' => 'Password', + 'old_password' => 'Old password', + 'new_password' => 'New password', + 'confirm_password' => 'Confirm password', + 'remember_me' => 'Remember me', + 'forgot_your_password' => 'Forgot Your Password?', + 'reset_password' => 'Reset Password', + 'send_reset_link' => 'Send Password Reset Link', + 'click_here_to_reset' => 'Click here to reset your password', + 'change_password' => 'Change Password', + 'unauthorized' => 'Unauthorized.', + 'dashboard' => 'Dashboard', + 'handcrafted_by' => '', + 'powered_by' => 'Powered by', + 'my_account' => 'My Account', + 'update_account_info' => 'Update Account Info', + 'save' => 'Save', + 'cancel' => 'Cancel', + 'error' => 'Error', + 'success' => 'Success', + 'warning' => 'Warning', + 'notice' => 'Notice', + 'old_password_incorrect' => 'Old password is incorrect.', + 'password_dont_match' => 'Passwords do not match.', + 'password_empty' => 'Make sure both password fields are filled out.', + 'password_updated' => 'Password updated.', + 'account_updated' => 'Account updated successfully.', + 'unknown_error' => 'An unknown error has occurred. Please try again.', + 'error_saving' => 'Error while saving. Please try again.', + 'session_expired_error' => 'Your session has expired. Please login again into your account.', + 'welcome' => 'Welcome!', + 'use_sidebar' => 'Use the sidebar to the left to create, edit or delete content.', + + 'error_page' => [ + 'title' => 'Error :error', + 'button' => 'Take me home', + 'message_4xx' => 'Please go back or return to our homepage.', + 'message_500' => 'An internal server error has occurred. If the error persists please contact the development team.', + 'message_503' => 'The server is overloaded or down for maintenance. Please try again later.', + '400' => 'Bad request.', + '401' => 'Unauthorized action.', + '403' => 'Forbidden.', + '404' => 'Page not found.', + '405' => 'Method not allowed.', + '408' => 'Request timeout.', + '429' => 'Too many requests.', + '500' => 'It\'s not you, it\'s me.', + ], + + 'password_reset' => [ + 'greeting' => 'Hello!', + 'subject' => 'Reset Password Notification', + 'line_1' => 'You are receiving this email because we received a password reset request for your account.', + 'line_2' => 'Click the button below to reset your password:', + 'button' => 'Reset Password', + 'notice' => 'If you did not request a password reset, no further action is required.', + ], + + 'step' => 'Step', + 'confirm_email' => 'Confirm Email', + 'choose_new_password' => 'Choose New Password', + 'confirm_new_password' => 'Confirm new password', + 'throttled' => 'You have already requested a password reset recently. Please check your email. If you do not receive our email, please retry later.', + 'throttled_request' => 'You have exceeded the limit of tries. Please wait a few minutes and try again.', + + 'verify_email' => [ + 'email_verification' => 'Email Verification', + 'verification_link_sent' => 'A verification link has been sent to your email address.', + 'email_verification_required' => 'Please verify your email address, by clicking on the link we\'ve sent you.', + 'resend_verification_link' => 'Resend link', + ], +]; diff --git a/lang/vendor/backpack/en/crud.php b/lang/vendor/backpack/en/crud.php new file mode 100644 index 0000000..7387c9b --- /dev/null +++ b/lang/vendor/backpack/en/crud.php @@ -0,0 +1,193 @@ + 'Save and new item', + 'save_action_save_and_edit' => 'Save and edit this item', + 'save_action_save_and_back' => 'Save and back', + 'save_action_save_and_preview' => 'Save and preview', + 'save_action_changed_notification' => 'Default behaviour after saving has been changed.', + + // Create form + 'add' => 'Add', + 'back_to_all' => 'Back to all ', + 'cancel' => 'Cancel', + 'add_a_new' => 'Add a new ', + + // Edit form + 'edit' => 'Edit', + 'save' => 'Save', + + // Translatable models + 'edit_translations' => 'Translation', + 'language' => 'Language', + + // CRUD table view + 'all' => 'All ', + 'in_the_database' => 'in the database', + 'list' => 'List', + 'reset' => 'Reset', + 'actions' => 'Actions', + 'preview' => 'Preview', + 'delete' => 'Delete', + 'admin' => 'Admin', + 'details_row' => 'This is the details row. Modify as you please.', + 'details_row_loading_error' => 'There was an error loading the details. Please retry.', + 'clone' => 'Clone', + 'clone_success' => 'Entry cloned
A new entry has been added, with the same information as this one.', + 'clone_failure' => 'Cloning failed
The new entry could not be created. Please try again.', + + // Confirmation messages and bubbles + 'delete_confirm' => 'Are you sure you want to delete this item?', + 'delete_confirmation_title' => 'Item Deleted', + 'delete_confirmation_message' => 'The item has been deleted successfully.', + 'delete_confirmation_not_title' => 'NOT deleted', + 'delete_confirmation_not_message' => "There's been an error. Your item might not have been deleted.", + 'delete_confirmation_not_deleted_title' => 'Not deleted', + 'delete_confirmation_not_deleted_message' => 'Nothing happened. Your item is safe.', + + // Bulk actions + 'bulk_no_entries_selected_title' => 'No entries selected', + 'bulk_no_entries_selected_message' => 'Please select one or more items to perform a bulk action on them.', + + // Bulk delete + 'bulk_delete_are_you_sure' => 'Are you sure you want to delete these :number entries?', + 'bulk_delete_sucess_title' => 'Entries deleted', + 'bulk_delete_sucess_message' => ' items have been deleted', + 'bulk_delete_error_title' => 'Delete failed', + 'bulk_delete_error_message' => 'One or more items could not be deleted', + + // Bulk clone + 'bulk_clone_are_you_sure' => 'Are you sure you want to clone these :number entries?', + 'bulk_clone_sucess_title' => 'Entries cloned', + 'bulk_clone_sucess_message' => ' items have been cloned.', + 'bulk_clone_error_title' => 'Cloning failed', + 'bulk_clone_error_message' => 'One or more entries could not be created. Please try again.', + + // Ajax errors + 'ajax_error_title' => 'Error', + 'ajax_error_text' => 'Error loading page. Please refresh the page.', + + // DataTables translation + 'emptyTable' => 'No data available in table', + 'info' => 'Showing _START_ to _END_ of _TOTAL_ entries', + 'infoEmpty' => 'No entries', + 'infoFiltered' => '(filtered from _MAX_ total entries)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ entries per page', + 'loadingRecords' => 'Loading...', + 'processing' => 'Processing...', + 'search' => 'Search', + 'zeroRecords' => 'No matching entries found', + 'paginate' => [ + 'first' => 'First', + 'last' => 'Last', + 'next' => 'Next', + 'previous' => 'Previous', + ], + 'aria' => [ + 'sortAscending' => ': activate to sort column ascending', + 'sortDescending' => ': activate to sort column descending', + ], + 'export' => [ + 'export' => 'Export', + 'copy' => 'Copy', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => 'Print', + 'column_visibility' => 'Column visibility', + ], + 'custom_views' => [ + 'title' => 'custom views', + 'title_short' => 'views', + 'default' => 'default', + ], + + // global crud - errors + 'unauthorized_access' => 'Unauthorized access - you do not have the necessary permissions to see this page.', + 'please_fix' => 'Please fix the following errors:', + + // global crud - success / error notification bubbles + 'insert_success' => 'The item has been added successfully.', + 'update_success' => 'The item has been modified successfully.', + + // CRUD reorder view + 'reorder' => 'Reorder', + 'reorder_text' => 'Use drag&drop to reorder.', + 'reorder_success_title' => 'Done', + 'reorder_success_message' => 'Your order has been saved.', + 'reorder_error_title' => 'Error', + 'reorder_error_message' => 'Your order has not been saved.', + + // CRUD yes/no + 'yes' => 'Yes', + 'no' => 'No', + + // CRUD filters navbar view + 'filters' => 'Filters', + 'toggle_filters' => 'Toggle filters', + 'remove_filters' => 'Remove filters', + 'apply' => 'Apply', + + //filters language strings + 'today' => 'Today', + 'yesterday' => 'Yesterday', + 'last_7_days' => 'Last 7 Days', + 'last_30_days' => 'Last 30 Days', + 'this_month' => 'This Month', + 'last_month' => 'Last Month', + 'custom_range' => 'Custom Range', + 'weekLabel' => 'W', + + // Fields + 'browse_uploads' => 'Browse uploads', + 'select_all' => 'Select All', + 'select_files' => 'Select files', + 'select_file' => 'Select file', + 'clear' => 'Clear', + 'page_link' => 'Page link', + 'page_link_placeholder' => 'http://example.com/your-desired-page', + 'internal_link' => 'Internal link', + 'internal_link_placeholder' => 'Internal slug. Ex: \'admin/page\' (no quotes) for \':url\'', + 'external_link' => 'External link', + 'choose_file' => 'Choose file', + 'new_item' => 'New Item', + 'select_entry' => 'Select an entry', + 'select_entries' => 'Select entries', + 'upload_multiple_files_selected' => 'Files selected. After save, they will show up above.', + + //Table field + 'table_cant_add' => 'Cannot add new :entity', + 'table_max_reached' => 'Maximum number of :max reached', + + // google_map + 'google_map_locate' => 'Get my location', + + // File manager + 'file_manager' => 'File Manager', + + // InlineCreateOperation + 'related_entry_created_success' => 'Related entry has been created and selected.', + 'related_entry_created_error' => 'Could not create related entry.', + 'inline_saving' => 'Saving...', + + // returned when no translations found in select inputs + 'empty_translations' => '(empty)', + + // The pivot selector required validation message + 'pivot_selector_required_validation_message' => 'The pivot field is required.', +]; diff --git a/lang/vendor/backpack/en/langfilemanager.php b/lang/vendor/backpack/en/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/en/langfilemanager.php @@ -0,0 +1,16 @@ + 'El registro de usuarios está cerrado.', + 'no_email_column' => 'Los usuarios no tienen una dirección de correo electrónico asociada.', + 'first_page_you_see' => 'La página que ves después de iniciar sesión', + 'login_status' => 'Estado de la conexión', + 'logged_in' => '¡Usted ha iniciado sesión!', + 'toggle_navigation' => 'Activar/desactivar la navegación', + 'administration' => 'ADMINISTRACIÓN', + 'user' => 'USUARIO', + 'logout' => 'Salir', + 'login' => 'Iniciar sesión', + 'register' => 'Crear usuario', + 'name' => 'Nombre', + 'email_address' => 'Correo', + 'password' => 'Contraseña', + 'old_password' => 'Contraseña anterior', + 'new_password' => 'Contraseña nueva', + 'confirm_password' => 'Confirmar contraseña', + 'remember_me' => 'Recordar contraseña', + 'forgot_your_password' => '¿Olvidó su contraseña?', + 'reset_password' => 'Restaurar contraseña', + 'send_reset_link' => 'Enviar enlace para restaurar la contraseña', + 'click_here_to_reset' => 'Click aquí para restaurar la contraseña', + 'change_password' => 'Cambiar contraseña', + 'unauthorized' => 'No autorizado.', + 'dashboard' => 'Panel', + 'handcrafted_by' => 'Realizado por', + 'powered_by' => 'Creado con', + 'my_account' => 'Mi cuenta', + 'update_account_info' => 'Actualizar información de cuenta', + 'save' => 'Guardar', + 'cancel' => 'Cancelar', + 'error' => 'Error', + 'session_expired_error' => 'Su sesión ha caducado. Por favor inicie sesión nuevamente en su cuenta.', + 'success' => 'Existoso', + 'warning' => 'Advertencia', + 'notice' => 'Aviso', + 'old_password_incorrect' => 'Contraseña antigua incorrecta.', + 'password_dont_match' => 'Las contraseñas no coinciden.', + 'password_empty' => 'Asegúrese de que ambos campos de contraseña estén completos.', + 'password_updated' => 'Contraseña actalizada.', + 'account_updated' => 'Cuenta actualizada correctamente.', + 'unknown_error' => 'Ha ocurrido un error. Por favor vuelva a intenter.', + 'error_saving' => 'Error mientras se guardaba. Por favor vuelva a intenter.', + 'welcome' => '¡Bienvenido!', + 'use_sidebar' => 'Use la barra lateral a la izquierda para crear, editar o eliminar contenido.', + + 'password_reset' => [ + 'greeting' => '¡Hola!', + 'subject' => 'Notificación restablecimiento de contraseña', + 'line_1' => 'Recibió este correo electrónico porque recibimos una solicitud de restablecimiento de contraseña para su cuenta.', + 'line_2' => 'Haga clic en el botón a continuación para restablecer su contraseña:', + 'button' => 'Restablecer contraseña', + 'notice' => 'Si no has solicitado un restablecimiento de contraseña, no se requiere ninguna acción adicional.', + ], + + 'step' => 'Paso', + 'confirm_email' => 'Confirmar correo electrónico', + 'choose_new_password' => 'Elija nueva contraseña', + 'confirm_new_password' => 'Confirmar nueva contraseña', + +]; diff --git a/lang/vendor/backpack/es/crud.php b/lang/vendor/backpack/es/crud.php new file mode 100644 index 0000000..a40806d --- /dev/null +++ b/lang/vendor/backpack/es/crud.php @@ -0,0 +1,180 @@ + 'Guardar y crear nuevo', + 'save_action_save_and_edit' => 'Guardar y continuar editando', + 'save_action_save_and_back' => 'Guardar y regresar', + 'save_action_save_and_preview' => 'Guardar y vista previa', + 'save_action_changed_notification' => 'La acción por defecto del botón guardar ha sido modificada.', + + // Create form + 'add' => 'Añadir', + 'back_to_all' => 'Volver al listado de', + 'cancel' => 'Cancelar', + 'add_a_new' => 'Añadir ', + + // Edit form + 'edit' => 'Editar', + 'save' => 'Guardar', + + // Translatable models + 'edit_translations' => 'EDITAR TRADUCCIONES', + 'language' => 'Idioma', + + // CRUD table view + 'all' => 'Todos los registros de ', + 'in_the_database' => 'en la base de datos', + 'list' => 'Listar', + 'reset' => 'Reiniciar', + 'actions' => 'Acciones', + 'preview' => 'Vista previa', + 'delete' => 'Eliminar', + 'admin' => 'Admin', + 'details_row' => 'Esta es la fila de detalles. Modificar a su gusto.', + 'details_row_loading_error' => 'Se ha producido un error al cargar los datos. Por favor, intente de nuevo.', + 'clone' => 'Clonar', + 'clone_success' => 'Elemento clonado
Se creó un nuevo elemento con la misma información que este.', + 'clone_failure' => 'La clonación falló
No se puede crear el nuevo elemento. Inténtalo de nuevo.', + + // Confirmation messages and bubbles + 'delete_confirm' => '¿Está seguro que desea eliminar este elemento?', + 'delete_confirmation_title' => 'Elemento eliminado', + 'delete_confirmation_message' => 'El elemento ha sido eliminado de manera correcta.', + 'delete_confirmation_not_title' => 'No se pudo eliminar', + 'delete_confirmation_not_message' => 'Ha ocurrido un error. Puede que el elemento no haya sido eliminado.', + 'delete_confirmation_not_deleted_title' => 'No se pudo eliminar', + 'delete_confirmation_not_deleted_message' => 'No ha ocurrido nada. Su elemento está seguro.', + + // Bulk actions + 'bulk_no_entries_selected_title' => 'No hay registros seleccionados', + 'bulk_no_entries_selected_message' => 'Seleccione uno o más registros en los que realizar la operación', + + // Bulk delete + 'bulk_delete_are_you_sure' => '¿Estás seguro de que deseas eliminar :number registro/s?', + 'bulk_delete_sucess_title' => 'Registros eliminados', + 'bulk_delete_sucess_message' => ' los registros han sido eliminados', + 'bulk_delete_error_title' => 'Registros no eliminados', + 'bulk_delete_error_message' => 'No se pudieron eliminar uno o más registros', + + // Bulk clone + 'bulk_clone_are_you_sure' => '¿Está seguro de que desea clonar :number registro/s?', + 'bulk_clone_sucess_title' => 'Registros clonados', + 'bulk_clone_sucess_message' => ' registros han sido clonados.', + 'bulk_clone_error_title' => 'Registros no clonados', + 'bulk_clone_error_message' => 'No se pudieron crear una o más entradas. Inténtalo de nuevo.', + + // Ajax errors + 'ajax_error_title' => 'Error', + 'ajax_error_text' => 'Error al cargar la página. Por favor, vuelva a cargar la página.', + + // DataTables translation + 'emptyTable' => 'No hay datos disponibles en la tabla', + 'info' => 'Mostrando registros _START_ a _END_ de un total de _TOTAL_ registros', + 'infoEmpty' => '', + 'infoFiltered' => '(filtrando de _MAX_ registros totales)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ elementos por página', + 'loadingRecords' => 'Cargando...', + 'processing' => 'Procesando...', + 'search' => 'Buscar', + 'zeroRecords' => 'No se encontraron elementos', + 'paginate' => [ + 'first' => 'Primero', + 'last' => 'Último', + 'next' => 'Siguiente', + 'previous' => 'Anterior', + ], + 'aria' => [ + 'sortAscending' => ': activar para ordenar ascendentemente', + 'sortDescending' => ': activar para ordenar descendentemente', + ], + 'export' => [ + 'export' => 'Exportar', + 'copy' => 'Copiar', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => 'Imprimir', + 'column_visibility' => 'Visibilidad de columnas', + ], + + // global crud - errors + 'unauthorized_access' => 'Acceso denegado - usted no tiene los permisos necesarios para ver esta página.', + 'please_fix' => 'Por favor corrija los siguientes errores:', + + // global crud - success / error notification bubbles + 'insert_success' => 'El elemento ha sido añadido de manera correcta.', + 'update_success' => 'El elemento ha sido modificado de manera correcta.', + + // CRUD reorder view + 'reorder' => 'Reordenar', + 'reorder_text' => 'Arrastrar y soltar para reordenar.', + 'reorder_success_title' => 'Hecho', + 'reorder_success_message' => 'El orden ha sido guardado.', + 'reorder_error_title' => 'Error', + 'reorder_error_message' => 'El orden no se ha guardado.', + + // CRUD yes/no + 'yes' => 'Sí', + 'no' => 'No', + + // CRUD filters navbar view + 'filters' => 'Filtros', + 'toggle_filters' => 'Alternar filtros', + 'remove_filters' => 'Remover filtros', + 'apply' => 'Apply', + + // filters language strings + 'today' => 'Hoy', + 'yesterday' => 'Ayer', + 'last_7_days' => 'Los últimos 7 días', + 'last_30_days' => 'Últimos 30 días', + 'this_month' => 'Este mes', + 'last_month' => 'El mes pasado', + 'custom_range' => 'Rango personalizado', + 'weekLabel' => 'W', + + // Fields + 'browse_uploads' => 'Subir archivos', + 'select_all' => 'Seleccionar todo', + 'select_files' => 'Selecciona archivos', + 'select_file' => 'Selecciona un archivo', + 'clear' => 'Limpiar', + 'page_link' => 'Enlace', + 'page_link_placeholder' => 'http://example.com/su-pagina', + 'internal_link' => 'Enlace interno', + 'internal_link_placeholder' => 'Slug interno. Ejplo: \'admin/page\' (sin comillas) para \':url\'', + 'external_link' => 'Enlace externo', + 'choose_file' => 'Elegir archivo', + 'new_item' => 'Nuevo elemento', + 'select_entry' => 'Selecciona un elemento', + 'select_entries' => 'Selecciona elementos', + + // Table field + 'table_cant_add' => 'No se puede agregar una nueva :entity', + 'table_max_reached' => 'El número máximo de :max alcanzado', + + // File manager + 'file_manager' => 'Administrador de archivos', + + // InlineCreateOperation + 'related_entry_created_success' => 'El elemento relacionado ha sido creado y seleccionado.', + 'related_entry_created_error' => 'No se pueden crear elementos relacionados.', + + // returned when no translations found in select inputs + 'empty_translations' => '(vacío)', +]; diff --git a/lang/vendor/backpack/es/langfilemanager.php b/lang/vendor/backpack/es/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/es/langfilemanager.php @@ -0,0 +1,16 @@ + 'عضویت بسته شده است.', + 'no_email_column' => 'کاربران آدرس ایمیل مرتبط ندارند.', + 'first_page_you_see' => 'اولین صفحه‌ای که بعد از ورود شما می‌بینید.', + 'login_status' => 'وضعیت ورود', + 'logged_in' => 'شما وارد شده اید!', + 'toggle_navigation' => 'تعویض ناوبری', + 'administration' => 'مدیریت', + 'user' => 'کاربر', + 'logout' => 'خروج', + 'login' => 'ورود', + 'register' => 'عضویت', + 'name' => 'نام', + 'email_address' => 'آدرس ایمیل', + 'password' => 'گذرواژه', + 'old_password' => 'گذرواژه قدیمی', + 'new_password' => 'گذرواژه جدید', + 'confirm_password' => 'تایید رمز', + 'remember_me' => 'مرا به خاطر بسپار', + 'forgot_your_password' => 'فراموشی گذرواژه؟', + 'reset_password' => 'بازنشانی گذرواژه', + 'send_reset_link' => 'ارسال لینک بازنشانی گذرواژه', + 'click_here_to_reset' => 'اینجا را برای بازنشانی گذرواژه کلیک کنید', + 'change_password' => 'تغییر گذرواژه', + 'unauthorized' => 'غیرمجاز.', + 'dashboard' => 'داشبورد', + 'handcrafted_by' => 'دستکاری شده توسط', + 'powered_by' => 'قدرت گرفته با', + 'my_account' => 'حساب کاربری من', + 'update_account_info' => 'بروزرسانی اطلاعات حساب کاربری', + 'save' => 'ذخیره', + 'cancel' => 'انصراف', + 'error' => 'خطا', + 'success' => 'موفق', + 'warning' => 'هشدار', + 'notice' => 'اطلاع', + 'old_password_incorrect' => 'گذرواژه قدیمی صحیح نیست.', + 'password_dont_match' => 'گذرواژه‌های ورود مطابقت ندارند.', + 'password_empty' => 'اطمینان حاصل کنید که هر دو قسمت گذرواژه پر شده اند.', + 'password_updated' => 'گذرواژه بروز شد.', + 'account_updated' => 'حساب کاربری با موفقیت بروز شد.', + 'unknown_error' => 'خطای ناشناخته اتفاق افتاد. لطفا مجدد تلاش کنید.', + 'error_saving' => 'خطا در حین ذخیره سازی، لطفا مجدد تلاش کنید.', + 'session_expired_error' => 'جلسه شما تمام شده است. لطفا دوباره وارد حساب کاربری خود شوید', + 'welcome' => 'خوش آمدید!', + 'use_sidebar' => 'برای ایجاد ، ویرایش یا حذف محتوا از نوار کناری در سمت چپ استفاده کنید.', + + 'password_reset' => [ + 'greeting' => 'سلام!', + 'subject' => 'اعلان بازنشانی گذرواژه', + 'line_1' => 'شما این ایمیل را دریافت کردید زیرا ما درخواست بازنشانی گذرواژه را برای حساب کاربری شما دریافت کردیم.', + 'line_2' => 'دکمه زیر برای بازنشانی گذرواژه:', + 'button' => 'بازنشانی گذرواژه', + 'notice' => 'اگر درخواست بازنشانی گذرواژه را نکردید، هیچ اقدام دیگری لازم نیست.', + ], + + 'step' => 'مرحله', + 'confirm_email' => 'ایمیل تایید', + 'choose_new_password' => 'انتخاب گذرواژه جدید', + 'confirm_new_password' => 'تایید گذرواژه جدید', + +]; diff --git a/lang/vendor/backpack/fa/crud.php b/lang/vendor/backpack/fa/crud.php new file mode 100644 index 0000000..9683492 --- /dev/null +++ b/lang/vendor/backpack/fa/crud.php @@ -0,0 +1,147 @@ + 'ذخیره و مورد جدید', + 'save_action_save_and_edit' => 'ذخیره و ویرایش این مورد', + 'save_action_save_and_back' => 'ذخیره و بازگشت', + 'save_action_changed_notification' => 'رفتار پیش فرض پس از ذخیره سازی تغییر کرده است.', + + // Create form + 'add' => 'افزودن', + 'back_to_all' => 'بازگشت به همه ', + 'cancel' => 'انصراف', + 'add_a_new' => 'افزودن یک چیز جدید ', + + // Edit form + 'edit' => 'ویرایش', + 'save' => 'ذخیره', + + // Translatable models + 'edit_translations' => 'ترجمه', + 'language' => 'زبان', + + // CRUD table view + 'all' => 'همه ', + 'in_the_database' => 'در پایگاه داده', + 'list' => 'لیست', + 'actions' => 'اقدامات', + 'preview' => 'پیش‌نمایش', + 'delete' => 'حذف', + 'admin' => 'مدیر', + 'details_row' => 'این ردیف جزئیات است. مطابق میل خود تغییر دهید.', + 'details_row_loading_error' => 'هنگام بارگذاری جزئیات خطایی روی داد. لطفا دوباره سعی کنید.', + + // Confirmation messages and bubbles + 'delete_confirm' => 'آیا شما از حذف این مورد مطمين هستید؟', + 'delete_confirmation_title' => 'مورد حذف شد', + 'delete_confirmation_message' => 'مورد مورد نظر با موفقیت حذف شد.', + 'delete_confirmation_not_title' => 'حذف نشد', + 'delete_confirmation_not_message' => 'خطایی وجود داشت. مورد مورد نظر ممکن است حذف نشده باشد.', + 'delete_confirmation_not_deleted_title' => 'حذف نشد', + 'delete_confirmation_not_deleted_message' => 'هیچ اتفاقی نیفتاده مورد شما ایمن است.', + + // Bulk actions + 'bulk_no_entries_selected_title' => 'هیچ ورودی انتخاب نشده است', + 'bulk_no_entries_selected_message' => 'لطفاً یک یا چند مورد را انتخاب کنید تا یک عمل انبوه بر روی آنها انجام شود.', + + // Bulk confirmation + 'bulk_delete_are_you_sure' => 'آیا مطمئن هستید که می خواهید :number مورد را حذف کنید؟', + 'bulk_delete_sucess_title' => 'موارد حذف شد', + 'bulk_delete_sucess_message' => ' موارد حذف شدند', + 'bulk_delete_error_title' => 'حذف نشد', + 'bulk_delete_error_message' => 'یک یا چند مورد قابل حذف نیستند', + + // Ajax errors + 'ajax_error_title' => 'خطا', + 'ajax_error_text' => 'خطا در بارگذاری صفحه. صفحه را تازه کنید. ', + + // DataTables translation + 'emptyTable' => 'داده‌ای در جدول وجود ندارد', + 'info' => 'نمایش _START_ تا _END_ از _TOTAL_ مورد', + 'infoEmpty' => 'نمایش ۰ تا ۰ از ۰ مورد', + 'infoFiltered' => '(فیلتر شده از _MAX_ مورد)', + 'infoPostFix' => '.', + 'thousands' => '،', + 'lengthMenu' => '_MENU_ رکورد در صفحه', + 'loadingRecords' => 'درحال بارگذاری...', + 'processing' => 'درحال پردازش...', + 'search' => 'جستجو', + 'zeroRecords' => 'مورد مطابقت داده شده یافت نشد', + 'paginate' => [ + 'first' => 'اولین', + 'last' => 'آخرین', + 'next' => 'بعدی', + 'previous' => 'قبلی', + ], + 'aria' => [ + 'sortAscending' => ': برای مرتب سازی صعود ستون فعال کنید', + 'sortDescending' => ': برای مرتب سازی نزولی ستون فعال کنید', + ], + 'export' => [ + 'export' => 'خروجی', + 'copy' => 'کپی', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => 'چاپ', + 'column_visibility' => 'ستون‌های نمایان', + ], + + // global crud - errors + 'unauthorized_access' => 'دسترسی غیرمجاز - شما مجوزهای لازم برای دیدن این صفحه را ندارید.', + 'please_fix' => 'لطفا این خطاها را برطرف کنید:', + + // global crud - success / error notification bubbles + 'insert_success' => 'مورد مورد نظر با موفقیت اضافه شد.', + 'update_success' => 'مورد با موفقیت تغییر یافت.', + + // CRUD reorder view + 'reorder' => 'ترتیب دوباره', + 'reorder_text' => 'Use drag&drop to reorder.', + 'reorder_success_title' => 'انجام شد', + 'reorder_success_message' => 'ترتیب شما ذخیره شد.', + 'reorder_error_title' => 'خطا', + 'reorder_error_message' => 'ترتیب شما ذخیره نشده است', + + // CRUD yes/no + 'yes' => 'Yes', + 'no' => 'No', + + // CRUD filters navbar view + 'filters' => 'فیلترها', + 'toggle_filters' => 'تغییر فیلترها', + 'remove_filters' => 'حذف فیلترها', + + // Fields + 'browse_uploads' => 'مرور بارگذاری‌ها', + 'select_all' => 'انتخاب همه', + 'select_files' => 'انتخاب پرونده‌ها', + 'select_file' => 'انتخاب پرونده', + 'clear' => 'پاک کردن', + 'page_link' => 'پیوند به صفحه', + 'page_link_placeholder' => 'http://example.com/your-desired-page', + 'internal_link' => 'پیوند داخلی', + 'internal_link_placeholder' => 'Internal slug. Ex: \'admin/page\' (no quotes) for \':url\'', + 'external_link' => 'پیوند خارجی', + 'choose_file' => 'انتخاب پرونده', + + //Table field + 'table_cant_add' => 'نمی توان :entity جدید اضافه کرد', + 'table_max_reached' => 'به حداکثر مقدار :max رسیده است', + + // File manager + 'file_manager' => 'مدیریت پرونده', +]; diff --git a/lang/vendor/backpack/fa/langfilemanager.php b/lang/vendor/backpack/fa/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/fa/langfilemanager.php @@ -0,0 +1,16 @@ + 'Inscription fermée.', + 'first_page_you_see' => 'La première page que vous voyez après connexion', + 'login_status' => 'Etat de connexion', + 'logged_in' => 'Vous êtes connecté!', + 'toggle_navigation' => 'Afficher/masquer la navigation', + 'administration' => 'ADMINISTRATION', + 'user' => 'UTILISATEUR', + 'logout' => 'Déconnexion', + 'login' => 'Connexion', + 'register' => 'Inscription', + 'name' => 'Nom', + 'email_address' => 'Adresse e-mail', + 'password' => 'Mot de passe', + 'old_password' => 'Ancien mot de passe', + 'new_password' => 'Nouveau mot de passe', + 'confirm_password' => 'Confirmation du mot de passe', + 'remember_me' => 'Se souvenir de moi', + 'forgot_your_password' => 'Mot de passe oublié ?', + 'reset_password' => 'Réinitialiser le mot de passe', + 'send_reset_link' => 'Envoyer un lien de réinitialisation du mot de passe', + 'click_here_to_reset' => 'Cliquez ici pour réinitialiser votre mot de passe', + 'change_password' => 'Modifier le mot de passe', + 'unauthorized' => 'Non autorisé.', + 'dashboard' => 'Tableau de bord', + 'handcrafted_by' => 'Artisé par', + 'powered_by' => 'Propulsé par', + 'my_account' => 'Mon compte', + 'update_account_info' => 'Modifier mon compte', + 'save' => 'Enregistrer', + 'cancel' => 'Annuler', + 'error' => 'Erreur', + 'success' => 'Succès', + 'old_password_incorrect' => 'L’ancien mot de passe est erroné.', + 'password_dont_match' => 'Les mots de passe ne correspondent pas.', + 'password_empty' => 'Assurez-vous de bien avoir rempli les champs de mot de passe.', + 'password_updated' => 'Mot de passe mis à jour.', + 'account_updated' => 'Compte mis à jour avec succès.', + 'unknown_error' => 'Un erreur s’est produite. Veuillez réessayer.', + 'error_saving' => 'Erreur lors de l’enregistrement. Veuillez réessayer.', + 'session_expired_error' => 'Votre session a expiré. Veuillez vous reconnecter à votre compte.', +]; diff --git a/lang/vendor/backpack/fr-CA/crud.php b/lang/vendor/backpack/fr-CA/crud.php new file mode 100644 index 0000000..19f11c0 --- /dev/null +++ b/lang/vendor/backpack/fr-CA/crud.php @@ -0,0 +1,142 @@ + 'Enregistrer et créer un nouveau', + 'save_action_save_and_edit' => 'Enregistrer et éditer', + 'save_action_save_and_back' => 'Enregistrer et retour', + 'save_action_changed_notification' => 'Action par défaut changée', + + // Create form + 'add' => 'Ajouter', + 'back_to_all' => 'Retour à la liste ', + 'cancel' => 'Annuler', + 'add_a_new' => 'Ajouter un nouvel élément ', + + // Edit form + 'edit' => 'Modifier', + 'save' => 'Enregistrer', + + // Translatable models + 'edit_translations' => 'EDITER LES TRADUCTIONS', + 'language' => 'Langue', + + // CRUD table view + 'all' => 'Tous les ', + 'in_the_database' => 'dans la base de données', + 'list' => 'Liste', + 'actions' => 'Actions', + 'preview' => 'Aperçu', + 'delete' => 'Supprimer', + 'admin' => 'Administration', + 'details_row' => 'Ligne de détail. Modifiez la à volonté.', + 'details_row_loading_error' => 'Une erreur est survenue en chargeant les détails. Veuillez réessayer.', + + // Confirmation messages and bubbles + 'delete_confirm' => 'Souhaitez-vous réellement supprimer cet élément?', + 'delete_confirmation_title' => 'Élément supprimé', + 'delete_confirmation_message' => 'L’élément a été supprimé avec succès.', + 'delete_confirmation_not_title' => 'NON supprimé', + 'delete_confirmation_not_message' => 'Une erreur est survenue. Votre élément n’a peut-être pas été effacé.', + 'delete_confirmation_not_deleted_title' => 'Non supprimé', + 'delete_confirmation_not_deleted_message' => 'Aucune modification. Votre élément a été conservé.', + + 'ajax_error_title' => 'Erreur', + 'ajax_error_text' => 'Erreur lors du chargement. Merci de réactualiser la page.', + + // DataTables translation + 'emptyTable' => 'Aucune donnée à afficher.', + 'info' => 'Affichage des éléments _START_ à _END_ sur _TOTAL_', + 'infoEmpty' => '', + 'infoFiltered' => '(filtré à partir de _MAX_ éléments au total)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ enregistrements par page', + 'loadingRecords' => 'Chargement...', + 'processing' => 'Traitement...', + 'search' => 'Recherche', + 'zeroRecords' => 'Aucun enregistrement correspondant trouvé', + 'paginate' => [ + 'first' => 'Premier', + 'last' => 'Dernier', + 'next' => 'Suivant', + 'previous' => 'Précédent', + ], + 'aria' => [ + 'sortAscending' => ': activez pour trier la colonne par ordre croissant', + 'sortDescending' => ': activez pour trier la colonne par ordre décroissant', + ], + 'export' => [ + 'export' => 'Exporter', + 'copy' => 'Copier', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => 'Imprimer', + 'column_visibility' => 'Affichage des colonnes', + ], + + // global crud - errors + 'unauthorized_access' => 'Accès non autorisé - vous n’avez pas les droits nécessaires à la consultation de cette page.', + 'please_fix' => 'Veuillez corriger les erreurs suivantes :', + + // global crud - success / error notification bubbles + 'insert_success' => 'L’élément a été ajouté avec succès.', + 'update_success' => 'L’élément a été modifié avec succès.', + + // CRUD reorder view + 'reorder' => 'Réordonner', + 'reorder_text' => 'Utilisez le glisser-déposer pour réordonner.', + 'reorder_success_title' => 'Fait', + 'reorder_success_message' => 'L’ordre a été enregistré.', + 'reorder_error_title' => 'Erreur', + 'reorder_error_message' => 'L’ordre n’a pas pu être enregistré.', + + // CRUD yes/no + 'yes' => 'Oui', + 'no' => 'Non', + + // CRUD filters navbar view + 'filters' => 'Filtres', + 'toggle_filters' => 'Activer les filtres', + 'remove_filters' => 'Retirer les filtres', + + //filters language strings + 'today' => 'Aujourd\'hui', + 'yesterday' => 'Hier', + 'last_7_days' => '7 derniers jours', + 'last_30_days' => '30 derniers jours', + 'this_month' => 'Ce mois-ci', + 'last_month' => 'Le mois dernier', + 'custom_range' => 'Durée personnalisé', + 'weekLabel' => 'S', + + // Fields + 'browse_uploads' => 'Parcourir les fichier chargés', + 'clear' => 'Effacer', + 'page_link' => 'Lien de la page', + 'page_link_placeholder' => 'http://example.com/votre-page', + 'internal_link' => 'Lien interne', + 'internal_link_placeholder' => 'Identifiant de lien interne. Ex: \'admin/page\' (sans guillemets) pour \':url\'', + 'external_link' => 'Lien externe', + 'choose_file' => 'Choisissez un fichier', + + //Table field + 'table_cant_add' => 'Impossible d’ajouter un nouveau :entity', + 'table_max_reached' => 'Nombre maximum :max atteint', + + // File manager + 'file_manager' => 'Gestionnaire de fichiers', +]; diff --git a/lang/vendor/backpack/fr-CA/langfilemanager.php b/lang/vendor/backpack/fr-CA/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/fr-CA/langfilemanager.php @@ -0,0 +1,16 @@ + 'Inscription fermée.', + 'first_page_you_see' => 'La première page que vous voyez après connexion', + 'login_status' => 'Etat de connexion', + 'logged_in' => 'Vous êtes connecté!', + 'toggle_navigation' => 'Afficher/masquer la navigation', + 'administration' => 'ADMINISTRATION', + 'user' => 'UTILISATEUR', + 'logout' => 'Déconnexion', + 'login' => 'Connexion', + 'register' => 'Inscription', + 'name' => 'Nom', + 'email_address' => 'Adresse e-mail', + 'password' => 'Mot de passe', + 'old_password' => 'Ancien mot de passe', + 'new_password' => 'Nouveau mot de passe', + 'confirm_password' => 'Confirmation du mot de passe', + 'remember_me' => 'Se souvenir de moi', + 'forgot_your_password' => 'Mot de passe oublié ?', + 'reset_password' => 'Réinitialiser le mot de passe', + 'send_reset_link' => 'Envoyer un lien de réinitialisation du mot de passe', + 'click_here_to_reset' => 'Cliquez ici pour réinitialiser votre mot de passe', + 'change_password' => 'Modifier le mot de passe', + 'unauthorized' => 'Non autorisé.', + 'dashboard' => 'Tableau de bord', + 'handcrafted_by' => 'Artisé par', + 'powered_by' => 'Propulsé par', + 'my_account' => 'Mon compte', + 'update_account_info' => 'Modifier mon compte', + 'save' => 'Enregistrer', + 'cancel' => 'Annuler', + 'error' => 'Erreur', + 'session_expired_error' => 'Votre session a expiré. Veuillez vous reconnecter à votre compte.', + 'success' => 'Succès', + 'warning' => 'Attention', + 'old_password_incorrect' => 'L’ancien mot de passe est erroné.', + 'password_dont_match' => 'Les mots de passe ne correspondent pas.', + 'password_empty' => 'Assurez-vous de bien avoir rempli les champs de mot de passe.', + 'password_updated' => 'Mot de passe mis à jour.', + 'account_updated' => 'Compte mis à jour avec succès.', + 'unknown_error' => 'Un erreur s’est produite. Veuillez réessayer.', + 'error_saving' => 'Erreur lors de l’enregistrement. Veuillez réessayer.', + 'welcome' => 'Bienvenue!', + 'use_sidebar' => 'Utilisez la barre latérale pour ajouter, modifier ou supprimer du contenu.', + + 'password_reset' => [ + 'greeting' => 'Bonjour!', + 'subject' => 'Réinitialisation du mot de passe', + 'line_1' => 'Vous recevez cet email car nous avons reçu une demande de réinitialisation de votre mot de passe.', + 'line_2' => 'Cliquez sur le lien suivant pour le réinitialiser:', + 'button' => 'Réinitialiser', + 'notice' => 'Si vous n’êtes pas à l’origine de la demande, vous pouvez ignorer ce message.', + ], + + 'step' => 'Étape', + 'confirm_email' => 'Confirmation de l’email', + 'choose_new_password' => 'Choix d’un mot de passe', + 'confirm_new_password' => 'Confirmation du mot de passe', + 'throttled' => 'Vous avez déjà demandé une réinitialisation de mot de passe récemment. Merci de consulter vos emails. Si vous ne recevez pas notre email, veuillez réessayer plus tard.', + 'throttled_request' => 'Vous avez dépassé la limite d’essais. S’il vous plait attendez quelques minutes et réessayez.', +]; diff --git a/lang/vendor/backpack/fr/crud.php b/lang/vendor/backpack/fr/crud.php new file mode 100644 index 0000000..11dd88b --- /dev/null +++ b/lang/vendor/backpack/fr/crud.php @@ -0,0 +1,169 @@ + 'Enregistrer et créer un nouveau', + 'save_action_save_and_edit' => 'Enregistrer et éditer', + 'save_action_save_and_back' => 'Enregistrer et retour', + 'save_action_save_and_preview' => 'Enregistrer et aperçu', + 'save_action_changed_notification' => 'Action par défaut changée', + + // Create form + 'add' => 'Ajouter', + 'back_to_all' => 'Retour à la liste ', + 'cancel' => 'Annuler', + 'add_a_new' => 'Ajouter un nouvel élément ', + + // Edit form + 'edit' => 'Modifier', + 'save' => 'Enregistrer', + + // Translatable models + 'edit_translations' => 'EDITER LES TRADUCTIONS', + 'language' => 'Langue', + + // CRUD table view + 'all' => 'Tous les ', + 'in_the_database' => 'dans la base de données', + 'list' => 'Liste', + 'reset' => 'Reset', + 'actions' => 'Actions', + 'preview' => 'Aperçu', + 'delete' => 'Supprimer', + 'admin' => 'Administration', + 'details_row' => 'Ligne de détail. Modifiez la à volonté.', + 'details_row_loading_error' => 'Une erreur est survenue en chargeant les détails. Veuillez réessayer.', + 'clone' => 'Cloner', + 'clone_success' => 'Elément cloné
Un nouvel élément a été ajouté, avec les mêmes informations que celui-ci.', + 'clone_failure' => 'Clonage échoué
Le nouvel élément n\'a pu être créé. Merci de réessayer.', + + // Confirmation messages and bubbles + 'delete_confirm' => 'Souhaitez-vous réellement supprimer cet élément?', + 'delete_confirmation_title' => 'Élément supprimé', + 'delete_confirmation_message' => 'L’élément a été supprimé avec succès.', + 'delete_confirmation_not_title' => 'NON supprimé', + 'delete_confirmation_not_message' => 'Une erreur est survenue. Votre élément n’a peut-être pas été effacé.', + 'delete_confirmation_not_deleted_title' => 'Non supprimé', + 'delete_confirmation_not_deleted_message' => 'Aucune modification. Votre élément a été conservé.', + + // Bulk actions + 'bulk_no_entries_selected_title' => 'Aucun élément sélectionné', + 'bulk_no_entries_selected_message' => 'Veuillez sélectionner un ou plusieurs éléments pour faire une action groupée', + + // Bulk confirmation + 'bulk_delete_are_you_sure' => 'Souhaitez-vous vraiment supprimer ces :number éléments?', + 'bulk_delete_sucess_title' => 'Éléments supprimés', + 'bulk_delete_sucess_message' => ' éléments ont été supprimés', + 'bulk_delete_error_title' => 'Échec de la suppression', + 'bulk_delete_error_message' => 'Un ou plusieurs éléments n’ont pu être supprimés', + + // Ajax errors + 'ajax_error_title' => 'Erreur', + 'ajax_error_text' => 'Erreur lors du chargement. Merci de réactualiser la page.', + + // DataTables translation + 'emptyTable' => 'Aucune donnée à afficher.', + 'info' => 'Affichage des éléments _START_ à _END_ sur _TOTAL_', + 'infoEmpty' => '', + 'infoFiltered' => '(filtré à partir de _MAX_ éléments au total)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ enregistrements par page', + 'loadingRecords' => 'Chargement...', + 'processing' => 'Traitement...', + 'search' => 'Recherche', + 'zeroRecords' => 'Aucun enregistrement correspondant trouvé', + 'paginate' => [ + 'first' => 'Premier', + 'last' => 'Dernier', + 'next' => 'Suivant', + 'previous' => 'Précédent', + ], + 'aria' => [ + 'sortAscending' => ': activez pour trier la colonne par ordre croissant', + 'sortDescending' => ': activez pour trier la colonne par ordre décroissant', + ], + 'export' => [ + 'export' => 'Exporter', + 'copy' => 'Copier', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => 'Imprimer', + 'column_visibility' => 'Affichage des colonnes', + ], + + // global crud - errors + 'unauthorized_access' => 'Accès non autorisé - vous n’avez pas les droits nécessaires à la consultation de cette page.', + 'please_fix' => 'Veuillez corriger les erreurs suivantes :', + + // global crud - success / error notification bubbles + 'insert_success' => 'L’élément a été ajouté avec succès.', + 'update_success' => 'L’élément a été modifié avec succès.', + + // CRUD reorder view + 'reorder' => 'Réordonner', + 'reorder_text' => 'Utilisez le glisser-déposer pour réordonner.', + 'reorder_success_title' => 'Fait', + 'reorder_success_message' => 'L’ordre a été enregistré.', + 'reorder_error_title' => 'Erreur', + 'reorder_error_message' => 'L’ordre n’a pas pu être enregistré.', + + // CRUD yes/no + 'yes' => 'Oui', + 'no' => 'Non', + + // CRUD filters navbar view + 'filters' => 'Filtres', + 'toggle_filters' => 'Activer les filtres', + 'remove_filters' => 'Retirer les filtres', + + //filters language strings + 'today' => 'Aujourd\'hui', + 'yesterday' => 'Hier', + 'last_7_days' => '7 derniers jours', + 'last_30_days' => '30 derniers jours', + 'this_month' => 'Ce mois-ci', + 'last_month' => 'Le mois dernier', + 'custom_range' => 'Durée personnalisé', + 'weekLabel' => 'S', + + // Fields + 'browse_uploads' => 'Parcourir les fichier chargés', + 'select_all' => 'Tout sélectionner', + 'select_files' => 'Choisir des fichiers', + 'select_file' => 'Choisir un fichier', + 'clear' => 'Effacer', + 'page_link' => 'Lien de la page', + 'page_link_placeholder' => 'http://example.com/votre-page', + 'internal_link' => 'Lien interne', + 'internal_link_placeholder' => 'Identifiant de lien interne. Ex: \'admin/page\' (sans guillemets) pour \':url\'', + 'external_link' => 'Lien externe', + 'choose_file' => 'Choisissez un fichier', + 'new_item' => 'Nouvel élément', + 'select_entry' => 'Selectionner un élément', + 'select_entries' => 'Selectionner des éléments', + + //Table field + 'table_cant_add' => 'Impossible d’ajouter un nouveau :entity', + 'table_max_reached' => 'Nombre maximum :max atteint', + + // File manager + 'file_manager' => 'Gestionnaire de fichiers', + + // InlineCreateOperation + 'related_entry_created_success' => 'L\'élément associé a été créé et sélectionné.', + 'related_entry_created_error' => 'Impossible de créer un élément associé.', +]; diff --git a/lang/vendor/backpack/fr/langfilemanager.php b/lang/vendor/backpack/fr/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/fr/langfilemanager.php @@ -0,0 +1,16 @@ + 'Inscription fermée.', + 'first_page_you_see' => 'La première page que vous voyez après connexion', + 'login_status' => 'Etat de connexion', + 'logged_in' => 'Vous êtes connecté!', + 'toggle_navigation' => 'Afficher/masquer la navigation', + 'administration' => 'ADMINISTRATION', + 'user' => 'UTILISATEUR', + 'logout' => 'Déconnexion', + 'login' => 'Connexion', + 'register' => 'Inscription', + 'name' => 'Nom', + 'email_address' => 'Adresse e-mail', + 'password' => 'Mot de passe', + 'old_password' => 'Ancien mot de passe', + 'new_password' => 'Nouveau mot de passe', + 'confirm_password' => 'Confirmation du mot de passe', + 'remember_me' => 'Se souvenir de moi', + 'forgot_your_password' => 'Mot de passe oublié ?', + 'reset_password' => 'Réinitialiser le mot de passe', + 'send_reset_link' => 'Envoyer un lien de réinitialisation du mot de passe', + 'click_here_to_reset' => 'Cliquez ici pour réinitialiser votre mot de passe', + 'change_password' => 'Modifier le mot de passe', + 'unauthorized' => 'Non autorisé.', + 'dashboard' => 'Tableau de bord', + 'handcrafted_by' => 'Artisé par', + 'powered_by' => 'Propulsé par', + 'my_account' => 'Mon compte', + 'update_account_info' => 'Modifier mon compte', + 'save' => 'Enregistrer', + 'cancel' => 'Annuler', + 'error' => 'Erreur', + 'success' => 'Succès', + 'old_password_incorrect' => 'L’ancien mot de passe est erroné.', + 'password_dont_match' => 'Les mots de passe ne correspondent pas.', + 'password_empty' => 'Assurez-vous de bien avoir rempli les champs de mot de passe.', + 'password_updated' => 'Mot de passe mis à jour.', + 'account_updated' => 'Compte mis à jour avec succès.', + 'unknown_error' => 'Un erreur s’est produite. Veuillez réessayer.', + 'error_saving' => 'Erreur lors de l’enregistrement. Veuillez réessayer.', + 'session_expired_error' => 'Votre session a expiré. Veuillez vous reconnecter à votre compte.', +]; diff --git a/lang/vendor/backpack/fr_CA/crud.php b/lang/vendor/backpack/fr_CA/crud.php new file mode 100644 index 0000000..19f11c0 --- /dev/null +++ b/lang/vendor/backpack/fr_CA/crud.php @@ -0,0 +1,142 @@ + 'Enregistrer et créer un nouveau', + 'save_action_save_and_edit' => 'Enregistrer et éditer', + 'save_action_save_and_back' => 'Enregistrer et retour', + 'save_action_changed_notification' => 'Action par défaut changée', + + // Create form + 'add' => 'Ajouter', + 'back_to_all' => 'Retour à la liste ', + 'cancel' => 'Annuler', + 'add_a_new' => 'Ajouter un nouvel élément ', + + // Edit form + 'edit' => 'Modifier', + 'save' => 'Enregistrer', + + // Translatable models + 'edit_translations' => 'EDITER LES TRADUCTIONS', + 'language' => 'Langue', + + // CRUD table view + 'all' => 'Tous les ', + 'in_the_database' => 'dans la base de données', + 'list' => 'Liste', + 'actions' => 'Actions', + 'preview' => 'Aperçu', + 'delete' => 'Supprimer', + 'admin' => 'Administration', + 'details_row' => 'Ligne de détail. Modifiez la à volonté.', + 'details_row_loading_error' => 'Une erreur est survenue en chargeant les détails. Veuillez réessayer.', + + // Confirmation messages and bubbles + 'delete_confirm' => 'Souhaitez-vous réellement supprimer cet élément?', + 'delete_confirmation_title' => 'Élément supprimé', + 'delete_confirmation_message' => 'L’élément a été supprimé avec succès.', + 'delete_confirmation_not_title' => 'NON supprimé', + 'delete_confirmation_not_message' => 'Une erreur est survenue. Votre élément n’a peut-être pas été effacé.', + 'delete_confirmation_not_deleted_title' => 'Non supprimé', + 'delete_confirmation_not_deleted_message' => 'Aucune modification. Votre élément a été conservé.', + + 'ajax_error_title' => 'Erreur', + 'ajax_error_text' => 'Erreur lors du chargement. Merci de réactualiser la page.', + + // DataTables translation + 'emptyTable' => 'Aucune donnée à afficher.', + 'info' => 'Affichage des éléments _START_ à _END_ sur _TOTAL_', + 'infoEmpty' => '', + 'infoFiltered' => '(filtré à partir de _MAX_ éléments au total)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ enregistrements par page', + 'loadingRecords' => 'Chargement...', + 'processing' => 'Traitement...', + 'search' => 'Recherche', + 'zeroRecords' => 'Aucun enregistrement correspondant trouvé', + 'paginate' => [ + 'first' => 'Premier', + 'last' => 'Dernier', + 'next' => 'Suivant', + 'previous' => 'Précédent', + ], + 'aria' => [ + 'sortAscending' => ': activez pour trier la colonne par ordre croissant', + 'sortDescending' => ': activez pour trier la colonne par ordre décroissant', + ], + 'export' => [ + 'export' => 'Exporter', + 'copy' => 'Copier', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => 'Imprimer', + 'column_visibility' => 'Affichage des colonnes', + ], + + // global crud - errors + 'unauthorized_access' => 'Accès non autorisé - vous n’avez pas les droits nécessaires à la consultation de cette page.', + 'please_fix' => 'Veuillez corriger les erreurs suivantes :', + + // global crud - success / error notification bubbles + 'insert_success' => 'L’élément a été ajouté avec succès.', + 'update_success' => 'L’élément a été modifié avec succès.', + + // CRUD reorder view + 'reorder' => 'Réordonner', + 'reorder_text' => 'Utilisez le glisser-déposer pour réordonner.', + 'reorder_success_title' => 'Fait', + 'reorder_success_message' => 'L’ordre a été enregistré.', + 'reorder_error_title' => 'Erreur', + 'reorder_error_message' => 'L’ordre n’a pas pu être enregistré.', + + // CRUD yes/no + 'yes' => 'Oui', + 'no' => 'Non', + + // CRUD filters navbar view + 'filters' => 'Filtres', + 'toggle_filters' => 'Activer les filtres', + 'remove_filters' => 'Retirer les filtres', + + //filters language strings + 'today' => 'Aujourd\'hui', + 'yesterday' => 'Hier', + 'last_7_days' => '7 derniers jours', + 'last_30_days' => '30 derniers jours', + 'this_month' => 'Ce mois-ci', + 'last_month' => 'Le mois dernier', + 'custom_range' => 'Durée personnalisé', + 'weekLabel' => 'S', + + // Fields + 'browse_uploads' => 'Parcourir les fichier chargés', + 'clear' => 'Effacer', + 'page_link' => 'Lien de la page', + 'page_link_placeholder' => 'http://example.com/votre-page', + 'internal_link' => 'Lien interne', + 'internal_link_placeholder' => 'Identifiant de lien interne. Ex: \'admin/page\' (sans guillemets) pour \':url\'', + 'external_link' => 'Lien externe', + 'choose_file' => 'Choisissez un fichier', + + //Table field + 'table_cant_add' => 'Impossible d’ajouter un nouveau :entity', + 'table_max_reached' => 'Nombre maximum :max atteint', + + // File manager + 'file_manager' => 'Gestionnaire de fichiers', +]; diff --git a/lang/vendor/backpack/fr_CA/langfilemanager.php b/lang/vendor/backpack/fr_CA/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/fr_CA/langfilemanager.php @@ -0,0 +1,16 @@ + 'A regisztráció le van zárva.', + 'no_email_column' => 'A felhasználókhoz nincs hozzárendelve e-mail cím.', + 'first_page_you_see' => 'Az első oldal, amit bejelentkezés után látsz.', + 'login_status' => 'Bejelentkezési státusz', + 'logged_in' => 'Be vagy jelentkezve', + 'toggle_navigation' => 'Navigáció váltása', + 'administration' => 'ADMINISZTRÁCIÓ', + 'user' => 'FELHASZNÁLÓ', + 'logout' => 'Kijelentkezés', + 'login' => 'Bejelentkezés', + 'register' => 'Regisztráció', + 'name' => 'Név', + 'email_address' => 'E-mail cím', + 'password' => 'Jelszó', + 'old_password' => 'Régi jelszó', + 'new_password' => 'Új jelszó', + 'confirm_password' => 'Jelszó megerősítése', + 'remember_me' => 'Jegyezzen meg', + 'forgot_your_password' => 'Elfelejtetted a jelszavad?', + 'reset_password' => 'Jelszó visszaállítása', + 'send_reset_link' => 'Jelszó visszaállítási link küldése', + 'click_here_to_reset' => 'Kattints ide a jelszavad visszaállításához', + 'change_password' => 'Jelszó megváltoztatása', + 'unauthorized' => 'Nincs jogosultság.', + 'dashboard' => 'Irányítópult', + 'handcrafted_by' => 'Készítette', + 'powered_by' => 'Powered by', + 'my_account' => 'Saját fiók', + 'update_account_info' => 'Fiók információ frissítése', + 'save' => 'Mentés', + 'cancel' => 'Mégsem', + 'error' => 'Hiba', + 'success' => 'Siker', + 'warning' => 'Figyelmeztetés', + 'notice' => 'Megjegyzés', + 'old_password_incorrect' => 'A régi jelszó helytelen.', + 'password_dont_match' => 'A jelszavak nem egyeznek meg.', + 'password_empty' => 'Mind a két jelszó mezőt ki kell tölteni.', + 'password_updated' => 'Jelszó frissítve.', + 'account_updated' => 'A fiók sikeresen frissítve.', + 'unknown_error' => 'Ismeretlen hiba történt. Kérlek próbáld újra!', + 'error_saving' => 'Hiba mentésnél. Kérlek próbáld újra!', + 'session_expired_error' => 'A munkamenet lejárt. Kérjük, jelentkezzen be újra fiókjába.', + 'welcome' => 'Üdvözöllek!', + 'use_sidebar' => 'Használd a bal oldali sávot tartalom létrehozásához, szerkesztéséhez, vagy törléséhez.', + + 'password_reset' => [ + 'greeting' => 'Szia!', + 'subject' => 'Jelszó visszaállítás', + 'line_1' => 'Azért kapod ezt az e-mailt, mert megkaptuk a jelszó visszaállítási kérelmedet.', + 'line_2' => 'Kattints az alábbi gombra a jelszavad visszaállításához:', + 'button' => 'Jelszó visszaállítás', + 'notice' => 'Ha nem kértél jelszó visszaállítást, akkor nincs további teendőd.', + ], + + 'step' => 'Lépés', + 'confirm_email' => 'E-mail megerősítése', + 'choose_new_password' => 'Új jelszó', + 'confirm_new_password' => 'Új jelszó megerősítése', + +]; diff --git a/lang/vendor/backpack/hu/crud.php b/lang/vendor/backpack/hu/crud.php new file mode 100644 index 0000000..1f46f4d --- /dev/null +++ b/lang/vendor/backpack/hu/crud.php @@ -0,0 +1,166 @@ + 'Mentés és új létrehozása', + 'save_action_save_and_edit' => 'Mentés és szerkesztés', + 'save_action_save_and_back' => 'Mentés és visszalépés', + 'save_action_save_and_preview' => 'Mentés és előnézet', + 'save_action_changed_notification' => 'A mentés utáni alapértelmezett viselkedés megváltozott.', + + // Create form + 'add' => 'Hozzáadás', + 'back_to_all' => 'Vissza ', + 'cancel' => 'Mégsem', + 'add_a_new' => 'Új ', + + // Edit form + 'edit' => 'Szerkesztés', + 'save' => 'Mentés', + + // Translatable models + 'edit_translations' => 'Fordítások', + 'language' => 'Nyelv', + + // CRUD table view + 'all' => 'Összes ', + 'in_the_database' => 'az adatbázisban', + 'list' => 'Listázás', + 'reset' => 'Újratöltés', + 'actions' => 'Műveletek', + 'preview' => 'Előnézet', + 'delete' => 'Törlés', + 'admin' => 'Admin', + 'details_row' => 'Az a részlet sor. Módosítsd, ahogyan szeretnéd.', + 'details_row_loading_error' => 'Hiba történt a részletek betöltésekor. Kérlek próbáld újra!', + 'clone' => 'Klónozás', + 'clone_success' => 'Sikeres klónozás
Létrejött az új elem ugyanezekkel az információkkal.', + 'clone_failure' => 'Sikertelen klónozás
Nem sikerült létrehozni az új elemet. Kérlek próbáld újra!', + + // Confirmation messages and bubbles + 'delete_confirm' => 'Biztos, hogy törölni szeretnéd ez az elemet?', + 'delete_confirmation_title' => 'Törölve', + 'delete_confirmation_message' => 'Az elemet sikeresen töröltük.', + 'delete_confirmation_not_title' => 'NEM sikerült a törlés', + 'delete_confirmation_not_message' => 'Valami hiba történt, az elemet nem sikerült törölni.', + 'delete_confirmation_not_deleted_title' => 'Nem törlődött', + 'delete_confirmation_not_deleted_message' => 'Nem történt semmi. Az elem biztonságban van.', + + // Bulk actions + 'bulk_no_entries_selected_title' => 'Nincs kiválasztott elem.', + 'bulk_no_entries_selected_message' => 'Kérlek válassz ki egy vagy több elemet a csoportos művelethez!', + + // Bulk delete + 'bulk_delete_are_you_sure' => 'Biztos, hogy törölni szeretnéd ezt a :number elemet?', + 'bulk_delete_sucess_title' => 'Elemek törölve', + 'bulk_delete_sucess_message' => ' elem törölve lett.', + 'bulk_delete_error_title' => 'Sikertelen törlés', + 'bulk_delete_error_message' => 'Egy vagy több elemet nem sikerült törölni.', + + // Bulk clone + 'bulk_clone_are_you_sure' => 'Biztos, hogy klónozni szeretnéd ezt a :number elemet?', + 'bulk_clone_sucess_title' => 'Elemek klónozva', + 'bulk_clone_sucess_message' => ' elem klónozva lett.', + 'bulk_clone_error_title' => 'Sikertelen klónozás', + 'bulk_clone_error_message' => 'Egy vagy több elemet nem sikerült klónozni. Kérlek próbáld újra!', + + // Ajax errors + 'ajax_error_title' => 'Hiba', + 'ajax_error_text' => 'Nem sikerült betölteni az oldalt. Kérlek frissítsd!', + + // DataTables translation + 'emptyTable' => 'Nincs adat.', + 'info' => '_START_ - _END_ megjelenítése a(z) _TOTAL_ elemből.', + 'infoEmpty' => 'Nincs elem', + 'infoFiltered' => '(szűrve az összesen _MAX_ elemből)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ elem laponként', + 'loadingRecords' => 'Betöltés...', + 'processing' => 'Feldolgozás...', + 'search' => 'Keresés', + 'zeroRecords' => 'Nem található elem', + 'paginate' => [ + 'first' => 'Első', + 'last' => 'Utolsó', + 'next' => 'Következő', + 'previous' => 'Előző', + ], + 'aria' => [ + 'sortAscending' => ': aktiváld a növekvő rendezéshez', + 'sortDescending' => ': aktiváld a csökkenő rendezéshez', + ], + 'export' => [ + 'export' => 'Exportálás', + 'copy' => 'Másolás', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => 'Nyomtatás', + 'column_visibility' => 'Oszlop láthatósága', + ], + + // global crud - errors + 'unauthorized_access' => 'Jogosulatlan hozzáférés. Nincsenek meg a megfelelő jogosultságaid az oldal megtekintéséhez.', + 'please_fix' => 'Kérlek javítsd a következő hibákat:', + + // global crud - success / error notification bubbles + 'insert_success' => 'Sikeresen hozzáadva.', + 'update_success' => 'Sikeres szerkesztés.', + + // CRUD reorder view + 'reorder' => 'Átrendezés', + 'reorder_text' => 'Használd a fogd és vidd módszert az átrendezéshez.', + 'reorder_success_title' => 'Kész', + 'reorder_success_message' => 'A sorrend mentve.', + 'reorder_error_title' => 'Hiba', + 'reorder_error_message' => 'Nem sikerült menteni a sorrendet.', + + // CRUD yes/no + 'yes' => 'Igen', + 'no' => 'Nem', + + // CRUD filters navbar view + 'filters' => 'Szűrők', + 'toggle_filters' => 'Szűrők váltása', + 'remove_filters' => 'Szűrők eltávolítása', + + // Fields + 'browse_uploads' => 'Feltöltések böngészése', + 'select_all' => 'Összes kiválasztása', + 'select_files' => 'Fájlok kiválasztása', + 'select_file' => 'Fájl kiválasztása', + 'clear' => 'Törlés', + 'page_link' => 'Oldal link', + 'page_link_placeholder' => 'http://example.com/sajat-oldal', + 'internal_link' => 'Belső link', + 'internal_link_placeholder' => 'Belső link. Pl: \'admin/oldal\' (idézőjelek nélkül) itt \':url\'', + 'external_link' => 'Külső link', + 'choose_file' => 'Fájl kiválasztása', + 'new_item' => 'Új elem', + 'select_entry' => 'Válassz egy elemet', + 'select_entries' => 'Válassz elemeket', + + //Table field + 'table_cant_add' => 'Nem sikerült az új :entity létrehozása.', + 'table_max_reached' => 'Elérted a maximum :max elemet.', + + // File manager + 'file_manager' => 'Fájlkezelő', + + // InlineCreateOperation + 'related_entry_created_success' => 'A kapcsolódó elem létrejött és ki lett választva.', + 'related_entry_created_error' => 'Nem sikerült létrehozni a kapcsolódó elemet.', +]; diff --git a/lang/vendor/backpack/hu/langfilemanager.php b/lang/vendor/backpack/hu/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/hu/langfilemanager.php @@ -0,0 +1,16 @@ + 'Pendaftaran di tutup.', + 'no_email_column' => 'Pengguna tidak memiliki alamat email terkait.', + 'first_page_you_see' => 'Halaman pertama yang Anda lihat setelah login', + 'login_status' => 'Status Masuk', + 'logged_in' => 'Anda sudah masuk!', + 'toggle_navigation' => 'Navigasi beralih', + 'administration' => 'Administrasi', + 'user' => 'Pengguna', + 'logout' => 'Keluar', + 'login' => 'Masuk', + 'register' => 'Daftar', + 'name' => 'Nama', + 'email_address' => 'Alamat Email', + 'password' => 'Sandi', + 'old_password' => 'Kata sandi lama', + 'new_password' => 'Kata sandi baru', + 'confirm_password' => 'Konfirmasi Sandi', + 'remember_me' => 'Ingat Saya', + 'forgot_your_password' => 'Lupa kata sandi?', + 'reset_password' => 'Setel ulang sandi', + 'send_reset_link' => 'Kirim link reset kata sandi', + 'click_here_to_reset' => 'Klik Disini untuk menyetel ulang kata sandi', + 'change_password' => 'Ganti kata sandi', + 'unauthorized' => 'Tidak Sah.', + 'dashboard' => 'Dasbor', + 'handcrafted_by' => 'Buatan tangan oleh', + 'powered_by' => 'Dipersembahkan oleh', + 'my_account' => 'Akun saya', + 'update_account_info' => 'Perbarui Info Akun', + 'save' => 'Simpan', + 'cancel' => 'Batalkan', + 'error' => 'Terjadi kesalahan', + 'success' => 'Sukses', + 'warning' => 'Peringatan', + 'notice' => 'Perhatian', + 'old_password_incorrect' => 'Kata sandi lama salah.', + 'password_dont_match' => 'Kata sandi tidak cocok.', + 'password_empty' => 'Pastikan kedua kolom kata sandi diisi.', + 'password_updated' => 'Kata sandi diperbarui.', + 'account_updated' => 'Akun berhasil diperbarui.', + 'unknown_error' => 'Telah terjadi kesalahan yang tidak diketahui. Silakan coba lagi.', + 'error_saving' => 'Kesalahan saat menyimpan. Silakan coba lagi.', + 'session_expired_error' => 'Sesi Anda telah berakhir. Silakan login kembali ke akun Anda.', + 'welcome' => 'Selamat datang!', + 'use_sidebar' => 'Gunakan menu kiri untuk membuat, mengedit, atau menghapus konten.', + + 'password_reset' => [ + 'greeting' => 'Halo!', + 'subject' => 'Setel Ulang Pemberitahuan Kata Sandi', + 'line_1' => 'Anda menerima email ini karena kami menerima permintaan pengaturan ulang kata sandi untuk akun Anda.', + 'line_2' => 'Klik tombol di bawah untuk mengatur ulang kata sandi Anda:', + 'button' => 'Setel Ulang Kata Sandi', + 'notice' => 'Jika Anda tidak meminta pengaturan ulang kata sandi, tidak ada tindakan lebih lanjut yang diperlukan.', + ], + + 'step' => 'Langkah', + 'confirm_email' => 'Konfirmasi email', + 'choose_new_password' => 'Pilih Kata Sandi Baru', + 'confirm_new_password' => 'Konfirmasi kata sandi baru', + +]; diff --git a/lang/vendor/backpack/id/crud.php b/lang/vendor/backpack/id/crud.php new file mode 100644 index 0000000..2e76d12 --- /dev/null +++ b/lang/vendor/backpack/id/crud.php @@ -0,0 +1,159 @@ + 'Simpan dan buat baru', + 'save_action_save_and_edit' => 'Simpan dan lanjutkan perubahan', + 'save_action_save_and_back' => 'Simpan dan kembali', + 'save_action_save_and_preview' => 'Simpan dan lihat', + 'save_action_changed_notification' => 'Perilaku default setelah penyimpanan diubah.', + + // Create form + 'add' => 'Tambah', + 'back_to_all' => 'Kembali ke semua ', + 'cancel' => 'Batal', + 'add_a_new' => 'Tambahkan yang baru ', + + // Edit form + 'edit' => 'Ubah', + 'save' => 'Simpan', + + // Translatable models + 'edit_translations' => 'Terjemahan', + 'language' => 'Bahasa', + + // CRUD table view + 'all' => 'Semua ', + 'in_the_database' => 'di database', + 'list' => 'Daftar', + 'reset' => 'Set ulang', + 'actions' => 'Aksi', + 'preview' => 'Lihat', + 'delete' => 'Hapus', + 'admin' => 'Admin', + 'details_row' => 'Ini adalah baris rincian. Ubah sesuka Anda.', + 'details_row_loading_error' => 'Terjadi kesalahan saat memuat detail. Silakan coba lagi.', + 'clone' => 'Duplikat', + 'clone_success' => 'Masukan telah diduplikat
Masukan baru telah ditambahkan, dengan informasi yang sama.', + 'clone_failure' => 'Proses duplikat gagal
Masukan baru tidak dapat dibuat. Silakan coba lagi.', + + // Confirmation messages and bubbles + 'delete_confirm' => 'Anda yakin ingin menghapus item ini?', + 'delete_confirmation_title' => 'Item Dihapus', + 'delete_confirmation_message' => 'Item telah berhasil dihapus.', + 'delete_confirmation_not_title' => 'TIDAK dihapus', + 'delete_confirmation_not_message' => 'Terjadi kesalahan. Item Anda mungkin belum dihapus.', + 'delete_confirmation_not_deleted_title' => 'Tidak dihapus', + 'delete_confirmation_not_deleted_message' => 'Tidak ada yang terjadi. Item Anda aman.', + + // Bulk actions + 'bulk_no_entries_selected_title' => 'Tidak ada masukan yang dipilih', + 'bulk_no_entries_selected_message' => 'Silakan pilih satu atau lebih untuk melakukan tindakan massal pada mereka.', + + // Bulk confirmation + 'bulk_delete_are_you_sure' => 'Anda yakin ingin menghapus :number item ini?', + 'bulk_delete_sucess_title' => 'Item dihapus', + 'bulk_delete_sucess_message' => ' item telah dihapus', + 'bulk_delete_error_title' => 'Penghapusan gagal', + 'bulk_delete_error_message' => 'Satu atau lebih item tidak dapat dihapus', + + // Ajax errors + 'ajax_error_title' => 'Terjadi kesalahan', + 'ajax_error_text' => 'Terjadi kesalahan saat memuat halaman. Harap segarkan halaman.', + + // DataTables translation + 'emptyTable' => 'Tak ada data yang tersedia pada tabel ini', + 'info' => 'Menampilkan _START_ hingga _END_ dari _TOTAL_ masukan', + 'infoEmpty' => 'Tidak ada masukan', + 'infoFiltered' => '(difilter dari _MAX_ jumlah masukan)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ masukan per halaman', + 'loadingRecords' => 'Memuat...', + 'processing' => 'Memproses...', + 'search' => 'Cari', + 'zeroRecords' => 'Tidak ada data yang cocok ditemukan', + 'paginate' => [ + 'first' => 'Pertama', + 'last' => 'Terakhir', + 'next' => 'Selanjutnya', + 'previous' => 'Sebelumnya', + ], + 'aria' => [ + 'sortAscending' => ': aktifkan untuk mengurutkan kolom naik', + 'sortDescending' => ': aktifkan untuk mengurutkan kolom turun', + ], + 'export' => [ + 'export' => 'Ekspor', + 'copy' => 'Salin', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => 'Cetak', + 'column_visibility' => 'Visibilitas kolom', + ], + + // global crud - errors + 'unauthorized_access' => 'Akses tidak sah - Anda tidak memiliki izin yang diperlukan untuk melihat halaman ini.', + 'please_fix' => 'Harap perbaiki yang berikut ini:', + + // global crud - success / error notification bubbles + 'insert_success' => 'Item berhasil ditambahkan.', + 'update_success' => 'Item berhasil diubah.', + + // CRUD reorder view + 'reorder' => 'Susun ulang', + 'reorder_text' => 'Gunakan seret & lepas untuk menyusun ulang.', + 'reorder_success_title' => 'Selesai', + 'reorder_success_message' => 'Susunan Anda telah disimpan.', + 'reorder_error_title' => 'Terjadi kesalahan', + 'reorder_error_message' => 'Susunan Anda belum tersimpan', + + // CRUD yes/no + 'yes' => 'Ya', + 'no' => 'Tidak', + + // CRUD filters navbar view + 'filters' => 'Filter', + 'toggle_filters' => 'Alihkan filter', + 'remove_filters' => 'Hapus filter', + + // Fields + 'browse_uploads' => 'Jelajahi unggahan', + 'select_all' => 'Pilih Semua', + 'select_files' => 'Pilih file', + 'select_file' => 'Pilih file', + 'clear' => 'Bersihkan', + 'page_link' => 'Tautan halaman', + 'page_link_placeholder' => 'http://contoh.com/halaman-yang-anda-inginkan', + 'internal_link' => 'Tautan internal', + 'internal_link_placeholder' => 'Slug internal. Cth: \'admin/page\' (tanpa tanda kutip) untuk \':url\'', + 'external_link' => 'Tautan eksternal', + 'choose_file' => 'Pilih File', + 'new_item' => 'Item baru', + 'select_entry' => 'Pilih masukan', + 'select_entries' => 'Pilih masukan', + + //Table field + 'table_cant_add' => 'Tidak dapat menambahkan :entity yang baru', + 'table_max_reached' => 'Jumlah maksimum :max telah tercapai', + + // File manager + 'file_manager' => 'Manajer File', + + // InlineCreateOperation + 'related_entry_created_success' => 'Masukan terkait telah dibuat dan dipilih.', + 'related_entry_created_error' => 'Tidak dapat membuat masukan terkait.', +]; diff --git a/lang/vendor/backpack/id/langfilemanager.php b/lang/vendor/backpack/id/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/id/langfilemanager.php @@ -0,0 +1,16 @@ + 'Le registrazioni sono chiuse.', + 'no_email_column' => 'Gli utenti non hanno un indirizzo email associato.', + 'first_page_you_see' => 'La prima pagina che vedi dopo il login', + 'login_status' => 'Stato autenticazione', + 'logged_in' => 'Sei autenticato!', + 'toggle_navigation' => 'Apri/chiudi navigazione', + 'administration' => 'AMMINISTRAZIONE', + 'user' => 'UTENTE', + 'logout' => 'Esci', + 'login' => 'Accedi', + 'register' => 'Registrati', + 'name' => 'Nome', + 'email_address' => 'Indirizzo E-mail', + 'email' => 'E-mail', + 'username' => 'Nome utente', + 'password' => 'Password', + 'old_password' => 'Vecchia Password', + 'new_password' => 'Nuova Password', + 'confirm_password' => 'Conferma Password', + 'remember_me' => 'Ricordami', + 'forgot_your_password' => 'Hai dimenticato la password?', + 'reset_password' => 'Reimposta password', + 'send_reset_link' => 'Invia link di reset', + 'click_here_to_reset' => 'Clicca qui per reimpostare la tua password', + 'change_password' => 'Cambia Password', + 'unauthorized' => 'Non autorizzato.', + 'dashboard' => 'Dashboard', + 'handcrafted_by' => 'Realizzato da', + 'powered_by' => 'Creato con', + 'my_account' => 'Il mio Account', + 'update_account_info' => 'Aggiorna dati Account', + 'save' => 'Salva', + 'cancel' => 'Annulla', + 'error' => 'Errore', + 'success' => 'Operazione eseguita con successo', + 'warning' => 'Avvertimento', + 'notice' => 'Avviso', + 'old_password_incorrect' => 'La vecchia password non è corretta.', + 'password_dont_match' => 'Le password non corrispondono.', + 'password_empty' => 'Accertati di aver riempito entrambi i campi password.', + 'password_updated' => 'Password aggiornata.', + 'account_updated' => 'Account aggiornato con successo.', + 'unknown_error' => 'Si è verificato un errore sconosciuto. Riprova più tardi.', + 'error_saving' => 'Errore durante il salvataggio. Riprova più tardi.', + 'session_expired_error' => 'La tua sessione è scaduta. Effettua nuovamente l\'accesso al tuo account.', + 'welcome' => 'Benvenuto!', + 'use_sidebar' => 'Utilizza la barra laterale per creare, modificare od eliminare contenuti.', + + 'password_reset' => [ + 'greeting' => 'Ciao!', + 'subject' => 'Notifica di reset della password', + 'line_1' => 'Stai ricevendo questa e-mail in quanto abbiamo ricevuto una richiesta di reset della password dal tuo account.', + 'line_2' => 'Clicca il pulsante qui sotto per reimpostare la tua password:', + 'button' => 'Reimposta Password', + 'notice' => 'Se tu non hai richiesto il reset della password, non è necessaria nessun\'altra azione.', + ], + + 'step' => 'Passo', + 'confirm_email' => 'Conferma E-mail', + 'choose_new_password' => 'Scegli una nuova password', + 'confirm_new_password' => 'Conferma la nuova password', + 'throttled' => 'Hai richiesto un reset della password di recente. Per favore, controlla la tua email. Se non hai ricevuto la mail, allora riprova più tardi.', + 'throttled_request' => 'Hai eseguito troppi tentativi. Per favore, aspetta qualche minuto quindi riprova.', +]; diff --git a/lang/vendor/backpack/it/crud.php b/lang/vendor/backpack/it/crud.php new file mode 100644 index 0000000..ba955d7 --- /dev/null +++ b/lang/vendor/backpack/it/crud.php @@ -0,0 +1,183 @@ + 'Salva ed aggiungi un nuovo elemento', + 'save_action_save_and_edit' => 'Salva e modifica questo elemento', + 'save_action_save_and_back' => 'Salva e torna indietro', + 'save_action_save_and_preview' => 'Salva e vai all\'anteprima', + 'save_action_changed_notification' => 'Azione predefinita cambiata', + + // Create form + 'add' => 'Aggiungi', + 'back_to_all' => 'Torna alla lista di ', + 'cancel' => 'Annulla', + 'add_a_new' => 'Aggiungi nuovo/a ', + + // Edit form + 'edit' => 'Modifica', + 'save' => 'Salva', + + // Translatable models + 'edit_translations' => 'Modifica traduzioni', + 'language' => 'Lingua', + + // CRUD table view + 'all' => 'Tutti i ', + 'in_the_database' => 'nel database', + 'list' => 'Lista', + 'reset' => 'Reimposta', + 'actions' => 'Azioni', + 'preview' => 'Anteprima', + 'delete' => 'Elimina', + 'admin' => 'Amministrazione', + 'details_row' => 'Questa è la riga dei dettagli. Modificala a tuo piacimento.', + 'details_row_loading_error' => "C'è stato un errore caricando i dettagli. Riprova.", + 'clone' => 'Duplica', + 'clone_success' => 'Elemento duplicato
Un nuovo elemento è stato creato con le stesse informazioni di questo.', + 'clone_failure' => 'Duplicazione fallita
Il nuovo elemento non può essere creato. Per favore, riprova.', + + // Confirmation messages and bubbles + 'delete_confirm' => 'Sei sicuro di eliminare questo elemento?', + 'delete_confirmation_title' => 'Elemento eliminato', + 'delete_confirmation_message' => "L'elemento è stato eliminato con successo.", + 'delete_confirmation_not_title' => 'NON eliminato', + 'delete_confirmation_not_message' => "C'è stato un errore. L'elemento potrebbe non essere stato eliminato.", + 'delete_confirmation_not_deleted_title' => 'Non eliminato', + 'delete_confirmation_not_deleted_message' => "Non è successo niente. L'elemento è al sicuro.", + + // Bulk actions + 'bulk_no_entries_selected_title' => 'Nessun record selezionato', + 'bulk_no_entries_selected_message' => 'Seleziona uno o più record su cui effettuare l\'operazione.', + + // Bulk delete + 'bulk_delete_are_you_sure' => 'Sei sicuro di voler eliminare :number record?', + 'bulk_delete_sucess_title' => 'Record eliminati', + 'bulk_delete_sucess_message' => ' record sono stati eliminati', + 'bulk_delete_error_title' => 'Record non eliminati', + 'bulk_delete_error_message' => 'Non è stato possibile eliminare uno o più record', + + // Bulk clone + 'bulk_clone_are_you_sure' => 'Sei sicuro di voler clonare :number record?', + 'bulk_clone_sucess_title' => 'Record clonati', + 'bulk_clone_sucess_message' => ' record sono stati clonati.', + 'bulk_clone_error_title' => 'Record non clonati', + 'bulk_clone_error_message' => 'Non è stato possibile clonare uno o più record. Per favore, riprova.', + + // Ajax errors + 'ajax_error_title' => 'Errore', + 'ajax_error_text' => 'Errore durante il caricamento della pagina. Per favore ricarica la pagina.', + + // DataTables translation + 'emptyTable' => 'Nessun record da visualizzare', + 'info' => 'Visualizzando da _START_ a _END_ record di _TOTAL_', + 'infoEmpty' => 'Non vi sono elementi', + 'infoFiltered' => '(filtrati da _MAX_ record totali)', + 'infoPostFix' => '.', + 'thousands' => '.', + 'lengthMenu' => '_MENU_ record per pagina', + 'loadingRecords' => 'Caricamento...', + 'processing' => 'Elaborazione...', + 'search' => 'Cerca', + 'zeroRecords' => 'Nessun record corrispondente', + 'paginate' => [ + 'first' => 'Primo', + 'last' => 'Ultimo', + 'next' => 'Prossimo', + 'previous' => 'Precedente', + ], + 'aria' => [ + 'sortAscending' => ': attiva per ordinare la colonna ascendentemente', + 'sortDescending' => ': attiva per ordinare la colonna discendentemente', + ], + 'export' => [ + 'export' => 'Esporta', + 'copy' => 'Copia', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => 'Stampa', + 'column_visibility' => 'Visibilità colonne', + ], + + // global crud - errors + 'unauthorized_access' => 'Accesso non autorizzato - non hai i permessi necessari per vedere questa pagina.', + 'please_fix' => 'Per favore correggi i seguenti errori:', + + // global crud - success / error notification bubbles + 'insert_success' => "L'elemento è stato aggiunto correttamente.", + 'update_success' => "L'elemento è stato aggiornato correttamente.", + + // CRUD reorder view + 'reorder' => 'Riordina', + 'reorder_text' => 'Seleziona e trascina per riordinare.', + 'reorder_success_title' => 'Fatto', + 'reorder_success_message' => 'Il tuo ordinamento è stato salvato.', + 'reorder_error_title' => 'Errore', + 'reorder_error_message' => 'Il tuo ordinamento non è stato salvato.', + + // CRUD yes/no + 'yes' => 'Sì', + 'no' => 'No', + + // CRUD filters navbar view + 'filters' => 'Filtri', + 'toggle_filters' => 'Attiva/disattiva filtri', + 'remove_filters' => 'Rimuovi filtri', + 'apply' => 'Applica', + + //filters language strings + 'today' => 'Oggi', + 'yesterday' => 'Domani', + 'last_7_days' => 'Ultimi 7 giorni', + 'last_30_days' => 'Ultimi 30 giorni', + 'this_month' => 'Questo mese', + 'last_month' => 'Mese precedente', + 'custom_range' => 'Intervallo di date', + 'weekLabel' => 'W', + + // Fields + 'browse_uploads' => 'Sfoglia file caricati', + 'select_all' => 'Seleziona tutti', + 'select_files' => 'Seleziona i files', + 'select_file' => 'Seleziona un file', + 'clear' => 'Pulisci', + 'page_link' => 'Link Pagina', + 'page_link_placeholder' => 'http://esempio.com/pagina-desiderata', + 'internal_link' => 'Link Interno', + 'internal_link_placeholder' => 'Slug interno. Es: \'admin/page\' (no quotes) for \':url\'', + 'external_link' => 'Link Esterno', + 'choose_file' => 'Scegli file', + 'new_item' => 'Nuovo elemento', + 'select_entry' => 'Seleziona un elemento', + 'select_entries' => 'Select degli elementi', + + //Table field + 'table_cant_add' => 'Impossibile aggiungere una nuova :entity', + 'table_max_reached' => 'Numero massimo di :max raggiunto', + + // File manager + 'file_manager' => 'File Manager', + + // InlineCreateOperation + 'related_entry_created_success' => 'L\'elemento correlato è stato creato e selezionato.', + 'related_entry_created_error' => 'Non è possibile creare elementi correlati.', + + // returned when no translations found in select inputs + 'empty_translations' => '(nessuna voce)', + + // The pivot selector required validation message + 'pivot_selector_required_validation_message' => 'Il campo pivot è obbligatorio.', +]; diff --git a/lang/vendor/backpack/it/langfilemanager.php b/lang/vendor/backpack/it/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/it/langfilemanager.php @@ -0,0 +1,16 @@ + '登録は締め切られました。', + 'no_email_column' => 'ユーザーに紐付いたメールアドレスがありません。', + 'first_page_you_see' => 'ログイン後最初に表示されるページ', + 'login_status' => 'ログインステータス', + 'logged_in' => 'ログインに成功しました!', + 'toggle_navigation' => 'ナビゲーション切り替え', + 'administration' => '管理', + 'user' => 'ユーザー', + 'logout' => 'ログアウト', + 'login' => 'ログイン', + 'register' => '登録', + 'name' => '名前', + 'email_address' => 'メールアドレス', + 'password' => 'パスワード', + 'old_password' => '古いパスワード', + 'new_password' => '新しいパスワード', + 'confirm_password' => '新しいパスワードの確認', + 'remember_me' => 'ログイン状態を維持する', + 'forgot_your_password' => 'パスワードをお忘れですか?', + 'reset_password' => 'パスワードリセット', + 'send_reset_link' => 'パスワードリセットリンクを送信する。', + 'click_here_to_reset' => 'ここをクリックしてパスワードをリセット', + 'change_password' => 'パスワードの変更', + 'unauthorized' => '許可されていません。', + 'dashboard' => 'ダッシュボード', + 'handcrafted_by' => 'Handcrafted by', + 'powered_by' => 'Powered by', + 'my_account' => 'マイアカウント', + 'update_account_info' => 'アカウント情報の更新', + 'save' => '保存', + 'cancel' => 'キャンセル', + 'error' => 'エラー', + 'success' => '成功', + 'warning' => '警告', + 'notice' => '通知', + 'old_password_incorrect' => '古いパスワードが正しくありません。', + 'password_dont_match' => 'パスワードが一致しません。', + 'password_empty' => 'パスワードが入力されているか確認してください。', + 'password_updated' => 'パスワードが更新されました。', + 'account_updated' => 'アカウントが正しく更新されました。', + 'unknown_error' => '不明なエラーが発生しました。もう一度やり直して下さい。', + 'error_saving' => '保存中にエラーが発生しました。もう一度やり直して下さい。', + 'session_expired_error' => 'セッションの有効期限が切れました。 アカウントに再度ログインしてください。', + 'welcome' => 'ようこそ!', + 'use_sidebar' => '左側のサイドバーを使用してコンテンツを作成や編集、削除しましょう。', + + 'password_reset' => [ + 'greeting' => 'こんにちは!', + 'subject' => 'パスワードリセットのお知らせ', + 'line_1' => 'パスワードリセット依頼を受け付けたため、このメールを送信しています。', + 'line_2' => '以下のボタンをクリックしてパスワードをリセットして下さい:', + 'button' => 'パスワードリセット', + 'notice' => 'パスワードリセットをリクエストしていない場合、このメールを無視して下さい。', + ], + + 'step' => 'ステップ', + 'confirm_email' => 'メールアドレスの確認', + 'choose_new_password' => '新しいパスワードの選択', + 'confirm_new_password' => '新しいパスワードの確認', + +]; diff --git a/lang/vendor/backpack/ja/crud.php b/lang/vendor/backpack/ja/crud.php new file mode 100644 index 0000000..2c55fb6 --- /dev/null +++ b/lang/vendor/backpack/ja/crud.php @@ -0,0 +1,180 @@ + '保存して作成', + 'save_action_save_and_edit' => '保存して編集', + 'save_action_save_and_back' => '保存して戻る', + 'save_action_save_and_preview' => '保存してプレビュー', + 'save_action_changed_notification' => '保存後のデフォルト動作が変更されました。', + + // Create form + 'add' => '追加', + 'back_to_all' => 'Back to all ', + 'cancel' => 'キャンセル', + 'add_a_new' => 'Add a new ', + + // Edit form + 'edit' => '編集', + 'save' => '保存', + + // Translatable models + 'edit_translations' => '翻訳を編集', + 'language' => '言語', + + // CRUD table view + 'all' => '全 ', + 'in_the_database' => 'データベース上の', + 'list' => '一覧', + 'reset' => 'リセット', + 'actions' => '操作', + 'preview' => '表示', + 'delete' => '削除', + 'admin' => '管理者', + 'details_row' => 'これは詳細列です。必要に応じて修正して下さい。', + 'details_row_loading_error' => '詳細列の読み込み時にエラーが発生しました。もう一度やり直して下さい。', + 'clone' => '複製', + 'clone_success' => 'データを複製しました
このデータと同じ情報で新しいデータを追加しました。', + 'clone_failure' => '複製に失敗しました
新しいデータを作成できませんでした。もう一度やり直して下さい。', + + // Confirmation messages and bubbles + 'delete_confirm' => 'このデータを削除してもよろしいですか?', + 'delete_confirmation_title' => 'データを削除しました', + 'delete_confirmation_message' => 'データは正常に削除されました。', + 'delete_confirmation_not_title' => '削除できません', + 'delete_confirmation_not_message' => 'エラーが発生しました。データは削除されませんでした。', + 'delete_confirmation_not_deleted_title' => '削除できません', + 'delete_confirmation_not_deleted_message' => 'データは削除されませんでした。', + + // Bulk actions + 'bulk_no_entries_selected_title' => 'データが未選択', + 'bulk_no_entries_selected_message' => '一括操作を行うには、1 件以上データを選択して下さい。', + + // Bulk delete + 'bulk_delete_are_you_sure' => ':number 件のデータを削除してもよろしいですか?', + 'bulk_delete_sucess_title' => 'データを削除しました', + 'bulk_delete_sucess_message' => ' 件のデータを削除しました。', + 'bulk_delete_error_title' => '削除失敗', + 'bulk_delete_error_message' => '1 件以上のデータを削除できません', + + // Bulk clone + 'bulk_clone_are_you_sure' => '本当にこの :number 件のデータを複製しますか?', + 'bulk_clone_sucess_title' => 'データを複製しました', + 'bulk_clone_sucess_message' => ' 件のデータを複製しました。', + 'bulk_clone_error_title' => '複製に失敗しました', + 'bulk_clone_error_message' => '1 件以上のデータを作成できませんでした。もう一度やり直して下さい。', + + // Ajax errors + 'ajax_error_title' => 'エラー', + 'ajax_error_text' => 'ページロードエラー。ページを更新してください。', + + // DataTables translation + 'emptyTable' => 'テーブルにデータが存在しません', + 'info' => '_TOTAL_ 件中 _START_ から _END_ を表示', + 'infoEmpty' => '', + 'infoFiltered' => '(全 _MAX_ 件からフィルター)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ 件表示', + 'loadingRecords' => '読み込み中...', + 'processing' => '実行中...', + 'search' => '検索', + 'zeroRecords' => '一致するレコードが見つかりませんでした', + 'paginate' => [ + 'first' => '先頭', + 'last' => '最後', + 'next' => '次', + 'previous' => '前', + ], + 'aria' => [ + 'sortAscending' => ': 昇順に並び替え', + 'sortDescending' => ': 降順に並び替え', + ], + 'export' => [ + 'export' => 'エクスポート', + 'copy' => 'コピー', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => '印刷', + 'column_visibility' => 'カラムの表示', + ], + + // global crud - errors + 'unauthorized_access' => '許可されていないアクセス - このページを表示する為に必要なパーミッションがありません。', + 'please_fix' => '次のエラーを修正して下さい:', + + // global crud - success / error notification bubbles + 'insert_success' => 'データは正常に追加されました。', + 'update_success' => 'データは正常に更新されました。', + + // CRUD reorder view + 'reorder' => '並び替え', + 'reorder_text' => 'ドラッグアンドドロップで並び替え可能です。', + 'reorder_success_title' => '完了', + 'reorder_success_message' => '並び順を保存しました。', + 'reorder_error_title' => 'エラー', + 'reorder_error_message' => '並び順は保存されませんでした。', + + // CRUD yes/no + 'yes' => 'はい', + 'no' => 'いいえ', + + // CRUD filters navbar view + 'filters' => 'フィルター', + 'toggle_filters' => 'フィルター切り替え', + 'remove_filters' => '全フィルターを削除', + 'apply' => '適用', + + //filters language strings + 'today' => '今日', + 'yesterday' => '昨日', + 'last_7_days' => '過去7日間', + 'last_30_days' => '過去30日間', + 'this_month' => '今月', + 'last_month' => '先月', + 'custom_range' => 'カスタム', + 'weekLabel' => 'W', + + // Fields + 'browse_uploads' => 'アップロードから選択', + 'select_all' => '全て選択', + 'select_files' => '複数ファイル選択', + 'select_file' => 'ファイル選択', + 'clear' => 'クリア', + 'page_link' => 'ページリンク', + 'page_link_placeholder' => 'http://example.com/your-desired-page', + 'internal_link' => '内部リンク', + 'internal_link_placeholder' => '内部スラッグ 例: \':url\' に続く \'admin/page\' (クォーテーション無し)', + 'external_link' => '外部リンク', + 'choose_file' => 'ファイルを選択', + 'new_item' => '項目を追加', + 'select_entry' => '項目を1つ選んでください', + 'select_entries' => '項目を複数選んでください', + + // Table field + 'table_cant_add' => '新しい :entity を追加できません', + 'table_max_reached' => '最大数 :max に達しました', + + // File manager + 'file_manager' => 'ファイルマネージャー', + + // InlineCreateOperation + 'related_entry_created_success' => '関連するデータが追加され、選択されました。', + 'related_entry_created_error' => '関連するデータを追加できませんでした。', + + // returned when no translations found in select inputs + 'empty_translations' => '(なし)', +]; diff --git a/lang/vendor/backpack/ja/langfilemanager.php b/lang/vendor/backpack/ja/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/ja/langfilemanager.php @@ -0,0 +1,16 @@ + 'Reģistrācija aizvērta.', + 'no_email_column' => 'Lietotājiem nav piesaistītas e-pasta adreses.', + 'first_page_you_see' => 'Pirmā lapa ko redzat pēc pieslēgšanās', + 'login_status' => 'Pieslēgšanās statuss', + 'logged_in' => 'Jūs esat pieslēgušies!', + 'toggle_navigation' => 'Pārslēgt navigāciju', + 'administration' => 'ADMINISTRĀCIJA', + 'user' => 'LIETOTĀJS', + 'logout' => 'Iziet', + 'login' => 'Pieslēgties', + 'register' => 'Reģistrēties', + 'name' => 'Vārds', + 'email_address' => 'E-pasta Adrese', + 'password' => 'Parole', + 'old_password' => 'Vecā parole', + 'new_password' => 'Jaunā parole', + 'confirm_password' => 'Apstiprināt Paroli', + 'remember_me' => 'Atcerēties Mani', + 'forgot_your_password' => 'Aizmirsāt Jūsu Paroli?', + 'reset_password' => 'Atjaunot Paroli', + 'send_reset_link' => 'Sūtīt Paroles Atjaunošanas Saiti', + 'click_here_to_reset' => 'Nospiediet šeit lai atjaunotu Jūsu paroli', + 'change_password' => 'Paroles maiņa', + 'unauthorized' => 'Neautorizēts.', + 'dashboard' => 'Instrumentu panelis', + 'handcrafted_by' => 'Handcrafted by', + 'powered_by' => 'Powered by', + 'my_account' => 'Mans konts', + 'update_account_info' => 'Konta rediģēšana', + 'save' => 'Saglabāt', + 'cancel' => 'Atcelt', + 'error' => 'Kļūda', + 'success' => 'Darbība veiksmīga', + 'warning' => 'Brīdinājums', + 'notice' => 'Paziņojums', + 'old_password_incorrect' => 'Vecā parole nav pareiza.', + 'password_dont_match' => 'Paroles nesakrīt.', + 'password_empty' => 'Pārliecinies vai abi paroļu lauki ir aizpildīti.', + 'password_updated' => 'Parole nomainīta.', + 'account_updated' => 'Konta rediģēšana veiksmīga.', + 'unknown_error' => 'Nezināma kļūda. Lūdzu mēģini vēlreiz.', + 'error_saving' => 'Kļūda saglabājot. Lūdzu mēģini vēlreiz.', + 'session_expired_error' => 'Jūsu sesija ir beidzies. Lūdzu, vēlreiz piesakieties savā kontā.', + 'welcome' => 'Laipni lūgti!', + 'use_sidebar' => 'Izmantojiet sānjoslu pa kreisi, lai izveidotu, rediģētu vai izdzēstu saturu.', + + 'password_reset' => [ + 'greeting' => 'Labdien!', + 'subject' => 'Paroles atjaunošanas paziņojums', + 'line_1' => 'Jūs saņēmāt šo e-pastu, jo mēs saņēmām paroles atjaunošanas pieprasījumu Jūsu kontam.', + 'line_2' => 'Klikšķiniet zemākesošo pogu, lai atjaunotu savu paroli:', + 'button' => 'Atjaunot paroli', + 'notice' => 'Ja Jūs nepieprasījāt paroles atjaunošanu, turpmāka darbība nav nepieciešama un šo e-pastu var ignorēt.', + ], + + 'step' => 'Solis', + 'confirm_email' => 'Apstiprināt e-pastu', + 'choose_new_password' => 'Jaunā Parole', + 'confirm_new_password' => 'Apstiprināt Paroli', +]; diff --git a/lang/vendor/backpack/lv/crud.php b/lang/vendor/backpack/lv/crud.php new file mode 100644 index 0000000..9e3471b --- /dev/null +++ b/lang/vendor/backpack/lv/crud.php @@ -0,0 +1,159 @@ + 'Saglabāt un jauns ieraksts', + 'save_action_save_and_edit' => 'Saglabāt un rediģēt šo ierakstu', + 'save_action_save_and_back' => 'Saglabāt un atpakaļ', + 'save_action_save_and_preview' => 'Saglabāt un priekšskatīt', + 'save_action_changed_notification' => 'Uzvedība pēc noklusējuma pēc izmaiņu saglabāšanas.', + + // Create form + 'add' => 'Jauns', + 'back_to_all' => 'Atpakaļ pie Visiem ', + 'cancel' => 'Atcelt', + 'add_a_new' => 'Jauns ', + + // Edit form + 'edit' => 'Rediģēt', + 'save' => 'Saglabāt', + + // Translatable models + 'edit_translations' => 'LABOT TULKOJUMUS', + 'language' => 'Valoda', + + // CRUD table view + 'all' => 'Visi ', + 'in_the_database' => 'datubāzē', + 'list' => 'Saraksts', + 'reset' => 'Atiestatīt', + 'actions' => 'Darbības', + 'preview' => 'Priekšapskats', + 'delete' => 'Dzēst', + 'admin' => 'Admin', + 'details_row' => 'Šī ir detaļu rinda.', + 'details_row_loading_error' => 'Notika kļuda lādējot detaļas. Lūdzu atkārtojiet.', + 'clone' => 'Klonēt', + 'clone_success' => 'Ieraksts ir klonēts
Pievienots jauns ieraksts ar tādu pašu informāciju kā šis.', + 'clone_failure' => 'Klonēšana neizdevās
Jauno ierakstu nevarēja izveidot. Lūdzu mēģiniet vēlreiz.', + + // Confirmation messages and bubbles + 'delete_confirm' => 'Vai esat pārliecināti, ka gribat izdzēst šo ierakstu?', + 'delete_confirmation_title' => 'Ieraksts Izdzēsts', + 'delete_confirmation_message' => 'Elements tika izdzēsts veiksmīgi.', + 'delete_confirmation_not_title' => 'NAV izdzēsts', + 'delete_confirmation_not_message' => 'Notika kļūda. Ieraksts var būt neizdzēsts.', + 'delete_confirmation_not_deleted_title' => 'Nav izdzēsts', + 'delete_confirmation_not_deleted_message' => 'Nekas nenotika. Ieraksts ir drošībā.', + + // Bulk actions + 'bulk_no_entries_selected_title' => 'Nav atlasīts neviens ieraksts', + 'bulk_no_entries_selected_message' => 'Lūdzu atlasiet vienu vai vairākus ierakstus, lai ar tiem veiktu lielapjoma darbību.', + + // Bulk confirmation + 'bulk_delete_are_you_sure' => 'Vai tiešām vēlaties izdzēst šos :number ierakstus?', + 'bulk_delete_sucess_title' => 'Ieraksti dzēsti', + 'bulk_delete_sucess_message' => ' ieraksti tika izdzēsti', + 'bulk_delete_error_title' => 'Dzēšana neizdevās', + 'bulk_delete_error_message' => 'Vienu vai vairākus ierakstus neizdevās izdzēst', + + // Ajax errors + 'ajax_error_title' => 'Kļūda', + 'ajax_error_text' => 'Kļūda ielādējot saturu. Lūdzu pārlādē lapu.', + + // DataTables translation + 'emptyTable' => 'Dati nav pieejami', + 'info' => 'Rādot no _START_ līdz _END_ no kopumā _TOTAL_ ierakstiem', + 'infoEmpty' => '', + 'infoFiltered' => '(filtrēts no _MAX_ kopējiem ierakstiem)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ ieraksti uz lapu', + 'loadingRecords' => 'Ielādē...', + 'processing' => 'Apstrādā...', + 'search' => 'Meklēšana', + 'zeroRecords' => 'Peimēroti ieraksti nav atrasti', + 'paginate' => [ + 'first' => 'Pirmā', + 'last' => 'Pēdējā', + 'next' => 'Nākošā', + 'previous' => 'Iepriekšējā', + ], + 'aria' => [ + 'sortAscending' => ': aktivizējiet lai šķirot augoši', + 'sortDescending' => ': aktivizējiet lai šķirot dilstoši', + ], + 'export' => [ + 'export' => 'Eksports', + 'copy' => 'Kopēt', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => 'Drukāt', + 'column_visibility' => 'Kolonnu redzamība', + ], + + // global crud - errors + 'unauthorized_access' => 'Neautorizēta pieeja - jums nav nepieciešamo tiesību lai apskatītu šo lapu.', + 'please_fix' => 'Lūdzu izlabojiet sekojošas kļūdas:', + + // global crud - success / error notification bubbles + 'insert_success' => 'Ieraksts tika veiksmīgi pievienots.', + 'update_success' => 'Ieraksts tika veiksmīgi modificēts.', + + // CRUD reorder view + 'reorder' => 'Pārkārtot', + 'reorder_text' => 'Izmantojiet drag&drop lai pārkārtotu.', + 'reorder_success_title' => 'Gatavs', + 'reorder_success_message' => 'Secība tika saglabāta.', + 'reorder_error_title' => 'Kļuda', + 'reorder_error_message' => 'Secība netika saglabāta.', + + // CRUD yes/no + 'yes' => 'Jā', + 'no' => 'Nē', + + // CRUD filters navbar view + 'filters' => 'Filtri', + 'toggle_filters' => 'Pārslēgt filtrus', + 'remove_filters' => 'Noņemt filtrus', + + // Fields + 'browse_uploads' => 'Pārlūkot failus', + 'select_all' => 'Atlasīt visu', + 'select_files' => 'Izvēlies failus', + 'select_file' => 'Izvēlies failu', + 'clear' => 'Notīrīt', + 'page_link' => 'Lapas saite', + 'page_link_placeholder' => 'http://example.com/your-desired-page', + 'internal_link' => 'Iekšējā saite', + 'internal_link_placeholder' => 'Iekšējās saites vārds. Piemēram: \'admin/page\' (no quotes) for \':url\'', + 'external_link' => 'Ārējā saite', + 'choose_file' => 'Izvēlaties failu', + 'new_item' => 'Jauns ieraksts', + 'select_entry' => 'Atlasiet ierakstu', + 'select_entries' => 'Atlasiet ierakstus', + + //Table field + 'table_cant_add' => 'Nevar pievienot jaunu :entity', + 'table_max_reached' => 'Sasniegts maksimālais skaits no :max', + + // File manager + 'file_manager' => 'Failu Pārlūks', + + // InlineCreateOperation + 'related_entry_created_success' => 'Saistītais ieraksts ir izveidots un atlasīts.', + 'related_entry_created_error' => 'Neizdevās izveidot saistīto ierakstu.', +]; diff --git a/lang/vendor/backpack/lv/langfilemanager.php b/lang/vendor/backpack/lv/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/lv/langfilemanager.php @@ -0,0 +1,16 @@ + 'စာရင်းပိတ်လိုက်ပါပြီ။', + 'no_email_column' => 'အသုံးပြုသူနှင့် ဆက်စပ်နေသည့် အီးမေးလ်လိပ်စာမရှိပါ။', + 'first_page_you_see' => 'အကောင့်ဝင်ပြီးနောက် ပထမဆုံးစာမျက်နှာကို ပြထားသည်။', + 'login_status' => 'အကောင့်ဝင်ရောက်မှုအခြေအနေ', + 'logged_in' => 'သင် အကောင့်ဝင်ပြီးပါပြီ။', + 'toggle_navigation' => 'လမ်းကြောင်းပြောင်းခြင်း။', + 'administration' => 'စီမံခန့်ခွဲမှု', + 'user' => 'အသုံးပြုသူ', + 'logout' => 'အကောင့် ထွက်ပါ။', + 'login' => 'အကောင့် ၀င်ပါ။', + 'register' => 'အကောင့် ဆောက်ပါ။', + 'name' => 'နာမည်', + 'email_address' => 'အီးမေးလိပ်စာ', + 'password' => 'စကားဝှက်', + 'old_password' => 'စကားဝှက်အဟောင်း', + 'new_password' => 'စကားဝှက်အသစ်', + 'confirm_password' => 'စကားဝှက်အသစ်ကို အတည်ပြုပါ။', + 'remember_me' => 'ငါ့ကို မှတ်ထားပေးပါ။', + 'forgot_your_password' => 'သင့်စကားဝှက်ကို မေ့သွားပါသလား။', + 'reset_password' => 'စကားဝှက်ကို ပြန်လည်သတ်မှတ်ပါ။', + 'send_reset_link' => 'စကားဝှက်ပြန်လည်သတ်မှတ်သည့်လင့်ခ်ကို ပေးပို့ပါ။', + 'click_here_to_reset' => 'သင့်စကားဝှက်ကို ပြန်လည်သတ်မှတ်ရန် ဤနေရာကိုနှိပ်ပါ။', + 'change_password' => 'စကားဝှက်ကိုပြောင်းရန်', + 'unauthorized' => '၀င်ခွင့်မရှိပါ။', + 'dashboard' => 'ဒိုင်ခွက်', + 'handcrafted_by' => 'Handcrafted by', + 'powered_by' => 'Powered by', + 'my_account' => 'ငါ့အကောင့်', + 'update_account_info' => 'အကောင့်အချက်အလက်ကို အပ်ဒိတ်လုပ်ပါ။', + 'save' => 'မှတ်ပါ။', + 'cancel' => 'မလုပ်တော့ပါ။', + 'error' => 'အမှား', + 'success' => 'အောင်မြင်သည်။', + 'warning' => 'သတိ', + 'notice' => 'အသိပေးချက်', + 'old_password_incorrect' => 'စကားဝှက်ဟောင်းသည် မမှန်ပါ။', + 'password_dont_match' => 'စကားဝှက်များ မတိုက်ဆိုင်ပါ။', + 'password_empty' => 'သင့်စကားဝှက်ကို ထည့်သွင်းထားကြောင်း သေချာပါစေ။', + 'password_updated' => 'စကားဝှက်ကို အပ်ဒိတ်လုပ်ပြီးပါပြီ။', + 'account_updated' => 'သင့်အကောင့်ကို အောင်မြင်စွာ မွမ်းမံပြီးပါပြီ။', + 'unknown_error' => 'အမည်မသိ အမှားတစ်ခု ဖြစ်ပွားခဲ့သည်။ ထပ်စမ်းကြည့်ပါ။', + 'error_saving' => 'သိမ်းဆည်းနေစဉ် အမှားအယွင်းတစ်ခု ဖြစ်ပွားခဲ့သည်။ ထပ်စမ်းကြည့်ပါ။', + 'session_expired_error' => 'သင့်စက်ရှင် သက်တမ်းကုန်သွားပါပြီ။ သင့်အကောင့်ထဲသို့ ထပ်မံဝင်ရောက်ပါ။', + 'welcome' => 'ကြိုဆိုပါတယ်', + 'use_sidebar' => 'အကြောင်းအရာဖန်တီးရန်၊ တည်းဖြတ်ရန်နှင့် ဖျက်ရန် ဘယ်ဘက်ဘေးဘားကို အသုံးပြုပါ။', + + 'password_reset' => [ + 'greeting' => 'မင်္ဂလာပါ', + 'subject' => 'စကားဝှက် ပြန်လည်သတ်မှတ်ခြင်း အသိပေးချက်', + 'line_1' => 'သင့်စကားဝှက်ပြန်လည်သတ်မှတ်ခြင်းတောင်းဆိုချက်ကို ကျွန်ုပ်တို့လက်ခံပြီးဖြစ်သောကြောင့် ဤအီးမေးလ်ကို ပေးပို့ခြင်းဖြစ်ပါသည်။', + 'line_2' => 'သင့်စကားဝှက်ကို ပြန်လည်သတ်မှတ်ရန် အောက်ပါခလုတ်ကို နှိပ်ပါ:', + 'button' => 'စကားဝှက်ကို ပြန်လည်သတ်မှတ်ပါ။', + 'notice' => 'စကားဝှက်ပြန်လည်သတ်မှတ်ရန် မတောင်းဆိုပါက ဤအီးမေးလ်ကို လျစ်လျူရှုပါ။', + ], + + 'step' => 'အဆင့်', + 'confirm_email' => 'သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုပါ။', + 'choose_new_password' => 'စကားဝှက်အသစ်ကို ရွေးချယ်ခြင်း။', + 'confirm_new_password' => 'စကားဝှက်အသစ်ကို အတည်ပြုပါ။', + 'throttled' => 'သင့် စကားဝှက်သတ်မှတ်ချက်ကို မကြာခင်ကတောင်းထားပါသည်၊ အီးမေးလ် ကိုစစ်ပါ၊ အီးမေးလ်မရပါက နောက်မှ ပြန်စမ်းကြည့်ပါ။', + 'throttled_request' => 'သင်ကြိုးစားမှု ကန့်သတ်ချက်ကို ကျော်သွားပါပြီ။ မိနစ်အနည်းငယ်စောင့်ပြီး ထပ်စမ်းကြည့်ပါ။', + +]; diff --git a/lang/vendor/backpack/my/crud.php b/lang/vendor/backpack/my/crud.php new file mode 100644 index 0000000..5491db9 --- /dev/null +++ b/lang/vendor/backpack/my/crud.php @@ -0,0 +1,180 @@ + 'သိမ်းပြီး ဖန်တီးပါ။', + 'save_action_save_and_edit' => 'သိမ်းပြီး တည်းဖြတ်ပါ။', + 'save_action_save_and_back' => 'သိမ်းပြီး ပြန်သွားပါ။', + 'save_action_save_and_preview' => 'သိမ်းပြီး အစမ်းကြည့်ရှုပါ။', + 'save_action_changed_notification' => 'သိမ်းဆည်းပြီးနောက် မူလအမူအကျင့်ကို ပြောင်းလဲသွားပါပြီ။', + + // Create form + 'add' => 'ထပ်လောင်း', + 'back_to_all' => 'Back to all ', + 'cancel' => 'မလုပ်တော့ပါ။', + 'add_a_new' => 'Add a new ', + + // Edit form + 'edit' => 'တည်းဖြတ်ပါ။', + 'save' => 'မှတ်ပါ။', + + // Translatable models + 'edit_translations' => 'ဘာသာပြန်ကို တည်းဖြတ်ပါ။', + 'language' => 'ဘာသာစကား', + + // CRUD table view + 'all' => 'အားလုံး ', + 'in_the_database' => 'in the database', + 'list' => 'စာရင်း', + 'reset' => 'ပြန်လည်သတ်မှတ်ပါ။', + 'actions' => 'Actions', + 'preview' => 'ပြသခြင်း။', + 'delete' => 'ဖျက်ပါ။', + 'admin' => 'အုပ်ချုပ်ရေးမှူး', + 'details_row' => 'ဒါကအသေးစိတ်ကော်လံဖြစ်ပါတယ်။ လိုအပ်ရင် ပြင်ပေးပါ။', + 'details_row_loading_error' => 'အသေးစိတ်ကော်လံကို ဖတ်နေစဉ် အမှားဖြစ်သွားသည်။ ထပ်စမ်းကြည့်ပါ။', + 'clone' => 'ပွား', + 'clone_success' => 'ဒေတာကို ကူးယူထားသည်။
ကျွန်ုပ်သည် ဤဒေတာကဲ့သို့ တူညီသောအချက်အလက်များဖြင့် ဒေတာအသစ်ကို ထပ်ထည့်ပါသည်။', + 'clone_failure' => 'ကူးယူခြင်း မအောင်မြင်ပါ။
ဒေတာအသစ် မဖန်တီးနိုင်ခဲ့ပါ။ ထပ်စမ်းကြည့်ပါ။', + + // Confirmation messages and bubbles + 'delete_confirm' => 'ဤဒေတာကို ဖျက်လိုသည်မှာ သေချာပါသလား။', + 'delete_confirmation_title' => 'ဒေတာကို ဖျက်လိုက်သည်။', + 'delete_confirmation_message' => 'ဒေတာကို အောင်မြင်စွာ ဖျက်လိုက်ပါပြီ။', + 'delete_confirmation_not_title' => 'ဖျက်၍မရပါ။', + 'delete_confirmation_not_message' => 'အမှားအယွင်းတစ်ခု ဖြစ်ပွားခဲ့သည်။ ဒေတာကို ဖျက်မထားပါ။', + 'delete_confirmation_not_deleted_title' => 'ဖျက်၍မရပါ။', + 'delete_confirmation_not_deleted_message' => 'ဘာမှမဖြစ်ပါ ဒေတာတွေအကုန်လုံခြုံပါတယ်။', + + // Bulk actions + 'bulk_no_entries_selected_title' => 'ဒေတာကို ရွေးမထားပါ။', + 'bulk_no_entries_selected_message' => 'တစ်ခု ဒါမှမဟုတ် တစ်ခုထက်ပိုတာကိုရွေးပါ။', + + // Bulk delete + 'bulk_delete_are_you_sure' => ':number ဒေတာကို ဖျက်လိုသည်မှာ သေချာပါသလား။', + 'bulk_delete_sucess_title' => 'ဒေတာကို ဖျက်လိုက်သည်။', + 'bulk_delete_sucess_message' => ' ဒေတာကို ဖျက်လိုက်ပါပြီ။', + 'bulk_delete_error_title' => 'ဖျက်ခြင်း မအောင်မြင်ပါ။', + 'bulk_delete_error_message' => 'ဒေတာတစ်ခုထက်ပို၍ ဖျက်၍မရပါ။', + + // Bulk clone + 'bulk_clone_are_you_sure' => 'ဒီ :number ဒေတာတွေကို ပွားချင်တာသေချားလား။', + 'bulk_clone_sucess_title' => 'ပွားလိုက်ပါပြီ', + 'bulk_clone_sucess_message' => ' ပွားပြီးသွားပါပြီ', + 'bulk_clone_error_title' => 'ပွား၍မရ', + 'bulk_clone_error_message' => 'ဒေတာတစ်ခုထက်ပို၍ပွားမရပါ။', + + // Ajax errors + 'ajax_error_title' => 'အမှား', + 'ajax_error_text' => 'စာမျက်နှာဖွင့်ရာတွင် အမှားအယွင်းရှိသည်။ ကျေးဇူးပြု၍ စာမျက်နှာကို ပြန်လည်စတင်ပါ။', + + // DataTables translation + 'emptyTable' => 'ဇယားတွင်ဒေတာမရှိပါ။', + 'info' => 'Showing _START_ to _END_ of _TOTAL_ entries', + 'infoEmpty' => 'ဘာမှမရှိပါ။', + 'infoFiltered' => '(filtered from _MAX_ total entries)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ entries per page', + 'loadingRecords' => 'ခဏစောင့်‌ပါ။...', + 'processing' => 'ဆောင်ရွက်နေသည်။...', + 'search' => 'ရှာဖွေ', + 'zeroRecords' => 'ဘာ‌အချက်အလက်မျှမရှိပါ', + 'paginate' => [ + 'first' => 'ပထမ', + 'last' => 'နောက်ဆုံး', + 'next' => 'နောက်တစ်ခု', + 'previous' => 'ရှေ့သို့', + ], + 'aria' => [ + 'sortAscending' => ': activate to sort column ascending', + 'sortDescending' => ': activate to sort column descending', + ], + 'export' => [ + 'export' => 'တင်ပို့ခြင်း။', + 'copy' => 'ကော်ပီ', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => 'ပုံနှိပ်ခြင်း။', + 'column_visibility' => 'ကော်လံများကိုပြသပါ။', + ], + + // global crud - errors + 'unauthorized_access' => 'ခွင့်ပြုချက်မရှိဘဲ ဝင်ရောက်ခွင့် - ဤစာမျက်နှာကို ကြည့်ရှုရန် သင့်တွင် လိုအပ်သော ခွင့်ပြုချက်များ မရှိပါ။', + 'please_fix' => 'အောက်ပါ အမှားကို ပြင်ပါ :', + + // global crud - success / error notification bubbles + 'insert_success' => 'ဒေတာကို အောင်မြင်စွာ ထည့်သွင်းခဲ့သည်။', + 'update_success' => 'ဒေတာကို အောင်မြင်စွာ မွမ်းမံပြီးပါပြီ။', + + // CRUD reorder view + 'reorder' => 'ပြန်စီပါ။', + 'reorder_text' => 'Use drag&drop to reorder.', + 'reorder_success_title' => 'ပြီးစီးခြင်း။', + 'reorder_success_message' => 'အော်ဒါကို သိမ်းလိုက်တယ်။', + 'reorder_error_title' => 'အမှား', + 'reorder_error_message' => 'အမျိုးအစားခွဲခြင်း အစီအစဉ်ကို မသိမ်းဆည်းပါ။', + + // CRUD yes/no + 'yes' => 'ဟုတ်ကဲ့', + 'no' => 'မလုပ်ပါ', + + // CRUD filters navbar view + 'filters' => 'စစ်ထုတ်မှု', + 'toggle_filters' => 'စစ်ထုတ်မှုပြောင်းခြင်း။', + 'remove_filters' => 'စစ်ထုတ်မှုအားလုံးကို ဖယ်ရှားပါ။', + 'apply' => 'လျှောက်ထားပါ။', + + //filters language strings + 'today' => 'ဒီနေ့', + 'yesterday' => 'မနေ့က', + 'last_7_days' => 'လွန်ခဲ့သော ၇ ရက်', + 'last_30_days' => 'လွန်ခဲ့သော ရက် ၃၀', + 'this_month' => 'ဤလတွင်', + 'last_month' => 'ပြီးခဲ့သည့်လ', + 'custom_range' => 'စိတ်ကြိုက်', + 'weekLabel' => 'W', + + // Fields + 'browse_uploads' => 'အပ်လုဒ်မှ ရွေးပါ။', + 'select_all' => 'အားလုံးကို ရွေးပါ။', + 'select_files' => 'ဖိုင်များစွာကို ရွေးပါ။', + 'select_file' => 'ဖိုင်ရွေးချယ်မှု', + 'clear' => 'ရှင်းလင်း', + 'page_link' => 'စာမျက်နှာလင့်ခ်', + 'page_link_placeholder' => 'http://example.com/your-desired-page', + 'internal_link' => 'အတွင်းပိုင်းလင့်ခ်', + 'internal_link_placeholder' => 'Internal slug. Ex: \'admin/page\' (no quotes) for \':url\'', + 'external_link' => 'ပြင်ပလင့်', + 'choose_file' => 'ဖိုင်များကို ရွေးပါ။', + 'new_item' => 'ပစ္စည်းထည့်ပါ။', + 'select_entry' => 'ကျေးဇူးပြု၍ အကြောင်းအရာတစ်ခုကို ရွေးပါ။', + 'select_entries' => 'အကြောင်းအရာများစွာကို ရွေးပါ။', + + //Table field + 'table_cant_add' => 'အသစ်ထည့်၍မရပါ - :entity', + 'table_max_reached' => 'အများဆုံးနံပါတ် - :max ရောက်ရှိသွားပါပြီ။', + + // File manager + 'file_manager' => 'File Manager', + + // InlineCreateOperation + 'related_entry_created_success' => 'သက်ဆိုင်ရာဒေတာကို ပေါင်းထည့်ပြီး ရွေးလိုက်ပါပြီ။', + 'related_entry_created_error' => 'သက်ဆိုင်ရာဒေတာကို ထည့်၍မရပါ။', + + // returned when no translations found in select inputs + 'empty_translations' => '(မရှိ)', +]; diff --git a/lang/vendor/backpack/my/langfilemanager.php b/lang/vendor/backpack/my/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/my/langfilemanager.php @@ -0,0 +1,16 @@ + 'Registratie is gesloten.', + 'no_email_column' => 'Gebruikers hebben geen bijbehorend e-mailadres.', + 'first_page_you_see' => 'De eerste pagina die je ziet na inloggen', + 'login_status' => 'Loginstatus', + 'logged_in' => 'Je bent ingelogd!', + 'toggle_navigation' => 'Schakel menu in/uit', + 'administration' => 'ADMINISTRATIE', + 'user' => 'GEBRUIKER', + 'logout' => 'Uitloggen', + 'login' => 'Inloggen', + 'register' => 'Registreer', + 'name' => 'Naam', + 'email_address' => 'E-mailadres', + 'password' => 'Wachtwoord', + 'old_password' => 'Oud wachtwoord', + 'new_password' => 'Nieuw wachtwoord', + 'confirm_password' => 'Bevestig wachtwoord', + 'remember_me' => 'Blijf ingelogd', + 'forgot_your_password' => 'Wachtwoord vergeten?', + 'reset_password' => 'Wachtwoord herstellen', + 'send_reset_link' => 'Stuur wachtwoord herstellen-link', + 'click_here_to_reset' => 'Klik hier om je wachtwoord te herstellen', + 'change_password' => 'Wachtwoord wijzigen', + 'unauthorized' => 'Ongeautoriseerd.', + 'dashboard' => 'Dashboard', + 'handcrafted_by' => 'Handgemaakt door', + 'powered_by' => 'Mede mogelijk gemaakt door', + 'my_account' => 'Mijn account', + 'update_account_info' => 'Accountgegevens bijwerken', + 'save' => 'Opslaan', + 'cancel' => 'Annuleren', + 'error' => 'Fout', + 'success' => 'Succes', + 'warning' => 'Waarschuwing', + 'notice' => 'Kennisgeving', + 'old_password_incorrect' => 'Oud wachtwoord is onjuist.', + 'password_dont_match' => 'Wachtwoorden komen niet overeen.', + 'password_empty' => 'Zorg ervoor dat beide wachtwoordvelden ingevuld zijn.', + 'password_updated' => 'Wachtwoord bijgewerkt.', + 'account_updated' => 'Account succesvol bijgewerkt.', + 'unknown_error' => 'Onbekende fout opgetreden. Probeer het opnieuw.', + 'error_saving' => 'Fout bij het opslaan opgetreden. Probeer het opnieuw.', + 'session_expired_error' => 'Uw sessie is verlopen. Log opnieuw in op uw account.', + 'welcome' => 'Welkom!', + 'use_sidebar' => 'Gebruik de menubalk links om inhoud te maken, bewerken of verwijderen.', + + 'password_reset' => [ + 'greeting' => 'Hallo!', + 'subject' => 'Wachtwoordherstel notificatie', + 'line_1' => 'Je ontvangt deze e-mail omdat we een wachtwoordherstel-aanvraag voor jouw account hebben ontvangen.', + 'line_2' => 'Klik op onderstaande knop om je wachtwoord te herstellen:', + 'button' => 'Herstel wachtwoord', + 'notice' => 'Als je geen wachtwoordherstel hebt aangevraagd hoef je verder niets te doen,', + ], + + 'step' => 'Stap', + 'confirm_email' => 'Bevestig e-mailadres', + 'choose_new_password' => 'Kies nieuw wachtwoord', + 'confirm_new_password' => 'Bevestig nieuw wachtwoord', + +]; diff --git a/lang/vendor/backpack/nl/crud.php b/lang/vendor/backpack/nl/crud.php new file mode 100644 index 0000000..1c88712 --- /dev/null +++ b/lang/vendor/backpack/nl/crud.php @@ -0,0 +1,180 @@ + 'Opslaan en nieuw item toevoegen', + 'save_action_save_and_edit' => 'Opslaan en item bewerken', + 'save_action_save_and_back' => 'Opslaan en terug', + 'save_action_save_and_preview' => 'Opslaan en voorbeeld weergeven', + 'save_action_changed_notification' => 'Standaard gedrag na opslaan is aangepast.', + + // Create form + 'add' => 'Toevoegen', + 'back_to_all' => 'Terug naar alle items ', + 'cancel' => 'Annuleren', + 'add_a_new' => 'Nieuwe toevoegen ', + + // Edit form + 'edit' => 'Bewerken', + 'save' => 'Opslaan', + + // Translatable models + 'edit_translations' => 'Vertaling wijzigen', + 'language' => 'Taal', + + // CRUD table view + 'all' => 'Alles ', + 'in_the_database' => 'in de database', + 'list' => 'Lijst', + 'reset' => 'Reset', + 'actions' => 'Acties', + 'preview' => 'Voorbeeld', + 'delete' => 'Verwijderen', + 'admin' => 'Admin', + 'details_row' => 'Dit is de detail rij. Bewerk als gewenst.', + 'details_row_loading_error' => 'Er is een fout opgetreden bij het laden van de details. Probeer het opnieuw.', + 'clone' => 'Klonen', + 'clone_success' => 'Item gekloond
Een nieuw item is aangemaakt, met dezelfde eigenschappen als dit item.', + 'clone_failure' => 'Klonen mislukt
Er kon geen nieuw item worden aangemaakt. Probeer het opnieuw.', + + // Confirmation messages and bubbles + 'delete_confirm' => 'Weet je zeker dat je dit item wilt verwijderen?', + 'delete_confirmation_title' => 'Item verwijderd', + 'delete_confirmation_message' => 'Het item is succesvol verwijderd.', + 'delete_confirmation_not_title' => 'NIET verwijderd', + 'delete_confirmation_not_message' => 'Er is een fout opgetreden. Het item is misschien niet verwijderd.', + 'delete_confirmation_not_deleted_title' => 'Niet verwijderd', + 'delete_confirmation_not_deleted_message' => 'Er is niks gebeurd. Je item is veilig.', + + // Bulk actions + 'bulk_no_entries_selected_title' => 'Geen items geselecteerd.', + 'bulk_no_entries_selected_message' => 'Selecteer tenminste een item om een bulkactie uit te voeren.', + + // Bulk delete + 'bulk_delete_are_you_sure' => 'Weet je zeker dat je deze :number items wilt verwijderen?', + 'bulk_delete_sucess_title' => 'Items verwijderd', + 'bulk_delete_sucess_message' => ' items zijn verwijderd', + 'bulk_delete_error_title' => 'Verwijderen mislukt', + 'bulk_delete_error_message' => 'Een of meerdere items konden niet worden verwijderd', + + // Bulk clone + 'bulk_clone_are_you_sure' => 'Weet je zeker dat je deze :number items wilt klonen?', + 'bulk_clone_sucess_title' => 'Items gekloond', + 'bulk_clone_sucess_message' => ' items zijn gekloond.', + 'bulk_clone_error_title' => 'Klonen mislukt', + 'bulk_clone_error_message' => 'Een of meerdere items konden niet worden gekloond. Probeer het opnieuw.', + + // Ajax errors + 'ajax_error_title' => 'Fout', + 'ajax_error_text' => 'Fout bij het laden. Vernieuw de pagina.', + + // DataTables translation + 'emptyTable' => 'Geen data beschikbaar in de tabel', + 'info' => 'Toon _START_ tot _END_ van _TOTAL_ items', + 'infoEmpty' => '', + 'infoFiltered' => '(gefilterd van _MAX_ totale items)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ items per pagina', + 'loadingRecords' => 'Laden...', + 'processing' => 'Verwerken...', + 'search' => 'Zoeken', + 'zeroRecords' => 'Geen overeenkomend item gevonden', + 'paginate' => [ + 'first' => 'Eerste', + 'last' => 'Laatste', + 'next' => 'Volgende', + 'previous' => 'Vorige', + ], + 'aria' => [ + 'sortAscending' => ': activeer om kolom oplopend te sorteren', + 'sortDescending' => ': activeer om kolom aflopend te sorteren', + ], + 'export' => [ + 'export' => 'Exporteer', + 'copy' => 'Kopieer', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => 'Print', + 'column_visibility' => 'Kolom zichtbaarheid', + ], + + // global crud - errors + 'unauthorized_access' => 'Geen toegang - je hebt niet de benodigde rechten om deze pagina te bekijken.', + 'please_fix' => 'Los de volgende fouten op:', + + // global crud - success / error notification bubbles + 'insert_success' => 'Het item is succesvol toegevoegd.', + 'update_success' => 'Het item is succesvol bewerkt.', + + // CRUD reorder view + 'reorder' => 'Rangschik', + 'reorder_text' => 'Gebruik drag&drop om te rangschikken.', + 'reorder_success_title' => 'Klaar', + 'reorder_success_message' => 'De rangschikking is opgeslagen.', + 'reorder_error_title' => 'Fout', + 'reorder_error_message' => 'De rangschikking is niet opgeslagen.', + + // CRUD yes/no + 'yes' => 'Ja', + 'no' => 'Nee', + + // CRUD filters navbar view + 'filters' => 'Filters', + 'toggle_filters' => 'Schakel filters', + 'remove_filters' => 'Verwijder filters', + 'apply' => 'Toepassen', + + //filters language strings + 'today' => 'Vandaag', + 'yesterday' => 'Gisteren', + 'last_7_days' => 'Afgelopen 7 dagen', + 'last_30_days' => 'Afgelopen 30 dagen', + 'this_month' => 'Deze maand', + 'last_month' => 'Afgelopen maand', + 'custom_range' => 'Aangepast bereik', + 'weekLabel' => 'W', + + // Fields + 'browse_uploads' => 'Blader uploads', + 'select_all' => 'Selecteer alles', + 'select_files' => 'Selecteer bestanden', + 'select_file' => 'Selecteer bestand', + 'clear' => 'Wissen', + 'page_link' => 'Pagina link', + 'page_link_placeholder' => 'http://example.com/your-desired-page', + 'internal_link' => 'Interne link', + 'internal_link_placeholder' => 'Interne slug. B.v.: \'admin/page\' (geen quotes) voor \':url\'', + 'external_link' => 'Externe link', + 'choose_file' => 'Kies bestand', + 'new_item' => 'Nieuw item', + 'select_entry' => 'Selecteer een item', + 'select_entries' => 'Selecteer items', + + //Table field + 'table_cant_add' => 'Kan nieuwe :entity niet toevoegen', + 'table_max_reached' => 'Maximale grootte van :max bereikt', + + // File manager + 'file_manager' => 'Bestandsbeheer', + + // InlineCreateOperation + 'related_entry_created_success' => 'Gerelateerd item is aangemaakt en geselecteerd.', + 'related_entry_created_error' => 'Gerelateerd item kon niet worden aangemaakt.', + + // returned when no translations found in select inputs + 'empty_translations' => '(leeg)', +]; diff --git a/lang/vendor/backpack/nl/langfilemanager.php b/lang/vendor/backpack/nl/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/nl/langfilemanager.php @@ -0,0 +1,16 @@ + 'Novos registros estão desabiltados.', + 'no_email_column' => 'Usuários não possuem um endereço de email associado.', + 'first_page_you_see' => 'A primeira página que você vê depois de logar', + 'login_status' => 'Status do login', + 'logged_in' => 'Você está logado!', + 'toggle_navigation' => 'Alternar navegação', + 'administration' => 'ADMINISTRAÇÃO', + 'user' => 'USUÁRIO', + 'logout' => 'Logout', + 'login' => 'Login', + 'register' => 'Registrar', + 'name' => 'Nome', + 'email_address' => 'E-Mail', + 'password' => 'Senha', + 'old_password' => 'Senha antiga', + 'new_password' => 'Nova senha', + 'confirm_password' => 'Confirmar senha', + 'remember_me' => 'Manter-me logado', + 'forgot_your_password' => 'Esqueci minha senha', + 'reset_password' => 'Resetar senha', + 'send_reset_link' => 'Enviar link de recuperação de senha', + 'click_here_to_reset' => 'Clique aqui para resetar sua senha', + 'change_password' => 'Mudar senha', + 'unauthorized' => 'Sem autorização.', + 'dashboard' => 'Dashboard', + 'handcrafted_by' => 'Feito por', + 'powered_by' => 'Distribuído por', + 'my_account' => 'Minha conta', + 'update_account_info' => 'Atualizar minha conta', + 'save' => 'Salvar', + 'cancel' => 'Cancelar', + 'error' => 'Erro', + 'success' => 'Sucesso', + 'warning' => 'Atenção', + 'notice' => 'Aviso', + 'old_password_incorrect' => 'A senha antiga está incorreta.', + 'password_dont_match' => 'Senhas não são iguais.', + 'password_empty' => 'Certifique-se que ambos os campos de senha estão preenchidos.', + 'password_updated' => 'Senha atualizada.', + 'account_updated' => 'Conta atualizada com sucesso.', + 'unknown_error' => 'Um erro desconhecido aconteceu. Por favor, tente novamente.', + 'error_saving' => 'Erro ao salvar. Por favor, tente novamente.', + 'session_expired_error' => 'Sua sessão expirou. Faça login novamente em sua conta.', + 'welcome' => 'Bem vindo!', + 'use_sidebar' => 'Use a barra de menu à esquerda para criar, editar ou excluir conteúdo.', + 'password_reset' => [ + 'greeting' => 'Olá!', + 'subject' => 'Notificação de redefinição de senha', + 'line_1' => 'Você está recebendo este e-mail porque nós recebemos um solicitação de redefinição de senha para sua conta.', + 'line_2' => 'Clique no botão abaixo para redefinir sua senha:', + 'button' => 'Redefinir Senha', + 'notice' => 'Se você não solicitou uma redefinição de senha, nenhuma ação adicional é necessária.', + ], + 'step' => 'Passo', + 'confirm_email' => 'Confirmar E-mail', + 'choose_new_password' => 'Escolher Nova Senha', + 'confirm_new_password' => 'Confirmar Nova senha', +]; diff --git a/lang/vendor/backpack/pt-BR/crud.php b/lang/vendor/backpack/pt-BR/crud.php new file mode 100644 index 0000000..d4125ff --- /dev/null +++ b/lang/vendor/backpack/pt-BR/crud.php @@ -0,0 +1,159 @@ + 'Salvar e criar novo item', + 'save_action_save_and_edit' => 'Salvar e editar item', + 'save_action_save_and_back' => 'Salvar e voltar', + 'save_action_save_and_preview' => 'Salvar e pré-visualizar', + 'save_action_changed_notification' => 'Comportamento padrão após salvar foi alterado.', + + // Create form + 'add' => 'Adicionar', + 'back_to_all' => 'Voltar para todos ', + 'cancel' => 'Cancelar', + 'add_a_new' => 'Adicionar ', + + // Edit form + 'edit' => 'Editar', + 'save' => 'Salvar', + + // Translatable models + 'edit_translations' => 'EDITAR TRADUÇÕES', + 'language' => 'Idioma', + + // CRUD table view + 'all' => 'Todos ', + 'in_the_database' => 'no banco de dados', + 'list' => 'Lista', + 'reset' => 'Resetar', + 'actions' => 'Ações', + 'preview' => 'Visualizar', + 'delete' => 'Excluir', + 'admin' => 'Admin', + 'details_row' => 'Esta são os detalhes do registro. Faça as modificações necessárias.', + 'details_row_loading_error' => 'Ocorreu um erro durante o carregamento dos detalhes. Por favor, tente novamente.', + 'clone' => 'Clonar', + 'clone_success' => 'Registro clonado
Um novo registro foi adicionado, com as mesmas informações deste.', + 'clone_failure' => 'Clonagem falhou
O novo registro não pode ser criado. Tente novamente.', + + // Confirmation messages and bubbles + 'delete_confirm' => 'Tem certeza que deseja excluir este item?', + 'delete_confirmation_title' => 'Item excluído', + 'delete_confirmation_message' => 'Item excluído com sucesso.', + 'delete_confirmation_not_title' => 'Item não excluído', + 'delete_confirmation_not_message' => 'Ocorreu um erro. O item pode não ter sido excluído.', + 'delete_confirmation_not_deleted_title' => 'Item não excluído', + 'delete_confirmation_not_deleted_message' => 'Nada aconteceu. Seu item está seguro.', + + // Bulk actions + 'bulk_no_entries_selected_title' => 'Nenhum registro selecionado', + 'bulk_no_entries_selected_message' => 'Por favor selecione um ou mais itens para realizar uma ação em massa.', + + // Bulk confirmation + 'bulk_delete_are_you_sure' => 'Você tem certeza que deseja excluir estes :number registros?', + 'bulk_delete_sucess_title' => 'Registros excluídos!', + 'bulk_delete_sucess_message' => ' itens foram excluídos', + 'bulk_delete_error_title' => 'Exclusão falhou', + 'bulk_delete_error_message' => 'Um ou mais itens não foram puderam ser excluídos', + + // Ajax errors + 'ajax_error_title' => 'Erro', + 'ajax_error_text' => 'Erro ao carregar. Por favor, atualize a página.', + + // DataTables translation + 'emptyTable' => 'Nenhum dado cadastrado na tabela', + 'info' => 'Exibindo _START_ a _END_ de _TOTAL_ registros', + 'infoEmpty' => '', + 'infoFiltered' => '(filtrados de _MAX_ registros)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ registros por página', + 'loadingRecords' => 'Carregando...', + 'processing' => 'Processando...', + 'search' => 'Pesquisar', + 'zeroRecords' => 'Nenhum registro encontrado', + 'paginate' => [ + 'first' => 'Primeira', + 'last' => 'Última', + 'next' => 'Próxima', + 'previous' => 'Anterior', + ], + 'aria' => [ + 'sortAscending' => ': clique para ordenar de forma ascendente', + 'sortDescending' => ': clique para ordenar de forma descendente', + ], + 'export' => [ + 'export' => 'Exportar', + 'copy' => 'Copiar', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => 'Imprimir', + 'column_visibility' => 'Visibilidade da coluna', + ], + + // global crud - errors + 'unauthorized_access' => 'Acesso negado - você não possui a permissão necessária para acessar esta página.', + 'please_fix' => 'Por favor, corrija os seguintes erros:', + + // global crud - success / error notification bubbles + 'insert_success' => 'Item cadastrado com sucesso.', + 'update_success' => 'Item atualizado com sucesso.', + + // CRUD reorder view + 'reorder' => 'Reordenar', + 'reorder_text' => 'Use arrastar-e-soltar para reordenar.', + 'reorder_success_title' => 'Pronto', + 'reorder_success_message' => 'Sua ordenação foi salva.', + 'reorder_error_title' => 'Erro', + 'reorder_error_message' => 'Sua ordenação não foi salva.', + + // CRUD yes/no + 'yes' => 'Sim', + 'no' => 'Não', + + // CRUD filters navbar view + 'filters' => 'Filtros', + 'toggle_filters' => 'Alternar filtros', + 'remove_filters' => 'Remover filtros', + + // Fields + 'browse_uploads' => 'Pesquisar uploads', + 'clear' => 'Limpar', + 'page_link' => 'URL da Página', + 'page_link_placeholder' => 'http://exemplo.com', + 'internal_link' => 'Link Interno', + 'internal_link_placeholder' => 'Endereço interno. Ex: \'admin/pagina\' (sem aspas) para \':url\'', + 'external_link' => 'Link Externo', + 'choose_file' => 'Escolher arquivo', + 'select_all' => 'Selecionar todos', + 'select_files' => 'Selecionar todos os arquivos', + 'select_file' => 'Selecionar arquivo', + 'new_item' => 'Novo Item', + 'select_entry' => 'Selecionar um registro', + 'select_entries' => 'Selecionar registros', + + //Table field + 'table_cant_add' => 'Não foi possível adicionar um(a) novo(a) :entity', + 'table_max_reached' => 'Limite de :max alcançado', + + // File manager + 'file_manager' => 'Gerenciador de Arquivos', + + // InlineCreateOperation + 'related_entry_created_success' => 'Registro relacionado foi criado e selecionado.', + 'related_entry_created_error' => 'Não foi possível criar um registro relacionado.', +]; diff --git a/lang/vendor/backpack/pt-BR/langfilemanager.php b/lang/vendor/backpack/pt-BR/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/pt-BR/langfilemanager.php @@ -0,0 +1,16 @@ + 'O registo está fechado.', + 'no_email_column' => 'Os utilizadores não têm um endereço de e-mail associado.', + 'first_page_you_see' => 'A primeira página que vê depois do login', + 'login_status' => 'Estado do login', + 'logged_in' => 'Login com sucesso!', + 'toggle_navigation' => 'Alternar navegação', + 'administration' => 'ADMINISTRAÇÃO', + 'user' => 'UTILIZADOR', + 'logout' => 'Sair', + 'login' => 'Entrar', + 'register' => 'Registar', + 'name' => 'Nome', + 'email_address' => 'Endereço de email', + 'password' => 'Password', + 'old_password' => 'Password antiga', + 'new_password' => 'Password nova', + 'confirm_password' => 'Confirmar password', + 'remember_me' => 'Lembrar-me', + 'forgot_your_password' => 'Esqueceu-se da password?', + 'reset_password' => 'Redefinir password', + 'send_reset_link' => 'Enviar link para redefinir a password', + 'click_here_to_reset' => 'Clique aqui para redefinir a password', + 'change_password' => 'Mudar a password', + 'unauthorized' => 'Não autorizado.', + 'dashboard' => 'Painel', + 'handcrafted_by' => 'Desenvolvido por', + 'powered_by' => 'Distribuído por', + 'my_account' => 'Minha conta', + 'update_account_info' => 'Gerir a sua conta', + 'save' => 'Guardar', + 'cancel' => 'Cancelar', + 'error' => 'Erro', + 'success' => 'Successo', + 'warning' => 'Aviso', + 'notice' => 'Nota', + 'old_password_incorrect' => 'A password antiga está incorrecta.', + 'password_dont_match' => 'As passwords não coincidem.', + 'password_empty' => 'Certifique-se que ambos os campos de password estão preenchidos.', + 'password_updated' => 'Password actualizada.', + 'account_updated' => 'Conta actualizada com sucesso.', + 'unknown_error' => 'Ocorreu um erro desconhecido. Tente novamente.', + 'error_saving' => 'Ocorreu um erro ao guardar. Tente novamente.', + 'session_expired_error' => 'A sua sessão expirou. Faça login novamente na sua conta.', + 'welcome' => 'Bem-vindo!', + 'use_sidebar' => 'Use a barra lateral à esquerda para criar, editar ou apagar conteúdo.', + + 'error_page' => [ + 'title' => 'Erro :error', + 'button' => 'Voltar ao início', + ], + + 'password_reset' => [ + 'greeting' => 'Olá!', + 'subject' => 'Notificação de reposição de password.', + 'line_1' => 'Está a receber este email porque foi pedida uma reposição da password para a sua conta.', + 'line_2' => 'Clique no botão abaixo para repor a sua password:', + 'button' => 'Repor Password', + 'notice' => 'Se não foi você que iniciou este pedido não necessita de tomar mais nenhuma acção.', + ], + + 'step' => 'Passo', + 'confirm_email' => 'Confirmar Email', + 'choose_new_password' => 'Escolher nova password', + 'confirm_new_password' => 'Confirmar nova password', + 'throttled' => 'Efetuou um pedido de recuperação de password recentemente. Verifique o seu email. Caso não tenha recebido o email tente novamente dentro de alguns instantes.', + 'throttled_request' => 'Excedeu o limite de tentativas. Aguarde alguns minutos e tente novamente.', +]; diff --git a/lang/vendor/backpack/pt/crud.php b/lang/vendor/backpack/pt/crud.php new file mode 100644 index 0000000..3199ce6 --- /dev/null +++ b/lang/vendor/backpack/pt/crud.php @@ -0,0 +1,182 @@ + 'Guardar e adicionar item', + 'save_action_save_and_edit' => 'Guardar e editar este item', + 'save_action_save_and_back' => 'Guardar e voltar', + 'save_action_save_and_preview' => 'Guardar e visualizar', + 'save_action_changed_notification' => 'O comportamento padrão depois de gravar foi alterado.', + + // Create form + 'add' => 'Adicionar', + 'back_to_all' => 'Voltar à lista de ', + 'cancel' => 'Cancelar', + 'add_a_new' => 'Adicionar ', + + // Edit form + 'edit' => 'Editar', + 'save' => 'Gravar', + + // Translatable models + 'edit_translations' => 'Tradução', + 'language' => 'Idioma', + + // CRUD table view + 'all' => 'Todos ', + 'in_the_database' => 'na base de dados', + 'list' => 'Lista', + 'reset' => 'Repor', + 'actions' => 'Acções', + 'preview' => 'Visualizar', + 'delete' => 'Apagar', + 'admin' => 'Administrar', + 'details_row' => 'Isto é a linha de detalhes. Modifique conforme quiser.', + 'details_row_loading_error' => 'Houve um erro ao carregar os detalhes. Por favor tente novamente.', + 'clone' => 'Clonar', + 'clone_success' => 'Item clonado
Um novo item foi adicionado com as mesmas informações que este.', + 'clone_failure' => 'A clonagem falhou
O novo item não pode ser criado. Por favor tente novamente.', + + // Confirmation messages and bubbles + 'delete_confirm' => 'Tem a certeza que quer apagar este item?', + 'delete_confirmation_title' => 'Item apagado', + 'delete_confirmation_message' => 'O item foi apagado com sucesso.', + 'delete_confirmation_not_title' => 'Não apagado', + 'delete_confirmation_not_message' => 'Ocorreu um erro. O item pode não ter sido apagado.', + 'delete_confirmation_not_deleted_title' => 'Não apagado', + 'delete_confirmation_not_deleted_message' => 'O item não foi apagado.', + + // Bulk actions + 'bulk_no_entries_selected_title' => 'Nenhum item seleccionado', + 'bulk_no_entries_selected_message' => 'Por favor seleccione um ou mais itens para realizar uma acção em massa.', + + // Bulk delete + 'bulk_delete_are_you_sure' => 'Tem a certeza que quer apagar estes :number itens?', + 'bulk_delete_sucess_title' => 'Itens apagados', + 'bulk_delete_sucess_message' => ' itens foram apagados', + 'bulk_delete_error_title' => 'Ocorreu um erro ao apagar o item', + 'bulk_delete_error_message' => 'Um ou mais itens não puderam ser apagados', + + // Bulk clone + 'bulk_clone_are_you_sure' => 'Tem a certeza que quer clonar estes :number itens?', + 'bulk_clone_sucess_title' => 'Itens clonados', + 'bulk_clone_sucess_message' => ' itens foram clonados.', + 'bulk_clone_error_title' => 'Ocorreu um erro ao clonar o item', + 'bulk_clone_error_message' => 'Um ou mais itens não puderam ser criados. Por favor tente novamente.', + + // Ajax errors + 'ajax_error_title' => 'Erro', + 'ajax_error_text' => 'Erro ao carregar a página. Por favor actualize a página.', + + // DataTables translation + 'emptyTable' => 'Sem dados disponíveis na tabela', + 'info' => 'A mostrar _START_ a _END_ de _TOTAL_ itens', + 'infoEmpty' => 'Sem itens', + 'infoFiltered' => '(filtrado de um total de _MAX_ itens)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ itens por página', + 'loadingRecords' => 'A carregar...', + 'processing' => 'A processar...', + 'search' => 'Procurar', + 'zeroRecords' => 'Nenhum item encontrado', + 'paginate' => [ + 'first' => 'Primeiro', + 'last' => 'Último', + 'next' => 'Seguinte', + 'previous' => 'Anterior', + ], + 'aria' => [ + 'sortAscending' => ': activar para colocar por ordem ascendente', + 'sortDescending' => ': activar para colocar por ordem descendente', + ], + 'export' => [ + 'export' => 'Exportar', + 'copy' => 'Copiar', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => 'Imprimir', + 'column_visibility' => 'Colunas visíveis', + ], + 'custom_views' => [ + 'title' => 'vistas personalizadas', + 'title_short' => 'vistas', + 'default' => 'predefinida', + ], + + // global crud - errors + 'unauthorized_access' => 'Acesso não autorizado - não tem as permissões necessárias para ver esta página.', + 'please_fix' => 'Por favor corrija os seguintes erros:', + + // global crud - success / error notification bubbles + 'insert_success' => 'O item foi adicionado com sucesso.', + 'update_success' => 'O item foi modificado com sucesso.', + + // CRUD reorder view + 'reorder' => 'Reordenar', + 'reorder_text' => 'Use \'arrastar e soltar\' para ordenar.', + 'reorder_success_title' => 'Feito', + 'reorder_success_message' => 'A ordenação foi gravada.', + 'reorder_error_title' => 'Erro', + 'reorder_error_message' => 'A ordenação não foi gravada.', + + // CRUD yes/no + 'yes' => 'Sim', + 'no' => 'Não', + + // CRUD filters navbar view + 'filters' => 'Filtros', + 'toggle_filters' => 'Alternar filtros', + 'remove_filters' => 'Remover filtros', + 'apply' => 'Aplicar', + + //filters language strings + 'today' => 'Hoje', + 'yesterday' => 'Ontem', + 'last_7_days' => 'Últimos 7 dias', + 'last_30_days' => 'Últimos 30 dias', + 'this_month' => 'Este mês', + 'last_month' => 'Mês passado', + 'custom_range' => 'Intervalo personalizado', + 'weekLabel' => 'S', + + // Fields + 'browse_uploads' => 'Procurar uploads', + 'select_all' => 'Seleccionar todos', + 'select_files' => 'Seleccionar ficheiros', + 'select_file' => 'Seleccionar ficheiro', + 'clear' => 'Limpar', + 'page_link' => 'Link da página', + 'page_link_placeholder' => 'http://example.com/a-sua-pagina', + 'internal_link' => 'Link interno', + 'internal_link_placeholder' => 'Slug interno. Ex: \'admin/page\' (sem aspas) para \':url\'', + 'external_link' => 'Link externo', + 'choose_file' => 'Escolher ficheiro', + 'new_item' => 'Novo item', + 'select_entry' => 'Selecione um item', + 'select_entries' => 'Selecionar itens', + + //Table field + 'table_cant_add' => 'Não foi possível adicionar novo :entity', + 'table_max_reached' => 'Limite de :max itens atingido', + + // File manager + 'file_manager' => 'Gestor de ficheiros', + + // InlineCreateOperation + 'related_entry_created_success' => 'O item relacionado foi criado e selecionado.', + 'related_entry_created_error' => 'Não foi possível criar o item relacionado.', +]; diff --git a/lang/vendor/backpack/pt/langfilemanager.php b/lang/vendor/backpack/pt/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/pt/langfilemanager.php @@ -0,0 +1,16 @@ + 'Novos registros estão desabiltados.', + 'no_email_column' => 'Usuários não possuem um endereço de email associado.', + 'first_page_you_see' => 'A primeira página que você vê depois de logar', + 'login_status' => 'Status do login', + 'logged_in' => 'Você está logado!', + 'toggle_navigation' => 'Alternar navegação', + 'administration' => 'ADMINISTRAÇÃO', + 'user' => 'USUÁRIO', + 'logout' => 'Logout', + 'login' => 'Login', + 'register' => 'Registrar', + 'name' => 'Nome', + 'email_address' => 'E-Mail', + 'password' => 'Senha', + 'old_password' => 'Senha antiga', + 'new_password' => 'Nova senha', + 'confirm_password' => 'Confirmar senha', + 'remember_me' => 'Manter-me logado', + 'forgot_your_password' => 'Esqueci minha senha', + 'reset_password' => 'Resetar senha', + 'send_reset_link' => 'Enviar link de recuperação de senha', + 'click_here_to_reset' => 'Clique aqui para resetar sua senha', + 'change_password' => 'Mudar senha', + 'unauthorized' => 'Sem autorização.', + 'dashboard' => 'Dashboard', + 'handcrafted_by' => 'Feito por', + 'powered_by' => 'Distribuído por', + 'my_account' => 'Minha conta', + 'update_account_info' => 'Atualizar minha conta', + 'save' => 'Salvar', + 'cancel' => 'Cancelar', + 'error' => 'Erro', + 'success' => 'Sucesso', + 'warning' => 'Atenção', + 'notice' => 'Aviso', + 'old_password_incorrect' => 'A senha antiga está incorreta.', + 'password_dont_match' => 'Senhas não são iguais.', + 'password_empty' => 'Certifique-se que ambos os campos de senha estão preenchidos.', + 'password_updated' => 'Senha atualizada.', + 'account_updated' => 'Conta atualizada com sucesso.', + 'unknown_error' => 'Um erro desconhecido aconteceu. Por favor, tente novamente.', + 'error_saving' => 'Erro ao salvar. Por favor, tente novamente.', + 'session_expired_error' => 'Sua sessão expirou. Faça login novamente em sua conta.', + 'welcome' => 'Bem vindo!', + 'use_sidebar' => 'Use a barra de menu à esquerda para criar, editar ou excluir conteúdo.', + 'password_reset' => [ + 'greeting' => 'Olá!', + 'subject' => 'Notificação de redefinição de senha', + 'line_1' => 'Você está recebendo este e-mail porque nós recebemos um solicitação de redefinição de senha para sua conta.', + 'line_2' => 'Clique no botão abaixo para redefinir sua senha:', + 'button' => 'Redefinir Senha', + 'notice' => 'Se você não solicitou uma redefinição de senha, nenhuma ação adicional é necessária.', + ], + 'step' => 'Passo', + 'confirm_email' => 'Confirmar E-mail', + 'choose_new_password' => 'Escolher Nova Senha', + 'confirm_new_password' => 'Confirmar Nova senha', +]; diff --git a/lang/vendor/backpack/pt_br/crud.php b/lang/vendor/backpack/pt_br/crud.php new file mode 100644 index 0000000..d4125ff --- /dev/null +++ b/lang/vendor/backpack/pt_br/crud.php @@ -0,0 +1,159 @@ + 'Salvar e criar novo item', + 'save_action_save_and_edit' => 'Salvar e editar item', + 'save_action_save_and_back' => 'Salvar e voltar', + 'save_action_save_and_preview' => 'Salvar e pré-visualizar', + 'save_action_changed_notification' => 'Comportamento padrão após salvar foi alterado.', + + // Create form + 'add' => 'Adicionar', + 'back_to_all' => 'Voltar para todos ', + 'cancel' => 'Cancelar', + 'add_a_new' => 'Adicionar ', + + // Edit form + 'edit' => 'Editar', + 'save' => 'Salvar', + + // Translatable models + 'edit_translations' => 'EDITAR TRADUÇÕES', + 'language' => 'Idioma', + + // CRUD table view + 'all' => 'Todos ', + 'in_the_database' => 'no banco de dados', + 'list' => 'Lista', + 'reset' => 'Resetar', + 'actions' => 'Ações', + 'preview' => 'Visualizar', + 'delete' => 'Excluir', + 'admin' => 'Admin', + 'details_row' => 'Esta são os detalhes do registro. Faça as modificações necessárias.', + 'details_row_loading_error' => 'Ocorreu um erro durante o carregamento dos detalhes. Por favor, tente novamente.', + 'clone' => 'Clonar', + 'clone_success' => 'Registro clonado
Um novo registro foi adicionado, com as mesmas informações deste.', + 'clone_failure' => 'Clonagem falhou
O novo registro não pode ser criado. Tente novamente.', + + // Confirmation messages and bubbles + 'delete_confirm' => 'Tem certeza que deseja excluir este item?', + 'delete_confirmation_title' => 'Item excluído', + 'delete_confirmation_message' => 'Item excluído com sucesso.', + 'delete_confirmation_not_title' => 'Item não excluído', + 'delete_confirmation_not_message' => 'Ocorreu um erro. O item pode não ter sido excluído.', + 'delete_confirmation_not_deleted_title' => 'Item não excluído', + 'delete_confirmation_not_deleted_message' => 'Nada aconteceu. Seu item está seguro.', + + // Bulk actions + 'bulk_no_entries_selected_title' => 'Nenhum registro selecionado', + 'bulk_no_entries_selected_message' => 'Por favor selecione um ou mais itens para realizar uma ação em massa.', + + // Bulk confirmation + 'bulk_delete_are_you_sure' => 'Você tem certeza que deseja excluir estes :number registros?', + 'bulk_delete_sucess_title' => 'Registros excluídos!', + 'bulk_delete_sucess_message' => ' itens foram excluídos', + 'bulk_delete_error_title' => 'Exclusão falhou', + 'bulk_delete_error_message' => 'Um ou mais itens não foram puderam ser excluídos', + + // Ajax errors + 'ajax_error_title' => 'Erro', + 'ajax_error_text' => 'Erro ao carregar. Por favor, atualize a página.', + + // DataTables translation + 'emptyTable' => 'Nenhum dado cadastrado na tabela', + 'info' => 'Exibindo _START_ a _END_ de _TOTAL_ registros', + 'infoEmpty' => '', + 'infoFiltered' => '(filtrados de _MAX_ registros)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ registros por página', + 'loadingRecords' => 'Carregando...', + 'processing' => 'Processando...', + 'search' => 'Pesquisar', + 'zeroRecords' => 'Nenhum registro encontrado', + 'paginate' => [ + 'first' => 'Primeira', + 'last' => 'Última', + 'next' => 'Próxima', + 'previous' => 'Anterior', + ], + 'aria' => [ + 'sortAscending' => ': clique para ordenar de forma ascendente', + 'sortDescending' => ': clique para ordenar de forma descendente', + ], + 'export' => [ + 'export' => 'Exportar', + 'copy' => 'Copiar', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => 'Imprimir', + 'column_visibility' => 'Visibilidade da coluna', + ], + + // global crud - errors + 'unauthorized_access' => 'Acesso negado - você não possui a permissão necessária para acessar esta página.', + 'please_fix' => 'Por favor, corrija os seguintes erros:', + + // global crud - success / error notification bubbles + 'insert_success' => 'Item cadastrado com sucesso.', + 'update_success' => 'Item atualizado com sucesso.', + + // CRUD reorder view + 'reorder' => 'Reordenar', + 'reorder_text' => 'Use arrastar-e-soltar para reordenar.', + 'reorder_success_title' => 'Pronto', + 'reorder_success_message' => 'Sua ordenação foi salva.', + 'reorder_error_title' => 'Erro', + 'reorder_error_message' => 'Sua ordenação não foi salva.', + + // CRUD yes/no + 'yes' => 'Sim', + 'no' => 'Não', + + // CRUD filters navbar view + 'filters' => 'Filtros', + 'toggle_filters' => 'Alternar filtros', + 'remove_filters' => 'Remover filtros', + + // Fields + 'browse_uploads' => 'Pesquisar uploads', + 'clear' => 'Limpar', + 'page_link' => 'URL da Página', + 'page_link_placeholder' => 'http://exemplo.com', + 'internal_link' => 'Link Interno', + 'internal_link_placeholder' => 'Endereço interno. Ex: \'admin/pagina\' (sem aspas) para \':url\'', + 'external_link' => 'Link Externo', + 'choose_file' => 'Escolher arquivo', + 'select_all' => 'Selecionar todos', + 'select_files' => 'Selecionar todos os arquivos', + 'select_file' => 'Selecionar arquivo', + 'new_item' => 'Novo Item', + 'select_entry' => 'Selecionar um registro', + 'select_entries' => 'Selecionar registros', + + //Table field + 'table_cant_add' => 'Não foi possível adicionar um(a) novo(a) :entity', + 'table_max_reached' => 'Limite de :max alcançado', + + // File manager + 'file_manager' => 'Gerenciador de Arquivos', + + // InlineCreateOperation + 'related_entry_created_success' => 'Registro relacionado foi criado e selecionado.', + 'related_entry_created_error' => 'Não foi possível criar um registro relacionado.', +]; diff --git a/lang/vendor/backpack/pt_br/langfilemanager.php b/lang/vendor/backpack/pt_br/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/pt_br/langfilemanager.php @@ -0,0 +1,16 @@ + 'Înregistrarea este închisă.', + 'first_page_you_see' => 'Prima pagină pe care o vezi după logare', + 'login_status' => 'Starea de conectare', + 'logged_in' => 'Sunteți autentificat!', + 'toggle_navigation' => 'Arată/ascunde meniul', + 'administration' => 'ADMINISTRARE', + 'user' => 'UTILIZATOR', + 'logout' => 'Ieșire din cont', + 'login' => 'Autentificare', + 'register' => 'Înregistrare cont nou', + 'name' => 'Nume', + 'email_address' => 'Adresă de email', + 'password' => 'Parolă', + 'confirm_password' => 'Confirmare parolă', + 'remember_me' => 'Ține-mă minte', + 'forgot_your_password' => 'Ți-ai uitat parola?', + 'reset_password' => 'Resetare parolă', + 'send_reset_link' => 'Trimite cererea de resetare parolă', + 'click_here_to_reset' => 'Apasa aici pentru a reseta parola', + 'unauthorized' => 'Acces neautorizat.', + 'dashboard' => 'Panou de administrare', + 'handcrafted_by' => 'Realizat de', + 'powered_by' => 'Powered by', + 'no_email_column' => 'Utilizatorii nu au o adresă de email asociată.', + 'old_password' => 'Parola veche', + 'new_password' => 'Parola nouă', + 'change_password' => 'Schimbă parola', + 'my_account' => 'Contul meu', + 'update_account_info' => 'Modifica datele contului', + 'save' => 'Salvează', + 'cancel' => 'Anulează', + 'error' => 'Eroare', + 'success' => 'Succes', + 'old_password_incorrect' => 'Parola veche este incorectă.', + 'password_dont_match' => 'Parolele nu se potrivesc.', + 'password_empty' => 'Asigurați-vă că ambele parole sunt introduse.', + 'password_updated' => 'Parola a fost modificată cu succes.', + 'account_updated' => 'Contul a fost modificat cu succes.', + 'unknown_error' => 'A avut loc o eroare necunoscută. Vă rugăm să încercați din nou.', + 'error_saving' => 'Eroare în timpul salvării. Vă rugăm să încercați din nou.', + 'session_expired_error' => 'Sesiunea dumneavoastră a expirat. Vă rugăm să vă conectați din nou la contul dvs.', + + 'password_reset' => [ + 'greeting' => 'Salutare!', + 'subject' => 'Resetarea parolei dvs', + 'line_1' => 'Primiți acest email pentru ca am primit o cerere de schimbare a parolei pentru contul dumneavoastră.', + 'line_2' => 'Apăsați pe butonul de mai jos pentru a reseta parola dumneavoastră:', + 'button' => 'Schimbă parola', + 'notice' => 'Dacă nu ați facut dvs cererea, nu este nevoie să faceți nimic, parola nu va fi schimbată.', + ], + 'throttled' => 'Ați cerut deja schimbarea parolei, de curând. Verificați email-ul primit pentru instrucțiuni. Dacă nu primiți email-ul, vă rugăm să încercați mai târziu.', + 'throttled_request' => 'Ați depășit limita de încercări. Așteptați câteva minute, apoi încercați din nou.', +]; diff --git a/lang/vendor/backpack/ro/crud.php b/lang/vendor/backpack/ro/crud.php new file mode 100644 index 0000000..24c8f48 --- /dev/null +++ b/lang/vendor/backpack/ro/crud.php @@ -0,0 +1,133 @@ + 'Salvează și adaugă o nouă intrare', + 'save_action_save_and_edit' => 'Salvează și editează intrarea', + 'save_action_save_and_back' => 'Salvează și mergi la listă', + 'save_action_save_and_preview' => 'Salvează și previzualizează', + 'save_action_changed_notification' => 'A fost salvată preferința redirecționării după salvare.', + + // Create form + 'add' => 'Adaugă', + 'back_to_all' => 'Înapoi la ', + 'cancel' => 'Anulează', + 'add_a_new' => 'Adaugă ', + + // Edit form + 'edit' => 'Editează', + 'save' => 'Salvează', + + // Translatable models + 'edit_translations' => 'EDITEAZĂ TRADUCERILE', + 'language' => 'Limbă', + + // CRUD table view + 'all' => 'Toate ', + 'reset' => 'Resetează ', + 'in_the_database' => 'din baza de date', + 'list' => 'Listă', + 'actions' => 'Operațiuni', + 'preview' => 'Previzualizare', + 'delete' => 'Șterge', + 'admin' => 'Administrator', + 'details_row' => 'Acesta este rândul detalii. Modifică cum dorești', + 'details_row_loading_error' => 'A apărut o eroare la încărcarea detaliilor. Te rog să reîncerci.', + + // Confirmation messages and bubbles + 'delete_confirm' => 'Ești sigur că vrei să ștergi această intrare?', + 'delete_confirmation_title' => 'Intrare ștearsă', + 'delete_confirmation_message' => 'Intrarea a fost ștearsă cu succes.', + 'delete_confirmation_not_title' => 'Eroare', + 'delete_confirmation_not_message' => 'A avut loc o eroare. E posibil ca intrarea să nu fi fost ștearsă.', + 'delete_confirmation_not_deleted_title' => 'Intrarea nu a fost ștearsă', + 'delete_confirmation_not_deleted_message' => 'Nu am șters intrarea din baza de date.', + 'ajax_error_title' => 'Eroare', + 'ajax_error_text' => 'Eroare la încărcarea paginii. Te rog să reîncarci pagina.', + + // DataTables translation + 'emptyTable' => 'Nu există intrări în baza de date', + 'info' => 'Sunt afișate intrările _START_-_END_ din _TOTAL_', + 'infoEmpty' => '', + 'infoFiltered' => '(filtrate din totalul de _MAX_ )', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ pe pagină', + 'loadingRecords' => 'Se încarcă...', + 'processing' => 'Se procesează...', + 'search' => 'Caută', + 'zeroRecords' => 'Nu au fost găsite intrări care să se potrivească', + 'paginate' => [ + 'first' => 'Prima pagină', + 'last' => 'Ultima pagină', + 'next' => 'Pagina următoare', + 'previous' => 'Pagina anterioară', + ], + 'aria' => [ + 'sortAscending' => ': activează pentru a ordona ascendent coloana', + 'sortDescending' => ': activează pentru a ordona descendent coloana', + ], + 'export' => [ + 'pdf' => 'PDF', + 'print' => 'Imprimă', + 'column_visibility' => 'Vizibilitate coloane', + 'copy' => 'Copiere', + 'excel' => 'Fișier Excel', + 'csv' => 'Fișier CSV', + ], + + // global crud - errors + 'unauthorized_access' => 'Acces neautorizat - Nu ai permisiunea necesară pentru a accesa pagina.', + 'please_fix' => 'Vă rugăm să reparați următoarele erori:', + + // global crud - success / error notification bubbles + 'insert_success' => 'Intrarea a fost adăugată cu succes.', + 'update_success' => 'Intrarea a fost modificată cu succes.', + + // CRUD reorder view + 'reorder' => 'Reordonare', + 'reorder_text' => 'Folosește drag&drop pentru a reordona.', + 'reorder_success_title' => 'Terminat', + 'reorder_success_message' => 'Ordinea a fost salvată.', + 'reorder_error_title' => 'Eroare', + 'reorder_error_message' => 'Ordinea nu a fost salvată.', + + // CRUD yes/no + 'yes' => 'Da', + 'no' => 'Nu', + + // CRUD filters navbar view + 'filters' => 'Filtre', + 'toggle_filters' => 'Comutare filtre', + 'remove_filters' => 'Anulează filtre', + + // Fields + 'browse_uploads' => 'Alege din fișierele urcate', + 'select_all' => 'Selectează tot', + 'clear' => 'Curăță', + 'page_link' => 'Link către pagină', + 'page_link_placeholder' => 'http://example.com/pagina-dorita-de-tine', + 'internal_link' => 'Link intern', + 'internal_link_placeholder' => 'Rută internă. De ex: \'admin/page\' (fără ghilimele) pentru \':url\'', + 'external_link' => 'Link extern', + 'choose_file' => 'Alege fișier', + + //Table field + 'table_cant_add' => 'Nu pot adăuga o nouă :entity', + 'table_max_reached' => 'Numărul maxim :max a fost atins', + + // File manager + 'file_manager' => 'Manager fișiere', +]; diff --git a/lang/vendor/backpack/ro/langfilemanager.php b/lang/vendor/backpack/ro/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/ro/langfilemanager.php @@ -0,0 +1,16 @@ + 'Регистрация закрыта', + 'no_email_column' => 'У пользователей нет связанного адреса электронной почты.', + 'first_page_you_see' => 'Первая страница, которую Вы видите после входа в систему', + 'login_status' => 'Статус авторизации', + 'logged_in' => 'Вы вошли в систему!', + 'toggle_navigation' => 'Переключить навигацию', + 'administration' => 'Административный раздел', + 'user' => 'ПОЛЬЗОВАТЕЛЬ', + 'logout' => 'Выйти', + 'login' => 'Войти', + 'register' => 'Зарегистрироваться', + 'name' => 'Имя', + 'email_address' => 'E-Mail адрес', + 'password' => 'Пароль', + 'old_password' => 'Старый пароль', + 'new_password' => 'Новый пароль', + 'confirm_password' => 'Подтвердите пароль', + 'remember_me' => 'Запомнить меня', + 'forgot_your_password' => 'Забыли пароль?', + 'reset_password' => 'Сброс пароля', + 'send_reset_link' => 'Отправить ссылку для сброса пароля', + 'click_here_to_reset' => 'Нажмите здесь для сброса пароля', + 'change_password' => 'Изменить пароль', + 'unauthorized' => 'Вы не авторизованы.', + 'dashboard' => 'Панель управления', + 'handcrafted_by' => 'Разработано', + 'powered_by' => 'При поддержке', + 'my_account' => 'Мой аккаунт', + 'update_account_info' => 'Обновить личную информацию', + 'save' => 'Сохранить', + 'cancel' => 'Отменить', + 'error' => 'Ошибка', + 'success' => 'Успешно', + 'warning' => 'Предупреждение', + 'notice' => 'Уведомление', + 'old_password_incorrect' => 'Старый пароль неверен.', + 'password_dont_match' => 'Пароли не совпадают.', + 'password_empty' => 'Убедитесь, что заполнены оба поля для ввода пароля.', + 'password_updated' => 'Пароль обновлён.', + 'account_updated' => 'Личная информация успешно обновлена.', + 'unknown_error' => 'Что-то пошло не так. Пожалуйста, повторите снова.', + 'error_saving' => 'При сохранении произошла ошибка. Пожалуйста, повторите снова.', + 'session_expired_error' => 'Время сеанса истекло. Пожалуйста, войдите еще раз в свою учетную запись.', + 'welcome' => 'Добро пожаловать!', + 'use_sidebar' => 'Используйте панель слева для создания, редактирования или удаления контента', + + 'error_page' => [ + 'title' => 'Ошибка :error', + 'button' => 'Перейти на главную', + 'message_4xx' => 'Пожалуйста вернитесь назад или перейдите на главную страницу.', + 'message_500' => 'Произошла внутренняя ошибка сервера. Если ошибка не исчезнет, обратитесь к команде разработчиков.', + 'message_503' => 'Сервер перегружен или отключен на техническое обслуживание. Пожалуйста, повторите попытку позже.', + '400' => 'Плохой запрос.', + '401' => 'Неавторизованное действие.', + '403' => 'Запрещено.', + '404' => 'Страница не найдена.', + '405' => 'Метод не разрешен.', + '408' => 'Время ожидания превышено.', + '429' => 'Слишком много запросов.', + '500' => 'Это не ты, это я.', + ], + + 'password_reset' => [ + 'greeting' => 'Здравствуйте!', + 'subject' => 'Сброс пароля', + 'line_1' => 'Вы получили это письмо, т.к. был создан запрос на сброс Вашего пароля к аккаунту.', + 'line_2' => 'Чтобы сбросить пароль, нажмите на кнопку ниже:', + 'button' => 'Сбросить пароль', + 'notice' => 'В случае, если Вы не запрашивали сброс пароля, пожалуйста, проигнорируйте это письмо.', + ], + + 'step' => 'Шаг', + 'confirm_email' => 'Подтвеждение Email', + 'choose_new_password' => 'Ввод нового пароля', + 'confirm_new_password' => 'Повторите новый пароль', + 'throttled' => 'Недавно вы уже запросили сброс пароля. Пожалуйста, проверьте свою электронную почту. Если вы не получили наше письмо, повторите попытку позже.', + 'throttled_request' => 'Вы превысили лимит попыток. Пожалуйста, подождите несколько минут и повторите попытку.', + + 'verify_email' => [ + 'email_verification' => 'Подтверждение по электронной почте', + 'verification_link_sent' => 'Ссылка для подтверждения была отправлена на ваш адрес электронной почты.', + 'email_verification_required' => 'Пожалуйста, подтвердите свой адрес электронной почты, нажав на ссылку, которую мы вам отправили.', + 'resend_verification_link' => 'Отправить ссылку повторно', + ], +]; diff --git a/lang/vendor/backpack/ru/crud.php b/lang/vendor/backpack/ru/crud.php new file mode 100644 index 0000000..a3655e9 --- /dev/null +++ b/lang/vendor/backpack/ru/crud.php @@ -0,0 +1,188 @@ + 'Сохранить и создать', + 'save_action_save_and_edit' => 'Сохранить и продолжить редактирование', + 'save_action_save_and_back' => 'Сохранить и выйти', + 'save_action_save_and_preview' => 'Сохранить и предпросмотр', + 'save_action_changed_notification' => 'Действие после сохранения было изменено', + + // Create form + 'add' => 'Добавить', + 'back_to_all' => 'Вернуться к списку', + 'cancel' => 'Отменить', + 'add_a_new' => 'Добавить новый(ую)', + + // Edit form + 'edit' => 'Редактировать', + 'save' => 'Сохранить', + + // Translatable models + 'edit_translations' => 'Перевод', + 'language' => 'Язык', + + // CRUD table view + 'all' => 'Все ', + 'in_the_database' => 'в базе данных', + 'list' => 'Список', + 'reset' => 'Сбросить', + 'actions' => 'Действия', + 'preview' => 'Предпросмотр', + 'delete' => 'Удалить', + 'admin' => 'Главная', + 'details_row' => 'Это строка сведений. Измените, пожалуйста', + 'details_row_loading_error' => 'Произошла ошибка при загрузке сведений. Повторите операцию.', + 'clone' => 'Создать копию', + 'clone_success' => 'Успешно!
Была добавлена новая запись с той же информацией', + 'clone_failure' => 'Ошибка!
Не получилось создать новую запись. Перезагрузите страницу и попробуйте еще раз', + + // Confirmation messages and bubbles + 'delete_confirm' => 'Вы уверены, что хотите удалить эту запись?', + 'delete_confirmation_title' => 'Успешно!', + 'delete_confirmation_message' => 'Запись была удалена', + 'delete_confirmation_not_title' => 'Ошибка!', + 'delete_confirmation_not_message' => 'Запись не была удалена. Обновите страницу и повторите попытку', + 'delete_confirmation_not_deleted_title' => 'Не удалено', + 'delete_confirmation_not_deleted_message' => 'Запись осталась без изменений', + + // Bulk actions + 'bulk_no_entries_selected_title' => 'Записи не выбраны', + 'bulk_no_entries_selected_message' => 'Пожалуйста, выберите один или несколько элементов, чтобы выполнить массовое действие с ними', + + // Bulk delete + 'bulk_delete_are_you_sure' => 'Вы уверены, что хотите удалить :number записей?', + 'bulk_delete_sucess_title' => 'Записи удалены', + 'bulk_delete_sucess_message' => ' элементов было удалено', + 'bulk_delete_error_title' => 'Ошибка!', + 'bulk_delete_error_message' => 'Некоторые из выбранных элементов не могут быть удалены', + + // Bulk clone + 'bulk_clone_are_you_sure' => 'Подтвердите копирование записей(:number)', + 'bulk_clone_sucess_title' => 'Записи скопированы успешно!', + 'bulk_clone_sucess_message' => ' элементов было скопировано.', + 'bulk_clone_error_title' => 'Ошибка!', + 'bulk_clone_error_message' => 'Одна или более записей не может быть скопирована. Пожалуйста, попробуйте повторить операцию.', + + // Ajax errors + 'ajax_error_title' => 'Ошибка!', + 'ajax_error_text' => 'Пожалуйста, перезагрузите страницу', + + // DataTables translation + 'emptyTable' => 'В таблице нет доступных данных', + 'info' => 'Показано _START_ до _END_ из _TOTAL_ совпадений', + 'infoEmpty' => '', + 'infoFiltered' => '(отфильтровано из _MAX_ совпадений)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ записей на странице', + 'loadingRecords' => 'Загрузка...', + 'processing' => 'Обработка...', + 'search' => 'Поиск', + 'zeroRecords' => 'Совпадений не найдено', + 'paginate' => [ + 'first' => 'Первая', + 'last' => 'Последняя', + 'next' => 'Следующая', + 'previous' => 'Предыдущая', + ], + 'aria' => [ + 'sortAscending' => ': нажмите для сортировки по возрастанию', + 'sortDescending' => ': нажмите для сортировки по убыванию', + ], + 'export' => [ + 'export' => 'Экспорт', + 'copy' => 'Копировать в буфер', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => 'На печать', + 'column_visibility' => 'Видимость колонок', + ], + + // global crud - errors + 'unauthorized_access' => 'У Вас нет необходимых прав для просмотра этой страницы.', + 'please_fix' => 'Пожалуйста, исправьте следующие ошибки:', + + // global crud - success / error notification bubbles + 'insert_success' => 'Запись была успешно добавлена.', + 'update_success' => 'Запись была успешно изменена.', + + // CRUD reorder view + 'reorder' => 'Изменить порядок', + 'reorder_text' => 'Используйте drag&drop для изменения порядка.', + 'reorder_success_title' => 'Готово', + 'reorder_success_message' => 'Порядок был сохранен.', + 'reorder_error_title' => 'Ошибка', + 'reorder_error_message' => 'Порядок не был сохранен.', + + // CRUD yes/no + 'yes' => 'Да', + 'no' => 'Нет', + + // CRUD filters navbar view + 'filters' => 'Фильтры', + 'toggle_filters' => 'Переключить фильтры', + 'remove_filters' => 'Очистить фильтры', + 'apply' => 'Принять', + + //filters language strings + 'today' => 'Сегодня', + 'yesterday' => 'Вчера', + 'last_7_days' => 'Последние 7 дней', + 'last_30_days' => 'Последние 30 дней', + 'this_month' => 'Текущий месяц', + 'last_month' => 'Последний месяц', + 'custom_range' => 'Выбрать даты', + 'weekLabel' => 'W', + + // Fields + 'browse_uploads' => 'Загрузить файлы', + 'select_all' => 'Выбрать все', + 'select_files' => 'Выбрать файлы', + 'select_file' => 'Выбрать файл', + 'clear' => 'Очистить', + 'page_link' => 'Ссылка на страницу', + 'page_link_placeholder' => 'http://example.com/your-desired-page', + 'internal_link' => 'Внутренняя ссылка', + 'internal_link_placeholder' => 'Внутренний путь. Например: \'admin/page\' (без кавычек) для \':url\'', + 'external_link' => 'Внешняя ссылка', + 'choose_file' => 'Выбрать файл', + 'new_item' => 'Новый элемент', + 'select_entry' => 'Выбрать запись', + 'select_entries' => 'Выбрать записи', + 'upload_multiple_files_selected' => 'Файлы выбраны. После сохранения они появятся выше.', + + //Table field + 'table_cant_add' => 'Не удалось добавить новую :entity', + 'table_max_reached' => 'Максимальное количество из :max достигнуто', + + // google_map + 'google_map_locate' => 'Получить мое местоположение', + + // File manager + 'file_manager' => 'Файловый менеджер', + + // InlineCreateOperation + 'related_entry_created_success' => 'Связанная запись создана и выбрана.', + 'related_entry_created_error' => 'Не удалось создать связанную запись.', + 'inline_saving' => 'Сохранение...', + + // returned when no translations found in select inputs + 'empty_translations' => '(пусто)', + + // The pivot selector required validation message + 'pivot_selector_required_validation_message' => 'Поле сводной таблицы является обязательным.', +]; diff --git a/lang/vendor/backpack/ru/langfilemanager.php b/lang/vendor/backpack/ru/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/ru/langfilemanager.php @@ -0,0 +1,16 @@ + 'Registracija je zatvorena.', + 'no_email_column' => 'Korisnici nemaju email.', + 'first_page_you_see' => 'Prva stranica koju vidite nakon prijave', + 'login_status' => 'Status prijave', + 'logged_in' => 'Ulogovani ste!', + 'toggle_navigation' => 'Prikaz navigacije', + 'administration' => 'Administracija', + 'user' => 'KORISNIK', + 'logout' => 'Odjavi se', + 'login' => 'Prijavi se', + 'register' => 'Registruj se', + 'name' => 'Ime', + 'email_address' => 'E-mail adresa', + 'password' => 'Šifra', + 'old_password' => 'Stara šifra', + 'new_password' => 'Nova šifra', + 'confirm_password' => 'Potvrdi šifru', + 'remember_me' => 'Zapamti me', + 'forgot_your_password' => 'Zaboravili ste šifru?', + 'reset_password' => 'Resetuj šifru', + 'send_reset_link' => 'Pošalji link za resetovanje šifre', + 'click_here_to_reset' => 'Kliknite ovde da biste resetovali šifru', + 'change_password' => 'Promeni šifru', + 'unauthorized' => 'Neovlašćeno.', + 'dashboard' => 'Komandna tabla', + 'handcrafted_by' => 'Dizajnirao', + 'powered_by' => 'Pokreće', + 'my_account' => 'Moj nalog', + 'update_account_info' => 'Ažuriraj podatke naloga', + 'save' => 'Sačuvaj', + 'cancel' => 'Otkaži', + 'error' => 'Greška', + 'success' => 'Uspeh', + 'warning' => 'Upozorenje', + 'notice' => 'Objava', + 'old_password_incorrect' => 'Stara šifra je pogrešna.', + 'password_dont_match' => 'Šifre se ne poklapaju.', + 'password_empty' => 'Oba polja za šifru moraju biti popunjena.', + 'password_updated' => 'Šifra ažurirana.', + 'account_updated' => 'Nalog uspešno ažuriran.', + 'unknown_error' => 'Nepoznata greška se dogodila. Pokušajte ponovo.', + 'error_saving' => 'Greška pri pokušaju čuvanja. Pokušajte ponovo.', + 'session_expired_error' => 'Vaša sesija je istekla. Molimo prijavite se ponovo na svoj račun.', + 'welcome' => 'Dobro došli!', + 'use_sidebar' => 'Upotrebite bočni meni na levoj strani da kreirate, izmenite ili obrišete sadržaj.', + + 'password_reset' => [ + 'greeting' => 'Zdravo!', + 'subject' => 'Obaveštenje za resetovanje šifre', + 'line_1' => 'Primili ste ovu poruku jer smo dobili zahtev za resetovanje šifre za Vaš nalog.', + 'line_2' => 'Kliknite na dugme ispod da biste resetovali Vašu šifru:', + 'button' => 'Resetuj šifru', + 'notice' => 'Ako niste zatražili resetovanje šifre, nije potrebno da radite ništa dalje.', + ], + + 'step' => 'Korak', + 'confirm_email' => 'Potvrdi Email', + 'choose_new_password' => 'Izaberite Novu Lozinku', + 'confirm_new_password' => 'Potvrdi novu lozinku', + +]; diff --git a/lang/vendor/backpack/sr/crud.php b/lang/vendor/backpack/sr/crud.php new file mode 100644 index 0000000..9e16a45 --- /dev/null +++ b/lang/vendor/backpack/sr/crud.php @@ -0,0 +1,155 @@ + 'Sačuvaj i kreiraj novo', + 'save_action_save_and_edit' => 'Sačuvaj i izmeni', + 'save_action_save_and_back' => 'Sačuvaj i idi nazad', + 'save_action_save_and_preview' => 'Sačuvaj i pregledaj', + 'save_action_changed_notification' => 'Podrazumevano ponašanje nakon čuvanja je promenjeno.', + + // Create form + 'add' => 'Dodaj', + 'back_to_all' => 'Nazad na listu ', + 'cancel' => 'Otkaži', + 'add_a_new' => 'Dodaj novi ', + + // Edit form + 'edit' => 'Izmeni', + 'save' => 'Sačuvaj', + + // Translatable models + 'edit_translations' => 'Prevod', + 'language' => 'Jezik', + + // CRUD table view + 'all' => 'Sve ', + 'in_the_database' => 'u bazi', + 'list' => 'Lista', + 'actions' => 'Akcije', + 'preview' => 'Pregled', + 'delete' => 'Obriši', + 'admin' => 'Admin', + 'details_row' => 'Ovo je red sa detaljima. Promeni ga po svojoj želji.', + 'details_row_loading_error' => 'Došlo je do greške prilikom učitavanja detalja. Pokušaj ponovo.', + 'clone' => 'Dupliraj', + 'clone_success' => 'Duplirano
Dodat je novi unos sa istim podacima.', + 'clone_failure' => 'Dupliranje nije uspelo
Novi unos nije mogao da se kreira. Pokušajte ponovo.', + + // Confirmation messages and bubbles + 'delete_confirm' => 'Da li ste sigurni da želite da obrišete ovu stavku?', + 'delete_confirmation_title' => 'Obrisano!', + 'delete_confirmation_message' => 'Stavka je uspešno obrisana.', + 'delete_confirmation_not_title' => 'NIJE obrisano', + 'delete_confirmation_not_message' => 'Došlo je do greške. Vaša stavka možda nije izbrisana.', + 'delete_confirmation_not_deleted_title' => 'Nije obrisano', + 'delete_confirmation_not_deleted_message' => 'Ništa se nije dogodilo. Stavka je sigurna.', + + // Bulk actions + 'bulk_no_entries_selected_title' => 'Nijedna stavka nije odabrana', + 'bulk_no_entries_selected_message' => 'Morate odabrati jednu ili više stavki da bi ste izvršili akciju nad njima.', + + // Bulk confirmation + 'bulk_delete_are_you_sure' => 'Da li ste sigurni da želite da obrišete :number stavki?', + 'bulk_delete_sucess_title' => 'Obrisano', + 'bulk_delete_sucess_message' => ' stavke su obrisane', + 'bulk_delete_error_title' => 'Brisanje nije uspelo', + 'bulk_delete_error_message' => 'Jednu ili više stavki nije bilo moguće obrisati', + + // Ajax errors + 'ajax_error_title' => 'Greška', + 'ajax_error_text' => 'Greška pri učitavanju stranice. Osvežite stranicu.', + + // DataTables translation + 'emptyTable' => 'Nema podataka u tabeli', + 'info' => 'Prikaz stavki od _START_ do _END_. Ukupno _TOTAL_ stavki', + 'infoEmpty' => 'Nema unosa', + 'infoFiltered' => '(filtrirano od _MAX_ ukupno stavki)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ stavki po strani', + 'loadingRecords' => 'Učitavanje...', + 'processing' => 'Obrada...', + 'search' => 'Pretraga', + 'zeroRecords' => 'Ne postoje stavke sa trenutno odabranim filterima. Uklonite neki od filtera.', + 'paginate' => [ + 'first' => 'Prvi', + 'last' => 'Poslednji', + 'next' => 'Sledeći', + 'previous' => 'Prethodni', + ], + 'aria' => [ + 'sortAscending' => ': aktiviraj da bi sortirao kolonu rastuće', + 'sortDescending' => ': aktiviraj da bi sortirao kolonu opadajuće', + ], + 'export' => [ + 'export' => 'Izvezi', + 'copy' => 'Kopiraj', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => 'Odštampaj', + 'column_visibility' => 'Vidljivost kolona', + ], + + // global crud - errors + 'unauthorized_access' => 'Neovlašćeni pristup - nemate potrebna prava da pristupite ovoj stranici.', + 'please_fix' => 'Molim Vas ispravite sledeće greške:', + + // global crud - success / error notification bubbles + 'insert_success' => 'Stavka je uspešno dodata.', + 'update_success' => 'Stavka je uspešno izmenjena.', + + // CRUD reorder view + 'reorder' => 'Promeni redosled', + 'reorder_text' => 'Koristite drag&drop za promenu redosleda.', + 'reorder_success_title' => 'Gotovo', + 'reorder_success_message' => 'Redosled je sačuvan.', + 'reorder_error_title' => 'Greška', + 'reorder_error_message' => 'Redosled nije sačuvan.', + + // CRUD yes/no + 'yes' => 'Da', + 'no' => 'Ne', + + // CRUD filters navbar view + 'filters' => 'Filteri', + 'toggle_filters' => 'Prikaz filtera', + 'remove_filters' => 'Ukloni filtere', + + // Fields + 'browse_uploads' => 'Pregled fajlova', + 'select_all' => 'Odaberi Sve', + 'select_files' => 'Odaberi fajlove', + 'select_file' => 'Odaberi fajl', + 'clear' => 'Ukloni', + 'page_link' => 'Link ka stranici', + 'page_link_placeholder' => 'http://example.com/your-desired-page', + 'internal_link' => 'Interni link', + 'internal_link_placeholder' => 'Interni nastavak linka (slug). Primer: \'admin/page\' (bez navodnika) za \':url\'', + 'external_link' => 'Eksterni link', + 'choose_file' => 'Izaberi fajl', + + //Table field + 'table_cant_add' => 'Nije moguće dodati nov :entity', + 'table_max_reached' => 'Maksimalni broj od :max je dostignut', + + // File manager + 'file_manager' => 'Menadžer Fajlova', + + // InlineCreateOperation + 'related_entry_created_success' => 'Srodni unos je kreiran i izabran.', + 'related_entry_created_error' => 'Srodni unos nije kreiran.', +]; diff --git a/lang/vendor/backpack/sr/langfilemanager.php b/lang/vendor/backpack/sr/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/sr/langfilemanager.php @@ -0,0 +1,16 @@ + 'ไม่เปิดให้ลงทะเบียน', + 'no_email_column' => 'ไม่มีข้อมูลอีเมลของผู้ใช้นี้', + 'first_page_you_see' => 'หน้าแรกเห็นหลังจากเข้าสู่ระบบ', + 'login_status' => 'สถานะการเข้าสู่ระบบ', + 'logged_in' => 'เข้าสู่ระบบแล้ว!', + 'toggle_navigation' => 'เปิดปิดการนำทาง', + 'administration' => 'ดูแลระบบ', + 'user' => 'ผู้ใช้งาน', + 'logout' => 'ออกจากระบบ', + 'login' => 'เข้าสู่ระบบ', + 'register' => 'ลงทะเบียน', + 'name' => 'ชื่อ', + 'email_address' => 'นามสกุล', + 'password' => 'รหัสผ่าน', + 'old_password' => 'รหัสผ่านเดิม', + 'new_password' => 'รหัสผ่านใหม่', + 'confirm_password' => 'ยืนยันรหัสผ่าน', + 'remember_me' => 'จดจำการเข้าสู่ระบบ', + 'forgot_your_password' => 'ลืมรหัสผ่าน?', + 'reset_password' => 'รีเซ็ตรหัสผ่าน', + 'send_reset_link' => 'ส่งลิงก์การรีเซ็ตรกัสผ่าน', + 'click_here_to_reset' => 'คลิกที่นี่เพื่อรีเซ็ตรหัสผ่าน', + 'change_password' => 'เปลี่ยนรหัสผ่าน', + 'unauthorized' => 'ไม่ได้รับอนุญาต.', + 'dashboard' => 'ภาพรวม', + 'handcrafted_by' => 'Handcrafted by', + 'powered_by' => 'Powered by', + 'my_account' => 'บัญชีของฉัน', + 'update_account_info' => 'แก้ไขข้อมูลบัญชี', + 'save' => 'บันทึก', + 'cancel' => 'ยกเลิก', + 'error' => 'ข้อผิดพลาด', + 'success' => 'สำเร็จ', + 'warning' => 'คำเตือน', + 'notice' => 'แจ้งเตือน', + 'old_password_incorrect' => 'รหัสผ่านเดิมไม่ถูกต้อง', + 'password_dont_match' => 'รหัสผ่านไม่ตรงกัน', + 'password_empty' => 'โปรดตรวจสอบว่ากรอกรหัสผ่านครบทั้งสองช่อง', + 'password_updated' => 'เปลี่ยนรหัสผ่านแล้ว', + 'account_updated' => 'แก้ไขข้อมูลบัญชีสำเร็จ', + 'unknown_error' => 'เกิดข้อผิดพลาดที่ไม่ทราบสาเหตุ โปรดลองใหม่อีกครั้ง', + 'error_saving' => 'เกิดข้อผิดพลาดขณะบันทึกข้อมูล โปรดลองใหม่อีกครั้ง', + 'session_expired_error' => 'เซสชันของคุณหมดอายุแล้ว กรุณาเข้าสู่ระบบบัญชีของคุณอีกครั้ง', + 'welcome' => 'ยินดีต้อนรับ!', + 'use_sidebar' => 'เลือกเมนูด้านซ้ายเพื่อสร้าง แก้ไข หรือลบเนื้อหา', + + 'password_reset' => [ + 'greeting' => 'สวัสดี', + 'subject' => 'แจ้งเตือนการรีเซ็ตรหัสผ่าน', + 'line_1' => 'คุณได้รับอีเมลฉบับนี้เนื่องจากมีการขอรีเซ็ตรหัสผ่านสำหรับบัญชีของคุณ', + 'line_2' => 'คลิกปุ่มด้านล่างเพื่อรีเซ็ตผ่าน', + 'button' => 'รีเซ็ตรหัสผ่าน', + 'notice' => 'หากคุณไม่ได้ขอให้รีเซ็ตรหัสผ่าน โปรดละทิ้งอีเมลฉบับนี้', + ], + + 'step' => 'ขั้นตอน', + 'confirm_email' => 'ยืนยันอีเมล', + 'choose_new_password' => 'ตั้งรหัสผ่านใหม่', + 'confirm_new_password' => 'ยืนยันรหัสผ่านใหม่', + 'throttled' => 'คุณได้ขอรีเซ็ตรหัสผ่านไปเมื่อเร็วๆ นี้ โปรดตรวจสอบอีเมลของคุณ หากไม่ได้รับอีเมลโปรดลองใหม่อีกครั้ง', + 'throttled_request' => 'คุณได้ขอรีเซ็ตรหัสผ่านเกินจำนวนครั้งที่กำหนด โปรดรอและลองใหม่อีกครั้ง', + +]; diff --git a/lang/vendor/backpack/th/crud.php b/lang/vendor/backpack/th/crud.php new file mode 100644 index 0000000..9cd28f7 --- /dev/null +++ b/lang/vendor/backpack/th/crud.php @@ -0,0 +1,185 @@ + 'บันทึกและสร้างใหม่', + 'save_action_save_and_edit' => 'บันทึกแและแก้ไขรายการนี้', + 'save_action_save_and_back' => 'บันทึกและออก', + 'save_action_save_and_preview' => 'บันทึกและเปิดดู', + 'save_action_changed_notification' => 'การกระทำหลังจากบันทึกมีการเปลี่ยนแปลง', + + // Create form + 'add' => 'เพิ่ม', + 'back_to_all' => 'กลับไปยังรายการทั้งหมด ', + 'cancel' => 'ยกเลิก', + 'add_a_new' => 'เพิ่ม ', + + // Edit form + 'edit' => 'แก้ไข', + 'save' => 'บันทึก', + + // Translatable models + 'edit_translations' => 'การแปล', + 'language' => 'ภาษา', + + // CRUD table view + 'all' => 'รายการทั้งหมด ', + 'in_the_database' => 'ในฐานข้อมูล', + 'list' => 'รายการ', + 'reset' => 'รีเซ็ต', + 'actions' => 'การกระทำ', + 'preview' => 'เปิดดู', + 'delete' => 'ลบ', + 'admin' => 'ผู้ดูแลระบบ', + 'details_row' => 'นี่คือรายละเอียดของรายการนี้ คุณสามารถแก้ไขข้อมูลได้ที่นี่', + 'details_row_loading_error' => 'เกิดข้อผิดพลาดระหว่างโหลดรายละเอียด โปรดลองใหม่ ', + 'clone' => 'คัดลอก', + 'clone_success' => 'คัดลอกรายการแล้ว
รายการใหม่ถูกสร้างขึ้นด้วยข้อมูลจากรายการนี้', + 'clone_failure' => 'คัดลอกไม่สำเร็จ
ไม่สามารถสร้างรายการใหม่ได้ โปรดลองใหม่อีกครั้ง', + + // Confirmation messages and bubbles + 'delete_confirm' => 'คุณแน่ใจที่จะลบรายการนี้หรือไม่?', + 'delete_confirmation_title' => 'รายการถูกลบแล้ว', + 'delete_confirmation_message' => 'การลบรายการสำเร็จ', + 'delete_confirmation_not_title' => 'การลบไม่สำเร็จ', + 'delete_confirmation_not_message' => 'เกิดข้อผิดพลาดระหว่างการลบรายการ ข้อมูลบางส่วนอาจคงอยู่', + 'delete_confirmation_not_deleted_title' => 'รายการไม่ถูกลบ', + 'delete_confirmation_not_deleted_message' => 'ยกเลิกการลบแล้ว รายการนี้ไม่มีการเปลี่ยนแปลง', + + // Bulk actions + 'bulk_no_entries_selected_title' => 'ยังไม่ได้เลือกรายการใดๆ', + 'bulk_no_entries_selected_message' => 'โปรดเลือกข้อมูลอย่างน้อยหนึ่งรายการเพื่อทำการกระทำจำนวนมาก', + + // Bulk delete + 'bulk_delete_are_you_sure' => 'คุณแน่ใจที่จะลบข้อมูลจำนวน :number รายการหรือไม่?', + 'bulk_delete_sucess_title' => 'รายการถูกลบแล้ว', + 'bulk_delete_sucess_message' => ' รายการถูกลบแล้ว', + 'bulk_delete_error_title' => 'การลบไม่สำเร็จ', + 'bulk_delete_error_message' => 'มีข้อมูลบางรายการไม่สามารถลบได้', + + // Bulk clone + 'bulk_clone_are_you_sure' => 'คุณแน่ใจที่จะคัดลอกข้อมูลจำนวน :number รายการหรือไม่?', + 'bulk_clone_sucess_title' => 'รายการถูกคัดลอกแล้ว', + 'bulk_clone_sucess_message' => ' รายการได้ถูกคัดลอก', + 'bulk_clone_error_title' => 'การคัดลอกไม่สำเร็จ', + 'bulk_clone_error_message' => 'มีข้อมูลบางรายการไม่สามารถคัดลอกได่ โปรดลองใหม่อีกครั้ง', + + // Ajax errors + 'ajax_error_title' => 'ข้อผิดพลาด', + 'ajax_error_text' => 'เกิดข้อผิดพลาดในการโหลดหน้านี้ โปรดรีเฟรชหน้าอีกครั้ง', + + // DataTables translation + 'emptyTable' => 'ไม่มีรายการในตาราง', + 'info' => 'กำลังแสดง _START_ ถึง _END_ จากทั้งหมด _TOTAL_ รายการ', + 'infoEmpty' => 'ไม่มีข้อมูล', + 'infoFiltered' => '(กรองจากข้อมูล _MAX_ รายการ)', + 'infoPostFix' => '', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ รายการต่อหน้า', + 'loadingRecords' => 'กำลังโหลด...', + 'processing' => 'กำลังประมวลผล...', + 'search' => 'ค้นหา', + 'zeroRecords' => 'ไม่มีรายการที่ตรงกับเงื่อนไข', + 'paginate' => [ + 'first' => 'หน้าแรก', + 'last' => 'หน้าสุดท้าย', + 'next' => 'หน้าถัดไป', + 'previous' => 'หน้าก่อนหน้า', + ], + 'aria' => [ + 'sortAscending' => ': เลือกเพื่อกรองจากน้อย-มาก', + 'sortDescending' => ': เลือกเพื่อกรองจากมาก-น้อย', + ], + 'export' => [ + 'export' => 'ส่งออก', + 'copy' => 'คัดลอก', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => 'พิมพ์', + 'column_visibility' => 'การแสดงคอลัมน์', + ], + + // global crud - errors + 'unauthorized_access' => 'ไม่ได้รับอนุญาตให้เข้าถึง - คุณไม่ได้รับอนุญาตให้เข้าถึงหน้านี้', + 'please_fix' => 'โปรดแก้ไขข้อผิดพลาดเหล่านี้:', + + // global crud - success / error notification bubbles + 'insert_success' => 'การเพิ่มข้อมูลสำเร็จ', + 'update_success' => 'การแก้ไขข้อมูลสำเร็จ', + + // CRUD reorder view + 'reorder' => 'จัดเรียง', + 'reorder_text' => 'ลากและวางเพื่อจัดเรียงใหม่', + 'reorder_success_title' => 'สำเร็จ', + 'reorder_success_message' => 'การเรียงลำดับถูกบันทึกแล้ว', + 'reorder_error_title' => 'ข้อผิดพลาด', + 'reorder_error_message' => 'ไม่สามารถบันทึกการเรียงลำดับได้', + + // CRUD yes/no + 'yes' => 'ใช่', + 'no' => 'ไม่ใช่', + + // CRUD filters navbar view + 'filters' => 'ตัวกรอง', + 'toggle_filters' => 'เปิดปิดตัวกรอง', + 'remove_filters' => 'ล้างตัวกรอง', + 'apply' => 'นำไปใช้', + + //filters language strings + 'today' => 'วันนี้', + 'yesterday' => 'เมื่อวานนี้', + 'last_7_days' => '7 วันที่ผ่านมา', + 'last_30_days' => '30 วันที่ผ่านมา', + 'this_month' => 'เดือนนี้', + 'last_month' => 'เดือนก่อน', + 'custom_range' => 'กำหนดเอง', + 'weekLabel' => 'W', + + // Fields + 'browse_uploads' => 'เลือกไฟล์', + 'select_all' => 'เลือกทั้งหมด', + 'select_files' => 'เลือกไฟล์', + 'select_file' => 'เลือกไฟล์', + 'clear' => 'ล้าง', + 'page_link' => 'ลิงก์ไปหน้าอื่น', + 'page_link_placeholder' => 'http://example.com/your-desired-page', + 'internal_link' => 'ลิงก์ภายใน', + 'internal_link_placeholder' => 'ลิงก์ภายใน เช่น \'admin/page\' (ไม่มีเครื่องหมาย ") สำหรับ \':url\'', + 'external_link' => 'ลิงก์ภายนอก', + 'choose_file' => 'เลือกไฟล์', + 'new_item' => 'สร้างใหม่', + 'select_entry' => 'เลือกรายการ', + 'select_entries' => 'เลือกหลายรายการ', + 'upload_multiple_files_selected' => 'ไฟล์ถูกเลือก หลังจากบันทึกไฟล์เหล่านี้จะแสดงด้านบน', + + //Table field + 'table_cant_add' => 'ไม่สามารถเพิ่ม:entityใหม่', + 'table_max_reached' => 'เกินจำนวนที่กำหนด (:max รายการ)', + + // File manager + 'file_manager' => 'ตัวจัดการไฟล์', + + // InlineCreateOperation + 'related_entry_created_success' => 'รายการที่เกี่ยวข้องถูกสร้างและเลือกแล้ว', + 'related_entry_created_error' => 'ไม่สามารถสร้างรายการที่เกี่ยวข้องได้', + 'inline_saving' => 'กำลังบันทึก...', + + // returned when no translations found in select inputs + 'empty_translations' => '(ว่าง)', + + // The pivot selector required validation message + 'pivot_selector_required_validation_message' => 'ต้องเลือก pivot field', +]; diff --git a/lang/vendor/backpack/th/langfilemanager.php b/lang/vendor/backpack/th/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/th/langfilemanager.php @@ -0,0 +1,16 @@ + 'Kaydet ve yeni öğe', + 'save_action_save_and_edit' => 'Bu öğeyi kaydet ve düzenle', + 'save_action_save_and_back' => 'Kaydet ve geri dön.', + 'save_action_changed_notification' => 'Kaydedildikten sonra varsayılan davranış değiştirildi.', + + // Create form + 'add' => 'Ekle', + 'back_to_all' => 'Geri Dön ', + 'cancel' => 'İptal', + 'add_a_new' => 'Yeni Ekle ', + + // Edit form + 'edit' => 'Düzenle', + 'save' => 'Kaydet', + + // Translatable models + 'edit_translations' => 'EDIT TRANSLATIONS', + 'language' => 'Language', + + // CRUD table view + 'all' => 'Tümü ', + 'in_the_database' => 'Veritabanında', + 'list' => 'Liste', + 'actions' => 'Aksiyonlar', + 'preview' => 'Önizleme', + 'delete' => 'Sil', + 'admin' => 'Admin', + 'details_row' => 'Detaylar satırı. İstediğiniz gibi değiştirin.', + 'details_row_loading_error' => 'Ayrıntılar yüklenirken bir hata oluştu. Lütfen tekrar deneyiniz.', + 'confirm_delete' => 'Evet', + 'are_you_sure' => 'Emin misiniz?', + + // Confirmation messages and bubbles + 'delete_confirm' => 'Bu öğeyi silmek istediğinizden emin misiniz?', + 'delete_confirmation_title' => 'Öğe Silindi.', + 'delete_confirmation_message' => 'Öğe başarıyla silindi.', + 'delete_confirmation_not_title' => 'Silinemedi', + 'delete_confirmation_not_message' => 'Bir hata oluştu. Öğeniz silinmemiş olabilir.', + 'delete_confirmation_not_deleted_title' => 'Silinmedi', + 'delete_confirmation_not_deleted_message' => 'Hiçbir şey olmadı. Öğeniz güvende.', + + // Bulk actions + 'bulk_no_entries_selected_title' => 'Kayıt seçilmedi', + 'bulk_no_entries_selected_message' => 'Lütfen toplu işlem gerçekleştirmek için bir veya daha fazla öğe seçin.', + + // Bulk confirmation + 'bulk_delete_are_you_sure' => 'Bunları silmek istediğinizden emin misiniz? :number öğe', + 'bulk_delete_sucess_title' => 'Girdiler silindi.', + 'bulk_delete_sucess_message' => 'Öğeler silindi', + 'bulk_delete_error_title' => 'Silme başarısız', + 'bulk_delete_error_message' => 'Bir veya daha fazla öğe silinemedi', + + // Ajax errors + 'ajax_error_title' => 'Hata', + 'ajax_error_text' => 'Sayfa yüklenirken hata oluştu. Lütfen sayfayı yenileyin.', + + // DataTables translation + 'emptyTable' => 'Tabloda veri yok', + 'info' => '_START_ ile _END_ arası Toplam _TOTAL_ kayıt', + 'infoEmpty' => '', + 'infoFiltered' => '(Toplam _MAX_ kayıt filtrelendi)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ kayıt sayfa başına', + 'loadingRecords' => 'Yükleniyor...', + 'processing' => 'İşleniyor...', + 'search' => 'Arama', + 'zeroRecords' => 'Hiçbir eşleşen kayıt bulunamadı', + 'paginate' => [ + 'first' => 'İlk', + 'last' => 'Son', + 'next' => 'Sonraki', + 'previous' => 'Önceki', + ], + 'aria' => [ + 'sortAscending' => ': artan sütun sıralamak için etkinleştir', + 'sortDescending' => ': azalan sütun sıralamak için etkinleştir', + ], + 'export' => [ + 'copy' => 'Kopyala', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => 'Yazdır', + 'column_visibility' => 'Sütün görünürlüğü', + ], + + // global crud - errors + 'unauthorized_access' => 'Yetkisiz erişim - bu sayfayı görmek için gerekli izinlere sahip değilsiniz.', + 'please_fix' => 'Lütfen aşağıdaki hataları düzeltin:', + + // global crud - success / error notification bubbles + 'insert_success' => 'Öğe başarıyla eklendi.', + 'update_success' => 'Öğe başarıyla değiştirildi.', + + // CRUD reorder view + 'reorder' => 'Tekrar Sırala', + 'reorder_text' => 'Sürükle&bırak olarak sırala.', + 'reorder_success_title' => 'Tamam', + 'reorder_success_message' => 'Sıralama kayıt edildi.', + 'reorder_error_title' => 'Hata', + 'reorder_error_message' => 'Sıralama kayıt edilemedi.', + + // CRUD yes/no + 'yes' => 'Evet', + 'no' => 'Hayır', + + // CRUD filters navbar view + 'filters' => 'Filtreler', + 'toggle_filters' => 'Geçiş filtreleri', + 'remove_filters' => 'Silme filtreleri', + + // Fields + 'browse_uploads' => 'Yüklemelere göz atın', + 'select_all' => 'Tümünü seç', + 'select_files' => 'Dosyaları seç', + 'select_file' => 'Dosya seç', + 'clear' => 'Temizle', + 'page_link' => 'Sayfa linki', + 'page_link_placeholder' => 'https://ornek.com/sayfa', + 'internal_link' => 'İç link', + 'internal_link_placeholder' => 'İç sayfa slug. Örn: \'admin/sayfa\' (tırnak isareti yok) => \':url\'', + 'external_link' => 'Dış link', + 'choose_file' => 'Dosya seç', + + //Table field + 'table_cant_add' => 'Yeni :entity eklenemez', + 'table_max_reached' => 'Maksimum :max kadar', + + // File manager + 'file_manager' => 'Dosya yöneticisi', + +]; diff --git a/lang/vendor/backpack/tr/langfilemanager.php b/lang/vendor/backpack/tr/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/tr/langfilemanager.php @@ -0,0 +1,16 @@ + 'Реєстрація закрита', + 'no_email_column' => 'Користувачі не мають пов\'язаної адреси електронної пошти.', + 'first_page_you_see' => 'Перша сторінка, яку ви бачите після входу в систему', + 'login_status' => 'Статус авторизації', + 'logged_in' => 'Ви ввійшли в систему!', + 'toggle_navigation' => 'Переключити навігацію', + 'administration' => 'АДМІНІСТРУВАННЯ', + 'user' => 'КОРИСТУВАЧ', + 'logout' => 'Вийти', + 'login' => 'Увійти', + 'register' => 'Реєстрація', + 'name' => 'Ім\'я', + 'email_address' => 'Адреса електронної пошти', + 'password' => 'Пароль', + 'old_password' => 'Старий пароль', + 'new_password' => 'Новий пароль', + 'confirm_password' => 'Підтвердьте пароль', + 'remember_me' => 'Запам\'ятати мене', + 'forgot_your_password' => 'Забули свій пароль?', + 'reset_password' => 'Скинути пароль', + 'send_reset_link' => 'Надіслати посилання для скидання пароля', + 'click_here_to_reset' => 'Клацніть тут, щоб скинути пароль', + 'change_password' => 'Змінити пароль', + 'unauthorized' => 'Ви не авторизовані.', + 'dashboard' => 'Панель управління', + 'handcrafted_by' => 'Розроблено', + 'powered_by' => 'За підтримки', + 'my_account' => 'Мій обліковий запис', + 'update_account_info' => 'Оновити мої дані', + 'save' => 'Зберегти', + 'cancel' => 'Скасувати', + 'error' => 'Помилка', + 'success' => 'Успіх', + 'warning' => 'Увага', + 'notice' => 'Повідомлення', + 'old_password_incorrect' => 'Старий пароль неправильний.', + 'password_dont_match' => 'Паролі не співпадають.', + 'password_empty' => 'Переконайтеся, що обидва поля для пароля заповнені.', + 'password_updated' => 'Пароль оновлено.', + 'account_updated' => 'Обліковий запис успішно оновлено.', + 'unknown_error' => 'Сталася невідома помилка. Будь ласка спробуйте ще раз.', + 'error_saving' => 'Помилка під час збереження. Будь ласка спробуйте ще раз.', + 'session_expired_error' => 'Ваш сеанс закінчився. Увійдіть ще раз у свій обліковий запис.', + 'welcome' => 'Ласкаво просимо!', + 'use_sidebar' => 'Використовуйте панель ліворуч для створення, редагування або видалення вмісту.', + + 'error_page' => [ + 'title' => 'Помилка :error', + 'button' => 'Перейти на головну', + 'message_4xx' => 'Будь ласка, поверніться назад або перейдіть на головну сторінку.', + 'message_500' => 'Виникла внутрішня помилка сервера. Якщо помилка не зникне, зверніться до команди розробників.', + 'message_503' => 'Сервер перевантажено або вимкнено на технічне обслуговування. Будь ласка, повторіть спробу пізніше.', + '400' => 'Поганий запит.', + '401' => 'Неавторизована дія.', + '403' => 'Заборонено.', + '404' => 'Сторінка не знайдена.', + '405' => 'Метод не дозволений.', + '408' => 'Час очікування запиту минув.', + '429' => 'Забагато запитів.', + '500' => 'Це не ти, це я.', + ], + + 'password_reset' => [ + 'greeting' => 'Привіт!', + 'subject' => 'Скинути пароль', + 'line_1' => 'Ви отримали цей електронний лист, оскільки ми отримали запит на скидання пароля для вашого облікового запису.', + 'line_2' => 'Клацніть на кнопку нижче, щоб скинути пароль:', + 'button' => 'Скинути пароль', + 'notice' => 'Якщо ви не вимагали скидання пароля, подальших дій не потрібно.', + ], + + 'step' => 'Крок', + 'confirm_email' => 'Підтвердьте електронну пошту', + 'choose_new_password' => 'Введіть новий пароль', + 'confirm_new_password' => 'Підтвердить новий пароль', + 'throttled' => 'Нещодавно ви вже запросили скидання пароля. Будь ласка перевірте свою електронну пошту. Якщо ви не отримали нашого листа, повторіть спробу пізніше.', + 'throttled_request' => 'Ви перевищили ліміт спроб входу. Зачекайте кілька хвилин і повторіть спробу.', + + 'verify_email' => [ + 'email_verification' => 'Підтвердження електронною поштою', + 'verification_link_sent' => 'Посилання на підтвердження було надіслано на вашу адресу електронної пошти.', + 'email_verification_required' => 'Будь ласка, підтвердіть свою адресу електронної пошти, натиснувши посилання, яке ми вам надіслали.', + 'resend_verification_link' => 'Надіслати посилання повторно', + ], +]; diff --git a/lang/vendor/backpack/uk/crud.php b/lang/vendor/backpack/uk/crud.php new file mode 100644 index 0000000..18c7770 --- /dev/null +++ b/lang/vendor/backpack/uk/crud.php @@ -0,0 +1,188 @@ + 'Зберегти та створити', + 'save_action_save_and_edit' => 'Зберегти та продовжити редагування', + 'save_action_save_and_back' => 'Зберегти і вийти', + 'save_action_save_and_preview' => 'Зберегти та переглянути', + 'save_action_changed_notification' => 'Поведінка за замовчуванням після збереження була змінена.', + + // Create form + 'add' => 'Додати', + 'back_to_all' => 'Назад до всіх ', + 'cancel' => 'Скасувати', + 'add_a_new' => 'Додати новий ', + + // Edit form + 'edit' => 'Редагувати', + 'save' => 'Зберегти', + + // Translatable models + 'edit_translations' => 'Переклад', + 'language' => 'Мова', + + // CRUD table view + 'all' => 'Всі ', + 'in_the_database' => 'в базі даних', + 'list' => 'Список', + 'reset' => 'Скинути', + 'actions' => 'Дії', + 'preview' => 'Попередній перегляд', + 'delete' => 'Видалити', + 'admin' => 'Admin', + 'details_row' => 'Це рядок з деталями. Змінюйте як завгодно.', + 'details_row_loading_error' => 'Під час завантаження деталей сталася помилка. Повторіть спробу.', + 'clone' => 'Створити копію', + 'clone_success' => 'Успіх!
Додано новий запис із тією ж інформацією, що і цей.', + 'clone_failure' => 'Помилка!
Не вдалося створити новий запис. Будь ласка спробуйте ще раз.', + + // Confirmation messages and bubbles + 'delete_confirm' => 'Ви впевнені, що хочете видалити цей елемент?', + 'delete_confirmation_title' => 'Запис видалено', + 'delete_confirmation_message' => 'Запис успішно видалено.', + 'delete_confirmation_not_title' => 'НЕ видалено', + 'delete_confirmation_not_message' => 'Сталася помилка. Будь ласка спробуйте ще раз.', + 'delete_confirmation_not_deleted_title' => 'Не видалено', + 'delete_confirmation_not_deleted_message' => 'Нічого не трапилося. Ваш запис у безпеці.', + + // Bulk actions + 'bulk_no_entries_selected_title' => 'Записів не вибрано', + 'bulk_no_entries_selected_message' => 'Виберіть один або кілька записів, щоб виконати групову дію над ними.', + + // Bulk delete + 'bulk_delete_are_you_sure' => 'Ви впевнені, що хочете видалити ці :number записів?', + 'bulk_delete_sucess_title' => 'Записи видалено', + 'bulk_delete_sucess_message' => ' записів було видалено', + 'bulk_delete_error_title' => 'Помилка', + 'bulk_delete_error_message' => 'Не вдалося видалити один або кілька записів', + + // Bulk clone + 'bulk_clone_are_you_sure' => 'Ви впевнені, що хочете скопіювати ці :number записів?', + 'bulk_clone_sucess_title' => 'Записи скопійовано', + 'bulk_clone_sucess_message' => ' записів було скопійовано.', + 'bulk_clone_error_title' => 'Помилка копіювання', + 'bulk_clone_error_message' => 'Не вдалося створити один або кілька записів. Будь ласка спробуйте ще раз.', + + // Ajax errors + 'ajax_error_title' => 'Помилка', + 'ajax_error_text' => 'Помилка завантаження сторінки. Оновіть сторінку.', + + // DataTables translation + 'emptyTable' => 'У таблиці відсутні дані', + 'info' => 'Відображено з _START_ по _END_ з _TOTAL_ записів', + 'infoEmpty' => 'Немає записів', + 'infoFiltered' => '(відфільтровано з _MAX_ записів)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ записів на сторінці', + 'loadingRecords' => 'Завантаження...', + 'processing' => 'Обробка...', + 'search' => 'Пошук', + 'zeroRecords' => 'Відповідних записів не знайдено', + 'paginate' => [ + 'first' => 'Перший', + 'last' => 'Останній', + 'next' => 'Наступний', + 'previous' => 'Попередній', + ], + 'aria' => [ + 'sortAscending' => ': сортувати стовпець за зростанням', + 'sortDescending' => ': сортувати стовпець за спаданням', + ], + 'export' => [ + 'export' => 'Експорт', + 'copy' => 'Копіювати', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => 'Друк', + 'column_visibility' => 'Видимість стовпців', + ], + + // global crud - errors + 'unauthorized_access' => 'Несанкціонований доступ - у вас немає необхідних прав, щоб побачити цю сторінку.', + 'please_fix' => 'Виправте наступні помилки:', + + // global crud - success / error notification bubbles + 'insert_success' => 'Запис успішно додано.', + 'update_success' => 'Запис успішно змінено.', + + // CRUD reorder view + 'reorder' => 'Змінити порядок', + 'reorder_text' => 'Використовуйте перетягування, щоб змінити порядок.', + 'reorder_success_title' => 'Готово', + 'reorder_success_message' => 'Порядок був збережений.', + 'reorder_error_title' => 'Помилка', + 'reorder_error_message' => 'Порядок не було збережено.', + + // CRUD yes/no + 'yes' => 'Так', + 'no' => 'Ні', + + // CRUD filters navbar view + 'filters' => 'Фільтри', + 'toggle_filters' => 'Переключити фільтри', + 'remove_filters' => 'Очистити фільтри', + 'apply' => 'Прийняти', + + //filters language strings + 'today' => 'Сьогодні', + 'yesterday' => 'Вчора', + 'last_7_days' => 'Останні 7 днів', + 'last_30_days' => 'Останні 30 днів', + 'this_month' => 'Цього місяця', + 'last_month' => 'Останній місяць', + 'custom_range' => 'Вибрати дати', + 'weekLabel' => 'W', + + // Fields + 'browse_uploads' => 'Завантажити файли', + 'select_all' => 'Вибрати все', + 'select_files' => 'Вибрати файли', + 'select_file' => 'Вибрати файл', + 'clear' => 'Очистити', + 'page_link' => 'Посилання на сторінку', + 'page_link_placeholder' => 'http://example.com/your-desired-page', + 'internal_link' => 'Внутрішнє посилання', + 'internal_link_placeholder' => 'Внутрішній шлях. Наприклад: \'admin/page\' (без лапок) для \':url\'', + 'external_link' => 'Зовнішнє посилання', + 'choose_file' => 'Вибрати файл', + 'new_item' => 'Новий елемент', + 'select_entry' => 'Вибрати запис', + 'select_entries' => 'Вибрати записи', + 'upload_multiple_files_selected' => 'Вибрані файли. Після збереження вони з\'являться вище.', + + //Table field + 'table_cant_add' => 'Не вдається додати нове :entity', + 'table_max_reached' => 'Максимальна кількість з :max досягнута', + + // google_map + 'google_map_locate' => 'Отримати моє місцезнаходження', + + // File manager + 'file_manager' => 'Файловий менеджер', + + // InlineCreateOperation + 'related_entry_created_success' => 'Пов\'язаний запис створено та вибрано.', + 'related_entry_created_error' => 'Не вдалося створити пов\'язаний запис.', + 'inline_saving' => 'Збереження...', + + // returned when no translations found in select inputs + 'empty_translations' => '(порожньо)', + + // The pivot selector required validation message + 'pivot_selector_required_validation_message' => 'Поле зведеної таблиці є обов\'язковим.', +]; diff --git a/lang/vendor/backpack/uk/langfilemanager.php b/lang/vendor/backpack/uk/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/uk/langfilemanager.php @@ -0,0 +1,16 @@ + 'Đăng ký đã bị khoá.', + 'no_email_column' => 'Thông tin người dùng không có địa chỉ email.', + 'first_page_you_see' => 'Trang đầu tiên bạn thấy sau khi đăng nhập', + 'login_status' => 'Trạng thái đăng nhập', + 'logged_in' => 'Bạn đã đăng nhập!', + 'toggle_navigation' => 'Bật/tắt thanh điều hướng', + 'administration' => 'QUẢN TRỊ', + 'user' => 'NGƯỜI DÙNG', + 'logout' => 'Đăng xuất', + 'login' => 'Đăng nhập', + 'register' => 'Đăng ký', + 'name' => 'Tên', + 'email_address' => 'Địa chỉ email', + 'email' => 'Email', + 'username' => 'Tên người dùng', + 'password' => 'Mật khẩu', + 'old_password' => 'Mật khẩu cũ', + 'new_password' => 'Mật khẩu mới', + 'confirm_password' => 'Xác nhận mật khẩu', + 'remember_me' => 'Ghi nhớ', + 'forgot_your_password' => 'Quên Mật Khẩu?', + 'reset_password' => 'Đặt Lại Mật Khẩu', + 'send_reset_link' => 'Gửi Liên Kết Đặt Lại Mật Khẩu', + 'click_here_to_reset' => 'Bấm vào đây để đặt lại mật khẩu', + 'change_password' => 'Đổi Mật Khẩu', + 'unauthorized' => 'Chưa được cấp quyền.', + 'dashboard' => 'Bảng điều khiển', + 'handcrafted_by' => 'Handcrafted by', + 'powered_by' => 'Powered by', + 'my_account' => 'Tài Khoản', + 'update_account_info' => 'Cập Nhật Thông Tin Tài Khoản', + 'save' => 'Lưu', + 'cancel' => 'Huỷ bỏ', + 'success' => 'Thành công', + 'warning' => 'Cảnh báo', + 'notice' => 'Thông báo', + 'old_password_incorrect' => 'Mật khẩu cũ không chính xác.', + 'password_dont_match' => 'Mật khẩu không khớp.', + 'password_empty' => 'Vui lòng nhập vào tất cả các ô mật khẩu.', + 'password_updated' => 'Mật khẩu đã được thay đổi.', + 'account_updated' => 'Tài khoản đã được cập nhật thành công.', + 'unknown_error' => 'Đã xảy ra lỗi. Vui lòng thử lại.', + 'error_saving' => 'Đã xảy ra lỗi trong lúc lưu. Vui lòng thử lại.', + 'session_expired_error' => 'Phiên của bạn đã hết hạn. Vui lòng đăng nhập lại vào tài khoản của bạn.', + 'welcome' => 'Xin chào!', + 'use_sidebar' => 'Sử dụng các chức năng ở thanh bên để tạo, sửa hoặc xoá các nội dung.', + + 'error' => [ + 'title' => 'Lỗi :error', + 'button' => 'Đưa tôi về trang chủ', + 'message_4xx' => 'Vui lòng quay lại hoặc trở về trang chủ của chúng tôi.', + 'message_500' => 'Đã xảy ra lỗi máy chủ nội bộ. Nếu lỗi vẫn tiếp diễn, vui lòng liên hệ với nhóm phát triển.', + 'message_503' => 'Máy chủ quá tải hoặc đang trong quá trình bảo trì. Vui lòng thử lại sau.', + '400' => 'Yêu cầu không hợp lệ.', + '401' => 'Hành động không được ủy quyền.', + '403' => 'Bị cấm truy cập.', + '404' => 'Không tìm thấy trang.', + '405' => 'Phương thức không được phép.', + '408' => 'Hết thời gian yêu cầu.', + '429' => 'Quá nhiều yêu cầu.', + '500' => 'Không phải lỗi của bạn, mà là của tôi.', + ], + + 'password_reset' => [ + 'greeting' => 'Xin chào!', + 'subject' => 'Thông Báo Đặt Lại Mật Khẩu', + 'line_1' => 'Bạn nhận được email này bởi vì chúng tôi nhận được yêu cầu đặt lại mật khẩu cho tài khoản của bạn..', + 'line_2' => 'Bấm vào nút bên dưới để đặt lại mật khẩu:', + 'button' => 'Đặt Lại Mật Khẩu', + 'notice' => 'Nếu bạn không yêu cầu đặt lại mật khẩu, vui lòng bỏ qua email này.', + ], + + 'step' => 'Bước', + 'confirm_email' => 'Xác Nhận Email', + 'choose_new_password' => 'Mật khẩu mới', + 'confirm_new_password' => 'Xác nhận mật khẩu mới', + 'throttled' => 'Bạn vừa gửi một yêu cầu đặt lại mật khẩu gần đây. Vui lòng kiểm tra email. Nếu bạn không nhận được email hướng dẫn, vui lòng thử lại sau.', + 'throttled_request' => 'Bạn đã yêu cầu đặt lại mật khẩu vượt quá số lần giới hạn. Vui lòng thử lại sau vài phút nữa.', + + 'verify_email' => [ + 'email_verification' => 'Xác thực Email', + 'verification_link_sent' => 'Một liên kết xác thực đã được gửi đến địa chỉ email của bạn.', + 'email_verification_required' => 'Vui lòng xác thực địa chỉ email của bạn bằng cách nhấn vào liên kết chúng tôi đã gửi cho bạn.', + 'resend_verification_link' => 'Gửi lại liên kết', + ], +]; diff --git a/lang/vendor/backpack/vi/crud.php b/lang/vendor/backpack/vi/crud.php new file mode 100644 index 0000000..7070a15 --- /dev/null +++ b/lang/vendor/backpack/vi/crud.php @@ -0,0 +1,188 @@ + 'Lưu và Thêm mới', + 'save_action_save_and_edit' => 'Lưu và Tiếp tục sửa', + 'save_action_save_and_back' => 'Lưu và Quay lại', + 'save_action_save_and_preview' => 'Lưu và Xem lại', + 'save_action_changed_notification' => 'Hành động sau khi lưu dữ liệu đã thay đổi.', + + // Create form + 'add' => 'Thêm', + 'back_to_all' => 'Quay lại danh sách ', + 'cancel' => 'Huỷ bỏ', + 'add_a_new' => 'Thêm mới ', + + // Edit form + 'edit' => 'Sửa', + 'save' => 'Lưu', + + // Translatable models + 'edit_translations' => 'Bản dịch', + 'language' => 'Ngôn ngữ', + + // CRUD table view + 'all' => 'Tất cả ', + 'in_the_database' => 'trong cơ sở dữ liệu', + 'list' => 'Danh sách', + 'reset' => 'Thiết lập lại', + 'actions' => 'Hành động', + 'preview' => 'Xem lại', + 'delete' => 'Xoá', + 'admin' => 'Quản trị', + 'details_row' => 'Đây là các chi tiết của bản ghi. Vui lòng chỉnh sửa lại theo nhu cầu của bạn.', + 'details_row_loading_error' => 'Đã xảy ra lỗi trong quá trình tải chi tiết bản ghi. Vui lòng thử lại.', + 'clone' => 'Nhân bản', + 'clone_success' => 'Đã nhân bản
Bản ghi mới với cùng nội dung như bản ghi này đã được thêm.', + 'clone_failure' => 'Nhân bản thất bại
Không thể nhân bản. Vui lòng thử lại.', + + // Confirmation messages and bubbles + 'delete_confirm' => 'Bạn chắc chắn muốn xoá bản ghi này chứ?', + 'delete_confirmation_title' => 'Đã Xoá', + 'delete_confirmation_message' => 'Bản ghi đã được xoá thành công.', + 'delete_confirmation_not_title' => 'KHÔNG xoá', + 'delete_confirmation_not_message' => 'Đã xảy ra lỗi. Có thể bản ghi của bạn vẫn chưa được xoá.', + 'delete_confirmation_not_deleted_title' => 'Không Xoá', + 'delete_confirmation_not_deleted_message' => 'Bản ghi của bạn sẽ không bị xoá.', + + // Bulk actions + 'bulk_no_entries_selected_title' => 'Chưa chọn bản ghi', + 'bulk_no_entries_selected_message' => 'Vui lòng chọn một hoặc nhiều bản ghi để thực hiện thao tác trên tập hợp.', + + // Bulk delete + 'bulk_delete_are_you_sure' => 'Bạn có chắc chắn muốn xoá :number bản ghi này?', + 'bulk_delete_sucess_title' => 'Đã Xoá', + 'bulk_delete_sucess_message' => ' bản ghi đã được xoá', + 'bulk_delete_error_title' => 'Xoá ất Bại', + 'bulk_delete_error_message' => 'Một hoặc nhiều bản ghi có thể vẫn chưa được xoá', + + // Bulk clone + 'bulk_clone_are_you_sure' => 'Bạn có chắc chắn muốn nhân bản :number bản ghi này không?', + 'bulk_clone_sucess_title' => 'Nhân Bản Thành Công', + 'bulk_clone_sucess_message' => ' bạn ghi đã được nhân bản.', + 'bulk_clone_error_title' => 'Nhân Bản Thất Bại', + 'bulk_clone_error_message' => 'Một hoặc nhiều bản ghi đã không thể nhân bản. Vui lòng thử lại.', + + // Ajax errors + 'ajax_error_title' => 'Lỗi', + 'ajax_error_text' => 'Xảy ra lỗi trong khi tải trang. Vui lòng refresh lại trang.', + + // DataTables translation + 'emptyTable' => 'Bảng chưa có dữ liệu', + 'info' => 'Hiển thị từ _START_ đến _END_ trong tổng số _TOTAL_ bản ghi', + 'infoEmpty' => 'Không có bản ghi nào', + 'infoFiltered' => '(được lọc từ _MAX_ bản ghi)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '_MENU_ bản ghi trên một trang', + 'loadingRecords' => 'Đang tải...', + 'processing' => 'Đang xử lý...', + 'search' => 'Tìm kiếm', + 'zeroRecords' => 'Không tìm thấy bản ghi phù hợp', + 'paginate' => [ + 'first' => 'Đầu tiên', + 'last' => 'Cuối cùng', + 'next' => 'Tiếp', + 'previous' => 'Trước', + ], + 'aria' => [ + 'sortAscending' => ': kích hoạt để sắp xếp cột theo thứ tự tăng dần', + 'sortDescending' => ': kích hoạt để sắp xếp cột theo thứ tự giảm dần', + ], + 'export' => [ + 'export' => 'Xuất tập tin', + 'copy' => 'Sao chép', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => 'In', + 'column_visibility' => 'Ẩn/hiện cột', + ], + + // global crud - errors + 'unauthorized_access' => 'Truy cập chưa được cấp phép - bạn cần được cấp quyền để xem trang này.', + 'please_fix' => 'Vui lòng sửa các lỗi sau:', + + // global crud - success / error notification bubbles + 'insert_success' => 'Bản ghi đã được thêm mới thành công.', + 'update_success' => 'Bản ghi đã được cập nhật thành công.', + + // CRUD reorder view + 'reorder' => 'Sắp xếp', + 'reorder_text' => 'Kéo & Thả để sắp xếp.', + 'reorder_success_title' => 'Hoàn tất', + 'reorder_success_message' => 'Thứ tự đã được lưu lại.', + 'reorder_error_title' => 'Lỗi', + 'reorder_error_message' => 'Không thể lưu lại thứ tự.', + + // CRUD yes/no + 'yes' => 'Có', + 'no' => 'Không', + + // CRUD filters navbar view + 'filters' => 'Bộ lọc', + 'toggle_filters' => 'Bật tắt bộ lọc', + 'remove_filters' => 'Gỡ bỏ bộ lọc', + 'apply' => 'Áp dụng', + + //filters language strings + 'today' => 'Hôm nay', + 'yesterday' => 'Hôm qua', + 'last_7_days' => '7 ngày qua', + 'last_30_days' => '30 ngày qua', + 'this_month' => 'Tháng này', + 'last_month' => 'Tháng trước', + 'custom_range' => 'Phạm vi tuỳ chỉnh', + 'weekLabel' => 'W', + + // Fields + 'browse_uploads' => 'Chọn tập tin', + 'select_all' => 'Chọn tất cả', + 'select_files' => 'Chọn các tập tin', + 'select_file' => 'Chọn tập tin', + 'clear' => 'Xoá', + 'page_link' => 'Liên kết', + 'page_link_placeholder' => 'http://example.com/your-desired-page', + 'internal_link' => 'Liên kết nội trang', + 'internal_link_placeholder' => 'Liên kết nội trang. Ví dụ: \'admin/page\' (không có dấu nháy) cho \':url\'', + 'external_link' => 'Liên kết bên ngoài', + 'choose_file' => 'Chọn tập tin', + 'new_item' => 'Bản ghi mới', + 'select_entry' => 'Chọn một bản ghi', + 'select_entries' => 'Chọn các bản ghi', + 'upload_multiple_files_selected' => 'Đã chọn tệp. Sau khi lưu, chúng sẽ hiển thị ở phía trên.', + + //Table field + 'table_cant_add' => 'Không thể thêm mới :entity', + 'table_max_reached' => 'Đã đạt đến số lượng tối đa :max bản ghi', + + // google_map + 'google_map_locate' => 'Lấy vị trí của tôi', + + // File manager + 'file_manager' => 'Quản lý Tập tin', + + // InlineCreateOperation + 'related_entry_created_success' => 'Bản ghi liên quan đã được tạo và được chọn.', + 'related_entry_created_error' => 'Không thể tạo bản ghi liên qua.', + 'inline_saving' => 'Đang lưu...', + + // returned when no translations found in select inputs + 'empty_translations' => '(chưa có)', + + // The pivot selector required validation message + 'pivot_selector_required_validation_message' => 'Trường pivot là bắt buộc.', +]; diff --git a/lang/vendor/backpack/vi/langfilemanager.php b/lang/vendor/backpack/vi/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/vi/langfilemanager.php @@ -0,0 +1,16 @@ + '註冊功能已關閉', + 'no_email_column' => '使用者沒有對應的 Email 地址。', + 'first_page_you_see' => '這是你登入後第一個看到的頁面', + 'login_status' => '登入狀態', + 'logged_in' => '您已成功登入!', + 'toggle_navigation' => '側邊欄開關', + 'administration' => '管理', + 'user' => '使用者', + 'logout' => '登出', + 'login' => '登入', + 'register' => '註冊', + 'name' => '名稱', + 'email_address' => 'E-mail 地址', + 'password' => '密碼', + 'old_password' => '舊密碼', + 'new_password' => '新密碼', + 'confirm_password' => '再次輸入新密碼', + 'remember_me' => '記住我', + 'forgot_your_password' => '忘記密碼?', + 'reset_password' => '重置密碼', + 'send_reset_link' => '寄出密碼重置信', + 'click_here_to_reset' => '按此重置密碼', + 'change_password' => '修改密碼', + 'unauthorized' => '未經授權的操作。', + 'dashboard' => '儀表板', + 'handcrafted_by' => 'Handcrafted by', + 'powered_by' => 'Powered by', + 'my_account' => '我的帳戶', + 'update_account_info' => '更新帳戶資訊', + 'save' => '儲存', + 'cancel' => '取消', + 'error' => '錯誤', + 'success' => '成功', + 'warning' => '警告', + 'notice' => '注意', + 'old_password_incorrect' => '舊密碼輸入不正確。', + 'password_dont_match' => '密碼輸入不一致。', + 'password_empty' => '請確認兩個密碼欄位皆有填寫。', + 'password_updated' => '已更新密碼。', + 'account_updated' => '已成功更新帳戶。', + 'unknown_error' => '發生未知錯誤,請再試一次。', + 'error_saving' => '儲存時發生錯誤,請再試一次。', + 'session_expired_error' => '您的會話已過期。 請重新登入您的帳戶。', + 'welcome' => '歡迎使用!', + 'use_sidebar' => '使用左方的側邊欄以新增、編輯或刪除內容。', + + 'password_reset' => [ + 'greeting' => '您好!', + 'subject' => '重置密碼通知', + 'line_1' => '您會收到這封郵件,是因為我們收到了重置您帳戶密碼的請求。', + 'line_2' => '請點擊下面的按鈕以重置您的密碼:', + 'button' => '重置密碼', + 'notice' => '若您沒有請求重置密碼,請忽略此右鍵。', + ], + + 'step' => '步驟', + 'confirm_email' => '確認 Email 地址', + 'choose_new_password' => '新密碼', + 'confirm_new_password' => '再次輸入新密碼', + +]; diff --git a/lang/vendor/backpack/zh-Hant/crud.php b/lang/vendor/backpack/zh-Hant/crud.php new file mode 100644 index 0000000..767d8ea --- /dev/null +++ b/lang/vendor/backpack/zh-Hant/crud.php @@ -0,0 +1,177 @@ + '儲存並新增', + 'save_action_save_and_edit' => '儲存並繼續編輯', + 'save_action_save_and_back' => '儲存並返回', + 'save_action_save_and_preview' => '儲存並預覽', + 'save_action_changed_notification' => '儲存後的預設行為已更改。', + + // Create form + 'add' => '新增', + 'back_to_all' => '回到所有的 ', + 'cancel' => '取消', + 'add_a_new' => '新增一個 ', + + // Edit form + 'edit' => '編輯', + 'save' => '儲存', + + // Translatable models + 'edit_translations' => '翻譯', + 'language' => '語言', + + // CRUD table view + 'all' => '全部 ', + 'in_the_database' => '在資料庫中', + 'list' => '清單', + 'reset' => '重置', + 'actions' => '動作', + 'preview' => '預覽', + 'delete' => '刪除', + 'admin' => '管理員', + 'details_row' => '這是詳細內容列。你可以在這裡作出編輯。', + 'details_row_loading_error' => '當載入詳細內容時遇到錯誤。請重試。', + 'clone' => '複製', + 'clone_success' => '紀錄已複製
與此紀錄內容一致的新紀錄已被新增。', + 'clone_failure' => '紀錄複製失敗
無法新增複製的紀錄,請稍後再試。', + + // Confirmation messages and bubbles + 'delete_confirm' => '您確定要刪除此紀錄嗎?', + 'delete_confirmation_title' => '紀錄已刪除', + 'delete_confirmation_message' => '此紀錄已成功地刪除。', + 'delete_confirmation_not_title' => '紀錄未刪除', + 'delete_confirmation_not_message' => '發生錯誤,您的紀錄有可能並未成功刪除。', + 'delete_confirmation_not_deleted_title' => '紀錄未刪除', + 'delete_confirmation_not_deleted_message' => '沒有任何事情發生過,您的紀錄依然存在。', + + // Bulk actions + 'bulk_no_entries_selected_title' => '沒有選擇任何紀錄', + 'bulk_no_entries_selected_message' => '進行大量操作前,請選擇至少一項紀錄。', + + // Bulk delete + 'bulk_delete_are_you_sure' => '您確定要刪除 :number 項紀錄嗎?', + 'bulk_delete_sucess_title' => '紀錄已刪除', + 'bulk_delete_sucess_message' => ' 項紀錄已被刪除', + 'bulk_delete_error_title' => '刪除失敗', + 'bulk_delete_error_message' => '無法刪除一項或多項紀錄', + + // Bulk clone + 'bulk_clone_are_you_sure' => '您確定要複製 :number 項紀錄嗎?', + 'bulk_clone_sucess_title' => '紀錄已複製', + 'bulk_clone_sucess_message' => ' 項紀錄已被複製。', + 'bulk_clone_error_title' => '複製失敗', + 'bulk_clone_error_message' => '無法複製一項或多項紀錄,請稍後再試。', + + // Ajax errors + 'ajax_error_title' => '錯誤', + 'ajax_error_text' => '載入頁面時發生錯誤,請重新整理頁面。', + + // DataTables translation + 'emptyTable' => '資料表中無任何紀錄', + 'info' => '正在顯示 _TOTAL_ 項紀錄當中的第 _START_ 到 _END_ 項', + 'infoEmpty' => '沒有紀錄', + 'infoFiltered' => '(自 _TOTAL_ 項紀錄中篩選出來的紀錄)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '每頁 _MENU_ 項紀錄', + 'loadingRecords' => '正在載入...', + 'processing' => '正在處理...', + 'search' => '搜尋', + 'zeroRecords' => '找不到符合的紀錄', + 'paginate' => [ + 'first' => '第一頁', + 'last' => '最後一頁', + 'next' => '下一頁', + 'previous' => '上一頁', + ], + 'aria' => [ + 'sortAscending' => ': 以由小到大的方式排列', + 'sortDescending' => ': 以由大到小的方式排列', + ], + 'export' => [ + 'export' => '匯出', + 'copy' => '複製', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => '列印', + 'column_visibility' => '顯示欄位', + ], + + // global crud - errors + 'unauthorized_access' => '未經授權的存取 - 您沒有權限瀏覽此頁面。', + 'please_fix' => '請修正以下的錯誤:', + + // global crud - success / error notification bubbles + 'insert_success' => '已成功新增此紀錄。', + 'update_success' => '已成功更新此紀錄。', + + // CRUD reorder view + 'reorder' => '重新排序', + 'reorder_text' => '請以拖曳的方式重新排序。', + 'reorder_success_title' => '完成', + 'reorder_success_message' => '您的排序已被儲存。', + 'reorder_error_title' => '錯誤', + 'reorder_error_message' => '您的排序並未被儲存。', + + // CRUD yes/no + 'yes' => '確定', + 'no' => '取消', + + // CRUD filters navbar view + 'filters' => '篩選', + 'toggle_filters' => '切換篩選', + 'remove_filters' => '移除篩選', + 'apply' => '套用', + + //filters language strings + 'today' => '今天', + 'yesterday' => '昨天', + 'last_7_days' => '最近7天', + 'last_30_days' => '最近30天', + 'this_month' => '這個月', + 'last_month' => '上個月', + 'custom_range' => '自訂範圍', + 'weekLabel' => '週', + + // Fields + 'browse_uploads' => '瀏覽已上傳的檔案', + 'select_all' => '選擇全部', + 'select_files' => '選擇檔案', + 'select_file' => '選擇檔案', + 'clear' => '清除', + 'page_link' => '頁面連結', + 'page_link_placeholder' => 'http://example.com/your-desired-page', + 'internal_link' => '內部連結', + 'internal_link_placeholder' => '內部連結短碼,例如: \':url\' 後面加上 \'admin/page\' (去掉引號)', + 'external_link' => '外部連結', + 'choose_file' => '選擇檔案', + 'new_item' => '新項目', + 'select_entry' => '選擇一個項目', + 'select_entries' => '選擇多個項目', + + //Table field + 'table_cant_add' => '不能再增加 :entity', + 'table_max_reached' => '已達到 :max 項紀錄的上限', + + // File manager + 'file_manager' => '檔案管理', + + // InlineCreateOperation + 'related_entry_created_success' => '相關的紀錄已被新增並選擇。', + 'related_entry_created_error' => '無法新增相關的紀錄。', +]; diff --git a/lang/vendor/backpack/zh-Hant/langfilemanager.php b/lang/vendor/backpack/zh-Hant/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/zh-Hant/langfilemanager.php @@ -0,0 +1,16 @@ + '註冊功能已關閉', + 'no_email_column' => '使用者沒有對應的 Email 地址。', + 'first_page_you_see' => '這是你登入後第一個看到的頁面', + 'login_status' => '登入狀態', + 'logged_in' => '您已成功登入!', + 'toggle_navigation' => '側邊欄開關', + 'administration' => '管理', + 'user' => '使用者', + 'logout' => '登出', + 'login' => '登入', + 'register' => '註冊', + 'name' => '名稱', + 'email_address' => 'E-mail 地址', + 'password' => '密碼', + 'old_password' => '舊密碼', + 'new_password' => '新密碼', + 'confirm_password' => '再次輸入新密碼', + 'remember_me' => '記住我', + 'forgot_your_password' => '忘記密碼?', + 'reset_password' => '重置密碼', + 'send_reset_link' => '寄出密碼重置信', + 'click_here_to_reset' => '按此重置密碼', + 'change_password' => '修改密碼', + 'unauthorized' => '未經授權的操作。', + 'dashboard' => '儀表板', + 'handcrafted_by' => '', + 'powered_by' => 'Powered by', + 'my_account' => '我的帳戶', + 'update_account_info' => '更新帳戶資訊', + 'save' => '儲存', + 'cancel' => '取消', + 'error' => '錯誤', + 'success' => '成功', + 'warning' => '警告', + 'notice' => '注意', + 'old_password_incorrect' => '舊密碼輸入不正確。', + 'password_dont_match' => '密碼輸入不一致。', + 'password_empty' => '請確認兩個密碼欄位皆有填寫。', + 'password_updated' => '已更新密碼。', + 'account_updated' => '已成功更新帳戶。', + 'unknown_error' => '發生未知錯誤,請再試一次。', + 'error_saving' => '儲存時發生錯誤,請再試一次。', + 'welcome' => '歡迎使用!', + 'use_sidebar' => '使用左方的側邊欄以新增、編輯或刪除內容。', + + 'error_page' => [ + 'title' => '錯誤 :error', + 'button' => '返回首頁', + 'message_4xx' => '請 回上一頁 或返回到 首頁.', + 'message_500' => '發生內部伺服器錯誤。如果錯誤仍然存在,請聯絡開發團隊。', + 'message_503' => '伺服器超載或停機維護。請稍後再試。', + '400' => '錯誤的請求。', + '401' => '未經授權的行為。', + '403' => '禁止。', + '404' => '找不到網頁。', + '405' => '方法不允許。', + '408' => '請求超時。', + '429' => '請求太多。', + '500' => '不是你而是我。', + ], + + 'password_reset' => [ + 'greeting' => '您好!', + 'subject' => '重置密碼通知', + 'line_1' => '您會收到這封郵件,是因為我們收到了重置您帳戶密碼的請求。', + 'line_2' => '請點擊下面的按鈕以重置您的密碼:', + 'button' => '重置密碼', + 'notice' => '若您沒有請求重置密碼,請忽略此右鍵。', + ], + + 'step' => '步驟', + 'confirm_email' => '確認 Email 地址', + 'choose_new_password' => '新密碼', + 'confirm_new_password' => '再次輸入新密碼', + 'email' => '電子信箱', + +]; diff --git a/lang/vendor/backpack/zh-TW/crud.php b/lang/vendor/backpack/zh-TW/crud.php new file mode 100644 index 0000000..51a11f2 --- /dev/null +++ b/lang/vendor/backpack/zh-TW/crud.php @@ -0,0 +1,178 @@ + '儲存並新增', + 'save_action_save_and_edit' => '儲存並繼續編輯', + 'save_action_save_and_back' => '儲存並返回', + 'save_action_save_and_preview' => '儲存並預覽', + 'save_action_changed_notification' => '儲存後的預設行為已更改。', + + // Create form + 'add' => '新增', + 'back_to_all' => '回到所有的 ', + 'cancel' => '取消', + 'add_a_new' => '新增一個 ', + + // Edit form + 'edit' => '編輯', + 'save' => '儲存', + + // Translatable models + 'edit_translations' => '翻譯', + 'language' => '語言', + + // CRUD table view + 'all' => '全部 ', + 'in_the_database' => '在資料庫中', + 'list' => '清單', + 'reset' => '重置', + 'actions' => '動作', + 'preview' => '預覽', + 'delete' => '刪除', + 'admin' => '管理員', + 'details_row' => '這是詳細內容列。你可以在這裡作出編輯。', + 'details_row_loading_error' => '當載入詳細內容時遇到錯誤。請重試。', + 'clone' => '複製', + 'clone_success' => '紀錄已複製
與此紀錄內容一致的新紀錄已被新增。', + 'clone_failure' => '紀錄複製失敗
無法新增複製的紀錄,請稍後再試。', + + // Confirmation messages and bubbles + 'delete_confirm' => '您確定要刪除此紀錄嗎?', + 'delete_confirmation_title' => '紀錄已刪除', + 'delete_confirmation_message' => '此紀錄已成功地刪除。', + 'delete_confirmation_not_title' => '紀錄未刪除', + 'delete_confirmation_not_message' => '發生錯誤,您的紀錄有可能並未成功刪除。', + 'delete_confirmation_not_deleted_title' => '紀錄未刪除', + 'delete_confirmation_not_deleted_message' => '沒有任何事情發生過,您的紀錄依然存在。', + + // Bulk actions + 'bulk_no_entries_selected_title' => '沒有選擇任何紀錄', + 'bulk_no_entries_selected_message' => '進行大量操作前,請選擇至少一項紀錄。', + + // Bulk delete + 'bulk_delete_are_you_sure' => '您確定要刪除 :number 項紀錄嗎?', + 'bulk_delete_sucess_title' => '紀錄已刪除', + 'bulk_delete_sucess_message' => ' 項紀錄已被刪除', + 'bulk_delete_error_title' => '刪除失敗', + 'bulk_delete_error_message' => '無法刪除一項或多項紀錄', + + // Bulk clone + 'bulk_clone_are_you_sure' => '您確定要複製 :number 項紀錄嗎?', + 'bulk_clone_sucess_title' => '紀錄已複製', + 'bulk_clone_sucess_message' => ' 項紀錄已被複製。', + 'bulk_clone_error_title' => '複製失敗', + 'bulk_clone_error_message' => '無法複製一項或多項紀錄,請稍後再試。', + + // Ajax errors + 'ajax_error_title' => '錯誤', + 'ajax_error_text' => '載入頁面時發生錯誤,請重新整理頁面。', + + // DataTables translation + 'emptyTable' => '資料表中無任何紀錄', + 'info' => '正在顯示 _TOTAL_ 項紀錄當中的第 _START_ 到 _END_ 項', + 'infoEmpty' => '沒有紀錄', + 'infoFiltered' => '(自 _TOTAL_ 項紀錄中篩選出來的紀錄)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '每頁 _MENU_ 項紀錄', + 'loadingRecords' => '正在載入...', + 'processing' => '正在處理...', + 'search' => '搜尋', + 'zeroRecords' => '找不到符合的紀錄', + 'paginate' => [ + 'first' => '第一頁', + 'last' => '最後一頁', + 'next' => '下一頁', + 'previous' => '上一頁', + ], + 'aria' => [ + 'sortAscending' => ': 以由小到大的方式排列', + 'sortDescending' => ': 以由大到小的方式排列', + ], + 'export' => [ + 'export' => '匯出', + 'copy' => '複製', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => '列印', + 'column_visibility' => '顯示欄位', + ], + + // global crud - errors + 'unauthorized_access' => '未經授權的存取 - 您沒有權限瀏覽此頁面。', + 'please_fix' => '請修正以下的錯誤:', + + // global crud - success / error notification bubbles + 'insert_success' => '已成功新增此紀錄。', + 'update_success' => '已成功更新此紀錄。', + + // CRUD reorder view + 'reorder' => '重新排序', + 'reorder_text' => '請以拖曳的方式重新排序。', + 'reorder_success_title' => '完成', + 'reorder_success_message' => '您的排序已被儲存。', + 'reorder_error_title' => '錯誤', + 'reorder_error_message' => '您的排序並未被儲存。', + + // CRUD yes/no + 'yes' => '確定', + 'no' => '取消', + + // CRUD filters navbar view + 'filters' => '篩選', + 'toggle_filters' => '切換篩選', + 'remove_filters' => '移除篩選', + 'apply' => '套用', + + //filters language strings + 'today' => '今天', + 'yesterday' => '昨天', + 'last_7_days' => '最近7天', + 'last_30_days' => '最近30天', + 'this_month' => '這個月', + 'last_month' => '上個月', + 'custom_range' => '自訂範圍', + 'weekLabel' => '週', + + // Fields + 'browse_uploads' => '瀏覽已上傳的檔案', + 'select_all' => '選擇全部', + 'select_files' => '選擇檔案', + 'select_file' => '選擇檔案', + 'clear' => '清除', + 'page_link' => '頁面連結', + 'page_link_placeholder' => 'http://example.com/your-desired-page', + 'internal_link' => '內部連結', + 'internal_link_placeholder' => '內部連結短碼,例如: \':url\' 後面加上 \'admin/page\' (去掉引號)', + 'external_link' => '外部連結', + 'choose_file' => '選擇檔案', + 'new_item' => '新項目', + 'select_entry' => '選擇一個項目', + 'select_entries' => '選擇多個項目', + 'upload_multiple_files_selected' => '檔案已選取。等存檔之後,會在上方顯示上傳的檔案。', + + //Table field + 'table_cant_add' => '不能再增加 :entity', + 'table_max_reached' => '已達到 :max 項紀錄的上限', + + // File manager + 'file_manager' => '檔案管理', + + // InlineCreateOperation + 'related_entry_created_success' => '相關的紀錄已被新增並選擇。', + 'related_entry_created_error' => '無法新增相關的紀錄。', +]; diff --git a/lang/vendor/backpack/zh-TW/langfilemanager.php b/lang/vendor/backpack/zh-TW/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/zh-TW/langfilemanager.php @@ -0,0 +1,16 @@ + + | + */ + 'name' => '名稱', + 'role' => '角色', + 'roles' => '角色', + 'roles_have_permission' => '擁有此權限的角色', + 'permission_singular' => '權限', + 'permission_plural' => '權限', + 'user_singular' => '使用者', + 'user_plural' => '使用者', + 'email' => 'Email', + 'extra_permissions' => '額外權限', + 'password' => '密碼', + 'password_confirmation' => '再次輸入新密碼', + 'user_role_permission' => '使用者角色與權限', + 'user' => '使用者', + 'users' => '使用者', + 'guard_type' => 'Guard 類型', + +]; + diff --git a/lang/vendor/backpack/zh-TW/settings.php b/lang/vendor/backpack/zh-TW/settings.php new file mode 100644 index 0000000..1076283 --- /dev/null +++ b/lang/vendor/backpack/zh-TW/settings.php @@ -0,0 +1,16 @@ + '注册已关闭。', + 'no_email_column' => '用户没有关联的电子邮件。', + 'first_page_you_see' => '你在登录之后看到的第一个页面', + 'login_status' => '登录状态', + 'logged_in' => '你已成功登录!', + 'toggle_navigation' => '切换导航栏', + 'administration' => '管理', + 'user' => '用户', + 'logout' => '注销', + 'login' => '登录', + 'register' => '注册', + 'name' => '名称', + 'email_address' => '邮箱', + 'password' => '密码', + 'old_password' => '旧密码', + 'new_password' => '新密码', + 'confirm_password' => '确认密码', + 'remember_me' => '记住我', + 'forgot_your_password' => '忘记密码?', + 'reset_password' => '重置密码', + 'send_reset_link' => '发送密码重置链接', + 'click_here_to_reset' => '点击此处重置你的密码', + 'change_password' => '修改密码', + 'unauthorized' => '未认证.', + 'dashboard' => '仪表盘', + 'handcrafted_by' => 'Handcrafted by', + 'powered_by' => 'Powered by', + 'my_account' => '我的账户', + 'update_account_info' => '更新账户信息', + 'save' => '保存', + 'cancel' => '取消', + 'error' => '错误', + 'success' => '成功', + 'warning' => '警告', + 'notice' => '通知', + 'old_password_incorrect' => '旧密码不正确.', + 'password_dont_match' => '两次输入的密码不一致.', + 'password_empty' => '请确认填写了所有的密码输入框', + 'password_updated' => '密码修改成功.', + 'account_updated' => '账户信息更新成功.', + 'unknown_error' => '未知错误,请重新试一次.', + 'error_saving' => '保存时出现错误. 请重新试一次.', + 'session_expired_error' => '您的会话已过期。 请重新登录您的帐户。', + 'welcome' => '欢迎!', + 'use_sidebar' => '使用左侧边栏创建、编辑或删除内容。', + + 'password_reset' => [ + 'greeting' => '您好!', + 'subject' => '重置密码通知', + 'line_1' => '您之所以收到此邮件是因为我们收到了您重置账户密码的请求。', + 'line_2' => '点击下面的按钮开始重置密码:', + 'button' => '重置密码', + 'notice' => '如果您没有请求重置密码,请忽略此邮件。', + ], + + 'step' => '步骤', + 'confirm_email' => '确认邮件', + 'choose_new_password' => '选择新密码', + 'confirm_new_password' => '确认新密码', + +]; diff --git a/lang/vendor/backpack/zh-cn/crud.php b/lang/vendor/backpack/zh-cn/crud.php new file mode 100644 index 0000000..f73f2e5 --- /dev/null +++ b/lang/vendor/backpack/zh-cn/crud.php @@ -0,0 +1,177 @@ + '保存并新增', + 'save_action_save_and_edit' => '保存并继续编辑', + 'save_action_save_and_back' => '保存并返回', + 'save_action_save_and_preview' => '保存并预览', + 'save_action_changed_notification' => '保存后的默认行为已更改.', + + // Create form + 'add' => '新增', + 'back_to_all' => '回到所有 ', + 'cancel' => '取消', + 'add_a_new' => '新增一个 ', + + // Edit form + 'edit' => '编辑', + 'save' => '存储', + + // Translatable models + 'edit_translations' => '翻译', + 'language' => '语言', + + // CRUD table view + 'all' => '全部 ', + 'in_the_database' => '在数据库中', + 'list' => '列表', + 'reset' => '重置', + 'actions' => '操作', + 'preview' => '预览', + 'delete' => '删除', + 'admin' => '管理員', + 'details_row' => '这是详情列。你可以在这里做出编辑。', + 'details_row_loading_error' => '加载详情时出错。请重试。', + 'clone' => '复制', + 'clone_success' => '记录复制成功
与此记录内容一致的新记录已被添加。', + 'clone_failure' => '复制失败
新的记录没有被创建,请重试。', + + // Confirmation messages and bubbles + 'delete_confirm' => '你确定要删除这条记录吗?', + 'delete_confirmation_title' => '记录已被删除', + 'delete_confirmation_message' => '这条记录已被成功删除。', + 'delete_confirmation_not_title' => '记录未被删除', + 'delete_confirmation_not_message' => '尝试删除时发生错误。这项记录或未被成功删除。', + 'delete_confirmation_not_deleted_title' => '记录未被删除', + 'delete_confirmation_not_deleted_message' => '沒有任何事情发生过。你的这条记录纹丝未动。', + + // Bulk actions + 'bulk_no_entries_selected_title' => '没有选中任何记录', + 'bulk_no_entries_selected_message' => '执行批量操作前,请选择一条或多条记录.', + + // Bulk delete + 'bulk_delete_are_you_sure' => '确定要删除这 :number 条记录吗?', + 'bulk_delete_sucess_title' => '删除记录', + 'bulk_delete_sucess_message' => ' 记录已经被删除', + 'bulk_delete_error_title' => '删除失败', + 'bulk_delete_error_message' => '无法删除一条或多条记录', + + // Bulk clone + 'bulk_clone_are_you_sure' => '您确定要复制 :number 项纪录吗?', + 'bulk_clone_sucess_title' => '纪录已复制', + 'bulk_clone_sucess_message' => ' 项纪录已被复制。', + 'bulk_clone_error_title' => '复制失败', + 'bulk_clone_error_message' => '无法复制一项或多项纪录,请稍后再试。', + + // Ajax errors + 'ajax_error_title' => '错误', + 'ajax_error_text' => '加载页面时出错,请刷新页面。', + + // DataTables translation + 'emptyTable' => '数据库中没有相关记录', + 'info' => '正在显示 _TOTAL_ 个记录中的 _START_ 至 _END_ 项', + 'infoEmpty' => '', + 'infoFiltered' => '(自 _TOTAL_ 个记录中筛选出来的记录)', + 'infoPostFix' => '.', + 'thousands' => ',', + 'lengthMenu' => '每页 _MENU_ 条记录', + 'loadingRecords' => '加载中...', + 'processing' => '处理中...', + 'search' => '搜索', + 'zeroRecords' => '找不到相关记录', + 'paginate' => [ + 'first' => '首页', + 'last' => '尾页', + 'next' => '下一页', + 'previous' => '上一页', + ], + 'aria' => [ + 'sortAscending' => ': 增序排列', + 'sortDescending' => ': 降序排列', + ], + 'export' => [ + 'export' => '导出', + 'copy' => '复制', + 'excel' => 'Excel', + 'csv' => 'CSV', + 'pdf' => 'PDF', + 'print' => '打印', + 'column_visibility' => '列可见性', + ], + + // global crud - errors + 'unauthorized_access' => '您沒有权限浏览此页面。', + 'please_fix' => '请修正以下错误:', + + // global crud - success / error notification bubbles + 'insert_success' => '插入成功。', + 'update_success' => '更新成功。', + + // CRUD reorder view + 'reorder' => '重新排序', + 'reorder_text' => '请以拖放 (drag and drop) 的放式重新排序。', + 'reorder_success_title' => '完成', + 'reorder_success_message' => '你的排序已被儲存。', + 'reorder_error_title' => '错误', + 'reorder_error_message' => '你的排序尚未被儲存。', + + // CRUD yes/no + 'yes' => 'Yes', + 'no' => 'No', + + // CRUD filters navbar view + 'filters' => '筛选条件', + 'toggle_filters' => '切换筛选条件', + 'remove_filters' => '移除筛选条件', + 'apply' => '套用', + + //filters language strings + 'today' => '今天', + 'yesterday' => '昨天', + 'last_7_days' => '最近7天', + 'last_30_days' => '最近30天', + 'this_month' => '这个月', + 'last_month' => '上个月', + 'custom_range' => '自订范围', + 'weekLabel' => '周', + + // Fields + 'browse_uploads' => '查看已上传的文档', + 'select_all' => '选择全部', + 'select_files' => '选择文件(多个)', + 'select_file' => '选择文件(单个)', + 'clear' => '清除', + 'page_link' => '页面链接', + 'page_link_placeholder' => 'http://example.com/your-desired-page', + 'internal_link' => '内部链接', + 'internal_link_placeholder' => '内部链接,例如: \'admin/page\' (no quotes) for \':url\'', + 'external_link' => '外部链接', + 'choose_file' => '选择文件', + 'new_item' => '新项目', + 'select_entry' => '选择一个项目', + 'select_entries' => '选择多个项目', + + //Table field + 'table_cant_add' => '不能再增加 :entity', + 'table_max_reached' => '已达到 :max 条记录的上限', + + // File manager + 'file_manager' => '文件管理器', + + // InlineCreateOperation + 'related_entry_created_success' => '相关的纪录已被新增并选择。', + 'related_entry_created_error' => '无法新增相关的纪录。', +]; diff --git a/lang/vendor/backpack/zh-cn/langfilemanager.php b/lang/vendor/backpack/zh-cn/langfilemanager.php new file mode 100644 index 0000000..84728c3 --- /dev/null +++ b/lang/vendor/backpack/zh-cn/langfilemanager.php @@ -0,0 +1,16 @@ + '使用者名稱或密碼錯誤。', + 'password' => '密碼錯誤', + 'throttle' => '嘗試登入太多次,請在 :seconds 秒後再試。', +]; diff --git a/lang/zh-TW/backend.php b/lang/zh-TW/backend.php new file mode 100644 index 0000000..de76388 --- /dev/null +++ b/lang/zh-TW/backend.php @@ -0,0 +1,39 @@ + [ + 'name' => '名稱', + ], + 'account' => [ + 'title' => '帳戶', + 'user' => [ + 'title' => '會員管理', + ], + 'role' => [ + 'title' => '角色管理', + ], + 'permission' => [ + 'title' => '權限管理', + ], + ], + 'news' => [ + 'title' => '新聞管理', + 'catalog' => [ + 'title' => '新聞分類', + ], + 'article' => [ + 'title' => '文章管理', + ], + ], + 'event' => [ + 'title' => '活動管理', + 'catalog' => [ + 'title' => '活動分類', + ], + 'article' => [ + 'title' => '活動管理', + ], + ], +]; diff --git a/lang/zh-TW/pagination.php b/lang/zh-TW/pagination.php new file mode 100644 index 0000000..72df3cc --- /dev/null +++ b/lang/zh-TW/pagination.php @@ -0,0 +1,8 @@ + '下一頁 »', + 'previous' => '« 上一頁', +]; diff --git a/lang/zh-TW/passwords.php b/lang/zh-TW/passwords.php new file mode 100644 index 0000000..ddd490f --- /dev/null +++ b/lang/zh-TW/passwords.php @@ -0,0 +1,11 @@ + '密碼已成功重設!', + 'sent' => '密碼重設郵件已發送!', + 'throttled' => '請稍候再試。', + 'token' => '密碼重設碼無效。', + 'user' => '找不到該 E-mail 對應的使用者。', +]; diff --git a/lang/zh-TW/validation.php b/lang/zh-TW/validation.php new file mode 100644 index 0000000..c764b95 --- /dev/null +++ b/lang/zh-TW/validation.php @@ -0,0 +1,150 @@ + '必須接受 :attribute。', + 'accepted_if' => '當 :other 為 :value 時,:attribute 必須接受。', + 'active_url' => ':Attribute 不是有效的網址。', + 'after' => ':Attribute 必須要晚於 :date。', + 'after_or_equal' => ':Attribute 必須要等於 :date 或更晚。', + 'alpha' => ':Attribute 只能以字母組成。', + 'alpha_dash' => ':Attribute 只能以字母、數字、連接線(-)及底線(_)組成。', + 'alpha_num' => ':Attribute 只能以字母及數字組成。', + 'array' => ':Attribute 必須為陣列。', + 'ascii' => ':Attribute 必須僅包含單字節字母數字字符和符號。', + 'before' => ':Attribute 必須要早於 :date。', + 'before_or_equal' => ':Attribute 必須要等於 :date 或更早。', + 'between' => [ + 'array' => ':Attribute: 必須有 :min - :max 個元素。', + 'file' => ':Attribute 必須介於 :min 至 :max KB 之間。', + 'numeric' => ':Attribute 必須介於 :min 至 :max 之間。', + 'string' => ':Attribute 必須介於 :min 至 :max 個字元之間。', + ], + 'boolean' => ':Attribute 必須為布林值。', + 'can' => ':Attribute 字段包含未經授權的值。', + 'confirmed' => ':Attribute 確認欄位的輸入不一致。', + 'current_password' => '當前密碼不正確。', + 'date' => ':Attribute 不是有效的日期。', + 'date_equals' => ':Attribute 必須等於 :date。', + 'date_format' => ':Attribute 不符合 :format 的格式。', + 'decimal' => ':Attribute 必須有 :decimal 位小數。', + 'declined' => ':Attribute 必須拒絕。', + 'declined_if' => '當 :other 為 :value 時,:attribute 必須拒絕。', + 'different' => ':Attribute 與 :other 必須不同。', + 'digits' => ':Attribute 必須是 :digits 位數字。', + 'digits_between' => ':Attribute 必須介於 :min 至 :max 位數字。', + 'dimensions' => ':Attribute 圖片尺寸不正確。', + 'distinct' => ':Attribute 已經存在。', + 'doesnt_end_with' => ':Attribute 不能以下列之一結尾::values。', + 'doesnt_start_with' => ':Attribute 不能以下列之一開頭::values。', + 'email' => ':Attribute 必須是有效的 E-mail。', + 'ends_with' => ':Attribute 結尾必須包含下列之一::values。', + 'enum' => ':Attribute 的值不正確。', + 'exists' => ':Attribute 不存在。', + 'extensions' => ':attribute 欄位必須具有以下副檔名之一::values。', + 'file' => ':Attribute 必須是有效的檔案。', + 'filled' => ':Attribute 不能留空。', + 'gt' => [ + 'array' => ':Attribute 必須多於 :value 個元素。', + 'file' => ':Attribute 必須大於 :value KB。', + 'numeric' => ':Attribute 必須大於 :value。', + 'string' => ':Attribute 必須多於 :value 個字元。', + ], + 'gte' => [ + 'array' => ':Attribute 必須多於或等於 :value 個元素。', + 'file' => ':Attribute 必須大於或等於 :value KB。', + 'numeric' => ':Attribute 必須大於或等於 :value。', + 'string' => ':Attribute 必須多於或等於 :value 個字元。', + ], + 'hex_color' => ':attribute 字段必須是有效的十六進位顏色。', + 'image' => ':Attribute 必須是一張圖片。', + 'in' => '所選擇的 :attribute 選項無效。', + 'in_array' => ':Attribute 沒有在 :other 中。', + 'integer' => ':Attribute 必須是一個整數。', + 'ip' => ':Attribute 必須是一個有效的 IP 位址。', + 'ipv4' => ':Attribute 必須是一個有效的 IPv4 位址。', + 'ipv6' => ':Attribute 必須是一個有效的 IPv6 位址。', + 'json' => ':Attribute 必須是正確的 JSON 字串。', + 'lowercase' => ':Attribute 必須小寫。', + 'lt' => [ + 'array' => ':Attribute 必須少於 :value 個元素。', + 'file' => ':Attribute 必須小於 :value KB。', + 'numeric' => ':Attribute 必須小於 :value。', + 'string' => ':Attribute 必須少於 :value 個字元。', + ], + 'lte' => [ + 'array' => ':Attribute 必須少於或等於 :value 個元素。', + 'file' => ':Attribute 必須小於或等於 :value KB。', + 'numeric' => ':Attribute 必須小於或等於 :value。', + 'string' => ':Attribute 必須少於或等於 :value 個字元。', + ], + 'mac_address' => ':Attribute 必須是一個有效的 MAC 位址。', + 'max' => [ + 'array' => ':Attribute 最多有 :max 個元素。', + 'file' => ':Attribute 不能大於 :max KB。', + 'numeric' => ':Attribute 不能大於 :max。', + 'string' => ':Attribute 不能多於 :max 個字元。', + ], + 'max_digits' => ':Attribute 不得超過 :max 位。', + 'mimes' => ':Attribute 必須為 :values 的檔案。', + 'mimetypes' => ':Attribute 必須為 :values 的檔案。', + 'min' => [ + 'array' => ':Attribute 至少有 :min 個元素。', + 'file' => ':Attribute 不能小於 :min KB。', + 'numeric' => ':Attribute 不能小於 :min。', + 'string' => ':Attribute 不能小於 :min 個字元。', + ], + 'min_digits' => ':Attribute 必須至少有 :min 位數字。', + 'missing' => '必須缺少 :attribute 字段。', + 'missing_if' => '當 :other 為 :value 時,必須缺少 :attribute 字段。', + 'missing_unless' => '必須缺少 :attribute 字段,除非 :other 是 :value。', + 'missing_with' => '存在 :values 時,必須缺少 :attribute 字段。', + 'missing_with_all' => '存在 :values 時,必須缺少 :attribute 字段。', + 'multiple_of' => '所選擇的 :attribute 必須為 :value 中的多個。', + 'not_in' => '所選擇的 :attribute 選項無效。', + 'not_regex' => ':Attribute 的格式錯誤。', + 'numeric' => ':Attribute 必須為一個數字。', + 'password' => [ + 'letters' => ':Attribute 必須至少包含一個字母。', + 'mixed' => ':Attribute 必須至少包含一個大寫字母和一個小寫字母。', + 'numbers' => ':Attribute 必須至少包含一個數字。', + 'symbols' => ':Attribute 必須包含至少一個符號。', + 'uncompromised' => '給定的 :attribute 已出現數據洩漏。請選擇不同的 :attribute。', + ], + 'present' => ':Attribute 必須存在。', + 'present_if' => '當 :other 等於 :value 時,必須存在 :attribute 個欄位。', + 'present_unless' => '除非 :other 等於 :value,否則 :attribute 個字段必須存在。', + 'present_with' => '當 :values 存在時,:attribute 個字段必須存在。', + 'present_with_all' => '當存在 :values 時,必須存在 :attribute 個字段。', + 'prohibited' => ':Attribute 字段被禁止。', + 'prohibited_if' => '当 :other 为 :value 时,:attribute字段被禁止。', + 'prohibited_unless' => ':Attribute 字段被禁止,除非 :other 在 :values 中。', + 'prohibits' => ':Attribute 字段禁止包含 :other。', + 'regex' => ':Attribute 的格式錯誤。', + 'required' => ':Attribute 不能留空。', + 'required_array_keys' => ':Attribute 必須包含 :values 中的一個鍵。', + 'required_if' => '當 :other 是 :value 時 :attribute 不能留空。', + 'required_if_accepted' => '接受 :other 時需要 :attribute 字段。', + 'required_unless' => '當 :other 不是 :values 時 :attribute 不能留空。', + 'required_with' => '當 :values 出現時 :attribute 不能留空。', + 'required_with_all' => '當 :values 出現時 :attribute 不能為空。', + 'required_without' => '當 :values 留空時 :attribute field 不能留空。', + 'required_without_all' => '當 :values 都不出現時 :attribute 不能留空。', + 'same' => ':Attribute 與 :other 必須相同。', + 'size' => [ + 'array' => ':Attribute 必須是 :size 個元素。', + 'file' => ':Attribute 的大小必須是 :size KB。', + 'numeric' => ':Attribute 的大小必須是 :size。', + 'string' => ':Attribute 必須是 :size 個字元。', + ], + 'starts_with' => ':Attribute 開頭必須包含下列之一::values。', + 'string' => ':Attribute 必須是一個字串。', + 'timezone' => ':Attribute 必須是一個正確的時區值。', + 'ulid' => ':Attribute 必須是有效的 ULID。', + 'unique' => ':Attribute 已經存在。', + 'uploaded' => ':Attribute 上傳失敗。', + 'uppercase' => ':Attribute 必須大寫。', + 'url' => ':Attribute 的格式錯誤。', + 'uuid' => ':Attribute 必須是有效的 UUID。', +]; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..e8d4b1d --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1355 @@ +{ + "name": "coreality-inc.awesome-tech.com.tw", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "devDependencies": { + "axios": "^1.6.4", + "laravel-vite-plugin": "^1.0.0", + "vite": "^5.0.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.10.0.tgz", + "integrity": "sha512-/MeDQmcD96nVoRumKUljsYOLqfv1YFJps+0pTrb2Z9Nl/w5qNUysMaWQsrd1mvAlNT4yza1iVyIu4Q4AgF6V3A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.10.0.tgz", + "integrity": "sha512-lvu0jK97mZDJdpZKDnZI93I0Om8lSDaiPx3OiCk0RXn3E8CMPJNS/wxjAvSJJzhhZpfjXsjLWL8LnS6qET4VNQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.10.0.tgz", + "integrity": "sha512-uFpayx8I8tyOvDkD7X6n0PriDRWxcqEjqgtlxnUA/G9oS93ur9aZ8c8BEpzFmsed1TH5WZNG5IONB8IiW90TQg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.10.0.tgz", + "integrity": "sha512-nIdCX03qFKoR/MwQegQBK+qZoSpO3LESurVAC6s6jazLA1Mpmgzo3Nj3H1vydXp/JM29bkCiuF7tDuToj4+U9Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.10.0.tgz", + "integrity": "sha512-Fz7a+y5sYhYZMQFRkOyCs4PLhICAnxRX/GnWYReaAoruUzuRtcf+Qnw+T0CoAWbHCuz2gBUwmWnUgQ67fb3FYw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.10.0.tgz", + "integrity": "sha512-yPtF9jIix88orwfTi0lJiqINnlWo6p93MtZEoaehZnmCzEmLL0eqjA3eGVeyQhMtxdV+Mlsgfwhh0+M/k1/V7Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.10.0.tgz", + "integrity": "sha512-9GW9yA30ib+vfFiwjX+N7PnjTnCMiUffhWj4vkG4ukYv1kJ4T9gHNg8zw+ChsOccM27G9yXrEtMScf1LaCuoWQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.10.0.tgz", + "integrity": "sha512-X1ES+V4bMq2ws5fF4zHornxebNxMXye0ZZjUrzOrf7UMx1d6wMQtfcchZ8SqUnQPPHdOyOLW6fTcUiFgHFadRA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.10.0.tgz", + "integrity": "sha512-w/5OpT2EnI/Xvypw4FIhV34jmNqU5PZjZue2l2Y3ty1Ootm3SqhI+AmfhlUYGBTd9JnpneZCDnt3uNOiOBkMyw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.10.0.tgz", + "integrity": "sha512-q/meftEe3QlwQiGYxD9rWwB21DoKQ9Q8wA40of/of6yGHhZuGfZO0c3WYkN9dNlopHlNT3mf5BPsUSxoPuVQaw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.10.0.tgz", + "integrity": "sha512-NrR6667wlUfP0BHaEIKgYM/2va+Oj+RjZSASbBMnszM9k+1AmliRjHc3lJIiOehtSSjqYiO7R6KLNrWOX+YNSQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.10.0.tgz", + "integrity": "sha512-FV0Tpt84LPYDduIDcXvEC7HKtyXxdvhdAOvOeWMWbQNulxViH2O07QXkT/FffX4FqEI02jEbCJbr+YcuKdyyMg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.10.0.tgz", + "integrity": "sha512-OZoJd+o5TaTSQeFFQ6WjFCiltiYVjIdsXxwu/XZ8qRpsvMQr4UsVrE5UyT9RIvsnuF47DqkJKhhVZ2Q9YW9IpQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/axios": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", + "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.15.4", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/esbuild": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/laravel-vite-plugin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-1.0.1.tgz", + "integrity": "sha512-laLEZUnSskIDZtLb2FNRdcjsRUhh1VOVvapbVGVTeaBPJTCF/b6gbPiX2dZdcH1RKoOE0an7L+2gnInk6K33Zw==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "vite-plugin-full-reload": "^1.1.0" + }, + "bin": { + "clean-orphaned-assets": "bin/clean.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "node_modules/rollup": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.10.0.tgz", + "integrity": "sha512-t2v9G2AKxcQ8yrG+WGxctBes1AomT0M4ND7jTFBCVPXQ/WFTvNSefIrNSmLKhIKBrvN8SG+CZslimJcT3W2u2g==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.10.0", + "@rollup/rollup-android-arm64": "4.10.0", + "@rollup/rollup-darwin-arm64": "4.10.0", + "@rollup/rollup-darwin-x64": "4.10.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.10.0", + "@rollup/rollup-linux-arm64-gnu": "4.10.0", + "@rollup/rollup-linux-arm64-musl": "4.10.0", + "@rollup/rollup-linux-riscv64-gnu": "4.10.0", + "@rollup/rollup-linux-x64-gnu": "4.10.0", + "@rollup/rollup-linux-x64-musl": "4.10.0", + "@rollup/rollup-win32-arm64-msvc": "4.10.0", + "@rollup/rollup-win32-ia32-msvc": "4.10.0", + "@rollup/rollup-win32-x64-msvc": "4.10.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vite": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.2.tgz", + "integrity": "sha512-uwiFebQbTWRIGbCaTEBVAfKqgqKNKMJ2uPXsXeLIZxM8MVMjoS3j0cG8NrPxdDIadaWnPSjrkLWffLSC+uiP3Q==", + "dev": true, + "dependencies": { + "esbuild": "^0.19.3", + "postcss": "^8.4.35", + "rollup": "^4.2.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-full-reload": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.1.0.tgz", + "integrity": "sha512-3cObNDzX6DdfhD9E7kf6w2mNunFpD7drxyNgHLw+XwIYAgb+Xt16SEXo0Up4VH+TMf3n+DSVJZtW2POBGcBYAA==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "picomatch": "^2.3.1" + } + } + }, + "dependencies": { + "@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-android-arm-eabi": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.10.0.tgz", + "integrity": "sha512-/MeDQmcD96nVoRumKUljsYOLqfv1YFJps+0pTrb2Z9Nl/w5qNUysMaWQsrd1mvAlNT4yza1iVyIu4Q4AgF6V3A==", + "dev": true, + "optional": true + }, + "@rollup/rollup-android-arm64": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.10.0.tgz", + "integrity": "sha512-lvu0jK97mZDJdpZKDnZI93I0Om8lSDaiPx3OiCk0RXn3E8CMPJNS/wxjAvSJJzhhZpfjXsjLWL8LnS6qET4VNQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-darwin-arm64": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.10.0.tgz", + "integrity": "sha512-uFpayx8I8tyOvDkD7X6n0PriDRWxcqEjqgtlxnUA/G9oS93ur9aZ8c8BEpzFmsed1TH5WZNG5IONB8IiW90TQg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-darwin-x64": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.10.0.tgz", + "integrity": "sha512-nIdCX03qFKoR/MwQegQBK+qZoSpO3LESurVAC6s6jazLA1Mpmgzo3Nj3H1vydXp/JM29bkCiuF7tDuToj4+U9Q==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.10.0.tgz", + "integrity": "sha512-Fz7a+y5sYhYZMQFRkOyCs4PLhICAnxRX/GnWYReaAoruUzuRtcf+Qnw+T0CoAWbHCuz2gBUwmWnUgQ67fb3FYw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm64-gnu": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.10.0.tgz", + "integrity": "sha512-yPtF9jIix88orwfTi0lJiqINnlWo6p93MtZEoaehZnmCzEmLL0eqjA3eGVeyQhMtxdV+Mlsgfwhh0+M/k1/V7Q==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm64-musl": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.10.0.tgz", + "integrity": "sha512-9GW9yA30ib+vfFiwjX+N7PnjTnCMiUffhWj4vkG4ukYv1kJ4T9gHNg8zw+ChsOccM27G9yXrEtMScf1LaCuoWQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-riscv64-gnu": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.10.0.tgz", + "integrity": "sha512-X1ES+V4bMq2ws5fF4zHornxebNxMXye0ZZjUrzOrf7UMx1d6wMQtfcchZ8SqUnQPPHdOyOLW6fTcUiFgHFadRA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-x64-gnu": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.10.0.tgz", + "integrity": "sha512-w/5OpT2EnI/Xvypw4FIhV34jmNqU5PZjZue2l2Y3ty1Ootm3SqhI+AmfhlUYGBTd9JnpneZCDnt3uNOiOBkMyw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-x64-musl": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.10.0.tgz", + "integrity": "sha512-q/meftEe3QlwQiGYxD9rWwB21DoKQ9Q8wA40of/of6yGHhZuGfZO0c3WYkN9dNlopHlNT3mf5BPsUSxoPuVQaw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-arm64-msvc": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.10.0.tgz", + "integrity": "sha512-NrR6667wlUfP0BHaEIKgYM/2va+Oj+RjZSASbBMnszM9k+1AmliRjHc3lJIiOehtSSjqYiO7R6KLNrWOX+YNSQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-ia32-msvc": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.10.0.tgz", + "integrity": "sha512-FV0Tpt84LPYDduIDcXvEC7HKtyXxdvhdAOvOeWMWbQNulxViH2O07QXkT/FffX4FqEI02jEbCJbr+YcuKdyyMg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-x64-msvc": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.10.0.tgz", + "integrity": "sha512-OZoJd+o5TaTSQeFFQ6WjFCiltiYVjIdsXxwu/XZ8qRpsvMQr4UsVrE5UyT9RIvsnuF47DqkJKhhVZ2Q9YW9IpQ==", + "dev": true, + "optional": true + }, + "@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "axios": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", + "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "dev": true, + "requires": { + "follow-redirects": "^1.15.4", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, + "esbuild": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" + } + }, + "follow-redirects": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "dev": true + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, + "laravel-vite-plugin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-1.0.1.tgz", + "integrity": "sha512-laLEZUnSskIDZtLb2FNRdcjsRUhh1VOVvapbVGVTeaBPJTCF/b6gbPiX2dZdcH1RKoOE0an7L+2gnInk6K33Zw==", + "dev": true, + "requires": { + "picocolors": "^1.0.0", + "vite-plugin-full-reload": "^1.1.0" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "postcss": { + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "dev": true, + "requires": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "rollup": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.10.0.tgz", + "integrity": "sha512-t2v9G2AKxcQ8yrG+WGxctBes1AomT0M4ND7jTFBCVPXQ/WFTvNSefIrNSmLKhIKBrvN8SG+CZslimJcT3W2u2g==", + "dev": true, + "requires": { + "@rollup/rollup-android-arm-eabi": "4.10.0", + "@rollup/rollup-android-arm64": "4.10.0", + "@rollup/rollup-darwin-arm64": "4.10.0", + "@rollup/rollup-darwin-x64": "4.10.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.10.0", + "@rollup/rollup-linux-arm64-gnu": "4.10.0", + "@rollup/rollup-linux-arm64-musl": "4.10.0", + "@rollup/rollup-linux-riscv64-gnu": "4.10.0", + "@rollup/rollup-linux-x64-gnu": "4.10.0", + "@rollup/rollup-linux-x64-musl": "4.10.0", + "@rollup/rollup-win32-arm64-msvc": "4.10.0", + "@rollup/rollup-win32-ia32-msvc": "4.10.0", + "@rollup/rollup-win32-x64-msvc": "4.10.0", + "@types/estree": "1.0.5", + "fsevents": "~2.3.2" + } + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "vite": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.2.tgz", + "integrity": "sha512-uwiFebQbTWRIGbCaTEBVAfKqgqKNKMJ2uPXsXeLIZxM8MVMjoS3j0cG8NrPxdDIadaWnPSjrkLWffLSC+uiP3Q==", + "dev": true, + "requires": { + "esbuild": "^0.19.3", + "fsevents": "~2.3.3", + "postcss": "^8.4.35", + "rollup": "^4.2.0" + } + }, + "vite-plugin-full-reload": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.1.0.tgz", + "integrity": "sha512-3cObNDzX6DdfhD9E7kf6w2mNunFpD7drxyNgHLw+XwIYAgb+Xt16SEXo0Up4VH+TMf3n+DSVJZtW2POBGcBYAA==", + "dev": true, + "requires": { + "picocolors": "^1.0.0", + "picomatch": "^2.3.1" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..56f5ddc --- /dev/null +++ b/package.json @@ -0,0 +1,13 @@ +{ + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build" + }, + "devDependencies": { + "axios": "^1.6.4", + "laravel-vite-plugin": "^1.0.0", + "vite": "^5.0.0" + } +} diff --git a/phpunit.xml b/phpunit.xml new file mode 100644 index 0000000..bc86714 --- /dev/null +++ b/phpunit.xml @@ -0,0 +1,32 @@ + + + + + tests/Unit + + + tests/Feature + + + + + app + + + + + + + + + + + + + + + diff --git a/public/.htaccess b/public/.htaccess new file mode 100644 index 0000000..3aec5e2 --- /dev/null +++ b/public/.htaccess @@ -0,0 +1,21 @@ + + + Options -MultiViews -Indexes + + + RewriteEngine On + + # Handle Authorization Header + RewriteCond %{HTTP:Authorization} . + RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] + + # Redirect Trailing Slashes If Not A Folder... + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_URI} (.+)/$ + RewriteRule ^ %1 [L,R=301] + + # Send Requests To Front Controller... + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_FILENAME} !-f + RewriteRule ^ index.php [L] + diff --git a/public/assets/css/all.min.css b/public/assets/css/all.min.css new file mode 100644 index 0000000..efc674b --- /dev/null +++ b/public/assets/css/all.min.css @@ -0,0 +1,6 @@ +/*! + * Font Awesome Free 6.2.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) + * Copyright 2022 Fonticons, Inc. + */ +.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:"Font Awesome 6 Free"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands"}.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-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,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%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-at:before{content:"\40"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"\4b"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"\57"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\2a"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"\49"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"\56"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"\51"}.fa-g:before{content:"\47"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-e:before{content:"\45"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"\43"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"\4c"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"\5a"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"\41"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-p:before{content:"\50"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"\3f"}.fa-file-signature:before{content:"\f573"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"\46"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"\48"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"\52"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"\4a"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"\4f"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"\55"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"\53"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"\4e"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"\42"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\3c"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\3e"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"\59"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-child-combatant:before,.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"\3d"}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"\23"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"\54"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"\4d"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\21"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-x:before{content:"\58"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"\44"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../fonts/webfonts/fa-brands-400.woff2) format("woff2"),url(../fonts/webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-sistrix:before{content:"\f3ee"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-napster:before{content:"\f3d2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-facebook-f:before{content:"\f39e"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-reacteurope:before{content:"\f75d"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../fonts/webfonts/fa-regular-400.woff2) format("woff2"),url(../fonts/webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../fonts/webfonts/fa-solid-900.woff2) format("woff2"),url(../fonts/webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../fonts/webfonts/fa-brands-400.woff2) format("woff2"),url(../fonts/webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../fonts/webfonts/fa-solid-900.woff2) format("woff2"),url(../fonts/webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../fonts/webfonts/fa-regular-400.woff2) format("woff2"),url(../fonts/webfonts/fa-regular-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../fonts/webfonts/fa-solid-900.woff2) format("woff2"),url(../fonts/webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../fonts/webfonts/fa-brands-400.woff2) format("woff2"),url(../fonts/webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../fonts/webfonts/fa-regular-400.woff2) format("woff2"),url(../fonts/webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../fonts/webfonts/fa-v4compatibility.woff2) format("woff2"),url(../fonts/webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a} \ No newline at end of file diff --git a/public/assets/css/animate.min.css b/public/assets/css/animate.min.css new file mode 100644 index 0000000..76d2fe1 --- /dev/null +++ b/public/assets/css/animate.min.css @@ -0,0 +1,7 @@ +@charset "UTF-8";/*! + * animate.css - https://animate.style/ + * Version - 4.1.1 + * Licensed under the MIT license - http://opensource.org/licenses/MIT + * + * Copyright (c) 2020 Animate.css + */:root{--animate-duration:1s;--animate-delay:1s;--animate-repeat:1}.animate__animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-fill-mode:both;animation-fill-mode:both}.animate__animated.animate__infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animate__animated.animate__repeat-1{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-iteration-count:var(--animate-repeat);animation-iteration-count:var(--animate-repeat)}.animate__animated.animate__repeat-2{-webkit-animation-iteration-count:2;animation-iteration-count:2;-webkit-animation-iteration-count:calc(var(--animate-repeat)*2);animation-iteration-count:calc(var(--animate-repeat)*2)}.animate__animated.animate__repeat-3{-webkit-animation-iteration-count:3;animation-iteration-count:3;-webkit-animation-iteration-count:calc(var(--animate-repeat)*3);animation-iteration-count:calc(var(--animate-repeat)*3)}.animate__animated.animate__delay-1s{-webkit-animation-delay:1s;animation-delay:1s;-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay)}.animate__animated.animate__delay-2s{-webkit-animation-delay:2s;animation-delay:2s;-webkit-animation-delay:calc(var(--animate-delay)*2);animation-delay:calc(var(--animate-delay)*2)}.animate__animated.animate__delay-3s{-webkit-animation-delay:3s;animation-delay:3s;-webkit-animation-delay:calc(var(--animate-delay)*3);animation-delay:calc(var(--animate-delay)*3)}.animate__animated.animate__delay-4s{-webkit-animation-delay:4s;animation-delay:4s;-webkit-animation-delay:calc(var(--animate-delay)*4);animation-delay:calc(var(--animate-delay)*4)}.animate__animated.animate__delay-5s{-webkit-animation-delay:5s;animation-delay:5s;-webkit-animation-delay:calc(var(--animate-delay)*5);animation-delay:calc(var(--animate-delay)*5)}.animate__animated.animate__faster{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-duration:calc(var(--animate-duration)/2);animation-duration:calc(var(--animate-duration)/2)}.animate__animated.animate__fast{-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-duration:calc(var(--animate-duration)*0.8);animation-duration:calc(var(--animate-duration)*0.8)}.animate__animated.animate__slow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2)}.animate__animated.animate__slower{-webkit-animation-duration:3s;animation-duration:3s;-webkit-animation-duration:calc(var(--animate-duration)*3);animation-duration:calc(var(--animate-duration)*3)}@media (prefers-reduced-motion:reduce),print{.animate__animated{-webkit-animation-duration:1ms!important;animation-duration:1ms!important;-webkit-transition-duration:1ms!important;transition-duration:1ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important}.animate__animated[class*=Out]{opacity:0}}@-webkit-keyframes bounce{0%,20%,53%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0) scaleY(1.1);transform:translate3d(0,-30px,0) scaleY(1.1)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0) scaleY(1.05);transform:translate3d(0,-15px,0) scaleY(1.05)}80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0) scaleY(.95);transform:translateZ(0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-4px,0) scaleY(1.02);transform:translate3d(0,-4px,0) scaleY(1.02)}}@keyframes bounce{0%,20%,53%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0) scaleY(1.1);transform:translate3d(0,-30px,0) scaleY(1.1)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0) scaleY(1.05);transform:translate3d(0,-15px,0) scaleY(1.05)}80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0) scaleY(.95);transform:translateZ(0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-4px,0) scaleY(1.02);transform:translate3d(0,-4px,0) scaleY(1.02)}}.animate__bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.animate__flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__pulse{-webkit-animation-name:pulse;animation-name:pulse;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shakeX{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shakeX{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.animate__shakeX{-webkit-animation-name:shakeX;animation-name:shakeX}@-webkit-keyframes shakeY{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}20%,40%,60%,80%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}}@keyframes shakeY{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}20%,40%,60%,80%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}}.animate__shakeY{-webkit-animation-name:shakeY;animation-name:shakeY}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}.animate__headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}.animate__swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}@keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}.animate__jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}.animate__heartBeat{-webkit-animation-name:heartBeat;animation-name:heartBeat;-webkit-animation-duration:1.3s;animation-duration:1.3s;-webkit-animation-duration:calc(var(--animate-duration)*1.3);animation-duration:calc(var(--animate-duration)*1.3);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes backInDown{0%{-webkit-transform:translateY(-1200px) scale(.7);transform:translateY(-1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInDown{0%{-webkit-transform:translateY(-1200px) scale(.7);transform:translateY(-1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInDown{-webkit-animation-name:backInDown;animation-name:backInDown}@-webkit-keyframes backInLeft{0%{-webkit-transform:translateX(-2000px) scale(.7);transform:translateX(-2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInLeft{0%{-webkit-transform:translateX(-2000px) scale(.7);transform:translateX(-2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInLeft{-webkit-animation-name:backInLeft;animation-name:backInLeft}@-webkit-keyframes backInRight{0%{-webkit-transform:translateX(2000px) scale(.7);transform:translateX(2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInRight{0%{-webkit-transform:translateX(2000px) scale(.7);transform:translateX(2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInRight{-webkit-animation-name:backInRight;animation-name:backInRight}@-webkit-keyframes backInUp{0%{-webkit-transform:translateY(1200px) scale(.7);transform:translateY(1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInUp{0%{-webkit-transform:translateY(1200px) scale(.7);transform:translateY(1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInUp{-webkit-animation-name:backInUp;animation-name:backInUp}@-webkit-keyframes backOutDown{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(700px) scale(.7);transform:translateY(700px) scale(.7);opacity:.7}}@keyframes backOutDown{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(700px) scale(.7);transform:translateY(700px) scale(.7);opacity:.7}}.animate__backOutDown{-webkit-animation-name:backOutDown;animation-name:backOutDown}@-webkit-keyframes backOutLeft{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(-2000px) scale(.7);transform:translateX(-2000px) scale(.7);opacity:.7}}@keyframes backOutLeft{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(-2000px) scale(.7);transform:translateX(-2000px) scale(.7);opacity:.7}}.animate__backOutLeft{-webkit-animation-name:backOutLeft;animation-name:backOutLeft}@-webkit-keyframes backOutRight{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(2000px) scale(.7);transform:translateX(2000px) scale(.7);opacity:.7}}@keyframes backOutRight{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(2000px) scale(.7);transform:translateX(2000px) scale(.7);opacity:.7}}.animate__backOutRight{-webkit-animation-name:backOutRight;animation-name:backOutRight}@-webkit-keyframes backOutUp{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(-700px) scale(.7);transform:translateY(-700px) scale(.7);opacity:.7}}@keyframes backOutUp{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(-700px) scale(.7);transform:translateY(-700px) scale(.7);opacity:.7}}.animate__backOutUp{-webkit-animation-name:backOutUp;animation-name:backOutUp}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__bounceIn{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*0.75);animation-duration:calc(var(--animate-duration)*0.75);-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0) scaleY(3);transform:translate3d(0,-3000px,0) scaleY(3)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0) scaleY(.9);transform:translate3d(0,25px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,-10px,0) scaleY(.95);transform:translate3d(0,-10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,5px,0) scaleY(.985);transform:translate3d(0,5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0) scaleY(3);transform:translate3d(0,-3000px,0) scaleY(3)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0) scaleY(.9);transform:translate3d(0,25px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,-10px,0) scaleY(.95);transform:translate3d(0,-10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,5px,0) scaleY(.985);transform:translate3d(0,5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0) scaleX(3);transform:translate3d(-3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0) scaleX(1);transform:translate3d(25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(-10px,0,0) scaleX(.98);transform:translate3d(-10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(5px,0,0) scaleX(.995);transform:translate3d(5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0) scaleX(3);transform:translate3d(-3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0) scaleX(1);transform:translate3d(25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(-10px,0,0) scaleX(.98);transform:translate3d(-10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(5px,0,0) scaleX(.995);transform:translate3d(5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0) scaleX(3);transform:translate3d(3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0) scaleX(1);transform:translate3d(-25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(10px,0,0) scaleX(.98);transform:translate3d(10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(-5px,0,0) scaleX(.995);transform:translate3d(-5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0) scaleX(3);transform:translate3d(3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0) scaleX(1);transform:translate3d(-25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(10px,0,0) scaleX(.98);transform:translate3d(10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(-5px,0,0) scaleX(.995);transform:translate3d(-5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0) scaleY(5);transform:translate3d(0,3000px,0) scaleY(5)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,10px,0) scaleY(.95);transform:translate3d(0,10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-5px,0) scaleY(.985);transform:translate3d(0,-5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0) scaleY(5);transform:translate3d(0,3000px,0) scaleY(5)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,10px,0) scaleY(.95);transform:translate3d(0,10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-5px,0) scaleY(.985);transform:translate3d(0,-5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.animate__bounceOut{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*0.75);animation-duration:calc(var(--animate-duration)*0.75);-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0) scaleY(.985);transform:translate3d(0,10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0) scaleY(3);transform:translate3d(0,2000px,0) scaleY(3)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0) scaleY(.985);transform:translate3d(0,10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0) scaleY(3);transform:translate3d(0,2000px,0) scaleY(3)}}.animate__bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0) scaleX(.9);transform:translate3d(20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0) scaleX(2);transform:translate3d(-2000px,0,0) scaleX(2)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0) scaleX(.9);transform:translate3d(20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0) scaleX(2);transform:translate3d(-2000px,0,0) scaleX(2)}}.animate__bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0) scaleX(.9);transform:translate3d(-20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0) scaleX(2);transform:translate3d(2000px,0,0) scaleX(2)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0) scaleX(.9);transform:translate3d(-20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0) scaleX(2);transform:translate3d(2000px,0,0) scaleX(2)}}.animate__bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0) scaleY(.985);transform:translate3d(0,-10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0) scaleY(.9);transform:translate3d(0,20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0) scaleY(3);transform:translate3d(0,-2000px,0) scaleY(3)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0) scaleY(.985);transform:translate3d(0,-10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0) scaleY(.9);transform:translate3d(0,20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0) scaleY(3);transform:translate3d(0,-2000px,0) scaleY(3)}}.animate__bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate__fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeInTopLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInTopLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInTopLeft{-webkit-animation-name:fadeInTopLeft;animation-name:fadeInTopLeft}@-webkit-keyframes fadeInTopRight{0%{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInTopRight{0%{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInTopRight{-webkit-animation-name:fadeInTopRight;animation-name:fadeInTopRight}@-webkit-keyframes fadeInBottomLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInBottomLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInBottomLeft{-webkit-animation-name:fadeInBottomLeft;animation-name:fadeInBottomLeft}@-webkit-keyframes fadeInBottomRight{0%{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInBottomRight{0%{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInBottomRight{-webkit-animation-name:fadeInBottomRight;animation-name:fadeInBottomRight}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.animate__fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.animate__fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.animate__fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.animate__fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.animate__fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.animate__fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.animate__fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.animate__fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.animate__fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes fadeOutTopLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}}@keyframes fadeOutTopLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}}.animate__fadeOutTopLeft{-webkit-animation-name:fadeOutTopLeft;animation-name:fadeOutTopLeft}@-webkit-keyframes fadeOutTopRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}}@keyframes fadeOutTopRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}}.animate__fadeOutTopRight{-webkit-animation-name:fadeOutTopRight;animation-name:fadeOutTopRight}@-webkit-keyframes fadeOutBottomRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}}@keyframes fadeOutBottomRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}}.animate__fadeOutBottomRight{-webkit-animation-name:fadeOutBottomRight;animation-name:fadeOutBottomRight}@-webkit-keyframes fadeOutBottomLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}}@keyframes fadeOutBottomLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}}.animate__fadeOutBottomLeft{-webkit-animation-name:fadeOutBottomLeft;animation-name:fadeOutBottomLeft}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animate__animated.animate__flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.animate__flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.animate__flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}.animate__flipOutX{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*0.75);animation-duration:calc(var(--animate-duration)*0.75);-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}.animate__flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*0.75);animation-duration:calc(var(--animate-duration)*0.75);-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedInRight{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes lightSpeedInRight{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__lightSpeedInRight{-webkit-animation-name:lightSpeedInRight;animation-name:lightSpeedInRight;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedInLeft{0%{-webkit-transform:translate3d(-100%,0,0) skewX(30deg);transform:translate3d(-100%,0,0) skewX(30deg);opacity:0}60%{-webkit-transform:skewX(-20deg);transform:skewX(-20deg);opacity:1}80%{-webkit-transform:skewX(5deg);transform:skewX(5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes lightSpeedInLeft{0%{-webkit-transform:translate3d(-100%,0,0) skewX(30deg);transform:translate3d(-100%,0,0) skewX(30deg);opacity:0}60%{-webkit-transform:skewX(-20deg);transform:skewX(-20deg);opacity:1}80%{-webkit-transform:skewX(5deg);transform:skewX(5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__lightSpeedInLeft{-webkit-animation-name:lightSpeedInLeft;animation-name:lightSpeedInLeft;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOutRight{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOutRight{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.animate__lightSpeedOutRight{-webkit-animation-name:lightSpeedOutRight;animation-name:lightSpeedOutRight;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes lightSpeedOutLeft{0%{opacity:1}to{-webkit-transform:translate3d(-100%,0,0) skewX(-30deg);transform:translate3d(-100%,0,0) skewX(-30deg);opacity:0}}@keyframes lightSpeedOutLeft{0%{opacity:1}to{-webkit-transform:translate3d(-100%,0,0) skewX(-30deg);transform:translate3d(-100%,0,0) skewX(-30deg);opacity:0}}.animate__lightSpeedOutLeft{-webkit-animation-name:lightSpeedOutLeft;animation-name:lightSpeedOutLeft;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateIn{0%{-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateOut{0%{opacity:1}to{-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{opacity:1}to{-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}.animate__rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes rotateOutDownLeft{0%{opacity:1}to{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{opacity:1}to{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}.animate__rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateOutDownRight{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.animate__rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateOutUpLeft{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.animate__rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateOutUpRight{0%{opacity:1}to{-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{opacity:1}to{-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}.animate__rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes hinge{0%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.animate__hinge{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2);-webkit-animation-name:hinge;animation-name:hinge;-webkit-transform-origin:top left;transform-origin:top left}@-webkit-keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.animate__jackInTheBox{-webkit-animation-name:jackInTheBox;animation-name:jackInTheBox}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}@keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}.animate__rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.animate__zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}.animate__zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0)}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0)}}.animate__zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft;-webkit-transform-origin:left center;transform-origin:left center}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0)}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0)}}.animate__zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight;-webkit-transform-origin:right center;transform-origin:right center}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.animate__slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.animate__slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.animate__slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.animate__slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp} \ No newline at end of file diff --git a/public/assets/css/banner.css b/public/assets/css/banner.css new file mode 100644 index 0000000..5a7ac00 --- /dev/null +++ b/public/assets/css/banner.css @@ -0,0 +1,328 @@ + +/*======================================================== + 首頁 carousel-intro +=========================================================*/ + +/* 首頁 carousel-intro */ +.carousel-intro { + position: relative; +} +.carousel-intro .carousel-item { + position: relative; +} + + +/* 文字 */ +.carousel-intro .carousel-caption { + position : absolute; + top: 50%; + left: 50%; + transform: translate(-50%,-50%); + z-index: 9; + color: #fff; + text-align: center; + padding: 15px 0; + width: 70%; +} +.carousel-intro .carousel-caption h2 { + display: inline-block; + color: #fff; + font-size: 1rem; +/* text-shadow: 1px 1px 1px #fff;*/ + font-weight: bold; + margin: 0 0 20px 0; + padding: 0; + line-height: 24px; +} +.carousel-intro .carousel-caption p { + color: #fff; + font-size: 0.6rem; +/* text-shadow: 1px 1px 1px #333; */ + font-weight: normal; + margin: 0 0 20px 0; + padding: 0; + line-height: 16px; + +} +.carousel-intro .carousel-caption a { + display: inline-block; + background: linear-gradient(to bottom, #2fe49e 0%,#2087a3 100%); + color: #fff; + padding: 2px 30px; + border-radius: 15px; + font-size: 0.7rem; + line-height: 20px; +} +.carousel-intro .carousel-caption a:hover { + background: linear-gradient(to bottom, #24afc0 0%,#1f68a4 100%); +} + + + +/*======================================================== + 按鈕設定 +=========================================================*/ + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 30px; + height: 30px; + background: rgba(255,255,255,0.3) no-repeat center center; + background-size: 50% 50%; + border-radius: 50%; +} + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%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' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e"); +} + +.carousel-indicators li { +/* + width: 15px; + background-color: #fff; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + opacity: 1; + border-radius: 50%; +*/ + opacity: 1; + height: 5px; +} +.carousel-indicators .active { + opacity: 1; + background-color: #e27a14; +} + + + +/*======================================================== + 動畫設定 +=========================================================*/ + +@-webkit-keyframes animatedBackground { + 0% {transform: scale(1.0);} + 100% {transform: scale(1.1);} +} +@-o-keyframes animatedBackground { + 0% {transform: scale(1.0);} + 100% {transform: scale(1.1);} +} +@-moz-keyframes animatedBackground { + 0% {transform: scale(1.0);} + 100% {transform: scale(1.1);} +} +@keyframes animatedBackground { + 0% {transform: scale(1.0);} + 100% {transform: scale(1.1);} +} + + +/* 只設定電腦版有效果 */ +/* +.carousel-intro img { + animation: animatedBackground 12s infinite alternate; + -moz-animation: animatedBackground 12s infinite alternate; + -webkit-animation: animatedBackground 12s infinite alternate; + -ms-animation: animatedBackground 12s infinite alternate; + -o-animation: animatedBackground 12s infinite alternate; +} +*/ + + + +/*======================================================== + 尺寸設定 +=========================================================*/ + +@media (max-width: 479px) { + .carousel-intro .carousel-item img { + height: 240px; + } +} +@media (min-width: 480px) and (max-width: 767px) { + .carousel-intro .carousel-item img { + height: 320px; + } +} +@media (max-width: 767px) { + .carousel-intro .carousel-item img { + object-fit: cover; + object-position: center center; + } + .carousel-intro .carousel-caption p { + display: none; + } +} +@media (min-width: 768px) { + .carousel-intro .carousel-caption h2 { + font-size: 1.4rem; + line-height: 28px; + } + .carousel-intro .carousel-caption p { + font-size: 0.8rem; + line-height: 20px; + } + .carousel-intro .carousel-caption a { + padding: 10px 30px; + border-radius: 30px; + } +} +@media (min-width: 992px) { + .carousel-intro .carousel-caption { + top: 50%; + left: 20%; + transform: translate(-20%,-50%); + text-align: left; + width: 40%; + } + .carousel-intro .carousel-caption h2 { + font-size: 1.4rem; + line-height: 30px; + } + .carousel-intro .carousel-caption p { + font-size: 0.8rem; + line-height: 24px; + } + .carousel-control-prev-icon, + .carousel-control-next-icon { + width: 40px; + height: 40px; + } +} +@media (min-width: 1200px) { + .carousel-intro .carousel-caption h2 { + font-size: 1.8rem; + line-height: 36px; + } + .carousel-intro .carousel-caption p { + font-size: 0.9rem; + line-height: 24px; + } +} +@media (min-width: 1600px) { + .carousel-intro .carousel-caption { + width: 25%; + } + .carousel-intro .carousel-caption h2 { + font-size: 2.2rem; + line-height: 40px; + } + .carousel-intro .carousel-caption p { + font-size: 1rem; + line-height: 28px; + } + .carousel-indicators { + bottom: 5%; + } +} + + +/*======================================================== + 內頁banner設定 +=========================================================*/ + + +.page-banner { + position: relative; + overflow: hidden; +} +.page-banner img { + width: 100%; + vertical-align: bottom; +/* animation: animatedBackground 12s infinite alternate; + -moz-animation: animatedBackground 12s infinite alternate; + -webkit-animation: animatedBackground 12s infinite alternate; + -ms-animation: animatedBackground 12s infinite alternate; + -o-animation: animatedBackground 12s infinite alternate;*/ +} +.page-banner-caption { + position : absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 9; + color: #fff; + text-align: center; + width: 100%; +} +.page-banner-caption h2 { + color: #fff; + font-size: 2rem; + text-shadow: 1px 1px 2px #666, 1px 1px 2px #666; + font-weight: 600; + margin: 0; + padding-bottom: 15px; + line-height: 30px; + font-family: 'Noto Serif TC', serif; +} +.page-banner-caption p { + color: #fff; + font-size: 1.1rem; + text-shadow: 1px 1px 2px #666, 1px 1px 2px #666; + font-weight: normal; + margin: 0; + padding: 0; + line-height: 16px; + font-family: Arial, "微軟正黑體", Verdana, Helvetica, sans-serif; +} + +@media (max-width: 767px) { + .page-banner > img { + height: 320px; + } +} +@media (min-width: 768px) and (max-width: 1023px) { + .page-banner > img { + height: 400px; + } +} +@media (max-width: 991px) { + .page-banner > img { + object-fit: cover; + } +} +@media (min-width: 768px) { + .carousel-intro .carousel-caption h2 { + font-size: 1.6rem; + } +} +@media (min-width: 992px) { + .page-banner-caption { + left: 16vw; + transform: translateY(-50%); + z-index: 9; + text-align: left; + } + .page-banner-caption h2 { + font-size: 1.8rem; + padding-bottom: 5px; + } + .page-banner-caption p { + font-size: 1rem; + } +} +@media (min-width: 1200px) { + .page-banner-caption h2 { + font-size: 2.2rem; + padding-bottom: 10px; + } + .page-banner-captionp { + font-size: 1.1rem; + } +} +@media (min-width: 1600px) { + .page-banner-caption h2 { + font-size: 2.6rem; + padding-bottom: 15px; + } + .page-banner-caption p { + font-size: 1.2rem; + } + +} + diff --git a/public/assets/css/bootstrap.css b/public/assets/css/bootstrap.css new file mode 100644 index 0000000..f83976b --- /dev/null +++ b/public/assets/css/bootstrap.css @@ -0,0 +1,9887 @@ +/*! + * Bootstrap v4.2.1 (https://getbootstrap.com/) + * Copyright 2011-2018 The Bootstrap Authors + * Copyright 2011-2018 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/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", 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", 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 { + 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; + 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([tabindex]) { + color: inherit; + text-decoration: none; +} + +a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus { + color: inherit; + text-decoration: none; +} + +a:not([href]):not([tabindex]):focus { + outline: 0; +} + +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; +} + +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; +} + +label { + display: inline-block; + margin-bottom: 0.5rem; +} + +button { + border-radius: 0; +} + +button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color; +} + +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; +} + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +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; +} + +input[type="date"], +input[type="time"], +input[type="datetime-local"], +input[type="month"] { + -webkit-appearance: listbox; +} + +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-family: inherit; + font-weight: 500; + line-height: 1.2; + color: inherit; +} + +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-break: 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 { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container { + max-width: 540px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 720px; + } +} + +@media (min-width: 992px) { + .container { + max-width: 960px; + } +} + +@media (min-width: 1200px) { + .container { + max-width: 1140px; + } +} + +.container-fluid { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +.row { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + 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 { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; +} + +.col-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; +} + +.col-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; +} + +.col-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; +} + +.col-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; +} + +.col-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; +} + +.col-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; +} + +.col-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; +} + +.col-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; +} + +.col-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; +} + +.col-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; +} + +.col-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; +} + +.col-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; +} + +.col-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; +} + +.order-first { + -ms-flex-order: -1; + order: -1; +} + +.order-last { + -ms-flex-order: 13; + order: 13; +} + +.order-0 { + -ms-flex-order: 0; + order: 0; +} + +.order-1 { + -ms-flex-order: 1; + order: 1; +} + +.order-2 { + -ms-flex-order: 2; + order: 2; +} + +.order-3 { + -ms-flex-order: 3; + order: 3; +} + +.order-4 { + -ms-flex-order: 4; + order: 4; +} + +.order-5 { + -ms-flex-order: 5; + order: 5; +} + +.order-6 { + -ms-flex-order: 6; + order: 6; +} + +.order-7 { + -ms-flex-order: 7; + order: 7; +} + +.order-8 { + -ms-flex-order: 8; + order: 8; +} + +.order-9 { + -ms-flex-order: 9; + order: 9; +} + +.order-10 { + -ms-flex-order: 10; + order: 10; +} + +.order-11 { + -ms-flex-order: 11; + order: 11; +} + +.order-12 { + -ms-flex-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 { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .col-sm-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-sm-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-sm-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-sm-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-sm-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-sm-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-sm-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-sm-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-sm-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-sm-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-sm-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-sm-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-sm-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-sm-first { + -ms-flex-order: -1; + order: -1; + } + .order-sm-last { + -ms-flex-order: 13; + order: 13; + } + .order-sm-0 { + -ms-flex-order: 0; + order: 0; + } + .order-sm-1 { + -ms-flex-order: 1; + order: 1; + } + .order-sm-2 { + -ms-flex-order: 2; + order: 2; + } + .order-sm-3 { + -ms-flex-order: 3; + order: 3; + } + .order-sm-4 { + -ms-flex-order: 4; + order: 4; + } + .order-sm-5 { + -ms-flex-order: 5; + order: 5; + } + .order-sm-6 { + -ms-flex-order: 6; + order: 6; + } + .order-sm-7 { + -ms-flex-order: 7; + order: 7; + } + .order-sm-8 { + -ms-flex-order: 8; + order: 8; + } + .order-sm-9 { + -ms-flex-order: 9; + order: 9; + } + .order-sm-10 { + -ms-flex-order: 10; + order: 10; + } + .order-sm-11 { + -ms-flex-order: 11; + order: 11; + } + .order-sm-12 { + -ms-flex-order: 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 { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .col-md-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-md-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-md-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-md-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-md-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-md-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-md-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-md-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-md-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-md-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-md-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-md-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-md-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-md-first { + -ms-flex-order: -1; + order: -1; + } + .order-md-last { + -ms-flex-order: 13; + order: 13; + } + .order-md-0 { + -ms-flex-order: 0; + order: 0; + } + .order-md-1 { + -ms-flex-order: 1; + order: 1; + } + .order-md-2 { + -ms-flex-order: 2; + order: 2; + } + .order-md-3 { + -ms-flex-order: 3; + order: 3; + } + .order-md-4 { + -ms-flex-order: 4; + order: 4; + } + .order-md-5 { + -ms-flex-order: 5; + order: 5; + } + .order-md-6 { + -ms-flex-order: 6; + order: 6; + } + .order-md-7 { + -ms-flex-order: 7; + order: 7; + } + .order-md-8 { + -ms-flex-order: 8; + order: 8; + } + .order-md-9 { + -ms-flex-order: 9; + order: 9; + } + .order-md-10 { + -ms-flex-order: 10; + order: 10; + } + .order-md-11 { + -ms-flex-order: 11; + order: 11; + } + .order-md-12 { + -ms-flex-order: 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 { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .col-lg-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-lg-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-lg-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-lg-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-lg-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-lg-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-lg-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-lg-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-lg-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-lg-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-lg-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-lg-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-lg-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-lg-first { + -ms-flex-order: -1; + order: -1; + } + .order-lg-last { + -ms-flex-order: 13; + order: 13; + } + .order-lg-0 { + -ms-flex-order: 0; + order: 0; + } + .order-lg-1 { + -ms-flex-order: 1; + order: 1; + } + .order-lg-2 { + -ms-flex-order: 2; + order: 2; + } + .order-lg-3 { + -ms-flex-order: 3; + order: 3; + } + .order-lg-4 { + -ms-flex-order: 4; + order: 4; + } + .order-lg-5 { + -ms-flex-order: 5; + order: 5; + } + .order-lg-6 { + -ms-flex-order: 6; + order: 6; + } + .order-lg-7 { + -ms-flex-order: 7; + order: 7; + } + .order-lg-8 { + -ms-flex-order: 8; + order: 8; + } + .order-lg-9 { + -ms-flex-order: 9; + order: 9; + } + .order-lg-10 { + -ms-flex-order: 10; + order: 10; + } + .order-lg-11 { + -ms-flex-order: 11; + order: 11; + } + .order-lg-12 { + -ms-flex-order: 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 { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .col-xl-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-xl-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-xl-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-xl-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-xl-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-xl-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-xl-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-xl-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-xl-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-xl-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-xl-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-xl-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-xl-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-xl-first { + -ms-flex-order: -1; + order: -1; + } + .order-xl-last { + -ms-flex-order: 13; + order: 13; + } + .order-xl-0 { + -ms-flex-order: 0; + order: 0; + } + .order-xl-1 { + -ms-flex-order: 1; + order: 1; + } + .order-xl-2 { + -ms-flex-order: 2; + order: 2; + } + .order-xl-3 { + -ms-flex-order: 3; + order: 3; + } + .order-xl-4 { + -ms-flex-order: 4; + order: 4; + } + .order-xl-5 { + -ms-flex-order: 5; + order: 5; + } + .order-xl-6 { + -ms-flex-order: 6; + order: 6; + } + .order-xl-7 { + -ms-flex-order: 7; + order: 7; + } + .order-xl-8 { + -ms-flex-order: 8; + order: 8; + } + .order-xl-9 { + -ms-flex-order: 9; + order: 9; + } + .order-xl-10 { + -ms-flex-order: 10; + order: 10; + } + .order-xl-11 { + -ms-flex-order: 11; + order: 11; + } + .order-xl-12 { + -ms-flex-order: 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; + background-color: transparent; +} + +.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 .table { + background-color: #fff; +} + +.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 { + 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: #212529; + border-color: #32383e; +} + +.table .thead-light th { + color: #495057; + background-color: #e9ecef; + border-color: #dee2e6; +} + +.table-dark { + color: #fff; + background-color: #212529; +} + +.table-dark th, +.table-dark td, +.table-dark thead th { + border-color: #32383e; +} + +.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 { + 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; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + .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; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + .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; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + .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; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + .table-responsive-xl > .table-bordered { + border: 0; + } +} + +.table-responsive { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; +} + +.table-responsive > .table-bordered { + border: 0; +} + +.form-control { + display: block; + width: 100%; + height: calc(2.25rem + 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 screen and (prefers-reduced-motion: reduce) { + .form-control { + transition: none; + } +} + +.form-control::-ms-expand { + background-color: transparent; + border: 0; +} + +.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::-webkit-input-placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control::-moz-placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control:-ms-input-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; +} + +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-top: 0.375rem; + padding-bottom: 0.375rem; + margin-bottom: 0; + 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.8125rem + 2px); + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +.form-control-lg { + height: calc(2.875rem + 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: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + 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 { + color: #6c757d; +} + +.form-check-label { + margin-bottom: 0; +} + +.form-check-inline { + display: -ms-inline-flexbox; + display: inline-flex; + -ms-flex-align: center; + 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%; + 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; +} + +.was-validated .form-control:valid, .form-control.is-valid { + border-color: #28a745; + padding-right: 2.25rem; + background-repeat: no-repeat; + background-position: center right calc(2.25rem / 4); + background-size: calc(2.25rem / 2) calc(2.25rem / 2); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' 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"); +} + +.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 .form-control:valid ~ .valid-feedback, +.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback, +.form-control.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated textarea.form-control:valid, textarea.form-control.is-valid { + padding-right: 2.25rem; + background-position: top calc(2.25rem / 4) right calc(2.25rem / 4); +} + +.was-validated .custom-select:valid, .custom-select.is-valid { + border-color: #28a745; + padding-right: 3.4375rem; + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' 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") no-repeat center right 1.75rem/1.125rem 1.125rem; +} + +.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 .custom-select:valid ~ .valid-feedback, +.was-validated .custom-select:valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-feedback, +.custom-select.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .form-control-file:valid ~ .valid-feedback, +.was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-feedback, +.form-control-file.is-valid ~ .valid-tooltip { + display: block; +} + +.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 ~ .valid-feedback, +.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback, +.custom-control-input.is-valid ~ .valid-tooltip { + display: block; +} + +.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 ~ .valid-feedback, +.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback, +.custom-file-input.is-valid ~ .valid-tooltip { + display: block; +} + +.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%; + 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; +} + +.was-validated .form-control:invalid, .form-control.is-invalid { + border-color: #dc3545; + padding-right: 2.25rem; + background-repeat: no-repeat; + background-position: center right calc(2.25rem / 4); + background-size: calc(2.25rem / 2) calc(2.25rem / 2); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E"); +} + +.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 .form-control:invalid ~ .invalid-feedback, +.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback, +.form-control.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { + padding-right: 2.25rem; + background-position: top calc(2.25rem / 4) right calc(2.25rem / 4); +} + +.was-validated .custom-select:invalid, .custom-select.is-invalid { + border-color: #dc3545; + padding-right: 3.4375rem; + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E") no-repeat center right 1.75rem/1.125rem 1.125rem; +} + +.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 .custom-select:invalid ~ .invalid-feedback, +.was-validated .custom-select:invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-feedback, +.custom-select.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .form-control-file:invalid ~ .invalid-feedback, +.was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-feedback, +.form-control-file.is-invalid ~ .invalid-tooltip { + display: block; +} + +.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 ~ .invalid-feedback, +.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback, +.custom-control-input.is-invalid ~ .invalid-tooltip { + display: block; +} + +.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 ~ .invalid-feedback, +.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback, +.custom-file-input.is-invalid ~ .invalid-tooltip { + display: block; +} + +.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: -ms-flexbox; + display: flex; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + -ms-flex-align: center; + align-items: center; +} + +.form-inline .form-check { + width: 100%; +} + +@media (min-width: 576px) { + .form-inline label { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: center; + justify-content: center; + margin-bottom: 0; + } + .form-inline .form-group { + display: -ms-flexbox; + display: flex; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + -ms-flex-align: center; + 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: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: center; + justify-content: center; + width: auto; + padding-left: 0; + } + .form-inline .form-check-input { + position: relative; + margin-top: 0; + margin-right: 0.25rem; + margin-left: 0; + } + .form-inline .custom-control { + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: 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 screen and (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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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; +} + +.btn-link:hover { + color: #0056b3; + text-decoration: underline; +} + +.btn-link:focus, .btn-link.focus { + text-decoration: underline; + box-shadow: none; +} + +.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 screen and (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 screen and (prefers-reduced-motion: reduce) { + .collapsing { + transition: none; + } +} + +.dropup, +.dropright, +.dropdown, +.dropleft { + position: relative; +} + +.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-right { + right: 0; + left: auto; +} + +@media (min-width: 576px) { + .dropdown-menu-sm-right { + right: 0; + left: auto; + } +} + +@media (min-width: 768px) { + .dropdown-menu-md-right { + right: 0; + left: auto; + } +} + +@media (min-width: 992px) { + .dropdown-menu-lg-right { + right: 0; + left: auto; + } +} + +@media (min-width: 1200px) { + .dropdown-menu-xl-right { + right: 0; + left: auto; + } +} + +.dropdown-menu-left { + right: auto; + left: 0; +} + +@media (min-width: 576px) { + .dropdown-menu-sm-left { + right: auto; + left: 0; + } +} + +@media (min-width: 768px) { + .dropdown-menu-md-left { + right: auto; + left: 0; + } +} + +@media (min-width: 992px) { + .dropdown-menu-lg-left { + right: auto; + left: 0; + } +} + +@media (min-width: 1200px) { + .dropdown-menu-xl-left { + right: auto; + left: 0; + } +} + +.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:first-child { + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} + +.dropdown-item:last-child { + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} + +.dropdown-item:hover, .dropdown-item:focus { + color: #16181b; + text-decoration: none; + background-color: #f8f9fa; +} + +.dropdown-item.active, .dropdown-item:active { + color: #fff; + text-decoration: none; + background-color: #007bff; +} + +.dropdown-item.disabled, .dropdown-item:disabled { + color: #6c757d; + 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: -ms-inline-flexbox; + display: inline-flex; + vertical-align: middle; +} + +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + -ms-flex: 1 1 auto; + 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: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-pack: start; + 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 { + -ms-flex-direction: column; + flex-direction: column; + -ms-flex-align: start; + align-items: flex-start; + -ms-flex-pack: center; + 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: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-align: stretch; + align-items: stretch; + width: 100%; +} + +.input-group > .form-control, +.input-group > .form-control-plaintext, +.input-group > .custom-select, +.input-group > .custom-file { + position: relative; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + width: 1%; + 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(:last-child), +.input-group > .custom-select:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.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: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; +} + +.input-group > .custom-file:not(:last-child) .custom-file-label, +.input-group > .custom-file:not(:last-child) .custom-file-label::after { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group > .custom-file:not(:first-child) .custom-file-label { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.input-group-prepend, +.input-group-append { + display: -ms-flexbox; + 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: -ms-flexbox; + display: flex; + -ms-flex-align: center; + 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(2.875rem + 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.8125rem + 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 > .input-group-append:not(:last-child) > .btn, +.input-group > .input-group-append:not(:last-child) > .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; + display: block; + min-height: 1.5rem; + padding-left: 1.5rem; +} + +.custom-control-inline { + display: -ms-inline-flexbox; + display: inline-flex; + margin-right: 1rem; +} + +.custom-control-input { + position: absolute; + z-index: -1; + 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 { + color: #6c757d; +} + +.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-repeat: no-repeat; + background-position: center center; + background-size: 50% 50%; +} + +.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' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 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' 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' 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: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out; + 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; + 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, -webkit-transform 0.15s ease-in-out; +} + +@media screen and (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; + -webkit-transform: translateX(0.75rem); + 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(2.25rem + 2px); + padding: 0.375rem 1.75rem 0.375rem 0.75rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + vertical-align: middle; + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px; + background-color: #fff; + 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(128, 189, 255, 0.5); +} + +.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 { + opacity: 0; +} + +.custom-select-sm { + height: calc(1.8125rem + 2px); + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.875rem; +} + +.custom-select-lg { + height: calc(2.875rem + 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(2.25rem + 2px); + margin-bottom: 0; +} + +.custom-file-input { + position: relative; + z-index: 2; + width: 100%; + height: calc(2.25rem + 2px); + margin: 0; + 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 { + 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(2.25rem + 2px); + padding: 0.375rem 0.75rem; + 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: 2.25rem; + 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: calc(1rem + 0.4rem); + padding: 0; + background-color: transparent; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.custom-range:focus { + outline: none; +} + +.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; + 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 screen and (prefers-reduced-motion: reduce) { + .custom-range::-webkit-slider-thumb { + 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; + 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 screen and (prefers-reduced-motion: reduce) { + .custom-range::-moz-range-thumb { + 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; + 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 screen and (prefers-reduced-motion: reduce) { + .custom-range::-ms-thumb { + 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 screen and (prefers-reduced-motion: reduce) { + .custom-control-label::before, + .custom-file-label, + .custom-select { + transition: none; + } +} + +.nav { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + 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-item { + margin-bottom: -1px; +} + +.nav-tabs .nav-link { + 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-item { + -ms-flex: 1 1 auto; + flex: 1 1 auto; + text-align: center; +} + +.nav-justified .nav-item { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + text-align: center; +} + +.tab-content > .tab-pane { + display: none; +} + +.tab-content > .active { + display: block; +} + +.navbar { + position: relative; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 0.5rem 1rem; +} + +.navbar > .container, +.navbar > .container-fluid { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: justify; + 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: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + 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 { + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + -ms-flex-positive: 1; + flex-grow: 1; + -ms-flex-align: center; + 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:not(:disabled):not(.disabled) { + cursor: pointer; +} + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + content: ""; + background: no-repeat center center; + background-size: 100% 100%; +} + +@media (max-width: 575.98px) { + .navbar-expand-sm > .container, + .navbar-expand-sm > .container-fluid { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 576px) { + .navbar-expand-sm { + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -ms-flex-pack: start; + justify-content: flex-start; + } + .navbar-expand-sm .navbar-nav { + -ms-flex-direction: row; + 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 { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + } + .navbar-expand-sm .navbar-collapse { + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + .navbar-expand-sm .navbar-toggler { + display: none; + } +} + +@media (max-width: 767.98px) { + .navbar-expand-md > .container, + .navbar-expand-md > .container-fluid { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 768px) { + .navbar-expand-md { + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -ms-flex-pack: start; + justify-content: flex-start; + } + .navbar-expand-md .navbar-nav { + -ms-flex-direction: row; + 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 { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + } + .navbar-expand-md .navbar-collapse { + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + .navbar-expand-md .navbar-toggler { + display: none; + } +} + +@media (max-width: 991.98px) { + .navbar-expand-lg > .container, + .navbar-expand-lg > .container-fluid { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 992px) { + .navbar-expand-lg { + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -ms-flex-pack: start; + justify-content: flex-start; + } + .navbar-expand-lg .navbar-nav { + -ms-flex-direction: row; + 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 { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + } + .navbar-expand-lg .navbar-collapse { + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + .navbar-expand-lg .navbar-toggler { + display: none; + } +} + +@media (max-width: 1199.98px) { + .navbar-expand-xl > .container, + .navbar-expand-xl > .container-fluid { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 1200px) { + .navbar-expand-xl { + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -ms-flex-pack: start; + justify-content: flex-start; + } + .navbar-expand-xl .navbar-nav { + -ms-flex-direction: row; + 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 { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + } + .navbar-expand-xl .navbar-collapse { + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + .navbar-expand-xl .navbar-toggler { + display: none; + } +} + +.navbar-expand { + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -ms-flex-pack: start; + justify-content: flex-start; +} + +.navbar-expand > .container, +.navbar-expand > .container-fluid { + padding-right: 0; + padding-left: 0; +} + +.navbar-expand .navbar-nav { + -ms-flex-direction: row; + 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 { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; +} + +.navbar-expand .navbar-collapse { + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + 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 viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' 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 viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' 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: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + 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:first-child .list-group-item:first-child { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} + +.card > .list-group:last-child .list-group-item:last-child { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.card-body { + -ms-flex: 1 1 auto; + flex: 1 1 auto; + 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; + color: inherit; + 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-header + .list-group .list-group-item:first-child { + border-top: 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; +} + +.card-img { + width: 100%; + border-radius: calc(0.25rem - 1px); +} + +.card-img-top { + width: 100%; + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} + +.card-img-bottom { + width: 100%; + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} + +.card-deck { + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; +} + +.card-deck .card { + margin-bottom: 15px; +} + +@media (min-width: 576px) { + .card-deck { + -ms-flex-flow: row wrap; + flex-flow: row wrap; + margin-right: -15px; + margin-left: -15px; + } + .card-deck .card { + display: -ms-flexbox; + display: flex; + -ms-flex: 1 0 0%; + flex: 1 0 0%; + -ms-flex-direction: column; + flex-direction: column; + margin-right: 15px; + margin-bottom: 0; + margin-left: 15px; + } +} + +.card-group { + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; +} + +.card-group > .card { + margin-bottom: 15px; +} + +@media (min-width: 576px) { + .card-group { + -ms-flex-flow: row wrap; + flex-flow: row wrap; + } + .card-group > .card { + -ms-flex: 1 0 0%; + flex: 1 0 0%; + margin-bottom: 0; + } + .card-group > .card + .card { + margin-left: 0; + border-left: 0; + } + .card-group > .card:first-child { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + .card-group > .card:first-child .card-img-top, + .card-group > .card:first-child .card-header { + border-top-right-radius: 0; + } + .card-group > .card:first-child .card-img-bottom, + .card-group > .card:first-child .card-footer { + border-bottom-right-radius: 0; + } + .card-group > .card:last-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + .card-group > .card:last-child .card-img-top, + .card-group > .card:last-child .card-header { + border-top-left-radius: 0; + } + .card-group > .card:last-child .card-img-bottom, + .card-group > .card:last-child .card-footer { + border-bottom-left-radius: 0; + } + .card-group > .card:only-child { + border-radius: 0.25rem; + } + .card-group > .card:only-child .card-img-top, + .card-group > .card:only-child .card-header { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; + } + .card-group > .card:only-child .card-img-bottom, + .card-group > .card:only-child .card-footer { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; + } + .card-group > .card:not(:first-child):not(:last-child):not(:only-child) { + border-radius: 0; + } + .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top, + .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom, + .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-header, + .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-footer { + border-radius: 0; + } +} + +.card-columns .card { + margin-bottom: 0.75rem; +} + +@media (min-width: 576px) { + .card-columns { + -webkit-column-count: 3; + -moz-column-count: 3; + column-count: 3; + -webkit-column-gap: 1.25rem; + -moz-column-gap: 1.25rem; + column-gap: 1.25rem; + orphans: 1; + widows: 1; + } + .card-columns .card { + display: inline-block; + width: 100%; + } +} + +.accordion .card { + overflow: hidden; +} + +.accordion .card:not(:first-of-type) .card-header:first-child { + border-radius: 0; +} + +.accordion .card:not(:first-of-type):not(:last-of-type) { + border-bottom: 0; + border-radius: 0; +} + +.accordion .card:first-of-type { + border-bottom: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.accordion .card:last-of-type { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.accordion .card .card-header { + margin-bottom: -1px; +} + +.breadcrumb { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + 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 { + display: inline-block; + 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: -ms-flexbox; + 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: 2; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.page-link:not(:disabled):not(.disabled) { + cursor: pointer; +} + +.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: 1; + 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; +} + +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; +} + +.badge-secondary { + color: #fff; + background-color: #6c757d; +} + +a.badge-secondary:hover, a.badge-secondary:focus { + color: #fff; + background-color: #545b62; +} + +.badge-success { + color: #fff; + background-color: #28a745; +} + +a.badge-success:hover, a.badge-success:focus { + color: #fff; + background-color: #1e7e34; +} + +.badge-info { + color: #fff; + background-color: #17a2b8; +} + +a.badge-info:hover, a.badge-info:focus { + color: #fff; + background-color: #117a8b; +} + +.badge-warning { + color: #212529; + background-color: #ffc107; +} + +a.badge-warning:hover, a.badge-warning:focus { + color: #212529; + background-color: #d39e00; +} + +.badge-danger { + color: #fff; + background-color: #dc3545; +} + +a.badge-danger:hover, a.badge-danger:focus { + color: #fff; + background-color: #bd2130; +} + +.badge-light { + color: #212529; + background-color: #f8f9fa; +} + +a.badge-light:hover, a.badge-light:focus { + color: #212529; + background-color: #dae0e5; +} + +.badge-dark { + color: #fff; + background-color: #343a40; +} + +a.badge-dark:hover, a.badge-dark:focus { + color: #fff; + background-color: #1d2124; +} + +.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; + 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: -ms-flexbox; + display: flex; + height: 1rem; + overflow: hidden; + font-size: 0.75rem; + background-color: #e9ecef; + border-radius: 0.25rem; +} + +.progress-bar { + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + -ms-flex-pack: center; + justify-content: center; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: #007bff; + transition: width 0.6s ease; +} + +@media screen and (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: progress-bar-stripes 1s linear infinite; + animation: progress-bar-stripes 1s linear infinite; +} + +.media { + display: -ms-flexbox; + display: flex; + -ms-flex-align: start; + align-items: flex-start; +} + +.media-body { + -ms-flex: 1; + flex: 1; +} + +.list-group { + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; +} + +.list-group-item-action { + width: 100%; + color: #495057; + text-align: inherit; +} + +.list-group-item-action:hover, .list-group-item-action:focus { + 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; + margin-bottom: -1px; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.125); +} + +.list-group-item:first-child { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} + +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.list-group-item:hover, .list-group-item:focus { + z-index: 1; + text-decoration: none; +} + +.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-flush .list-group-item { + border-right: 0; + border-left: 0; + border-radius: 0; +} + +.list-group-flush .list-group-item:last-child { + margin-bottom: -1px; +} + +.list-group-flush:first-child .list-group-item:first-child { + border-top: 0; +} + +.list-group-flush:last-child .list-group-item:last-child { + margin-bottom: 0; + border-bottom: 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) { + cursor: pointer; +} + +.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus { + opacity: .75; +} + +button.close { + padding: 0; + background-color: transparent; + border: 0; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +a.close.disabled { + pointer-events: none; +} + +.toast { + max-width: 350px; + overflow: hidden; + 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); + border-radius: 0.25rem; + box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1); + -webkit-backdrop-filter: blur(10px); + backdrop-filter: blur(10px); + opacity: 0; +} + +.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: -ms-flexbox; + display: flex; + -ms-flex-align: center; + 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); +} + +.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: -webkit-transform 0.3s ease-out; + transition: transform 0.3s ease-out; + transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out; + -webkit-transform: translate(0, -50px); + transform: translate(0, -50px); +} + +@media screen and (prefers-reduced-motion: reduce) { + .modal.fade .modal-dialog { + transition: none; + } +} + +.modal.show .modal-dialog { + -webkit-transform: none; + transform: none; +} + +.modal-dialog-centered { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + min-height: calc(100% - (0.5rem * 2)); +} + +.modal-dialog-centered::before { + display: block; + height: calc(100vh - (0.5rem * 2)); + content: ""; +} + +.modal-content { + position: relative; + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + 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: -ms-flexbox; + display: flex; + -ms-flex-align: start; + align-items: flex-start; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 1rem 1rem; + border-bottom: 1px solid #e9ecef; + border-top-left-radius: 0.3rem; + border-top-right-radius: 0.3rem; +} + +.modal-header .close { + padding: 1rem 1rem; + margin: -1rem -1rem -1rem auto; +} + +.modal-title { + margin-bottom: 0; + line-height: 1.5; +} + +.modal-body { + position: relative; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + padding: 1rem; +} + +.modal-footer { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: end; + justify-content: flex-end; + padding: 1rem; + border-top: 1px solid #e9ecef; + border-bottom-right-radius: 0.3rem; + border-bottom-left-radius: 0.3rem; +} + +.modal-footer > :not(:first-child) { + margin-left: .25rem; +} + +.modal-footer > :not(:last-child) { + margin-right: .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-centered { + min-height: calc(100% - (1.75rem * 2)); + } + .modal-dialog-centered::before { + height: calc(100vh - (1.75rem * 2)); + } + .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", 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", 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) * -1); +} + +.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before, +.bs-popover-top .arrow::after, +.bs-popover-auto[x-placement^="top"] .arrow::after { + border-width: 0.5rem 0.5rem 0; +} + +.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before { + bottom: 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-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) * -1); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; +} + +.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before, +.bs-popover-right .arrow::after, +.bs-popover-auto[x-placement^="right"] .arrow::after { + border-width: 0.5rem 0.5rem 0.5rem 0; +} + +.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before { + left: 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-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) * -1); +} + +.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before, +.bs-popover-bottom .arrow::after, +.bs-popover-auto[x-placement^="bottom"] .arrow::after { + border-width: 0 0.5rem 0.5rem 0.5rem; +} + +.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before { + top: 0; + 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-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) * -1); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; +} + +.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before, +.bs-popover-left .arrow::after, +.bs-popover-auto[x-placement^="left"] .arrow::after { + border-width: 0.5rem 0 0.5rem 0.5rem; +} + +.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before { + right: 0; + 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-left-color: #fff; +} + +.popover-header { + padding: 0.5rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + color: inherit; + 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 { + -ms-touch-action: pan-y; + 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: -webkit-transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out; +} + +@media screen and (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 { + -webkit-transform: translateX(100%); + transform: translateX(100%); +} + +.carousel-item-prev:not(.carousel-item-right), +.active.carousel-item-left { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); +} + +.carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + -webkit-transform: none; + 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: 0s 0.6s opacity; +} + +@media screen and (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: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: center; + justify-content: center; + width: 15%; + color: #fff; + text-align: center; + opacity: 0.5; + transition: opacity 0.15s ease; +} + +@media screen and (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: transparent no-repeat center center; + background-size: 100% 100%; +} + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%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' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e"); +} + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 15; + display: -ms-flexbox; + display: flex; + -ms-flex-pack: center; + justify-content: center; + padding-left: 0; + margin-right: 15%; + margin-left: 15%; + list-style: none; +} + +.carousel-indicators li { + box-sizing: content-box; + -ms-flex: 0 1 auto; + 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 screen and (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 { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes spinner-border { + to { + -webkit-transform: rotate(360deg); + 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: spinner-border .75s linear infinite; + animation: spinner-border .75s linear infinite; +} + +.spinner-border-sm { + width: 1rem; + height: 1rem; + border-width: 0.2em; +} + +@-webkit-keyframes spinner-grow { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + } + 50% { + opacity: 1; + } +} + +@keyframes spinner-grow { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + } + 50% { + opacity: 1; + } +} + +.spinner-grow { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + background-color: currentColor; + border-radius: 50%; + opacity: 0; + -webkit-animation: spinner-grow .75s linear infinite; + animation: spinner-grow .75s linear infinite; +} + +.spinner-grow-sm { + width: 1rem; + height: 1rem; +} + +.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 { + 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-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: -ms-flexbox !important; + display: flex !important; +} + +.d-inline-flex { + display: -ms-inline-flexbox !important; + 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: -ms-flexbox !important; + display: flex !important; + } + .d-sm-inline-flex { + display: -ms-inline-flexbox !important; + 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: -ms-flexbox !important; + display: flex !important; + } + .d-md-inline-flex { + display: -ms-inline-flexbox !important; + 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: -ms-flexbox !important; + display: flex !important; + } + .d-lg-inline-flex { + display: -ms-inline-flexbox !important; + 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: -ms-flexbox !important; + display: flex !important; + } + .d-xl-inline-flex { + display: -ms-inline-flexbox !important; + 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: -ms-flexbox !important; + display: flex !important; + } + .d-print-inline-flex { + display: -ms-inline-flexbox !important; + 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-3by4::before { + padding-top: 133.333333%; +} + +.embed-responsive-1by1::before { + padding-top: 100%; +} + +.flex-row { + -ms-flex-direction: row !important; + flex-direction: row !important; +} + +.flex-column { + -ms-flex-direction: column !important; + flex-direction: column !important; +} + +.flex-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; +} + +.flex-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; +} + +.flex-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; +} + +.flex-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; +} + +.flex-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; +} + +.flex-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; +} + +.flex-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; +} + +.flex-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; +} + +.flex-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; +} + +.justify-content-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; +} + +.justify-content-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; +} + +.justify-content-center { + -ms-flex-pack: center !important; + justify-content: center !important; +} + +.justify-content-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; +} + +.justify-content-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; +} + +.align-items-start { + -ms-flex-align: start !important; + align-items: flex-start !important; +} + +.align-items-end { + -ms-flex-align: end !important; + align-items: flex-end !important; +} + +.align-items-center { + -ms-flex-align: center !important; + align-items: center !important; +} + +.align-items-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; +} + +.align-items-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; +} + +.align-content-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; +} + +.align-content-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; +} + +.align-content-center { + -ms-flex-line-pack: center !important; + align-content: center !important; +} + +.align-content-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; +} + +.align-content-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; +} + +.align-content-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; +} + +.align-self-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; +} + +.align-self-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; +} + +.align-self-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; +} + +.align-self-center { + -ms-flex-item-align: center !important; + align-self: center !important; +} + +.align-self-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; +} + +.align-self-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; +} + +@media (min-width: 576px) { + .flex-sm-row { + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-sm-column { + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-sm-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-sm-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-sm-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-sm-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-sm-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .flex-sm-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + .flex-sm-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + .flex-sm-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + .flex-sm-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + .flex-sm-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-sm-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-sm-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-sm-center { + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-sm-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-sm-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-sm-start { + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-sm-end { + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-sm-center { + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-sm-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-sm-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-sm-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-sm-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-sm-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-sm-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-sm-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-sm-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-sm-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-sm-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-sm-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-sm-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-sm-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-sm-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 768px) { + .flex-md-row { + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-md-column { + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-md-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-md-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-md-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-md-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-md-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .flex-md-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + .flex-md-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + .flex-md-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + .flex-md-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + .flex-md-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-md-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-md-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-md-center { + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-md-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-md-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-md-start { + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-md-end { + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-md-center { + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-md-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-md-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-md-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-md-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-md-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-md-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-md-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-md-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-md-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-md-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-md-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-md-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-md-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-md-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 992px) { + .flex-lg-row { + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-lg-column { + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-lg-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-lg-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-lg-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-lg-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-lg-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .flex-lg-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + .flex-lg-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + .flex-lg-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + .flex-lg-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + .flex-lg-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-lg-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-lg-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-lg-center { + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-lg-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-lg-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-lg-start { + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-lg-end { + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-lg-center { + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-lg-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-lg-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-lg-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-lg-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-lg-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-lg-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-lg-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-lg-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-lg-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-lg-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-lg-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-lg-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-lg-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-lg-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 1200px) { + .flex-xl-row { + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-xl-column { + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-xl-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-xl-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-xl-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-xl-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-xl-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .flex-xl-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + .flex-xl-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + .flex-xl-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + .flex-xl-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + .flex-xl-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-xl-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-xl-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-xl-center { + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-xl-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-xl-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-xl-start { + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-xl-end { + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-xl-center { + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-xl-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-xl-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-xl-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-xl-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-xl-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-xl-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-xl-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-xl-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-xl-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-xl-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-xl-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-xl-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-xl-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-xl-stretch { + -ms-flex-item-align: stretch !important; + 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; + } +} + +.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; + 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; + } +} + +.text-monospace { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +} + +.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-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; + } +} +/*# sourceMappingURL=bootstrap.css.map */ \ No newline at end of file diff --git a/public/assets/css/bootstrap.css.map b/public/assets/css/bootstrap.css.map new file mode 100644 index 0000000..a229e39 --- /dev/null +++ b/public/assets/css/bootstrap.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","../../scss/_variables.scss","bootstrap.css","../../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/mixins/_float.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/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_text-hide.scss","../../scss/utilities/_visibility.scss","../../scss/mixins/_visibility.scss","../../scss/_print.scss"],"names":[],"mappings":"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CE,cAAa;CACd;;AE/GD;EFoHE,yBAAwB;CACzB;;AIvcD;;EAEE,sBHsSuC;EGrSvC,qBHsSmC;EGrSnC,iBHsS+B;EGrS/B,iBHsS+B;EGrS/B,eHsSmC;CGrSpC;;AAED;EAAU,kBHwRyC;CGxRb;;AACtC;EAAU,gBHwRuC;CGxRX;;AACtC;EAAU,mBHwR0C;CGxRd;;AACtC;EAAU,kBHwRyC;CGxRb;;AACtC;EAAU,mBHwR0C;CGxRd;;AACtC;EAAU,gBHsQwB;CGtQI;;AAEtC;EACE,mBHwSoD;EGvSpD,iBHwS+B;CGvShC;;AAGD;EACE,gBHuRgC;EGtRhC,iBH2R+B;EG1R/B,iBHkR+B;CGjRhC;;AACD;EACE,kBHmRkC;EGlRlC,iBHuR+B;EGtR/B,iBH6Q+B;CG5QhC;;AACD;EACE,kBH+QkC;EG9QlC,iBHmR+B;EGlR/B,iBHwQ+B;CGvQhC;;AACD;EACE,kBH2QkC;EG1QlC,iBH+Q+B;EG9Q/B,iBHmQ+B;CGlQhC;;AJwBD;EIhBE,iBHuEW;EGtEX,oBHsEW;EGrEX,UAAS;EACT,yCHzCa;CG0Cd;;AAOD;;EAEE,eH8P+B;EG7P/B,iBH2N+B;CG1NhC;;AAED;;EAEE,eHmQgC;EGlQhC,0BH2QmC;CG1QpC;;AAOD;EC/EE,gBAAe;EACf,iBAAgB;CDgFjB;;AAGD;ECpFE,gBAAe;EACf,iBAAgB;CDqFjB;;AACD;EACE,sBAAqB;CAKtB;;AAND;EAII,qBHqP+B;CGpPhC;;AASH;EACE,eAAc;EACd,0BAAyB;CAC1B;;AAGD;EACE,oBHcW;EGbX,mBHuNoD;CGtNrD;;AAED;EACE,eAAc;EACd,eH4M+B;EG3M/B,eH1GgB;CG+GjB;;AARD;EAMI,sBAAqB;CACtB;;AEpHH;ECIE,gBAAe;EAGf,aAAY;CDLb;;AAID;EACE,iBLg9BwC;EK/8BxC,uBLRa;EKSb,0BLNgB;EONd,uBP6OgC;EMtOlC,gBAAe;EAGf,aAAY;CDQb;;AAMD;EAEE,sBAAqB;CACtB;;AAED;EACE,sBAA0B;EAC1B,eAAc;CACf;;AAED;EACE,eLi8BqC;EKh8BrC,eL3BgB;CK4BjB;;AGxCD;EACE,iBR0iCuC;E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wBf;;AAED;;EAGE,YrBnCW;EqBoCX,0BAtCuK;EA0CvK,sBA1C+M;CAoDhN;;AARC;;EAKI,kDAAiF;CAEpF;;ADOH;ECzDA,YrBCa;EmBDX,0BnBqCa;EqBnCf,sBrBmCe;CoBsBd;;AlBrDD;EmBAE,YrBLW;EmBDX,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,gDAAiF;CAEpF;;AAGD;EAEE,YrBvBW;EqBwBX,0BrBYa;EqBXb,sBrBWa;CqBNd;;AAED;;EAGE,YrBnCW;EqBoCX,0BAtCuK;EA0CvK,sBA1C+M;CAoDhN;;AARC;;EAKI,gDAAiF;CAEpF;;ADOH;ECzDA,YrBCa;EmBDX,0BnBuCa;EqBrCf,sBrBqCe;CoBoBd;;AlBrDD;EmBAE,YrBLW;EmBDX,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,iDAAiF;CAEpF;;AAGD;EAEE,YrBvBW;EqBwBX,0BrBca;EqBbb,sBrBaa;CqBRd;;AAED;;EAGE,YrBnCW;EqBoCX,0BAtCuK;EA0CvK,sBA1C+M;CAoDhN;;AARC;;EAKI,iDAAiF;CAEpF;;ADOH;ECzDA,erBUgB;EmBVd,0BnBoCa;EqBlCf,sBrBkCe;CoBuBd;;AlBrDD;EmBAE,erBIc;EmBVd,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,iDAAiF;CAEpF;;AAGD;EAEE,erBdc;EqBed,0BrBWa;EqBVb,sBrBUa;CqBLd;;AAED;;EAGE,erB1Bc;EqB2Bd,0BAtCuK;EA0CvK,sBA1C+M;CAoDhN;;AARC;;EAKI,iDAAiF;CAEpF;;ADOH;ECzDA,YrBCa;EmBDX,0BnBkCa;EqBhCf,sBrBgCe;CoByBd;;AlBrDD;EmBAE,YrBLW;EmBDX,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,gDAAiF;CAEpF;;AAGD;EAEE,YrBvBW;EqBwBX,0BrBSa;EqBRb,sBrBQa;CqBHd;;AAED;;EAGE,YrBnCW;EqBoCX,0BAtCuK;EA0CvK,sBA1C+M;CAoDhN;;AARC;;EAKI,gDAAiF;CAEpF;;ADOH;ECzDA,erBUgB;EmBVd,0BnBEc;EqBAhB,sBrBAgB;CoByDf;;AlBrDD;EmBAE,erBIc;EmBVd,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,kDAAiF;CAEpF;;AAGD;EAEE,erBdc;EqBed,0BrBvBc;EqBwBd,sBrBxBc;CqB6Bf;;AAED;;EAGE,erB1Bc;EqB2Bd,0BAtCuK;EA0CvK,sBA1C+M;CAoDhN;;AARC;;EAKI,kDAAiF;CAEpF;;ADOH;ECzDA,YrBCa;EmBDX,0BnBSc;EqBPhB,sBrBOgB;CoBkDf;;AlBrDD;EmBAE,YrBLW;EmBDX,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,+CAAiF;CAEpF;;AAGD;EAEE,YrBvBW;EqBwBX,0BrBhBc;EqBiBd,sBrBjBc;CqBsBf;;AAED;;EAGE,YrBnCW;EqBoCX,0BAtCuK;EA0CvK,sBA1C+M;CAoDhN;;AARC;;EAKI,+CAAiF;CAEpF;;ADaH;ECRA,erBzBe;EqB0Bf,sBrB1Be;CoBmCd;;AlB3DD;EmBqDE,YrB1DW;EqB2DX,0BrB9Ba;EqB+Bb,sBrB/Ba;CExBO;;AmB0DtB;EAEE,gDrBpCa;CqBqCd;;AAED;EAEE,erBzCa;EqB0Cb,8BAA6B;CAC9B;;AAED;;EAGE,YrB7EW;EqB8EX,0BrBjDa;EqBkDb,sBrBlDa;CqB4Dd;;AARC;;EAKI,gDrBzDS;CqB2DZ;;AD1BH;ECRA,erBhDgB;EqBiDhB,sBrBjDgB;CoB0Df;;AlB3DD;EmBqDE,YrB1DW;EqB2DX,0BrBrDc;EqBsDd,sBrBtDc;CEDM;;AmB0DtB;EAEE,kDrB3Dc;CqB4Df;;AAED;EAEE,erBhEc;EqBiEd,8BAA6B;CAC9B;;AAED;;EAGE,YrB7EW;EqB8EX,0BrBxEc;EqByEd,sBrBzEc;CqBmFf;;AARC;;EAKI,kDrBhFU;CqBkFb;;AD1BH;ECRA,erBlBe;EqBmBf,sBrBnBe;CoB4Bd;;AlB3DD;EmBqDE,YrB1DW;EqB2DX,0BrBvBa;EqBwBb,sBrBxBa;CE/BO;;AmB0DtB;EAEE,gDrB7Ba;CqB8Bd;;AAED;EAEE,erBlCa;EqBmCb,8BAA6B;CAC9B;;AAED;;EAGE,YrB7EW;EqB8EX,0BrB1Ca;EqB2Cb,sBrB3Ca;CqBqDd;;AARC;;EAKI,gDrBlDS;CqBoDZ;;AD1BH;ECRA,erBhBe;EqBiBf,sBrBjBe;CoB0Bd;;AlB3DD;EmBqDE,YrB1DW;EqB2DX,0BrBrBa;EqBsBb,sBrBtBa;CEjCO;;AmB0DtB;EAEE,iDrB3Ba;CqB4Bd;;AAED;EAEE,erBhCa;EqBiCb,8BAA6B;CAC9B;;AAED;;EAGE,YrB7EW;EqB8EX,0BrBxCa;EqByCb,sBrBzCa;CqBmDd;;AARC;;EAKI,iDrBhDS;CqBkDZ;;AD1BH;ECRA,erBnBe;EqBoBf,sBrBpBe;CoB6Bd;;AlB3DD;EmBqDE,erBjDc;EqBkDd,0BrBxBa;EqByBb,sBrBzBa;CE9BO;;AmB0DtB;EAEE,gDrB9Ba;CqB+Bd;;AAED;EAEE,erBnCa;EqBoCb,8BAA6B;CAC9B;;AAED;;EAGE,erBpEc;EqBqEd,0BrB3Ca;EqB4Cb,sBrB5Ca;CqBsDd;;AARC;;EAKI,gDrBnDS;CqBqDZ;;AD1BH;ECRA,erBrBe;EqBsBf,sBrBtBe;CoB+Bd;;AlB3DD;EmBqDE,YrB1DW;EqB2DX,0BrB1Ba;EqB2Bb,sBrB3Ba;CE5BO;;AmB0DtB;EAEE,gDrBhCa;CqBiCd;;AAED;EAEE,erBrCa;EqBsCb,8BAA6B;CAC9B;;AAED;;EAGE,YrB7EW;EqB8EX,0BrB7Ca;EqB8Cb,sBrB9Ca;CqBwDd;;AARC;;EAKI,gDrBrDS;CqBuDZ;;AD1BH;ECRA,erBrDgB;EqBsDhB,sBrBtDgB;CoB+Df;;AlB3DD;EmBqDE,erBjDc;EqBkDd,0BrB1Dc;EqB2Dd,sBrB3Dc;CEIM;;AmB0DtB;EAEE,kDrBhEc;CqBiEf;;AAED;EAEE,erBrEc;EqBsEd,8BAA6B;CAC9B;;AAED;;EAGE,erBpEc;EqBqEd,0BrB7Ec;EqB8Ed,sBrB9Ec;CqBwFf;;AARC;;EAKI,kDrBrFU;CqBuFb;;AD1BH;ECRA,erB9CgB;EqB+ChB,sBrB/CgB;CoBwDf;;AlB3DD;EmBqDE,YrB1DW;EqB2DX,0BrBnDc;EqBoDd,sBrBpDc;CEHM;;AmB0DtB;EAEE,+CrBzDc;CqB0Df;;AAED;EAEE,erB9Dc;EqB+Dd,8BAA6B;CAC9B;;AAED;;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BoGZ;;AAQL;EAEI,mB5BwZ+C;C4BvZhD;;AAHH;EAOM,wJb3GqI;Ca4GtI;;AARL;EAaM,yC5BzHW;C4B0HZ;;AASL;EACE,sBAA2D;CAiC5D;;AAlCD;EAKM,eAAqD;EACrD,e5BgY+E;E4B/X/E,oBAAmB;EACnB,sB5B+X4E;C4B9X7E;;AATL;EAYM,yBAA0I;EAC1I,2BAA+G;EAC/G,wB5B0XiI;E4BzXjI,yB5ByXiI;E4BxXjI,0B5B3KY;E4B4KZ,sB5BsX4E;EiBxiB5E,kJjB6f+H;EiB7f/H,0IjB6f+H;EiB7f/H,+KjB6f+H;C4BzUhI;;AX/KD;EW4JJ;IX3JM,iBAAgB;GW8KjB;C3B8xGJ;;A2BjzGD;EAwBM,uB5BxLS;E4ByLT,uCAA4E;EAA5E,+BAA4E;CAC7E;;AA1BL;EA+BM,yC5BlKW;C4BmKZ;;AAWL;EACE,sBAAqB;EACrB,YAAW;EACX,4B5BoR4F;E4BnR5F,2C5B0KkC;E4BzKlC,iB5ByE+B;E4BxE/B,iB5B6E+B;E4B5E/B,e5B3MgB;E4B4MhB,uBAAsB;EACtB,8M5BmWmI;E4BlWnI,uB5BrNa;E4BsNb,0B5BlNgB;E4BoNd,uB5BkBgC;E4BblC,yBAAgB;EAAhB,sBAAgB;EAAhB,iBAAgB;CAsCjB;;AAxDD;EAqBI,sB5BuPsE;E4BtPtE,WAAU;EAIR,kD5BkPoE;C4BtOvE;;AAtCH;EAmCM,e5BvOY;E4BwOZ,uB5B/OS;C4BgPV;;AArCL;EA0CI,aAAY;EACZ,uB5BmIgC;E4BlIhC,uBAAsB;CACvB;;AA7CH;EAgDI,e5BrPc;E4BsPd,0B5B1Pc;C4B2Pf;;AAlDH;EAsDI,WAAU;CACX;;AAGH;EACE,8B5B+N+F;E4B9N/F,qB5B0HkC;E4BzHlC,wB5ByHkC;E4BxHlC,qB5ByHiC;E4BxHjC,oB5BWoD;C4BVrD;;AAED;EACE,6B5B0N+F;E4BzN/F,oB5BuHiC;E4BtHjC,uB5BsHiC;E4BrHjC,mB5BsHgC;E4BrHhC,mB5BEoD;C4BDrD;;AAOD;EACE,mBAAkB;EAClB,sBAAqB;EACrB,YAAW;EACX,4B5BoM4F;E4BnM5F,iBAAgB;CACjB;;AAED;EACE,mBAAkB;EAClB,WAAU;EACV,YAAW;EACX,4B5B4L4F;E4B3L5F,UAAS;EACT,WAAU;CAoBX;;AA1BD;EASI,sB5B4KsE;E4B3KtE,iD5B/Qa;C4BgRd;;AAXH;EAcI,0B5B9Sc;C4B+Sf;;AAfH;EAmBM,kB5BgUQ;C4B/TT;;AApBL;EAwBI,2BAA0B;CAC3B;;AAGH;EACE,mBAAkB;EAClB,OAAM;EACN,SAAQ;EACR,QAAO;EACP,WAAU;EACV,4B5B8J4F;E4B7J5F,0B5BoDkC;E4BnDlC,iB5B7C+B;E4B8C/B,iB5BzC+B;E4B0C/B,e5BjUgB;E4BkUhB,uB5BzUa;E4B0Ub,0B5BtUgB;EOPd,uBP6OgC;C4BoHnC;;AAhCD;EAiBI,mBAAkB;EAClB,OAAM;EACN,SAAQ;EACR,UAAS;EACT,WAAU;EACV,eAAc;EACd,gB5B4IgH;E4B3IhH,0B5BmCgC;E4BlChC,iB5BzD6B;E4B0D7B,e5BjVc;E4BkVd,kBAAiB;ET1VjB,0BnBGc;E4ByVd,qBAAoB;ErB9VpB,mCqB+VgF;CACjF;;AASH;EACE,YAAW;EACX,4BAA+F;EAC/F,WAAU;EACV,8BAA6B;EAC7B,yBAAgB;EAAhB,sBAAgB;EAAhB,iBAAgB;CAkIjB;;AAvID;EAQI,cAAa;CAOd;;AAfH;EAY8B,iE5BrVb;C4BqViE;;AAZlF;EAa8B,iE5BtVb;C4BsViE;;AAblF;EAc8B,iE5BvVb;C4BuViE;;AAdlF;EAkBI,UAAS;CACV;;AAnBH;EAsBI,Y5B2N6C;E4B1N7C,a5B0N6C;E4BzN7C,qBAAyE;ET/XzE,0BnB8Ba;E4BmWb,U5B0N0C;EO7lB1C,oBP8lB6C;EiB5lB3C,6GjB6f+H;E4BxHjI,yBAAgB;EAAhB,iBAAgB;CAKjB;;AXrYC;EWkWJ;IXjWM,iBAAgB;GWoYnB;C3B2vGF;;A2B9xGD;ETvWI,0BnBgmB2E;C4BvN1E;;AAlCL;EAsCI,Y5BoMoC;E4BnMpC,e5BoMqC;E4BnMrC,mBAAkB;EAClB,gB5BmMuC;E4BlMvC,0B5B7Yc;E4B8Yd,0BAAyB;ErBpZzB,oBPulBoC;C4BhMrC;;AA9CH;EAiDI,Y5BgM6C;E4B/L7C,a5B+L6C;EmBxlB7C,0BnB8Ba;E4B6Xb,U5BgM0C;EO7lB1C,oBP8lB6C;EiB5lB3C,6GjB6f+H;E4B9FjI,sBAAgB;EAAhB,iBAAgB;CAKjB;;AX/ZC;EWkWJ;IXjWM,iBAAgB;GW8ZnB;C3B+vGF;;A2B5zGD;ETvWI,0BnBgmB2E;C4B7L1E;;AA5DL;EAgEI,Y5B0KoC;E4BzKpC,e5B0KqC;E4BzKrC,mBAAkB;EAClB,gB5ByKuC;E4BxKvC,0B5Bvac;E4Bwad,0BAAyB;ErB9azB,oBPulBoC;C4BtKrC;;AAxEH;EA2EI,Y5BsK6C;E4BrK7C,a5BqK6C;E4BpK7C,cAAa;EACb,qB5BvD+B;E4BwD/B,oB5BxD+B;EmB9X/B,0BnB8Ba;E4B0Zb,U5BmK0C;EO7lB1C,oBP8lB6C;EiB5lB3C,6GjB6f+H;E4BjEjI,iBAAgB;CAKjB;;AX5bC;EWkWJ;IXjWM,iBAAgB;GW2bnB;C3BmwGF;;A2B71GD;ETvWI,0BnBgmB2E;C4BhK1E;;AAzFL;EA6FI,Y5B6IoC;E4B5IpC,e5B6IqC;E4B5IrC,mBAAkB;EAClB,gB5B4IuC;E4B3IvC,8BAA6B;EAC7B,0BAAyB;EACzB,qBAA4C;CAE7C;;AArGH;EAwGI,0B5B3cc;EONd,oBPulBoC;C4BpIrC;;AA1GH;EA6GI,mBAAkB;EAClB,0B5Bjdc;EONd,oBPulBoC;C4B9HrC;;AAhHH;EAoHM,0B5BrdY;C4Bsdb;;AArHL;EAwHM,gBAAe;CAChB;;AAzHL;EA4HM,0B5B7dY;C4B8db;;AA7HL;EAgIM,gBAAe;CAChB;;AAjIL;EAoIM,0B5BreY;C4Bseb;;AAIL;;;EXhfM,6GjB6f+H;C4BTpI;;AX/eG;EW2eJ;;;IX1eM,iBAAgB;GW8erB;C3B2wGA;;A4BhwHD;EACE,qBAAa;EAAb,cAAa;EACb,oBAAe;EAAf,gBAAe;EACf,gBAAe;EACf,iBAAgB;EAChB,iBAAgB;CACjB;;AAED;EACE,eAAc;EACd,qB7B6qBsC;C6BjqBvC;;A3BXC;E2BEE,sBAAqB;C3BCtB;;A2BNH;EAUI,e7BVc;E6BWd,qBAAoB;EACpB,gBAAe;CAChB;;AAOH;EACE,iC7BxBgB;C6B0DjB;;AAnCD;EAII,oB7By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Cd,qBAAoB;EAEpB,aAAY;EACZ,uBjCtDW;EiCuDX,sBjCpDc;CiCqDf;;AC5DD;EACE,wBlCwvBsC;EkCvvBtC,mBlCsRkD;EkCrRlD,iBlCqO6B;CkCpO9B;;AAIG;E3BoBF,+BPmN+B;EOlN/B,kCPkN+B;CkCrO5B;;AAGD;E3BCF,gCPiO+B;EOhO/B,mCPgO+B;CkChO5B;;AAfL;EACE,wBlCsvBqC;EkCrvBrC,oBlCuRkD;EkCtRlD,iBlCsO6B;CkCrO9B;;AAIG;E3BoBF,+BPoN+B;EOnN/B,kCPmN+B;CkCtO5B;;AAGD;E3BCF,gCPkO+B;EOjO/B,mCPiO+B;CkCjO5B;;ACbP;EACE,sBAAqB;EACrB,sBnCi3BsC;EmCh3BtC,enC62BqC;EmC52BrC,iBnCwR+B;EmCvR/B,eAAc;EACd,mBAAkB;EAClB,oBAAmB;EACnB,yBAAwB;E5BTtB,uBP6OgC;CmCvNnC;;AjCVC;EiCEI,sBAAqB;CjCCxB;;AiCdH;EAmBI,cAAa;CACd;;AAIH;EACE,mBAAkB;EAClB,UAAS;CACV;;AAMD;EACE,qBnCo1BsC;EmCn1BtC,oBnCm1BsC;EOv3BpC,qBP03BqC;CmCp1BxC;;AAOC;EChDA,YpCMa;EoCLb,0BpCkCe;CmCed;;AjCnCD;EkCVI,YpCCS;EoCAT,0BAAkC;ClCYrC;;AiC8BD;EChDA,YpCMa;EoCLb,0BpCWgB;CmCsCf;;AjCnCD;EkCVI,YpCCS;EoCAT,0BAAkC;ClCYrC;;AiC8BD;EChDA,YpCMa;EoCLb,0BpCyCe;CmCQd;;AjCnCD;EkCVI,YpCCS;EoCAT,0BAAkC;ClCYrC;;AiC8BD;EChDA,YpCMa;EoCLb,0BpC2Ce;CmCMd;;AjCnCD;EkCVI,YpCCS;EoCAT,0BAAkC;ClCYrC;;AiC8BD;EChDA,epCegB;EoCdhB,0BpCwCe;CmCSd;;AjCnCD;EkCVI,epCUY;EoCTZ,0BAAkC;ClCYrC;;AiC8BD;EChDA,YpCMa;EoCLb,0BpCsCe;CmCWd;;AjCnCD;EkCVI,YpCCS;EoCAT,0BAAkC;ClCYrC;;AiC8BD;EChDA,epCegB;EoCdhB,0BpCMgB;CmC2Cf;;AjCnCD;EkCVI,epCUY;EoCTZ,0BAAkC;ClCYrC;;AiC8BD;EChDA,YpCMa;EoCLb,0BpCagB;CmCoCf;;AjCnCD;EkCVI,YpCCS;EoCAT,0BAAkC;ClCYrC;;AmCnBH;EACE,mBAAoD;EACpD,oBrCoxBsC;EqCnxBtC,0BrCMgB;EOLd,sBP8O+B;CqCzOlC;;A1BmDG;E0B5DJ;IAOI,mBrC+wBoC;GqC7wBvC;CpC8rJA;;AoC5rJD;EACE,iBAAgB;EAChB,gBAAe;E9BTb,iB8BUsB;CACzB;;ACXD;EACE,mBAAkB;EAClB,yBtCq6ByC;EsCp6BzC,oBtCq6BsC;EsCp6BtC,8BAA6C;E/BJ3C,uBP6OgC;CsCvOnC;;AAGD;EAEE,eAAc;CACf;;AAGD;EACE,iBtC6Q+B;CsC5QhC;;AAOD;EACE,oBAAsD;CAUvD;;AAXD;EAKI,mBAAkB;EAClB,OAAM;EACN,SAAQ;EACR,yBtCu4BuC;EsCt4BvC,eAAc;CACf;;AASD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ACXH;EACE;IAAO,4BAAuC;GvC61J7C;EuC51JD;IAAK,yBAAwB;GvC+1J5B;CACF;;AuCl2JD;EACE;IAAO,4BAAuC;GvC61J7C;EuC51JD;IAAK,yBAAwB;GvC+1J5B;CACF;;AuC71JD;EACE,qBAAa;EAAb,cAAa;EACb,axCi7BsC;EwCh7BtC,iBAAgB;EAChB,mBxCg7ByD;EwC/6BzD,0BxCDgB;EOLd,uBP6OgC;CwCpOnC;;AAED;EACE,qBAAa;EAAb,cAAa;EACb,2BAAsB;EAAtB,uBAAsB;EACtB,sBAAuB;EAAvB,wBAAuB;EACvB,YxCZa;EwCab,mBAAkB;EAClB,oBAAmB;EACnB,0BxCce;EiB9BX,4BjB07B4C;CwCx6BjD;;AvBbG;EuBIJ;IvBHM,iBAAgB;GuBYrB;CvCo2JA;;AuCl2JD;ErBiBE,sMAA6I;EqBf7I,2BxC45BsC;CwC35BvC;;AAED;EACE,2DxC+5BoD;EwC/5BpD,mDxC+5BoD;CwC95BrD;;ACjCD;EACE,qBAAa;EAAb,cAAa;EACb,sBAAuB;EAAvB,wBAAuB;CACxB;;AAED;EACE,YAAO;EAAP,QAAO;CACR;;ACHD;EACE,qBAAa;EAAb,cAAa;EACb,2BAAsB;EAAtB,uBAAsB;EAGtB,gBAAe;EACf,iBAAgB;CACjB;;AAQD;EACE,YAAW;EACX,e1CPgB;E0CQhB,oBAAmB;CAapB;;AxCnBC;EwCUE,e1CZc;E0Cad,sBAAqB;EACrB,0B1CpBc;CEWf;;AwCAH;EAaI,e1ChBc;E0CiBd,0B1CxBc;C0CyBf;;AAQH;EACE,mBAAkB;EAClB,eAAc;EACd,yB1C85ByC;E0C55BzC,oB1C+L+B;E0C9L/B,uB1CzCa;E0C0Cb,uC1ChCa;C0C8Dd;;AArCD;EnChCI,gCPuOgC;EOtOhC,iCPsOgC;C0C5LjC;;AAXH;EAcI,iBAAgB;EnChChB,oCPyNgC;EOxNhC,mCPwNgC;C0CvLjC;;AxC1CD;EwC6CE,WAAU;EACV,sBAAqB;CxC3CtB;;AwCuBH;EAyBI,e1CtDc;E0CuDd,qBAAoB;EACpB,uB1C9DW;C0C+DZ;;AA5BH;EAgCI,WAAU;EACV,Y1CpEW;E0CqEX,0B1CxCa;E0CyCb,sB1CzCa;C0C0Cd;;AASH;EAEI,gBAAe;EACf,eAAc;EnCtFd,iBmCuFwB;CAKzB;;AATH;EAOM,oB1CgJ2B;C0C/I5B;;AARL;EAaM,cAAa;CACd;;AAdL;EAmBM,iBAAgB;EAChB,iBAAgB;CACjB;;ACzGH;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCHD;EyCPM,e5B2E0D;E4B1E1D,0BAAyC;CzCS9C;;AyChBD;EAWM,Y3CPO;E2CQP,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;AAdL;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCHD;EyCPM,e5B2E0D;E4B1E1D,0BAAyC;CzCS9C;;AyChBD;EAWM,Y3CPO;E2CQP,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;AAdL;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCHD;EyCPM,e5B2E0D;E4B1E1D,0BAAyC;CzCS9C;;AyChBD;EAWM,Y3CPO;E2CQP,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;AAdL;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCHD;EyCPM,e5B2E0D;E4B1E1D,0BAAyC;CzCS9C;;AyChBD;EAWM,Y3CPO;E2CQP,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;AAdL;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCHD;EyCPM,e5B2E0D;E4B1E1D,0BAAyC;CzCS9C;;AyChBD;EAWM,Y3CPO;E2CQP,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;AAdL;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCHD;EyCPM,e5B2E0D;E4B1E1D,0BAAyC;CzCS9C;;AyChBD;EAWM,Y3CPO;E2CQP,0B5BqE0D;E4BpE1D,sB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","file":"bootstrap.css","sourcesContent":["/*!\n * Bootstrap v4.2.1 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/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",":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 at-rule-no-vendor-prefix, 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 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// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\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 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 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// which have not been made explicitly keyboard-focusable (without tabindex).\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([tabindex]) {\n color: inherit;\n text-decoration: none;\n\n @include hover-focus {\n color: inherit;\n text-decoration: none;\n }\n\n &:focus {\n outline: 0;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n 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}\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\nth {\n // Matches default `` alignment by inheriting from the ``, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\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 border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n 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// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\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; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `

`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding and cancel buttons in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$grays: map-merge(\n (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n ),\n $grays\n);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: map-merge(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n ),\n $colors\n);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$theme-colors: map-merge(\n (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n ),\n $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-prefers-reduced-motion-media-query: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-print-styles: true !default;\n$enable-validation-icons: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$spacers: map-merge(\n (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n ),\n $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$sizes: map-merge(\n (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n ),\n $sizes\n);\n\n\n// Body\n//\n// Settings for the `` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$grid-breakpoints: map-merge(\n (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n ),\n $grid-breakpoints\n);\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints);\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$container-max-widths: map-merge(\n (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n ),\n $container-max-widths\n);\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$rounded-pill: 50rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$embed-responsive-aspect-ratios: join(\n (\n (21 9),\n (16 9),\n (3 4),\n (1 1),\n ),\n $embed-responsive-aspect-ratios\n);\n\n// Fonts\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: ($font-size-base * 1.25) !default;\n$font-size-sm: ($font-size-base * .875) !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: $spacer / 2 !default;\n$headings-font-family: inherit !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: ($font-size-base * 1.25) !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-small-font-size: $small-font-size !default;\n$blockquote-font-size: ($font-size-base * 1.25) !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-bg: transparent !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $gray-300 !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-bg: $gray-900 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($gray-900, 7.5%) !default;\n$table-dark-color: $white !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-level: -9 !default;\n$table-border-level: -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: ($input-btn-font-size * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;\n$input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default;\n\n$input-height-inner-sm: ($input-btn-font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;\n$input-height-sm: calc(#{$input-height-inner-sm} + #{$input-height-border}) !default;\n\n$input-height-inner-lg: ($input-btn-font-size-lg * $input-btn-line-height-lg) + ($input-btn-padding-y-lg * 2) !default;\n$input-height-lg: calc(#{$input-height-inner-lg} + #{$input-height-border}) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-grid-gutter-width: 10px !default;\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter: .5rem !default;\n$custom-control-spacer-x: 1rem !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $input-bg !default;\n\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: none !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: none !default;\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;\n$custom-switch-indicator-size: calc(#{$custom-control-indicator-size} - #{$custom-control-indicator-border-width * 4}) !default;\n\n$custom-select-padding-y: $input-btn-padding-y !default;\n$custom-select-padding-x: $input-btn-padding-x !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight: $input-font-weight !default;\n$custom-select-line-height: $input-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$custom-select-background: $custom-select-indicator no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: $input-height-inner * 3 / 4 + $custom-select-padding-x + $custom-select-indicator-padding !default;\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size: ($input-height-inner / 2) ($input-height-inner / 2) !default;\n\n$custom-select-border-width: $input-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-width: $input-focus-width !default;\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width rgba($custom-select-focus-border-color, .5) !default;\n\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\n$custom-select-font-size-sm: $input-btn-font-size-sm !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\n$custom-select-font-size-lg: $input-btn-font-size-lg !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg: $gray-500 !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-height-inner: $input-height-inner !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-file-disabled-bg: $input-disabled-bg !default;\n\n$custom-file-padding-y: $input-padding-y !default;\n$custom-file-padding-x: $input-padding-x !default;\n$custom-file-line-height: $input-line-height !default;\n$custom-file-font-weight: $input-font-weight !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='#{$form-feedback-icon-valid-color}' 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\"), \"#\", \"%23\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$form-feedback-icon-invalid-color}' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\"), \"#\", \"%23\") !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: calc(#{$dropdown-border-radius} - #{$dropdown-border-width}) !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: $spacer / 2 !default;\n\n\n// Navbar\n\n$navbar-padding-y: $spacer / 2 !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: inherit !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: $grid-gutter-width / 2 !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: $line-height-base !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .25rem !default;\n$toast-font-size: .875rem !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba(0, 0, 0, .1) !default;\n$toast-border-radius: .25rem !default;\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $gray-200 !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: 1rem !default;\n$modal-header-padding-x: 1rem !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl: 1140px !default;\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: ($font-size-base * .75) !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n\n// List group\n\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$carousel-control-next-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Spinners\n\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-border-width: .25em !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Utilities\n\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n\n\n// Printing\n\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","/*!\n * Bootstrap v4.2.1 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/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\", 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\", 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 {\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([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\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}\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}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\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\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\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\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\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-family: inherit;\n font-weight: 500;\n line-height: 1.2;\n color: inherit;\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-break: 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 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 {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\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.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 .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 .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 .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 .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 background-color: transparent;\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 .table {\n background-color: #fff;\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 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: #212529;\n border-color: #32383e;\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: #212529;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #32383e;\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 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 -ms-overflow-style: -ms-autohiding-scrollbar;\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 -ms-overflow-style: -ms-autohiding-scrollbar;\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 -ms-overflow-style: -ms-autohiding-scrollbar;\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 -ms-overflow-style: -ms-autohiding-scrollbar;\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 -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(2.25rem + 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 screen and (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: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\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-top: 0.375rem;\n padding-bottom: 0.375rem;\n margin-bottom: 0;\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.8125rem + 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(2.875rem + 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 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 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.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: 2.25rem;\n background-repeat: no-repeat;\n background-position: center right calc(2.25rem / 4);\n background-size: calc(2.25rem / 2) calc(2.25rem / 2);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' 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}\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 .form-control:valid ~ .valid-feedback,\n.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,\n.form-control.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: 2.25rem;\n background-position: top calc(2.25rem / 4) right calc(2.25rem / 4);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: 3.4375rem;\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' 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\") no-repeat center right 1.75rem/1.125rem 1.125rem;\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 .custom-select:valid ~ .valid-feedback,\n.was-validated .custom-select:valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-feedback,\n.custom-select.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control-file:valid ~ .valid-feedback,\n.was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-feedback,\n.form-control-file.is-valid ~ .valid-tooltip {\n display: block;\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 ~ .valid-feedback,\n.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,\n.custom-control-input.is-valid ~ .valid-tooltip {\n display: block;\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 ~ .valid-feedback,\n.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,\n.custom-file-input.is-valid ~ .valid-tooltip {\n display: block;\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 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.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: 2.25rem;\n background-repeat: no-repeat;\n background-position: center right calc(2.25rem / 4);\n background-size: calc(2.25rem / 2) calc(2.25rem / 2);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\");\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 .form-control:invalid ~ .invalid-feedback,\n.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n.form-control.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: 2.25rem;\n background-position: top calc(2.25rem / 4) right calc(2.25rem / 4);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: 3.4375rem;\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\") no-repeat center right 1.75rem/1.125rem 1.125rem;\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 .custom-select:invalid ~ .invalid-feedback,\n.was-validated .custom-select:invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-feedback,\n.custom-select.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control-file:invalid ~ .invalid-feedback,\n.was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-feedback,\n.form-control-file.is-invalid ~ .invalid-tooltip {\n display: block;\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 ~ .invalid-feedback,\n.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,\n.custom-control-input.is-invalid ~ .invalid-tooltip {\n display: block;\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 ~ .invalid-feedback,\n.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,\n.custom-file-input.is-invalid ~ .invalid-tooltip {\n display: block;\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 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 screen and (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 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 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 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 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 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 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 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 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}\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 box-shadow: none;\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 screen and (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 screen and (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::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-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\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:first-child {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.dropdown-item:last-child {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\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: #6c757d;\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 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(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\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(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\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-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(2.875rem + 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.8125rem + 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 > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .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 display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1;\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 {\n color: #6c757d;\n}\n\n.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-repeat: no-repeat;\n background-position: center center;\n background-size: 50% 50%;\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' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 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' 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' 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 screen and (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(2.25rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n background-color: #fff;\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(128, 189, 255, 0.5);\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 opacity: 0;\n}\n\n.custom-select-sm {\n height: calc(1.8125rem + 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(2.875rem + 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(2.25rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(2.25rem + 2px);\n margin: 0;\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 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(2.25rem + 2px);\n padding: 0.375rem 0.75rem;\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: 2.25rem;\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: calc(1rem + 0.4rem);\n padding: 0;\n background-color: transparent;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\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 screen and (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 screen and (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 screen and (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 screen and (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-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\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-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\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 {\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:not(:disabled):not(.disabled) {\n cursor: pointer;\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: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\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 {\n flex-wrap: nowrap;\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 {\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 {\n flex-wrap: nowrap;\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 {\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 {\n flex-wrap: nowrap;\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 {\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 {\n flex-wrap: nowrap;\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 {\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 {\n flex-wrap: nowrap;\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 viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' 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 viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' 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:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n flex: 1 1 auto;\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 color: inherit;\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-header + .list-group .list-group-item:first-child {\n border-top: 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}\n\n.card-img {\n width: 100%;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img-top {\n width: 100%;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img-bottom {\n width: 100%;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck {\n display: flex;\n flex-direction: column;\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n display: flex;\n flex: 1 0 0%;\n flex-direction: column;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group {\n display: flex;\n flex-direction: column;\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\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:first-child {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:first-child .card-img-top,\n .card-group > .card:first-child .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:first-child .card-img-bottom,\n .card-group > .card:first-child .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:last-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:last-child .card-img-top,\n .card-group > .card:last-child .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:last-child .card-img-bottom,\n .card-group > .card:last-child .card-footer {\n border-bottom-left-radius: 0;\n }\n .card-group > .card:only-child {\n border-radius: 0.25rem;\n }\n .card-group > .card:only-child .card-img-top,\n .card-group > .card:only-child .card-header {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n }\n .card-group > .card:only-child .card-img-bottom,\n .card-group > .card:only-child .card-footer {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n }\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) {\n border-radius: 0;\n }\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-header,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-footer {\n border-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 .card {\n overflow: hidden;\n}\n\n.accordion .card:not(:first-of-type) .card-header:first-child {\n border-radius: 0;\n}\n\n.accordion .card:not(:first-of-type):not(:last-of-type) {\n border-bottom: 0;\n border-radius: 0;\n}\n\n.accordion .card:first-of-type {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion .card:last-of-type {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion .card .card-header {\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 display: inline-block;\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: 2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-link:not(:disabled):not(.disabled) {\n cursor: pointer;\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: 1;\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}\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\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\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\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\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\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\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\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\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 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 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 color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media screen and (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: progress-bar-stripes 1s linear infinite;\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}\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 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 margin-bottom: -1px;\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: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item:hover, .list-group-item:focus {\n z-index: 1;\n text-decoration: none;\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-flush .list-group-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n}\n\n.list-group-flush .list-group-item:last-child {\n margin-bottom: -1px;\n}\n\n.list-group-flush:first-child .list-group-item:first-child {\n border-top: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n margin-bottom: 0;\n border-bottom: 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) {\n cursor: pointer;\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 appearance: none;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n max-width: 350px;\n overflow: hidden;\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 border-radius: 0.25rem;\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n backdrop-filter: blur(10px);\n opacity: 0;\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}\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 screen and (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-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - (0.5rem * 2));\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - (0.5rem * 2));\n content: \"\";\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 #e9ecef;\n border-top-left-radius: 0.3rem;\n border-top-right-radius: 0.3rem;\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 align-items: center;\n justify-content: flex-end;\n padding: 1rem;\n border-top: 1px solid #e9ecef;\n border-bottom-right-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.modal-footer > :not(:first-child) {\n margin-left: .25rem;\n}\n\n.modal-footer > :not(:last-child) {\n margin-right: .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-centered {\n min-height: calc(100% - (1.75rem * 2));\n }\n .modal-dialog-centered::before {\n height: calc(100vh - (1.75rem * 2));\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\", 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\", 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) * -1);\n}\n\n.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^=\"top\"] .arrow::before,\n.bs-popover-top .arrow::after,\n.bs-popover-auto[x-placement^=\"top\"] .arrow::after {\n border-width: 0.5rem 0.5rem 0;\n}\n\n.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^=\"top\"] .arrow::before {\n bottom: 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n\n.bs-popover-top .arrow::after,\n.bs-popover-auto[x-placement^=\"top\"] .arrow::after {\n bottom: 1px;\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) * -1);\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.bs-popover-right .arrow::after,\n.bs-popover-auto[x-placement^=\"right\"] .arrow::after {\n border-width: 0.5rem 0.5rem 0.5rem 0;\n}\n\n.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^=\"right\"] .arrow::before {\n left: 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n\n.bs-popover-right .arrow::after,\n.bs-popover-auto[x-placement^=\"right\"] .arrow::after {\n left: 1px;\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) * -1);\n}\n\n.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::before,\n.bs-popover-bottom .arrow::after,\n.bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\n border-width: 0 0.5rem 0.5rem 0.5rem;\n}\n\n.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::before {\n top: 0;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n\n.bs-popover-bottom .arrow::after,\n.bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\n top: 1px;\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) * -1);\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.bs-popover-left .arrow::after,\n.bs-popover-auto[x-placement^=\"left\"] .arrow::after {\n border-width: 0.5rem 0 0.5rem 0.5rem;\n}\n\n.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^=\"left\"] .arrow::before {\n right: 0;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n\n.bs-popover-left .arrow::after,\n.bs-popover-auto[x-placement^=\"left\"] .arrow::after {\n right: 1px;\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 color: inherit;\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 screen and (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: 0s 0.6s opacity;\n}\n\n@media screen and (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 screen and (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: transparent no-repeat center center;\n background-size: 100% 100%;\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' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%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' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-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 screen and (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: spinner-border .75s linear infinite;\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 }\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: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\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 {\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-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-3by4::before {\n padding-top: 133.333333%;\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.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 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.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\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-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/*# sourceMappingURL=bootstrap.css.map */","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n &:hover { @content; }\n}\n\n@mixin hover-focus {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n","// stylelint-disable declaration-no-important, selector-list-comma-newline-after\n\n//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1, .h1 { font-size: $h1-font-size; }\nh2, .h2 { font-size: $h2-font-size; }\nh3, .h3 { font-size: $h3-font-size; }\nh4, .h4 { font-size: $h4-font-size; }\nh5, .h5 { font-size: $h5-font-size; }\nh6, .h6 { font-size: $h6-font-size; }\n\n.lead {\n font-size: $lead-font-size;\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n font-size: $display1-size;\n font-weight: $display1-weight;\n line-height: $display-line-height;\n}\n.display-2 {\n font-size: $display2-size;\n font-weight: $display2-weight;\n line-height: $display-line-height;\n}\n.display-3 {\n font-size: $display3-size;\n font-weight: $display3-weight;\n line-height: $display-line-height;\n}\n.display-4 {\n font-size: $display4-size;\n font-weight: $display4-weight;\n line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n margin-top: $hr-margin-y;\n margin-bottom: $hr-margin-y;\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n font-size: $small-font-size;\n font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled;\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $spacer;\n font-size: $blockquote-font-size;\n}\n\n.blockquote-footer {\n display: block;\n font-size: $blockquote-small-font-size;\n color: $blockquote-small-color;\n\n &::before {\n content: \"\\2014\\00A0\"; // em dash, nbsp\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n","// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all ``s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n @include img-fluid;\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n padding: $thumbnail-padding;\n background-color: $thumbnail-bg;\n border: $thumbnail-border-width solid $thumbnail-border-color;\n @include border-radius($thumbnail-border-radius);\n @include box-shadow($thumbnail-box-shadow);\n\n // Keep them at most 100% wide\n @include img-fluid;\n}\n\n//\n// Figures\n//\n\n.figure {\n // Ensures the caption's text aligns with the image.\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: $spacer / 2;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: $figure-caption-font-size;\n color: $figure-caption-color;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size.\n\n// stylelint-disable indentation, media-query-list-comma-newline-after\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n background-image: url($file-1x);\n\n // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\n // but doesn't convert dppx=>dpi.\n // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\n // Compatibility info: https://caniuse.com/#feat=css-media-resolution\n @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\n only screen and (min-resolution: 2dppx) { // Standardized\n background-image: url($file-2x);\n background-size: $width-1x $height-1x;\n }\n}\n","// Single side border-radius\n\n@mixin border-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-radius: $radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n","// Inline code\ncode {\n font-size: $code-font-size;\n color: $code-color;\n word-break: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n font-size: $kbd-font-size;\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n @include box-shadow($kbd-box-shadow);\n\n kbd {\n padding: 0;\n font-size: 100%;\n font-weight: $nested-kbd-font-weight;\n @include box-shadow(none);\n }\n}\n\n// Blocks of code\npre {\n display: block;\n font-size: $code-font-size;\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: $pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n .container-fluid {\n @include make-container();\n }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col#{$infix}-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","//\n// Basic Bootstrap table\n//\n\n.table {\n width: 100%;\n margin-bottom: $spacer;\n background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n th,\n td {\n padding: $table-cell-padding;\n vertical-align: top;\n border-top: $table-border-width solid $table-border-color;\n }\n\n thead th {\n vertical-align: bottom;\n border-bottom: (2 * $table-border-width) solid $table-border-color;\n }\n\n tbody + tbody {\n border-top: (2 * $table-border-width) solid $table-border-color;\n }\n\n .table {\n background-color: $body-bg;\n }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n th,\n td {\n padding: $table-cell-padding-sm;\n }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n\n.table-bordered {\n border: $table-border-width solid $table-border-color;\n\n th,\n td {\n border: $table-border-width solid $table-border-color;\n }\n\n thead {\n th,\n td {\n border-bottom-width: 2 * $table-border-width;\n }\n }\n}\n\n.table-borderless {\n th,\n td,\n thead th,\n tbody + tbody {\n border: 0;\n }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-accent-bg;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n tbody tr {\n @include hover {\n background-color: $table-hover-bg;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n @include table-row-variant($color, theme-color-level($color, $table-bg-level), theme-color-level($color, $table-border-level));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Dark styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.table {\n .thead-dark {\n th {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n border-color: $table-dark-border-color;\n }\n }\n\n .thead-light {\n th {\n color: $table-head-color;\n background-color: $table-head-bg;\n border-color: $table-border-color;\n }\n }\n}\n\n.table-dark {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n\n th,\n td,\n thead th {\n border-color: $table-dark-border-color;\n }\n\n &.table-bordered {\n border: 0;\n }\n\n &.table-striped {\n tbody tr:nth-of-type(odd) {\n background-color: $table-dark-accent-bg;\n }\n }\n\n &.table-hover {\n tbody tr {\n @include hover {\n background-color: $table-dark-hover-bg;\n }\n }\n }\n}\n\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n.table-responsive {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar; // See https://github.com/twbs/bootstrap/pull/10057\n\n // Prevent double border on horizontal scroll due to use of `display: block;`\n > .table-bordered {\n border: 0;\n }\n }\n }\n }\n}\n","// Tables\n\n@mixin table-row-variant($state, $background, $border: null) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table-#{$state} {\n &,\n > th,\n > td {\n background-color: $background;\n }\n\n @if $border != null {\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $border;\n }\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover {\n $hover-background: darken($background, 5%);\n\n .table-#{$state} {\n @include hover {\n background-color: $hover-background;\n\n > td,\n > th {\n background-color: $hover-background;\n }\n }\n }\n }\n}\n","// Bootstrap functions\n//\n// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.\n\n// Ascending\n// Used to evaluate Sass maps like our grid breakpoints.\n@mixin _assert-ascending($map, $map-name) {\n $prev-key: null;\n $prev-num: null;\n @each $key, $num in $map {\n @if $prev-num == null or unit($num) == \"%\" {\n // Do nothing\n } @else if not comparable($prev-num, $num) {\n @warn \"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n } @else if $prev-num >= $num {\n @warn \"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n }\n $prev-key: $key;\n $prev-num: $num;\n }\n}\n\n// Starts at zero\n// Another grid mixin that ensures the min-width of the lowest breakpoint starts at 0.\n@mixin _assert-starts-at-zero($map) {\n $values: map-values($map);\n $first-value: nth($values, 1);\n @if $first-value != 0 {\n @warn \"First breakpoint in `$grid-breakpoints` must start at 0, but starts at #{$first-value}.\";\n }\n}\n\n// Replace `$search` with `$replace` in `$string`\n// Used on our SVG icon backgrounds for custom forms.\n//\n// @author Hugo Giraudel\n// @param {String} $string - Initial string\n// @param {String} $search - Substring to replace\n// @param {String} $replace ('') - New value\n// @return {String} - Updated string\n@function str-replace($string, $search, $replace: \"\") {\n $index: str-index($string, $search);\n\n @if $index {\n @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n }\n\n @return $string;\n}\n\n// Color contrast\n@function color-yiq($color, $dark: $yiq-text-dark, $light: $yiq-text-light) {\n $r: red($color);\n $g: green($color);\n $b: blue($color);\n\n $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;\n\n @if ($yiq >= $yiq-contrasted-threshold) {\n @return $dark;\n } @else {\n @return $light;\n }\n}\n\n// Retrieve color Sass maps\n@function color($key: \"blue\") {\n @return map-get($colors, $key);\n}\n\n@function theme-color($key: \"primary\") {\n @return map-get($theme-colors, $key);\n}\n\n@function gray($key: \"100\") {\n @return map-get($grays, $key);\n}\n\n// Request a theme color level\n@function theme-color-level($color-name: \"primary\", $level: 0) {\n $color: theme-color($color-name);\n $color-base: if($level > 0, $black, $white);\n $level: abs($level);\n\n @return mix($color-base, $color, $level * $theme-color-interval);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Textual form controls\n//\n\n.form-control {\n display: block;\n width: 100%;\n height: $input-height;\n padding: $input-padding-y $input-padding-x;\n font-size: $input-font-size;\n font-weight: $input-font-weight;\n line-height: $input-line-height;\n color: $input-color;\n background-color: $input-bg;\n background-clip: padding-box;\n border: $input-border-width solid $input-border-color;\n\n // Note: This has no effect on `s in CSS.\n @if $enable-rounded {\n // Manually use the if/else instead of the mixin to account for iOS override\n border-radius: $input-border-radius;\n } @else {\n // Otherwise undo the iOS default\n border-radius: 0;\n }\n\n @include box-shadow($input-box-shadow);\n @include transition($input-transition);\n\n // Unstyle the caret on ` receives focus\n // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n // match the appearance of the native widget.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n padding-top: calc(#{$input-padding-y} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y} + #{$input-border-width});\n margin-bottom: 0; // Override the `
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:L,popperConfig:null},K={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},X=function(){function t(t,e){if("undefined"==typeof n)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var i=t.prototype;return i.enable=function(){this._isEnabled=!0},i.disable=function(){this._isEnabled=!1},i.toggleEnabled=function(){this._isEnabled=!this._isEnabled},i.toggle=function(t){if(this._isEnabled)if(t){var n=this.constructor.DATA_KEY,i=e(t.currentTarget).data(n);i||(i=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(n,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)}else{if(e(this.getTipElement()).hasClass("show"))return void this._leave(null,this);this._enter(null,this)}},i.dispose=function(){clearTimeout(this._timeout),e.removeData(this.element,this.constructor.DATA_KEY),e(this.element).off(this.constructor.EVENT_KEY),e(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&e(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},i.show=function(){var t=this;if("none"===e(this.element).css("display"))throw new Error("Please use show on visible elements");var i=e.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){e(this.element).trigger(i);var o=a.findShadowRoot(this.element),s=e.contains(null!==o?o:this.element.ownerDocument.documentElement,this.element);if(i.isDefaultPrevented()||!s)return;var r=this.getTipElement(),l=a.getUID(this.constructor.NAME);r.setAttribute("id",l),this.element.setAttribute("aria-describedby",l),this.setContent(),this.config.animation&&e(r).addClass("fade");var c="function"==typeof this.config.placement?this.config.placement.call(this,r,this.element):this.config.placement,h=this._getAttachment(c);this.addAttachmentClass(h);var u=this._getContainer();e(r).data(this.constructor.DATA_KEY,this),e.contains(this.element.ownerDocument.documentElement,this.tip)||e(r).appendTo(u),e(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new n(this.element,r,this._getPopperConfig(h)),e(r).addClass("show"),"ontouchstart"in document.documentElement&&e(document.body).children().on("mouseover",null,e.noop);var d=function(){t.config.animation&&t._fixTransition();var n=t._hoverState;t._hoverState=null,e(t.element).trigger(t.constructor.Event.SHOWN),"out"===n&&t._leave(null,t)};if(e(this.tip).hasClass("fade")){var f=a.getTransitionDurationFromElement(this.tip);e(this.tip).one(a.TRANSITION_END,d).emulateTransitionEnd(f)}else d()}},i.hide=function(t){var n=this,i=this.getTipElement(),o=e.Event(this.constructor.Event.HIDE),s=function(){"show"!==n._hoverState&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),e(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),t&&t()};if(e(this.element).trigger(o),!o.isDefaultPrevented()){if(e(i).removeClass("show"),"ontouchstart"in document.documentElement&&e(document.body).children().off("mouseover",null,e.noop),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,e(this.tip).hasClass("fade")){var r=a.getTransitionDurationFromElement(i);e(i).one(a.TRANSITION_END,s).emulateTransitionEnd(r)}else s();this._hoverState=""}},i.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},i.isWithContent=function(){return Boolean(this.getTitle())},i.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-tooltip-"+t)},i.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},i.setContent=function(){var t=this.getTipElement();this.setElementContent(e(t.querySelectorAll(".tooltip-inner")),this.getTitle()),e(t).removeClass("fade show")},i.setElementContent=function(t,n){"object"!=typeof n||!n.nodeType&&!n.jquery?this.config.html?(this.config.sanitize&&(n=Q(n,this.config.whiteList,this.config.sanitizeFn)),t.html(n)):t.text(n):this.config.html?e(n).parent().is(t)||t.empty().append(n):t.text(e(n).text())},i.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},i._getPopperConfig=function(t){var e=this;return s({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}},this.config.popperConfig)},i._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=s({},e.offsets,t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},i._getContainer=function(){return!1===this.config.container?document.body:a.isElement(this.config.container)?e(this.config.container):e(document).find(this.config.container)},i._getAttachment=function(t){return V[t.toUpperCase()]},i._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(n){if("click"===n)e(t.element).on(t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==n){var i="hover"===n?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,o="hover"===n?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;e(t.element).on(i,t.config.selector,(function(e){return t._enter(e)})).on(o,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t.element&&t.hide()},e(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=s({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},i._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},i._enter=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e(n.getTipElement()).hasClass("show")||"show"===n._hoverState?n._hoverState="show":(clearTimeout(n._timeout),n._hoverState="show",n.config.delay&&n.config.delay.show?n._timeout=setTimeout((function(){"show"===n._hoverState&&n.show()}),n.config.delay.show):n.show())},i._leave=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusout"===t.type?"focus":"hover"]=!1),n._isWithActiveTrigger()||(clearTimeout(n._timeout),n._hoverState="out",n.config.delay&&n.config.delay.hide?n._timeout=setTimeout((function(){"out"===n._hoverState&&n.hide()}),n.config.delay.hide):n.hide())},i._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},i._getConfig=function(t){var n=e(this.element).data();return Object.keys(n).forEach((function(t){-1!==M.indexOf(t)&&delete n[t]})),"number"==typeof(t=s({},this.constructor.Default,n,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),a.typeCheckConfig(B,t,this.constructor.DefaultType),t.sanitize&&(t.template=Q(t.template,t.whiteList,t.sanitizeFn)),t},i._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},i._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(U);null!==n&&n.length&&t.removeClass(n.join(""))},i._handlePopperPlacementChange=function(t){this.tip=t.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},i._fixTransition=function(){var t=this.getTipElement(),n=this.config.animation;null===t.getAttribute("x-placement")&&(e(t).removeClass("fade"),this.config.animation=!1,this.hide(),this.show(),this.config.animation=n)},t._jQueryInterface=function(n){return this.each((function(){var i=e(this).data("bs.tooltip"),o="object"==typeof n&&n;if((i||!/dispose|hide/.test(n))&&(i||(i=new t(this,o),e(this).data("bs.tooltip",i)),"string"==typeof n)){if("undefined"==typeof i[n])throw new TypeError('No method named "'+n+'"');i[n]()}}))},o(t,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"Default",get:function(){return z}},{key:"NAME",get:function(){return B}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return K}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return W}}]),t}();e.fn[B]=X._jQueryInterface,e.fn[B].Constructor=X,e.fn[B].noConflict=function(){return e.fn[B]=H,X._jQueryInterface};var Y="popover",$=e.fn[Y],J=new RegExp("(^|\\s)bs-popover\\S+","g"),G=s({},X.Default,{placement:"right",trigger:"click",content:"",template:''}),Z=s({},X.DefaultType,{content:"(string|element|function)"}),tt={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},et=function(t){var n,i;function s(){return t.apply(this,arguments)||this}i=t,(n=s).prototype=Object.create(i.prototype),n.prototype.constructor=n,n.__proto__=i;var r=s.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-popover-"+t)},r.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},r.setContent=function(){var t=e(this.getTipElement());this.setElementContent(t.find(".popover-header"),this.getTitle());var n=this._getContent();"function"==typeof n&&(n=n.call(this.element)),this.setElementContent(t.find(".popover-body"),n),t.removeClass("fade show")},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(J);null!==n&&n.length>0&&t.removeClass(n.join(""))},s._jQueryInterface=function(t){return this.each((function(){var n=e(this).data("bs.popover"),i="object"==typeof t?t:null;if((n||!/dispose|hide/.test(t))&&(n||(n=new s(this,i),e(this).data("bs.popover",n)),"string"==typeof t)){if("undefined"==typeof n[t])throw new TypeError('No method named "'+t+'"');n[t]()}}))},o(s,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"Default",get:function(){return G}},{key:"NAME",get:function(){return Y}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return tt}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return Z}}]),s}(X);e.fn[Y]=et._jQueryInterface,e.fn[Y].Constructor=et,e.fn[Y].noConflict=function(){return e.fn[Y]=$,et._jQueryInterface};var nt="scrollspy",it=e.fn[nt],ot={offset:10,method:"auto",target:""},st={offset:"number",method:"string",target:"(string|element)"},rt=function(){function t(t,n){var i=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(n),this._selector=this._config.target+" .nav-link,"+this._config.target+" .list-group-item,"+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,e(this._scrollElement).on("scroll.bs.scrollspy",(function(t){return i._process(t)})),this.refresh(),this._process()}var n=t.prototype;return n.refresh=function(){var t=this,n=this._scrollElement===this._scrollElement.window?"offset":"position",i="auto"===this._config.method?n:this._config.method,o="position"===i?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map((function(t){var n,s=a.getSelectorFromElement(t);if(s&&(n=document.querySelector(s)),n){var r=n.getBoundingClientRect();if(r.width||r.height)return[e(n)[i]().top+o,s]}return null})).filter((function(t){return t})).sort((function(t,e){return t[0]-e[0]})).forEach((function(e){t._offsets.push(e[0]),t._targets.push(e[1])}))},n.dispose=function(){e.removeData(this._element,"bs.scrollspy"),e(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},n._getConfig=function(t){if("string"!=typeof(t=s({},ot,"object"==typeof t&&t?t:{})).target&&a.isElement(t.target)){var n=e(t.target).attr("id");n||(n=a.getUID(nt),e(t.target).attr("id",n)),t.target="#"+n}return a.typeCheckConfig(nt,t,st),t},n._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},n._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},n._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},n._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t li > .active":".active";i=(i=e.makeArray(e(o).find(r)))[i.length-1]}var l=e.Event("hide.bs.tab",{relatedTarget:this._element}),c=e.Event("show.bs.tab",{relatedTarget:i});if(i&&e(i).trigger(l),e(this._element).trigger(c),!c.isDefaultPrevented()&&!l.isDefaultPrevented()){s&&(n=document.querySelector(s)),this._activate(this._element,o);var h=function(){var n=e.Event("hidden.bs.tab",{relatedTarget:t._element}),o=e.Event("shown.bs.tab",{relatedTarget:i});e(i).trigger(n),e(t._element).trigger(o)};n?this._activate(n,n.parentNode,h):h()}}},n.dispose=function(){e.removeData(this._element,"bs.tab"),this._element=null},n._activate=function(t,n,i){var o=this,s=(!n||"UL"!==n.nodeName&&"OL"!==n.nodeName?e(n).children(".active"):e(n).find("> li > .active"))[0],r=i&&s&&e(s).hasClass("fade"),l=function(){return o._transitionComplete(t,s,i)};if(s&&r){var c=a.getTransitionDurationFromElement(s);e(s).removeClass("show").one(a.TRANSITION_END,l).emulateTransitionEnd(c)}else l()},n._transitionComplete=function(t,n,i){if(n){e(n).removeClass("active");var o=e(n.parentNode).find("> .dropdown-menu .active")[0];o&&e(o).removeClass("active"),"tab"===n.getAttribute("role")&&n.setAttribute("aria-selected",!1)}if(e(t).addClass("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),a.reflow(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&e(t.parentNode).hasClass("dropdown-menu")){var s=e(t).closest(".dropdown")[0];if(s){var r=[].slice.call(s.querySelectorAll(".dropdown-toggle"));e(r).addClass("active")}t.setAttribute("aria-expanded",!0)}i&&i()},t._jQueryInterface=function(n){return this.each((function(){var i=e(this),o=i.data("bs.tab");if(o||(o=new t(this),i.data("bs.tab",o)),"string"==typeof n){if("undefined"==typeof o[n])throw new TypeError('No method named "'+n+'"');o[n]()}}))},o(t,null,[{key:"VERSION",get:function(){return"4.5.2"}}]),t}();e(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(t){t.preventDefault(),lt._jQueryInterface.call(e(this),"show")})),e.fn.tab=lt._jQueryInterface,e.fn.tab.Constructor=lt,e.fn.tab.noConflict=function(){return e.fn.tab=at,lt._jQueryInterface};var ct=e.fn.toast,ht={animation:"boolean",autohide:"boolean",delay:"number"},ut={animation:!0,autohide:!0,delay:500},dt=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var n=t.prototype;return n.show=function(){var t=this,n=e.Event("show.bs.toast");if(e(this._element).trigger(n),!n.isDefaultPrevented()){this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");var i=function(){t._element.classList.remove("showing"),t._element.classList.add("show"),e(t._element).trigger("shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove("hide"),a.reflow(this._element),this._element.classList.add("showing"),this._config.animation){var o=a.getTransitionDurationFromElement(this._element);e(this._element).one(a.TRANSITION_END,i).emulateTransitionEnd(o)}else i()}},n.hide=function(){if(this._element.classList.contains("show")){var t=e.Event("hide.bs.toast");e(this._element).trigger(t),t.isDefaultPrevented()||this._close()}},n.dispose=function(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),e(this._element).off("click.dismiss.bs.toast"),e.removeData(this._element,"bs.toast"),this._element=null,this._config=null},n._getConfig=function(t){return t=s({},ut,e(this._element).data(),"object"==typeof t&&t?t:{}),a.typeCheckConfig("toast",t,this.constructor.DefaultType),t},n._setListeners=function(){var t=this;e(this._element).on("click.dismiss.bs.toast",'[data-dismiss="toast"]',(function(){return t.hide()}))},n._close=function(){var t=this,n=function(){t._element.classList.add("hide"),e(t._element).trigger("hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){var i=a.getTransitionDurationFromElement(this._element);e(this._element).one(a.TRANSITION_END,n).emulateTransitionEnd(i)}else n()},n._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},t._jQueryInterface=function(n){return this.each((function(){var i=e(this),o=i.data("bs.toast");if(o||(o=new t(this,"object"==typeof n&&n),i.data("bs.toast",o)),"string"==typeof n){if("undefined"==typeof o[n])throw new TypeError('No method named "'+n+'"');o[n](this)}}))},o(t,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"DefaultType",get:function(){return ht}},{key:"Default",get:function(){return ut}}]),t}();e.fn.toast=dt._jQueryInterface,e.fn.toast.Constructor=dt,e.fn.toast.noConflict=function(){return e.fn.toast=ct,dt._jQueryInterface},t.Alert=h,t.Button=d,t.Carousel=b,t.Collapse=C,t.Dropdown=I,t.Modal=P,t.Popover=et,t.Scrollspy=rt,t.Tab=lt,t.Toast=dt,t.Tooltip=X,t.Util=a,Object.defineProperty(t,"__esModule",{value:!0})})); +//# sourceMappingURL=bootstrap.min.js.map \ No newline at end of file diff --git a/public/assets/js/bootstrap/bootstrap.min.js.map b/public/assets/js/bootstrap/bootstrap.min.js.map new file mode 100644 index 0000000..42068b6 --- /dev/null +++ b/public/assets/js/bootstrap/bootstrap.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/src/index.js"],"names":["TRANSITION_END","transitionEndEmulator","duration","_this","this","called","$","one","Util","setTimeout","triggerTransitionEnd","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","getTransitionDurationFromElement","transitionDuration","css","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","obj","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","call","expectedTypes","value","valueType","toString","match","toLowerCase","RegExp","test","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","ShadowRoot","parentNode","root","fn","emulateTransitionEnd","event","special","bindType","delegateType","handle","target","is","handleObj","handler","apply","arguments","NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","Event","CLOSE","CLOSED","CLICK_DATA_API","ClassName","Alert","_element","close","rootElement","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","Constructor","noConflict","DATA_API_KEY","Selector","FOCUS_BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","classList","contains","activeElement","hasAttribute","focus","setAttribute","toggleClass","button","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","window","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","length","direction","off","_objectSpread","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","start","originalEvent","pointerType","clientX","touches","end","clearTimeout","querySelectorAll","e","add","tagName","which","slice","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","indicators","nextIndicator","children","addClass","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","nextElementInterval","parseInt","defaultInterval","action","TypeError","_dataApiClickHandler","slideIndex","carousels","i","len","$carousel","SHOW","SHOWN","HIDE","HIDDEN","Dimension","Collapse","_isTransitioning","_triggerArray","id","toggleList","elem","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","scrollSize","getBoundingClientRect","triggerArrayLength","isTransitioning","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","selectors","$target","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","AttachmentMap","offset","flip","boundary","reference","display","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","body","noop","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","$parentDropdown","placement","offsetConf","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","forEach","htmlElement","handleUpdate","Node","ELEMENT_NODE","appendChild","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","has","_this5","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","_this8","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","rect","left","right","innerWidth","_getScrollbarWidth","_this9","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","elements","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","_this10","CLASS_PREFIX","BSCLS_PREFIX_REGEX","animation","template","title","delay","html","container","fallbackPlacement","AUTO","TOP","RIGHT","BOTTOM","LEFT","HoverState","INSERTED","FOCUSOUT","Trigger","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","empty","append","text","find","eventIn","eventOut","_fixTitle","titleType","key","$tip","tabClass","join","popperData","popperInstance","instance","popper","initConfigAnimation","Popover","_getContent","method","ACTIVATE","SCROLL","OffsetMethod","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","map","targetSelector","targetBCR","height","top","item","sort","a","b","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","$link","parents","node","scrollSpys","$spy","Tab","previous","listElement","itemSelector","nodeName","makeArray","hiddenEvent","active","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","autohide","Toast","withoutTimeout","_close","version"],"mappings":";;;;;m/BAeA,IAAMA,EAAiB,gBAsBvB,SAASC,EAAsBC,GAAU,IAAAC,EAAAC,KACnCC,GAAS,EAYb,OAVAC,EAAEF,MAAMG,IAAIC,EAAKR,eAAgB,WAC/BK,GAAS,IAGXI,WAAW,WACJJ,GACHG,EAAKE,qBAAqBP,IAE3BD,GAEIE,KAcT,IAAMI,EAAO,CAEXR,eAAgB,kBAEhBW,OAJW,SAIJC,GACL,KAEEA,MAvDU,IAuDGC,KAAKC,UACXC,SAASC,eAAeJ,KACjC,OAAOA,GAGTK,uBAZW,SAYYC,GACrB,IAAIC,EAAWD,EAAQE,aAAa,eAEpC,IAAKD,GAAyB,MAAbA,EAAkB,CACjC,IAAME,EAAWH,EAAQE,aAAa,QACtCD,EAAWE,GAAyB,MAAbA,EAAmBA,EAASC,OAAS,GAG9D,OAAOH,GAAYJ,SAASQ,cAAcJ,GAAYA,EAAW,MAGnEK,iCAvBW,SAuBsBN,GAC/B,IAAKA,EACH,OAAO,EAIT,IAAIO,EAAqBnB,EAAEY,GAASQ,IAAI,uBACpCC,EAAkBrB,EAAEY,GAASQ,IAAI,oBAE/BE,EAA0BC,WAAWJ,GACrCK,EAAuBD,WAAWF,GAGxC,OAAKC,GAA4BE,GAKjCL,EAAqBA,EAAmBM,MAAM,KAAK,GACnDJ,EAAkBA,EAAgBI,MAAM,KAAK,GAzFjB,KA2FpBF,WAAWJ,GAAsBI,WAAWF,KAP3C,GAUXK,OA/CW,SA+CJd,GACL,OAAOA,EAAQe,cAGjBvB,qBAnDW,SAmDUQ,GACnBZ,EAAEY,GAASgB,QAAQlC,IAIrBmC,sBAxDW,WAyDT,OAAOC,QAAQpC,IAGjBqC,UA5DW,SA4DDC,GACR,OAAQA,EAAI,IAAMA,GAAKC,UAGzBC,gBAhEW,SAgEKC,EAAeC,EAAQC,GACrC,IAAK,IAAMC,KAAYD,EACrB,GAAIE,OAAOC,UAAUC,eAAeC,KAAKL,EAAaC,GAAW,CAC/D,IAAMK,EAAgBN,EAAYC,GAC5BM,EAAgBR,EAAOE,GACvBO,EAAgBD,GAAS1C,EAAK6B,UAAUa,GAC1C,WAlHIZ,EAkHeY,EAjHtB,GAAGE,SAASJ,KAAKV,GAAKe,MAAM,eAAe,GAAGC,eAmH/C,IAAK,IAAIC,OAAON,GAAeO,KAAKL,GAClC,MAAM,IAAIM,MACLhB,EAAciB,cAAjB,aACWd,EADX,oBACuCO,EADvC,wBAEsBF,EAFtB,MAtHZ,IAAgBX,GA8HdqB,eAlFW,SAkFIzC,GACb,IAAKH,SAAS6C,gBAAgBC,aAC5B,OAAO,KAIT,GAAmC,mBAAxB3C,EAAQ4C,YAKnB,OAAI5C,aAAmB6C,WACd7C,EAIJA,EAAQ8C,WAINxD,EAAKmD,eAAezC,EAAQ8C,YAH1B,KAVP,IAAMC,EAAO/C,EAAQ4C,cACrB,OAAOG,aAAgBF,WAAaE,EAAO,OApG/C3D,EAAE4D,GAAGC,qBAAuBlE,EAC5BK,EAAE8D,MAAMC,QAAQ7D,EAAKR,gBA9Bd,CACLsE,SAAUtE,EACVuE,aAAcvE,EACdwE,OAHK,SAGEJ,GACL,GAAI9D,EAAE8D,EAAMK,QAAQC,GAAGtE,MACrB,OAAOgE,EAAMO,UAAUC,QAAQC,MAAMzE,KAAM0E,aCdnD,IAAMC,EAAsB,QAEtBC,EAAsB,WACtBC,EAAS,IAAiBD,EAE1BE,EAAsB5E,EAAE4D,GAAGa,GAM3BI,EAAQ,CACZC,MAAK,QAAoBH,EACzBI,OAAM,SAAoBJ,EAC1BK,eAAc,QAAWL,EAVC,aAatBM,EACI,QADJA,EAEI,OAFJA,EAGI,OASJC,aACJ,SAAAA,EAAYtE,GACVd,KAAKqF,SAAWvE,6BAWlBwE,MAAAA,SAAMxE,GACJ,IAAIyE,EAAcvF,KAAKqF,SACnBvE,IACFyE,EAAcvF,KAAKwF,gBAAgB1E,IAGjBd,KAAKyF,mBAAmBF,GAE5BG,sBAIhB1F,KAAK2F,eAAeJ,MAGtBK,QAAAA,WACE1F,EAAE2F,WAAW7F,KAAKqF,SAAUT,GAC5B5E,KAAKqF,SAAW,QAKlBG,gBAAAA,SAAgB1E,GACd,IAAMC,EAAWX,EAAKS,uBAAuBC,GACzCgF,GAAa,EAUjB,OARI/E,IACF+E,EAASnF,SAASQ,cAAcJ,IAG7B+E,IACHA,EAAS5F,EAAEY,GAASiF,QAAX,IAAuBZ,GAAmB,IAG9CW,KAGTL,mBAAAA,SAAmB3E,GACjB,IAAMkF,EAAa9F,EAAE6E,MAAMA,EAAMC,OAGjC,OADA9E,EAAEY,GAASgB,QAAQkE,GACZA,KAGTL,eAAAA,SAAe7E,GAAS,IAAAf,EAAAC,KAGtB,GAFAE,EAAEY,GAASmF,YAAYd,GAElBjF,EAAEY,GAASoF,SAASf,GAAzB,CAKA,IAAM9D,EAAqBjB,EAAKgB,iCAAiCN,GAEjEZ,EAAEY,GACCX,IAAIC,EAAKR,eAAgB,SAACoE,GAAD,OAAWjE,EAAKoG,gBAAgBrF,EAASkD,KAClED,qBAAqB1C,QARtBrB,KAAKmG,gBAAgBrF,MAWzBqF,gBAAAA,SAAgBrF,GACdZ,EAAEY,GACCsF,SACAtE,QAAQiD,EAAME,QACdoB,YAKEC,iBAAAA,SAAiBhE,GACtB,OAAOtC,KAAKuG,KAAK,WACf,IAAMC,EAAWtG,EAAEF,MACfyG,EAAaD,EAASC,KAAK7B,GAE1B6B,IACHA,EAAO,IAAIrB,EAAMpF,MACjBwG,EAASC,KAAK7B,EAAU6B,IAGX,UAAXnE,GACFmE,EAAKnE,GAAQtC,WAKZ0G,eAAAA,SAAeC,GACpB,OAAO,SAAU3C,GACXA,GACFA,EAAM4C,iBAGRD,EAAcrB,MAAMtF,gDA/FtB,MApCwB,iBA8I5BE,EAAES,UAAUkG,GACV9B,EAAMG,eAxII,yBA0IVE,EAAMsB,eAAe,IAAItB,IAS3BlF,EAAE4D,GAAGa,GAAoBS,EAAMkB,iBAC/BpG,EAAE4D,GAAGa,GAAMmC,YAAc1B,EACzBlF,EAAE4D,GAAGa,GAAMoC,WAAc,WAEvB,OADA7G,EAAE4D,GAAGa,GAAQG,EACNM,EAAMkB,kBChKf,IAAM3B,EAAsB,SAEtBC,EAAsB,YACtBC,EAAS,IAAiBD,EAC1BoC,EAAsB,YACtBlC,EAAsB5E,EAAE4D,GAAGa,GAE3BQ,EACK,SADLA,EAEK,MAFLA,EAGK,QAGL8B,EACiB,0BADjBA,EAEiB,0BAFjBA,EAGiB,6BAHjBA,EAIiB,UAJjBA,EAKiB,OAGjBlC,EAAQ,CACZG,eAAc,QAAgBL,EAAYmC,EAC1CE,oBAAsB,QAAQrC,EAAYmC,EAApB,QACSnC,EAAYmC,GASvCG,aACJ,SAAAA,EAAYrG,GACVd,KAAKqF,SAAWvE,6BAWlBsG,OAAAA,WACE,IAAIC,GAAqB,EACrBC,GAAiB,EACf/B,EAAcrF,EAAEF,KAAKqF,UAAUU,QACnCkB,GACA,GAEF,GAAI1B,EAAa,CACf,IAAMgC,EAAQvH,KAAKqF,SAASlE,cAAc8F,GAE1C,GAAIM,EAAO,CACT,GAAmB,UAAfA,EAAMC,KACR,GAAID,EAAME,SACRzH,KAAKqF,SAASqC,UAAUC,SAASxC,GACjCkC,GAAqB,MAChB,CACL,IAAMO,EAAgBrC,EAAYpE,cAAc8F,GAE5CW,GACF1H,EAAE0H,GAAe3B,YAAYd,GAKnC,GAAIkC,EAAoB,CACtB,GAAIE,EAAMM,aAAa,aACrBtC,EAAYsC,aAAa,aACzBN,EAAMG,UAAUC,SAAS,aACzBpC,EAAYmC,UAAUC,SAAS,YAC/B,OAEFJ,EAAME,SAAWzH,KAAKqF,SAASqC,UAAUC,SAASxC,GAClDjF,EAAEqH,GAAOzF,QAAQ,UAGnByF,EAAMO,QACNR,GAAiB,GAIjBA,GACFtH,KAAKqF,SAAS0C,aAAa,gBACxB/H,KAAKqF,SAASqC,UAAUC,SAASxC,IAGlCkC,GACFnH,EAAEF,KAAKqF,UAAU2C,YAAY7C,MAIjCS,QAAAA,WACE1F,EAAE2F,WAAW7F,KAAKqF,SAAUT,GAC5B5E,KAAKqF,SAAW,QAKXiB,iBAAAA,SAAiBhE,GACtB,OAAOtC,KAAKuG,KAAK,WACf,IAAIE,EAAOvG,EAAEF,MAAMyG,KAAK7B,GAEnB6B,IACHA,EAAO,IAAIU,EAAOnH,MAClBE,EAAEF,MAAMyG,KAAK7B,EAAU6B,IAGV,WAAXnE,GACFmE,EAAKnE,gDAxET,MAxCwB,iBA4H5BpC,EAAES,UACCkG,GAAG9B,EAAMG,eAAgB+B,EAA6B,SAACjD,GACtDA,EAAM4C,iBAEN,IAAIqB,EAASjE,EAAMK,OAEdnE,EAAE+H,GAAQ/B,SAASf,KACtB8C,EAAS/H,EAAE+H,GAAQlC,QAAQkB,IAG7BE,EAAOb,iBAAiB1D,KAAK1C,EAAE+H,GAAS,YAEzCpB,GAAG9B,EAAMmC,oBAAqBD,EAA6B,SAACjD,GAC3D,IAAMiE,EAAS/H,EAAE8D,EAAMK,QAAQ0B,QAAQkB,GAAiB,GACxD/G,EAAE+H,GAAQD,YAAY7C,EAAiB,eAAe/B,KAAKY,EAAMwD,SASrEtH,EAAE4D,GAAGa,GAAQwC,EAAOb,iBACpBpG,EAAE4D,GAAGa,GAAMmC,YAAcK,EACzBjH,EAAE4D,GAAGa,GAAMoC,WAAa,WAEtB,OADA7G,EAAE4D,GAAGa,GAAQG,EACNqC,EAAOb,kBCvJhB,IAAM3B,EAAyB,WAEzBC,EAAyB,cACzBC,EAAS,IAAoBD,EAC7BoC,EAAyB,YACzBlC,EAAyB5E,EAAE4D,GAAGa,GAM9BuD,EAAU,CACdC,SAAW,IACXC,UAAW,EACXC,OAAW,EACXC,MAAW,QACXC,MAAW,EACXC,OAAW,GAGPC,EAAc,CAClBN,SAAW,mBACXC,SAAW,UACXC,MAAW,mBACXC,MAAW,mBACXC,KAAW,UACXC,MAAW,WAGPE,EACO,OADPA,EAEO,OAFPA,EAGO,OAHPA,EAIO,QAGP3D,EAAQ,CACZ4D,MAAK,QAAoB9D,EACzB+D,KAAI,OAAoB/D,EACxBgE,QAAO,UAAoBhE,EAC3BiE,WAAU,aAAoBjE,EAC9BkE,WAAU,aAAoBlE,EAC9BmE,WAAU,aAAoBnE,EAC9BoE,UAAS,YAAoBpE,EAC7BqE,SAAQ,WAAoBrE,EAC5BsE,YAAW,cAAoBtE,EAC/BuE,UAAS,YAAoBvE,EAC7BwE,WAAU,YAAmBxE,EAC7ByE,cAAa,OAAWzE,EAAYmC,EACpC9B,eAAc,QAAWL,EAAYmC,GAGjC7B,EACY,WADZA,EAEY,SAFZA,EAGY,QAHZA,EAIY,sBAJZA,EAKY,qBALZA,EAMY,qBANZA,EAOY,qBAPZA,EASY,gBAGZ8B,EACU,UADVA,GAEU,wBAFVA,GAGU,iBAHVA,GAIU,qBAJVA,GAKU,2CALVA,GAMU,uBANVA,GAOU,gCAPVA,GAQU,yBAGVsC,GAAc,CAClBC,MAAQ,QACRC,IAAQ,OAQJC,cACJ,SAAAA,EAAY5I,EAASwB,GACnBtC,KAAK2J,OAAiB,KACtB3J,KAAK4J,UAAiB,KACtB5J,KAAK6J,eAAiB,KACtB7J,KAAK8J,WAAiB,EACtB9J,KAAK+J,YAAiB,EACtB/J,KAAKgK,aAAiB,KACtBhK,KAAKiK,YAAiB,EACtBjK,KAAKkK,YAAiB,EAEtBlK,KAAKmK,QAAqBnK,KAAKoK,WAAW9H,GAC1CtC,KAAKqF,SAAqBvE,EAC1Bd,KAAKqK,mBAAqBrK,KAAKqF,SAASlE,cAAc8F,IACtDjH,KAAKsK,gBAAqB,iBAAkB3J,SAAS6C,iBAA8C,EAA3B+G,UAAUC,eAClFxK,KAAKyK,cAAqBzI,QAAQ0I,OAAOC,cAAgBD,OAAOE,gBAEhE5K,KAAK6K,gDAePC,KAAAA,WACO9K,KAAK+J,YACR/J,KAAK+K,OAAOrC,MAIhBsC,gBAAAA,YAGOrK,SAASsK,QACX/K,EAAEF,KAAKqF,UAAUf,GAAG,aAAsD,WAAvCpE,EAAEF,KAAKqF,UAAU/D,IAAI,eACzDtB,KAAK8K,UAITI,KAAAA,WACOlL,KAAK+J,YACR/J,KAAK+K,OAAOrC,MAIhBJ,MAAAA,SAAMtE,GACCA,IACHhE,KAAK8J,WAAY,GAGf9J,KAAKqF,SAASlE,cAAc8F,MAC9B7G,EAAKE,qBAAqBN,KAAKqF,UAC/BrF,KAAKmL,OAAM,IAGbC,cAAcpL,KAAK4J,WACnB5J,KAAK4J,UAAY,QAGnBuB,MAAAA,SAAMnH,GACCA,IACHhE,KAAK8J,WAAY,GAGf9J,KAAK4J,YACPwB,cAAcpL,KAAK4J,WACnB5J,KAAK4J,UAAY,MAGf5J,KAAKmK,QAAQhC,WAAanI,KAAK8J,YACjC9J,KAAK4J,UAAYyB,aACd1K,SAAS2K,gBAAkBtL,KAAKgL,gBAAkBhL,KAAK8K,MAAMS,KAAKvL,MACnEA,KAAKmK,QAAQhC,cAKnBqD,GAAAA,SAAGC,GAAO,IAAA1L,EAAAC,KACRA,KAAK6J,eAAiB7J,KAAKqF,SAASlE,cAAc8F,IAElD,IAAMyE,EAAc1L,KAAK2L,cAAc3L,KAAK6J,gBAE5C,KAAI4B,EAAQzL,KAAK2J,OAAOiC,OAAS,GAAKH,EAAQ,GAI9C,GAAIzL,KAAK+J,WACP7J,EAAEF,KAAKqF,UAAUlF,IAAI4E,EAAM6D,KAAM,WAAA,OAAM7I,EAAKyL,GAAGC,SADjD,CAKA,GAAIC,IAAgBD,EAGlB,OAFAzL,KAAKsI,aACLtI,KAAKmL,QAIP,IAAMU,EAAoBH,EAARD,EACd/C,EACAA,EAEJ1I,KAAK+K,OAAOc,EAAW7L,KAAK2J,OAAO8B,QAGrC7F,QAAAA,WACE1F,EAAEF,KAAKqF,UAAUyG,IAAIjH,GACrB3E,EAAE2F,WAAW7F,KAAKqF,SAAUT,GAE5B5E,KAAK2J,OAAqB,KAC1B3J,KAAKmK,QAAqB,KAC1BnK,KAAKqF,SAAqB,KAC1BrF,KAAK4J,UAAqB,KAC1B5J,KAAK8J,UAAqB,KAC1B9J,KAAK+J,WAAqB,KAC1B/J,KAAK6J,eAAqB,KAC1B7J,KAAKqK,mBAAqB,QAK5BD,WAAAA,SAAW9H,GAMT,OALAA,EAAMyJ,EAAA,GACD7D,EACA5F,GAELlC,EAAKgC,gBAAgBuC,EAAMrC,EAAQmG,GAC5BnG,KAGT0J,aAAAA,WACE,IAAMC,EAAYxL,KAAKyL,IAAIlM,KAAKkK,aAEhC,KAAI+B,GAxNuB,IAwN3B,CAIA,IAAMJ,EAAYI,EAAYjM,KAAKkK,YAGnB,EAAZ2B,GACF7L,KAAKkL,OAIHW,EAAY,GACd7L,KAAK8K,WAITD,mBAAAA,WAAqB,IAAAsB,EAAAnM,KACfA,KAAKmK,QAAQ/B,UACflI,EAAEF,KAAKqF,UACJwB,GAAG9B,EAAM8D,QAAS,SAAC7E,GAAD,OAAWmI,EAAKC,SAASpI,KAGrB,UAAvBhE,KAAKmK,QAAQ7B,OACfpI,EAAEF,KAAKqF,UACJwB,GAAG9B,EAAM+D,WAAY,SAAC9E,GAAD,OAAWmI,EAAK7D,MAAMtE,KAC3C6C,GAAG9B,EAAMgE,WAAY,SAAC/E,GAAD,OAAWmI,EAAKhB,MAAMnH,KAGhDhE,KAAKqM,6BAGPA,wBAAAA,WAA0B,IAAAC,EAAAtM,KACxB,GAAKA,KAAKsK,gBAAV,CAIA,IAAMiC,EAAQ,SAACvI,GACTsI,EAAK7B,eAAiBlB,GAAYvF,EAAMwI,cAAcC,YAAYnJ,eACpEgJ,EAAKrC,YAAcjG,EAAMwI,cAAcE,QAC7BJ,EAAK7B,gBACf6B,EAAKrC,YAAcjG,EAAMwI,cAAcG,QAAQ,GAAGD,UAahDE,EAAM,SAAC5I,GACPsI,EAAK7B,eAAiBlB,GAAYvF,EAAMwI,cAAcC,YAAYnJ,iBACpEgJ,EAAKpC,YAAclG,EAAMwI,cAAcE,QAAUJ,EAAKrC,aAGxDqC,EAAKN,eACsB,UAAvBM,EAAKnC,QAAQ7B,QASfgE,EAAKhE,QACDgE,EAAKtC,cACP6C,aAAaP,EAAKtC,cAEpBsC,EAAKtC,aAAe3J,WAAW,SAAC2D,GAAD,OAAWsI,EAAKnB,MAAMnH,IAlS9B,IAkS+DsI,EAAKnC,QAAQhC,YAIvGjI,EAAEF,KAAKqF,SAASyH,iBAAiB7F,KAAoBJ,GAAG9B,EAAMsE,WAAY,SAAC0D,GAAD,OAAOA,EAAEnG,mBAC/E5G,KAAKyK,eACPvK,EAAEF,KAAKqF,UAAUwB,GAAG9B,EAAMoE,YAAa,SAACnF,GAAD,OAAWuI,EAAMvI,KACxD9D,EAAEF,KAAKqF,UAAUwB,GAAG9B,EAAMqE,UAAW,SAACpF,GAAD,OAAW4I,EAAI5I,KAEpDhE,KAAKqF,SAASqC,UAAUsF,IAAI7H,KAE5BjF,EAAEF,KAAKqF,UAAUwB,GAAG9B,EAAMiE,WAAY,SAAChF,GAAD,OAAWuI,EAAMvI,KACvD9D,EAAEF,KAAKqF,UAAUwB,GAAG9B,EAAMkE,UAAW,SAACjF,GAxC3B,IAACA,GAAAA,EAwCyCA,GAtC3CwI,cAAcG,SAAgD,EAArC3I,EAAMwI,cAAcG,QAAQf,OAC7DU,EAAKpC,YAAc,EAEnBoC,EAAKpC,YAAclG,EAAMwI,cAAcG,QAAQ,GAAGD,QAAUJ,EAAKrC,cAoCnE/J,EAAEF,KAAKqF,UAAUwB,GAAG9B,EAAMmE,SAAU,SAAClF,GAAD,OAAW4I,EAAI5I,UAIvDoI,SAAAA,SAASpI,GACP,IAAI,kBAAkBZ,KAAKY,EAAMK,OAAO4I,SAIxC,OAAQjJ,EAAMkJ,OACZ,KA3TyB,GA4TvBlJ,EAAM4C,iBACN5G,KAAKkL,OACL,MACF,KA9TyB,GA+TvBlH,EAAM4C,iBACN5G,KAAK8K,WAMXa,cAAAA,SAAc7K,GAIZ,OAHAd,KAAK2J,OAAS7I,GAAWA,EAAQ8C,WAC7B,GAAGuJ,MAAMvK,KAAK9B,EAAQ8C,WAAWkJ,iBAAiB7F,KAClD,GACGjH,KAAK2J,OAAOyD,QAAQtM,MAG7BuM,oBAAAA,SAAoBxB,EAAWjE,GAC7B,IAAM0F,EAAkBzB,IAAcnD,EAChC6E,EAAkB1B,IAAcnD,EAChCgD,EAAkB1L,KAAK2L,cAAc/D,GACrC4F,EAAkBxN,KAAK2J,OAAOiC,OAAS,EAI7C,IAHwB2B,GAAmC,IAAhB7B,GACnB4B,GAAmB5B,IAAgB8B,KAErCxN,KAAKmK,QAAQ5B,KACjC,OAAOX,EAGT,IACM6F,GAAa/B,GADDG,IAAcnD,GAAkB,EAAI,IACZ1I,KAAK2J,OAAOiC,OAEtD,OAAsB,IAAf6B,EACHzN,KAAK2J,OAAO3J,KAAK2J,OAAOiC,OAAS,GAAK5L,KAAK2J,OAAO8D,MAGxDC,mBAAAA,SAAmBC,EAAeC,GAChC,IAAMC,EAAc7N,KAAK2L,cAAcgC,GACjCG,EAAY9N,KAAK2L,cAAc3L,KAAKqF,SAASlE,cAAc8F,KAC3D8G,EAAa7N,EAAE6E,MAAMA,EAAM4D,MAAO,CACtCgF,cAAAA,EACA9B,UAAW+B,EACXI,KAAMF,EACNtC,GAAIqC,IAKN,OAFA3N,EAAEF,KAAKqF,UAAUvD,QAAQiM,GAElBA,KAGTE,2BAAAA,SAA2BnN,GACzB,GAAId,KAAKqK,mBAAoB,CAC3B,IAAM6D,EAAa,GAAGf,MAAMvK,KAAK5C,KAAKqK,mBAAmByC,iBAAiB7F,IAC1E/G,EAAEgO,GACCjI,YAAYd,GAEf,IAAMgJ,EAAgBnO,KAAKqK,mBAAmB+D,SAC5CpO,KAAK2L,cAAc7K,IAGjBqN,GACFjO,EAAEiO,GAAeE,SAASlJ,OAKhC4F,OAAAA,SAAOc,EAAW/K,GAAS,IAQrBwN,EACAC,EACAX,EAVqBY,EAAAxO,KACnB4H,EAAgB5H,KAAKqF,SAASlE,cAAc8F,IAC5CwH,EAAqBzO,KAAK2L,cAAc/D,GACxC8G,EAAgB5N,GAAW8G,GAC/B5H,KAAKqN,oBAAoBxB,EAAWjE,GAChC+G,EAAmB3O,KAAK2L,cAAc+C,GACtCE,EAAY5M,QAAQhC,KAAK4J,WAgB/B,GAPEgE,EAHE/B,IAAcnD,GAChB4F,EAAuBnJ,EACvBoJ,EAAiBpJ,EACIuD,IAErB4F,EAAuBnJ,EACvBoJ,EAAiBpJ,EACIuD,GAGnBgG,GAAexO,EAAEwO,GAAaxI,SAASf,GACzCnF,KAAK+J,YAAa,OAKpB,IADmB/J,KAAK0N,mBAAmBgB,EAAad,GACzClI,sBAIVkC,GAAkB8G,EAAvB,CAKA1O,KAAK+J,YAAa,EAEd6E,GACF5O,KAAKsI,QAGPtI,KAAKiO,2BAA2BS,GAEhC,IAAMG,EAAY3O,EAAE6E,MAAMA,EAAM6D,KAAM,CACpC+E,cAAee,EACf7C,UAAW+B,EACXI,KAAMS,EACNjD,GAAImD,IAGN,GAAIzO,EAAEF,KAAKqF,UAAUa,SAASf,GAAkB,CAC9CjF,EAAEwO,GAAaL,SAASE,GAExBnO,EAAKwB,OAAO8M,GAEZxO,EAAE0H,GAAeyG,SAASC,GAC1BpO,EAAEwO,GAAaL,SAASC,GAExB,IAAMQ,EAAsBC,SAASL,EAAY1N,aAAa,iBAAkB,IAG9EhB,KAAKmK,QAAQhC,SAFX2G,GACF9O,KAAKmK,QAAQ6E,gBAAkBhP,KAAKmK,QAAQ6E,iBAAmBhP,KAAKmK,QAAQhC,SACpD2G,GAEA9O,KAAKmK,QAAQ6E,iBAAmBhP,KAAKmK,QAAQhC,SAGvE,IAAM9G,EAAqBjB,EAAKgB,iCAAiCwG,GAEjE1H,EAAE0H,GACCzH,IAAIC,EAAKR,eAAgB,WACxBM,EAAEwO,GACCzI,YAAeqI,EADlB,IAC0CC,GACvCF,SAASlJ,GAEZjF,EAAE0H,GAAe3B,YAAed,EAAhC,IAAoDoJ,EAApD,IAAsED,GAEtEE,EAAKzE,YAAa,EAElB1J,WAAW,WAAA,OAAMH,EAAEsO,EAAKnJ,UAAUvD,QAAQ+M,IAAY,KAEvD9K,qBAAqB1C,QAExBnB,EAAE0H,GAAe3B,YAAYd,GAC7BjF,EAAEwO,GAAaL,SAASlJ,GAExBnF,KAAK+J,YAAa,EAClB7J,EAAEF,KAAKqF,UAAUvD,QAAQ+M,GAGvBD,GACF5O,KAAKmL,YAMF7E,iBAAAA,SAAiBhE,GACtB,OAAOtC,KAAKuG,KAAK,WACf,IAAIE,EAAOvG,EAAEF,MAAMyG,KAAK7B,GACpBuF,EAAO4B,EAAA,GACN7D,EACAhI,EAAEF,MAAMyG,QAGS,iBAAXnE,IACT6H,EAAO4B,EAAA,GACF5B,EACA7H,IAIP,IAAM2M,EAA2B,iBAAX3M,EAAsBA,EAAS6H,EAAQ9B,MAO7D,GALK5B,IACHA,EAAO,IAAIiD,EAAS1J,KAAMmK,GAC1BjK,EAAEF,MAAMyG,KAAK7B,EAAU6B,IAGH,iBAAXnE,EACTmE,EAAK+E,GAAGlJ,QACH,GAAsB,iBAAX2M,EAAqB,CACrC,GAA4B,oBAAjBxI,EAAKwI,GACd,MAAM,IAAIC,UAAJ,oBAAkCD,EAAlC,KAERxI,EAAKwI,UACI9E,EAAQhC,WACjB1B,EAAK6B,QACL7B,EAAK0E,cAKJgE,qBAAAA,SAAqBnL,GAC1B,IAAMjD,EAAWX,EAAKS,uBAAuBb,MAE7C,GAAKe,EAAL,CAIA,IAAMsD,EAASnE,EAAEa,GAAU,GAE3B,GAAKsD,GAAWnE,EAAEmE,GAAQ6B,SAASf,GAAnC,CAIA,IAAM7C,EAAMyJ,EAAA,GACP7L,EAAEmE,GAAQoC,OACVvG,EAAEF,MAAMyG,QAEP2I,EAAapP,KAAKgB,aAAa,iBAEjCoO,IACF9M,EAAO6F,UAAW,GAGpBuB,EAASpD,iBAAiB1D,KAAK1C,EAAEmE,GAAS/B,GAEtC8M,GACFlP,EAAEmE,GAAQoC,KAAK7B,GAAU4G,GAAG4D,GAG9BpL,EAAM4C,4DA7bN,MA3G2B,wCA+G3B,OAAOsB,WAmcXhI,EAAES,UACCkG,GAAG9B,EAAMG,eAAgB+B,GAAqByC,GAASyF,sBAE1DjP,EAAEwK,QAAQ7D,GAAG9B,EAAMuE,cAAe,WAEhC,IADA,IAAM+F,EAAY,GAAGlC,MAAMvK,KAAKjC,SAASmM,iBAAiB7F,KACjDqI,EAAI,EAAGC,EAAMF,EAAUzD,OAAQ0D,EAAIC,EAAKD,IAAK,CACpD,IAAME,EAAYtP,EAAEmP,EAAUC,IAC9B5F,GAASpD,iBAAiB1D,KAAK4M,EAAWA,EAAU/I,WAUxDvG,EAAE4D,GAAGa,GAAQ+E,GAASpD,iBACtBpG,EAAE4D,GAAGa,GAAMmC,YAAc4C,GACzBxJ,EAAE4D,GAAGa,GAAMoC,WAAa,WAEtB,OADA7G,EAAE4D,GAAGa,GAAQG,EACN4E,GAASpD,kBCxkBlB,IAAM3B,GAAsB,WAEtBC,GAAsB,cACtBC,GAAS,IAAiBD,GAE1BE,GAAsB5E,EAAE4D,GAAGa,IAE3BuD,GAAU,CACdd,QAAS,EACTtB,OAAS,IAGL2C,GAAc,CAClBrB,OAAS,UACTtB,OAAS,oBAGLf,GAAQ,CACZ0K,KAAI,OAAoB5K,GACxB6K,MAAK,QAAoB7K,GACzB8K,KAAI,OAAoB9K,GACxB+K,OAAM,SAAoB/K,GAC1BK,eAAc,QAAWL,GAlBC,aAqBtBM,GACS,OADTA,GAES,WAFTA,GAGS,aAHTA,GAIS,YAGT0K,GACK,QADLA,GAEK,SAGL5I,GACU,qBADVA,GAEU,2BASV6I,cACJ,SAAAA,EAAYhP,EAASwB,GACnBtC,KAAK+P,kBAAmB,EACxB/P,KAAKqF,SAAmBvE,EACxBd,KAAKmK,QAAmBnK,KAAKoK,WAAW9H,GACxCtC,KAAKgQ,cAAmB,GAAG7C,MAAMvK,KAAKjC,SAASmM,iBAC7C,mCAAmChM,EAAQmP,GAA3C,6CAC0CnP,EAAQmP,GADlD,OAKF,IADA,IAAMC,EAAa,GAAG/C,MAAMvK,KAAKjC,SAASmM,iBAAiB7F,KAClDqI,EAAI,EAAGC,EAAMW,EAAWtE,OAAQ0D,EAAIC,EAAKD,IAAK,CACrD,IAAMa,EAAOD,EAAWZ,GAClBvO,EAAWX,EAAKS,uBAAuBsP,GACvCC,EAAgB,GAAGjD,MAAMvK,KAAKjC,SAASmM,iBAAiB/L,IAC3DsP,OAAO,SAACC,GAAD,OAAeA,IAAcxP,IAEtB,OAAbC,GAA4C,EAAvBqP,EAAcxE,SACrC5L,KAAKuQ,UAAYxP,EACjBf,KAAKgQ,cAAcQ,KAAKL,IAI5BnQ,KAAKyQ,QAAUzQ,KAAKmK,QAAQrE,OAAS9F,KAAK0Q,aAAe,KAEpD1Q,KAAKmK,QAAQrE,QAChB9F,KAAK2Q,0BAA0B3Q,KAAKqF,SAAUrF,KAAKgQ,eAGjDhQ,KAAKmK,QAAQ/C,QACfpH,KAAKoH,oCAgBTA,OAAAA,WACMlH,EAAEF,KAAKqF,UAAUa,SAASf,IAC5BnF,KAAK4Q,OAEL5Q,KAAK6Q,UAITA,KAAAA,WAAO,IAMDC,EACAC,EAPChR,EAAAC,KACL,IAAIA,KAAK+P,mBACP7P,EAAEF,KAAKqF,UAAUa,SAASf,MAOxBnF,KAAKyQ,SAUgB,KATvBK,EAAU,GAAG3D,MAAMvK,KAAK5C,KAAKyQ,QAAQ3D,iBAAiB7F,KACnDoJ,OAAO,SAACF,GACP,MAAmC,iBAAxBpQ,EAAKoK,QAAQrE,OACfqK,EAAKnP,aAAa,iBAAmBjB,EAAKoK,QAAQrE,OAGpDqK,EAAKzI,UAAUC,SAASxC,OAGvByG,SACVkF,EAAU,QAIVA,IACFC,EAAc7Q,EAAE4Q,GAASE,IAAIhR,KAAKuQ,WAAW9J,KAAK7B,MAC/BmM,EAAYhB,mBAFjC,CAOA,IAAMkB,EAAa/Q,EAAE6E,MAAMA,GAAM0K,MAEjC,GADAvP,EAAEF,KAAKqF,UAAUvD,QAAQmP,IACrBA,EAAWvL,qBAAf,CAIIoL,IACFhB,EAASxJ,iBAAiB1D,KAAK1C,EAAE4Q,GAASE,IAAIhR,KAAKuQ,WAAY,QAC1DQ,GACH7Q,EAAE4Q,GAASrK,KAAK7B,GAAU,OAI9B,IAAMsM,EAAYlR,KAAKmR,gBAEvBjR,EAAEF,KAAKqF,UACJY,YAAYd,IACZkJ,SAASlJ,IAEZnF,KAAKqF,SAAS+L,MAAMF,GAAa,EAE7BlR,KAAKgQ,cAAcpE,QACrB1L,EAAEF,KAAKgQ,eACJ/J,YAAYd,IACZkM,KAAK,iBAAiB,GAG3BrR,KAAKsR,kBAAiB,GAEtB,IAcMC,EAAU,UADaL,EAAU,GAAG5N,cAAgB4N,EAAU/D,MAAM,IAEpE9L,EAAqBjB,EAAKgB,iCAAiCpB,KAAKqF,UAEtEnF,EAAEF,KAAKqF,UACJlF,IAAIC,EAAKR,eAlBK,WACfM,EAAEH,EAAKsF,UACJY,YAAYd,IACZkJ,SAASlJ,IACTkJ,SAASlJ,IAEZpF,EAAKsF,SAAS+L,MAAMF,GAAa,GAEjCnR,EAAKuR,kBAAiB,GAEtBpR,EAAEH,EAAKsF,UAAUvD,QAAQiD,GAAM2K,SAS9B3L,qBAAqB1C,GAExBrB,KAAKqF,SAAS+L,MAAMF,GAAgBlR,KAAKqF,SAASkM,GAAlD,UAGFX,KAAAA,WAAO,IAAAzE,EAAAnM,KACL,IAAIA,KAAK+P,kBACN7P,EAAEF,KAAKqF,UAAUa,SAASf,IAD7B,CAKA,IAAM8L,EAAa/Q,EAAE6E,MAAMA,GAAM4K,MAEjC,GADAzP,EAAEF,KAAKqF,UAAUvD,QAAQmP,IACrBA,EAAWvL,qBAAf,CAIA,IAAMwL,EAAYlR,KAAKmR,gBAEvBnR,KAAKqF,SAAS+L,MAAMF,GAAgBlR,KAAKqF,SAASmM,wBAAwBN,GAA1E,KAEA9Q,EAAKwB,OAAO5B,KAAKqF,UAEjBnF,EAAEF,KAAKqF,UACJgJ,SAASlJ,IACTc,YAAYd,IACZc,YAAYd,IAEf,IAAMsM,EAAqBzR,KAAKgQ,cAAcpE,OAC9C,GAAyB,EAArB6F,EACF,IAAK,IAAInC,EAAI,EAAGA,EAAImC,EAAoBnC,IAAK,CAC3C,IAAMxN,EAAU9B,KAAKgQ,cAAcV,GAC7BvO,EAAWX,EAAKS,uBAAuBiB,GAE7C,GAAiB,OAAbf,EACYb,EAAE,GAAGiN,MAAMvK,KAAKjC,SAASmM,iBAAiB/L,KAC7CmF,SAASf,KAClBjF,EAAE4B,GAASuM,SAASlJ,IACjBkM,KAAK,iBAAiB,GAMjCrR,KAAKsR,kBAAiB,GAUtBtR,KAAKqF,SAAS+L,MAAMF,GAAa,GACjC,IAAM7P,EAAqBjB,EAAKgB,iCAAiCpB,KAAKqF,UAEtEnF,EAAEF,KAAKqF,UACJlF,IAAIC,EAAKR,eAZK,WACfuM,EAAKmF,kBAAiB,GACtBpR,EAAEiM,EAAK9G,UACJY,YAAYd,IACZkJ,SAASlJ,IACTrD,QAAQiD,GAAM6K,UAQhB7L,qBAAqB1C,QAG1BiQ,iBAAAA,SAAiBI,GACf1R,KAAK+P,iBAAmB2B,KAG1B9L,QAAAA,WACE1F,EAAE2F,WAAW7F,KAAKqF,SAAUT,IAE5B5E,KAAKmK,QAAmB,KACxBnK,KAAKyQ,QAAmB,KACxBzQ,KAAKqF,SAAmB,KACxBrF,KAAKgQ,cAAmB,KACxBhQ,KAAK+P,iBAAmB,QAK1B3F,WAAAA,SAAW9H,GAOT,OANAA,EAAMyJ,EAAA,GACD7D,GACA5F,IAEE8E,OAASpF,QAAQM,EAAO8E,QAC/BhH,EAAKgC,gBAAgBuC,GAAMrC,EAAQmG,IAC5BnG,KAGT6O,cAAAA,WAEE,OADiBjR,EAAEF,KAAKqF,UAAUa,SAAS2J,IACzBA,GAAkBA,MAGtCa,WAAAA,WAAa,IACP5K,EADOwG,EAAAtM,KAGPI,EAAK6B,UAAUjC,KAAKmK,QAAQrE,SAC9BA,EAAS9F,KAAKmK,QAAQrE,OAGoB,oBAA/B9F,KAAKmK,QAAQrE,OAAO6L,SAC7B7L,EAAS9F,KAAKmK,QAAQrE,OAAO,KAG/BA,EAASnF,SAASQ,cAAcnB,KAAKmK,QAAQrE,QAG/C,IAAM/E,EAAQ,yCAC6Bf,KAAKmK,QAAQrE,OAD1C,KAGRsI,EAAW,GAAGjB,MAAMvK,KAAKkD,EAAOgH,iBAAiB/L,IAQvD,OAPAb,EAAEkO,GAAU7H,KAAK,SAAC+I,EAAGxO,GACnBwL,EAAKqE,0BACHb,EAAS8B,sBAAsB9Q,GAC/B,CAACA,MAIEgF,KAGT6K,0BAAAA,SAA0B7P,EAAS+Q,GACjC,IAAMC,EAAS5R,EAAEY,GAASoF,SAASf,IAE/B0M,EAAajG,QACf1L,EAAE2R,GACC7J,YAAY7C,IAAsB2M,GAClCT,KAAK,gBAAiBS,MAMtBF,sBAAAA,SAAsB9Q,GAC3B,IAAMC,EAAWX,EAAKS,uBAAuBC,GAC7C,OAAOC,EAAWJ,SAASQ,cAAcJ,GAAY,QAGhDuF,iBAAAA,SAAiBhE,GACtB,OAAOtC,KAAKuG,KAAK,WACf,IAAMwL,EAAU7R,EAAEF,MACdyG,EAAYsL,EAAMtL,KAAK7B,IACrBuF,EAAO4B,EAAA,GACR7D,GACA6J,EAAMtL,OACY,iBAAXnE,GAAuBA,EAASA,EAAS,IAYrD,IATKmE,GAAQ0D,EAAQ/C,QAAU,YAAYhE,KAAKd,KAC9C6H,EAAQ/C,QAAS,GAGdX,IACHA,EAAO,IAAIqJ,EAAS9P,KAAMmK,GAC1B4H,EAAMtL,KAAK7B,GAAU6B,IAGD,iBAAXnE,EAAqB,CAC9B,GAA4B,oBAAjBmE,EAAKnE,GACd,MAAM,IAAI4M,UAAJ,oBAAkC5M,EAAlC,KAERmE,EAAKnE,iDAjQT,MApFwB,wCAwFxB,OAAO4F,YAyQXhI,EAAES,UAAUkG,GAAG9B,GAAMG,eAAgB+B,GAAsB,SAAUjD,GAE/B,MAAhCA,EAAMgO,cAAc/E,SACtBjJ,EAAM4C,iBAGR,IAAMqL,EAAW/R,EAAEF,MACbe,EAAWX,EAAKS,uBAAuBb,MACvCkS,EAAY,GAAG/E,MAAMvK,KAAKjC,SAASmM,iBAAiB/L,IAE1Db,EAAEgS,GAAW3L,KAAK,WAChB,IAAM4L,EAAUjS,EAAEF,MAEZsC,EADU6P,EAAQ1L,KAAK7B,IACN,SAAWqN,EAASxL,OAC3CqJ,GAASxJ,iBAAiB1D,KAAKuP,EAAS7P,OAU5CpC,EAAE4D,GAAGa,IAAQmL,GAASxJ,iBACtBpG,EAAE4D,GAAGa,IAAMmC,YAAcgJ,GACzB5P,EAAE4D,GAAGa,IAAMoC,WAAa,WAEtB,OADA7G,EAAE4D,GAAGa,IAAQG,GACNgL,GAASxJ,kBC7XlB,IAAM3B,GAA2B,WAE3BC,GAA2B,cAC3BC,GAAS,IAAsBD,GAC/BoC,GAA2B,YAC3BlC,GAA2B5E,EAAE4D,GAAGa,IAOhCyN,GAA2B,IAAIjP,OAAUkP,YAEzCtN,GAAQ,CACZ4K,KAAI,OAAsB9K,GAC1B+K,OAAM,SAAsB/K,GAC5B4K,KAAI,OAAsB5K,GAC1B6K,MAAK,QAAsB7K,GAC3ByN,MAAK,QAAsBzN,GAC3BK,eAAc,QAAaL,GAAYmC,GACvCuL,iBAAgB,UAAa1N,GAAYmC,GACzCwL,eAAc,QAAa3N,GAAYmC,IAGnC7B,GACc,WADdA,GAEc,OAFdA,GAGc,SAHdA,GAIc,YAJdA,GAKc,WALdA,GAMc,sBANdA,GAQc,kBAGd8B,GACY,2BADZA,GAEY,iBAFZA,GAGY,iBAHZA,GAIY,cAJZA,GAKY,8DAGZwL,GACQ,YADRA,GAEQ,UAFRA,GAGQ,eAHRA,GAIQ,aAJRA,GAKQ,cALRA,GAOQ,aAIRvK,GAAU,CACdwK,OAAY,EACZC,MAAY,EACZC,SAAY,eACZC,UAAY,SACZC,QAAY,WAGRrK,GAAc,CAClBiK,OAAY,2BACZC,KAAY,UACZC,SAAY,mBACZC,UAAY,mBACZC,QAAY,UASRC,cACJ,SAAAA,EAAYjS,EAASwB,GACnBtC,KAAKqF,SAAYvE,EACjBd,KAAKgT,QAAY,KACjBhT,KAAKmK,QAAYnK,KAAKoK,WAAW9H,GACjCtC,KAAKiT,MAAYjT,KAAKkT,kBACtBlT,KAAKmT,UAAYnT,KAAKoT,gBAEtBpT,KAAK6K,gDAmBPzD,OAAAA,WACE,IAAIpH,KAAKqF,SAASgO,WAAYnT,EAAEF,KAAKqF,UAAUa,SAASf,IAAxD,CAIA,IAAMW,EAAWiN,EAASO,sBAAsBtT,KAAKqF,UAC/CkO,EAAWrT,EAAEF,KAAKiT,OAAO/M,SAASf,IAIxC,GAFA4N,EAASS,eAELD,EAAJ,CAIA,IAAM5F,EAAgB,CACpBA,cAAe3N,KAAKqF,UAEhBoO,EAAYvT,EAAE6E,MAAMA,GAAM0K,KAAM9B,GAItC,GAFAzN,EAAE4F,GAAQhE,QAAQ2R,IAEdA,EAAU/N,qBAAd,CAKA,IAAK1F,KAAKmT,UAAW,CAKnB,GAAsB,oBAAXO,EACT,MAAM,IAAIxE,UAAU,oEAGtB,IAAIyE,EAAmB3T,KAAKqF,SAEG,WAA3BrF,KAAKmK,QAAQ0I,UACfc,EAAmB7N,EACV1F,EAAK6B,UAAUjC,KAAKmK,QAAQ0I,aACrCc,EAAmB3T,KAAKmK,QAAQ0I,UAGa,oBAAlC7S,KAAKmK,QAAQ0I,UAAUlB,SAChCgC,EAAmB3T,KAAKmK,QAAQ0I,UAAU,KAOhB,iBAA1B7S,KAAKmK,QAAQyI,UACf1S,EAAE4F,GAAQuI,SAASlJ,IAErBnF,KAAKgT,QAAU,IAAIU,EAAOC,EAAkB3T,KAAKiT,MAAOjT,KAAK4T,oBAO3D,iBAAkBjT,SAAS6C,iBACuB,IAAlDtD,EAAE4F,GAAQC,QAAQkB,IAAqB2E,QACzC1L,EAAES,SAASkT,MAAMzF,WAAWvH,GAAG,YAAa,KAAM3G,EAAE4T,MAGtD9T,KAAKqF,SAASyC,QACd9H,KAAKqF,SAAS0C,aAAa,iBAAiB,GAE5C7H,EAAEF,KAAKiT,OAAOjL,YAAY7C,IAC1BjF,EAAE4F,GACCkC,YAAY7C,IACZrD,QAAQ5B,EAAE6E,MAAMA,GAAM2K,MAAO/B,UAGlCkD,KAAAA,WACE,KAAI7Q,KAAKqF,SAASgO,UAAYnT,EAAEF,KAAKqF,UAAUa,SAASf,KAAuBjF,EAAEF,KAAKiT,OAAO/M,SAASf,KAAtG,CAIA,IAAMwI,EAAgB,CACpBA,cAAe3N,KAAKqF,UAEhBoO,EAAYvT,EAAE6E,MAAMA,GAAM0K,KAAM9B,GAChC7H,EAASiN,EAASO,sBAAsBtT,KAAKqF,UAEnDnF,EAAE4F,GAAQhE,QAAQ2R,GAEdA,EAAU/N,uBAIdxF,EAAEF,KAAKiT,OAAOjL,YAAY7C,IAC1BjF,EAAE4F,GACCkC,YAAY7C,IACZrD,QAAQ5B,EAAE6E,MAAMA,GAAM2K,MAAO/B,SAGlCiD,KAAAA,WACE,IAAI5Q,KAAKqF,SAASgO,WAAYnT,EAAEF,KAAKqF,UAAUa,SAASf,KAAwBjF,EAAEF,KAAKiT,OAAO/M,SAASf,IAAvG,CAIA,IAAMwI,EAAgB,CACpBA,cAAe3N,KAAKqF,UAEhB0O,EAAY7T,EAAE6E,MAAMA,GAAM4K,KAAMhC,GAChC7H,EAASiN,EAASO,sBAAsBtT,KAAKqF,UAEnDnF,EAAE4F,GAAQhE,QAAQiS,GAEdA,EAAUrO,uBAIdxF,EAAEF,KAAKiT,OAAOjL,YAAY7C,IAC1BjF,EAAE4F,GACCkC,YAAY7C,IACZrD,QAAQ5B,EAAE6E,MAAMA,GAAM6K,OAAQjC,SAGnC/H,QAAAA,WACE1F,EAAE2F,WAAW7F,KAAKqF,SAAUT,IAC5B1E,EAAEF,KAAKqF,UAAUyG,IAAIjH,IACrB7E,KAAKqF,SAAW,MAChBrF,KAAKiT,MAAQ,QACTjT,KAAKgT,UACPhT,KAAKgT,QAAQgB,UACbhU,KAAKgT,QAAU,SAInBiB,OAAAA,WACEjU,KAAKmT,UAAYnT,KAAKoT,gBACD,OAAjBpT,KAAKgT,SACPhT,KAAKgT,QAAQkB,oBAMjBrJ,mBAAAA,WAAqB,IAAA9K,EAAAC,KACnBE,EAAEF,KAAKqF,UAAUwB,GAAG9B,GAAMuN,MAAO,SAACtO,GAChCA,EAAM4C,iBACN5C,EAAMmQ,kBACNpU,EAAKqH,cAITgD,WAAAA,SAAW9H,GAaT,OAZAA,EAAMyJ,EAAA,GACD/L,KAAKoU,YAAYlM,QACjBhI,EAAEF,KAAKqF,UAAUoB,OACjBnE,GAGLlC,EAAKgC,gBACHuC,GACArC,EACAtC,KAAKoU,YAAY3L,aAGZnG,KAGT4Q,gBAAAA,WACE,IAAKlT,KAAKiT,MAAO,CACf,IAAMnN,EAASiN,EAASO,sBAAsBtT,KAAKqF,UAE/CS,IACF9F,KAAKiT,MAAQnN,EAAO3E,cAAc8F,KAGtC,OAAOjH,KAAKiT,SAGdoB,cAAAA,WACE,IAAMC,EAAkBpU,EAAEF,KAAKqF,SAASzB,YACpC2Q,EAAY9B,GAehB,OAZI6B,EAAgBpO,SAASf,KAC3BoP,EAAY9B,GACRvS,EAAEF,KAAKiT,OAAO/M,SAASf,MACzBoP,EAAY9B,KAEL6B,EAAgBpO,SAASf,IAClCoP,EAAY9B,GACH6B,EAAgBpO,SAASf,IAClCoP,EAAY9B,GACHvS,EAAEF,KAAKiT,OAAO/M,SAASf,MAChCoP,EAAY9B,IAEP8B,KAGTnB,cAAAA,WACE,OAAoD,EAA7ClT,EAAEF,KAAKqF,UAAUU,QAAQ,WAAW6F,UAG7CgI,iBAAAA,WAAmB,IAAAzH,EAAAnM,KACXwU,EAAa,GACgB,mBAAxBxU,KAAKmK,QAAQuI,OACtB8B,EAAW1Q,GAAK,SAAC2C,GAKf,OAJAA,EAAKgO,QAAL1I,EAAA,GACKtF,EAAKgO,QACLtI,EAAKhC,QAAQuI,OAAOjM,EAAKgO,UAAY,IAEnChO,GAGT+N,EAAW9B,OAAS1S,KAAKmK,QAAQuI,OAGnC,IAAMgC,EAAe,CACnBH,UAAWvU,KAAKqU,gBAChBM,UAAW,CACTjC,OAAQ8B,EACR7B,KAAM,CACJiC,QAAS5U,KAAKmK,QAAQwI,MAExBkC,gBAAiB,CACfC,kBAAmB9U,KAAKmK,QAAQyI,YAWtC,MAL6B,WAAzB5S,KAAKmK,QAAQ2I,UACf4B,EAAaC,UAAUI,WAAa,CAClCH,SAAS,IAGNF,KAKFpO,iBAAAA,SAAiBhE,GACtB,OAAOtC,KAAKuG,KAAK,WACf,IAAIE,EAAOvG,EAAEF,MAAMyG,KAAK7B,IAQxB,GALK6B,IACHA,EAAO,IAAIsM,EAAS/S,KAHY,iBAAXsC,EAAsBA,EAAS,MAIpDpC,EAAEF,MAAMyG,KAAK7B,GAAU6B,IAGH,iBAAXnE,EAAqB,CAC9B,GAA4B,oBAAjBmE,EAAKnE,GACd,MAAM,IAAI4M,UAAJ,oBAAkC5M,EAAlC,KAERmE,EAAKnE,WAKJkR,YAAAA,SAAYxP,GACjB,IAAIA,GA/VyB,IA+VfA,EAAMkJ,QACH,UAAflJ,EAAMwD,MAnWqB,IAmWDxD,EAAMkJ,OAMlC,IAFA,IAAM8H,EAAU,GAAG7H,MAAMvK,KAAKjC,SAASmM,iBAAiB7F,KAE/CqI,EAAI,EAAGC,EAAMyF,EAAQpJ,OAAQ0D,EAAIC,EAAKD,IAAK,CAClD,IAAMxJ,EAASiN,EAASO,sBAAsB0B,EAAQ1F,IAChD2F,EAAU/U,EAAE8U,EAAQ1F,IAAI7I,KAAK7B,IAC7B+I,EAAgB,CACpBA,cAAeqH,EAAQ1F,IAOzB,GAJItL,GAAwB,UAAfA,EAAMwD,OACjBmG,EAAcuH,WAAalR,GAGxBiR,EAAL,CAIA,IAAME,EAAeF,EAAQhC,MAC7B,GAAK/S,EAAE4F,GAAQI,SAASf,OAIpBnB,IAAyB,UAAfA,EAAMwD,MAChB,kBAAkBpE,KAAKY,EAAMK,OAAO4I,UAA2B,UAAfjJ,EAAMwD,MA9X/B,IA8XmDxD,EAAMkJ,QAChFhN,EAAEyH,SAAS7B,EAAQ9B,EAAMK,SAF7B,CAMA,IAAM0P,EAAY7T,EAAE6E,MAAMA,GAAM4K,KAAMhC,GACtCzN,EAAE4F,GAAQhE,QAAQiS,GACdA,EAAUrO,uBAMV,iBAAkB/E,SAAS6C,iBAC7BtD,EAAES,SAASkT,MAAMzF,WAAWtC,IAAI,YAAa,KAAM5L,EAAE4T,MAGvDkB,EAAQ1F,GAAGvH,aAAa,gBAAiB,SAEzC7H,EAAEiV,GAAclP,YAAYd,IAC5BjF,EAAE4F,GACCG,YAAYd,IACZrD,QAAQ5B,EAAE6E,MAAMA,GAAM6K,OAAQjC,WAI9B2F,sBAAAA,SAAsBxS,GAC3B,IAAIgF,EACE/E,EAAWX,EAAKS,uBAAuBC,GAM7C,OAJIC,IACF+E,EAASnF,SAASQ,cAAcJ,IAG3B+E,GAAUhF,EAAQ8C,cAIpBwR,uBAAAA,SAAuBpR,GAQ5B,IAAI,kBAAkBZ,KAAKY,EAAMK,OAAO4I,WA7aX,KA8azBjJ,EAAMkJ,OA/amB,KA+aQlJ,EAAMkJ,QA3ad,KA4a1BlJ,EAAMkJ,OA7aoB,KA6aYlJ,EAAMkJ,OAC3ChN,EAAE8D,EAAMK,QAAQ0B,QAAQkB,IAAe2E,SAAWwG,GAAehP,KAAKY,EAAMkJ,UAIhFlJ,EAAM4C,iBACN5C,EAAMmQ,mBAEFnU,KAAKqT,WAAYnT,EAAEF,MAAMkG,SAASf,KAAtC,CAIA,IAAMW,EAAWiN,EAASO,sBAAsBtT,MAC1CuT,EAAWrT,EAAE4F,GAAQI,SAASf,IAEpC,GAAKoO,KAAYA,GA/bY,KA+bCvP,EAAMkJ,OA9bP,KA8bmClJ,EAAMkJ,OAAtE,CAUA,IAAMmI,EAAQ,GAAGlI,MAAMvK,KAAKkD,EAAOgH,iBAAiB7F,KAEpD,GAAqB,IAAjBoO,EAAMzJ,OAAV,CAIA,IAAIH,EAAQ4J,EAAMjI,QAAQpJ,EAAMK,QA5cH,KA8czBL,EAAMkJ,OAAsC,EAARzB,GACtCA,IA9c2B,KAidzBzH,EAAMkJ,OAAgCzB,EAAQ4J,EAAMzJ,OAAS,GAC/DH,IAGEA,EAAQ,IACVA,EAAQ,GAGV4J,EAAM5J,GAAO3D,aA9Bb,CACE,GAhc2B,KAgcvB9D,EAAMkJ,MAA0B,CAClC,IAAM9F,EAAStB,EAAO3E,cAAc8F,IACpC/G,EAAEkH,GAAQtF,QAAQ,SAGpB5B,EAAEF,MAAM8B,QAAQ,oDAhXlB,MA1F6B,wCA8F7B,OAAOoG,uCAIP,OAAOO,YA0YXvI,EAAES,UACCkG,GAAG9B,GAAMwN,iBAAkBtL,GAAsB8L,GAASqC,wBAC1DvO,GAAG9B,GAAMwN,iBAAkBtL,GAAe8L,GAASqC,wBACnDvO,GAAM9B,GAAMG,eAHf,IAGiCH,GAAMyN,eAAkBO,GAASS,aAC/D3M,GAAG9B,GAAMG,eAAgB+B,GAAsB,SAAUjD,GACxDA,EAAM4C,iBACN5C,EAAMmQ,kBACNpB,GAASzM,iBAAiB1D,KAAK1C,EAAEF,MAAO,YAEzC6G,GAAG9B,GAAMG,eAAgB+B,GAAqB,SAAC8F,GAC9CA,EAAEoH,oBASNjU,EAAE4D,GAAGa,IAAQoO,GAASzM,iBACtBpG,EAAE4D,GAAGa,IAAMmC,YAAciM,GACzB7S,EAAE4D,GAAGa,IAAMoC,WAAa,WAEtB,OADA7G,EAAE4D,GAAGa,IAAQG,GACNiO,GAASzM,kBCrgBlB,IAAM3B,GAAqB,QAErBC,GAAqB,WACrBC,GAAS,IAAgBD,GAEzBE,GAAqB5E,EAAE4D,GAAGa,IAG1BuD,GAAU,CACdoN,UAAW,EACXlN,UAAW,EACXN,OAAW,EACX+I,MAAW,GAGPpI,GAAc,CAClB6M,SAAW,mBACXlN,SAAW,UACXN,MAAW,UACX+I,KAAW,WAGP9L,GAAQ,CACZ4K,KAAI,OAAuB9K,GAC3B+K,OAAM,SAAuB/K,GAC7B4K,KAAI,OAAuB5K,GAC3B6K,MAAK,QAAuB7K,GAC5B0Q,QAAO,UAAuB1Q,GAC9B2Q,OAAM,SAAuB3Q,GAC7B4Q,cAAa,gBAAuB5Q,GACpC6Q,gBAAe,kBAAuB7Q,GACtC8Q,gBAAe,kBAAuB9Q,GACtC+Q,kBAAiB,oBAAuB/Q,GACxCK,eAAc,QAAcL,GA7BH,aAgCrBM,GACiB,0BADjBA,GAEiB,iBAFjBA,GAGiB,aAHjBA,GAIiB,OAJjBA,GAKiB,OAGjB8B,GACa,gBADbA,GAEa,wBAFbA,GAGa,yBAHbA,GAIa,oDAJbA,GAKa,cASb4O,cACJ,SAAAA,EAAY/U,EAASwB,GACnBtC,KAAKmK,QAAuBnK,KAAKoK,WAAW9H,GAC5CtC,KAAKqF,SAAuBvE,EAC5Bd,KAAK8V,QAAuBhV,EAAQK,cAAc8F,IAClDjH,KAAK+V,UAAuB,KAC5B/V,KAAKgW,UAAuB,EAC5BhW,KAAKiW,oBAAuB,EAC5BjW,KAAKkW,sBAAuB,EAC5BlW,KAAK+P,kBAAuB,EAC5B/P,KAAKmW,gBAAuB,6BAe9B/O,OAAAA,SAAOuG,GACL,OAAO3N,KAAKgW,SAAWhW,KAAK4Q,OAAS5Q,KAAK6Q,KAAKlD,MAGjDkD,KAAAA,SAAKlD,GAAe,IAAA5N,EAAAC,KAClB,IAAIA,KAAKgW,WAAYhW,KAAK+P,iBAA1B,CAII7P,EAAEF,KAAKqF,UAAUa,SAASf,MAC5BnF,KAAK+P,kBAAmB,GAG1B,IAAM0D,EAAYvT,EAAE6E,MAAMA,GAAM0K,KAAM,CACpC9B,cAAAA,IAGFzN,EAAEF,KAAKqF,UAAUvD,QAAQ2R,GAErBzT,KAAKgW,UAAYvC,EAAU/N,uBAI/B1F,KAAKgW,UAAW,EAEhBhW,KAAKoW,kBACLpW,KAAKqW,gBAELrW,KAAKsW,gBAELtW,KAAKuW,kBACLvW,KAAKwW,kBAELtW,EAAEF,KAAKqF,UAAUwB,GACf9B,GAAM0Q,cACNxO,GACA,SAACjD,GAAD,OAAWjE,EAAK6Q,KAAK5M,KAGvB9D,EAAEF,KAAK8V,SAASjP,GAAG9B,GAAM6Q,kBAAmB,WAC1C1V,EAAEH,EAAKsF,UAAUlF,IAAI4E,GAAM4Q,gBAAiB,SAAC3R,GACvC9D,EAAE8D,EAAMK,QAAQC,GAAGvE,EAAKsF,YAC1BtF,EAAKmW,sBAAuB,OAKlClW,KAAKyW,cAAc,WAAA,OAAM1W,EAAK2W,aAAa/I,UAG7CiD,KAAAA,SAAK5M,GAAO,IAAAmI,EAAAnM,KAKV,GAJIgE,GACFA,EAAM4C,iBAGH5G,KAAKgW,WAAYhW,KAAK+P,iBAA3B,CAIA,IAAMgE,EAAY7T,EAAE6E,MAAMA,GAAM4K,MAIhC,GAFAzP,EAAEF,KAAKqF,UAAUvD,QAAQiS,GAEpB/T,KAAKgW,WAAYjC,EAAUrO,qBAAhC,CAIA1F,KAAKgW,UAAW,EAChB,IAAMW,EAAazW,EAAEF,KAAKqF,UAAUa,SAASf,IAiB7C,GAfIwR,IACF3W,KAAK+P,kBAAmB,GAG1B/P,KAAKuW,kBACLvW,KAAKwW,kBAELtW,EAAES,UAAUmL,IAAI/G,GAAMwQ,SAEtBrV,EAAEF,KAAKqF,UAAUY,YAAYd,IAE7BjF,EAAEF,KAAKqF,UAAUyG,IAAI/G,GAAM0Q,eAC3BvV,EAAEF,KAAK8V,SAAShK,IAAI/G,GAAM6Q,mBAGtBe,EAAY,CACd,IAAMtV,EAAsBjB,EAAKgB,iCAAiCpB,KAAKqF,UAEvEnF,EAAEF,KAAKqF,UACJlF,IAAIC,EAAKR,eAAgB,SAACoE,GAAD,OAAWmI,EAAKyK,WAAW5S,KACpDD,qBAAqB1C,QAExBrB,KAAK4W,kBAIThR,QAAAA,WACE,CAAC8E,OAAQ1K,KAAKqF,SAAUrF,KAAK8V,SAC1Be,QAAQ,SAACC,GAAD,OAAiB5W,EAAE4W,GAAahL,IAAIjH,MAO/C3E,EAAES,UAAUmL,IAAI/G,GAAMwQ,SAEtBrV,EAAE2F,WAAW7F,KAAKqF,SAAUT,IAE5B5E,KAAKmK,QAAuB,KAC5BnK,KAAKqF,SAAuB,KAC5BrF,KAAK8V,QAAuB,KAC5B9V,KAAK+V,UAAuB,KAC5B/V,KAAKgW,SAAuB,KAC5BhW,KAAKiW,mBAAuB,KAC5BjW,KAAKkW,qBAAuB,KAC5BlW,KAAK+P,iBAAuB,KAC5B/P,KAAKmW,gBAAuB,QAG9BY,aAAAA,WACE/W,KAAKsW,mBAKPlM,WAAAA,SAAW9H,GAMT,OALAA,EAAMyJ,EAAA,GACD7D,GACA5F,GAELlC,EAAKgC,gBAAgBuC,GAAMrC,EAAQmG,IAC5BnG,KAGToU,aAAAA,SAAa/I,GAAe,IAAArB,EAAAtM,KACpB2W,EAAazW,EAAEF,KAAKqF,UAAUa,SAASf,IAExCnF,KAAKqF,SAASzB,YACf5D,KAAKqF,SAASzB,WAAWzB,WAAa6U,KAAKC,cAE7CtW,SAASkT,KAAKqD,YAAYlX,KAAKqF,UAGjCrF,KAAKqF,SAAS+L,MAAM0B,QAAU,QAC9B9S,KAAKqF,SAAS8R,gBAAgB,eAC9BnX,KAAKqF,SAAS0C,aAAa,cAAc,GACzC/H,KAAKqF,SAAS+R,UAAY,EAEtBT,GACFvW,EAAKwB,OAAO5B,KAAKqF,UAGnBnF,EAAEF,KAAKqF,UAAUgJ,SAASlJ,IAEtBnF,KAAKmK,QAAQrC,OACf9H,KAAKqX,gBAGP,IAAMC,EAAapX,EAAE6E,MAAMA,GAAM2K,MAAO,CACtC/B,cAAAA,IAGI4J,EAAqB,WACrBjL,EAAKnC,QAAQrC,OACfwE,EAAKjH,SAASyC,QAEhBwE,EAAKyD,kBAAmB,EACxB7P,EAAEoM,EAAKjH,UAAUvD,QAAQwV,IAG3B,GAAIX,EAAY,CACd,IAAMtV,EAAsBjB,EAAKgB,iCAAiCpB,KAAK8V,SAEvE5V,EAAEF,KAAK8V,SACJ3V,IAAIC,EAAKR,eAAgB2X,GACzBxT,qBAAqB1C,QAExBkW,OAIJF,cAAAA,WAAgB,IAAA7I,EAAAxO,KACdE,EAAES,UACCmL,IAAI/G,GAAMwQ,SACV1O,GAAG9B,GAAMwQ,QAAS,SAACvR,GACdrD,WAAaqD,EAAMK,QACnBmK,EAAKnJ,WAAarB,EAAMK,QACsB,IAA9CnE,EAAEsO,EAAKnJ,UAAUmS,IAAIxT,EAAMK,QAAQuH,QACrC4C,EAAKnJ,SAASyC,aAKtByO,gBAAAA,WAAkB,IAAAkB,EAAAzX,KACZA,KAAKgW,UAAYhW,KAAKmK,QAAQ/B,SAChClI,EAAEF,KAAKqF,UAAUwB,GAAG9B,GAAM2Q,gBAAiB,SAAC1R,GAjRvB,KAkRfA,EAAMkJ,QACRlJ,EAAM4C,iBACN6Q,EAAK7G,UAGC5Q,KAAKgW,UACf9V,EAAEF,KAAKqF,UAAUyG,IAAI/G,GAAM2Q,oBAI/Bc,gBAAAA,WAAkB,IAAAkB,EAAA1X,KACZA,KAAKgW,SACP9V,EAAEwK,QAAQ7D,GAAG9B,GAAMyQ,OAAQ,SAACxR,GAAD,OAAW0T,EAAKX,aAAa/S,KAExD9D,EAAEwK,QAAQoB,IAAI/G,GAAMyQ,WAIxBoB,WAAAA,WAAa,IAAAe,EAAA3X,KACXA,KAAKqF,SAAS+L,MAAM0B,QAAU,OAC9B9S,KAAKqF,SAAS0C,aAAa,eAAe,GAC1C/H,KAAKqF,SAAS8R,gBAAgB,cAC9BnX,KAAK+P,kBAAmB,EACxB/P,KAAKyW,cAAc,WACjBvW,EAAES,SAASkT,MAAM5N,YAAYd,IAC7BwS,EAAKC,oBACLD,EAAKE,kBACL3X,EAAEyX,EAAKtS,UAAUvD,QAAQiD,GAAM6K,aAInCkI,gBAAAA,WACM9X,KAAK+V,YACP7V,EAAEF,KAAK+V,WAAW1P,SAClBrG,KAAK+V,UAAY,SAIrBU,cAAAA,SAAcsB,GAAU,IAAAC,EAAAhY,KAChBiY,EAAU/X,EAAEF,KAAKqF,UAAUa,SAASf,IACtCA,GAAiB,GAErB,GAAInF,KAAKgW,UAAYhW,KAAKmK,QAAQmL,SAAU,CA+B1C,GA9BAtV,KAAK+V,UAAYpV,SAASuX,cAAc,OACxClY,KAAK+V,UAAUoC,UAAYhT,GAEvB8S,GACFjY,KAAK+V,UAAUrO,UAAUsF,IAAIiL,GAG/B/X,EAAEF,KAAK+V,WAAWqC,SAASzX,SAASkT,MAEpC3T,EAAEF,KAAKqF,UAAUwB,GAAG9B,GAAM0Q,cAAe,SAACzR,GACpCgU,EAAK9B,qBACP8B,EAAK9B,sBAAuB,EAG1BlS,EAAMK,SAAWL,EAAMgO,gBAGG,WAA1BgG,EAAK7N,QAAQmL,SACf0C,EAAK3S,SAASyC,QAEdkQ,EAAKpH,UAILqH,GACF7X,EAAKwB,OAAO5B,KAAK+V,WAGnB7V,EAAEF,KAAK+V,WAAW1H,SAASlJ,KAEtB4S,EACH,OAGF,IAAKE,EAEH,YADAF,IAIF,IAAMM,EAA6BjY,EAAKgB,iCAAiCpB,KAAK+V,WAE9E7V,EAAEF,KAAK+V,WACJ5V,IAAIC,EAAKR,eAAgBmY,GACzBhU,qBAAqBsU,QACnB,IAAKrY,KAAKgW,UAAYhW,KAAK+V,UAAW,CAC3C7V,EAAEF,KAAK+V,WAAW9P,YAAYd,IAE9B,IAAMmT,EAAiB,WACrBN,EAAKF,kBACDC,GACFA,KAIJ,GAAI7X,EAAEF,KAAKqF,UAAUa,SAASf,IAAiB,CAC7C,IAAMkT,EAA6BjY,EAAKgB,iCAAiCpB,KAAK+V,WAE9E7V,EAAEF,KAAK+V,WACJ5V,IAAIC,EAAKR,eAAgB0Y,GACzBvU,qBAAqBsU,QAExBC,SAEOP,GACTA,OASJzB,cAAAA,WACE,IAAMiC,EACJvY,KAAKqF,SAASmT,aAAe7X,SAAS6C,gBAAgBiV,cAEnDzY,KAAKiW,oBAAsBsC,IAC9BvY,KAAKqF,SAAS+L,MAAMsH,YAAiB1Y,KAAKmW,gBAA1C,MAGEnW,KAAKiW,qBAAuBsC,IAC9BvY,KAAKqF,SAAS+L,MAAMuH,aAAkB3Y,KAAKmW,gBAA3C,SAIJyB,kBAAAA,WACE5X,KAAKqF,SAAS+L,MAAMsH,YAAc,GAClC1Y,KAAKqF,SAAS+L,MAAMuH,aAAe,MAGrCvC,gBAAAA,WACE,IAAMwC,EAAOjY,SAASkT,KAAKrC,wBAC3BxR,KAAKiW,mBAAqB2C,EAAKC,KAAOD,EAAKE,MAAQpO,OAAOqO,WAC1D/Y,KAAKmW,gBAAkBnW,KAAKgZ,wBAG9B3C,cAAAA,WAAgB,IAAA4C,EAAAjZ,KACd,GAAIA,KAAKiW,mBAAoB,CAG3B,IAAMiD,EAAe,GAAG/L,MAAMvK,KAAKjC,SAASmM,iBAAiB7F,KACvDkS,EAAgB,GAAGhM,MAAMvK,KAAKjC,SAASmM,iBAAiB7F,KAG9D/G,EAAEgZ,GAAc3S,KAAK,SAACkF,EAAO3K,GAC3B,IAAMsY,EAAgBtY,EAAQsQ,MAAMuH,aAC9BU,EAAoBnZ,EAAEY,GAASQ,IAAI,iBACzCpB,EAAEY,GACC2F,KAAK,gBAAiB2S,GACtB9X,IAAI,gBAAoBG,WAAW4X,GAAqBJ,EAAK9C,gBAFhE,QAMFjW,EAAEiZ,GAAe5S,KAAK,SAACkF,EAAO3K,GAC5B,IAAMwY,EAAexY,EAAQsQ,MAAMmI,YAC7BC,EAAmBtZ,EAAEY,GAASQ,IAAI,gBACxCpB,EAAEY,GACC2F,KAAK,eAAgB6S,GACrBhY,IAAI,eAAmBG,WAAW+X,GAAoBP,EAAK9C,gBAF9D,QAMF,IAAMiD,EAAgBzY,SAASkT,KAAKzC,MAAMuH,aACpCU,EAAoBnZ,EAAES,SAASkT,MAAMvS,IAAI,iBAC/CpB,EAAES,SAASkT,MACRpN,KAAK,gBAAiB2S,GACtB9X,IAAI,gBAAoBG,WAAW4X,GAAqBrZ,KAAKmW,gBAFhE,MAKFjW,EAAES,SAASkT,MAAMxF,SAASlJ,OAG5B0S,gBAAAA,WAEE,IAAMqB,EAAe,GAAG/L,MAAMvK,KAAKjC,SAASmM,iBAAiB7F,KAC7D/G,EAAEgZ,GAAc3S,KAAK,SAACkF,EAAO3K,GAC3B,IAAM2Y,EAAUvZ,EAAEY,GAAS2F,KAAK,iBAChCvG,EAAEY,GAAS+E,WAAW,iBACtB/E,EAAQsQ,MAAMuH,aAAec,GAAoB,KAInD,IAAMC,EAAW,GAAGvM,MAAMvK,KAAKjC,SAASmM,iBAAT,GAA6B7F,KAC5D/G,EAAEwZ,GAAUnT,KAAK,SAACkF,EAAO3K,GACvB,IAAM6Y,EAASzZ,EAAEY,GAAS2F,KAAK,gBACT,oBAAXkT,GACTzZ,EAAEY,GAASQ,IAAI,eAAgBqY,GAAQ9T,WAAW,kBAKtD,IAAM4T,EAAUvZ,EAAES,SAASkT,MAAMpN,KAAK,iBACtCvG,EAAES,SAASkT,MAAMhO,WAAW,iBAC5BlF,SAASkT,KAAKzC,MAAMuH,aAAec,GAAoB,MAGzDT,mBAAAA,WACE,IAAMY,EAAYjZ,SAASuX,cAAc,OACzC0B,EAAUzB,UAAYhT,GACtBxE,SAASkT,KAAKqD,YAAY0C,GAC1B,IAAMC,EAAiBD,EAAUpI,wBAAwBsI,MAAQF,EAAUG,YAE3E,OADApZ,SAASkT,KAAKmG,YAAYJ,GACnBC,KAKFvT,iBAAAA,SAAiBhE,EAAQqL,GAC9B,OAAO3N,KAAKuG,KAAK,WACf,IAAIE,EAAOvG,EAAEF,MAAMyG,KAAK7B,IAClBuF,EAAO4B,EAAA,GACR7D,GACAhI,EAAEF,MAAMyG,OACU,iBAAXnE,GAAuBA,EAASA,EAAS,IAQrD,GALKmE,IACHA,EAAO,IAAIoP,EAAM7V,KAAMmK,GACvBjK,EAAEF,MAAMyG,KAAK7B,GAAU6B,IAGH,iBAAXnE,EAAqB,CAC9B,GAA4B,oBAAjBmE,EAAKnE,GACd,MAAM,IAAI4M,UAAJ,oBAAkC5M,EAAlC,KAERmE,EAAKnE,GAAQqL,QACJxD,EAAQ0G,MACjBpK,EAAKoK,KAAKlD,8CArbd,MAzEuB,wCA6EvB,OAAOzF,YA6bXhI,EAAES,UAAUkG,GAAG9B,GAAMG,eAAgB+B,GAAsB,SAAUjD,GAAO,IACtEK,EADsE4V,EAAAja,KAEpEe,EAAWX,EAAKS,uBAAuBb,MAEzCe,IACFsD,EAAS1D,SAASQ,cAAcJ,IAGlC,IAAMuB,EAASpC,EAAEmE,GAAQoC,KAAK7B,IAC1B,SADWmH,EAAA,GAER7L,EAAEmE,GAAQoC,OACVvG,EAAEF,MAAMyG,QAGM,MAAjBzG,KAAKiN,SAAoC,SAAjBjN,KAAKiN,SAC/BjJ,EAAM4C,iBAGR,IAAMuL,EAAUjS,EAAEmE,GAAQlE,IAAI4E,GAAM0K,KAAM,SAACgE,GACrCA,EAAU/N,sBAKdyM,EAAQhS,IAAI4E,GAAM6K,OAAQ,WACpB1P,EAAE+Z,GAAM3V,GAAG,aACb2V,EAAKnS,YAKX+N,GAAMvP,iBAAiB1D,KAAK1C,EAAEmE,GAAS/B,EAAQtC,QASjDE,EAAE4D,GAAGa,IAAQkR,GAAMvP,iBACnBpG,EAAE4D,GAAGa,IAAMmC,YAAc+O,GACzB3V,EAAE4D,GAAGa,IAAMoC,WAAa,WAEtB,OADA7G,EAAE4D,GAAGa,IAAQG,GACN+Q,GAAMvP,kBCtjBf,IAAM3B,GAAqB,UAErBC,GAAqB,aACrBC,GAAS,IAAgBD,GACzBE,GAAqB5E,EAAE4D,GAAGa,IAC1BuV,GAAqB,aACrBC,GAAqB,IAAIhX,OAAJ,UAAqB+W,GAArB,OAAyC,KAE9DzR,GAAc,CAClB2R,UAAoB,UACpBC,SAAoB,SACpBC,MAAoB,4BACpBxY,QAAoB,SACpByY,MAAoB,kBACpBC,KAAoB,UACpBzZ,SAAoB,mBACpBwT,UAAoB,oBACpB7B,OAAoB,kBACpB+H,UAAoB,2BACpBC,kBAAoB,iBACpB9H,SAAoB,oBAGhBH,GAAgB,CACpBkI,KAAS,OACTC,IAAS,MACTC,MAAS,QACTC,OAAS,SACTC,KAAS,QAGL7S,GAAU,CACdkS,WAAoB,EACpBC,SAAoB,uGAGpBvY,QAAoB,cACpBwY,MAAoB,GACpBC,MAAoB,EACpBC,MAAoB,EACpBzZ,UAAoB,EACpBwT,UAAoB,MACpB7B,OAAoB,EACpB+H,WAAoB,EACpBC,kBAAoB,OACpB9H,SAAoB,gBAGhBoI,GACG,OADHA,GAEG,MAGHjW,GAAQ,CACZ4K,KAAI,OAAgB9K,GACpB+K,OAAM,SAAgB/K,GACtB4K,KAAI,OAAgB5K,GACpB6K,MAAK,QAAgB7K,GACrBoW,SAAQ,WAAgBpW,GACxByN,MAAK,QAAgBzN,GACrB0Q,QAAO,UAAgB1Q,GACvBqW,SAAQ,WAAgBrW,GACxBiE,WAAU,aAAgBjE,GAC1BkE,WAAU,aAAgBlE,IAGtBM,GACG,OADHA,GAEG,OAGH8B,GAEY,iBAFZA,GAGY,SAGZkU,GACK,QADLA,GAEK,QAFLA,GAGK,QAHLA,GAIK,SAULC,cACJ,SAAAA,EAAYta,EAASwB,GAKnB,GAAsB,oBAAXoR,EACT,MAAM,IAAIxE,UAAU,mEAItBlP,KAAKqb,YAAiB,EACtBrb,KAAKsb,SAAiB,EACtBtb,KAAKub,YAAiB,GACtBvb,KAAKwb,eAAiB,GACtBxb,KAAKgT,QAAiB,KAGtBhT,KAAKc,QAAUA,EACfd,KAAKsC,OAAUtC,KAAKoK,WAAW9H,GAC/BtC,KAAKyb,IAAU,KAEfzb,KAAK0b,2CAmCPC,OAAAA,WACE3b,KAAKqb,YAAa,KAGpBO,QAAAA,WACE5b,KAAKqb,YAAa,KAGpBQ,cAAAA,WACE7b,KAAKqb,YAAcrb,KAAKqb,cAG1BjU,OAAAA,SAAOpD,GACL,GAAKhE,KAAKqb,WAIV,GAAIrX,EAAO,CACT,IAAM8X,EAAU9b,KAAKoU,YAAYxP,SAC7BqQ,EAAU/U,EAAE8D,EAAMgO,eAAevL,KAAKqV,GAErC7G,IACHA,EAAU,IAAIjV,KAAKoU,YACjBpQ,EAAMgO,cACNhS,KAAK+b,sBAEP7b,EAAE8D,EAAMgO,eAAevL,KAAKqV,EAAS7G,IAGvCA,EAAQuG,eAAeQ,OAAS/G,EAAQuG,eAAeQ,MAEnD/G,EAAQgH,uBACVhH,EAAQiH,OAAO,KAAMjH,GAErBA,EAAQkH,OAAO,KAAMlH,OAElB,CACL,GAAI/U,EAAEF,KAAKoc,iBAAiBlW,SAASf,IAEnC,YADAnF,KAAKmc,OAAO,KAAMnc,MAIpBA,KAAKkc,OAAO,KAAMlc,UAItB4F,QAAAA,WACEiH,aAAa7M,KAAKsb,UAElBpb,EAAE2F,WAAW7F,KAAKc,QAASd,KAAKoU,YAAYxP,UAE5C1E,EAAEF,KAAKc,SAASgL,IAAI9L,KAAKoU,YAAYvP,WACrC3E,EAAEF,KAAKc,SAASiF,QAAQ,UAAU+F,IAAI,iBAElC9L,KAAKyb,KACPvb,EAAEF,KAAKyb,KAAKpV,SAGdrG,KAAKqb,WAAiB,KACtBrb,KAAKsb,SAAiB,KACtBtb,KAAKub,YAAiB,MACtBvb,KAAKwb,eAAiB,QAClBxb,KAAKgT,SACPhT,KAAKgT,QAAQgB,UAGfhU,KAAKgT,QAAU,KACfhT,KAAKc,QAAU,KACfd,KAAKsC,OAAU,KACftC,KAAKyb,IAAU,QAGjB5K,KAAAA,WAAO,IAAA9Q,EAAAC,KACL,GAAuC,SAAnCE,EAAEF,KAAKc,SAASQ,IAAI,WACtB,MAAM,IAAI+B,MAAM,uCAGlB,IAAMoQ,EAAYvT,EAAE6E,MAAM/E,KAAKoU,YAAYrP,MAAM0K,MACjD,GAAIzP,KAAKqc,iBAAmBrc,KAAKqb,WAAY,CAC3Cnb,EAAEF,KAAKc,SAASgB,QAAQ2R,GAExB,IAAM6I,EAAalc,EAAKmD,eAAevD,KAAKc,SACtCyb,EAAarc,EAAEyH,SACJ,OAAf2U,EAAsBA,EAAatc,KAAKc,QAAQ0b,cAAchZ,gBAC9DxD,KAAKc,SAGP,GAAI2S,EAAU/N,uBAAyB6W,EACrC,OAGF,IAAMd,EAAQzb,KAAKoc,gBACbK,EAAQrc,EAAKG,OAAOP,KAAKoU,YAAYzP,MAE3C8W,EAAI1T,aAAa,KAAM0U,GACvBzc,KAAKc,QAAQiH,aAAa,mBAAoB0U,GAE9Czc,KAAK0c,aAED1c,KAAKsC,OAAO8X,WACdla,EAAEub,GAAKpN,SAASlJ,IAGlB,IAAMoP,EAA8C,mBAA1BvU,KAAKsC,OAAOiS,UAClCvU,KAAKsC,OAAOiS,UAAU3R,KAAK5C,KAAMyb,EAAKzb,KAAKc,SAC3Cd,KAAKsC,OAAOiS,UAEVoI,EAAa3c,KAAK4c,eAAerI,GACvCvU,KAAK6c,mBAAmBF,GAExB,IAAMlC,EAAYza,KAAK8c,gBACvB5c,EAAEub,GAAKhV,KAAKzG,KAAKoU,YAAYxP,SAAU5E,MAElCE,EAAEyH,SAAS3H,KAAKc,QAAQ0b,cAAchZ,gBAAiBxD,KAAKyb,MAC/Dvb,EAAEub,GAAKrD,SAASqC,GAGlBva,EAAEF,KAAKc,SAASgB,QAAQ9B,KAAKoU,YAAYrP,MAAMkW,UAE/Cjb,KAAKgT,QAAU,IAAIU,EAAO1T,KAAKc,QAAS2a,EAAK,CAC3ClH,UAAWoI,EACXhI,UAAW,CACTjC,OAAQ,CACNA,OAAQ1S,KAAKsC,OAAOoQ,QAEtBC,KAAM,CACJoK,SAAU/c,KAAKsC,OAAOoY,mBAExBsC,MAAO,CACLlc,QAASmG,IAEX4N,gBAAiB,CACfC,kBAAmB9U,KAAKsC,OAAOsQ,WAGnCqK,SAAU,SAACxW,GACLA,EAAKyW,oBAAsBzW,EAAK8N,WAClCxU,EAAKod,6BAA6B1W,IAGtC2W,SAAU,SAAC3W,GAAD,OAAU1G,EAAKod,6BAA6B1W,MAGxDvG,EAAEub,GAAKpN,SAASlJ,IAMZ,iBAAkBxE,SAAS6C,iBAC7BtD,EAAES,SAASkT,MAAMzF,WAAWvH,GAAG,YAAa,KAAM3G,EAAE4T,MAGtD,IAAMuJ,EAAW,WACXtd,EAAKuC,OAAO8X,WACdra,EAAKud,iBAEP,IAAMC,EAAiBxd,EAAKwb,YAC5Bxb,EAAKwb,YAAkB,KAEvBrb,EAAEH,EAAKe,SAASgB,QAAQ/B,EAAKqU,YAAYrP,MAAM2K,OAE3C6N,IAAmBvC,IACrBjb,EAAKoc,OAAO,KAAMpc,IAItB,GAAIG,EAAEF,KAAKyb,KAAKvV,SAASf,IAAiB,CACxC,IAAM9D,EAAqBjB,EAAKgB,iCAAiCpB,KAAKyb,KAEtEvb,EAAEF,KAAKyb,KACJtb,IAAIC,EAAKR,eAAgByd,GACzBtZ,qBAAqB1C,QAExBgc,QAKNzM,KAAAA,SAAKmH,GAAU,IAAA5L,EAAAnM,KACPyb,EAAYzb,KAAKoc,gBACjBrI,EAAY7T,EAAE6E,MAAM/E,KAAKoU,YAAYrP,MAAM4K,MAC3C0N,EAAW,WACXlR,EAAKoP,cAAgBP,IAAmBS,EAAI7X,YAC9C6X,EAAI7X,WAAWoW,YAAYyB,GAG7BtP,EAAKqR,iBACLrR,EAAKrL,QAAQqW,gBAAgB,oBAC7BjX,EAAEiM,EAAKrL,SAASgB,QAAQqK,EAAKiI,YAAYrP,MAAM6K,QAC1B,OAAjBzD,EAAK6G,SACP7G,EAAK6G,QAAQgB,UAGX+D,GACFA,KAMJ,GAFA7X,EAAEF,KAAKc,SAASgB,QAAQiS,IAEpBA,EAAUrO,qBAAd,CAgBA,GAZAxF,EAAEub,GAAKxV,YAAYd,IAIf,iBAAkBxE,SAAS6C,iBAC7BtD,EAAES,SAASkT,MAAMzF,WAAWtC,IAAI,YAAa,KAAM5L,EAAE4T,MAGvD9T,KAAKwb,eAAeL,KAAiB,EACrCnb,KAAKwb,eAAeL,KAAiB,EACrCnb,KAAKwb,eAAeL,KAAiB,EAEjCjb,EAAEF,KAAKyb,KAAKvV,SAASf,IAAiB,CACxC,IAAM9D,EAAqBjB,EAAKgB,iCAAiCqa,GAEjEvb,EAAEub,GACCtb,IAAIC,EAAKR,eAAgByd,GACzBtZ,qBAAqB1C,QAExBgc,IAGFrd,KAAKub,YAAc,OAGrBtH,OAAAA,WACuB,OAAjBjU,KAAKgT,SACPhT,KAAKgT,QAAQkB,oBAMjBmI,cAAAA,WACE,OAAOra,QAAQhC,KAAKyd,eAGtBZ,mBAAAA,SAAmBF,GACjBzc,EAAEF,KAAKoc,iBAAiB/N,SAAY6L,GAApC,IAAoDyC,MAGtDP,cAAAA,WAEE,OADApc,KAAKyb,IAAMzb,KAAKyb,KAAOvb,EAAEF,KAAKsC,OAAO+X,UAAU,GACxCra,KAAKyb,OAGdiB,WAAAA,WACE,IAAMjB,EAAMzb,KAAKoc,gBACjBpc,KAAK0d,kBAAkBxd,EAAEub,EAAI3O,iBAAiB7F,KAA0BjH,KAAKyd,YAC7Evd,EAAEub,GAAKxV,YAAed,GAAtB,IAAwCA,OAG1CuY,kBAAAA,SAAkBlX,EAAUmX,GAC1B,IAAMnD,EAAOxa,KAAKsC,OAAOkY,KACF,iBAAZmD,IAAyBA,EAAQxb,UAAYwb,EAAQhM,QAE1D6I,EACGta,EAAEyd,GAAS7X,SAASxB,GAAGkC,IAC1BA,EAASoX,QAAQC,OAAOF,GAG1BnX,EAASsX,KAAK5d,EAAEyd,GAASG,QAG3BtX,EAASgU,EAAO,OAAS,QAAQmD,MAIrCF,SAAAA,WACE,IAAInD,EAAQta,KAAKc,QAAQE,aAAa,uBAQtC,OANKsZ,IACHA,EAAqC,mBAAtBta,KAAKsC,OAAOgY,MACvBta,KAAKsC,OAAOgY,MAAM1X,KAAK5C,KAAKc,SAC5Bd,KAAKsC,OAAOgY,OAGXA,KAKTwC,cAAAA,WACE,OAA8B,IAA1B9c,KAAKsC,OAAOmY,UACP9Z,SAASkT,KAGdzT,EAAK6B,UAAUjC,KAAKsC,OAAOmY,WACtBva,EAAEF,KAAKsC,OAAOmY,WAGhBva,EAAES,UAAUod,KAAK/d,KAAKsC,OAAOmY,cAGtCmC,eAAAA,SAAerI,GACb,OAAO9B,GAAc8B,EAAUjR,kBAGjCoY,cAAAA,WAAgB,IAAApP,EAAAtM,KACGA,KAAKsC,OAAOR,QAAQH,MAAM,KAElCkV,QAAQ,SAAC/U,GAChB,GAAgB,UAAZA,EACF5B,EAAEoM,EAAKxL,SAAS+F,GACdyF,EAAK8H,YAAYrP,MAAMuN,MACvBhG,EAAKhK,OAAOvB,SACZ,SAACiD,GAAD,OAAWsI,EAAKlF,OAAOpD,UAEpB,GAAIlC,IAAYqZ,GAAgB,CACrC,IAAM6C,EAAUlc,IAAYqZ,GACxB7O,EAAK8H,YAAYrP,MAAM+D,WACvBwD,EAAK8H,YAAYrP,MAAMwQ,QACrB0I,EAAWnc,IAAYqZ,GACzB7O,EAAK8H,YAAYrP,MAAMgE,WACvBuD,EAAK8H,YAAYrP,MAAMmW,SAE3Bhb,EAAEoM,EAAKxL,SACJ+F,GACCmX,EACA1R,EAAKhK,OAAOvB,SACZ,SAACiD,GAAD,OAAWsI,EAAK4P,OAAOlY,KAExB6C,GACCoX,EACA3R,EAAKhK,OAAOvB,SACZ,SAACiD,GAAD,OAAWsI,EAAK6P,OAAOnY,QAK/B9D,EAAEF,KAAKc,SAASiF,QAAQ,UAAUc,GAChC,gBACA,WACMyF,EAAKxL,SACPwL,EAAKsE,SAKP5Q,KAAKsC,OAAOvB,SACdf,KAAKsC,OAALyJ,EAAA,GACK/L,KAAKsC,OADV,CAEER,QAAS,SACTf,SAAU,KAGZf,KAAKke,eAITA,UAAAA,WACE,IAAMC,SAAmBne,KAAKc,QAAQE,aAAa,wBAE/ChB,KAAKc,QAAQE,aAAa,UAA0B,WAAdmd,KACxCne,KAAKc,QAAQiH,aACX,sBACA/H,KAAKc,QAAQE,aAAa,UAAY,IAGxChB,KAAKc,QAAQiH,aAAa,QAAS,QAIvCmU,OAAAA,SAAOlY,EAAOiR,GACZ,IAAM6G,EAAU9b,KAAKoU,YAAYxP,UACjCqQ,EAAUA,GAAW/U,EAAE8D,EAAMgO,eAAevL,KAAKqV,MAG/C7G,EAAU,IAAIjV,KAAKoU,YACjBpQ,EAAMgO,cACNhS,KAAK+b,sBAEP7b,EAAE8D,EAAMgO,eAAevL,KAAKqV,EAAS7G,IAGnCjR,IACFiR,EAAQuG,eACS,YAAfxX,EAAMwD,KAAqB2T,GAAgBA,KACzC,GAGFjb,EAAE+U,EAAQmH,iBAAiBlW,SAASf,KAAmB8P,EAAQsG,cAAgBP,GACjF/F,EAAQsG,YAAcP,IAIxBnO,aAAaoI,EAAQqG,UAErBrG,EAAQsG,YAAcP,GAEjB/F,EAAQ3S,OAAOiY,OAAUtF,EAAQ3S,OAAOiY,MAAM1J,KAKnDoE,EAAQqG,SAAWjb,WAAW,WACxB4U,EAAQsG,cAAgBP,IAC1B/F,EAAQpE,QAEToE,EAAQ3S,OAAOiY,MAAM1J,MARtBoE,EAAQpE,WAWZsL,OAAAA,SAAOnY,EAAOiR,GACZ,IAAM6G,EAAU9b,KAAKoU,YAAYxP,UACjCqQ,EAAUA,GAAW/U,EAAE8D,EAAMgO,eAAevL,KAAKqV,MAG/C7G,EAAU,IAAIjV,KAAKoU,YACjBpQ,EAAMgO,cACNhS,KAAK+b,sBAEP7b,EAAE8D,EAAMgO,eAAevL,KAAKqV,EAAS7G,IAGnCjR,IACFiR,EAAQuG,eACS,aAAfxX,EAAMwD,KAAsB2T,GAAgBA,KAC1C,GAGFlG,EAAQgH,yBAIZpP,aAAaoI,EAAQqG,UAErBrG,EAAQsG,YAAcP,GAEjB/F,EAAQ3S,OAAOiY,OAAUtF,EAAQ3S,OAAOiY,MAAM3J,KAKnDqE,EAAQqG,SAAWjb,WAAW,WACxB4U,EAAQsG,cAAgBP,IAC1B/F,EAAQrE,QAETqE,EAAQ3S,OAAOiY,MAAM3J,MARtBqE,EAAQrE,WAWZqL,qBAAAA,WACE,IAAK,IAAMna,KAAW9B,KAAKwb,eACzB,GAAIxb,KAAKwb,eAAe1Z,GACtB,OAAO,EAIX,OAAO,KAGTsI,WAAAA,SAAW9H,GA4BT,MArB4B,iBAN5BA,EAAMyJ,EAAA,GACD/L,KAAKoU,YAAYlM,QACjBhI,EAAEF,KAAKc,SAAS2F,OACE,iBAAXnE,GAAuBA,EAASA,EAAS,KAGnCiY,QAChBjY,EAAOiY,MAAQ,CACb1J,KAAMvO,EAAOiY,MACb3J,KAAMtO,EAAOiY,QAIW,iBAAjBjY,EAAOgY,QAChBhY,EAAOgY,MAAQhY,EAAOgY,MAAMtX,YAGA,iBAAnBV,EAAOqb,UAChBrb,EAAOqb,QAAUrb,EAAOqb,QAAQ3a,YAGlC5C,EAAKgC,gBACHuC,GACArC,EACAtC,KAAKoU,YAAY3L,aAGZnG,KAGTyZ,mBAAAA,WACE,IAAMzZ,EAAS,GAEf,GAAItC,KAAKsC,OACP,IAAK,IAAM8b,KAAOpe,KAAKsC,OACjBtC,KAAKoU,YAAYlM,QAAQkW,KAASpe,KAAKsC,OAAO8b,KAChD9b,EAAO8b,GAAOpe,KAAKsC,OAAO8b,IAKhC,OAAO9b,KAGTkb,eAAAA,WACE,IAAMa,EAAOne,EAAEF,KAAKoc,iBACdkC,EAAWD,EAAKhN,KAAK,SAASpO,MAAMkX,IACzB,OAAbmE,GAAqBA,EAAS1S,QAChCyS,EAAKpY,YAAYqY,EAASC,KAAK,QAInCpB,6BAAAA,SAA6BqB,GAC3B,IAAMC,EAAiBD,EAAWE,SAClC1e,KAAKyb,IAAMgD,EAAeE,OAC1B3e,KAAKwd,iBACLxd,KAAK6c,mBAAmB7c,KAAK4c,eAAe4B,EAAWjK,eAGzD+I,eAAAA,WACE,IAAM7B,EAAMzb,KAAKoc,gBACXwC,EAAsB5e,KAAKsC,OAAO8X,UAEA,OAApCqB,EAAIza,aAAa,iBAIrBd,EAAEub,GAAKxV,YAAYd,IACnBnF,KAAKsC,OAAO8X,WAAY,EACxBpa,KAAK4Q,OACL5Q,KAAK6Q,OACL7Q,KAAKsC,OAAO8X,UAAYwE,MAKnBtY,iBAAAA,SAAiBhE,GACtB,OAAOtC,KAAKuG,KAAK,WACf,IAAIE,EAAOvG,EAAEF,MAAMyG,KAAK7B,IAClBuF,EAA4B,iBAAX7H,GAAuBA,EAE9C,IAAKmE,IAAQ,eAAerD,KAAKd,MAI5BmE,IACHA,EAAO,IAAI2U,EAAQpb,KAAMmK,GACzBjK,EAAEF,MAAMyG,KAAK7B,GAAU6B,IAGH,iBAAXnE,GAAqB,CAC9B,GAA4B,oBAAjBmE,EAAKnE,GACd,MAAM,IAAI4M,UAAJ,oBAAkC5M,EAAlC,KAERmE,EAAKnE,iDAnkBT,MAtHuB,wCA0HvB,OAAO4F,gCAIP,OAAOvD,oCAIP,OAAOC,iCAIP,OAAOG,qCAIP,OAAOF,uCAIP,OAAO4D,YAujBXvI,EAAE4D,GAAGa,IAAQyW,GAAQ9U,iBACrBpG,EAAE4D,GAAGa,IAAMmC,YAAcsU,GACzBlb,EAAE4D,GAAGa,IAAMoC,WAAa,WAEtB,OADA7G,EAAE4D,GAAGa,IAAQG,GACNsW,GAAQ9U,kBC3sBjB,IAAM3B,GAAsB,UAEtBC,GAAsB,aACtBC,GAAS,IAAiBD,GAC1BE,GAAsB5E,EAAE4D,GAAGa,IAC3BuV,GAAsB,aACtBC,GAAsB,IAAIhX,OAAJ,UAAqB+W,GAArB,OAAyC,KAE/DhS,GAAO6D,EAAA,GACRqP,GAAQlT,QADA,CAEXqM,UAAY,QACZzS,QAAY,QACZ6b,QAAY,GACZtD,SAAY,wIAMR5R,GAAWsD,EAAA,GACZqP,GAAQ3S,YADI,CAEfkV,QAAU,8BAGNxY,GACG,OADHA,GAEG,OAGH8B,GACM,kBADNA,GAEM,gBAGNlC,GAAQ,CACZ4K,KAAI,OAAgB9K,GACpB+K,OAAM,SAAgB/K,GACtB4K,KAAI,OAAgB5K,GACpB6K,MAAK,QAAgB7K,GACrBoW,SAAQ,WAAgBpW,GACxByN,MAAK,QAAgBzN,GACrB0Q,QAAO,UAAgB1Q,GACvBqW,SAAQ,WAAgBrW,GACxBiE,WAAU,aAAgBjE,GAC1BkE,WAAU,aAAgBlE,IAStBga,2LAiCJxC,cAAAA,WACE,OAAOrc,KAAKyd,YAAczd,KAAK8e,iBAGjCjC,mBAAAA,SAAmBF,GACjBzc,EAAEF,KAAKoc,iBAAiB/N,SAAY6L,GAApC,IAAoDyC,MAGtDP,cAAAA,WAEE,OADApc,KAAKyb,IAAMzb,KAAKyb,KAAOvb,EAAEF,KAAKsC,OAAO+X,UAAU,GACxCra,KAAKyb,OAGdiB,WAAAA,WACE,IAAM2B,EAAOne,EAAEF,KAAKoc,iBAGpBpc,KAAK0d,kBAAkBW,EAAKN,KAAK9W,IAAiBjH,KAAKyd,YACvD,IAAIE,EAAU3d,KAAK8e,cACI,mBAAZnB,IACTA,EAAUA,EAAQ/a,KAAK5C,KAAKc,UAE9Bd,KAAK0d,kBAAkBW,EAAKN,KAAK9W,IAAmB0W,GAEpDU,EAAKpY,YAAed,GAApB,IAAsCA,OAKxC2Z,YAAAA,WACE,OAAO9e,KAAKc,QAAQE,aAAa,iBAC/BhB,KAAKsC,OAAOqb,WAGhBH,eAAAA,WACE,IAAMa,EAAOne,EAAEF,KAAKoc,iBACdkC,EAAWD,EAAKhN,KAAK,SAASpO,MAAMkX,IACzB,OAAbmE,GAAuC,EAAlBA,EAAS1S,QAChCyS,EAAKpY,YAAYqY,EAASC,KAAK,QAM5BjY,iBAAAA,SAAiBhE,GACtB,OAAOtC,KAAKuG,KAAK,WACf,IAAIE,EAAOvG,EAAEF,MAAMyG,KAAK7B,IAClBuF,EAA4B,iBAAX7H,EAAsBA,EAAS,KAEtD,IAAKmE,IAAQ,eAAerD,KAAKd,MAI5BmE,IACHA,EAAO,IAAIoY,EAAQ7e,KAAMmK,GACzBjK,EAAEF,MAAMyG,KAAK7B,GAAU6B,IAGH,iBAAXnE,GAAqB,CAC9B,GAA4B,oBAAjBmE,EAAKnE,GACd,MAAM,IAAI4M,UAAJ,oBAAkC5M,EAAlC,KAERmE,EAAKnE,iDA3FT,MAxDwB,wCA4DxB,OAAO4F,gCAIP,OAAOvD,oCAIP,OAAOC,iCAIP,OAAOG,qCAIP,OAAOF,uCAIP,OAAO4D,UA5BW2S,IA2GtBlb,EAAE4D,GAAGa,IAAQka,GAAQvY,iBACrBpG,EAAE4D,GAAGa,IAAMmC,YAAc+X,GACzB3e,EAAE4D,GAAGa,IAAMoC,WAAa,WAEtB,OADA7G,EAAE4D,GAAGa,IAAQG,GACN+Z,GAAQvY,kBCpKjB,IAAM3B,GAAqB,YAErBC,GAAqB,eACrBC,GAAS,IAAgBD,GAEzBE,GAAqB5E,EAAE4D,GAAGa,IAE1BuD,GAAU,CACdwK,OAAS,GACTqM,OAAS,OACT1a,OAAS,IAGLoE,GAAc,CAClBiK,OAAS,SACTqM,OAAS,SACT1a,OAAS,oBAGLU,GAAQ,CACZia,SAAQ,WAAmBna,GAC3Boa,OAAM,SAAmBpa,GACzByE,cAAa,OAAUzE,GAlBE,aAqBrBM,GACY,gBADZA,GAGY,SAGZ8B,GACc,sBADdA,GAGc,oBAHdA,GAIc,YAJdA,GAKc,YALdA,GAMc,mBANdA,GAOc,YAPdA,GAQc,iBARdA,GASc,mBAGdiY,GACO,SADPA,GAEO,WASPC,cACJ,SAAAA,EAAYre,EAASwB,GAAQ,IAAAvC,EAAAC,KAC3BA,KAAKqF,SAAiBvE,EACtBd,KAAKof,eAAqC,SAApBte,EAAQmM,QAAqBvC,OAAS5J,EAC5Dd,KAAKmK,QAAiBnK,KAAKoK,WAAW9H,GACtCtC,KAAKuQ,UAAoBvQ,KAAKmK,QAAQ9F,OAAhB,IAA0B4C,GAA1B,IACGjH,KAAKmK,QAAQ9F,OADhB,IAC0B4C,GAD1B,IAEGjH,KAAKmK,QAAQ9F,OAFhB,IAE0B4C,GAChDjH,KAAKqf,SAAiB,GACtBrf,KAAKsf,SAAiB,GACtBtf,KAAKuf,cAAiB,KACtBvf,KAAKwf,cAAiB,EAEtBtf,EAAEF,KAAKof,gBAAgBvY,GAAG9B,GAAMka,OAAQ,SAACjb,GAAD,OAAWjE,EAAK0f,SAASzb,KAEjEhE,KAAK0f,UACL1f,KAAKyf,sCAePC,QAAAA,WAAU,IAAAvT,EAAAnM,KACF2f,EAAa3f,KAAKof,iBAAmBpf,KAAKof,eAAe1U,OAC3DwU,GAAsBA,GAEpBU,EAAuC,SAAxB5f,KAAKmK,QAAQ4U,OAC9BY,EAAa3f,KAAKmK,QAAQ4U,OAExBc,EAAaD,IAAiBV,GAChClf,KAAK8f,gBAAkB,EAE3B9f,KAAKqf,SAAW,GAChBrf,KAAKsf,SAAW,GAEhBtf,KAAKwf,cAAgBxf,KAAK+f,mBAEV,GAAG5S,MAAMvK,KAAKjC,SAASmM,iBAAiB9M,KAAKuQ,YAG1DyP,IAAI,SAAClf,GACJ,IAAIuD,EACE4b,EAAiB7f,EAAKS,uBAAuBC,GAMnD,GAJImf,IACF5b,EAAS1D,SAASQ,cAAc8e,IAG9B5b,EAAQ,CACV,IAAM6b,EAAY7b,EAAOmN,wBACzB,GAAI0O,EAAUpG,OAASoG,EAAUC,OAE/B,MAAO,CACLjgB,EAAEmE,GAAQub,KAAgBQ,IAAMP,EAChCI,GAIN,OAAO,OAER5P,OAAO,SAACgQ,GAAD,OAAUA,IACjBC,KAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAE,GAAKC,EAAE,KACxB3J,QAAQ,SAACwJ,GACRlU,EAAKkT,SAAS7O,KAAK6P,EAAK,IACxBlU,EAAKmT,SAAS9O,KAAK6P,EAAK,SAI9Bza,QAAAA,WACE1F,EAAE2F,WAAW7F,KAAKqF,SAAUT,IAC5B1E,EAAEF,KAAKof,gBAAgBtT,IAAIjH,IAE3B7E,KAAKqF,SAAiB,KACtBrF,KAAKof,eAAiB,KACtBpf,KAAKmK,QAAiB,KACtBnK,KAAKuQ,UAAiB,KACtBvQ,KAAKqf,SAAiB,KACtBrf,KAAKsf,SAAiB,KACtBtf,KAAKuf,cAAiB,KACtBvf,KAAKwf,cAAiB,QAKxBpV,WAAAA,SAAW9H,GAMT,GAA6B,iBAL7BA,EAAMyJ,EAAA,GACD7D,GACkB,iBAAX5F,GAAuBA,EAASA,EAAS,KAGnC+B,OAAqB,CACrC,IAAI4L,EAAK/P,EAAEoC,EAAO+B,QAAQgN,KAAK,MAC1BpB,IACHA,EAAK7P,EAAKG,OAAOoE,IACjBzE,EAAEoC,EAAO+B,QAAQgN,KAAK,KAAMpB,IAE9B3N,EAAO+B,OAAP,IAAoB4L,EAKtB,OAFA7P,EAAKgC,gBAAgBuC,GAAMrC,EAAQmG,IAE5BnG,KAGTwd,cAAAA,WACE,OAAO9f,KAAKof,iBAAmB1U,OAC3B1K,KAAKof,eAAeqB,YAAczgB,KAAKof,eAAehI,aAG5D2I,iBAAAA,WACE,OAAO/f,KAAKof,eAAe5G,cAAgB/X,KAAKigB,IAC9C/f,SAASkT,KAAK2E,aACd7X,SAAS6C,gBAAgBgV,iBAI7BmI,iBAAAA,WACE,OAAO3gB,KAAKof,iBAAmB1U,OAC3BA,OAAOkW,YAAc5gB,KAAKof,eAAe5N,wBAAwB2O,UAGvEV,SAAAA,WACE,IAAMrI,EAAepX,KAAK8f,gBAAkB9f,KAAKmK,QAAQuI,OACnD8F,EAAexY,KAAK+f,mBACpBc,EAAe7gB,KAAKmK,QAAQuI,OAChC8F,EACAxY,KAAK2gB,mBAMP,GAJI3gB,KAAKwf,gBAAkBhH,GACzBxY,KAAK0f,UAGUmB,GAAbzJ,EAAJ,CACE,IAAM/S,EAASrE,KAAKsf,SAAStf,KAAKsf,SAAS1T,OAAS,GAEhD5L,KAAKuf,gBAAkBlb,GACzBrE,KAAK8gB,UAAUzc,OAJnB,CASA,GAAIrE,KAAKuf,eAAiBnI,EAAYpX,KAAKqf,SAAS,IAAyB,EAAnBrf,KAAKqf,SAAS,GAGtE,OAFArf,KAAKuf,cAAgB,UACrBvf,KAAK+gB,SAKP,IADA,IACSzR,EADYtP,KAAKqf,SAASzT,OACR0D,KAAM,CACRtP,KAAKuf,gBAAkBvf,KAAKsf,SAAShQ,IACxD8H,GAAapX,KAAKqf,SAAS/P,KACM,oBAAzBtP,KAAKqf,SAAS/P,EAAI,IACtB8H,EAAYpX,KAAKqf,SAAS/P,EAAI,KAGpCtP,KAAK8gB,UAAU9gB,KAAKsf,SAAShQ,SAKnCwR,UAAAA,SAAUzc,GACRrE,KAAKuf,cAAgBlb,EAErBrE,KAAK+gB,SAEL,IAAMC,EAAUhhB,KAAKuQ,UAClB5O,MAAM,KACNqe,IAAI,SAACjf,GAAD,OAAiBA,EAAjB,iBAA0CsD,EAA1C,MAAsDtD,EAAtD,UAAwEsD,EAAxE,OAED4c,EAAQ/gB,EAAE,GAAGiN,MAAMvK,KAAKjC,SAASmM,iBAAiBkU,EAAQzC,KAAK,QAEjE0C,EAAM/a,SAASf,KACjB8b,EAAMlb,QAAQkB,IAAmB8W,KAAK9W,IAA0BoH,SAASlJ,IACzE8b,EAAM5S,SAASlJ,MAGf8b,EAAM5S,SAASlJ,IAGf8b,EAAMC,QAAQja,IAAyBiE,KAAQjE,GAA/C,KAAsEA,IAAuBoH,SAASlJ,IAEtG8b,EAAMC,QAAQja,IAAyBiE,KAAKjE,IAAoBmH,SAASnH,IAAoBoH,SAASlJ,KAGxGjF,EAAEF,KAAKof,gBAAgBtd,QAAQiD,GAAMia,SAAU,CAC7CrR,cAAetJ,OAInB0c,OAAAA,WACE,GAAG5T,MAAMvK,KAAKjC,SAASmM,iBAAiB9M,KAAKuQ,YAC1CF,OAAO,SAAC8Q,GAAD,OAAUA,EAAKzZ,UAAUC,SAASxC,MACzC0R,QAAQ,SAACsK,GAAD,OAAUA,EAAKzZ,UAAUrB,OAAOlB,SAKtCmB,iBAAAA,SAAiBhE,GACtB,OAAOtC,KAAKuG,KAAK,WACf,IAAIE,EAAOvG,EAAEF,MAAMyG,KAAK7B,IAQxB,GALK6B,IACHA,EAAO,IAAI0Y,EAAUnf,KAHW,iBAAXsC,GAAuBA,GAI5CpC,EAAEF,MAAMyG,KAAK7B,GAAU6B,IAGH,iBAAXnE,EAAqB,CAC9B,GAA4B,oBAAjBmE,EAAKnE,GACd,MAAM,IAAI4M,UAAJ,oBAAkC5M,EAAlC,KAERmE,EAAKnE,iDAtMT,MA3EuB,wCA+EvB,OAAO4F,YA8MXhI,EAAEwK,QAAQ7D,GAAG9B,GAAMuE,cAAe,WAIhC,IAHA,IAAM8X,EAAa,GAAGjU,MAAMvK,KAAKjC,SAASmM,iBAAiB7F,KAGlDqI,EAFgB8R,EAAWxV,OAEL0D,KAAM,CACnC,IAAM+R,EAAOnhB,EAAEkhB,EAAW9R,IAC1B6P,GAAU7Y,iBAAiB1D,KAAKye,EAAMA,EAAK5a,WAU/CvG,EAAE4D,GAAGa,IAAQwa,GAAU7Y,iBACvBpG,EAAE4D,GAAGa,IAAMmC,YAAcqY,GACzBjf,EAAE4D,GAAGa,IAAMoC,WAAa,WAEtB,OADA7G,EAAE4D,GAAGa,IAAQG,GACNqa,GAAU7Y,kBClTnB,IAEM1B,GAAqB,SACrBC,GAAS,IAAgBD,GAEzBE,GAAqB5E,EAAE4D,GAAF,IAErBiB,GAAQ,CACZ4K,KAAI,OAAoB9K,GACxB+K,OAAM,SAAoB/K,GAC1B4K,KAAI,OAAoB5K,GACxB6K,MAAK,QAAoB7K,GACzBK,eAAc,QAAWL,GARA,aAWrBM,GACY,gBADZA,GAEY,SAFZA,GAGY,WAHZA,GAIY,OAJZA,GAKY,OAGZ8B,GACoB,YADpBA,GAEoB,oBAFpBA,GAGoB,UAHpBA,GAIoB,iBAJpBA,GAKoB,kEALpBA,GAMoB,mBANpBA,GAOoB,2BASpBqa,cACJ,SAAAA,EAAYxgB,GACVd,KAAKqF,SAAWvE,6BAWlB+P,KAAAA,WAAO,IAAA9Q,EAAAC,KACL,KAAIA,KAAKqF,SAASzB,YACd5D,KAAKqF,SAASzB,WAAWzB,WAAa6U,KAAKC,cAC3C/W,EAAEF,KAAKqF,UAAUa,SAASf,KAC1BjF,EAAEF,KAAKqF,UAAUa,SAASf,KAH9B,CAOA,IAAId,EACAkd,EACEC,EAActhB,EAAEF,KAAKqF,UAAUU,QAAQkB,IAAyB,GAChElG,EAAWX,EAAKS,uBAAuBb,KAAKqF,UAElD,GAAImc,EAAa,CACf,IAAMC,EAAwC,OAAzBD,EAAYE,UAA8C,OAAzBF,EAAYE,SAAoBza,GAAqBA,GAE3Gsa,GADAA,EAAWrhB,EAAEyhB,UAAUzhB,EAAEshB,GAAazD,KAAK0D,KACvBF,EAAS3V,OAAS,GAGxC,IAAMmI,EAAY7T,EAAE6E,MAAMA,GAAM4K,KAAM,CACpChC,cAAe3N,KAAKqF,WAGhBoO,EAAYvT,EAAE6E,MAAMA,GAAM0K,KAAM,CACpC9B,cAAe4T,IASjB,GANIA,GACFrhB,EAAEqhB,GAAUzf,QAAQiS,GAGtB7T,EAAEF,KAAKqF,UAAUvD,QAAQ2R,IAErBA,EAAU/N,uBACVqO,EAAUrO,qBADd,CAKI3E,IACFsD,EAAS1D,SAASQ,cAAcJ,IAGlCf,KAAK8gB,UACH9gB,KAAKqF,SACLmc,GAGF,IAAMnE,EAAW,WACf,IAAMuE,EAAc1hB,EAAE6E,MAAMA,GAAM6K,OAAQ,CACxCjC,cAAe5N,EAAKsF,WAGhBiS,EAAapX,EAAE6E,MAAMA,GAAM2K,MAAO,CACtC/B,cAAe4T,IAGjBrhB,EAAEqhB,GAAUzf,QAAQ8f,GACpB1hB,EAAEH,EAAKsF,UAAUvD,QAAQwV,IAGvBjT,EACFrE,KAAK8gB,UAAUzc,EAAQA,EAAOT,WAAYyZ,GAE1CA,SAIJzX,QAAAA,WACE1F,EAAE2F,WAAW7F,KAAKqF,SAAUT,IAC5B5E,KAAKqF,SAAW,QAKlByb,UAAAA,SAAUhgB,EAAS2Z,EAAW1C,GAAU,IAAA5L,EAAAnM,KAKhC6hB,IAJiBpH,GAAqC,OAAvBA,EAAUiH,UAA4C,OAAvBjH,EAAUiH,SAE1ExhB,EAAEua,GAAWrM,SAASnH,IADtB/G,EAAEua,GAAWsD,KAAK9W,KAGQ,GACxByK,EAAkBqG,GAAa8J,GAAU3hB,EAAE2hB,GAAQ3b,SAASf,IAC5DkY,EAAW,WAAA,OAAMlR,EAAK2V,oBAC1BhhB,EACA+gB,EACA9J,IAGF,GAAI8J,GAAUnQ,EAAiB,CAC7B,IAAMrQ,EAAqBjB,EAAKgB,iCAAiCygB,GAEjE3hB,EAAE2hB,GACC5b,YAAYd,IACZhF,IAAIC,EAAKR,eAAgByd,GACzBtZ,qBAAqB1C,QAExBgc,OAIJyE,oBAAAA,SAAoBhhB,EAAS+gB,EAAQ9J,GACnC,GAAI8J,EAAQ,CACV3hB,EAAE2hB,GAAQ5b,YAAYd,IAEtB,IAAM4c,EAAgB7hB,EAAE2hB,EAAOje,YAAYma,KACzC9W,IACA,GAEE8a,GACF7hB,EAAE6hB,GAAe9b,YAAYd,IAGK,QAAhC0c,EAAO7gB,aAAa,SACtB6gB,EAAO9Z,aAAa,iBAAiB,GAYzC,GARA7H,EAAEY,GAASuN,SAASlJ,IACiB,QAAjCrE,EAAQE,aAAa,SACvBF,EAAQiH,aAAa,iBAAiB,GAGxC3H,EAAKwB,OAAOd,GACZZ,EAAEY,GAASuN,SAASlJ,IAEhBrE,EAAQ8C,YAAc1D,EAAEY,EAAQ8C,YAAYsC,SAASf,IAA0B,CACjF,IAAM6c,EAAkB9hB,EAAEY,GAASiF,QAAQkB,IAAmB,GAE9D,GAAI+a,EAAiB,CACnB,IAAMC,EAAqB,GAAG9U,MAAMvK,KAAKof,EAAgBlV,iBAAiB7F,KAE1E/G,EAAE+hB,GAAoB5T,SAASlJ,IAGjCrE,EAAQiH,aAAa,iBAAiB,GAGpCgQ,GACFA,OAMGzR,iBAAAA,SAAiBhE,GACtB,OAAOtC,KAAKuG,KAAK,WACf,IAAMwL,EAAQ7R,EAAEF,MACZyG,EAAOsL,EAAMtL,KAAK7B,IAOtB,GALK6B,IACHA,EAAO,IAAI6a,EAAIthB,MACf+R,EAAMtL,KAAK7B,GAAU6B,IAGD,iBAAXnE,EAAqB,CAC9B,GAA4B,oBAAjBmE,EAAKnE,GACd,MAAM,IAAI4M,UAAJ,oBAAkC5M,EAAlC,KAERmE,EAAKnE,iDAlKT,MA9CuB,iBA4N3BpC,EAAES,UACCkG,GAAG9B,GAAMG,eAAgB+B,GAAsB,SAAUjD,GACxDA,EAAM4C,iBACN0a,GAAIhb,iBAAiB1D,KAAK1C,EAAEF,MAAO,UASvCE,EAAE4D,GAAF,IAAawd,GAAIhb,iBACjBpG,EAAE4D,GAAF,IAAWgD,YAAcwa,GACzBphB,EAAE4D,GAAF,IAAWiD,WAAa,WAEtB,OADA7G,EAAE4D,GAAF,IAAagB,GACNwc,GAAIhb,kBC7Ob,IAAM3B,GAAqB,QAErBC,GAAqB,WACrBC,GAAS,IAAgBD,GACzBE,GAAqB5E,EAAE4D,GAAGa,IAE1BI,GAAQ,CACZ0Q,cAAa,gBAAmB5Q,GAChC8K,KAAI,OAAmB9K,GACvB+K,OAAM,SAAmB/K,GACzB4K,KAAI,OAAmB5K,GACvB6K,MAAK,QAAmB7K,IAGpBM,GACM,OADNA,GAEM,OAFNA,GAGM,OAHNA,GAIM,UAGNsD,GAAc,CAClB2R,UAAY,UACZ8H,SAAY,UACZ3H,MAAY,UAGRrS,GAAU,CACdkS,WAAY,EACZ8H,UAAY,EACZ3H,MAAY,KAGRtT,GACW,yBASXkb,cACJ,SAAAA,EAAYrhB,EAASwB,GACnBtC,KAAKqF,SAAWvE,EAChBd,KAAKmK,QAAWnK,KAAKoK,WAAW9H,GAChCtC,KAAKsb,SAAW,KAChBtb,KAAK0b,2CAeP7K,KAAAA,WAAO,IAAA9Q,EAAAC,KACLE,EAAEF,KAAKqF,UAAUvD,QAAQiD,GAAM0K,MAE3BzP,KAAKmK,QAAQiQ,WACfpa,KAAKqF,SAASqC,UAAUsF,IAAI7H,IAG9B,IAAMkY,EAAW,WACftd,EAAKsF,SAASqC,UAAUrB,OAAOlB,IAC/BpF,EAAKsF,SAASqC,UAAUsF,IAAI7H,IAE5BjF,EAAEH,EAAKsF,UAAUvD,QAAQiD,GAAM2K,OAE3B3P,EAAKoK,QAAQ+X,UACfniB,EAAK6Q,QAMT,GAFA5Q,KAAKqF,SAASqC,UAAUrB,OAAOlB,IAC/BnF,KAAKqF,SAASqC,UAAUsF,IAAI7H,IACxBnF,KAAKmK,QAAQiQ,UAAW,CAC1B,IAAM/Y,EAAqBjB,EAAKgB,iCAAiCpB,KAAKqF,UAEtEnF,EAAEF,KAAKqF,UACJlF,IAAIC,EAAKR,eAAgByd,GACzBtZ,qBAAqB1C,QAExBgc,OAIJzM,KAAAA,SAAKwR,GAAgB,IAAAjW,EAAAnM,KACdA,KAAKqF,SAASqC,UAAUC,SAASxC,MAItCjF,EAAEF,KAAKqF,UAAUvD,QAAQiD,GAAM4K,MAE3ByS,EACFpiB,KAAKqiB,SAELriB,KAAKsb,SAAWjb,WAAW,WACzB8L,EAAKkW,UACJriB,KAAKmK,QAAQoQ,WAIpB3U,QAAAA,WACEiH,aAAa7M,KAAKsb,UAClBtb,KAAKsb,SAAW,KAEZtb,KAAKqF,SAASqC,UAAUC,SAASxC,KACnCnF,KAAKqF,SAASqC,UAAUrB,OAAOlB,IAGjCjF,EAAEF,KAAKqF,UAAUyG,IAAI/G,GAAM0Q,eAE3BvV,EAAE2F,WAAW7F,KAAKqF,SAAUT,IAC5B5E,KAAKqF,SAAW,KAChBrF,KAAKmK,QAAW,QAKlBC,WAAAA,SAAW9H,GAaT,OAZAA,EAAMyJ,EAAA,GACD7D,GACAhI,EAAEF,KAAKqF,UAAUoB,OACC,iBAAXnE,GAAuBA,EAASA,EAAS,IAGrDlC,EAAKgC,gBACHuC,GACArC,EACAtC,KAAKoU,YAAY3L,aAGZnG,KAGToZ,cAAAA,WAAgB,IAAApP,EAAAtM,KACdE,EAAEF,KAAKqF,UAAUwB,GACf9B,GAAM0Q,cACNxO,GACA,WAAA,OAAMqF,EAAKsE,MAAK,QAIpByR,OAAAA,WAAS,IAAA7T,EAAAxO,KACDqd,EAAW,WACf7O,EAAKnJ,SAASqC,UAAUsF,IAAI7H,IAC5BjF,EAAEsO,EAAKnJ,UAAUvD,QAAQiD,GAAM6K,SAIjC,GADA5P,KAAKqF,SAASqC,UAAUrB,OAAOlB,IAC3BnF,KAAKmK,QAAQiQ,UAAW,CAC1B,IAAM/Y,EAAqBjB,EAAKgB,iCAAiCpB,KAAKqF,UAEtEnF,EAAEF,KAAKqF,UACJlF,IAAIC,EAAKR,eAAgByd,GACzBtZ,qBAAqB1C,QAExBgc,OAMG/W,iBAAAA,SAAiBhE,GACtB,OAAOtC,KAAKuG,KAAK,WACf,IAAMC,EAAWtG,EAAEF,MACfyG,EAAaD,EAASC,KAAK7B,IAQ/B,GALK6B,IACHA,EAAO,IAAI0b,EAAMniB,KAHgB,iBAAXsC,GAAuBA,GAI7CkE,EAASC,KAAK7B,GAAU6B,IAGJ,iBAAXnE,EAAqB,CAC9B,GAA4B,oBAAjBmE,EAAKnE,GACd,MAAM,IAAI4M,UAAJ,oBAAkC5M,EAAlC,KAGRmE,EAAKnE,GAAQtC,kDArIjB,MArDuB,4CAyDvB,OAAOyI,YA6IXvI,EAAE4D,GAAGa,IAAoBwd,GAAM7b,iBAC/BpG,EAAE4D,GAAGa,IAAMmC,YAAcqb,GACzBjiB,EAAE4D,GAAGa,IAAMoC,WAAc,WAEvB,OADA7G,EAAE4D,GAAGa,IAAQG,GACNqd,GAAM7b,kBCtMf,WACE,GAAiB,oBAANpG,EACT,MAAM,IAAIgP,UAAU,kGAGtB,IAAMoT,EAAUpiB,EAAE4D,GAAG6N,OAAOhQ,MAAM,KAAK,GAAGA,MAAM,KAOhD,GAAI2gB,EAAQ,GALI,GAKYA,EAAQ,GAJnB,GAFA,IAMoCA,EAAQ,IAJ5C,IAI+DA,EAAQ,IAAmBA,EAAQ,GAHlG,GACA,GAEmHA,EAAQ,GAC1I,MAAM,IAAIjf,MAAM,+EAbpB","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.2.1): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\nconst TRANSITION_END = 'transitionend'\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nfunction toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nfunction getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined // eslint-disable-line no-undefined\n }\n }\n}\n\nfunction transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n}\n\nfunction setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst Util = {\n\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n return selector && document.querySelector(selector) ? selector : null\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n let transitionDelay = $(element).css('transition-delay')\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n // TODO: Remove in v5\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n },\n\n findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return Util.findShadowRoot(element.parentNode)\n }\n}\n\nsetTransitionEndSupport()\n\nexport default Util\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.2.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.2.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Selector = {\n DISMISS : '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE : `close${EVENT_KEY}`,\n CLOSED : `closed${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT : 'alert',\n FADE : 'fade',\n SHOW : 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n if (!parent) {\n parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(Event.CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(ClassName.SHOW)\n\n if (!$(element).hasClass(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(Event.CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(\n Event.CLICK_DATA_API,\n Selector.DISMISS,\n Alert._handleDismiss(new Alert())\n)\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Alert._jQueryInterface\n$.fn[NAME].Constructor = Alert\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.2.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.2.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst ClassName = {\n ACTIVE : 'active',\n BUTTON : 'btn',\n FOCUS : 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n DATA_TOGGLE : '[data-toggle=\"buttons\"]',\n INPUT : 'input:not([type=\"hidden\"])',\n ACTIVE : '.active',\n BUTTON : '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n Selector.DATA_TOGGLE\n )[0]\n\n if (rootElement) {\n const input = this._element.querySelector(Selector.INPUT)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = rootElement.querySelector(Selector.ACTIVE)\n\n if (activeElement) {\n $(activeElement).removeClass(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n event.preventDefault()\n\n let button = event.target\n\n if (!$(button).hasClass(ClassName.BUTTON)) {\n button = $(button).closest(Selector.BUTTON)\n }\n\n Button._jQueryInterface.call($(button), 'toggle')\n })\n .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(Selector.BUTTON)[0]\n $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Button._jQueryInterface\n$.fn[NAME].Constructor = Button\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.2.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.2.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true,\n touch : true\n}\n\nconst DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean',\n touch : 'boolean'\n}\n\nconst Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n}\n\nconst Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n TOUCHSTART : `touchstart${EVENT_KEY}`,\n TOUCHMOVE : `touchmove${EVENT_KEY}`,\n TOUCHEND : `touchend${EVENT_KEY}`,\n POINTERDOWN : `pointerdown${EVENT_KEY}`,\n POINTERUP : `pointerup${EVENT_KEY}`,\n DRAG_START : `dragstart${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item',\n POINTER_EVENT : 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n ITEM_IMG : '.carousel-item img',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH : 'touch',\n PEN : 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = this._element.querySelector(Selector.INDICATORS)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (this._element.querySelector(Selector.NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = this._element.querySelector(Selector.ACTIVE_ITEM)\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? Direction.NEXT\n : Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element)\n .on(Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(Event.MOUSEENTER, (event) => this.pause(event))\n .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n }\n\n this._addTouchEventListeners()\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = (event) => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchStartX = event.originalEvent.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.originalEvent.touches[0].clientX\n }\n }\n\n const move = (event) => {\n // ensure swiping with one touch and not pinching\n if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = (event) => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.originalEvent.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n $(this._element.querySelectorAll(Selector.ITEM_IMG)).on(Event.DRAG_START, (e) => e.preventDefault())\n if (this._pointerEvent) {\n $(this._element).on(Event.POINTERDOWN, (event) => start(event))\n $(this._element).on(Event.POINTERUP, (event) => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n $(this._element).on(Event.TOUCHSTART, (event) => start(event))\n $(this._element).on(Event.TOUCHMOVE, (event) => move(event))\n $(this._element).on(Event.TOUCHEND, (event) => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode\n ? [].slice.call(element.parentNode.querySelectorAll(Selector.ITEM))\n : []\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(this._element.querySelector(Selector.ACTIVE_ITEM))\n const slideEvent = $.Event(Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(Selector.ACTIVE))\n $(indicators)\n .removeClass(ClassName.ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = this._element.querySelector(Selector.ACTIVE_ITEM)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(ClassName.SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(ClassName.ACTIVE)\n\n $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(ClassName.ACTIVE)\n $(nextElement).addClass(ClassName.ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n$(window).on(Event.LOAD_DATA_API, () => {\n const carousels = [].slice.call(document.querySelectorAll(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n const $carousel = $(carousels[i])\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Carousel._jQueryInterface\n$.fn[NAME].Constructor = Carousel\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.2.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.2.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n toggle : true,\n parent : ''\n}\n\nconst DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n}\n\nconst Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n}\n\nconst Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n}\n\nconst Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = [].slice.call(document.querySelectorAll(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = Util.getSelectorFromElement(elem)\n const filterElement = [].slice.call(document.querySelectorAll(selector))\n .filter((foundElem) => foundElem === element)\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(Selector.ACTIVES))\n .filter((elem) => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(Event.SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(ClassName.COLLAPSE)\n .addClass(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(ClassName.COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .addClass(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n const startEvent = $.Event(Event.HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(ClassName.COLLAPSING)\n .removeClass(ClassName.COLLAPSE)\n .removeClass(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const $elem = $([].slice.call(document.querySelectorAll(selector)))\n if (!$elem.hasClass(ClassName.SHOW)) {\n $(trigger).addClass(ClassName.COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .trigger(Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let parent\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = document.querySelector(this._config.parent)\n }\n\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n const children = [].slice.call(parent.querySelectorAll(selector))\n $(children).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n const isOpen = $(element).hasClass(ClassName.SHOW)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? document.querySelector(selector) : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n const selectors = [].slice.call(document.querySelectorAll(selector))\n\n $(selectors).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Collapse._jQueryInterface\n$.fn[NAME].Constructor = Collapse\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.2.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.2.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED : 'disabled',\n SHOW : 'show',\n DROPUP : 'dropup',\n DROPRIGHT : 'dropright',\n DROPLEFT : 'dropleft',\n MENURIGHT : 'dropdown-menu-right',\n MENULEFT : 'dropdown-menu-left',\n POSITION_STATIC : 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n MENU : '.dropdown-menu',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP : 'top-start',\n TOPEND : 'top-end',\n BOTTOM : 'bottom-start',\n BOTTOMEND : 'bottom-end',\n RIGHT : 'right-start',\n RIGHTEND : 'right-end',\n LEFT : 'left-start',\n LEFTEND : 'left-end'\n}\n\nconst Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic'\n}\n\nconst DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org/)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(ClassName.POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(Selector.NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.SHOWN, relatedTarget))\n }\n\n show() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED) || $(this._menu).hasClass(ClassName.SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.SHOWN, relatedTarget))\n }\n\n hide() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED) || !$(this._menu).hasClass(ClassName.SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.HIDDEN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(Event.CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = parent.querySelector(Selector.MENU)\n }\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element.parentNode)\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getPopperConfig() {\n const offsetConf = {}\n if (typeof this._config.offset === 'function') {\n offsetConf.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets) || {}\n }\n return data\n }\n } else {\n offsetConf.offset = this._config.offset\n }\n\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: offsetConf,\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n return popperConfig\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE))\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n $(dropdownMenu).removeClass(ClassName.SHOW)\n $(parent)\n .removeClass(ClassName.SHOW)\n .trigger($.Event(Event.HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n const toggle = parent.querySelector(Selector.DATA_TOGGLE)\n $(toggle).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = [].slice.call(parent.querySelectorAll(Selector.VISIBLE_ITEMS))\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Dropdown._jQueryInterface\n$.fn[NAME].Constructor = Dropdown\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n}\n\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.2.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.2.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n}\n\nconst DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n}\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n DIALOG : '.modal-dialog',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT : '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = element.querySelector(Selector.DIALOG)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = $.Event(Event.HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(Event.FOCUSIN)\n\n $(this._element).removeClass(ClassName.SHOW)\n\n $(this._element).off(Event.CLICK_DISMISS)\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach((htmlElement) => $(htmlElement).off(EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n $(document).off(Event.FOCUSIN)\n\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.scrollTop = 0\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(Event.FOCUSIN) // Guard against infinite focus loop\n .on(Event.FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(ClassName.FADE)\n ? ClassName.FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT))\n const stickyContent = [].slice.call(document.querySelectorAll(Selector.STICKY_CONTENT))\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n\n $(document.body).addClass(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT))\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${Selector.STICKY_CONTENT}`))\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n $(document.body).removeData('padding-right')\n document.body.style.paddingRight = padding ? padding : ''\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(Event.SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(Event.HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Modal._jQueryInterface\n$.fn[NAME].Constructor = Modal\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.2.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.2.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)'\n}\n\nconst AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n}\n\nconst Default = {\n animation : true,\n template : '
' +\n '
' +\n '
',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent'\n}\n\nconst HoverState = {\n SHOW : 'show',\n OUT : 'out'\n}\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n TOOLTIP : '.tooltip',\n TOOLTIP_INNER : '.tooltip-inner',\n ARROW : '.arrow'\n}\n\nconst Trigger = {\n HOVER : 'hover',\n FOCUS : 'focus',\n CLICK : 'click',\n MANUAL : 'manual'\n}\n\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org/)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal')\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const shadowRoot = Util.findShadowRoot(this.element)\n const isInTheDom = $.contains(\n shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: {\n offset: this.config.offset\n },\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => this._handlePopperPlacementChange(data)\n })\n\n $(tip).addClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if ($(this.tip).hasClass(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent($(tip.querySelectorAll(Selector.TOOLTIP_INNER)), this.getTitle())\n $(tip).removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n setElementContent($element, content) {\n const html = this.config.html\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n } else {\n $element[html ? 'html' : 'text'](content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (Util.isElement(this.config.container)) {\n return $(this.config.container)\n }\n\n return $(document).find(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(\n eventIn,\n this.config.selector,\n (event) => this._enter(event)\n )\n .on(\n eventOut,\n this.config.selector,\n (event) => this._leave(event)\n )\n }\n })\n\n $(this.element).closest('.modal').on(\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this.element).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n $(tip).removeClass(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tooltip._jQueryInterface\n$.fn[NAME].Constructor = Tooltip\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.2.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.2.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '
' +\n '
' +\n '

' +\n '
'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n}\n\nconst ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n TITLE : '.popover-header',\n CONTENT : '.popover-body'\n}\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(Selector.CONTENT), content)\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Popover._jQueryInterface\n$.fn[NAME].Constructor = Popover\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.2.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.2.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n offset : 10,\n method : 'auto',\n target : ''\n}\n\nconst DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n}\n\nconst Event = {\n ACTIVATE : `activate${EVENT_KEY}`,\n SCROLL : `scroll${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM : 'dropdown-item',\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active'\n}\n\nconst Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n NAV_LIST_GROUP : '.nav, .list-group',\n NAV_LINKS : '.nav-link',\n NAV_ITEMS : '.nav-item',\n LIST_ITEMS : '.list-group-item',\n DROPDOWN : '.dropdown',\n DROPDOWN_ITEMS : '.dropdown-item',\n DROPDOWN_TOGGLE : '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET : 'offset',\n POSITION : 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? OffsetMethod.OFFSET : OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = [].slice.call(document.querySelectorAll(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = document.querySelector(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window\n ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector\n .split(',')\n .map((selector) => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))\n\n if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n $link.addClass(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(ClassName.ACTIVE)\n // Set triggered links parents as active\n // With both