From e579dd596cee09d809aaf087e5f30abc6317d0fe Mon Sep 17 00:00:00 2001 From: Thanakorn Date: Thu, 24 Sep 2026 14:30:22 +0700 Subject: [PATCH 1/5] Start every session through session.php; idle timeout, app access and auth status codes --- app/ac_dashboard/api/engine/by_source.php | 2 +- app/ac_dashboard/api/engine/journals.php | 2 +- app/ac_dashboard/api/engine/pl.php | 2 +- .../api/engine/posting_window.php | 2 +- app/ac_dashboard/api/engine/recent.php | 2 +- app/ac_dashboard/api/engine/trend.php | 2 +- app/ac_dashboard/index.php | 2 +- app/accounting/account_formulas.php | 2 +- app/accounting/api/engine/account.php | 2 +- app/accounting/api/engine/account_formula.php | 2 +- app/accounting/api/engine/account_stats.php | 2 +- app/accounting/api/engine/acquire_op_lock.php | 2 +- app/accounting/api/engine/department.php | 2 +- .../api/engine/department_stats.php | 2 +- .../api/engine/get_balance_sheet.php | 2 +- .../api/engine/get_gl_by_source.php | 2 +- .../api/engine/get_gl_documents.php | 2 +- app/accounting/api/engine/get_gl_movement.php | 2 +- .../api/engine/get_journal_detail.php | 2 +- .../api/engine/get_journal_listing.php | 2 +- .../api/engine/get_pl_statement.php | 2 +- .../api/engine/get_trial_balance.php | 2 +- app/accounting/api/engine/get_vat_report.php | 2 +- .../api/engine/log_batch_action.php | 2 +- app/accounting/api/engine/manage_account.php | 2 +- .../api/engine/manage_department.php | 2 +- app/accounting/api/engine/post_gl_entry.php | 2 +- app/accounting/api/engine/posting_window.php | 2 +- .../api/engine/product_account_mapping.php | 2 +- app/accounting/api/engine/release_op_lock.php | 2 +- app/accounting/api/engine/remove_account.php | 2 +- .../api/engine/remove_department.php | 2 +- .../api/engine/retrieve_account.php | 2 +- .../api/engine/retrieve_department.php | 2 +- .../api/engine/save_manual_journal.php | 2 +- app/accounting/balance_sheet.php | 2 +- app/accounting/chart_of_accounts.php | 2 +- app/accounting/departments.php | 2 +- app/accounting/gl_entries.php | 2 +- app/accounting/gl_movement.php | 2 +- app/accounting/journal_listing.php | 2 +- app/accounting/manage_account.php | 2 +- app/accounting/manage_department.php | 2 +- app/accounting/pl_statement.php | 2 +- app/accounting/posting_window.php | 2 +- app/accounting/trial_balance.php | 2 +- app/accounting/vat_report.php | 2 +- app/assets/js/custom.js | 11 ++++ app/assets/utils/app_access.php | 37 ++++++++++++++ app/assets/utils/db_auth.php | 34 +++++++++++-- app/contact/api/engine/contact.php | 2 +- app/contact/api/engine/contact_stats.php | 2 +- app/contact/api/engine/contact_type.php | 2 +- app/contact/api/engine/manage_contact.php | 2 +- .../api/engine/manage_contact_type.php | 2 +- app/contact/api/engine/remove_contact.php | 2 +- .../api/engine/remove_contact_type.php | 2 +- app/contact/api/engine/retrieve_contact.php | 2 +- .../api/engine/retrieve_contact_type.php | 2 +- app/contact/contact.php | 2 +- app/contact/manage_contact.php | 2 +- app/contact/manage_contact_type.php | 2 +- app/dashboard/api/engine_report/low_stock.php | 2 +- .../api/engine_report/reports_stats.php | 2 +- app/dashboard/index.php | 2 +- app/dashboard/low_stock_products.php | 2 +- .../api/engine/convert_purchase_request.php | 2 +- .../engine/delete_supplier_credit_note.php | 2 +- .../api/engine/manage_purchase_request.php | 2 +- .../engine/manage_supplier_credit_note.php | 2 +- .../api/engine/retrieve_purchase_request.php | 2 +- .../engine/update_purchase_request_status.php | 2 +- app/expense/manage_purchase_invoice.php | 2 +- app/expense/manage_purchase_order.php | 2 +- app/expense/manage_purchase_request.php | 2 +- app/expense/manage_supplier_credit_note.php | 2 +- app/expense/purchase_invoice.php | 2 +- app/expense/purchase_order.php | 2 +- app/expense/purchase_request.php | 2 +- app/finance/api/engine/delete_payment.php | 2 +- .../api/engine/delete_payment_billing.php | 2 +- app/finance/api/engine/delete_receipt.php | 2 +- .../api/engine/delete_receipt_billing.php | 2 +- app/finance/api/engine/manage_payment.php | 2 +- .../api/engine/manage_payment_billing.php | 2 +- app/finance/api/engine/manage_receipt.php | 2 +- .../api/engine/manage_receipt_billing.php | 2 +- app/finance/manage_payment.php | 2 +- app/finance/manage_payment_billing.php | 2 +- app/finance/manage_receipt.php | 2 +- app/finance/manage_receipt_billing.php | 2 +- app/finance/payment.php | 2 +- app/finance/payment_billing.php | 2 +- app/finance/receipt.php | 2 +- app/finance/receipt_billing.php | 2 +- app/ics/api/engine/approve_stock.php | 2 +- app/ics/api/engine/barcode_lookup.php | 2 +- app/ics/api/engine/contact_search.php | 2 +- app/ics/api/engine/delete_stock_in.php | 2 +- app/ics/api/engine/delete_stock_out.php | 2 +- app/ics/api/engine/delete_stock_transfer.php | 2 +- app/ics/api/engine/location_barcode_label.php | 2 +- app/ics/api/engine/manage_stock_in.php | 2 +- app/ics/api/engine/manage_stock_out.php | 2 +- app/ics/api/engine/manage_stock_transfer.php | 2 +- app/ics/api/engine/product_search.php | 2 +- app/ics/api/engine/retrieve_active_lot.php | 2 +- app/ics/api/engine/retrieve_active_serial.php | 2 +- app/ics/api/engine/retrieve_aisle.php | 2 +- app/ics/api/engine/retrieve_bin.php | 2 +- app/ics/api/engine/retrieve_bin_stock.php | 2 +- app/ics/api/engine/retrieve_lot.php | 2 +- .../api/engine/retrieve_stock_by_source.php | 2 +- app/ics/api/engine/retrieve_stock_in.php | 2 +- app/ics/api/engine/retrieve_stock_out.php | 2 +- .../api/engine/retrieve_stock_transfer.php | 2 +- app/ics/api/engine/retrieve_warehouse.php | 2 +- app/ics/api/engine/retrieve_zone.php | 2 +- app/ics/api/engine/sku_barcode_label.php | 2 +- app/ics/api/engine/sku_label_lots.php | 2 +- app/ics/api/engine/sku_label_products.php | 2 +- app/ics/api/engine/stock_in.php | 2 +- app/ics/api/engine/stock_out.php | 2 +- app/ics/api/engine/stock_transfer.php | 2 +- app/ics/api/engine/validate_scan_location.php | 2 +- app/ics/api/engine_report/product_stats.php | 2 +- app/ics/api/engine_report/stock_activity.php | 2 +- app/ics/api/engine_report/stock_movement.php | 2 +- app/ics/api/engine_report/stock_trend.php | 2 +- .../api/engine_report/warehouse_balance.php | 2 +- .../api/engine_report/warehouse_overview.php | 2 +- app/ics/api/engine_report/warehouse_stats.php | 2 +- app/ics/location_barcode_label.php | 2 +- app/ics/manage_stock_in.php | 2 +- app/ics/manage_stock_out.php | 2 +- app/ics/manage_stock_transfer.php | 2 +- app/ics/sku_barcode_label.php | 2 +- app/ics/stock_in.php | 2 +- app/ics/stock_out.php | 2 +- app/ics/stock_overview.php | 2 +- app/ics/stock_transfer.php | 2 +- app/include_topbar.php | 13 +++++ app/inventory/api/engine/manage_category.php | 2 +- app/inventory/api/engine/manage_product.php | 2 +- app/inventory/api/engine/manage_storage.php | 2 +- app/inventory/api/engine/manage_warehouse.php | 2 +- app/inventory/api/engine/manager.php | 2 +- app/inventory/api/engine/product.php | 2 +- app/inventory/api/engine/product_category.php | 2 +- app/inventory/api/engine/product_stats.php | 2 +- app/inventory/api/engine/remove_category.php | 2 +- app/inventory/api/engine/remove_product.php | 2 +- app/inventory/api/engine/remove_storage.php | 2 +- app/inventory/api/engine/remove_warehouse.php | 2 +- .../api/engine/retrieve_category.php | 2 +- app/inventory/api/engine/retrieve_product.php | 2 +- app/inventory/api/engine/retrieve_storage.php | 2 +- .../api/engine/retrieve_warehouse.php | 2 +- app/inventory/api/engine/storage.php | 2 +- app/inventory/api/engine/warehouse.php | 2 +- app/inventory/api/engine/warehouse_stats.php | 2 +- app/inventory/manage_category.php | 2 +- app/inventory/manage_product.php | 2 +- app/inventory/manage_storage.php | 2 +- app/inventory/manage_warehouse.php | 2 +- app/inventory/product.php | 2 +- app/inventory/warehouse.php | 2 +- app/journal/index.php | 2 +- app/journal/new.php | 2 +- app/login/api/engine/back.php | 3 +- app/order/api/engine/cancel_order.php | 2 +- app/order/api/engine/cancel_return.php | 2 +- app/order/api/engine/confirm_order.php | 2 +- app/order/api/engine/confirm_return.php | 2 +- app/order/api/engine/delete_invoice.php | 2 +- app/order/api/engine/delete_order.php | 2 +- app/order/api/engine/delete_return.php | 2 +- app/order/api/engine/issue_invoice.php | 2 +- app/order/api/engine/manage_invoice.php | 2 +- app/order/api/engine/manage_order.php | 2 +- app/order/api/engine/manage_return.php | 2 +- .../api/engine/proceed_to_credit_note.php | 2 +- app/order/api/engine/proceed_to_invoice.php | 2 +- app/order/api/engine/retrieve_invoice.php | 2 +- app/order/api/engine/retrieve_order.php | 2 +- app/order/api/engine/retrieve_return.php | 2 +- .../api/engine/update_invoice_status.php | 2 +- app/order/api/engine/update_order_status.php | 2 +- app/order/api/engine/void_invoice.php | 2 +- app/order/invoice.php | 2 +- app/order/manage_invoice.php | 2 +- app/order/manage_order.php | 2 +- app/order/manage_return.php | 2 +- app/order/order.php | 2 +- app/order/print_invoice.php | 2 +- app/order/return.php | 2 +- app/po/api/engine/cancel_po.php | 2 +- app/po/api/engine/cancel_supplier_return.php | 2 +- app/po/api/engine/close_po.php | 2 +- app/po/api/engine/confirm_po.php | 2 +- app/po/api/engine/confirm_supplier_return.php | 2 +- app/po/api/engine/delete_po.php | 2 +- app/po/api/engine/delete_purchase_request.php | 2 +- app/po/api/engine/delete_supplier_return.php | 2 +- app/po/api/engine/manage_po.php | 2 +- app/po/api/engine/manage_supplier_return.php | 2 +- .../engine/proceed_to_purchase_invoice.php | 2 +- .../proceed_to_supplier_credit_note.php | 2 +- app/po/api/engine/receive_po.php | 2 +- app/po/api/engine/retrieve_po.php | 2 +- .../api/engine/retrieve_supplier_return.php | 2 +- app/po/api/engine/update_po_payment.php | 2 +- app/po/invoice.php | 2 +- app/po/manage_po.php | 2 +- app/po/manage_purchase_invoice.php | 2 +- app/po/manage_supplier_return.php | 2 +- app/po/po.php | 2 +- app/po/supplier_returns.php | 2 +- app/reports/api/engine_report/bin_log.php | 2 +- .../api/engine_report/bin_occupancy.php | 2 +- .../api/engine_report/expired_stock.php | 2 +- .../api/engine_report/lot_stock_log.php | 2 +- app/reports/api/engine_report/product_lot.php | 2 +- .../api/engine_report/stock_movement.php | 2 +- .../api/engine_report/stock_movement_sku.php | 2 +- app/reports/expired_stock.php | 2 +- app/reports/occupy_rack.php | 2 +- app/reports/product_lot.php | 2 +- app/reports/stock_movement.php | 2 +- app/revenue/api/engine/convert_quotation.php | 2 +- app/revenue/api/engine/delete_credit_note.php | 2 +- app/revenue/api/engine/delete_quotation.php | 2 +- app/revenue/api/engine/manage_credit_note.php | 2 +- app/revenue/api/engine/manage_order.php | 2 +- app/revenue/api/engine/manage_quotation.php | 2 +- app/revenue/api/engine/proceed_to_invoice.php | 2 +- app/revenue/api/engine/quotation_stats.php | 2 +- app/revenue/api/engine/retrieve_quotation.php | 2 +- .../api/engine/update_quotation_status.php | 2 +- app/revenue/invoice.php | 2 +- app/revenue/manage_credit_note.php | 2 +- app/revenue/manage_invoice.php | 2 +- app/revenue/manage_order.php | 2 +- app/revenue/manage_quotation.php | 2 +- app/revenue/order.php | 2 +- app/revenue/quotation.php | 2 +- app/session.php | 51 ++++++++++++++++++- app/setting/api/engine/change_password.php | 2 +- app/setting/api/engine/company_setting.php | 2 +- app/setting/api/engine/document_types.php | 2 +- app/setting/api/engine/gl_maintenance.php | 2 +- app/setting/api/engine/manage_company.php | 2 +- app/setting/api/engine/manage_profile.php | 2 +- app/setting/api/engine/manage_smtp.php | 2 +- app/setting/api/engine/manage_users.php | 2 +- app/setting/api/engine/request_reset_otp.php | 2 +- app/setting/api/engine/reset_password_otp.php | 2 +- app/setting/api/engine/retrieve_company.php | 2 +- app/setting/api/engine/retrieve_profile.php | 2 +- app/setting/api/engine/retrieve_smtp.php | 2 +- app/setting/api/engine/retrieve_users.php | 2 +- app/setting/api/engine/search_users.php | 2 +- app/setting/api/engine/stock_maintenance.php | 2 +- app/setting/api/engine/switch_branch.php | 2 +- app/setting/api/engine/test_smtp.php | 2 +- app/setting/company.php | 2 +- app/setting/document_types.php | 2 +- app/setting/gl_maintenance.php | 2 +- app/setting/profile.php | 2 +- app/setting/smtp.php | 2 +- app/setting/stock_maintenance.php | 2 +- app/setting/system_config.php | 2 +- app/setting/users.php | 2 +- 273 files changed, 409 insertions(+), 274 deletions(-) create mode 100644 app/assets/utils/app_access.php diff --git a/app/ac_dashboard/api/engine/by_source.php b/app/ac_dashboard/api/engine/by_source.php index b721ba3..edcbd83 100644 --- a/app/ac_dashboard/api/engine/by_source.php +++ b/app/ac_dashboard/api/engine/by_source.php @@ -1,5 +1,5 @@ diff --git a/app/accounting/account_formulas.php b/app/accounting/account_formulas.php index fb270db..1e7ab14 100644 --- a/app/accounting/account_formulas.php +++ b/app/accounting/account_formulas.php @@ -1,5 +1,5 @@ diff --git a/app/accounting/api/engine/account.php b/app/accounting/api/engine/account.php index dc93c73..3c3eec0 100644 --- a/app/accounting/api/engine/account.php +++ b/app/accounting/api/engine/account.php @@ -1,5 +1,5 @@ diff --git a/app/accounting/chart_of_accounts.php b/app/accounting/chart_of_accounts.php index 7f170b8..345924a 100644 --- a/app/accounting/chart_of_accounts.php +++ b/app/accounting/chart_of_accounts.php @@ -1,5 +1,5 @@ diff --git a/app/accounting/departments.php b/app/accounting/departments.php index 033fd47..0d23598 100644 --- a/app/accounting/departments.php +++ b/app/accounting/departments.php @@ -1,5 +1,5 @@ diff --git a/app/accounting/gl_entries.php b/app/accounting/gl_entries.php index c970b77..82756f2 100644 --- a/app/accounting/gl_entries.php +++ b/app/accounting/gl_entries.php @@ -1,5 +1,5 @@ diff --git a/app/accounting/gl_movement.php b/app/accounting/gl_movement.php index ae8a269..bd56062 100644 --- a/app/accounting/gl_movement.php +++ b/app/accounting/gl_movement.php @@ -1,5 +1,5 @@ diff --git a/app/accounting/journal_listing.php b/app/accounting/journal_listing.php index efed99a..0fb24a3 100644 --- a/app/accounting/journal_listing.php +++ b/app/accounting/journal_listing.php @@ -1,5 +1,5 @@ diff --git a/app/accounting/manage_account.php b/app/accounting/manage_account.php index f5da6c1..eefa1a0 100644 --- a/app/accounting/manage_account.php +++ b/app/accounting/manage_account.php @@ -1,5 +1,5 @@ diff --git a/app/accounting/manage_department.php b/app/accounting/manage_department.php index f17f99f..ee938d4 100644 --- a/app/accounting/manage_department.php +++ b/app/accounting/manage_department.php @@ -1,5 +1,5 @@ diff --git a/app/accounting/pl_statement.php b/app/accounting/pl_statement.php index 3e5907f..f7f3d99 100644 --- a/app/accounting/pl_statement.php +++ b/app/accounting/pl_statement.php @@ -1,5 +1,5 @@ diff --git a/app/accounting/posting_window.php b/app/accounting/posting_window.php index ed4b4c9..a86cee2 100644 --- a/app/accounting/posting_window.php +++ b/app/accounting/posting_window.php @@ -1,5 +1,5 @@ diff --git a/app/accounting/trial_balance.php b/app/accounting/trial_balance.php index 9ca2e24..315c3a2 100644 --- a/app/accounting/trial_balance.php +++ b/app/accounting/trial_balance.php @@ -1,5 +1,5 @@ diff --git a/app/accounting/vat_report.php b/app/accounting/vat_report.php index 1aadad4..66b44fe 100644 --- a/app/accounting/vat_report.php +++ b/app/accounting/vat_report.php @@ -1,5 +1,5 @@ diff --git a/app/assets/js/custom.js b/app/assets/js/custom.js index fe9c47e..63c1fa7 100644 --- a/app/assets/js/custom.js +++ b/app/assets/js/custom.js @@ -905,6 +905,17 @@ function ajax_request(options) { return; } + // Session ended on the server (idle timeout, not signed in, password changed): + // drop per-tab data and go back to the sign-in form. + const endedCodes = ['session_expired', 'auth_required', 'password_changed']; + if (xhr?.status === 401 && endedCodes.includes(xhr?.responseJSON?.code)) { + try { sessionStorage.clear(); } catch (e) {} + bootbox.alert(escape_html(xhr.responseJSON.message || 'Please sign in again.'), function() { + window.location.href = server_url + 'login/index.php'; + }); + return; + } + // File / payload too large (nginx 413) if (xhr?.status === 413) { bootbox.alert('The file you selected is too large. Please use an image under 2 MB and try again.'); diff --git a/app/assets/utils/app_access.php b/app/assets/utils/app_access.php new file mode 100644 index 0000000..f4036fb --- /dev/null +++ b/app/assets/utils/app_access.php @@ -0,0 +1,37 @@ + "Invalid request"])); } } // validate otp - $sql = "SELECT `password` + $sql = "SELECT `password`, license, app_access FROM user WHERE user_id = :company_id"; $sth = $pdo1->prepare($sql); @@ -68,7 +69,8 @@ if(!empty($_SESSION["login_company_id"])){ ":company_id" => $_SESSION["login_user_id"] ]); db_check($sth, $answer); - $password = $sth->fetchColumn(); + $user_row = $sth->fetch(PDO::FETCH_ASSOC) ?: []; + $password = $user_row['password'] ?? ''; /** Generate OTP */ function generateOTP($sercet_key, $time_step = 180, $length = 6){ $counter = floor($_SESSION["otpTime"] / $time_step); @@ -83,7 +85,9 @@ if(!empty($_SESSION["login_company_id"])){ $otp = generateOTP($password); if( $_SESSION["otp"]!=$otp ){ + http_response_code(401); $answer["message"] = "Your password has been reset, Please logout and login again."; + $answer["code"] = "password_changed"; exit(json_encode($answer)); } @@ -98,13 +102,29 @@ if(!empty($_SESSION["login_company_id"])){ $map = $sth->fetchAll(PDO::FETCH_ASSOC); if( count($map)==0 ){ + http_response_code(403); $answer["message"] = "Your accessibility to this company has been removed."; + $answer["code"] = "access_removed"; exit(json_encode($answer)); } $user_role = $map[0]['role'] ?? 'viewer'; $_SESSION['login_role'] = $user_role; + // App access (WMS / Accounting), re-read on every request so a change made in + // Setting → Users applies at once. Owners hold it on their own user row; + // invited users per company (same rule as login_confirm.php). + $app_access = (($user_row['license'] ?? 'owner') === 'owner') + ? ($user_row['app_access'] ?? 'wms') + : ($map[0]['app_access'] ?? 'wms'); + $_SESSION['login_app_access'] = $app_access; + + $required_app = app_access_app_for($_SERVER['SCRIPT_NAME'] ?? ''); + if ($required_app !== null && !app_access_allows($app_access, $required_app)) { + http_response_code(403); + exit(json_encode(['success' => 0, 'message' => 'Your account does not have access to this module.'])); + } + // Single-session enforcement: if a session_token was issued at login, verify // it still matches the DB. A mismatch means a newer login has taken over. if (!empty($_SESSION['session_token'])) { @@ -132,7 +152,12 @@ if(!empty($_SESSION["login_company_id"])){ // unless the engine explicitly declared itself a pre-auth route. if (empty($_SESSION['login_company_id']) && !defined('UNAUTHENTICATED_ROUTE')) { http_response_code(401); - exit(json_encode(['success' => 0, 'message' => 'Authentication required.'])); + $expired = !empty($_SESSION['_idle_expired']); + exit(json_encode([ + 'success' => 0, + 'message' => $expired ? 'Your session has expired. Please sign in again.' : 'Authentication required.', + 'code' => $expired ? 'session_expired' : 'auth_required', + ])); } // set up ANSWER @@ -153,6 +178,7 @@ if (!is_array($data)) { $data = $_POST; } else { // Truly no data received + http_response_code(400); $answer["message"] = "Request denied: No valid JSON payload or Form Data detected."; exit(json_encode($answer)); } diff --git a/app/contact/api/engine/contact.php b/app/contact/api/engine/contact.php index 7caa1a2..b359be5 100644 --- a/app/contact/api/engine/contact.php +++ b/app/contact/api/engine/contact.php @@ -1,5 +1,5 @@ diff --git a/app/contact/manage_contact.php b/app/contact/manage_contact.php index 1a50311..c33e43c 100644 --- a/app/contact/manage_contact.php +++ b/app/contact/manage_contact.php @@ -1,5 +1,5 @@ diff --git a/app/dashboard/low_stock_products.php b/app/dashboard/low_stock_products.php index b7b580b..1f52e68 100644 --- a/app/dashboard/low_stock_products.php +++ b/app/dashboard/low_stock_products.php @@ -1,5 +1,5 @@ diff --git a/app/expense/api/engine/convert_purchase_request.php b/app/expense/api/engine/convert_purchase_request.php index b225d69..010e0bd 100644 --- a/app/expense/api/engine/convert_purchase_request.php +++ b/app/expense/api/engine/convert_purchase_request.php @@ -1,5 +1,5 @@ diff --git a/app/expense/purchase_order.php b/app/expense/purchase_order.php index 6f1a71c..7904ecd 100644 --- a/app/expense/purchase_order.php +++ b/app/expense/purchase_order.php @@ -1,5 +1,5 @@ diff --git a/app/expense/purchase_request.php b/app/expense/purchase_request.php index f5a3c39..b9d16b0 100644 --- a/app/expense/purchase_request.php +++ b/app/expense/purchase_request.php @@ -1,5 +1,5 @@ diff --git a/app/finance/api/engine/delete_payment.php b/app/finance/api/engine/delete_payment.php index db37bd6..8785ed1 100644 --- a/app/finance/api/engine/delete_payment.php +++ b/app/finance/api/engine/delete_payment.php @@ -1,5 +1,5 @@ diff --git a/app/finance/receipt.php b/app/finance/receipt.php index 49c6abd..34b2d4b 100644 --- a/app/finance/receipt.php +++ b/app/finance/receipt.php @@ -1,5 +1,5 @@ diff --git a/app/ics/api/engine/approve_stock.php b/app/ics/api/engine/approve_stock.php index eb209bf..2190c1f 100644 --- a/app/ics/api/engine/approve_stock.php +++ b/app/ics/api/engine/approve_stock.php @@ -11,7 +11,7 @@ * warehouse int warehouse_id (to resolve the dynamic table) * type string 'in' | 'out' | 'transfer' */ -session_start(); +require_once __DIR__ . '/../../../session.php'; require_once '../../../assets/utils/db_auth.php'; require_once '../../../assets/utils/classes/StockManager.php'; require_once '../../../assets/utils/classes/WarehouseManager.php'; diff --git a/app/ics/api/engine/barcode_lookup.php b/app/ics/api/engine/barcode_lookup.php index 6db0793..d6edb5a 100644 --- a/app/ics/api/engine/barcode_lookup.php +++ b/app/ics/api/engine/barcode_lookup.php @@ -1,5 +1,5 @@ diff --git a/app/ics/stock_transfer.php b/app/ics/stock_transfer.php index 6c66970..625ce21 100644 --- a/app/ics/stock_transfer.php +++ b/app/ics/stock_transfer.php @@ -1,5 +1,5 @@ 0) { + ob_end_clean(); + } + header('Location: '.$server_url.'dashboard/index.php'); + exit; +} // ── User display data from session ──────────────────────────────────────────── $topbar_name = htmlspecialchars(trim(($_SESSION['login_name'] ?? '') . ' ' . ($_SESSION['login_surname'] ?? '')), ENT_QUOTES, 'UTF-8'); @@ -367,6 +379,7 @@ function log_out() { checkRequired: 0, action: 'read', onSuccess: function(res) { + try { sessionStorage.clear(); } catch (e) {} window.location.href = server_url + 'index.php'; } }); diff --git a/app/inventory/api/engine/manage_category.php b/app/inventory/api/engine/manage_category.php index 21380d0..76c21da 100644 --- a/app/inventory/api/engine/manage_category.php +++ b/app/inventory/api/engine/manage_category.php @@ -1,5 +1,5 @@ diff --git a/app/inventory/warehouse.php b/app/inventory/warehouse.php index 90307f8..c0f3e43 100644 --- a/app/inventory/warehouse.php +++ b/app/inventory/warehouse.php @@ -1,5 +1,5 @@ diff --git a/app/journal/new.php b/app/journal/new.php index 9a67953..e498b43 100644 --- a/app/journal/new.php +++ b/app/journal/new.php @@ -1,5 +1,5 @@ diff --git a/app/login/api/engine/back.php b/app/login/api/engine/back.php index 9b5daac..cf48fbd 100644 --- a/app/login/api/engine/back.php +++ b/app/login/api/engine/back.php @@ -34,7 +34,8 @@ if (!empty($_SESSION['login_user_id'])) { // Intentional 1-second delay — prevents timing attacks on session enumeration sleep(1); -session_destroy(); +// Clears the session data, deletes the session file and expires the cookie. +session_end_completely(); $answer["success"] = 1; exit(json_encode($answer)); \ No newline at end of file diff --git a/app/order/api/engine/cancel_order.php b/app/order/api/engine/cancel_order.php index 3a63187..be6f23f 100644 --- a/app/order/api/engine/cancel_order.php +++ b/app/order/api/engine/cancel_order.php @@ -1,5 +1,5 @@ diff --git a/app/order/manage_invoice.php b/app/order/manage_invoice.php index 54f4f69..5edae95 100644 --- a/app/order/manage_invoice.php +++ b/app/order/manage_invoice.php @@ -1,5 +1,5 @@ diff --git a/app/order/print_invoice.php b/app/order/print_invoice.php index 5746221..f91acb1 100644 --- a/app/order/print_invoice.php +++ b/app/order/print_invoice.php @@ -1,5 +1,5 @@ diff --git a/app/po/api/engine/cancel_po.php b/app/po/api/engine/cancel_po.php index 6d308e4..85bdc3e 100644 --- a/app/po/api/engine/cancel_po.php +++ b/app/po/api/engine/cancel_po.php @@ -1,5 +1,5 @@ diff --git a/app/po/manage_po.php b/app/po/manage_po.php index aa75577..283626c 100644 --- a/app/po/manage_po.php +++ b/app/po/manage_po.php @@ -1,5 +1,5 @@ diff --git a/app/po/supplier_returns.php b/app/po/supplier_returns.php index 911a6f5..3eaed25 100644 --- a/app/po/supplier_returns.php +++ b/app/po/supplier_returns.php @@ -1,5 +1,5 @@ diff --git a/app/reports/api/engine_report/bin_log.php b/app/reports/api/engine_report/bin_log.php index 297bb13..f54a251 100644 --- a/app/reports/api/engine_report/bin_log.php +++ b/app/reports/api/engine_report/bin_log.php @@ -1,5 +1,5 @@ diff --git a/app/reports/occupy_rack.php b/app/reports/occupy_rack.php index 908745b..b699413 100644 --- a/app/reports/occupy_rack.php +++ b/app/reports/occupy_rack.php @@ -1,5 +1,5 @@ diff --git a/app/reports/product_lot.php b/app/reports/product_lot.php index bccb40c..7503783 100644 --- a/app/reports/product_lot.php +++ b/app/reports/product_lot.php @@ -1,5 +1,5 @@ diff --git a/app/reports/stock_movement.php b/app/reports/stock_movement.php index a2f4874..a5ee3b2 100644 --- a/app/reports/stock_movement.php +++ b/app/reports/stock_movement.php @@ -1,5 +1,5 @@ diff --git a/app/revenue/api/engine/convert_quotation.php b/app/revenue/api/engine/convert_quotation.php index 5ad14ad..1451111 100644 --- a/app/revenue/api/engine/convert_quotation.php +++ b/app/revenue/api/engine/convert_quotation.php @@ -1,5 +1,5 @@ diff --git a/app/revenue/manage_credit_note.php b/app/revenue/manage_credit_note.php index a290f8e..4ba61d1 100644 --- a/app/revenue/manage_credit_note.php +++ b/app/revenue/manage_credit_note.php @@ -1,5 +1,5 @@ diff --git a/app/revenue/quotation.php b/app/revenue/quotation.php index 27b1fcf..776005a 100644 --- a/app/revenue/quotation.php +++ b/app/revenue/quotation.php @@ -1,5 +1,5 @@ diff --git a/app/session.php b/app/session.php index 3651670..b9766e2 100644 --- a/app/session.php +++ b/app/session.php @@ -1,5 +1,7 @@ 0, 'path' => $repo_name, 'domain' => '', - 'secure' => isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on', + 'secure' => $is_https, 'httponly' => true, 'samesite' => 'Lax', ]); session_start(); -} \ No newline at end of file + + // Idle timeout: a signed-in session untouched for SESSION_IDLE_SECONDS is + // cleared here, so pages redirect to the login form and API engines answer + // 401 (db_auth.php) exactly as for a visitor who never signed in. + if (!empty($_SESSION['login_company_id'])) { + $last = (int)($_SESSION['_last_activity'] ?? 0); + if ($last > 0 && (time() - $last) > SESSION_IDLE_SECONDS) { + $_SESSION = []; + session_regenerate_id(true); + $_SESSION['_idle_expired'] = true; + } else { + $_SESSION['_last_activity'] = time(); + } + } +} + +/** + * End the current session completely: server data, the session file and the + * browser cookie. Used by logout and by any flow that must force a new sign-in. + */ +if (!function_exists('session_end_completely')) { + function session_end_completely(): void { + if (session_status() !== PHP_SESSION_ACTIVE) return; + $_SESSION = []; + $p = session_get_cookie_params(); + setcookie(session_name(), '', [ + 'expires' => time() - 42000, + 'path' => $p['path'], + 'domain' => $p['domain'], + 'secure' => $p['secure'], + 'httponly' => $p['httponly'], + 'samesite' => $p['samesite'] ?? 'Lax', + ]); + session_destroy(); + } +} diff --git a/app/setting/api/engine/change_password.php b/app/setting/api/engine/change_password.php index 363dea0..4b6dcc2 100644 --- a/app/setting/api/engine/change_password.php +++ b/app/setting/api/engine/change_password.php @@ -1,5 +1,5 @@ diff --git a/app/setting/document_types.php b/app/setting/document_types.php index 0a6b4df..ff5a0f9 100644 --- a/app/setting/document_types.php +++ b/app/setting/document_types.php @@ -1,5 +1,5 @@ diff --git a/app/setting/gl_maintenance.php b/app/setting/gl_maintenance.php index 011cffb..79c470a 100644 --- a/app/setting/gl_maintenance.php +++ b/app/setting/gl_maintenance.php @@ -1,5 +1,5 @@ diff --git a/app/setting/profile.php b/app/setting/profile.php index 269fe6c..a5eaa1e 100644 --- a/app/setting/profile.php +++ b/app/setting/profile.php @@ -1,5 +1,5 @@ diff --git a/app/setting/smtp.php b/app/setting/smtp.php index 5ce9851..4d99154 100644 --- a/app/setting/smtp.php +++ b/app/setting/smtp.php @@ -1,5 +1,5 @@ diff --git a/app/setting/stock_maintenance.php b/app/setting/stock_maintenance.php index d0ea5e1..809b844 100644 --- a/app/setting/stock_maintenance.php +++ b/app/setting/stock_maintenance.php @@ -1,5 +1,5 @@ diff --git a/app/setting/system_config.php b/app/setting/system_config.php index 22a4f73..f5e7bcd 100644 --- a/app/setting/system_config.php +++ b/app/setting/system_config.php @@ -1,5 +1,5 @@ diff --git a/app/setting/users.php b/app/setting/users.php index 9b394bd..f130a69 100644 --- a/app/setting/users.php +++ b/app/setting/users.php @@ -1,5 +1,5 @@ Date: Thu, 24 Sep 2026 14:53:40 +0700 Subject: [PATCH 2/5] Harden web root, secrets and realtime auth - .htaccess: refuse .git, .env, docker, nodejs, sdlc*, scripts, archives and app internals; security headers, HSTS over TLS, optional HTTPS redirect - uploads served through app/file.php to signed-in users only - Apache/PHP hardening config for the container (ServerTokens, expose_php) - least-privilege DB account and APP_SECRET_KEY via docker/php/provision.php; SMTP passwords re-encrypted with a random IV (secret_box.php) - Socket.IO rooms from a PHP-signed token; /emit and cron refuse empty secrets - escape notification text; CLI guards on build scripts; no fixed demo password --- .htaccess | 53 +++++++++++++++ app/assets/utils/classes/SmtpManager.php | 3 +- app/assets/utils/cron_auth.php | 5 +- app/assets/utils/module/mailer.php | 3 +- app/assets/utils/secret_box.php | 48 +++++++++++++ app/config.example.php | 14 +++- app/file.php | 56 +++++++++++++++ app/include_ending.php | 34 ++++++++-- app/include_setting_sidebar.php | 5 ++ app/include_topbar.php | 10 ++- demo_seed.php | 4 +- docker-compose.yml | 5 ++ docker/init-env.sh | 12 ++++ docker/php/Dockerfile | 6 +- docker/php/apache-wms.conf | 22 ++++++ docker/php/config.php.template | 14 ++-- docker/php/entrypoint.sh | 27 +++++++- docker/php/provision.php | 71 ++++++++++++++++++++ docker/php/security.ini | 11 +++ nodejs/scheduler.js | 7 ++ nodejs/server.js | 67 +++++++++++++----- scripts/adjust_docx_whitespace.php | 6 ++ scripts/format_progress_status_html.php | 6 ++ scripts/generate_progress_status_records.php | 6 ++ scripts/generate_project_plan_docs.php | 6 ++ scripts/generate_sow.php | 6 ++ scripts/generate_work_schedule.php | 6 ++ scripts/normalize_document_dates.php | 6 ++ setup.php | 48 ++++++++++++- 29 files changed, 525 insertions(+), 42 deletions(-) create mode 100644 .htaccess create mode 100644 app/assets/utils/secret_box.php create mode 100644 app/file.php create mode 100644 docker/php/apache-wms.conf create mode 100644 docker/php/provision.php create mode 100644 docker/php/security.ini diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..ee92cda --- /dev/null +++ b/.htaccess @@ -0,0 +1,53 @@ +# wms-app — web server rules for the repository root. +# +# The whole repository sits under the web root (/wms-app/), so everything that is +# not part of the running app must be refused here: git history, .env files, +# deployment and build folders, SDLC documents, the Node server source, CLI-only +# PHP scripts and library internals. Needs AllowOverride All (docker/php/apache-wms.conf +# enables it for the container) plus mod_rewrite and mod_headers. + +Options -Indexes + + +RewriteEngine On + +# HTTP → HTTPS when the deployment says TLS is available (FORCE_HTTPS=true in the +# environment). Honours X-Forwarded-Proto so it also works behind a TLS proxy. +RewriteCond %{ENV:FORCE_HTTPS} ^true$ +RewriteCond %{HTTPS} !=on +RewriteCond %{HTTP:X-Forwarded-Proto} !=https +RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] + +# Dotfiles and dot-folders anywhere: .git, .env, .claude, .htaccess, .mcp.json … +RewriteRule (^|/)\. - [R=404,L] + +# Folders that are never served. +RewriteRule ^(nodejs|docker|sdlc|sdlc-delivery|scripts|lib|notes|docs|vendor|node_modules)(/|$) - [R=404,L] + +# Repository files at the root: build/deploy config, CLI scripts, archives, docs. +RewriteRule ^(composer\.(json|lock)|docker-compose\.ya?ml|setup\.php|demo_seed[^/]*\.php)$ - [R=404,L] +RewriteRule \.(zip|tar|gz|tgz|sql|sh|md|log|bak|old|orig|swp|dist|example|ini|yml|yaml|lock|env|pem|key|crt|map)$ - [R=404,L] + +# App internals included by the entry points, never requested directly: config, +# DB connection, shared utilities, manager classes, bundled libraries (PHPMailer +# ships get_oauth_token.php), and the page fragments. +RewriteRule ^app/(config[^/]*\.php|dbconn\.php|preset\.php)$ - [R=404,L] +RewriteRule ^app/assets/utils/ - [R=404,L] +RewriteRule ^app/include_[^/]+\.php$ - [R=404,L] + +# Uploaded files are served through a PHP gate that requires a signed-in session. +RewriteRule ^app/uploads/(.+)$ app/file.php?path=$1 [L,QSA,B] + + + +# Sent on every response (pages, API JSON, static files). Pages add a +# Content-Security-Policy of their own from include_header.php. +Header always set X-Content-Type-Options "nosniff" +Header always set X-Frame-Options "SAMEORIGIN" +Header always set Referrer-Policy "strict-origin-when-cross-origin" +Header always set Permissions-Policy "geolocation=(), microphone=(), payment=(), usb=()" +Header always unset X-Powered-By +Header unset X-Powered-By +# HSTS only means anything over HTTPS; browsers ignore it on plain HTTP. +Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" "expr=%{HTTPS} == 'on' || %{HTTP:X-Forwarded-Proto} == 'https'" + diff --git a/app/assets/utils/classes/SmtpManager.php b/app/assets/utils/classes/SmtpManager.php index f01e28a..b41556b 100644 --- a/app/assets/utils/classes/SmtpManager.php +++ b/app/assets/utils/classes/SmtpManager.php @@ -1,5 +1,6 @@ method, $this->pinkey, 0, $this->iv); + return secret_encrypt($plain, $this->pinkey); } } ?> diff --git a/app/assets/utils/cron_auth.php b/app/assets/utils/cron_auth.php index 1930b81..252c1bb 100644 --- a/app/assets/utils/cron_auth.php +++ b/app/assets/utils/cron_auth.php @@ -11,8 +11,9 @@ header('Content-Type: application/json; charset=utf-8'); require_once __DIR__ . '/../../config.php'; require_once __DIR__ . '/../../dbconn.php'; -$secret = $_SERVER['HTTP_X_CRON_SECRET'] ?? ''; -if (!defined('NODE_EMIT_SECRET') || $secret !== NODE_EMIT_SECRET) { +// An empty configured secret must never match an empty header. +$secret = (string)($_SERVER['HTTP_X_CRON_SECRET'] ?? ''); +if (!defined('NODE_EMIT_SECRET') || NODE_EMIT_SECRET === '' || !hash_equals((string)NODE_EMIT_SECRET, $secret)) { http_response_code(403); exit(json_encode(['success' => 0, 'message' => 'Forbidden'])); } diff --git a/app/assets/utils/module/mailer.php b/app/assets/utils/module/mailer.php index c53b124..fea5969 100644 --- a/app/assets/utils/module/mailer.php +++ b/app/assets/utils/module/mailer.php @@ -72,7 +72,8 @@ class mailer{ "input" => $input ]); - return openssl_decrypt(trim($input["data"]), "AES-256-CBC", $input["key"], 0, "1234567890123456" ); + require_once __DIR__ . '/../secret_box.php'; + return secret_decrypt((string)$input["data"], (string)$input["key"]); } diff --git a/app/assets/utils/secret_box.php b/app/assets/utils/secret_box.php new file mode 100644 index 0000000..af0a325 --- /dev/null +++ b/app/assets/utils/secret_box.php @@ -0,0 +1,48 @@ +": AES-256-CBC with a random IV per value and + * a key derived from APP_SECRET_KEY (config.php, from the deployment environment). + * + * Older values were encrypted with the fixed key $pinkey ("wms") and a constant IV, + * which anyone reading the source can undo. secret_decrypt() still reads that legacy + * format so existing rows keep working; setup.php re-encrypts them to v2 and every + * save writes v2. Without APP_SECRET_KEY the legacy format is written (and logged) + * so a deployment that has not set the key yet keeps sending mail. + */ + +const SECRET_BOX_LEGACY_IV = '1234567890123456'; + +function secret_box_key(): ?string { + if (!defined('APP_SECRET_KEY') || APP_SECRET_KEY === '') return null; + return hash('sha256', APP_SECRET_KEY, true); +} + +function secret_encrypt(string $plain, string $legacy_key = 'wms'): string { + $key = secret_box_key(); + if ($key === null) { + error_log('[secret_box] APP_SECRET_KEY is not set; storing a credential in the legacy format.'); + return openssl_encrypt($plain, 'AES-256-CBC', $legacy_key, 0, SECRET_BOX_LEGACY_IV); + } + $iv = random_bytes(16); + $ct = openssl_encrypt($plain, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv); + return 'v2:' . base64_encode($iv . $ct); +} + +/** Returns the plain text, or false when the value cannot be decrypted. */ +function secret_decrypt(string $stored, string $legacy_key = 'wms') { + $stored = trim($stored); + if (strncmp($stored, 'v2:', 3) === 0) { + $key = secret_box_key(); + $raw = base64_decode(substr($stored, 3), true); + if ($key === null || $raw === false || strlen($raw) <= 16) return false; + return openssl_decrypt(substr($raw, 16), 'AES-256-CBC', $key, OPENSSL_RAW_DATA, substr($raw, 0, 16)); + } + return openssl_decrypt($stored, 'AES-256-CBC', $legacy_key, 0, SECRET_BOX_LEGACY_IV); +} + +/** Whether a stored value still uses the legacy fixed-key format. */ +function secret_is_legacy(string $stored): bool { + return $stored !== '' && strncmp(trim($stored), 'v2:', 3) !== 0; +} diff --git a/app/config.example.php b/app/config.example.php index 691b6f4..f2d1c4e 100644 --- a/app/config.example.php +++ b/app/config.example.php @@ -2,13 +2,15 @@ //<><><><><><><><> MAIN CONFIG <><><><><><><><>// if(true){ - $isTest = "master"; $base_url = "/your-app-folder/"; // e.g. "/wms-app/" — folder name under web root $server_url = $base_url."app/"; $include_url = $_SERVER['DOCUMENT_ROOT'].$server_url; $db_server = "localhost"; - $db_user = "root"; + // Use a dedicated account with only SELECT, INSERT, UPDATE, DELETE, CREATE, + // INDEX, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE on wms and wms2 — + // never root (docker/php/provision.php shows the grants). + $db_user = "wms_app"; $db_pass = "YOUR_DB_PASSWORD"; $db_type = "mysql"; $db_database = "wms"; @@ -69,7 +71,13 @@ $packages = [ -// unique key — used for SMTP password encryption, keep consistent across deploys +// Key for stored SMTP passwords (assets/utils/secret_box.php): a long random +// string, e.g. `openssl rand -hex 32`. Keep it stable across deploys — changing it +// makes saved SMTP passwords unreadable. Never commit the real value. +if (!defined('APP_SECRET_KEY')) { + define('APP_SECRET_KEY', 'YOUR_APP_SECRET_KEY'); +} +// Legacy fixed key: only used to read SMTP passwords saved before APP_SECRET_KEY. $pinkey = "wms"; $SMTP = []; diff --git a/app/file.php b/app/file.php new file mode 100644 index 0000000..9ddaa21 --- /dev/null +++ b/app/file.php @@ -0,0 +1,56 @@ + request here, so the + * existing URLs keep working but an + * anonymous visitor gets 401 instead of the file. Only the upload types that + * FileUploader accepts are served, and never anything that could execute. + */ + +require_once __DIR__ . '/session.php'; + +if (empty($_SESSION['login_company_id'])) { + http_response_code(401); + exit; +} +// The session is only read from here on; release its lock so pages that load +// many images do not queue behind each other. +session_write_close(); + +$types = [ + 'jpg' => 'image/jpeg', + 'jpeg' => 'image/jpeg', + 'png' => 'image/png', + 'gif' => 'image/gif', + 'webp' => 'image/webp', + 'pdf' => 'application/pdf', +]; + +$base = realpath(__DIR__ . '/uploads'); +$rel = (string)($_GET['path'] ?? ''); +$file = $base ? realpath($base . '/' . $rel) : false; + +// realpath() resolves ../ and symlinks; anything outside uploads/ is refused. +if ($base === false || $file === false || !is_file($file) || strpos($file, $base . DIRECTORY_SEPARATOR) !== 0) { + http_response_code(404); + exit; +} + +$ext = strtolower(pathinfo($file, PATHINFO_EXTENSION)); +if (!isset($types[$ext])) { + http_response_code(404); + exit; +} + +while (ob_get_level() > 0) { + ob_end_clean(); +} + +header('Content-Type: ' . $types[$ext]); +header('Content-Length: ' . filesize($file)); +header('Content-Disposition: ' . ($ext === 'pdf' ? 'attachment' : 'inline') . '; filename="' . basename($file) . '"'); +header('Cache-Control: private, max-age=3600'); +header("Content-Security-Policy: default-src 'none'; img-src 'self'; style-src 'unsafe-inline'; sandbox"); +header('X-Content-Type-Options: nosniff'); +readfile($file); diff --git a/app/include_ending.php b/app/include_ending.php index fbbbd77..fce2fe9 100644 --- a/app/include_ending.php +++ b/app/include_ending.php @@ -7,17 +7,34 @@ + rtrim(strtr(base64_encode($s), '+/', '-_'), '='); + $_payload = $_b64url(json_encode([ + 'c' => (int)$_SESSION['login_company_id'], + 'u' => (int)($_SESSION['login_user_id'] ?? 0), + 'r' => (string)($_SESSION['login_role'] ?? 'viewer'), + 'exp' => time() + 8 * 3600, + ])); + $_socket_key = hash_hmac('sha256', 'socket-token', NODE_EMIT_SECRET, true); + $_socket_token = $_payload . '.' . $_b64url(hash_hmac('sha256', $_payload, $_socket_key, true)); +} +?> - + +
@@ -50,8 +50,8 @@
- OTP sent to - — reference + + Reference
@@ -163,8 +163,10 @@ autoPrepare: false, data: { json: JSON.stringify({ action: 'read', identifier: identifier }) }, onSuccess: function (r) { - $('#masked_email').text(r.masked_email); - $('#ref_code').text(r.reference); + // The server answers the same way whether or not the account exists, + // so there is no masked email to show — only its generic message. + $('#request_message').text(r.message || ''); + $('#ref_code').text(r.reference || ''); $('#step_request').addClass('d-none'); $('#step_reset').removeClass('d-none'); $('#subtitle').text('Enter the OTP from your email and choose a new password.'); diff --git a/app/login/index.php b/app/login/index.php index c79b10b..e898c0a 100644 --- a/app/login/index.php +++ b/app/login/index.php @@ -2,7 +2,7 @@ require '../session.php'; require '../config.php'; require_once '../assets/utils/otp_policy.php'; - require '../include_header.php'; + require __DIR__ . '/include_login_header.php'; // successful login — redirect based on app_access if(!empty($_SESSION["login_status"])){ $redirect = ($_SESSION['login_app_access'] ?? 'wms') === 'accounting' @@ -33,13 +33,9 @@
- - -
- - Email OTP is off — sign-in is password only. -
- +
@@ -144,6 +140,16 @@ + // The server ended the pending sign-in (too many wrong OTPs, or the verified + // password is too old): show why, then return to the username/password step. + function restart_login_on(xhr) { + if (xhr?.responseJSON?.code !== 'login_restart') return; + bootbox.hideAll(); + bootbox.alert(escape_html(xhr.responseJSON.message || 'Please sign in again.'), function() { + window.location.href = "login/index.php"; + }); + } + // reqquest new otp function function request_new_otp() { @@ -156,7 +162,8 @@ window.location.href = "index.php"; - } + }, + onError: restart_login_on }); } @@ -194,7 +201,8 @@ window.location.href = "index.php"; - } + }, + onError: restart_login_on }); } diff --git a/app/setting/api/engine/request_reset_otp.php b/app/setting/api/engine/request_reset_otp.php index fc9f655..6e8f708 100644 --- a/app/setting/api/engine/request_reset_otp.php +++ b/app/setting/api/engine/request_reset_otp.php @@ -1,8 +1,16 @@ handleRequestOtp($user_id, $company_id); \ No newline at end of file + $prm->handleRequestOtp($user_id, $company_id); diff --git a/app/setting/api/engine/reset_password_otp.php b/app/setting/api/engine/reset_password_otp.php index 3e9c84f..96e56c3 100644 --- a/app/setting/api/engine/reset_password_otp.php +++ b/app/setting/api/engine/reset_password_otp.php @@ -1,8 +1,13 @@ handleConfirmReset($user_id, $data); \ No newline at end of file + $prm->handleConfirmReset($user_id, $data); From 8705be0d1b532c6160aee583c65a0252e6290685 Mon Sep 17 00:00:00 2001 From: Thanakorn Date: Thu, 24 Sep 2026 14:53:40 +0700 Subject: [PATCH 4/5] Enforce roles on admin endpoints and return real status codes - users, SMTP and batch-lock endpoints are owner/admin only - engines answer 400/403/404/409/500 instead of 200 with an error body; database errors no longer leak to the client --- app/accounting/api/engine/acquire_op_lock.php | 11 +++++++++++ app/accounting/api/engine/get_gl_by_source.php | 6 ++++++ app/accounting/api/engine/get_gl_documents.php | 5 +++++ app/accounting/api/engine/get_gl_movement.php | 1 + app/accounting/api/engine/get_journal_detail.php | 5 +++++ app/accounting/api/engine/get_journal_listing.php | 5 +++++ app/accounting/api/engine/log_batch_action.php | 8 ++++++++ app/accounting/api/engine/manage_account.php | 1 + app/accounting/api/engine/manage_department.php | 1 + app/accounting/api/engine/post_gl_entry.php | 7 +++++++ app/accounting/api/engine/posting_window.php | 4 ++++ app/accounting/api/engine/release_op_lock.php | 8 ++++++++ app/accounting/api/engine/remove_account.php | 1 + app/accounting/api/engine/remove_department.php | 2 +- app/accounting/api/engine/retrieve_account.php | 2 ++ app/accounting/api/engine/retrieve_department.php | 4 ++-- app/accounting/api/engine/save_manual_journal.php | 9 +++++++++ app/contact/api/engine/manage_contact.php | 1 + app/expense/api/engine/convert_purchase_request.php | 8 ++++++++ .../api/engine/update_purchase_request_status.php | 1 + app/ics/api/engine_report/warehouse_overview.php | 1 + app/inventory/api/engine/manage_product.php | 1 + app/inventory/api/engine/manager.php | 5 +++++ app/reports/api/engine_report/stock_movement.php | 1 + app/reports/api/engine_report/stock_movement_sku.php | 1 + app/revenue/api/engine/convert_quotation.php | 7 +++++++ app/revenue/api/engine/manage_order.php | 2 ++ app/revenue/api/engine/quotation_stats.php | 5 +++++ app/revenue/api/engine/update_quotation_status.php | 1 + app/setting/api/engine/document_types.php | 6 ++++++ app/setting/api/engine/gl_maintenance.php | 1 + app/setting/api/engine/retrieve_smtp.php | 6 +++++- app/setting/api/engine/retrieve_users.php | 3 +++ app/setting/api/engine/search_users.php | 3 +++ app/setting/api/engine/stock_maintenance.php | 2 ++ 35 files changed, 131 insertions(+), 4 deletions(-) diff --git a/app/accounting/api/engine/acquire_op_lock.php b/app/accounting/api/engine/acquire_op_lock.php index 3c61654..3009691 100644 --- a/app/accounting/api/engine/acquire_op_lock.php +++ b/app/accounting/api/engine/acquire_op_lock.php @@ -3,6 +3,9 @@ require_once __DIR__ . '/../../../session.php'; require_once '../../../assets/utils/db_auth.php'; require_once '../../../assets/utils/classes/OperationLockManager.php'; +// Batch GL posting takes this lock; posting itself is owner/admin only. +require_role($user_role, ['owner', 'admin']); + try { $lock_manager = new OperationLockManager($pdo2, $company_id, $user_id); $result = $lock_manager->acquire( @@ -10,7 +13,15 @@ try { (int)($data['ttl_minutes'] ?? 120) ); $answer = array_merge($answer, $result); + if (empty($result['success'])) { + http_response_code(409); // another tab or user holds the lock + } +} catch (PDOException $e) { + error_log('[acquire_op_lock] ' . $e->getMessage()); + http_response_code(500); + $answer['message'] = 'Database error, please try again.'; } catch (Exception $e) { + http_response_code(400); $answer['message'] = $e->getMessage(); } diff --git a/app/accounting/api/engine/get_gl_by_source.php b/app/accounting/api/engine/get_gl_by_source.php index e991094..0d1b675 100644 --- a/app/accounting/api/engine/get_gl_by_source.php +++ b/app/accounting/api/engine/get_gl_by_source.php @@ -8,6 +8,7 @@ $doc_type = trim((string)($data['doc_type'] ?? '')); $source_id = (int)($data['source_id'] ?? 0); if (!$doc_type || $source_id <= 0) { + http_response_code(400); $answer['message'] = 'doc_type and source_id required.'; exit(json_encode($answer)); } @@ -27,8 +28,13 @@ try { $answer['success'] = 1; $answer['output'] = $detail; +} catch (PDOException $e) { + error_log('[' . basename(__FILE__) . '] ' . $e->getMessage()); + $answer['message'] = 'Database error, please try again.'; + http_response_code(500); } catch (Exception $e) { $answer['message'] = $e->getMessage(); + http_response_code(400); } exit(json_encode($answer)); diff --git a/app/accounting/api/engine/get_gl_documents.php b/app/accounting/api/engine/get_gl_documents.php index e50e25c..efda76e 100644 --- a/app/accounting/api/engine/get_gl_documents.php +++ b/app/accounting/api/engine/get_gl_documents.php @@ -12,8 +12,13 @@ try { (int)($data['formula_id'] ?? 0) ); $answer['success'] = 1; +} catch (PDOException $e) { + error_log('[' . basename(__FILE__) . '] ' . $e->getMessage()); + $answer['message'] = 'Database error, please try again.'; + http_response_code(500); } catch (Exception $e) { $answer['message'] = $e->getMessage(); + http_response_code(400); } exit(json_encode($answer)); diff --git a/app/accounting/api/engine/get_gl_movement.php b/app/accounting/api/engine/get_gl_movement.php index c92652a..0d18de7 100644 --- a/app/accounting/api/engine/get_gl_movement.php +++ b/app/accounting/api/engine/get_gl_movement.php @@ -12,6 +12,7 @@ $to_date = trim((string)($data['to_date'] ?? ($data['to_period'] ?? $dept_id = (int)($data['department_id'] ?? 0); if ($account_code === '') { + http_response_code(400); $answer['message'] = 'account_code is required.'; exit(json_encode($answer)); } diff --git a/app/accounting/api/engine/get_journal_detail.php b/app/accounting/api/engine/get_journal_detail.php index 9904885..a087c0d 100644 --- a/app/accounting/api/engine/get_journal_detail.php +++ b/app/accounting/api/engine/get_journal_detail.php @@ -7,8 +7,13 @@ try { $gl_query = new GlQueryManager($pdo2, $company_id); $answer['output'] = $gl_query->getJournalDetail((int)($data['gl_id'] ?? 0)); $answer['success'] = 1; +} catch (PDOException $e) { + error_log('[' . basename(__FILE__) . '] ' . $e->getMessage()); + $answer['message'] = 'Database error, please try again.'; + http_response_code(500); } catch (Exception $e) { $answer['message'] = $e->getMessage(); + http_response_code(400); } exit(json_encode($answer)); diff --git a/app/accounting/api/engine/get_journal_listing.php b/app/accounting/api/engine/get_journal_listing.php index 86e44c0..9da1377 100644 --- a/app/accounting/api/engine/get_journal_listing.php +++ b/app/accounting/api/engine/get_journal_listing.php @@ -11,8 +11,13 @@ try { trim((string)($data['date_to'] ?? '')) ); $answer['success'] = 1; +} catch (PDOException $e) { + error_log('[' . basename(__FILE__) . '] ' . $e->getMessage()); + $answer['message'] = 'Database error, please try again.'; + http_response_code(500); } catch (Exception $e) { $answer['message'] = $e->getMessage(); + http_response_code(400); } exit(json_encode($answer)); diff --git a/app/accounting/api/engine/log_batch_action.php b/app/accounting/api/engine/log_batch_action.php index 5e3e7ed..de26a40 100644 --- a/app/accounting/api/engine/log_batch_action.php +++ b/app/accounting/api/engine/log_batch_action.php @@ -3,12 +3,20 @@ require_once __DIR__ . '/../../../session.php'; require_once '../../../assets/utils/db_auth.php'; require_once '../../../assets/utils/classes/BatchActionManager.php'; +// Logged at the end of a batch GL posting run, which is owner/admin only. +require_role($user_role, ['owner', 'admin']); + try { $batch_action = new BatchActionManager($pdo2, $company_id, $user_id); $batch_action->log($data); $answer['success'] = 1; $answer['message'] = 'Batch action logged.'; +} catch (PDOException $e) { + error_log('[log_batch_action] ' . $e->getMessage()); + http_response_code(500); + $answer['message'] = 'Database error, please try again.'; } catch (Exception $e) { + http_response_code(400); $answer['message'] = $e->getMessage(); } diff --git a/app/accounting/api/engine/manage_account.php b/app/accounting/api/engine/manage_account.php index d795e68..7ccc72b 100644 --- a/app/accounting/api/engine/manage_account.php +++ b/app/accounting/api/engine/manage_account.php @@ -6,6 +6,7 @@ require_once '../../../assets/utils/classes_ac/ChartOfAccounts.php'; require_role($user_role, ['owner', 'admin']); if (empty($data['account_code']) || empty($data['account_name']) || empty($data['account_type'])) { + http_response_code(400); $answer['message'] = 'Account code, name, and type are required'; exit(json_encode($answer)); } diff --git a/app/accounting/api/engine/manage_department.php b/app/accounting/api/engine/manage_department.php index d22e968..7e49dd9 100644 --- a/app/accounting/api/engine/manage_department.php +++ b/app/accounting/api/engine/manage_department.php @@ -6,6 +6,7 @@ require_once '../../../assets/utils/classes_ac/DepartmentManager.php'; require_role($user_role, ['owner', 'admin']); if (empty($data['dept_code']) || empty($data['dept_name'])) { + http_response_code(400); $answer['message'] = 'Department code and name are required'; exit(json_encode($answer)); } diff --git a/app/accounting/api/engine/post_gl_entry.php b/app/accounting/api/engine/post_gl_entry.php index 8ac4c85..84e7dc9 100644 --- a/app/accounting/api/engine/post_gl_entry.php +++ b/app/accounting/api/engine/post_gl_entry.php @@ -30,6 +30,7 @@ $posting_map = [ ]; if (!isset($posting_map[$doc_type]) || $id <= 0) { + http_response_code(400); $answer['message'] = 'Invalid doc_type or id.'; exit(json_encode($answer)); } @@ -73,9 +74,15 @@ try { 'has_expense' => $has_expense, ], $company_id); +} catch (PDOException $e) { + if ($pdo2->inTransaction()) $pdo2->rollBack(); + error_log('[' . basename(__FILE__) . '] ' . $e->getMessage()); + $answer['message'] = 'Database error, please try again.'; + http_response_code(500); } catch (Exception $e) { if ($pdo2->inTransaction()) $pdo2->rollBack(); $answer['message'] = $e->getMessage(); + http_response_code(400); } exit(json_encode($answer)); diff --git a/app/accounting/api/engine/posting_window.php b/app/accounting/api/engine/posting_window.php index b4ed19c..5b10426 100644 --- a/app/accounting/api/engine/posting_window.php +++ b/app/accounting/api/engine/posting_window.php @@ -30,14 +30,17 @@ if ($data['action'] === 'save') { $to = trim((string)($data['open_to'] ?? '')); if ($from !== '' && !preg_match('/^\d{4}-\d{2}-\d{2}$/', $from)) { + http_response_code(400); $answer['message'] = 'Invalid open_from date. Use YYYY-MM-DD.'; exit(json_encode($answer)); } if ($to !== '' && !preg_match('/^\d{4}-\d{2}-\d{2}$/', $to)) { + http_response_code(400); $answer['message'] = 'Invalid open_to date. Use YYYY-MM-DD.'; exit(json_encode($answer)); } if ($from && $to && $from > $to) { + http_response_code(400); $answer['message'] = 'Open From must be on or before Open To.'; exit(json_encode($answer)); } @@ -50,5 +53,6 @@ if ($data['action'] === 'save') { exit(json_encode($answer)); } +http_response_code(400); $answer['message'] = 'Invalid action.'; exit(json_encode($answer)); diff --git a/app/accounting/api/engine/release_op_lock.php b/app/accounting/api/engine/release_op_lock.php index a63fa52..3e5ecc5 100644 --- a/app/accounting/api/engine/release_op_lock.php +++ b/app/accounting/api/engine/release_op_lock.php @@ -3,12 +3,20 @@ require_once __DIR__ . '/../../../session.php'; require_once '../../../assets/utils/db_auth.php'; require_once '../../../assets/utils/classes/OperationLockManager.php'; +// Batch GL posting takes this lock; posting itself is owner/admin only. +require_role($user_role, ['owner', 'admin']); + try { $lock_manager = new OperationLockManager($pdo2, $company_id, $user_id); $lock_manager->release(trim((string)($data['operation_type'] ?? ''))); $answer['success'] = 1; $answer['message'] = 'Lock released.'; +} catch (PDOException $e) { + error_log('[release_op_lock] ' . $e->getMessage()); + http_response_code(500); + $answer['message'] = 'Database error, please try again.'; } catch (Exception $e) { + http_response_code(400); $answer['message'] = $e->getMessage(); } diff --git a/app/accounting/api/engine/remove_account.php b/app/accounting/api/engine/remove_account.php index 6d3909a..7db6434 100644 --- a/app/accounting/api/engine/remove_account.php +++ b/app/accounting/api/engine/remove_account.php @@ -7,6 +7,7 @@ require_role($user_role, ['owner', 'admin']); $id = (int)($data['id'] ?? 0); if (!$id) { + http_response_code(400); $answer['message'] = 'Missing id'; exit(json_encode($answer)); } diff --git a/app/accounting/api/engine/remove_department.php b/app/accounting/api/engine/remove_department.php index d913463..19a856f 100644 --- a/app/accounting/api/engine/remove_department.php +++ b/app/accounting/api/engine/remove_department.php @@ -6,7 +6,7 @@ require_once '../../../assets/utils/classes_ac/DepartmentManager.php'; require_role($user_role, ['owner', 'admin']); $id = (int)($data['id'] ?? 0); -if (!$id) { $answer['message'] = 'Missing id'; exit(json_encode($answer)); } +if (!$id) { http_response_code(400); $answer['message'] = 'Missing id'; exit(json_encode($answer)); } $dept = new DepartmentManager($pdo2, $company_id); $dept->delete($id); diff --git a/app/accounting/api/engine/retrieve_account.php b/app/accounting/api/engine/retrieve_account.php index 68d41b9..6cc0b09 100644 --- a/app/accounting/api/engine/retrieve_account.php +++ b/app/accounting/api/engine/retrieve_account.php @@ -5,6 +5,7 @@ require_once '../../../assets/utils/classes_ac/ChartOfAccounts.php'; $id = (int)($data['id'] ?? 0); if (!$id) { + http_response_code(400); $answer['message'] = 'Missing id'; exit(json_encode($answer)); } @@ -12,6 +13,7 @@ if (!$id) { $coa = new ChartOfAccounts($pdo2, $company_id); $row = $coa->getById($id); if (!$row) { + http_response_code(404); $answer['message'] = 'Account not found'; exit(json_encode($answer)); } diff --git a/app/accounting/api/engine/retrieve_department.php b/app/accounting/api/engine/retrieve_department.php index 485b9ee..a7bacbb 100644 --- a/app/accounting/api/engine/retrieve_department.php +++ b/app/accounting/api/engine/retrieve_department.php @@ -4,11 +4,11 @@ require_once '../../../assets/utils/db_auth.php'; require_once '../../../assets/utils/classes_ac/DepartmentManager.php'; $id = (int)($data['id'] ?? 0); -if (!$id) { $answer['message'] = 'Missing id'; exit(json_encode($answer)); } +if (!$id) { http_response_code(400); $answer['message'] = 'Missing id'; exit(json_encode($answer)); } $dept = new DepartmentManager($pdo2, $company_id); $row = $dept->getById($id); -if (!$row) { $answer['message'] = 'Department not found'; exit(json_encode($answer)); } +if (!$row) { http_response_code(404); $answer['message'] = 'Department not found'; exit(json_encode($answer)); } $answer['output'] = $row; $answer['success'] = 1; diff --git a/app/accounting/api/engine/save_manual_journal.php b/app/accounting/api/engine/save_manual_journal.php index 73ff8e8..da70da6 100644 --- a/app/accounting/api/engine/save_manual_journal.php +++ b/app/accounting/api/engine/save_manual_journal.php @@ -25,6 +25,7 @@ if (preg_match('#^(\d{2})/(\d{2})/(\d{4})$#', $journal_date, $m)) { } if (!$journal_date || !preg_match('/^\d{4}-\d{2}-\d{2}$/', $journal_date)) { + http_response_code(400); $answer['message'] = 'Valid journal date is required.'; exit(json_encode($answer)); } @@ -51,11 +52,13 @@ foreach ($lines_raw as $l) { } if (count($lines) < 2) { + http_response_code(400); $answer['message'] = 'At least two journal lines are required.'; exit(json_encode($answer)); } if (abs($total_debit - $total_credit) > 0.005) { + http_response_code(400); $answer['message'] = 'Journal is not balanced. Debit ' . number_format($total_debit, 2) . ' ≠ Credit ' . number_format($total_credit, 2) . '.'; exit(json_encode($answer)); } @@ -83,9 +86,15 @@ try { $answer['success'] = 1; $answer['gl_id'] = $gl_id; notify_node('gl_posted', gl_posted_payload('manual', (int)$gl_id, $event_action, $lines), $company_id); +} catch (PDOException $e) { + if ($pdo2->inTransaction()) $pdo2->rollBack(); + error_log('[' . basename(__FILE__) . '] ' . $e->getMessage()); + $answer['message'] = 'Database error, please try again.'; + http_response_code(500); } catch (Exception $e) { if ($pdo2->inTransaction()) $pdo2->rollBack(); $answer['message'] = $e->getMessage(); + http_response_code(400); } exit(json_encode($answer)); diff --git a/app/contact/api/engine/manage_contact.php b/app/contact/api/engine/manage_contact.php index 7b5a273..4adff95 100644 --- a/app/contact/api/engine/manage_contact.php +++ b/app/contact/api/engine/manage_contact.php @@ -20,6 +20,7 @@ $errors = $uploader->upload('contact_image'); if (!empty($errors)) { $answer['success'] = 0; + http_response_code(400); $answer['message'] = $errors[0]; exit(json_encode($answer)); } diff --git a/app/expense/api/engine/convert_purchase_request.php b/app/expense/api/engine/convert_purchase_request.php index 010e0bd..50612ce 100644 --- a/app/expense/api/engine/convert_purchase_request.php +++ b/app/expense/api/engine/convert_purchase_request.php @@ -12,6 +12,7 @@ $discount = (float)($data['discount'] ?? 0); $shipping_fee = (float)($data['shipping_fee'] ?? 0); if (!$request_id) { + http_response_code(400); $answer['message'] = 'Purchase request ID is required.'; exit(json_encode($answer)); } @@ -21,6 +22,7 @@ $prm = new PurchaseRequestManager($pdo2, $company_id); // Load PR — must be Approved $pr = $prm->getById($request_id); if (!$pr || (int)$pr['status'] !== 2) { + http_response_code(400); $answer['message'] = 'Purchase request not found or not in Approved status.'; exit(json_encode($answer)); } @@ -30,17 +32,20 @@ if (!$contact_id) { $contact_id = (int)($pr['contact_id'] ?? 0); } if (!$contact_id) { + http_response_code(400); $answer['message'] = 'Set a Preferred Supplier on this purchase request before converting it to a PO.'; exit(json_encode($answer)); } $pr_items = $pr['items']; if (empty($pr_items)) { + http_response_code(400); $answer['message'] = 'Purchase request has no items.'; exit(json_encode($answer)); } if ((float)$pr['total_remaining'] <= 0.000001) { + http_response_code(400); $answer['message'] = 'Purchase request is already fully converted.'; exit(json_encode($answer)); } @@ -72,6 +77,7 @@ foreach ($convert_items as $ci) { if ($qty <= 0) continue; if (!isset($pr_by_id[$item_id])) { + http_response_code(400); $answer['message'] = "Item #{$item_id} not found in this purchase request."; exit(json_encode($answer)); } @@ -81,6 +87,7 @@ foreach ($convert_items as $ci) { if ($qty - $remaining > 0.000001) { $name = $pi['product_name'] ?: $pi['product_sku']; + http_response_code(400); $answer['message'] = "Cannot convert {$qty} for \"{$name}\": only {$remaining} remaining."; exit(json_encode($answer)); } @@ -105,6 +112,7 @@ foreach ($convert_items as $ci) { } if (empty($po_items)) { + http_response_code(400); $answer['message'] = 'No valid items to convert.'; exit(json_encode($answer)); } diff --git a/app/expense/api/engine/update_purchase_request_status.php b/app/expense/api/engine/update_purchase_request_status.php index 85c7035..c2fb1d2 100644 --- a/app/expense/api/engine/update_purchase_request_status.php +++ b/app/expense/api/engine/update_purchase_request_status.php @@ -8,6 +8,7 @@ $id = (int)($data['id'] ?? 0); $action = $data['action_type'] ?? ''; if (!$id || !$action) { + http_response_code(400); $answer['message'] = 'ID and action are required.'; exit(json_encode($answer)); } diff --git a/app/ics/api/engine_report/warehouse_overview.php b/app/ics/api/engine_report/warehouse_overview.php index 0961245..695c399 100644 --- a/app/ics/api/engine_report/warehouse_overview.php +++ b/app/ics/api/engine_report/warehouse_overview.php @@ -8,6 +8,7 @@ if (!$warehouse_id) { $answer['success'] = 0; + http_response_code(400); $answer['message'] = 'Warehouse is required'; exit(json_encode($answer)); } diff --git a/app/inventory/api/engine/manage_product.php b/app/inventory/api/engine/manage_product.php index b18eb81..49ce5d4 100644 --- a/app/inventory/api/engine/manage_product.php +++ b/app/inventory/api/engine/manage_product.php @@ -37,6 +37,7 @@ $errors = $uploader->upload('product_image'); if (!empty($errors)) { $answer['success'] = 0; + http_response_code(400); $answer['message'] = $errors[0]; exit(json_encode($answer)); } diff --git a/app/inventory/api/engine/manager.php b/app/inventory/api/engine/manager.php index 498d7ac..d5cd82f 100644 --- a/app/inventory/api/engine/manager.php +++ b/app/inventory/api/engine/manager.php @@ -9,8 +9,13 @@ $users = new UserManager($pdo1, $company_id, $user_id); $answer['output'] = $users->getCompanyUsers(); $answer['success'] = 1; + } catch (PDOException $e) { + error_log('[' . basename(__FILE__) . '] ' . $e->getMessage()); + $answer['message'] = 'Database error, please try again.'; + http_response_code(500); } catch (Exception $e) { $answer['message'] = $e->getMessage(); + http_response_code(400); } exit(json_encode($answer)); diff --git a/app/reports/api/engine_report/stock_movement.php b/app/reports/api/engine_report/stock_movement.php index 96e0c8f..9e786a7 100644 --- a/app/reports/api/engine_report/stock_movement.php +++ b/app/reports/api/engine_report/stock_movement.php @@ -12,6 +12,7 @@ $to_month = $data['to_month'] ?? ''; if (!$warehouse_id || !$from_month || !$to_month) { + http_response_code(400); $answer['message'] = 'warehouse_id, from_month, and to_month are required.'; exit(json_encode($answer)); } diff --git a/app/reports/api/engine_report/stock_movement_sku.php b/app/reports/api/engine_report/stock_movement_sku.php index 1b1c7d6..78b5030 100644 --- a/app/reports/api/engine_report/stock_movement_sku.php +++ b/app/reports/api/engine_report/stock_movement_sku.php @@ -13,6 +13,7 @@ $to_month = $data['to_month'] ?? ''; if (!$warehouse_id || !$product_sku || !$from_month || !$to_month) { + http_response_code(400); $answer['message'] = 'warehouse_id, product_sku, from_month, and to_month are required.'; exit(json_encode($answer)); } diff --git a/app/revenue/api/engine/convert_quotation.php b/app/revenue/api/engine/convert_quotation.php index 1451111..61b0a67 100644 --- a/app/revenue/api/engine/convert_quotation.php +++ b/app/revenue/api/engine/convert_quotation.php @@ -10,6 +10,7 @@ $quotation_id = (int)($data['quotation_id'] ?? 0); $convert_items = $data['convert_items'] ?? []; if (!$quotation_id) { + http_response_code(400); $answer['message'] = 'Quotation ID required.'; exit(json_encode($answer)); } @@ -19,17 +20,20 @@ $qm = new QuotationManager($pdo2, $company_id); // Load quotation — must be Accepted $q = $qm->getById($quotation_id); if (!$q || (int)$q['status'] !== 2) { + http_response_code(400); $answer['message'] = 'Quotation not found or not in Accepted status.'; exit(json_encode($answer)); } $qt_items = $q['items']; if (empty($qt_items)) { + http_response_code(400); $answer['message'] = 'Quotation has no items.'; exit(json_encode($answer)); } if ((float)$q['total_remaining'] <= 0.000001) { + http_response_code(400); $answer['message'] = 'Quotation is already fully converted.'; exit(json_encode($answer)); } @@ -61,6 +65,7 @@ foreach ($convert_items as $ci) { if ($qty <= 0) continue; if (!isset($qt_by_id[$item_id])) { + http_response_code(400); $answer['message'] = "Item #{$item_id} not found in this quotation."; exit(json_encode($answer)); } @@ -70,6 +75,7 @@ foreach ($convert_items as $ci) { if ($qty - $remaining > 0.000001) { $name = $qi['product_name'] ?: $qi['product_sku']; + http_response_code(400); $answer['message'] = "Cannot convert {$qty} for \"{$name}\": only {$remaining} remaining."; exit(json_encode($answer)); } @@ -95,6 +101,7 @@ foreach ($convert_items as $ci) { } if (empty($ord_items)) { + http_response_code(400); $answer['message'] = 'No valid items to convert.'; exit(json_encode($answer)); } diff --git a/app/revenue/api/engine/manage_order.php b/app/revenue/api/engine/manage_order.php index 478452e..3d591a2 100644 --- a/app/revenue/api/engine/manage_order.php +++ b/app/revenue/api/engine/manage_order.php @@ -10,11 +10,13 @@ $action = $data['action'] ?? ''; $data['items'] = json_decode($data['items'] ?? '[]', true) ?: []; if (!in_array($action, ['create', 'update'], true)) { + http_response_code(400); $answer['message'] = 'Unknown action'; exit(json_encode($answer)); } if (empty($data['items'])) { + http_response_code(400); $answer['message'] = 'At least one item is required'; exit(json_encode($answer)); } diff --git a/app/revenue/api/engine/quotation_stats.php b/app/revenue/api/engine/quotation_stats.php index d818c02..086be77 100644 --- a/app/revenue/api/engine/quotation_stats.php +++ b/app/revenue/api/engine/quotation_stats.php @@ -7,8 +7,13 @@ try { $quotation = new QuotationManager($pdo2, $company_id); $answer['output'] = $quotation->getStats(); $answer['success'] = 1; +} catch (PDOException $e) { + error_log('[' . basename(__FILE__) . '] ' . $e->getMessage()); + $answer['message'] = 'Database error, please try again.'; + http_response_code(500); } catch (Exception $e) { $answer['message'] = $e->getMessage(); + http_response_code(400); } exit(json_encode($answer)); diff --git a/app/revenue/api/engine/update_quotation_status.php b/app/revenue/api/engine/update_quotation_status.php index 58243f1..7a7867e 100644 --- a/app/revenue/api/engine/update_quotation_status.php +++ b/app/revenue/api/engine/update_quotation_status.php @@ -9,6 +9,7 @@ $id = (int)($data['id'] ?? 0); $action = $data['action_type'] ?? ''; if (!$id || !$action) { + http_response_code(400); $answer['message'] = 'ID and action are required.'; exit(json_encode($answer)); } diff --git a/app/setting/api/engine/document_types.php b/app/setting/api/engine/document_types.php index dd7c576..40b1a26 100644 --- a/app/setting/api/engine/document_types.php +++ b/app/setting/api/engine/document_types.php @@ -38,10 +38,16 @@ try { break; default: + http_response_code(400); $answer['message'] = 'Unknown action.'; } +} catch (PDOException $e) { + error_log('[' . basename(__FILE__) . '] ' . $e->getMessage()); + $answer['message'] = 'Database error, please try again.'; + http_response_code(500); } catch (Exception $e) { $answer['message'] = $e->getMessage(); + http_response_code(400); } exit(json_encode($answer)); diff --git a/app/setting/api/engine/gl_maintenance.php b/app/setting/api/engine/gl_maintenance.php index 4b5d26f..4c75f5d 100644 --- a/app/setting/api/engine/gl_maintenance.php +++ b/app/setting/api/engine/gl_maintenance.php @@ -34,6 +34,7 @@ try { if ($action === 'rebuild_period') { $period = $data['period'] ?? ''; if (!preg_match('/^\d{4}-\d{2}$/', $period)) { + http_response_code(400); $answer['message'] = 'Invalid period.'; exit(json_encode($answer)); } diff --git a/app/setting/api/engine/retrieve_smtp.php b/app/setting/api/engine/retrieve_smtp.php index 5a34ec7..0eada3e 100644 --- a/app/setting/api/engine/retrieve_smtp.php +++ b/app/setting/api/engine/retrieve_smtp.php @@ -3,13 +3,17 @@ require_once '../../../assets/utils/db_auth.php'; require_once '../../../assets/utils/classes/SmtpManager.php'; + // Admin data: owners and admins only; staff and viewers never see it. + require_role($user_role, ['owner', 'admin']); + try { $smtp = new SmtpManager($pdo1, $company_id, $method, $pinkey, $iv); $answer['success'] = 1; $answer['output'] = $smtp->get(); } catch (Exception $e) { - $answer['message'] = $e->getMessage(); + error_log('[retrieve_smtp] ' . $e->getMessage()); + $answer['message'] = 'Could not load SMTP settings.'; http_response_code(500); } diff --git a/app/setting/api/engine/retrieve_users.php b/app/setting/api/engine/retrieve_users.php index e3f9b4e..f7eb8ae 100644 --- a/app/setting/api/engine/retrieve_users.php +++ b/app/setting/api/engine/retrieve_users.php @@ -3,6 +3,9 @@ require_once '../../../assets/utils/db_auth.php'; require_once '../../../assets/utils/classes/UserManager.php'; + // Admin data: owners and admins only; staff and viewers never see it. + require_role($user_role, ['owner', 'admin']); + $um = new UserManager($pdo1, $company_id, $user_id); $answer['success'] = 1; diff --git a/app/setting/api/engine/search_users.php b/app/setting/api/engine/search_users.php index b0c6941..49a51a8 100644 --- a/app/setting/api/engine/search_users.php +++ b/app/setting/api/engine/search_users.php @@ -3,6 +3,9 @@ require_once '../../../assets/utils/db_auth.php'; require_once '../../../assets/utils/classes/UserManager.php'; + // Admin data: owners and admins only; staff and viewers never see it. + require_role($user_role, ['owner', 'admin']); + $keyword = trim($data['keyword'] ?? ''); $um = new UserManager($pdo1, $company_id, $user_id); diff --git a/app/setting/api/engine/stock_maintenance.php b/app/setting/api/engine/stock_maintenance.php index dbd66f9..f8e5ef1 100644 --- a/app/setting/api/engine/stock_maintenance.php +++ b/app/setting/api/engine/stock_maintenance.php @@ -36,6 +36,7 @@ try { if ($action === 'get_periods') { $warehouse_id = (int)($data['warehouse_id'] ?? 0); if (!$warehouse_id) { + http_response_code(400); $answer['message'] = 'warehouse_id is required.'; exit(json_encode($answer)); } @@ -48,6 +49,7 @@ try { $warehouse_id = (int)($data['warehouse_id'] ?? 0); $period = $data['period'] ?? ''; if (!$warehouse_id || !preg_match('/^\d{4}-\d{2}$/', $period)) { + http_response_code(400); $answer['message'] = 'Valid warehouse_id and period (YYYY-MM) are required.'; exit(json_encode($answer)); } From f11af6e949625f6437add48fb1fcf6577ce95ab5 Mon Sep 17 00:00:00 2001 From: Thanakorn Date: Thu, 24 Sep 2026 14:53:41 +0700 Subject: [PATCH 5/5] Self-host front-end libraries, minimal sign-in header and CSP - sign-in pages load only what they use (include_login_header.php, ajax_core.js) - every library, font and data file served from assets/vendor with pinned versions (VERSIONS.json); no CDN at runtime - Content-Security-Policy on app, sign-in and landing pages - remove httpbin Dropzone target and source-map references --- app/ac_dashboard/index.php | 2 +- app/accounting/balance_sheet.php | 6 +- app/accounting/gl_movement.php | 6 +- app/accounting/pl_statement.php | 6 +- app/accounting/trial_balance.php | 6 +- app/accounting/vat_report.php | 6 +- app/assets/css/main.css | 2 +- app/assets/js/ajax_core.js | 370 +++++ app/assets/js/custom.js | 342 ----- app/assets/js/main.js | 2 +- app/assets/utils/page_headers.php | 54 + app/assets/vendor/VERSIONS.json | 35 + app/assets/vendor/alasql/4.6.6/alasql.min.js | 264 ++++ .../vendor/apexcharts/7.5.1/apexcharts.min.js | 5 + .../vendor/bootbox/4.4.0/bootbox.min.js | 1 + .../vendor/bootstrap/5.3.8/bootstrap.min.css | 5 + .../vendor/bootstrap/5.3.8/bootstrap.min.js | 6 + .../vendor/chart.js/4.5.1/chart.umd.min.js | 13 + .../vendor/dropzone/5.9.3/dropzone.min.js | 1 + .../vendor/flatpickr/4.6.13/flatpickr.min.css | 13 + .../vendor/flatpickr/4.6.13/flatpickr.min.js | 2 + .../4.6.13/plugins/monthSelect/index.js | 301 ++++ .../4.6.13/plugins/monthSelect/style.css | 117 ++ app/assets/vendor/fonts/poppins/poppins.css | 324 +++++ .../poppins/pxiAyp8kv8JHgFVrJJLmE0tCMPI.woff2 | Bin 0 -> 8404 bytes .../pxiAyp8kv8JHgFVrJJLmE0tMMPKzSQ.woff2 | Bin 0 -> 5720 bytes .../pxiByp8kv8JHgFVrLBT5Z1JlFc-K.woff2 | Bin 0 -> 5380 bytes .../poppins/pxiByp8kv8JHgFVrLBT5Z1xlFQ.woff2 | Bin 0 -> 7632 bytes .../pxiByp8kv8JHgFVrLCz7Z1JlFc-K.woff2 | Bin 0 -> 5432 bytes .../poppins/pxiByp8kv8JHgFVrLCz7Z1xlFQ.woff2 | Bin 0 -> 7816 bytes .../pxiByp8kv8JHgFVrLDD4Z1JlFc-K.woff2 | Bin 0 -> 5492 bytes .../poppins/pxiByp8kv8JHgFVrLDD4Z1xlFQ.woff2 | Bin 0 -> 7824 bytes .../pxiByp8kv8JHgFVrLDz8Z1JlFc-K.woff2 | Bin 0 -> 5524 bytes .../poppins/pxiByp8kv8JHgFVrLDz8Z1xlFQ.woff2 | Bin 0 -> 7840 bytes .../pxiByp8kv8JHgFVrLEj6Z1JlFc-K.woff2 | Bin 0 -> 5524 bytes .../poppins/pxiByp8kv8JHgFVrLEj6Z1xlFQ.woff2 | Bin 0 -> 8000 bytes .../pxiByp8kv8JHgFVrLFj_Z1JlFc-K.woff2 | Bin 0 -> 5508 bytes .../poppins/pxiByp8kv8JHgFVrLFj_Z1xlFQ.woff2 | Bin 0 -> 7932 bytes .../pxiByp8kv8JHgFVrLGT9Z1JlFc-K.woff2 | Bin 0 -> 5484 bytes .../poppins/pxiByp8kv8JHgFVrLGT9Z1xlFQ.woff2 | Bin 0 -> 7748 bytes .../pxiDyp8kv8JHgFVrJJLm111VF9eO.woff2 | Bin 0 -> 8680 bytes .../pxiDyp8kv8JHgFVrJJLm111VGdeOcEg.woff2 | Bin 0 -> 5932 bytes .../pxiDyp8kv8JHgFVrJJLm21lVF9eO.woff2 | Bin 0 -> 8712 bytes .../pxiDyp8kv8JHgFVrJJLm21lVGdeOcEg.woff2 | Bin 0 -> 5956 bytes .../pxiDyp8kv8JHgFVrJJLm81xVF9eO.woff2 | Bin 0 -> 8488 bytes .../pxiDyp8kv8JHgFVrJJLm81xVGdeOcEg.woff2 | Bin 0 -> 5812 bytes .../pxiDyp8kv8JHgFVrJJLmg1hVF9eO.woff2 | Bin 0 -> 8504 bytes .../pxiDyp8kv8JHgFVrJJLmg1hVGdeOcEg.woff2 | Bin 0 -> 5856 bytes .../pxiDyp8kv8JHgFVrJJLmr19VF9eO.woff2 | Bin 0 -> 8724 bytes .../pxiDyp8kv8JHgFVrJJLmr19VGdeOcEg.woff2 | Bin 0 -> 6012 bytes .../pxiDyp8kv8JHgFVrJJLmv1pVF9eO.woff2 | Bin 0 -> 8720 bytes .../pxiDyp8kv8JHgFVrJJLmv1pVGdeOcEg.woff2 | Bin 0 -> 5980 bytes .../pxiDyp8kv8JHgFVrJJLmy15VF9eO.woff2 | Bin 0 -> 8596 bytes .../pxiDyp8kv8JHgFVrJJLmy15VGdeOcEg.woff2 | Bin 0 -> 5860 bytes .../poppins/pxiEyp8kv8JHgFVrJJfecg.woff2 | Bin 0 -> 7884 bytes .../poppins/pxiEyp8kv8JHgFVrJJnecmNE.woff2 | Bin 0 -> 5644 bytes .../poppins/pxiGyp8kv8JHgFVrJJLucHtA.woff2 | Bin 0 -> 8668 bytes .../poppins/pxiGyp8kv8JHgFVrJJLufntAKPY.woff2 | Bin 0 -> 5964 bytes .../poppins/pxiGyp8kv8JHgFVrLPTucHtA.woff2 | Bin 0 -> 7484 bytes .../poppins/pxiGyp8kv8JHgFVrLPTufntAKPY.woff2 | Bin 0 -> 5364 bytes .../html5-qrcode/2.3.8/html5-qrcode.min.js | 1 + .../1.14.1/images/ui-icons_444444_256x240.png | Bin 0 -> 6978 bytes .../1.14.1/images/ui-icons_555555_256x240.png | Bin 0 -> 6985 bytes .../1.14.1/images/ui-icons_777620_256x240.png | Bin 0 -> 4510 bytes .../1.14.1/images/ui-icons_777777_256x240.png | Bin 0 -> 7006 bytes .../1.14.1/images/ui-icons_cc0000_256x240.png | Bin 0 -> 4510 bytes .../1.14.1/images/ui-icons_ffffff_256x240.png | Bin 0 -> 6403 bytes .../vendor/jquery-ui/1.14.1/jquery-ui.css | 1284 +++++++++++++++++ .../vendor/jquery-ui/1.14.1/jquery-ui.min.js | 6 + app/assets/vendor/jquery/3.7.1/jquery.min.js | 2 + .../jsbarcode/3.11.6/JsBarcode.all.min.js | 2 + .../3.8.2/jspdf.plugin.autotable.min.js | 10 + .../vendor/jspdf/2.5.1/jspdf.umd.min.js | 397 +++++ .../2.1.7/loadingoverlay.min.js | 8 + app/assets/vendor/popper/2.11.8/popper.min.js | 5 + .../3.35.0/fonts/tabler-icons.woff2 | Bin 0 -> 831044 bytes .../tabler-icons/3.35.0/tabler-icons.min.css | 4 + .../3.3.0/countries.json | 193 +++ .../vendor/xlsx/0.18.5/xlsx.full.min.js | 22 + app/assets/vendor/zxcvbn/4.4.2/zxcvbn.js | 27 + app/ics/location_barcode_label.php | 2 +- app/ics/sku_barcode_label.php | 2 +- app/include_header.php | 61 +- app/login/accept_invite.php | 6 +- app/login/include_login_header.php | 45 + app/login/invited_onboarding.php | 8 +- app/login/onboarding.php | 2 +- app/login/register.php | 4 +- app/reports/stock_movement.php | 6 +- app/setting/profile.php | 4 +- landing/css/bootstrap.min.css | 3 +- landing/includes/footer.php | 2 +- landing/includes/head.php | 2 +- landing/includes/security_headers.php | 12 + landing/index.php | 1 + landing/js/bootstrap.min.js | 3 +- landing/js/scripts.js | 5 +- landing/js/swiper.min.js | 1 - landing/privacy.php | 1 + landing/terms.php | 1 + ...kx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkWV4ewJER.woff2 | Bin 0 -> 15808 bytes ...CEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkWVAewA.woff2 | Bin 0 -> 19304 bytes ...Gs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2 | Bin 0 -> 48320 bytes ...126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2 | Bin 0 -> 35156 bytes landing/webfonts/open-sans/open-sans.css | 60 + 105 files changed, 3668 insertions(+), 413 deletions(-) create mode 100644 app/assets/js/ajax_core.js create mode 100644 app/assets/utils/page_headers.php create mode 100644 app/assets/vendor/VERSIONS.json create mode 100644 app/assets/vendor/alasql/4.6.6/alasql.min.js create mode 100644 app/assets/vendor/apexcharts/7.5.1/apexcharts.min.js create mode 100644 app/assets/vendor/bootbox/4.4.0/bootbox.min.js create mode 100644 app/assets/vendor/bootstrap/5.3.8/bootstrap.min.css create mode 100644 app/assets/vendor/bootstrap/5.3.8/bootstrap.min.js create mode 100644 app/assets/vendor/chart.js/4.5.1/chart.umd.min.js create mode 100644 app/assets/vendor/dropzone/5.9.3/dropzone.min.js create mode 100644 app/assets/vendor/flatpickr/4.6.13/flatpickr.min.css create mode 100644 app/assets/vendor/flatpickr/4.6.13/flatpickr.min.js create mode 100644 app/assets/vendor/flatpickr/4.6.13/plugins/monthSelect/index.js create mode 100644 app/assets/vendor/flatpickr/4.6.13/plugins/monthSelect/style.css create mode 100644 app/assets/vendor/fonts/poppins/poppins.css create mode 100644 app/assets/vendor/fonts/poppins/pxiAyp8kv8JHgFVrJJLmE0tCMPI.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiAyp8kv8JHgFVrJJLmE0tMMPKzSQ.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiByp8kv8JHgFVrLBT5Z1JlFc-K.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiByp8kv8JHgFVrLBT5Z1xlFQ.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiByp8kv8JHgFVrLCz7Z1JlFc-K.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiByp8kv8JHgFVrLCz7Z1xlFQ.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiByp8kv8JHgFVrLDD4Z1JlFc-K.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiByp8kv8JHgFVrLDD4Z1xlFQ.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiByp8kv8JHgFVrLDz8Z1JlFc-K.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiByp8kv8JHgFVrLDz8Z1xlFQ.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiByp8kv8JHgFVrLEj6Z1JlFc-K.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiByp8kv8JHgFVrLEj6Z1xlFQ.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiByp8kv8JHgFVrLFj_Z1JlFc-K.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiByp8kv8JHgFVrLFj_Z1xlFQ.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiByp8kv8JHgFVrLGT9Z1JlFc-K.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiByp8kv8JHgFVrLGT9Z1xlFQ.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiDyp8kv8JHgFVrJJLm111VF9eO.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiDyp8kv8JHgFVrJJLm111VGdeOcEg.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiDyp8kv8JHgFVrJJLm21lVF9eO.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiDyp8kv8JHgFVrJJLm21lVGdeOcEg.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiDyp8kv8JHgFVrJJLm81xVF9eO.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiDyp8kv8JHgFVrJJLm81xVGdeOcEg.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiDyp8kv8JHgFVrJJLmg1hVF9eO.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiDyp8kv8JHgFVrJJLmg1hVGdeOcEg.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiDyp8kv8JHgFVrJJLmr19VF9eO.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiDyp8kv8JHgFVrJJLmr19VGdeOcEg.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiDyp8kv8JHgFVrJJLmv1pVF9eO.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiDyp8kv8JHgFVrJJLmv1pVGdeOcEg.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiDyp8kv8JHgFVrJJLmy15VF9eO.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiDyp8kv8JHgFVrJJLmy15VGdeOcEg.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiEyp8kv8JHgFVrJJfecg.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiEyp8kv8JHgFVrJJnecmNE.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiGyp8kv8JHgFVrJJLucHtA.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiGyp8kv8JHgFVrJJLufntAKPY.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiGyp8kv8JHgFVrLPTucHtA.woff2 create mode 100644 app/assets/vendor/fonts/poppins/pxiGyp8kv8JHgFVrLPTufntAKPY.woff2 create mode 100644 app/assets/vendor/html5-qrcode/2.3.8/html5-qrcode.min.js create mode 100644 app/assets/vendor/jquery-ui/1.14.1/images/ui-icons_444444_256x240.png create mode 100644 app/assets/vendor/jquery-ui/1.14.1/images/ui-icons_555555_256x240.png create mode 100644 app/assets/vendor/jquery-ui/1.14.1/images/ui-icons_777620_256x240.png create mode 100644 app/assets/vendor/jquery-ui/1.14.1/images/ui-icons_777777_256x240.png create mode 100644 app/assets/vendor/jquery-ui/1.14.1/images/ui-icons_cc0000_256x240.png create mode 100644 app/assets/vendor/jquery-ui/1.14.1/images/ui-icons_ffffff_256x240.png create mode 100644 app/assets/vendor/jquery-ui/1.14.1/jquery-ui.css create mode 100644 app/assets/vendor/jquery-ui/1.14.1/jquery-ui.min.js create mode 100644 app/assets/vendor/jquery/3.7.1/jquery.min.js create mode 100644 app/assets/vendor/jsbarcode/3.11.6/JsBarcode.all.min.js create mode 100644 app/assets/vendor/jspdf-autotable/3.8.2/jspdf.plugin.autotable.min.js create mode 100644 app/assets/vendor/jspdf/2.5.1/jspdf.umd.min.js create mode 100644 app/assets/vendor/loadingoverlay/2.1.7/loadingoverlay.min.js create mode 100644 app/assets/vendor/popper/2.11.8/popper.min.js create mode 100644 app/assets/vendor/tabler-icons/3.35.0/fonts/tabler-icons.woff2 create mode 100644 app/assets/vendor/tabler-icons/3.35.0/tabler-icons.min.css create mode 100644 app/assets/vendor/world_countries_lists/3.3.0/countries.json create mode 100644 app/assets/vendor/xlsx/0.18.5/xlsx.full.min.js create mode 100644 app/assets/vendor/zxcvbn/4.4.2/zxcvbn.js create mode 100644 app/login/include_login_header.php create mode 100644 landing/includes/security_headers.php create mode 100644 landing/webfonts/open-sans/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkWV4ewJER.woff2 create mode 100644 landing/webfonts/open-sans/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkWVAewA.woff2 create mode 100644 landing/webfonts/open-sans/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2 create mode 100644 landing/webfonts/open-sans/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2 create mode 100644 landing/webfonts/open-sans/open-sans.css diff --git a/app/ac_dashboard/index.php b/app/ac_dashboard/index.php index 835bba2..b848592 100644 --- a/app/ac_dashboard/index.php +++ b/app/ac_dashboard/index.php @@ -179,7 +179,7 @@ - + ",n+="";var t=[];for(var r in e[0])t.push(r);n+="
#",t.forEach(function(u){n+=""+u});for(var i=0,s=e.length;i"+(i+1),t.forEach(function(u){n+=" ",e[i][u]==+e[i][u]?(n+='
',typeof e[i][u]>"u"?n+="NULL":n+=e[i][u],n+="
"):typeof e[i][u]>"u"?n+="NULL":typeof e[i][u]=="string"?n+=e[i][u]:n+=At(e[i][u])});n+="
"}else n+="

"+At(e)+"

";return n}function I4(e,n,t){if(!(t<=0)){var r=n-e.scrollTop,i=r/t*10;setTimeout(function(){e.scrollTop!==n&&(e.scrollTop=e.scrollTop+i,I4(e,n,t-10))},10)}}l.prompt=function(e,n,t){if(M1.isNode)throw new Error("The prompt not realized for Node.js");var r=0;if(typeof e=="string"&&(e=document.getElementById(e)),typeof n=="string"&&(n=document.getElementById(n)),n.textContent=l.useid,t){l.prompthistory.push(t),r=l.prompthistory.length;try{var i=Date.now();l.log(t),l.write('

'+(Date.now()-i)+" ms

")}catch(u){l.write("

"+l.useid+"> "+t+"

"),l.write('

'+u+"

")}}var s=e.getBoundingClientRect().top+document.getElementsByTagName("body")[0].scrollTop;I4(document.getElementsByTagName("body")[0],s,500),e.onkeydown=function(u){if(u.which===13){var f=e.value,h=l.useid;e.value="",l.prompthistory.push(f),r=l.prompthistory.length;try{var g=Date.now();l.log(f),l.write('

'+(Date.now()-g)+" ms

")}catch(b){l.write("

"+h+"> "+l.pretty(f,!1)+"

"),l.write('

'+b+"

")}e.focus(),n.textContent=l.useid;var m=e.getBoundingClientRect().top+document.getElementsByTagName("body")[0].scrollTop;I4(document.getElementsByTagName("body")[0],m,500)}else u.which===38?(r--,r<0&&(r=0),l.prompthistory[r]&&(e.value=l.prompthistory[r],u.preventDefault())):u.which===40&&(r++,r>=l.prompthistory.length?(r=l.prompthistory.length,e.value=""):l.prompthistory[r]&&(e.value=l.prompthistory[r],u.preventDefault()))}},T.BeginTransaction=function(e){return Object.assign(this,e)},T.BeginTransaction.prototype.toString=function(){return"BEGIN TRANSACTION"},T.BeginTransaction.prototype.execute=function(e,n,t){var r=1;return l.databases[e].engineid?l.engines[l.databases[l.useid].engineid].begin(e,t):(t&&(r=t(r)),r)},T.CommitTransaction=function(e){return Object.assign(this,e)},T.CommitTransaction.prototype.toString=function(){return"COMMIT TRANSACTION"},T.CommitTransaction.prototype.execute=function(e,n,t){var r=1;return l.databases[e].engineid?l.engines[l.databases[l.useid].engineid].commit(e,t):(t&&(r=t(r)),r)},T.RollbackTransaction=function(e){return Object.assign(this,e)},T.RollbackTransaction.prototype.toString=function(){return"ROLLBACK TRANSACTION"},T.RollbackTransaction.prototype.execute=function(e,n,t){var r=1;return l.databases[e].engineid?l.engines[l.databases[e].engineid].rollback(e,t):(t&&(r=t(r)),r)},l.options.tsql&&(l.stdfn.OBJECT_ID=function(e,n){typeof n>"u"&&(n="T"),n=n.toUpperCase();var t=e.split("."),r=l.useid,i=t[0];t.length==2&&(r=t[0],i=t[1]);var s=l.databases[r].tables;r=l.databases[r].databaseid;for(var u in s)if(u==i)return s[u].view&&n=="V"||!s[u].view&&n=="T"?r+"."+u:void 0}),l.options.mysql&&(l.fn.TIMESTAMPDIFF=function(e,n,t){return l.stdfn.DATEDIFF(e,n,t)}),(l.options.mysql||l.options.sqlite)&&(l.from.INFORMATION_SCHEMA=function(e,n,t,r,i){if(e=="VIEWS"||e=="TABLES"){var s=[];for(var u in l.databases){var f=l.databases[u].tables;for(var h in f)(f[h].view&&e=="VIEWS"||!f[h].view&&e=="TABLES")&&s.push({TABLE_CATALOG:u,TABLE_NAME:h})}return t&&(s=t(s,r,i)),s}throw new Error("Unknown INFORMATION_SCHEMA table")}),l.options.postgres,l.options.oracle,l.options.sqlite,l.into.SQL=function(e,n,t,r,i){var s;typeof e=="object"&&(n=e,e=void 0);var u={};if(l.utils.extend(u,n),typeof u.tableid>"u")throw new Error("Table for INSERT TO is not defined.");var f="";r.length===0&&typeof t[0]=="object"&&(r=Object.keys(t[0]).map(function(m){return{columnid:m}}));for(var h=0,g=t.length;h0&&(r=Object.keys(t[0]).map(function(h){return{columnid:h}})),typeof e=="object"&&(n=e,e=void 0);var s=t.length,u="";if(t.length>0){var f=r[0].columnid;u+=t.map(function(h){return h[f]}).join(` +`)}return e=l.utils.autoExtFilename(e,"txt",n),s=l.utils.saveFile(e,u),i&&(s=i(s)),s},l.into.TAB=l.into.TSV=function(e,n,t,r,i){var s={};return l.utils.extend(s,n),s.separator=" ",e=l.utils.autoExtFilename(e,"tab",n),s.autoExt=!1,l.into.CSV(e,s,t,r,i)},l.into.CSV=function(e,n,t,r,i){r.length===0&&t.length>0&&(r=Object.keys(t[0]).map(function(h){return{columnid:h}})),typeof e=="object"&&(n=e,e=void 0);var s={headers:!0};s.separator=";",s.quote='"',s.utf8Bom=!0,n&&!n.headers&&typeof n.headers<"u"&&(s.utf8Bom=!1),l.utils.extend(s,n);var u=t.length,f=s.utf8Bom?"\uFEFF":"";return s.headers&&(f+=s.quote+r.map(function(h){return h.columnid.trim()}).join(s.quote+s.separator+s.quote)+s.quote+`\r +`),t.forEach(function(h){f+=r.map(function(g){var m=h[g.columnid];return s.quote!==""&&(m=(m+"").replace(new RegExp("\\"+s.quote,"g"),s.quote+s.quote)),+m!=m&&(m=s.quote+m+s.quote),m}).join(s.separator)+`\r +`}),e=l.utils.autoExtFilename(e,"csv",n),u=l.utils.saveFile(e,f,null,{disableAutoBom:!0}),i&&(u=i(u)),u},l.into.XLS=function(e,n,t,r,i){typeof e=="object"&&(n=e,e=void 0);var s={};n&&n.sheets&&(s=n.sheets);var u={headers:!0};typeof s.Sheet1<"u"?u=s[0]:typeof n<"u"&&(u=n),typeof u.sheetid>"u"&&(u.sheetid="Sheet1");var f=g();e=l.utils.autoExtFilename(e,"xls",n);var h=l.utils.saveFile(e,f);return i&&(h=i(h)),h;function g(){var b=' ",b+="",b+="",typeof u.caption<"u"){var c=u.caption;typeof c=="string"&&(c={title:c}),b+=""}return typeof u.columns<"u"?r=u.columns:r.length==0&&t.length>0&&typeof t[0]=="object"&&(Array.isArray(t[0])?r=t[0].map(function(d,v){return{columnid:v}}):r=Object.keys(t[0]).map(function(d){return{columnid:d}})),r.forEach(function(d,v){typeof u.column<"u"&&V2(d,u.column),typeof d.width>"u"&&(u.column&&u.column.width!="undefined"?d.width=u.column.width:d.width="120px"),typeof d.width=="number"&&(d.width=d.width+"px"),typeof d.columnid>"u"&&(d.columnid=v),typeof d.title>"u"&&(d.title=""+d.columnid.trim()),u.headers&&Array.isArray(u.headers)&&(d.title=u.headers[v])}),b+="",r.forEach(function(d){b+=''}),b+="",u.headers&&(b+="",b+="",r.forEach(function(d,v){b+="",b+=""),b+="",t&&t.length>0&&t.forEach(function(d,v){if(!(v>u.limit)){b+=""u"&&(typeof N=="number"?w="number":typeof N=="string"?w="string":typeof N=="boolean"?w="boolean":typeof N=="object"&&N instanceof Date&&(w="date"));var T1="";w=="money"?T1='mso-number-format:"\\#\\,\\#\\#0\\\\ _\u0440_\\.";white-space:normal;':w=="number"?T1=" ":w=="date"?T1='mso-number-format:"Short Date";':n.types&&n.types[w]&&n.types[w].typestyle&&(T1=n.types[w].typestyle),T1=T1||'mso-number-format:"\\@";',b+=""}),b+=""}}),b+="",b+="
"}),b+="
"u")b+="";else if(typeof v1<"u")if(typeof v1=="function")b+=v1(N);else if(typeof v1=="string")b+=N;else throw new Error("Unknown format type. Should be function or string");else w=="number"||w=="date"?b+=N.toString():w=="money"?b+=(+N).toFixed(2):b+=N;b+="
",b+="",b+="",b}function m(b){var c=' style="';return b&&typeof b.style<"u"&&(c+=b.style+";"),c+='" ',c}},l.into.XLSXML=function(e,n,t,r,i){n=n||{},typeof e=="object"&&(n=e,e=void 0);var s={},u,f;n&&n.sheets?(s=n.sheets,u=t,f=r):(s.Sheet1=n,u=[t],f=[r]),e=l.utils.autoExtFilename(e,"xls",n);var h=l.utils.saveFile(e,g());return i&&(h=i(h)),h;function g(){var m=' 0 ',b="",c=" ",d={},v=62;function E(O1){var G1="";for(var B1 in O1){G1+="<"+B1;for(var Y1 in O1[B1])G1+=" ",Y1.substr(0,2)=="x:"?G1+=Y1:G1+="ss:",G1+=Y1+"="+JSON.stringify(O1[B1][Y1]);G1+="/>"}var k=ot(G1);return d[k]||(d[k]={styleid:v},b+=`",v++),"s"+d[k].styleid}function O(O1){try{return Object.values(O1)}catch{return Object.keys(O1).map(function(B1){return O1[B1]})}}var R=0;for(var A in s){var N=s[A],w=typeof N.dataidx<"u"?N.dataidx:R++,T1=O(u[w]),v1=void 0;typeof N.columns<"u"?v1=N.columns:(v1=f[w],(v1===void 0||v1.length==0&&T1.length>0)&&typeof T1[0]=="object"&&(Array.isArray(T1[0])?v1=T1[0].map(function(O1,G1){return{columnid:G1}}):v1=Object.keys(T1[0]).map(function(O1){return{columnid:O1}}))),v1.forEach(function(O1,G1){typeof N.column<"u"&&V2(O1,N.column),typeof O1.width>"u"&&(N.column&&typeof N.column.width<"u"?O1.width=N.column.width:O1.width=120),typeof O1.width=="number"&&(O1.width=O1.width),typeof O1.columnid>"u"&&(O1.columnid=G1),typeof O1.title>"u"&&(O1.title=""+O1.columnid.trim()),N.headers&&Array.isArray(N.headers)&&(O1.title=N.headers[G1])}),c+="',v1.forEach(function(O1,G1){c+=` + `}),N.headers&&(c+='',v1.forEach(function(O1,G1){if(c+="',typeof O1.title<"u"&&(typeof O1.title=="function"?c+=O1.title(N,O1,G1):c+=O1.title),c+=""}),c+=""),T1&&T1.length>0&&T1.forEach(function(O1,G1){if(!(G1>N.limit)){var B1={};if(V2(B1,N.row),N.rows&&N.rows[G1]&&V2(B1,N.rows[G1]),c+="",v1.forEach(function(k,s2){var K1={};V2(K1,N.cell),V2(K1,B1.cell),typeof N.column<"u"&&V2(K1,N.column.cell),V2(K1,k.cell),N.cells&&N.cells[G1]&&N.cells[G1][s2]&&V2(K1,N.cells[G1][s2]);var V1=O1[k.columnid];typeof K1.value=="function"&&(V1=K1.value(V1,N,O1,k,K1,G1,s2));var T2=K1.typeid;typeof T2=="function"&&(T2=T2(V1,N,O1,k,K1,G1,s2)),typeof T2>"u"&&(typeof V1=="number"?T2="number":typeof V1=="string"?T2="string":typeof V1=="boolean"?T2="boolean":typeof V1=="object"&&V1 instanceof Date&&(T2="date"));var p2="String";T2=="number"?p2="Number":T2=="date"&&(p2="Date");var O2="";T2=="money"?O2='mso-number-format:"\\#\\,\\#\\#0\\\\ _\u0440_\\.";white-space:normal;':T2=="number"?O2=" ":T2=="date"?O2='mso-number-format:"Short Date";':n.types&&n.types[T2]&&n.types[T2].typestyle&&(O2=n.types[T2].typestyle),O2=O2||'mso-number-format:"\\@";',c+="",c+="";var A2=K1.format;if(typeof V1>"u")c+="";else if(typeof A2<"u")if(typeof A2=="function")c+=A2(V1);else if(typeof A2=="string")c+=V1;else throw new Error("Unknown format type. Should be function or string");else T2=="number"||T2=="date"?c+=V1.toString():T2=="money"?c+=(+V1).toFixed(2):c+=V1;c+=""}),c+=""}}),c+=""}return c+="",m+b+c}},l.into.XLSX=function(e,n,t,r,i){var s=1;n=n||{},Xt(r,[{columnid:"_"}])&&(t=t.map(function(b){return b._}),r=void 0),e=l.utils.autoExtFilename(e,"xlsx",n);var u=p3();typeof e=="object"&&(n=e,e=void 0);var f={SheetNames:[],Sheets:{}};return n.sourcefilename?l.utils.loadBinaryFile(n.sourcefilename,!!i,function(b){f=u.read(b,{type:"binary",...l.options.excel,...n}),h()}):h(),i&&(s=i(s)),s;function h(){typeof n=="object"&&Array.isArray(n)?t&&t.length>0&&t.forEach(function(b,c){g(n[c],b,void 0,c+1)}):g(n,t,r,1),m(i)}function g(b,c,d,v){var E={sheetid:"Sheet "+v,headers:!0};l.utils.extend(E,b);var O=Object.keys(c).length;(!d||d.length==0)&&(O>0?d=Object.keys(c[0]).map(function(K1){return{columnid:K1}}):d=[]);var R={};f.SheetNames.indexOf(E.sheetid)>-1||(f.SheetNames.push(E.sheetid),f.Sheets[E.sheetid]={}),R=f.Sheets[E.sheetid];var A="A1";E.range&&(A=E.range);var N=l.utils.xlscn(A.match(/[A-Z]+/)[0]),w=+A.match(/[0-9]+/)[0]-1;if(f.Sheets[E.sheetid]["!ref"])var T1=f.Sheets[E.sheetid]["!ref"],v1=l.utils.xlscn(T1.match(/[A-Z]+/)[0]),O1=+T1.match(/[0-9]+/)[0]-1;else var v1=1,O1=1;var G1=d.length?0:1,B1=Math.max(N+d.length-1+G1,v1),Y1=Math.max(w+O+2,O1),k=w+1;f.Sheets[E.sheetid]["!ref"]="A1:"+l.utils.xlsnc(B1)+Y1,E.headers&&(d.forEach(function(K1,V1){R[l.utils.xlsnc(N+V1)+""+k]={v:K1.columnid.trim()}}),k++);for(var s2=0;s2"u")s=f;else if(c=p3(),M1.isNode||M1.isMeteorServer)c.writeFile(f,e);else{var d={bookType:"xlsx",bookSST:!1,type:"binary"},v=c.write(f,d),E=function(O){for(var R=new ArrayBuffer(O.length),A=new Uint8Array(R),N=0;N!=O.length;++N)A[N]=O.charCodeAt(N)&255;return R};Qt(new Blob([E(v)],{type:"application/octet-stream"}),e)}}},l.from.METEOR=function(e,n,t,r,i){var s=e.find(n).fetch();return t&&(s=t(s,r,i)),s},l.from.TABLETOP=function(e,n,t,r,i){var s=[],u={headers:!0,simpleSheet:!0,key:e};return l.utils.extend(u,n),u.callback=function(f){s=f,t&&(s=t(s,r,i))},Tabletop.init(u),null},l.from.HTML=function(e,n,t,r,i){var s={};l.utils.extend(s,n);var u=document.querySelector(e);if(!u&&u.tagName!=="TABLE")throw new Error("Selected HTML element is not a TABLE");var f=[],h=s.headers;if(h&&!Array.isArray(h)){h=[];for(var g=u.querySelector("thead tr").children,m=0;mfunction(n,t,r,i,s){let u=[];return n=l.utils.autoExtFilename(n,e,t),l.utils.loadFile(n,!!r,function(f){f.split(/\r?\n/).forEach((h,g)=>{const m=h.trim();if(m!=="")try{u.push(JSON.parse(m))}catch(b){throw new Error(`Could not parse JSON at line ${g}: ${b.toString()}`)}}),r&&(u=r(u,i,s))},f=>{const h=f instanceof Error?f:new Error(f);if(s&&s.cb){s.cb(null,h);return}throw h}),u};l.from.JSONL=Ar("jsonl"),l.from.NDJSON=Ar("ndjson"),l.from.TXT=function(e,n,t,r,i){var s;return e=l.utils.autoExtFilename(e,"txt",n),l.utils.loadFile(e,!!t,function(u){s=u.split(/\r?\n/),s[s.length-1]===""&&s.pop();for(var f=0,h=s.length;f=E)return d;if(N)return N=!1,c;var G1=O;if(g.charCodeAt(G1)===b){for(var B1=G1;B1++i.cb(null,g))),u};function w4(e,n,t,r,i,s){var u={};t=t||{},l.utils.extend(u,t),typeof u.headers>"u"&&(u.headers=!0);var f;function h(m){for(var b="",c=0,d=10240;c"u"?d=c.SheetNames[0]:typeof u.sheetid=="number"?d=c.SheetNames[u.sheetid]:d=u.sheetid;var v,E=[];if(typeof u.range>"u"?v=c.Sheets[d]["!ref"]:(v=u.range,c.Sheets[d][v]&&(v=c.Sheets[d][v])),v){for(var O=v.split(":"),R=O[0].match(/[A-Z]+/)[0],A=+O[0].match(/[0-9]+/)[0],N=O[1].match(/[A-Z]+/)[0],w=+O[1].match(/[0-9]+/)[0],T1={},v1=l.utils.xlscn(R),O1=l.utils.xlscn(N),G1=v1;G1<=O1;G1++){var B1=l.utils.xlsnc(G1);u.headers?c.Sheets[d][B1+""+A]?T1[B1]=g(c.Sheets[d][B1+""+A].v):T1[B1]=g(B1):T1[B1]=B1}u.headers&&A++;for(var Y1=A;Y1<=w;Y1++){for(var k={},G1=v1;G1<=O1;G1++){var B1=l.utils.xlsnc(G1);c.Sheets[d][B1+""+Y1]&&(k[T1[B1]]=c.Sheets[d][B1+""+Y1].v)}E.push(k)}}else E.push([]);E.length>0&&E[E.length-1]&&Object.keys(E[E.length-1]).length==0&&E.pop(),r&&(E=r(E,i,s))},function(m){if(s&&s.cb){s.cb(null,m);return}throw m}),f}l.from.XLS=function(e,n,t,r,i){return n=n||{},e=l.utils.autoExtFilename(e,"xls",n),n.autoExt=!1,w4(p3(),e,n,t,r,i)},l.from.XLSX=function(e,n,t,r,i){return n=n||{},e=l.utils.autoExtFilename(e,"xlsx",n),n.autoExt=!1,w4(p3(),e,n,t,r,i)},l.from.ODS=function(e,n,t,r,i){return n=n||{},e=l.utils.autoExtFilename(e,"ods",n),n.autoExt=!1,w4(p3(),e,n,t,r,i)},l.from.XML=function(e,n,t,r,i){var s;return l.utils.loadFile(e,!!t,function(u){s=xi(u).root,t&&(s=t(s,r,i))}),s};function xi(e){return e=e.trim(),e=e.replace(//g,""),n();function n(){return{declaration:t(),root:r()}}function t(){var m=f(/^<\?xml\s*/);if(m){for(var b={attributes:{}};!(h()||g("?>"));){var c=s();if(!c)return b;b.attributes[c.name]=c.value}return f(/\?>\s*/),b}}function r(){var m=f(/^<([\w-:.]+)\s*/);if(m){for(var b={name:m[1],attributes:{},children:[]};!(h()||g(">")||g("?>")||g("/>"));){var c=s();if(!c)return b;b.attributes[c.name]=c.value}if(f(/^\s*\/>\s*/))return b;f(/\??>\s*/),b.content=i();for(var d;d=r();)b.children.push(d);return f(/^<\/[\w-:.]+>\s*/),b}}function i(){var m=f(/^([^<]*)/);return m?m[1]:""}function s(){var m=f(/([\w:-]+)\s*=\s*("[^"]*"|'[^']*'|\w+)\s*/);if(m)return{name:m[1],value:u(m[2])}}function u(m){return m.replace(/^['"]|['"]$/g,"")}function f(m){var b=e.match(m);if(b)return e=e.slice(b[0].length),b}function h(){return e.length==0}function g(m){return e.indexOf(m)==0}}l.from.GEXF=function(e,n,t,r,i){var s;return l("SEARCH FROM XML("+e+")",[],function(u){s=u,t&&(s=t(s))}),s},T.Print=function(e){return Object.assign(this,e)},T.Print.prototype.toString=function(){var e="PRINT";return this.statement&&(e+=" "+this.statement.toString()),e},T.Print.prototype.execute=function(e,n,t){var r=this,i=1;if(l.precompile(this,e,n),this.exprs&&this.exprs.length>0){var s=this.exprs.map(function(f){var h=new Function("params,alasql,p","var y;return "+f.toJS("({})","",null)).bind(r),g=h(n,l);return At(g)});console.log.apply(console,s)}else if(this.select){var u=this.select.execute(e,n);console.log(At(u))}else console.log();return t&&(i=t(i)),i},T.Source=function(e){return Object.assign(this,e)},T.Source.prototype.toString=function(){var e="SOURCE";return this.url&&(e+=" '"+this.url+" '"),e},T.Source.prototype.execute=function(e,n,t){var r;return G3(this.url,!!t,function(i){return r=l(i),t&&(r=t(r)),r},function(i){throw i}),r},T.Require=function(e){return Object.assign(this,e)},T.Require.prototype.toString=function(){var e="REQUIRE";return this.paths&&this.paths.length>0&&(e+=this.paths.map(function(n){return n.toString()}).join(",")),this.plugins&&this.plugins.length>0&&(e+=this.plugins.map(function(n){return n.toUpperCase()}).join(",")),e},T.Require.prototype.execute=function(e,n,t){var r=this,i=0,s="";return this.paths&&this.paths.length>0?this.paths.forEach(function(u){G3(u.value,!!t,function(f){i++,s+=f,!(i0?this.plugins.forEach(function(u){l.plugins[u]||G3(l.path+"/alasql-"+u.toLowerCase()+".js",!!t,function(f){i++,s+=f,!(is.name===e)||0;const t=n.open(e);return new Promise(function(r,i){t.onsuccess=()=>{t.result.close(),r({name:e,version:t.result.version})},t.onupgradeneeded=s=>{s.target.transaction.abort(),r(0)},t.onerror=()=>{i(new Error("IndexedDB error"))},t.onblocked=()=>{r({name:e,version:t.result.version})}})}dt.showDatabases=function(e,n){if(!indexedDB.databases){n(null,new Error("SHOW DATABASE is not supported in this browser"));return}indexedDB.databases().then(t=>{const r=[],i=e&&new RegExp(e.value.replace(/\%/g,".*"),"g");for(var s=0;s{throw i&&i(null,u),u}))if(t)i&&i(0);else{const u=new Error(`IndexedDB: Cannot create new database "${e}" because it already exists`);i&&i(null,u)}else{const u=indexedDB.open(e,1);u.onsuccess=()=>{u.result.close(),i(1)}}},dt.dropDatabase=async function(e,n,t){if(await E3(e).catch(i=>{throw t&&t(null,i),i})){const i=indexedDB.deleteDatabase(e);i.onsuccess=()=>{t&&t(1)}}else n?t&&t(0):t&&t(null,new Error(`IndexedDB: Cannot drop new database "${e}" because it does not exist'`))},dt.attachDatabase=async function(e,n,t,r,i){if(!await E3(e).catch(g=>{throw i&&i(null,g),g})){const g=new Error(`IndexedDB: Cannot attach database "${e}" because it does not exist`);throw i&&i(null,g),g}const u=await new Promise((g,m)=>{const b=indexedDB.open(e);b.onsuccess=()=>{g(b.result.objectStoreNames),b.result.close()}}),f=new l.Database(n||e);f.engineid="INDEXEDDB",f.ixdbid=e,f.tables=[];for(var h=0;h{throw r&&r(null,f),f});if(!s){const f=new Error('IndexedDB: Cannot create table in database "'+i+'" because it does not exist');throw r&&r(null,f),f}const u=indexedDB.open(i,s.version+1);u.onupgradeneeded=function(f){u.result.createObjectStore(n,{autoIncrement:!0})},u.onsuccess=function(f){u.result.close(),r&&r(1)},u.onerror=f=>{r(null,f)},u.onblocked=function(f){r(null,new Error(`Cannot create table "${n}" because database "${e}" is blocked`))}},dt.dropTable=async function(e,n,t,r){const i=l.databases[e].ixdbid,s=await E3(i).catch(h=>{throw r&&r(null,h),h});if(!s){const h=new Error('IndexedDB: Cannot drop table in database "'+i+'" because it does not exist');throw r&&r(null,h),h}const u=indexedDB.open(i,s.version+1);let f;u.onupgradeneeded=function(h){var g=u.result;g.objectStoreNames.contains(n)?(g.deleteObjectStore(n),delete l.databases[e].tables[n]):t||(f=new Error(`IndexedDB: Cannot drop table "${n}" because it does not exist`),h.target.transaction.abort())},u.onsuccess=function(h){u.result.close(),r&&r(1)},u.onerror=function(h){r&&r(null,f||h)},u.onblocked=function(h){r(null,new Error(`Cannot drop table "${n}" because database "${e}" is blocked`))}},dt.intoTable=function(e,n,t,r,i){const s=l.databases[e].ixdbid,u=indexedDB.open(s);var f=l.databases[e],h=f.tables[n];u.onupgradeneeded=g=>{g.target.transaction.abort();const m=new Error(`Cannot insert into table "${n}" because database "${e}" does not exist`);i&&i(null,m)},u.onsuccess=()=>{for(var g=u.result,m=g.transaction([n],"readwrite"),b=m.objectStore(n),c=0,d=t.length;c{f.target.transaction.abort();const h=new Error(`Cannot select from table "${n}" because database "${e}" does not exist`);t&&t(null,h)},u.onsuccess=()=>{const f=[],h=u.result,g=h.transaction([n]).objectStore(n).openCursor();g.onsuccess=()=>{const m=g.result;if(m){const b=typeof m=="object"?m.value:{[m.key]:m.value};f.push(b),m.continue()}else h.close(),t&&t(f,r,i)}}},dt.deleteFromTable=function(e,n,t,r,i){const s=l.databases[e].ixdbid,u=indexedDB.open(s);u.onsuccess=()=>{const f=u.result,h=f.transaction([n],"readwrite").objectStore(n).openCursor();let g=0;h.onsuccess=()=>{var m=h.result;m?((!t||t(m.value,r,l))&&(m.delete(),g++),m.continue()):(f.close(),i&&i(g))}}},dt.updateTable=function(e,n,t,r,i,s){const u=l.databases[e].ixdbid,f=indexedDB.open(u);f.onsuccess=function(){const h=f.result,g=h.transaction([n],"readwrite").objectStore(n).openCursor();let m=0;g.onsuccess=()=>{var b=g.result;if(b){if(!r||r(b.value,i)){var c=b.value;t(c,i),b.update(c),m++}b.continue()}else h.close(),s&&s(m)}}};var S2=l.engines.LOCALSTORAGE=function(){};S2.get=function(e){var n=localStorage.getItem(e);if(!(typeof n>"u")){var t;try{t=JSON.parse(n)}catch{throw new Error("Cannot parse JSON object from localStorage"+n)}return t}},S2.set=function(e,n){typeof n>"u"?localStorage.removeItem(e):localStorage.setItem(e,JSON.stringify(n))},S2.storeTable=function(e,n){var t=l.databases[e],r=t.tables[n],i={};i.columns=r.columns,i.data=r.data,i.identities=r.identities,S2.set(t.lsdbid+"."+n,i)},S2.restoreTable=function(e,n){var t=l.databases[e],r=S2.get(t.lsdbid+"."+n),i=new l.Table;for(var s in r)i[s]=r[s];return t.tables[n]=i,i.indexColumns(),i},S2.removeTable=function(e,n){var t=l.databases[e];localStorage.removeItem(t.lsdbid+"."+n)},S2.createDatabase=function(e,n,t,r,i){var s=1,u=S2.get("alasql");if(t&&u&&u.databases&&u.databases[e])s=0;else{if(u||(u={databases:{}}),u.databases&&u.databases[e])throw new Error('localStorage: Cannot create new database "'+e+'" because it already exists');u.databases[e]=!0,S2.set("alasql",u),S2.set(e,{databaseid:e,tables:{}})}return i&&(s=i(s)),s},S2.dropDatabase=function(e,n,t){var r=1,i=S2.get("alasql");if(n&&i&&i.databases&&!i.databases[e])r=0;else{if(!i){if(n)return t?t(0):0;throw new Error("There is no any AlaSQL databases in localStorage")}if(i.databases&&!i.databases[e])throw new Error('localStorage: Cannot drop database "'+e+'" because there is no such database');delete i.databases[e],S2.set("alasql",i);var s=S2.get(e);for(var u in s.tables)localStorage.removeItem(e+"."+u);localStorage.removeItem(e)}return t&&(r=t(r)),r},S2.attachDatabase=function(e,n,t,r,i){var s=1;if(l.databases[n])throw new Error('Unable to attach database as "'+n+'" because it already exists');n||(n=e);var u=new l.Database(n);if(u.engineid="LOCALSTORAGE",u.lsdbid=e,u.tables=S2.get(e).tables,!l.options.autocommit&&u.tables)for(var f in u.tables)S2.restoreTable(n,f);return i&&(s=i(s)),s},S2.showDatabases=function(e,n){var t=[],r=S2.get("alasql");if(e)var i=new RegExp(e.value.replace(/%/g,".*"),"g");if(r&&r.databases){for(var s in r.databases)t.push({databaseid:s});e&&t&&t.length>0&&(t=t.filter(function(u){return u.databaseid.match(i)}))}return n&&(t=n(t)),t},S2.createTable=function(e,n,t,r){var i=1,s=l.databases[e].lsdbid,u=S2.get(s+"."+n);if(u&&!t)throw new Error('Table "'+n+'" alsready exists in localStorage database "'+s+'"');var f=S2.get(s),h=l.databases[e].tables[n];return f.tables[n]=!0,S2.set(s,f),S2.storeTable(e,n),r&&(i=r(i)),i},S2.truncateTable=function(e,n,t,r){var i=1,s=l.databases[e].lsdbid,u;if(l.options.autocommit?u=S2.get(s):u=l.databases[e],!t&&!u.tables[n])throw new Error('Cannot truncate table "'+n+'" in localStorage, because it does not exist');var f=S2.restoreTable(e,n);return f.data=[],S2.storeTable(e,n),r&&(i=r(i)),i},S2.dropTable=function(e,n,t,r){var i=1,s=l.databases[e].lsdbid,u;if(l.options.autocommit?u=S2.get(s):u=l.databases[e],!t&&!u.tables[n])throw new Error('Cannot drop table "'+n+'" in localStorage, because it does not exist');return delete u.tables[n],S2.set(s,u),S2.removeTable(e,n),r&&(i=r(i)),i},S2.fromTable=function(e,n,t,r,i){var s=l.databases[e].lsdbid,u=S2.restoreTable(e,n).data;return t&&(u=t(u,r,i)),u},S2.intoTable=function(e,n,t,r,i){var s=l.databases[e].lsdbid,u=t.length,f=S2.restoreTable(e,n);for(var h in f.identities){var g=f.identities[h];for(var m in t)t[m][h]=g.value,g.value+=g.step}return f.data||(f.data=[]),f.data=f.data.concat(t),S2.storeTable(e,n),i&&(u=i(u)),u},S2.loadTableData=function(e,n){var t=l.databases[e],r=l.databases[e].lsdbid;S2.restoreTable(e,n)},S2.saveTableData=function(e,n){var t=l.databases[e],r=l.databases[e].lsdbid;S2.storeTable(r,n),t.tables[n].data=void 0},S2.commit=function(e,n){var t=l.databases[e],r=l.databases[e].lsdbid,i={databaseid:r,tables:{}};if(t.tables)for(var s in t.tables)i.tables[s]=!0,S2.storeTable(e,s);return S2.set(r,i),n?n(1):1},S2.begin=S2.commit,S2.rollback=function(e,n){return;var t,r,i;if(i.tables)for(var s in i.tables)S2.restoreTable(e,s)};var g3=l.engines.SQLITE=function(){};g3.createDatabase=function(e,n,t,r,i){throw new Error("Connot create SQLITE database in memory. Attach it.")},g3.dropDatabase=function(e){throw new Error("This is impossible to drop SQLite database. Detach it.")},g3.attachDatabase=function(e,n,t,r,i){var s=1;if(l.databases[n])throw new Error('Unable to attach database as "'+n+'" because it already exists');if(t[0]&&t[0]instanceof T.StringValue||t[0]instanceof T.ParamValue){if(t[0]instanceof T.StringValue)var u=t[0].value;else if(t[0]instanceof T.ParamValue)var u=r[t[0].param];return l.utils.loadBinaryFile(u,!0,function(f){var h=new l.Database(n||e);h.engineid="SQLITE",h.sqldbid=e;var g=h.sqldb=new SQL.Database(f);h.tables=[];var m=g.exec("SELECT * FROM sqlite_master WHERE type='table'")[0].values;m.forEach(function(b){h.tables[b[1]]={};var c=h.tables[b[1]].columns=[],d=l.parse(b[4]),v=d.statements[0].columns;v&&v.length>0&&v.forEach(function(E){c.push(E)})}),i(1)},function(f){throw new Error('Cannot open SQLite database file "'+t[0].value+'"')}),s}else throw new Error("Cannot attach SQLite database without a file");return s},g3.fromTable=function(e,n,t,r,i){var s=l.databases[e].sqldb.exec("SELECT * FROM "+n),u=i.sources[r].columns=[];s[0].columns.length>0&&s[0].columns.forEach(function(h){u.push({columnid:h})});var f=[];s[0].values.length>0&&s[0].values.forEach(function(h){var g={};u.forEach(function(m,b){g[m.columnid]=h[b]}),f.push(g)}),t&&t(f,r,i)},g3.intoTable=function(e,n,t,r,i){for(var s=l.databases[e].sqldb,u=0,f=t.length;u"u"){for(var r=document.getElementsByTagName("script"),i=0;i"u")throw new Error("Path to alasql.js is not specified");if(e!==!1){var s="importScripts('";s+=e,s+="');self.onmessage = function(event) {alasql(event.data.sql,event.data.params, function(data){postMessage({id:event.data.id, data:data});});}";var u=new Blob([s],{type:"text/plain"});if(l.webworker=new Worker(URL.createObjectURL(u)),l.webworker.onmessage=function(h){var g=h.data.id;l.buffer[g](h.data.data),delete l.buffer[g]},l.webworker.onerror=function(h){throw h},arguments.length>1){var f="REQUIRE "+n.map(function(h){return'"'+h+'"'}).join(",");l(f,[],t)}}else if(e===!1){delete l.webworker;return}});/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */var Qt=Qt||function(e){"use strict";if(!(typeof e>"u"||typeof navigator<"u"&&/MSIE [1-9]\./.test(navigator.userAgent))){var n=e.document,t=function(){return e.URL||e.webkitURL||e},r=n.createElementNS("http://www.w3.org/1999/xhtml","a"),i="download"in r,s=function(R){var A=new MouseEvent("click");R.dispatchEvent(A)},u=/constructor/i.test(e.HTMLElement)||e.safari,f=/CriOS\/[\d]+/.test(navigator.userAgent),h=function(R){(e.setImmediate||e.setTimeout)(function(){throw R},0)},g="application/octet-stream",m=1e3*40,b=function(R){var A=function(){typeof R=="string"?t().revokeObjectURL(R):R.remove()};setTimeout(A,m)},c=function(R,A,N){A=[].concat(A);for(var w=A.length;w--;){var T1=R["on"+A[w]];if(typeof T1=="function")try{T1.call(R,N||R)}catch(v1){h(v1)}}},d=function(R){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(R.type)?new Blob(["\uFEFF",R],{type:R.type}):R},v=function(R,A,N){N||(R=d(R));var w=this,T1=R.type,v1=T1===g,O1,G1=function(){c(w,"writestart progress write writeend".split(" "))},B1=function(){if((f||v1&&u)&&e.FileReader){var Y1=new FileReader;Y1.onloadend=function(){var s2=f?Y1.result:Y1.result.replace(/^data:[^;]*;/,"data:attachment/file;"),K1=e.open(s2,"_blank");K1||(e.location.href=s2),s2=void 0,w.readyState=w.DONE,G1()},Y1.readAsDataURL(R),w.readyState=w.INIT;return}if(O1||(O1=t().createObjectURL(R)),v1)e.location.href=O1;else{var k=e.open(O1,"_blank");k||(e.location.href=O1)}w.readyState=w.DONE,G1(),b(O1)};if(w.readyState=w.INIT,i){O1=t().createObjectURL(R),setTimeout(function(){r.href=O1,r.download=A,s(r),G1(),b(O1),w.readyState=w.DONE});return}B1()},E=v.prototype,O=function(R,A,N){return new v(R,A||R.name||"download",N)};return typeof navigator<"u"&&navigator.msSaveOrOpenBlob?function(R,A,N){return A=A||R.name||"download",N||(R=d(R)),navigator.msSaveOrOpenBlob(R,A)}:(E.abort=function(){},E.readyState=E.INIT=0,E.WRITING=1,E.DONE=2,E.error=E.onwritestart=E.onprogress=E.onwrite=E.onabort=E.onerror=E.onwriteend=null,O)}}(typeof self<"u"&&self||typeof window<"u"&&window||this.content);typeof module<"u"&&module.exports?module.exports.saveAs=Qt:typeof define<"u"&&define!==null&&define.amd!==null&&define("FileSaver.js",function(){return Qt}),(M1.isCordova||M1.isMeteorServer||M1.isNode)&&console.log("It looks like you are using the browser version of AlaSQL. Please use the alasql.fs.js file instead."),l.utils.saveAs=Qt}return new b3("alasql"),l.use("alasql"),l}); diff --git a/app/assets/vendor/apexcharts/7.5.1/apexcharts.min.js b/app/assets/vendor/apexcharts/7.5.1/apexcharts.min.js new file mode 100644 index 0000000..3d6a3d1 --- /dev/null +++ b/app/assets/vendor/apexcharts/7.5.1/apexcharts.min.js @@ -0,0 +1,5 @@ +/*! + * ApexCharts v7.5.1 + * (c) 2018-2026 ApexCharts + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).ApexCharts=e()}(this,function(){"use strict";var t=Object.defineProperty,e=Object.defineProperties,i=Object.getOwnPropertyDescriptors,s=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable,n=(e,i,s)=>i in e?t(e,i,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[i]=s,o=(t,e)=>{for(var i in e||(e={}))a.call(e,i)&&n(t,i,e[i]);if(s)for(var i of s(e))r.call(e,i)&&n(t,i,e[i]);return t},l=(t,s)=>e(t,i(s)),h=(t,e,i)=>n(t,"symbol"!=typeof e?e+"":e,i),c=(t,e,i)=>new Promise((s,a)=>{var r=t=>{try{o(i.next(t))}catch(t){a(t)}},n=t=>{try{o(i.throw(t))}catch(t){a(t)}},o=t=>t.done?s(t.value):Promise.resolve(t.value).then(r,n);o((i=i.apply(t,e)).next())});class d{static isSSR(){return"undefined"==typeof window||"undefined"==typeof document}static isBrowser(){return!this.isSSR()}static hasAPI(t){return!this.isSSR()&&void 0!==window[t]}static getApex(){return"undefined"!=typeof window&&window.Apex?window.Apex:"undefined"!=typeof global&&global.Apex?global.Apex:{}}}class p{constructor(t,e=null){this.nodeName=t,this.namespaceURI=e,this.attributes=new Map,this.children=[],this.textContent="",this.style={},this.classList=new u,this.parentNode=null,this._ssrWidth=void 0,this._ssrHeight=void 0,this._ssrMode=void 0}setAttribute(t,e){this.attributes.set(t,e)}getAttribute(t){return this.attributes.get(t)}removeAttribute(t){this.attributes.delete(t)}hasAttribute(t){return this.attributes.has(t)}appendChild(t){if(t&&t!==this){if(t.parentNode&&t.parentNode!==this)t.parentNode.removeChild(t);else if(t.parentNode===this){const e=this.children.indexOf(t);-1!==e&&this.children.splice(e,1)}t.parentNode=this,this.children.push(t)}return t}removeChild(t){const e=this.children.indexOf(t);return-1!==e&&(this.children.splice(e,1),t.parentNode=null),t}insertBefore(t,e){if(!e)return this.appendChild(t);if(t.parentNode&&t.parentNode!==this)t.parentNode.removeChild(t);else if(t.parentNode===this){const e=this.children.indexOf(t);-1!==e&&this.children.splice(e,1)}const i=this.children.indexOf(e);return-1!==i&&(t.parentNode=this,this.children.splice(i,0,t)),t}cloneNode(t=!1){const e=new p(this.nodeName,this.namespaceURI);return e.textContent=this.textContent,this.attributes.forEach((t,i)=>{e.attributes.set(i,t)}),Object.assign(e.style,this.style),t&&this.children.forEach(t=>{t.cloneNode&&e.appendChild(t.cloneNode(!0))}),e}getBoundingClientRect(){return{width:this._ssrWidth||0,height:this._ssrHeight||0,top:0,left:0,right:this._ssrWidth||0,bottom:this._ssrHeight||0,x:0,y:0}}getBBox(){if("text"!==this.nodeName&&"tspan"!==this.nodeName)return{x:0,y:0,width:0,height:0};const t=this._textLines(),e=t.reduce((t,e)=>Math.max(t,e.length),0);if(!e)return{x:0,y:0,width:0,height:0};const i=parseFloat(this.attributes.get("font-size"))||11,s=e*i*.55,a=1.167*i+(t.length-1)*i*1.1,r=this.attributes.get("text-anchor"),n=parseFloat(this.attributes.get("x"))||0;return{x:"middle"===r?n-s/2:"end"===r?n-s:n,y:(parseFloat(this.attributes.get("y"))||0)-.917*i,width:s,height:a}}_textLines(){var t;const e=this.children.filter(t=>"tspan"===t.nodeName);return e.length?e.map(t=>{var e;return String(null!=(e=t.textContent)?e:"")}):[String(null!=(t=this.textContent)?t:"")]}getRootNode(){let t=this;for(;t.parentNode;)t=t.parentNode;return t}querySelector(){return null}querySelectorAll(){return[]}getElementsByClassName(){return[]}addEventListener(){}removeEventListener(){}get childNodes(){return this.children}toString(){let t="";if(this.attributes.forEach((e,i)=>{t+=` ${i}="${e}"`}),0===this.children.length&&!this.textContent)return`<${this.nodeName}${t}/>`;const e=this.children.map(t=>t.toString()).join("");return`<${this.nodeName}${t}>${this.textContent}${e}`}get innerHTML(){return this.children.map(t=>t.toString()).join("")}set innerHTML(t){this.children=[],this.textContent=t}get outerHTML(){return this.toString()}get isConnected(){return!0}}class u{constructor(){this.classes=new Set}add(...t){t.forEach(t=>this.classes.add(t))}remove(...t){t.forEach(t=>this.classes.delete(t))}contains(t){return this.classes.has(t)}toggle(t,e){return!0===e?(this.classes.add(t),!0):!1===e||this.classes.has(t)?(this.classes.delete(t),!1):(this.classes.add(t),!0)}toString(){return Array.from(this.classes).join(" ")}}class g{constructor(){this.SVGNS="http://www.w3.org/2000/svg",this.XLINKNS="http://www.w3.org/1999/xlink"}createElementNS(t,e){return new p(e,t)}createTextNode(t){const e={nodeName:"#text",nodeType:3,textContent:t,toString:()=>e.textContent};return e}querySelector(){return null}querySelectorAll(){return[]}getComputedStyle(){return{}}getBoundingClientRect(t){return t&&t.getBoundingClientRect?t.getBoundingClientRect():{width:0,height:0,top:0,left:0,right:0,bottom:0,x:0,y:0}}createXMLSerializer(){return{serializeToString:t=>t.toString?t.toString():""}}createDOMParser(){return{parseFromString(t,e){const i=new p("root");return i.innerHTML=t,{documentElement:i}}}}}let f=null,x=null,m=null;class b{static init(){d.isSSR()&&!f&&(f=new g)}static createElement(t){return d.isSSR()?(f||this.init(),f.createElementNS(null,t)):document.createElement(t)}static createElementNS(t,e){return d.isSSR()?(f||this.init(),f.createElementNS(t,e)):document.createElementNS(t,e)}static createTextNode(t){return d.isSSR()?(f||this.init(),f.createTextNode(t)):document.createTextNode(t)}static querySelector(t){return d.isSSR()?null:document.querySelector(t)}static querySelectorAll(t){return d.isSSR()?[]:document.querySelectorAll(t)}static getComputedStyle(t){return d.isSSR()?{}:window.getComputedStyle(t)}static matchMedia(t){if(d.isSSR()||"function"!=typeof window.matchMedia)return null;try{return window.matchMedia(t)}catch(t){return null}}static getBoundingClientRect(t){return d.isSSR()?(f||this.init(),f.getBoundingClientRect(t)):t?t.getBoundingClientRect():{width:0,height:0,top:0,left:0,right:0,bottom:0,x:0,y:0}}static getXMLSerializer(){return d.isSSR()?(f||this.init(),x||(x=f.createXMLSerializer()),x):(x||(x=new XMLSerializer),x)}static getDOMParser(){return d.isSSR()?(f||this.init(),m||(m=f.createDOMParser()),m):(m||(m=new DOMParser),m)}static addWindowEventListener(t,e,i){d.isBrowser()&&window.addEventListener(t,e,i)}static removeWindowEventListener(t,e,i){d.isBrowser()&&window.removeEventListener(t,e,i)}static requestAnimationFrame(t){return d.isBrowser()?window.requestAnimationFrame(t):(t(0),null)}static cancelAnimationFrame(t){d.isBrowser()&&t&&window.cancelAnimationFrame(t)}static elementExists(t){return!!t&&(d.isSSR()?!0===t._ssrMode||void 0!==t.nodeName:!!t.getRootNode&&(t.getRootNode({composed:!0})===document||t.isConnected))}static getWindow(){return d.isBrowser()?window:null}static getDocument(){return d.isBrowser()?document:null}static _getShim(){return f}static _resetShim(){f=null,x=null,m=null}}const y=new WeakMap;let w=0,v=class t{static isObject(t){return t&&"object"==typeof t&&!Array.isArray(t)}static is(t,e){return Object.prototype.toString.call(e)==="[object "+t+"]"}static isSafari(){return d.isBrowser()&&/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}static extend(t,e){if(!this.isObject(t)&&this.isObject(e))return this.clone(e);const i=Object.assign({},t);return this.isObject(t)&&this.isObject(e)&&Object.keys(e).forEach(s=>{this.isObject(e[s])?s in t?i[s]=this.extend(t[s],e[s]):Object.assign(i,{[s]:e[s]}):Object.assign(i,{[s]:e[s]})}),i}static copySeriesShallow(t){return Array.isArray(t)?t.map(t=>this.isObject(t)?o({},t):t):t}static extendArray(e,i){const s=[];return e.map(e=>{s.push(t.extend(i,e))}),e=s}static monthMod(t){return t%12}static clone(t,e=new WeakMap,i=!1){if(null===t||"object"!=typeof t)return t;if(e.has(t))return e.get(t);let s;if(Array.isArray(t))if(i)s=t.slice();else{s=[],e.set(t,s);for(let i=0;i{if("function"!=typeof e)return e;let i=y.get(e);return void 0===i&&(i=++w,y.set(e,i)),`__apx_fn_${i}`})}static shallowEqual(t,e){if(t===e)return!0;if(!t||!e)return!1;if("object"!=typeof t||"object"!=typeof e)return t===e;const i=Object.keys(t),s=Object.keys(e);if(i.length!==s.length)return!1;for(const s of i)if(t[s]!==e[s])return!1;return!0}static log10(t){return Math.log(t)/Math.LN10}static roundToBase10(t){return Math.pow(10,Math.floor(Math.log10(t)))}static roundToBase(t,e){return Math.pow(e,Math.floor(Math.log(t)/Math.log(e)))}static parseNumber(t){return"number"==typeof t||null===t?t:parseFloat(t)}static stripNumber(t,e=2){return Number.isInteger(t)?t:parseFloat(t.toPrecision(e))}static randomId(){return(Math.random()+1).toString(36).substring(4)}static noExponents(t){return t.toString().includes("e")?Math.round(t):t}static elementExists(t){return!(!t||!t.isConnected)}static getDimensions(t){if(!t)return[0,0];if(d.isSSR())return[t._ssrWidth||400,t._ssrHeight||300];let e;try{e=getComputedStyle(t,null)}catch(e){return[t.clientWidth||0,t.clientHeight||0]}let i=t.clientWidth,s=t.clientHeight;if(!i||!s){const e=t.getBoundingClientRect();i=i||e.width,s=s||e.height}return s-=parseFloat(e.paddingTop)+parseFloat(e.paddingBottom),i-=parseFloat(e.paddingLeft)+parseFloat(e.paddingRight),[i,s]}static getBoundingClientRect(t){if(!t)return{top:0,right:0,bottom:0,left:0,width:0,height:0,x:0,y:0};if(d.isSSR())return b.getBoundingClientRect(t);const e=t.getBoundingClientRect();return{top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:t.clientWidth,height:t.clientHeight,x:e.left,y:e.top}}static getLargestStringFromArr(t){return t.reduce((t,e)=>(Array.isArray(e)&&(e=e.reduce((t,e)=>t.length>e.length?t:e)),t.length>e.length?t:e),0)}static hexToRgba(t="#999999",e=.6){"#"!==t.substring(0,1)&&(t="#999999");const i=t.replace("#",""),s=i.match(new RegExp("(.{"+i.length/3+"})","g"))||[];for(let t=0;tt+t).join("")),/^[0-9a-fA-F]{6}$/.test(e)?[parseInt(e.slice(0,2),16),parseInt(e.slice(2,4),16),parseInt(e.slice(4,6),16)]:null}static relativeLuminance([t,e,i]){const s=t=>{const e=t/255;return e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)};return.2126*s(t)+.7152*s(e)+.0722*s(i)}static getContrastRatio(e,i){const s=t.parseHex(e),a=t.parseHex(i);if(!s||!a)return 0;const r=t.relativeLuminance(s),n=t.relativeLuminance(a);return(Math.max(r,n)+.05)/(Math.min(r,n)+.05)}static rgb2hex(t){return(t=t.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i))&&4===t.length?"#"+("0"+parseInt(t[1],10).toString(16)).slice(-2)+("0"+parseInt(t[2],10).toString(16)).slice(-2)+("0"+parseInt(t[3],10).toString(16)).slice(-2):""}shadeRGBColor(t,e){const i=e.split(","),s=t<0?0:255,a=t<0?-1*t:t,r=parseInt(i[0].slice(4),10),n=parseInt(i[1],10),o=parseInt(i[2],10);return"rgb("+(Math.round((s-r)*a)+r)+","+(Math.round((s-n)*a)+n)+","+(Math.round((s-o)*a)+o)+")"}shadeHexColor(t,e){const i=parseInt(e.slice(1),16),s=t<0?0:255,a=t<0?-1*t:t,r=i>>16,n=i>>8&255,o=255&i;return"#"+(16777216+65536*(Math.round((s-r)*a)+r)+256*(Math.round((s-n)*a)+n)+(Math.round((s-o)*a)+o)).toString(16).slice(1)}shadeColor(e,i){return t.isColorHex(i)?this.shadeHexColor(e,i):this.shadeRGBColor(e,i)}static isColorHex(t){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)|(^#[0-9A-F]{8}$)/i.test(t)}static isCSSVariable(t){if("string"!=typeof t)return!1;const e=t.trim();return e.startsWith("var(")&&e.endsWith(")")}static getThemeColor(e){if(!t.isCSSVariable(e))return e;if(d.isSSR())return e;const i=document.createElement("div");let s;i.style.cssText="position:fixed; left: -9999px; visibility:hidden;",i.style.color=e,document.body.appendChild(i);try{s=window.getComputedStyle(i).color}finally{i.parentNode&&i.parentNode.removeChild(i)}return s}static applyOpacityToColor(t,e){const i=Number(e);if(!Number.isFinite(i))return t;if(i<=0)return"transparent";if(i>=1)return t;return`color-mix(in srgb, ${t} ${Math.round(100*i)}%, transparent)`}static getPolygonPos(t,e){const i=[],s=2*Math.PI/e;for(let a=0;a{}[\]\\/]/gi,e),i}static negToZero(t){return t<0?0:t}static moveIndexInArray(t,e,i){if(i>=t.length){let e=i-t.length+1;for(;e--;)t.push(void 0)}return t.splice(i,0,t.splice(e,1)[0]),t}static extractNumber(t){return parseFloat(t.replace(/[^\d.]*/g,""))}static findAncestor(t,e){for(;(t=t.parentElement)&&!t.classList.contains(e););return t}static setELstyles(t,e){for(const i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t.style[i]=e[i])}static preciseAddition(t,e){const i=(String(t).split(".")[1]||"").length,s=(String(e).split(".")[1]||"").length,a=Math.pow(10,Math.max(i,s));return(Math.round(t*a)+Math.round(e*a))/a}static isNumber(t){return!isNaN(t)&&parseFloat(String(Number(t)))===t&&!isNaN(parseInt(t,10))}static isFloat(t){return Number(t)===t&&t%1!=0}static isMsEdge(){if(d.isSSR())return!1;const t=window.navigator.userAgent,e=t.indexOf("Edge/");return e>0&&parseInt(t.substring(e+5,t.indexOf(".",e)),10)}static getGCD(t,e,i=7){let s=Math.pow(10,i-Math.floor(Math.log10(Math.max(t,e))));for(s>1?(t=Math.round(Math.abs(t)*s),e=Math.round(Math.abs(e)*s)):s=1;e;){const i=e;e=t%e,t=i}return t/s}static getPrimeFactors(t){const e=[];let i=2;for(;t>=2;)t%i==0?(e.push(i),t/=i):i++;return e}static mod(t,e,i=7){const s=Math.pow(10,i-Math.floor(Math.log10(Math.max(t,e))));return(t=Math.round(Math.abs(t)*s))%(e=Math.round(Math.abs(e)*s))/s}};class A{constructor(t){this.w=t,this.months31=[1,3,5,7,8,10,12],this.months30=[2,4,6,9,11],this.daysCntOfYear=[0,31,59,90,120,151,181,212,243,273,304,334]}isValidDate(t){return"number"!=typeof t&&!isNaN(this.parseDate(t))}getTimeStamp(t){if(isNaN(Date.parse(t)))return t;return this.w.config.xaxis.labels.datetimeUTC?new Date(new Date(t).toISOString().substr(0,25)).getTime():new Date(t).getTime()}getDate(t){return this.w.config.xaxis.labels.datetimeUTC?new Date(new Date(t).toUTCString()):new Date(t)}parseDate(t){const e=Date.parse(t);if(!isNaN(e))return this.getTimeStamp(t);if("string"!=typeof t)return NaN;let i=Date.parse(t.replace(/-/g,"/").replace(/[a-z]+/gi," "));return i=this.getTimeStamp(i),i}parseDateWithTimezone(t){return Date.parse(t.replace(/-/g,"/").replace(/[a-z]+/gi," "))}formatDate(t,e){const i=this.w.globals.locale,s=this.w.config.xaxis.labels.datetimeUTC,a=["\0",...i.months],r=["\x01",...i.shortMonths],n=["\x02",...i.days],o=["\x03",...i.shortDays];function l(t,e=2){let i=t+"";for(;i.length12?p-12:0===p?12:p;e=(e=(e=(e=e.replace(/(^|[^\\])HH+/g,"$1"+l(p))).replace(/(^|[^\\])H/g,"$1"+p)).replace(/(^|[^\\])hh+/g,"$1"+l(u))).replace(/(^|[^\\])h/g,"$1"+u);const g=s?t.getUTCMinutes():t.getMinutes();e=(e=e.replace(/(^|[^\\])mm+/g,"$1"+l(g))).replace(/(^|[^\\])m/g,"$1"+g);const f=s?t.getUTCSeconds():t.getSeconds();e=(e=e.replace(/(^|[^\\])ss+/g,"$1"+l(f))).replace(/(^|[^\\])s/g,"$1"+f);let x=s?t.getUTCMilliseconds():t.getMilliseconds();e=e.replace(/(^|[^\\])fff+/g,"$1"+l(x,3)),x=Math.round(x/10),e=e.replace(/(^|[^\\])ff/g,"$1"+l(x)),x=Math.round(x/10);const m=p<12?"AM":"PM";e=(e=(e=e.replace(/(^|[^\\])f/g,"$1"+x)).replace(/(^|[^\\])TT+/g,"$1"+m)).replace(/(^|[^\\])T/g,"$1"+m.charAt(0));const b=m.toLowerCase();e=(e=e.replace(/(^|[^\\])tt+/g,"$1"+b)).replace(/(^|[^\\])t/g,"$1"+b.charAt(0));let y=-t.getTimezoneOffset(),w=s||!y?"Z":y>0?"+":"-";if(!s){y=Math.abs(y);const t=y%60;w+=l(Math.floor(y/60))+":"+l(t)}e=e.replace(/(^|[^\\])K/g,"$1"+w);const v=(s?t.getUTCDay():t.getDay())+1;return e=(e=(e=(e=(e=e.replace(new RegExp(n[0],"g"),n[v])).replace(new RegExp(o[0],"g"),o[v])).replace(new RegExp(a[0],"g"),a[c])).replace(new RegExp(r[0],"g"),r[c])).replace(/\\(.)/g,"$1")}getTimeUnitsfromTimestamp(t,e){const i=this.w;void 0!==i.config.xaxis.min&&(t=i.config.xaxis.min),void 0!==i.config.xaxis.max&&(e=i.config.xaxis.max);const s=this.getDate(t),a=this.getDate(e),r=this.formatDate(s,"yyyy MM dd HH mm ss fff").split(" "),n=this.formatDate(a,"yyyy MM dd HH mm ss fff").split(" ");return{minMillisecond:parseInt(r[6],10),maxMillisecond:parseInt(n[6],10),minSecond:parseInt(r[5],10),maxSecond:parseInt(n[5],10),minMinute:parseInt(r[4],10),maxMinute:parseInt(n[4],10),minHour:parseInt(r[3],10),maxHour:parseInt(n[3],10),minDate:parseInt(r[2],10),maxDate:parseInt(n[2],10),minMonth:parseInt(r[1],10)-1,maxMonth:parseInt(n[1],10)-1,minYear:parseInt(r[0],10),maxYear:parseInt(n[0],10)}}isLeapYear(t){return t%4==0&&t%100!=0||t%400==0}calculcateLastDaysOfMonth(t,e,i){return this.determineDaysOfMonths(t,e)-i}determineDaysOfYear(t){let e=365;return this.isLeapYear(t)&&(e=366),e}determineRemainingDaysOfYear(t,e,i){let s=this.daysCntOfYear[e]+i;return e>1&&this.isLeapYear(t)&&s++,s}determineDaysOfMonths(t,e){let i=30;switch(t=v.monthMod(t),!0){case this.months30.indexOf(t)>-1:2===t&&(i=this.isLeapYear(e)?29:28);break;case this.months31.indexOf(t)>-1:default:i=31}return i}getDateFields(t,e){const i=new Date(t);return e?{year:i.getUTCFullYear(),month:i.getUTCMonth(),date:i.getUTCDate(),hour:i.getUTCHours(),minute:i.getUTCMinutes(),second:i.getUTCSeconds(),ms:i.getUTCMilliseconds(),weekday:i.getUTCDay()}:{year:i.getFullYear(),month:i.getMonth(),date:i.getDate(),hour:i.getHours(),minute:i.getMinutes(),second:i.getSeconds(),ms:i.getMilliseconds(),weekday:i.getDay()}}addInterval(t,e,i,s){const a=new Date(t);if(s)switch(e){case"year":a.setUTCFullYear(a.getUTCFullYear()+i);break;case"month":a.setUTCMonth(a.getUTCMonth()+i);break;case"week":a.setUTCDate(a.getUTCDate()+7*i);break;case"day":a.setUTCDate(a.getUTCDate()+i);break;case"hour":a.setUTCHours(a.getUTCHours()+i);break;case"minute":a.setUTCMinutes(a.getUTCMinutes()+i);break;case"second":a.setUTCSeconds(a.getUTCSeconds()+i)}else switch(e){case"year":a.setFullYear(a.getFullYear()+i);break;case"month":a.setMonth(a.getMonth()+i);break;case"week":a.setDate(a.getDate()+7*i);break;case"day":a.setDate(a.getDate()+i);break;case"hour":a.setHours(a.getHours()+i);break;case"minute":a.setMinutes(a.getMinutes()+i);break;case"second":a.setSeconds(a.getSeconds()+i)}return a.getTime()}ceilToBoundary(t,e,i,s){const a=new Date(t);if(s)switch(e){case"second":{const e=a.getUTCSeconds(),s=Math.ceil(e/i)*i;return s===e&&0===a.getUTCMilliseconds()?t:(a.setUTCMilliseconds(0),a.setUTCSeconds(s),a.getTime())}case"minute":{const e=a.getUTCMinutes(),s=Math.ceil(e/i)*i;return s===e&&0===a.getUTCSeconds()&&0===a.getUTCMilliseconds()?t:(a.setUTCMilliseconds(0),a.setUTCSeconds(0),a.setUTCMinutes(s),a.getTime())}case"hour":{const e=a.getUTCHours(),s=Math.ceil(e/i)*i;return s===e&&0===a.getUTCMinutes()&&0===a.getUTCSeconds()&&0===a.getUTCMilliseconds()?t:(a.setUTCMilliseconds(0),a.setUTCSeconds(0),a.setUTCMinutes(0),a.setUTCHours(s),a.getTime())}case"day":return 0===a.getUTCHours()&&0===a.getUTCMinutes()&&0===a.getUTCSeconds()&&0===a.getUTCMilliseconds()?t:(a.setUTCMilliseconds(0),a.setUTCSeconds(0),a.setUTCMinutes(0),a.setUTCHours(0),a.setUTCDate(a.getUTCDate()+1),a.getTime());case"week":{const e=6048e5,s=Date.UTC(1970,0,5);a.setUTCMilliseconds(0),a.setUTCSeconds(0),a.setUTCMinutes(0),a.setUTCHours(0);const r=a.getTime(),n=Math.ceil((r-s)/e),o=s+Math.ceil(n/i)*i*e;return o>=t?o:o+i*e}case"month":{const e=a.getUTCMonth(),s=Math.ceil(e/i)*i;return s===e&&1===a.getUTCDate()&&0===a.getUTCHours()&&0===a.getUTCMinutes()&&0===a.getUTCSeconds()&&0===a.getUTCMilliseconds()?t:(a.setUTCMilliseconds(0),a.setUTCSeconds(0),a.setUTCMinutes(0),a.setUTCHours(0),a.setUTCDate(1),a.setUTCMonth(s),a.getTime())}case"year":{const e=a.getUTCFullYear(),s=Math.ceil(e/i)*i;return s===e&&0===a.getUTCMonth()&&1===a.getUTCDate()&&0===a.getUTCHours()&&0===a.getUTCMinutes()&&0===a.getUTCSeconds()&&0===a.getUTCMilliseconds()?t:Date.UTC(s,0,1)}}else switch(e){case"second":{const e=a.getSeconds(),s=Math.ceil(e/i)*i;return s===e&&0===a.getMilliseconds()?t:(a.setMilliseconds(0),a.setSeconds(s),a.getTime())}case"minute":{const e=a.getMinutes(),s=Math.ceil(e/i)*i;return s===e&&0===a.getSeconds()&&0===a.getMilliseconds()?t:(a.setMilliseconds(0),a.setSeconds(0),a.setMinutes(s),a.getTime())}case"hour":{const e=a.getHours(),s=Math.ceil(e/i)*i;return s===e&&0===a.getMinutes()&&0===a.getSeconds()&&0===a.getMilliseconds()?t:(a.setMilliseconds(0),a.setSeconds(0),a.setMinutes(0),a.setHours(s),a.getTime())}case"day":return 0===a.getHours()&&0===a.getMinutes()&&0===a.getSeconds()&&0===a.getMilliseconds()?t:(a.setMilliseconds(0),a.setSeconds(0),a.setMinutes(0),a.setHours(0),a.setDate(a.getDate()+1),a.getTime());case"week":{const e=6048e5,s=new Date(1970,0,5).getTime();a.setMilliseconds(0),a.setSeconds(0),a.setMinutes(0),a.setHours(0);const r=a.getTime(),n=Math.ceil((r-s)/e),o=s+Math.ceil(n/i)*i*e;return o>=t?o:o+i*e}case"month":{const e=a.getMonth(),s=Math.ceil(e/i)*i;return s===e&&1===a.getDate()&&0===a.getHours()&&0===a.getMinutes()&&0===a.getSeconds()&&0===a.getMilliseconds()?t:(a.setMilliseconds(0),a.setSeconds(0),a.setMinutes(0),a.setHours(0),a.setDate(1),a.setMonth(s),a.getTime())}case"year":{const e=a.getFullYear(),s=Math.ceil(e/i)*i;return s===e&&0===a.getMonth()&&1===a.getDate()&&0===a.getHours()&&0===a.getMinutes()&&0===a.getSeconds()&&0===a.getMilliseconds()?t:new Date(s,0,1).getTime()}}return t}isAtBoundary(t,e,i){const s=this.getDateFields(t,i);switch(e){case"year":return 0===s.month&&1===s.date&&0===s.hour&&0===s.minute&&0===s.second&&0===s.ms;case"month":return 1===s.date&&0===s.hour&&0===s.minute&&0===s.second&&0===s.ms;case"day":return 0===s.hour&&0===s.minute&&0===s.second&&0===s.ms;case"hour":return 0===s.minute&&0===s.second&&0===s.ms;case"minute":return 0===s.second&&0===s.ms;case"second":return 0===s.ms}return!1}}class S{constructor(t){this.w=t,this.tooltipKeyFormat="dd MMM"}xLabelFormat(t,e,i,s){const a=this.w;if("datetime"===a.config.xaxis.type&&void 0===a.config.xaxis.labels.formatter&&void 0===a.config.tooltip.x.formatter){const t=new A(this.w);return t.formatDate(t.getDate(e),a.config.tooltip.x.format)}return t(e,i,s)}defaultGeneralFormatter(t){return Array.isArray(t)?t.map(t=>t):t}defaultYFormatter(t,e){const i=this.w;if(v.isNumber(t))if(0!==i.globals.yValueDecimal)t=t.toFixed(void 0!==e.decimalsInFloat?e.decimalsInFloat:i.globals.yValueDecimal);else{const e=t.toFixed(0);t=Number(e)===t?e:t.toFixed(1)}return t}setLabelFormatters(){const t=this.w,e=t.formatters,i=t.axisFlags.isXNumeric&&t.axisFlags.dataFormatXNumeric&&"datetime"!==t.config.xaxis.type&&!t.config.xaxis.convertedCatToNumeric&&!t.globals.isBarHorizontal;if(e.xaxisTooltipFormatter=t=>this.defaultGeneralFormatter(t),e.ttKeyFormatter=t=>this.defaultGeneralFormatter(t),e.ttZFormatter=t=>t,e.legendFormatter=t=>this.defaultGeneralFormatter(t),void 0!==t.config.xaxis.labels.formatter?e.xLabelFormatter=t.config.xaxis.labels.formatter:e.xLabelFormatter=e=>{var s;if(v.isNumber(e)){if(!t.config.xaxis.convertedCatToNumeric&&("numeric"===t.config.xaxis.type||i)){const a=null==(s=t.globals.xAxisScale)?void 0:s.result;if(i&&Array.isArray(a)&&a.every(Number.isInteger))return e.toFixed(0);if(v.isNumber(t.config.xaxis.decimalsInFloat))return e.toFixed(t.config.xaxis.decimalsInFloat);{const i=t.globals.maxX-t.globals.minX;if(i>0){const t=i/10,s=Math.max(0,-Math.floor(Math.log10(t)));return e.toFixed(s)}return e.toFixed(0)}}if(t.globals.isBarHorizontal){if(t.globals.maxY-t.globals.minY<4)return e.toFixed(1)}return e.toFixed(0)}return e},"function"==typeof t.config.tooltip.x.formatter)e.ttKeyFormatter=t.config.tooltip.x.formatter;else if(void 0===t.config.xaxis.labels.formatter&&i){const t=e.xLabelFormatter;e.ttKeyFormatter=e=>Number.isInteger(e)?e.toFixed(0):t(e)}else e.ttKeyFormatter=e.xLabelFormatter;return"function"==typeof t.config.xaxis.tooltip.formatter&&(e.xaxisTooltipFormatter=t.config.xaxis.tooltip.formatter),(Array.isArray(t.config.tooltip.y)||void 0!==t.config.tooltip.y.formatter)&&(e.ttVal=t.config.tooltip.y),void 0!==t.config.tooltip.z.formatter&&(e.ttZFormatter=t.config.tooltip.z.formatter),void 0!==t.config.legend.formatter&&(e.legendFormatter=t.config.legend.formatter),e.yLabelFormatters=[],t.config.yaxis.forEach((i,s)=>{if(void 0!==i.labels.formatter)e.yLabelFormatters[s]=i.labels.formatter;else if("violin"===t.config.chart.type){const i=t=>"number"==typeof t&&isFinite(t)?""+Math.round(100*t)/100:t;e.yLabelFormatters[s]=e=>t.globals.xyCharts?Array.isArray(e)?e.map(i):i(e):e}else e.yLabelFormatters[s]=e=>t.globals.xyCharts?Array.isArray(e)?e.map(t=>this.defaultYFormatter(t,i)):this.defaultYFormatter(e,i):e}),t.globals}heatmapLabelFormatters(){const t=this.w;if("heatmap"===t.config.chart.type){t.globals.yAxisScale[0].result=t.seriesData.seriesNames.slice();const e=t.seriesData.seriesNames.reduce((t,e)=>t.length>e.length?t:e,0);t.globals.yAxisScale[0].niceMax=e,t.globals.yAxisScale[0].niceMin=e}}}const C={name:"en",options:{months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],toolbar:{exportToSVG:"Download SVG",exportToPNG:"Download PNG",exportToCSV:"Download CSV",menu:"Menu",selection:"Selection",selectionZoom:"Selection Zoom",zoomIn:"Zoom In",zoomOut:"Zoom Out",pan:"Panning",reset:"Reset Zoom",measure:"Measure"}}};class k{constructor(){this.yAxis={show:!0,showAlways:!1,showForNullSeries:!0,seriesName:void 0,opposite:!1,reversed:!1,logarithmic:!1,logBase:10,tickAmount:void 0,stepSize:void 0,forceNiceScale:!1,alignZero:!1,max:void 0,min:void 0,floating:!1,decimalsInFloat:void 0,labels:{show:!0,showDuplicates:!1,minWidth:0,maxWidth:160,offsetX:0,offsetY:0,align:void 0,rotate:0,padding:20,style:{colors:[],fontSize:"11px",fontWeight:400,fontFamily:void 0,cssClass:""},formatter:void 0},axisBorder:{show:!1,color:"#e0e0e0",width:1,offsetX:0,offsetY:0},axisTicks:{show:!1,color:"#e0e0e0",width:6,offsetX:0,offsetY:0},title:{text:void 0,rotate:-90,offsetY:0,offsetX:0,style:{color:void 0,fontSize:"11px",fontWeight:900,fontFamily:void 0,cssClass:""}},tooltip:{enabled:!1,offsetX:0},crosshairs:{show:!0,position:"front",stroke:{color:"#b6b6b6",width:1,dashArray:0}}},this.pointAnnotation={id:void 0,x:0,y:null,yAxisIndex:0,seriesIndex:void 0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,marker:{size:4,fillColor:"#fff",strokeWidth:2,strokeColor:"#333",shape:"circle",offsetX:0,offsetY:0,cssClass:""},label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"middle",offsetX:0,offsetY:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}},customSVG:{SVG:void 0,cssClass:void 0,offsetX:0,offsetY:0},image:{path:void 0,width:20,height:20,offsetX:0,offsetY:0},tooltip:{enabled:!1,text:void 0,formatter:void 0,theme:void 0,offsetX:0,offsetY:0}},this.yAxisAnnotation={id:void 0,y:0,y2:null,strokeDashArray:1,fillColor:"#c2c2c2",borderColor:"#c2c2c2",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,width:"100%",yAxisIndex:0,label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"end",position:"right",offsetX:0,offsetY:-3,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}}},this.xAxisAnnotation={id:void 0,x:0,x2:null,strokeDashArray:1,fillColor:"#c2c2c2",borderColor:"#c2c2c2",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"middle",orientation:"vertical",position:"top",offsetX:0,offsetY:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}}},this.text={x:0,y:0,text:"",textAnchor:"start",foreColor:void 0,fontSize:"13px",fontFamily:void 0,fontWeight:400,appendTo:".apexcharts-annotations",backgroundColor:"transparent",borderColor:"#c2c2c2",borderRadius:0,borderWidth:0,paddingLeft:4,paddingRight:4,paddingTop:2,paddingBottom:2}}init(){return{annotations:{yaxis:[this.yAxisAnnotation],xaxis:[this.xAxisAnnotation],points:[this.pointAnnotation],texts:[],images:[],shapes:[]},plugins:[],trellis:{by:void 0,row:void 0,column:void 0,emptyPanels:"placeholder",data:void 0,x:void 0,y:void 0,seriesBy:void 0,columns:"auto",minPanelWidth:220,gap:12,aspectRatio:1.6,panelHeight:void 0,order:"first-seen",limit:void 0,virtualize:"auto",scales:{x:"shared",y:"shared",color:"shared",size:"shared"},header:{show:!0,formatter:void 0,style:{fontSize:void 0,fontWeight:void 0,color:void 0}},axes:{labels:"edges"},legend:"shared",toolbar:"shared",tooltip:"panel",zoom:"sync",promote:!0,radiusByTotal:!1,targetTicks:3,panel:void 0},chart:{animations:{enabled:!0,speed:800,easing:"easeInOutSine",animateGradually:{delay:150,enabled:!0},dynamicAnimation:{enabled:!0,speed:350,easing:void 0},chartTypeMorph:{enabled:!0,speed:600},respectReducedMotion:!0,largeDatasetThreshold:1e3},background:"",locales:[C],defaultLocale:"en",perspectives:{serializeOptions:["theme","xaxis","yaxis","title","subtitle"]},history:{enabled:!1,maxDepth:100,coalesceMs:250,keyboard:!0},renderer:"svg",rendererThreshold:8e3,layers:{series:"auto",grid:"svg",annotations:"svg",dataLabels:"svg"},dropShadow:{enabled:!1,enabledOnSeries:void 0,top:2,left:2,blur:4,color:"#000",opacity:.7},events:{animationEnd:void 0,beforeMount:void 0,mounted:void 0,updated:void 0,click:void 0,mouseMove:void 0,mouseLeave:void 0,xAxisLabelClick:void 0,legendClick:void 0,markerClick:void 0,selection:void 0,dataPointSelection:void 0,dataPointMouseEnter:void 0,dataPointMouseLeave:void 0,beforeZoom:void 0,beforeResetZoom:void 0,zoomed:void 0,scrolled:void 0,brushScrolled:void 0,crossFilter:void 0,filterChange:void 0,annotationDragged:void 0,annotationEdited:void 0,annotationCreated:void 0,annotationStyled:void 0,annotationDeleted:void 0,measured:void 0,keyDown:void 0,keyUp:void 0},foreColor:"#373d3f",fontFamily:"Helvetica, Arial, sans-serif",height:"auto",parentHeightOffset:15,redrawOnParentResize:!0,redrawOnWindowResize:!0,print:{enabled:!0,width:700},id:void 0,group:void 0,nonce:void 0,license:void 0,offsetX:0,offsetY:0,injectStyleSheet:!0,selection:{enabled:!1,type:"x",fill:{color:"#24292e",opacity:.1},stroke:{width:1,color:"#24292e",opacity:.4,dashArray:3},xaxis:{min:void 0,max:void 0},yaxis:{min:void 0,max:void 0}},sparkline:{enabled:!1},brush:{enabled:!1,autoScaleYaxis:!0,target:void 0,targets:void 0},link:{enabled:!1,mode:"highlight",dimOpacity:.2,id:void 0,dimension:void 0,reduce:void 0,type:void 0,bins:void 0,order:void 0,seriesName:void 0},ink:{enabled:!1,palette:!1,snap:!1,noteColors:void 0},measure:{enabled:!1,mode:"span",key:"m",pinOnRelease:!0,colors:{up:void 0,down:void 0,neutral:void 0,guide:void 0},band:!0,guides:!0,markers:!0,format:{x:void 0,y:void 0,percent:void 0},label:void 0},contextMenu:{enabled:!1,items:["annotate","xline","yline","measure"],labels:{annotate:void 0,xline:void 0,yline:void 0,measure:void 0},noteText:"Note",line:{text:"",strokeDashArray:4,color:void 0}},stacked:!1,stackOnlyBar:!0,stackType:"normal",streaming:{enabled:!1,maxPoints:void 0},toolbar:{show:!0,offsetX:0,offsetY:0,tools:{download:!0,selection:!0,zoom:!0,zoomin:!0,zoomout:!0,pan:!0,reset:!0,measure:!0,customIcons:[]},export:{csv:{filename:void 0,columnDelimiter:",",headerCategory:"category",headerValue:"value",categoryFormatter:void 0,valueFormatter:void 0},png:{filename:void 0},svg:{filename:void 0},scale:void 0,width:void 0,embedFonts:!0},autoSelected:"zoom"},type:"line",width:"100%",zoom:{enabled:!0,type:"x",autoScaleYaxis:!1,allowMouseWheelZoom:"auto",pinch:"auto",resetControl:"auto",zoomedArea:{fill:{color:"#90CAF9",opacity:.4},stroke:{color:"#0D47A1",opacity:.4,width:1}}},pan:{inertia:!0,friction:.92},accessibility:{enabled:!0,description:void 0,announcements:{enabled:!0},keyboard:{enabled:!0,navigation:{enabled:!0,wrapAround:!1}}},dataReducer:{enabled:!1,algorithm:"lttb",targetPoints:250,threshold:500}},parsing:{x:void 0,y:void 0},plotOptions:{line:{isSlopeChart:!1,colors:{threshold:0,colorAboveThreshold:void 0,colorBelowThreshold:void 0}},area:{fillTo:"origin"},bar:{horizontal:!1,columnWidth:"70%",barHeight:"70%",distributed:!1,borderRadius:0,borderRadiusApplication:"around",borderRadiusWhenStacked:"all",rangeBarOverlap:!0,rangeBarGroupRows:!1,hideZeroBarsWhenGrouped:!1,isDumbbell:!1,dumbbellColors:void 0,dumbbell:{connector:{color:void 0,opacity:.55},dataLabels:{enabled:!1,offset:6,colorFromMarker:!0,formatter:void 0,style:{fontSize:"12px",fontFamily:void 0,fontWeight:600,colors:void 0}},tooltip:{differenceLabel:"Difference"}},isFunnel:!1,isFunnel3d:!0,colors:{ranges:[],backgroundBarColors:[],backgroundBarOpacity:1,backgroundBarRadius:0},dataLabels:{position:"top",maxItems:100,hideOverflowingLabels:!0,orientation:"horizontal",total:{enabled:!1,formatter:void 0,offsetX:0,offsetY:0,style:{color:"#373d3f",fontSize:"12px",fontFamily:void 0,fontWeight:600}}}},bubble:{zScaling:!0,minBubbleRadius:void 0,maxBubbleRadius:void 0,minZ:void 0,maxZ:void 0},scatter:{jitter:{enabled:!1,x:0,y:0,distributed:!1,maxPoints:5e3}},candlestick:{colors:{upward:"#00B746",downward:"#EF403C"},wick:{useFillColor:!0}},boxPlot:{colors:{upper:"#00E396",lower:"#008FFB"},whiskers:"minmax",points:{show:!1,shape:"circle",size:2.5,jitter:.5,maxPoints:3e3,opacity:.9,fillColor:"series-dark",strokeColor:"#fff",strokeWidth:1}},violin:{bandwidthScale:1,kde:{bandwidth:void 0,resolution:64},normalize:"individual",side:"both",box:{show:!1,width:"15%",whiskers:"minmax",strokeWidth:1,fillColor:void 0,capWidth:.5},points:{show:!0,shape:"circle",size:2.5,jitter:.5,constrainToViolin:!0,position:"center",laneWidth:"40%",maxPoints:3e3,opacity:.9,fillColor:"series-dark",strokeColor:"#fff",strokeWidth:1}},histogram:{bins:"auto",binWidth:void 0,range:void 0,normalize:"count",cumulative:!1,overlap:!0},heatmap:{shape:"rect",radius:2,enableShades:!0,shadeIntensity:.5,reverseNegativeShade:!1,distributed:!1,useFillColorAsStroke:!1,colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0,gradientLegend:{enabled:!1,width:"70%",height:"70%",thickness:12,align:"center",stops:16,showLabels:!0,showHoverValue:!0,labelStyle:{fontSize:"11px",fontFamily:void 0,colors:void 0},arrow:{size:8,color:void 0},formatter:void 0}}},waterfall:{colors:{positive:"#00A86F",negative:"#FF4560",subtotal:void 0,total:void 0},connectors:{show:!0,color:void 0,strokeWidth:1,strokeDashArray:3}},streamgraph:{offset:"wiggle",order:"inside-out",hover:{show:!0,opacity:.35},labels:{show:!0,minWidth:24,minFontSize:9,maxFontSize:30,style:{fontSize:"auto",fontFamily:void 0,fontWeight:600,colors:void 0}}},funnel:{shape:"rectangle",lastShape:"flat"},treemap:{enableShades:!0,shadeIntensity:.5,distributed:!1,reverseNegativeShade:!1,useFillColorAsStroke:!1,borderRadius:4,dataLabels:{format:"scale",minFontSize:4},colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0,colorValue:void 0,gradient:{enabled:void 0,min:void 0,max:void 0,midpoint:void 0,symmetric:!0,colors:void 0,stops:void 0},gradientLegend:{enabled:!1,width:"70%",height:"70%",thickness:12,align:"center",stops:16,showLabels:!0,showHoverValue:!0,labelStyle:{fontSize:"11px",fontFamily:void 0,colors:void 0},arrow:{size:8,color:void 0},formatter:void 0}},nested:{enabled:void 0,drilldownAsLevels:!1},parents:{show:"auto",padding:4,fill:void 0,fillOpacity:1,borderColor:void 0,borderWidth:1,borderRadius:void 0,hover:{show:!0,color:void 0,width:2},header:{show:!0,height:22,minWidth:40,align:"left",offsetX:0,offsetY:0,showValue:!1,formatter:void 0,style:{fontSize:"12px",fontFamily:void 0,fontWeight:600,color:void 0,background:void 0,cssClass:""}},tooltip:{formatter:void 0}},levels:[],zoom:{enabled:!1,breadcrumb:void 0},seriesTitle:{show:!0,offsetY:1,offsetX:1,borderColor:"#000",borderWidth:1,borderRadius:2,style:{background:"rgba(0, 0, 0, 0.6)",color:"#fff",fontSize:"12px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:6,right:6,top:2,bottom:2}}}},unit:{layout:"grouped",positions:void 0,transition:"group",shape:"circle",image:{src:void 0,width:20,height:20,tint:!1},pictogram:{mark:void 0,fit:"contain",scale:1,padding:0,fallback:"circle"},size:"auto",columns:{size:"inherit"},grid:{columns:10,total:void 0,fillFrom:"bottom",split:!1,tileColumns:void 0,max:void 0,trackColor:void 0},scatter:{y:"lanes",spread:"swarm",orientation:"horizontal",tickAmount:5,xMin:void 0,xMax:void 0,xTitle:void 0,xFormatter:void 0,yTickAmount:5,yMin:void 0,yMax:void 0,yTitle:void 0,yFormatter:void 0,sizeField:"z",sizeRange:void 0,laneLabelWidth:void 0,gridlines:!0},sizeByValue:{enabled:!1,maxRadius:"auto",minRadius:void 0,scale:"area"},spacing:1.05,borderRadius:0,gather:{motion:"auto",spring:"crisp",easing:"outCubic",overshoot:1.70158,enter:"burst"},arc:{startAngle:-90,endAngle:90,innerRadiusRatio:.4,rows:"auto"},unitValue:1,maxUnits:5e3,sortByGroup:!0,clusterLabels:{show:!0,position:"top",curved:!0,fontSize:"13px",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:0,formatter:void 0,external:{show:!1,connector:{show:!0,width:1.5,color:void 0,gap:8,length:22},offsetX:0,offsetY:0}},tooltip:{formatter:void 0}},radialBar:{inverseOrder:!1,startAngle:0,endAngle:360,offsetX:0,offsetY:0,shape:"arc",min:0,max:100,bands:[],bandsStyle:{strokeWidth:"40%",gap:0,hideTrackWhenPresent:!0},ticks:{show:!1,major:{count:11,length:10,width:2,color:"#666",placement:"outside"},minor:{count:4,length:5,width:1,color:"#999",placement:"outside"},labels:{show:!1,offset:6,fontSize:"11px",fontFamily:void 0,fontWeight:400,color:"#666",formatter:t=>String(t)}},needle:{color:"#333",length:"85%",baseWidth:4,tipWidth:1,offsetY:0,showValueArc:!1,animation:{enabled:!0,duration:800,easing:"ease-out"}},hollow:{margin:5,size:"50%",background:"transparent",image:void 0,imageWidth:150,imageHeight:150,imageOffsetX:0,imageOffsetY:0,imageClipped:!0,position:"front",stroke:void 0,strokeWidth:1,strokeDasharray:void 0,dropShadow:{enabled:!1,top:0,left:0,blur:3,color:"#000",opacity:.5}},track:{show:!0,startAngle:void 0,endAngle:void 0,background:"#f2f2f2",strokeWidth:"97%",opacity:1,margin:5,dropShadow:{enabled:!1,top:0,left:0,blur:3,color:"#000",opacity:.5}},dataLabels:{show:!0,name:{show:!0,fontSize:"16px",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:0,formatter:t=>t},value:{show:!0,fontSize:"14px",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:16,formatter:t=>t+"%"},total:{show:!1,label:"Total",fontSize:"16px",fontWeight:600,fontFamily:void 0,color:void 0,formatter:t=>t.globals.seriesTotals.reduce((t,e)=>t+e,0)/t.seriesData.series.length+"%"}},barLabels:{enabled:!1,offsetX:0,offsetY:0,useSeriesColors:!0,fontFamily:void 0,fontWeight:600,fontSize:"16px",formatter:t=>t,onClick:void 0}},pie:{customScale:1,offsetX:0,offsetY:0,startAngle:0,endAngle:360,expandOnClick:!0,expandOffset:10,hoverOutline:{show:!0,size:8,gap:0,opacity:.3,color:void 0},borderRadius:0,spacing:0,dataLabels:{offset:0,minAngleToShowLabel:10,external:{show:!1,offsetX:0,offsetY:0,fontSize:void 0,fontFamily:void 0,fontWeight:void 0,color:void 0,formatter:void 0,connector:{show:!0,width:1,color:void 0,length:16,gap:6}}},donut:{size:"65%",background:"transparent",labels:{show:!1,name:{show:!0,fontSize:"16px",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:-10,formatter:t=>t},value:{show:!0,fontSize:"20px",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:10,formatter:t=>t},total:{show:!1,showAlways:!1,label:"Total",fontSize:"16px",fontWeight:400,fontFamily:void 0,color:void 0,formatter:t=>t.globals.seriesTotals.reduce((t,e)=>t+e,0)}}}},polarArea:{rings:{strokeWidth:1,strokeColor:"#e8e8e8"},spokes:{strokeWidth:1,connectorColors:"#e8e8e8"}},sunburst:{offsetX:0,offsetY:0,startAngle:0,endAngle:360,innerSize:"15%",borderRadius:0,spacing:1,leaf:"extend",partition:"normalize",tint:.14,zoomOnClick:!0,dataLabels:{show:!0,minAngleToShow:8,style:{fontSize:"12px",fontFamily:void 0,fontWeight:400,colors:void 0}}},radar:{size:void 0,offsetX:0,offsetY:0,polygons:{strokeWidth:1,strokeColors:"#e8e8e8",connectorColors:"#e8e8e8",fill:{colors:void 0}}}},colors:void 0,dataLabels:{enabled:!0,enabledOnSeries:void 0,formatter:t=>null!==t?t:"",textAnchor:"middle",distributed:!1,offsetX:0,offsetY:0,style:{fontSize:"12px",fontFamily:void 0,fontWeight:600,colors:void 0},background:{enabled:!0,foreColor:"#fff",backgroundColor:void 0,borderRadius:2,padding:4,opacity:.9,borderWidth:1,borderColor:"#fff",dropShadow:{enabled:!1,top:1,left:1,blur:1,color:"#000",opacity:.8}},dropShadow:{enabled:!1,top:1,left:1,blur:1,color:"#000",opacity:.8},animate:{enabled:!0},countUp:{enabled:!1}},fill:{type:"solid",colors:void 0,opacity:.85,gradient:{shade:"dark",type:"horizontal",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]},image:{src:[],width:void 0,height:void 0},pattern:{style:"squares",width:6,height:6,strokeWidth:2}},forecastDataPoints:{count:0,fillOpacity:.5,strokeWidth:void 0,dashArray:4},grid:{show:!0,borderColor:"#e0e0e0",strokeDashArray:0,position:"back",xaxis:{lines:{show:!1}},yaxis:{lines:{show:!0}},row:{colors:void 0,opacity:.5},column:{colors:void 0,opacity:.5},padding:{top:0,right:10,bottom:0,left:12}},labels:[],drilldown:{enabled:!1,series:[],breadcrumb:{show:!0,position:"top-left",separator:" / ",rootLabel:"All",offsetX:0,offsetY:0},animation:{enabled:!0,zoomFromPoint:!1,speed:260},loading:{show:!0},cache:!0,marker:{show:!0,size:6,strokeColor:"#fff"}},legend:{show:!0,showForSingleSeries:!1,showForNullSeries:!0,showForZeroSeries:!0,floating:!1,position:"bottom",horizontalAlign:"center",inverseOrder:!1,fontSize:"12px",fontFamily:void 0,fontWeight:400,width:void 0,height:void 0,formatter:void 0,tooltipHoverFormatter:void 0,offsetX:-20,offsetY:4,customLegendItems:[],clusterGroupedSeries:!0,clusterGroupedSeriesOrientation:"vertical",labels:{colors:void 0,useSeriesColors:!1},markers:{size:7,fillColors:void 0,strokeWidth:1,shape:void 0,offsetX:0,offsetY:0,customHTML:void 0,onClick:void 0},itemMargin:{horizontal:5,vertical:4},onItemClick:{toggleDataSeries:!0},onItemHover:{highlightDataSeries:!0}},markers:{discrete:[],size:0,colors:void 0,strokeColors:"#fff",strokeWidth:2,strokeOpacity:.9,strokeDashArray:0,fillOpacity:1,shape:"circle",offsetX:0,offsetY:0,showNullDataPoints:!0,onClick:void 0,onDblClick:void 0,hover:{size:void 0,sizeOffset:3},largeDatasetThreshold:0},noData:{text:void 0,align:"center",offsetX:0,offsetY:0,style:{color:void 0,fontSize:"14px",fontFamily:void 0}},responsive:[],series:void 0,states:{hover:{filter:{type:"lighten",value:.15}},active:{allowMultipleDataPointsSelection:!1,filter:{type:"darken",value:.35}}},title:{text:void 0,align:"left",margin:5,offsetX:0,offsetY:0,floating:!1,style:{fontSize:"14px",fontWeight:900,fontFamily:void 0,color:void 0}},subtitle:{text:void 0,align:"left",margin:5,offsetX:0,offsetY:30,floating:!1,style:{fontSize:"12px",fontWeight:400,fontFamily:void 0,color:void 0}},stroke:{show:!0,curve:"smooth",lineCap:"butt",width:2,colors:void 0,dashArray:0,fill:{type:"solid",colors:void 0,opacity:.85,gradient:{shade:"dark",type:"horizontal",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]}}},tooltip:{enabled:!0,enabledOnSeries:void 0,shared:!0,hideEmptySeries:!1,followCursor:!1,intersect:!1,inverseOrder:!1,arrow:!0,compact:!1,custom:void 0,fillSeriesColor:!1,theme:"light",cssClass:"",style:{fontSize:"12px",fontFamily:void 0,background:void 0},onDatasetHover:{highlightDataSeries:!1},x:{show:!0,format:"dd MMM",formatter:void 0},y:{formatter:void 0,title:{formatter:t=>t?t+": ":""}},z:{formatter:void 0,title:"Size: "},marker:{show:!0,fillColors:void 0},items:{display:"flex"},fixed:{enabled:!1,position:"topRight",offsetX:0,offsetY:0}},xaxis:{type:"category",categories:[],convertedCatToNumeric:!1,offsetX:0,offsetY:0,overwriteCategories:void 0,labels:{show:!0,rotate:-45,rotateAlways:!1,hideOverlappingLabels:!0,trim:!1,minHeight:void 0,maxHeight:120,showDuplicates:!0,style:{colors:[],fontSize:"12px",fontWeight:400,fontFamily:void 0,cssClass:""},offsetX:0,offsetY:0,format:void 0,formatter:void 0,datetimeUTC:!0,datetimeFormatter:{year:"yyyy",month:"MMM",day:"dd MMM",hour:"HH:mm",minute:"HH:mm",second:"HH:mm:ss"}},group:{groups:[],style:{colors:[],fontSize:"12px",fontWeight:400,fontFamily:void 0,cssClass:""}},axisBorder:{show:!0,color:"#e0e0e0",width:"100%",height:1,offsetX:0,offsetY:0},axisTicks:{show:!0,color:"#e0e0e0",height:6,offsetX:0,offsetY:0},stepSize:void 0,tickAmount:void 0,tickPlacement:"on",min:void 0,max:void 0,range:void 0,floating:!1,decimalsInFloat:void 0,position:"bottom",title:{text:void 0,offsetX:0,offsetY:0,style:{color:void 0,fontSize:"12px",fontWeight:900,fontFamily:void 0,cssClass:""}},crosshairs:{show:!0,width:1,position:"back",opacity:.9,stroke:{color:"#b6b6b6",width:1,dashArray:3},fill:{type:"solid",color:"#B1B9C4",gradient:{colorFrom:"#D8E3F0",colorTo:"#BED1E6",stops:[0,100],opacityFrom:.4,opacityTo:.5}},dropShadow:{enabled:!1,left:0,top:0,blur:1,opacity:.8}},tooltip:{enabled:!1,offsetY:0,formatter:void 0,style:{fontSize:"12px",fontFamily:void 0}}},yaxis:this.yAxis,theme:{mode:"",palette:"palette1",tokens:!0,follow:!1,name:"",monochrome:{enabled:!1,color:"#008FFB",shadeTo:"light",shadeIntensity:.65},accessibility:{colorBlindMode:""}}}}}const _={funnel:"bar",pyramid:"bar",gauge:"radialBar",waffle:"unit",histogram:"bar",waterfall:"rangeBar",dumbbell:"rangeBar",streamgraph:"rangeArea",raincloud:"violin"},M="_apexOwnedByType",D=(t,e)=>(e[M]=t,e),L=["tooltip.custom","tooltip.shared","tooltip.intersect","tooltip.followCursor","dataLabels.enabled","dataLabels.formatter","plotOptions.bar.dataLabels.position","markers.size","plotOptions.violin.side","plotOptions.violin.box.show","plotOptions.violin.box.whiskers","plotOptions.violin.points.position","states.hover.filter.type","states.active.filter.type","xaxis.crosshairs.width","xaxis.tickPlacement","xaxis.tooltip.enabled","chart.zoom.enabled","chart.animations.dynamicAnimation.enabled"],P=(t,e)=>{let i=t;for(const t of e.split(".")){if(null==i||"object"!=typeof i)return;i=i[t]}return i},F=(t,e,i)=>{const s=e.split("."),a=s.pop();let r=t;for(const t of s)null!=r[t]&&"object"==typeof r[t]||(r[t]={}),r=r[t];void 0===i?delete r[a]:r[a]=i},E=(t,e)=>{var i,s;const a=_[t];return{chart:{type:a||t,requestedType:a?t:void 0,stacked:null==(i=e.chart)?void 0:i.stacked},plotOptions:{bar:{isFunnel:"funnel"===t||"pyramid"===t},histogram:null==(s=e.plotOptions)?void 0:s.histogram},series:e.series,yaxis:[{title:{},labels:{},axisBorder:{},axisTicks:{}}]}},T=(t,e)=>{if("function"==typeof t)return!!Array.isArray(t[M])||"function"==typeof e&&String(t)===String(e);if("function"==typeof e)return void 0===t;if(t===e)return!0;try{return JSON.stringify(t)===JSON.stringify(e)}catch(t){return!1}},I=({isTimeline:t,seriesIndex:e,dataPointIndex:i,y1:s,y2:a,w:r})=>{var n;let o=r.rangeData.seriesRangeStart[e][i],l=r.rangeData.seriesRangeEnd[e][i],h=r.labelData.labels[i],c=r.config.series[e].name?r.config.series[e].name:"";const d=r.formatters.ttKeyFormatter,p=r.config.tooltip.y.title.formatter,u={w:r,seriesIndex:e,dataPointIndex:i,start:o,end:l};if("function"==typeof p&&(c=p(c,u)),(null==(n=r.config.series[e].data[i])?void 0:n.x)&&(h=r.config.series[e].data[i].x),!t&&"datetime"===r.config.xaxis.type){h=new S(r).xLabelFormat(r.formatters.ttKeyFormatter,h,h,{i:void 0,dateFormatter:new A(r).formatDate,w:r})}"function"==typeof d&&(h=d(h,u)),Number.isFinite(s)&&Number.isFinite(a)&&(o=s,l=a);let g="",f="";const x=r.globals.colors[e];if(void 0===r.config.tooltip.x.formatter)if("datetime"===r.config.xaxis.type){const t=new A(r);g=t.formatDate(t.getDate(o),r.config.tooltip.x.format),f=t.formatDate(t.getDate(l),r.config.tooltip.x.format)}else g=o,f=l;else g=r.config.tooltip.x.formatter(o),f=r.config.tooltip.x.formatter(l);return{start:o,end:l,startVal:g,endVal:f,ylabel:h,color:x,seriesName:c}},R=t=>{let{color:e,seriesName:i,ylabel:s,start:a,end:r,seriesIndex:n,dataPointIndex:o}=t;const l=t.w.globals.tooltip.tooltipLabels.getFormatters(n);a=l.yLbFormatter(a),r=l.yLbFormatter(r);const h=l.yLbFormatter(t.w.seriesData.series[n][o]);let c="";const d=`\n ${a}\n - \n ${r}\n `;return c=t.w.globals.comboCharts?"rangeArea"===t.w.config.series[n].type||"rangeBar"===t.w.config.series[n].type?d:`${h}`:d,'

'+(i||"")+'
'+s+": "+c+"
"};class z{constructor(t){this.opts=t}static forType(t){var e,i;const s=new z(t),a=t.chart.requestedType;let r;return r="funnel"===a||"pyramid"===a?s[a]():"gauge"===a?s.gauge():"histogram"===a?s.histogram():"waterfall"===a?s.waterfall():"dumbbell"===a?s.dumbbell():"streamgraph"===a?s.streamgraph():"raincloud"===a?s.raincloud():-1!==["line","area","bar","candlestick","boxPlot","violin","rangeBar","rangeArea","bubble","scatter","heatmap","treemap","unit","sunburst","pie","polarArea","donut","radar","radialBar"].indexOf(t.chart.type)?s[t.chart.type]():s.line(),(null==(i=null==(e=t.plotOptions)?void 0:e.bar)?void 0:i.isFunnel)&&(r=s.funnel()),t.chart.stacked&&"bar"===t.chart.type&&(r=s.stackedBars()),r}static handOverTypeDefaults(t,e,i){const s=t.chart.requestedType||t.chart.type;if(!e||e===s)return;const a=(new k).init(),r=v.extend(a,z.forType(E(e,t))),n=v.extend(a,z.forType(E(s,t)));for(const e of L){if(i&&void 0!==P(i,e))continue;const s=P(r,e),a=P(n,e);void 0===s&&void 0===a||T(P(t,e),s)&&F(t,e,a)}}hideYAxis(){this.opts.yaxis[0].show=!1,this.opts.yaxis[0].title.text="",this.opts.yaxis[0].axisBorder.show=!1,this.opts.yaxis[0].axisTicks.show=!1,this.opts.yaxis[0].floating=!0}line(){return{dataLabels:{enabled:!1},stroke:{width:5,curve:"straight"},markers:{size:0,hover:{sizeOffset:6}},xaxis:{crosshairs:{width:1}}}}sparkline(t){this.hideYAxis();return v.extend(t,{grid:{show:!1,padding:{left:0,right:0,top:0,bottom:0}},legend:{show:!1},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}},chart:{toolbar:{show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1}})}slope(){return this.hideYAxis(),{chart:{toolbar:{show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!0,formatter(t,e){const i=e.w.config.series[e.seriesIndex].name;return null!==t?i+": "+t:""},background:{enabled:!1},offsetX:-5},grid:{xaxis:{lines:{show:!0}},yaxis:{lines:{show:!1}}},xaxis:{position:"top",labels:{style:{fontSize:14,fontWeight:900}},tooltip:{enabled:!1},crosshairs:{show:!1}},markers:{size:8,hover:{sizeOffset:1}},legend:{show:!1},tooltip:{shared:!1,intersect:!0,followCursor:!0},stroke:{width:5,curve:"straight"}}}bar(){return{chart:{stacked:!1},plotOptions:{bar:{dataLabels:{position:"center"}}},dataLabels:{style:{colors:["#fff"]},background:{enabled:!1}},stroke:{width:0,lineCap:"square"},fill:{opacity:.85},legend:{markers:{shape:"square"}},tooltip:{shared:!1,intersect:!0},xaxis:{tooltip:{enabled:!1},tickPlacement:"between",crosshairs:{width:"barWidth",position:"back",fill:{type:"gradient"},dropShadow:{enabled:!1},stroke:{width:0}}}}}funnel(){return this.hideYAxis(),l(o({},this.bar()),{chart:{animations:{speed:800,animateGradually:{enabled:!1}}},plotOptions:{bar:{horizontal:!0,borderRadiusApplication:"around",borderRadius:0,dataLabels:{position:"center"}}},grid:{show:!1,padding:{left:0,right:0}},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}}})}pyramid(){return this.funnel()}gauge(){const t=this.radialBar();return l(o({},t),{plotOptions:{radialBar:{startAngle:-135,endAngle:135,hollow:{margin:0,size:"60%"},track:{background:"#e7e7e7",strokeWidth:"100%",margin:5},dataLabels:{name:{show:!1},value:{show:!0,fontSize:"32px",fontWeight:600,offsetY:8}}}}})}waterfall(){const t=this.rangeBar();return l(o({},t),{chart:{stacked:!1,zoom:{enabled:!1},animations:{animateGradually:{enabled:!0}}},plotOptions:l(o({},t.plotOptions),{bar:l(o({},t.plotOptions.bar),{columnWidth:"60%",barHeight:"60%"})}),dataLabels:l(o({},t.dataLabels),{enabled:!0,background:{enabled:!0,backgroundColor:"#fff",foreColor:"#373d3f",borderColor:"#e3e8ee",opacity:.92}}),legend:{show:!1},tooltip:{shared:!1,intersect:!0,followCursor:!1}})}histogram(){var t,e,i,s;const a=Array.isArray(null==(t=this.opts)?void 0:t.series)&&this.opts.series.length>1&&!1!==(null==(s=null==(i=null==(e=this.opts)?void 0:e.plotOptions)?void 0:i.histogram)?void 0:s.overlap);return l(o({},this.bar()),{chart:{stacked:!1,zoom:{enabled:!1},animations:{animateGradually:{enabled:!1}}},plotOptions:{bar:{columnWidth:"100%",borderRadius:0,dataLabels:{position:"top"}}},dataLabels:{enabled:!1},fill:a?{opacity:.65}:{},stroke:a?{show:!1}:{show:!0,width:1,colors:["#fff"]},xaxis:{type:"numeric",tooltip:{enabled:!1}},tooltip:{shared:a,intersect:!1,x:{formatter:(t,e)=>{var i,s;const a=null==(s=null==(i=null==e?void 0:e.w)?void 0:i.histogramData)?void 0:s.edges,r=null==e?void 0:e.dataPointIndex;if(!Array.isArray(a)||"number"!=typeof r||r<0)return String(t);const n=a[r],o=a[r+1];if(void 0===n||void 0===o)return String(t);const l=t=>Number.isInteger(t)?String(t):t.toFixed(2);return`${l(n)} to ${l(o)}`}}}})}candlestick(){return{stroke:{width:1},fill:{opacity:1},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:D(["candlestick"],({seriesIndex:t,dataPointIndex:e,w:i})=>this._getBoxTooltip(i,t,e,["Open","High","","Low","Close"],"candlestick"))},states:{active:{filter:{type:"none"}}},xaxis:{crosshairs:{width:1}}}}boxPlot(){return{chart:{animations:{dynamicAnimation:{enabled:!1}}},stroke:{width:1,colors:["#24292e"]},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:D(["boxPlot"],({seriesIndex:t,dataPointIndex:e,w:i})=>this._getBoxTooltip(i,t,e,["Minimum","Q1","Median","Q3","Maximum"],"boxPlot"))},markers:{size:7,strokeWidth:1,strokeColors:"#111"},xaxis:{crosshairs:{width:1}}}}violin(){return{chart:{zoom:{enabled:!1},animations:{dynamicAnimation:{enabled:!1}}},stroke:{width:1,colors:["#24292e"]},fill:{opacity:.7},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:D(["violin"],({seriesIndex:t,dataPointIndex:e,w:i})=>this._getViolinTooltip(i,t,e))},states:{active:{filter:{type:"none"}}},xaxis:{crosshairs:{width:1}}}}raincloud(){var t,e,i;const s=this.violin(),a=!0===(null==(i=null==(e=null==(t=this.opts)?void 0:t.plotOptions)?void 0:e.bar)?void 0:i.horizontal);return l(o({},s),{plotOptions:{violin:{side:a?"top":"right",box:{show:!0,whiskers:"tukey"},points:{position:a?"bottom":"left",jitter:.85}}},tooltip:l(o({},s.tooltip),{custom:D(["raincloud"],({seriesIndex:t,dataPointIndex:e,w:i})=>this._getRaincloudTooltip(i,t,e))})})}rangeBar(){return{chart:{animations:{animateGradually:!1}},stroke:{width:0,lineCap:"square"},plotOptions:{bar:{borderRadius:0,dataLabels:{position:"center"}}},dataLabels:{enabled:!1,formatter(t,{seriesIndex:e,dataPointIndex:i,w:s}){const a=()=>{const t=s.rangeData.seriesRangeStart[e][i];return s.rangeData.seriesRangeEnd[e][i]-t};return s.globals.comboCharts?"rangeBar"===s.config.series[e].type||"rangeArea"===s.config.series[e].type?a():t:a()},background:{enabled:!1},style:{colors:["#fff"]}},markers:{size:10},tooltip:{shared:!1,followCursor:!0,custom:D(["rangeBar"],t=>t.w.config.plotOptions&&t.w.config.plotOptions.bar&&t.w.config.plotOptions.bar.horizontal?(t=>{const{color:e,seriesName:i,ylabel:s,startVal:a,endVal:r}=I(l(o({},t),{isTimeline:!0}));return R(l(o({},t),{color:e,seriesName:i,ylabel:s,start:a,end:r}))})(t):(t=>{const{color:e,seriesName:i,ylabel:s,start:a,end:r}=I(t);return R(l(o({},t),{color:e,seriesName:i,ylabel:s,start:a,end:r}))})(t))},xaxis:{tickPlacement:"between",tooltip:{enabled:!1},crosshairs:{stroke:{width:0}}}}}dumbbell(){const t=this.rangeBar(),e=(t,e,i)=>'
'+t+' '+i+"
";return l(o({},t),{chart:{stacked:!1,zoom:{enabled:!1}},plotOptions:l(o({},t.plotOptions),{bar:l(o({},t.plotOptions.bar),{barHeight:6,columnWidth:6,dumbbell:{dataLabels:{enabled:!0}}})}),dataLabels:l(o({},t.dataLabels),{enabled:!1}),legend:{show:!0,position:"bottom",horizontalAlign:"left",markers:{shape:"circle"}},tooltip:{shared:!1,intersect:!0,followCursor:!1,custom:D(["rangeBar"],t=>{var i;const{w:s,dataPointIndex:a,seriesIndex:r}=t,n=s.dumbbellData;if(!n||"series"!==n.form){const{color:e,seriesName:i,ylabel:s,start:a,end:r}=I(t);return R(l(o({},t),{color:e,seriesName:i,ylabel:s,start:a,end:r}))}const h=n.values[a]||[],c=s.globals.tooltip.tooltipLabels.getFormatters(r),d=null!=(i=s.labelData.labels[a])?i:"";let p="";const u=[];for(let t=0;t
'+d+"
"+p+(2===u.length?'
'+s.config.plotOptions.bar.dumbbell.tooltip.differenceLabel+': '+c.yLbFormatter(Math.abs(u[1]-u[0]))+"
":"")+"
"})}})}dumbbellSizing(t){var e,i;return(null==(e=t.plotOptions.bar)?void 0:e.barHeight)||(t.plotOptions.bar.barHeight=2),(null==(i=t.plotOptions.bar)?void 0:i.columnWidth)||(t.plotOptions.bar.columnWidth=2),t}area(){return{stroke:{width:4,fill:{type:"solid",gradient:{inverseColors:!1,shade:"light",type:"vertical",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}}},fill:{type:"gradient",gradient:{inverseColors:!1,shade:"light",type:"vertical",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}},markers:{size:0,hover:{sizeOffset:6}},tooltip:{followCursor:!1}}}rangeArea(){return{stroke:{curve:"straight",width:0},fill:{type:"solid",opacity:.6},markers:{size:0},states:{hover:{filter:{type:"none"}},active:{filter:{type:"none"}}},tooltip:{intersect:!1,shared:!0,followCursor:!0,custom:D(["rangeArea"],t=>(t=>{const{color:e,seriesName:i,ylabel:s,start:a,end:r}=I(t);return R(l(o({},t),{color:e,seriesName:i,ylabel:s,start:a,end:r}))})(t))}}}streamgraph(){const t=this.rangeArea();return l(o({},t),{chart:{stacked:!1},stroke:{curve:"monotoneCubic",width:0},fill:{type:"solid",opacity:1},dataLabels:{enabled:!1},grid:{yaxis:{lines:{show:!1}}},markers:{size:0,hover:{size:0,sizeOffset:0}},tooltip:{intersect:!1,shared:!1,followCursor:!0,custom:D(["streamgraph"],t=>(t=>{var e;const{w:i,dataPointIndex:s,seriesIndex:a}=t,r=i.streamgraphData;if(!r||!Array.isArray(r.order)){const{color:e,seriesName:i,ylabel:s,start:a,end:r}=I(t);return R(l(o({},t),{color:e,seriesName:i,ylabel:s,start:a,end:r}))}const{ylabel:n}=I(t),h=(()=>{const t=i.streamgraphData,e=i.dom.baseEl&&i.dom.baseEl.querySelector(".apexcharts-svg"),r=i.interact&&i.interact.clientY,n=i.globals.maxY-i.globals.minY;if(!e||null==r||!n||!isFinite(n))return a;const o=e.getBoundingClientRect(),l=i.globals.svgWidth?o.width/i.globals.svgWidth:1,h=(r-o.top)/(l||1)-i.layout.translateY,c=i.layout.gridHeight,d=t=>{var e;const s=(t-i.globals.minY)/n;return(null==(e=i.config.yaxis[0])?void 0:e.reversed)?s*c:c-s*c};let p=a,u=1/0;for(let e=0;e=l&&h<=c)return i;const g=h{if(c){const s=i.globals.tooltip.tooltipLabels.getFormatters(t);if("function"==typeof s.yLbFormatter)return s.yLbFormatter(e)}return Number.isInteger(e)?String(e):String(Number(e.toFixed(6)))};let p="",u=0;for(let t=r.order.length-1;t>=0;t--){const a=r.order[t],n=null==(e=r.values[a])?void 0:e[s];null!=n&&isFinite(n)&&(u+=n,p+='
'+r.names[a]+' '+d(a,n)+"
")}return'
'+n+"
"+p+("expand"===r.offset?"":'
Total '+d(a,u)+"
")+"
"})(t))},legend:{show:!0,position:"top",horizontalAlign:"center"}})}brush(t){return v.extend(t,{chart:{toolbar:{autoSelected:"selection",show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1},stroke:{width:1},tooltip:{enabled:!1},xaxis:{tooltip:{enabled:!1}}})}stacked100(t){t.dataLabels=t.dataLabels||{},t.dataLabels.formatter=t.dataLabels.formatter||void 0;const e=t.dataLabels.formatter;t.yaxis.forEach((e,i)=>{t.yaxis[i].min=0,t.yaxis[i].max=100});return"bar"===t.chart.type&&(t.dataLabels.formatter=e||function(t){return"number"==typeof t&&t?t.toFixed(0)+"%":t}),t}stackedBars(){const t=this.bar();return l(o({},t),{plotOptions:l(o({},t.plotOptions),{bar:l(o({},t.plotOptions.bar),{borderRadiusApplication:"end"})})})}convertCatToNumeric(t){return t.xaxis.convertedCatToNumeric=!0,t}convertCatToNumericXaxis(t,e){t.xaxis.type="numeric",t.xaxis.labels=t.xaxis.labels||{},t.xaxis.labels.formatter=t.xaxis.labels.formatter||function(t){return v.isNumber(t)?Math.floor(t):t};const i=t.xaxis.labels.formatter;let s=t.xaxis.categories&&t.xaxis.categories.length?t.xaxis.categories:t.labels;return e&&e.length&&(s=e.map(t=>Array.isArray(t)?t:String(t))),s&&s.length&&(t.xaxis.labels.formatter=function(t){return v.isNumber(t)?i(s[Math.floor(t)-1]):i(t)}),t.xaxis.categories=[],t.labels=[],t.xaxis.tickAmount=t.xaxis.tickAmount||"dataPoints",t}bubble(){return{dataLabels:{style:{colors:["#fff"]}},tooltip:{shared:!1,intersect:!0},xaxis:{crosshairs:{width:0}},fill:{type:"solid",gradient:{shade:"light",inverse:!0,shadeIntensity:.55,opacityFrom:.4,opacityTo:.8}}}}scatter(){return{dataLabels:{enabled:!1},tooltip:{shared:!1,intersect:!0},markers:{size:6,strokeWidth:1,hover:{sizeOffset:2}}}}heatmap(){return{chart:{stacked:!1,zoom:{enabled:!1}},fill:{opacity:1},dataLabels:{style:{colors:["#fff"]}},stroke:{colors:["#fff"]},tooltip:{followCursor:!1,marker:{show:!1},x:{show:!1}},legend:{position:"top",markers:{shape:"square"}},grid:{padding:{right:20}}}}treemap(){return{chart:{zoom:{enabled:!1}},dataLabels:{style:{fontSize:14,fontWeight:600,colors:["#fff"]}},stroke:{show:!0,width:2,colors:["#fff"]},legend:{show:!1},fill:{opacity:1,gradient:{stops:[0,100]}},tooltip:{followCursor:!0,x:{show:!1}},grid:{padding:{left:0,right:0}},xaxis:{crosshairs:{show:!1},tooltip:{enabled:!1},axisTicks:{show:!1}}}}unit(){return{chart:{toolbar:{show:!1}},dataLabels:{enabled:!1},stroke:{show:!1,width:0},fill:{opacity:1},tooltip:{followCursor:!0,x:{show:!1}},legend:{show:!0,position:"bottom"},grid:{padding:{left:0,right:0,top:0,bottom:0}}}}sunburst(){return{chart:{toolbar:{show:!1}},dataLabels:{style:{colors:["#fff"]},dropShadow:{enabled:!0}},stroke:{colors:["#fff"]},fill:{opacity:1},legend:{position:"right"},grid:{padding:{left:0,right:0,top:0,bottom:0}}}}pie(){return{chart:{toolbar:{show:!1}},plotOptions:{pie:{donut:{labels:{show:!1}}}},dataLabels:{formatter:t=>"number"==typeof t?t.toFixed(1)+"%":t,style:{colors:["#fff"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:["#fff"]},fill:{opacity:1,gradient:{shade:"light",stops:[0,100]}},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"},grid:{padding:{left:0,right:0,top:0,bottom:0}}}}donut(){return{chart:{toolbar:{show:!1}},dataLabels:{formatter:t=>"number"==typeof t?t.toFixed(1)+"%":t,style:{colors:["#fff"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:["#fff"]},fill:{opacity:1,gradient:{shade:"light",shadeIntensity:.35,stops:[80,100],opacityFrom:1,opacityTo:1}},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"},grid:{padding:{left:0,right:0,top:0,bottom:0}}}}polarArea(){return{chart:{toolbar:{show:!1}},dataLabels:{formatter:t=>"number"==typeof t?t.toFixed(1)+"%":t,enabled:!1},stroke:{show:!0,width:2},fill:{opacity:.7},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"},grid:{padding:{left:0,right:0,top:0,bottom:0}}}}radar(){return this.opts.yaxis[0].labels.offsetY=this.opts.yaxis[0].labels.offsetY?this.opts.yaxis[0].labels.offsetY:6,{dataLabels:{enabled:!1,style:{fontSize:"11px"}},stroke:{width:2},markers:{size:5,strokeWidth:1,strokeOpacity:1},fill:{opacity:.2},tooltip:{shared:!1,intersect:!0,followCursor:!0},grid:{show:!1,padding:{left:0,right:0,top:0,bottom:0}},xaxis:{labels:{formatter:t=>t,style:{colors:["#a8a8a8"],fontSize:"11px"}},tooltip:{enabled:!1},crosshairs:{show:!1}}}}radialBar(){return{chart:{animations:{dynamicAnimation:{enabled:!0,speed:800}},toolbar:{show:!1}},stroke:{lineCap:"butt"},fill:{gradient:{shade:"dark",shadeIntensity:.4,inverseColors:!1,type:"diagonal2",opacityFrom:1,opacityTo:1,stops:[70,98,100]}},legend:{show:!1,position:"right"},tooltip:{enabled:!1,fillSeriesColor:!0},grid:{padding:{left:0,right:0,top:0,bottom:0}}}}_getBoxTooltip(t,e,i,s,a){const r=t.candleData.seriesCandleO[e][i],n=t.candleData.seriesCandleH[e][i],o=t.candleData.seriesCandleM[e][i],l=t.candleData.seriesCandleL[e][i],h=t.candleData.seriesCandleC[e][i],c=t.config.series[e];return c.type&&c.type!==a?`
\n ${c.name?c.name:"series-"+(e+1)}: ${t.seriesData.series[e][i]}\n
`:`
${s[0]}: `+r+`
${s[1]}: `+n+"
"+(o?`
${s[2]}: `+o+"
":"")+`
${s[3]}: `+l+`
${s[4]}: `+h+"
"}_getViolinTooltip(t,e,i){var s,a,r;const n=null==(s=t.violinData.seriesViolinMin[e])?void 0:s[i],o=null==(a=t.violinData.seriesViolinMax[e])?void 0:a[i],l=(null==(r=t.violinData.seriesViolinPoints[e])?void 0:r[i])||[],h=t.config.series[e].name||"series-"+(e+1);return`
${h}
Min: ${n}
Max: ${o}
Observations: ${l.length}
`}_getRaincloudTooltip(t,e,i){var s,a;const r=null==(s=t.violinData.seriesViolinSummary[e])?void 0:s[i];if(!r)return this._getViolinTooltip(t,e,i);const n=(null==(a=t.violinData.seriesViolinPoints[e])?void 0:a[i])||[],o=t.config.series[e].name||"series-"+(e+1),l=t=>{if(!isFinite(t))return String(t);const e=Math.round(t);return Math.abs(t-e)<1e-6?String(e):String(Number(t.toFixed(2)))},[h,c,d,p,u]=r;return`
${o}
Whisker high: ${l(u)}
Q3: ${l(p)}
Median: ${l(d)}
Q1: ${l(c)}
Whisker low: ${l(h)}
Observations: ${n.length}
`}}class X{constructor(t){this.opts=t}init({responsiveOverride:t}){var e,i,s,a,r,n,o,l;let h=this.opts;const c=new k,p=new z(h);h=this.normalizeAliasedChartType(h),this.chartType=h.chart.type,h=this.extendYAxis(h),h=this.extendAnnotations(h);let u=c.init(),g={};if(h&&"object"==typeof h){let c=z.forType(h);(null==(e=h.chart.brush)?void 0:e.enabled)&&(c=p.brush(c)),(null==(s=null==(i=h.plotOptions)?void 0:i.line)?void 0:s.isSlopeChart)&&(c=p.slope()),h.chart.stacked&&"100%"===h.chart.stackType&&(h=p.stacked100(h)),(null==(r=null==(a=h.plotOptions)?void 0:a.bar)?void 0:r.isDumbbell)&&"dumbbell"!==h.chart.requestedType&&(h=p.dumbbellSizing(h)),this.checkForDarkTheme(d.getApex()),this.checkForDarkTheme(h),h.xaxis=h.xaxis||d.getApex().xaxis||{},t||(h.xaxis.convertedCatToNumeric=!1),h=this.checkForCatToNumericXAxis(this.chartType,c,h),((null==(n=h.chart.sparkline)?void 0:n.enabled)||(null==(l=null==(o=d.getApex().chart)?void 0:o.sparkline)?void 0:l.enabled))&&(c=p.sparkline(c)),g=v.extend(u,c)}const f=v.extend(g,d.getApex());return u=v.extend(f,h),u=this.handleUserInputErrors(u),u}normalizeAliasedChartType(t){if(!t||!t.chart)return t;const e=t.chart.type;return e&&_[e]?(t.chart.requestedType=e,"waffle"===e?(t.plotOptions=t.plotOptions||{},t.plotOptions.unit=t.plotOptions.unit||{},null==t.plotOptions.unit.layout&&(t.plotOptions.unit.layout="grid"),null==t.plotOptions.unit.shape&&(t.plotOptions.unit.shape="square"),t.chart.type="unit"):"funnel"===e||"pyramid"===e?(t.plotOptions=t.plotOptions||{},t.plotOptions.bar=t.plotOptions.bar||{},t.plotOptions.bar.isFunnel=!0,t.plotOptions.bar.horizontal=!0,t.chart.type="bar",t.plotOptions.bar.isPyramid="pyramid"===e):"gauge"===e?t.chart.type="radialBar":"waterfall"===e?(t.chart.stacked=!1,t.chart.type="rangeBar"):"dumbbell"===e?(t.plotOptions=t.plotOptions||{},t.plotOptions.bar=t.plotOptions.bar||{},t.plotOptions.bar.isDumbbell=!0,null==t.plotOptions.bar.horizontal&&(t.plotOptions.bar.horizontal=!0),t.chart.stacked=!1,t.chart.type="rangeBar"):"streamgraph"===e?(t.chart.stacked=!1,t.yaxis=t.yaxis||{},Array.isArray(t.yaxis)||null!=t.yaxis.show||(t.yaxis.show=!1),t.chart.type="rangeArea"):"histogram"===e?(t.xaxis=t.xaxis||{},null==t.xaxis.type&&(t.xaxis.type="numeric"),t.chart.type="bar"):"raincloud"===e&&(t.chart.type="violin"),t):t}checkForCatToNumericXAxis(t,e,i){var s,a,r,n,o;const l=new z(i),h=("bar"===t||"boxPlot"===t||"violin"===t)&&(null==(a=null==(s=i.plotOptions)?void 0:s.bar)?void 0:a.horizontal),c="pie"===t||"polarArea"===t||"donut"===t||"radar"===t||"radialBar"===t||"heatmap"===t||"unit"===t||"sunburst"===t,d="datetime"!==i.xaxis.type&&"numeric"!==i.xaxis.type,p=("scatter"===t||"bubble"===t)&&(null==(o=null==(n=null==(r=i.plotOptions)?void 0:r.scatter)?void 0:n.jitter)?void 0:o.enabled),u=i.xaxis.tickPlacement?i.xaxis.tickPlacement:e.xaxis&&e.xaxis.tickPlacement;return h||c||p||!d||"between"===u||(i=l.convertCatToNumeric(i)),i}extendYAxis(t,e){const i=new k;(void 0===t.yaxis||!t.yaxis||Array.isArray(t.yaxis)&&0===t.yaxis.length)&&(t.yaxis={});const s=d.getApex();t.yaxis.constructor!==Array&&s.yaxis&&s.yaxis.constructor!==Array&&(t.yaxis=v.extend(t.yaxis,s.yaxis)),t.yaxis.constructor!==Array?t.yaxis=[v.extend(i.yAxis,t.yaxis)]:t.yaxis=v.extendArray(t.yaxis,i.yAxis);let a=!1;t.yaxis.forEach(t=>{t.logarithmic&&(a=!0)});let r=t.series;return e&&!r&&(r=e.config.series),a&&r.length!==t.yaxis.length&&r.length&&(t.yaxis=r.map((e,s)=>{if(e.name||(r[s].name=`series-${s+1}`),t.yaxis[s])return t.yaxis[s].seriesName=r[s].name,t.yaxis[s];{const e=v.extend(i.yAxis,t.yaxis[0]);return e.show=!1,e}})),a&&r.length>1&&(r.length,t.yaxis.length),t}extendAnnotations(t){return void 0===t.annotations&&(t.annotations={},t.annotations.yaxis=[],t.annotations.xaxis=[],t.annotations.points=[]),t=this.extendYAxisAnnotations(t),t=this.extendXAxisAnnotations(t),t=this.extendPointAnnotations(t)}extendYAxisAnnotations(t){const e=new k;return t.annotations.yaxis=v.extendArray(void 0!==t.annotations.yaxis?t.annotations.yaxis:[],e.yAxisAnnotation),t}extendXAxisAnnotations(t){const e=new k;return t.annotations.xaxis=v.extendArray(void 0!==t.annotations.xaxis?t.annotations.xaxis:[],e.xAxisAnnotation),t}extendPointAnnotations(t){const e=new k;return t.annotations.points=v.extendArray(void 0!==t.annotations.points?t.annotations.points:[],e.pointAnnotation),t}checkForDarkTheme(t){t.theme&&"dark"===t.theme.mode&&(t.tooltip||(t.tooltip={}),"light"!==t.tooltip.theme&&(t.tooltip.theme="dark"),t.chart.foreColor||(t.chart.foreColor="#f6f7f8"),t.theme.palette||(t.theme.palette="palette4"))}handleUserInputErrors(t){const e=t;if(e.tooltip.shared&&e.tooltip.intersect)throw new Error("tooltip.shared cannot be enabled when tooltip.intersect is true. Turn off any other option by setting it to false.");if("bar"===e.chart.type&&e.plotOptions.bar.horizontal){if(e.yaxis.length>1)throw new Error("Multiple Y Axis for bars are not supported. Switch to column chart by setting plotOptions.bar.horizontal=false");e.yaxis[0].reversed&&(e.yaxis[0].opposite=!0),e.xaxis.tooltip.enabled=!1,e.yaxis[0].tooltip.enabled=!1,e.chart.zoom.enabled=!1}return"bar"!==e.chart.type&&"rangeBar"!==e.chart.type||e.tooltip.shared&&"barWidth"===e.xaxis.crosshairs.width&&e.series.length>1&&(e.xaxis.crosshairs.width="tickWidth"),"candlestick"!==e.chart.type&&"boxPlot"!==e.chart.type||e.yaxis[0].reversed&&(e.yaxis[0].reversed=!1),e}}const B=1.618,N=[[1,1,2,5,5,5,10,10,10,10,10],[1,1,2,5,5,5,10,10,10,10,10]],O=[1,2,4,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,12,12,12,12,12,12,12,12,12,24];class Y{initGlobalVars(t){t.series=[],t.seriesCandleO=[],t.seriesCandleH=[],t.seriesCandleM=[],t.seriesCandleL=[],t.seriesCandleC=[],t.seriesRangeStart=[],t.seriesRangeEnd=[],t.seriesRange=[],t.seriesPercent=[],t.seriesGoals=[],t.seriesX=[],t.seriesZ=[],t.seriesNames=[],t.seriesTotals=[],t.seriesLog=[],t.seriesColors=[],t.stackedSeriesTotals=[],t.seriesXvalues=[],t.seriesYvalues=[],t.dataWasParsed=!1,t.originalSeries=null,t.maxValsInArrayIndex=0,t.yValueDecimal=0,t.allSeriesHasEqualX=!0,t.hasNullValues=!1,t.invalidLogScale=!1,t.seriesRangeName={},t.labels=[],t.hasXaxisGroups=!1,t.groups=[],t.barGroups=[],t.lineGroups=[],t.areaGroups=[],t.hasSeriesGroups=!1,t.seriesGroups=[],t.categoryLabels=[],t.timescaleLabels=[],t.noLabelsProvided=!1,t.isXNumeric=!1,t.skipLastTimelinelabel=!1,t.skipFirstTimelinelabel=!1,t.isDataXYZ=!1,t.isMultiLineX=!1,t.isMultipleYAxis=!1,t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE,t.minYArr=[],t.maxYArr=[],t.maxX=-Number.MAX_VALUE,t.minX=Number.MAX_VALUE,t.initialMaxX=-Number.MAX_VALUE,t.initialMinX=Number.MAX_VALUE,t.maxDate=0,t.minDate=Number.MAX_VALUE,t.minZ=Number.MAX_VALUE,t.maxZ=-Number.MAX_VALUE,t.minXDiff=Number.MAX_VALUE,t.yAxisScale=[],t.xAxisScale=null,t.xAxisTicksPositions=[],t.xRange=0,t.yRange=[],t.zRange=0,t.dataPoints=0,t.xTickAmount=0,t.multiAxisTickAmount=0,t.disableZoomIn=!1,t.disableZoomOut=!1,t.yLabelsCoords=[],t.yTitleCoords=[],t.barPadForNumericAxis=0,t.padHorizontal=0,t.rotateXLabels=!1,t.overlappingXLabels=!1,t.radialSize=0,t.barHeight=0,t.barWidth=0,t.animationEnded=!1,t.isDestroyed=!1,t.bulkRevealScheduled=!1,t.resizeTimer=null,t.selectionResizeTimer=null,t.delayedElements=[],t.pointsArray=[],t.barCanvasCoords=null,t.activeRenderer=null,t.dataLabelsRects=[],t.lastDrawnDataLabelsIndexes=[],t.textRectsCache=new Map,t.domCache=new Map,t.dimensionCache={},t.cachedSelectors={},t.seriesNS||this._attachNamespaces(t)}_attachNamespaces(t){const e=(e,i,s=i)=>{Object.defineProperty(e,s,{get:()=>t[i],set(e){t[i]=e},enumerable:!0,configurable:!0})},i={};e(i,"series","data");for(const t of["seriesNames","seriesX","seriesZ","seriesXvalues","seriesYvalues","seriesGoals","seriesLog","seriesColors","seriesPercent","seriesTotals","stackedSeriesTotals","seriesCandleO","seriesCandleH","seriesCandleM","seriesCandleL","seriesCandleC","seriesRangeStart","seriesRangeEnd","seriesRange","seriesYAxisMap","seriesYAxisReverseMap","seriesGroups","barGroups","lineGroups","areaGroups","originalSeries","collapsedSeries","collapsedSeriesIndices","ancillaryCollapsedSeries","ancillaryCollapsedSeriesIndices","collapsingSeriesIndices","allSeriesCollapsed","risingSeries","previousPaths","ignoreYAxisIndexes","labels","categoryLabels","timescaleLabels","groups"])e(i,t);Object.defineProperty(t,"seriesNS",{value:i,writable:!1,enumerable:!1,configurable:!0});const s={};for(const t of["minX","maxX","initialMinX","initialMaxX","minY","maxY","minYArr","maxYArr","minZ","maxZ","minDate","maxDate","minXDiff","xRange","yRange","zRange","xAxisScale","yAxisScale","xAxisTicksPositions","xTickAmount","multiAxisTickAmount","dataPoints","maxValsInArrayIndex","isXNumeric","isMultipleYAxis","isMultiLineX","isDataXYZ","dataFormatXNumeric","allSeriesHasEqualX","hasNullValues","dataWasParsed","hasXaxisGroups","hasSeriesGroups","skipFirstTimelinelabel","skipLastTimelinelabel","yValueDecimal","invalidLogScale","noLabelsProvided"])e(s,t);Object.defineProperty(t,"axes",{value:s,writable:!1,enumerable:!1,configurable:!0});const a={};for(const t of["svgWidth","svgHeight","gridWidth","gridHeight","translateX","translateY","translateXAxisX","translateXAxisY","translateYAxisX","xAxisLabelsHeight","xAxisGroupLabelsHeight","xAxisLabelsWidth","yAxisLabelsWidth","yAxisWidths","yLabelsCoords","yTitleCoords","padHorizontal","barPadForNumericAxis","rotateXLabels","scaleX","scaleY","radialSize","defaultLabels","overlappingXLabels"])e(a,t);Object.defineProperty(t,"layout",{value:a,writable:!1,enumerable:!1,configurable:!0});const r={};for(const t of["domCache","dimensionCache","cachedSelectors","textRectsCache","pointsArray","dataLabelsRects","lastDrawnDataLabelsIndexes","delayedElements","resizeTimer","selectionResizeTimer","resizeObserver"])e(r,t);Object.defineProperty(t,"cache",{value:r,writable:!1,enumerable:!1,configurable:!0})}globalVars(t){return{chartID:null,cuid:null,events:{beforeMount:[],mounted:[],updated:[],clicked:[],selection:[],dataPointSelection:[],zoomed:[],scrolled:[]},colors:[],fill:{colors:[]},radialNeedleRAF:null,unitGatherRAF:null,unitExitRAF:null,stroke:{colors:[]},dataLabels:{style:{colors:[]}},radarPolygons:{fill:{colors:[]}},markers:{colors:[],size:t.markers.size,largestSize:0,batched:!1},LINE_HEIGHT_RATIO:B,axisCharts:!0,isSlopeChart:t.plotOptions.line.isSlopeChart,comboCharts:!1,initialConfig:null,initialSeries:[],tokenSurface:void 0,lastXAxis:[],lastYAxis:[],allSeriesCollapsed:!1,collapsedSeries:[],collapsedSeriesIndices:[],ancillaryCollapsedSeries:[],ancillaryCollapsedSeriesIndices:[],collapsingSeriesIndices:[],risingSeries:[],ignoreYAxisIndexes:[],isDirty:!1,isExecCalled:!1,dataChanged:!1,resized:!1,columnSeries:null,yaxis:null,total:0,shouldAnimate:!0,previousPaths:[],prevPolarAngles:null,prevStreamFrame:null,streamScrolled:!1,prevChromeFrame:null,svgWidth:0,svgHeight:0,lastResizeSignature:null,defaultLabels:!1,yAxisLabelsWidth:0,scaleX:1,scaleY:1,translateYAxisX:[],yAxisWidths:[],tooltip:null,resizeObserver:null,locale:{},memory:{methodsToExec:[]},niceScaleAllowedMagMsd:N,niceScaleDefaultTicks:O,seriesYAxisMap:[],seriesYAxisReverseMap:[],noData:!1}}defineLazyInitialSeries(t){let e=[],i=null;Object.defineProperty(t,"initialSeries",{configurable:!0,enumerable:!0,get:()=>(null===i&&(i=v.clone(e)),i),set(s){e=v.copySeriesShallow(s),i=null,t._initialSeriesPeek=e}}),t._initialSeriesPeek=e}init(t){const e=this.globalVars(t);this.initGlobalVars(e),this.defineLazyInitialSeries(e);const i=v.extend({},t);return i.series=v.copySeriesShallow(t.series),e.initialConfig=i,e.initialSeries=t.series,e.lastXAxis=v.clone(e.initialConfig.xaxis),e.lastYAxis=v.clone(e.initialConfig.yaxis),e}}class W{constructor(t){this.opts=t}init(){const t=new X(this.opts).init({responsiveOverride:!1}),e=(new Y).init(t),i={config:t,globals:e,dom:{},interact:{zoomEnabled:"zoom"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.zoom&&t.chart.zoom.enabled,panEnabled:"pan"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.pan,selectionEnabled:"selection"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.selection,measureEnabled:"measure"===t.chart.toolbar.autoSelected&&!!t.chart.toolbar.tools.measure&&!(!t.chart.measure||!t.chart.measure.enabled),zoomed:!1,selection:void 0,visibleXRange:void 0,selectedDataPoints:[],mousedown:!1,clientX:null,clientY:null,lastClientPosition:{},capturedSeriesIndex:-1,capturedDataPointIndex:-1,disableZoomIn:!1,disableZoomOut:!1,isTouchDevice:!!d.isBrowser()&&("ontouchstart"in window||navigator.maxTouchPoints>0)},formatters:{xLabelFormatter:void 0,yLabelFormatters:[],xaxisTooltipFormatter:void 0,ttKeyFormatter:void 0,ttVal:void 0,ttZFormatter:void 0,legendFormatter:void 0},candleData:{seriesCandleO:[],seriesCandleH:[],seriesCandleM:[],seriesCandleL:[],seriesCandleC:[],seriesBoxPoints:[]},rangeData:{seriesRangeStart:[],seriesRangeEnd:[],seriesRange:[]},violinData:{seriesViolinDensity:[],seriesViolinPoints:[],seriesViolinSummary:[],seriesViolinMin:[],seriesViolinMax:[]},histogramData:{edges:[],binWidth:0,counts:[],rule:"",capped:!1},waterfallData:{values:[],cumulative:[],kinds:[],geometry:null},dumbbellData:null,streamgraphData:null,labelData:{labels:[],categoryLabels:[],timescaleLabels:[],hasXaxisGroups:!1,groups:[],seriesGroups:[]},axisFlags:{isXNumeric:!1,dataFormatXNumeric:!1,isDataXYZ:!1,isRangeData:!1,isRangeBar:!1,isMultiLineX:!1,noLabelsProvided:!1,dataWasParsed:!1},seriesData:{series:[],seriesNames:[],seriesX:[],seriesZ:[],seriesColors:[],seriesGoals:[],stackedSeriesTotals:[],stackedSeriesTotalsByGroups:[],unitData:[]},layout:{gridHeight:0,gridWidth:0,translateX:0,translateY:0,translateXAxisX:0,translateXAxisY:0,rotateXLabels:!1,xAxisHeight:0,xAxisLabelsHeight:0,xAxisGroupLabelsHeight:0,xAxisLabelsWidth:0,yLabelsCoords:[],yTitleCoords:[],gridPad:{top:0,right:0,bottom:0,left:0}}};Object.defineProperty(e,"dom",{get:()=>i.dom,set(t){i.dom=t},enumerable:!1,configurable:!0});for(const t of["xLabelFormatter","yLabelFormatters","xaxisTooltipFormatter","ttKeyFormatter","ttVal","ttZFormatter","legendFormatter"])Object.defineProperty(e,t,{get:()=>i.formatters[t],set(e){i.formatters[t]=e},enumerable:!1,configurable:!0});for(const t of["zoomEnabled","panEnabled","selectionEnabled","zoomed","selection","visibleXRange","selectedDataPoints","mousedown","clientX","clientY","lastClientPosition","capturedSeriesIndex","capturedDataPointIndex","disableZoomIn","disableZoomOut","isTouchDevice"])Object.defineProperty(e,t,{get:()=>i.interact[t],set(e){i.interact[t]=e},enumerable:!1,configurable:!0});for(const t of["gridHeight","gridWidth","translateX","translateY","translateXAxisX","translateXAxisY","rotateXLabels","xAxisHeight","xAxisLabelsHeight","xAxisGroupLabelsHeight","xAxisLabelsWidth","yLabelsCoords","yTitleCoords","gridPad"])Object.defineProperty(e,t,{get:()=>i.layout[t],set(e){i.layout[t]=e},enumerable:!1,configurable:!0});for(const t of["series","seriesNames","seriesX","seriesZ","seriesColors","seriesGoals","stackedSeriesTotals","stackedSeriesTotalsByGroups"])Object.defineProperty(e,t,{get:()=>i.seriesData[t],set(e){i.seriesData[t]=e},enumerable:!1,configurable:!0});for(const t of["isXNumeric","dataFormatXNumeric","isDataXYZ","isRangeData","isRangeBar","isMultiLineX","noLabelsProvided","dataWasParsed"])Object.defineProperty(e,t,{get:()=>i.axisFlags[t],set(e){i.axisFlags[t]=e},enumerable:!1,configurable:!0});for(const t of["labels","categoryLabels","timescaleLabels","hasXaxisGroups","groups","seriesGroups"])Object.defineProperty(e,t,{get:()=>i.labelData[t],set(e){i.labelData[t]=e},enumerable:!1,configurable:!0});for(const t of["seriesRangeStart","seriesRangeEnd","seriesRange"])Object.defineProperty(e,t,{get:()=>i.rangeData[t],set(e){i.rangeData[t]=e},enumerable:!1,configurable:!0});for(const t of["seriesCandleO","seriesCandleH","seriesCandleM","seriesCandleL","seriesCandleC"])Object.defineProperty(e,t,{get:()=>i.candleData[t],set(e){i.candleData[t]=e},enumerable:!1,configurable:!0});for(const t of["seriesViolinDensity","seriesViolinPoints","seriesViolinMin","seriesViolinMax"])Object.defineProperty(e,t,{get:()=>i.violinData[t],set(e){i.violinData[t]=e},enumerable:!1,configurable:!0});return i}}class H{constructor(t){this.w=t}static checkComboSeries(t,e){let i=!1,s=0,a=0;return void 0===e&&(e="line"),t.length&&void 0!==t[0].type&&t.forEach(t=>{"bar"!==t.type&&"column"!==t.type&&"candlestick"!==t.type&&"boxPlot"!==t.type&&"violin"!==t.type||s++,void 0!==t.type&&t.type!==e&&a++}),a>0&&(i=!0),{comboBarCount:s,comboCharts:i}}getStackedSeriesTotals(t=[]){const e=this.w,i=[];if(0===e.seriesData.series.length)return i;for(let s=0;st+e,0);{const e=this.w.seriesData.series[t];return Array.isArray(e)?e.reduce((t,e)=>t+e,0):null!=e?e:0}}getStackedSeriesTotalsByGroups(){const t=this.w,e=[];return t.labelData.seriesGroups.forEach(i=>{const s=[];t.config.series.forEach((e,a)=>{i.indexOf(t.seriesData.seriesNames[a])>-1&&s.push(a)});const a=t.seriesData.series.map((t,e)=>-1===s.indexOf(e)?e:-1).filter(t=>-1!==t);e.push(this.getStackedSeriesTotals(a))}),e}setSeriesYAxisMappings(){const t=this.w.globals,e=this.w.config;let i=[];const s=[],a=[],r=this.w.seriesData.series.length>e.yaxis.length||e.yaxis.some(t=>Array.isArray(t.seriesName));e.series.forEach((t,e)=>{a.push(e),s.push(null)}),e.yaxis.forEach((t,e)=>{i[e]=[]});const n=[];e.yaxis.forEach((t,s)=>{let o=!1;if(t.seriesName){let n=[];Array.isArray(t.seriesName)?n=t.seriesName:n.push(t.seriesName),n.forEach(t=>{e.series.forEach((e,n)=>{if(e.name===t){let t=n;s===n||r?(!r||a.indexOf(n)>-1)&&i[s].push([s,n]):(i[n].push([n,s]),t=s),o=!0,t=a.indexOf(t),-1!==t&&a.splice(t,1)}})})}o||n.push(s)}),i=i.map(t=>{const e=[];return t.forEach(t=>{s[t[1]]=t[0],e.push(t[1])}),e});let o=e.yaxis.length-1;for(let t=0;t{i[o].push(t),s[t]=o}),t.seriesYAxisMap=i.map(t=>t),t.seriesYAxisReverseMap=s.map(t=>t),t.seriesYAxisMap.forEach((t,i)=>{t.forEach(t=>{if(e.series[t]&&void 0===e.series[t].group){e.series[t].group="apexcharts-axis-".concat(i.toString())}})})}isSeriesNull(t=null){let e=[];const i=this.w.config.series;return e=null===t?i.filter(t=>null!==t):i[t]&&Array.isArray(i[t].data)?i[t].data.filter(t=>null!==t):null!==i[t]&&void 0!==i[t]?[i[t]]:[],0===e.length}seriesHaveSameValues(t){const e=this.w.seriesData.series[t];return!Array.isArray(e)||e.every((t,e,i)=>t===i[0])}getCategoryLabels(t){const e=this.w;let i=t.slice();return e.config.xaxis.convertedCatToNumeric&&(i=t.map(t=>e.config.xaxis.labels.formatter(t-e.globals.minX+1))),i}getLargestSeries(){const t=this.w;t.globals.maxValsInArrayIndex=t.seriesData.series.map(t=>t.length).indexOf(Math.max.apply(Math,t.seriesData.series.map(t=>t.length)))}getLargestMarkerSize(){const t=this.w;let e=0;return t.globals.markers.size.forEach(t=>{e=Math.max(e,t)}),t.config.markers.discrete&&t.config.markers.discrete.length&&t.config.markers.discrete.forEach(t=>{e=Math.max(e,t.size)}),e>0&&(t.config.markers.hover.size>0?e=t.config.markers.hover.size:e+=t.config.markers.hover.sizeOffset),t.globals.markers.largestSize=e,e}getSeriesTotals(){const t=this.w;t.globals.seriesTotals=t.seriesData.series.map(t=>{let e=0;if(Array.isArray(t))for(let i=0;i{let r=0;for(let n=0;nt&&i.seriesData.seriesX[a][n]{const i=[];if(Array.isArray(e))for(let s=0;st+e,0);i.push(s)}return i})}getCalculatedRatios(){const t=this.w,e=t.globals,i=[];let s=0,a=0,r=0,n=0,o=[],l=.1,h=0;if(e.yRange=[],e.isMultipleYAxis)for(let t=0;t0){const r=(e,s)=>{const a=t.config.yaxis[t.globals.seriesYAxisReverseMap[s]];if(!a)return 0;if(a.logarithmic)return 0;return-(e<0?-1:1)*(e=Math.abs(e))/i[s]};if(e.isMultipleYAxis){o=[];for(let t=0;t{const s=e.globals.seriesYAxisReverseMap[i];return e.config.yaxis[s]&&e.config.yaxis[s].logarithmic?t.map(t=>null===t?null:this.getLogVal(e.config.yaxis[s].logBase,t,i)):t}),e.globals.invalidLogScale?t:e.globals.seriesLog}getLogValAtSeriesIndex(t,e){if(null===t)return null;const i=this.w,s=i.globals.seriesYAxisReverseMap[e];return i.config.yaxis[s]&&i.config.yaxis[s].logarithmic?this.getLogVal(i.config.yaxis[s].logBase,t,e):t}getBaseLog(t,e){return Math.log(e)/Math.log(t)}getLogVal(t,e,i){if(e<=0)return 0;const s=this.w,a=0===s.globals.minYArr[i]?-1:this.getBaseLog(t,s.globals.minYArr[i]),r=(0===s.globals.maxYArr[i]?0:this.getBaseLog(t,s.globals.maxYArr[i]))-a;return(this.getBaseLog(t,e)-a)/r}getLogYRatios(t){const e=this.w,i=this.w.globals,s=i;return s.yLogRatio=t.slice(),s.logYRange=i.yRange.map((t,a)=>{const r=e.globals.seriesYAxisReverseMap[a];if(e.config.yaxis[r]&&this.w.config.yaxis[r].logarithmic){const t=1;return s.yLogRatio[a]=t/this.w.layout.gridHeight,t}return i.yRange[a]}),s.invalidLogScale?t.slice():s.yLogRatio}static extendArrayProps(t,e,i){var s,a;return(null==e?void 0:e.yaxis)&&(e=t.extendYAxis(e,i)),(null==e?void 0:e.annotations)&&(e.annotations.yaxis&&(e=t.extendYAxisAnnotations(e)),(null==(s=null==e?void 0:e.annotations)?void 0:s.xaxis)&&(e=t.extendXAxisAnnotations(e)),(null==(a=null==e?void 0:e.annotations)?void 0:a.points)&&(e=t.extendPointAnnotations(e))),e}drawSeriesByGroup(t,e,i,s){const a=this.w,r=[];return t.series.length>0&&e.forEach(e=>{const n=[],o=[];t.i.forEach((i,s)=>{a.config.series[i].group===e&&(n.push(t.series[s]),o.push(i))}),n.length>0&&r.push(s.draw(n,i,o))}),r}}const $="http://www.w3.org/2000/svg";class j{constructor(t,e){"object"==typeof t?(this.x=t.x,this.y=t.y):(this.x=t||0,this.y=e||0)}transform(t){return t.apply(this)}clone(){return new j(this.x,this.y)}}class G{constructor(t,e,i,s,a,r){this.a=null!=t?t:1,this.b=null!=e?e:0,this.c=null!=i?i:0,this.d=null!=s?s:1,this.e=null!=a?a:0,this.f=null!=r?r:0}rotate(t){const e=t*Math.PI/180,i=Math.cos(e),s=Math.sin(e);return this.multiply(new G(i,s,-s,i,0,0))}scale(t,e){return this.multiply(new G(t,0,0,null!=e?e:t,0,0))}multiply(t){return new G(this.a*t.a+this.c*t.b,this.b*t.a+this.d*t.b,this.a*t.c+this.c*t.d,this.b*t.c+this.d*t.d,this.a*t.e+this.c*t.f+this.e,this.b*t.e+this.d*t.f+this.f)}apply(t){return new j(this.a*t.x+this.c*t.y+this.e,this.b*t.x+this.d*t.y+this.f)}}class V{constructor(t,e,i,s){this.x=t,this.y=e,this.w=i,this.h=s,this.width=i,this.height=s,this.x2=t+i,this.y2=e+s}}function U(t){if(!t||"string"!=typeof t)return[["M",0,0]];const e=[],i=/([MmLlHhVvCcSsQqTtAaZz])\s*/g,s=/[+-]?(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?/gi;let a;const r=[],n=[];for(;null!==(a=i.exec(t));)r.push(a[1]),n.push(a.index);for(let i=0;i{for(let r=1;rs&&(s=n),oa&&(a=o))}}),e===1/0?{x:0,y:0,width:0,height:0}:{x:e,y:i,width:s-e,height:a-i}}function Z(t){return t.map(t=>t.join(" ")).join(" ")}function K(t){switch(t[0]){case"z":case"Z":t[0]="L",t[1]=this.start[0],t[2]=this.start[1];break;case"H":t[0]="L",t[2]=this.pos[1];break;case"V":t[0]="L",t[2]=t[1],t[1]=this.pos[0];break;case"T":t[0]="Q",t[3]=t[1],t[4]=t[2],t[1]=this.reflection[1],t[2]=this.reflection[0];break;case"S":t[0]="C",t[6]=t[4],t[5]=t[3],t[4]=t[2],t[3]=t[1],t[2]=this.reflection[1],t[1]=this.reflection[0]}return t}function J(t){var e=t.length;return this.pos=[t[e-2],t[e-1]],-1!="SCQT".indexOf(t[0])&&(this.reflection=[2*this.pos[0]-t[e-4],2*this.pos[1]-t[e-3]]),t}function Q(t){var e,i=[t];switch(t[0]){case"M":return this.pos=this.start=[t[1],t[2]],i;case"L":t[5]=t[3]=t[1],t[6]=t[4]=t[2],t[1]=this.pos[0],t[2]=this.pos[1];break;case"Q":t[6]=t[4],t[5]=t[3],t[4]=1*t[4]/3+2*t[2]/3,t[3]=1*t[3]/3+2*t[1]/3,t[2]=1*this.pos[1]/3+2*t[2]/3,t[1]=1*this.pos[0]/3+2*t[1]/3;break;case"A":i=function(t,e){var i,s,a,r,n,o,l,h,c,d,p,u,g,f,x,m,b,y,w,v,A,S,C,k,_,M,D=Math.abs(e[1]),L=Math.abs(e[2]),P=e[3]%360,F=e[4],E=e[5],T=e[6],I=e[7],R=new j(t[0],t[1]),z=new j(T,I),X=[];if(0===D||0===L||R.x===z.x&&R.y===z.y)return[["C",R.x,R.y,z.x,z.y,z.x,z.y]];i=new j((R.x-z.x)/2,(R.y-z.y)/2).transform((new G).rotate(P)),(s=i.x*i.x/(D*D)+i.y*i.y/(L*L))>1&&(D*=s=Math.sqrt(s),L*=s);a=(new G).rotate(P).scale(1/D,1/L).rotate(-P),R=R.transform(a),z=z.transform(a),r=[z.x-R.x,z.y-R.y],o=r[0]*r[0]+r[1]*r[1],n=Math.sqrt(o),r[0]/=n,r[1]/=n,l=o<4?Math.sqrt(1-o/4):0,F===E&&(l*=-1);h=new j((z.x+R.x)/2+l*-r[1],(z.y+R.y)/2+l*r[0]),c=new j(R.x-h.x,R.y-h.y),d=new j(z.x-h.x,z.y-h.y),p=Math.acos(c.x/Math.sqrt(c.x*c.x+c.y*c.y)),c.y<0&&(p*=-1);u=Math.acos(d.x/Math.sqrt(d.x*d.x+d.y*d.y)),d.y<0&&(u*=-1);E&&p>u&&(u+=2*Math.PI);!E&&p>16&255,i>>8&255,255&i,1]}const e=t.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*([\d.]+))?\s*\)/);return e?[+e[1],+e[2],+e[3],void 0!==e[4]?+e[4]:1]:null}function ht(t,e,i){return`rgba(${Math.round(t[0]+(e[0]-t[0])*i)},${Math.round(t[1]+(e[1]-t[1])*i)},${Math.round(t[2]+(e[2]-t[2])*i)},${t[3]+(e[3]-t[3])*i})`}class ct{constructor(t,e,i){this.el=t,this.duration=null!=e?e:300,this.delay=i||0,this._attrTarget=null,this._plotTarget=null,this._plotSnap=null,this._plotAlgorithm="commands",this._afterCb=null,this._duringCb=null,this._easing=null,this._next=null,this._root=null,this._scheduled=!1}ease(t){return"function"==typeof t&&(this._easing=t),this._schedule(),this}attr(t){return this._attrTarget=t,this._schedule(),this}plot(t,e,i){return this._plotTarget=t,e&&(this._plotAlgorithm=e),this._plotSnap=i||null,this._schedule(),this}after(t){return this._afterCb=t,this._schedule(),this}during(t){return this._duringCb=t,this._schedule(),this}animate(t,e){const i=new ct(this.el,t,e);return this._next=i,i._root=this._root||this,i}_schedule(){const t=this._root||this;t._scheduled||(t._scheduled=!0,queueMicrotask(()=>t._executeChain()))}_executeChain(){const t=[];let e=this;for(;e;)t.push(e),e=e._next;let i=0;t.forEach(t=>{i+=t.delay,t._execute(i),i+=t.duration})}_execute(t){const e=this.el,i=this.duration;if(i<=1){const i=()=>{this._attrTarget&&e.attr(this._attrTarget),this._plotTarget&&e.plot(this._plotSnap||this._plotTarget),this._afterCb&&this._afterCb.call(e)};return void(t>0?setTimeout(i,t):i())}const s=()=>{const t={},s={},a={};if(this._attrTarget)for(const i of Object.keys(this._attrTarget)){const r=e.attr(i);t[i]=r;const n=lt(r),o=lt(String(this._attrTarget[i]));n&&o&&(s[i]=n,a[i]=o)}let r=null;if(this._plotTarget){const t=e.attr("d")||"";try{r="polygons"===this._plotAlgorithm?function(t,e,i=96){const s=rt(t,i),a=rt(e,i);let r=0,n=1/0;for(let t=0;t=n)break}e{const c=h-n,d=Math.min(c/i,1),p=o(d);if(this._attrTarget)if(d>=1)e.attr(this._attrTarget);else{const i={};for(const e of Object.keys(this._attrTarget))if(s[e]&&a[e])i[e]=ht(s[e],a[e],p);else{const s=parseFloat(t[e]),a=parseFloat(this._attrTarget[e]);isNaN(s)||isNaN(a)||(i[e]=s+(a-s)*p)}e.attr(i)}r&&d<1&&e.attr("d",r(p)),this._duringCb&&this._duringCb(p),d<1?b.requestAnimationFrame(l):(this._plotTarget&&e.attr("d",this._plotSnap||this._plotTarget),this._afterCb&&this._afterCb.call(e))};b.requestAnimationFrame(l)};t>0?setTimeout(s,t):s()}}function dt(t){t.prototype.animate=function(t,e){return new ct(this,t,e)}}function pt(t){return-Math.cos(t*Math.PI)/2+.5}function ut(t,e,i,s){t=Math.min(Math.max(t,0),1),i=Math.min(Math.max(i,0),1);const a=3*t,r=3*(i-t)-a,n=1-a-r,o=3*e,l=3*(s-e)-o,h=1-o-l,c=t=>((n*t+r)*t+a)*t;return t=>t<=0?0:t>=1?1:(t=>((h*t+l)*t+o)*t)((t=>{let e=0,i=1,s=t;if(si)return i;for(;ea?e=s:i=s,s=(e+i)/2}return s})(t))}const gt=new Map;function ft(t){return"function"==typeof t?xt(t):(e=t,Array.isArray(e)&&4===e.length&&e.every(t=>"number"==typeof t)?ut(t[0],t[1],t[2],t[3]):"string"==typeof t&>.has(t)?xt(gt.get(t)):pt);var e}function xt(t){return e=>{const i=t(e);return"number"==typeof i&&isFinite(i)?i:e}}gt.set("linear",t=>t),gt.set("easeInOutSine",pt),gt.set("easeInSine",t=>1-Math.cos(t*Math.PI/2)),gt.set("easeOutSine",t=>Math.sin(t*Math.PI/2)),gt.set("easeInQuad",t=>t*t),gt.set("easeOutQuad",t=>1-(1-t)*(1-t)),gt.set("easeInOutQuad",t=>t<.5?2*t*t:1-Math.pow(-2*t+2,2)/2),gt.set("easeInCubic",t=>t*t*t),gt.set("easeOutCubic",t=>1-Math.pow(1-t,3)),gt.set("easeInOutCubic",t=>t<.5?4*t*t*t:1-Math.pow(-2*t+2,3)/2),gt.set("easeOutBack",t=>{const e=1.70158;return 1+2.70158*Math.pow(t-1,3)+e*Math.pow(t-1,2)}),gt.set("easeInOutBack",t=>{const e=2.5949095;return t<.5?Math.pow(2*t,2)*(7.189819*t-e)/2:(Math.pow(2*t-2,2)*((e+1)*(2*t-2)+e)+2)/2});const mt="http://www.w3.org/2000/svg";function bt(t){return 1-Math.pow(1-t,3)}let yt=null;function wt(){if(!d.isBrowser())return!1;try{return yt||(yt=window.matchMedia("(prefers-reduced-motion: reduce)")),!!yt.matches}catch(t){return!1}}function vt(t,e,i){if(!d.isBrowser())return!1;if(i.globals.dataChanged||i.globals.resized)return!1;const s=i.config.chart.animations;if(!s||!1===s.enabled)return!1;const a=i.config.chart.type;if("line"!==a&&"area"!==a&&"rangeArea"!==a)return!1;if(!(i.layout.gridWidth>0))return!1;const r=2*(s.speed||800),n=Math.max(0,Math.min(1,e/i.layout.gridWidth)),o=(1-Math.cbrt(1-n))*r,l=t.node.style;l.opacity="0";let h=null;const c=t=>{null===h&&(h=t),t-h>=o?l.opacity="":b.requestAnimationFrame(c)};return b.requestAnimationFrame(c),!0}function At(t){const e=t.config.chart.animations;var i;e&&(!1!==e.respectReducedMotion&&wt()&&(e.enabled=!1,e.dynamicAnimation&&(e.dynamicAnimation.enabled=!1)),i=ft(e.easing),ot="function"==typeof i?i:nt)}function St(t){const e=t.style,i=t.index||0,s="number"==typeof t.baseDelay?t.baseDelay:40,a=t.row||0,r=t.col||0,n=t.groupIndex||0,o=t.perGroup||1,l=t.centerDistance||0;switch(e){case"none":return 0;case"diagonal":return(a+r)*s;case"group":return n*s+i%o*(s/4);case"centroid":return l*s*(i+1);default:return i*s}}class Ct{constructor(t,e){this.w=t,this.ctx=e}animateLine(t,e,i,s){t.attr(e).animate(s).attr(i)}animateMarker(t,e,i,s){t.attr({opacity:0}).animate(e).attr({opacity:1}).after(()=>{s()})}animatePop(t,{speed:e,delay:i=0,onComplete:s}){const a=this.w;if(!d.isBrowser()||!a.globals.shouldAnimate||e<1)return void(s&&s());const r=t.node.style;r.transformBox="fill-box",r.transformOrigin="center",r.transform="scale(0)",r.opacity="0";const n=performance.now()+i,o=t=>{if(a.globals.isDestroyed)return;const i=Math.max(0,Math.min(1,(t-n)/e));r.transform=`scale(${function(t){const e=1.70158;return 1+2.70158*Math.pow(t-1,3)+e*Math.pow(t-1,2)}(i)})`,r.opacity=String(Math.min(1,2*i)),i<1?b.requestAnimationFrame(o):(r.transform="",r.transformOrigin="",r.transformBox="",r.opacity="",s&&s())};b.requestAnimationFrame(o)}animateRect(t,e,i,s,a,r=0){t.attr(e).animate(s,r).attr(i).after(()=>a())}animatePathsGradually(t){const{el:e,realIndex:i,j:s,fill:a,pathFrom:r,pathTo:n,pathToInterp:o,speed:l,delay:h,scrollMorph:c}=t,d=this.w;let p=0;d.config.chart.animations.animateGradually.enabled&&(p=d.config.chart.animations.animateGradually.delay),d.config.chart.animations.dynamicAnimation.enabled&&d.globals.dataChanged&&"bar"!==d.config.chart.type&&(p=0),this.morphSVG(e,i,s,"line"!==d.config.chart.type||d.globals.comboCharts?a:"stroke",r,n,l,h*p,c,o)}revealBulk(t){const e=this.w;t.node.classList.add("apexcharts-element-hidden"),e.globals.delayedElements.push({el:t.node}),d.isBrowser()&&e.globals.shouldAnimate?e.globals.bulkRevealScheduled||(e.globals.bulkRevealScheduled=!0,b.requestAnimationFrame(()=>{e.globals.isDestroyed||(e.globals.bulkRevealScheduled=!1,this.animationCompleted(t))})):this.animationCompleted(t)}showDelayedElements(){this.w.globals.delayedElements.forEach(t=>{if(t.holdUntilComplete&&!this.w.globals.animationEnded)return;const e=t.el;e.classList.remove("apexcharts-element-hidden"),e.classList.add("apexcharts-hidden-element-shown")})}animationCompleted(t){const e=this.w;e.globals.animationEnded||(e.globals.animationEnded=!0,this.showDelayedElements(),"function"==typeof e.config.chart.events.animationEnd&&e.config.chart.events.animationEnd(this.ctx,{el:t,w:e}))}animateDraw(t,{realIndex:e,j:i,isFill:s,isLast:a,speed:r,delay:n,mask:o}){const l=this.w,h=this,c=()=>{a&&l.globals.shouldAnimate&&h.animationCompleted(t),h.showDelayedElements()};if(!d.isBrowser()||!l.globals.shouldAnimate||r<1)return void c();const p=t.node,u=()=>{const t=o&&"radial"===o.type,a=l.layout.gridWidth+8,h=o&&o.cx||0,d=o&&o.cy||0,u=(o&&o.r||l.layout.gridWidth/2)+4,g=`apexDrawMask${l.globals.cuid}-${e}-${null!=i?i:0}-${s?"f":"s"}`,f=b.createElementNS(mt,"mask");let x;if(f.setAttribute("id",g),f.setAttribute("maskUnits","userSpaceOnUse"),t){const t=u;f.setAttribute("x",String(h-t)),f.setAttribute("y",String(d-t)),f.setAttribute("width",String(2*t)),f.setAttribute("height",String(2*t)),x=b.createElementNS(mt,"circle"),x.setAttribute("cx",String(h)),x.setAttribute("cy",String(d)),x.setAttribute("r","0"),x.setAttribute("fill","#fff")}else f.setAttribute("x",String(-4)),f.setAttribute("y",String(-4)),f.setAttribute("width",String(a)),f.setAttribute("height",String(l.layout.gridHeight+8)),x=b.createElementNS(mt,"rect"),x.setAttribute("x",String(-4)),x.setAttribute("y",String(-4)),x.setAttribute("width","0"),x.setAttribute("height",String(l.layout.gridHeight+8)),x.setAttribute("fill","#fff");f.appendChild(x),l.dom.elDefs.node.appendChild(f),p.setAttribute("mask",`url(#${g})`);const m=performance.now()+(n||0),y=e=>{if(l.globals.isDestroyed)return;const i=Math.max(0,Math.min(1,(e-m)/r)),s=bt(i);t?x.setAttribute("r",String(s*u)):x.setAttribute("width",String(s*a)),i<1?b.requestAnimationFrame(y):(p.removeAttribute("mask"),f.parentNode&&f.parentNode.removeChild(f),c())};b.requestAnimationFrame(y)};b.requestAnimationFrame(()=>{if(l.globals.isDestroyed)return;if(s)return void u();const t=p.getAttribute("stroke-dasharray");if(!!t&&"0"!==t&&""!==t)return void u();let e=0;try{"function"==typeof p.getTotalLength&&(e=p.getTotalLength())}catch(t){e=0}e?(t=>{p.setAttribute("stroke-dasharray",String(t)),p.setAttribute("stroke-dashoffset",String(t));const e=performance.now()+(n||0),i=s=>{if(l.globals.isDestroyed)return;const a=Math.max(0,Math.min(1,(s-e)/r));p.setAttribute("stroke-dashoffset",String(t*(1-bt(a)))),a<1?b.requestAnimationFrame(i):(p.removeAttribute("stroke-dasharray"),p.removeAttribute("stroke-dashoffset"),c())};b.requestAnimationFrame(i)})(e):c()})}morphSVG(t,e,i,s,a,r,n,o,l,h){var c,d;const p=this.w;a||(a=t.attr("pathFrom")),r||(r=t.attr("pathTo"));const u=()=>("radar"===p.config.chart.type&&(n=1),`M 0 ${p.layout.gridHeight}`);(!a||a.indexOf("undefined")>-1||a.indexOf("NaN")>-1)&&(a=u()),(!r.trim()||r.indexOf("undefined")>-1||r.indexOf("NaN")>-1)&&(r=u(),h=void 0),h&&(!h.trim()||h.indexOf("undefined")>-1||h.indexOf("NaN")>-1)&&(h=void 0),p.globals.shouldAnimate||(n=1);const g=!0===(null==(d=null==(c=this.ctx)?void 0:c.morphTypeChange)?void 0:d.isActive())?"polygons":"commands";let f=null;if(p.globals.dataChanged){const t=p.config.chart.animations.dynamicAnimation.easing;null!=t?f=ft(t):l&&(f=ft("linear"))}const x=t.plot(a).animate(n,o);f&&x.ease(f),x.plot(h||r,g,h?r:void 0).after(()=>{if(v.isNumber(i)){const e=p.seriesData.series[p.globals.maxValsInArrayIndex];e&&i===e.length-2&&p.globals.shouldAnimate&&this.animationCompleted(t)}else"none"!==s&&p.globals.shouldAnimate&&(!p.globals.comboCharts&&e===p.seriesData.series.length-1||p.globals.comboCharts)&&this.animationCompleted(t);this.showDelayedElements()})}}const kt=.15,_t=.35;class Mt{constructor(t){this.w=t}static isSliceChart(t){const e=t.config.chart.type;return"pie"===e||"donut"===e||"polarArea"===e}static hoverOutlineOwnsHoverState(t){var e;return Mt.isSliceChart(t)&&"none"!==t.config.states.hover.filter.type&&!0===(null==(e=t.config.plotOptions.pie.hoverOutline)?void 0:e.show)}static sliceOffsetOwnsActiveState(t){return Mt.isSliceChart(t)&&"polarArea"!==t.config.chart.type&&!0===t.config.plotOptions.pie.expandOnClick&&t.config.plotOptions.pie.expandOffset>0&&!Mt.drilldownBlocksSliceOffset(t)}static drilldownBlocksSliceOffset(t){var e;return Mt.isSliceChart(t)&&!0===(null==(e=t.config.drilldown)?void 0:e.enabled)}getDefaultFilter(t,e){const i=this.w;t.unfilter&&t.unfilter(!0),i.config.chart.dropShadow.enabled&&this.dropShadow(t,i.config.chart.dropShadow,e)}applyFilter(t,e,i,s){var a,r,n;const o=this.w;if(t.unfilter&&t.unfilter(!0),"none"===i)return void this.getDefaultFilter(t,e);const l=o.config.chart.dropShadow,h="lighten"===i?kt:_t,c=Math.max(0,Math.min(1,"number"==typeof s?s:h)),d=1-c,p="lighten"===i?c:0;t.filterWith&&(t.filterWith(t=>{t.colorMatrix({type:"matrix",values:`\n ${d} 0 0 0 ${p}\n 0 ${d} 0 0 ${p}\n 0 0 ${d} 0 ${p}\n 0 0 0 1 0\n `,in:"SourceGraphic",result:"brightness"}),l.enabled&&this.addShadow(t,e,l,"brightness")}),l.noUserSpaceOnUse||null==(r=null==(a=t.filterer())?void 0:a.node)||r.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(null==(n=t.filterer())?void 0:n.node))}addShadow(t,e,i,s){var a;const r=this.w;let{blur:n,top:o,left:l,color:h,opacity:c}=i;if(h=Array.isArray(h)?h[e]:h,(null==(a=r.config.chart.dropShadow.enabledOnSeries)?void 0:a.length)>0&&-1===r.config.chart.dropShadow.enabledOnSeries.indexOf(e))return t;t.offset({in:s,dx:l,dy:o,result:"offset"}),t.gaussianBlur({in:"offset",stdDeviation:n,result:"blur"}),t.flood({"flood-color":h,"flood-opacity":c,result:"flood"}),t.composite({in:"flood",in2:"blur",operator:"in",result:"shadow"}),t.merge(["shadow",s])}dropShadow(t,e,i=0){var s,a,r,n,o;const l=this.w;return t.unfilter&&t.unfilter(!0),v.isMsEdge()&&"radialBar"===l.config.chart.type||(null==(s=l.config.chart.dropShadow.enabledOnSeries)?void 0:s.length)>0&&-1===(null==(a=l.config.chart.dropShadow.enabledOnSeries)?void 0:a.indexOf(i))||t.filterWith&&(t.filterWith(t=>{this.addShadow(t,i,e,"SourceGraphic")}),e.noUserSpaceOnUse||null==(n=null==(r=t.filterer())?void 0:r.node)||n.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(null==(o=t.filterer())?void 0:o.node)),t}setSelectionFilter(t,e,i){const s=this.w;if(void 0!==s.interact.selectedDataPoints[e]&&s.interact.selectedDataPoints[e].indexOf(i)>-1){if(t.node.setAttribute("selected",!0),Mt.sliceOffsetOwnsActiveState(s))return;const i=s.config.states.active.filter;"none"!==i.type&&this.applyFilter(t,e,i.type,i.value)}}_scaleFilterSize(t){if(!t)return;(e=>{for(const i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.setAttribute(i,e[i])})({width:"200%",height:"200%",x:"-50%",y:"-50%"})}}const Dt=Object.freeze({"stroke.dashArray":Object.freeze({type:"number"}),"dataLabels.enabledOnSeries":Object.freeze({type:"boolean"})});function Lt(t,e){const i=function(t){return t.weaveClaims||(t.weaveClaims={byOption:new Map}),t.weaveClaims}(t);return i.byOption.has(e)||i.byOption.set(e,[]),i.byOption.get(e)}function Pt(t,e){const i=Dt[t],s=[];for(const t of Array.isArray(e)?e:[])!t||"string"!=typeof t.series&&"number"!=typeof t.series||typeof t.value===i.type&&s.push({series:t.series,value:t.value});return s}function Ft(t,e){if(t.weaveClaims)for(const[i,s]of t.weaveClaims.byOption){const a=s.filter(t=>t.owner!==e);a.length!==s.length&&t.weaveClaims.byOption.set(i,a)}}function Et(t,e){if("number"==typeof e)return e;const i=t.config&&t.config.series||[];for(let t=0;t2&&(t[t.length-2]=e.x,t[t.length-1]=e.y)}function r(t){return{x:parseFloat(t[t.length-2]),y:parseFloat(t[t.length-1])}}t.indexOf("NaN")>-1&&(t="");var n=t.split(/[,\s]/).reduce(function(t,e){var i=e.match(/^([a-zA-Z])(.+)/);return i?(t.push(i[1]),t.push(i[2])):t.push(e),t},[]).reduce(function(t,e){return parseFloat(e)==e&&t.length?t[t.length-1].push(e):t.push([e]),t},[]),o=[];if(n.length>1){var l=r(n[0]),h=null;"Z"==n[n.length-1][0]&&n[0].length>2&&(h=["L",l.x,l.y],n[n.length-1]=h),o.push(n[0]);for(var c=1;c2&&"L"==p[0]&&u.length>2&&"L"==u[0]){var g,f,x=r(d),m=r(p),b=r(u);g=i(m,x,e),f=i(m,b,e),a(p,g),p.origPoint=m,o.push(p);var y=s(g,m,.5),w=s(m,f,.5),v=["C",y.x,y.y,w.x,w.y,f.x,f.y];v.origPoint=m,o.push(v)}else o.push(p)}if(h){var A=r(o[o.length-1]);o.push(["Z"]),a(o[0],A)}}else o=n;return o.reduce(function(t,e){return t+e.join(" ")+" "},"")}drawLine(t,e,i,s,a="#a8a8a8",r=0,n=null,o="butt"){return this.w.dom.Paper.line().attr({x1:t,y1:e,x2:i,y2:s,stroke:a,"stroke-dasharray":r,"stroke-width":n,"stroke-linecap":o})}drawRect(t=0,e=0,i=0,s=0,a=0,r="#fefefe",n=1,o=null,l=null,h=0){const c=this.w.dom.Paper.rect();return c.attr({x:t,y:e,width:i>0?i:0,height:s>0?s:0,rx:a,ry:a,opacity:n,"stroke-width":null!==o?o:0,stroke:null!==l?l:"none","stroke-dasharray":h}),c.node.setAttribute("fill",r),c}drawPolygon(t,e="#e1e1e1",i=1,s="none"){return this.w.dom.Paper.polygon(t).attr({fill:s,stroke:e,"stroke-width":i})}drawCircle(t,e=null){t<0&&(t=0);const i=this.w.dom.Paper.circle(2*t);return null!==e&&i.attr(e),i}drawPath({d:t="",stroke:e="#a8a8a8",strokeWidth:i=1,fill:s,fillOpacity:a=1,strokeOpacity:r=1,classes:n,strokeLinecap:o=null,strokeDashArray:l=0}){const h=this.w;null===o&&(o=h.config.stroke.lineCap),(t.indexOf("undefined")>-1||t.indexOf("NaN")>-1)&&(t=`M 0 ${h.layout.gridHeight}`);return h.dom.Paper.path(t).attr({fill:s,"fill-opacity":a,stroke:e,"stroke-opacity":r,"stroke-linecap":o,"stroke-width":i,"stroke-dasharray":l,class:n})}group(t=null){const e=this.w.dom.Paper.group();return null!==t&&e.attr(t),e}move(t,e){return["M",t,e].join(" ")}line(t,e,i=null){return"H"===i?[" H",t].join(" "):"V"===i?[" V",e].join(" "):[" L",t,e].join(" ")}curve(t,e,i,s,a,r){return["C",t,e,i,s,a,r].join(" ")}quadraticCurve(t,e,i,s){return["Q",t,e,i,s].join(" ")}arc(t,e,i,s,a,r,n,o=!1){let l="A";o&&(l="a");return[l,t,e,i,s,a,r,n].join(" ")}renderPaths({j:t,realIndex:e,pathFrom:i,pathTo:s,pathToInterp:a,stroke:r,strokeWidth:n,strokeLinecap:h,fill:c,animationDelay:d,initialSpeed:p,dataChangeSpeed:u,className:g,chartType:f,shouldClipToGrid:x=!0,bindEventsOnPaths:m=!0,drawShadow:b=!0,drawMask:y=null,scrollMorph:w=!1}){var v,A,S,C;const k=this.w,_=new Mt(this.w),M=new Ct(this.w,null!=(v=this.ctx)?v:void 0),D=this.w.config.chart.animations.enabled,L=D&&this.w.config.chart.animations.dynamicAnimation.enabled;if(i&&i.startsWith("M 0 0 ")&&s){const t=s.match(/^M\s+[\d.-]+\s+[\d.-]+/);t&&(i=i.replace(/^M\s+0\s+0/,t[0]))}let P;const F=!0===(null==(S=null==(A=this.ctx)?void 0:A.morphTypeChange)?void 0:S.isActive()),E=!!(D&&!k.globals.resized||L&&k.globals.dataChanged&&k.globals.shouldAnimate||F&&D&&k.globals.shouldAnimate),T="string"==typeof g&&(g.indexOf("apexcharts-line")>-1||g.indexOf("apexcharts-area")>-1||g.indexOf("apexcharts-rangeArea")>-1||g.indexOf("apexcharts-radar")>-1),I=!(!D||k.globals.resized||k.globals.dataChanged||!T),R=null!=(C=k.config.chart.animations.largeDatasetThreshold)?C:0,z=!!(E&&!I&&R>0&&k.globals.dataPoints>R),X=!(!("candlestick"===f||"boxPlot"===f)||!E||I||!k.globals.dataChanged||F),B=z||X;!E||I||B?(P=s,E||(k.globals.animationEnded=!0)):P=i;const N=k.config.stroke.dashArray;let O=0;O=Array.isArray(N)?N[e]:k.config.stroke.dashArray,O=Tt(k,"stroke.dashArray",e,O);const Y=this.drawPath({d:P,stroke:r,strokeWidth:n,fill:c,fillOpacity:1,classes:g,strokeLinecap:h,strokeDashArray:O});Y.attr("index",e),x&&("bar"===f&&!k.globals.isBarHorizontal||k.globals.comboCharts?Y.attr({"clip-path":`url(#gridRectBarMask${k.globals.cuid})`}):Y.attr({"clip-path":`url(#gridRectMask${k.globals.cuid})`})),k.config.chart.dropShadow.enabled&&b&&_.dropShadow(Y,k.config.chart.dropShadow,e),m&&(Y.node.addEventListener("mouseenter",this.pathMouseEnter.bind(this,Y)),Y.node.addEventListener("mouseleave",this.pathMouseLeave.bind(this,Y)),Y.node.addEventListener("mousedown",this.pathMouseDown.bind(this,Y))),Y.attr({pathTo:s,pathFrom:i});const W={el:Y,j:t,realIndex:e,pathFrom:i,pathTo:s,pathToInterp:a,fill:c,strokeWidth:n,delay:d,scrollMorph:w};if(!D||k.globals.resized||k.globals.dataChanged)!k.globals.resized&&k.globals.dataChanged||B||M.showDelayedElements();else if(I){const i=2*p,s="none"===r||0===n,a=k.seriesData.series.length,o=!!k.globals.comboCharts||e===a-1;M.animateDraw(Y,{realIndex:e,j:t,isFill:s,isLast:o,speed:i,delay:0,mask:y})}else B||M.animatePathsGradually(l(o({},W),{speed:p}));return E&&!B&&(k.globals.dataChanged&&L||F)&&M.animatePathsGradually(l(o({},W),{speed:u})),B&&M.revealBulk(Y),Y}drawPattern(t,e,i,s="#a8a8a8",a=0){return this.w.dom.Paper.pattern(e,i,r=>{"horizontalLines"===t?r.line(0,0,i,0).stroke({color:s,width:a+1}):"verticalLines"===t?r.line(0,0,0,e).stroke({color:s,width:a+1}):"slantedLines"===t?r.line(0,0,e,i).stroke({color:s,width:a}):"squares"===t?r.rect(e,i).fill("none").stroke({color:s,width:a}):"circles"===t&&r.circle(e).fill("none").stroke({color:s,width:a})})}drawGradient(t,e,i,s,a,r=null,n=null,o=[],l=0,h=!1){const c=this.w;let d;e.length<9&&0===e.indexOf("#")&&(e=v.hexToRgba(e,s)),i.length<9&&0===i.indexOf("#")&&(i=v.hexToRgba(i,a));let p=0,u=1,g=1,f=null;null!==n&&(p=void 0!==n[0]?n[0]/100:0,u=void 0!==n[1]?n[1]/100:1,g=void 0!==n[2]?n[2]/100:1,f=void 0!==n[3]?n[3]/100:null);const x=!("donut"!==c.config.chart.type&&"pie"!==c.config.chart.type&&"polarArea"!==c.config.chart.type&&"bubble"!==c.config.chart.type);if(d=o&&0!==o.length?c.dom.Paper.gradient(x?"radial":"linear",t=>{(Array.isArray(o[l])?o[l]:Array.isArray(o[0])?o[0]||[]:o).forEach(e=>{t.stop(e.offset/100,e.color,e.opacity)})}):c.dom.Paper.gradient(x?"radial":"linear",t=>{t.stop(p,e,s),t.stop(u,i,a),t.stop(g,i,a),null!==f&&t.stop(f,e,s)}),x){const t=c.layout.gridWidth/2,e=c.layout.gridHeight/2;"bubble"!==c.config.chart.type?d.attr({gradientUnits:"userSpaceOnUse",cx:t,cy:e,r:r}):d.attr({cx:.5,cy:.5,r:.8,fx:.2,fy:.2})}else"vertical"===t?h?(d.attr({gradientUnits:"userSpaceOnUse"}),d.from(0,0).to(0,c.layout.gridHeight)):d.from(0,0).to(0,1):"diagonal"===t?d.from(0,0).to(1,1):"horizontal"===t?d.from(0,1).to(1,1):"diagonal2"===t&&d.from(1,0).to(0,1);return d}getTextBasedOnMaxWidth({text:t,maxWidth:e,fontSize:i,fontFamily:s}){const a=this.getTextRects(t,i,s,""),r=a.width/t.length,n=Math.floor(e/r);return e{for(let e=0;et.tspan(f))),m.attr({x:t,y:e,"text-anchor":s,"dominant-baseline":u,"font-size":a,"font-family":r,"font-weight":n,fill:l,class:"apexcharts-text "+d}),m.node.style.fontFamily=r,m.node.style.opacity=h,m}getMarkerPath(t,e,i,s){let a="";switch(i){case"cross":a=`M ${t-(s/=1.4)} ${e-s} L ${t+s} ${e+s} M ${t-s} ${e+s} L ${t+s} ${e-s}`;break;case"plus":a=`M ${t-(s/=1.12)} ${e} L ${t+s} ${e} M ${t} ${e-s} L ${t} ${e+s}`;break;case"star":case"sparkle":{let r=5;s*=1.15,"sparkle"===i&&(s/=1.1,r=4);const n=Math.PI/r;for(let i=0;i<=2*r;i++){const r=i*n,o=i%2==0?s:s/2;a+=(0===i?"M":"L")+(t+o*Math.sin(r))+","+(e-o*Math.cos(r))}a+="Z";break}case"triangle":a=`M ${t} ${e-s} \n L ${t+s} ${e+s} \n L ${t-s} ${e+s} \n Z`;break;case"square":case"rect":a=`M ${t-(s/=1.125)} ${e-s} \n L ${t+s} ${e-s} \n L ${t+s} ${e+s} \n L ${t-s} ${e+s} \n Z`;break;case"diamond":a=`M ${t} ${e-(s*=1.05)} \n L ${t+s} ${e} \n L ${t} ${e+s} \n L ${t-s} ${e} \n Z`;break;case"line":a=`M ${t-(s/=1.1)} ${e} \n L ${t+s} ${e}`;break;default:a=`M ${t}, ${e} \n m -${(s*=2)/2}, 0 \n a ${s/2},${s/2} 0 1,0 ${s},0 \n a ${s/2},${s/2} 0 1,0 -${s},0`}return a}drawMarkerShape(t,e,i,s,a){const r=this.drawPath({d:this.getMarkerPath(t,e,i,s),stroke:a.pointStrokeColor,strokeDashArray:a.pointStrokeDashArray,strokeWidth:a.pointStrokeWidth,fill:a.pointFillColor,fillOpacity:a.pointFillOpacity,strokeOpacity:a.pointStrokeOpacity});return r.attr({cx:t,cy:e,shape:a.shape,class:a.class?a.class:""}),r}drawMarker(t,e,i){t=t||0;let s=i.pSize||0;return v.isNumber(e)||(s=0,e=0),this.drawMarkerShape(t,e,null==i?void 0:i.shape,s,o(o({},i),"line"===i.shape||"plus"===i.shape||"cross"===i.shape?{pointStrokeColor:i.pointFillColor,pointStrokeOpacity:i.pointFillOpacity}:{}))}pathMouseEnter(t,e){var i,s;const a=this.w,r=new Mt(this.w),n=parseInt(null!=(i=t.node.getAttribute("index"))?i:"",10),o=parseInt(null!=(s=t.node.getAttribute("j"))?s:"",10);if(!(isNaN(n)||isNaN(o)||("function"==typeof a.config.chart.events.dataPointMouseEnter&&a.config.chart.events.dataPointMouseEnter(e,this.ctx,{seriesIndex:n,dataPointIndex:o,w:a}),It._fireEvent(a,"dataPointMouseEnter",[e,this.ctx,{seriesIndex:n,dataPointIndex:o,w:a}]),"none"!==a.config.states.active.filter.type&&"true"===t.node.getAttribute("selected")||Mt.hoverOutlineOwnsHoverState(a)||"none"===a.config.states.hover.filter.type||a.interact.isTouchDevice))){const e=a.config.states.hover.filter;r.applyFilter(t,n,e.type,e.value)}}pathMouseLeave(t,e){var i,s;const a=this.w,r=new Mt(this.w),n=parseInt(null!=(i=t.node.getAttribute("index"))?i:"",10),o=parseInt(null!=(s=t.node.getAttribute("j"))?s:"",10);isNaN(n)||isNaN(o)||("function"==typeof a.config.chart.events.dataPointMouseLeave&&a.config.chart.events.dataPointMouseLeave(e,this.ctx,{seriesIndex:n,dataPointIndex:o,w:a}),It._fireEvent(a,"dataPointMouseLeave",[e,this.ctx,{seriesIndex:n,dataPointIndex:o,w:a}]),"none"!==a.config.states.active.filter.type&&"true"===t.node.getAttribute("selected")||Mt.hoverOutlineOwnsHoverState(a)||"none"!==a.config.states.hover.filter.type&&r.getDefaultFilter(t,n))}_clearAllDataPointSelections(t,e){const i=this.w;i.interact.selectedDataPoints=[];const s=i.dom.Paper.find(".apexcharts-series path:not(.apexcharts-decoration-element)"),a=i.dom.Paper.find(".apexcharts-series circle:not(.apexcharts-decoration-element), .apexcharts-series rect:not(.apexcharts-decoration-element)"),r=i=>{Array.prototype.forEach.call(i,i=>{i.node.setAttribute("selected","false"),t.getDefaultFilter(i,e)})};r(s),r(a)}_togglePointSelection(t,e,i,s){const a=this.w;if("true"===t.node.getAttribute("selected")){t.node.setAttribute("selected","false");const e=a.interact.selectedDataPoints[i].indexOf(s);return e>-1&&a.interact.selectedDataPoints[i].splice(e,1),"false"}return!a.config.states.active.allowMultipleDataPointsSelection&&a.interact.selectedDataPoints.length>0&&this._clearAllDataPointSelections(e,i),t.node.setAttribute("selected","true"),void 0===a.interact.selectedDataPoints[i]&&(a.interact.selectedDataPoints[i]=[]),a.interact.selectedDataPoints[i].push(s),"true"}_applyPointSelectionFilter(t,e,i,s){const a=this.w;if(!Mt.sliceOffsetOwnsActiveState(a))if("true"===s){const s=a.config.states.active.filter;if("none"!==s)e.applyFilter(t,i,s.type,s.value);else if("none"!==a.config.states.hover.filter&&!a.interact.isTouchDevice){const s=a.config.states.hover.filter;e.applyFilter(t,i,s.type,s.value)}}else if("none"!==a.config.states.active.filter.type)if("none"===a.config.states.hover.filter.type||a.interact.isTouchDevice)e.getDefaultFilter(t,i);else{const s=a.config.states.hover.filter;e.applyFilter(t,i,s.type,s.value)}}pathMouseDown(t,e){var i,s;const a=this.w,r=new Mt(this.w),n=parseInt(null!=(i=t.node.getAttribute("index"))?i:"",10),o=parseInt(null!=(s=t.node.getAttribute("j"))?s:"",10);if(isNaN(n)||isNaN(o))return;const l=a.config.chart.link;if(!!(!l||"function"!=typeof l.dimension&&!l.enabled)){const e=this._togglePointSelection(t,r,n,o);this._applyPointSelectionFilter(t,r,n,e)}"function"==typeof a.config.chart.events.dataPointSelection&&a.config.chart.events.dataPointSelection(e,this.ctx,{selectedDataPoints:a.interact.selectedDataPoints,seriesIndex:n,dataPointIndex:o,w:a}),e&&It._fireEvent(a,"dataPointSelection",[e,this.ctx,{selectedDataPoints:a.interact.selectedDataPoints,seriesIndex:n,dataPointIndex:o,w:a}])}rotateAroundCenter(t){let e={};t&&"function"==typeof t.getBBox&&(e=t.getBBox());return{x:e.x+e.width/2,y:e.y+e.height/2}}setupEventDelegation(t,e){let i=null;t.node.addEventListener("mouseover",s=>{const a=It._findDelegateTarget(s.target,t.node,e);a&&a!==i&&(i&&i.instance&&this.pathMouseLeave(i.instance,s),i=a,a.instance&&this.pathMouseEnter(a.instance,s))}),t.node.addEventListener("mouseout",s=>{if(!i)return;(s.relatedTarget?It._findDelegateTarget(s.relatedTarget,t.node,e):null)!==i&&(i&&i.instance&&this.pathMouseLeave(i.instance,s),i=null)}),t.node.addEventListener("mousedown",i=>{const s=It._findDelegateTarget(i.target,t.node,e);s&&s.instance&&this.pathMouseDown(s.instance,i)})}static _fireEvent(t,e,i){const s=t.globals.events;if(!s||!Object.prototype.hasOwnProperty.call(s,e))return;const a=s[e];for(let t=0;t0&&t.getComputedTextLength()>=i/1.1)){for(let s=e.length-3;s>0;s-=3)if(t.getSubStringLength(0,s)<=i/1.1)return void(t.textContent=e.substring(0,s)+"...");t.textContent="."}}}class Rt{constructor(t){this.w=t,this.opts=null,this.seriesIndex=0,this.patternIDs=[]}clippedImgArea(t){const e=this.w,i=e.config,s=parseInt(String(e.layout.gridWidth),10),a=parseInt(String(e.layout.gridHeight),10),r=s>a?s:a,n=t.image;let o=0,l=0;void 0===t.width&&void 0===t.height?void 0!==i.fill.image.width&&void 0!==i.fill.image.height?(o=i.fill.image.width+1,l=i.fill.image.height):(o=r+1,l=r):(o=t.width,l=t.height);const h=b.createElementNS($,"pattern");It.setAttrs(h,{id:t.patternID,patternUnits:t.patternUnits?t.patternUnits:"userSpaceOnUse",width:o+"px",height:l+"px"});const c=b.createElementNS($,"image");h.appendChild(c);const p=d.isBrowser()?window.SVG:global.SVG;c.setAttributeNS(p.xlink,"href",n),It.setAttrs(c,{x:0,y:0,preserveAspectRatio:"none",width:o+"px",height:l+"px"}),c.style.opacity=t.opacity,e.dom.elDefs.node.appendChild(h)}getSeriesIndex(t){const e=this.w,i=e.config.chart.type;return("bar"===i||"rangeBar"===i)&&e.config.plotOptions.bar.distributed||"heatmap"===i||"treemap"===i?this.seriesIndex=t.seriesNumber:this.seriesIndex=t.seriesNumber%e.seriesData.series.length,this.seriesIndex}getSeriesAxisRange(t){var e,i,s;const a=this.w,r=null!=(i=null==(e=a.globals.seriesYAxisReverseMap)?void 0:e[t])?i:0;return{minY:v.isNumber(a.globals.minYArr[t])?a.globals.minYArr[t]:a.globals.minY,maxY:v.isNumber(a.globals.maxYArr[t])?a.globals.maxYArr[t]:a.globals.maxY,reversed:!!(null==(s=a.config.yaxis[r])?void 0:s.reversed)}}computeColorStops(t,e){const i=this.w,{threshold:s,colorAboveThreshold:a,colorBelowThreshold:r}=e,{minY:n,maxY:o}=t,l=o-n;let h=0===l?s>o?0:100:(o-s)/l*100;t.reversed&&(h=100-h),h=Math.max(0,Math.min(h,100));const c=Array.isArray(i.config.fill.opacity)?i.config.fill.opacity[this.seriesIndex]:i.config.fill.opacity,d={offset:h,color:a,opacity:c},p={offset:h,color:r,opacity:c};return t.reversed?[p,d]:[d,p]}fillPath(t){var e,i,s,a,r,n,o;const l=this.w;this.opts=t;const h=this.w.config;let c,d,p;this.seriesIndex=this.getSeriesIndex(t);const u=h.plotOptions.line.colors.colorAboveThreshold&&h.plotOptions.line.colors.colorBelowThreshold;let g=this.getFillColors()[this.seriesIndex];void 0!==l.seriesData.seriesColors[this.seriesIndex]&&(g=l.seriesData.seriesColors[this.seriesIndex]),"function"==typeof g&&(g=g({seriesIndex:this.seriesIndex,dataPointIndex:t.dataPointIndex,value:t.value,w:l}));const f=t.fillType?t.fillType:this.getFillType(this.seriesIndex);let x=Array.isArray(h.fill.opacity)?h.fill.opacity[this.seriesIndex]:h.fill.opacity;const m="gradient"===f||u;t.color&&(g=t.color);const b=l.config.series[this.seriesIndex];(null==(i=null==(e=null==b?void 0:b.data)?void 0:e[t.dataPointIndex])?void 0:i.fillColor)&&(g=null==(a=null==(s=null==b?void 0:b.data)?void 0:s[t.dataPointIndex])?void 0:a.fillColor),g||(g="#fff"),void 0!==t.opacity&&null!==t.opacity&&(x=t.opacity);let y=g;v.isCSSVariable(g)?y=v.applyOpacityToColor(g,x):-1===g.indexOf("rgb")?-1===g.indexOf("#")?y=g:g.length<9&&(y=v.hexToRgba(g,x)):g.indexOf("rgba")>-1?x=v.getOpacityFromRGBA(g):y=v.hexToRgba(v.rgb2hex(g),x);const w=v.isCSSVariable(g)?v.getThemeColor(g):g;if("pattern"===f&&(d=this.handlePatternFill({fillConfig:t.fillConfig,patternFill:d,fillColor:w,defaultColor:y})),m){const e=h.fill.gradient.colorStops?[...h.fill.gradient.colorStops]:[];let i=null!=(o=null==(n=null==(r=t.fillConfig)?void 0:r.gradient)?void 0:n.type)?o:h.fill.gradient.type;u&&(e[this.seriesIndex]=this.computeColorStops(this.getSeriesAxisRange(this.seriesIndex),h.plotOptions.line.colors),i="vertical"),p=this.handleGradientFill({type:i,fillConfig:t.fillConfig,fillColor:w,fillOpacity:x,colorStops:e,i:this.seriesIndex,verticalUserSpace:u})}if("image"===f){const e=h.fill.image.src,i=t.patternID?t.patternID:"",s=`pattern${l.globals.cuid}${t.seriesNumber+1}${i}`;-1===this.patternIDs.indexOf(s)&&(this.clippedImgArea({opacity:x,image:Array.isArray(e)?t.seriesNumber-1&&(g=v.getOpacityFromRGBA(u));let f=void 0===l.gradient.opacityTo?i:Array.isArray(l.gradient.opacityTo)?l.gradient.opacityTo[r]:l.gradient.opacityTo;if(void 0===l.gradient.gradientToColors||0===l.gradient.gradientToColors.length)p="dark"===l.gradient.shade?d.shadeColor(-1*parseFloat(l.gradient.shadeIntensity),e.indexOf("rgb")>-1?v.rgb2hex(e):e):d.shadeColor(parseFloat(l.gradient.shadeIntensity),e.indexOf("rgb")>-1?v.rgb2hex(e):e);else if(l.gradient.gradientToColors[h.seriesNumber]){const t=l.gradient.gradientToColors[h.seriesNumber];p=t,t.indexOf("rgba")>-1&&(f=v.getOpacityFromRGBA(t))}else p=e;if(l.gradient.gradientFrom&&(u=l.gradient.gradientFrom),l.gradient.gradientTo&&(p=l.gradient.gradientTo),l.gradient.inverseColors){const t=u;u=p,p=t}return u.indexOf("rgb")>-1&&(u=v.rgb2hex(u)),p.indexOf("rgb")>-1&&(p=v.rgb2hex(p)),c.drawGradient(t,u,p,g,f,h.size,l.gradient.stops,a,r,n)}}const zt=["none","lighten","darken"];function Xt(t,e){const i=t&&t.renderer;return i&&i.kind&&"svg"!==i.kind?i:e}function Bt(t){var e,i,s,a;const r=t.config.fill&&t.config.fill.type,n=t=>"pattern"===t||"image"===t||"gradient"===t;if(Array.isArray(r)?r.some(n):n(r))return!0;const o=null==(i=null==(e=t.config.plotOptions)?void 0:e.line)?void 0:i.colors;if(o&&o.colorAboveThreshold&&o.colorBelowThreshold)return!0;if("heatmap"===t.config.chart.type&&"rect"!==((null==(a=null==(s=t.config.plotOptions)?void 0:s.heatmap)?void 0:a.shape)||"rect"))return!0;const l=t.config.states||{},h=l.hover&&l.hover.filter&&l.hover.filter.type,c=l.active&&l.active.filter&&l.active.filter.type;return!(!h||zt.includes(h))||!(!c||zt.includes(c))}class Nt{constructor(t,e){this.w=t,this.ctx=e,this._filters=new Mt(this.w),this._graphics=new It(this.w,this.ctx),this._seriesWrap=null,this._seriesWrapIndex=-1,this._batch=null}resetSeriesWrapCache(){this._seriesWrap=null,this._seriesWrapIndex=-1,this._batch=null}static markersAreInert(t){const e=t.config.chart.type;return!("line"!==e&&"area"!==e||t.globals.comboCharts||t.config.tooltip.intersect)}_shouldBatch(){var t,e,i,s,a;const r=this.w,n=r.config.markers,o=null!=(t=n.largeDatasetThreshold)?t:0;if(o<=0)return!1;if("canvas"===(null==(i=null==(e=this.ctx)?void 0:e.renderer)?void 0:i.kind))return!1;if(!Nt.markersAreInert(r))return!1;if(n.discrete&&n.discrete.length)return!1;if(n.onClick||n.onDblClick)return!1;if(null==(s=r.config.chart.events)?void 0:s.dataPointSelection)return!1;const l=r.seriesData.series;if(!Array.isArray(l)||!l.length)return!1;let h=!1;for(let t=0;t0||e&&n.showNullDataPoints)&&(l[t].length>o&&(h=!0))}return h}setGlobalMarkerSize(){const t=this.w;if(t.globals.markers.size=Array.isArray(t.config.markers.size)?t.config.markers.size:[t.config.markers.size],t.globals.markers.size.length>0){if(t.globals.markers.size.lengtht.config.markers.size);t.globals.markers.batched=this._shouldBatch()}plotChartMarkers({pointsPos:t,seriesIndex:e,j:i,pSize:s,alwaysDrawMarker:a=!1,isVirtualPoint:r=!1}){const n=this.w,o=e,l=t;let h=null;const c=new It(this.w),d=Xt(this.ctx,c),p=n.config.markers.discrete&&n.config.markers.discrete.length;if(Array.isArray(l.x))for(let t=0;t0:n.config.markers.size>0;if(n.globals.markers.batched&&(m||a)&&!p&&!r)this._batchPoint(e,g,l.x[t],l.y[t],{invalid:f,graphics:c,pSize:a?s:void 0,trackPoint:!a});else if(m||a||p){"canvas"===d.kind&&(void 0===n.globals.pointsArray[e]&&(n.globals.pointsArray[e]=[]),n.globals.pointsArray[e][g]=[l.x[t],l.y[t]]),f||(x+=` w${v.randomId()}`);const i=this.getMarkerConfig({cssClass:x,seriesIndex:e,dataPointIndex:g}),r=n.config.series[o];if(r.data[g]&&(r.data[g].fillColor&&(i.pointFillColor=r.data[g].fillColor),r.data[g].strokeColor&&(i.pointStrokeColor=r.data[g].strokeColor)),void 0!==s&&(i.pSize=s),(l.x[t]<-n.globals.markers.largestSize||l.x[t]>n.layout.gridWidth+n.globals.markers.largestSize||l.y[t]<-n.globals.markers.largestSize||l.y[t]>n.layout.gridHeight+n.globals.markers.largestSize)&&(i.pSize=0),!f){if((n.globals.markers.size[e]>0||a||p)&&!h){const t=!a&&!p;t&&this._seriesWrap&&this._seriesWrapIndex===e?h=this._seriesWrap:(h=d.group({class:t?"apexcharts-series-markers":""}),h.attr("clip-path",`url(#gridRectMarkerMask${n.globals.cuid})`),this.setupMarkerDelegation(h),t&&(this._seriesWrap=h,this._seriesWrapIndex=e))}u=d.drawMarker(l.x[t],l.y[t],i),u.attr("rel",g),u.attr("j",g),u.attr("index",e),u.node.setAttribute("default-marker-size",i.pSize),vt(u,l.x[t],n),this._filters.setSelectionFilter(u,e,g),h&&h.add(u)}}else void 0===n.globals.pointsArray[e]&&(n.globals.pointsArray[e]=[]),n.globals.pointsArray[e].push([l.x[t],l.y[t]])}return h}_batchPoint(t,e,i,s,{invalid:a,graphics:r,pSize:n,trackPoint:o}){const l=this.w;if(o&&(void 0===l.globals.pointsArray[t]&&(l.globals.pointsArray[t]=[]),l.globals.pointsArray[t][e]=[i,s]),a)return;this._batch&&this._batch.seriesIndex===t||(this._batch={seriesIndex:t,opts:this.getMarkerConfig({cssClass:"",seriesIndex:t}),sizes:new Map});const h=void 0===n?this._batch.opts.pSize:n;if(!(h>0))return;const c=l.globals.markers.largestSize;if(i<-c||i>l.layout.gridWidth+c||s<-c||s>l.layout.gridHeight+c)return;let d=this._batch.sizes.get(h);d||(d=[],this._batch.sizes.set(h,d)),d.push(r.getMarkerPath(i,s,this._batch.opts.shape,h))}flushBatch(t,e){const i=this._batch;if(this._batch=null,!i||i.seriesIndex!==e||!i.sizes.size)return[];const s=this.w,a=new It(this.w),r=i.opts,n="line"===r.shape||"plus"===r.shape||"cross"===r.shape,o=n?r.pointFillColor:r.pointStrokeColor,l=n?r.pointFillOpacity:r.pointStrokeOpacity,h=[];return i.sizes.forEach((i,n)=>{if(!i.length)return;const c=a.drawPath({d:i.join(" "),fill:r.pointFillColor,fillOpacity:r.pointFillOpacity,stroke:o,strokeOpacity:l,strokeWidth:r.pointStrokeWidth,strokeDashArray:r.pointStrokeDashArray});c.attr({class:"apexcharts-marker-batch"+(Nt.markersAreInert(s)?" no-pointer-events":""),"clip-path":`url(#gridRectMarkerMask${s.globals.cuid})`,shape:r.shape,index:e,"default-marker-size":n}),t.add(c),h.push(c)}),h}getMarkerConfig({cssClass:t,seriesIndex:e,dataPointIndex:i=null,radius:s=null,size:a=null,strokeWidth:r=null}){const n=this.w,o=this.getMarkerStyle(e);let l=null===a?n.globals.markers.size[e]:a;const h=n.config.markers;return null!==i&&h.discrete.length&&h.discrete.map(t=>{t.seriesIndex===e&&t.dataPointIndex===i&&(void 0!==t.strokeColor&&(o.pointStrokeColor=t.strokeColor),void 0!==t.fillColor&&(o.pointFillColor=t.fillColor),void 0!==t.size&&(l=t.size),void 0!==t.shape&&(o.pointShape=t.shape))}),{pSize:null===s?l:s,pRadius:null!==s?s:h.radius,pointStrokeWidth:null!==r?r:Array.isArray(h.strokeWidth)?h.strokeWidth[e]:h.strokeWidth,pointStrokeColor:o.pointStrokeColor,pointFillColor:o.pointFillColor,shape:o.pointShape||(Array.isArray(h.shape)?h.shape[e]:h.shape),class:t,pointStrokeOpacity:Array.isArray(h.strokeOpacity)?h.strokeOpacity[e]:h.strokeOpacity,pointStrokeDashArray:Array.isArray(h.strokeDashArray)?h.strokeDashArray[e]:h.strokeDashArray,pointFillOpacity:Array.isArray(h.fillOpacity)?h.fillOpacity[e]:h.fillOpacity,seriesIndex:e}}setupMarkerDelegation(t){const e=this.w,i=".apexcharts-marker";this._graphics.setupEventDelegation(t,i),t.node.addEventListener("click",s=>{if(e.config.markers.onClick){It._findDelegateTarget(s.target,t.node,i)&&e.config.markers.onClick(s)}}),t.node.addEventListener("dblclick",s=>{if(e.config.markers.onDblClick){It._findDelegateTarget(s.target,t.node,i)&&e.config.markers.onDblClick(s)}}),t.node.addEventListener("touchstart",e=>{const s=It._findDelegateTarget(e.target,t.node,i);s&&s.instance&&this._graphics.pathMouseDown(s.instance,e)},{passive:!0})}getMarkerStyle(t){const e=this.w,i=e.globals.markers.colors,s=e.config.markers.strokeColor||e.config.markers.strokeColors;return{pointStrokeColor:Array.isArray(s)?s[t]:s,pointFillColor:Array.isArray(i)?i[t]:i}}}class Ot{constructor(t,e){this.ctx=e,this.w=t,this.initialAnim=this.w.config.chart.animations.enabled,this.anim=new Ct(this.w),this.filters=new Mt(this.w),this.fill=new Rt(this.w),this.markers=new Nt(this.w,this.ctx),this.graphics=new It(this.w),this._elPointsWrap=null,this._elPointsWrapParent=null,this._perSeries=null}draw(t,e,i){const s=this.w,a=this.graphics,r=Xt(this.ctx,a),n=i.realIndex,o=i.pointsPos,l=i.zRatio,h=i.elParent;let c=this._elPointsWrap;if(c&&this._elPointsWrapParent===h||(c=r.group({class:`apexcharts-series-markers apexcharts-series-${s.config.chart.type}`}),c.attr("clip-path",`url(#gridRectMarkerMask${s.globals.cuid})`),this.markers.setupMarkerDelegation(c),h.add(c),this._elPointsWrap=c,this._elPointsWrapParent=h,this._perSeries=this._buildPerSeriesCache(n,r)),Array.isArray(o.x))for(let t=0;tt.maxBubbleRadius&&(h=t.maxBubbleRadius)}const d=o.x[t],p=o.y[t];if(h=h||0,null!==p&&void 0!==s.seriesData.series[n][i]||(a=!1),a){const t=this.drawPoint(d,p,h,n,i,e);c.add(t),"canvas"===r.kind&&(void 0===s.globals.pointsArray[n]&&(s.globals.pointsArray[n]=[]),s.globals.pointsArray[n][i]=[d,p])}}}_buildPerSeriesCache(t,e){var i;const s=this.w;return{realIndex:t,emit:e,isBubble:"bubble"===s.config.chart.type||s.globals.comboCharts&&s.config.series[t]&&"bubble"===s.config.series[t].type,canCacheConfig:!s.config.markers.discrete.length,markerConfig:null,fillCacheable:void 0,fillCircle:void 0,dropShadowEnabled:s.config.chart.dropShadow.enabled,doInitialAnim:this.initialAnim&&!s.globals.dataChanged&&!s.globals.resized,jitter:null==(i=s.config.plotOptions.scatter)?void 0:i.jitter,anim:null}}drawPoint(t,e,i,s,a,r){var n;const o=this.w,l=s,h=this.anim,c=this.filters,d=this.fill,p=this.markers;let u=this._perSeries;u&&u.realIndex===s||(u=this._perSeries=this._buildPerSeriesCache(s,Xt(this.ctx,this.graphics)));const g=u.emit;let f;u.canCacheConfig?(u.markerConfig||(u.markerConfig=p.getMarkerConfig({cssClass:"apexcharts-marker",seriesIndex:l,dataPointIndex:a,radius:u.isBubble?i:null})),f=u.markerConfig,u.isBubble&&(f.pSize=i,f.pRadius=i)):f=p.getMarkerConfig({cssClass:"apexcharts-marker",seriesIndex:l,dataPointIndex:a,radius:u.isBubble?i:null});const x=o.config.series[l].data[a];let m;void 0!==u.fillCircle?m=u.fillCircle:(m=d.fillPath({seriesNumber:s,dataPointIndex:a,color:f.pointFillColor,patternUnits:"objectBoundingBox",value:o.seriesData.series[s][r]}),void 0===u.fillCacheable&&(u.fillCacheable=u.canCacheConfig&&"solid"===d.getFillType(s)&&"string"==typeof f.pointFillColor&&!!f.pointFillColor),u.fillCacheable&&!(null==x?void 0:x.fillColor)&&(u.fillCircle=m));const b=g.drawMarker(t,e,f);(null==x?void 0:x.fillColor)&&(m=x.fillColor);const y=u.jitter;if((null==y?void 0:y.enabled)&&y.distributed&&o.globals.colors.length){const t=Math.round(null==(n=o.seriesData.seriesX[s])?void 0:n[a]);isNaN(t)||(m=o.globals.colors[t%o.globals.colors.length])}if(b.attr({fill:m}),u.dropShadowEnabled){const t=o.config.chart.dropShadow;c.dropShadow(b,t,s)}if(u.doInitialAnim){if(!u.anim){const t=o.config.chart.animations,e=o.globals.dataPoints||1,i=t.animateGradually,s=i&&!1!==i.enabled;u.anim={popSpeed:t.speed,baseDelay:s?Math.min(20,.5*t.speed/Math.max(1,e)):0}}const t=St({style:u.anim.baseDelay>0?"sequential":"none",index:a,baseDelay:u.anim.baseDelay});h.animatePop(b,{speed:u.anim.popSpeed,delay:t,onComplete:()=>h.animationCompleted(b)})}else o.globals.animationEnded=!0;return b.attr({rel:a,j:a,index:s,"default-marker-size":f.pSize}),c.setSelectionFilter(b,s,a),b}centerTextInBubble(t){const e=this.w;return{y:t+=parseInt(e.config.dataLabels.style.fontSize,10)/4}}}const Yt=(t,e,i,s)=>{if("function"!=typeof t)return t;const a=t({series:e.seriesData.series,seriesIndex:i,dataPointIndex:s,w:e});return Number.isFinite(a)?a:0};class Wt{constructor(t,e=null){this.w=t,this.ctx=e}dataLabelsCorrection(t,e,i,s,a,r,n){const o=this.w;let l=!1;const h=new It(this.w).getTextRects(i,n),c=h.width,d=h.height;e<0&&(e=0),e>o.layout.gridHeight+d&&(e=o.layout.gridHeight+d/2),void 0===o.globals.dataLabelsRects[s]&&(o.globals.dataLabelsRects[s]=[]),o.globals.dataLabelsRects[s].push({x:t,y:e,width:c,height:d});const p=o.globals.dataLabelsRects[s].length-2,u=void 0!==o.globals.lastDrawnDataLabelsIndexes[s]?o.globals.lastDrawnDataLabelsIndexes[s][o.globals.lastDrawnDataLabelsIndexes[s].length-1]:0;if(void 0!==o.globals.dataLabelsRects[s][p]){const i=o.globals.dataLabelsRects[s][u];(t>i.x+i.width||e>i.y+i.height||e+dn.config.dataLabels.formatter(t,{seriesIndex:i,dataPointIndex:d,w:n});if("bubble"===n.config.chart.type){s=n.seriesData.seriesZ[i][d],r=l(s),c=e.y[o];c=new Ot(this.w,this.ctx).centerTextInBubble(c).y}else void 0!==s&&(r=l(s));let u=n.config.dataLabels.textAnchor;n.globals.isSlopeChart&&(u=0===d?"end":d===n.config.series[i].data.length-1?"start":"middle"),this.plotDataLabelsText({x:h,y:c,text:r,i:i,j:d,parent:p,offsetCorrection:!0,dataLabelsConfig:n.config.dataLabels,textAnchor:u})}return p}plotDataLabelsText(t){const e=this.w,i=new It(this.w);let{x:s,y:a,i:r,j:n,text:o,textAnchor:l,fontSize:h,parent:c,dataLabelsConfig:d,color:p,alwaysDrawDataLabel:u,offsetCorrection:g,className:f,seriesIndex:x=r,dataPointIndex:m=n}=t,b=null;if(!Tt(e,"dataLabels.enabledOnSeries",r,!Array.isArray(e.config.dataLabels.enabledOnSeries)||e.config.dataLabels.enabledOnSeries.indexOf(r)>=0))return b;let y={x:s,y:a,drawnextLabel:!0,textRects:null};if(g&&(y=this.dataLabelsCorrection(s,a,o,r,n,u,parseInt(d.style.fontSize,10).toString())),e.interact.zoomed||(s=y.x,a=y.y),y.textRects){const t=e.globals.barPadForNumericAxis||0;(s<-(t+20)-y.textRects.width||s>e.layout.gridWidth+y.textRects.width+t+30)&&(o="")}let w=e.globals.dataLabels.style.colors[r];(("bar"===e.config.chart.type||"rangeBar"===e.config.chart.type)&&e.config.plotOptions.bar.distributed||e.config.dataLabels.distributed)&&(w=e.globals.dataLabels.style.colors[n]),"function"==typeof w&&(w=w({series:e.seriesData.series,seriesIndex:r,dataPointIndex:n,w:e})),p&&(w=p);const v="bar"===e.config.chart.type||"rangeBar"===e.config.chart.type,A=v?0:Yt(d.offsetX,e,x,m);let S=A;const C=v?0:Yt(d.offsetY,e,x,m);if(e.globals.isSlopeChart&&(0!==n&&(S=-2*A+5),0!==n&&n!==e.config.series[r].data.length-1&&(S=0)),y.drawnextLabel){if("middle"===l&&s===e.layout.gridWidth&&(l="end"),b=i.drawText({x:s+S,y:a+C,foreColor:w,textAnchor:l||d.textAnchor,text:o,fontSize:h||d.style.fontSize,fontFamily:d.style.fontFamily,fontWeight:d.style.fontWeight||"normal"}),b.attr({class:f||"apexcharts-datalabel",cx:s,cy:a}),d.dropShadow.enabled){const t=d.dropShadow;new Mt(this.w).dropShadow(b,t)}c.add(b),vt(b,s,e),void 0===e.globals.lastDrawnDataLabelsIndexes[r]&&(e.globals.lastDrawnDataLabelsIndexes[r]=[]),e.globals.lastDrawnDataLabelsIndexes[r].push(n)}return b}addBackgroundToDataLabel(t,e){const i=this.w,s=i.config.dataLabels.background,a=s.padding,r=s.padding/2,n=e.width,o=e.height,l=new It(this.w).drawRect(e.x-a,e.y-r/2,n+2*a,o+r,s.borderRadius,"transparent"!==i.config.chart.background&&i.config.chart.background?i.config.chart.background:"#fff",s.opacity,s.borderWidth,s.borderColor);if(s.dropShadow.enabled){new Mt(this.w).dropShadow(l,s.dropShadow)}return l}dataLabelsBackground(){var t;const e=this.w;if("bubble"===e.config.chart.type)return;const i=e.dom.baseEl.querySelectorAll(".apexcharts-datalabels text");for(let s=0;s0?(i=e[s].position,h=e[s].value):"datetime"===o.config.xaxis.type&&void 0===d&&(h=""),void 0===h&&(h=""),h=Array.isArray(h)?h:h.toString();const g=new It(this.w);let f={};f=o.layout.rotateXLabels&&n?g.getTextRects(h,parseInt(r,10).toString(),null,`rotate(${o.config.xaxis.labels.rotate} 0 0)`,!1):g.getTextRects(h,parseInt(r,10).toString());const x=!o.config.xaxis.labels.showDuplicates&&this.timeScale;return!Array.isArray(h)&&("NaN"===String(h)||a.indexOf(h)>=0&&x)&&(h=""),{x:i,text:h,textRect:f}}checkLabelBasedOnTickamount(t,e,i){const s=this.w;let a=s.config.xaxis.tickAmount;if("dataPoints"===a&&(a=Math.round(s.layout.gridWidth/120)),a>i)return e;return t%Math.round(i/(a+1))===0||(e.text=""),e}checkForOverflowingLabels(t,e,i,s,a){const r=this.w;if(0===t&&r.globals.skipFirstTimelinelabel&&(e.text=""),t===i-1&&r.globals.skipLastTimelinelabel&&(e.text=""),r.config.xaxis.labels.hideOverlappingLabels&&s.length>0){const t=a[a.length-1];if(r.config.xaxis.labels.trim&&"datetime"!==r.config.xaxis.type)return e;e.x-1===e.collapsedSeriesIndices.indexOf(t))}translateYAxisIndex(t){const e=this.w,i=e.globals,s=e.config.yaxis;return e.seriesData.series.length>s.length||s.some(t=>Array.isArray(t.seriesName))?t:i.seriesYAxisReverseMap[t]}isYAxisHidden(t){const e=this.w,i=e.config.yaxis[t];if(!i.show||this.yAxisAllSeriesCollapsed(t))return!0;if(!i.showForNullSeries){const i=e.globals.seriesYAxisMap[t],s=new H(this.w);return i.every(t=>s.isSeriesNull(t))}return!1}getYAxisForeColor(t,e){var i;const s=this.w;return Array.isArray(t)&&s.globals.yAxisScale[e]&&(null==(i=this.theme)||i.pushExtraColors(t,s.globals.yAxisScale[e].result.length,!1)),t}drawYAxisTicks(t,e,i,s,a,r,n){const o=this.w,l=new It(this.w);let h=o.layout.translateY+o.config.yaxis[a].labels.offsetY;if(o.globals.isBarHorizontal?h=0:"heatmap"===o.config.chart.type&&(h+=r/2),s.show&&e>0){!0===o.config.yaxis[a].opposite&&(t+=s.width);for(let a=e;a>=0;a--){const e=l.drawLine(t+i.offsetX-s.width+s.offsetX,h+s.offsetY,t+i.offsetX+s.offsetX,h+s.offsetY,s.color);n.add(e),h+=r}}}}class jt{constructor(t,e,i){this.w=t,this.ctx=e,this.elgrid=i,this.axesUtils=new $t(t,{theme:e.theme,timeScale:e.timeScale}),this.xaxisLabels=t.labelData.labels.slice(),t.labelData.timescaleLabels.length>0&&!t.globals.isBarHorizontal&&(this.xaxisLabels=t.labelData.timescaleLabels.slice()),t.config.xaxis.overwriteCategories&&(this.xaxisLabels=t.config.xaxis.overwriteCategories),this.drawnLabels=[],this.drawnLabelsRects=[],"top"===t.config.xaxis.position?this.offY=0:this.offY=t.layout.gridHeight,this.offY=this.offY+t.config.xaxis.axisBorder.offsetY,this.isCategoryBarHorizontal="bar"===t.config.chart.type&&t.config.plotOptions.bar.horizontal,this.xaxisFontSize=t.config.xaxis.labels.style.fontSize,this.xaxisFontFamily=t.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=t.config.xaxis.labels.style.colors,this.xaxisBorderWidth=t.config.xaxis.axisBorder.width,this.isCategoryBarHorizontal&&(this.xaxisBorderWidth=t.config.yaxis[0].axisBorder.width.toString()),String(this.xaxisBorderWidth).indexOf("%")>-1?this.xaxisBorderWidth=t.layout.gridWidth*parseInt(this.xaxisBorderWidth,10)/100:this.xaxisBorderWidth=parseInt(this.xaxisBorderWidth,10),this.xaxisBorderHeight=t.config.xaxis.axisBorder.height,this.yaxis=t.config.yaxis[0]}drawXaxis(){const t=this.w,e=new It(this.w),i=e.group({class:"apexcharts-xaxis",transform:`translate(${t.config.xaxis.offsetX}, ${t.config.xaxis.offsetY})`}),s=e.group({class:"apexcharts-xaxis-texts-g",transform:`translate(${t.layout.translateXAxisX}, ${t.layout.translateXAxisY})`});i.add(s);let a=[];for(let t=0;te),t.labelData.hasXaxisGroups){const i=t.labelData.groups;a=[];for(let t=0;ti[t].cols*e,r)}if(void 0!==t.config.xaxis.title.text){const s=e.group({class:"apexcharts-xaxis-title"}),a=e.drawText({x:t.layout.gridWidth/2+t.config.xaxis.title.offsetX,y:this.offY+parseFloat(this.xaxisFontSize)+("bottom"===t.config.xaxis.position?t.layout.xAxisLabelsHeight:-t.layout.xAxisLabelsHeight-10)+t.config.xaxis.title.offsetY,text:t.config.xaxis.title.text,textAnchor:"middle",fontSize:t.config.xaxis.title.style.fontSize,fontFamily:t.config.xaxis.title.style.fontFamily,fontWeight:t.config.xaxis.title.style.fontWeight,foreColor:t.config.xaxis.title.style.color,cssClass:"apexcharts-xaxis-title-text "+t.config.xaxis.title.style.cssClass});s.add(a),i.add(s)}if(t.config.xaxis.axisBorder.show){const s=t.globals.barPadForNumericAxis,a=e.drawLine(t.globals.padHorizontal+t.config.xaxis.axisBorder.offsetX-s,this.offY,this.xaxisBorderWidth+s,this.offY,t.config.xaxis.axisBorder.color,0,this.xaxisBorderHeight);this.elgrid&&this.elgrid.elGridBorders&&t.config.grid.show?this.elgrid.elGridBorders.add(a):i.add(a)}return i}drawXAxisLabelAndGroup(t,e,i,s,a,r,n={}){var o,l;const h=[],c=[],d=this.w,p=n.xaxisFontSize||this.xaxisFontSize,u=n.xaxisFontFamily||this.xaxisFontFamily,g=n.xaxisForeColors||this.xaxisForeColors,f=n.fontWeight||d.config.xaxis.labels.style.fontWeight,x=n.cssClass||d.config.xaxis.labels.style.cssClass;let m,y=d.globals.padHorizontal;const w=s.length;let v="category"===d.config.xaxis.type?d.globals.dataPoints:w;if(0===v&&w>v&&(v=w),a){const t=Math.max(Number(d.config.xaxis.tickAmount)||1,v>1?v-1:v);m=d.layout.gridWidth/Math.min(t,w-1),y=y+r(0,m)/2+d.config.xaxis.labels.offsetX}else m=d.layout.gridWidth/v,y=y+r(0,m)+d.config.xaxis.labels.offsetX;for(let a=0;a<=w-1;a++){let n=y-r(a,m)/2+d.config.xaxis.labels.offsetX;0===a&&1===w&&m/2===y&&1===v&&(n=d.layout.gridWidth/2);let A=this.axesUtils.getLabel(s,d.labelData.timescaleLabels,n,a,h,p,t),S=28;d.layout.rotateXLabels&&t&&(S=22),d.config.xaxis.title.text&&"top"===d.config.xaxis.position&&(S+=parseFloat(d.config.xaxis.title.style.fontSize)+2),t||(S=S+parseFloat(p)+(d.layout.xAxisLabelsHeight-d.layout.xAxisGroupLabelsHeight)+(d.layout.rotateXLabels?10:0));A=void 0!==d.config.xaxis.tickAmount&&"dataPoints"!==d.config.xaxis.tickAmount&&"datetime"!==d.config.xaxis.type?this.axesUtils.checkLabelBasedOnTickamount(a,A,w):this.axesUtils.checkForOverflowingLabels(a,A,w,h,c);const C=()=>t&&d.config.xaxis.convertedCatToNumeric?g[d.globals.minX+a-1]:g[a],k=(null!=(l=null==(o=A.textRect)?void 0:o.width)?l:0)/2,_=A.x+k<0;if(d.config.xaxis.labels.show&&!_){const s=e.drawText({x:A.x,y:this.offY+d.config.xaxis.labels.offsetY+S-("top"===d.config.xaxis.position?d.layout.xAxisHeight+d.config.xaxis.axisTicks.height-2:0),text:A.text,textAnchor:"middle",fontWeight:f,fontSize:p,fontFamily:u,foreColor:Array.isArray(g)?C():g,isPlainText:!1,cssClass:(t?"apexcharts-xaxis-label ":"apexcharts-xaxis-group-label ")+x});if(i.add(s),s.on("click",t=>{if("function"==typeof d.config.chart.events.xAxisLabelClick){const e=Object.assign({},d,{labelIndex:a});d.config.chart.events.xAxisLabelClick(t,this.ctx,e)}}),t){const t=b.createElementNS($,"title");t.textContent=Array.isArray(A.text)?A.text.join(" "):A.text,s.node.appendChild(t),""!==A.text&&(h.push(A.text),c.push(A))}}aArray.isArray(d)?d[s]:d;let u=0;Array.isArray(a)&&(u=a.length/2*parseInt(c.style.fontSize,10));let g=c.offsetX-15,f="end";this.yaxis.opposite&&(f="start"),"left"===e.config.yaxis[0].labels.align?(g=c.offsetX,f="start"):"center"===e.config.yaxis[0].labels.align?(g=c.offsetX,f="middle"):"right"===e.config.yaxis[0].labels.align&&(f="end");const x=i.drawText({x:g,y:l+o+c.offsetY-u,text:a,textAnchor:f,foreColor:p(),fontSize:c.style.fontSize,fontFamily:c.style.fontFamily,fontWeight:c.style.fontWeight,isPlainText:!1,cssClass:"apexcharts-yaxis-label "+c.style.cssClass,maxWidth:c.maxWidth});r.add(x),x.on("click",t=>{if("function"==typeof e.config.chart.events.xAxisLabelClick){const i=Object.assign({},e,{labelIndex:s});e.config.chart.events.xAxisLabelClick(t,this.ctx,i)}});const m=b.createElementNS($,"title");if(m.textContent=Array.isArray(a)?a.join(" "):a,x.node.appendChild(m),0!==e.config.yaxis[t].labels.rotate){const s=i.rotateAroundCenter(x.node);x.node.setAttribute("transform",`rotate(${e.config.yaxis[t].labels.rotate} 0 ${s.y})`)}l+=o}if(void 0!==e.config.yaxis[0].title.text){const t=i.group({class:"apexcharts-yaxis-title apexcharts-xaxis-title-inversed",transform:"translate("+s+", 0)"}),r=i.drawText({x:e.config.yaxis[0].title.offsetX,y:e.layout.gridHeight/2+e.config.yaxis[0].title.offsetY,text:e.config.yaxis[0].title.text,textAnchor:"middle",foreColor:e.config.yaxis[0].title.style.color,fontSize:e.config.yaxis[0].title.style.fontSize,fontWeight:e.config.yaxis[0].title.style.fontWeight,fontFamily:e.config.yaxis[0].title.style.fontFamily,cssClass:"apexcharts-yaxis-title-text "+e.config.yaxis[0].title.style.cssClass});t.add(r),a.add(t)}let d=0;this.isCategoryBarHorizontal&&e.config.yaxis[0].opposite&&(d=e.layout.gridWidth);const p=e.config.xaxis.axisBorder;if(p.show){const t=i.drawLine(e.globals.padHorizontal+p.offsetX+d,1+p.offsetY,e.globals.padHorizontal+p.offsetX+d,e.layout.gridHeight+p.offsetY,p.color,0);this.elgrid&&this.elgrid.elGridBorders&&e.config.grid.show?this.elgrid.elGridBorders.add(t):a.add(t)}return e.config.yaxis[0].axisTicks.show&&this.axesUtils.drawYAxisTicks(d,n.length,e.config.yaxis[0].axisBorder,e.config.yaxis[0].axisTicks,0,o,a),a}drawXaxisTicks(t,e,i){const s=this.w,a=t;if(t<0||t-2>s.layout.gridWidth)return;const r=this.offY+s.config.xaxis.axisTicks.offsetY;if(e=e+r+s.config.xaxis.axisTicks.height,"top"===s.config.xaxis.position&&(e=r-s.config.xaxis.axisTicks.height),s.config.xaxis.axisTicks.show){const n=new It(this.w).drawLine(t+s.config.xaxis.axisTicks.offsetX,r+s.config.xaxis.offsetY,a+s.config.xaxis.axisTicks.offsetX,e+s.config.xaxis.offsetY,s.config.xaxis.axisTicks.color);i.add(n),n.node.classList.add("apexcharts-xaxis-tick")}}getXAxisTicksPositions(){const t=this.w,e=[],i=this.xaxisLabels.length;let s=t.globals.padHorizontal;if(t.labelData.timescaleLabels.length>0)for(let t=0;t{a.placeTextWithEllipsis(t,t.textContent,s.layout.xAxisLabelsHeight-("bottom"===s.config.legend.position?20:10))})}else{const t=s.layout.gridWidth/(s.labelData.labels.length+1);for(let e=0;e{a.placeTextWithEllipsis(e,e.textContent,t)})}}if(o.length>0){const r=o[o.length-1].getBBox(),n=o[0].getBBox();r.x<-20&&(null==(t=o[o.length-1].parentNode)||t.removeChild(o[o.length-1])),n.x+n.width>s.layout.gridWidth&&!s.globals.isBarHorizontal&&(null==(e=o[0].parentNode)||e.removeChild(o[0]));for(let t=0;t0&&(this.xaxisLabels=t.labelData.timescaleLabels.slice())}drawGridArea(t=null){const e=this.w,i=new It(this.w);t||(t=i.group({class:"apexcharts-grid"}));const s=i.drawLine(e.globals.padHorizontal,1,e.globals.padHorizontal,e.layout.gridHeight,"transparent"),a=i.drawLine(e.globals.padHorizontal,e.layout.gridHeight,e.layout.gridWidth,e.layout.gridHeight,"transparent");return t.add(a),t.add(s),t}drawGrid(){if(this.w.globals.axisCharts){const t=this.renderGrid();return this.drawGridArea(t.el),t}return null}createGridMask(){const t=this.w,e=t.globals,i=new It(this.w),s=Array.isArray(t.config.stroke.width)?Math.max(...t.config.stroke.width):t.config.stroke.width,a=t=>{const e=b.createElementNS($,"clipPath");return e.setAttribute("id",t),e};t.dom.elGridRectMask=a(`gridRectMask${e.cuid}`),t.dom.elGridRectBarMask=a(`gridRectBarMask${e.cuid}`),t.dom.elGridRectMarkerMask=a(`gridRectMarkerMask${e.cuid}`),t.dom.elForecastMask=a(`forecastMask${e.cuid}`),t.dom.elNonForecastMask=a(`nonForecastMask${e.cuid}`);let r=0,n=0;(["bar","rangeBar","candlestick","boxPlot","violin"].includes(t.config.chart.type)||t.globals.comboBarCount>0)&&t.axisFlags.isXNumeric&&!t.globals.isBarHorizontal&&(r=Math.max(t.layout.gridPad.left,e.barPadForNumericAxis),n=Math.max(t.layout.gridPad.right,e.barPadForNumericAxis)),t.dom.elGridRect=i.drawRect(-s/2-2,-s/2-2,t.layout.gridWidth+s+4,t.layout.gridHeight+s+4,0,"#fff"),t.dom.elGridRectBar=i.drawRect(-s/2-r-2,-s/2-2,t.layout.gridWidth+s+n+r+4,t.layout.gridHeight+s+4,0,"#fff");const o=t.globals.markers.largestSize;t.dom.elGridRectMarker=i.drawRect(Math.min(-s/2-r-2,-o),-o,t.layout.gridWidth+Math.max(s+n+r+4,2*o),t.layout.gridHeight+2*o,0,"#fff"),t.dom.elGridRectMask.appendChild(t.dom.elGridRect.node),t.dom.elGridRectBarMask.appendChild(t.dom.elGridRectBar.node),t.dom.elGridRectMarkerMask.appendChild(t.dom.elGridRectMarker.node);const l=t.dom.elDefs.node;l.appendChild(t.dom.elGridRectMask),l.appendChild(t.dom.elGridRectBarMask),l.appendChild(t.dom.elGridRectMarkerMask),l.appendChild(t.dom.elForecastMask),l.appendChild(t.dom.elNonForecastMask)}_drawGridLines({i:t,x1:e,y1:i,x2:s,y2:a,xCount:r,parent:n}){const o=this.w;if(!(0===t&&o.globals.skipFirstTimelinelabel||t===r-1&&o.globals.skipLastTimelinelabel&&!o.config.xaxis.labels.formatter||"radar"===o.config.chart.type)){o.config.grid.xaxis.lines.show&&this._drawGridLine({i:t,x1:e,y1:i,x2:s,y2:a,xCount:r,parent:n});let l=0;if(o.labelData.hasXaxisGroups&&"between"===o.config.xaxis.tickPlacement){const e=o.labelData.groups;if(e){let i=0;for(let s=0;i{for(let o=0;os.layout.gridWidth||this._drawGridLines({i:o,x1:i,y1:a,x2:r,y2:n,xCount:t,parent:this.elgridLinesV})},r=({xC:e,x1:i,y1:a,x2:r,y2:n})=>{for(let o=0;o0&&"datetime"!==s.config.xaxis.type&&(o=a.yAxisScale[n].result.length-1)),this._drawXYLines({xCount:o,tickAmount:l})):(o=l,l=a.xTickAmount,this._drawInvertedXYLines({xCount:o,tickAmount:l})),this.drawGridBands(o,l),{el:this.elg,elGridBorders:this.elGridBorders,xAxisTickWidth:s.layout.gridWidth/o}}drawGridBands(t,e){var i,s,a,r,n;const o=this.w,l=(t,i,s,a,r,n)=>{for(let l=0,h=0;l=o.config.grid[t].colors.length&&(h=0),this._drawGridBandRect({c:h,x1:s,y1:a,x2:r,y2:n,type:t}),a+=o.layout.gridHeight/e};if((null==(i=o.config.grid.row.colors)?void 0:i.length)>0&&l("row",e,0,0,o.layout.gridWidth,o.layout.gridHeight/e),(null==(s=o.config.grid.column.colors)?void 0:s.length)>0){let e=o.globals.isBarHorizontal||"on"!==o.config.xaxis.tickPlacement||"category"!==o.config.xaxis.type&&!o.config.xaxis.convertedCatToNumeric?t:t-1;o.axisFlags.isXNumeric&&(e=(null!=(r=null==(a=o.globals.xAxisScale)?void 0:a.result.length)?r:1)-1);let i=o.globals.padHorizontal;const s=0;let l=o.globals.padHorizontal+o.layout.gridWidth/e;const h=o.layout.gridHeight;for(let a=0,r=0;a=o.config.grid.column.colors.length&&(r=0),"datetime"===o.config.xaxis.type&&(i=this.xaxisLabels[a].position,l=((null==(n=this.xaxisLabels[a+1])?void 0:n.position)||o.layout.gridWidth)-this.xaxisLabels[a].position),this._drawGridBandRect({c:r,x1:i,y1:s,x2:l,y2:h,type:"column"}),i+=o.layout.gridWidth/e}}}class Vt{constructor(t){this.w=t,this.coreUtils=new H(this.w)}niceScale(t,e,i=0){const s=1e-11,a=this.w,r=a.globals;let n,o,l,h;r.isBarHorizontal?(n=a.config.xaxis,o=Math.max((r.svgWidth-100)/25,2)):(n=a.config.yaxis[i],o=Math.max((r.svgHeight-100)/15,2)),v.isNumber(o)||(o=10),l=void 0!==n.min&&null!==n.min,h=void 0!==n.max&&null!==n.max;let c=void 0!==n.stepSize&&null!==n.stepSize,d=void 0!==n.tickAmount&&null!==n.tickAmount,p=d?n.tickAmount:O[Math.min(Math.round(o/2),O.length-1)];if(r.isMultipleYAxis&&!d&&r.multiAxisTickAmount>0&&(p=r.multiAxisTickAmount,d=!0),p="dataPoints"===p?r.dataPoints-1:Math.abs(Math.round(p)),(t===Number.MIN_VALUE&&0===e||!v.isNumber(t)&&!v.isNumber(e)||t===Number.MIN_VALUE&&e===-Number.MAX_VALUE)&&(t=v.isNumber(n.min)?n.min:0,e=v.isNumber(n.max)?n.max:t+p,r.allSeriesCollapsed=!1),t>e){const i=e;e=t,t=i}else t===e&&(t=0===t?0:t-1,e=0===e?2:e+1);const u=[];p<1&&(p=1);let g=p,f=Math.abs(e-t);!l&&t>0&&t/f<.15&&(t=0,l=!0),!h&&e<0&&-e/f<.15&&(e=0,h=!0),f=Math.abs(e-t);let x=f/g,m=x;const b=Math.floor(Math.log10(m)),y=Math.pow(10,b);let w=Math.ceil(m/y);if(w=N[0===r.yValueDecimal?0:1][w],m=w*y,x=m,r.isBarHorizontal&&n.stepSize&&"datetime"!==n.type?(x=n.stepSize,c=!0):c&&(x=n.stepSize),c&&n.forceNiceScale){const t=Math.floor(Math.log10(x));x*=Math.pow(10,b-t)}if(l&&h){let t=f/g;if(d)if(c)if(0!=v.mod(f,x)){const e=v.getGCD(x,t);x=t/e<10?e:t}else 0==v.mod(x,t)?x=t:(t=x,d=!1);else x=t;else if(c)0==v.mod(f,x)?t=x:x=t;else if(0==v.mod(f,x))t=x;else{g=Math.ceil(f/x),t=f/g;const e=v.getGCD(f,x);f/eo&&(t=e-x*p,t+=x*Math.floor((i-t)/x))}else if(l)if(d)e=t+x*g;else{const i=e;e=x*Math.ceil(e/x),Math.abs(e-t)/v.getGCD(f,x)>o&&(e=t+x*p,e+=x*Math.ceil((i-e)/x))}}else if(r.isMultipleYAxis&&d){const i=x*Math.floor(t/x);let s=i+x*g;s0&&t16&&v.getPrimeFactors(g).length<2&&g++),!d&&n.forceNiceScale&&0===r.yValueDecimal&&g>f&&(g=f,x=Math.round(f/g)),g>o&&(!d&&!c||n.forceNiceScale)){const t=v.getPrimeFactors(g),e=t.length-1;let i=g;t:for(var A=0;A_);return{result:u,niceMin:u[0],niceMax:u[u.length-1]}}linearScale(t,e,i=10,s=0,a=void 0){const r=Math.abs(e-t);let n=[];if(t===e)return n=[t],{result:n,niceMin:n[0],niceMax:n[n.length-1]};"dataPoints"===(i=this._adjustTicksForSmallRange(i,s,r))&&(i=this.w.globals.dataPoints-1);const o=i;a||(a=r/o);if(0!==a&&isFinite(a)){const t=Math.floor(Math.log10(Math.abs(a))),e=Math.max(2,2-t),i=Math.pow(10,e);a=Math.round((a+Number.EPSILON)*i)/i}let l=i===Number.MAX_VALUE?5:o;i===Number.MAX_VALUE&&(a=1);let h=t;for(;l>=0;)n.push(h),h=v.preciseAddition(h,a),l-=1;return{result:n,niceMin:n[0],niceMax:n[n.length-1]}}_resolveLogTickAmount(t){let e=t.tickAmount;return"dataPoints"===e&&(e=this.w.globals.dataPoints-1),v.isNumber(e)&&e>=1?Number(e):null}_thinToTickAmount(t,e){if(null===e||!v.isNumber(e)||e<1)return t;const i=e+1;if(t.length<=i)return t;const s=t.length-1;let a=null;for(let t=1;t<=s;t++){if(s%t!==0)continue;const e=s/t+1;e>i||(null===a||e>a.count)&&(a={stride:t,count:e})}if(!a)return[t[0],t[t.length-1]];const r=[];for(let e=0;e=1,l=r.logarithmic&&(o||n>5);if(r.logarithmic&&!l&&(s.invalidLogScale=!0),l){s.allSeriesCollapsed=!1;const a=this._resolveLogTickAmount(r);s.yAxisScale[t]=r.forceNiceScale?this.logarithmicScaleNice(e,i,r.logBase,a):this.logarithmicScale(e,i,r.logBase,a)}else i!==-Number.MAX_VALUE&&v.isNumber(i)&&e!==Number.MAX_VALUE&&v.isNumber(e)?(s.allSeriesCollapsed=!1,s.yAxisScale[t]=this.niceScale(e,i,t)):s.yAxisScale[t]=this.niceScale(Number.MIN_VALUE,0,t)}setXScale(t,e){const i=this.w,s=i.globals;if(e!==-Number.MAX_VALUE&&v.isNumber(e)){const a=s.xTickAmount;s.xAxisScale=this.linearScale(t,e,a,0,void 0===i.config.xaxis.max?i.config.xaxis.stepSize:void 0)}else s.xAxisScale=this.linearScale(0,10,10);return s.xAxisScale}scaleMultipleYAxes(){const t=this.w.config,e=this.w.globals;this.coreUtils.setSeriesYAxisMappings();const i=e.seriesYAxisMap,s=e.minYArr,a=e.maxYArr,r=[],n=!e.isBarHorizontal;if(e.allSeriesCollapsed=!0,e.barGroups=[],i.forEach((i,o)=>{const l=[];if(i.forEach(e=>{var i;const s=null==(i=t.series[e])?void 0:i.group;l.indexOf(s)<0&&l.push(s)}),i.length>0){let h,c,d=Number.MAX_VALUE,p=-Number.MAX_VALUE,u=d,g=p;if(t.chart.stacked){const s=new Array(e.dataPoints).fill(0),a=[],r=[],n=[];l.forEach(()=>{a.push(s.map(()=>Number.MIN_VALUE)),r.push(s.map(()=>Number.MIN_VALUE)),n.push(s.map(()=>Number.MIN_VALUE))});for(let s=0;s{if(t.series[d].group===e)for(let t=0;t=0?r[i][t]+=e:n[i][t]+=e,a[i][t]+=e,u=Math.min(u,e),g=Math.max(g,e)}})),"bar"!==h&&"column"!==h||e.barGroups.push(c)}h||(h=t.chart.type),"bar"===h||"column"===h?l.forEach((t,e)=>{d=Math.min(d,Math.min.apply(null,n[e])),p=Math.max(p,Math.max.apply(null,r[e]))}):(l.forEach((t,e)=>{u=Math.min(u,Math.min.apply(null,a[e])),g=Math.max(g,Math.max.apply(null,a[e]))}),d=u,p=g),d===Number.MIN_VALUE&&p===Number.MIN_VALUE&&(p=-Number.MAX_VALUE)}else for(let t=0;ti.indexOf(t)===e);const f=t.yaxis[o];n&&!0===f.alignZero&&!f.logarithmic&&void 0===f.min&&void 0===f.max&&e.ignoreYAxisIndexes.indexOf(o)<0&&v.isNumber(d)&&v.isNumber(p)?r.push({ai:o,minY:d,maxY:p}):(this.setYScaleForIndex(o,d,p),i.forEach(t=>{s[t]=e.yAxisScale[o].niceMin,a[t]=e.yAxisScale[o].niceMax}))}else this.setYScaleForIndex(o,0,-Number.MAX_VALUE)}),r.length>=2){r.forEach(t=>{this.setYScaleForIndex(t.ai,t.minY,t.maxY),i[t.ai].forEach(i=>{s[i]=e.yAxisScale[t.ai].niceMin,a[i]=e.yAxisScale[t.ai].niceMax})});let t=0;r.forEach(i=>{const s=e.yAxisScale[i.ai],a=s.niceMax-s.niceMin;if(a>0){const e=-s.niceMin/a;e>t&&(t=e)}}),t>1&&(t=1),t<0&&(t=0);const n=t=>{if(t<=0)return 1;const e=Math.floor(Math.log10(t)),i=Math.pow(10,e),s=t/i;let a;return a=s<=1+1e-9?1:s<=2+1e-9?2:s<=2.5+1e-9?2.5:s<=5+1e-9?5:10,a*i};r.forEach(r=>{const o=e.yAxisScale[r.ai];if(!o.result||o.result.length<2)return;const l=o.niceMax-o.niceMin;if(l<=0)return;const h=-o.niceMin/l;if(Math.abs(h-t)<=1e-9)return;const c=ht&&t>1e-9;if(!c&&!d)return;const p=c?-t*o.niceMax/(1-t):o.niceMin,u=d?-o.niceMin*(1-t)/t:o.niceMax,g=u-p;if(g<=0)return;const f=Math.max(o.result.length,5),x=n(g/Math.max(f-1,1));if(x<=0)return;let m,b;if(c){m=Math.floor(p/x+1e-9)*x;const e=t>1e-9?m*(t-1)/t:o.niceMax,i=Math.max(e,o.niceMax);b=Math.ceil(i/x-1e-9)*x}else{b=Math.ceil(u/x-1e-9)*x;const e=t<1-1e-9?-t*b/(1-t):o.niceMin,i=Math.min(e,o.niceMin);m=Math.floor(i/x+1e-9)*x}o.result=[];for(let t=m;t<=b+1e-9*x;t=v.preciseAddition(t,x))o.result.push(v.stripNumber(t,7));o.niceMin=m,o.niceMax=b,i[r.ai].forEach(t=>{s[t]=o.niceMin,a[t]=o.niceMax})})}else if(1===r.length){const t=r[0];this.setYScaleForIndex(t.ai,t.minY,t.maxY),i[t.ai].forEach(i=>{s[i]=e.yAxisScale[t.ai].niceMin,a[i]=e.yAxisScale[t.ai].niceMax})}}}class Ut{constructor(t){this.w=t,this.scales=new Vt(this.w)}init(){this.setYRange(),this.setXRange(),this.setZRange()}_xPixelTolerance(t){const e=this.w.layout.gridWidth;if(!e||!t||!t.length)return 0;const i=this.w.config.xaxis,s="number"==typeof i.min?i.min:t[0],a="number"==typeof i.max?i.max:t[t.length-1];return a>s?(a-s)/e:0}_autoScaleYEnabled(){var t;const e=this.w.config,i=null==(t=this.w.globals.brushSource)?void 0:t.w.config.chart.brush;return!!(e.chart.zoom.enabled&&e.chart.zoom.autoScaleYaxis||(null==i?void 0:i.enabled)&&(null==i?void 0:i.autoScaleYaxis))}_autoScaleXBounds(t){const e=this.w.config.xaxis;if(!e.min&&!e.max)return null;const i=this._xPixelTolerance(this.w.seriesData.seriesX[t]);return{lo:e.min?e.min-i:-1/0,hi:e.max?e.max+i:1/0}}getMinYMaxY(t,e=Number.MAX_VALUE,i=-Number.MAX_VALUE,s=null){var a,r,n,o,l,h,c,d;const p=this.w.config,u=this.w.globals;let g=-Number.MAX_VALUE,f=Number.MIN_VALUE;null===s&&(s=t+1);const x=this.w.seriesData.series;let m=x,b=x;"candlestick"===p.chart.type?(m=this.w.candleData.seriesCandleL,b=this.w.candleData.seriesCandleH):"boxPlot"===p.chart.type?(m=this.w.candleData.seriesCandleO,b=this.w.candleData.seriesCandleC):"violin"===p.chart.type?(m=this.w.violinData.seriesViolinMin,b=this.w.violinData.seriesViolinMax):this.w.axisFlags.isRangeData&&(m=this.w.rangeData.seriesRangeStart,b=this.w.rangeData.seriesRangeEnd);let y=!1,w=!1;this.w.seriesData.seriesX.length>=s&&this._autoScaleYEnabled()&&!this._ignoreAutoScaleWindow&&(y=!0);for(let A=t;Avoid 0!==t).length),this.w.labelData.labels.length&&"datetime"!==p.xaxis.type&&0!==this.w.seriesData.series.reduce((t,e)=>t+e.length,0)&&(u.dataPoints=Math.max(u.dataPoints,this.w.labelData.labels.length));let s=0,S=x[A].length-1;if(y){const t=this.w.seriesData.seriesX[A],e=this._autoScaleXBounds(A);if(e&&p.xaxis.min)for(;ss&&t[S]>e.hi;S--);if(e&&t&&t.length){if(!(t[s]>=e.lo&&t[s]<=e.hi)){t[0]e.hi&&s>0?(S=s,s=S-1):(s=0,S=-1,w=!0)}}}if(m===x&&b===x&&"boxPlot"!==p.chart.type&&"candlestick"!==t&&"boxPlot"!==t&&"violin"!==t&&"rangeArea"!==t&&"rangeBar"!==t&&!(this.w.seriesData.seriesGoals[A]&&this.w.seriesData.seriesGoals[A].length)){const r=x[A],n=Math.min(S,r.length-1),o=null==(a=this.w.seriesData._parsedExtrema)?void 0:a[A];if(o&&o.ref===r&&o.len===r.length&&0===s&&n===r.length-1)o.maxY>g&&(g=o.maxY),o.lowestYu.yValueDecimal&&(u.yValueDecimal=o.yDec),o.hasNulls&&(u.hasNullValues=!0);else{let t=u.yValueDecimal,i=!1;for(let a=s;a<=n;a++){const s=r[a];if(null!==s&&"number"==typeof s&&s==s&&s!==1/0&&s!==-1/0){if(s>g&&(g=s),ss&&s<0&&(f=s),!Number.isInteger(s)){const e=s<0?-s:s;if(e>=1e-6&&e<1e21){const e=""+s,i=e.indexOf("."),a=-1===i?0:e.length-i-1;a>t&&(t=a)}else{const e=v.noExponents(s);v.isFloat(e)&&(t=Math.max(t,e.toString().split(".")[1].length))}}}else i=!0}u.yValueDecimal=t,i&&(u.hasNullValues=!0)}i=g,"bar"!==t&&"column"!==t||(f<0&&g<0&&(g=0,i=Math.max(i,0)),f===Number.MIN_VALUE&&(f=0,e=Math.min(e,0)));continue}for(let a=s;a<=S&&a{g=Math.max(g,t.value),e=Math.min(e,t.value)}),"boxPlot"===this.w.config.chart.type||"boxPlot"===t){const t=null==(h=null==(l=this.w.candleData.seriesBoxPoints)?void 0:l[A])?void 0:h[a];if(t)for(let i=0;i(null==(c=m[A])?void 0:c[a])&&(null==(d=m[A])?void 0:d[a])<0&&(f=m[A][a])}else u.hasNullValues=!0}"bar"!==t&&"column"!==t||(f<0&&g<0&&(g=0,i=Math.max(i,0)),f===Number.MIN_VALUE&&(f=0,e=Math.min(e,0)))}if("rangeBar"===p.chart.type&&this.w.rangeData.seriesRangeStart.length&&u.isBarHorizontal&&(f=e),"bar"===p.chart.type&&(f<0&&g<0&&(g=0),f===Number.MIN_VALUE&&(f=0)),w&&g===-Number.MAX_VALUE){this._ignoreAutoScaleWindow=!0;try{return this.getMinYMaxY(t,Number.MAX_VALUE,-Number.MAX_VALUE,s)}finally{this._ignoreAutoScaleWindow=!1}}return{minY:f,maxY:g,lowestY:e,highestY:i}}setYRange(){const t=this.w.globals,e=this.w.config;t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE;let i,s=Number.MAX_VALUE;if(t.isMultipleYAxis){s=Number.MAX_VALUE;for(let e=0;e{void 0!==e.max&&("number"==typeof e.max?t.maxYArr[i]=e.max:"function"==typeof e.max&&(t.maxYArr[i]=e.max(t.isMultipleYAxis?t.maxYArr[i]:t.maxY)),t.maxY=t.maxYArr[i]),void 0!==e.min&&("number"==typeof e.min?t.minYArr[i]=e.min:"function"==typeof e.min&&(t.minYArr[i]=e.min(t.isMultipleYAxis?t.minYArr[i]===Number.MIN_VALUE?0:t.minYArr[i]:t.minY)),t.minY=t.minYArr[i])}),t.isBarHorizontal){["min","max"].forEach(i=>{void 0!==e.xaxis[i]&&"number"==typeof e.xaxis[i]&&("min"===i?t.minY=e.xaxis[i]:t.maxY=e.xaxis[i])})}return t.isMultipleYAxis?(this.scales.scaleMultipleYAxes(),t.minY=s):(this.scales.setYScaleForIndex(0,t.minY,t.maxY),t.minY=t.yAxisScale[0].niceMin,t.maxY=t.yAxisScale[0].niceMax,t.minYArr[0]=t.minY,t.maxYArr[0]=t.maxY),t.barGroups=[],t.lineGroups=[],t.areaGroups=[],e.series.forEach(i=>{const s=i;switch(s.type||e.chart.type){case"bar":case"column":t.barGroups.push(s.group);break;case"line":t.lineGroups.push(s.group);break;case"area":t.areaGroups.push(s.group)}}),t.barGroups=t.barGroups.filter((t,e,i)=>i.indexOf(t)===e),t.lineGroups=t.lineGroups.filter((t,e,i)=>i.indexOf(t)===e),t.areaGroups=t.areaGroups.filter((t,e,i)=>i.indexOf(t)===e),{minY:t.minY,maxY:t.maxY,minYArr:t.minYArr,maxYArr:t.maxYArr,yAxisScale:t.yAxisScale}}setXRange(){const t=this.w.globals,e=this.w.config,i="numeric"===e.xaxis.type||"datetime"===e.xaxis.type||"category"===e.xaxis.type&&!this.w.axisFlags.noLabelsProvided||this.w.axisFlags.noLabelsProvided||this.w.axisFlags.isXNumeric,s=()=>{var e;let i=t.minX,s=t.maxX;for(let t=0;ts&&(s=r.maxX),r.minXs&&(s=e),eArray.isArray(e)?e.reduce((t,e)=>Math.max(t,String(e).length),t):t,0),n=t.dataPoints*r*a*.6<=t.svgWidth;("numeric"===e.xaxis.type||i&&n)&&t.dataPoints<30&&(s=t.dataPoints-1),s>t.dataPoints&&0!==t.dataPoints&&(s=t.dataPoints-1)}else if("dataPoints"===e.xaxis.tickAmount){if(this.w.seriesData.series.length>1&&(s=this.w.seriesData.series[t.maxValsInArrayIndex].length-1),this.w.axisFlags.isXNumeric){const e=Math.round(t.maxX-t.minX);e<30&&(s=e)}}else s=e.xaxis.tickAmount;if(t.xTickAmount=s,void 0!==e.xaxis.max&&"number"==typeof e.xaxis.max&&(t.maxX=e.xaxis.max),void 0!==e.xaxis.min&&"number"==typeof e.xaxis.min&&(t.minX=e.xaxis.min),void 0!==e.xaxis.range&&(t.minX=t.maxX-e.xaxis.range),t.minX!==Number.MAX_VALUE&&t.maxX!==-Number.MAX_VALUE)if(e.xaxis.convertedCatToNumeric&&!this.w.axisFlags.dataFormatXNumeric){const e=[];for(let i=t.minX-1;i0&&(t.xAxisScale=this.scales.linearScale(1,this.w.labelData.labels.length,s-1,0,e.xaxis.stepSize),this.w.seriesData.seriesX=this.w.labelData.labels.slice());i&&(this.w.labelData.labels=t.xAxisScale.result.slice())}return t.isBarHorizontal&&this.w.labelData.labels.length&&(t.xTickAmount=this.w.labelData.labels.length),this._handleSingleDataPoint(),this._getMinXDiff(),{minX:t.minX,maxX:t.maxX}}setZRange(){var t;const e=this.w.globals;if(!this.w.axisFlags.isDataXYZ)return;for(let t=0;te.maxZ&&(e.maxZ=i.maxZ)}_handleSingleDataPoint(){const t=this.w.globals,e=this.w.config;if(t.minX===t.maxX){const i=new A(this.w);if("datetime"===e.xaxis.type){const s=i.getDate(t.minX);e.xaxis.labels.datetimeUTC?s.setUTCDate(s.getUTCDate()-2):s.setDate(s.getDate()-2),t.minX=new Date(s).getTime();const a=i.getDate(t.maxX);e.xaxis.labels.datetimeUTC?a.setUTCDate(a.getUTCDate()+2):a.setDate(a.getDate()+2),t.maxX=new Date(a).getTime()}else("numeric"===e.xaxis.type||"category"===e.xaxis.type&&!this.w.axisFlags.noLabelsProvided)&&(t.minX=t.minX-2,t.initialMinX=t.minX,t.maxX=t.maxX+2,t.initialMaxX=t.maxX)}}_getMinXDiff(){const t=this.w.globals;this.w.axisFlags.isXNumeric&&this.w.seriesData.seriesX.forEach((e,i)=>{var s;if(e.length){1===e.length&&e.push(this.w.seriesData.seriesX[t.maxValsInArrayIndex][this.w.seriesData.seriesX[t.maxValsInArrayIndex].length-1]);const a=null==(s=this.w.seriesData._parsedExtrema)?void 0:s[i];if(a&&a.xNumeric&&a.xSorted&&a.xref===e&&a.len===e.length)return a.minXDiff0)it-e),o.forEach((e,i)=>{if(i>0){const s=e-o[i-1];s>0&&(t.minXDiff=Math.min(s,t.minXDiff))}}),1!==t.dataPoints&&t.minXDiff!==Number.MAX_VALUE||(t.minXDiff=.5)}})}_setStackedMinMax(){const t=this.w.globals,e=this._autoScaleYEnabled();if(!this.w.seriesData.series.length)return;let i=this.w.labelData.seriesGroups;i.length||(i=[this.w.seriesData.seriesNames.map(t=>t)]);const s={},a={};i.forEach(i=>{s[i]=[],a[i]=[];this.w.config.series.map((t,e)=>i.indexOf(this.w.seriesData.seriesNames[e])>-1?e:null).filter(t=>null!==t).forEach(r=>{var n,o,l,h;const c=e?this._autoScaleXBounds(r):null,d=this.w.seriesData.seriesX[r],p=!!(c&&d&&d.length);for(let e=0;ec.hi))continue;void 0===s[i][e]&&(s[i][e]=0,a[i][e]=0);(this.w.config.chart.stacked&&!t.comboCharts||this.w.config.chart.stacked&&t.comboCharts&&(!this.w.config.chart.stackOnlyBar||"bar"===(null==(o=null==(n=this.w.config.series)?void 0:n[r])?void 0:o.type)||"column"===(null==(h=null==(l=this.w.config.series)?void 0:l[r])?void 0:h.type)))&&null!==this.w.seriesData.series[r][e]&&v.isNumber(this.w.seriesData.series[r][e])&&(this.w.seriesData.series[r][e]>0?s[i][e]+=parseFloat(String(this.w.seriesData.series[r][e]))+1e-4:a[i][e]+=parseFloat(String(this.w.seriesData.series[r][e])))}})}),Object.entries(s).forEach(([e])=>{s[e].forEach((i,r)=>{t.maxY=Math.max(t.maxY,s[e][r]),t.minY=Math.min(t.minY,a[e][r])})})}}function qt(){return{palette1:["#008FFB","#00A86F","#CA8501","#FF4560","#846DD5"],palette2:["#6978CB","#039DE2","#49A84D","#B39105","#D68000"],palette3:["#209FCC","#648291","#D4526E","#0FA783","#A19285"],palette4:["#2FA59D","#73A20B","#099DE1","#FD5D5D","#648291"],palette5:["#2B908F","#F56566","#2EAB16","#FA4443","#1EA2BD"],palette6:["#449DD1","#F86624","#EA3A4A","#9C63D1","#899E2A"],palette7:["#DF475B","#1B998B","#7E75B7","#F46036","#B1911B"],palette8:["#9C63D1","#F86624","#B38F04","#EA3A4A","#2FA2B3"],palette9:["#98776F","#A19285","#A8705E","#BA6560","#A0927F"],palette10:["#C91EFF","#A94BFD","#6C6AFE","#2983FF","#009ED8"],cvdDeuteranopia:["#0072B2","#E69F00","#56B4E9","#009E73","#F0E442","#D55E00","#CC79A7"],cvdProtanopia:["#0077BB","#EE7733","#009988","#EE3377","#BBBBBB","#33BBEE","#CC3311"],cvdTritanopia:["#CC3311","#009988","#EE7733","#0077BB","#EE3377","#BBBBBB","#33BBEE"],highContrast:["#005A9C","#C00000","#007A33","#6C3483","#7B3F00","#0097A7","#4A235A"]}}class Zt{constructor(t,{theme:e=null,timeScale:i=null}={},s){this.w=t,this.elgrid=s,this.xaxisFontSize=t.config.xaxis.labels.style.fontSize,this.axisFontFamily=t.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=t.config.xaxis.labels.style.colors,this.isCategoryBarHorizontal="bar"===t.config.chart.type&&t.config.plotOptions.bar.horizontal,this.xAxisoffX="bottom"===t.config.xaxis.position?t.layout.gridHeight:0,this.drawnLabels=[],this.axesUtils=new $t(t,{theme:e,timeScale:i})}drawYaxis(t){const e=this.w,i=new It(this.w),s=e.config.yaxis[t].labels.style,{fontSize:a,fontFamily:r,fontWeight:n}=s,o=i.group({class:"apexcharts-yaxis",rel:t,transform:`translate(${e.globals.translateYAxisX[t]}, 0)`});if(this.axesUtils.isYAxisHidden(t))return o;const l=i.group({class:"apexcharts-yaxis-texts-g"});o.add(l);const h=e.globals.yAxisScale[t].result.length-1,c=e.layout.gridHeight/h,d=e.formatters.yLabelFormatters[t],p=this.axesUtils.checkForReversedLabels(t,e.globals.yAxisScale[t].result.slice());let u=1;if("heatmap"===e.config.chart.type&&!e.config.yaxis[t].labels.formatter){const t=parseInt(a,10)||11,i=Math.max(1,Math.floor(e.layout.gridHeight/(1.4*t))),s=h+1;s>i&&(u=Math.ceil(s/i))}if(e.config.yaxis[t].labels.show){let o=e.layout.translateY+e.config.yaxis[t].labels.offsetY;e.globals.isBarHorizontal?o=0:"heatmap"===e.config.chart.type&&(o-=c/2),o+=parseInt(a,10)/3;let g=null;for(let f=h;f>=0;f--){const h=u>1&&f%u!==0?"":d(p[f],f,e);let x=e.config.yaxis[t].labels.padding;e.config.yaxis[t].opposite&&0!==e.config.yaxis.length&&(x*=-1);const m=this.getTextAnchor(e.config.yaxis[t].labels.align,e.config.yaxis[t].opposite),b=this.axesUtils.getYAxisForeColor(s.colors,t),y=Array.isArray(b)?b[f]:b,w=Array.from(e.dom.baseEl.querySelectorAll(`.apexcharts-yaxis[rel='${t}'] .apexcharts-yaxis-label tspan`)).map(t=>t.textContent),v=i.drawText({x:x,y:o,text:w.includes(h)&&!e.config.yaxis[t].labels.showDuplicates?"":h,textAnchor:m,fontSize:a,fontFamily:r,fontWeight:n,maxWidth:e.config.yaxis[t].labels.maxWidth,foreColor:y,isPlainText:!1,cssClass:`apexcharts-yaxis-label ${s.cssClass}`});l.add(v),this.addTooltip(v,h),null===g&&(g=v),0!==e.config.yaxis[t].labels.rotate&&this.rotateLabel(i,v,g,e.config.yaxis[t].labels.rotate),o+=c}}return this.addYAxisTitle(i,o,t),this.addAxisBorder(i,o,t,h,c),o}getTextAnchor(t,e){return"left"===t?"start":"center"===t?"middle":"right"===t?"end":e?"start":"end"}addTooltip(t,e){const i=b.createElementNS($,"title");i.textContent=Array.isArray(e)?e.join(" "):e,t.node.appendChild(i)}rotateLabel(t,e,i,s){const a=t.rotateAroundCenter(i.node),r=t.rotateAroundCenter(e.node);e.node.setAttribute("transform",`rotate(${s} ${a.x} ${r.y})`)}addYAxisTitle(t,e,i){const s=this.w;if(void 0!==s.config.yaxis[i].title.text){const a=t.group({class:"apexcharts-yaxis-title"}),r=s.config.yaxis[i].opposite?s.globals.translateYAxisX[i]:0,n=t.drawText({x:r,y:s.layout.gridHeight/2+s.layout.translateY+s.config.yaxis[i].title.offsetY,text:s.config.yaxis[i].title.text,textAnchor:"end",foreColor:s.config.yaxis[i].title.style.color,fontSize:s.config.yaxis[i].title.style.fontSize,fontWeight:s.config.yaxis[i].title.style.fontWeight,fontFamily:s.config.yaxis[i].title.style.fontFamily,cssClass:`apexcharts-yaxis-title-text ${s.config.yaxis[i].title.style.cssClass}`});a.add(n),e.add(a)}}addAxisBorder(t,e,i,s,a){const r=this.w,n=r.config.yaxis[i].axisBorder;let o=31+n.offsetX;if(r.config.yaxis[i].opposite&&(o=-31-n.offsetX),n.show){const i=t.drawLine(o,r.layout.translateY+n.offsetY-2,o,r.layout.gridHeight+r.layout.translateY+n.offsetY+2,n.color,0,n.width);e.add(i)}r.config.yaxis[i].axisTicks.show&&this.axesUtils.drawYAxisTicks(o,s,n,r.config.yaxis[i].axisTicks,i,a,e)}drawYaxisInversed(t){const e=this.w,i=new It(this.w),s=i.group({class:"apexcharts-xaxis apexcharts-yaxis-inversed"}),a=i.group({class:"apexcharts-xaxis-texts-g",transform:`translate(${e.layout.translateXAxisX}, ${e.layout.translateXAxisY})`});s.add(a);let r=e.globals.yAxisScale[t].result.length-1;const n=e.layout.gridWidth/r+.1;let o=n+e.config.xaxis.labels.offsetX;const l=e.formatters.xLabelFormatter;let h=this.axesUtils.checkForReversedLabels(t,e.globals.yAxisScale[t].result.slice());const c=e.labelData.timescaleLabels;if(c.length>0&&(this.xaxisLabels=c.slice(),h=c.slice(),r=h.length),e.config.xaxis.labels.show)for(let s=c.length?0:r;c.length?s=0;c.length?s++:s--){let r=null==l?void 0:l(h[s],s,e),d=e.layout.gridWidth+e.globals.padHorizontal-(o-n+e.config.xaxis.labels.offsetX);if(c.length){const t=this.axesUtils.getLabel(h,c,d,s,this.drawnLabels,this.xaxisFontSize);d=t.x,r=t.text,this.drawnLabels.push(t.text),0===s&&e.globals.skipFirstTimelinelabel&&(r=""),s===h.length-1&&e.globals.skipLastTimelinelabel&&(r="")}const p=i.drawText({x:d,y:this.xAxisoffX+e.config.xaxis.labels.offsetY+30-("top"===e.config.xaxis.position?e.layout.xAxisHeight+e.config.xaxis.axisTicks.height-2:0),text:r,textAnchor:"middle",foreColor:Array.isArray(this.xaxisForeColors)?this.xaxisForeColors[t]:this.xaxisForeColors,fontSize:this.xaxisFontSize,fontFamily:this.axisFontFamily,fontWeight:e.config.xaxis.labels.style.fontWeight,isPlainText:!1,cssClass:`apexcharts-xaxis-label ${e.config.xaxis.labels.style.cssClass}`});a.add(p),this.addTooltip(p,r),o+=n}return this.inversedYAxisTitleText(s),this.inversedYAxisBorder(s),s}inversedYAxisBorder(t){const e=this.w,i=new It(this.w),s=e.config.xaxis.axisBorder;if(s.show){let a=0;"bar"===e.config.chart.type&&e.axisFlags.isXNumeric&&(a-=15);const r=i.drawLine(e.globals.padHorizontal+a+s.offsetX,this.xAxisoffX,e.layout.gridWidth,this.xAxisoffX,s.color,0,s.height);this.elgrid&&this.elgrid.elGridBorders&&e.config.grid.show?this.elgrid.elGridBorders.add(r):t.add(r)}}inversedYAxisTitleText(t){const e=this.w,i=new It(this.w);if(void 0!==e.config.xaxis.title.text){const s=i.group({class:"apexcharts-xaxis-title apexcharts-yaxis-title-inversed"}),a=i.drawText({x:e.layout.gridWidth/2+e.config.xaxis.title.offsetX,y:this.xAxisoffX+parseFloat(this.xaxisFontSize)+parseFloat(e.config.xaxis.title.style.fontSize)+e.config.xaxis.title.offsetY+20,text:e.config.xaxis.title.text,textAnchor:"middle",fontSize:e.config.xaxis.title.style.fontSize,fontFamily:e.config.xaxis.title.style.fontFamily,fontWeight:e.config.xaxis.title.style.fontWeight,foreColor:e.config.xaxis.title.style.color,cssClass:`apexcharts-xaxis-title-text ${e.config.xaxis.title.style.cssClass}`});s.add(a),t.add(s)}}yAxisTitleRotate(t,e){const i=this.w,s=new It(this.w),a=i.dom.baseEl.querySelector(`.apexcharts-yaxis[rel='${t}'] .apexcharts-yaxis-texts-g`),r=a?a.getBoundingClientRect():{width:0,height:0},n=i.dom.baseEl.querySelector(`.apexcharts-yaxis[rel='${t}'] .apexcharts-yaxis-title text`),o=n?n.getBoundingClientRect():{width:0,height:0};if(n){const a=this.xPaddingForYAxisTitle(t,r,o,e);n.setAttribute("x",String(a.xPos-(e?10:0)));const l=s.rotateAroundCenter(n);n.setAttribute("transform",`rotate(${e?-1*i.config.yaxis[t].title.rotate:i.config.yaxis[t].title.rotate} ${l.x} ${l.y})`)}}xPaddingForYAxisTitle(t,e,i,s){const a=this.w;let r=0,n=10;return void 0===a.config.yaxis[t].title.text||t<0?{xPos:r,padd:0}:(s?r=e.width+a.config.yaxis[t].title.offsetX+i.width/2+n/2:(r=-1*e.width+a.config.yaxis[t].title.offsetX+n/2+i.width/2,a.globals.isBarHorizontal&&(n=25,r=-1*e.width-a.config.yaxis[t].title.offsetX-n)),{xPos:r,padd:n})}setYAxisXPosition(t,e){const i=this.w;let s=0,a=0,r=18,n=1;i.config.yaxis.length>1&&(this.multipleYs=!0),i.config.yaxis.forEach((o,l)=>{const h=i.globals.ignoreYAxisIndexes.includes(l)||!o.show||o.floating||0===t[l].width,c=t[l].width+e[l].width;o.opposite?i.globals.isBarHorizontal?(a=i.layout.gridWidth+i.layout.translateX-1,i.globals.translateYAxisX[l]=a-o.labels.offsetX):(a=i.layout.gridWidth+i.layout.translateX+n,h||(n+=c+20),i.globals.translateYAxisX[l]=a-o.labels.offsetX+20):(s=i.layout.translateX-r,h||(r+=c+20),i.globals.translateYAxisX[l]=s+o.labels.offsetX)})}setYAxisTextAlignments(){const t=this.w;t.config.yaxis.forEach((e,i)=>{if(e&&!e.floating&&void 0!==e.labels.align){const s=t.dom.baseEl.querySelector(`.apexcharts-yaxis[rel='${i}'] .apexcharts-yaxis-texts-g`);if(!s)return;const a=Array.from(t.dom.baseEl.querySelectorAll(`.apexcharts-yaxis[rel='${i}'] .apexcharts-yaxis-label`)),r=s.getBoundingClientRect();a.forEach(t=>{t.setAttribute("text-anchor",e.labels.align)}),"left"!==e.labels.align||e.opposite?"center"===e.labels.align?s.setAttribute("transform",`translate(${r.width/2*(e.opposite?1:-1)}, 0)`):"right"===e.labels.align&&e.opposite&&s.setAttribute("transform",`translate(${r.width}, 0)`):s.setAttribute("transform",`translate(-${r.width}, 0)`)}})}}class Kt{constructor(t,e){this.w=t,this.ctx=e,this.documentEvent=this.documentEvent.bind(this)}addEventListener(t,e){const i=this.w;Object.prototype.hasOwnProperty.call(i.globals.events,t)?i.globals.events[t].push(e):i.globals.events[t]=[e]}removeEventListener(t,e){const i=this.w;if(!Object.prototype.hasOwnProperty.call(i.globals.events,t))return;const s=i.globals.events[t].indexOf(e);-1!==s&&i.globals.events[t].splice(s,1)}fireEvent(t,e){const i=this.w;if(!Object.prototype.hasOwnProperty.call(i.globals.events,t))return;e&&e.length||(e=[]);const s=i.globals.events[t],a=s.length;for(let t=0;t{null==i||i.addEventListener(s,i=>{const s=null===i.target.getAttribute("i")&&-1!==t.interact.capturedSeriesIndex?t.interact.capturedSeriesIndex:i.target.getAttribute("i"),a=null===i.target.getAttribute("j")&&-1!==t.interact.capturedDataPointIndex?t.interact.capturedDataPointIndex:i.target.getAttribute("j"),r=Object.assign({},t,{seriesIndex:t.globals.axisCharts?s:0,dataPointIndex:a});"keydown"===i.type?t.config.chart.accessibility.enabled&&t.config.chart.accessibility.keyboard.enabled&&(e.ctx.keyboardNavigation&&e.ctx.keyboardNavigation.handleKey(i),"function"==typeof t.config.chart.events.keyDown&&t.config.chart.events.keyDown(i,e,r),e.ctx.events.fireEvent("keydown",[i,e,r])):"keyup"===i.type?t.config.chart.accessibility.enabled&&t.config.chart.accessibility.keyboard.enabled&&("function"==typeof t.config.chart.events.keyUp&&t.config.chart.events.keyUp(i,e,r),e.ctx.events.fireEvent("keyup",[i,e,r])):"mousemove"===i.type||"touchmove"===i.type?"function"==typeof t.config.chart.events.mouseMove&&t.config.chart.events.mouseMove(i,e,r):"mouseleave"===i.type||"touchleave"===i.type?"function"==typeof t.config.chart.events.mouseLeave&&t.config.chart.events.mouseLeave(i,e,r):("mouseup"===i.type&&1===i.which||"touchend"===i.type)&&("function"==typeof t.config.chart.events.click&&t.config.chart.events.click(i,e,r),e.ctx.events.fireEvent("click",[i,e,r]))},{capture:!1,passive:!0})}),this.ctx.eventList.forEach(e=>{t.dom.baseEl.addEventListener(e,this.documentEvent,{passive:!0})}),this.ctx.core.setupBrushHandler()}documentEvent(t){const e=this.w,i=t.target.className;if("click"===t.type){const t=e.dom.baseEl.querySelector(".apexcharts-menu");t&&t.classList.contains("apexcharts-menu-open")&&"apexcharts-menu-icon"!==i&&t.classList.remove("apexcharts-menu-open")}e.interact.clientX="touchmove"===t.type?t.touches[0].clientX:t.clientX,e.interact.clientY="touchmove"===t.type?t.touches[0].clientY:t.clientY}}class Jt{constructor(t){this.w=t}setCurrentLocaleValues(t){let e=this.w.config.chart.locales;const i=d.getApex();i.chart&&i.chart.locales&&i.chart.locales.length>0&&(e=this.w.config.chart.locales.concat(i.chart.locales));const s=e.filter(e=>e.name===t)[0];if(!s)throw new Error("Wrong locale name provided. Please make sure you set the correct locale name in options");{const t=v.extend(C,s);this.w.globals.locale=t.options}}}class Qt{constructor(t,e){this.w=t,this.ctx=e}drawAxis(t,e){const i=this.w.globals,s=this.w.config,a=new jt(this.w,this.ctx,e),r=new Zt(this.w,{theme:this.ctx.theme,timeScale:this.ctx.timeScale},e);if(i.axisCharts&&"radar"!==t){let t,e;i.isBarHorizontal?(e=r.drawYaxisInversed(0),t=a.drawXaxisInversed(0),this.w.dom.elGraphical.add(t),this.w.dom.elGraphical.add(e)):(t=a.drawXaxis(),this.w.dom.elGraphical.add(t),s.yaxis.map((t,s)=>{if(-1===i.ignoreYAxisIndexes.indexOf(s)&&(e=r.drawYaxis(s),this.w.dom.Paper.add(e),"back"===this.w.config.grid.position)){const t=this.w.dom.Paper.children()[1];t&&(t.remove(),this.w.dom.Paper.add(t))}}))}}}class te{constructor(t){this.w=t}drawXCrosshairs(){const t=this.w;t.dom.elGraphical.node.querySelectorAll(":scope > .apexcharts-xcrosshairs").forEach(t=>t.remove());const e=new It(this.w),i=new Mt(this.w),s=t.config.xaxis.crosshairs.fill.gradient,a=t.config.xaxis.crosshairs.dropShadow,r=t.config.xaxis.crosshairs.fill.type,n=s.colorFrom,o=s.colorTo,l=s.opacityFrom,h=s.opacityTo,c=s.stops,d=a.enabled,p=a.left,u=a.top,g=a.blur,f=a.color,x=a.opacity;let m=t.config.xaxis.crosshairs.fill.color;if(t.config.xaxis.crosshairs.show){"gradient"===r&&(m=e.drawGradient("vertical",n,o,l,h,null,c,[]));let s=1===t.config.xaxis.crosshairs.width?e.drawLine(0,0,0,0):e.drawRect(),a=t.layout.gridHeight;(!v.isNumber(a)||a<0)&&(a=0);let b=t.config.xaxis.crosshairs.width;(!v.isNumber(b)||Number(b)<0)&&(b=0),s.attr({class:"apexcharts-xcrosshairs",x:0,y:0,y2:a,width:b,height:a,fill:m,filter:"none","fill-opacity":t.config.xaxis.crosshairs.opacity,stroke:t.config.xaxis.crosshairs.stroke.color,"stroke-width":t.config.xaxis.crosshairs.stroke.width,"stroke-dasharray":t.config.xaxis.crosshairs.stroke.dashArray}),d&&(s=i.dropShadow(s,{left:p,top:u,blur:g,color:f,opacity:x})),t.dom.elGraphical.add(s)}}drawYCrosshairs(){const t=this.w;t.dom.elGraphical.node.querySelectorAll(":scope > .apexcharts-ycrosshairs, :scope > .apexcharts-ycrosshairs-hidden").forEach(t=>t.remove());const e=new It(this.w),i=t.config.yaxis[0].crosshairs,s=t.globals.barPadForNumericAxis;if(t.config.yaxis[0].crosshairs.show){const a=e.drawLine(-s,0,t.layout.gridWidth+s,0,i.stroke.color,i.stroke.dashArray,i.stroke.width);a.attr({class:"apexcharts-ycrosshairs"}),t.dom.elGraphical.add(a)}const a=e.drawLine(-s,0,t.layout.gridWidth+s,0,i.stroke.color,0,0);a.attr({class:"apexcharts-ycrosshairs-hidden"}),t.dom.elGraphical.add(a)}}function ee(t,e){if(!v.isObject(t)||!v.isObject(e))return void 0!==e?e:t;const i=o({},t);for(const s of Object.keys(e)){const a=e[s];void 0!==a&&(v.isObject(a)&&v.isObject(t[s])?i[s]=ee(t[s],a):i[s]=a)}return i}class ie{constructor(t){this.w=t,this._activeBreakpoint=null}checkResponsiveConfig(t){const e=this.w,i=e.config;if(0===i.responsive.length)return;const s=i.responsive.slice();s.sort((t,e)=>t.breakpoint>e.breakpoint?1:e.breakpoint>t.breakpoint?-1:0).reverse();const a=new X({}),r=(t={})=>{var i;const r=s[0].breakpoint,n=d.isBrowser()?window.innerWidth>0?window.innerWidth:screen.width:0;if(n>r){if(null!==this._activeBreakpoint){if(!e.globals.initialConfig)return;const i=v.clone(e.globals.initialConfig);i.series=v.clone(e.config.series);const s=H.extendArrayProps(a,i,e);t=v.extend(s,t),this.overrideResponsiveOptions(t),this._activeBreakpoint=null}}else for(let r=0;ree(t,i[e]))})}this.overrideResponsiveOptions(t),this._activeBreakpoint=s[r].breakpoint}};if(t){let i=H.extendArrayProps(a,t,e);i=v.extend(e.config,i),i=v.extend(i,t),r(i)}else r({})}overrideResponsiveOptions(t){const e=new X(t).init({responsiveOverride:!0});this.w.config=e}}const se=/[+-]?(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?/gi;function ae(t,e){const{ax:i,bx:s,ay:a,by:r}=e,n=[],o=/([MmLlHhVvCcSsQqTtAaZz])([^MmLlHhVvCcSsQqTtAaZz]*)/g;let l;for(;null!==(l=o.exec(t));){const t=l[1].toUpperCase(),e=(l[2].match(se)||[]).map(parseFloat);if("Z"===t){n.push("z");continue}if("H"===t){for(const t of e)n.push(`H ${i*t+s}`);continue}if("V"===t){for(const t of e)n.push(`V ${a*t+r}`);continue}if("A"===t){for(let t=0;t+6"C"===t[0]?[Number(t[5]),Number(t[6])]:[Number(t[1]),Number(t[2])]);for(const t of o)if(!isFinite(t[0])||!isFinite(t[1]))return null;return{body:a,closing:r,segType:n,anchors:o}}function ne(t,e,i){return[t[0]+(e[0]-t[0])*i,t[1]+(e[1]-t[1])*i]}function oe(t,e,i){const s=t,a=[e[1],e[2]],r=[e[3],e[4]],n=[e[5],e[6]],o=ne(s,a,i),l=ne(a,r,i),h=ne(r,n,i),c=ne(o,l,i),d=ne(l,h,i),p=ne(c,d,i);return{first:["C",o[0],o[1],c[0],c[1],p[0],p[1]],second:["C",d[0],d[1],h[0],h[1],n[0],n[1]],mid:p}}function le(t,e,i){const s=[e[1],e[2]],a=ne(t,s,i);return{first:["L",a[0],a[1]],second:["L",s[0],s[1]],mid:a}}function he(t,e){const{body:i,closing:s,segType:a,anchors:r}=t,n=r.length,o=e.length,l=t=>"C"===a?["C",t[0],t[1],t[0],t[1],t[0],t[1]]:["L",t[0],t[1]],h=[["M",r[0][0],r[0][1]]];let c=0;for(;ch.push(t.slice())),h}function ce(t,e,i,s,a,r){const n=re(t,s,r);if(!n)return null;const o=re(e,a,r);if(!o)return null;if(n.segType!==o.segType)return null;if((n.closing||o.closing)&&(!n.closing||!o.closing||n.closing[0][0]!==o.closing[0][0]))return null;const l=i.map(t=>t.oldJ),h=i.map(t=>t.newJ);return{from:Z(he(n,l)),toInterp:Z(he(o,h))}}function de(t){var e;const i=t.config.chart.animations;if(!i||!1===i.enabled)return!1;if(!i.dynamicAnimation||!1===i.dynamicAnimation.enabled)return!1;const s=null!=(e=i.largeDatasetThreshold)?e:0;return!(s>0&&t.globals.dataPoints>s)&&!!(d.isBrowser()&&t.globals.dataChanged&&t.globals.shouldAnimate)}function pe(t,e,i){var s,a,r,n;if(null==(s=t.axisFlags)?void 0:s.isXNumeric){const s=null==(r=null==(a=t.seriesData)?void 0:a.seriesX)?void 0:r[e];if(s&&s.length&&null!=s[i])return"x:"+s[i]}const o=null==(n=t.globals.labels)?void 0:n[i];return null!=o&&""!==String(o)?"c:"+(Array.isArray(o)?o.join(" "):String(o)):"j:"+i}function ue(t){const e=new Map;return t.map(t=>{const i=e.get(t)||0;return e.set(t,i+1),0===i?t:`${t}#${i}`})}function ge(t,e,i=!1,s=!1){var a,r;if(!de(t))return null;const n=t.globals.prevStreamFrame;if(!n)return null;const o=null==(a=n.seriesY)?void 0:a[e],l=null==(r=t.seriesData.series)?void 0:r[e];if(!Array.isArray(o)||!Array.isArray(l))return null;if(!o.length||!l.length)return null;const h=ue(o.map((t,i)=>function(t,e,i){var s,a;if(t.isXNumeric){const a=null==(s=t.seriesX)?void 0:s[e];if(a&&a.length&&null!=a[i])return"x:"+a[i]}const r=null==(a=t.labels)?void 0:a[i];return null!=r&&""!==String(r)?"c:"+(Array.isArray(r)?r.join(" "):String(r)):"j:"+i}(n,e,i))),c=ue(l.map((i,s)=>pe(t,e,s))),d=function(t,e){const i=new Map;t.forEach((t,e)=>{i.has(t)||i.set(t,e)});const s=new Array(e.length),a=new Set;let r=-1,n=!0,o=t.length===e.length;e.forEach((t,e)=>{const l=i.has(t)&&!a.has(i.get(t))?i.get(t):-1;s[e]=l,-1!==l&&(a.add(l),l{if(t.globals.isDestroyed)return;const l=Math.max(0,Math.min(1,(o-r)/e));s(i(l),l),l<1?b.requestAnimationFrame(n):a&&a()};b.requestAnimationFrame(n)}function me(t,{elPointsMain:e,realIndex:i,speed:s}){var a,r,n,o;if(!(null==e?void 0:e.node))return!1;const l=ge(t,i,!0);if(!l)return!1;const h=t.globals.prevStreamFrame;if(!h)return!1;const c=null==(a=h.xPixels)?void 0:a[i],d=null==(r=h.yPixels)?void 0:r[i];if(!c||!d)return!1;const p=e.node.querySelectorAll(".apexcharts-marker");if(!p.length)return!1;const u=(null==(n=t.globals.seriesXvalues)?void 0:n[i])||[],g=(null==(o=t.globals.seriesYvalues)?void 0:o[i])||[],f=fe(t),x=Math.max(1,s||1);return e.node.classList.remove("apexcharts-element-hidden"),p.forEach(e=>{var s,a,r,n,o,p,m,b,y;const w=parseInt(null!=(a=null!=(s=e.getAttribute("j"))?s:e.getAttribute("rel"))?a:"",10);if(!isFinite(w)||w<0||w>=l.join.toOld.length)return;const v=l.join.toOld[w],A=null!=u[w]&&null!=g[w]?[u[w],g[w]]:null;if(-1===v||!A){const i=e.style;return i.opacity="0",void xe(t,x,f,t=>{i.opacity=String(t)},()=>{i.opacity=""})}const S=(null!=(r=c[v])?r:NaN)-A[0],C=(null!=(n=d[v])?n:NaN)-A[1];if(!isFinite(S)||!isFinite(C))return;const k=null!=(m=null==(p=null==(o=h.rPixels)?void 0:o[i])?void 0:p[v])?m:NaN,_=parseFloat(null!=(y=null!=(b=e.getAttribute("r"))?b:e.getAttribute("default-marker-size"))?y:""),M=isFinite(k)&&isFinite(_)&&_>0&&Math.abs(k-_)>.25;if(!(Math.abs(S)>=.5||Math.abs(C)>=.5)&&!M)return;const D=t=>{const i=S*(1-t),s=C*(1-t);if(M){const a=(k+(_-k)*t)/_;e.setAttribute("transform",`translate(${i+A[0]*(1-a)}, ${s+A[1]*(1-a)}) scale(${a})`)}else e.setAttribute("transform",`translate(${i}, ${s})`)};D(0),xe(t,x,f,D,()=>{e.removeAttribute("transform")})}),!0}function be(t,{type:e,realIndex:i,pathFromLine:s,pathFromArea:a,linePaths:r,areaPaths:n}){var o,l;const h=ge(t,i);if(!h)return null;const{join:c,oldKeys:d,newKeys:p}=h,u=t.globals.prevStreamFrame;if(!u)return null;const g=null==(o=u.seriesY)?void 0:o[i],f=null==(l=t.seriesData.series)?void 0:l[i];if(g.length<2||f.length<2)return null;if(g.some(t=>null===t)||f.some(t=>null===t))return null;const x=function(t,e){const i=new Set(t.exits),s=[];let a=0;for(let e=0;et&&t.d&&null!=t.key&&!o.has(t.key));if(!l.length)return;const h=new It(t),c=null==(n=t.globals.colors)?void 0:n[parseInt(String(i.realIndex),10)];l.forEach(i=>{let s=i.fill||c||"#c8c8c8";0===String(s).indexOf("url(")&&(s=c||"#c8c8c8");const n=h.drawPath({d:i.d,stroke:"none",strokeWidth:0,fill:s,fillOpacity:1,classes:"apexcharts-bar-ghost"}),o=n.node;o.setAttribute("pointer-events","none"),n.attr("clip-path",`url(#gridRectBarMask${t.globals.cuid})`),e.node.insertBefore(o,e.node.firstChild);const l=function(t){const e=/^M\s*([+-]?[\d.eE]+)[\s,]+([+-]?[\d.eE]+)/.exec(t||"");if(!e)return null;const i=parseFloat(e[1]),s=parseFloat(e[2]);return isFinite(i)&&isFinite(s)?{x:i,y:s}:null}(i.d);let d=a?"left center":"center bottom";try{const t=o.getBBox();l&&t&&(d=a?Math.abs(l.x-t.x)<=Math.abs(l.x-(t.x+t.width))?"left center":"right center":Math.abs(l.y-(t.y+t.height))<=Math.abs(l.y-t.y)?"center bottom":"center top")}catch(t){}const p=o.style;p.transformBox="fill-box",p.transformOrigin=d;const u=Math.max(1,r||1),g=performance.now(),f=e=>{if(t.globals.isDestroyed||!o.parentNode)return;const i=Math.max(0,Math.min(1,(e-g)/u)),s=1-Math.pow(1-i,3),r=1-s;p.transform=a?`scaleX(${r})`:`scaleY(${r})`,p.opacity=String(1-s),i<1?b.requestAnimationFrame(f):o.parentNode.removeChild(o)};b.requestAnimationFrame(f)})}function we(t,e,i){return[...t.querySelectorAll(e)].map(t=>{var e,s,a;return{text:t.textContent||"",display:null!=(a=null!=(s=null==(e=t.querySelector("tspan"))?void 0:e.textContent)?s:t.textContent)?a:"",pos:parseFloat(t.getAttribute(i)||""),transform:t.getAttribute("transform")}})}function ve(t,e,i){return[...t.querySelectorAll(e)].map(t=>parseFloat(t.getAttribute(i)||""))}const Ae=":not(.apexcharts-tick-ghost)",Se=`.apexcharts-xaxis-texts-g text:not(.apexcharts-xaxis-group-label)${Ae}`,Ce=`.apexcharts-yaxis-texts-g text${Ae}`,ke=`.apexcharts-gridlines-vertical line${Ae}`,_e=`.apexcharts-gridlines-horizontal line${Ae}`;function Me(t){var e,i;const s=t.globals;if(!(null==(e=t.axisFlags)?void 0:e.isXNumeric)||s.isBarHorizontal)return null;if(null==(i=t.config.xaxis)?void 0:i.reversed)return null;const a=s.minX,r=s.maxX,n=t.layout.gridWidth;return isFinite(a)&&isFinite(r)&&r>a&&n>0?{min:a,max:r,width:n}:null}function De(t,e){var i;const s=t.globals;if(s.isBarHorizontal)return null;if(!Array.isArray(t.config.yaxis)||1!==t.config.yaxis.length)return null;if(null==(i=t.config.yaxis[0])?void 0:i.logarithmic)return null;const a=s.minY,r=s.maxY;if(!(isFinite(a)&&isFinite(r)&&r>a))return null;const n=e.map(t=>t.pos).filter(t=>isFinite(t));return n.length<2?null:{min:a,max:r,pLo:Math.max(...n),pHi:Math.min(...n)}}function Le(t,e){if(!t||!e)return null;const i=t.pHi-t.pLo,s=e.pHi-e.pLo,a=t.max-t.min,r=e.max-e.min;if(!(i&&s&&a>0&&r>0))return null;return{toNew:n=>e.pLo+((e=>t.min+(e-t.pLo)/i*a)(n)-e.min)/r*s,toOld:n=>t.pLo+((t=>e.min+(t-e.pLo)/s*r)(n)-t.min)/a*i}}function Pe(t,e,i,s){const a=e.style;a.opacity="0",xe(t,i,s,t=>{a.opacity=String(t)},()=>{a.opacity=""})}function Fe(t,e,i,s,a,r,n){i.forEach(t=>e.setAttribute(t,String(s))),xe(t,r,n,t=>{const r=String(s+(a-s)*t);i.forEach(t=>e.setAttribute(t,r))},()=>{i.forEach(t=>e.setAttribute(t,String(a)))})}function Ee(t,{template:e,display:i,attrs:s,from:a,to:r,duration:n,ease:o}){const l=e.parentNode;if(!l)return;const h=e.cloneNode(!0);if(h.classList.add("apexcharts-tick-ghost"),h.setAttribute("pointer-events","none"),h.removeAttribute("id"),void 0!==i){const t=h.querySelector("tspan");t?t.textContent=i:h.textContent=i;const e=h.querySelector("title");e&&(e.textContent=i)}s.forEach(t=>h.setAttribute(t,String(a)));const c=h.style;c.opacity="1",l.appendChild(h),xe(t,n,o,t=>{const e=String(a+(r-a)*t);s.forEach(t=>h.setAttribute(t,e)),c.opacity=String(1-t)},()=>{h.parentNode&&h.parentNode.removeChild(h)})}function Te(t,{newLabels:e,oldLabels:i,posAttr:s,newLines:a,oldLines:r,lineAttrs:n,duration:h,ease:c,project:d}){const p=new Map;i.forEach((t,e)=>{p.has(t.text)||p.set(t.text,l(o({},t),{i:e}))});const u=new Set,g=a.length===e.length,f=r.length===i.length,x=i.map(t=>t.pos).concat(e.map(t=>parseFloat(t.getAttribute(s)||""))).filter(t=>isFinite(t)),m=Math.min(...x),b=Math.max(...x),y=Math.max(40,.25*(b-m)),w=t=>Math.max(m-y,Math.min(b+y,t)),v=(e,i)=>{if(!e)return;const s=parseFloat(e.getAttribute(n[0])||""),a=r[i.i];isFinite(s)&&isFinite(a)&&Fe(t,e,n,a,s,h,c)};if(e.forEach((e,i)=>{const r=parseFloat(e.getAttribute(s)||""),o=p.get(e.textContent||""),l=g?a[i]:null;o&&u.add(o.i);const f=e.getAttribute("transform");if(o&&isFinite(o.pos)){if(isFinite(r)&&!(Math.abs(o.pos-r)<.5)){if(f||o.transform){const i=o.pos-r;if(isFinite(i)){const a=f||"";xe(t,h,c,t=>{const r=i*(1-t),n="x"===s?`translate(${r} 0)`:`translate(0 ${r})`;e.setAttribute("transform",`${n} ${a}`.trim())},()=>{a?e.setAttribute("transform",a):e.removeAttribute("transform")})}return void v(l,o)}Fe(t,e,[s],o.pos,r,h,c),v(l,o)}}else if(!o){if(d&&isFinite(r)&&!f){const i=isFinite(d.toOld(r))?w(d.toOld(r)):NaN;isFinite(i)&&Math.abs(i-r)>.5&&(Fe(t,e,[s],i,r,h,c),l&&Fe(t,l,n,i,r,h,c))}Pe(t,e,h,c),l&&Pe(t,l,h,c)}}),!d||!e.length)return;let A=0;i.forEach((i,o)=>{if(u.has(o))return;if(!isFinite(i.pos)||i.transform)return;if(A>=20)return;const l=d.toNew(i.pos);!isFinite(l)||Math.abs(l-i.pos)<.5||(A++,Ee(t,{template:e[0],display:i.display,attrs:[s],from:i.pos,to:w(l),duration:h,ease:c}),f&&a.length&&isFinite(r[o])&&Ee(t,{template:a[0],attrs:n,from:r[o],to:w(d.toNew(r[o])),duration:h,ease:c}))})}function Ie(t){const e=t.globals,i=e.prevChromeFrame;if(e.prevChromeFrame=null,!i||!e.axisCharts||!d.isBrowser())return;if(!de(t))return;if(!(t.seriesData.series||[]).some((e,i)=>null!==ge(t,i,!0,!0)))return;const s=t.dom.baseEl;if(!v.elementExists(s))return;const a=Math.max(1,t.config.chart.animations.dynamicAnimation.speed||1),r=fe(t);try{const e=[...s.querySelectorAll(Ce)],n=function(t,e){if(!t||!e)return null;const i=t.max-t.min,s=e.max-e.min;return i>0&&s>0&&t.width>0&&e.width>0?{toNew:a=>(t.min+a/t.width*i-e.min)/s*e.width,toOld:a=>(e.min+a/e.width*s-t.min)/i*t.width}:null}(i.xScale,Me(t)),o=Le(i.yAnchors,De(t,e.map(t=>({pos:parseFloat(t.getAttribute("y")||"")}))));Te(t,{newLabels:[...s.querySelectorAll(Se)],oldLabels:i.xLabels,posAttr:"x",newLines:[...s.querySelectorAll(ke)],oldLines:i.vGrid,lineAttrs:["x1","x2"],duration:a,ease:r,project:n}),Te(t,{newLabels:e,oldLabels:i.yLabels,posAttr:"y",newLines:[...s.querySelectorAll(_e)],oldLines:i.hGrid,lineAttrs:["y1","y2"],duration:a,ease:r,project:o})}catch(t){}}const Re=".apexcharts-data-labels[data\\:dlKey]",ze=".apexcharts-datalabel",Xe=".apexcharts-datalabel-total[data\\:dlTotalKey]";function Be(t){var e,i;const s=t.config.dataLabels;return!(!(null==(e=null==s?void 0:s.animate)?void 0:e.enabled)&&!(null==(i=null==s?void 0:s.countUp)?void 0:i.enabled))}function Ne(t){if(!isFinite(t))return 0;const e=String(Math.abs(t)),i=e.indexOf("e");if(-1!==i){const t=e.slice(0,i),s=parseInt(e.slice(i+1),10),a=t.indexOf("."),r=-1===a?0:t.length-a-1;return Math.min(6,Math.max(0,r-s))}const s=e.indexOf(".");return-1===s?0:Math.min(6,e.length-s-1)}function Oe(t,e){const i=t.querySelector("tspan");i?i.textContent=e:t.textContent=e}function Ye(t,{el:e,oldCx:i,oldCy:s,duration:a,ease:r,delay:n=0}){const o=e.hasAttribute("cx")?e:e.querySelector(ze);if(!o)return;const l=i-parseFloat(o.getAttribute("cx")||""),h=s-parseFloat(o.getAttribute("cy")||"");if(!isFinite(l)||!isFinite(h))return;if(Math.abs(l)+Math.abs(h)<=.5)return;const c=e.getAttribute("transform")||"",d=()=>xe(t,a,r,t=>{const i=1-t;e.setAttribute("transform",`translate(${l*i} ${h*i}) ${c}`.trim())},()=>{c?e.setAttribute("transform",c):e.removeAttribute("transform")});n>0?(e.setAttribute("transform",`translate(${l} ${h}) ${c}`.trim()),setTimeout(()=>{t.globals.isDestroyed||d()},n)):d()}function We(t,{el:e,from:i,to:s,formatter:a,fmtOpts:r,duration:n,ease:o,delay:l=0}){if(!isFinite(i)||!isFinite(s))return;if(Math.abs(s-i)<=1e-9)return;const h=Math.max(Ne(i),Ne(s)),c=t=>{const e=Number(t.toFixed(h));let i=e;if("function"==typeof a)try{i=a(e,r)}catch(t){i=e}return String(i)},d=()=>xe(t,n,o,t=>{Oe(e,c(i+(s-i)*t))},()=>{Oe(e,c(s))});l>0?(Oe(e,c(i)),setTimeout(()=>{t.globals.isDestroyed||d()},l)):d()}function He(t){var e,i;const s=t.globals,a=s.prevDataLabels;if(s.prevDataLabels=null,!a||!s.axisCharts||!d.isBrowser())return;if(!Be(t))return;if(!de(t))return;const r=t.dom.baseEl;if(!v.elementExists(r))return;const n=t.config.dataLabels,h=!!(null==(e=n.animate)?void 0:e.enabled),c=!!(null==(i=n.countUp)?void 0:i.enabled),p=n.formatter,u=Math.max(1,t.config.chart.animations.dynamicAnimation.speed||1),g=fe(t);try{r.querySelectorAll(Re).forEach(e=>{const i=e.getAttribute("data:dlKey");if(!i)return;const s=e.querySelector(ze);if(!s)return;const r=a.get(i),n=parseInt(e.getAttribute("data:dlDelay")||"0",10)||0;if(h&&(r&&isFinite(r.cx)&&isFinite(r.cy)?Ye(t,{el:e,oldCx:r.cx,oldCy:r.cy,duration:u,ease:g,delay:n}):r||function(t,e,i,s){const a=e.style;a.opacity="0",xe(t,i,s,t=>{a.opacity=String(t)},()=>{a.opacity=""})}(t,e,u,g)),c&&r){const a=parseInt(i,10),h=parseInt(e.getAttribute("data:dlJ")||"",10);We(t,{el:s,from:r.val,to:parseFloat(e.getAttribute("data:dlVal")||""),formatter:p,fmtOpts:l(o({},t),{seriesIndex:a,dataPointIndex:isFinite(h)?h:0,w:t}),duration:u,ease:g,delay:n})}});const e=t.config.plotOptions.bar.dataLabels.total.formatter||p;r.querySelectorAll(Xe).forEach(i=>{const s=i.getAttribute("data:dlTotalKey");if(!s)return;const r=a.get(`total::${s}`);if(!r)return;const n=parseInt(i.getAttribute("data:dlDelay")||"0",10)||0;if(h&&isFinite(r.cx)&&isFinite(r.cy)&&Ye(t,{el:i,oldCx:r.cx,oldCy:r.cy,duration:u,ease:g,delay:n}),c){const a=parseInt(i.getAttribute("data:dlTotalSeries")||s,10);We(t,{el:i,from:r.val,to:parseFloat(i.getAttribute("data:dlTotalVal")||""),formatter:e,fmtOpts:l(o({},t),{seriesIndex:a,dataPointIndex:0,w:t}),duration:u,ease:g,delay:n})}})}catch(t){}}class $e{constructor(t,{toggleDataSeries:e,revertDefaultAxisMinMax:i,updateSeries:s}={}){this.w=t,this._toggleDataSeries=e||null,this._revertDefaultAxisMinMax=i||null,this._updateSeries=s||null,this.legendInactiveClass="legend-mouseover-inactive"}clearSeriesCache(){const t=this.w;t.globals.cachedSelectors&&(delete t.globals.cachedSelectors.allSeriesEls,delete t.globals.cachedSelectors.highlightSeriesEls)}getAllSeriesEls(){const t=this.w,e="allSeriesEls";return t.globals.cachedSelectors[e]||(t.globals.cachedSelectors[e]=t.dom.baseEl.getElementsByClassName("apexcharts-series")),t.globals.cachedSelectors[e]}getSeriesByName(t){return this.w.dom.baseEl.querySelector(`.apexcharts-inner .apexcharts-series[seriesName='${v.escapeString(t)}']`)}isSeriesHidden(t){var e;const i=this.getSeriesByName(t),s=parseInt(null!=(e=i.getAttribute("data:realIndex"))?e:"0",10);return{isHidden:i.classList.contains("apexcharts-series-collapsed"),realIndex:s}}addCollapsedClassToSeries(t,e){$e.addCollapsedClassToSeries(this.w,t,e)}static addCollapsedClassToSeries(t,e,i){let s=!1;function a(t){for(let a=0;a{t.globals.isDestroyed||e.node.classList.remove("apexcharts-series-collapsing")},n)}toggleSeries(t){var e;const i=this.isSeriesHidden(t);return null==(e=this._toggleDataSeries)||e.call(this,i.realIndex,i.isHidden),i.isHidden}showSeries(t){var e;const i=this.isSeriesHidden(t);i.isHidden&&(null==(e=this._toggleDataSeries)||e.call(this,i.realIndex,!0))}hideSeries(t){var e;const i=this.isSeriesHidden(t);i.isHidden||null==(e=this._toggleDataSeries)||e.call(this,i.realIndex,!1)}prepareDataUpdate(){const t=this.w;this.clearSeriesCache(),t.globals.previousPaths=[],t.globals.axisCharts||(t.globals.collapsedSeries=[],t.globals.ancillaryCollapsedSeries=[],t.globals.collapsedSeriesIndices=[],t.globals.ancillaryCollapsedSeriesIndices=[])}resetSeries(t=!0,e=!0,i=!0){var s,a;const r=this.w;this.clearSeriesCache();let n=v.clone(r.globals.initialSeries);Array.isArray(n)||(n=v.clone(r.config.series)||[]),r.globals.previousPaths=[],i?(r.globals.collapsedSeries=[],r.globals.ancillaryCollapsedSeries=[],r.globals.collapsedSeriesIndices=[],r.globals.ancillaryCollapsedSeriesIndices=[]):n=this.emptyCollapsedSeries(n),r.config.series=n,t&&(e&&(r.interact.zoomed=!1,null==(s=this._revertDefaultAxisMinMax)||s.call(this)),null==(a=this._updateSeries)||a.call(this,n,r.config.chart.animations.dynamicAnimation.enabled))}emptyCollapsedSeries(t){const e=this.w;if(!Array.isArray(t))return t;for(let i=0;i-1&&(t[i]&&"object"==typeof t[i]?t[i].data=[]:t[i]=0);return t}_deriveSeriesNames(t){const e=this.w,i=t||e.config.series||[],s=e.config.labels||[];return i.map((t,e)=>t&&"object"==typeof t&&null!=t.name?String(t.name):null!=s[e]?String(s[e]):`series-${e+1}`)}reconcileCollapsedByName(t){const e=this.w,i=e.globals,s=t||e.config.series,a=this._deriveSeriesNames(s),r=t=>{const e=[],r=[];return t.forEach(t=>{const n=t&&null!=t.name?a.indexOf(t.name):t.index;if(null==n||n<0||n>=s.length)return;const o=s[n];t.index=n,i.axisCharts?o&&Array.isArray(o.data)&&o.data.length&&(t.data=o.data.slice()):t.data=o,e.push(t),r.push(n)}),{records:e,indices:r}},n=r(i.collapsedSeries);i.collapsedSeries=n.records,i.collapsedSeriesIndices=n.indices;const o=r(i.ancillaryCollapsedSeries);i.ancillaryCollapsedSeries=o.records,i.ancillaryCollapsedSeriesIndices=o.indices,i.allSeriesCollapsed=i.collapsedSeries.length+i.ancillaryCollapsedSeries.length===s.length,this.emptyCollapsedSeries(s)}canvasRestyle(t){const e=this.w.globals.activeRenderer;e&&"canvas"===e.kind&&"function"==typeof e.restyle&&e.restyle(t)}highlightSeries(t){var e;const i=this.w,s=this.getSeriesByName(t),a=parseInt(null!=(e=null==s?void 0:s.getAttribute("data:realIndex"))?e:"",10),r="highlightSeriesEls";let n=i.globals.cachedSelectors[r];n||(n=i.dom.baseEl.querySelectorAll(".apexcharts-series, .apexcharts-datalabels, .apexcharts-yaxis"),i.globals.cachedSelectors[r]=n);let o=null,l=null,h=null;if(i.globals.axisCharts||"radialBar"===i.config.chart.type)if(i.globals.axisCharts){o=i.dom.baseEl.querySelector(`.apexcharts-series[data\\:realIndex='${a}']`),l=i.dom.baseEl.querySelector(`.apexcharts-datalabels[data\\:realIndex='${a}']`);const t=i.globals.seriesYAxisReverseMap[a];h=i.dom.baseEl.querySelector(`.apexcharts-yaxis[rel='${t}']`)}else o=i.dom.baseEl.querySelector(`.apexcharts-series[rel='${a+1}']`);else o=i.dom.baseEl.querySelector(`.apexcharts-series[rel='${a+1}'] path`);for(let t=0;t{for(let e=0;e=n.from&&e<=n.to&&s[t].classList.remove(this.legendInactiveClass)}}}getActiveConfigSeriesIndex(t="asc",e=[]){const i=this.w;let s=0;if(i.config.series.length>1){const a=i.config.series.map((t,s)=>t.data&&t.data.length>0&&-1===i.globals.collapsedSeriesIndices.indexOf(s)&&(!i.globals.comboCharts||0===e.length||e.length&&e.indexOf(i.config.series[s].type)>-1)?s:-1);for(let e="asc"===t?0:a.length-1;"asc"===t?e=0;"asc"===t?e++:e--)if(-1!==a[e]){s=a[e];break}}return s}getActiveConfigSeriesIndexByGroup(t=[]){const e=this.w;return(e.labelData.seriesGroups||[]).map(i=>{let s=-1;return e.config.series.forEach((a,r)=>{if(-1===i.indexOf(e.seriesData.seriesNames[r]))return;if(e.globals.comboCharts&&t.length&&-1===t.indexOf(a.type))return;a.data&&a.data.length>0&&-1===e.globals.collapsedSeriesIndices.indexOf(r)&&(s=r)}),s})}getBarSeriesIndices(){return this.w.globals.comboCharts?this.w.config.series.map((t,e)=>"bar"===t.type||"column"===t.type?e:-1).filter(t=>-1!==t):this.w.config.series.map((t,e)=>e)}getPreviousPaths(){var t,e,i,s;const a=this.w;if(function(t){var e,i,s;const a=t.globals;if(a.streamScrolled=!1,!a.axisCharts||!t.seriesData||!Array.isArray(t.seriesData.series)||0===t.seriesData.series.length)return void(a.prevStreamFrame=null);const r=[];(null==(i=null==(e=t.dom)?void 0:e.baseEl)?void 0:i.querySelectorAll)&&t.dom.baseEl.querySelectorAll(".apexcharts-marker").forEach(t=>{var e,i,s,a,n;const o=parseInt(null!=(e=t.getAttribute("index"))?e:"",10),l=parseInt(null!=(s=null!=(i=t.getAttribute("j"))?i:t.getAttribute("rel"))?s:"",10),h=parseFloat(null!=(n=null!=(a=t.getAttribute("r"))?a:t.getAttribute("default-marker-size"))?n:"");isFinite(o)&&isFinite(l)&&isFinite(h)&&((r[o]=r[o]||[])[l]=h)}),a.prevStreamFrame={seriesX:(t.seriesData.seriesX||[]).slice(),seriesY:t.seriesData.series.slice(),xPixels:(a.seriesXvalues||[]).slice(),yPixels:(a.seriesYvalues||[]).slice(),rPixels:r,labels:(a.labels||[]).slice(),isXNumeric:!!(null==(s=t.axisFlags)?void 0:s.isXNumeric)}}(a),function(t){const e=t.globals;if(e.prevChromeFrame=null,!e.axisCharts||!d.isBrowser())return;const i=t.dom.baseEl;if(v.elementExists(i))try{const s=we(i,Ce,"y");e.prevChromeFrame={xLabels:we(i,Se,"x"),yLabels:s,vGrid:ve(i,ke,"x1"),hGrid:ve(i,_e,"y1"),xScale:Me(t),yAnchors:De(t,s)}}catch(t){e.prevChromeFrame=null}}(a),function(t){const e=t.globals;if(e.prevDataLabels=null,!e.axisCharts||!d.isBrowser())return;if(!Be(t))return;const i=t.dom.baseEl;if(v.elementExists(i))try{const t=new Map;i.querySelectorAll(Re).forEach(e=>{const i=e.getAttribute("data:dlKey");if(!i)return;const s=e.querySelector(ze);s&&t.set(i,{cx:parseFloat(s.getAttribute("cx")||""),cy:parseFloat(s.getAttribute("cy")||""),val:parseFloat(e.getAttribute("data:dlVal")||"")})}),i.querySelectorAll(Xe).forEach(e=>{const i=e.getAttribute("data:dlTotalKey");i&&t.set(`total::${i}`,{cx:parseFloat(e.getAttribute("cx")||""),cy:parseFloat(e.getAttribute("cy")||""),val:parseFloat(e.getAttribute("data:dlTotalVal")||"")})}),e.prevDataLabels=t.size?t:null}catch(t){e.prevDataLabels=null}}(a),!a.globals.axisCharts)return void(a.globals.previousPaths=a.seriesData.series);if(!v.elementExists(a.dom.baseEl))return void(a.globals.previousPaths=[]);function r(t,e,i){const s=t[e].childNodes,r={type:i,paths:[],realIndex:t[e].getAttribute("data:realIndex")};for(let t=0;t{const e=(i=t,a.dom.baseEl.querySelectorAll(`.apexcharts-${i}-series .apexcharts-series`));var i;for(let i=0;i0)for(let r=0;ro[a].getAttribute(t),n={x:parseFloat(null!=(t=r("x"))?t:"0"),y:parseFloat(null!=(e=r("y"))?e:"0"),width:parseFloat(null!=(i=r("width"))?i:"0"),height:parseFloat(null!=(s=r("height"))?s:"0")};l.push({rect:n,color:o[a].getAttribute("color")})}a.globals.previousPaths.push(l)}}clearPreviousPaths(){const t=this.w;t.globals.previousPaths=[],t.globals.allSeriesCollapsed=!1}handleNoData(){const t=this.w,e=t.config.noData,i=new It(this.w);let s=t.globals.svgWidth/2,a=t.globals.svgHeight/2,r="middle";if(t.globals.noData=!0,t.globals.animationEnded=!0,"left"===e.align?(s=10,r="start"):"right"===e.align&&(s=t.globals.svgWidth-10,r="end"),"top"===e.verticalAlign?a=50:"bottom"===e.verticalAlign&&(a=t.globals.svgHeight-50),s+=e.offsetX,a=a+parseInt(e.style.fontSize,10)+2+e.offsetY,void 0!==e.text&&""!==e.text){const n=i.drawText({x:s,y:a,text:e.text,textAnchor:r,fontSize:e.style.fontSize,fontFamily:e.style.fontFamily,foreColor:e.style.color,opacity:1,cssClass:"apexcharts-text-nodata"});t.dom.Paper.add(n)}}setNullSeriesToZeroValues(t){const e=this.w;for(let i=0;it.length>0?t:[])}}const je={accent:"--apx-accent",fore:"--apx-fore",grid:"--apx-grid",surface:"--apx-surface"};const Ge="__apexcharts_themes__";function Ve(){return globalThis[Ge]}globalThis[Ge]||(globalThis[Ge]={});const Ue="#373d3f",qe="#f6f7f8",Ze="#e0e0e0";class Ke{constructor(t){this.w=t,this.colors=[],this.isColorFn=!1,this.isHeatmapDistributed=this.checkHeatmapDistributed(),this.isBarDistributed=this.checkBarDistributed(),this._tokens={},this._namedTheme=null}checkHeatmapDistributed(){const{chart:t,plotOptions:e}=this.w.config;return"treemap"===t.type&&e.treemap&&e.treemap.distributed||"heatmap"===t.type&&e.heatmap&&e.heatmap.distributed}checkBarDistributed(){const{chart:t,plotOptions:e}=this.w.config;return e.bar&&e.bar.distributed&&("bar"===t.type||"rangeBar"===t.type)}init(){this.setDefaultColors()}setDefaultColors(){var t;const e=this.w,i=new v;var s;this._namedTheme=(s=e.config.theme.name)&&Ve()[s]||null,this._applyNamedThemeMode(),e.dom.elWrap.classList.add(`apexcharts-theme-${e.config.theme.mode||"light"}`),this._applyModeDefaults(),this._tokens=this._resolveTokens(),this.applyTokenChrome(this._tokens);const a=null==(t=e.config.theme.accessibility)?void 0:t.colorBlindMode;if(a){e.globals.colors=this.getColorBlindColors(a),this.applySeriesColors(e.seriesData.seriesColors,e.globals.colors);const t=e.globals.colors.slice();return this.pushExtraColors(e.globals.colors),this.applyColorTypes(["fill","stroke"],t),this.applyDataLabelsColors(t),this.applyRadarPolygonsColors(),this.applyMarkersColors(t),void("highContrast"===a&&e.dom.elWrap.classList.add("apexcharts-high-contrast"))}const r=[...e.config.colors||e.config.fill.colors||[]];e.globals.colors=this.getColors(r),this.applySeriesColors(e.seriesData.seriesColors,e.globals.colors),e.config.theme.monochrome.enabled&&(e.globals.colors=this.getMonochromeColors(e.config.theme.monochrome,e.seriesData.series,i));const n=e.globals.colors.slice();this.pushExtraColors(e.globals.colors),this.applyColorTypes(["fill","stroke"],n),this.applyDataLabelsColors(n),this.applyRadarPolygonsColors(),this.applyMarkersColors(n)}_applyModeDefaults(){const t=this.w,e=t.config.theme.mode;"dark"===e?(t.config.chart.foreColor===Ue&&(t.config.chart.foreColor=qe),"palette1"===t.config.theme.palette&&(t.config.theme.palette="palette4"),t.config.tooltip&&"light"!==t.config.tooltip.theme&&(t.config.tooltip.theme="dark")):"light"===e&&(t.config.chart.foreColor===qe&&(t.config.chart.foreColor=Ue),"palette4"===t.config.theme.palette&&(t.config.theme.palette="palette1"))}_applyNamedThemeMode(){const t=this._namedTheme;if(!t)return;const e=this.w.config.theme;t.mode&&!e.mode&&(e.mode=t.mode),!t.accessibility||!t.accessibility.colorBlindMode||e.accessibility&&e.accessibility.colorBlindMode||(e.accessibility=e.accessibility||{},e.accessibility.colorBlindMode=t.accessibility.colorBlindMode),t.monochrome&&t.monochrome.enabled&&!e.monochrome.enabled&&(e.monochrome=o(o({},e.monochrome),t.monochrome))}_resolveTokens(){const t=this._namedTheme&&this._namedTheme.tokens||{},e=this._shouldUseTokens()?function(t){if(!d.isBrowser())return{};const e=t.dom&&(t.dom.elWrap||t.dom.baseEl)||null;if(!e)return{};const i=b.getComputedStyle(e);if(!i||"function"!=typeof i.getPropertyValue)return{};const s=t=>{const e=i.getPropertyValue(t);return e?String(e).trim():""},a={};for(const t in je){const e=s(je[t]);e&&(a[t]=e)}const r=[];for(let t=1;t<=24;t++){const e=s(`--apx-series-${t}`);if(!e)break;r.push(e)}return r.length&&(a.series=r),a}(this.w):{};return o(o({},t),e)}_shouldUseTokens(){return!1!==this.w.config.theme.tokens}applyTokenChrome(t){if(!t)return;const e=this.w;if(!t.fore||e.config.chart.foreColor!==Ue&&e.config.chart.foreColor!==qe||(e.config.chart.foreColor=t.fore),t.grid){e.config.grid.borderColor===Ze&&(e.config.grid.borderColor=t.grid);const i=e=>{e&&(e.axisBorder&&e.axisBorder.color===Ze&&(e.axisBorder.color=t.grid),e.axisTicks&&e.axisTicks.color===Ze&&(e.axisTicks.color=t.grid))};i(e.config.xaxis),Array.isArray(e.config.yaxis)?e.config.yaxis.forEach(i):i(e.config.yaxis)}const i=e.globals.tokenSurface,s=e.config.chart.background,a=!s||s===i;if(t.surface){if(a){e.config.chart.background=t.surface,e.globals.tokenSurface=t.surface;const i=e.dom.Paper&&e.dom.Paper.node;i&&i.style&&(i.style.background=t.surface)}}else if(i&&s===i){e.config.chart.background="",e.globals.tokenSurface=void 0;const t=e.dom.Paper&&e.dom.Paper.node;t&&t.style&&(t.style.background="")}}getColors(t){const e=this.w;return t&&0!==t.length?Array.isArray(t)&&t.length>0&&"function"==typeof t[0]?(this.isColorFn=!0,e.config.series.map((i,s)=>{const a=t[s]||t[0];return"function"==typeof a?a({value:e.globals.axisCharts?e.seriesData.series[s][0]||0:e.seriesData.series[s],seriesIndex:s,dataPointIndex:s,w:this.w}):a})):t:this.predefined()}applySeriesColors(t,e){t.forEach((t,i)=>{t&&(e[i]=t)})}getMonochromeColors(t,e,i){const{color:s,shadeIntensity:a,shadeTo:r}=t,n=this.isBarDistributed||this.isHeatmapDistributed?e[0].length*e.length:e.length,o=1/(n/a);let l=0;return Array.from({length:n},()=>{const t="dark"===r?i.shadeColor(-1*l,s):i.shadeColor(l,s);return l+=o,t})}applyColorTypes(t,e){const i=this.w;t.forEach(t=>{i.globals[t].colors=void 0===i.config[t].colors?this.isColorFn?i.config.colors:e:i.config[t].colors.slice(),this.pushExtraColors(i.globals[t].colors)})}applyDataLabelsColors(t){const e=this.w;e.globals.dataLabels.style.colors=void 0===e.config.dataLabels.style.colors?t:e.config.dataLabels.style.colors.slice(),this.pushExtraColors(e.globals.dataLabels.style.colors,50)}applyRadarPolygonsColors(){const t=this.w;t.globals.radarPolygons.fill.colors=void 0===t.config.plotOptions.radar.polygons.fill.colors?["dark"===t.config.theme.mode?"#343A3F":"none"]:t.config.plotOptions.radar.polygons.fill.colors.slice(),this.pushExtraColors(t.globals.radarPolygons.fill.colors,20)}applyMarkersColors(t){const e=this.w;e.globals.markers.colors=void 0===e.config.markers.colors?t:e.config.markers.colors.slice(),this.pushExtraColors(e.globals.markers.colors)}pushExtraColors(t,e,i=null){const s=this.w;let a=e||s.seriesData.series.length;if(null===i&&(i=this.isBarDistributed||this.isHeatmapDistributed||"heatmap"===s.config.chart.type&&s.config.plotOptions.heatmap&&s.config.plotOptions.heatmap.colorScale.inverse),i&&s.seriesData.series.length&&(a=s.seriesData.series[s.globals.maxValsInArrayIndex].length*s.seriesData.series.length),t.lengtht.globals.svgWidth&&(this.dCtx.lgRect.width=t.globals.svgWidth/1.5),this.dCtx.lgRect}getDatalabelsRect(){const t=this.w,e=[];t.config.series.forEach((i,s)=>{i.data.forEach((i,a)=>{const r=(n=t.seriesData.series[s][a],t.config.dataLabels.formatter(n,{seriesIndex:s,dataPointIndex:a,w:t}));var n;e.push(r)})});const i=v.getLargestStringFromArr(e),s=new It(this.w),a=t.config.dataLabels.style,r=s.getTextRects(i,parseInt(a.fontSize).toString(),a.fontFamily);return{width:1.05*r.width,height:r.height}}getLargestStringFromMultiArr(t,e){let i=t;if(this.w.axisFlags.isMultiLineX){const t=e.map(t=>Array.isArray(t)?t.length:1),s=Math.max(...t);i=e[t.indexOf(s)]}return i}getSparklineStrokeInset(){const t=this.w,e=Array.isArray(t.config.stroke.width)?Math.max(...t.config.stroke.width):t.config.stroke.width,i=e/2;if(!(t.config.stroke.show&&i>0))return{top:0,bottom:0};const s=t.globals.maxY-t.globals.minY,a=this._getSeriesYExtremes();if(!(this._strokeTracesDataPoints()&&s>0&&a))return{top:i,bottom:i};const r=Math.max(t.globals.svgHeight-e,0),n=r*(t.globals.maxY-a.max)/s,o=r*(a.min-t.globals.minY)/s;return{top:Math.min(Math.max(i-n,0),i),bottom:Math.min(Math.max(i-o,0),i)}}_strokeTracesDataPoints(){const t=this.w;if(!t.globals.axisCharts||t.config.chart.stacked)return!1;const e=["line","area","scatter"];return t.config.series.every(i=>e.includes(i.type||t.config.chart.type))}_getSeriesYExtremes(){let t=1/0,e=-1/0;return this.w.seriesData.series.forEach(i=>{Array.isArray(i)&&i.forEach(i=>{Number.isFinite(i)&&(ie&&(e=i))})}),t===1/0?null:{min:t,max:e}}};class ti{constructor(t){this.w=t.w,this.dCtx=t}getxAxisLabelsCoords(){const t=this.w;let e,i=t.labelData.labels.slice();if(t.config.xaxis.convertedCatToNumeric&&0===i.length&&(i=t.labelData.categoryLabels),t.labelData.timescaleLabels.length>0){const i=this.getxAxisTimeScaleLabelsCoords();e={width:i.width,height:i.height},t.layout.rotateXLabels=!1}else{this.dCtx.lgWidthForSideLegends="left"!==t.config.legend.position&&"right"!==t.config.legend.position||t.config.legend.floating?0:this.dCtx.lgRect.width;const s=t.formatters.xLabelFormatter;let a=v.getLargestStringFromArr(i),r=this.dCtx.dimHelpers.getLargestStringFromMultiArr(a,i);t.globals.isBarHorizontal&&(a=t.globals.yAxisScale[0].result.reduce((t,e)=>t.length>e.length?t:e,0),r=a);const n=new S(this.w),o=a;a=n.xLabelFormat(s,a,o,{i:void 0,dateFormatter:new A(this.w).formatDate,w:t}),r=n.xLabelFormat(s,r,o,{i:void 0,dateFormatter:new A(this.w).formatDate,w:t}),(t.config.xaxis.convertedCatToNumeric&&void 0===a||""===String(a).trim())&&(a="1",r=a);const l=new It(this.w);let h=l.getTextRects(a,t.config.xaxis.labels.style.fontSize),c=h;if(a!==r&&(c=l.getTextRects(r,t.config.xaxis.labels.style.fontSize)),e={width:h.width>=c.width?h.width:c.width,height:h.height>=c.height?h.height:c.height},e.width*i.length>t.globals.svgWidth-this.dCtx.lgWidthForSideLegends-this.dCtx.yAxisWidth-this.dCtx.gridPad.left-this.dCtx.gridPad.right&&0!==t.config.xaxis.labels.rotate||t.config.xaxis.labels.rotateAlways){if(!t.globals.isBarHorizontal){t.layout.rotateXLabels=!0;const i=e=>l.getTextRects(e,t.config.xaxis.labels.style.fontSize,t.config.xaxis.labels.style.fontFamily,`rotate(${t.config.xaxis.labels.rotate} 0 0)`,!1);h=i(a),a!==r&&(c=i(r)),e.height=(h.height>c.height?h.height:c.height)/1.5,e.width=h.width>c.width?h.width:c.width}}else t.layout.rotateXLabels=!1}return t.config.xaxis.labels.show||(e={width:0,height:0}),{width:e.width,height:e.height}}getxAxisGroupLabelsCoords(){var t;const e=this.w;if(!e.labelData.hasXaxisGroups)return{width:0,height:0};const i=(null==(t=e.config.xaxis.group.style)?void 0:t.fontSize)||e.config.xaxis.labels.style.fontSize,s=e.labelData.groups.map(t=>t.title);let a;const r=v.getLargestStringFromArr(s),n=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,s),o=new It(this.w),l=o.getTextRects(r,i);let h=l;return r!==n&&(h=o.getTextRects(n,i)),a={width:l.width>=h.width?l.width:h.width,height:l.height>=h.height?l.height:h.height},e.config.xaxis.labels.show||(a={width:0,height:0}),{width:a.width,height:a.height}}getxAxisTitleCoords(){const t=this.w;let e=0,i=0;if(void 0!==t.config.xaxis.title.text){const s=new It(this.w).getTextRects(t.config.xaxis.title.text,t.config.xaxis.title.style.fontSize);e=s.width,i=s.height}return{width:e,height:i}}getxAxisTimeScaleLabelsCoords(){const t=this.w;this.dCtx.timescaleLabels=t.labelData.timescaleLabels.slice();const e=this.dCtx.timescaleLabels.map(t=>t.value),i=e.reduce((t,e)=>void 0===t?0:t.length>e.length?t:e,0),s=new It(this.w).getTextRects(i,t.config.xaxis.labels.style.fontSize);return 1.05*s.width*e.length>t.layout.gridWidth&&0!==t.config.xaxis.labels.rotate&&(t.globals.overlappingXLabels=!0),s}additionalPaddingXLabels(t){const e=this.w,i=e.globals,s=e.config,a=s.xaxis.type,r=t.width;i.skipLastTimelinelabel=!1,i.skipFirstTimelinelabel=!1;const n=e.config.yaxis[0].opposite&&e.globals.isBarHorizontal,o=t=>{if(this.dCtx.timescaleLabels&&this.dCtx.timescaleLabels.length){const a=this.dCtx.timescaleLabels[0],n=this.dCtx.timescaleLabels[this.dCtx.timescaleLabels.length-1].position+r/1.75-this.dCtx.yAxisWidthRight,o=a.position-r/1.75+this.dCtx.yAxisWidthLeft,l="right"===e.config.legend.position&&this.dCtx.lgRect.width>0?this.dCtx.lgRect.width:0;n>i.svgWidth-e.layout.translateX-l&&(i.skipLastTimelinelabel=!0),o<-(t.show&&!t.floating||"bar"!==s.chart.type&&"candlestick"!==s.chart.type&&"rangeBar"!==s.chart.type&&"boxPlot"!==s.chart.type&&"violin"!==s.chart.type?10:r/1.75)&&(i.skipFirstTimelinelabel=!0)}else"datetime"===a?this.dCtx.gridPad.right{s.yaxis.length>1&&(t=>-1!==i.collapsedSeriesIndices.indexOf(t))(e)||o(t)};s.yaxis.forEach((t,e)=>{n?(this.dCtx.gridPad.left{const n={seriesIndex:r,dataPointIndex:-1,w:t},o=t.globals.yAxisScale[r];let l=0;if(!s.isYAxisHidden(r)&&a.labels.show&&void 0!==a.labels.minWidth&&(l=a.labels.minWidth),!s.isYAxisHidden(r)&&a.labels.show&&o.result.length){const s=t.formatters.yLabelFormatters[r],h=o.niceMin===Number.MIN_VALUE?0:o.niceMin;let c=o.result.reduce((t,e)=>{var i,a;return(null==(i=String(s(t,n)))?void 0:i.length)>(null==(a=String(s(e,n)))?void 0:a.length)?t:e},h);c=s(c,n);let d=c;if(void 0!==c&&0!==c.length||(c=o.niceMax),1===String(c).length&&(c+=".0",d=c),t.globals.isBarHorizontal){i=0;const e=t.labelData.labels.slice();c=v.getLargestStringFromArr(e),c=s(c,{seriesIndex:r,dataPointIndex:-1,w:t}),d=this.dCtx.dimHelpers.getLargestStringFromMultiArr(c,e)}const p=new It(this.w),u="rotate(".concat(a.labels.rotate," 0 0)"),g=p.getTextRects(c,a.labels.style.fontSize,a.labels.style.fontFamily,u,!1);let f=g;c!==d&&(f=p.getTextRects(d,a.labels.style.fontSize,a.labels.style.fontFamily,u,!1)),e.push({width:(l>f.width||l>g.width?l:f.width>g.width?f.width:g.width)+i,height:f.height>g.height?f.height:g.height})}else e.push({width:0,height:0})}),e}getyAxisTitleCoords(){const t=this.w,e=[];return t.config.yaxis.map(t=>{if(t.show&&void 0!==t.title.text){const i=new It(this.w),s="rotate(".concat(t.title.rotate," 0 0)"),a=i.getTextRects(t.title.text,t.title.style.fontSize,t.title.style.fontFamily,s,!1);e.push({width:a.width,height:a.height})}else e.push({width:0,height:0})}),e}getTotalYAxisWidth(){const t=this.w;let e=0,i=0,s=0;const a=t.globals.yAxisScale.length>1?10:0,r=new $t(this.w,{theme:this.dCtx.theme,timeScale:this.dCtx.timeScale}),n=(n,o)=>{const l=t.config.yaxis[o].floating;let h=0;n.width>0&&!l?(h=n.width+a,function(e){return t.globals.ignoreYAxisIndexes.indexOf(e)>-1}(o)&&(h=h-n.width-a)):h=l||r.isYAxisHidden(o)?0:5,t.config.yaxis[o].opposite?s+=h:i+=h,e+=h};return t.layout.yLabelsCoords.map((t,e)=>{n(t,e)}),t.layout.yTitleCoords.map((t,e)=>{n(t,e)}),t.globals.isBarHorizontal&&!t.config.yaxis[0].floating&&(e=t.layout.yLabelsCoords[0].width+t.layout.yTitleCoords[0].width+15),this.dCtx.yAxisWidthLeft=i,this.dCtx.yAxisWidthRight=s,e}}class ii{constructor(t){this.w=t.w,this.dCtx=t}gridPadForColumnsInNumericAxis(t){const{w:e}=this,{config:i,globals:s}=e;if(s.noData||s.collapsedSeries.length+s.ancillaryCollapsedSeries.length===i.series.length)return 0;const a=t=>["bar","rangeBar","candlestick","boxPlot","violin"].includes(t),r=i.chart.type;let n=0,o=a(r)?i.series.length:1;s.comboBarCount>0&&(o=s.comboBarCount),s.collapsedSeries.forEach(t=>{a(t.type)&&(o-=1)}),i.chart.stacked&&(o=1);const l=a(r)||s.comboBarCount>0;let h=Math.abs(s.initialMaxX-s.initialMinX);if(l&&e.axisFlags.isXNumeric&&!s.isBarHorizontal&&o>0&&0!==h){h<=3&&(h=s.dataPoints);const e=h/t;let a=s.minXDiff&&s.minXDiff/e>0?s.minXDiff/e:0;a>t/2&&(a/=2),n=a*parseInt(i.plotOptions.bar.columnWidth,10)/100,n<1&&(n=1),s.barPadForNumericAxis=n}return n}gridPadForStackedTotalDataLabels(){const{w:t}=this,e=t.config.plotOptions.bar.dataLabels.total;if(!t.globals.isBarHorizontal||!t.config.chart.stacked||"100%"!==t.config.chart.stackType||!e.enabled)return;const i=t.seriesData.stackedSeriesTotals||[];if(!i.length)return;const s=e.formatter||t.config.dataLabels.formatter,a=i.map((e,i)=>String(s?s(e,l(o({},t),{seriesIndex:0,dataPointIndex:i,w:t})):e)),r=new It(t).getTextRects(v.getLargestStringFromArr(a),parseFloat(e.style.fontSize).toString(),e.style.fontFamily).width+Math.abs(e.offsetX||0)+2;this.dCtx.xPadRight=Math.max(this.dCtx.xPadRight,r)}gridPadFortitleSubtitle(){const{w:t}=this,{globals:e}=t;let i=this.dCtx.isSparkline||!e.axisCharts?0:10;["title","subtitle"].forEach(s=>{void 0!==t.config[s].text?i+=t.config[s].margin:i+=this.dCtx.isSparkline||!e.axisCharts?0:5}),!t.config.legend.show||"bottom"!==t.config.legend.position||t.config.legend.floating||e.axisCharts||(i+=10);const s=this.dCtx.dimHelpers.getTitleSubtitleCoords("title"),a=this.dCtx.dimHelpers.getTitleSubtitleCoords("subtitle");this.dCtx.titleBlockPad=i,t.layout.gridHeight-=s.height+a.height+i,t.layout.translateY+=s.height+a.height+i}setGridXPosForDualYAxis(t,e){const{w:i}=this,s=new $t(this.w,{theme:this.dCtx.theme,timeScale:this.dCtx.timeScale});i.config.yaxis.forEach((a,r)=>{-1!==i.globals.ignoreYAxisIndexes.indexOf(r)||a.floating||s.isYAxisHidden(r)||(a.opposite&&(i.layout.translateX-=e[r].width+t[r].width+parseInt(a.labels.style.fontSize,10)/1.2+12),i.layout.translateX<2&&(i.layout.translateX=2))})}}const si="http://www.w3.org/1999/xhtml";function ai(t,e){const i=t.config.drilldown&&t.config.drilldown.breadcrumb||{};return o(o({show:!0,position:"top-left",separator:" / ",rootLabel:"All",offsetX:0,offsetY:0,formatter:void 0},i),e||{})}function ri(t,e){const i=[".apexcharts-title-text",".apexcharts-subtitle-text"].map(e=>t.dom.baseEl.querySelector(e)).filter(t=>null!==t);if(!i.length)return;const s=t.dom.elWrap.getBoundingClientRect().top;for(let t=0;t{const i=e.getBoundingClientRect();return t.lefti.left&&t.topi.top});if(!a)break;e.style.top=a.getBoundingClientRect().bottom-s+4+"px"}}function ni(t,e,i,s){var a;const r=null==(a=null==e?void 0:e.dimensions)?void 0:a.dimHelpers,n=r?r.getTitleSubtitleCoords("title").height+r.getTitleSubtitleCoords("subtitle").height:0,o=i.getBoundingClientRect().height||18,l=s&&s.offsetY||0,h=function(t,e){const i=t.layout.translateY||0,s=t.dom.elWrap;if(!s)return i;const a=t.dom.baseEl.querySelectorAll(".apexcharts-yaxis-label");if(!a.length)return i;const r=s.getBoundingClientRect().top,n=e.getBoundingClientRect();let o=i;for(let t=0;t=n.right||e.right<=n.left||(o=Math.min(o,e.top-r)))}return o}(t,i);if(h-n>=o+1)return i.style.top=`${h-o-1+l}px`,!0;i.style.top=`${n+l}px`;const c="dark"===t.config.theme.mode;return i.style.background=c?"rgba(20,24,30,0.82)":"rgba(255,255,255,0.86)",i.style.borderRadius="4px",!1}function oi(t){const e=t.dom.elWrap;if(!e)return;const i=e.querySelector(".apexcharts-breadcrumb");i&&i.parentNode&&i.parentNode.removeChild(i)}class li{constructor(t,e){this.w=t,this.ctx=e,this.theme=e.theme,this.timeScale=e.timeScale,this.lgRect={},this.yAxisWidth=0,this.yAxisWidthLeft=0,this.yAxisWidthRight=0,this.xAxisHeight=0,this.isSparkline=this.w.config.chart.sparkline.enabled,this.dimHelpers=new Qe(this),this.dimYAxis=new ei(this),this.dimXAxis=new ti(this),this.dimGrid=new ii(this),this.lgWidthForSideLegends=0,this.gridPad=o({},this.w.config.grid.padding),this.xPadRight=0,this.titleBlockPad=0,this.xPadLeft=0,this.datalabelsCoords={width:0,height:0},this.xAxisWidth=0,this.timescaleLabels=[]}plotCoords(){const t=this.w,e=t.globals;if(this.gridPad=o({},t.config.grid.padding),this.lgRect=this.dimHelpers.getLegendsRect(),this.datalabelsCoords={width:0,height:0},this.isSparkline){this.w.globals.markers.largestSize>0&&Object.entries(this.gridPad).forEach(([t,e])=>{this.gridPad[t]=Math.max(e,this.w.globals.markers.largestSize/1.5)});const t=this.dimHelpers.getSparklineStrokeInset();this.gridPad.top=Math.max(t.top,this.gridPad.top),this.gridPad.bottom=Math.max(t.bottom,this.gridPad.bottom)}if(e.axisCharts?this.setDimensionsForAxisCharts():this.setDimensionsForNonAxisCharts(),this.dimGrid.gridPadFortitleSubtitle(),this.gridPadForBreadcrumb(),this.dimGrid.gridPadForStackedTotalDataLabels(),"heatmap"===t.config.chart.type&&"hexagon"===t.config.plotOptions.heatmap.shape&&("numeric"!==t.config.xaxis.type&&"datetime"!==t.config.xaxis.type||!t.axisFlags.isXNumeric)){const i=e.dataPoints||1,s=(t.seriesData.series||[]).length||1,a=t.layout.gridWidth-this.xPadRight-this.xPadLeft,r=t.layout.gridHeight,n=t.config.stroke.show?Array.isArray(t.config.stroke.width)?Math.max(...t.config.stroke.width):t.config.stroke.width:0,o=(a+4*i*(n/2+6))/(4*i+2),l=(r+6*s*(n/2))/(6*s+2);this.gridPad.left=Math.max(o,this.gridPad.left),this.gridPad.right=Math.max(o,this.gridPad.right),this.gridPad.top=Math.max(l,this.gridPad.top),this.gridPad.bottom=Math.max(l,this.gridPad.bottom)}t.layout.gridHeight=t.layout.gridHeight-this.gridPad.top-this.gridPad.bottom,t.layout.gridWidth=t.layout.gridWidth-this.gridPad.left-this.gridPad.right-this.xPadRight-this.xPadLeft;const i=this.dimGrid.gridPadForColumnsInNumericAxis(t.layout.gridWidth);return t.layout.gridWidth=t.layout.gridWidth-2*i,t.layout.translateX=t.layout.translateX+this.gridPad.left+this.xPadLeft+(i>0?i:0),t.layout.translateY=t.layout.translateY+this.gridPad.top,{layout:{gridHeight:t.layout.gridHeight,gridWidth:t.layout.gridWidth,translateX:t.layout.translateX,translateY:t.layout.translateY,translateXAxisX:t.layout.translateXAxisX,translateXAxisY:t.layout.translateXAxisY,rotateXLabels:t.layout.rotateXLabels,xAxisHeight:t.layout.xAxisHeight,xAxisLabelsHeight:t.layout.xAxisLabelsHeight,xAxisGroupLabelsHeight:t.layout.xAxisGroupLabelsHeight,xAxisLabelsWidth:t.layout.xAxisLabelsWidth,yLabelsCoords:t.layout.yLabelsCoords,yTitleCoords:t.layout.yTitleCoords,gridPad:o({},this.gridPad)}}}gridPadForBreadcrumb(){var t,e,i,s,a,r;const n=this.w,o="treemap"===n.config.chart.type;if(o){const i=null==(e=null==(t=n.config.plotOptions)?void 0:t.treemap)?void 0:e.zoom;if(i&&i.enabled){if(!1===ai(n,i.breadcrumb).show)return;return void(this.gridPad.top+=22)}}if(!n.globals.axisCharts)return;if(!this.ctx.drilldown)return;if(!n.config.drilldown||!n.config.drilldown.enabled)return;if(!1===ai(n).show)return;const l=parseFloat(String(null==(r=null==(a=null==(s=null==(i=n.config.yaxis)?void 0:i[0])?void 0:s.labels)?void 0:a.style)?void 0:r.fontSize))||11,h=24+(o?0:Math.ceil(l*B/2)),c=o?0:this.titleBlockPad||0;this.gridPad.top+=Math.max(0,h-c)}setDimensionsForAxisCharts(){const t=this.w,e=t.globals,i=this.dimYAxis.getyAxisLabelsCoords(),s=this.dimYAxis.getyAxisTitleCoords();e.isSlopeChart&&(this.datalabelsCoords=this.dimHelpers.getDatalabelsRect()),t.layout.yLabelsCoords=[],t.layout.yTitleCoords=[],t.config.yaxis.map((e,a)=>{t.layout.yLabelsCoords.push({width:i[a].width,index:a}),t.layout.yTitleCoords.push({width:s[a].width,index:a})}),this.yAxisWidth=this.dimYAxis.getTotalYAxisWidth();const a=this.dimXAxis.getxAxisLabelsCoords(),r=this.dimXAxis.getxAxisGroupLabelsCoords(),n=this.dimXAxis.getxAxisTitleCoords();this.conditionalChecksForAxisCoords(a,n,r),t.layout.translateXAxisY=t.layout.rotateXLabels?this.xAxisHeight/8:-4,t.layout.translateXAxisX=t.layout.rotateXLabels&&t.axisFlags.isXNumeric&&t.config.xaxis.labels.rotate<=-45?-this.xAxisWidth/4:0,t.globals.isBarHorizontal&&(t.layout.rotateXLabels=!1,t.layout.translateXAxisY=(parseInt(t.config.xaxis.labels.style.fontSize,10)||12)/1.5*-1),t.layout.translateXAxisY=t.layout.translateXAxisY+t.config.xaxis.labels.offsetY,t.layout.translateXAxisX=t.layout.translateXAxisX+t.config.xaxis.labels.offsetX;let o=this.yAxisWidth,l=this.xAxisHeight;t.layout.xAxisLabelsHeight=this.xAxisHeight-n.height,t.layout.xAxisGroupLabelsHeight=t.layout.xAxisLabelsHeight-a.height,t.layout.xAxisLabelsWidth=this.xAxisWidth,t.layout.xAxisHeight=this.xAxisHeight;let h=10;("radar"===t.config.chart.type||this.isSparkline)&&(o=0,l=0),this.isSparkline&&(this.lgRect={height:0,width:0}),(this.isSparkline||"treemap"===t.config.chart.type)&&(o=0,l=0,h=0),this.isSparkline||"treemap"===t.config.chart.type||this.dimXAxis.additionalPaddingXLabels(a);const c=()=>{t.layout.translateX=o+this.datalabelsCoords.width,t.layout.gridHeight=e.svgHeight-this.lgRect.height-l-(this.isSparkline||"treemap"===t.config.chart.type?0:t.layout.rotateXLabels?10:15),t.layout.gridWidth=e.svgWidth-o-2*this.datalabelsCoords.width};switch("top"===t.config.xaxis.position&&(h=t.layout.xAxisHeight-t.config.xaxis.axisTicks.height-5),t.config.legend.position){case"bottom":t.layout.translateY=h,c();break;case"top":t.layout.translateY=this.lgRect.height+h,c();break;case"left":t.layout.translateY=h,t.layout.translateX=this.lgRect.width+o+this.datalabelsCoords.width,t.layout.gridHeight=e.svgHeight-l-12,t.layout.gridWidth=e.svgWidth-this.lgRect.width-o-2*this.datalabelsCoords.width;break;case"right":t.layout.translateY=h,t.layout.translateX=o+this.datalabelsCoords.width,t.layout.gridHeight=e.svgHeight-l-12,t.layout.gridWidth=e.svgWidth-this.lgRect.width-o-2*this.datalabelsCoords.width-5;break;default:throw new Error("Legend position not supported")}this.dimGrid.setGridXPosForDualYAxis(s,i);new Zt(this.w,{theme:this.theme,timeScale:this.timeScale}).setYAxisXPosition(i,s)}setDimensionsForNonAxisCharts(){const t=this.w,e=t.globals,i=t.config;let s=0;if(t.config.legend.show&&!t.config.legend.floating&&(s=20),"unit"===i.chart.type){const a=i.legend.show&&!i.legend.floating,r=i.legend.position;let n=0,o=0;return a&&("bottom"===r||"top"===r?n=this.lgRect.height:o=this.lgRect.width+s),t.layout.gridWidth=e.svgWidth-o,t.layout.gridHeight=e.svgHeight-n,t.layout.translateX="left"===r?o:0,void(t.layout.translateY="top"===r?n:0)}const a="sunburst"===i.chart.type?"sunburst":"pie"===i.chart.type||"polarArea"===i.chart.type||"donut"===i.chart.type?"pie":"radialBar",r=i.plotOptions[a].offsetY,n=i.plotOptions[a].offsetX;if(!i.legend.show||i.legend.floating){t.layout.gridHeight=e.svgHeight;const i=t.dom.elWrap.getBoundingClientRect().width;return t.layout.gridWidth=Math.min(i,t.layout.gridHeight),t.layout.translateY=r,void(t.layout.translateX=n+(e.svgWidth-t.layout.gridWidth)/2)}switch(i.legend.position){case"bottom":t.layout.gridHeight=e.svgHeight-this.lgRect.height,t.layout.gridWidth=e.svgWidth,t.layout.translateY=r-10,t.layout.translateX=n+(e.svgWidth-t.layout.gridWidth)/2;break;case"top":t.layout.gridHeight=e.svgHeight-this.lgRect.height,t.layout.gridWidth=e.svgWidth,t.layout.translateY=this.lgRect.height+r+10,t.layout.translateX=n+(e.svgWidth-t.layout.gridWidth)/2;break;case"left":t.layout.gridWidth=e.svgWidth-this.lgRect.width-s,t.layout.gridHeight="auto"!==i.chart.height?e.svgHeight:t.layout.gridWidth,t.layout.translateY=r,t.layout.translateX=n+this.lgRect.width+s;break;case"right":t.layout.gridWidth=e.svgWidth-this.lgRect.width-s-5,t.layout.gridHeight="auto"!==i.chart.height?e.svgHeight:t.layout.gridWidth,t.layout.translateY=r,t.layout.translateX=n+10;break;default:throw new Error("Legend position not supported")}}conditionalChecksForAxisCoords(t,e,i){const s=this.w,a=s.labelData.hasXaxisGroups?2:1,r=i.height+t.height+e.height,n=s.axisFlags.isMultiLineX?1.2:B,o=s.layout.rotateXLabels?22:10,l=s.layout.rotateXLabels&&"bottom"===s.config.legend.position?10:0;this.xAxisHeight=r*n+a*o+l,this.xAxisWidth=t.width,this.xAxisHeight-e.height>s.config.xaxis.labels.maxHeight&&(this.xAxisHeight=s.config.xaxis.labels.maxHeight),s.config.xaxis.labels.minHeight&&this.xAxisHeight{h+=t.labels.minWidth,c+=t.labels.maxWidth}),this.yAxisWidthc&&(this.yAxisWidth=c)}}const hi=1e3,ci=6e4,di=36e5,pi=24*di,ui=7*pi,gi=30*pi,fi=365*pi,xi=10/86400,mi=[{unit:"second",step:1,approxMs:hi},{unit:"second",step:5,approxMs:5e3},{unit:"second",step:15,approxMs:15e3},{unit:"second",step:30,approxMs:3e4},{unit:"minute",step:1,approxMs:ci},{unit:"minute",step:5,approxMs:3e5},{unit:"minute",step:15,approxMs:9e5},{unit:"minute",step:30,approxMs:18e5},{unit:"hour",step:1,approxMs:di},{unit:"hour",step:3,approxMs:3*di},{unit:"hour",step:6,approxMs:6*di},{unit:"hour",step:12,approxMs:12*di},{unit:"day",step:1,approxMs:pi},{unit:"day",step:2,approxMs:2*pi},{unit:"week",step:1,approxMs:ui},{unit:"week",step:2,approxMs:2*ui},{unit:"month",step:1,approxMs:gi},{unit:"month",step:3,approxMs:7776e6},{unit:"month",step:6,approxMs:15552e6},{unit:"year",step:1,approxMs:fi},{unit:"year",step:2,approxMs:63072e6},{unit:"year",step:5,approxMs:15768e7},{unit:"year",step:10,approxMs:31536e7},{unit:"year",step:25,approxMs:7884e8},{unit:"year",step:50,approxMs:15768e8},{unit:"year",step:100,approxMs:31536e8}];class bi{constructor(t,e){this.w=t,this.ctx=e,this.tickInterval=null,this.timeScaleArray=[],this.utc=t.config.xaxis.labels.datetimeUTC}calculateTimeScaleTicks(t,e){const i=this.w;if(i.globals.allSeriesCollapsed)return i.labelData.labels=[],i.labelData.timescaleLabels=[],this.timeScaleArray=[],[];const s=e-t,a=s/pi;i.interact.disableZoomIn=!1,i.interact.disableZoomOut=!1,a5e4&&(i.interact.disableZoomOut=!0);const r=Number.isFinite(i.config.xaxis.tickAmount)?i.config.xaxis.tickAmount:10;this.tickInterval=function(t,e){(!Number.isFinite(e)||e<=0)&&(e=10);if(t<=0)return mi[0];const i=t/e;let s=mi[0],a=1/0;for(const t of mi){const e=Math.abs(Math.log(t.approxMs/i));e0?(h-t)/o*n:0;l.push({timestamp:h,position:s,unit:i.unit,year:e.year,month:e.month+1,day:e.date,hour:e.hour,minute:e.minute,second:e.second,value:h}),h=a.addInterval(h,i.unit,i.step,r),c++}return l}recalcDimensionsBasedOnFormat(t){const e=this.w,i=this.formatDates(t),s=this.removeOverlappingTS(i);e.labelData.timescaleLabels=s.slice();const a=new li(this.w,this.ctx).plotCoords();this.ctx._writeLayoutCoords(a.layout)}formatDates(t){const e=this.w,i=new A(e),s=e.config.xaxis.labels.format,a=e.config.xaxis.labels.datetimeFormatter,r=this.utc,n=(t,e=2)=>String(t).padStart(e,"0"),o=s||this._effectiveFormat(t,a);return t.map(t=>{const e=i.getDate(t.timestamp),s=i.formatDate(e,o);return{dateString:`${t.year}-${n(t.month)}-${n(t.day)}T${n(t.hour)}:${n(t.minute)}:${n(t.second)}.000${r?"Z":""}`,position:t.position,value:s,unit:t.unit,year:t.year,month:t.month}})}_effectiveFormat(t,e){if(0===t.length)return e.day||"dd MMM";const i=this.tickInterval&&this.tickInterval.unit||t[0].unit,s=e["week"===i?"day":i]||e.day||"dd MMM",a=t[0],r=t[t.length-1],n=a.year!==r.year,o=n||a.month!==r.month||a.day!==r.day,l=/y/i.test(s),h=/M/.test(s),c=/d/i.test(s);if("month"===i||"week"===i)return n&&!l?s+" yyyy":s;if("day"===i)return n&&!l?s+" yyyy":s;if("hour"===i||"minute"===i||"second"===i){if(o&&!c&&!h){return(n?"dd MMM yyyy":"dd MMM")+" "+s}return s}return s}removeOverlappingTS(t){if(0===t.length)return[];const e=this.w,i=new It(e);let s,a=!1;t[0].value&&t.every(e=>e.value.length===t[0].value.length)&&(a=!0,s=i.getTextRects(t[0].value,e.config.xaxis.labels.style.fontSize).width);let r=0;return t.map((n,o)=>{if(0===o)return n;if(!e.config.xaxis.labels.hideOverlappingLabels)return n;const l=a?s:i.getTextRects(t[r].value,e.config.xaxis.labels.style.fontSize).width,h=t[r].position;return n.position>h+l+10?(r=o,n):null}).filter(t=>null!==t)}}const yi="__apexcharts_registry__",wi="__apexcharts_custom_types__";function vi(){return globalThis[yi]}function Ai(){return globalThis[wi]}function Si(t){return Ai().has(t)}function Ci(t){Object.assign(vi(),t)}function ki(t){const e=vi()[t];if(!e)throw new Error(`ApexCharts: chart type "${t}" is not registered. Bundler: import 'apexcharts/${t}'. Script tag: add + + + - + - - + + - + - + - + - - - + + + - - + + - - + + - - + + - + - - + + + + - + + diff --git a/app/login/accept_invite.php b/app/login/accept_invite.php index 40e19cb..3ca1234 100644 --- a/app/login/accept_invite.php +++ b/app/login/accept_invite.php @@ -13,7 +13,7 @@ // Reject if a user is already logged in — opening an invite link in an active // session would bind invite state into the current session. if (!empty($_SESSION['login_company_id'])) { - require '../include_header.php'; + require __DIR__ . '/include_login_header.php'; ?>
@@ -59,7 +59,7 @@ } if ($invite_error) { - require '../include_header.php'; + require __DIR__ . '/include_login_header.php'; $msg = $invite_error === 'expired' ? ['icon' => 'ti-clock-x', 'title' => 'Invitation Expired', 'body' => 'This invitation link has expired. Please contact the company administrator to resend your invitation.'] @@ -98,7 +98,7 @@ $invite_email = htmlspecialchars($row['email']); $invite_role = htmlspecialchars(ucfirst($row['role'])); - require '../include_header.php'; + require __DIR__ . '/include_login_header.php'; ?> diff --git a/app/login/include_login_header.php b/app/login/include_login_header.php new file mode 100644 index 0000000..918f83e --- /dev/null +++ b/app/login/include_login_header.php @@ -0,0 +1,45 @@ + for the sign-in, registration, password-reset and invitation +// pages. Visitors here are not signed in, so they get only what these pages use: +// jQuery, Bootstrap, bootbox, the loading overlay, the theme CSS and +// ajax_core.js — not custom.js (every feature's API URLs), the template bundle, +// charts, the scanner or the export libraries that include_header.php loads. + +if (ob_get_level() === 0) { + ob_start(); +} +ini_set('display_errors', '0'); +ini_set('log_errors', '1'); + +require_once __DIR__ . '/../assets/utils/timezone.php'; +require_once __DIR__ . '/../assets/utils/page_headers.php'; +send_page_security_headers(); + +$vendor_url = $server_url . 'assets/vendor/'; +?> + + + + + + BRN WMS + + + + + + + + + + + + + + + + + + + + diff --git a/app/login/invited_onboarding.php b/app/login/invited_onboarding.php index f5505e3..649d328 100644 --- a/app/login/invited_onboarding.php +++ b/app/login/invited_onboarding.php @@ -13,7 +13,7 @@ // Reject if a user is already logged in — opening an invite link in an active // session would bind a different account's identity into the current session. if (!empty($_SESSION['login_company_id'])) { - require '../include_header.php'; + require __DIR__ . '/include_login_header.php'; ?>
@@ -60,7 +60,7 @@ } if ($invite_error) { - require '../include_header.php'; + require __DIR__ . '/include_login_header.php'; $msg = $invite_error === 'expired' ? ['icon' => 'ti-clock-x', 'title' => 'Invitation Expired', 'body' => 'This invitation link has expired. Please contact your administrator to send a new invitation.'] @@ -101,7 +101,7 @@ $company_name = htmlspecialchars($row['company_name']); $invite_email = htmlspecialchars($row['email']); - require '../include_header.php'; + require __DIR__ . '/include_login_header.php'; ?> @@ -178,7 +178,7 @@
- + +
diff --git a/app/reports/stock_movement.php b/app/reports/stock_movement.php index a5ee3b2..9fe4771 100644 --- a/app/reports/stock_movement.php +++ b/app/reports/stock_movement.php @@ -699,11 +699,11 @@ - + - - + + diff --git a/app/setting/profile.php b/app/setting/profile.php index a5eaa1e..943076d 100644 --- a/app/setting/profile.php +++ b/app/setting/profile.php @@ -7,7 +7,7 @@ - + @@ -350,7 +350,7 @@ // ═══════════════════════════════════════════════════════ function load_countries() { return $.getJSON( - 'https://cdn.jsdelivr.net/npm/world_countries_lists@latest/data/countries/en/countries.json' + 'assets/vendor/world_countries_lists/3.3.0/countries.json' ).then(function(data) { const $sel = $('#country'); // Thailand first for convenience, then alphabetical diff --git a/landing/css/bootstrap.min.css b/landing/css/bootstrap.min.css index 02ae65b..cf6afa8 100644 --- a/landing/css/bootstrap.min.css +++ b/landing/css/bootstrap.min.css @@ -3,5 +3,4 @@ * Copyright 2011-2021 The Bootstrap Authors * Copyright 2011-2021 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-rgb:33,37,41;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-bg:#fff}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{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,small{font-size:.875em}.mark,mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.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:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:#6c757d}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{width:100%;padding-right:var(--bs-gutter-x,.75rem);padding-left:var(--bs-gutter-x,.75rem);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(var(--bs-gutter-y) * -1);margin-right:calc(var(--bs-gutter-x) * -.5);margin-left:calc(var(--bs-gutter-x) * -.5)}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-bg:transparent;--bs-table-accent-bg:transparent;--bs-table-striped-color:#212529;--bs-table-striped-bg:rgba(0, 0, 0, 0.05);--bs-table-active-color:#212529;--bs-table-active-bg:rgba(0, 0, 0, 0.1);--bs-table-hover-color:#212529;--bs-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:#212529;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:last-child)>:last-child>*{border-bottom-color:currentColor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-striped>tbody>tr:nth-of-type(odd){--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg:var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover{--bs-table-accent-bg:var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg:#cfe2ff;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:#000;border-color:#bacbe6}.table-secondary{--bs-table-bg:#e2e3e5;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:#000;border-color:#cbccce}.table-success{--bs-table-bg:#d1e7dd;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:#000;border-color:#bcd0c7}.table-info{--bs-table-bg:#cff4fc;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:#000;border-color:#badce3}.table-warning{--bs-table-bg:#fff3cd;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:#000;border-color:#e6dbb9}.table-danger{--bs-table-bg:#f8d7da;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:#000;border-color:#dfc2c4}.table-light{--bs-table-bg:#f8f9fa;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:#000;border-color:#dfe0e1}.table-dark{--bs-table-bg:#212529;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:#fff;border-color:#373b3e}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#6c757d}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#212529;background-color:#fff;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dde0e3}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + .5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{width:3rem;height:auto;padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em;border-radius:.25rem}.form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.25rem}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(0.75rem - 3px);font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;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='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{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='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;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")}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control{padding:1rem .75rem}.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#198754}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(25,135,84,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#198754;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#198754}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#198754}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#198754}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#198754}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group .form-control.is-valid,.input-group .form-select.is-valid,.was-validated .input-group .form-control:valid,.was-validated .input-group .form-select:valid{z-index:1}.input-group .form-control.is-valid:focus,.input-group .form-select.is-valid:focus,.was-validated .input-group .form-control:valid:focus,.was-validated .input-group .form-select:valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#dc3545}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#dc3545}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#dc3545}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group .form-control.is-invalid,.input-group .form-select.is-invalid,.was-validated .input-group .form-control:invalid,.was-validated .input-group .form-select:invalid{z-index:2}.input-group .form-control.is-invalid:focus,.input-group .form-select.is-invalid:focus,.was-validated .input-group .form-control:invalid:focus,.was-validated .input-group .form-select:invalid:focus{z-index:3}.btn{display:inline-block;font-weight:400;line-height:1.5;color:#212529;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:#0b5ed7;border-color:#0a58ca}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#0b5ed7;border-color:#0a58ca;box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-check:active+.btn-primary,.btn-check:checked+.btn-primary,.btn-primary.active,.btn-primary:active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0a58ca;border-color:#0a53be}.btn-check:active+.btn-primary:focus,.btn-check:checked+.btn-primary:focus,.btn-primary.active:focus,.btn-primary:active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5c636a;border-color:#565e64}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#fff;background-color:#5c636a;border-color:#565e64;box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-check:active+.btn-secondary,.btn-check:checked+.btn-secondary,.btn-secondary.active,.btn-secondary:active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#565e64;border-color:#51585e}.btn-check:active+.btn-secondary:focus,.btn-check:checked+.btn-secondary:focus,.btn-secondary.active:focus,.btn-secondary:active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-success{color:#fff;background-color:#198754;border-color:#198754}.btn-success:hover{color:#fff;background-color:#157347;border-color:#146c43}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#157347;border-color:#146c43;box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-check:active+.btn-success,.btn-check:checked+.btn-success,.btn-success.active,.btn-success:active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#146c43;border-color:#13653f}.btn-check:active+.btn-success:focus,.btn-check:checked+.btn-success:focus,.btn-success.active:focus,.btn-success:active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#198754;border-color:#198754}.btn-info{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-info:hover{color:#000;background-color:#31d2f2;border-color:#25cff2}.btn-check:focus+.btn-info,.btn-info:focus{color:#000;background-color:#31d2f2;border-color:#25cff2;box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-check:active+.btn-info,.btn-check:checked+.btn-info,.btn-info.active,.btn-info:active,.show>.btn-info.dropdown-toggle{color:#000;background-color:#3dd5f3;border-color:#25cff2}.btn-check:active+.btn-info:focus,.btn-check:checked+.btn-info:focus,.btn-info.active:focus,.btn-info:active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-info.disabled,.btn-info:disabled{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-warning{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#000;background-color:#ffca2c;border-color:#ffc720}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#000;background-color:#ffca2c;border-color:#ffc720;box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-check:active+.btn-warning,.btn-check:checked+.btn-warning,.btn-warning.active,.btn-warning:active,.show>.btn-warning.dropdown-toggle{color:#000;background-color:#ffcd39;border-color:#ffc720}.btn-check:active+.btn-warning:focus,.btn-check:checked+.btn-warning:focus,.btn-warning.active:focus,.btn-warning:active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#bb2d3b;border-color:#b02a37}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#bb2d3b;border-color:#b02a37;box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-check:active+.btn-danger,.btn-check:checked+.btn-danger,.btn-danger.active,.btn-danger:active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#b02a37;border-color:#a52834}.btn-check:active+.btn-danger:focus,.btn-check:checked+.btn-danger:focus,.btn-danger.active:focus,.btn-danger:active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-light{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:focus+.btn-light,.btn-light:focus{color:#000;background-color:#f9fafb;border-color:#f9fafb;box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-check:active+.btn-light,.btn-check:checked+.btn-light,.btn-light.active,.btn-light:active,.show>.btn-light.dropdown-toggle{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:active+.btn-light:focus,.btn-check:checked+.btn-light:focus,.btn-light.active:focus,.btn-light:active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-light.disabled,.btn-light:disabled{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-dark{color:#fff;background-color:#212529;border-color:#212529}.btn-dark:hover{color:#fff;background-color:#1c1f23;border-color:#1a1e21}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#1c1f23;border-color:#1a1e21;box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-check:active+.btn-dark,.btn-check:checked+.btn-dark,.btn-dark.active,.btn-dark:active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1a1e21;border-color:#191c1f}.btn-check:active+.btn-dark:focus,.btn-check:checked+.btn-dark:focus,.btn-dark.active:focus,.btn-dark:active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#212529;border-color:#212529}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-check:active+.btn-outline-primary,.btn-check:checked+.btn-outline-primary,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show,.btn-outline-primary:active{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:active+.btn-outline-primary:focus,.btn-check:checked+.btn-outline-primary:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus,.btn-outline-primary:active:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0d6efd;background-color:transparent}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-check:active+.btn-outline-secondary,.btn-check:checked+.btn-outline-secondary,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show,.btn-outline-secondary:active{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:active+.btn-outline-secondary:focus,.btn-check:checked+.btn-outline-secondary:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus,.btn-outline-secondary:active:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-success{color:#198754;border-color:#198754}.btn-outline-success:hover{color:#fff;background-color:#198754;border-color:#198754}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-check:active+.btn-outline-success,.btn-check:checked+.btn-outline-success,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show,.btn-outline-success:active{color:#fff;background-color:#198754;border-color:#198754}.btn-check:active+.btn-outline-success:focus,.btn-check:checked+.btn-outline-success:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus,.btn-outline-success:active:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#198754;background-color:transparent}.btn-outline-info{color:#0dcaf0;border-color:#0dcaf0}.btn-outline-info:hover{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-check:active+.btn-outline-info,.btn-check:checked+.btn-outline-info,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show,.btn-outline-info:active{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:active+.btn-outline-info:focus,.btn-check:checked+.btn-outline-info:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus,.btn-outline-info:active:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#0dcaf0;background-color:transparent}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-check:active+.btn-outline-warning,.btn-check:checked+.btn-outline-warning,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show,.btn-outline-warning:active{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:active+.btn-outline-warning:focus,.btn-check:checked+.btn-outline-warning:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus,.btn-outline-warning:active:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-check:active+.btn-outline-danger,.btn-check:checked+.btn-outline-danger,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show,.btn-outline-danger:active{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:active+.btn-outline-danger:focus,.btn-check:checked+.btn-outline-danger:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus,.btn-outline-danger:active:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-check:active+.btn-outline-light,.btn-check:checked+.btn-outline-light,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show,.btn-outline-light:active{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:active+.btn-outline-light:focus,.btn-check:checked+.btn-outline-light:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus,.btn-outline-light:active:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-dark{color:#212529;border-color:#212529}.btn-outline-dark:hover{color:#fff;background-color:#212529;border-color:#212529}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-check:active+.btn-outline-dark,.btn-check:checked+.btn-outline-dark,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show,.btn-outline-dark:active{color:#fff;background-color:#212529;border-color:#212529}.btn-check:active+.btn-outline-dark:focus,.btn-check:checked+.btn-outline-dark:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus,.btn-outline-dark:active:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#212529;background-color:transparent}.btn-link{font-weight:400;color:#0d6efd;text-decoration:underline}.btn-link:hover{color:#0a58ca}.btn-link.disabled,.btn-link:disabled{color:#6c757d}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropend,.dropstart,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin: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,.15);border-radius:.25rem}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:.125rem}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#1e2125;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#343a40;border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:focus,.dropdown-menu-dark .dropdown-item:hover{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#0d6efd}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;color:#0d6efd;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:#0a58ca}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;background:0 0;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6;isolation:isolate}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{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{background:0 0;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#0d6efd}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem;transition:box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas-header{display:none}.navbar-expand-sm .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-sm .offcanvas-bottom,.navbar-expand-sm .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas-header{display:none}.navbar-expand-md .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-md .offcanvas-bottom,.navbar-expand-md .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas-header{display:none}.navbar-expand-lg .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-lg .offcanvas-bottom,.navbar-expand-lg .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas-header{display:none}.navbar-expand-xl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xl .offcanvas-bottom,.navbar-expand-xl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xxl .offcanvas-bottom,.navbar-expand-xxl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas-header{display:none}.navbar-expand .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand .offcanvas-bottom,.navbar-expand .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.55)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.55);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.55)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.55)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.55);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.55)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:1rem}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.5rem 1rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.5rem;margin-bottom:-.5rem;margin-left:-.5rem;border-bottom:0}.card-header-pills{margin-right:-.5rem;margin-left:-.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-group>.card{margin-bottom:.75rem}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:1rem 1.25rem;font-size:1rem;color:#212529;text-align:left;background-color:#fff;border:0;border-radius:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:#0c63e4;background-color:#e7f1ff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.125)}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transform:rotate(-180deg)}.accordion-button::after{flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.accordion-header{margin-bottom:0}.accordion-item{background-color:#fff;border:1px solid rgba(0,0,0,.125)}.accordion-item:first-of-type{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.accordion-item:first-of-type .accordion-button{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.breadcrumb{display:flex;flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#0d6efd;text-decoration:none;background-color:#fff;border:1px solid #dee2e6;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:#0a58ca;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;color:#0a58ca;background-color:#e9ecef;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.375rem .75rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{color:#084298;background-color:#cfe2ff;border-color:#b6d4fe}.alert-primary .alert-link{color:#06357a}.alert-secondary{color:#41464b;background-color:#e2e3e5;border-color:#d3d6d8}.alert-secondary .alert-link{color:#34383c}.alert-success{color:#0f5132;background-color:#d1e7dd;border-color:#badbcc}.alert-success .alert-link{color:#0c4128}.alert-info{color:#055160;background-color:#cff4fc;border-color:#b6effb}.alert-info .alert-link{color:#04414d}.alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5}.alert-warning .alert-link{color:#523e02}.alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7}.alert-danger .alert-link{color:#6a1a21}.alert-light{color:#636464;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#4f5050}.alert-dark{color:#141619;background-color:#d3d3d4;border-color:#bcbebf}.alert-dark .alert-link{color:#101214}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:1rem}}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#0d6efd;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.5rem 1rem;color:#212529;text-decoration:none;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#084298;background-color:#cfe2ff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#084298;background-color:#bacbe6}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#084298;border-color:#084298}.list-group-item-secondary{color:#41464b;background-color:#e2e3e5}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#41464b;background-color:#cbccce}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#41464b;border-color:#41464b}.list-group-item-success{color:#0f5132;background-color:#d1e7dd}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#0f5132;background-color:#bcd0c7}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#0f5132;border-color:#0f5132}.list-group-item-info{color:#055160;background-color:#cff4fc}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#055160;background-color:#badce3}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#055160;border-color:#055160}.list-group-item-warning{color:#664d03;background-color:#fff3cd}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#664d03;background-color:#e6dbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#664d03;border-color:#664d03}.list-group-item-danger{color:#842029;background-color:#f8d7da}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#842029;background-color:#dfc2c4}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#842029;border-color:#842029}.list-group-item-light{color:#636464;background-color:#fefefe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#636464;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#636464;border-color:#636464}.list-group-item-dark{color:#141619;background-color:#d3d3d4}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#141619;background-color:#bebebf}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#141619;border-color:#141619}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#000;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25);opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:.25rem}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:.75rem}.toast-header{display:flex;align-items:center;padding:.5rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-header .btn-close{margin-right:-.375rem;margin-left:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal{position:fixed;top:0;left:0;z-index:1055;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .btn-close{padding:.5rem .5rem;margin:-.5rem -.5rem -.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.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}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;font-family:var(--bs-font-sans-serif);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:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[data-popper-placement^=right],.bs-tooltip-end{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[data-popper-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[data-popper-placement^=left],.bs-tooltip-start{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1070;display:block;max-width:276px;font-family:var(--bs-font-sans-serif);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:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f0f0f0}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#f0f0f0;border-bottom:1px solid rgba(0,0,0,.2);border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@-webkit-keyframes spinner-border{to{transform:rotate(360deg)}}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin-top:-.5rem;margin-right:-.5rem;margin-bottom:-.5rem}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid rgba(0,0,0,.2);transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid rgba(0,0,0,.2);transform:translateX(100%)}.offcanvas-top{top:0;right:0;left:0;height:30vh;max-height:100%;border-bottom:1px solid rgba(0,0,0,.2);transform:translateY(-100%)}.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid rgba(0,0,0,.2);transform:translateY(100%)}.offcanvas.show{transform:none}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentColor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{-webkit-animation:placeholder-glow 2s ease-in-out infinite;animation:placeholder-glow 2s ease-in-out infinite}@-webkit-keyframes placeholder-glow{50%{opacity:.2}}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;-webkit-animation:placeholder-wave 2s linear infinite;animation:placeholder-wave 2s linear infinite}@-webkit-keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.link-primary{color:#0d6efd}.link-primary:focus,.link-primary:hover{color:#0a58ca}.link-secondary{color:#6c757d}.link-secondary:focus,.link-secondary:hover{color:#565e64}.link-success{color:#198754}.link-success:focus,.link-success:hover{color:#146c43}.link-info{color:#0dcaf0}.link-info:focus,.link-info:hover{color:#3dd5f3}.link-warning{color:#ffc107}.link-warning:focus,.link-warning:hover{color:#ffcd39}.link-danger{color:#dc3545}.link-danger:focus,.link-danger:hover{color:#b02a37}.link-light{color:#f8f9fa}.link-light:focus,.link-light:hover{color:#f9fafb}.link-dark{color:#212529}.link-dark:focus,.link-dark:hover{color:#1a1e21}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:calc(3 / 4 * 100%)}.ratio-16x9{--bs-aspect-ratio:calc(9 / 16 * 100%)}.ratio-21x9{--bs-aspect-ratio:calc(9 / 21 * 100%)}.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}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:1px;min-height:1em;background-color:currentColor;opacity:.25}.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}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!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}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:1px solid #dee2e6!important}.border-0{border:0!important}.border-top{border-top:1px solid #dee2e6!important}.border-top-0{border-top:0!important}.border-end{border-right:1px solid #dee2e6!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:1px solid #dee2e6!important}.border-start-0{border-left:0!important}.border-primary{border-color:#0d6efd!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#198754!important}.border-info{border-color:#0dcaf0!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#212529!important}.border-white{border-color:#fff!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!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}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!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}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:#6c757d!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:.25rem!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:.2rem!important}.rounded-2{border-radius:.25rem!important}.rounded-3{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-end{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-start{border-bottom-left-radius:.25rem!important;border-top-left-radius:.25rem!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} -/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file + */:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-rgb:33,37,41;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-bg:#fff}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{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,small{font-size:.875em}.mark,mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.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:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:#6c757d}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{width:100%;padding-right:var(--bs-gutter-x,.75rem);padding-left:var(--bs-gutter-x,.75rem);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(var(--bs-gutter-y) * -1);margin-right:calc(var(--bs-gutter-x) * -.5);margin-left:calc(var(--bs-gutter-x) * -.5)}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-bg:transparent;--bs-table-accent-bg:transparent;--bs-table-striped-color:#212529;--bs-table-striped-bg:rgba(0, 0, 0, 0.05);--bs-table-active-color:#212529;--bs-table-active-bg:rgba(0, 0, 0, 0.1);--bs-table-hover-color:#212529;--bs-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:#212529;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:last-child)>:last-child>*{border-bottom-color:currentColor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-striped>tbody>tr:nth-of-type(odd){--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg:var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover{--bs-table-accent-bg:var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg:#cfe2ff;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:#000;border-color:#bacbe6}.table-secondary{--bs-table-bg:#e2e3e5;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:#000;border-color:#cbccce}.table-success{--bs-table-bg:#d1e7dd;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:#000;border-color:#bcd0c7}.table-info{--bs-table-bg:#cff4fc;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:#000;border-color:#badce3}.table-warning{--bs-table-bg:#fff3cd;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:#000;border-color:#e6dbb9}.table-danger{--bs-table-bg:#f8d7da;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:#000;border-color:#dfc2c4}.table-light{--bs-table-bg:#f8f9fa;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:#000;border-color:#dfe0e1}.table-dark{--bs-table-bg:#212529;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:#fff;border-color:#373b3e}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#6c757d}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#212529;background-color:#fff;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dde0e3}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + .5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{width:3rem;height:auto;padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em;border-radius:.25rem}.form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.25rem}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(0.75rem - 3px);font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;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='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{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='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;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")}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control{padding:1rem .75rem}.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#198754}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(25,135,84,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#198754;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#198754}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#198754}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#198754}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#198754}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group .form-control.is-valid,.input-group .form-select.is-valid,.was-validated .input-group .form-control:valid,.was-validated .input-group .form-select:valid{z-index:1}.input-group .form-control.is-valid:focus,.input-group .form-select.is-valid:focus,.was-validated .input-group .form-control:valid:focus,.was-validated .input-group .form-select:valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#dc3545}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#dc3545}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#dc3545}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group .form-control.is-invalid,.input-group .form-select.is-invalid,.was-validated .input-group .form-control:invalid,.was-validated .input-group .form-select:invalid{z-index:2}.input-group .form-control.is-invalid:focus,.input-group .form-select.is-invalid:focus,.was-validated .input-group .form-control:invalid:focus,.was-validated .input-group .form-select:invalid:focus{z-index:3}.btn{display:inline-block;font-weight:400;line-height:1.5;color:#212529;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:#0b5ed7;border-color:#0a58ca}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#0b5ed7;border-color:#0a58ca;box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-check:active+.btn-primary,.btn-check:checked+.btn-primary,.btn-primary.active,.btn-primary:active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0a58ca;border-color:#0a53be}.btn-check:active+.btn-primary:focus,.btn-check:checked+.btn-primary:focus,.btn-primary.active:focus,.btn-primary:active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5c636a;border-color:#565e64}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#fff;background-color:#5c636a;border-color:#565e64;box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-check:active+.btn-secondary,.btn-check:checked+.btn-secondary,.btn-secondary.active,.btn-secondary:active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#565e64;border-color:#51585e}.btn-check:active+.btn-secondary:focus,.btn-check:checked+.btn-secondary:focus,.btn-secondary.active:focus,.btn-secondary:active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-success{color:#fff;background-color:#198754;border-color:#198754}.btn-success:hover{color:#fff;background-color:#157347;border-color:#146c43}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#157347;border-color:#146c43;box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-check:active+.btn-success,.btn-check:checked+.btn-success,.btn-success.active,.btn-success:active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#146c43;border-color:#13653f}.btn-check:active+.btn-success:focus,.btn-check:checked+.btn-success:focus,.btn-success.active:focus,.btn-success:active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#198754;border-color:#198754}.btn-info{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-info:hover{color:#000;background-color:#31d2f2;border-color:#25cff2}.btn-check:focus+.btn-info,.btn-info:focus{color:#000;background-color:#31d2f2;border-color:#25cff2;box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-check:active+.btn-info,.btn-check:checked+.btn-info,.btn-info.active,.btn-info:active,.show>.btn-info.dropdown-toggle{color:#000;background-color:#3dd5f3;border-color:#25cff2}.btn-check:active+.btn-info:focus,.btn-check:checked+.btn-info:focus,.btn-info.active:focus,.btn-info:active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-info.disabled,.btn-info:disabled{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-warning{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#000;background-color:#ffca2c;border-color:#ffc720}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#000;background-color:#ffca2c;border-color:#ffc720;box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-check:active+.btn-warning,.btn-check:checked+.btn-warning,.btn-warning.active,.btn-warning:active,.show>.btn-warning.dropdown-toggle{color:#000;background-color:#ffcd39;border-color:#ffc720}.btn-check:active+.btn-warning:focus,.btn-check:checked+.btn-warning:focus,.btn-warning.active:focus,.btn-warning:active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#bb2d3b;border-color:#b02a37}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#bb2d3b;border-color:#b02a37;box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-check:active+.btn-danger,.btn-check:checked+.btn-danger,.btn-danger.active,.btn-danger:active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#b02a37;border-color:#a52834}.btn-check:active+.btn-danger:focus,.btn-check:checked+.btn-danger:focus,.btn-danger.active:focus,.btn-danger:active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-light{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:focus+.btn-light,.btn-light:focus{color:#000;background-color:#f9fafb;border-color:#f9fafb;box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-check:active+.btn-light,.btn-check:checked+.btn-light,.btn-light.active,.btn-light:active,.show>.btn-light.dropdown-toggle{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:active+.btn-light:focus,.btn-check:checked+.btn-light:focus,.btn-light.active:focus,.btn-light:active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-light.disabled,.btn-light:disabled{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-dark{color:#fff;background-color:#212529;border-color:#212529}.btn-dark:hover{color:#fff;background-color:#1c1f23;border-color:#1a1e21}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#1c1f23;border-color:#1a1e21;box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-check:active+.btn-dark,.btn-check:checked+.btn-dark,.btn-dark.active,.btn-dark:active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1a1e21;border-color:#191c1f}.btn-check:active+.btn-dark:focus,.btn-check:checked+.btn-dark:focus,.btn-dark.active:focus,.btn-dark:active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#212529;border-color:#212529}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-check:active+.btn-outline-primary,.btn-check:checked+.btn-outline-primary,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show,.btn-outline-primary:active{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:active+.btn-outline-primary:focus,.btn-check:checked+.btn-outline-primary:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus,.btn-outline-primary:active:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0d6efd;background-color:transparent}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-check:active+.btn-outline-secondary,.btn-check:checked+.btn-outline-secondary,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show,.btn-outline-secondary:active{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:active+.btn-outline-secondary:focus,.btn-check:checked+.btn-outline-secondary:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus,.btn-outline-secondary:active:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-success{color:#198754;border-color:#198754}.btn-outline-success:hover{color:#fff;background-color:#198754;border-color:#198754}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-check:active+.btn-outline-success,.btn-check:checked+.btn-outline-success,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show,.btn-outline-success:active{color:#fff;background-color:#198754;border-color:#198754}.btn-check:active+.btn-outline-success:focus,.btn-check:checked+.btn-outline-success:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus,.btn-outline-success:active:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#198754;background-color:transparent}.btn-outline-info{color:#0dcaf0;border-color:#0dcaf0}.btn-outline-info:hover{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-check:active+.btn-outline-info,.btn-check:checked+.btn-outline-info,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show,.btn-outline-info:active{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:active+.btn-outline-info:focus,.btn-check:checked+.btn-outline-info:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus,.btn-outline-info:active:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#0dcaf0;background-color:transparent}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-check:active+.btn-outline-warning,.btn-check:checked+.btn-outline-warning,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show,.btn-outline-warning:active{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:active+.btn-outline-warning:focus,.btn-check:checked+.btn-outline-warning:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus,.btn-outline-warning:active:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-check:active+.btn-outline-danger,.btn-check:checked+.btn-outline-danger,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show,.btn-outline-danger:active{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:active+.btn-outline-danger:focus,.btn-check:checked+.btn-outline-danger:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus,.btn-outline-danger:active:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-check:active+.btn-outline-light,.btn-check:checked+.btn-outline-light,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show,.btn-outline-light:active{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:active+.btn-outline-light:focus,.btn-check:checked+.btn-outline-light:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus,.btn-outline-light:active:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-dark{color:#212529;border-color:#212529}.btn-outline-dark:hover{color:#fff;background-color:#212529;border-color:#212529}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-check:active+.btn-outline-dark,.btn-check:checked+.btn-outline-dark,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show,.btn-outline-dark:active{color:#fff;background-color:#212529;border-color:#212529}.btn-check:active+.btn-outline-dark:focus,.btn-check:checked+.btn-outline-dark:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus,.btn-outline-dark:active:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#212529;background-color:transparent}.btn-link{font-weight:400;color:#0d6efd;text-decoration:underline}.btn-link:hover{color:#0a58ca}.btn-link.disabled,.btn-link:disabled{color:#6c757d}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropend,.dropstart,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin: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,.15);border-radius:.25rem}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:.125rem}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#1e2125;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#343a40;border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:focus,.dropdown-menu-dark .dropdown-item:hover{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#0d6efd}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;color:#0d6efd;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:#0a58ca}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;background:0 0;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6;isolation:isolate}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{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{background:0 0;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#0d6efd}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem;transition:box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas-header{display:none}.navbar-expand-sm .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-sm .offcanvas-bottom,.navbar-expand-sm .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas-header{display:none}.navbar-expand-md .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-md .offcanvas-bottom,.navbar-expand-md .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas-header{display:none}.navbar-expand-lg .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-lg .offcanvas-bottom,.navbar-expand-lg .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas-header{display:none}.navbar-expand-xl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xl .offcanvas-bottom,.navbar-expand-xl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xxl .offcanvas-bottom,.navbar-expand-xxl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas-header{display:none}.navbar-expand .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand .offcanvas-bottom,.navbar-expand .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.55)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.55);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.55)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.55)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.55);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.55)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:1rem}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.5rem 1rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.5rem;margin-bottom:-.5rem;margin-left:-.5rem;border-bottom:0}.card-header-pills{margin-right:-.5rem;margin-left:-.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-group>.card{margin-bottom:.75rem}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:1rem 1.25rem;font-size:1rem;color:#212529;text-align:left;background-color:#fff;border:0;border-radius:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:#0c63e4;background-color:#e7f1ff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.125)}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transform:rotate(-180deg)}.accordion-button::after{flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.accordion-header{margin-bottom:0}.accordion-item{background-color:#fff;border:1px solid rgba(0,0,0,.125)}.accordion-item:first-of-type{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.accordion-item:first-of-type .accordion-button{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.breadcrumb{display:flex;flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#0d6efd;text-decoration:none;background-color:#fff;border:1px solid #dee2e6;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:#0a58ca;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;color:#0a58ca;background-color:#e9ecef;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.375rem .75rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{color:#084298;background-color:#cfe2ff;border-color:#b6d4fe}.alert-primary .alert-link{color:#06357a}.alert-secondary{color:#41464b;background-color:#e2e3e5;border-color:#d3d6d8}.alert-secondary .alert-link{color:#34383c}.alert-success{color:#0f5132;background-color:#d1e7dd;border-color:#badbcc}.alert-success .alert-link{color:#0c4128}.alert-info{color:#055160;background-color:#cff4fc;border-color:#b6effb}.alert-info .alert-link{color:#04414d}.alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5}.alert-warning .alert-link{color:#523e02}.alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7}.alert-danger .alert-link{color:#6a1a21}.alert-light{color:#636464;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#4f5050}.alert-dark{color:#141619;background-color:#d3d3d4;border-color:#bcbebf}.alert-dark .alert-link{color:#101214}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:1rem}}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#0d6efd;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.5rem 1rem;color:#212529;text-decoration:none;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#084298;background-color:#cfe2ff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#084298;background-color:#bacbe6}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#084298;border-color:#084298}.list-group-item-secondary{color:#41464b;background-color:#e2e3e5}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#41464b;background-color:#cbccce}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#41464b;border-color:#41464b}.list-group-item-success{color:#0f5132;background-color:#d1e7dd}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#0f5132;background-color:#bcd0c7}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#0f5132;border-color:#0f5132}.list-group-item-info{color:#055160;background-color:#cff4fc}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#055160;background-color:#badce3}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#055160;border-color:#055160}.list-group-item-warning{color:#664d03;background-color:#fff3cd}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#664d03;background-color:#e6dbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#664d03;border-color:#664d03}.list-group-item-danger{color:#842029;background-color:#f8d7da}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#842029;background-color:#dfc2c4}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#842029;border-color:#842029}.list-group-item-light{color:#636464;background-color:#fefefe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#636464;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#636464;border-color:#636464}.list-group-item-dark{color:#141619;background-color:#d3d3d4}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#141619;background-color:#bebebf}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#141619;border-color:#141619}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#000;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25);opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:.25rem}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:.75rem}.toast-header{display:flex;align-items:center;padding:.5rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-header .btn-close{margin-right:-.375rem;margin-left:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal{position:fixed;top:0;left:0;z-index:1055;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .btn-close{padding:.5rem .5rem;margin:-.5rem -.5rem -.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.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}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;font-family:var(--bs-font-sans-serif);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:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[data-popper-placement^=right],.bs-tooltip-end{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[data-popper-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[data-popper-placement^=left],.bs-tooltip-start{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1070;display:block;max-width:276px;font-family:var(--bs-font-sans-serif);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:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f0f0f0}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#f0f0f0;border-bottom:1px solid rgba(0,0,0,.2);border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@-webkit-keyframes spinner-border{to{transform:rotate(360deg)}}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin-top:-.5rem;margin-right:-.5rem;margin-bottom:-.5rem}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid rgba(0,0,0,.2);transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid rgba(0,0,0,.2);transform:translateX(100%)}.offcanvas-top{top:0;right:0;left:0;height:30vh;max-height:100%;border-bottom:1px solid rgba(0,0,0,.2);transform:translateY(-100%)}.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid rgba(0,0,0,.2);transform:translateY(100%)}.offcanvas.show{transform:none}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentColor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{-webkit-animation:placeholder-glow 2s ease-in-out infinite;animation:placeholder-glow 2s ease-in-out infinite}@-webkit-keyframes placeholder-glow{50%{opacity:.2}}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;-webkit-animation:placeholder-wave 2s linear infinite;animation:placeholder-wave 2s linear infinite}@-webkit-keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.link-primary{color:#0d6efd}.link-primary:focus,.link-primary:hover{color:#0a58ca}.link-secondary{color:#6c757d}.link-secondary:focus,.link-secondary:hover{color:#565e64}.link-success{color:#198754}.link-success:focus,.link-success:hover{color:#146c43}.link-info{color:#0dcaf0}.link-info:focus,.link-info:hover{color:#3dd5f3}.link-warning{color:#ffc107}.link-warning:focus,.link-warning:hover{color:#ffcd39}.link-danger{color:#dc3545}.link-danger:focus,.link-danger:hover{color:#b02a37}.link-light{color:#f8f9fa}.link-light:focus,.link-light:hover{color:#f9fafb}.link-dark{color:#212529}.link-dark:focus,.link-dark:hover{color:#1a1e21}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:calc(3 / 4 * 100%)}.ratio-16x9{--bs-aspect-ratio:calc(9 / 16 * 100%)}.ratio-21x9{--bs-aspect-ratio:calc(9 / 21 * 100%)}.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}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:1px;min-height:1em;background-color:currentColor;opacity:.25}.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}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!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}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:1px solid #dee2e6!important}.border-0{border:0!important}.border-top{border-top:1px solid #dee2e6!important}.border-top-0{border-top:0!important}.border-end{border-right:1px solid #dee2e6!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:1px solid #dee2e6!important}.border-start-0{border-left:0!important}.border-primary{border-color:#0d6efd!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#198754!important}.border-info{border-color:#0dcaf0!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#212529!important}.border-white{border-color:#fff!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!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}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!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}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:#6c757d!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:.25rem!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:.2rem!important}.rounded-2{border-radius:.25rem!important}.rounded-3{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-end{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-start{border-bottom-left-radius:.25rem!important;border-top-left-radius:.25rem!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} \ No newline at end of file diff --git a/landing/includes/footer.php b/landing/includes/footer.php index ca9b7af..6317a9d 100644 --- a/landing/includes/footer.php +++ b/landing/includes/footer.php @@ -44,6 +44,6 @@ $app_url = $app_url ?? '/app'; - diff --git a/landing/includes/head.php b/landing/includes/head.php index eea8e87..82a43d8 100644 --- a/landing/includes/head.php +++ b/landing/includes/head.php @@ -12,7 +12,7 @@ $base = $base ?? '/landing'; <?= htmlspecialchars($page_title) ?> - + diff --git a/landing/includes/security_headers.php b/landing/includes/security_headers.php new file mode 100644 index 0000000..757f3e4 --- /dev/null +++ b/landing/includes/security_headers.php @@ -0,0 +1,12 @@ +{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i="#"+i.split("#")[1]),e=i&&"#"!==i?i.trim():null}return e},n=t=>{const e=s(t);return e&&document.querySelector(e)?e:null},o=t=>{const e=s(t);return e?document.querySelector(e):null},r=t=>{t.dispatchEvent(new Event("transitionend"))},a=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),l=t=>a(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(t):null,c=(t,e,i)=>{Object.keys(i).forEach(s=>{const n=i[s],o=e[s],r=o&&a(o)?"element":null==(l=o)?""+l:{}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase();var l;if(!new RegExp(n).test(r))throw new TypeError(`${t.toUpperCase()}: Option "${s}" provided type "${r}" but expected type "${n}".`)})},h=t=>!(!a(t)||0===t.getClientRects().length)&&"visible"===getComputedStyle(t).getPropertyValue("visibility"),d=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),u=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?u(t.parentNode):null},g=()=>{},p=t=>{t.offsetHeight},f=()=>{const{jQuery:t}=window;return t&&!document.body.hasAttribute("data-bs-no-jquery")?t:null},_=[],m=()=>"rtl"===document.documentElement.dir,b=t=>{var e;e=()=>{const e=f();if(e){const i=t.NAME,s=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=s,t.jQueryInterface)}},"loading"===document.readyState?(_.length||document.addEventListener("DOMContentLoaded",()=>{_.forEach(t=>t())}),_.push(e)):e()},v=t=>{"function"==typeof t&&t()},y=(t,e,i=!0)=>{if(!i)return void v(t);const s=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const s=Number.parseFloat(e),n=Number.parseFloat(i);return s||n?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let n=!1;const o=({target:i})=>{i===e&&(n=!0,e.removeEventListener("transitionend",o),v(t))};e.addEventListener("transitionend",o),setTimeout(()=>{n||r(e)},s)},w=(t,e,i,s)=>{let n=t.indexOf(e);if(-1===n)return t[!i&&s?t.length-1:0];const o=t.length;return n+=i?1:-1,s&&(n=(n+o)%o),t[Math.max(0,Math.min(n,o-1))]},E=/[^.]*(?=\..*)\.|.*/,A=/\..*/,T=/::\d+$/,C={};let k=1;const L={mouseenter:"mouseover",mouseleave:"mouseout"},S=/^(mouseenter|mouseleave)/i,O=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function N(t,e){return e&&`${e}::${k++}`||t.uidEvent||k++}function D(t){const e=N(t);return t.uidEvent=e,C[e]=C[e]||{},C[e]}function I(t,e,i=null){const s=Object.keys(t);for(let n=0,o=s.length;nfunction(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};s?s=t(s):i=t(i)}const[o,r,a]=x(e,i,s),l=D(t),c=l[a]||(l[a]={}),h=I(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&n);const d=N(r,e.replace(E,"")),u=o?function(t,e,i){return function s(n){const o=t.querySelectorAll(e);for(let{target:r}=n;r&&r!==this;r=r.parentNode)for(let a=o.length;a--;)if(o[a]===r)return n.delegateTarget=r,s.oneOff&&H.off(t,n.type,e,i),i.apply(r,[n]);return null}}(t,i,s):function(t,e){return function i(s){return s.delegateTarget=t,i.oneOff&&H.off(t,s.type,e),e.apply(t,[s])}}(t,i);u.delegationSelector=o?i:null,u.originalHandler=r,u.oneOff=n,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function M(t,e,i,s,n){const o=I(e[i],s,n);o&&(t.removeEventListener(i,o,Boolean(n)),delete e[i][o.uidEvent])}function j(t){return t=t.replace(A,""),L[t]||t}const H={on(t,e,i,s){P(t,e,i,s,!1)},one(t,e,i,s){P(t,e,i,s,!0)},off(t,e,i,s){if("string"!=typeof e||!t)return;const[n,o,r]=x(e,i,s),a=r!==e,l=D(t),c=e.startsWith(".");if(void 0!==o){if(!l||!l[r])return;return void M(t,l,r,o,n?i:null)}c&&Object.keys(l).forEach(i=>{!function(t,e,i,s){const n=e[i]||{};Object.keys(n).forEach(o=>{if(o.includes(s)){const s=n[o];M(t,e,i,s.originalHandler,s.delegationSelector)}})}(t,l,i,e.slice(1))});const h=l[r]||{};Object.keys(h).forEach(i=>{const s=i.replace(T,"");if(!a||e.includes(s)){const e=h[i];M(t,l,r,e.originalHandler,e.delegationSelector)}})},trigger(t,e,i){if("string"!=typeof e||!t)return null;const s=f(),n=j(e),o=e!==n,r=O.has(n);let a,l=!0,c=!0,h=!1,d=null;return o&&s&&(a=s.Event(e,i),s(t).trigger(a),l=!a.isPropagationStopped(),c=!a.isImmediatePropagationStopped(),h=a.isDefaultPrevented()),r?(d=document.createEvent("HTMLEvents"),d.initEvent(n,l,!0)):d=new CustomEvent(e,{bubbles:l,cancelable:!0}),void 0!==i&&Object.keys(i).forEach(t=>{Object.defineProperty(d,t,{get:()=>i[t]})}),h&&d.preventDefault(),c&&t.dispatchEvent(d),d.defaultPrevented&&void 0!==a&&a.preventDefault(),d}},B=new Map;var z={set(t,e,i){B.has(t)||B.set(t,new Map);const s=B.get(t);s.has(e)||0===s.size?s.set(e,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(t,e)=>B.has(t)&&B.get(t).get(e)||null,remove(t,e){if(!B.has(t))return;const i=B.get(t);i.delete(e),0===i.size&&B.delete(t)}};class R{constructor(t){(t=l(t))&&(this._element=t,z.set(this._element,this.constructor.DATA_KEY,this))}dispose(){z.remove(this._element,this.constructor.DATA_KEY),H.off(this._element,this.constructor.EVENT_KEY),Object.getOwnPropertyNames(this).forEach(t=>{this[t]=null})}_queueCallback(t,e,i=!0){y(t,e,i)}static getInstance(t){return z.get(l(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.1.0"}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}static get DATA_KEY(){return"bs."+this.NAME}static get EVENT_KEY(){return"."+this.DATA_KEY}}const F=(t,e="hide")=>{const i="click.dismiss"+t.EVENT_KEY,s=t.NAME;H.on(document,i,`[data-bs-dismiss="${s}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),d(this))return;const n=o(this)||this.closest("."+s);t.getOrCreateInstance(n)[e]()}))};class W extends R{static get NAME(){return"alert"}close(){if(H.trigger(this._element,"close.bs.alert").defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback(()=>this._destroyElement(),this._element,t)}_destroyElement(){this._element.remove(),H.trigger(this._element,"closed.bs.alert"),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=W.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}F(W,"close"),b(W);class $ extends R{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=$.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}function q(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function U(t){return t.replace(/[A-Z]/g,t=>"-"+t.toLowerCase())}H.on(document,"click.bs.button.data-api",'[data-bs-toggle="button"]',t=>{t.preventDefault();const e=t.target.closest('[data-bs-toggle="button"]');$.getOrCreateInstance(e).toggle()}),b($);const K={setDataAttribute(t,e,i){t.setAttribute("data-bs-"+U(e),i)},removeDataAttribute(t,e){t.removeAttribute("data-bs-"+U(e))},getDataAttributes(t){if(!t)return{};const e={};return Object.keys(t.dataset).filter(t=>t.startsWith("bs")).forEach(i=>{let s=i.replace(/^bs/,"");s=s.charAt(0).toLowerCase()+s.slice(1,s.length),e[s]=q(t.dataset[i])}),e},getDataAttribute:(t,e)=>q(t.getAttribute("data-bs-"+U(e))),offset(t){const e=t.getBoundingClientRect();return{top:e.top+window.pageYOffset,left:e.left+window.pageXOffset}},position:t=>({top:t.offsetTop,left:t.offsetLeft})},V={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter(t=>t.matches(e)),parents(t,e){const i=[];let s=t.parentNode;for(;s&&s.nodeType===Node.ELEMENT_NODE&&3!==s.nodeType;)s.matches(e)&&i.push(s),s=s.parentNode;return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(t=>t+':not([tabindex^="-"])').join(", ");return this.find(e,t).filter(t=>!d(t)&&h(t))}},X={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},Y={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},Q="next",G="prev",Z="left",J="right",tt={ArrowLeft:J,ArrowRight:Z};class et extends R{constructor(t,e){super(t),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._indicatorsElement=V.findOne(".carousel-indicators",this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners()}static get Default(){return X}static get NAME(){return"carousel"}next(){this._slide(Q)}nextWhenVisible(){!document.hidden&&h(this._element)&&this.next()}prev(){this._slide(G)}pause(t){t||(this._isPaused=!0),V.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(r(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(t){this._activeElement=V.findOne(".active.carousel-item",this._element);const e=this._getItemIndex(this._activeElement);if(t>this._items.length-1||t<0)return;if(this._isSliding)return void H.one(this._element,"slid.bs.carousel",()=>this.to(t));if(e===t)return this.pause(),void this.cycle();const i=t>e?Q:G;this._slide(i,this._items[t])}_getConfig(t){return t={...X,...K.getDataAttributes(this._element),..."object"==typeof t?t:{}},c("carousel",t,Y),t}_handleSwipe(){const t=Math.abs(this.touchDeltaX);if(t<=40)return;const e=t/this.touchDeltaX;this.touchDeltaX=0,e&&this._slide(e>0?J:Z)}_addEventListeners(){this._config.keyboard&&H.on(this._element,"keydown.bs.carousel",t=>this._keydown(t)),"hover"===this._config.pause&&(H.on(this._element,"mouseenter.bs.carousel",t=>this.pause(t)),H.on(this._element,"mouseleave.bs.carousel",t=>this.cycle(t))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()}_addTouchEventListeners(){const t=t=>{!this._pointerEvent||"pen"!==t.pointerType&&"touch"!==t.pointerType?this._pointerEvent||(this.touchStartX=t.touches[0].clientX):this.touchStartX=t.clientX},e=t=>{this.touchDeltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this.touchStartX},i=t=>{!this._pointerEvent||"pen"!==t.pointerType&&"touch"!==t.pointerType||(this.touchDeltaX=t.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(t=>this.cycle(t),500+this._config.interval))};V.find(".carousel-item img",this._element).forEach(t=>{H.on(t,"dragstart.bs.carousel",t=>t.preventDefault())}),this._pointerEvent?(H.on(this._element,"pointerdown.bs.carousel",e=>t(e)),H.on(this._element,"pointerup.bs.carousel",t=>i(t)),this._element.classList.add("pointer-event")):(H.on(this._element,"touchstart.bs.carousel",e=>t(e)),H.on(this._element,"touchmove.bs.carousel",t=>e(t)),H.on(this._element,"touchend.bs.carousel",t=>i(t)))}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=tt[t.key];e&&(t.preventDefault(),this._slide(e))}_getItemIndex(t){return this._items=t&&t.parentNode?V.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)}_getItemByOrder(t,e){const i=t===Q;return w(this._items,e,i,this._config.wrap)}_triggerSlideEvent(t,e){const i=this._getItemIndex(t),s=this._getItemIndex(V.findOne(".active.carousel-item",this._element));return H.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:s,to:i})}_setActiveIndicatorElement(t){if(this._indicatorsElement){const e=V.findOne(".active",this._indicatorsElement);e.classList.remove("active"),e.removeAttribute("aria-current");const i=V.find("[data-bs-target]",this._indicatorsElement);for(let e=0;e{H.trigger(this._element,"slid.bs.carousel",{relatedTarget:o,direction:d,from:n,to:r})};if(this._element.classList.contains("slide")){o.classList.add(h),p(o),s.classList.add(c),o.classList.add(c);const t=()=>{o.classList.remove(c,h),o.classList.add("active"),s.classList.remove("active",h,c),this._isSliding=!1,setTimeout(u,0)};this._queueCallback(t,s,!0)}else s.classList.remove("active"),o.classList.add("active"),this._isSliding=!1,u();a&&this.cycle()}_directionToOrder(t){return[J,Z].includes(t)?m()?t===Z?G:Q:t===Z?Q:G:t}_orderToDirection(t){return[Q,G].includes(t)?m()?t===G?Z:J:t===G?J:Z:t}static carouselInterface(t,e){const i=et.getOrCreateInstance(t,e);let{_config:s}=i;"object"==typeof e&&(s={...s,...e});const n="string"==typeof e?e:s.slide;if("number"==typeof e)i.to(e);else if("string"==typeof n){if(void 0===i[n])throw new TypeError(`No method named "${n}"`);i[n]()}else s.interval&&s.ride&&(i.pause(),i.cycle())}static jQueryInterface(t){return this.each((function(){et.carouselInterface(this,t)}))}static dataApiClickHandler(t){const e=o(this);if(!e||!e.classList.contains("carousel"))return;const i={...K.getDataAttributes(e),...K.getDataAttributes(this)},s=this.getAttribute("data-bs-slide-to");s&&(i.interval=!1),et.carouselInterface(e,i),s&&et.getInstance(e).to(s),t.preventDefault()}}H.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",et.dataApiClickHandler),H.on(window,"load.bs.carousel.data-api",()=>{const t=V.find('[data-bs-ride="carousel"]');for(let e=0,i=t.length;et===this._element);null!==s&&o.length&&(this._selector=s,this._triggerArray.push(e))}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return it}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t,e=[];if(this._config.parent){const t=V.find(".collapse .collapse",this._config.parent);e=V.find(".show, .collapsing",this._config.parent).filter(e=>!t.includes(e))}const i=V.findOne(this._selector);if(e.length){const s=e.find(t=>i!==t);if(t=s?nt.getInstance(s):null,t&&t._isTransitioning)return}if(H.trigger(this._element,"show.bs.collapse").defaultPrevented)return;e.forEach(e=>{i!==e&&nt.getOrCreateInstance(e,{toggle:!1}).hide(),t||z.set(e,"bs.collapse",null)});const s=this._getDimension();this._element.classList.remove("collapse"),this._element.classList.add("collapsing"),this._element.style[s]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const n="scroll"+(s[0].toUpperCase()+s.slice(1));this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove("collapsing"),this._element.classList.add("collapse","show"),this._element.style[s]="",H.trigger(this._element,"shown.bs.collapse")},this._element,!0),this._element.style[s]=this._element[n]+"px"}hide(){if(this._isTransitioning||!this._isShown())return;if(H.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const t=this._getDimension();this._element.style[t]=this._element.getBoundingClientRect()[t]+"px",p(this._element),this._element.classList.add("collapsing"),this._element.classList.remove("collapse","show");const e=this._triggerArray.length;for(let t=0;t{this._isTransitioning=!1,this._element.classList.remove("collapsing"),this._element.classList.add("collapse"),H.trigger(this._element,"hidden.bs.collapse")},this._element,!0)}_isShown(t=this._element){return t.classList.contains("show")}_getConfig(t){return(t={...it,...K.getDataAttributes(this._element),...t}).toggle=Boolean(t.toggle),t.parent=l(t.parent),c("collapse",t,st),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=V.find(".collapse .collapse",this._config.parent);V.find('[data-bs-toggle="collapse"]',this._config.parent).filter(e=>!t.includes(e)).forEach(t=>{const e=o(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))})}_addAriaAndCollapsedClass(t,e){t.length&&t.forEach(t=>{e?t.classList.remove("collapsed"):t.classList.add("collapsed"),t.setAttribute("aria-expanded",e)})}static jQueryInterface(t){return this.each((function(){const e={};"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1);const i=nt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}H.on(document,"click.bs.collapse.data-api",'[data-bs-toggle="collapse"]',(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();const e=n(this);V.find(e).forEach(t=>{nt.getOrCreateInstance(t,{toggle:!1}).toggle()})})),b(nt);const ot=new RegExp("ArrowUp|ArrowDown|Escape"),rt=m()?"top-end":"top-start",at=m()?"top-start":"top-end",lt=m()?"bottom-end":"bottom-start",ct=m()?"bottom-start":"bottom-end",ht=m()?"left-start":"right-start",dt=m()?"right-start":"left-start",ut={offset:[0,2],boundary:"clippingParents",reference:"toggle",display:"dynamic",popperConfig:null,autoClose:!0},gt={offset:"(array|string|function)",boundary:"(string|element)",reference:"(string|element|object)",display:"string",popperConfig:"(null|object|function)",autoClose:"(boolean|string)"};class pt extends R{constructor(t,e){super(t),this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar()}static get Default(){return ut}static get DefaultType(){return gt}static get NAME(){return"dropdown"}toggle(){return this._isShown()?this.hide():this.show()}show(){if(d(this._element)||this._isShown(this._menu))return;const t={relatedTarget:this._element};if(H.trigger(this._element,"show.bs.dropdown",t).defaultPrevented)return;const e=pt.getParentFromElement(this._element);this._inNavbar?K.setDataAttribute(this._menu,"popper","none"):this._createPopper(e),"ontouchstart"in document.documentElement&&!e.closest(".navbar-nav")&&[].concat(...document.body.children).forEach(t=>H.on(t,"mouseover",g)),this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add("show"),this._element.classList.add("show"),H.trigger(this._element,"shown.bs.dropdown",t)}hide(){if(d(this._element)||!this._isShown(this._menu))return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){H.trigger(this._element,"hide.bs.dropdown",t).defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>H.off(t,"mouseover",g)),this._popper&&this._popper.destroy(),this._menu.classList.remove("show"),this._element.classList.remove("show"),this._element.setAttribute("aria-expanded","false"),K.removeDataAttribute(this._menu,"popper"),H.trigger(this._element,"hidden.bs.dropdown",t))}_getConfig(t){if(t={...this.constructor.Default,...K.getDataAttributes(this._element),...t},c("dropdown",t,this.constructor.DefaultType),"object"==typeof t.reference&&!a(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError("dropdown".toUpperCase()+': Option "reference" provided type "object" without a required "getBoundingClientRect" method.');return t}_createPopper(t){if(void 0===i)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let e=this._element;"parent"===this._config.reference?e=t:a(this._config.reference)?e=l(this._config.reference):"object"==typeof this._config.reference&&(e=this._config.reference);const s=this._getPopperConfig(),n=s.modifiers.find(t=>"applyStyles"===t.name&&!1===t.enabled);this._popper=i.createPopper(e,this._menu,s),n&&K.setDataAttribute(this._menu,"popper","static")}_isShown(t=this._element){return t.classList.contains("show")}_getMenuElement(){return V.next(this._element,".dropdown-menu")[0]}_getPlacement(){const t=this._element.parentNode;if(t.classList.contains("dropend"))return ht;if(t.classList.contains("dropstart"))return dt;const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?at:rt:e?ct:lt}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map(t=>Number.parseInt(t,10)):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return"static"===this._config.display&&(t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_selectMenuItem({key:t,target:e}){const i=V.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter(h);i.length&&w(i,e,"ArrowDown"===t,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=pt.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(t&&(2===t.button||"keyup"===t.type&&"Tab"!==t.key))return;const e=V.find('[data-bs-toggle="dropdown"]');for(let i=0,s=e.length;ie+t),this._setElementAttributes(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top","paddingRight",e=>e+t),this._setElementAttributes(".sticky-top","marginRight",e=>e-t)}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const s=this.getWidth();this._applyManipulationCallback(t,t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+s)return;this._saveInitialAttribute(t,e);const n=window.getComputedStyle(t)[e];t.style[e]=i(Number.parseFloat(n))+"px"})}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,"paddingRight"),this._resetElementAttributes(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top","paddingRight"),this._resetElementAttributes(".sticky-top","marginRight")}_saveInitialAttribute(t,e){const i=t.style[e];i&&K.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,t=>{const i=K.getDataAttribute(t,e);void 0===i?t.style.removeProperty(e):(K.removeDataAttribute(t,e),t.style[e]=i)})}_applyManipulationCallback(t,e){a(t)?e(t):V.find(t,this._element).forEach(e)}isOverflowing(){return this.getWidth()>0}}const _t={className:"modal-backdrop",isVisible:!0,isAnimated:!1,rootElement:"body",clickCallback:null},mt={className:"string",isVisible:"boolean",isAnimated:"boolean",rootElement:"(element|string)",clickCallback:"(function|null)"};class bt{constructor(t){this._config=this._getConfig(t),this._isAppended=!1,this._element=null}show(t){this._config.isVisible?(this._append(),this._config.isAnimated&&p(this._getElement()),this._getElement().classList.add("show"),this._emulateAnimation(()=>{v(t)})):v(t)}hide(t){this._config.isVisible?(this._getElement().classList.remove("show"),this._emulateAnimation(()=>{this.dispose(),v(t)})):v(t)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_getConfig(t){return(t={..._t,..."object"==typeof t?t:{}}).rootElement=l(t.rootElement),c("backdrop",t,mt),t}_append(){this._isAppended||(this._config.rootElement.append(this._getElement()),H.on(this._getElement(),"mousedown.bs.backdrop",()=>{v(this._config.clickCallback)}),this._isAppended=!0)}dispose(){this._isAppended&&(H.off(this._element,"mousedown.bs.backdrop"),this._element.remove(),this._isAppended=!1)}_emulateAnimation(t){y(t,this._getElement(),this._config.isAnimated)}}const vt={trapElement:null,autofocus:!0},yt={trapElement:"element",autofocus:"boolean"};class wt{constructor(t){this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}activate(){const{trapElement:t,autofocus:e}=this._config;this._isActive||(e&&t.focus(),H.off(document,".bs.focustrap"),H.on(document,"focusin.bs.focustrap",t=>this._handleFocusin(t)),H.on(document,"keydown.tab.bs.focustrap",t=>this._handleKeydown(t)),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,H.off(document,".bs.focustrap"))}_handleFocusin(t){const{target:e}=t,{trapElement:i}=this._config;if(e===document||e===i||i.contains(e))return;const s=V.focusableChildren(i);0===s.length?i.focus():"backward"===this._lastTabNavDirection?s[s.length-1].focus():s[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?"backward":"forward")}_getConfig(t){return t={...vt,..."object"==typeof t?t:{}},c("focustrap",t,yt),t}}const Et={backdrop:!0,keyboard:!0,focus:!0},At={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"};class Tt extends R{constructor(t,e){super(t),this._config=this._getConfig(e),this._dialog=V.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollBar=new ft}static get Default(){return Et}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||H.trigger(this._element,"show.bs.modal",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isAnimated()&&(this._isTransitioning=!0),this._scrollBar.hide(),document.body.classList.add("modal-open"),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),H.on(this._dialog,"mousedown.dismiss.bs.modal",()=>{H.one(this._element,"mouseup.dismiss.bs.modal",t=>{t.target===this._element&&(this._ignoreBackdropClick=!0)})}),this._showBackdrop(()=>this._showElement(t)))}hide(){if(!this._isShown||this._isTransitioning)return;if(H.trigger(this._element,"hide.bs.modal").defaultPrevented)return;this._isShown=!1;const t=this._isAnimated();t&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),this._focustrap.deactivate(),this._element.classList.remove("show"),H.off(this._element,"click.dismiss.bs.modal"),H.off(this._dialog,"mousedown.dismiss.bs.modal"),this._queueCallback(()=>this._hideModal(),this._element,t)}dispose(){[window,this._dialog].forEach(t=>H.off(t,".bs.modal")),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new bt({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new wt({trapElement:this._element})}_getConfig(t){return t={...Et,...K.getDataAttributes(this._element),..."object"==typeof t?t:{}},c("modal",t,At),t}_showElement(t){const e=this._isAnimated(),i=V.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,i&&(i.scrollTop=0),e&&p(this._element),this._element.classList.add("show"),this._queueCallback(()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,H.trigger(this._element,"shown.bs.modal",{relatedTarget:t})},this._dialog,e)}_setEscapeEvent(){this._isShown?H.on(this._element,"keydown.dismiss.bs.modal",t=>{this._config.keyboard&&"Escape"===t.key?(t.preventDefault(),this.hide()):this._config.keyboard||"Escape"!==t.key||this._triggerBackdropTransition()}):H.off(this._element,"keydown.dismiss.bs.modal")}_setResizeEvent(){this._isShown?H.on(window,"resize.bs.modal",()=>this._adjustDialog()):H.off(window,"resize.bs.modal")}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove("modal-open"),this._resetAdjustments(),this._scrollBar.reset(),H.trigger(this._element,"hidden.bs.modal")})}_showBackdrop(t){H.on(this._element,"click.dismiss.bs.modal",t=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:t.target===t.currentTarget&&(!0===this._config.backdrop?this.hide():"static"===this._config.backdrop&&this._triggerBackdropTransition())}),this._backdrop.show(t)}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(H.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const{classList:t,scrollHeight:e,style:i}=this._element,s=e>document.documentElement.clientHeight;!s&&"hidden"===i.overflowY||t.contains("modal-static")||(s||(i.overflowY="hidden"),t.add("modal-static"),this._queueCallback(()=>{t.remove("modal-static"),s||this._queueCallback(()=>{i.overflowY=""},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;(!i&&t&&!m()||i&&!t&&m())&&(this._element.style.paddingLeft=e+"px"),(i&&!t&&!m()||!i&&t&&m())&&(this._element.style.paddingRight=e+"px")}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=Tt.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}H.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',(function(t){const e=o(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),H.one(e,"show.bs.modal",t=>{t.defaultPrevented||H.one(e,"hidden.bs.modal",()=>{h(this)&&this.focus()})}),Tt.getOrCreateInstance(e).toggle(this)})),F(Tt),b(Tt);const Ct={backdrop:!0,keyboard:!0,scroll:!1},kt={backdrop:"boolean",keyboard:"boolean",scroll:"boolean"};class Lt extends R{constructor(t,e){super(t),this._config=this._getConfig(e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get NAME(){return"offcanvas"}static get Default(){return Ct}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||H.trigger(this._element,"show.bs.offcanvas",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._element.style.visibility="visible",this._backdrop.show(),this._config.scroll||(new ft).hide(),this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add("show"),this._queueCallback(()=>{this._config.scroll||this._focustrap.activate(),H.trigger(this._element,"shown.bs.offcanvas",{relatedTarget:t})},this._element,!0))}hide(){this._isShown&&(H.trigger(this._element,"hide.bs.offcanvas").defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.remove("show"),this._backdrop.hide(),this._queueCallback(()=>{this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._element.style.visibility="hidden",this._config.scroll||(new ft).reset(),H.trigger(this._element,"hidden.bs.offcanvas")},this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_getConfig(t){return t={...Ct,...K.getDataAttributes(this._element),..."object"==typeof t?t:{}},c("offcanvas",t,kt),t}_initializeBackDrop(){return new bt({className:"offcanvas-backdrop",isVisible:this._config.backdrop,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:()=>this.hide()})}_initializeFocusTrap(){return new wt({trapElement:this._element})}_addEventListeners(){H.on(this._element,"keydown.dismiss.bs.offcanvas",t=>{this._config.keyboard&&"Escape"===t.key&&this.hide()})}static jQueryInterface(t){return this.each((function(){const e=Lt.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}H.on(document,"click.bs.offcanvas.data-api",'[data-bs-toggle="offcanvas"]',(function(t){const e=o(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),d(this))return;H.one(e,"hidden.bs.offcanvas",()=>{h(this)&&this.focus()});const i=V.findOne(".offcanvas.show");i&&i!==e&&Lt.getInstance(i).hide(),Lt.getOrCreateInstance(e).toggle(this)})),H.on(window,"load.bs.offcanvas.data-api",()=>V.find(".offcanvas.show").forEach(t=>Lt.getOrCreateInstance(t).show())),F(Lt),b(Lt);const St=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Ot=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i,Nt=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Dt=(t,e)=>{const i=t.nodeName.toLowerCase();if(e.includes(i))return!St.has(i)||Boolean(Ot.test(t.nodeValue)||Nt.test(t.nodeValue));const s=e.filter(t=>t instanceof RegExp);for(let t=0,e=s.length;t{Dt(t,a)||i.removeAttribute(t.nodeName)})}return s.body.innerHTML}const xt=new Set(["sanitize","allowList","sanitizeFn"]),Pt={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(array|string|function)",container:"(string|element|boolean)",fallbackPlacements:"array",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object|function)"},Mt={AUTO:"auto",TOP:"top",RIGHT:m()?"left":"right",BOTTOM:"bottom",LEFT:m()?"right":"left"},jt={animation:!0,template:'',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},Ht={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"};class Bt extends R{constructor(t,e){if(void 0===i)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this._config=this._getConfig(e),this.tip=null,this._setListeners()}static get Default(){return jt}static get NAME(){return"tooltip"}static get Event(){return Ht}static get DefaultType(){return Pt}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(t){if(this._isEnabled)if(t){const e=this._initializeOnDelegatedTarget(t);e._activeTrigger.click=!e._activeTrigger.click,e._isWithActiveTrigger()?e._enter(null,e):e._leave(null,e)}else{if(this.getTipElement().classList.contains("show"))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),H.off(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.remove(),this._popper&&this._popper.destroy(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this.isWithContent()||!this._isEnabled)return;const t=H.trigger(this._element,this.constructor.Event.SHOW),e=u(this._element),s=null===e?this._element.ownerDocument.documentElement.contains(this._element):e.contains(this._element);if(t.defaultPrevented||!s)return;const n=this.getTipElement(),o=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME);n.setAttribute("id",o),this._element.setAttribute("aria-describedby",o),this._config.animation&&n.classList.add("fade");const r="function"==typeof this._config.placement?this._config.placement.call(this,n,this._element):this._config.placement,a=this._getAttachment(r);this._addAttachmentClass(a);const{container:l}=this._config;z.set(n,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||(l.append(n),H.trigger(this._element,this.constructor.Event.INSERTED)),this._popper?this._popper.update():this._popper=i.createPopper(this._element,n,this._getPopperConfig(a)),n.classList.add("show");const c=this._resolvePossibleFunction(this._config.customClass);c&&n.classList.add(...c.split(" ")),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>{H.on(t,"mouseover",g)});const h=this.tip.classList.contains("fade");this._queueCallback(()=>{const t=this._hoverState;this._hoverState=null,H.trigger(this._element,this.constructor.Event.SHOWN),"out"===t&&this._leave(null,this)},this.tip,h)}hide(){if(!this._popper)return;const t=this.getTipElement();if(H.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented)return;t.classList.remove("show"),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>H.off(t,"mouseover",g)),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1;const e=this.tip.classList.contains("fade");this._queueCallback(()=>{this._isWithActiveTrigger()||("show"!==this._hoverState&&t.remove(),this._cleanTipClass(),this._element.removeAttribute("aria-describedby"),H.trigger(this._element,this.constructor.Event.HIDDEN),this._popper&&(this._popper.destroy(),this._popper=null))},this.tip,e),this._hoverState=""}update(){null!==this._popper&&this._popper.update()}isWithContent(){return Boolean(this.getTitle())}getTipElement(){if(this.tip)return this.tip;const t=document.createElement("div");t.innerHTML=this._config.template;const e=t.children[0];return this.setContent(e),e.classList.remove("fade","show"),this.tip=e,this.tip}setContent(t){this._sanitizeAndSetContent(t,this.getTitle(),".tooltip-inner")}_sanitizeAndSetContent(t,e,i){const s=V.findOne(i,t);e||!s?this.setElementContent(s,e):s.remove()}setElementContent(t,e){if(null!==t)return a(e)?(e=l(e),void(this._config.html?e.parentNode!==t&&(t.innerHTML="",t.append(e)):t.textContent=e.textContent)):void(this._config.html?(this._config.sanitize&&(e=It(e,this._config.allowList,this._config.sanitizeFn)),t.innerHTML=e):t.textContent=e)}getTitle(){const t=this._element.getAttribute("data-bs-original-title")||this._config.title;return this._resolvePossibleFunction(t)}updateAttachment(t){return"right"===t?"end":"left"===t?"start":t}_initializeOnDelegatedTarget(t,e){return e||this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map(t=>Number.parseInt(t,10)):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return"function"==typeof t?t.call(this._element):t}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:t=>this._handlePopperPlacementChange(t)}],onFirstUpdate:t=>{t.options.placement!==t.placement&&this._handlePopperPlacementChange(t)}};return{...e,..."function"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_addAttachmentClass(t){this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(t)}`)}_getAttachment(t){return Mt[t.toUpperCase()]}_setListeners(){this._config.trigger.split(" ").forEach(t=>{if("click"===t)H.on(this._element,this.constructor.Event.CLICK,this._config.selector,t=>this.toggle(t));else if("manual"!==t){const e="hover"===t?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,i="hover"===t?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;H.on(this._element,e,this._config.selector,t=>this._enter(t)),H.on(this._element,i,this._config.selector,t=>this._leave(t))}}),this._hideModalHandler=()=>{this._element&&this.hide()},H.on(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this._config.selector?this._config={...this._config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const t=this._element.getAttribute("title"),e=typeof this._element.getAttribute("data-bs-original-title");(t||"string"!==e)&&(this._element.setAttribute("data-bs-original-title",t||""),!t||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",t),this._element.setAttribute("title",""))}_enter(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e.getTipElement().classList.contains("show")||"show"===e._hoverState?e._hoverState="show":(clearTimeout(e._timeout),e._hoverState="show",e._config.delay&&e._config.delay.show?e._timeout=setTimeout(()=>{"show"===e._hoverState&&e.show()},e._config.delay.show):e.show())}_leave(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusout"===t.type?"focus":"hover"]=e._element.contains(t.relatedTarget)),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e._config.delay&&e._config.delay.hide?e._timeout=setTimeout(()=>{"out"===e._hoverState&&e.hide()},e._config.delay.hide):e.hide())}_isWithActiveTrigger(){for(const t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1}_getConfig(t){const e=K.getDataAttributes(this._element);return Object.keys(e).forEach(t=>{xt.has(t)&&delete e[t]}),(t={...this.constructor.Default,...e,..."object"==typeof t&&t?t:{}}).container=!1===t.container?document.body:l(t.container),"number"==typeof 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()),c("tooltip",t,this.constructor.DefaultType),t.sanitize&&(t.template=It(t.template,t.allowList,t.sanitizeFn)),t}_getDelegateConfig(){const t={};for(const e in this._config)this.constructor.Default[e]!==this._config[e]&&(t[e]=this._config[e]);return t}_cleanTipClass(){const t=this.getTipElement(),e=new RegExp(`(^|\\s)${this._getBasicClassPrefix()}\\S+`,"g"),i=t.getAttribute("class").match(e);null!==i&&i.length>0&&i.map(t=>t.trim()).forEach(e=>t.classList.remove(e))}_getBasicClassPrefix(){return"bs-tooltip"}_handlePopperPlacementChange(t){const{state:e}=t;e&&(this.tip=e.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(e.placement)))}static jQueryInterface(t){return this.each((function(){const e=Bt.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}b(Bt);const zt={...Bt.Default,placement:"right",offset:[0,8],trigger:"click",content:"",template:''},Rt={...Bt.DefaultType,content:"(string|element|function)"},Ft={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"};class Wt extends Bt{static get Default(){return zt}static get NAME(){return"popover"}static get Event(){return Ft}static get DefaultType(){return Rt}isWithContent(){return this.getTitle()||this._getContent()}setContent(t){this._sanitizeAndSetContent(t,this.getTitle(),".popover-header"),this._sanitizeAndSetContent(t,this._getContent(),".popover-body")}_getContent(){return this._resolvePossibleFunction(this._config.content)}_getBasicClassPrefix(){return"bs-popover"}static jQueryInterface(t){return this.each((function(){const e=Wt.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}b(Wt);const $t={offset:10,method:"auto",target:""},qt={offset:"number",method:"string",target:"(string|element)"},Ut=".nav-link, .list-group-item, .dropdown-item";class Kt extends R{constructor(t,e){super(t),this._scrollElement="BODY"===this._element.tagName?window:this._element,this._config=this._getConfig(e),this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,H.on(this._scrollElement,"scroll.bs.scrollspy",()=>this._process()),this.refresh(),this._process()}static get Default(){return $t}static get NAME(){return"scrollspy"}refresh(){const t=this._scrollElement===this._scrollElement.window?"offset":"position",e="auto"===this._config.method?t:this._config.method,i="position"===e?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),V.find(Ut,this._config.target).map(t=>{const s=n(t),o=s?V.findOne(s):null;if(o){const t=o.getBoundingClientRect();if(t.width||t.height)return[K[e](o).top+i,s]}return null}).filter(t=>t).sort((t,e)=>t[0]-e[0]).forEach(t=>{this._offsets.push(t[0]),this._targets.push(t[1])})}dispose(){H.off(this._scrollElement,".bs.scrollspy"),super.dispose()}_getConfig(t){return(t={...$t,...K.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}}).target=l(t.target)||document.documentElement,c("scrollspy",t,qt),t}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),i=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=i){const t=this._targets[this._targets.length-1];this._activeTarget!==t&&this._activate(t)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(let e=this._offsets.length;e--;)this._activeTarget!==this._targets[e]&&t>=this._offsets[e]&&(void 0===this._offsets[e+1]||t`${e}[data-bs-target="${t}"],${e}[href="${t}"]`),i=V.findOne(e.join(","),this._config.target);i.classList.add("active"),i.classList.contains("dropdown-item")?V.findOne(".dropdown-toggle",i.closest(".dropdown")).classList.add("active"):V.parents(i,".nav, .list-group").forEach(t=>{V.prev(t,".nav-link, .list-group-item").forEach(t=>t.classList.add("active")),V.prev(t,".nav-item").forEach(t=>{V.children(t,".nav-link").forEach(t=>t.classList.add("active"))})}),H.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:t})}_clear(){V.find(Ut,this._config.target).filter(t=>t.classList.contains("active")).forEach(t=>t.classList.remove("active"))}static jQueryInterface(t){return this.each((function(){const e=Kt.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}H.on(window,"load.bs.scrollspy.data-api",()=>{V.find('[data-bs-spy="scroll"]').forEach(t=>new Kt(t))}),b(Kt);class Vt extends R{static get NAME(){return"tab"}show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains("active"))return;let t;const e=o(this._element),i=this._element.closest(".nav, .list-group");if(i){const e="UL"===i.nodeName||"OL"===i.nodeName?":scope > li > .active":".active";t=V.find(e,i),t=t[t.length-1]}const s=t?H.trigger(t,"hide.bs.tab",{relatedTarget:this._element}):null;if(H.trigger(this._element,"show.bs.tab",{relatedTarget:t}).defaultPrevented||null!==s&&s.defaultPrevented)return;this._activate(this._element,i);const n=()=>{H.trigger(t,"hidden.bs.tab",{relatedTarget:this._element}),H.trigger(this._element,"shown.bs.tab",{relatedTarget:t})};e?this._activate(e,e.parentNode,n):n()}_activate(t,e,i){const s=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?V.children(e,".active"):V.find(":scope > li > .active",e))[0],n=i&&s&&s.classList.contains("fade"),o=()=>this._transitionComplete(t,s,i);s&&n?(s.classList.remove("show"),this._queueCallback(o,t,!0)):o()}_transitionComplete(t,e,i){if(e){e.classList.remove("active");const t=V.findOne(":scope > .dropdown-menu .active",e.parentNode);t&&t.classList.remove("active"),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}t.classList.add("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),p(t),t.classList.contains("fade")&&t.classList.add("show");let s=t.parentNode;if(s&&"LI"===s.nodeName&&(s=s.parentNode),s&&s.classList.contains("dropdown-menu")){const e=t.closest(".dropdown");e&&V.find(".dropdown-toggle",e).forEach(t=>t.classList.add("active")),t.setAttribute("aria-expanded",!0)}i&&i()}static jQueryInterface(t){return this.each((function(){const e=Vt.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}H.on(document,"click.bs.tab.data-api",'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),d(this)||Vt.getOrCreateInstance(this).show()})),b(Vt);const Xt={animation:"boolean",autohide:"boolean",delay:"number"},Yt={animation:!0,autohide:!0,delay:5e3};class Qt extends R{constructor(t,e){super(t),this._config=this._getConfig(e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get DefaultType(){return Xt}static get Default(){return Yt}static get NAME(){return"toast"}show(){H.trigger(this._element,"show.bs.toast").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove("hide"),p(this._element),this._element.classList.add("show"),this._element.classList.add("showing"),this._queueCallback(()=>{this._element.classList.remove("showing"),H.trigger(this._element,"shown.bs.toast"),this._maybeScheduleHide()},this._element,this._config.animation))}hide(){this._element.classList.contains("show")&&(H.trigger(this._element,"hide.bs.toast").defaultPrevented||(this._element.classList.add("showing"),this._queueCallback(()=>{this._element.classList.add("hide"),this._element.classList.remove("showing"),this._element.classList.remove("show"),H.trigger(this._element,"hidden.bs.toast")},this._element,this._config.animation)))}dispose(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),super.dispose()}_getConfig(t){return t={...Yt,...K.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}},c("toast",t,this.constructor.DefaultType),t}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){H.on(this._element,"mouseover.bs.toast",t=>this._onInteraction(t,!0)),H.on(this._element,"mouseout.bs.toast",t=>this._onInteraction(t,!1)),H.on(this._element,"focusin.bs.toast",t=>this._onInteraction(t,!0)),H.on(this._element,"focusout.bs.toast",t=>this._onInteraction(t,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=Qt.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return F(Qt),b(Qt),{Alert:W,Button:$,Carousel:et,Collapse:nt,Dropdown:pt,Modal:Tt,Offcanvas:Lt,Popover:Wt,ScrollSpy:Kt,Tab:Vt,Toast:Qt,Tooltip:Bt}})); -//# sourceMappingURL=bootstrap.min.js.map \ No newline at end of file +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("@popperjs/core")):"function"==typeof define&&define.amd?define(["@popperjs/core"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e(t.Popper)}(this,(function(t){"use strict";function e(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach((function(i){if("default"!==i){var s=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(e,i,s.get?s:{enumerable:!0,get:function(){return t[i]}})}})),e.default=t,Object.freeze(e)}var i=e(t);const s=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i="#"+i.split("#")[1]),e=i&&"#"!==i?i.trim():null}return e},n=t=>{const e=s(t);return e&&document.querySelector(e)?e:null},o=t=>{const e=s(t);return e?document.querySelector(e):null},r=t=>{t.dispatchEvent(new Event("transitionend"))},a=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),l=t=>a(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(t):null,c=(t,e,i)=>{Object.keys(i).forEach(s=>{const n=i[s],o=e[s],r=o&&a(o)?"element":null==(l=o)?""+l:{}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase();var l;if(!new RegExp(n).test(r))throw new TypeError(`${t.toUpperCase()}: Option "${s}" provided type "${r}" but expected type "${n}".`)})},h=t=>!(!a(t)||0===t.getClientRects().length)&&"visible"===getComputedStyle(t).getPropertyValue("visibility"),d=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),u=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?u(t.parentNode):null},g=()=>{},p=t=>{t.offsetHeight},f=()=>{const{jQuery:t}=window;return t&&!document.body.hasAttribute("data-bs-no-jquery")?t:null},_=[],m=()=>"rtl"===document.documentElement.dir,b=t=>{var e;e=()=>{const e=f();if(e){const i=t.NAME,s=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=s,t.jQueryInterface)}},"loading"===document.readyState?(_.length||document.addEventListener("DOMContentLoaded",()=>{_.forEach(t=>t())}),_.push(e)):e()},v=t=>{"function"==typeof t&&t()},y=(t,e,i=!0)=>{if(!i)return void v(t);const s=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const s=Number.parseFloat(e),n=Number.parseFloat(i);return s||n?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let n=!1;const o=({target:i})=>{i===e&&(n=!0,e.removeEventListener("transitionend",o),v(t))};e.addEventListener("transitionend",o),setTimeout(()=>{n||r(e)},s)},w=(t,e,i,s)=>{let n=t.indexOf(e);if(-1===n)return t[!i&&s?t.length-1:0];const o=t.length;return n+=i?1:-1,s&&(n=(n+o)%o),t[Math.max(0,Math.min(n,o-1))]},E=/[^.]*(?=\..*)\.|.*/,A=/\..*/,T=/::\d+$/,C={};let k=1;const L={mouseenter:"mouseover",mouseleave:"mouseout"},S=/^(mouseenter|mouseleave)/i,O=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function N(t,e){return e&&`${e}::${k++}`||t.uidEvent||k++}function D(t){const e=N(t);return t.uidEvent=e,C[e]=C[e]||{},C[e]}function I(t,e,i=null){const s=Object.keys(t);for(let n=0,o=s.length;nfunction(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};s?s=t(s):i=t(i)}const[o,r,a]=x(e,i,s),l=D(t),c=l[a]||(l[a]={}),h=I(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&n);const d=N(r,e.replace(E,"")),u=o?function(t,e,i){return function s(n){const o=t.querySelectorAll(e);for(let{target:r}=n;r&&r!==this;r=r.parentNode)for(let a=o.length;a--;)if(o[a]===r)return n.delegateTarget=r,s.oneOff&&H.off(t,n.type,e,i),i.apply(r,[n]);return null}}(t,i,s):function(t,e){return function i(s){return s.delegateTarget=t,i.oneOff&&H.off(t,s.type,e),e.apply(t,[s])}}(t,i);u.delegationSelector=o?i:null,u.originalHandler=r,u.oneOff=n,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function M(t,e,i,s,n){const o=I(e[i],s,n);o&&(t.removeEventListener(i,o,Boolean(n)),delete e[i][o.uidEvent])}function j(t){return t=t.replace(A,""),L[t]||t}const H={on(t,e,i,s){P(t,e,i,s,!1)},one(t,e,i,s){P(t,e,i,s,!0)},off(t,e,i,s){if("string"!=typeof e||!t)return;const[n,o,r]=x(e,i,s),a=r!==e,l=D(t),c=e.startsWith(".");if(void 0!==o){if(!l||!l[r])return;return void M(t,l,r,o,n?i:null)}c&&Object.keys(l).forEach(i=>{!function(t,e,i,s){const n=e[i]||{};Object.keys(n).forEach(o=>{if(o.includes(s)){const s=n[o];M(t,e,i,s.originalHandler,s.delegationSelector)}})}(t,l,i,e.slice(1))});const h=l[r]||{};Object.keys(h).forEach(i=>{const s=i.replace(T,"");if(!a||e.includes(s)){const e=h[i];M(t,l,r,e.originalHandler,e.delegationSelector)}})},trigger(t,e,i){if("string"!=typeof e||!t)return null;const s=f(),n=j(e),o=e!==n,r=O.has(n);let a,l=!0,c=!0,h=!1,d=null;return o&&s&&(a=s.Event(e,i),s(t).trigger(a),l=!a.isPropagationStopped(),c=!a.isImmediatePropagationStopped(),h=a.isDefaultPrevented()),r?(d=document.createEvent("HTMLEvents"),d.initEvent(n,l,!0)):d=new CustomEvent(e,{bubbles:l,cancelable:!0}),void 0!==i&&Object.keys(i).forEach(t=>{Object.defineProperty(d,t,{get:()=>i[t]})}),h&&d.preventDefault(),c&&t.dispatchEvent(d),d.defaultPrevented&&void 0!==a&&a.preventDefault(),d}},B=new Map;var z={set(t,e,i){B.has(t)||B.set(t,new Map);const s=B.get(t);s.has(e)||0===s.size?s.set(e,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(t,e)=>B.has(t)&&B.get(t).get(e)||null,remove(t,e){if(!B.has(t))return;const i=B.get(t);i.delete(e),0===i.size&&B.delete(t)}};class R{constructor(t){(t=l(t))&&(this._element=t,z.set(this._element,this.constructor.DATA_KEY,this))}dispose(){z.remove(this._element,this.constructor.DATA_KEY),H.off(this._element,this.constructor.EVENT_KEY),Object.getOwnPropertyNames(this).forEach(t=>{this[t]=null})}_queueCallback(t,e,i=!0){y(t,e,i)}static getInstance(t){return z.get(l(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.1.0"}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}static get DATA_KEY(){return"bs."+this.NAME}static get EVENT_KEY(){return"."+this.DATA_KEY}}const F=(t,e="hide")=>{const i="click.dismiss"+t.EVENT_KEY,s=t.NAME;H.on(document,i,`[data-bs-dismiss="${s}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),d(this))return;const n=o(this)||this.closest("."+s);t.getOrCreateInstance(n)[e]()}))};class W extends R{static get NAME(){return"alert"}close(){if(H.trigger(this._element,"close.bs.alert").defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback(()=>this._destroyElement(),this._element,t)}_destroyElement(){this._element.remove(),H.trigger(this._element,"closed.bs.alert"),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=W.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}F(W,"close"),b(W);class $ extends R{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=$.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}function q(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function U(t){return t.replace(/[A-Z]/g,t=>"-"+t.toLowerCase())}H.on(document,"click.bs.button.data-api",'[data-bs-toggle="button"]',t=>{t.preventDefault();const e=t.target.closest('[data-bs-toggle="button"]');$.getOrCreateInstance(e).toggle()}),b($);const K={setDataAttribute(t,e,i){t.setAttribute("data-bs-"+U(e),i)},removeDataAttribute(t,e){t.removeAttribute("data-bs-"+U(e))},getDataAttributes(t){if(!t)return{};const e={};return Object.keys(t.dataset).filter(t=>t.startsWith("bs")).forEach(i=>{let s=i.replace(/^bs/,"");s=s.charAt(0).toLowerCase()+s.slice(1,s.length),e[s]=q(t.dataset[i])}),e},getDataAttribute:(t,e)=>q(t.getAttribute("data-bs-"+U(e))),offset(t){const e=t.getBoundingClientRect();return{top:e.top+window.pageYOffset,left:e.left+window.pageXOffset}},position:t=>({top:t.offsetTop,left:t.offsetLeft})},V={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter(t=>t.matches(e)),parents(t,e){const i=[];let s=t.parentNode;for(;s&&s.nodeType===Node.ELEMENT_NODE&&3!==s.nodeType;)s.matches(e)&&i.push(s),s=s.parentNode;return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(t=>t+':not([tabindex^="-"])').join(", ");return this.find(e,t).filter(t=>!d(t)&&h(t))}},X={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},Y={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},Q="next",G="prev",Z="left",J="right",tt={ArrowLeft:J,ArrowRight:Z};class et extends R{constructor(t,e){super(t),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._indicatorsElement=V.findOne(".carousel-indicators",this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners()}static get Default(){return X}static get NAME(){return"carousel"}next(){this._slide(Q)}nextWhenVisible(){!document.hidden&&h(this._element)&&this.next()}prev(){this._slide(G)}pause(t){t||(this._isPaused=!0),V.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(r(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(t){this._activeElement=V.findOne(".active.carousel-item",this._element);const e=this._getItemIndex(this._activeElement);if(t>this._items.length-1||t<0)return;if(this._isSliding)return void H.one(this._element,"slid.bs.carousel",()=>this.to(t));if(e===t)return this.pause(),void this.cycle();const i=t>e?Q:G;this._slide(i,this._items[t])}_getConfig(t){return t={...X,...K.getDataAttributes(this._element),..."object"==typeof t?t:{}},c("carousel",t,Y),t}_handleSwipe(){const t=Math.abs(this.touchDeltaX);if(t<=40)return;const e=t/this.touchDeltaX;this.touchDeltaX=0,e&&this._slide(e>0?J:Z)}_addEventListeners(){this._config.keyboard&&H.on(this._element,"keydown.bs.carousel",t=>this._keydown(t)),"hover"===this._config.pause&&(H.on(this._element,"mouseenter.bs.carousel",t=>this.pause(t)),H.on(this._element,"mouseleave.bs.carousel",t=>this.cycle(t))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()}_addTouchEventListeners(){const t=t=>{!this._pointerEvent||"pen"!==t.pointerType&&"touch"!==t.pointerType?this._pointerEvent||(this.touchStartX=t.touches[0].clientX):this.touchStartX=t.clientX},e=t=>{this.touchDeltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this.touchStartX},i=t=>{!this._pointerEvent||"pen"!==t.pointerType&&"touch"!==t.pointerType||(this.touchDeltaX=t.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(t=>this.cycle(t),500+this._config.interval))};V.find(".carousel-item img",this._element).forEach(t=>{H.on(t,"dragstart.bs.carousel",t=>t.preventDefault())}),this._pointerEvent?(H.on(this._element,"pointerdown.bs.carousel",e=>t(e)),H.on(this._element,"pointerup.bs.carousel",t=>i(t)),this._element.classList.add("pointer-event")):(H.on(this._element,"touchstart.bs.carousel",e=>t(e)),H.on(this._element,"touchmove.bs.carousel",t=>e(t)),H.on(this._element,"touchend.bs.carousel",t=>i(t)))}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=tt[t.key];e&&(t.preventDefault(),this._slide(e))}_getItemIndex(t){return this._items=t&&t.parentNode?V.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)}_getItemByOrder(t,e){const i=t===Q;return w(this._items,e,i,this._config.wrap)}_triggerSlideEvent(t,e){const i=this._getItemIndex(t),s=this._getItemIndex(V.findOne(".active.carousel-item",this._element));return H.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:s,to:i})}_setActiveIndicatorElement(t){if(this._indicatorsElement){const e=V.findOne(".active",this._indicatorsElement);e.classList.remove("active"),e.removeAttribute("aria-current");const i=V.find("[data-bs-target]",this._indicatorsElement);for(let e=0;e{H.trigger(this._element,"slid.bs.carousel",{relatedTarget:o,direction:d,from:n,to:r})};if(this._element.classList.contains("slide")){o.classList.add(h),p(o),s.classList.add(c),o.classList.add(c);const t=()=>{o.classList.remove(c,h),o.classList.add("active"),s.classList.remove("active",h,c),this._isSliding=!1,setTimeout(u,0)};this._queueCallback(t,s,!0)}else s.classList.remove("active"),o.classList.add("active"),this._isSliding=!1,u();a&&this.cycle()}_directionToOrder(t){return[J,Z].includes(t)?m()?t===Z?G:Q:t===Z?Q:G:t}_orderToDirection(t){return[Q,G].includes(t)?m()?t===G?Z:J:t===G?J:Z:t}static carouselInterface(t,e){const i=et.getOrCreateInstance(t,e);let{_config:s}=i;"object"==typeof e&&(s={...s,...e});const n="string"==typeof e?e:s.slide;if("number"==typeof e)i.to(e);else if("string"==typeof n){if(void 0===i[n])throw new TypeError(`No method named "${n}"`);i[n]()}else s.interval&&s.ride&&(i.pause(),i.cycle())}static jQueryInterface(t){return this.each((function(){et.carouselInterface(this,t)}))}static dataApiClickHandler(t){const e=o(this);if(!e||!e.classList.contains("carousel"))return;const i={...K.getDataAttributes(e),...K.getDataAttributes(this)},s=this.getAttribute("data-bs-slide-to");s&&(i.interval=!1),et.carouselInterface(e,i),s&&et.getInstance(e).to(s),t.preventDefault()}}H.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",et.dataApiClickHandler),H.on(window,"load.bs.carousel.data-api",()=>{const t=V.find('[data-bs-ride="carousel"]');for(let e=0,i=t.length;et===this._element);null!==s&&o.length&&(this._selector=s,this._triggerArray.push(e))}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return it}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t,e=[];if(this._config.parent){const t=V.find(".collapse .collapse",this._config.parent);e=V.find(".show, .collapsing",this._config.parent).filter(e=>!t.includes(e))}const i=V.findOne(this._selector);if(e.length){const s=e.find(t=>i!==t);if(t=s?nt.getInstance(s):null,t&&t._isTransitioning)return}if(H.trigger(this._element,"show.bs.collapse").defaultPrevented)return;e.forEach(e=>{i!==e&&nt.getOrCreateInstance(e,{toggle:!1}).hide(),t||z.set(e,"bs.collapse",null)});const s=this._getDimension();this._element.classList.remove("collapse"),this._element.classList.add("collapsing"),this._element.style[s]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const n="scroll"+(s[0].toUpperCase()+s.slice(1));this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove("collapsing"),this._element.classList.add("collapse","show"),this._element.style[s]="",H.trigger(this._element,"shown.bs.collapse")},this._element,!0),this._element.style[s]=this._element[n]+"px"}hide(){if(this._isTransitioning||!this._isShown())return;if(H.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const t=this._getDimension();this._element.style[t]=this._element.getBoundingClientRect()[t]+"px",p(this._element),this._element.classList.add("collapsing"),this._element.classList.remove("collapse","show");const e=this._triggerArray.length;for(let t=0;t{this._isTransitioning=!1,this._element.classList.remove("collapsing"),this._element.classList.add("collapse"),H.trigger(this._element,"hidden.bs.collapse")},this._element,!0)}_isShown(t=this._element){return t.classList.contains("show")}_getConfig(t){return(t={...it,...K.getDataAttributes(this._element),...t}).toggle=Boolean(t.toggle),t.parent=l(t.parent),c("collapse",t,st),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=V.find(".collapse .collapse",this._config.parent);V.find('[data-bs-toggle="collapse"]',this._config.parent).filter(e=>!t.includes(e)).forEach(t=>{const e=o(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))})}_addAriaAndCollapsedClass(t,e){t.length&&t.forEach(t=>{e?t.classList.remove("collapsed"):t.classList.add("collapsed"),t.setAttribute("aria-expanded",e)})}static jQueryInterface(t){return this.each((function(){const e={};"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1);const i=nt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}H.on(document,"click.bs.collapse.data-api",'[data-bs-toggle="collapse"]',(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();const e=n(this);V.find(e).forEach(t=>{nt.getOrCreateInstance(t,{toggle:!1}).toggle()})})),b(nt);const ot=new RegExp("ArrowUp|ArrowDown|Escape"),rt=m()?"top-end":"top-start",at=m()?"top-start":"top-end",lt=m()?"bottom-end":"bottom-start",ct=m()?"bottom-start":"bottom-end",ht=m()?"left-start":"right-start",dt=m()?"right-start":"left-start",ut={offset:[0,2],boundary:"clippingParents",reference:"toggle",display:"dynamic",popperConfig:null,autoClose:!0},gt={offset:"(array|string|function)",boundary:"(string|element)",reference:"(string|element|object)",display:"string",popperConfig:"(null|object|function)",autoClose:"(boolean|string)"};class pt extends R{constructor(t,e){super(t),this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar()}static get Default(){return ut}static get DefaultType(){return gt}static get NAME(){return"dropdown"}toggle(){return this._isShown()?this.hide():this.show()}show(){if(d(this._element)||this._isShown(this._menu))return;const t={relatedTarget:this._element};if(H.trigger(this._element,"show.bs.dropdown",t).defaultPrevented)return;const e=pt.getParentFromElement(this._element);this._inNavbar?K.setDataAttribute(this._menu,"popper","none"):this._createPopper(e),"ontouchstart"in document.documentElement&&!e.closest(".navbar-nav")&&[].concat(...document.body.children).forEach(t=>H.on(t,"mouseover",g)),this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add("show"),this._element.classList.add("show"),H.trigger(this._element,"shown.bs.dropdown",t)}hide(){if(d(this._element)||!this._isShown(this._menu))return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){H.trigger(this._element,"hide.bs.dropdown",t).defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>H.off(t,"mouseover",g)),this._popper&&this._popper.destroy(),this._menu.classList.remove("show"),this._element.classList.remove("show"),this._element.setAttribute("aria-expanded","false"),K.removeDataAttribute(this._menu,"popper"),H.trigger(this._element,"hidden.bs.dropdown",t))}_getConfig(t){if(t={...this.constructor.Default,...K.getDataAttributes(this._element),...t},c("dropdown",t,this.constructor.DefaultType),"object"==typeof t.reference&&!a(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError("dropdown".toUpperCase()+': Option "reference" provided type "object" without a required "getBoundingClientRect" method.');return t}_createPopper(t){if(void 0===i)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let e=this._element;"parent"===this._config.reference?e=t:a(this._config.reference)?e=l(this._config.reference):"object"==typeof this._config.reference&&(e=this._config.reference);const s=this._getPopperConfig(),n=s.modifiers.find(t=>"applyStyles"===t.name&&!1===t.enabled);this._popper=i.createPopper(e,this._menu,s),n&&K.setDataAttribute(this._menu,"popper","static")}_isShown(t=this._element){return t.classList.contains("show")}_getMenuElement(){return V.next(this._element,".dropdown-menu")[0]}_getPlacement(){const t=this._element.parentNode;if(t.classList.contains("dropend"))return ht;if(t.classList.contains("dropstart"))return dt;const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?at:rt:e?ct:lt}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map(t=>Number.parseInt(t,10)):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return"static"===this._config.display&&(t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_selectMenuItem({key:t,target:e}){const i=V.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter(h);i.length&&w(i,e,"ArrowDown"===t,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=pt.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(t&&(2===t.button||"keyup"===t.type&&"Tab"!==t.key))return;const e=V.find('[data-bs-toggle="dropdown"]');for(let i=0,s=e.length;ie+t),this._setElementAttributes(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top","paddingRight",e=>e+t),this._setElementAttributes(".sticky-top","marginRight",e=>e-t)}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const s=this.getWidth();this._applyManipulationCallback(t,t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+s)return;this._saveInitialAttribute(t,e);const n=window.getComputedStyle(t)[e];t.style[e]=i(Number.parseFloat(n))+"px"})}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,"paddingRight"),this._resetElementAttributes(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top","paddingRight"),this._resetElementAttributes(".sticky-top","marginRight")}_saveInitialAttribute(t,e){const i=t.style[e];i&&K.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,t=>{const i=K.getDataAttribute(t,e);void 0===i?t.style.removeProperty(e):(K.removeDataAttribute(t,e),t.style[e]=i)})}_applyManipulationCallback(t,e){a(t)?e(t):V.find(t,this._element).forEach(e)}isOverflowing(){return this.getWidth()>0}}const _t={className:"modal-backdrop",isVisible:!0,isAnimated:!1,rootElement:"body",clickCallback:null},mt={className:"string",isVisible:"boolean",isAnimated:"boolean",rootElement:"(element|string)",clickCallback:"(function|null)"};class bt{constructor(t){this._config=this._getConfig(t),this._isAppended=!1,this._element=null}show(t){this._config.isVisible?(this._append(),this._config.isAnimated&&p(this._getElement()),this._getElement().classList.add("show"),this._emulateAnimation(()=>{v(t)})):v(t)}hide(t){this._config.isVisible?(this._getElement().classList.remove("show"),this._emulateAnimation(()=>{this.dispose(),v(t)})):v(t)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_getConfig(t){return(t={..._t,..."object"==typeof t?t:{}}).rootElement=l(t.rootElement),c("backdrop",t,mt),t}_append(){this._isAppended||(this._config.rootElement.append(this._getElement()),H.on(this._getElement(),"mousedown.bs.backdrop",()=>{v(this._config.clickCallback)}),this._isAppended=!0)}dispose(){this._isAppended&&(H.off(this._element,"mousedown.bs.backdrop"),this._element.remove(),this._isAppended=!1)}_emulateAnimation(t){y(t,this._getElement(),this._config.isAnimated)}}const vt={trapElement:null,autofocus:!0},yt={trapElement:"element",autofocus:"boolean"};class wt{constructor(t){this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}activate(){const{trapElement:t,autofocus:e}=this._config;this._isActive||(e&&t.focus(),H.off(document,".bs.focustrap"),H.on(document,"focusin.bs.focustrap",t=>this._handleFocusin(t)),H.on(document,"keydown.tab.bs.focustrap",t=>this._handleKeydown(t)),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,H.off(document,".bs.focustrap"))}_handleFocusin(t){const{target:e}=t,{trapElement:i}=this._config;if(e===document||e===i||i.contains(e))return;const s=V.focusableChildren(i);0===s.length?i.focus():"backward"===this._lastTabNavDirection?s[s.length-1].focus():s[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?"backward":"forward")}_getConfig(t){return t={...vt,..."object"==typeof t?t:{}},c("focustrap",t,yt),t}}const Et={backdrop:!0,keyboard:!0,focus:!0},At={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"};class Tt extends R{constructor(t,e){super(t),this._config=this._getConfig(e),this._dialog=V.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollBar=new ft}static get Default(){return Et}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||H.trigger(this._element,"show.bs.modal",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isAnimated()&&(this._isTransitioning=!0),this._scrollBar.hide(),document.body.classList.add("modal-open"),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),H.on(this._dialog,"mousedown.dismiss.bs.modal",()=>{H.one(this._element,"mouseup.dismiss.bs.modal",t=>{t.target===this._element&&(this._ignoreBackdropClick=!0)})}),this._showBackdrop(()=>this._showElement(t)))}hide(){if(!this._isShown||this._isTransitioning)return;if(H.trigger(this._element,"hide.bs.modal").defaultPrevented)return;this._isShown=!1;const t=this._isAnimated();t&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),this._focustrap.deactivate(),this._element.classList.remove("show"),H.off(this._element,"click.dismiss.bs.modal"),H.off(this._dialog,"mousedown.dismiss.bs.modal"),this._queueCallback(()=>this._hideModal(),this._element,t)}dispose(){[window,this._dialog].forEach(t=>H.off(t,".bs.modal")),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new bt({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new wt({trapElement:this._element})}_getConfig(t){return t={...Et,...K.getDataAttributes(this._element),..."object"==typeof t?t:{}},c("modal",t,At),t}_showElement(t){const e=this._isAnimated(),i=V.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,i&&(i.scrollTop=0),e&&p(this._element),this._element.classList.add("show"),this._queueCallback(()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,H.trigger(this._element,"shown.bs.modal",{relatedTarget:t})},this._dialog,e)}_setEscapeEvent(){this._isShown?H.on(this._element,"keydown.dismiss.bs.modal",t=>{this._config.keyboard&&"Escape"===t.key?(t.preventDefault(),this.hide()):this._config.keyboard||"Escape"!==t.key||this._triggerBackdropTransition()}):H.off(this._element,"keydown.dismiss.bs.modal")}_setResizeEvent(){this._isShown?H.on(window,"resize.bs.modal",()=>this._adjustDialog()):H.off(window,"resize.bs.modal")}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove("modal-open"),this._resetAdjustments(),this._scrollBar.reset(),H.trigger(this._element,"hidden.bs.modal")})}_showBackdrop(t){H.on(this._element,"click.dismiss.bs.modal",t=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:t.target===t.currentTarget&&(!0===this._config.backdrop?this.hide():"static"===this._config.backdrop&&this._triggerBackdropTransition())}),this._backdrop.show(t)}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(H.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const{classList:t,scrollHeight:e,style:i}=this._element,s=e>document.documentElement.clientHeight;!s&&"hidden"===i.overflowY||t.contains("modal-static")||(s||(i.overflowY="hidden"),t.add("modal-static"),this._queueCallback(()=>{t.remove("modal-static"),s||this._queueCallback(()=>{i.overflowY=""},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;(!i&&t&&!m()||i&&!t&&m())&&(this._element.style.paddingLeft=e+"px"),(i&&!t&&!m()||!i&&t&&m())&&(this._element.style.paddingRight=e+"px")}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=Tt.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}H.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',(function(t){const e=o(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),H.one(e,"show.bs.modal",t=>{t.defaultPrevented||H.one(e,"hidden.bs.modal",()=>{h(this)&&this.focus()})}),Tt.getOrCreateInstance(e).toggle(this)})),F(Tt),b(Tt);const Ct={backdrop:!0,keyboard:!0,scroll:!1},kt={backdrop:"boolean",keyboard:"boolean",scroll:"boolean"};class Lt extends R{constructor(t,e){super(t),this._config=this._getConfig(e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get NAME(){return"offcanvas"}static get Default(){return Ct}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||H.trigger(this._element,"show.bs.offcanvas",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._element.style.visibility="visible",this._backdrop.show(),this._config.scroll||(new ft).hide(),this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add("show"),this._queueCallback(()=>{this._config.scroll||this._focustrap.activate(),H.trigger(this._element,"shown.bs.offcanvas",{relatedTarget:t})},this._element,!0))}hide(){this._isShown&&(H.trigger(this._element,"hide.bs.offcanvas").defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.remove("show"),this._backdrop.hide(),this._queueCallback(()=>{this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._element.style.visibility="hidden",this._config.scroll||(new ft).reset(),H.trigger(this._element,"hidden.bs.offcanvas")},this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_getConfig(t){return t={...Ct,...K.getDataAttributes(this._element),..."object"==typeof t?t:{}},c("offcanvas",t,kt),t}_initializeBackDrop(){return new bt({className:"offcanvas-backdrop",isVisible:this._config.backdrop,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:()=>this.hide()})}_initializeFocusTrap(){return new wt({trapElement:this._element})}_addEventListeners(){H.on(this._element,"keydown.dismiss.bs.offcanvas",t=>{this._config.keyboard&&"Escape"===t.key&&this.hide()})}static jQueryInterface(t){return this.each((function(){const e=Lt.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}H.on(document,"click.bs.offcanvas.data-api",'[data-bs-toggle="offcanvas"]',(function(t){const e=o(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),d(this))return;H.one(e,"hidden.bs.offcanvas",()=>{h(this)&&this.focus()});const i=V.findOne(".offcanvas.show");i&&i!==e&&Lt.getInstance(i).hide(),Lt.getOrCreateInstance(e).toggle(this)})),H.on(window,"load.bs.offcanvas.data-api",()=>V.find(".offcanvas.show").forEach(t=>Lt.getOrCreateInstance(t).show())),F(Lt),b(Lt);const St=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Ot=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i,Nt=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Dt=(t,e)=>{const i=t.nodeName.toLowerCase();if(e.includes(i))return!St.has(i)||Boolean(Ot.test(t.nodeValue)||Nt.test(t.nodeValue));const s=e.filter(t=>t instanceof RegExp);for(let t=0,e=s.length;t{Dt(t,a)||i.removeAttribute(t.nodeName)})}return s.body.innerHTML}const xt=new Set(["sanitize","allowList","sanitizeFn"]),Pt={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(array|string|function)",container:"(string|element|boolean)",fallbackPlacements:"array",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object|function)"},Mt={AUTO:"auto",TOP:"top",RIGHT:m()?"left":"right",BOTTOM:"bottom",LEFT:m()?"right":"left"},jt={animation:!0,template:'',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},Ht={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"};class Bt extends R{constructor(t,e){if(void 0===i)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this._config=this._getConfig(e),this.tip=null,this._setListeners()}static get Default(){return jt}static get NAME(){return"tooltip"}static get Event(){return Ht}static get DefaultType(){return Pt}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(t){if(this._isEnabled)if(t){const e=this._initializeOnDelegatedTarget(t);e._activeTrigger.click=!e._activeTrigger.click,e._isWithActiveTrigger()?e._enter(null,e):e._leave(null,e)}else{if(this.getTipElement().classList.contains("show"))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),H.off(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.remove(),this._popper&&this._popper.destroy(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this.isWithContent()||!this._isEnabled)return;const t=H.trigger(this._element,this.constructor.Event.SHOW),e=u(this._element),s=null===e?this._element.ownerDocument.documentElement.contains(this._element):e.contains(this._element);if(t.defaultPrevented||!s)return;const n=this.getTipElement(),o=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME);n.setAttribute("id",o),this._element.setAttribute("aria-describedby",o),this._config.animation&&n.classList.add("fade");const r="function"==typeof this._config.placement?this._config.placement.call(this,n,this._element):this._config.placement,a=this._getAttachment(r);this._addAttachmentClass(a);const{container:l}=this._config;z.set(n,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||(l.append(n),H.trigger(this._element,this.constructor.Event.INSERTED)),this._popper?this._popper.update():this._popper=i.createPopper(this._element,n,this._getPopperConfig(a)),n.classList.add("show");const c=this._resolvePossibleFunction(this._config.customClass);c&&n.classList.add(...c.split(" ")),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>{H.on(t,"mouseover",g)});const h=this.tip.classList.contains("fade");this._queueCallback(()=>{const t=this._hoverState;this._hoverState=null,H.trigger(this._element,this.constructor.Event.SHOWN),"out"===t&&this._leave(null,this)},this.tip,h)}hide(){if(!this._popper)return;const t=this.getTipElement();if(H.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented)return;t.classList.remove("show"),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>H.off(t,"mouseover",g)),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1;const e=this.tip.classList.contains("fade");this._queueCallback(()=>{this._isWithActiveTrigger()||("show"!==this._hoverState&&t.remove(),this._cleanTipClass(),this._element.removeAttribute("aria-describedby"),H.trigger(this._element,this.constructor.Event.HIDDEN),this._popper&&(this._popper.destroy(),this._popper=null))},this.tip,e),this._hoverState=""}update(){null!==this._popper&&this._popper.update()}isWithContent(){return Boolean(this.getTitle())}getTipElement(){if(this.tip)return this.tip;const t=document.createElement("div");t.innerHTML=this._config.template;const e=t.children[0];return this.setContent(e),e.classList.remove("fade","show"),this.tip=e,this.tip}setContent(t){this._sanitizeAndSetContent(t,this.getTitle(),".tooltip-inner")}_sanitizeAndSetContent(t,e,i){const s=V.findOne(i,t);e||!s?this.setElementContent(s,e):s.remove()}setElementContent(t,e){if(null!==t)return a(e)?(e=l(e),void(this._config.html?e.parentNode!==t&&(t.innerHTML="",t.append(e)):t.textContent=e.textContent)):void(this._config.html?(this._config.sanitize&&(e=It(e,this._config.allowList,this._config.sanitizeFn)),t.innerHTML=e):t.textContent=e)}getTitle(){const t=this._element.getAttribute("data-bs-original-title")||this._config.title;return this._resolvePossibleFunction(t)}updateAttachment(t){return"right"===t?"end":"left"===t?"start":t}_initializeOnDelegatedTarget(t,e){return e||this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map(t=>Number.parseInt(t,10)):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return"function"==typeof t?t.call(this._element):t}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:t=>this._handlePopperPlacementChange(t)}],onFirstUpdate:t=>{t.options.placement!==t.placement&&this._handlePopperPlacementChange(t)}};return{...e,..."function"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_addAttachmentClass(t){this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(t)}`)}_getAttachment(t){return Mt[t.toUpperCase()]}_setListeners(){this._config.trigger.split(" ").forEach(t=>{if("click"===t)H.on(this._element,this.constructor.Event.CLICK,this._config.selector,t=>this.toggle(t));else if("manual"!==t){const e="hover"===t?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,i="hover"===t?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;H.on(this._element,e,this._config.selector,t=>this._enter(t)),H.on(this._element,i,this._config.selector,t=>this._leave(t))}}),this._hideModalHandler=()=>{this._element&&this.hide()},H.on(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this._config.selector?this._config={...this._config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const t=this._element.getAttribute("title"),e=typeof this._element.getAttribute("data-bs-original-title");(t||"string"!==e)&&(this._element.setAttribute("data-bs-original-title",t||""),!t||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",t),this._element.setAttribute("title",""))}_enter(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e.getTipElement().classList.contains("show")||"show"===e._hoverState?e._hoverState="show":(clearTimeout(e._timeout),e._hoverState="show",e._config.delay&&e._config.delay.show?e._timeout=setTimeout(()=>{"show"===e._hoverState&&e.show()},e._config.delay.show):e.show())}_leave(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusout"===t.type?"focus":"hover"]=e._element.contains(t.relatedTarget)),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e._config.delay&&e._config.delay.hide?e._timeout=setTimeout(()=>{"out"===e._hoverState&&e.hide()},e._config.delay.hide):e.hide())}_isWithActiveTrigger(){for(const t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1}_getConfig(t){const e=K.getDataAttributes(this._element);return Object.keys(e).forEach(t=>{xt.has(t)&&delete e[t]}),(t={...this.constructor.Default,...e,..."object"==typeof t&&t?t:{}}).container=!1===t.container?document.body:l(t.container),"number"==typeof 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()),c("tooltip",t,this.constructor.DefaultType),t.sanitize&&(t.template=It(t.template,t.allowList,t.sanitizeFn)),t}_getDelegateConfig(){const t={};for(const e in this._config)this.constructor.Default[e]!==this._config[e]&&(t[e]=this._config[e]);return t}_cleanTipClass(){const t=this.getTipElement(),e=new RegExp(`(^|\\s)${this._getBasicClassPrefix()}\\S+`,"g"),i=t.getAttribute("class").match(e);null!==i&&i.length>0&&i.map(t=>t.trim()).forEach(e=>t.classList.remove(e))}_getBasicClassPrefix(){return"bs-tooltip"}_handlePopperPlacementChange(t){const{state:e}=t;e&&(this.tip=e.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(e.placement)))}static jQueryInterface(t){return this.each((function(){const e=Bt.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}b(Bt);const zt={...Bt.Default,placement:"right",offset:[0,8],trigger:"click",content:"",template:''},Rt={...Bt.DefaultType,content:"(string|element|function)"},Ft={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"};class Wt extends Bt{static get Default(){return zt}static get NAME(){return"popover"}static get Event(){return Ft}static get DefaultType(){return Rt}isWithContent(){return this.getTitle()||this._getContent()}setContent(t){this._sanitizeAndSetContent(t,this.getTitle(),".popover-header"),this._sanitizeAndSetContent(t,this._getContent(),".popover-body")}_getContent(){return this._resolvePossibleFunction(this._config.content)}_getBasicClassPrefix(){return"bs-popover"}static jQueryInterface(t){return this.each((function(){const e=Wt.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}b(Wt);const $t={offset:10,method:"auto",target:""},qt={offset:"number",method:"string",target:"(string|element)"},Ut=".nav-link, .list-group-item, .dropdown-item";class Kt extends R{constructor(t,e){super(t),this._scrollElement="BODY"===this._element.tagName?window:this._element,this._config=this._getConfig(e),this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,H.on(this._scrollElement,"scroll.bs.scrollspy",()=>this._process()),this.refresh(),this._process()}static get Default(){return $t}static get NAME(){return"scrollspy"}refresh(){const t=this._scrollElement===this._scrollElement.window?"offset":"position",e="auto"===this._config.method?t:this._config.method,i="position"===e?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),V.find(Ut,this._config.target).map(t=>{const s=n(t),o=s?V.findOne(s):null;if(o){const t=o.getBoundingClientRect();if(t.width||t.height)return[K[e](o).top+i,s]}return null}).filter(t=>t).sort((t,e)=>t[0]-e[0]).forEach(t=>{this._offsets.push(t[0]),this._targets.push(t[1])})}dispose(){H.off(this._scrollElement,".bs.scrollspy"),super.dispose()}_getConfig(t){return(t={...$t,...K.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}}).target=l(t.target)||document.documentElement,c("scrollspy",t,qt),t}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),i=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=i){const t=this._targets[this._targets.length-1];this._activeTarget!==t&&this._activate(t)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(let e=this._offsets.length;e--;)this._activeTarget!==this._targets[e]&&t>=this._offsets[e]&&(void 0===this._offsets[e+1]||t`${e}[data-bs-target="${t}"],${e}[href="${t}"]`),i=V.findOne(e.join(","),this._config.target);i.classList.add("active"),i.classList.contains("dropdown-item")?V.findOne(".dropdown-toggle",i.closest(".dropdown")).classList.add("active"):V.parents(i,".nav, .list-group").forEach(t=>{V.prev(t,".nav-link, .list-group-item").forEach(t=>t.classList.add("active")),V.prev(t,".nav-item").forEach(t=>{V.children(t,".nav-link").forEach(t=>t.classList.add("active"))})}),H.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:t})}_clear(){V.find(Ut,this._config.target).filter(t=>t.classList.contains("active")).forEach(t=>t.classList.remove("active"))}static jQueryInterface(t){return this.each((function(){const e=Kt.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}H.on(window,"load.bs.scrollspy.data-api",()=>{V.find('[data-bs-spy="scroll"]').forEach(t=>new Kt(t))}),b(Kt);class Vt extends R{static get NAME(){return"tab"}show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains("active"))return;let t;const e=o(this._element),i=this._element.closest(".nav, .list-group");if(i){const e="UL"===i.nodeName||"OL"===i.nodeName?":scope > li > .active":".active";t=V.find(e,i),t=t[t.length-1]}const s=t?H.trigger(t,"hide.bs.tab",{relatedTarget:this._element}):null;if(H.trigger(this._element,"show.bs.tab",{relatedTarget:t}).defaultPrevented||null!==s&&s.defaultPrevented)return;this._activate(this._element,i);const n=()=>{H.trigger(t,"hidden.bs.tab",{relatedTarget:this._element}),H.trigger(this._element,"shown.bs.tab",{relatedTarget:t})};e?this._activate(e,e.parentNode,n):n()}_activate(t,e,i){const s=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?V.children(e,".active"):V.find(":scope > li > .active",e))[0],n=i&&s&&s.classList.contains("fade"),o=()=>this._transitionComplete(t,s,i);s&&n?(s.classList.remove("show"),this._queueCallback(o,t,!0)):o()}_transitionComplete(t,e,i){if(e){e.classList.remove("active");const t=V.findOne(":scope > .dropdown-menu .active",e.parentNode);t&&t.classList.remove("active"),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}t.classList.add("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),p(t),t.classList.contains("fade")&&t.classList.add("show");let s=t.parentNode;if(s&&"LI"===s.nodeName&&(s=s.parentNode),s&&s.classList.contains("dropdown-menu")){const e=t.closest(".dropdown");e&&V.find(".dropdown-toggle",e).forEach(t=>t.classList.add("active")),t.setAttribute("aria-expanded",!0)}i&&i()}static jQueryInterface(t){return this.each((function(){const e=Vt.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}H.on(document,"click.bs.tab.data-api",'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),d(this)||Vt.getOrCreateInstance(this).show()})),b(Vt);const Xt={animation:"boolean",autohide:"boolean",delay:"number"},Yt={animation:!0,autohide:!0,delay:5e3};class Qt extends R{constructor(t,e){super(t),this._config=this._getConfig(e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get DefaultType(){return Xt}static get Default(){return Yt}static get NAME(){return"toast"}show(){H.trigger(this._element,"show.bs.toast").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove("hide"),p(this._element),this._element.classList.add("show"),this._element.classList.add("showing"),this._queueCallback(()=>{this._element.classList.remove("showing"),H.trigger(this._element,"shown.bs.toast"),this._maybeScheduleHide()},this._element,this._config.animation))}hide(){this._element.classList.contains("show")&&(H.trigger(this._element,"hide.bs.toast").defaultPrevented||(this._element.classList.add("showing"),this._queueCallback(()=>{this._element.classList.add("hide"),this._element.classList.remove("showing"),this._element.classList.remove("show"),H.trigger(this._element,"hidden.bs.toast")},this._element,this._config.animation)))}dispose(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),super.dispose()}_getConfig(t){return t={...Yt,...K.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}},c("toast",t,this.constructor.DefaultType),t}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){H.on(this._element,"mouseover.bs.toast",t=>this._onInteraction(t,!0)),H.on(this._element,"mouseout.bs.toast",t=>this._onInteraction(t,!1)),H.on(this._element,"focusin.bs.toast",t=>this._onInteraction(t,!0)),H.on(this._element,"focusout.bs.toast",t=>this._onInteraction(t,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=Qt.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return F(Qt),b(Qt),{Alert:W,Button:$,Carousel:et,Collapse:nt,Dropdown:pt,Modal:Tt,Offcanvas:Lt,Popover:Wt,ScrollSpy:Kt,Tab:Vt,Toast:Qt,Tooltip:Bt}})); \ No newline at end of file diff --git a/landing/js/scripts.js b/landing/js/scripts.js index c01baaa..1f5b5d7 100644 --- a/landing/js/scripts.js +++ b/landing/js/scripts.js @@ -133,4 +133,7 @@ function scrollFunctionBTT() { function topFunction() { document.body.scrollTop = 0; // for Safari document.documentElement.scrollTop = 0; // for Chrome, Firefox, IE and Opera -} \ No newline at end of file +} + +// Back-to-top button (was an inline onclick, which the landing CSP does not allow). +if (myButton) myButton.addEventListener("click", topFunction); diff --git a/landing/js/swiper.min.js b/landing/js/swiper.min.js index e1e1a63..b984833 100644 --- a/landing/js/swiper.min.js +++ b/landing/js/swiper.min.js @@ -10,4 +10,3 @@ * Released on: December 19, 2018 */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Swiper=t()}(this,function(){"use strict";var f="undefined"==typeof document?{body:{},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:""},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},location:{hash:""}}:document,J="undefined"==typeof window?{document:f,navigator:{userAgent:""},location:{},history:{},CustomEvent:function(){return this},addEventListener:function(){},removeEventListener:function(){},getComputedStyle:function(){return{getPropertyValue:function(){return""}}},Image:function(){},Date:function(){},screen:{},setTimeout:function(){},clearTimeout:function(){}}:window,l=function(e){for(var t=0;t")){var o="div";for(0===n.indexOf(":~]/)?(t||f).querySelectorAll(e.trim()):[f.getElementById(e.trim().split("#")[1])],i=0;ia.slides.length)break;i.push(a.slides.eq(r)[0])}else i.push(a.slides.eq(a.activeIndex)[0]);for(t=0;t=t.size)&&(t.visibleSlides.push(o),t.visibleSlidesIndexes.push(n),i.eq(n).addClass(a.slideVisibleClass))}o.progress=s?-l:l}t.visibleSlides=L(t.visibleSlides)}},updateProgress:function(e){void 0===e&&(e=this&&this.translate||0);var t=this,a=t.params,i=t.maxTranslate()-t.minTranslate(),s=t.progress,r=t.isBeginning,n=t.isEnd,o=r,l=n;0===i?n=r=!(s=0):(r=(s=(e-t.minTranslate())/i)<=0,n=1<=s),ee.extend(t,{progress:s,isBeginning:r,isEnd:n}),(a.watchSlidesProgress||a.watchSlidesVisibility)&&t.updateSlidesProgress(e),r&&!o&&t.emit("reachBeginning toEdge"),n&&!l&&t.emit("reachEnd toEdge"),(o&&!r||l&&!n)&&t.emit("fromEdge"),t.emit("progress",s)},updateSlidesClasses:function(){var e,t=this,a=t.slides,i=t.params,s=t.$wrapperEl,r=t.activeIndex,n=t.realIndex,o=t.virtual&&i.virtual.enabled;a.removeClass(i.slideActiveClass+" "+i.slideNextClass+" "+i.slidePrevClass+" "+i.slideDuplicateActiveClass+" "+i.slideDuplicateNextClass+" "+i.slideDuplicatePrevClass),(e=o?t.$wrapperEl.find("."+i.slideClass+'[data-swiper-slide-index="'+r+'"]'):a.eq(r)).addClass(i.slideActiveClass),i.loop&&(e.hasClass(i.slideDuplicateClass)?s.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+n+'"]').addClass(i.slideDuplicateActiveClass):s.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+n+'"]').addClass(i.slideDuplicateActiveClass));var l=e.nextAll("."+i.slideClass).eq(0).addClass(i.slideNextClass);i.loop&&0===l.length&&(l=a.eq(0)).addClass(i.slideNextClass);var d=e.prevAll("."+i.slideClass).eq(0).addClass(i.slidePrevClass);i.loop&&0===d.length&&(d=a.eq(-1)).addClass(i.slidePrevClass),i.loop&&(l.hasClass(i.slideDuplicateClass)?s.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+l.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicateNextClass):s.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+l.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicateNextClass),d.hasClass(i.slideDuplicateClass)?s.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+d.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicatePrevClass):s.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+d.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicatePrevClass))},updateActiveIndex:function(e){var t,a=this,i=a.rtlTranslate?a.translate:-a.translate,s=a.slidesGrid,r=a.snapGrid,n=a.params,o=a.activeIndex,l=a.realIndex,d=a.snapIndex,p=e;if(void 0===p){for(var c=0;c=s[c]&&i=s[c]&&i=s[c]&&(p=c);n.normalizeSlideIndex&&(p<0||void 0===p)&&(p=0)}if((t=0<=r.indexOf(i)?r.indexOf(i):Math.floor(p/n.slidesPerGroup))>=r.length&&(t=r.length-1),p!==o){var u=parseInt(a.slides.eq(p).attr("data-swiper-slide-index")||p,10);ee.extend(a,{snapIndex:t,realIndex:u,previousIndex:o,activeIndex:p}),a.emit("activeIndexChange"),a.emit("snapIndexChange"),l!==u&&a.emit("realIndexChange"),a.emit("slideChange")}else t!==d&&(a.snapIndex=t,a.emit("snapIndexChange"))},updateClickedSlide:function(e){var t=this,a=t.params,i=L(e.target).closest("."+a.slideClass)[0],s=!1;if(i)for(var r=0;r=o.length&&(u=o.length-1),(p||n.initialSlide||0)===(d||0)&&a&&s.emit("beforeSlideChangeStart");var h,v=-o[u];if(s.updateProgress(v),n.normalizeSlideIndex)for(var f=0;f=Math.floor(100*l[f])&&(r=f);if(s.initialized&&r!==p){if(!s.allowSlideNext&&vs.translate&&v>s.maxTranslate()&&(p||0)!==r)return!1}return h=pt.slides.length-t.loopedSlides+s/2?(t.loopFix(),r=i.children("."+a.slideClass+'[data-swiper-slide-index="'+e+'"]:not(.'+a.slideDuplicateClass+")").eq(0).index(),ee.nextTick(function(){t.slideTo(r)})):t.slideTo(r):r>t.slides.length-s?(t.loopFix(),r=i.children("."+a.slideClass+'[data-swiper-slide-index="'+e+'"]:not(.'+a.slideDuplicateClass+")").eq(0).index(),ee.nextTick(function(){t.slideTo(r)})):t.slideTo(r)}else t.slideTo(r)}};var u={loopCreate:function(){var i=this,e=i.params,t=i.$wrapperEl;t.children("."+e.slideClass+"."+e.slideDuplicateClass).remove();var s=t.children("."+e.slideClass);if(e.loopFillGroupWithBlank){var a=e.slidesPerGroup-s.length%e.slidesPerGroup;if(a!==e.slidesPerGroup){for(var r=0;rs.length&&(i.loopedSlides=s.length);var o=[],l=[];s.each(function(e,t){var a=L(t);e=s.length-i.loopedSlides&&o.push(t),a.attr("data-swiper-slide-index",e)});for(var d=0;d=s.length-r)&&(e=-s.length+i+r,e+=r,t.slideTo(e,0,!1,!0)&&0!==p&&t.setTranslate((d?-t.translate:t.translate)-p));t.allowSlidePrev=n,t.allowSlideNext=o},loopDestroy:function(){var e=this.$wrapperEl,t=this.params,a=this.slides;e.children("."+t.slideClass+"."+t.slideDuplicateClass+",."+t.slideClass+"."+t.slideBlankClass).remove(),a.removeAttr("data-swiper-slide-index")}};var h={setGrabCursor:function(e){if(!(te.touch||!this.params.simulateTouch||this.params.watchOverflow&&this.isLocked)){var t=this.el;t.style.cursor="move",t.style.cursor=e?"-webkit-grabbing":"-webkit-grab",t.style.cursor=e?"-moz-grabbin":"-moz-grab",t.style.cursor=e?"grabbing":"grab"}},unsetGrabCursor:function(){te.touch||this.params.watchOverflow&&this.isLocked||(this.el.style.cursor="")}};var v={appendSlide:function(e){var t=this,a=t.$wrapperEl,i=t.params;if(i.loop&&t.loopDestroy(),"object"==typeof e&&"length"in e)for(var s=0;s=J.screen.width-d)){if(ee.extend(a,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),s.startX=n,s.startY=o,a.touchStartTime=ee.now(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,0s.startY&&t.translate>=t.minTranslate())return a.isTouched=!1,void(a.isMoved=!1)}else if(os.startX&&t.translate>=t.minTranslate())return;if(a.isTouchEvent&&f.activeElement&&n.target===f.activeElement&&L(n.target).is(a.formElements))return a.isMoved=!0,void(t.allowClick=!1);if(a.allowTouchCallbacks&&t.emit("touchMove",n),!(n.targetTouches&&1i.touchAngle:90-d>i.touchAngle)),a.isScrolling&&t.emit("touchMoveOpposite",n),void 0===a.startMoving&&(s.currentX===s.startX&&s.currentY===s.startY||(a.startMoving=!0)),a.isScrolling)a.isTouched=!1;else if(a.startMoving){t.allowClick=!1,n.preventDefault(),i.touchMoveStopPropagation&&!i.nested&&n.stopPropagation(),a.isMoved||(i.loop&&t.loopFix(),a.startTranslate=t.getTranslate(),t.setTransition(0),t.animating&&t.$wrapperEl.trigger("webkitTransitionEnd transitionend"),a.allowMomentumBounce=!1,!i.grabCursor||!0!==t.allowSlideNext&&!0!==t.allowSlidePrev||t.setGrabCursor(!0),t.emit("sliderFirstMove",n)),t.emit("sliderMove",n),a.isMoved=!0;var u=t.isHorizontal()?p:c;s.diff=u,u*=i.touchRatio,r&&(u=-u),t.swipeDirection=0t.minTranslate()?(h=!1,i.resistance&&(a.currentTranslate=t.minTranslate()-1+Math.pow(-t.minTranslate()+a.startTranslate+u,v))):u<0&&a.currentTranslatea.startTranslate&&(a.currentTranslate=a.startTranslate),0i.threshold||a.allowThresholdMove))return void(a.currentTranslate=a.startTranslate);if(!a.allowThresholdMove)return a.allowThresholdMove=!0,s.startX=s.currentX,s.startY=s.currentY,a.currentTranslate=a.startTranslate,void(s.diff=t.isHorizontal()?s.currentX-s.startX:s.currentY-s.startY)}i.followFinger&&((i.freeMode||i.watchSlidesProgress||i.watchSlidesVisibility)&&(t.updateActiveIndex(),t.updateSlidesClasses()),i.freeMode&&(0===a.velocities.length&&a.velocities.push({position:s[t.isHorizontal()?"startX":"startY"],time:a.touchStartTime}),a.velocities.push({position:s[t.isHorizontal()?"currentX":"currentY"],time:ee.now()})),t.updateProgress(a.currentTranslate),t.setTranslate(a.currentTranslate))}}}}else a.startMoving&&a.isScrolling&&t.emit("touchMoveOpposite",n)}.bind(e),e.onTouchEnd=function(e){var t=this,a=t.touchEventsData,i=t.params,s=t.touches,r=t.rtlTranslate,n=t.$wrapperEl,o=t.slidesGrid,l=t.snapGrid,d=e;if(d.originalEvent&&(d=d.originalEvent),a.allowTouchCallbacks&&t.emit("touchEnd",d),a.allowTouchCallbacks=!1,!a.isTouched)return a.isMoved&&i.grabCursor&&t.setGrabCursor(!1),a.isMoved=!1,void(a.startMoving=!1);i.grabCursor&&a.isMoved&&a.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);var p,c=ee.now(),u=c-a.touchStartTime;if(t.allowClick&&(t.updateClickedSlide(d),t.emit("tap",d),u<300&&300-t.maxTranslate())return void(t.slides.lengtht.minTranslate())i.freeModeMomentumBounce?(w-t.minTranslate()>E&&(w=t.minTranslate()+E),y=t.minTranslate(),T=!0,a.allowMomentumBounce=!0):w=t.minTranslate(),i.loop&&i.centeredSlides&&(x=!0);else if(i.freeModeSticky){for(var S,C=0;C-w){S=C;break}w=-(w=Math.abs(l[S]-w)=i.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}else{for(var M=0,k=t.slidesSizesGrid[0],P=0;P=o[P]&&p=o[P]&&(M=P,k=o[o.length-1]-o[o.length-2]);var z=(p-o[M])/k;if(u>i.longSwipesMs){if(!i.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(z>=i.longSwipesRatio?t.slideTo(M+i.slidesPerGroup):t.slideTo(M)),"prev"===t.swipeDirection&&(z>1-i.longSwipesRatio?t.slideTo(M+i.slidesPerGroup):t.slideTo(M))}else{if(!i.shortSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&t.slideTo(M+i.slidesPerGroup),"prev"===t.swipeDirection&&t.slideTo(M)}}}.bind(e),e.onClick=function(e){this.allowClick||(this.params.preventClicks&&e.preventDefault(),this.params.preventClicksPropagation&&this.animating&&(e.stopPropagation(),e.stopImmediatePropagation()))}.bind(e);var r="container"===t.touchEventsTarget?i:s,n=!!t.nested;if(te.touch||!te.pointerEvents&&!te.prefixedPointerEvents){if(te.touch){var o=!("touchstart"!==a.start||!te.passiveListener||!t.passiveListeners)&&{passive:!0,capture:!1};r.addEventListener(a.start,e.onTouchStart,o),r.addEventListener(a.move,e.onTouchMove,te.passiveListener?{passive:!1,capture:n}:n),r.addEventListener(a.end,e.onTouchEnd,o)}(t.simulateTouch&&!m.ios&&!m.android||t.simulateTouch&&!te.touch&&m.ios)&&(r.addEventListener("mousedown",e.onTouchStart,!1),f.addEventListener("mousemove",e.onTouchMove,n),f.addEventListener("mouseup",e.onTouchEnd,!1))}else r.addEventListener(a.start,e.onTouchStart,!1),f.addEventListener(a.move,e.onTouchMove,n),f.addEventListener(a.end,e.onTouchEnd,!1);(t.preventClicks||t.preventClicksPropagation)&&r.addEventListener("click",e.onClick,!0),e.on(m.ios||m.android?"resize orientationchange observerUpdate":"resize observerUpdate",g,!0)},detachEvents:function(){var e=this,t=e.params,a=e.touchEvents,i=e.el,s=e.wrapperEl,r="container"===t.touchEventsTarget?i:s,n=!!t.nested;if(te.touch||!te.pointerEvents&&!te.prefixedPointerEvents){if(te.touch){var o=!("onTouchStart"!==a.start||!te.passiveListener||!t.passiveListeners)&&{passive:!0,capture:!1};r.removeEventListener(a.start,e.onTouchStart,o),r.removeEventListener(a.move,e.onTouchMove,n),r.removeEventListener(a.end,e.onTouchEnd,o)}(t.simulateTouch&&!m.ios&&!m.android||t.simulateTouch&&!te.touch&&m.ios)&&(r.removeEventListener("mousedown",e.onTouchStart,!1),f.removeEventListener("mousemove",e.onTouchMove,n),f.removeEventListener("mouseup",e.onTouchEnd,!1))}else r.removeEventListener(a.start,e.onTouchStart,!1),f.removeEventListener(a.move,e.onTouchMove,n),f.removeEventListener(a.end,e.onTouchEnd,!1);(t.preventClicks||t.preventClicksPropagation)&&r.removeEventListener("click",e.onClick,!0),e.off(m.ios||m.android?"resize orientationchange observerUpdate":"resize observerUpdate",g)}};var w,y={setBreakpoint:function(){var e=this,t=e.activeIndex,a=e.initialized,i=e.loopedSlides;void 0===i&&(i=0);var s=e.params,r=s.breakpoints;if(r&&(!r||0!==Object.keys(r).length)){var n=e.getBreakpoint(r);if(n&&e.currentBreakpoint!==n){var o=n in r?r[n]:void 0;o&&["slidesPerView","spaceBetween","slidesPerGroup"].forEach(function(e){var t=o[e];void 0!==t&&(o[e]="slidesPerView"!==e||"AUTO"!==t&&"auto"!==t?"slidesPerView"===e?parseFloat(t):parseInt(t,10):"auto")});var l=o||e.originalParams,d=s.loop&&l.slidesPerView!==s.slidesPerView;ee.extend(e.params,l),ee.extend(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),e.currentBreakpoint=n,d&&a&&(e.loopDestroy(),e.loopCreate(),e.updateSlides(),e.slideTo(t-i+e.loopedSlides,0,!1)),e.emit("breakpoint",l)}}},getBreakpoint:function(e){if(e){var t=!1,a=[];Object.keys(e).forEach(function(e){a.push(e)}),a.sort(function(e,t){return parseInt(e,10)-parseInt(t,10)});for(var i=0;i=J.innerWidth&&!t&&(t=s)}return t||"max"}}},I={isIE:!!J.navigator.userAgent.match(/Trident/g)||!!J.navigator.userAgent.match(/MSIE/g),isEdge:!!J.navigator.userAgent.match(/Edge/g),isSafari:(w=J.navigator.userAgent.toLowerCase(),0<=w.indexOf("safari")&&w.indexOf("chrome")<0&&w.indexOf("android")<0),isUiWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(J.navigator.userAgent)};var x={init:!0,direction:"horizontal",touchEventsTarget:"container",initialSlide:0,speed:300,preventInteractionOnTransition:!1,edgeSwipeDetection:!1,edgeSwipeThreshold:20,freeMode:!1,freeModeMomentum:!0,freeModeMomentumRatio:1,freeModeMomentumBounce:!0,freeModeMomentumBounceRatio:1,freeModeMomentumVelocityRatio:1,freeModeSticky:!1,freeModeMinimumVelocity:.02,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsInverse:!1,spaceBetween:0,slidesPerView:1,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,centeredSlides:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!1,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:0,touchMoveStopPropagation:!0,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,watchSlidesVisibility:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,loopFillGroupWithBlank:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,containerModifierClass:"swiper-container-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-invisible-blank",slideActiveClass:"swiper-slide-active",slideDuplicateActiveClass:"swiper-slide-duplicate-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slideDuplicateNextClass:"swiper-slide-duplicate-next",slidePrevClass:"swiper-slide-prev",slideDuplicatePrevClass:"swiper-slide-duplicate-prev",wrapperClass:"swiper-wrapper",runCallbacksOnInit:!0},T={update:o,translate:d,transition:p,slide:c,loop:u,grabCursor:h,manipulation:v,events:b,breakpoints:y,checkOverflow:{checkOverflow:function(){var e=this,t=e.isLocked;e.isLocked=1===e.snapGrid.length,e.allowSlideNext=!e.isLocked,e.allowSlidePrev=!e.isLocked,t!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock"),t&&t!==e.isLocked&&(e.isEnd=!1,e.navigation.update())}},classes:{addClasses:function(){var t=this.classNames,a=this.params,e=this.rtl,i=this.$el,s=[];s.push(a.direction),a.freeMode&&s.push("free-mode"),te.flexbox||s.push("no-flexbox"),a.autoHeight&&s.push("autoheight"),e&&s.push("rtl"),1'+e+"
");return s.attr("data-swiper-slide-index")||s.attr("data-swiper-slide-index",t),i.cache&&(a.virtual.cache[t]=s),s},appendSlide:function(e){this.virtual.slides.push(e),this.virtual.update(!0)},prependSlide:function(e){var t=this;if(t.virtual.slides.unshift(e),t.params.virtual.cache){var a=t.virtual.cache,i={};Object.keys(a).forEach(function(e){i[e+1]=a[e]}),t.virtual.cache=i}t.virtual.update(!0),t.slideNext(0)}},O={name:"virtual",params:{virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,addSlidesBefore:0,addSlidesAfter:0}},create:function(){var e=this;ee.extend(e,{virtual:{update:D.update.bind(e),appendSlide:D.appendSlide.bind(e),prependSlide:D.prependSlide.bind(e),renderSlide:D.renderSlide.bind(e),slides:e.params.virtual.slides,cache:{}}})},on:{beforeInit:function(){var e=this;if(e.params.virtual.enabled){e.classNames.push(e.params.containerModifierClass+"virtual");var t={watchSlidesProgress:!0};ee.extend(e.params,t),ee.extend(e.originalParams,t),e.params.initialSlide||e.virtual.update()}},setTranslate:function(){this.params.virtual.enabled&&this.virtual.update()}}},A={handle:function(e){var t=this,a=t.rtlTranslate,i=e;i.originalEvent&&(i=i.originalEvent);var s=i.keyCode||i.charCode;if(!t.allowSlideNext&&(t.isHorizontal()&&39===s||t.isVertical()&&40===s))return!1;if(!t.allowSlidePrev&&(t.isHorizontal()&&37===s||t.isVertical()&&38===s))return!1;if(!(i.shiftKey||i.altKey||i.ctrlKey||i.metaKey||f.activeElement&&f.activeElement.nodeName&&("input"===f.activeElement.nodeName.toLowerCase()||"textarea"===f.activeElement.nodeName.toLowerCase()))){if(t.params.keyboard.onlyInViewport&&(37===s||39===s||38===s||40===s)){var r=!1;if(0Math.abs(n.pixelY)))return!0;s=n.pixelX*r}else{if(!(Math.abs(n.pixelY)>Math.abs(n.pixelX)))return!0;s=n.pixelY}else s=Math.abs(n.pixelX)>Math.abs(n.pixelY)?-n.pixelX*r:-n.pixelY;if(0===s)return!0;if(i.invert&&(s=-s),a.params.freeMode){a.params.loop&&a.loopFix();var o=a.getTranslate()+s*i.sensitivity,l=a.isBeginning,d=a.isEnd;if(o>=a.minTranslate()&&(o=a.minTranslate()),o<=a.maxTranslate()&&(o=a.maxTranslate()),a.setTransition(0),a.setTranslate(o),a.updateProgress(),a.updateActiveIndex(),a.updateSlidesClasses(),(!l&&a.isBeginning||!d&&a.isEnd)&&a.updateSlidesClasses(),a.params.freeModeSticky&&(clearTimeout(a.mousewheel.timeout),a.mousewheel.timeout=ee.nextTick(function(){a.slideToClosest()},300)),a.emit("scroll",t),a.params.autoplay&&a.params.autoplayDisableOnInteraction&&a.autoplay.stop(),o===a.minTranslate()||o===a.maxTranslate())return!0}else{if(60a-1-2*e.loopedSlides&&(r-=a-2*e.loopedSlides),n-1s.dynamicMainBullets-1?e.pagination.dynamicBulletIndex=s.dynamicMainBullets-1:e.pagination.dynamicBulletIndex<0&&(e.pagination.dynamicBulletIndex=0)),o=r-e.pagination.dynamicBulletIndex,d=((l=o+(Math.min(p.length,s.dynamicMainBullets)-1))+o)/2),p.removeClass(s.bulletActiveClass+" "+s.bulletActiveClass+"-next "+s.bulletActiveClass+"-next-next "+s.bulletActiveClass+"-prev "+s.bulletActiveClass+"-prev-prev "+s.bulletActiveClass+"-main"),1";i.html(s),e.pagination.bullets=i.find("."+t.bulletClass)}"fraction"===t.type&&(s=t.renderFraction?t.renderFraction.call(e,t.currentClass,t.totalClass):' / ',i.html(s)),"progressbar"===t.type&&(s=t.renderProgressbar?t.renderProgressbar.call(e,t.progressbarFillClass):'',i.html(s)),"custom"!==t.type&&e.emit("paginationRender",e.pagination.$el[0])}},init:function(){var a=this,e=a.params.pagination;if(e.el){var t=L(e.el);0!==t.length&&(a.params.uniqueNavElements&&"string"==typeof e.el&&1
'),s.append(r)),ee.extend(t,{$el:s,el:s[0],$dragEl:r,dragEl:r[0]}),i.draggable&&t.enableDraggable()}},destroy:function(){this.scrollbar.disableDraggable()}},Y={setTransform:function(e,t){var a=this.rtl,i=L(e),s=a?-1:1,r=i.attr("data-swiper-parallax")||"0",n=i.attr("data-swiper-parallax-x"),o=i.attr("data-swiper-parallax-y"),l=i.attr("data-swiper-parallax-scale"),d=i.attr("data-swiper-parallax-opacity");if(n||o?(n=n||"0",o=o||"0"):this.isHorizontal()?(n=r,o="0"):(o=r,n="0"),n=0<=n.indexOf("%")?parseInt(n,10)*t*s+"%":n*t*s+"px",o=0<=o.indexOf("%")?parseInt(o,10)*t+"%":o*t+"px",null!=d){var p=d-(d-1)*(1-Math.abs(t));i[0].style.opacity=p}if(null==l)i.transform("translate3d("+n+", "+o+", 0px)");else{var c=l-(l-1)*(1-Math.abs(t));i.transform("translate3d("+n+", "+o+", 0px) scale("+c+")")}},setTranslate:function(){var i=this,e=i.$el,t=i.slides,s=i.progress,r=i.snapGrid;e.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(e,t){i.parallax.setTransform(t,s)}),t.each(function(e,t){var a=t.progress;1i.maxRatio&&(a.scale=i.maxRatio-1+Math.pow(a.scale-i.maxRatio+1,.5)),a.scales.touchesStart.x))return void(s.isTouched=!1);if(!t.isHorizontal()&&(Math.floor(s.minY)===Math.floor(s.startY)&&s.touchesCurrent.ys.touchesStart.y))return void(s.isTouched=!1)}e.preventDefault(),e.stopPropagation(),s.isMoved=!0,s.currentX=s.touchesCurrent.x-s.touchesStart.x+s.startX,s.currentY=s.touchesCurrent.y-s.touchesStart.y+s.startY,s.currentXs.maxX&&(s.currentX=s.maxX-1+Math.pow(s.currentX-s.maxX+1,.8)),s.currentYs.maxY&&(s.currentY=s.maxY-1+Math.pow(s.currentY-s.maxY+1,.8)),r.prevPositionX||(r.prevPositionX=s.touchesCurrent.x),r.prevPositionY||(r.prevPositionY=s.touchesCurrent.y),r.prevTime||(r.prevTime=Date.now()),r.x=(s.touchesCurrent.x-r.prevPositionX)/(Date.now()-r.prevTime)/2,r.y=(s.touchesCurrent.y-r.prevPositionY)/(Date.now()-r.prevTime)/2,Math.abs(s.touchesCurrent.x-r.prevPositionX)<2&&(r.x=0),Math.abs(s.touchesCurrent.y-r.prevPositionY)<2&&(r.y=0),r.prevPositionX=s.touchesCurrent.x,r.prevPositionY=s.touchesCurrent.y,r.prevTime=Date.now(),i.$imageWrapEl.transform("translate3d("+s.currentX+"px, "+s.currentY+"px,0)")}}},onTouchEnd:function(){var e=this.zoom,t=e.gesture,a=e.image,i=e.velocity;if(t.$imageEl&&0!==t.$imageEl.length){if(!a.isTouched||!a.isMoved)return a.isTouched=!1,void(a.isMoved=!1);a.isTouched=!1,a.isMoved=!1;var s=300,r=300,n=i.x*s,o=a.currentX+n,l=i.y*r,d=a.currentY+l;0!==i.x&&(s=Math.abs((o-a.currentX)/i.x)),0!==i.y&&(r=Math.abs((d-a.currentY)/i.y));var p=Math.max(s,r);a.currentX=o,a.currentY=d;var c=a.width*e.scale,u=a.height*e.scale;a.minX=Math.min(t.slideWidth/2-c/2,0),a.maxX=-a.minX,a.minY=Math.min(t.slideHeight/2-u/2,0),a.maxY=-a.minY,a.currentX=Math.max(Math.min(a.currentX,a.maxX),a.minX),a.currentY=Math.max(Math.min(a.currentY,a.maxY),a.minY),t.$imageWrapEl.transition(p).transform("translate3d("+a.currentX+"px, "+a.currentY+"px,0)")}},onTransitionEnd:function(){var e=this.zoom,t=e.gesture;t.$slideEl&&this.previousIndex!==this.activeIndex&&(t.$imageEl.transform("translate3d(0,0,0) scale(1)"),t.$imageWrapEl.transform("translate3d(0,0,0)"),e.scale=1,e.currentScale=1,t.$slideEl=void 0,t.$imageEl=void 0,t.$imageWrapEl=void 0)},toggle:function(e){var t=this.zoom;t.scale&&1!==t.scale?t.out():t.in(e)},in:function(e){var t,a,i,s,r,n,o,l,d,p,c,u,h,v,f,m,g=this,b=g.zoom,w=g.params.zoom,y=b.gesture,x=b.image;(y.$slideEl||(y.$slideEl=g.clickedSlide?L(g.clickedSlide):g.slides.eq(g.activeIndex),y.$imageEl=y.$slideEl.find("img, svg, canvas"),y.$imageWrapEl=y.$imageEl.parent("."+w.containerClass)),y.$imageEl&&0!==y.$imageEl.length)&&(y.$slideEl.addClass(""+w.zoomedSlideClass),void 0===x.touchesStart.x&&e?(t="touchend"===e.type?e.changedTouches[0].pageX:e.pageX,a="touchend"===e.type?e.changedTouches[0].pageY:e.pageY):(t=x.touchesStart.x,a=x.touchesStart.y),b.scale=y.$imageWrapEl.attr("data-swiper-zoom")||w.maxRatio,b.currentScale=y.$imageWrapEl.attr("data-swiper-zoom")||w.maxRatio,e?(f=y.$slideEl[0].offsetWidth,m=y.$slideEl[0].offsetHeight,i=y.$slideEl.offset().left+f/2-t,s=y.$slideEl.offset().top+m/2-a,o=y.$imageEl[0].offsetWidth,l=y.$imageEl[0].offsetHeight,d=o*b.scale,p=l*b.scale,h=-(c=Math.min(f/2-d/2,0)),v=-(u=Math.min(m/2-p/2,0)),(r=i*b.scale)>1]<=t?i=s:a=s;return a};return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(n=o(this.x,e),r=n-1,(e-this.x[r])*(this.y[n]-this.y[r])/(this.x[n]-this.x[r])+this.y[r]):0},this},getInterpolateFunction:function(e){var t=this;t.controller.spline||(t.controller.spline=t.params.loop?new R.LinearSpline(t.slidesGrid,e.slidesGrid):new R.LinearSpline(t.snapGrid,e.snapGrid))},setTranslate:function(e,t){var a,i,s=this,r=s.controller.control;function n(e){var t=s.rtlTranslate?-s.translate:s.translate;"slide"===s.params.controller.by&&(s.controller.getInterpolateFunction(e),i=-s.controller.spline.interpolate(-t)),i&&"container"!==s.params.controller.by||(a=(e.maxTranslate()-e.minTranslate())/(s.maxTranslate()-s.minTranslate()),i=(t-s.minTranslate())*a+e.minTranslate()),s.params.controller.inverse&&(i=e.maxTranslate()-i),e.updateProgress(i),e.setTranslate(i,s),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(r))for(var o=0;o
'),i.append(e)),e.css({height:r+"px"})):0===(e=a.find(".swiper-cube-shadow")).length&&(e=L('
'),a.append(e)));for(var h=0;h
'),v.append(E)),0===S.length&&(S=L('
'),v.append(S)),E.length&&(E[0].style.opacity=Math.max(-b,0)),S.length&&(S[0].style.opacity=Math.max(b,0))}}if(i.css({"-webkit-transform-origin":"50% 50% -"+l/2+"px","-moz-transform-origin":"50% 50% -"+l/2+"px","-ms-transform-origin":"50% 50% -"+l/2+"px","transform-origin":"50% 50% -"+l/2+"px"}),d.shadow)if(p)e.transform("translate3d(0px, "+(r/2+d.shadowOffset)+"px, "+-r/2+"px) rotateX(90deg) rotateZ(0deg) scale("+d.shadowScale+")");else{var C=Math.abs(u)-90*Math.floor(Math.abs(u)/90),M=1.5-(Math.sin(2*C*Math.PI/360)/2+Math.cos(2*C*Math.PI/360)/2),k=d.shadowScale,P=d.shadowScale/M,z=d.shadowOffset;e.transform("scale3d("+k+", 1, "+P+") translate3d(0px, "+(n/2+z)+"px, "+-n/2/P+"px) rotateX(-90deg)")}var $=I.isSafari||I.isUiWebView?-l/2:0;i.transform("translate3d(0px,0,"+$+"px) rotateX("+(t.isHorizontal()?0:u)+"deg) rotateY("+(t.isHorizontal()?-u:0)+"deg)")},setTransition:function(e){var t=this.$el;this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),this.params.cubeEffect.shadow&&!this.isHorizontal()&&t.find(".swiper-cube-shadow").transition(e)}},Z={setTranslate:function(){for(var e=this,t=e.slides,a=e.rtlTranslate,i=0;i
'),s.append(p)),0===c.length&&(c=L('
'),s.append(c)),p.length&&(p[0].style.opacity=Math.max(-r,0)),c.length&&(c[0].style.opacity=Math.max(r,0))}s.transform("translate3d("+l+"px, "+d+"px, 0px) rotateX("+o+"deg) rotateY("+n+"deg)")}},setTransition:function(e){var a=this,t=a.slides,i=a.activeIndex,s=a.$wrapperEl;if(t.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),a.params.virtualTranslate&&0!==e){var r=!1;t.eq(i).transitionEnd(function(){if(!r&&a&&!a.destroyed){r=!0,a.animating=!1;for(var e=["webkitTransitionEnd","transitionend"],t=0;t
'),v.append(E)),0===S.length&&(S=L('
'),v.append(S)),E.length&&(E[0].style.opacity=0')}}),Object.keys(q).forEach(function(e){t.a11y[e]=q[e].bind(t)})},on:{init:function(){this.params.a11y.enabled&&(this.a11y.init(),this.a11y.updateNavigation())},toEdge:function(){this.params.a11y.enabled&&this.a11y.updateNavigation()},fromEdge:function(){this.params.a11y.enabled&&this.a11y.updateNavigation()},paginationUpdate:function(){this.params.a11y.enabled&&this.a11y.updatePagination()},destroy:function(){this.params.a11y.enabled&&this.a11y.destroy()}}},{name:"history",params:{history:{enabled:!1,replaceState:!1,key:"slides"}},create:function(){var e=this;ee.extend(e,{history:{init:W.init.bind(e),setHistory:W.setHistory.bind(e),setHistoryPopState:W.setHistoryPopState.bind(e),scrollToSlide:W.scrollToSlide.bind(e),destroy:W.destroy.bind(e)}})},on:{init:function(){this.params.history.enabled&&this.history.init()},destroy:function(){this.params.history.enabled&&this.history.destroy()},transitionEnd:function(){this.history.initialized&&this.history.setHistory(this.params.history.key,this.activeIndex)}}},{name:"hash-navigation",params:{hashNavigation:{enabled:!1,replaceState:!1,watchState:!1}},create:function(){var e=this;ee.extend(e,{hashNavigation:{initialized:!1,init:j.init.bind(e),destroy:j.destroy.bind(e),setHash:j.setHash.bind(e),onHashCange:j.onHashCange.bind(e)}})},on:{init:function(){this.params.hashNavigation.enabled&&this.hashNavigation.init()},destroy:function(){this.params.hashNavigation.enabled&&this.hashNavigation.destroy()},transitionEnd:function(){this.hashNavigation.initialized&&this.hashNavigation.setHash()}}},{name:"autoplay",params:{autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1}},create:function(){var t=this;ee.extend(t,{autoplay:{running:!1,paused:!1,run:U.run.bind(t),start:U.start.bind(t),stop:U.stop.bind(t),pause:U.pause.bind(t),onTransitionEnd:function(e){t&&!t.destroyed&&t.$wrapperEl&&e.target===this&&(t.$wrapperEl[0].removeEventListener("transitionend",t.autoplay.onTransitionEnd),t.$wrapperEl[0].removeEventListener("webkitTransitionEnd",t.autoplay.onTransitionEnd),t.autoplay.paused=!1,t.autoplay.running?t.autoplay.run():t.autoplay.stop())}}})},on:{init:function(){this.params.autoplay.enabled&&this.autoplay.start()},beforeTransitionStart:function(e,t){this.autoplay.running&&(t||!this.params.autoplay.disableOnInteraction?this.autoplay.pause(e):this.autoplay.stop())},sliderFirstMove:function(){this.autoplay.running&&(this.params.autoplay.disableOnInteraction?this.autoplay.stop():this.autoplay.pause())},destroy:function(){this.autoplay.running&&this.autoplay.stop()}}},{name:"effect-fade",params:{fadeEffect:{crossFade:!1}},create:function(){ee.extend(this,{fadeEffect:{setTranslate:K.setTranslate.bind(this),setTransition:K.setTransition.bind(this)}})},on:{beforeInit:function(){var e=this;if("fade"===e.params.effect){e.classNames.push(e.params.containerModifierClass+"fade");var t={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!0};ee.extend(e.params,t),ee.extend(e.originalParams,t)}},setTranslate:function(){"fade"===this.params.effect&&this.fadeEffect.setTranslate()},setTransition:function(e){"fade"===this.params.effect&&this.fadeEffect.setTransition(e)}}},{name:"effect-cube",params:{cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}},create:function(){ee.extend(this,{cubeEffect:{setTranslate:_.setTranslate.bind(this),setTransition:_.setTransition.bind(this)}})},on:{beforeInit:function(){var e=this;if("cube"===e.params.effect){e.classNames.push(e.params.containerModifierClass+"cube"),e.classNames.push(e.params.containerModifierClass+"3d");var t={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0};ee.extend(e.params,t),ee.extend(e.originalParams,t)}},setTranslate:function(){"cube"===this.params.effect&&this.cubeEffect.setTranslate()},setTransition:function(e){"cube"===this.params.effect&&this.cubeEffect.setTransition(e)}}},{name:"effect-flip",params:{flipEffect:{slideShadows:!0,limitRotation:!0}},create:function(){ee.extend(this,{flipEffect:{setTranslate:Z.setTranslate.bind(this),setTransition:Z.setTransition.bind(this)}})},on:{beforeInit:function(){var e=this;if("flip"===e.params.effect){e.classNames.push(e.params.containerModifierClass+"flip"),e.classNames.push(e.params.containerModifierClass+"3d");var t={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!0};ee.extend(e.params,t),ee.extend(e.originalParams,t)}},setTranslate:function(){"flip"===this.params.effect&&this.flipEffect.setTranslate()},setTransition:function(e){"flip"===this.params.effect&&this.flipEffect.setTransition(e)}}},{name:"effect-coverflow",params:{coverflowEffect:{rotate:50,stretch:0,depth:100,modifier:1,slideShadows:!0}},create:function(){ee.extend(this,{coverflowEffect:{setTranslate:Q.setTranslate.bind(this),setTransition:Q.setTransition.bind(this)}})},on:{beforeInit:function(){var e=this;"coverflow"===e.params.effect&&(e.classNames.push(e.params.containerModifierClass+"coverflow"),e.classNames.push(e.params.containerModifierClass+"3d"),e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0)},setTranslate:function(){"coverflow"===this.params.effect&&this.coverflowEffect.setTranslate()},setTransition:function(e){"coverflow"===this.params.effect&&this.coverflowEffect.setTransition(e)}}},{name:"thumbs",params:{thumbs:{swiper:null,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-container-thumbs"}},create:function(){ee.extend(this,{thumbs:{swiper:null,init:ae.init.bind(this),update:ae.update.bind(this),onThumbClick:ae.onThumbClick.bind(this)}})},on:{beforeInit:function(){var e=this.params.thumbs;e&&e.swiper&&(this.thumbs.init(),this.thumbs.update(!0))},slideChange:function(){this.thumbs.swiper&&this.thumbs.update()},update:function(){this.thumbs.swiper&&this.thumbs.update()},resize:function(){this.thumbs.swiper&&this.thumbs.update()},observerUpdate:function(){this.thumbs.swiper&&this.thumbs.update()},setTransition:function(e){var t=this.thumbs.swiper;t&&t.setTransition(e)},beforeDestroy:function(){var e=this.thumbs.swiper;e&&this.thumbs.swiperCreated&&e&&e.destroy()}}}];return void 0===S.use&&(S.use=S.Class.use,S.installModule=S.Class.installModule),S.use(ie),S}); -//# sourceMappingURL=swiper.min.js.map diff --git a/landing/privacy.php b/landing/privacy.php index 3657629..dfaa9ed 100644 --- a/landing/privacy.php +++ b/landing/privacy.php @@ -1,5 +1,6 @@ g06kU!0RR9100000000000000000000 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 X>$AL+7lo+8GC+D2 ztlnl((Y#b#-fMMk)HQrb9v8cK4AOCKX))QgIKS^D3TZ4wde8SN5tk~l$JUs4!Q`4VdcekTND7Bi-|21*S8iC-RBl1pCc`r&v=WG zRAY;kl0d}t`aL%z5M4TGA)-oZYia^|26LU^dA(L1emQmLMW%TAKpC8lWoa*@gA&`e^V&I^cfKhrjq&@q#6P zxqu55lyn?9apnpK&y70|p0@Jh!ijTwP@deT{vU2hYee$QGlCp}bn!1LjmbQ+r zP*1-v4KPCwIALULVrph?VQJM1&w6KLOX7VZXcI|f3YA7@Fj=sUuAaUD(m(%u?nOf* zV-r&|a|=r=Yc_|=1AKu{B$jkYLncRi=~YE*byaE&X3MsnZhPXcd+vMSu{$2MYtOy| zhmIUOfwr%a{pt@KfkdG(SR9@}B#|jp8lAypu{m5GUmz5TB~qDOp)@uzH8Z#9R{yQ6 zZEWrA9UPsUU0mJVJv_ah1B-k@*0$kwacPu5uWI|s zGxxk343#Q@ex6c~xBG8RxVi_NzPql$Gp$Ch9DH+pji2~gfCQMID9qK#2adTq8~1dH zkR_N$<@6eRUYLuD9@OS;(8*n*N~ulI7nGL>A|qz?Kt-{nY7nREUpp zjpKd&gl>J~8Qwnmz&UUUTmv`Xz2`vLFP;PZ(y%g6fvLP%SbWw@_tjSX_t&z+d9nJ% zwFEu=cBTC92cr8c9`Uo)^ktI5`}&E$FNRaY5XQulUMpbXW}Sz#!$G(x3^UCw0K`gj zYhf$ss)z#pJ0bP!M)T8@L9({ig>? zd6v+3?xy$LL@CYn5so-A&6XqIuaw$wnaf z2t_r{n>38OsUJ6~8#kz(Hjz%dshJp54;xesn^g9jRP~l152M zvq`b2MXgiV_G=WhB=YM`@~UHMZsp{Zq-K|nxU>g|N(Na49ATkr2#OLi3r7?`tDTGt zPI?X}E%&LZsgsh5nw&UEA=JdsNr*!$UR=-iXcTvO-9^NEN{#cJSkG(~ZeA4XaS{^5COC+TKaq;BPbxm1c9`Ts z_vh}FdvWoCU@^%lb}Pyg14ntdv2k}pquel?;BmXbxdx$J-OR(&=c-YIB5aj01*=imyZQa4y{F=+$@s6W;bw_1>R8)#n z{-*MO)SMPf4tE^PcX#Z}<+K<&DGrLA;y-_~fO}885r4ta|3W5Yv}12x-cg$G6{X^o z-jx2g%0$^cs^YBtjX^Ukf;MJ|sP_{11!iEpsBWA?egO>Smo_2(bl?8?0V^9r{2s7B zGdK@$i6|crRL*i6ABl~^81s<;!ZDdxLWgR3OCJCagZ?N@!Koz>j*T0AQhdmuLmq?` K1{R;la{vGg@qXF> literal 0 HcmV?d00001 diff --git a/landing/webfonts/open-sans/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkWVAewA.woff2 b/landing/webfonts/open-sans/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkWVAewA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..bb2166e55beaa66bd2cb0dfd3341ba881bfefaf4 GIT binary patch literal 19304 zcmV)7K*zs#Pew8T0RR91083~95&!@I0FM{|080M=0RR9100000000000000000000 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 bc48~^!9*K{#%YB!{wUCwje487ijP$dM_Yu_ literal 0 HcmV?d00001 diff --git a/landing/webfonts/open-sans/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2 b/landing/webfonts/open-sans/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b5d54e7629057f310f8ef458e67ba2f568032139 GIT binary patch literal 48320 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 literal 0 HcmV?d00001 diff --git a/landing/webfonts/open-sans/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2 b/landing/webfonts/open-sans/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..08bed85e3d0d366be9b055236c4ce01db4e7b505 GIT binary patch literal 35156 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