From affd0e8d8bac05faaae4deb63795483be8b83a67 Mon Sep 17 00:00:00 2001 From: Paolo Salvatori Date: Tue, 26 May 2026 15:38:25 +0200 Subject: [PATCH 1/3] Add web-app-postgresql-flexible-server vacation planner sample MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sibling to web-app-cosmosdb-mongodb-api: same Vacation Planner Flask UI, backed by Azure Database for PostgreSQL flexible server fronted by a Private Endpoint (group `postgresqlServer`). The server runs in public-access mode with a permissive firewall rule so the deploy machine can run the post-create psql bootstrap; the Web App reaches the server through the Private Endpoint via the linked `privatelink.postgres.database.azure.com` Private DNS Zone. The deploy flow mirrors web-app-sql-database: after the IaC provisions the infra (server + database + private endpoint + Web App), psql creates a dedicated application role `testuser`, grants the minimum schema privileges on `PlannerDB`, creates the `activities` table, and seeds three demo rows. The Web App's `PG_USER` / `PG_PASSWORD` are set to `testuser` after psql — the server-admin login is never written to the Web App's app settings. Three IaC variants (scripts, Bicep, Terraform) deploy the same topology. All three derive `PG_HOST` and `PG_PORT` from the server's `fullyQualifiedDomainName` by splitting on `:`: LocalStack returns host:port (the dynamic TCP-proxy port that fronts the shared `postgres:18` container), real Azure returns just the bare host so `PG_PORT` defaults to 5432. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../python/README.md | 105 + .../python/bicep/README.md | 95 + .../python/bicep/deploy.sh | 336 + .../python/bicep/main.bicep | 308 + .../python/bicep/main.bicepparam | 19 + .../bicep/modules/app-service-plan.bicep | 154 + .../python/bicep/modules/log-analytics.bicep | 45 + .../modules/postgresql-flexible-server.bicep | 171 + .../bicep/modules/private-dns-zone.bicep | 41 + .../bicep/modules/private-endpoint.bicep | 72 + .../bicep/modules/virtual-network.bicep | 238 + .../python/bicep/modules/web-app.bicep | 212 + .../python/images/architecture.png | Bin 0 -> 99609 bytes .../python/images/vacation-planner.png | Bin 0 -> 85690 bytes .../python/scripts/README.md | 66 + .../python/scripts/call-web-app.sh | 198 + .../python/scripts/deploy.sh | 1113 ++ .../python/scripts/validate.sh | 134 + .../python/src/app.py | 94 + .../python/src/database.py | 134 + .../python/src/gunicorn.conf.py | 18 + .../python/src/requirements.txt | 4 + .../static/bootstrap/css/bootstrap-grid.css | 5051 +++++++ .../bootstrap/css/bootstrap-grid.css.map | 1 + .../bootstrap/css/bootstrap-grid.min.css | 7 + .../bootstrap/css/bootstrap-grid.min.css.map | 1 + .../bootstrap/css/bootstrap-grid.rtl.css | 5050 +++++++ .../bootstrap/css/bootstrap-grid.rtl.css.map | 1 + .../bootstrap/css/bootstrap-grid.rtl.min.css | 7 + .../css/bootstrap-grid.rtl.min.css.map | 1 + .../static/bootstrap/css/bootstrap-reboot.css | 485 + .../bootstrap/css/bootstrap-reboot.css.map | 1 + .../bootstrap/css/bootstrap-reboot.min.css | 8 + .../css/bootstrap-reboot.min.css.map | 1 + .../bootstrap/css/bootstrap-reboot.rtl.css | 482 + .../css/bootstrap-reboot.rtl.css.map | 1 + .../css/bootstrap-reboot.rtl.min.css | 8 + .../css/bootstrap-reboot.rtl.min.css.map | 1 + .../bootstrap/css/bootstrap-utilities.css | 4866 +++++++ .../bootstrap/css/bootstrap-utilities.css.map | 1 + .../bootstrap/css/bootstrap-utilities.min.css | 7 + .../css/bootstrap-utilities.min.css.map | 1 + .../bootstrap/css/bootstrap-utilities.rtl.css | 4857 +++++++ .../css/bootstrap-utilities.rtl.css.map | 1 + .../css/bootstrap-utilities.rtl.min.css | 7 + .../css/bootstrap-utilities.rtl.min.css.map | 1 + .../src/static/bootstrap/css/bootstrap.css | 11266 ++++++++++++++++ .../static/bootstrap/css/bootstrap.css.map | 1 + .../static/bootstrap/css/bootstrap.min.css | 7 + .../bootstrap/css/bootstrap.min.css.map | 1 + .../static/bootstrap/css/bootstrap.rtl.css | 11242 +++++++++++++++ .../bootstrap/css/bootstrap.rtl.css.map | 1 + .../bootstrap/css/bootstrap.rtl.min.css | 7 + .../bootstrap/css/bootstrap.rtl.min.css.map | 1 + .../static/bootstrap/js/bootstrap.bundle.js | 6812 ++++++++++ .../bootstrap/js/bootstrap.bundle.js.map | 1 + .../bootstrap/js/bootstrap.bundle.min.js | 7 + .../bootstrap/js/bootstrap.bundle.min.js.map | 1 + .../src/static/bootstrap/js/bootstrap.esm.js | 4999 +++++++ .../static/bootstrap/js/bootstrap.esm.js.map | 1 + .../static/bootstrap/js/bootstrap.esm.min.js | 7 + .../bootstrap/js/bootstrap.esm.min.js.map | 1 + .../src/static/bootstrap/js/bootstrap.js | 5046 +++++++ .../src/static/bootstrap/js/bootstrap.js.map | 1 + .../src/static/bootstrap/js/bootstrap.min.js | 7 + .../static/bootstrap/js/bootstrap.min.js.map | 1 + .../python/src/static/favicon.ico | Bin 0 -> 36791 bytes .../python/src/static/style.css | 341 + .../python/src/templates/index.html | 260 + .../python/terraform/.terraform.lock.hcl | 22 + .../python/terraform/README.md | 63 + .../python/terraform/deploy.sh | 266 + .../python/terraform/main.tf | 198 + .../modules/app_service_plan/main.tf | 25 + .../modules/app_service_plan/outputs.tf | 19 + .../modules/app_service_plan/variables.tf | 42 + .../terraform/modules/log_analytics/main.tf | 14 + .../terraform/modules/log_analytics/output.tf | 30 + .../modules/log_analytics/variables.tf | 37 + .../terraform/modules/nat_gateway/main.tf | 42 + .../terraform/modules/nat_gateway/output.tf | 14 + .../modules/nat_gateway/variables.tf | 43 + .../modules/network_security_group/main.tf | 53 + .../modules/network_security_group/outputs.tf | 9 + .../network_security_group/variables.tf | 51 + .../modules/postgres_flexible_server/main.tf | 46 + .../postgres_flexible_server/outputs.tf | 15 + .../postgres_flexible_server/variables.tf | 81 + .../modules/private_dns_zone/main.tf | 26 + .../modules/private_dns_zone/outputs.tf | 9 + .../modules/private_dns_zone/variables.tf | 20 + .../modules/private_endpoint/main.tf | 26 + .../modules/private_endpoint/outputs.tf | 19 + .../modules/private_endpoint/variables.tf | 61 + .../terraform/modules/virtual_network/main.tf | 58 + .../modules/virtual_network/outputs.tf | 19 + .../modules/virtual_network/variables.tf | 40 + .../python/terraform/modules/web_app/main.tf | 81 + .../terraform/modules/web_app/outputs.tf | 24 + .../terraform/modules/web_app/variables.tf | 96 + .../python/terraform/outputs.tf | 27 + .../python/terraform/providers.tf | 24 + .../python/terraform/terraform.tfvars | 3 + .../python/terraform/variables.tf | 206 + .../python/visio/architecture.vsdx | Bin 0 -> 542962 bytes 105 files changed, 66224 insertions(+) create mode 100644 samples/web-app-postgresql-flexible-server/python/README.md create mode 100644 samples/web-app-postgresql-flexible-server/python/bicep/README.md create mode 100755 samples/web-app-postgresql-flexible-server/python/bicep/deploy.sh create mode 100644 samples/web-app-postgresql-flexible-server/python/bicep/main.bicep create mode 100644 samples/web-app-postgresql-flexible-server/python/bicep/main.bicepparam create mode 100644 samples/web-app-postgresql-flexible-server/python/bicep/modules/app-service-plan.bicep create mode 100644 samples/web-app-postgresql-flexible-server/python/bicep/modules/log-analytics.bicep create mode 100644 samples/web-app-postgresql-flexible-server/python/bicep/modules/postgresql-flexible-server.bicep create mode 100644 samples/web-app-postgresql-flexible-server/python/bicep/modules/private-dns-zone.bicep create mode 100644 samples/web-app-postgresql-flexible-server/python/bicep/modules/private-endpoint.bicep create mode 100644 samples/web-app-postgresql-flexible-server/python/bicep/modules/virtual-network.bicep create mode 100644 samples/web-app-postgresql-flexible-server/python/bicep/modules/web-app.bicep create mode 100644 samples/web-app-postgresql-flexible-server/python/images/architecture.png create mode 100644 samples/web-app-postgresql-flexible-server/python/images/vacation-planner.png create mode 100644 samples/web-app-postgresql-flexible-server/python/scripts/README.md create mode 100755 samples/web-app-postgresql-flexible-server/python/scripts/call-web-app.sh create mode 100755 samples/web-app-postgresql-flexible-server/python/scripts/deploy.sh create mode 100755 samples/web-app-postgresql-flexible-server/python/scripts/validate.sh create mode 100644 samples/web-app-postgresql-flexible-server/python/src/app.py create mode 100644 samples/web-app-postgresql-flexible-server/python/src/database.py create mode 100644 samples/web-app-postgresql-flexible-server/python/src/gunicorn.conf.py create mode 100644 samples/web-app-postgresql-flexible-server/python/src/requirements.txt create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.css create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.css.map create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.min.css create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.min.css.map create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.rtl.css create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.rtl.css.map create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.rtl.min.css create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.rtl.min.css.map create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-reboot.css create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-reboot.css.map create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-reboot.min.css create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-reboot.min.css.map create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-reboot.rtl.css create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-reboot.rtl.css.map create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-reboot.rtl.min.css create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-reboot.rtl.min.css.map create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-utilities.css create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-utilities.css.map create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-utilities.min.css create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-utilities.min.css.map create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-utilities.rtl.css create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-utilities.rtl.css.map create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-utilities.rtl.min.css create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-utilities.rtl.min.css.map create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap.css create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap.css.map create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap.min.css create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap.min.css.map create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap.rtl.css create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap.rtl.css.map create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap.rtl.min.css create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap.rtl.min.css.map create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/js/bootstrap.bundle.js create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/js/bootstrap.bundle.js.map create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/js/bootstrap.bundle.min.js create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/js/bootstrap.bundle.min.js.map create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/js/bootstrap.esm.js create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/js/bootstrap.esm.js.map create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/js/bootstrap.esm.min.js create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/js/bootstrap.esm.min.js.map create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/js/bootstrap.js create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/js/bootstrap.js.map create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/js/bootstrap.min.js create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/js/bootstrap.min.js.map create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/favicon.ico create mode 100644 samples/web-app-postgresql-flexible-server/python/src/static/style.css create mode 100644 samples/web-app-postgresql-flexible-server/python/src/templates/index.html create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/.terraform.lock.hcl create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/README.md create mode 100755 samples/web-app-postgresql-flexible-server/python/terraform/deploy.sh create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/main.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/app_service_plan/main.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/app_service_plan/outputs.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/app_service_plan/variables.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/log_analytics/main.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/log_analytics/output.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/log_analytics/variables.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/nat_gateway/main.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/nat_gateway/output.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/nat_gateway/variables.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/network_security_group/main.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/network_security_group/outputs.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/network_security_group/variables.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/postgres_flexible_server/main.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/postgres_flexible_server/outputs.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/postgres_flexible_server/variables.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/private_dns_zone/main.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/private_dns_zone/outputs.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/private_dns_zone/variables.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/private_endpoint/main.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/private_endpoint/outputs.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/private_endpoint/variables.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/virtual_network/main.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/virtual_network/outputs.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/virtual_network/variables.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/web_app/main.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/web_app/outputs.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/modules/web_app/variables.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/outputs.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/providers.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/terraform.tfvars create mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/variables.tf create mode 100644 samples/web-app-postgresql-flexible-server/python/visio/architecture.vsdx diff --git a/samples/web-app-postgresql-flexible-server/python/README.md b/samples/web-app-postgresql-flexible-server/python/README.md new file mode 100644 index 0000000..e81d13a --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/README.md @@ -0,0 +1,105 @@ +# Azure Web App with Azure Database for PostgreSQL flexible server + +This sample demonstrates a Python Flask single-page web application called *Vacation Planner* hosted on an [Azure Web App](https://learn.microsoft.com/en-us/azure/app-service/overview). The app runs on an Azure App Service Plan and stores activity data in the `activities` table of the `PlannerDB` database on an [Azure Database for PostgreSQL flexible server](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/overview). The server is reached through a [Private Endpoint](https://learn.microsoft.com/azure/private-link/private-endpoint-overview) (group `postgresqlServer`) with the `privatelink.postgres.database.azure.com` Private DNS Zone, while a permissive server-level firewall rule lets the deploy machine run the post-create psql bootstrap that creates the application role and seeds the schema. + +## Architecture + +![Architecture Diagram](./images/architecture.png) + +The web app enables users to plan and manage vacation activities; all data is persisted in PostgreSQL. The solution is composed of the following Azure resources: + +1. [Azure Resource Group](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-cli): A logical container scoping all resources in this sample. +2. [Azure Virtual Network](https://learn.microsoft.com/azure/virtual-network/virtual-networks-overview): Hosts two subnets: + - *app-subnet*: Delegated to `Microsoft.Web/serverFarms` for regional VNet integration of the Web App. + - *pe-subnet*: Hosts the Private Endpoint to the PostgreSQL flexible server. +3. [Azure Private DNS Zone](https://learn.microsoft.com/azure/dns/private-dns-privatednszone) `privatelink.postgres.database.azure.com`, linked to the VNet. The Private Endpoint's DNS-zone group auto-registers the `A` record for the server, so the Web App resolves the server's private IP through the VNet. +4. [Azure Private Endpoint](https://learn.microsoft.com/azure/private-link/private-endpoint-overview) (group `postgresqlServer`): Secures access to the PostgreSQL flexible server from the VNet. +5. [Azure NAT Gateway](https://learn.microsoft.com/azure/nat-gateway/nat-overview): Deterministic outbound connectivity for both subnets. +6. [Azure Network Security Group](https://learn.microsoft.com/en-us/azure/virtual-network/network-security-groups-overview): One NSG per subnet. +7. [Azure Log Analytics Workspace](https://learn.microsoft.com/azure/azure-monitor/logs/log-analytics-overview): Centralizes diagnostic logs and metrics. +8. [Azure Database for PostgreSQL flexible server](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/overview): Public-access server hosting the `PlannerDB` database. Burstable `Standard_B1ms`, version 16, 32 GiB storage, 7-day backup retention, HA disabled. A permissive firewall rule (`0.0.0.0–255.255.255.255`) is created so the deploy machine can run the post-create psql bootstrap; the Web App itself reaches the server through the Private Endpoint. +9. [PostgreSQL database](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/concepts-server-and-database) `PlannerDB`: Created at provisioning time; the post-deploy psql step creates the `activities` table and seeds three demo rows. +10. [Azure App Service Plan](https://learn.microsoft.com/en-us/azure/app-service/overview-hosting-plans): The underlying compute tier that hosts the web application. +11. [Azure Web App](https://learn.microsoft.com/en-us/azure/app-service/overview): Runs the Python Flask *Vacation Planner* app with regional VNet integration into *app-subnet*. The Web App connects to PostgreSQL using a dedicated application role (`testuser`) — the server-admin login is never used at runtime. +12. [App Service Source Control](https://learn.microsoft.com/en-us/rest/api/appservice/web-apps/create-or-update-source-control?view=rest-appservice-2024-11-01): *(Optional)* Configures continuous deployment from a public GitHub repository. + +The deploy scripts follow the same pattern as the sibling [`web-app-sql-database`](../../web-app-sql-database/python/) sample: after provisioning, they (i) connect as the server admin via the public endpoint + firewall rule, (ii) create the application role `testuser` with its own password, (iii) grant minimum schema privileges on `PlannerDB`, (iv) create the `activities` table, (v) seed three sample rows, and (vi) write `PG_USER=testuser` + `PG_PASSWORD` onto the Web App's app settings. The server-admin login is never written into the Web App's runtime configuration. + +## Prerequisites + +- [Azure Subscription](https://azure.microsoft.com/free/) +- [Azure CLI](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli) +- [Python 3.11+](https://www.python.org/downloads/) +- [Flask](https://flask.palletsprojects.com/) +- [psycopg2](https://www.psycopg.org/docs/) (`psycopg2-binary` for development) +- [PostgreSQL client tools](https://www.postgresql.org/download/) (`psql`) — required by the deploy scripts to create the application role and seed data +- [Bicep extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-bicep), if you plan to install the sample via Bicep +- [Terraform](https://developer.hashicorp.com/terraform/downloads), if you plan to install the sample via Terraform + +## Deployment + +Set up the Azure emulator using the LocalStack for Azure Docker image. Before starting, ensure you have a valid `LOCALSTACK_AUTH_TOKEN`. Refer to the [Auth Token guide](https://docs.localstack.cloud/getting-started/auth-token/) to obtain yours. Pull and start the emulator: + +```bash +docker pull localstack/localstack-azure-alpha + +export LOCALSTACK_AUTH_TOKEN= +IMAGE_NAME=localstack/localstack-azure-alpha localstack start -d +localstack wait -t 60 + +# Route all Azure CLI calls to the LocalStack Azure emulator +azlocal start-interception +``` + +Deploy the application using one of these methods: + +- [Azure CLI Deployment](./scripts/README.md) +- [Bicep Deployment](./bicep/README.md) +- [Terraform Deployment](./terraform/README.md) + +All three variants provision the same topology: VNet + pe-subnet hosting a Private Endpoint targeting a public-access PostgreSQL flexible server, with a Private DNS Zone linked to the VNet. + +> **Note** +> When you deploy the application to LocalStack for Azure for the first time, the initialization process pulls and builds Docker images (LocalStack itself plus the `postgres:18` backing container for the flexible-server emulator). This is a one-time operation — subsequent deployments are much faster. + +## Test + +1. Retrieve the port published and mapped to port 80 by the Docker container hosting the emulated Web App. +2. Open a web browser and navigate to `http://localhost:`. +3. If the deployment was successful, you will see the *Vacation Planner* UI with the three seeded activities (*Go to Paris*, *Go to London*, *Go to Mexico*) and can add, edit, and remove activities. + +![Vacation Planner UI](./images/vacation-planner.png) + +You can use the `scripts/call-web-app.sh` Bash script to call the web app from outside the emulator. The script demonstrates four call paths: + +1. **Through the LocalStack for Azure emulator** via the default hostname. +2. **Via localhost and host port** mapped to the container's port `80`. +3. **Via container IP address** on port `80`. +4. **Via the default hostname** `.azurewebsites.azure.localhost.localstack.cloud:4566`. + +## PostgreSQL Tooling + +You can use [pgAdmin](https://www.pgadmin.org/) to explore and manage the deployed database. Connect using: + +| Field | Value | +| -------- | --------------------------------------------------------------------------- | +| Host | `localhost` | +| Port | (see `docker ps` for the host-mapped port of the backing `postgres:18` container) | +| Database | `PlannerDB` | +| Username | `testuser` *(or `pgadmin` for admin operations)* | +| Password | `TestP@ssw0rd123` *(or `P@ssw0rd1234!` for the admin)* | + +Or use [psql](https://www.postgresql.org/docs/current/app-psql.html): + +```bash +PGPASSWORD='TestP@ssw0rd123' psql -h localhost -p -U testuser -d PlannerDB +PlannerDB=> SELECT id, username, activity, created_at FROM activities; +``` + +## References + +- [Azure Web Apps Documentation](https://learn.microsoft.com/en-us/azure/app-service/) +- [Azure Database for PostgreSQL — flexible server](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/) +- [Quickstart: Python Flask on Azure](https://learn.microsoft.com/en-us/azure/app-service/quickstart-python?tabs=flask%2Cbrowser) +- [psycopg2 documentation](https://www.psycopg.org/docs/) +- [LocalStack for Azure](https://docs.localstack.cloud/azure/) diff --git a/samples/web-app-postgresql-flexible-server/python/bicep/README.md b/samples/web-app-postgresql-flexible-server/python/bicep/README.md new file mode 100644 index 0000000..da03b68 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/bicep/README.md @@ -0,0 +1,95 @@ +# Bicep Deployment + +This directory contains the Bicep template and a deployment script for provisioning the sample's Azure resources. For details about the sample application, see [Azure Web App with Azure Database for PostgreSQL flexible server](../README.md). + +## Prerequisites + +- [LocalStack for Azure](https://docs.localstack.cloud/azure/) +- [Visual Studio Code](https://code.visualstudio.com/) + [Bicep extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-bicep) +- [Docker](https://docs.docker.com/get-docker/) +- [Azure CLI](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli) + [Azlocal CLI](https://azure.localstack.cloud/user-guides/sdks/az/) +- [Python 3.12+](https://www.python.org/downloads/) +- [PostgreSQL client (`psql`)](https://www.postgresql.org/download/) +- [`jq`](https://jqlang.org/) + +```bash +pip install azlocal +``` + +## Architecture Overview + +The [`deploy.sh`](deploy.sh) script creates the resource group while the Bicep modules create: + +1. [Azure Virtual Network](https://learn.microsoft.com/azure/virtual-network/virtual-networks-overview) with two subnets: + - *app-subnet*: delegated to `Microsoft.Web/serverFarms` for the Web App's regional VNet integration. + - *pe-subnet*: hosts the Private Endpoint to the PostgreSQL flexible server. +2. [Azure Private DNS Zone](https://learn.microsoft.com/azure/dns/private-dns-privatednszone) `privatelink.postgres.database.azure.com`, linked to the VNet. +3. [Azure Private Endpoint](https://learn.microsoft.com/azure/private-link/private-endpoint-overview) (group `postgresqlServer`). +4. [Azure NAT Gateway](https://learn.microsoft.com/azure/nat-gateway/nat-overview). +5. [Network Security Groups](https://learn.microsoft.com/en-us/azure/virtual-network/network-security-groups-overview): one per subnet. +6. [Azure Log Analytics Workspace](https://learn.microsoft.com/azure/azure-monitor/logs/log-analytics-overview). +7. [Azure Database for PostgreSQL flexible server](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/overview): public-access mode, Burstable `Standard_B1ms`, version 16, 32 GiB, HA disabled. A permissive firewall rule (`0.0.0.0–255.255.255.255`) lets the deploy machine reach the server for the post-create psql bootstrap. +8. [PostgreSQL database](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/concepts-server-and-database) `sampledb` (UTF8 / `en_US.utf8`). +9. [Azure App Service Plan](https://learn.microsoft.com/en-us/azure/app-service/overview-hosting-plans). +10. [Azure Web App](https://learn.microsoft.com/en-us/azure/app-service/overview) with regional VNet integration into *app-subnet*. The Bicep template sets `PG_HOST`, `PG_PORT`, and `PG_DATABASE` on the Web App but **does not** set `PG_USER` or `PG_PASSWORD` — those are written by `deploy.sh` after psql creates the application role. + +## Configuration + +Update [`main.bicepparam`](main.bicepparam) before deploying. The defaults are: + +```bicep +using 'main.bicep' + +param prefix = 'local' +param suffix = 'test' +param runtimeName = 'python' +param runtimeVersion = '3.13' +param databaseName = 'sampledb' +param username = 'paolo' + +param pgAdminLogin = 'pgadmin' +param pgAdminPassword = readEnvironmentVariable('PG_ADMIN_PASSWORD', '') +param pgVersion = '16' +param pgSkuTier = 'Burstable' +param pgSkuName = 'Standard_B1ms' +param pgStorageSizeGB = 32 +param pgBackupRetentionDays = 7 +``` + +`pgAdminPassword` is read from the `PG_ADMIN_PASSWORD` env var. `deploy.sh` sets a default (`P@ssw0rd1234!`) if not provided; override for non-dev deployments. + +## Deployment + +```bash +# default values +bash deploy.sh + +# override admin and app-user secrets +PG_ADMIN_PASSWORD='' \ +PG_APP_PASSWORD='' \ +bash deploy.sh +``` + +The script will: + +1. Ensure the resource group exists. +2. Validate `main.bicep`. +3. Deploy the template, passing `pgAdminPassword`. +4. Use `psql` (connected via the public endpoint + firewall rule) to create the `testuser` role, the `activities` table, and the three demo rows. +5. Set the Web App's `PG_USER`/`PG_PASSWORD` to `testuser` / `` — the server admin login is never written to the Web App. +6. Zip the application source under `../src` and deploy it. + +## Verification + +```bash +PGPASSWORD='TestP@ssw0rd123' psql -h -p -U testuser -d PlannerDB \ + -c "SELECT id, username, activity, created_at FROM activities;" +``` + +`` is `5432` in real Azure, or the port suffix of the server's FQDN in LocalStack: + +```bash +az postgres flexible-server show \ + --resource-group local-rg --name local-pgflex-test \ + --query fullyQualifiedDomainName --output tsv +``` diff --git a/samples/web-app-postgresql-flexible-server/python/bicep/deploy.sh b/samples/web-app-postgresql-flexible-server/python/bicep/deploy.sh new file mode 100755 index 0000000..d4ed0a7 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/bicep/deploy.sh @@ -0,0 +1,336 @@ +#!/bin/bash + +# Variables +PREFIX='local' +SUFFIX='test' +TEMPLATE="main.bicep" +PARAMETERS="main.bicepparam" +RESOURCE_GROUP_NAME="${PREFIX}-rg" +LOCATION="westeurope" +VALIDATE_TEMPLATE=1 +USE_WHAT_IF=0 +SUBSCRIPTION_NAME=$(az account show --query name --output tsv) +PG_ADMIN_USER="pgadmin" +PG_ADMIN_PASSWORD="P@ssw0rd1234!" +PG_APP_USER="testuser" +PG_APP_PASSWORD="TestP@ssw0rd123" +CURRENT_DIR="$(cd "$(dirname "$0")" && pwd)" +ZIPFILE="planner_website.zip" + +# Change the current directory to the script's directory +cd "$CURRENT_DIR" || exit + +# Validates if the resource group exists in the subscription, if not creates it +echo "Checking if resource group [$RESOURCE_GROUP_NAME] exists in the subscription [$SUBSCRIPTION_NAME]..." +az group show --name $RESOURCE_GROUP_NAME &>/dev/null + +if [[ $? != 0 ]]; then + echo "No resource group [$RESOURCE_GROUP_NAME] exists in the subscription [$SUBSCRIPTION_NAME]" + echo "Creating resource group [$RESOURCE_GROUP_NAME] in the subscription [$SUBSCRIPTION_NAME]..." + + # Create the resource group + az group create \ + --name $RESOURCE_GROUP_NAME \ + --location $LOCATION \ + --only-show-errors 1> /dev/null + + if [[ $? == 0 ]]; then + echo "Resource group [$RESOURCE_GROUP_NAME] successfully created in the subscription [$SUBSCRIPTION_NAME]" + else + echo "Failed to create resource group [$RESOURCE_GROUP_NAME] in the subscription [$SUBSCRIPTION_NAME]" + exit + fi +else + echo "Resource group [$RESOURCE_GROUP_NAME] already exists in the subscription [$SUBSCRIPTION_NAME]" +fi + +# Validates the Bicep template +if [[ $VALIDATE_TEMPLATE == 1 ]]; then + if [[ $USE_WHAT_IF == 1 ]]; then + # Execute a deployment What-If operation at resource group scope. + echo "Previewing changes deployed by Bicep template [$TEMPLATE]..." + az deployment group what-if \ + --resource-group $RESOURCE_GROUP_NAME \ + --template-file $TEMPLATE \ + --parameters $PARAMETERS \ + --parameters location=$LOCATION \ + prefix=$PREFIX \ + suffix=$SUFFIX \ + pgAdminPassword="$PG_ADMIN_PASSWORD" \ + --only-show-errors + + if [[ $? == 0 ]]; then + echo "Bicep template [$TEMPLATE] validation succeeded" + else + echo "Failed to validate Bicep template [$TEMPLATE]" + exit + fi + else + # Validate the Bicep template + echo "Validating Bicep template [$TEMPLATE]..." + output=$(az deployment group validate \ + --resource-group $RESOURCE_GROUP_NAME \ + --template-file $TEMPLATE \ + --parameters $PARAMETERS \ + --parameters location=$LOCATION \ + prefix=$PREFIX \ + suffix=$SUFFIX \ + pgAdminPassword="$PG_ADMIN_PASSWORD" \ + --only-show-errors) + + if [[ $? == 0 ]]; then + echo "Bicep template [$TEMPLATE] validation succeeded" + else + echo "Failed to validate Bicep template [$TEMPLATE]" + echo "$output" + exit + fi + fi +fi + +# Deploy the Bicep template +echo "Deploying Bicep template [$TEMPLATE]..." +if DEPLOYMENT_OUTPUTS=$(az deployment group create \ + --resource-group $RESOURCE_GROUP_NAME \ + --only-show-errors \ + --template-file $TEMPLATE \ + --parameters $PARAMETERS \ + --parameters location=$LOCATION \ + prefix=$PREFIX \ + suffix=$SUFFIX \ + pgAdminPassword="$PG_ADMIN_PASSWORD" \ + --query 'properties.outputs' -o json); then + # Extract only the JSON portion (everything from first { to the end) + DEPLOYMENT_JSON=$(echo "$DEPLOYMENT_OUTPUTS" | sed -n '/{/,$ p') + echo "Bicep template [$TEMPLATE] deployed successfully. Outputs:" + echo "$DEPLOYMENT_JSON" | jq . + WEB_APP_NAME=$(echo "$DEPLOYMENT_JSON" | jq -r '.webAppName.value') + POSTGRES_SERVER_NAME=$(echo "$DEPLOYMENT_JSON" | jq -r '.postgresServerName.value') + POSTGRES_FQDN_FULL=$(echo "$DEPLOYMENT_JSON" | jq -r '.postgresFqdn.value') + DATABASE_NAME=$(echo "$DEPLOYMENT_JSON" | jq -r '.databaseName.value') + echo "Deployment details:" + echo "Web App Name: $WEB_APP_NAME" + echo "PostgreSQL Server Name: $POSTGRES_SERVER_NAME" + echo "PostgreSQL FQDN: $POSTGRES_FQDN_FULL" + echo "Database Name: $DATABASE_NAME" +else + echo "Failed to deploy Bicep template [$TEMPLATE]" + exit 1 +fi + +if [[ -z "$WEB_APP_NAME" || -z "$POSTGRES_SERVER_NAME" ]]; then + echo "Web App Name or PostgreSQL Server Name is empty. Exiting." + exit 1 +fi + +# Split host:port — the LocalStack emulator embeds the dynamically allocated TCP-proxy port +# directly in fullyQualifiedDomainName, mirroring the storage / container registry emulators. +# Real Azure returns just the bare host so PG_PORT defaults to 5432. +POSTGRES_FQDN="${POSTGRES_FQDN_FULL%%:*}" +if [[ "$POSTGRES_FQDN_FULL" == *:* ]]; then + POSTGRES_PORT="${POSTGRES_FQDN_FULL##*:}" +else + POSTGRES_PORT=5432 +fi +echo "PostgreSQL host = $POSTGRES_FQDN, port = $POSTGRES_PORT" + +# Create application role [$PG_APP_USER] on the PostgreSQL flexible server +echo "Creating login [$PG_APP_USER] on the [$POSTGRES_SERVER_NAME] PostgreSQL flexible server..." +PGPASSWORD="$PG_ADMIN_PASSWORD" psql \ + --host="$POSTGRES_FQDN" \ + --port="$POSTGRES_PORT" \ + --username="$PG_ADMIN_USER" \ + --dbname=postgres \ + --no-password \ + --set=ON_ERROR_STOP=on \ + -c "DO \$\$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = '$PG_APP_USER') THEN + CREATE ROLE \"$PG_APP_USER\" WITH LOGIN PASSWORD '$PG_APP_PASSWORD'; + END IF; +END +\$\$;" + +if [ $? -eq 0 ]; then + echo "Login [$PG_APP_USER] created successfully" +else + echo "Failed to create login [$PG_APP_USER]" + exit 1 +fi + +# Grant CONNECT on the database to [$PG_APP_USER] +echo "Granting CONNECT on [$DATABASE_NAME] to [$PG_APP_USER]..." +PGPASSWORD="$PG_ADMIN_PASSWORD" psql \ + --host="$POSTGRES_FQDN" \ + --port="$POSTGRES_PORT" \ + --username="$PG_ADMIN_USER" \ + --dbname=postgres \ + --no-password \ + --set=ON_ERROR_STOP=on \ + -c "GRANT CONNECT ON DATABASE \"$DATABASE_NAME\" TO \"$PG_APP_USER\";" + +if [ $? -eq 0 ]; then + echo "CONNECT granted successfully to [$PG_APP_USER]" +else + echo "Failed to grant CONNECT to [$PG_APP_USER]" + exit 1 +fi + +# Grant schema privileges to [$PG_APP_USER] +echo "Granting schema privileges on [$DATABASE_NAME] to [$PG_APP_USER]..." +PGPASSWORD="$PG_ADMIN_PASSWORD" psql \ + --host="$POSTGRES_FQDN" \ + --port="$POSTGRES_PORT" \ + --username="$PG_ADMIN_USER" \ + --dbname="$DATABASE_NAME" \ + --no-password \ + --set=ON_ERROR_STOP=on \ + -c "GRANT USAGE, CREATE ON SCHEMA public TO \"$PG_APP_USER\"; + ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO \"$PG_APP_USER\"; + ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO \"$PG_APP_USER\";" + +if [ $? -eq 0 ]; then + echo "Schema privileges granted successfully to [$PG_APP_USER]" +else + echo "Failed to grant schema privileges to [$PG_APP_USER]" + exit 1 +fi + +# Test connection +echo "Testing connection with user [$PG_APP_USER]..." +PGPASSWORD="$PG_APP_PASSWORD" psql \ + --host="$POSTGRES_FQDN" \ + --port="$POSTGRES_PORT" \ + --username="$PG_APP_USER" \ + --dbname="$DATABASE_NAME" \ + --no-password \ + -c "SELECT current_user, current_database(), now();" + +if [ $? -eq 0 ]; then + echo "Connection test successful with user [$PG_APP_USER]" +else + echo "Connection test failed with user [$PG_APP_USER]" + exit 1 +fi + +# Create [activities] table +echo "Creating [activities] table in the [$DATABASE_NAME] database..." +PGPASSWORD="$PG_APP_PASSWORD" psql \ + --host="$POSTGRES_FQDN" \ + --port="$POSTGRES_PORT" \ + --username="$PG_APP_USER" \ + --dbname="$DATABASE_NAME" \ + --no-password \ + --set=ON_ERROR_STOP=on \ + -c "CREATE TABLE IF NOT EXISTS activities ( + id TEXT PRIMARY KEY, + username TEXT NOT NULL, + activity TEXT NOT NULL, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() + ); + CREATE INDEX IF NOT EXISTS idx_activities_username ON activities(username); + CREATE INDEX IF NOT EXISTS idx_activities_created_at ON activities(created_at DESC);" + +if [ $? -eq 0 ]; then + echo "[activities] table created successfully" +else + echo "Failed to create [activities] table" + exit 1 +fi + +# Insert sample data +echo "Inserting sample data into [activities] table..." +PGPASSWORD="$PG_APP_PASSWORD" psql \ + --host="$POSTGRES_FQDN" \ + --port="$POSTGRES_PORT" \ + --username="$PG_APP_USER" \ + --dbname="$DATABASE_NAME" \ + --no-password \ + --set=ON_ERROR_STOP=on \ + -c "INSERT INTO activities (id, username, activity) VALUES + (md5('paolo_pisa_seed'), 'paolo', 'Visit the Leaning Tower in Pisa'), + (md5('paolo_volterra_seed'), 'paolo', 'Explore Etruscan walls in Volterra'), + (md5('paolo_san_gimignano_seed'), 'paolo', 'Climb Torre Grossa in San Gimignano'), + (md5('paolo_siena_seed'), 'paolo', 'Walk across Piazza del Campo in Siena'), + (md5('paolo_montalcino_seed'), 'paolo', 'Taste Brunello wine in Montalcino'), + (md5('paolo_pienza_seed'), 'paolo', 'Sample Pecorino cheese in Pienza'), + (md5('paolo_florence_seed'), 'paolo', 'Admire Michelangelo''s David in Florence'), + (md5('paolo_viareggio_beach_seed'), 'paolo', 'Relax by the beach in Viareggio'), + (md5('paolo_viareggio_promenade_seed'), 'paolo', 'Stroll along the Viareggio promenade') + ON CONFLICT (id) DO NOTHING;" + +if [ $? -eq 0 ]; then + echo "Sample data inserted successfully into [activities] table" +else + echo "Failed to insert sample data into [activities] table" + exit 1 +fi + +# Query sample data +echo "Querying sample data from [activities] table..." +PGPASSWORD="$PG_APP_PASSWORD" psql \ + --host="$POSTGRES_FQDN" \ + --port="$POSTGRES_PORT" \ + --username="$PG_APP_USER" \ + --dbname="$DATABASE_NAME" \ + --no-password \ + -c "SELECT * FROM activities;" + +if [ $? -eq 0 ]; then + echo "Sample data queried successfully from [activities] table" +else + echo "Failed to query sample data from [activities] table" + exit 1 +fi + +# Set PG_USER + PG_PASSWORD on the web app to point at the application role +echo "Setting PG_USER=[$PG_APP_USER] and PG_PASSWORD on the [$WEB_APP_NAME] web app..." +az webapp config appsettings set \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --name "$WEB_APP_NAME" \ + --settings PG_USER="$PG_APP_USER" PG_PASSWORD="$PG_APP_PASSWORD" \ + --only-show-errors 1>/dev/null + +if [ $? -eq 0 ]; then + echo "PG_USER and PG_PASSWORD set successfully on the [$WEB_APP_NAME] web app" +else + echo "Failed to set PG_USER and PG_PASSWORD on the [$WEB_APP_NAME] web app" + exit 1 +fi + +# Print the application settings of the web app +echo "Retrieving application settings for web app [$WEB_APP_NAME]..." +az webapp config appsettings list \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --name "$WEB_APP_NAME" + +# Change current directory to source folder +cd "../src" || exit + +# Remove any existing zip package of the web app +if [ -f "$ZIPFILE" ]; then + rm "$ZIPFILE" +fi + +# Create the zip package of the web app +echo "Creating zip package of the web app..." +zip -r "$ZIPFILE" app.py database.py gunicorn.conf.py static templates requirements.txt + +# Deploy the web app +# Deploy the web app +echo "Deploying web app [$WEB_APP_NAME] with zip file [$ZIPFILE]..." +az webapp deploy \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --name "$WEB_APP_NAME" \ + --src-path "$ZIPFILE" \ + --type zip \ + --async true 1>/dev/null + +# Remove the zip package of the web app +if [ -f "$ZIPFILE" ]; then + rm "$ZIPFILE" +fi + +# Print the list of resources in the resource group +echo "Listing resources in resource group [$RESOURCE_GROUP_NAME]..." +az resource list --resource-group "$RESOURCE_GROUP_NAME" --output table diff --git a/samples/web-app-postgresql-flexible-server/python/bicep/main.bicep b/samples/web-app-postgresql-flexible-server/python/bicep/main.bicep new file mode 100644 index 0000000..6cb4c05 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/bicep/main.bicep @@ -0,0 +1,308 @@ +//******************************************** +// Parameters +//******************************************** +@description('Specifies the prefix for the name of the Azure resources.') +@minLength(2) +param prefix string = take(uniqueString(resourceGroup().id), 4) + +@description('Specifies the suffix for the name of the Azure resources.') +@minLength(2) +param suffix string = take(uniqueString(resourceGroup().id), 4) + +@description('Specifies the location for all resources.') +param location string = resourceGroup().location + +@description('Specifies the tier name for the hosting plan.') +@allowed([ + 'Basic' + 'Standard' + 'Premium' + 'PremiumV2' + 'Premium0V3' + 'PremiumV3' + 'PremiumMV3' +]) +param skuTier string = 'Standard' + +@description('Specifies the SKU name for the hosting plan.') +param skuName string = 'S1' + +@description('Specifies the kind of the hosting plan.') +@allowed(['app','linux']) +param appServicePlanKind string = 'linux' + +@description('Specifies whether the hosting plan is reserved.') +param reserved bool = true + +@description('Specifies whether the hosting plan is zone redundant.') +param zoneRedundant bool = false + +@description('Specifies the language runtime used by the Azure Web App.') +@allowed(['dotnet','python','java','node']) +param runtimeName string + +@description('Specifies the target language version used by the Azure Web App.') +param runtimeVersion string + +@description('Specifies the kind of the web app resource.') +param webAppKind string = 'app,linux' + +@description('Specifies whether HTTPS is enforced for the Azure Web App.') +param httpsOnly bool = false + +@description('Specifies the minimum TLS version for the Azure Web App.') +@allowed(['1.2','1.3']) +param minTlsVersion string = '1.2' + +@description('Specifies whether the public network access is enabled or disabled') +@allowed(['Enabled','Disabled']) +param publicNetworkAccess string = 'Enabled' + +@description('Specifies the optional Git Repo URL.') +param repoUrl string = ' ' + +@description('Specifies the username for the application (used to scope activities).') +param username string = 'paolo' + +// +// PostgreSQL flexible server +// +@description('Administrator login for the PostgreSQL flexible server. Only used by the post-deploy psql bootstrap; the Web App never authenticates with this account.') +param pgAdminLogin string = 'pgadmin' + +@description('Administrator login password for the PostgreSQL flexible server.') +@secure() +param pgAdminPassword string + +@description('PostgreSQL major version.') +@allowed(['13','14','15','16','17']) +param pgVersion string = '16' + +@description('Compute tier for the PostgreSQL flexible server.') +@allowed(['Burstable','GeneralPurpose','MemoryOptimized']) +param pgSkuTier string = 'Burstable' + +@description('Compute SKU name for the PostgreSQL flexible server.') +param pgSkuName string = 'Standard_B1ms' + +@description('Storage size in GB for the PostgreSQL flexible server.') +@minValue(32) +@maxValue(16384) +param pgStorageSizeGB int = 32 + +@description('Backup retention in days for the PostgreSQL flexible server.') +@minValue(7) +@maxValue(35) +param pgBackupRetentionDays int = 7 + +@description('Name of the application database to create on the PostgreSQL flexible server.') +param databaseName string = 'PlannerDB' + +// +// Networking +// +@description('Specifies the name of the virtual network.') +param virtualNetworkName string = '' + +@description('Specifies the address prefixes of the virtual network.') +param virtualNetworkAddressPrefixes string = '10.0.0.0/8' + +@description('Specifies the name of the subnet used by the Web App for the regional virtual network integration.') +param webAppSubnetName string = 'app-subnet' + +@description('Specifies the address prefix of the subnet used by the Web App for the regional virtual network integration.') +param webAppSubnetAddressPrefix string = '10.0.0.0/24' + +@description('Specifies the name of the network security group associated to the subnet hosting the Web App.') +param webAppSubnetNsgName string = '' + +@description('Specifies the name of the subnet that hosts the private endpoint to the PostgreSQL flexible server.') +param peSubnetName string = 'pe-subnet' + +@description('Specifies the address prefix of the private-endpoint subnet.') +param peSubnetAddressPrefix string = '10.0.1.0/24' + +@description('Specifies the name of the NSG associated to the private-endpoint subnet.') +param peSubnetNsgName string = '' + +@description('Specifies the length of the Public IP Prefix.') +@minValue(28) +@maxValue(32) +param natGatewayPublicIpPrefixLength int = 31 + +@description('Specifies the name of the Azure NAT Gateway.') +param natGatewayName string = '' + +@description('Specifies a list of availability zones denoting the zone in which Nat Gateway should be deployed.') +param natGatewayZones array = [] + +@description('Specifies the idle timeout in minutes for the Azure NAT Gateway.') +param natGatewayIdleTimeoutMins int = 30 + +@description('Specifies the name of the private endpoint targeting the PostgreSQL flexible server.') +param postgresPrivateEndpointName string = '' + +// +// Observability +// +@description('Specifies the name of the Azure Log Analytics resource.') +param logAnalyticsName string = '' + +@description('Specifies the service tier of the workspace.') +@allowed(['Free','Standalone','PerNode','PerGB2018']) +param logAnalyticsSku string = 'PerNode' + +@description('Specifies the workspace data retention in days.') +param logAnalyticsRetentionInDays int = 60 + +@description('Specifies the tags to be applied to the resources.') +param tags object = { + environment: 'test' + iac: 'bicep' +} + +//******************************************** +// Variables +//******************************************** +var webAppName = '${prefix}-webapp-${suffix}' +var appServicePlanName = '${prefix}-app-service-plan-${suffix}' +var pgServerName = '${prefix}-pgflex-${suffix}' +var privateDnsZoneName = 'privatelink.postgres.database.azure.com' + +// The PostgreSQL flexible-server emulator embeds the LS-side TCP-proxy port directly in +// fullyQualifiedDomainName (e.g. ".postgres.database.localhost.localstack.cloud:4515"). +// Real Azure returns just the bare host on 5432. Split on `:` so the Web App always gets the +// right host + port without any post-deploy shell logic. +var pgFqdnParts = split(postgresqlServer.outputs.fqdn, ':') +var pgHost = pgFqdnParts[0] +var pgPort = length(pgFqdnParts) > 1 ? pgFqdnParts[1] : '5432' + +//******************************************** +// Modules and Resources +//******************************************** +module workspace 'modules/log-analytics.bicep' = { + name: 'workspace' + params: { + name: empty(logAnalyticsName) ? toLower('${prefix}-log-analytics-${suffix}') : logAnalyticsName + location: location + tags: tags + sku: logAnalyticsSku + retentionInDays: logAnalyticsRetentionInDays + } +} + +module network 'modules/virtual-network.bicep' = { + name: 'network' + params: { + virtualNetworkName: empty(virtualNetworkName) ? toLower('${prefix}-vnet-${suffix}') : virtualNetworkName + virtualNetworkAddressPrefixes: virtualNetworkAddressPrefixes + webAppSubnetName: webAppSubnetName + webAppSubnetAddressPrefix: webAppSubnetAddressPrefix + webAppSubnetNsgName: empty(webAppSubnetNsgName) ? toLower('${prefix}-webapp-subnet-nsg-${suffix}') : webAppSubnetNsgName + peSubnetName: peSubnetName + peSubnetAddressPrefix: peSubnetAddressPrefix + peSubnetNsgName: empty(peSubnetNsgName) ? toLower('${prefix}-pe-subnet-nsg-${suffix}') : peSubnetNsgName + natGatewayName: empty(natGatewayName) ? toLower('${prefix}-nat-gateway-${suffix}') : natGatewayName + natGatewayZones: natGatewayZones + natGatewayPublicIpPrefixName: toLower('${prefix}-nat-gateway-pip-prefix-${suffix}') + natGatewayPublicIpPrefixLength: natGatewayPublicIpPrefixLength + natGatewayIdleTimeoutMins: natGatewayIdleTimeoutMins + delegationServiceName: 'Microsoft.Web/serverfarms' + workspaceId: workspace.outputs.id + location: location + tags: tags + } +} + +module postgresqlServer 'modules/postgresql-flexible-server.bicep' = { + name: 'postgresqlServer' + params: { + name: pgServerName + location: location + administratorLogin: pgAdminLogin + administratorLoginPassword: pgAdminPassword + version: pgVersion + skuTier: pgSkuTier + skuName: pgSkuName + storageSizeGB: pgStorageSizeGB + backupRetentionDays: pgBackupRetentionDays + databaseName: databaseName + workspaceId: workspace.outputs.id + tags: tags + } +} + +module privateDnsZone 'modules/private-dns-zone.bicep' = { + name: 'privateDnsZone' + params: { + name: privateDnsZoneName + vnetId: network.outputs.virtualNetworkId + tags: tags + } +} + +module privateEndpoint 'modules/private-endpoint.bicep' = { + name: 'privateEndpoint' + params: { + name: empty(postgresPrivateEndpointName) + ? toLower('${prefix}-postgres-pe-${suffix}') + : postgresPrivateEndpointName + privateLinkServiceId: postgresqlServer.outputs.id + privateDnsZoneId: privateDnsZone.outputs.id + vnetId: network.outputs.virtualNetworkId + subnetId: network.outputs.peSubnetId + groupIds: [ + 'postgresqlServer' + ] + location: location + tags: tags + } +} + +module appServicePlan 'modules/app-service-plan.bicep' = { + name: 'appServicePlan' + params: { + name: appServicePlanName + location: location + skuName: skuName + skuTier: skuTier + kind: appServicePlanKind + reserved: reserved + zoneRedundant: zoneRedundant + workspaceId: workspace.outputs.id + tags: tags + } +} + +module webApp 'modules/web-app.bicep' = { + name: webAppName + params: { + name: webAppName + location: location + kind: webAppKind + httpsOnly: httpsOnly + runtimeName: runtimeName + runtimeVersion: runtimeVersion + minTlsVersion: minTlsVersion + publicNetworkAccess: publicNetworkAccess + repoUrl: repoUrl + virtualNetworkName: network.outputs.virtualNetworkName + subnetName: network.outputs.webAppSubnetName + hostingPlanName: appServicePlan.outputs.name + pgHost: pgHost + pgPort: pgPort + pgDatabase: postgresqlServer.outputs.databaseName + username: username + workspaceId: workspace.outputs.id + tags: tags + } +} + +//******************************************** +// Outputs +//******************************************** +output webAppName string = webApp.outputs.name +output webAppDefaultHostName string = webApp.outputs.defaultHostName +output postgresServerName string = postgresqlServer.outputs.name +output postgresFqdn string = postgresqlServer.outputs.fqdn +output databaseName string = postgresqlServer.outputs.databaseName diff --git a/samples/web-app-postgresql-flexible-server/python/bicep/main.bicepparam b/samples/web-app-postgresql-flexible-server/python/bicep/main.bicepparam new file mode 100644 index 0000000..11c2c2b --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/bicep/main.bicepparam @@ -0,0 +1,19 @@ +using 'main.bicep' + +param prefix = 'local' +param suffix = 'test' +param runtimeName = 'python' +param runtimeVersion = '3.13' +param databaseName = 'PlannerDB' +param username = 'paolo' + +// PostgreSQL flexible server +param pgAdminLogin = 'pgadmin' +// Password is supplied at deploy time via the PG_ADMIN_PASSWORD env var +// (see deploy.sh — it passes it as --parameters pgAdminPassword=...). Do not commit it here. +param pgAdminPassword = readEnvironmentVariable('PG_ADMIN_PASSWORD', '') +param pgVersion = '16' +param pgSkuTier = 'Burstable' +param pgSkuName = 'Standard_B1ms' +param pgStorageSizeGB = 32 +param pgBackupRetentionDays = 7 diff --git a/samples/web-app-postgresql-flexible-server/python/bicep/modules/app-service-plan.bicep b/samples/web-app-postgresql-flexible-server/python/bicep/modules/app-service-plan.bicep new file mode 100644 index 0000000..4b5cfb3 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/bicep/modules/app-service-plan.bicep @@ -0,0 +1,154 @@ +//******************************************** +// Parameters +//******************************************** +@description('Specifies the name of the App Service Plan.') +param name string + +@description('Specifies the location.') +param location string = resourceGroup().location + +@description('Specifies the tier name for the hosting plan.') +@allowed([ + 'Basic' + 'Standard' + 'ElasticPremium' + 'Premium' + 'PremiumV2' + 'Premium0V3' + 'PremiumV3' + 'PremiumMV3' + 'Isolated' + 'IsolatedV2' + 'WorkflowStandard' + 'FlexConsumption' +]) +param skuTier string = 'Standard' + +@description('Specifies the SKU name for the hosting plan.') +@allowed([ + 'B1' + 'B2' + 'B3' + 'S1' + 'S2' + 'S3' + 'EP1' + 'EP2' + 'EP3' + 'P1' + 'P2' + 'P3' + 'P1V2' + 'P2V2' + 'P3V2' + 'P0V3' + 'P1V3' + 'P2V3' + 'P3V3' + 'P1MV3' + 'P2MV3' + 'P3MV3' + 'P4MV3' + 'P5MV3' + 'I1' + 'I2' + 'I3' + 'I1V2' + 'I2V2' + 'I3V2' + 'I4V2' + 'I5V2' + 'I6V2' + 'WS1' + 'WS2' + 'WS3' + 'FC1' +]) +param skuName string = 'S1' + +@description('Specifies the kind of the hosting plan.') +@allowed([ + 'app' + 'elastic' + 'functionapp' + 'windows' + 'linux' +]) +param kind string = 'linux' + +@description('Specifies whether the hosting plan is reserved.') +param reserved bool = true + +@description('Specifies whether the hosting plan is zone redundant.') +param zoneRedundant bool = false + +@description('Specifies the resource id of the Log Analytics workspace.') +param workspaceId string + +@description('Specifies the tags to be applied to the resources.') +param tags object = {} + +//******************************************** +// Variables +//******************************************** + +var diagnosticSettingsName = 'default' +var logCategories = [] +var metricCategories = [ + 'AllMetrics' +] +var logs = [ + for category in logCategories: { + category: category + enabled: true + retentionPolicy: { + enabled: true + days: 0 + } + } +] +var metrics = [ + for category in metricCategories: { + category: category + enabled: true + retentionPolicy: { + enabled: true + days: 0 + } + } +] + +//******************************************** +// Resources +//******************************************** +resource appServicePlan 'Microsoft.Web/serverfarms@2024-11-01' = { + name: name + location: location + tags: tags + kind: kind + sku: { + tier: skuTier + name: skuName + } + properties: { + reserved: reserved + zoneRedundant: zoneRedundant + maximumElasticWorkerCount: skuTier == 'FlexConsumption' ? 1 : 20 + } +} + +resource diagnosticSettings 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = if(!empty(workspaceId)) { + name: diagnosticSettingsName + scope: appServicePlan + properties: { + workspaceId: workspaceId + logs: logs + metrics: metrics + } +} + +//******************************************** +// Outputs +//******************************************** +output id string = appServicePlan.id +output name string = appServicePlan.name diff --git a/samples/web-app-postgresql-flexible-server/python/bicep/modules/log-analytics.bicep b/samples/web-app-postgresql-flexible-server/python/bicep/modules/log-analytics.bicep new file mode 100644 index 0000000..2618829 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/bicep/modules/log-analytics.bicep @@ -0,0 +1,45 @@ +//******************************************** +// Parameters +//******************************************** +@description('Specifies the name of the Log Analytics workspace.') +param name string + +@description('Specifies the location.') +param location string = resourceGroup().location + +@description('Specifies the service tier of the workspace: Free, Standalone, PerNode, Per-GB.') +@allowed([ + 'Free' + 'Standalone' + 'PerNode' + 'PerGB2018' +]) +param sku string = 'PerNode' + +@description('Specifies the workspace data retention in days. -1 means Unlimited retention for the Unlimited Sku. 730 days is the maximum allowed for all other Skus.') +param retentionInDays int = 60 + +@description('Specifies the resource tags.') +param tags object + +//******************************************** +// Resources +//******************************************** +resource workspace 'Microsoft.OperationalInsights/workspaces@2025-07-01' = { + name: name + tags: tags + location: location + properties: { + sku: { + name: sku + } + retentionInDays: retentionInDays + } +} + +//******************************************** +// Outputs +//******************************************** +output id string = workspace.id +output name string = workspace.name +output customerId string = workspace.properties.customerId diff --git a/samples/web-app-postgresql-flexible-server/python/bicep/modules/postgresql-flexible-server.bicep b/samples/web-app-postgresql-flexible-server/python/bicep/modules/postgresql-flexible-server.bicep new file mode 100644 index 0000000..5ebd2db --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/bicep/modules/postgresql-flexible-server.bicep @@ -0,0 +1,171 @@ +//******************************************** +// Parameters +//******************************************** +@description('Specifies the name of the Azure Database for PostgreSQL flexible server.') +param name string + +@description('Specifies the location for all resources.') +param location string = resourceGroup().location + +@description('Specifies the administrator login for the PostgreSQL server.') +param administratorLogin string = 'pgadmin' + +@description('Specifies the administrator login password for the PostgreSQL server.') +@secure() +param administratorLoginPassword string + +@description('Specifies the PostgreSQL major version.') +@allowed([ + '13' + '14' + '15' + '16' + '17' +]) +param version string = '16' + +@description('Specifies the compute tier of the server.') +@allowed([ + 'Burstable' + 'GeneralPurpose' + 'MemoryOptimized' +]) +param skuTier string = 'Burstable' + +@description('Specifies the compute SKU name of the server.') +param skuName string = 'Standard_B1ms' + +@description('Specifies the storage size in GB.') +@minValue(32) +@maxValue(16384) +param storageSizeGB int = 32 + +@description('Specifies the backup retention period in days.') +@minValue(7) +@maxValue(35) +param backupRetentionDays int = 7 + +@description('Specifies the name of the database to create on the server.') +param databaseName string = 'PlannerDB' + +@description('Specifies the database charset.') +param databaseCharset string = 'UTF8' + +@description('Specifies the database collation.') +param databaseCollation string = 'en_US.utf8' + +@description('Name of the server-level firewall rule that allows the deploy machine and Azure services to reach the server. Defaults to a permissive allow-all rule appropriate for the sample.') +param firewallRuleName string = 'AllowAllIPs' + +@description('Start IP of the firewall rule.') +param firewallStartIp string = '0.0.0.0' + +@description('End IP of the firewall rule.') +param firewallEndIp string = '255.255.255.255' + +@description('Specifies the resource id of the Log Analytics workspace.') +param workspaceId string + +@description('Specifies the tags to be applied to the resources.') +param tags object = {} + +//******************************************** +// Variables +//******************************************** +var diagnosticSettingsName = 'default' +var logCategories = [ + 'PostgreSQLLogs' +] +var metricCategories = [ + 'AllMetrics' +] +var logs = [for category in logCategories: { + category: category + enabled: true + retentionPolicy: { + enabled: true + days: 0 + } +}] +var metrics = [for category in metricCategories: { + category: category + enabled: true + retentionPolicy: { + enabled: true + days: 0 + } +}] + +//******************************************** +// Resources +//******************************************** +// Server is created in public-access mode and fronted by a Private Endpoint (see the +// private-endpoint module in main.bicep). The firewall rule lets the deploy machine reach the +// public endpoint just long enough to run the post-deploy psql bootstrap that creates the +// application role and seed data; the Web App itself reaches the server over the private +// endpoint via the linked Private DNS Zone. +resource server 'Microsoft.DBforPostgreSQL/flexibleServers@2024-08-01' = { + name: toLower(name) + location: location + tags: tags + sku: { + name: skuName + tier: skuTier + } + properties: { + administratorLogin: administratorLogin + administratorLoginPassword: administratorLoginPassword + version: version + createMode: 'Default' + storage: { + storageSizeGB: storageSizeGB + } + backup: { + backupRetentionDays: backupRetentionDays + geoRedundantBackup: 'Disabled' + } + highAvailability: { + mode: 'Disabled' + } + network: { + publicNetworkAccess: 'Enabled' + } + } +} + +resource database 'Microsoft.DBforPostgreSQL/flexibleServers/databases@2024-08-01' = { + parent: server + name: databaseName + properties: { + charset: databaseCharset + collation: databaseCollation + } +} + +resource firewallRule 'Microsoft.DBforPostgreSQL/flexibleServers/firewallRules@2024-08-01' = { + parent: server + name: firewallRuleName + properties: { + startIpAddress: firewallStartIp + endIpAddress: firewallEndIp + } +} + +resource diagnosticSettings 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = { + name: diagnosticSettingsName + scope: server + properties: { + workspaceId: workspaceId + logs: logs + metrics: metrics + } +} + +//******************************************** +// Outputs +//******************************************** +output id string = server.id +output name string = server.name +output fqdn string = server.properties.fullyQualifiedDomainName +output databaseId string = database.id +output databaseName string = database.name diff --git a/samples/web-app-postgresql-flexible-server/python/bicep/modules/private-dns-zone.bicep b/samples/web-app-postgresql-flexible-server/python/bicep/modules/private-dns-zone.bicep new file mode 100644 index 0000000..d849259 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/bicep/modules/private-dns-zone.bicep @@ -0,0 +1,41 @@ +//******************************************** +// Parameters +//******************************************** +@description('Specifies the name of the private DNS zone.') +param name string + +@description('Specifies the resource ID of the virtual network where private endpoints will be created.') +param vnetId string + +@description('Specifies the resource tags.') +param tags object + +//******************************************** +// Resources +//******************************************** + +// Private DNS Zones +resource privateDnsZone 'Microsoft.Network/privateDnsZones@2024-06-01' = { + name: name + location: 'global' + tags: tags +} + +// Virtual Network Links +resource privateDnsZoneVirtualNetworkLink 'Microsoft.Network/privateDnsZones/virtualNetworkLinks@2024-06-01' = { + parent: privateDnsZone + name: 'link-to-vnet' + location: 'global' + properties: { + registrationEnabled: false + virtualNetwork: { + id: vnetId + } + } +} + +//******************************************** +// Outputs +//******************************************** +output id string = privateDnsZone.id +output name string = privateDnsZone.name diff --git a/samples/web-app-postgresql-flexible-server/python/bicep/modules/private-endpoint.bicep b/samples/web-app-postgresql-flexible-server/python/bicep/modules/private-endpoint.bicep new file mode 100644 index 0000000..8fd35b8 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/bicep/modules/private-endpoint.bicep @@ -0,0 +1,72 @@ +//******************************************** +// Parameters +//******************************************** +@description('Specifies the name of the private endpoint.') +param name string + +@description('Specifies the location.') +param location string = resourceGroup().location + +@description('Specifies the resource ID of the virtual network where private endpoints will be created.') +param vnetId string + +@description('Specifies the resource ID of the subnet where private endpoints will be created.') +param subnetId string + +@description('Specifies the group IDs for the private link service connection.') +param groupIds array + +@description('Specifies the resource ID of the target resource.') +param privateLinkServiceId string + +@description('Specifies the resource ID of the private DNS zone.') +param privateDnsZoneId string + +@description('Specifies the resource tags.') +param tags object + +//******************************************** +// Resources +//******************************************** + +// Private Endpoints +resource privateEndpoint 'Microsoft.Network/privateEndpoints@2025-05-01' = { + name: name + location: location + tags: tags + properties: { + privateLinkServiceConnections: [ + { + name: '${name}-pls-connection' + properties: { + privateLinkServiceId: privateLinkServiceId + groupIds: groupIds + } + } + ] + subnet: { + id: subnetId + } + } +} + +resource privateDnsZoneGroupName 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups@2025-05-01' = { + parent: privateEndpoint + name: 'private-dns-zone-group' + properties: { + privateDnsZoneConfigs: [ + { + name: 'dnsConfig' + properties: { + privateDnsZoneId: privateDnsZoneId + } + } + ] + } +} + +//******************************************** +// Outputs +//******************************************** +output id string = privateEndpoint.id +output name string = privateEndpoint.name diff --git a/samples/web-app-postgresql-flexible-server/python/bicep/modules/virtual-network.bicep b/samples/web-app-postgresql-flexible-server/python/bicep/modules/virtual-network.bicep new file mode 100644 index 0000000..e5f66ba --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/bicep/modules/virtual-network.bicep @@ -0,0 +1,238 @@ +//******************************************** +// Parameters +//******************************************** +@description('Specifies the name of the virtual network.') +param virtualNetworkName string + +@description('Specifies the location.') +param location string = resourceGroup().location + +@description('Specifies the address prefixes of the virtual network.') +param virtualNetworkAddressPrefixes string = '10.0.0.0/8' + +@description('Specifies the name of the subnet used by the Web App for the regional virtual network integration.') +param webAppSubnetName string = 'functionAppSubnet' + +@description('Specifies the address prefix of the subnet used by the Web App for the regional virtual network integration.') +param webAppSubnetAddressPrefix string = '10.0.0.0/24' + +@description('Specifies the name of the network security group associated to the subnet hosting the Web App.') +param webAppSubnetNsgName string = '' + +@description('Specifies the name of the subnet that hosts the private endpoint to the PostgreSQL flexible server.') +param peSubnetName string = 'pe-subnet' + +@description('Specifies the address prefix of the subnet that hosts the private endpoint to the PostgreSQL flexible server.') +param peSubnetAddressPrefix string = '10.0.1.0/24' + +@description('Specifies the name of the network security group associated with the private-endpoint subnet.') +param peSubnetNsgName string = '' + +@description('Specifies the name of the Azure NAT Gateway.') +param natGatewayName string + +@description('Specifies a list of availability zones denoting the zone in which Nat Gateway should be deployed.') +param natGatewayZones array = [] + +@description('Specifies the name of the public IP prefix for the Azure NAT Gateway.') +param natGatewayPublicIpPrefixName string + +@description('Specifies the length of the Public IP Prefix.') +@minValue(28) +@maxValue(32) +param natGatewayPublicIpPrefixLength int = 31 + +@description('Specifies the idle timeout in minutes for the Azure NAT Gateway.') +param natGatewayIdleTimeoutMins int = 30 + +@description('Specifies the delegation service name.') +param delegationServiceName string + +@description('Specifies the resource id of the Log Analytics workspace.') +param workspaceId string + +@description('Specifies the resource tags.') +param tags object + +//******************************************** +// Variables +//******************************************** +var diagnosticSettingsName = 'default' +var nsgLogCategories = [ + 'NetworkSecurityGroupEvent' + 'NetworkSecurityGroupRuleCounter' +] +var nsgLogs = [for category in nsgLogCategories: { + category: category + enabled: true + retentionPolicy: { + enabled: true + days: 0 + } +}] +var vnetLogCategories = [ + 'VMProtectionAlerts' +] +var vnetMetricCategories = [ + 'AllMetrics' +] +var vnetLogs = [for category in vnetLogCategories: { + category: category + enabled: true + retentionPolicy: { + enabled: true + days: 0 + } +}] +var vnetMetrics = [for category in vnetMetricCategories: { + category: category + enabled: true + retentionPolicy: { + enabled: true + days: 0 + } +}] + +//******************************************** +// Resources +//******************************************** + +// Virtual Network +resource vnet 'Microsoft.Network/virtualNetworks@2024-03-01' = { + name: virtualNetworkName + location: location + tags: tags + properties: { + addressSpace: { + addressPrefixes: [ + virtualNetworkAddressPrefixes + ] + } + subnets: [ + { + name: webAppSubnetName + properties: { + addressPrefix: webAppSubnetAddressPrefix + privateEndpointNetworkPolicies: 'Disabled' + privateLinkServiceNetworkPolicies: 'Disabled' + networkSecurityGroup: { + id: webAppSubnetNsg.id + } + natGateway: { + id: natGateway.id + } + delegations: [ + { + name: 'delegation' + properties: { + serviceName: delegationServiceName + } + } + ] + } + } + { + name: peSubnetName + properties: { + addressPrefix: peSubnetAddressPrefix + networkSecurityGroup: { + id: peSubnetNsg.id + } + privateEndpointNetworkPolicies: 'Disabled' + privateLinkServiceNetworkPolicies: 'Disabled' + natGateway: { + id: natGateway.id + } + } + } + ] + } +} + +resource webAppSubnetNsg 'Microsoft.Network/networkSecurityGroups@2025-05-01' = { + name: webAppSubnetNsgName + location: location + tags: tags + properties: { + securityRules: [ + ] + } +} + +resource peSubnetNsg 'Microsoft.Network/networkSecurityGroups@2025-05-01' = { + name: peSubnetNsgName + location: location + tags: tags + properties: { + securityRules: [] + } +} + +// NAT Gateway +resource natGatewayPublicIpPrefix 'Microsoft.Network/publicIPPrefixes@2025-05-01' = { + name: natGatewayPublicIpPrefixName + location: location + sku: { + name: 'Standard' + } + zones: !empty(natGatewayZones) ? natGatewayZones : [] + properties: { + publicIPAddressVersion: 'IPv4' + prefixLength: natGatewayPublicIpPrefixLength + } +} + +resource natGateway 'Microsoft.Network/natGateways@2025-05-01' = { + name: natGatewayName + location: location + sku: { + name: 'Standard' + } + zones: !empty(natGatewayZones) ? natGatewayZones : [] + properties: { + publicIpPrefixes: [ + { + id: natGatewayPublicIpPrefix.id + } + ] + idleTimeoutInMinutes: natGatewayIdleTimeoutMins + } +} + +resource peSubnetNsgDiagnosticSettings 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = if (!empty(workspaceId)) { + name: diagnosticSettingsName + scope: peSubnetNsg + properties: { + workspaceId: workspaceId + logs: nsgLogs + } +} + +resource webAppSubnetNsgDiagnosticSettings 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = if (!empty(workspaceId)) { + name: diagnosticSettingsName + scope: webAppSubnetNsg + properties: { + workspaceId: workspaceId + logs: nsgLogs + } +} + +resource vnetDiagnosticSettings 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = if (!empty(workspaceId)) { + name: diagnosticSettingsName + scope: vnet + properties: { + workspaceId: workspaceId + logs: vnetLogs + metrics: vnetMetrics + } +} + +//******************************************** +// Outputs +//******************************************** +output virtualNetworkId string = vnet.id +output virtualNetworkName string = vnet.name +output webAppSubnetId string = resourceId('Microsoft.Network/virtualNetworks/subnets', vnet.name, webAppSubnetName) +output webAppSubnetName string = webAppSubnetName +output peSubnetId string = resourceId('Microsoft.Network/virtualNetworks/subnets', vnet.name, peSubnetName) +output peSubnetName string = peSubnetName diff --git a/samples/web-app-postgresql-flexible-server/python/bicep/modules/web-app.bicep b/samples/web-app-postgresql-flexible-server/python/bicep/modules/web-app.bicep new file mode 100644 index 0000000..8be08b3 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/bicep/modules/web-app.bicep @@ -0,0 +1,212 @@ +//******************************************** +// Parameters +//******************************************** + +@description('Specifies a globally unique name the Azure Web App.') +param name string + +@description('Specifies the location.') +param location string = resourceGroup().location + +@description('Specifies the kind of the hosting plan.') +@allowed([ + 'app' // Windows Web app + 'app,linux' // Linux Web app + 'app,linux,container' // Linux Container Web app + 'hyperV' // Windows Container Web App + 'app,container,windows' // Windows Container Web App + 'app,linux,kubernetes' // Linux Web App on ARC + 'app,linux,container,kubernetes' // Linux Container Web App on ARC + 'functionapp' // Function Code App + 'functionapp,linux' // Linux Consumption Function app + 'functionapp,linux,container,kubernetes' // Function Container App on ARC + 'functionapp,linux,kubernetes' // Function Code App on ARC +]) +param kind string = 'app,linux' + +@description('Specifies the language runtime used by the Azure Web App.') +@allowed([ + 'dotnet' + 'dotnet-isolated' + 'python' + 'java' + 'node' + 'powerShell' + 'custom' +]) +param runtimeName string + +@description('Specifies the target language version used by the Azure Web App.') +param runtimeVersion string + +@description('Specifies the minimum TLS version for the Azure Web App.') +@allowed([ + '1.2' + '1.3' +]) +param minTlsVersion string = '1.2' + +@description('Specifies whether the public network access is enabled or disabled') +@allowed([ + 'Enabled' + 'Disabled' +]) +param publicNetworkAccess string = 'Enabled' + +@description('Specifies whether HTTPS is enforced for the Azure Web App.') +param httpsOnly bool = true + +@description('Specifies the name of the hosting plan.') +param hostingPlanName string + +@description('Specifies the FQDN of the PostgreSQL flexible server (e.g. .postgres.database.azure.com).') +param pgHost string + +@description('Specifies the TCP port the PostgreSQL server listens on. 5432 in real Azure; in the emulator the FQDN encodes the dynamically allocated proxy port and main.bicep splits it.') +param pgPort string = '5432' + +@description('Specifies the name of the database to connect to.') +param pgDatabase string = 'sampledb' + +@description('Specifies the name of the virtual network.') +param virtualNetworkName string + +@description('Specifies the name of the subnet used by the Web App for the regional virtual network integration.') +param subnetName string + +@description('Specifies the resource id of the Log Analytics workspace.') +param workspaceId string + +@description('Specifies the username for the application.') +param username string = 'paolo' + +@description('Specifies the optional Git Repo URL.') +param repoUrl string = ' ' + +@description('Specifies the resource tags.') +param tags object + +//******************************************** +// Variables +//******************************************** + +// Generates a unique container name for deployments. +var diagnosticSettingsName = 'default' +var logCategories = [ + 'AppServiceHTTPLogs' + 'AppServiceConsoleLogs' + 'AppServiceAppLogs' + 'AppServiceAuditLogs' + 'AppServiceIPSecAuditLogs' + 'AppServicePlatformLogs' + 'AppServiceAuthenticationLogs' +] +var metricCategories = [ + 'AllMetrics' +] +var logs = [ + for category in logCategories: { + category: category + enabled: true + retentionPolicy: { + enabled: true + days: 0 + } + } +] +var metrics = [ + for category in metricCategories: { + category: category + enabled: true + retentionPolicy: { + enabled: true + days: 0 + } + } +] + +//******************************************** +// Resources +//******************************************** + +resource virtualNetwork 'Microsoft.Network/virtualNetworks@2024-05-01' existing = { + name: virtualNetworkName +} + +resource subnet 'Microsoft.Network/virtualNetworks/subnets@2024-05-01' existing = { + parent: virtualNetwork + name: subnetName +} + +resource hostingPlan 'Microsoft.Web/serverfarms@2024-04-01' existing = { + name: hostingPlanName +} + +resource webApp 'Microsoft.Web/sites@2025-03-01' = { + name: name + location: location + tags: tags + kind: kind + properties: { + httpsOnly: httpsOnly + serverFarmId: hostingPlan.id + virtualNetworkSubnetId: subnet.id + outboundVnetRouting: { + allTraffic: true + } + siteConfig: { + linuxFxVersion: toUpper('${runtimeName}|${runtimeVersion}') + minTlsVersion: minTlsVersion + publicNetworkAccess: publicNetworkAccess + } + } + identity: { + type: 'SystemAssigned' + } +} + + +resource configAppSettings 'Microsoft.Web/sites/config@2024-11-01' = { + parent: webApp + name: 'appsettings' + properties: { + SCM_DO_BUILD_DURING_DEPLOYMENT: 'true' + ENABLE_ORYX_BUILD: 'true' + // PG_USER and PG_PASSWORD are NOT set here. The post-deploy script connects to the server + // via the firewall-allowed public endpoint to (a) create the application role `testuser` + // and (b) write `PG_USER` / `PG_PASSWORD` onto this Web App via `az webapp config + // appsettings set`. The server-admin login is never exposed to the Web App at runtime. + PG_HOST: pgHost + PG_PORT: pgPort + PG_DATABASE: pgDatabase + WEBSITES_PORT: '8000' + LOGIN_NAME: username + } +} + +resource webAppSourceControl 'Microsoft.Web/sites/sourcecontrols@2024-11-01' = if (contains(repoUrl,'http')){ + name: 'web' + parent: webApp + properties: { + repoUrl: repoUrl + branch: 'master' + isManualIntegration: true + } +} + +resource diagnosticSettings 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = if(!empty(workspaceId)) { + name: diagnosticSettingsName + scope: webApp + properties: { + workspaceId: workspaceId + logs: logs + metrics: metrics + } +} + +//******************************************** +// Outputs +//******************************************** +output id string = webApp.id +output name string = webApp.name +output defaultHostName string = webApp.properties.defaultHostName diff --git a/samples/web-app-postgresql-flexible-server/python/images/architecture.png b/samples/web-app-postgresql-flexible-server/python/images/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..d0337f715911a35a920428b3fc18345179f59ff6 GIT binary patch literal 99609 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 Cp;QO} literal 0 HcmV?d00001 diff --git a/samples/web-app-postgresql-flexible-server/python/images/vacation-planner.png b/samples/web-app-postgresql-flexible-server/python/images/vacation-planner.png new file mode 100644 index 0000000000000000000000000000000000000000..a7c515161863487cdc0705e2a8e8c9c4a2bd60b1 GIT binary patch literal 85690 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

A%9I;ra zyc0V0ABWSi^Q}M6=xB`0a{NAfOr>N;vCx?(*h~@la0&uKyrY~wExMS+jZ|(H1>V$# z*a_NLmkGwVyp&IcM8T>u%vc2DC987C&;=`sM)og31A~mkzk0#q=zOVZ;T{b#0Q|he z!L=g%4R9ycxEtjLyelcDQ?WxxcT{V)0Cw2%VZk>9bI70ghJTPAKwu#YgdlR71s6!1 zLWnqji3FR8{$*`Y=_c&?cCi5%7(`DU#yb;S{S+)?;1^@^(T&G8pns?~mm!Q9zq6S- z)jsHeJh3I7{2+jdIE7YO&lXyR0gA#-8X(x*U;#H;ZsGWX?^)DBIJS(jTUAb5B(QFm-HkZ%~sCp%EQdeci%KOep^)n$Q)Z*dDEGNRH z)YMP!k4xO3K|BMO^1Fgaj84h^-bu!*BO{rZbv+iN*_EIUOh&x$d`uZDD_3uRA0H&V z!aH^wsaJMmcqeUOSgNR|2#Vmx)27j6YW7!B*)+zpK2?lh+KLZ3T9fE{+eY$aWyp9t z;Y(x0-O2NMi|J;~d6RLV%SE5e;&M@xUr)$hUtS_1MhNK^|E*GAs1^L~46*7fk041u z3gr~(-yc`A)~`m;Y{+Fm6!!S>0UHt4c7kS7+|uobB~&GR0Z1&VvN{D1D)~kM5N{QZ z!5$|I2q6j}X>&~^1VXSV_n1TL2*WSVZLIlp&_j2c4UVlZs9LP{3xN$CWyHW%%r=Bkq7(qSlo|NPDYv%H=CKx8 zN)e2rpL74Za;-}rz{DQDOOjM}nKnDh8>5*4hzcIKh~tb%pqWX%DtFBB>W+a~#`eeB zTm59!WeC+s-pRo*6E=+qH%D{BHP6es@(FA zV*;~@St>d@E6qjEwy7H=)ccfI;x)M9a1t<~6PxBu(tiB_l~DcbdzjGnI6 zdlLRp2r_Qw|ItgXa+Gp#$i=BIp_SF#-F^C{|Mhx{dt$8l_h#T-fX94w05o)Ga`#AO zc&Y1c4WD*fAtPU-`+Wjkn)`nI+W(EfdTM>y$Nf%W5@Wmb{0kPyqEA|D@HxB^@>ZtO zeUBBi|4l_0b0_?uob%~$d%UiKU2a2fIC5D0TSBq^$!YT{Gde9V@Ulpo8t1abtGBw< z;k*B4D&W&O2GS6QBAO{A_u_dugqK68(Ox;>nQb6AssZB}5q;Rc3O^_#P=8b1YKqZ` z_VtW8*VN(uUGw!OS{1#so|@a)&|SZx|9x)z2v5*yYGrEweq}v!+P278*|l4S%X!4P zAF4)}WzP6LBOW$y0aU+5UB3JZuej`AwZ2Td zzK(14T;+9EY~Q7HUFAH;r{8()^ZvU{O-B8?{k)Bb5{um5zWnQGvfDcXxh$mzrif~b z;%?CQlvEKaAssnuUP_8>uCE2%<_9O{;Tqmw4_%j^vmm>Q3|P6Hx|oH7+oH*2F+CsN z4)ok2XdygmcjbdyzXmTn;Juh;SMo!|lgYqnqU&x91%h;Z7~HTyT)y~XrbvK5P)83= z%gyh#cE}MQZ0lQsM1{rfr=K9Em_~dN4Sjw7S6m8Zg6tQ4RYk}1{!_TrI#+?J3xf($ z+OG_s!v@Ig==f~63jR*;*noo}608&tgFn=>M8jfxAL$3w@1TY1kk60?M_IKtN^J}>wgtywYP}n za(?M=aV?>CEwm-%b}}Cv?08MCgs0ig-0T?#m38ZPsFRR#;-Fls?#q8gB&@V(#rGN-ex`Il#xwn}#B(wSK4F!2Db&cRvg!gtb)`odx!W9Dh8p6NVV z?>9#W3uBo6UfW3gwJyo_d+UlTH7=*e{2HH=nx=X0p}E>$NBH%ah_|vI=m!UCvKftM z!}@QlVg?LYy0=G2HQLOfEVoHXXRHRhYRjFk_8N3-F?qJIuiUGyqZ8ZTAN5F6kQ7~; z&fST{xt)z~x#lT6ROYIH-s!8ZHP+jt_-qa4&$+ZNe@m{~lD=;yk@*9^uCAeXhVHyR zgFC7pSm%ZQABEFZZBFQ>d+U-}yvB>4x!w*mxiT`6w<*&bM;R~FC!7AWb6HDU09hT( zP~T0zYq@7xhP%kbY;0BLNAvAgGn^e9WtM$Nczb6bwC%2XhmjEsT02eudr7jgWhcch zuT8$D$m_iA8~b}E1YsGy2sn>D^fet0iU_i|L}LT``}TXPbYyl?@Pwc8@wW;YIQ>cq z+JCGa@F+5pU*HyD30t50ZG9}_gi{qjWSIjAZ&C!r0({Ao_i!m)7G^Dfzy>J=v3~4+ zhTTPiMqa|=P*ew$iY|Ed84ytsBakDIT%a0c7oaEh#nMe`vkcKYJU%q?NPy!2@?@xk z^6}7xp!VzyvHv6?c%hzbMcu^gf+I`V*cU5J?e-ais@gKuMcq|OLQ#(?(vPR;MEe{? zVhS zwa$I#?2G{6qdbLk4$a8!;+)RvhCG;mvSl^X48k9X8=Z%0jjd@z6!)6}fK~Q=Vg2k* z0Mo0rCm^@6bRN{A;D*g*`#Kr^+i@yK676#E?vxB9pT17_j5O_ap{=+UV|QoZ-jLq z3$OWFK;3uj+Hgh;OW@bGkm@RXuBNA$W&X05x3;r$mO|$r(DAN^42&rqae=p0%ak09 ztu39-@0F+hoNpnx@sf@9%82x; zy_aDn2C1GT5y~wlvff7tI9jvnj-0`g_kILhFjTbrpblQ9NKy(`{csgbAJ^R~)34Yc z!)Hx|RyGb5DDfYO({!B|ylLjV*qr9VVu-s$_HT#LS1y!iB43`(xw+vRd^;cZK8L(% zU!>pnQ?2(=K5Lq+TyqD8{55xXw7J<5q0%-Fbm^)PZ4VCnhP}3zj6%ti-4qX1$s03? zCo;by8`-XTa=k7tkvF1YdqI( zt&I)hK0-c%;2RYt`E4HOi<>M*(nwPnUEjh@QBwSj!cBcev9Pw1KXKV0hP_YuCsRu@ z6e+Yr|IhTBILUyymm%U9tyEetCWW$kd5(&5gkBIT)CO^A_(?s)+yO;!HQd;IK9{=> zY#|wRDD=G)Y+A8$FA}jL2ZDtvRYFgOSY~(tQaRg*7J|Gw%IGA}1x~9sSy|58TS8C% zY1R2sx$|;A=>}km9vj(guC-Pfc)$YS$P2J|i4fHM-V*MlSFBh#5~aphmCMxZ!lL_q zf;J#l!uR7ZII=ep)P4X@9DC#6r6oh$OFsEOtY01OI`gd?q{q0^ji%;!o!nDT*1YNM z&i?mFt|{8(5?Wzht4m9>vwltFGDqjw5jD=&JnVjK-98h#IW?>vR|wyi$w_!$9m{V< zLn)**5yofiHlCInu>zSs@BT5`PmIya*)G>~>0I7g<#E(Vdb(GdK0kPt>Aw!1qwGKQ zrfX_6y~jQq6kbdCHU9h=94?VP+jm*_v6$ae*b=z%RG(q__N?i_^WPe#rwB83oH)CYeGgofq(%8gsL&rE=o^%4J_GE@NX| zg~@ZZH0a39ys3iVMeo!WNul*~xVZUylE-P37SFYW(B6?BPgS&h`|TX#`{h$l#?NzD z`?1SAdD;Ie#ZPoTupmgN1c~piUjIq!?(-JOcEtfVufj)I(~810H{*D>>UCx*>-xp; zG|f-X?;gpVUvG0~BddGo4)QQWQ@qc~6c^Fv^GYGNef912@`z>)v_x?bvfaP|^}AQN z-K9sJBsiVyt^}SaU7qSVH&%6amycU30_q%wJUA#ml}<1gf~C^~0t?wqTikeeSDyPL zN_@K104B!BnOO`eJBHU_*W?L0c9uC`ivQ1KVXOf?w$9Iy;#TN=kRxbw6pkG_0sb%!^efuL_$y-hU?4LPtzppy z!SS612+D~O328@YSbPwbgbds&MqX0hnd*00`BoL1|kKB zP&baTJDD3HZBQAu6qa`5JX;Gj{?};3ncgB?R|Js zPEUA=`17v~{@P{YMB@uCmY$sGUs$>0SUyJPi+hIimn(KGmf^fNqIauzw9=mlFPY%9 zN$gv(oc_1biTVIObX~98fF%2ia<};>y$z*privBBbu7#@3Z5JuzdG}M&dbj0>NGuB zJsgwginQ9wuWQaL6hF-TPq1y?<{sfe2wm329wjb{f&uL76{< zWWC_#+Fpu%?`txBavsk~t@&X*!r>So9T3^kS{Qy1Qaco3oupd0-k$m{rS*nfMmphg z@wwhoGw)Hf-VY48IluqjPnv3cbifCYGE$c0N!a=6#o3Tn@U6Q^PS{coA70rL>Uf!r zf3f%rnqzO(Q>t2bJY7^rmnbyEwuuggM2{w&S5BwJJv%R#3v4{lV33sQw^!%H;C8xL zOxMj84r4r4SJFMRIw!7fiLVxY1#ckXK3#c@=obp*r;uE^K3P4N&As)gk7V! z=U;h6*(iT8U{vUPy`Z7Li-p1dlAo?Ia~EFyGMxWwI;Yz2Am7)n1^NNB@V7U=j%}-Q zJp}^InSi^h(rJ8M>%TJ%j_A;{PrULUH4M`IXPIx><57as4-lDWdb;OGrj>lkzT;Hs zKK1~Qd#A?C^{68{EiP!@Eyt-(Yez^^EZhUg6<6)Wqvi6?TacRCS)%1RV9BvpWb5oU z9>eA}g6^?$85$E-H>I7uREE9UUA|ru z5NI;SU{`B5OrHvyJJfG|t1c^^;Hh(|k(}9xybr*pe=!q`T-Kf+ zb+;B|8?ic{;sBh>`DUc)_dv0)X+Lu_7>(&ya<9v}P9m883x>~oJqdsQUN01Q3NCkW zM9fvyt9?ljE2McplzKCynAz|{#dOt@>2B+hAm!uaVBcA-zmz@x^yxT!)MqN`Ho){G z@0atUu?2?l?ZYMT|6$=cX^bI&440P;`R_xOmE**qO>2*&fh`B2;H|CB`%OQ$x@iv2yJK zk;!s5OQ7w_?Juf4%k$riY}|8Wu6lzzsm;|1uM4bPUk3);J?%{b`=U3<(a4a`4V*B7 zUw=#2q}XBqSrOY`veha4S~mtWJbQHem#VB_}f&pT<4b{^C$Ox{ZJ2>2`*~ zHhOpgWuYN^pAhGpG*0RERA+u5?&Z$PCAb=MVhj!?7eKa_3$ zS3#C=RPgEzEV?iW?7_f-AEZs#r-H^TUK`69KN(q0Znb_33)@~zrmu=%7xm*oY9-BG z^Uq7ZLa@LgyFaNAI8yCt77;mJj)E#e{4@u?c){cSHuz@}qp;GMGPekPp~gYC8;TJ` zEqa_iCS5RCpl6Is-^&w=B_^$)&yzOgq(>O6BNWw`$HhYw9fxaRN5&xw(dX`T#OZD^ zz1k`GVEnjibT3aDL?iSx#S|ZZ@TGxFaDL48GhA3;D1Km8_f90w%U3CFfl&dp~e{`3xn1Sql>lO4aE!w7HE-#4xvCxM3mZZeSx@h zvw?1PH4@nC@V$Pvho*0c$HfNdU0Gd>L z_tTnj5dS*z&VQFPw=fE7_N7}1Z7a76c#QO2enOd)YL6@2?|VI*xmB9~eziE2n(pO( ztM;#)UvATAd^I_l_MqJmj1Tx;NZ!-@bl7r>1ul?BLFP-~m7&S}32lc0PM8BA z2<6Hm>PNvI{|#~$+*XTZ2B5p@|C$oVQt#Ar9=L2W8W@zBzW+M7tmVutbHC2!n6A*6 z_u0t@Hj+jwbmy|&Rx#9PWZ*1%pLI5C!cXJXBZPra_oB6_o z@wC2ef8B>|cXoQo_&SXw{^4!YMm7nM1Q{>tTGhM!K3)7u63|BYr{;1E5I`wzdlC_N z0rij!@mBg7kwb^K0d7cSPI4h^_Ez@2XwS!YC}B;g*=?_X*S?pt`tdSBNrX5c3(@-n z54s@VDyyU=3hp>{&M_~+^j>vkD(A`v2lvC*tiZ3qEI z>mW!i0J&|CECG%MW&t)7OYq0hT(?<4(A7#{EkHd~(GVr7R1o#Y4W1$mDnuc~F<2r* z23st(J5>+;1`<&@mGn7$a9~~tQ!-P;KN)E#A!{P~ZZ`W-?B<@u`Q;6Y-ex*Q2oX-I zAcTSKz9A#c(LBn)$tgh(sB-B%wuH_UajtOqI7r3D-VvIydJ>$XXZ4jjozcb-^DYli zCDc)(m%x3M`pCLuMarABb+-qUDn5{vNIrsu23a?@F-)eR@e6w6GfF9tZT` zxojJsuGU61v&?=e#(^L^?f?xp-`;@#7?kLW?}P6o^)8Lrr1TK#uCWvo@&d3Xd6^A$ z)eAI6h_er-od=3)Jn4?zi2Z=}+_!n>zfDbNy3<4q`2L;(&u=q8bdjei6`=#LX%%#8 zik0N!wF3~~R)5A^Ps2oS7?+Y?n9gijy{Sk50y0^8T3lEWcW|QA^6ZKik_4d!??$Yt zO-|EW1j|)yLh}aHlo0sh<%MX|QAx*nbCKc55uzCA6reV@%J|I$lBI_!HRSo@l776_ zi58K?Yqt?_T-8-NuvkBgo%UCL3)JSr`DnP_FIW8B|1wx?R0y2&$IIp3{&XEyu~rUa zhhwkUmhEzS$r!})H!EF~dbEm{+{byK{&#T~z?KC$io@~Y6`VAh#7%R%jnk z9o;_nD;$F)QTamrKehyp*b)Z!qWybLHa+=VaPdKsD=sfN^f^`bj&@#VV~1O~Z=TKL z7F`%-jynyiW4p5e@k?d-THvAA6yChp=*$yRuT5TU(fa+PWw5Qh5dJ8oq-zAv?S1Sp zsr(FAQcuj((-h?%x~S58t8@R+^1hm;G59w4uaD3AzH@n86GmEqK<0Xb`{F!h)$ipc zHU_-C19($%0B);ge9{p6?QZMh-BXkzPgE9t43nVHUgrI>OQZBG(*j^ZH zj?b=4z^N>WR*mEG&HcKnntL{9*?p$N@e@8{wl#ncMRp+vk`prqj?}lx_awU!ONWE; zaoFWPOqKs#zp#nWx~Zdfu2&54)d{tA@-YtYXB=+4y_|WuJ}I>?P!(o zu0l=<1TLypNPMA~)L6v-v4ZZIg<=c7nb?z~7X6hN(UPt9J3^FJU4o<}(@P5gHYhzL z5mjH$PgTv63?d|~%e&}BUjLNE+EmK7wJ z=d?xkl_4s&U>7L*)mqq{#CDaG^vmaN0{HgX;`;TH`Sv$_*(O*9M|tDCeDs*_Zj7Ua z&chbF=cdn;iQ(f@A?F#@_35XS_`u(-SN*4&{ji7k>lz>7uNN6SM8IX@X^IJrrZ6IJ zt=+PWetE;C0S|&gn7W;>fnNq81?6aEI%SeVZ0A>)T(nHmt=}|`!Ol&SzIGe}y*67* z@&r}Kds$IzSD(~c?KCo+|4pH`I)WSB*Ftl%4Y}Kpe7Q4N$M3SjBvv11?Z>@2mJJg| z-P@iY15+zft}+~mr00mL_@%@uGM_0!APUtea0NiRblIr3$@n!y@fK>0wz%tF7{lcv zzU@hvwM&H|;(k^MV+#6l-_3_8=66#qJ;$ZSmrq_MPF|9w(5Qo}8@qIz)T!`k|LQ38d7(WIvXMuyXwvG~>6(;sm;#+n>!#?%t=f zOkH^xEcbHD*S7|$(kuOavMd`lx2o@eEfMI57f5m+N1xXW z?`eXxed zAq{@d$LWEUMl?j2c_v>gO|L-@jSlLrOt1=aDC~3z{S#cZ#188_U<4Vz#IxRWeJ)lRW|FDLB2Uq-a282CG!os|U;$|9T@a&mgUn=k(Qo1y znaM$xD?)jkx8^BAcSFy*24_np#`CwhZA5gvzp%UFFy+4$i} zm`jNYS`>axgVAOlx1EL8+>hR zshAdf_)srvY@qliXhTp4Yu@Hsgy{R^Ta&zkoFS)cAYC!NjUiT@zmRQq`LZ}|OI!00 zlzqNI-=~FN$KU$PAw6^bY;I3jkWK7YK9{2W6*eB{K^@GfA+mi=y8Jh5O-_9^Vk%BV zCOdX#s@1+9+uJ$X95W{U0Uw06alUR^ zRlZ(F#-?>UO6hX@w7u`2o+}6dtw*<{*kLOc@p$e)KIK2s#k3Y6$xGvk$$#GbKmAsw zSCX{=V);_!it6a=y;XxYPGE~V@S_WZxW7DLA(UVspRVKok!^12>uFw5T?3M0x1;d| zADKz!9SnXsQG1N;*2mue%G%`Xeu)Sc?Xa4d2F!Z#M0MW=`YZab{EkQhU*3AidtODu zD_56~#kg_nm0y-JT@g6+ORbyLK={34%wlQ28K`d$P-&fdMlLeog0jv5Xmom!O6AZD z$Se~_w2It!yQ3MXG%)ZlbC(Z}biQ5XQHNAn66wLi?)34jxnY_gVm*vpZq}Gz?`;Xx za5W#PA~udopY0jH(FwAIqRIoiIP(fL>ekPIr7pD67p;Qxy89 zDd*3FKJ&&?A|s?HF%x1c76#*LF$eK5Dvv#Q(f;?dRN93>jWu(%v%Tn~zL~Zcrgu&@ ztNoL+_!ha%yH!t&8oLUV(Vd;WkK^ytyJL>a_G6qTn}eM_J(Y3jWK8lOi06H886TG= z$1YyhJC<_LN-8k6 zfcCB}334NL>^)aQu5+;3`*?Z0KosNGI$g~1LH85uyFenni-`bNA@sZn(OU!_R53Xv zx@{&+8u-6vFfRis%uy>4#($ZZ?eo)2(U#7qLh62EkDJe8viycYuNb9mL_SBgW%#dU zh{*2t;5ZN9C&<8$Wglh?YA6Ch$CMfeOYdD^s%Xfbx%4Mf)aVu1d`OpjlgdzS8Um+l z!>kAvc_AdsCH$;TD7CV6)(pVpHw-I&vI^GKNS6#xN8wYyAr1Rea#pr!QR^dZk5+he zkP*J@^Uvq&MWCzQet*k2UNl@G=T+pB|NL(mDHPfHO-H*z7Yiq&enT|_B#&iI)0F<( zY4CEjbKP+g7l%TX=bpjhE2rA5LTdHP!M}DwUO~uHu7CGCf%Ni!5d0_~yYF(&w}Bti zhEWpu+`t}N(|}Vhwz4 zQ5%#tPLJF(LyCVuE&TcQQxSpY7%f>Fdlv-B0YEerAb3ZWf19B;z{aam_y3Ug)^T+# z+rBTsH4xl2NP>sp?ry=|-QC?SxVr>*cLHJJ9^BpCo!41wpS{<)@4k1>=RN+aN%x%H zRnS?0x%;Jl33eJ1|+(ivxKgK=OU--=liz!%egx3@ekj zgA?q3CCV^q-&>NhhLakLdrp$P*5Zlk*h=qhhV+_A##5~1eTDd(RfHX( z6mM#G>;Lk>p1@DUK0(Zofg(y^jWAQB=N)=|xGHkU2t}OXhC|Ce3st$CS%AD8idl~p z?icNp2gv{A*02&Qu!{A4h&suAb8w*6UePAg*;+67#5-r6y;N_ba8naiV))W6{D75o z*9Extziv!A&xchil)q23U<4@Oa0+B(JU-M?q0gZ}e}h3c6Pv5aId5Eh=z_#W+aU1+ zO^_eka9E*2Rx<5~L~NriL%xFVJeGG39=#WkL7Nh5uc3;74}=Kx$(I-AN$r~6ZvsoD zNMU`sV_vaS1%w${Cx*Q>ih1PhMUT_8{%{3%m&{CHtp|yb%%7;$4arRv#3f9K zB?HWw5Z_qkq-ByylA4NYSXrM(-%qIPQEtA;(2_x@8+Vn(%i4GKpk8*6$4S`UB=ev)QT8QVUzIp8_oPJ+#<2<;CN_2R)4fw> z%m$0HqMzYm{vg8rt%;DsZTG6n{RWtR(Ps0$9)8;E4&rLx4G^8RB=gfnIl~Ux#X-u1 z`g$06x*%<|C3CHQe4@#ytk#rgAXa6#FCml~(#MvG3Ajm}B znP#3Sjy{y0a6YP9)p?Mvq+z zUXg)nq#ZS3CFLX#>n|G>q4o}<-$NF9K7Rd@XefuRk(U?dE30dXeGct4nmPGHT`xF}su9KrMZ`p@ zf=ItPKfq#hQS%x{9qjQzHJL9dNB}!gmN@w0K3ja47#D9>JzSO{%Pxd9aZb43qT4M^ zn#|ZiFPS>L8{wJ-q^}q`Tg0617u=h|*u4vds1$lFxWC=Y^(z}f*Rn@4kDEZG5+te* zn~f5!LG=iq2%baFwk~pnK6tAvp@ML$T-+3dV=AXYeO&R;Rja-|1Ym-AQ1^Z&hHil9 zF_FWmf4Xpy@U$^X(qDM|Xts8S23MTHa7z374l_Xr2`9)9=M{8tJV8#n=VtFlt=I?8 zC5t9{H)7cLK5}A6ekfAwA&PrFylb=^{1nwe$@rEx%ZC{{SQ4Xpm z5H@npjhVIA?k-1_rkbXj(ANj~?Ry%VBl!(h0KN!vVxBt|^h$|`%QRa|07(Y-r#B@K zGA20lmtW4kQ8gq}10X-rUVUJf4`Ls)bvG`={xBm%&-C`4^#Pji%woAicrH|4%~hB3-GSSo!zlO zXXJ68MnO#`P?g=s2b!K-6ha{ApUf#J$@HNh(+60TwZc}k-FI!Um!wF6>9w2==JvLz z-qeUm;GYpHU^3WE*AhlS$=j;wfnX4kOGfhQ5&9v8V%fl9@-;rB7fM8Z$ay@Eh$@m{=TG|d@;;$@8yicMe2x_u@VE}@z9q&ku5?R zVNSv_3cUwxvFwd<-~9Y_L?l#+v=AFmsxMzFv6{6DQGg23o;42|IM<#r!Kz4 zG{38fqsDWuY^*GTegt&3-Fk29!>=znMJ%g}4;9ul$@uwQ1NhM<6D?E2sUlW(9rivp zZF)p>bpR*r8tV>9*zdIWc~dR-c}6(@@|6R^QYjj)scJmmN55;ie-9-8dqSi_-hHT> zUDx#d#rT?W3QR3;Q~$fui?|d}@GR>};Xnv78!Zw4m{gSzF@6cx)&&22x$hCv4=qI< zO9t#HCGvL<%C?D*WmufViUDai>t{T` z)m6T4JNnXU{i}1Yt7$vJB<-`1l@!e^(zeMj9B!rLtGsB=`j6hB9#O`$_LVG%Ub(a@ z{Nu|R3tQvVM2g#^0dTgr6035`JjE$?IWXwAX{tJiDF|{zK8xCITd)Fc)dL5R3dkOr-ZN8wScZAT4-9nGfupJ)`*b zBub9lgpA+gfUeeaT5uhC5O*r`(_Hu{d;Jsud(@llU9J2R3AgZ6psYnu}hG+b=( zDR|dPbqKKr4t+r7$M9QaWtwMXROmApP8A9)<_|%LfZa&oWqf+RT;gH$n)f9=x-uvl zdw$%J9_z1OqD}K+g}+7 z?Ra$f%=Iqg8BNZFwacgJyv`dlzp0gN=3n!Rbg+8$k@|eV5e!!)u9Nlp{k&U90q4@h z=aPod<&G4x)ajyT-Z$IF#(nPXj0j6j$Mf{9l42l1T#jb;V;*(KP^DocKN7GL=)VFiV2h?_`0SU9JckSU+g^W` zcYCPU`3!OgbbTn!gM@IzYWKkNydD`uAjxN8yqTxznJ~-G8H?r8-y-BV7Ph^Ka0xL3 zgs6a0f*z9;Q0BpClKBf9zEI6JebJKcUpgRMSG8a1sT@9{A0dP!gfcM|z)>6k_1_tl z6IEMsNc;8dY{W~G!Q39qkUd#Sa*kyeg3*p}tY8`{vTq-x##4PdZg}`9ekOTbAK%_^ zH(#Z_WH+2q!yjO_udn*hguJ$@(7%Hly2{+3K|EQ$**o4>SJyxGo{K;ZjD!psPwqbI zXz%(o^(g{t&E5C~215{7H)YFfe7(*}LwgqN(e!+DzYVPAtV)khkH24h{YIiO%M5Dtr(!xS~#XA+j?47L4`u1r4c_FoC(@&a-Im~LB96^qx`tCzFV)%aAS;+5H5!7vLe z3O`x4XM|FY;Y$adntx>6$Du{v*89U0_}s|AkpxWcL9+KN8iMCiQkR>siN|#kli|8r zqipH^i1oI+!TQi?9R8&1zqJ~lh7WcdwOhh!-*s5vjfs#bpQ{=^Pi(G;%35)1+B^pK z5V_i2`I(VHf5$Gqa&Dz>f94;p)#?1O!Ozo{J~M6_l{qp4%I2(TuW!DqJ8I&2XrjG^ zb@8%4y=MHS?QO$)VJ+LBGLCKHwMtFD_tMc2-O>0k(xUt%d2}V&m%OuUSheQ8-ona@ zEx&lSY4;0lL2V}>T!p69Rq`gb=Q#@k{>mg0k7w`sGOF#pI&?===(r}!580|^7Z)PB zq4A@&qPZga%&*l9yj7x`X*gSw;RrIBW}oN=sOk2Nkh@Ghx=~Qd+>wCa#$S{4^{`ErAY~yVz#xJ~djo16z+dnV9bMsEJET`8k{=H`i zGm!?XEH2~y<)?hfr<+x`;?tVBrfKG{3!&L8#`}p_QMCID1}`iw?yfvdSd@)hp@5fr zk@e$mk9Yqent#4&&<-zjd?5L_7C0nHn=MQ1@vTWe;yP7rP+x?Dxp<-gaD|tfJMUru zrxWvoHJ>eee19^MZ-? zWSO1NwpJ0}fjEHM!!Y_2Eyv`1`wpMi5HwRv`oW;qQ+(I+ePJp`-Ws>w&Joe->%K+` zZ3Vhj(Uo$$~f_&$SnONS+6oTC*o>EgMsKd&;{2Q(7A zi~C(IW^7{O%<`hK+DVe6Zt7EZ7O$D@8V|koviP?x?~CvQTH2G4@7a$}5AhXv@b0_c z2{>|0WWMi^;Bz|l*&|kF@tlfzZ56JBbas4YmLMIz1gGoJ?X7+nRAp7t*dF@Cb9Di9 z-r~||?h68KKxb!-+g|S0szgyFw&zy+5W*0&8m6amlHJBYcirdUuBM{G&XR{#wXKR7 z-a7B2$eLeWcL&i?cq};`9R@;XYtc&I>pNH6?(YdA=(6Nkifh}aaizmzi&|iB9_A0iiFx*8jGsgh+8hHQJqZKF`?nV zMhYL0DEg^I{aa0b)q4OG*^5u zw!_EAJRDPC5E4AJnzr95pSS%AAF>3yQXmL@LSOJ@esNXarxEl8dI;uvaCoq>lV@&` z(8%0+sZKOcMO#K(Z#IkHn;b(>Ke5zzVG+Nz$H z9cVh7Ul_{jgkYj*eEh_&vf(7vNyFz-^Rf!s=P6jSC<@1Ua$XPAaY@JCb!iDdMOU0>Z7QP&BKQwb=_Xge1EPJ=BV|~Jj2Pm z)RG2^*F&f}?UYG+eYb5>4>#OKAD0x5Wk%<ul_}{dpns{>5>JQOd2oq3N`uqo0&b1oo2Yz)1W~O&fY^2c{>KM7@Sp zA5s(v>6F>tqrxK9MfoO8VL0V)3VR@WWK0*6+{3YDw1$E^G74Q^pIUlrkE@ z?wlirrW|vZKNYHgS5NmK13@J5whWu4TE$wX%Rg%?1i8L_oYe)tdX4J!fN1WmpJ+~F zoTk|}k~IM?*vn>o!^|L9hLCZ-_L6#75*WR&ilR98WT*n-ovU7SC=-x|MhC}+rJt{m zlGVG^1vNVFC%nB%OD$*x-!4lG9=G=@N){b_rksmHq%oL_ODh*N(mngv7o0SzvYlS{ zyS-LO;;ud1uCfZec#ZeN%S_%MEcJhRq(z)xW6iQs>+H-%g5Ve-?4VqBVzrpLKgq2ewt zi&pP1IZ4a3-@==`&L&ly@r%=S*lSxFZdj|@@9wTB=U6j?&QSLDZtqulJ)iR?1!?kc zO$7}^MMGBPtz~*HVQ|yZ7F;2);kCP(&E{s9`lNB?Id~JDu7;jG09r+@b(6!%TUxr9 zYG?2HYtRY7dkG7f4C|x)YRw>@w--D~6WQncZTW~o75s9}o2|WB@?R%EMJz4OOielV zK-jqH8t|9y_rGxZ02A!x-K}Wh*Du37qcJQ=sPF6MJ6D3_pzVPGBP!El&-HkF znmR|O$2)Jko3Vp~j~ZX^?`%}Fmpcqs*EEZST8-rKUaclc(djKlqmZ z^VoPDJ{)V7P=4s8LWxeha?+r$O)bUhqaBX|_EkPU5_WQsPlzfCp6^ePe9S=hh=eW& zOA96}`DR32C;*LkWB_jUj`au*aqAXKuoLK5Z99DZfTsh0Mn*|&jtZ9 zj>iS69y23~`lMo-=g0wJdI{a@lb|p6gNsdU$I`CmRomyPnt;z%p_U9bkW0=(U%ok9 zE`3};DsOnZ@^&G#tqk)i+rwO}*-t|&db%6zGVZ${B!iK~Vc#aAOJ81|x?N1_V8FC+ z{s>i6t&(*!0k~Sg)VdeI6;80SG-)z9JO|ds`3Xb0&~$ER;n6?MZ^u&Nj%S&fjfxjG zSJVAI(kP?-b=NZ~_%d&q7{mXDIy%zgQn$r04HUgrF#^SLN9+-)OD6$&Y(ev|ihQ{k@&%2-p zjaz~sh1#T~^mwgr%WW#wV?CeppKebN!~!;Mw{w8}zKQE zwTjyykJs1qx$%YOBiozUN5ExP%ii9*ZQe16ukZ`y6&7eZ)kQb^M7+-Ow%8ZHksBui z=MW~_bjo{(mp1c!?#Ih{h}(;yiV+ARHRQbp*ENN!&K;-3UW8rwGR#<=^pJ^CE!G6V z@HxO)5jE&?a3md5`4Mw3?FVMA#xE2mq!(s_7FI6Et6Xk)HOOT!Q zb06G2Qgtb0H&r*z>$!J)C>A*e_${Omd0rAGA~bnmZXkc47I--VBzDZ?Pj#vp^iS)D z2NurpeCn7~{xyNlZozn=T~G>qfi2L8{v-btZ+kG~@MXZv@h5okqOKvvj#@0@w}f2v z+{)lm@X7hWo&+K2Ze;xIG#Eutq(I*P5^kHq}Uu8^r=G{49oYEzgNL+seyr^Ex%;tzK`qldQAKATD`z#c81+c6PjTir=zRN zc}8cg<>u0i_wAB-c13!W_Rn0m>df0z%Vy1Iq;=to=Ucm3GA|s{0roMcx{jK*eo^CZ zwS?WiOqdE$Z`UjTuFj?3KQ> zAxZNKBj@luVDrw_mUr)CS-{IJeskHDZ&0g@-9K(hsxK|+thJssRkgzqOk%N~w4R{- ze!EG6A|TkER1_nG^yK#(7$z?e1S>o;dp!QS$O4A?%5xpcY=5NQ7A=?Z~ zniwJbJ0qUoT-g7<3CEnhmMD94{kN=-j(a`oivfv z8b-JwCj1xJG9|9ePaMZ6)nGn!dZesD>o{j-zt9Lav##zBKWWo-5_b-CYHjUo3Tj1F z1@$oG)7s$#)~Nb7$t4MUf`4Usx4db95yfhdE+mFi;4*{aDZu#kM|=sBMl46{oIWZj z<$*S6QG>sbwXsQmFRya@>I+rghawNSoG(4JJg9o!@IAo*NhcvUAUxb9i}`^qleBc>>=OWe2JUK8@p!S54YR~sagzkt;d(f6lKPv;jMqDMFl zj26$fWm-*Myz)UP@we7pw%0MMZrrPjPUlh%Wli^&{KCM(1+Q(n_fj`UVRn#$h|kHQ zq;}=v%e=)|G|fR<+ilU*U~o5((Fazss>KTTOZklYa?sra*W ziU-fY=0~6Yzk$J?y(p`MfrKE<=bv8605Vcr#Syh+lf`U@`Yy;boGIW^22)9;uCJq%cfol6H4MA;;l@aTNP2v(b^LCENm;P%`NUYjRW!e-qM} zuP20JG~?mnNMg)|o0Wf9-%?+DPcHt68IH}NzYZ5bJgO}PV51)YrlJa}%k_9+vg0*{ zAhh%_I7=22=ADbT=HcN?(thZO6$5-cHHty^hq2I0P##;p$iFteD%yxkjZV8C{R~=& z%H)Q1HSieBYm!h>!c#w2JM3y|NM4R>W5Zr1tY#1^N<$l4x@b{Qv60eQ7@{~o4q*mt zOvSsV+JQB3Rb7i-g&$YumI8B`nP6&S$m)}< zjM_!?oTY(ex$34?Jv?ASGPxuVaGynOKYF12VrqZB{9=kCML^n`oaj=ub4;a-k3nm! z$Vp-jZsfB$1}Zq3hB7>?{oK8-9(=>sE2j*6pLWVA42AEC_oldufj8rmrC;Bz#-g*p zooSM+rX;&P4N+In3YSr0bV0NPxq|zme!!5KBwG=EcwoqpBB%sQihU~lo>1Vi_n1!7 zL-d_Ij5wY5fE0Ai87k@bJih$Xeo7J>xHeZ3JPG}WQZ*!CcNaxeX(a$DNaJGC8=FTw z-dcRC)pezZMumdZY``#P_WvGr_CFCrAX6RpF9|y-)}`2*#l~yOBpOC;=5DqAFfae@ z1wW_E?6L6j5|ok56OoH2Pi?^IH*qLT_E`F4G=SzH!S58*ID|4j(3trzylje})8+Wzr4Qw8-tEsT<+K!o?RR_@jnqlXdy?hUk-Io|B-L5<$3eJ*Fj+9h|E*o zo(UwjQCVzS2n%O_j_PS{+vq~0S)G~EeW^|nX2K!0*EUQj^in~P?p3As9|u5%MBl=D zP0_Yp`eI1k^%%hnRB-sCvEU4WU`IeeVE*J{6&hMmdGz#sZ9K5yAhMcgV_}`~d1;eP}3qQVO6aPkD4VW&^V{npBFigEQ7byE7!!G!J z(?}Sgwquf)HC^TXD)$~MUqLmM5-R*|YLmDMPQuxy-zac4gr-XwPoYy}K@G&aF-0XH zxJkOqVogS%k_G z$2x}Bq~>{)(6HjygHHQg*jizdXPbgCA^T@aICS21#X5zn; zYN~ppqZA_s3Hjv!lJQAu?+oohXfY57Qtti!WOOQfkM7ag)hI<|xOPd7nt=12DD7cA zT^u=j`|#z6vH#`=06y)?1B?m(o&P?TLykVkCe=0;$v6Kuy845<@E1v{o(I{`rokCQ z27^^G5pLCmR(=1UQ^Hr5WUkD5o+{opQFkmYUmlsZyKDcUK(oQH$BPs7zAjzJ5Eay5 zQ-|hFqr)!=?-haA9=5;8_tSo~IylZ=Tiu2E;49NMOaKM|`k(S9jj6ZLuhGv}ckV+K z(lJy4ES(Ys?&hs)YtWqtzB;hqpIYs$4@x1M#2V!T4w8-Y_fTqWsD<6wiXlie{}F+R zb)^Wl4%?3^XrSv1?X=eRmO2(HR4({V`Yl2@;LV9NT|3$}U(KnL) zP;v6E7l1)qH4)#cy42g~X?tJ)A&N(fweUegU86ZskdSB0^-Q<}$o#el7`#i0cV6^)HV)4$p=8!;np7p0L>R*U;t41$~3&| zxBIQax}xGY4j++|Qd1?OGQXOQL=Ox~BANrOez1M6ojj~%h6#&A%l zh49+aLXv>u2ePKh1nt0ez#TDj8Sqi1K8s9{!zlvTyOjlCX)r-Qsh;onLr& zr1&S&iOAoc#OC0An?G=l_g9{5s*#VsW+6sjf%nRuH@9fwQychPcyuSQLVExf9-{W{ z<&OZ>gz9Xa{F8wY=GOJmNkk(8SMw1O>nu!C6Y1x#BNc@BI&k zEshH&YmZr`CHiFmSas0?-e7q$hTZ{i75%wbHDab#@)6u+3t%saQf#gx5nHJVwt_U3 z9DUcZ3rj*e|%8^%@#n!K=4xB*%^cnStqb20CXadG>+-8{b{1* zKE)U@4T$I(CoBH@tpwU?oDye>7N`2q)uuNWP%_DeJEByMWJmRyMEnZ;)+PQ&&nb+o zL{((qRRsv`&Nfv&^rY@&ncuK<21=p^=1G~d5?^WpY>|0CYKCT$m>7J|H;3aiz(j`sgfo1b)w`1w8Va8Hb| ze3NHMt>!uM+uzOsa1UEok(Ntg)#X&*r1AU!xPH^W#gKq?Lf%sCBvdc*nrE@rv?fQv zTDRc#*s)7-a1hz5I`Eu$Zpqe-Nu?t~FOPAT0?He`R%yo?yh+)&Qqa~?K*Lr5qd3r{ zrGd!eQ>PnhlS6-0S>8{8QW2@fshk3w080=-fhAa0eKgbzs1y|e&nQ-t)(?&OichMU zz!yDPfo_9u(rxmY2F|=C=1j`wk)$G6m=QRkSHtjV10H08940317||^Wpj+v;lKv0+ zLO)j&yUW5%;Q#~TcLd)G^+#2x!1#|951(}~6f3fx1hiB7gbWWuZHrV9BN*scxv#f=9G0jl&5;`8AxXoCz|>rp z<}+fwShH|b@z+anXvYYkRlWZh89(fIcuJaC2c@m|^E~N`Yx(_`B}PvAbe*IPQ#ELS zu`;_A`Eq0=tlA22JLa7XF$W^8;p(980LJ|u+>{ew8)j$)%EXM}gxTJJn-@j~MLRNR zkvSSx4^!S4O@fx>eKsmvDp5Uq-h}i>tUQ z>vIDPe#!d+jjj&dNxTDq6O+e15V2DfrXI@?E=G%q^a{vJc!OcIy++4?!{xaj|NR!5x%hCIm0GK*IfMI+4R401XrjVRaiD9jyAhGzTR3FMC>~ zv?-50DseoBhz>YYCQbon~vbN%AG5Vv+Z}{L*cB)$Q8qZ z4#Zil(FKU^!wCBfoVset@ew;{1Y>jmx)g9tl3za)wEUDiO*Tz%)U@T++Gx#oG@yCJ zLB}Vd-cz1u#4_HA8%uYjb=v7q|F~4a2O(yRPt@6LbHI0o*Ts#Fb-5RIc`lAUo)RH{ zb^KRd{!~hE&tGLWD0<&x{m0$McFtoJ=My1uYy8()Dgh(|V|OPW=Mhe+ zIhSYgZzMjBgTpH!5T*_~f3?eB4HO&+Zl3xJVY=7l>Jly&(F0PiOwgCObh*DC#+I5CiL+%#lY`Hl4!{3({O_O4gfNxMM&8@P;rvGv zneGP@*IdG7*Fe0D&^qM)r>X(L*5La(zjo-0Re9buIM#<%{pXmV3xv3pbWiW)gL>)+ zb&C+?+CT1k!isoe_HM1ysB@Qh@;_b3FW3Yg+mfx@smyrlbRhMQhTuR_>^U9bhMSyg zbu9eH{jT5(CApCvLkRU>{-dt@LZK*zvOklpnOGzLaWXE)JMhbYo_GItoC&9kuGDyE z6VDgI{~LwmLok@0BqTXaoKTRjDIfHvzr1TS6)`+rxeeco$R$3EBeWgi6P}|X3JiWs zsN_03sxa&(Bnp(VFQgG%4he}6M;Zwd+>H{wlG9m*#>$LZYy9q89c^ow&C1TQLXk`+ zhZjT|yfM(@T;70MC-8^MsQt~d$HE2s?~gf?Q#A7gf0x0gna(fY{Z)o#Uf+TEtAt|y za~S5Y67jTeGV)&~zT$WEM1Pfh}ysUtvPaRRmQDYNl-eqR_xcYKI!To3;f!SZiFpG z$cVaOMBnM~3lwHanl-%Zs*k!^90rT-aOOCuy1DhVa(zKvQgz@cADpE%ftax%oqO3G zr8yzhpy+EnSb7Nd)5^CwnR0UiR;yAwx^JG_k}7$~5pe`aP}-8TBP zcis$dfv^zAw;x-hP3ROFz9-gtAaSp&3vVTan;tFS>+||uY`1HkNa;L8p50wDvag}S ze&d?DZof~Vd$jPW^em^`TQwkto?Hp~q;$DOQ~A67-i+GZsS|ru3;PLvmo~WV-J}Du zk5i%iXvAFSBssQ+#xNTrtzIUV*RpvECLecHhj)j0)fH)L1d|uW6-Jkf!NiuY=3Rh$ zXL0Sx;^`x0@HM`VhivlqpL57m=a&#sOCX)w*S)IFwvNX`CDO((g;r5jQi!toohNxU zSVwj3IET1bWtjx%1IluKyo~I3lbc0lJgqt~T_h+jSl<0-H{;yxTo+ZNOg|RaZc-yX zW@Nc)S9gQ##1f8)ZEm{*1EI!axs)C{nJy}r{8E!S`Xz+>1l@Fyvoc!Rc)E^N<+v^D zuJlziys8%95YUm((WZ>B3Z3^YG}E0VAbuxpM5m zpX=Ea=geQqBn+Y#ma0BmxFniqT#+{OTxe@$a<{a;mQGbaMbRXk?X_bs-#pxv4J~rr zAvn_T@?Gigle6|#efA2aEY8yG7>#fRe}3+WX9u3}I&LJ;8unh0`>D#4YUf-V&+b^S z*ON1%?H_+a?29T;@OX33+|s|J{Ia}ElG5!e{zz9)M#LnZ!1zR;N+9@D~>T# zlskD(`olF^tGNDl58^ihUsvsYEp_QiA1;k?o*U|4lMKuUxDbF$f%=Wg%91Nni;4-~vmUo@ zA%f1X0FGM9ZgKdrbB^>#P&~ZV`_pV9>i|!^yrBVko^+F`_Wrx0USh6fq`oaBwF5Nm z6^Us%Pwl&siZT6AOQnWH2TQGt*k-5sU%8WxT{xygrsEN9A}1eTN-& z#cOPK75etZK1yn3Qi$4PQFMgjN|Ruz*pE6&Q>obAqFV`lQMD`P`AkTR^qu4AK4VzC z-b!kectWXIxKNGQ)ky!YG{uqxi&7I z)Rq+#SVOrS#~G8NLt=_z1?!PQiI^}e4XjK2+}>2U;2xE|zU`ej*`Cml4KPn$$*U2= z)EYO1lY7$gil+$=RC22wCv()FaR2P432miaj0azd_6Ud8Z|*sQfL5Fq6W+Zv=k(q2n86#R~93fwW!ZGeDV;<*&c5bR$ z?qQK}pw~e8_j2#-qZFj|?^ zP?yaZpe3p73-u=F`mTD?P%@*G-ZKxa>z9|!FBMwR&}x{|3~?&qabtuzezP$EHTt)B z%TvHK0AfRe+h=x_V$fwcsQIXTf=|Ls-4DMNpd~*wK#g! zp)JkOtW3APt7v}U^oZCDK>Mt|X{F`4LH2GIo?&HwtI#QzSYB3j?L6buTT?HI7fU zHP5OE>GH3TGioYhedbE)Y>W&n$~e`rP-H#f_ci;L<>$3qzm-Gxf@+%tG7H>=v+H|m zs;~6*WOUA0k}PJJ=-syr^*|rFbe?MsR=vqbbnd)%HxUG%Ex+@5&DTH_4I8->tJN9X zUO<3dUgF_1$Iy4N6MHsw5?@q}?Pe9Fn0W()_HrS2C>S zjdh?L12ISvWt)0RxG&OO0^CmQ;zx8o}9L#UM4;3!KZh6((k@~A3C8a7m zeg1wks2LecKw3e?lgLh=!?-H=7WM@@1GQ+Jt!ClAgNJaiFDz;s$iHfF%Vic=W9?|g zt%wo}8a`0Vttb&o}z2z*ugC@t*up7-h`HbR8J2)N(Z%V7tC)ZSl}@ zsokGerD%GRGs(6II|BnE$RuBEQNB;blmk)djG_7f+HL$%$M7>K>hc3pJ0H1h0#%4w z!Vp&$vz|TqLe2*axLlg=LRvqt*{>J@zJMYt{iCL57^`z$CmiXgYyQr?puwsi4#_x6 zCrq*l9jFW~!&wU({rcye?NUOH>FLF*;-RnKzGzR%f5oHYXlmZaO38MLq=kV>2Ept4Q(*Gxr+3pb5i zo|Fr7YN`nSOnOwOPO;uHnJ+`5s|}Nwk=a<<8pUgzVdZ5&pUNcfFZK^F1QHl{W9)9V zR;l>d(eZ3iGW{*xh!x{LULh0eT4P)PE3Zxfgk810*p0K)JXK33W}t%9~quXI4$~lgQ3y zx(3#o5M5``NuW${uTVx<6ibaAg}i=g6L!k!V*v*{U~OWvH<+;2mViYve7ib33OmcG zJn9OG(8PigAk)HyKQT~-GAf~4<$0VN-AI*3{~A!V#B^BOLb*r)XYnkAG^%G zu2^~fu4NF=ANa$RttK>>?%HgAsUD}II%$Y?=gd}kVGPgl>C>hrYc7^Pc=9Gy3K}TZg)&;Xq-v`N^Y{nXcsf zAV>udb9>Hx^GmB7(o)P9Fy^t|A~oFJ=9?FC_jfqxhNzTYyJz3*6j%n6k`S20DE8!e z>96T3D1h|tp{;57h<>4&0*e&vaRgde`E_Z$_F0Py-}Z3?PR>a4Zx~kx-8@%9YF@^d z7G}~)2?`%#3bw;gFQ)CXTN2b?9VdssCxsS#*P=J`>w&+@>iG2IqFt`X*eXaD{u4iw zQuuBVre89allOj6!nsD?8f`81F$C;v{r+eckgo)J&raVuXk?PsRC6rLCgi~96IblE z!IbieSy`H)EK)!7Yi&*B4_)=mK8k5^i$2oA$F_-J{J6i3t0i?~l)3bvV{K*j9ul0Q4b1C>w zV@n)}tDC)#U(IfLv^}V`D}o~W!u0K*-NB^>epzOy##c{~loCnN@i2xyWH>v>g+6=RVMdV@j1PQR3`3k4Y~TJh3i z2EN^JLm^FS9Km66|7o|0z`>_KDygQ%X#k{hoy6;Rq}vZ^P^FcT(m2R*@-;Q$?3c3X zhPrH^Y9f=%EM7&#_!9j1%`h>Rj!AcOC)|t%1O4O8g3zLBx~8Z07{y7-{sK4}{GL-> z>nUDEmZ;8+W6S+%nkV<&L`iwrJ-3&hoFxq_8jn>_5p}IXAo&#pSo<@yXq(9mB(bLT z5525nkE7a{8(>{JncrnJoV#l~GoUEcxaHwU;clDUC9dhUeb09hD}dS$5QAC?Cni|{ z5cZ4i!9SdFfT(yN`Sy!h0;L2&5Rh|8$MYZ8RTYcqXj6e={!R0lMKIG^ z4*^xu=>5M~d+WG1yKUc>w+58r1qu`>PSH}_Tihwdy+9$wnxesJ(c?1 z!R)PK1Ftk=ee{O)<+B&qv|III&7(8$?}N1HTn}*CFWx*aPx+oRIUudeSCw>jHZ-=K*^8d2o0@Il9V`M63u!M}aNTG=Owk$jrt>*PF_ zp{yUjIc672zvv^*c9NHQTyr=w7Aa3L&i*k{FC=;gdyLsal;<$HUI${mAV<}SD2Zp9 zjEB))eeYw3YrFeh3eG~LS3DlJHk#G%dl|>&wCBIOgiz%4Xb?8SpZq1t@u48yJ%dU` zm$@u3$u>e?*wQUc#>VbQM_7OHW$1(>uXHXkoK2rLZ{1-p%66wv)`E=XV{M4)s1}Y> zy5aS+`kFh;ymR*Y&@BX6lIQbfk;24$t3>8*ri?I!o0&z?RHO@sub0jq6st6Ss-^go{QPamRp18H0_xdPurph@?O z58h9wCL=}RT(W+rM$zOzonAhxaTz=6AMfF;Zl| zuR)NMZ5J(7gEiddM}9rw+i7js#s0tfm3y}$Wc7+$*WV2c$|I``M5O(ziW{lHQ)5)l zGnDLpLrcLcEf-K!OvJNP?D4e6htiGf65?_By&2KbA7!i!&lziG6Ke?;8?$Hj5D)OEwlg5F5~!j%JSI(v~JS|YFH?qV0x zFY0L1gv?#RmqWb_2{R=Gj76G$NdaCnzb=TFF>+Vk5|!QDDdCv2UDgsOruB0nmdh0L zwYM!XnMeMzm>wT-adr{5cIceG0o%=4+4{P)wM2GD{raSkO+{iDYWvt)9(~O&Jir>d z!hfBe&EFd~qg(*Q^wc!Pr6rnt^}XOT3p;nCYd^5+KwPtk01Y4qy9jW_ijcEz&U=^5 zCbi}HEcrzmuP@k>o4aDM9xJxu{7z1|KDYRAiuN6Q^LkCJt+oGkWpZzfV_VkI9C068 z-tTW9S8Q%+cEeW3>)%0IW4R8a0)6aw3hSR~cDNxq?j{2DikxBgj-*v)NnMiT4)#OY z-8BO+n2Dx_R*^!pC|}65uw--LnH$>Wc(~^IzRGHdSkB|b%&UN_3!VkWyAp*R80V|T zoDFl$e z?1X}oSP_ZWLXUb?XIs`P65Qi4vQN1mOOY7-~Hp^EliRs#2n1p{B-&na=& z98O#@8gHF}T5_uWc&&Q&aLgK_S61u38Lq$w%8Dm?RFghhauJZJzIn!pX#O^Y%aPv3 z+kB3s(*`Qbb+*!16yno&oy_MVN?yOnnHGDuJKdhE*sDQ0Y4pYFh|G#DiahzP#2Ftm zqtJr<7LUkNXu#<@sXf^}@#j%GMo*4NyTl!lCT`Ujfn{jkD1i^>Rymi0wY!dnNx+rctZp_#m`r1!{_A+nx3Z*jL@Qs*#7m-j z4B4q0$e&2;_fmrztcgMDwF#xJh*Sn1&hlsLpd)Z z8JB@yCP-EbqO2>Y+@-nzs*c0;&{M5x6;}_dgDvwhIn-Xu#%a`Bw?n2{NnQ>nT~ z)%dmBV(EC@LI8E6u51X`@XM0GZA>(~Nw~Y14`?HA+i7h>?4hb@d8Qyw?7tt}dB?cN zjt(p;6$AMDE*M_Hducz~>t9qp-|0>_acUV6Q~yT)IhDb4s?{myvSCQ-_E(R;CVR)} z?cLyVY5#AbahhgSO`v4zrCb6=RwdNUszh@i9AVIw?ScV@mFuk4W~*~ zj#oYMJ0036i3hGB)phv$2>7$Ti}F`ksVEOO{>m7kkis?08gS}J_llkr0HWeJX zI4r}bvxM9O+3~KPZ@3(>+D5oNm=6<Rt3RFVo>oRq z5m~O=UxqnoJ|=xzk1QK8Sc$wDjfuSw$Vf<-8ulAda?qqyDfocM)*2hk_M1ACn2w(Z zwb(Ba4G4%d++z|Js~*j(e^snaxl9IFX?cTW{uiwwC@HQG?(G; zep=iTPLaWEp--)Q8KHzHpk7>_5qnNk?wMQQ_{=0O(k^F?*?9?EVBsLEnVn{)9yT#G zad2L_4+v`?-1E{Zstl-J5~wF2=AoK+ns_2hhM-Pv-1HS8P+lcy(}w(_DLdLM^+ z$Rk6b*HgF-Mn;}vlBGaHs+^QMvJeBV>L&nfxDe%jr)ouGX2E< z>o@P__lXi={cbygoyYr&2Q+0*S+i#Xq&uv9{34IkBp?4ml`CFj|J&+~HDsyEuE*MgrbxzVAM_DOh^B%rzx^CS#B+;?Whpls zQgaTsT%VEw0e{KPw@CPeZ^4OGxxvpn`-|~Rg5PL(u1w}J>88D=ss|XfX?NM#+vsKm z1B2|<;p|Zr$#M>v5lJsPnKjLgqat`zrMTZ&MYTN3mku2bSEHgw$eJwu{_*bnGfnOz z@MfNdFNd-qwK)GUJov=~)?XrxDb@twTnC?c`iyCj5($PDR+15aKrm&k3u zXqyHrx1`k+V4g`P3WdKwyeuLTj~6Hkxo}wXvNTV^PsDRA9&0%k)_?Dhmv0#5`1}^W znV3P=rdf*3T>9N>45WN0^VFC<IiCYsefn9$PU3bG$d}0H z8O2)eGp6pt%ECzO-wKBCadT(Y9fAkgn>4Q>ODp9Yaf?8HaqJlqIN{?s`L6R8;8P!S zL)u~ROv^S?{gYQgL5BYC#;sU%>s6{}geWAM%bK{%5IwE}u$3*bodY`BP&Uxs)uR9V z2@4`5^@_BZv<-A}I#Mk^hhd&QcN)5$V`46&IVMI(VFx>tnU!{Ngj<}ulIEti^JY^p zNSsp2mX7&C!XI*Zwb*GBF*FIEr1{u^=@y|`G)wIKxpa&OkfUhH#_~htp47DRQp%eR zseWt^GYzXHa-6@zH={_5rI~Mhj9sjPuFBPIltTK$QvcVGECM9rI<&1ZySGvByv~^}m7KW*Ny#V}lAG{?W z1cd27M$z&gwya{j3}#SBr`sz@8dyU8t(W$gN~Bxi4ksh&EO7vL$U4%fQpnxK%d%tj zm~m}GPSyGW%Ojv%slVts;tq<%%IADbfY|_Bp6Orv2|aewD9lrSJhn4TN#M@2Hf?c! zS~XsUt!}o~Zu)d`7uV|YFU9cU4<@`@>nryBN$GMDy(Djsmpchnw_Y*jhzAg;Efg$G z>oG~Nl`pw|d&%T{u?)09seCOKuXaDV%@K?IIOlQkinXTqj3#piP`Xg-?b>$q$)7d+ zgQjZC9_B7ZskTouzk$S!%K131^!2sMW!xv1tBng+DO|wXNZIDgVpFq(b5=fd{ zW7rV1{Rx*Gkmn#2p&h;%awW?^u)5Zh@J@Xywd+re==Ld?KI8SHV1s9V96B75btg>P z3dNYMaP~eE@mD38q^vKCJd7TTZ2XB5rIQ9j+k&lrd#DAc)@!o3B?f+Zm^^U~Q4XdQ zn@w1Gf#(#m3Q-=Js^Md^E&mFRC9e}7%pqTr#O70^3FmV?zi9t3hDNfK#_PRS73i&b zD;wPXR#1mjhFoTr>6>b_W6$F7U><&E1H}U5u&6);{CL4|rdVa^&B(&Tg_kv`*B`9! zE1Fi@SWQGcenkKFR|~R8vxVsEfdETNT-k;MYXlfi7=r4`2kV)K% zaqVZ-iZ{C<03bS!^y2I0#zB}fSG~I3P?mm~1&ch^de<`|1mnKH7|5|hsdYHaR|cbH zaqzxiFhY+B2)sdjXW(6g!!0sJIm(dk>s`$o4EsgA#L`aX2UiMoKdI>#`ZyojR}yty)>No-!j=rTP`3uDF;*nfFq&iF=oeH@TU_7v}m@+t1ZX;G?}B{{=%dHEV9SqO01FY(cd{ODE`l&O98 zQg~X`ZQf1fGY-}SmhYABw^1M^0@f@kKRSi^z#J%&3iWgtW35tdfuWUYfdl^x|&VQx)0Zt zT@I!inc^Ko#OHZ8S1NhR#=t{7$ChSil-N<2b&+rdAH9#uL`#FBbObT7=X7p&efs`| z>ThfFok0mw28BWWS=-+b+`6vPOeo7%W-bW6KRdTl3H}e6$8s5;gR0eE=~O`@O$)HU zCP16sV%IyFv%It8P}H?=$u8vUslG*3ti&ttUFikT<9zzQ19$UB0QOG^f({osFcPOt zDH0O1&`-tI^Q(H+FW|cS0)M3CV#TT4Jh9N4uX~u7WMG*1#c2jHWny-ghdwFvvbccI zCsxCI)Uv@-dfcM8bxW;nQJZE~tVPW&IRA8gVtRM>Wtp5|aRmaWfx-`63E#;a=q>W$ z7@|70w~_bC@#Sqlv<(~U6`{%$jE@9bN_2+9m_;_MiuFqHl9H>h!Kr7Kcsga`h3#nD zq7)0R0Thaz%3|HJ)pF(qe{Nz_3iZvXW@KeO)_5j-cR9j`-Pa=%2MfM^U~zeHkjv41 zd?fObf@{^OjXBnlnxe!8c5&AY@sjJo;({avtRBvQNJXP4?%N=iP< z7NccvrDyM+rNFA6^c+Wzo2@%gB$DS;_jSyj&_%n>vS_mnopyWagt*48F z%OM8MH7=CI<38$R9W^2=7j3iKRv*6#BF0W#iG@LGv!$Irn5)gO?5~L4f)=5v%dWY5 zS4&hF;e}SVlasFD#_YYcoRhb$Cx!Hzy>ly9r0m~W%TtTKw4H(W0(pgRAQvVw4At>H zBA*|W`CgHCAT}Ir_oOSIO9#Unu3kY29LUwP&e|RCvuZ`UgmFVOl(=O+VOjV)NJV7T z@bl49c$+IwLUJS5WkJ-si|Hn-m{n3PAxx*v^hvB;drlbBeo#k0YCrlPQ0 zrJ3_T-r+H|nEq%+z6hMl+w+x6cQ&p%Hi%wD8jPW)xi_R9!+EJmf(RW|Mv7gpaD zbt37G$^W?A_qy6Q;wN1BK)je|yfG9({4WJYN7gJ;nK|TDY@!@cim=p-EujqZe*7#d z1*ZWvEi$VxV8jqFDS~4juz>U+O4^O@pKA4=0cy7}QO53aXx)`BOQNVmdgTsJGNnp_ zf44cs=5tW@rVEO-wz>aNWAH#W?38i>$RM>Xi%`l#gpBi$iw}Bf?nNnI zMaK1v5$MTal^V%j3s3z1}Xr9`wPlxUaRHz{tsOSMSpT*jd4FU!K+0>6?V%n5zmG7 zX(??i)y>W|b_!r8T?>XPbv36(TEo$e6y?d!p1t{rwG(|<9F!w`EasK1x&@nc#r^s* z!LJWf{~@s`){(0D(`Rj7>6zYHvz&U(;t4W^%wo>;3kEJgc_c8d_Ggw^(x>P6TrQ}y zzdfd)lMtR5_ah^*6Wh?pJ3H%+6ERr-X+iaq)jLP-nO=a~$XuUGh4*If1$ATy(!y!~ z3FhhIqB{(m(=#Vf5W7>adF9lv+gw7$(rJY3?mN~C3VpDP>3RlVHaowewD#JMV1l)2OZYuy9{w zBz6w#^Z9MDNDvxQS-jvQ%T*X_=wZ;3Z)I8Yicc%Cw!j8a35l9g&9?W05}*8o7Gvq> z^b~&7k9TE8ZJ`#}o})FP#2#}^OCj?65h7s047wV;x#1u!+F`=V5-c#xVCka?48^Uv zdBto_m7~%p_^?eG{v-9ZXAn`>H8_&5riP$2>1qa%!Q=Z#PLL8r+F(LP;X1x^MwwXm z$>e<1jko=1jc~I0;uP|vhk3N;Z{#|$8SKq^q$X+p-dE4DNvAq01Y8GxO3f}z+cDeEJTF=kpVfv@ z44lF9gPrc!pJp0xnrcE-!LCO}{GuXL-Zl+&)?Ia9u!RL9R9h`LUR*^*kuq=%Tl=r?Knzm29ezaa~AFWqt1Iuy3pyC$r3V1n96qe?TvDa#x?_8PgYKx0q=mQqV9_r# z^;HxPjRi&dvawm}>!%d3gDqMulOsUVrV2~^Yue^*(GN%`m2fmgEw{tpiG5!J> z8rv+XMrG@>FUMu<6;GQl0^dEG6;WB&p$>KIJ+aEw^x@o3kvc!az7gfy32rtYgSTsY zM8&ha^UktTS7@l^35~7eb&uP`Jmv+MCH{fN_MAM&J_1jw``oFQ(()1l)ijx1s3h1(jVXrwB z@ZJ2A!mB!xIe(L6i3Q0m3;Y_{OU+2wP%<3AUE1wH>h^gnOKSX*wc5J8yoR@33tYgb z5o&ai(TH7&B95tT=Nfiz)2W;bKA(`^3}EYmtQn^uBqWA$sSF?H9vh)Fb6Q4Iii^X0 z9MesGWm(P1Hpd_-%@@JN%Q{>WbkB-k=_ij>h);_}KQd<>IPF03m(b z)BS?Lf-3QZgD>BxrTx;We+heFlb$9s*6tT1iW9KaQW*cB#QNrv2K+Yt@=(gOH=2vJVXI`0+|7vJaU#VCTap^R!oltS;q| ze1}<4$MPll)qnPxqJGERu7;84YAR3uks}_uhn-~%jZB`q@X2$h&`z#jao9bJ+mwmb zPaj`ac?7xJd{-V34!y{sbaFxVv|L!hl6Er{M3m821@5xRDI5#(dV@U}Low{vL>hki zFj^R*reYXhR|Vi6(tUGAo5kmd^=zO+=^_IE2=Egs3DO20@Q@nCW`7U6@iC#=(yMt%ZNGO>43djq{W+{w)4^2XoOxPHsJz5I!L13k zWXCtgSGw87S5oZkx4QPO-yBO)KHzIxTY;{@Cl$2CZ=U->BjrEDyYg%cm?;ca^_?*B z>-4u{GyVyhr;c*I{#768dro9?Li=97W*#k{ged3H7*P}m>eScb=Xc*cSBuQ4tyxIn zPqKAA!uKN)saYUlwXg;V>hMuqB|LLZ2kLi3K?<Ex(+Ty7Q;-1&@Z6icg5Z)k+)BBUYBO=l_=~8$!>^zw2#+Y5w2KcJPQj z{!zj6tJtV^qipY{s~f;;T3LzjVR1)3^00cPM&x}#50u8wq5AsHE1o~~D1pmiZxr7a z|0DP&pKP(I_PK}ssk9CG!Cs|Q;QqL@{jr(f1CQ461xfBXsfQ#nTte3|IVQLBxxmO_ zShjSjgStZ^F7IvqyA$-JQpA30S=9p{lE3m4JnPK&ova_YWq5%C(~tjSP*8ZXl%AJ_ z1plZY(nx)MG9%+=(lw%eH*h)rTaDW;S_8vzVb$rG!>W~XE9rceiaU1mWRDj&y1m9} zCBxUpba59#6_m>GBJS@BrN7h~eW&yNrW*F(!vo!^AJyYBD@O`mmt z?+E9=tf0F29-H4~zMZeE=cS-m-D(8XmDux8s+J&Ceu@gbSqcK&($?cw;NX1jdo_L; zVIYh^&`Htm#o+v@(gN;1uEdZ+kmg{e0M$ zPeKD8)PLBY3O?G6w1*wl0b@FR_7<+17Q*}k3{1NM$|ZG>6e5~q?PB8355}l<4ouQa zDz5Esmho?=XMfaGZBlw2+*AK>9|z|i<$SDxMJ)ii^1NeP$lmQ%uK=*jN5wmCoVW3dB$sHLc_IlbtpZ_Yf-%;x?RSrr> z<@5&dW@spTD$#{i z-Q`9xZSsLW`0T_^N6}d)$YfiwHH=(7k+`U)RnkS+(h zLr%YK!i9tL>~lR$#}C(5<+C+lUxC}l*~NW0;5*9SZ|BqHD3ucQ`^r?j^v=|Ez&3c4 zZ|?YTZ{Fb}>y=gIEiQXB4E?dcr<)+m9Um3vHz8S`USZ>UIXaLj0l9jEsgpsQ_`_;O z`LdT!&wMI-IrdX4O|fT}C%FG!p)gz9rb|`b99^zi`jNXW(8s+s4|x$_J<;+mmiiuc z9YklNnCY9X(NTmF7H!sFTdM3AmBd)~qgVAW+jtmn!$r$9Bz{`*-44DsmRD3#`~eEK z$PwpHoXawLTDVc$>}JZ%$JJoQKxb1(^zx>3$XtK*11U8Hb?0-nhHi6oVz;+n{iv$? z>W-o4V&y{1?Mutj1Okb2mwfqIRo!E9a+QKsfn>3JC`JUJP+)FX%tEkPwp#eD*=(j*fwi26p=N7key zr!@YSK<1r|%1tbv16g=((I2hJH*fh7B@M)eUKO9TQp_*z4Bo|gB~{0Ztlon&7`;qi zQE9!R(2eIYBK?n&0hyRN7XFQ(c&buHZF^wXrATo!CGMh^c^<|uqflJODb4O z1o4cdPtjz@yWWB9N$G6!urY2Z&7{rw=IMSX<-=lwxSGieyG(xR==T7CgR^sg3bD)J zfR9q^QfFQRIXS&=f1>fpat5gx*&10uvgorCxxF9Bu;%kksK!%45IdtpKB6Vn?e(T@<|mOcI|)fY4Oq{;;6qD7%y7vHmXQ@ZgVv0TRx^3(Ye<%_Xr~ zM@X>`ttP9Lwk>kAKuw4D5M&%cx->ZJVlS1y@1vjf(<+cplWj4PT0TpC~3 zcPcoef}^r76mrDN#Opv#JFC?Bo2>zMZ(1zJlCok>WMsBV?YjkHgaj;P@}7F28m0>g zh$sgvz&FDm`a_%fkQ92^b@qwh5@VLUbkK%b?MKxohYZ3VzD@^}x4Gb)71MSPLB@QM zp)fv>H0S*JBECSos?o0W&T#n!p-vdD3yS?JhEYoG!~^U`=kcjusWE1}6|~umZ1q46 zu;w$+Y&xZB)*2wB51SaqJZbXyKh&=YX^xM)FxVVRtCn^iH*Z$! zb*Va-($Zf>0FkK8zg1L zZ(v_Z&sFll2i&j+z&$T*dCMHYsya(rQ&}EIk~!+fK#^1Tq1-QIH(BV-8_&64lU$Pb zQMTeB^&I}b4Y-IFodBwSSO2xgm6Q-Sjd3dC?z1iI9`mqXb$H~N7{hwY?BMg|MpkHs zw78MQL2X--q0?+DMA88|pE=wVh1@fcd%Db!nKM6bl-aOY1&Cp5Juyp}h;MUgJKM(i zGY;CkS+Am$rf$0iYxK#4NuAD=LM-c2qFwbU=+n_*h)K>Fj1crv&u!CW1J-t?9>`_Z zvmhdr{unG)_0%9<`m*_p_86!!UQ1)wJpMd+E6k{d+VvF7J!+J$L2r?jyeTfpv^uyk zsbMO^*#v29;kLeX*gnXIzf5TpEch@lF$SydV=d~ZA6(vlRQ7m(j7x(~Mv5Pl$>ra{ z#~1sEL0oic@r7B}NR~{qf&34d=!{Nted8T(u-Nftk{D2Y;^pLG?b+f!%f#l`a=g!3 zheejJlX5WeA44XmO+W?PF2Qb%^Ep2}{A*pVTYFGLdGpD;K2Lx3?*T_evsMLtiJ{qM zm+Ds4xckv#m9T|&)F%x4Tb}{G%jlL#8731AP|Jm%j)^`*$|>K;HCzhYb&>ZcU+aan zl_M*=2!#kH~ffWa322E__e#Zu0__X_i36I}UW`lSF^dwai$Z{ycf?{zk(Fdnf& z_CYa^go55P)qrnn46Y|-FLgYeWD1;V}5(9 zujBlWV4H|2_=NfGO~WHv6DIEqfwhzh_M;+XZiK{jWx~UG_uR&j*pIm@?mw(6pY+wLz3@ zX~dU7{$Nv1*rxg~SW{7fgRlDH#_^X<%E!fYhsT+CpaK~yy41D`Zr6*Ly=A&09+K;F zsUk-Xh5$+A8e}Oe>-jl%)PU#h&tpbmnatym{L&10%+7P@1n)yIkYDm!X=ogpnAaO3 z(>Cd$BjIIo+Lz|fmqL_vJXH@+glZk=iOSf?ww>~;d%WjLyT9q6PH&@}(;8}+x<9w^ zLmCKDy}}q@-?-p;S@q`*HfBvE*?|n(i0fveuL=M&MVDGW0qUgbjTey&Xjr@%18^~^ zZWG;ma{b-XzYEm`mM$(f)ifSWhV{5LRBe^+In5`=Svz)KB-MDFfyRX6M@;&-4f#F3 z9On+dxXfmpOSsc;$J}2h7rCYdQXd@UV=_6mQtHTf#;a>n^{nw@3H7nV#7!(hUaFCe z-9g#5K7i*k&l*ABLqE?WWyVi79aBo<5L{D711n?}Tjm#&(%Al*UphgvTK^8vbhEDv z#WbBIQZFxAJf8V=bS+M@%%A;qaMA2&L^SqxXfa($ximc=<-g&{HY1QWv7hs_4yESO zKb5#nTk*VE%}ESj4%>-_EIGrx#dfxTmVq`-SaRX|#qO^Ues63*^77}Zna?_GM~#Fz zH>N=-DJeVPT@`v997yf%R=TDWvw)6IEW^?;aZ`4FH(_|~s<_|kV@9(;sk{fW?SH*6 z5v+5PWb~N->sh6m<{l-4}-YXI9C_BSHiXgZ$+mh z=DRK4q`K~?7*g^I2Hzj2N z%PN4dQgnm=P#Nykjcr0g;+zOi8+>$QzHxPM%t9i#=n=!E#thQc2W_uhA8UEFRXVG< ztKONgNOq8MT(e93OLXjDIUswZ8r-o7n)@K%bEl8 zIt=J%9WoaQ9A-soj%GW=Bt^qq%K>*CrY4}6tn&)2mq;=T8%*eUX`tk*nI}0BL7Yk< zUgyS33LmODx*19tEww=NAu{HVoX5bEfGF*N&pspm3eRhSTKJ4S`Ju$jl|tf2cbC2s zT3u>{1xNLh>)Y(_U+-`RJ&M-18?I%Kej-xZjWlD(4;u*pvLU$@i#iTZGf2tFW{vs- zTq2~d=c^!6ILbo{CsZ!TByBod9~$p7B=oztb|H$|q3K3&qb5B2(edF&XgLOJQDq!# zMlVJKHHgP{XKmVDF`p4LWBWp@i&ydb&>{>?Q+exXA;)Gfii|BLY7_o;R0DO1yuU+Oqh?83wV@UxqmqYzo$1m}t+NJd(Ld)JF9k z$|@Flh3z}Bmw#~U_$J2@HXi;+N~$k$!dk}TC*2eXu~ig9?a;9n?1WZK5JG8R-afg^ zjA$aA0uCAS>Z^1f$Z;_LCtRsrT@*yG>2R96IQkaC4hb($aFeqFHpB76H}`=G(;@ad z!ZYa|?{7pt(#4d%*uiZln$7t&fnls}A)HJV-JL4t)BcJHHj=}xPZF{}aiGiXUd!y7 zxdEWMQ&zlam~;Kk*~A+X1!Eq8b`6SO#hWuOiZ%iOm)%Qh!-*HjYmp?6f4o+a;-WKR1Xusvy zT+}bu<@Wx?>9^O|4lc4usC?Lk_vuR?qmUp&lZJ-N4i4%+AnDcQeRF9%8z#pAWvi7)YOy}D;XiukeAwZhKi2c`U&R&y@)}rh z$@Dpq($8RrA}YyKK->2>6*isp0CE$G9rQnU^!Xv==JS{TXrc3e4fp6^Ofx>?NCpWt)uXKyALo7-=5xFB!y%;^SY1w(8 z{rQt=$vo(0X$MN=XJU#*oobs|8)r&>!UndP=Q+}E9Xm|@gyw?qNO-z3&+LJ;0^cUF z6LTc#zxmT!9%VG4a~H{MV`xbBV(vv_rzr4BsgsJJ@0#1Ib`KF=)*<<6v;Q4P?89la z)5*;G;@W~aqV36l{`q)@SV&91pI>Q1Wuf@5nQgwt+a4w9YlMeg1;76Jm;W_?8G?Nj z@;&o=3`Tgh9FSC_E4xmi19)pZ7I-pYDJT8k%NN%)O|8zW`?{+yS6Km-C+s8wcm#$#WQu-UfwU=Rwd9Yg9z( z&MyWw?7(+$h+7;DZQelg0YS^8II`Gz5e>Ems;fU~+kDanz&i41a+svbKBu8TR~zDY zLVH`{fmi;~yy|rdKE4Xw=0SPR!VSHxzdojw{9aWFFdM(|Jr2(Ag;%Jx>D0aXR?ra8 zd(^m%7kM~vKeN(Esbi9`;=$QheT(D%cjtJ)c&nWUIESyH?aO<72TLa6C4hRL{`n=0 z#2aJv#ywsi$;t{JgK<=r-^MLv59wQQ^9NzZZMxmU?WJve>%rZP;jpRW3n$k+wz%lt zs=`5}Q;933Wco~##VuZ8Q%Cn6`j;A%wRt7k7jihi>}O&2f~oIv`|6_jYMT`M@O=Lh zUhH{-(m`ShLBbvHhP&$kRn5s;kl+g_lX5hi$ zj@&I2eF41m>lg0u^q8DQHdE%;TeP?oDq_@TzW5lpMHhigInzZz{Vr>v-=RN=B;+a@0T{^KLn1PFUoo+8BThqk_8+$1!iGsvX`(m;a0HP#V z=-*h;6jxtAN#7*jX@(QKW#lWo*L{CaWO16v=TeJk_soUbuTF2n#v|+osa05Lqix4XLi>zhw!8ijc) zS7%><>-Q70H_^kq3IMcx3`$c?Yj^Kb^V7wR~J#U&~3=bxeBJ6uG3ewfVJO6C3ljln+aAw_YfvsDB4d@S>+?n@Cf4`6Nw| zGnw)zv_*tpxkvwl&+C;=O=A$9TaN4V1CiQ(zK(T~{1kt5Z&M*WNC>*JeadIZUyG=Z zEt<_07_RGcn{N~I^QjKGvqSNIPtdzdCzP1I+3PYpwiUE)tn)p3SE&&jWNErqjlmkD z3kY3l`)``VgOvMurE$QpIvz--3Gzh@98-{fnl(9hawq=X!qhyvD~5*AAlE zJgP~kD`R*n$Ql-xC5EpWg1S{xbW_>-wWw#Z_pN3(#%D;M!NSWTVM*0$!pzx>ObOz= zGe>U_Ul$^wDu;VoG)IaDs{0%?b=`tr z^pnLu74}9fiGh^dwN#a_^i0q1wIrgJ33Qew5>57A9&OxaD?vk<7A{+Zac9>d{9{HY z@NYkOgKQmL>1uBagI8Q@xu$36<|h-$vSH+(SnuL|4lUGKRK8+Hz>(tKw$oFjXXBdi zjI%l}voF4@uAdcqv&n6c`!a2(lYt+h0YBT;Z;#b@-{ocasazi4XFYDGK4NZ1cL~~v-%I7}hvV;oWvmV^m86$U4$!638Q1K9y4AoKsIPf7e^6Z1?8Zyr zqtsjI&1|-zp7_C8BH-b=6g$=VFu1j6Kb!tKr^Kk2*x#k}+r?BTgLJ@d5+)XbRQFTE+dS)f@9b|>O zUkwfPmA{T|w#P<5jRa@fyUvDaI5;F7x3(#=@AwFSC9w8m&E+T)>z4a0xR*VXxXq@a zB&--d`HRF2Yf1jfLq3_P69lH7AR7BmJoE=N1LV2pD`Yb37O7o$uXbpay5c&=^O&s# zHs5==wM5N)?8p|&*c$_-iz}gq&Sr`**C8ya3UM9A7w=CGK*C-ax>6w<^z3~Y_Y*5u zo7}mC>vI-Z>JNyWkHURBo4RJSq?LSE;w3;>k{;ozPO+VsL%TH;-W2U?Z+spBsmijR zZ@SXze=y=}tttY@>1Lk999p$d{}mo)WWdQ8z@%U1W6Hw0AKle994ZDZBx-BmO!gu( z7i!`AcC=2JYJ2=Hi0?#F%_~? zD|44!TIjHq^|`Z(96PsZx@*DIY8idIjJ{C7t*KW?0}!|$S~#ttg3ne;MqF1ZU!*lu zFP8dXCzT(u(Qw(HRO~yRURMA#(D=O?KVGByu>H%|r4M#jmc{`(>}UXDd7gn{7&tsr zG1g%Fy$Ig_66f`^*i^jh(d-7DzQOYN+UeA6S=A#0TWBYt1=&Q+upiy}c{rc# zT%c6BvCH=x*nx;hLz6Rb>YvaqI4Mc&?%`r2u{l%Y9Lnv*zZ1J9%?$RHk&Vko>M@M# zZ!d)bf#`Or+H;0UkLF9F&x#M8MzFoETHTHhSaO|Pu?LvD?I2C#kH*N=Tb=R79}m*b4~{b zF_Mk!BA`X~%E$7<_6XZ?60#o3zz_5|b>2F4Gd;M~dz@w0F|Jz`+p|ZH@8g1Nw{_^8lwg z&|H}(1{w|Hk%t$*!wALzjo^=4WP7Vq@p%Nv;Jka5KC7Axy1KmV6`MmqtCj@=H$7D2 zo(dk7ON17+gFyhok$ezhGZIK)O~t{`@+c8W9mw_3YueXEiB>!cs1mg_R*|LX}t%HwM2|N5O<^;=u=-& zRmMD&2;cMS|8RMxu78j;x6S36tu^du5^3oXv#&gZK$g+J{I#s=j26cDtD2bDCy7i0 zBBx~J-|SaQl#hqY(WhEK=`m}+wFy?l4@Uyq$24sNT%#UsZ$H;>1je=@DwZA1<=3Ol zwbb{o``yK^%O%bU(@qTppu9LZ-v<9n6c_wByZuu{9B(JR_FYC8P8v_fyl^&2Yg-`6 zY}@O9p}3E2NLC>~o>BaahXZqVOiTQN6@u3d8Wh_l_T^1LWAEPYh4Y2oVMHjT?P$i) z`o-4c7HjWv(@q+fc0c-THtckDWy=3C2*}T9DfGVd!iB%w7eGiHSkJ2v9(|u5JOAIs8I8zDe{K&gbvSSfv588XLxM zMXvJf*kKngq4E?Y!3fauy9l~L|5nRuaBJzADMaHqw?HOtMXD8fZf~Goupz!nLg!mB z_a&FBdk=zTh`Hk8lTogOT7RPT8akOLQx7>b!T7)NHu%tl9kr0}6X%NYaE9N)PT2WI zYJ8@l!BJ;WK-eL-n3|SlRmI_oeliPNNT@~K*vPLgY13Je=e0bdxpre>3n~$ z1186~_hwn0m%hJDIGme!J|oi4s?ebIbw_&RSFjOv_S>1LUZ9lDWl<6@{;`4c`G(t= z_uBn)hHt7FSd2DbzDO<+1?6wuigp^H#mv1Z(mQ~NofPp&WnUpETzxTdO)>SOH{F5t zaJ}<$t-W8j=;WG2i#K`OQkdN{o2E^zt^KD4VT%YV8}0z>tlfh`zrFya&Wy}Q_Z3j?7O?0N*&%(p*a zMoqn-O@1L>mrW?oIln#Z27lk@_X_n?Q21fm)nZd+0nMzcsGp9?pd{4lGGyD8c-<_* zS9e8*t9rpy#((Dt!mRW3k`~76+y+ALSNylA z4Xb0ybG|iW59)|0e5<$p^+Vy~Pr6A9;fH)$)M#zauzb!D8cVdDoDf)Pb0l&8lp$wR z#!Mz)be1+brc__Q^Oo!yRG!9|nyMGPT>#)_;uFP;eA+l>KqrI>3I2r>jXPghX)4ot zaQ0(%n%c2CZfv{uVe_jt!N>C2bKjlH%|=ZCEA!7I!k1cQT7s@L9$)fy4LALVddMR{ zj&gm&V%X4Wyq(-ikP7A{|GxgUrb=){#hhG&@$I20!OWvJcJ}?{Cet!s@d#mVqa(Ba z{xBg(B;VxFx10*5e8N0VQtdoO+DPTE0^sfSjMTbCX*8oL*1!4yM|U^1#?bK2Wu-4j z%=tZ{(W+SdU(~&ITvTh@u#Jg;ii&`OfJjM8BPk8i-3;9!-Hen-OP4Ux4U$6+(%msM z(lK<`4Bx`N@4fH6pMAgI^Stl-{qg6OJ=_Lf0vsW2QBxA`O2;Hwu8W6%Mo=wkw~A=<}}c=LLIk>yyNo%_4gR6hydkc9=j zdL*)V<2T%N`!K9tZ*I@Naa&~f8W%LVCotXOx>K7Jdgo6$=_a$nf-2bQ^`G2;t$L?u(ivM^ zdVqxuss2!Xu5rd>{fFz86u5A!0jQXN13X{oes|}T02B27(*MDv*Z&*9>oM`>LoLnA z4@Gq2+Sic-JV9W_LZ2Cb3t-0N8=1|aR=zWUX9a}xo4nng!Znxs81nmM-Pa)H`cHp{ zF#r3rcK_oK0)+6_jNq*1v6g2v+zq?C30QIY7Ctj^XoIhK3Y<3|Jg43(6P+X2grUhv z(&6W4=$?>9M?5t*H!m6+X(_jUzDa!j1IBNGGZ~wDhkQ{JRm@ z(Z~1|IF)}R)H3n6<7B@fi$cOGWBp8c` zy7F%ue3Q}QrrkKboo4#`9rtfs9_?>5_GfOXs**B#?KPt>dJxp7T37m(e`jq%*ZKBG zIWit#!gpAw``$M7Tf@_C&A8BVW{?s|M~!`7R+qIsp9gYp+|9fPW+d43b=tN#j*(b_ zWOUi&2qK0D=4#NPIcVzh$0+M01o6jB{@4QckV8~XGFNS7xat(qvb=DTSfSx{weNm) z>M|>o%i)-T{q_h2ax*!=s^sBuKTgyPgvDE2HA*Z(8>X1{cANBo;ZL0dhniI7>>QPi z_TlB2Y(^yle3B|>5x9$6duF7oy)zvLpYC}G6P6o0W6xZCIm5Wno$EQHael~qRhGvW zXeRL5ES;K~gO&R>V&*zUS%&1pQ=K(8zTT0|I@(eNc`{P-Nxr!8Wzbb!_=YL)w0cKx z%H~xvRp@+>#6+Dub>vignvh!$;4Uq%gVw>auW>t~eQ0v(xjV0p}3p z-rW90n3dPwW>)c>J^fpo28ZSMp^a{Ai6%P^=lBKBChRBMhYowu93C*j=#P|pVHuZ|$I%@Z#x1fSm9_lu@xbYmgjPr5TY7(VLw7xs_Ddr1@c1#Y z86IZp9#nR9Y1ss<+ETqCB`y_TujuKZagO?W zyC0SD*k-9{By33jiznD7^V8l$`v?{GXgfTVswCbuj<@o!T!&Ty(^4H>`OthG)?H=^w!4$8X&yH0EK|!^4PNYQ1rs6V zKzZWVb{yMddnoD}n;Gv=0RztNt1swNOLTidWI7C-%5tc)jJ|E&xB2W3#&@qKYVoUH z7nOm3Qr*yYF;nxs?Zc=luSV(^2rP}R{s4mjD+#M8;w}vhhVbKPyb)2;NS`bng~u84 zw0lp)>mNO-J(a~3atK|=O#DoL&qaU%S0H0MOG!ojfS(1c`)2L5(%sm(6BZI~Zu^xU z`-cyB?2miyE1sSYI;P-1fg2+TnQ|r~4r|4RIEVQLAdv;%|Q_60uc6xJMea5eo~l^!Lp#Uvx+TD$-wc2j~U zkB3!Utp-c(DZ6b_El&#doox@l*wjt3N)ZGm1Mshgrly}cuA zycDl+ts#j42eD*7zwjv`dpo;PXv2WfHebRk>eyWj?x}3*_Z^PGN43RXayr@NsOQD= z{CP5x2cB#*MjvXzbYk%arGj=Sm{qqywqGEM+24usJ13_GpYnIaf}BGe7IX#AJe}uW z=8{NA_D+D>{m8oCuElGNaTP)AzcegpBvf0K&Pv{S_Ug+r_H*{ed3|M-Pf9F2pvY=y z3pewKboP(ddTv7>whMi&1Xr@G*x9{?;L^@1FF9`5cEdJOoxKJ}{sp;h>amnw3c^O^ zZX}DHXEV`z+fxD?TH{cDn~5OX_Y-fknwmnwyQzw&aR=QP_DE)N2*akWjP#>F@|MJa zH%KmVpC`B;YGhJ7OMX%xIaf~X>b<>_(Kg=AoEdZIo4nK=`R8#V~dBj5g93bw#-8nTRh$fFGMSc(W3hEjjZ$3Z)uVwD8WtbEA^}uLI3C%eR*bE z&1pSLEW{Ed4U27`I#1LqT&q22`}%2XZE{mNZ=n772+KMZj>R*$Rp!>qT2*AFp}!MC6o4_7NZ2Gs8EG;I;3M0#_qG zGae*@uvxhe&W_Em%5^Q$ST1$cwT0^1xXk#I+yaHkktC|?jDo#)%VhYi6m{JDZ1hj- zwrX7_39Q*^Ty;{mpf@$8b{{_yI=DdxhMF-1+?;i%}~J z73bP)%9Jl5G(nHLeXvi9W0h2y1EpHV+!zLOIuPr9pRHY=Y5ATEZ_lCCsX+f?ys~h` z+Rx!Ua$?3gRnQ&%HV6bsnxeD;#ZMnMPK4{Qe3(%jVC>irc$7lUL#`2-tWC1^Iwo(W z5PQ=l*T#6L-|fOXMRGLb;z4d+fB3j+{@QW?r*Wv-Nr}J`IDt`x_P8gdaxbetvI^Qn z(cr1$a)!_S-|Uz;s=C)*z~u1Oy&$NY|8fP5;2iQ0?G1ISXgOrE=F6 zO|Qp^z+aozc-b8nu?}mp)--=}9mAi86f1$~sjvEr$LQC*(qy21jl=hHtG$-)YBQdH zL)3XBBDoLG6ZPcsHn$_rYNj&Mwol)lE>b%C)QeW_vM+GtOF~W7#lc9eL226 zZP$vde6>kOWS{@m%g_E;uE35==f5HOe6OAaWBLuZe39I-bD&sO@1xegaq4W)Q39Z42IMry)&bQ zQ>@b3*x$AD+=47ejwkqHja`eNU3_*bCw7T{m}S2eMZim(mN#GV=<| z=F`o>Obk@bG!AH$!YQKcnYklT8(U3ZKQ#ZvEK!J#N_3O=$>3`0%bfuZNbk6Sew4`8 z)d}=rFXuNkn10df!u&T#e+?1u*b}0rCyuQP1aK;7$uR|TiUAz5>eY-x2UIz#~YU6z2CXQZ47?q z`I?v+q}$Z`XNIQE-xmrv%n=zaP+3MYrF)#`LGPSnI`Eo>|8@~|19l}9n%G$Ok1%n0 zV>LTI`57hLVQF_pMa5DSuc;cL5xwjV@Os=cS9du=TYT=3an>PaJ5epO`@!+y$4f_p zCcD7if{}iT`g*BnY4mr{o=KUe?Hu;(N-x*SJJwPo*zMe0=)NoqU8%Vh&uU&+#H8(s z;XZ$BxRT#9F{D;&q*neE=+=JXFg)9RB=w-bnTfeMI}`Xs_vtRVH1O}o0Op~m7|OH` ztv|gX*Us1))6j^pBdFK$>2!MXyV|r1W@4wyS!LtP0bF17QV(E@f#zX7hxySYEwM)4 zNsMyZ8b%z}i3r3Sbgb(ip}SsQ?C{HJjfsb61mbm-7`L~R$cd2(jC|M5B@rQBef_~5 zxcoa>!)pritv&Atb({qul!&+A@ugN;Z}#<0+aukZvmYD?L)alsH-T-r>n@J>7M5n9 zz&FBMDr&fchr+_3Wtd>wG$^o)(_>0((CU|OHN^~dZY+z4VAj?-5~4R_PD+f}(@tru zs~*Y{g$p{}w~7dv-iapit?RX8CvJ{+%X`#aIQ@9p4X*nF(4!x6agpu}nmQ_4o)8`BE7{`5ye4Yzak zL%pgWzXPWK+eh)oxnyZw<3coFjrZHtmagiyM_can=0yh2Uy?~n^AL$jdd#Tak(uYh z`{?DiAafwA)vnv)WuC5*Pm(iQnch^6TEWAZ3O8D)|0Kgy{V*5m~Zs<9oi8+(jM|14;Xi&f9!u zO)hB<;Ph`aI`&BzuiMlchhFgxja{%$%#En(hkh(mVJZBVCqp(-LT+^GgS(K{=X2UQ zC=NKOeOveZdj0&cRsnd-lj)Cuz6+0@wqM*T_+%d>JGe3|^G$oupi?hpL9zU-9H%Pm z<|OH_;PRF(8_hGyEOB9O4_T+H^!$_8#y9p>X+j$^9o0HR#= zz=i8Q#9Iq$yrq6^5U$x4i|~3_L$~g3`4N*aC@JLssmd=f8iYW zd2<|Fgj$Dj$K}`;hl*^oGdI*ntrT&=_NwUCw)`@zqq<$By;SgPRT%IzxckYPc*oFc z{V;?=PthY>`MHB9aus|d>`c4BiVgaau*Mtb0sY zYl6A15i+AwPELOHrT)81I)nu-y*+p@it22IY^|$qwarrFP43FvRVLzC_NsrQc@Esi z7ouQ$g7S2PbF0^5RfaplXFfm~NKuA~^Ee{yw<&5vUq_J~b}rTQzWEN^^^e0~`nDDu zbSbNO1W-=xnlb*7#CSdmjTi4v&mWp8jBz}cq?Kgp#jX~~G`*B>b?^GrKMcmyfccA^ zuye4#mM(8q3OXlI&XS!_+dGU_VtuVlR+0S;ohCjwgam;gbn&p*a*fB-oD2rCo$ry< zv{}?%67Q?FMQ5J!+pXF*Wue@#cM``=p7f&lKd4PM7@+?cDH#(}g?&ScAGr5o_MQSg zmYbEH2V2X)M7mIuW2qrXooC8aP;nZ`tN8Mkm#Zvq7d(o%?+{b>bd&f<(VuOZ)${0Z zlA)C1n1d7_M|rGd#paB+)bOw<{Cw%~xbM+DKNS{^u0!6gO1n9IfhLpMTmA+-Cik8! zNfDW_pPPs6Kh?k>V<}#Xjb3T(dqx&d`sh5w7DL9wY1FU>(%3^6*@iJGsPI)b0YRrr zlhOLZn69U;%W)2X$>=W%=^go<-tWnR@@5~uJ(2$^Rz*cy8A#Ltzu^7x&F)yEd380v zGWoTm_JvWlzjZbi{XnoersvXoK{`;V?T&~Za_9*@L+Nr2_fMvGvHT;fY#n@3r#Wxm zytlOaeqVae^OaGMrKF+lQ&4XJytpwtBFjSjsf|2u;^zIBDU;Q`BoP@=GCJPo!tYa2wkh zyx+(|;ZjHws*!&L@e6Qx}5UEKbAohKD>r($4EiMd`A}LeEJ(U@Kf*+BL4J z`rNhTZV2j4j#_hf3vVAeV<88rM@b9ekM7VH=riJ)4$WyauS{ScAkjWNR7X9EATl$e z(v7uc(dmBiJf?CCV)HFyK`G=lvrS)LnWjmJh|MiQQ>CVTGy0|mOAYhpqDh8v`l6c^8G_te}_q)l_*-&RsvT>2Lo z94nHyK3TE(Nmx=MEiYI^2$W9^_IN@yXX6hmO?kA}f}9NI)HH-ys9|v(TGilI0WX>4 zCMQef>>FN*3+NO3h@w5!7gDbqcD4!0kI2k&-(DcrU>BudeZz8%Hmmr``argYJ=5&! zJDE4{KaPLRD=a=~ZDyqqyK1BHjD3+LsR7Acj`)D`A3d<6C8R*tRP@+T(Z`ZGEl3B1;{(#()O7{|#9ms09`Js1ybpsO209E=TXKb-x>xf{4X6=BUq zedTAZqFQ~XFmnp(?YhnFHPK7LMw{$($PjUTmgGBshT&?N!Q; zOM?V!QjYuETsSo6?YGGrq_Q!0ax49&t$6yR1{irXImTwjxI&3L9K{5#UUrk1)6vbe zbYAE$m9b>Tq)OKC1n$T7T3FPvu#2{wgTyU}x^1jU*&Ea-)2KjKBO44kw&f9 zSbKh#rA7IfoIf%j&W)FdNMQGtpcQI~!10i>TRkUPt+@dDijvuk$Y2zrgvJ+@Pt-d1 zg>3F|Cr9)$!gi7U;7;kHsYy}N!511Ej&(jEMai8u;@3$-pGA1IONjEv`6{jQs|iV$ ziLh!e7?ezR>{k#7d;6)SEv%?1KF*6li@QbcnCExYQC|#=8(DTcq^_z)B` zWjNjJs%c4&WflXQhLq{7FKlXn{`N}3o*SosZ5eNFDTL;^yq9SB)U2-&REEY(jza$WQiX*t6vuKEmtB-CW{5b7r(%LghPr`e! zE1al=Q{|pCp(2WE+hl1*X6DSuVXI>1$A_je&u9QH^jVH6JlilXF&O;`o|nt0*{qUp zaWnyRsRQ<-E93j;#lr^Il%?cHWuCTr=tb<%0XKsECpX)ws5&*=I8&#JXCEiax-AO1 z)(2I;sj8wKGSb@Jo+J(Y2}rZ(RB?|Xmuj!jViqr0+X87t=zgbwv*a(zY-B=p>F(#G}hU%O47ePvx_X(sE01O z*6+K$rN&O_7H2-+79_Mhds;g_bdX74lJG+}?#Wcp)09H8mTB`a5E$dQZHmPlIroSKvm*p^^4#5I{DYdjaBbd$gImp zg9h$zSgfoC`{2=JfflKV$OEzP2ajIXh*gvLo(oOjI46P^xb6Z^EkZy-cvo0SWYnik zw|P-m<4PNQqlddtydA24_96y;VyB8 z;^?=GJH(xVoST@aAYWwu*;*I=i$boDX$wB{yGH@9TaW!`HVbR*Pb6^KaIC7r;HIPp z1bi+YNwDP;0%MgiV^7`|!Bt@%Nx~#PVxY8NRQOdx z{f4o1K8UIx&wh0nKeh)`p3C&#pHqSnDnpY>t;wyYGH|#m$8) z1W37}{!H_HD7o#3R&>3AAGyw{&^{7B0iA>tGujc|IWeUgC|ZN{bj97)c_?d7ME&c7 zpIn%x{=emnYPg)sc28n7mUGloKZK`^xW@mF+u9vbl40Ob=w>@b|UV&7FHO3=H zL66}cpWB;9vc7AQy>#a2x?)+VRDz{p`ZbH5NUB`zQc^4Z^`5Y`Tn7HC4 za`1+MmDth#51_AZ-=`WgLbF}L^RwphEyIlUC?L`O))`j+qP6&sh**0M3dUZ!T=)1t zrZP~RXjRq~RGlB!$IjcaY>O-6$Oa4oCpa6jAOr!PzHk1Of}o)R*$DdmmEWX<|9HvK zbS-~fC7?X=KSkw#xe3s}|2V(g)_b=|=sI9OLjn`-z)A1p1N$C{Hz}+JBrqTZEI^iI zN7VGe`}wbWoc|K||K%=zYa9Q)O{A(HULVHY3Lt-)*e_k!m^#rI(Q0P~a_&T+rNo}r z6k~pEa->5;9{!J_*yJdD3qTUuE=R^~aC}BM`*!%lXBOOfap>0E@`?7aybKlF;^iCg z&}Tp<3OW3~h%W7K*(Wl<;C?R46D>cJ!iFP~OUhDzgKZo^%HgN7cnXaDORN16FGCoV&_3#=?Z?^)g=snEenPxM3kju$-*{L28uPg2a>ZaBmx8In zA&CpDJxNeP1ZS!cjU}Y~+>JFmQRS#|MUyj)|MsM6O-<$V@HcG7@2t1cbngxIE+!Yy zC#RHGa*?{MCwb9{)4u`?{@Aas13S5X|Uzj>TSL3$Rj>EB9- z{90{ov-38r@7R- zZ(#ww-EW-4tGJZ-ZAJWN-K%Gz{D#)2FD-{MM|Ms=J^UmLVGNS=YM(=#q2L1!`KY$~ z)WkA8@Htq81ckCc){73RJ=w{B z0D$k52^I>~kpAV|HpSolKxuh3c0=Q?Ho_}}QoN*<}_o}AA zB#{bzCw9zFwET+QQUyp3{o0``2b1i%(MOp2W(HBd451*jUP`58TvtR!3bP$#J9@A)Y6>IN;-i)HKh}v`*;3J05zQu@0K=?5#~q ziE)`ev(&tYQyp{?{h%Q{)k)L0QkHcp0n@d{WapWafp4i1`IZUq1(#T#-^gr#a*g)I zEoQbygj=(scaRY7&<95z$xdd1qgK?s#X;G~@%8pb4|1!mp*eW~%_(FR#AlsSP|w#8 zIx1dvB)4NEo%0{&`ni|-xsO*=-ta0Sv>E?T+3R^q9`#{_CaniOkm`lY&?9ocdzk?* z=84%j+Zoc`4m};zBg2gtB_%h7qy^fgKo)<4+bp-6o-_2Z;2CRKjal*^xqI)PWLJnO zgV|N9IMWj;{Y@7A`63izoMg*b`$SF!h`IH&ZH?25eFsE1g?>_(KM^(78GM@C8P89K z3RYxls?_#&@6w!f?wwH`c56E$$!_n}^+~u=H_HC5S(MeVA>@qVspDXa*Ei#+Yy$GM zrgM)TFbR?Ta2|6k#4Kd27J8tU$S$*XF-t9ikXYVpYF&4oD0VH~yXWWg#d5}Fq2Wt$ z${5~8PbjlUoSde`I14VqK;WJLT^+`f4En_`0C(PWw+0Tb5#d6%+ouSgf zv;futj%I)`9feaA8o}m-Pd*V@51dh(dg7Yc+5lwT3;qgc;iO|zVM_S37w%nhOl`wKOr z|B|<6oxhl@8GTj%88L=%{-@+TKZu#o)Tw{f!fpINrL6<6G|wBzgaxqj_2YBjv98+` z>K$wboOz*f2GD_b%Rt{!I9DL(;gIB#mSwy$Fx20=1m@nfD8`>THBNYCHnWYn zB@gMQB+->|L#}c4V+C52u^Hg|?*z1dJ(yALVclwT4%|k6WnyD386nYmUg3%oi+3Ri z9u{7GvH}AOxEF1nl1FL{qGUmzhVfL|4D zCmwPvhJ}NMClBOX_ejhQSe{lNN%4oDFPgAnoVOOs?pbXbx!Uz&FF1G+M|?&~KWJw+ zkz91PnEos_?xjP{$cQKLQ z9@ixEh`1rqWG(Rtt#f*IU-apdCcUrSaNtNczTilx1>9Yr0f zj{*5!=9!r0rv+7OxY$5nc6^V3>=B^SH_BP(REM?iW+T>&%pUhk0>Acigc9X{4H-UTs(h^enwjqlQ2bzs8{+( zdJ}lI>*CavEp%)I#_{Q#`t(2JhD@-|6q^zTGImMvEk+#faa(U%V!`_Jdb_s{oV;`< zto&b<#5?oUvK?4;abLzPYtEyLS$C#ug;t<6Y~v{jO9tlDsAdhY(O9EaQ}e0WgZ+(LHfB_D;hKq0yHcW8&y!-j zmqNaFiYM7Y4Ozv9DnA2uvKDzRNl%^>lCF5`CA6dE^$mAQ+N%-%Q(9)`gL0w4;=~Q$!G(k#Ye%C~d3&E7=(~C1F5>2tZ z%|kkWLu8R_V(esqwe~VF^Bf1#HQ~H3K`ev$xOBCrlSe?j929zZUr`8|pt#JQmSDv@ zSNp3848xy7Oqq}9wqEJAUj{$)5c^zzkZ-V7v&+k#N|N?fl*OJ4TF10*HRw_^fV|!c*%i|{xm3i~TqpW&vPZ8( zT9;>3IXqFA=x5mq#y=}j!J9lOE{zVx_A{XbuclZXha_+IG9O^G8qmGA>SmOligIRY zF6QB2`A{5ivS2i;s^FpRVH{v36&E{_?*Po9F_}L$rlqMU!Q+SHz@?X0Oh`>_(+$72 zGV*n=tqd*NVr%3Ydt(Li&HTYD1qBCnkknS;PqSv&M9z|{>!j(48enp)amTKo*~)Bj zygR7Nb~}7gtsB-N%D|ic>S(`C;p#1^BGSsxb#9nnjp{0IAM{3SbzdB0Ni?dYLxuw` z8diW6i+?+F-MiU}qFL_@K8!1uGG;L`uj**v0qMvpmGV?e?|ub1|6I~_Xwn6T&l7Mq zxie1_O7#%fDH87ggTviY6GwI>-_wN1IkIPJ-uu}e3T6_Ang=)&)`B?A&P$rXIa!g6p=dvk9P zzkQ>56?OD++U(4{7vHYeT#&MN?sANLChZcV|B)Ty@oj$V&XORG?*5f!B7P@MuGbOx zE&$&Lb1X7aPEX%|AEm7vwH?<$gA5zEjCg>)v?^j3Hz%P*s)_ImafV~d4d59i5&4#vp3 ziD|4|uj-?J~;eAJvreR;Ebbr5S|)H`6&?Aa!ip z@AcC|=0M)OZ36yWIcIQo^${<>LRq$$eUqGb$)$j71R>LU<|q-db!(P$;>hseY+whL z17%qEzL8-~vC|WM_fKx=qRs^2!-#|Wey~^7Ps453a424Rmgjcgv9J}t@+PCTwlK;I zm1Z0MdP;>F*F0tF@J9~zkc^H*)NA|U%$dHM&=O}ViaV>5?U#sy@R);?6SIqjv|Ygq zp3@bqxwxnj>xYFT-Tm6;4c@71=+E~ah3x<{%{@FO2Nl&5dXIF4g9cUm#%8mG`e|h$ zX2IE09rd8c2N|W|hRhuNAi{Hb@;rVp`-x@XN!`sKdP8HaO@*9Gp2e__Y71jbLIF2}!` z>CDLY-Az43T?Drb_4d}(lF?nN`e{nS+l)#%NLjB~X!VEv19un(QEhor7s&IQD}=Kv zL7N>Fu9v%V;H~jvRT5$19KE5rHY@~uGY5iN@zLSeouy}%AF5jo{Sv)-spvXEjdhEU z0q&ka7A=f5We;Y*Rm|M~7##QtbyHV*^y(rM=b$Ds%30R>sOf;3bHjT4?kIQx1RhJT~g52~nc$ zyT^pk^X2FHY=lzULi}gUqv3Fv^I1@J3ir77@j~x~hVz6tyH%e%g;&YTn4&77-|$Gni9 zYhp>!T15dOjy}|j|H^LxpTo{*FO>Y;O@W7#c2%eS6#p_e#qL-h{bcrjh~?HZR`fDH5wCR@u$i^1*dBFt9|?^vc~y%Nf!q{IMsfn`nokBr8kbzk)!M zhc&6mPP80tMV1%efn`B14)(c=u+3T8rq+Pfu1f+mZLmC5o)XMT;voBEdu1hi&H6{o z(&mmvRf#x;gh>`p+U5hfd--jNe3>qCLp2J$zNt)wG4Fu2do+u-9}C$q>g)W-ICw}$ z)GJNH5)A9D(VIOKChoR~ybn9i3;5*h5sLp7R}Wv}IA%Ms8D^5#j8$en1aes)zC*Rt zy_KL6@8CM4Y*W6bbEShcHU2RVV#Xz~e9ZI#k2iuJlRnRwt-k>2rwtT9{e1lW-o#|| z(LEj7OxL15saps3c?8krKgixb4$y7{*?tGJk!YX!q$>wRxc7?nenUOV9EW{Rs{eCr ze~*A3pwL7-l1bL08T52k_sLy7rS}qq3JQA9-J}>TR!-_ywh8(cr=D4A^J~i2m>hR2 zTnV|u&(wx)*X+ORI;K6gIeY$@-)st_?!;n&7ON+{-iVN_KI1<;md09LZ z&#aYZth;JLzY-GzUdEfJy_3qC=DKm7BOICX*vi$JCmZz@4Jy*4!PM^x${p<~a@vR*}#%24LSgO#K@6M8D9w$;S5dGMC@{O%|tX4vO~wr5AMl z`}fTO5D8c)t)tMLik#{&qmLo1YWd7F#Xxo~=nqrUe;HK+ zY-FSsjaL{dccoUi9`#vryPJe*U{=d=QPo-+nypL~+FFF~oF zwEh`TUIn}UP-q!JA2pvylI*oe7ES>eHovT#>%oA4-v$mkV&nW9IR8yH0|Wx16>8Ys zt=p5hT4FZ}e;zOe1^AxI&uDv_M1$SL;NMD zX2+M;{2ev$?e#bg`*3@gjPCN!McRqih09#uP*8FXsh=#AsHYbKDV*z>!p6!8^&{;@ zT7tyz!3x^?=a6>7ic*ps}G7@iFyM}?qR`KT;Tvn zr$HvYP~DXuBOH5{1uhwZMbnGx(Ps3yrgC}W@Gb4GVMW$yv(yF~f(-;ceIZ?M4XPpQ zm)m1>{?xwaVf?O=VMbX-GtOKxh~t1tG&Hk zexhkiLP&Y9=4-iu5Z(B!>4WSF+4#!*1kyzC8k*d7 zwzm+M;fJsuk=`S7CZ@97C_dROGV^2{1eU`L$V75Gp-B;0cseX&O@^~JzzYUKAPf!^ zKsRnqrw9)I;BMScj_jOTtu8#JIVbgzki2il7e&^$TBGMHLF?P&f7SnEsE*hHWi$d=E+YbM8?dY&Se>tCNyZ&_nNMoT%q*BWno#!qv z5X66RC)i~4in@oxO;*Q@WCy+Qlsw(qO2pC3z_F1Jqcdb&rNf%x9|@ze`}~C-6O^Jo zNRrS(a^0y+JGhy7y*OUI)?AhxMVB6%^*KuLlrd`1p-A}9;zGdfRnk0BJzgmBa zV`$|h93u6__9BekZ94QkLg7J@W|TW$gd zwux(3tyC*4!y)1VL(`|44O|NE`iEQqDjLjN>~8`;DUtz(k|b?{=FEy@7@yK(Oqe&) zO^9(>X+;6E%2ZOe@|Qd2i?}_8(~s@I&IMePht5svK3(N-(f6K=I>f=&xy}vQqaQb| zS`?*EXC~p(RF+AmK~tK%%JM6rc(3mnu?x4~E}=%97HrXb(UVWX`A z?}r=gjoh?h1t~7;i~fwKAteV1(!)qh<>D}4;zbHU%T}W`ylibcvDAf|sHf7HcS@Elj4KDqF4w1m=*!}- zC%9&$#e{`?FrwPn1&~j~Mj~;ZdG^zQ;z7Sg2-LEbGjsC=_q5J;s_GG1YO6p(*)j{y zeV%&K!B4+9A=`sLN};TvS2ZUl6Ng52p{46$O^aqV!D?qaG_>MJ>A*Tm!(}erU}#?e zvbF0^JF5np?H1a74y5>A!arA|Irex3WvDe>8o80NS6-K+rPnUD%v#j`dp%TWrU+}) zf_q?3%!TTUrPUE?%XSqa$GvWBqjTE<_MXl-E# z7Q`hkysO75>PUy?$0Kh#u<6eWzfCUr0hjuBDfN*OC)r45mJlJEp_FkqMx7N; zidJ~5iPLzSgPBDAN@OZZg(7#N{*aq(ah@q@!Ua%&`?t1AMB-)2-f;yeU*a{CG0SwTwlQ|%4SWx%7s zlt!4yeBX&)FzE`akeyi%>KrL65B5u*Q2h6@GKtfAzN?>qSX$Y*TSa`k{|S3;8R7Pv zoSR))Dt!SOGgt4yUW&P7$4uK|&uwH=8S4eKLI&Z9_NL?K_7thV$vQhP`H|l^RSOj* zQfXvN9a&&99ch4T6AS6>=JwkB;2`&kaaXqy56mV#u+_?B(ZXIMas|z1dL(&OI5&H0 z)wy0AMiRU2YGpCh(vnUUR~s3`Tb6BAw_ZlRUHGBX27<4H@|A26;(%nKXhw;WALQYA z&Y8vYY}D$Wl_>-VJqcO@^HTQC;GGR>z%z#5$}cMQ(zmSOceD2+20$|W;1()$v^SLh zV0pnk@5y3YPa7N0bA~ys)V#&c-FJ#gk4e#UuP1c>_Frqp2ny{_v~vb#S9{>_)s@Q5 zDSS$(=ZE8T_asCxv`WV8#3(%nb=)|DpS9~{P0NAo zzpAb%`1iw-vgB;iHX;C_sxu~;3Khi$AvA0+-k>%%*pYdU*_WI4LSxudB)2Z|>Qb2d z)&%$>Q}EWXJA)hMYb74S`2y%#>G_5j%dN;0ozL%6ezK;#rqgcK2U(Q>neBb-$s1^I zHV-q+#VoqzB1}4@!uc|el0%-;lV=oc96JgEL)(J}f{bWxnye#}$*4@l*BE-m4>pSS zqA(p#oc~sRwzlUfVqoFK7(A;z@}rKqGFRX@JN|TWEVbAoQc@OJQ?#C5L?z!mtCl@` zbKA8IM&q6k-ks0gH4z!K)6gK!;>BU1Ki}}mV`)2cFk!PGY2{ooAM~iEV3g-WTL^!m zl1}Ypfr6u#m6ci76^2g8X%I3?Sy}M|3NL}VG4PRQ?G=UUQfW|S9y?DEz79sLbtG$c z!}Dss3nd+|?ei}`>En)&{<;LeRcF1uh}n!+#cvn4ScLt{!S=p@Co{#`r0?qeqxCTJ9dX8KDiK@B|1M^53Np(ZqBMbb2EJWuo z?5cs9Pv{v>=$Ax8ulTtWc$Rt-Ui7_H-KWdg*UPMr|JR5FXUR<3cXz0%zN)D!UtqwhBjzMCn!>NF8=un3GTI; ztCf>6j5O>MIa1kDM;m$FjAHwsth-k&+KBNJdDq`jQ$o`-r+`q&3ssJin_9 zAa7g)8G}s`V?tacGZc+;4b~h0Clng>c3yC<+SZ(rU~@)1Q8E2A+ugD!Tr*)Ycr5PBkD3L%+N_$4iQZ(a(1Wp8(%MK zamG?a01J1xcrWT@Seww}CS|<^-R`&#vTH#Q|OfUOj7b&>!n`)xZ{DAZvv^ZLw zkvHK77h<}_h;QL}fIk~_2Tip7m7#^A%4Rb>{TG449?CVB8@d_3B>ckZ4)6vRs~@0Og*oTvpv*01sUS}_d( zgg_UdPwwZDjZ_Z;f_SRKB3Qbav5doZE}=A%DDiD$-}#5?eD_I&|ssL93ojoWA++r$1r@&mp>aoL$4rVSdM9{*-Z>bCmynmC~W8kbN+Ld+3a(%QA_ zryKGcbVB=A$wr~Sbg8YmszXz`n(RCU<6Swz$(f+S$AHZa= zif8|=00yw<{+dq*w7_|RdaOSy#me?6yaB07ORVcx=@?K=qw#w+jmjOFYOSfNtu@!8 zTk}t>_^x-#8#_(NXBAI%{;$d#Ufb+5sv?6o#{3oX`J>n)=2P-3T4Dgn8_@i}$D;mO z8q1OF>J>zb|K>0SQK><>g(@A&^`QT#wOhz7Jo ze4YA)y`$FdiqMPnTWynJ8_V8+Pq*^5m?l?w+QRjRBiY>!@nI_7%~OFWB2^gqn)De^ z7YAY0;~D&fz-|=`_pHX4+>rj1zp?9Mrxtosf|Xc53CevP+DXbATVQ(HzYwy+ zpmddl`0{pfdG~O3*NkC|9|3#zM?k-c0dNw4X3cMZ6aE0FwPfjy>>l-`$0P;-o3?(3 zO@IIiXsCZ$eLa;pnSdk+{|3}I`XF9^!~Lz6GQH}&5-4H(^A3r!hXwrwIvrNQ(}?+? zQ%=54g5lWs!0CSY_uCMSCwl%sIGH&0Ul8kWX0NZHeR^pE0zl2WKb8Md9R_ez;qup5 zEDOe1o&}q?Rr*-|pVrPhpsB4*_Z&G`Kt)7AKtQR|r8gle(gmc1A|=v0NR6~aMY{Cf zRhsl(LJ3M0kX}Ozy%Pu>Lde~mGvE2no%!yanLGDC*nuQF>s>qR{jKMDwxxm(S^b89mL%jXonHQt>wNm-Q&uTB)0 zk+1KM0H&gRbLXGulb!L-8+f z$6q-lF}CM;NSz~LpHL`shF{ric}NA_M(aWwV@B#<Qbeud2jndIn1%2z@pw}Lb(`J+LH&pIcAJx4rtkHiUu8D@nVQ35 z7br>PA1LV+f$3=t;TtmxuLDod{>WFtx8Asocp$T6V@^GoI`FoPLA8=Tx;axsn42y( zKT7gJl`XnBCzs_iGjPTK!K|h8LhCF#_RVxy9VcwDcj2Qd{(x~tq-dKh84sT=t%P^n ze3xfd6jAK+6c@F8luVV31yV772bN8f-3O=Sj(wX+Ss+i`;~FZ69O(HYo8YItRxYh4 zhEUSSnm`W1@yNa2$Vnc8kwHkGpnKRvE&H%O7$vF(NvGxf6W{#)tRRWr!iY&{axjts zA01Z_@mZGEv*FQkCU@3j5xx6{sTw_Zv{O;51$oM=Lh^SJ^_3gY-;BZsArc#1>4@IS zYRFX%+$ZO&YE55{vfR2qz4fpJOoweBez!5+{3LKml!&J10Z*I%LCI;QV@7J^QQJ02 zGdg4Wv;(-fNV`;4597x<+d#f~UJ8p-3eJpk>4oF$9`_;JM?`*ID7zaO86^`QUx(ed z64I#a()cQ$@Ly;Oxv!P^h_pA-_#ddK7}oxb-@v@?{(C2|Hi`vzg8iHQ4xBt3uVhUt2aHU%NTs6x_FTssNn5 zZ;n{owyNORn=EOf#hpzsK7*Kfz%22HN{@O23c-JFP_w}c8MnZ-)8dzL zwsk6KHwIrp`mU>Udm>{Rn86-0s!0^vfPuP66AC>A0JwqPr2fk@IbZwEdNw0K|N)Q|1y-*#^?4pbIObBEvh;z#Y zDN!pKDZ}Y6bSeFfVY-L%*T%aqr6*W(QQ%85^X*^wYH1O zT|+p!K~u-Q9sVw7LY7qqS!(+5Mm}*|n%u2?GoF8(6x@ z^q_y_%UoM~kS+QWF=nvswFTq<&NbZ)dh2K%IS#R&-V^rHGR8H)w(3XXZiod3X5noE zYdt*=^nf6%>s-P`84^E`S|J&n-02cOo*o?<8l5gL(J&l`pBuTr+^-waAUP!9)^F5% z1+wa}P04ZBJkH8fK(;!PTkFIisV@=_+;99M@_{)FJT{2(GZN+;!bHG&Lq>sEGsUr? zbJX2!OKzXuw8exq?K$a@_{jROj-+d+{#G09bwH5L05JmdaFxmY#4mk~Ac>0HBx5rV zzk)-Ft>Gw@K6;*J&05gnh_yv(ZlyqYCLj07ABpE?K)>a<==Sezk9aHa7*J3p3Xf#+ zbaK2vqkg?m1i5J;3|il}M;4Tqn0sp4w06_?uuAb~^~@hF++!Es)8%s8rg%yI{0K1e zv$&lOHmx=R8zZYt6B=hXBz761d}Q^JjAD*LXsqOa1z^NNc~&v?FTXVQC6$!)^*F@T z@V{`x&2B1`(AHu&S80F~%jo!U3m0*|A1v$=S}QH3qYQ=VZ13cNgkCvq|49qxs|mIS z+C8@E`hhD`!;9zHty?t;5pA`$G6{L^0iEvR65}zOOkJHkHKX~9o|??chnu3!7%nHB zhu6?x)-T=BStav@@t7#~Uec-uzJG8FbE{a5A4N^k=DFq{gKBXI!1t1ohSc7&cA(|j zy`Ho-5Lk(f0kly2PO5)-+ddi-0Vd0DRZ!ui7)eu=^ z`~8!%dUVz5DE3nk8D~N#%4+x9dIU#Nf-N)&s}R#=r<(%)1-<0hg~{zB47#?CM^#<}+wqwgX96jiSMIC;EDN zp5%ITkUaMhh~CJ!4rEI_{V&_$vOKToe6Myo=c#`|Q}=BA$b7)4v7p6>D~lJ*sKje# zxi-c2G0kkqE5V^d{{Vn^S<*|GX8TX!*9K?a85Gx|b+UHs86GU_xSn0beNqE@;z|=9 z_`^r;VUjMfOf*bPw|Al}L(|}cQ3o0_4o%HIf3@4)u*#&WHKzhO23Ymu⁣46^_T- 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/dev/null 2>&1; then + echo "Error: Docker is not running" >&2 + return 1 + fi + + echo "Looking for containers with names starting with [$app_prefix]..." >&2 + + # Find the container using grep + container_name=$(docker ps --format "{{.Names}}" | grep "^${app_prefix}" | head -1) + + if [ -z "$container_name" ]; then + echo "Error: No running container found with name starting with [$app_prefix]" >&2 + return 1 + fi + + echo "Found matching container [$container_name]" >&2 + echo "$container_name" +} + +get_docker_container_ip_address_by_name() { + local container_name="$1" + local ip_address + + if [ -z "$container_name" ]; then + echo "Error: Container name is required" >&2 + return 1 + fi + + # Get IP address + ip_address=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' "$container_name") + + if [ -z "$ip_address" ]; then + echo "Error: Container [$container_name] has no IP address assigned" >&2 + return 1 + fi + + echo "$ip_address" +} + +get_docker_container_port_mapping() { + local container_name="$1" + local container_port="$2" + local host_port + + if [ -z "$container_name" ] || [ -z "$container_port" ]; then + echo "Error: Container name and container port are required" >&2 + return 1 + fi + + # Get host port mapping + host_port=$(docker inspect -f "{{(index (index .NetworkSettings.Ports \"${container_port}/tcp\") 0).HostPort}}" "$container_name") + + if [ -z "$host_port" ]; then + echo "Error: No host port mapping found for container [$container_name] port [$container_port]" >&2 + return 1 + fi + + echo "$host_port" +} + +call_web_app() { + # Get the web app name + echo "Getting web app name..." + web_app_name=$(az webapp list --query '[0].name' --output tsv) + + if [ -n "$web_app_name" ]; then + echo "Web app [$web_app_name] successfully retrieved." + else + echo "Error: No web app found" + exit 1 + fi + + # Get the resource group name + echo "Getting resource group name for web app [$web_app_name]..." + resource_group_name=$(az webapp list --query '[0].resourceGroup' --output tsv) + + if [ -n "$resource_group_name" ]; then + echo "Resource group [$resource_group_name] successfully retrieved." + else + echo "Error: No resource group found for web app [$web_app_name]" + exit 1 + fi + + # Get the the default host name of the web app + echo "Getting the default host name of the web app [$web_app_name]..." + app_host_name=$(az webapp show \ + --name "$web_app_name" \ + --resource-group "$resource_group_name" \ + --query 'defaultHostName' \ + --output tsv) + + if [ -n "$app_host_name" ]; then + echo "Web app default host name [$app_host_name] successfully retrieved." + else + echo "Error: No web app default host name found" + exit 1 + fi + + # Get the Docker container name + echo "Finding container name with prefix [ls-$web_app_name]..." + container_name=$(get_docker_container_name_by_prefix "ls-$web_app_name") + + if [ $? -eq 0 ] && [ -n "$container_name" ]; then + echo "Container [$container_name] found successfully" + else + echo "Failed to get container name" + exit 1 + fi + + # Get the container IP address + echo "Getting IP address for container [$container_name]..." + container_ip=$(get_docker_container_ip_address_by_name "$container_name") + + if [ $? -eq 0 ] && [ -n "$container_ip" ]; then + echo "IP address [$container_ip] retrieved successfully for container [$container_name]" + else + echo "Failed to get container IP address" + exit 1 + fi + + # Get the mapped host port for web app HTTP trigger (internal port 80) + echo "Getting the host port mapped to internal port 80 in container [$container_name]..." + host_port=$(get_docker_container_port_mapping "$container_name" "80") + + if [ $? -eq 0 ] && [ -n "$host_port" ]; then + echo "Mapped host port [$host_port] retrieved successfully for container [$container_name]" + else + echo "Failed to get mapped host port for container [$container_name]" + fi + + # Retrieve LocalStack proxy port + proxy_port=$(curl http://localhost:4566/_localstack/proxy -s | jq '.proxy_port') + + if [ -n "$proxy_port" ]; then + # Call the web app via emulator proxy + echo "Calling web app [$web_app_name] via emulator..." + curl --proxy "http://localhost:$proxy_port/" -s "http://$app_host_name/" 1> /dev/null + + if [ $? == 0 ]; then + echo "Web app call via emulator proxy port [$proxy_port] succeeded." + else + echo "Web app call via emulator proxy port [$proxy_port] failed." + fi + else + echo "Failed to retrieve LocalStack proxy port" + fi + + if [ -n "$container_ip" ]; then + # Call the web app via the container IP address + echo "Calling web app [$web_app_name] via container IP address [$container_ip]..." + curl -s "http://$container_ip/" 1> /dev/null + + if [ $? == 0 ]; then + echo "Web app call via container IP address [$container_ip] succeeded." + else + echo "Web app call via container IP address [$container_ip] failed." + fi + else + echo "Failed to retrieve container IP address" + fi + + if [ -n "$host_port" ]; then + # Call the web app via the host port + echo "Calling web app [$web_app_name] via host port [$host_port]..." + curl -s "http://127.0.0.1:$host_port/" 1> /dev/null + + if [ $? == 0 ]; then + echo "Web app call via host port [$host_port] succeeded." + else + echo "Web app call via host port [$host_port] failed." + fi + else + echo "Failed to retrieve host port" + fi + + if [ -n "$app_host_name" ]; then + # Call the web app via the default hostname + echo "Calling web app [$web_app_name] via default hostname [$app_host_name]..." + curl -s "http://$app_host_name/" 1> /dev/null + + if [ $? == 0 ]; then + echo "Web app call via default hostname [$app_host_name] succeeded." + else + echo "Web app call via default hostname [$app_host_name] failed." + fi + else + echo "Failed to retrieve web app hostname" + fi +} + +call_web_app \ No newline at end of file diff --git a/samples/web-app-postgresql-flexible-server/python/scripts/deploy.sh b/samples/web-app-postgresql-flexible-server/python/scripts/deploy.sh new file mode 100755 index 0000000..29ed81d --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/scripts/deploy.sh @@ -0,0 +1,1113 @@ +#!/bin/bash + +# Variables +PREFIX='local' +SUFFIX='test' +LOCATION='westeurope' +RESOURCE_GROUP_NAME="${PREFIX}-rg" +LOG_ANALYTICS_NAME="${PREFIX}-log-analytics-${SUFFIX}" +DIAGNOSTIC_SETTINGS_NAME='default' +WEB_APP_SUBNET_NSG_NAME="${PREFIX}-webapp-subnet-nsg-${SUFFIX}" +PE_SUBNET_NSG_NAME="${PREFIX}-pe-subnet-nsg-${SUFFIX}" +NAT_GATEWAY_NAME="${PREFIX}-nat-gateway-${SUFFIX}" +PIP_PREFIX_NAME="${PREFIX}-nat-gateway-pip-prefix-${SUFFIX}" +VIRTUAL_NETWORK_NAME="${PREFIX}-vnet-${SUFFIX}" +VIRTUAL_NETWORK_ADDRESS_PREFIX="10.0.0.0/8" +WEB_APP_SUBNET_NAME="app-subnet" +WEB_APP_SUBNET_PREFIX="10.0.0.0/24" +PE_SUBNET_NAME="pe-subnet" +PE_SUBNET_PREFIX="10.0.1.0/24" +VIRTUAL_NETWORK_LINK_NAME="link-to-vnet" +PRIVATE_DNS_ZONE_NAME="privatelink.postgres.database.azure.com" +PRIVATE_ENDPOINT_NAME="${PREFIX}-postgres-pe-${SUFFIX}" +PRIVATE_ENDPOINT_GROUP="postgresqlServer" +PRIVATE_DNS_ZONE_GROUP_NAME="default" +APP_SERVICE_PLAN_NAME="${PREFIX}-app-service-plan-${SUFFIX}" +APP_SERVICE_PLAN_SKU="S1" +WEB_APP_NAME="${PREFIX}-webapp-${SUFFIX}" +POSTGRES_SERVER_NAME="${PREFIX}-pgflex-${SUFFIX}" +POSTGRES_VERSION="16" +POSTGRES_SKU_NAME="Standard_B1ms" +POSTGRES_SKU_TIER="Burstable" +POSTGRES_STORAGE_SIZE_GB=32 +POSTGRES_BACKUP_RETENTION_DAYS=7 +POSTGRES_DATABASE_NAME="PlannerDB" +PG_ADMIN_USER="pgadmin" +PG_ADMIN_PASSWORD="P@ssw0rd1234!" +PG_APP_USER="testuser" +PG_APP_PASSWORD="TestP@ssw0rd123" +FIREWALL_RULE_NAME="AllowAllIPs" +RUNTIME="python" +RUNTIME_VERSION="3.13" +LOGIN_NAME="paolo" +CURRENT_DIR="$(cd "$(dirname "$0")" && pwd)" +ZIPFILE="planner_website.zip" + +# Change the current directory to the script's directory +cd "$CURRENT_DIR" || exit +# Create a resource group +echo "Creating resource group [$RESOURCE_GROUP_NAME]..." +az group create \ + --name $RESOURCE_GROUP_NAME \ + --location $LOCATION \ + --tags environment=test iac=az-cli \ + --only-show-errors 1>/dev/null + +if [ $? -eq 0 ]; then + echo "Resource group [$RESOURCE_GROUP_NAME] created successfully." +else + echo "Failed to create resource group [$RESOURCE_GROUP_NAME]." + exit 1 +fi + +# Check if the PostgreSQL flexible server already exists +echo "Checking if [$POSTGRES_SERVER_NAME] PostgreSQL flexible server already exists in the [$RESOURCE_GROUP_NAME] resource group..." +az postgres flexible-server show \ + --name $POSTGRES_SERVER_NAME \ + --resource-group $RESOURCE_GROUP_NAME \ + --only-show-errors &>/dev/null + +if [[ $? != 0 ]]; then + echo "No [$POSTGRES_SERVER_NAME] PostgreSQL flexible server already exists in the [$RESOURCE_GROUP_NAME] resource group" + echo "Creating [$POSTGRES_SERVER_NAME] PostgreSQL flexible server in the [$RESOURCE_GROUP_NAME] resource group..." + + # Create a PostgreSQL flexible server with public network access + az postgres flexible-server create \ + --name $POSTGRES_SERVER_NAME \ + --resource-group $RESOURCE_GROUP_NAME \ + --location $LOCATION \ + --tier $POSTGRES_SKU_TIER \ + --sku-name $POSTGRES_SKU_NAME \ + --version $POSTGRES_VERSION \ + --storage-size $POSTGRES_STORAGE_SIZE_GB \ + --backup-retention $POSTGRES_BACKUP_RETENTION_DAYS \ + --geo-redundant-backup Disabled \ + --admin-user $PG_ADMIN_USER \ + --admin-password "$PG_ADMIN_PASSWORD" \ + --public-access Enabled \ + --high-availability Disabled \ + --yes \ + --tags environment=test iac=az-cli \ + --only-show-errors 1>/dev/null + + if [ $? -eq 0 ]; then + echo "[$POSTGRES_SERVER_NAME] PostgreSQL flexible server successfully created in the [$RESOURCE_GROUP_NAME] resource group" + else + echo "Failed to create [$POSTGRES_SERVER_NAME] PostgreSQL flexible server in the [$RESOURCE_GROUP_NAME] resource group" + exit 1 + fi +else + echo "[$POSTGRES_SERVER_NAME] PostgreSQL flexible server already exists in the [$RESOURCE_GROUP_NAME] resource group" +fi + +# Retrieve the resource id of the PostgreSQL flexible server +echo "Getting [$POSTGRES_SERVER_NAME] PostgreSQL flexible server resource id in the [$RESOURCE_GROUP_NAME] resource group..." +POSTGRES_SERVER_ID=$(az postgres flexible-server show \ + --name $POSTGRES_SERVER_NAME \ + --resource-group $RESOURCE_GROUP_NAME \ + --query id \ + --output tsv \ + --only-show-errors) + +if [ -n "$POSTGRES_SERVER_ID" ]; then + echo "PostgreSQL flexible server resource id retrieved successfully: $POSTGRES_SERVER_ID" +else + echo "Failed to retrieve PostgreSQL flexible server resource id." + exit 1 +fi + +# Retrieve the fullyQualifiedDomainName of the PostgreSQL flexible server +echo "Getting [$POSTGRES_SERVER_NAME] PostgreSQL flexible server FQDN in the [$RESOURCE_GROUP_NAME] resource group..." +POSTGRES_FQDN_FULL=$(az postgres flexible-server show \ + --name $POSTGRES_SERVER_NAME \ + --resource-group $RESOURCE_GROUP_NAME \ + --query "fullyQualifiedDomainName" \ + --output tsv \ + --only-show-errors) + +if [ -n "$POSTGRES_FQDN_FULL" ]; then + echo "PostgreSQL flexible server FQDN retrieved successfully: $POSTGRES_FQDN_FULL" +else + echo "Failed to retrieve PostgreSQL flexible server FQDN." + exit 1 +fi + +# Split host:port — the LocalStack emulator embeds the dynamically allocated TCP-proxy port +# directly in fullyQualifiedDomainName, mirroring the storage / container registry emulators. +# Real Azure returns just the bare host so PG_PORT defaults to 5432. +POSTGRES_FQDN="${POSTGRES_FQDN_FULL%%:*}" +if [[ "$POSTGRES_FQDN_FULL" == *:* ]]; then + POSTGRES_PORT="${POSTGRES_FQDN_FULL##*:}" +else + POSTGRES_PORT=5432 +fi +echo "PostgreSQL host = $POSTGRES_FQDN, port = $POSTGRES_PORT" + +# Check if the server-level firewall rule already exists +echo "Checking if [$FIREWALL_RULE_NAME] firewall rule already exists on the [$POSTGRES_SERVER_NAME] PostgreSQL flexible server..." +az postgres flexible-server firewall-rule show \ + --name $POSTGRES_SERVER_NAME \ + --resource-group $RESOURCE_GROUP_NAME \ + --rule-name $FIREWALL_RULE_NAME \ + --only-show-errors &>/dev/null + +if [[ $? != 0 ]]; then + echo "No [$FIREWALL_RULE_NAME] firewall rule already exists on the [$POSTGRES_SERVER_NAME] PostgreSQL flexible server" + echo "Creating [$FIREWALL_RULE_NAME] firewall rule on the [$POSTGRES_SERVER_NAME] PostgreSQL flexible server..." + + # Create a permissive firewall rule so the deploy machine can run the psql bootstrap + az postgres flexible-server firewall-rule create \ + --name $POSTGRES_SERVER_NAME \ + --resource-group $RESOURCE_GROUP_NAME \ + --rule-name $FIREWALL_RULE_NAME \ + --start-ip-address "0.0.0.0" \ + --end-ip-address "255.255.255.255" \ + --only-show-errors 1>/dev/null + + if [ $? -eq 0 ]; then + echo "[$FIREWALL_RULE_NAME] firewall rule successfully created on the [$POSTGRES_SERVER_NAME] PostgreSQL flexible server" + else + echo "Failed to create [$FIREWALL_RULE_NAME] firewall rule on the [$POSTGRES_SERVER_NAME] PostgreSQL flexible server" + exit 1 + fi +else + echo "[$FIREWALL_RULE_NAME] firewall rule already exists on the [$POSTGRES_SERVER_NAME] PostgreSQL flexible server" +fi + +# Check if the PostgreSQL database already exists +echo "Checking if [$POSTGRES_DATABASE_NAME] database already exists on the [$POSTGRES_SERVER_NAME] PostgreSQL flexible server..." +az postgres flexible-server db show \ + --server-name $POSTGRES_SERVER_NAME \ + --resource-group $RESOURCE_GROUP_NAME \ + --database-name $POSTGRES_DATABASE_NAME \ + --only-show-errors &>/dev/null + +if [[ $? != 0 ]]; then + echo "No [$POSTGRES_DATABASE_NAME] database already exists on the [$POSTGRES_SERVER_NAME] PostgreSQL flexible server" + echo "Creating [$POSTGRES_DATABASE_NAME] database on the [$POSTGRES_SERVER_NAME] PostgreSQL flexible server..." + + # Create the application database + az postgres flexible-server db create \ + --server-name $POSTGRES_SERVER_NAME \ + --resource-group $RESOURCE_GROUP_NAME \ + --database-name $POSTGRES_DATABASE_NAME \ + --charset UTF8 \ + --collation en_US.utf8 \ + --only-show-errors 1>/dev/null + + if [ $? -eq 0 ]; then + echo "[$POSTGRES_DATABASE_NAME] database successfully created on the [$POSTGRES_SERVER_NAME] PostgreSQL flexible server" + else + echo "Failed to create [$POSTGRES_DATABASE_NAME] database on the [$POSTGRES_SERVER_NAME] PostgreSQL flexible server" + exit 1 + fi +else + echo "[$POSTGRES_DATABASE_NAME] database already exists on the [$POSTGRES_SERVER_NAME] PostgreSQL flexible server" +fi + +# Check if the network security group for the web app subnet already exists +echo "Checking if [$WEB_APP_SUBNET_NSG_NAME] network security group for the web app subnet actually exists in the [$RESOURCE_GROUP_NAME] resource group..." +az network nsg show \ + --name "$WEB_APP_SUBNET_NSG_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --only-show-errors &>/dev/null + +if [[ $? != 0 ]]; then + echo "No [$WEB_APP_SUBNET_NSG_NAME] network security group for the web app subnet actually exists in the [$RESOURCE_GROUP_NAME] resource group" + echo "Creating [$WEB_APP_SUBNET_NSG_NAME] network security group for the web app subnet..." + + # Create the network security group for the web app subnet + az network nsg create \ + --name "$WEB_APP_SUBNET_NSG_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --location "$LOCATION" \ + --tags environment=test iac=az-cli \ + --only-show-errors 1>/dev/null + + if [[ $? == 0 ]]; then + echo "[$WEB_APP_SUBNET_NSG_NAME] network security group for the web app subnet successfully created in the [$RESOURCE_GROUP_NAME] resource group" + else + echo "Failed to create [$WEB_APP_SUBNET_NSG_NAME] network security group for the web app subnet in the [$RESOURCE_GROUP_NAME] resource group" + exit 1 + fi +else + echo "[$WEB_APP_SUBNET_NSG_NAME] network security group for the web app subnet already exists in the [$RESOURCE_GROUP_NAME] resource group" +fi + +# Get the resource id of the network security group for the web app subnet +echo "Getting [$WEB_APP_SUBNET_NSG_NAME] network security group for the web app subnet resource id in the [$RESOURCE_GROUP_NAME] resource group..." +WEB_APP_SUBNET_NSG_ID=$(az network nsg show \ + --name "$WEB_APP_SUBNET_NSG_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --query id \ + --output tsv \ + --only-show-errors) + +if [[ -n $WEB_APP_SUBNET_NSG_ID ]]; then + echo "[$WEB_APP_SUBNET_NSG_NAME] network security group for the web app subnet resource id retrieved successfully: $WEB_APP_SUBNET_NSG_ID" +else + echo "Failed to retrieve [$WEB_APP_SUBNET_NSG_NAME] network security group for the web app subnet resource id in the [$RESOURCE_GROUP_NAME] resource group" + exit 1 +fi + +# Check if the network security group for the private endpoint subnet already exists +echo "Checking if [$PE_SUBNET_NSG_NAME] network security group for the private endpoint subnet actually exists in the [$RESOURCE_GROUP_NAME] resource group..." +az network nsg show \ + --name "$PE_SUBNET_NSG_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --only-show-errors &>/dev/null + +if [[ $? != 0 ]]; then + echo "No [$PE_SUBNET_NSG_NAME] network security group for the private endpoint subnet actually exists in the [$RESOURCE_GROUP_NAME] resource group" + echo "Creating [$PE_SUBNET_NSG_NAME] network security group for the private endpoint subnet..." + + # Create the network security group for the private endpoint subnet + az network nsg create \ + --name "$PE_SUBNET_NSG_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --location "$LOCATION" \ + --tags environment=test iac=az-cli \ + --only-show-errors 1>/dev/null + + if [[ $? == 0 ]]; then + echo "[$PE_SUBNET_NSG_NAME] network security group for the private endpoint subnet successfully created in the [$RESOURCE_GROUP_NAME] resource group" + else + echo "Failed to create [$PE_SUBNET_NSG_NAME] network security group for the private endpoint subnet in the [$RESOURCE_GROUP_NAME] resource group" + exit 1 + fi +else + echo "[$PE_SUBNET_NSG_NAME] network security group for the private endpoint subnet already exists in the [$RESOURCE_GROUP_NAME] resource group" +fi + +# Get the resource id of the network security group for the private endpoint subnet +echo "Getting [$PE_SUBNET_NSG_NAME] network security group for the private endpoint subnet resource id in the [$RESOURCE_GROUP_NAME] resource group..." +PE_SUBNET_NSG_ID=$(az network nsg show \ + --name "$PE_SUBNET_NSG_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --query id \ + --output tsv \ + --only-show-errors) + +if [[ -n $PE_SUBNET_NSG_ID ]]; then + echo "[$PE_SUBNET_NSG_NAME] network security group for the private endpoint subnet resource id retrieved successfully: $PE_SUBNET_NSG_ID" +else + echo "Failed to retrieve [$PE_SUBNET_NSG_NAME] network security group for the private endpoint subnet resource id in the [$RESOURCE_GROUP_NAME] resource group" + exit 1 +fi + +# Check if the public IP prefix for the NAT Gateway already exists +echo "Checking if [$PIP_PREFIX_NAME] public IP prefix for the NAT Gateway actually exists in the [$RESOURCE_GROUP_NAME] resource group..." +az network public-ip prefix show \ + --name "$PIP_PREFIX_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --only-show-errors &>/dev/null + +if [[ $? != 0 ]]; then + echo "No [$PIP_PREFIX_NAME] public IP prefix for the NAT Gateway actually exists in the [$RESOURCE_GROUP_NAME] resource group" + echo "Creating [$PIP_PREFIX_NAME] public IP prefix for the NAT Gateway in the [$RESOURCE_GROUP_NAME] resource group..." + + # Create the public IP prefix for the NAT Gateway + az network public-ip prefix create \ + --name "$PIP_PREFIX_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --location "$LOCATION" \ + --length 31 \ + --tags environment=test iac=az-cli \ + --only-show-errors 1>/dev/null + + if [[ $? == 0 ]]; then + echo "[$PIP_PREFIX_NAME] public IP prefix for the NAT Gateway successfully created in the [$RESOURCE_GROUP_NAME] resource group" + else + echo "Failed to create [$PIP_PREFIX_NAME] public IP prefix for the NAT Gateway in the [$RESOURCE_GROUP_NAME] resource group" + exit 1 + fi +else + echo "[$PIP_PREFIX_NAME] public IP prefix for the NAT Gateway already exists in the [$RESOURCE_GROUP_NAME] resource group" +fi + +# Check if the NAT Gateway already exists +echo "Checking if [$NAT_GATEWAY_NAME] NAT Gateway actually exists in the [$RESOURCE_GROUP_NAME] resource group..." +az network nat gateway show \ + --name "$NAT_GATEWAY_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --only-show-errors &>/dev/null + +if [[ $? != 0 ]]; then + echo "No [$NAT_GATEWAY_NAME] NAT Gateway actually exists in the [$RESOURCE_GROUP_NAME] resource group" + echo "Creating [$NAT_GATEWAY_NAME] NAT Gateway in the [$RESOURCE_GROUP_NAME] resource group..." + + # Create the NAT Gateway + az network nat gateway create \ + --name "$NAT_GATEWAY_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --location "$LOCATION" \ + --public-ip-prefixes "$PIP_PREFIX_NAME" \ + --idle-timeout 4 \ + --tags environment=test iac=az-cli \ + --only-show-errors 1>/dev/null + + if [[ $? == 0 ]]; then + echo "[$NAT_GATEWAY_NAME] NAT Gateway successfully created in the [$RESOURCE_GROUP_NAME] resource group" + else + echo "Failed to create [$NAT_GATEWAY_NAME] NAT Gateway in the [$RESOURCE_GROUP_NAME] resource group" + exit 1 + fi +else + echo "[$NAT_GATEWAY_NAME] NAT Gateway already exists in the [$RESOURCE_GROUP_NAME] resource group" +fi + +# Check if the virtual network already exists +echo "Checking if [$VIRTUAL_NETWORK_NAME] virtual network actually exists in the [$RESOURCE_GROUP_NAME] resource group..." +az network vnet show \ + --name "$VIRTUAL_NETWORK_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --only-show-errors &>/dev/null + +if [[ $? != 0 ]]; then + echo "No [$VIRTUAL_NETWORK_NAME] virtual network actually exists in the [$RESOURCE_GROUP_NAME] resource group" + echo "Creating [$VIRTUAL_NETWORK_NAME] virtual network in the [$RESOURCE_GROUP_NAME] resource group..." + + # Create the virtual network + az network vnet create \ + --name "$VIRTUAL_NETWORK_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --location "$LOCATION" \ + --address-prefixes "$VIRTUAL_NETWORK_ADDRESS_PREFIX" \ + --subnet-name "$WEB_APP_SUBNET_NAME" \ + --subnet-prefix "$WEB_APP_SUBNET_PREFIX" \ + --tags environment=test iac=az-cli \ + --only-show-errors 1>/dev/null + + if [[ $? == 0 ]]; then + echo "[$VIRTUAL_NETWORK_NAME] virtual network successfully created in the [$RESOURCE_GROUP_NAME] resource group" + else + echo "Failed to create [$VIRTUAL_NETWORK_NAME] virtual network in the [$RESOURCE_GROUP_NAME] resource group" + exit + fi + + # Update the web app subnet to associate it with the NAT Gateway and the NSG + echo "Associating [$WEB_APP_SUBNET_NAME] subnet with the [$NAT_GATEWAY_NAME] NAT Gateway and the [$WEB_APP_SUBNET_NSG_NAME] network security group..." + + # Update the web app subnet to associate it with the NAT Gateway and the NSG + az network vnet subnet update \ + --name "$WEB_APP_SUBNET_NAME" \ + --vnet-name "$VIRTUAL_NETWORK_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --nat-gateway "$NAT_GATEWAY_NAME" \ + --network-security-group "$WEB_APP_SUBNET_NSG_NAME" \ + --only-show-errors 1>/dev/null + + if [[ $? == 0 ]]; then + echo "[$WEB_APP_SUBNET_NAME] subnet successfully associated with the [$NAT_GATEWAY_NAME] NAT Gateway and the [$WEB_APP_SUBNET_NSG_NAME] network security group" + else + echo "Failed to associate [$WEB_APP_SUBNET_NAME] subnet with the [$NAT_GATEWAY_NAME] NAT Gateway and the [$WEB_APP_SUBNET_NSG_NAME] network security group" + exit 1 + fi +else + echo "[$VIRTUAL_NETWORK_NAME] virtual network already exists in the [$RESOURCE_GROUP_NAME] resource group" +fi + +# Check if the subnet already exists +echo "Checking if [$PE_SUBNET_NAME] subnet actually exists in the [$VIRTUAL_NETWORK_NAME] virtual network..." +az network vnet subnet show \ + --name "$PE_SUBNET_NAME" \ + --vnet-name "$VIRTUAL_NETWORK_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --only-show-errors &>/dev/null + +if [[ $? != 0 ]]; then + echo "No [$PE_SUBNET_NAME] subnet actually exists in the [$VIRTUAL_NETWORK_NAME] virtual network" + echo "Creating [$PE_SUBNET_NAME] subnet in the [$VIRTUAL_NETWORK_NAME] virtual network..." + + # Create the subnet + az network vnet subnet create \ + --name "$PE_SUBNET_NAME" \ + --vnet-name "$VIRTUAL_NETWORK_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --address-prefix "$PE_SUBNET_PREFIX" \ + --network-security-group "$PE_SUBNET_NSG_NAME" \ + --private-endpoint-network-policies "Disabled" \ + --private-link-service-network-policies "Disabled" \ + --only-show-errors 1>/dev/null + + if [[ $? == 0 ]]; then + echo "[$PE_SUBNET_NAME] subnet successfully created in the [$VIRTUAL_NETWORK_NAME] virtual network" + else + echo "Failed to create [$PE_SUBNET_NAME] subnet in the [$VIRTUAL_NETWORK_NAME] virtual network" + exit + fi +else + echo "[$PE_SUBNET_NAME] subnet already exists in the [$VIRTUAL_NETWORK_NAME] virtual network" +fi + +# Retrieve the virtual network resource id +echo "Getting [$VIRTUAL_NETWORK_NAME] virtual network resource id in the [$RESOURCE_GROUP_NAME] resource group..." +VIRTUAL_NETWORK_ID=$(az network vnet show \ + --name "$VIRTUAL_NETWORK_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --only-show-errors \ + --query id \ + --output tsv) + +if [[ -n $VIRTUAL_NETWORK_ID ]]; then + echo "[$VIRTUAL_NETWORK_NAME] virtual network resource id retrieved successfully: $VIRTUAL_NETWORK_ID" +else + echo "Failed to retrieve [$VIRTUAL_NETWORK_NAME] virtual network resource id in the [$RESOURCE_GROUP_NAME] resource group" + exit +fi + +# Check if the private DNS Zone already exists +echo "Checking if [$PRIVATE_DNS_ZONE_NAME] private DNS zone actually exists in the [$RESOURCE_GROUP_NAME] resource group..." +az network private-dns zone show \ + --name "$PRIVATE_DNS_ZONE_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --only-show-errors &>/dev/null + +if [[ $? != 0 ]]; then + echo "No [$PRIVATE_DNS_ZONE_NAME] private DNS zone actually exists in the [$RESOURCE_GROUP_NAME] resource group" + echo "Creating [$PRIVATE_DNS_ZONE_NAME] private DNS zone in the [$RESOURCE_GROUP_NAME] resource group..." + + # Create the private DNS Zone + az network private-dns zone create \ + --name "$PRIVATE_DNS_ZONE_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --tags environment=test iac=az-cli \ + --only-show-errors 1>/dev/null + + if [[ $? == 0 ]]; then + echo "[$PRIVATE_DNS_ZONE_NAME] private DNS zone successfully created in the [$RESOURCE_GROUP_NAME] resource group" + else + echo "Failed to create [$PRIVATE_DNS_ZONE_NAME] private DNS zone in the [$RESOURCE_GROUP_NAME] resource group" + exit + fi +else + echo "[$PRIVATE_DNS_ZONE_NAME] private DNS zone already exists in the [$RESOURCE_GROUP_NAME] resource group" +fi + +# Check if the virtual network link between the private DNS zone and the virtual network already exists +echo "Checking if [$VIRTUAL_NETWORK_LINK_NAME] virtual network link between [$PRIVATE_DNS_ZONE_NAME] private DNS zone and [$VIRTUAL_NETWORK_NAME] virtual network actually exists..." +az network private-dns link vnet show \ + --name "$VIRTUAL_NETWORK_LINK_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --zone-name "$PRIVATE_DNS_ZONE_NAME" \ + --only-show-errors &>/dev/null + +if [[ $? != 0 ]]; then + echo "No [$VIRTUAL_NETWORK_LINK_NAME] virtual network link between [$PRIVATE_DNS_ZONE_NAME] private DNS zone and [$VIRTUAL_NETWORK_NAME] virtual network actually exists" + + echo "Creating [$VIRTUAL_NETWORK_LINK_NAME] virtual network link between [$PRIVATE_DNS_ZONE_NAME] private DNS zone and [$VIRTUAL_NETWORK_NAME] virtual network..." + + # Create the virtual network link between [$PRIVATE_DNS_ZONE_NAME] private DNS zone and [$VIRTUAL_NETWORK_NAME] virtual network + az network private-dns link vnet create \ + --name "$VIRTUAL_NETWORK_LINK_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --zone-name "$PRIVATE_DNS_ZONE_NAME" \ + --virtual-network "$VIRTUAL_NETWORK_ID" \ + --registration-enabled false \ + --only-show-errors 1>/dev/null + + if [[ $? == 0 ]]; then + echo "[$VIRTUAL_NETWORK_LINK_NAME] virtual network link between [$PRIVATE_DNS_ZONE_NAME] private DNS zone and [$VIRTUAL_NETWORK_NAME] virtual network successfully created" + else + echo "Failed to create [$VIRTUAL_NETWORK_LINK_NAME] virtual network link between [$PRIVATE_DNS_ZONE_NAME] private DNS zone and [$VIRTUAL_NETWORK_NAME] virtual network" + exit + fi +else + echo "[$VIRTUAL_NETWORK_LINK_NAME] virtual network link between [$PRIVATE_DNS_ZONE_NAME] private DNS zone and [$VIRTUAL_NETWORK_NAME] virtual network already exists" +fi + +# Check if the private endpoint already exists +echo "Checking if private endpoint [$PRIVATE_ENDPOINT_NAME] exists in the [$RESOURCE_GROUP_NAME] resource group..." +privateEndpointId=$(az network private-endpoint list \ + --resource-group $RESOURCE_GROUP_NAME \ + --only-show-errors \ + --query "[?name=='$PRIVATE_ENDPOINT_NAME'].id" \ + --output tsv) + +if [[ -z $privateEndpointId ]]; then + echo "Private endpoint [$PRIVATE_ENDPOINT_NAME] does not exist in the [$RESOURCE_GROUP_NAME] resource group" + echo "Creating [$PRIVATE_ENDPOINT_NAME] private endpoint for the [$POSTGRES_SERVER_NAME] PostgreSQL flexible server in the [$RESOURCE_GROUP_NAME] resource group..." + + # Create a private endpoint for the PostgreSQL flexible server + az network private-endpoint create \ + --name "$PRIVATE_ENDPOINT_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --location "$LOCATION" \ + --vnet-name "$VIRTUAL_NETWORK_NAME" \ + --subnet "$PE_SUBNET_NAME" \ + --private-connection-resource-id "$POSTGRES_SERVER_ID" \ + --group-id "$PRIVATE_ENDPOINT_GROUP" \ + --connection-name "postgres-connection" \ + --tags environment=test iac=az-cli \ + --only-show-errors 1>/dev/null + + if [[ $? == 0 ]]; then + echo "Private endpoint [$PRIVATE_ENDPOINT_NAME] successfully created for the [$POSTGRES_SERVER_NAME] PostgreSQL flexible server in the [$RESOURCE_GROUP_NAME] resource group" + else + echo "Failed to create a private endpoint for the [$POSTGRES_SERVER_NAME] PostgreSQL flexible server in the [$RESOURCE_GROUP_NAME] resource group" + exit + fi +else + echo "Private endpoint [$PRIVATE_ENDPOINT_NAME] already exists in the [$RESOURCE_GROUP_NAME] resource group" +fi + +# Check if the private DNS zone group is already created for the PostgreSQL flexible server private endpoint +echo "Checking if the private DNS zone group [$PRIVATE_DNS_ZONE_GROUP_NAME] for the [$PRIVATE_ENDPOINT_NAME] private endpoint already exists..." +NAME=$(az network private-endpoint dns-zone-group show \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --endpoint-name "$PRIVATE_ENDPOINT_NAME" \ + --name "$PRIVATE_DNS_ZONE_GROUP_NAME" \ + --query name \ + --output tsv \ + --only-show-errors) + +if [[ -z $NAME ]]; then + echo "No private DNS zone group [$PRIVATE_DNS_ZONE_GROUP_NAME] for the [$PRIVATE_ENDPOINT_NAME] private endpoint actually exists" + echo "Creating private DNS zone group [$PRIVATE_DNS_ZONE_GROUP_NAME] for the [$PRIVATE_ENDPOINT_NAME] private endpoint..." + + # Create the private DNS zone group for the PostgreSQL flexible server private endpoint + az network private-endpoint dns-zone-group create \ + --name "$PRIVATE_DNS_ZONE_GROUP_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --endpoint-name "$PRIVATE_ENDPOINT_NAME" \ + --private-dns-zone "$PRIVATE_DNS_ZONE_NAME" \ + --zone-name "postgres-zone" \ + --only-show-errors 1>/dev/null + + if [[ $? == 0 ]]; then + echo "Private DNS zone group [$PRIVATE_DNS_ZONE_GROUP_NAME] for the [$PRIVATE_ENDPOINT_NAME] private endpoint successfully created" + else + echo "Failed to create private DNS zone group [$PRIVATE_DNS_ZONE_GROUP_NAME] for the [$PRIVATE_ENDPOINT_NAME] private endpoint" + exit + fi +else + echo "Private DNS zone group [$PRIVATE_DNS_ZONE_GROUP_NAME] for the [$PRIVATE_ENDPOINT_NAME] private endpoint already exists" +fi + +# Create application role [$PG_APP_USER] on the PostgreSQL flexible server +echo "Creating login [$PG_APP_USER] on the [$POSTGRES_SERVER_NAME] PostgreSQL flexible server..." +PGPASSWORD="$PG_ADMIN_PASSWORD" psql \ + --host="$POSTGRES_FQDN" \ + --port="$POSTGRES_PORT" \ + --username="$PG_ADMIN_USER" \ + --dbname=postgres \ + --no-password \ + --set=ON_ERROR_STOP=on \ + -c "DO \$\$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = '$PG_APP_USER') THEN + CREATE ROLE \"$PG_APP_USER\" WITH LOGIN PASSWORD '$PG_APP_PASSWORD'; + END IF; +END +\$\$;" + +if [ $? -eq 0 ]; then + echo "Login [$PG_APP_USER] created successfully" +else + echo "Failed to create login [$PG_APP_USER]" + exit 1 +fi + +# Grant CONNECT on the database to [$PG_APP_USER] +echo "Granting CONNECT on [$POSTGRES_DATABASE_NAME] to [$PG_APP_USER]..." +PGPASSWORD="$PG_ADMIN_PASSWORD" psql \ + --host="$POSTGRES_FQDN" \ + --port="$POSTGRES_PORT" \ + --username="$PG_ADMIN_USER" \ + --dbname=postgres \ + --no-password \ + --set=ON_ERROR_STOP=on \ + -c "GRANT CONNECT ON DATABASE \"$POSTGRES_DATABASE_NAME\" TO \"$PG_APP_USER\";" + +if [ $? -eq 0 ]; then + echo "CONNECT granted successfully to [$PG_APP_USER]" +else + echo "Failed to grant CONNECT to [$PG_APP_USER]" + exit 1 +fi + +# Grant schema privileges to [$PG_APP_USER] +echo "Granting schema privileges on [$POSTGRES_DATABASE_NAME] to [$PG_APP_USER]..." +PGPASSWORD="$PG_ADMIN_PASSWORD" psql \ + --host="$POSTGRES_FQDN" \ + --port="$POSTGRES_PORT" \ + --username="$PG_ADMIN_USER" \ + --dbname="$POSTGRES_DATABASE_NAME" \ + --no-password \ + --set=ON_ERROR_STOP=on \ + -c "GRANT USAGE, CREATE ON SCHEMA public TO \"$PG_APP_USER\"; + ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO \"$PG_APP_USER\"; + ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO \"$PG_APP_USER\";" + +if [ $? -eq 0 ]; then + echo "Schema privileges granted successfully to [$PG_APP_USER]" +else + echo "Failed to grant schema privileges to [$PG_APP_USER]" + exit 1 +fi + +# Test connection +echo "Testing connection with user [$PG_APP_USER]..." +PGPASSWORD="$PG_APP_PASSWORD" psql \ + --host="$POSTGRES_FQDN" \ + --port="$POSTGRES_PORT" \ + --username="$PG_APP_USER" \ + --dbname="$POSTGRES_DATABASE_NAME" \ + --no-password \ + -c "SELECT current_user, current_database(), now();" + +if [ $? -eq 0 ]; then + echo "Connection test successful with user [$PG_APP_USER]" +else + echo "Connection test failed with user [$PG_APP_USER]" + exit 1 +fi + +# Create [activities] table +echo "Creating [activities] table in the [$POSTGRES_DATABASE_NAME] database..." +PGPASSWORD="$PG_APP_PASSWORD" psql \ + --host="$POSTGRES_FQDN" \ + --port="$POSTGRES_PORT" \ + --username="$PG_APP_USER" \ + --dbname="$POSTGRES_DATABASE_NAME" \ + --no-password \ + --set=ON_ERROR_STOP=on \ + -c "CREATE TABLE IF NOT EXISTS activities ( + id TEXT PRIMARY KEY, + username TEXT NOT NULL, + activity TEXT NOT NULL, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() + ); + CREATE INDEX IF NOT EXISTS idx_activities_username ON activities(username); + CREATE INDEX IF NOT EXISTS idx_activities_created_at ON activities(created_at DESC);" + +if [ $? -eq 0 ]; then + echo "[activities] table created successfully" +else + echo "Failed to create [activities] table" + exit 1 +fi + +# Insert sample data +echo "Inserting sample data into [activities] table..." +PGPASSWORD="$PG_APP_PASSWORD" psql \ + --host="$POSTGRES_FQDN" \ + --port="$POSTGRES_PORT" \ + --username="$PG_APP_USER" \ + --dbname="$POSTGRES_DATABASE_NAME" \ + --no-password \ + --set=ON_ERROR_STOP=on \ + -c "INSERT INTO activities (id, username, activity) VALUES + (md5('paolo_pisa_seed'), 'paolo', 'Visit the Leaning Tower in Pisa'), + (md5('paolo_volterra_seed'), 'paolo', 'Explore Etruscan walls in Volterra'), + (md5('paolo_san_gimignano_seed'), 'paolo', 'Climb Torre Grossa in San Gimignano'), + (md5('paolo_siena_seed'), 'paolo', 'Walk across Piazza del Campo in Siena'), + (md5('paolo_montalcino_seed'), 'paolo', 'Taste Brunello wine in Montalcino'), + (md5('paolo_pienza_seed'), 'paolo', 'Sample Pecorino cheese in Pienza'), + (md5('paolo_florence_seed'), 'paolo', 'Admire Michelangelo''s David in Florence'), + (md5('paolo_viareggio_beach_seed'), 'paolo', 'Relax by the beach in Viareggio'), + (md5('paolo_viareggio_promenade_seed'), 'paolo', 'Stroll along the Viareggio promenade') + ON CONFLICT (id) DO NOTHING;" + +if [ $? -eq 0 ]; then + echo "Sample data inserted successfully into [activities] table" +else + echo "Failed to insert sample data into [activities] table" + exit 1 +fi + +# Query sample data +echo "Querying sample data from [activities] table..." +PGPASSWORD="$PG_APP_PASSWORD" psql \ + --host="$POSTGRES_FQDN" \ + --port="$POSTGRES_PORT" \ + --username="$PG_APP_USER" \ + --dbname="$POSTGRES_DATABASE_NAME" \ + --no-password \ + -c "SELECT * FROM activities;" + +if [ $? -eq 0 ]; then + echo "Sample data queried successfully from [activities] table" +else + echo "Failed to query sample data from [activities] table" + exit 1 +fi + +# Create app service plan +echo "Creating app service plan [$APP_SERVICE_PLAN_NAME]..." +az appservice plan create \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --name "$APP_SERVICE_PLAN_NAME" \ + --location "$LOCATION" \ + --sku "$APP_SERVICE_PLAN_SKU" \ + --is-linux \ + --tags environment=test iac=az-cli \ + --only-show-errors 1>/dev/null + +if [ $? -eq 0 ]; then + echo "app service plan [$APP_SERVICE_PLAN_NAME] created successfully." +else + echo "Failed to create app service plan [$APP_SERVICE_PLAN_NAME]." + exit 1 +fi + +# Get the app service plan resource id +echo "Getting [$APP_SERVICE_PLAN_NAME] app service plan resource id in the [$RESOURCE_GROUP_NAME] resource group..." +APP_SERVICE_PLAN_ID=$(az appservice plan show \ + --name "$APP_SERVICE_PLAN_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --query id \ + --output tsv \ + --only-show-errors) + +if [[ -n $APP_SERVICE_PLAN_ID ]]; then + echo "[$APP_SERVICE_PLAN_NAME] app service plan resource id retrieved successfully: $APP_SERVICE_PLAN_ID" +else + echo "Failed to retrieve [$APP_SERVICE_PLAN_NAME] app service plan resource id in the [$RESOURCE_GROUP_NAME] resource group" + exit 1 +fi + +# Create the web app +echo "Creating web app [$WEB_APP_NAME]..." +az webapp create \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --plan "$APP_SERVICE_PLAN_NAME" \ + --name "$WEB_APP_NAME" \ + --runtime "$RUNTIME:$RUNTIME_VERSION" \ + --vnet "$VIRTUAL_NETWORK_NAME" \ + --subnet "$WEB_APP_SUBNET_NAME" \ + --tags environment=test iac=az-cli \ + --only-show-errors 1>/dev/null + +if [ $? -eq 0 ]; then + echo "Web app [$WEB_APP_NAME] created successfully." +else + echo "Failed to create web app [$WEB_APP_NAME]." + exit 1 +fi + +# Get the web app resource id +echo "Getting [$WEB_APP_NAME] web app resource id in the [$RESOURCE_GROUP_NAME] resource group..." +WEB_APP_ID=$(az webapp show \ + --name "$WEB_APP_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --query id \ + --output tsv \ + --only-show-errors) + +if [[ -n $WEB_APP_ID ]]; then + echo "[$WEB_APP_NAME] web app resource id retrieved successfully: $WEB_APP_ID" +else + echo "Failed to retrieve [$WEB_APP_NAME] web app resource id in the [$RESOURCE_GROUP_NAME] resource group" + exit 1 +fi + +# Enabling forced tunneling for web app [$WEB_APP_NAME] to route all outbound traffic through the virtual network... +echo "Enabling forced tunneling for web app [$WEB_APP_NAME] to route all outbound traffic through the virtual network..." + +az resource update \ + --ids "$WEB_APP_ID" \ + --set properties.outboundVnetRouting.allTraffic=true \ + --only-show-errors 1>/dev/null + +if [ $? -eq 0 ]; then + echo "Forced tunneling enabled for web app [$WEB_APP_NAME]." +else + echo "Failed to enable forced tunneling for web app [$WEB_APP_NAME]." + exit 1 +fi + +# Set web app settings +echo "Setting web app settings for [$WEB_APP_NAME]..." +az webapp config appsettings set \ + --name $WEB_APP_NAME \ + --resource-group $RESOURCE_GROUP_NAME \ + --settings \ + SCM_DO_BUILD_DURING_DEPLOYMENT='true' \ + ENABLE_ORYX_BUILD='true' \ + PG_HOST="$POSTGRES_FQDN" \ + PG_PORT="$POSTGRES_PORT" \ + PG_USER="$PG_APP_USER" \ + PG_PASSWORD="$PG_APP_PASSWORD" \ + PG_DATABASE="$POSTGRES_DATABASE_NAME" \ + LOGIN_NAME="$LOGIN_NAME" \ + WEBSITES_PORT="8000" \ + --only-show-errors 1>/dev/null + +if [ $? -eq 0 ]; then + echo "Web app settings for [$WEB_APP_NAME] set successfully." +else + echo "Failed to set web app settings for [$WEB_APP_NAME]." + exit 1 +fi + +# Check if the log analytics workspace already exists +echo "Checking if [$LOG_ANALYTICS_NAME] Log Analytics workspace already exists in the [$RESOURCE_GROUP_NAME] resource group..." +az monitor log-analytics workspace show \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --workspace-name "$LOG_ANALYTICS_NAME" \ + --only-show-errors &>/dev/null + +if [[ $? != 0 ]]; then + echo "No [$LOG_ANALYTICS_NAME] Log Analytics workspace actually exists in the [$RESOURCE_GROUP_NAME] resource group" + echo "Creating [$LOG_ANALYTICS_NAME] Log Analytics workspace in the [$RESOURCE_GROUP_NAME] resource group..." + + # Create the Log Analytics workspace + az monitor log-analytics workspace create \ + --name "$LOG_ANALYTICS_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --location "$LOCATION" \ + --query-access "Enabled" \ + --retention-time 30 \ + --sku "PerNode" \ + --tags environment=test iac=az-cli \ + --only-show-errors 1>/dev/null + + if [[ $? == 0 ]]; then + echo "[$LOG_ANALYTICS_NAME] Log Analytics workspace successfully created in the [$RESOURCE_GROUP_NAME] resource group" + else + echo "Failed to create [$LOG_ANALYTICS_NAME] Log Analytics workspace in the [$RESOURCE_GROUP_NAME] resource group" + exit 1 + fi +else + echo "[$LOG_ANALYTICS_NAME] Log Analytics workspace already exists in the [$RESOURCE_GROUP_NAME] resource group" +fi + +# Check whether the diagnostic settings for the web app already exist +echo "Checking if [$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$WEB_APP_NAME] web app already exist..." +az monitor diagnostic-settings show \ + --name "$DIAGNOSTIC_SETTINGS_NAME" \ + --resource "$WEB_APP_ID" \ + --only-show-errors &>/dev/null + +if [[ $? != 0 ]]; then + echo "No [$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$WEB_APP_NAME] web app actually exist" + echo "Creating [$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$WEB_APP_NAME] web app..." + + # Create the diagnostic settings for the web app to send logs to the Log Analytics workspace + az monitor diagnostic-settings create \ + --name "$DIAGNOSTIC_SETTINGS_NAME" \ + --resource "$WEB_APP_ID" \ + --workspace "$LOG_ANALYTICS_NAME" \ + --logs '[ + {"category": "AppServiceHTTPLogs", "enabled": true}, + {"category": "AppServiceConsoleLogs", "enabled": true}, + {"category": "AppServiceAppLogs", "enabled": true}, + {"category": "AppServiceAuditLogs", "enabled": true}, + {"category": "AppServiceIPSecAuditLogs", "enabled": true}, + {"category": "AppServicePlatformLogs", "enabled": true}, + {"category": "AppServiceAuthenticationLogs", "enabled": true} + ]' \ + --metrics '[ + {"category": "AllMetrics", "enabled": true} + ]' \ + --only-show-errors 1>/dev/null + + + if [[ $? == 0 ]]; then + echo "[$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$WEB_APP_NAME] web app successfully created" + else + echo "Failed to create [$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$WEB_APP_NAME] web app" + exit 1 + fi +else + echo "[$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$WEB_APP_NAME] web app already exist" +fi + +# Check whether the diagnostic settings for the app service plan already exist +echo "Checking if [$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$APP_SERVICE_PLAN_NAME] app service plan already exist..." +az monitor diagnostic-settings show \ + --name "$DIAGNOSTIC_SETTINGS_NAME" \ + --resource "$APP_SERVICE_PLAN_ID" \ + --only-show-errors &>/dev/null + +if [[ $? != 0 ]]; then + echo "No [$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$APP_SERVICE_PLAN_NAME] app service plan actually exist" + echo "Creating [$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$APP_SERVICE_PLAN_NAME] app service plan..." + + # Create the diagnostic settings for the app service plan to send logs to the Log Analytics workspace + az monitor diagnostic-settings create \ + --name "$DIAGNOSTIC_SETTINGS_NAME" \ + --resource "$APP_SERVICE_PLAN_ID" \ + --workspace "$LOG_ANALYTICS_NAME" \ + --metrics '[ + {"category": "AllMetrics", "enabled": true} + ]' \ + --only-show-errors 1>/dev/null + + if [[ $? == 0 ]]; then + echo "[$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$APP_SERVICE_PLAN_NAME] app service plan successfully created" + else + echo "Failed to create [$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$APP_SERVICE_PLAN_NAME] app service plan" + exit 1 + fi +else + echo "[$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$APP_SERVICE_PLAN_NAME] app service plan already exist" +fi + +# Check whether the diagnostic settings for the PostgreSQL flexible server already exist +echo "Checking if [$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$POSTGRES_SERVER_NAME] PostgreSQL flexible server already exist..." +az monitor diagnostic-settings show \ + --name "$DIAGNOSTIC_SETTINGS_NAME" \ + --resource "$POSTGRES_SERVER_ID" \ + --only-show-errors &>/dev/null + +if [[ $? != 0 ]]; then + echo "No [$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$POSTGRES_SERVER_NAME] PostgreSQL flexible server actually exist" + echo "Creating [$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$POSTGRES_SERVER_NAME] PostgreSQL flexible server..." + + # Create the diagnostic settings for the PostgreSQL flexible server to send logs to the Log Analytics workspace + az monitor diagnostic-settings create \ + --name "$DIAGNOSTIC_SETTINGS_NAME" \ + --resource "$POSTGRES_SERVER_ID" \ + --workspace "$LOG_ANALYTICS_NAME" \ + --logs '[ + {"category": "PostgreSQLLogs", "enabled": true} + ]' \ + --metrics '[ + {"category": "AllMetrics", "enabled": true} + ]' \ + --only-show-errors 1>/dev/null + + if [[ $? == 0 ]]; then + echo "[$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$POSTGRES_SERVER_NAME] PostgreSQL flexible server successfully created" + else + echo "Failed to create [$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$POSTGRES_SERVER_NAME] PostgreSQL flexible server" + exit 1 + fi +else + echo "[$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$POSTGRES_SERVER_NAME] PostgreSQL flexible server already exist" +fi + +# Check whether the diagnostic settings for the virtual network already exist +echo "Checking if [$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$VIRTUAL_NETWORK_NAME] virtual network already exist..." +az monitor diagnostic-settings show \ + --name "$DIAGNOSTIC_SETTINGS_NAME" \ + --resource "$VIRTUAL_NETWORK_ID" \ + --only-show-errors &>/dev/null + +if [[ $? != 0 ]]; then + echo "No [$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$VIRTUAL_NETWORK_NAME] virtual network actually exist" + echo "Creating [$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$VIRTUAL_NETWORK_NAME] virtual network..." + + # Create the diagnostic settings for the virtual network to send logs to the Log Analytics workspace + az monitor diagnostic-settings create \ + --name "$DIAGNOSTIC_SETTINGS_NAME" \ + --resource "$VIRTUAL_NETWORK_ID" \ + --workspace "$LOG_ANALYTICS_NAME" \ + --logs '[ + {"category": "VMProtectionAlerts", "enabled": true} + ]' \ + --metrics '[ + {"category": "AllMetrics", "enabled": true} + ]' \ + --only-show-errors 1>/dev/null + + if [[ $? == 0 ]]; then + echo "[$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$VIRTUAL_NETWORK_NAME] virtual network successfully created" + else + echo "Failed to create [$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$VIRTUAL_NETWORK_NAME] virtual network" + exit 1 + fi +else + echo "[$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$VIRTUAL_NETWORK_NAME] virtual network already exist" +fi + +# Check whether the diagnostic settings for the network security group for the web app subnet already exist +echo "Checking if [$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$WEB_APP_SUBNET_NSG_NAME] network security group for the web app subnet already exist..." +az monitor diagnostic-settings show \ + --name "$DIAGNOSTIC_SETTINGS_NAME" \ + --resource "$WEB_APP_SUBNET_NSG_ID" \ + --only-show-errors &>/dev/null + +if [[ $? != 0 ]]; then + echo "No [$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$WEB_APP_SUBNET_NSG_NAME] network security group for the web app subnet actually exist" + echo "Creating [$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$WEB_APP_SUBNET_NSG_NAME] network security group for the web app subnet..." + + # Create the diagnostic settings for the network security group for the web app subnet to send logs to the Log Analytics workspace + az monitor diagnostic-settings create \ + --name "$DIAGNOSTIC_SETTINGS_NAME" \ + --resource "$WEB_APP_SUBNET_NSG_ID" \ + --workspace "$LOG_ANALYTICS_NAME" \ + --logs '[ + {"category": "NetworkSecurityGroupEvent", "enabled": true}, + {"category": "NetworkSecurityGroupRuleCounter", "enabled": true} + ]' \ + --only-show-errors 1>/dev/null + + if [[ $? == 0 ]]; then + echo "[$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$WEB_APP_SUBNET_NSG_NAME] network security group for the web app subnet successfully created" + else + echo "Failed to create [$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$WEB_APP_SUBNET_NSG_NAME] network security group for the web app subnet" + exit 1 + fi +else + echo "[$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$WEB_APP_SUBNET_NSG_NAME] network security group for the web app subnet already exist" +fi + +# Check whether the diagnostic settings for the network security group for the private endpoint subnet already exist +echo "Checking if [$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$PE_SUBNET_NSG_NAME] network security group for the private endpoint subnet already exist..." +az monitor diagnostic-settings show \ + --name "$DIAGNOSTIC_SETTINGS_NAME" \ + --resource "$PE_SUBNET_NSG_ID" \ + --only-show-errors &>/dev/null + +if [[ $? != 0 ]]; then + echo "No [$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$PE_SUBNET_NSG_NAME] network security group for the private endpoint subnet actually exist" + echo "Creating [$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$PE_SUBNET_NSG_NAME] network security group for the private endpoint subnet..." + + # Create the diagnostic settings for the network security group for the private endpoint subnet to send logs to the Log Analytics workspace + az monitor diagnostic-settings create \ + --name "$DIAGNOSTIC_SETTINGS_NAME" \ + --resource "$PE_SUBNET_NSG_ID" \ + --workspace "$LOG_ANALYTICS_NAME" \ + --logs '[ + {"category": "NetworkSecurityGroupEvent", "enabled": true}, + {"category": "NetworkSecurityGroupRuleCounter", "enabled": true} + ]' \ + --only-show-errors 1>/dev/null + + if [[ $? == 0 ]]; then + echo "[$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$PE_SUBNET_NSG_NAME] network security group for the private endpoint subnet successfully created" + else + echo "Failed to create [$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$PE_SUBNET_NSG_NAME] network security group for the private endpoint subnet" + exit 1 + fi +else + echo "[$DIAGNOSTIC_SETTINGS_NAME] diagnostic settings for the [$PE_SUBNET_NSG_NAME] network security group for the private endpoint subnet already exist" +fi + +# Change current directory to source folder +cd "../src" || exit + +# Remove any existing zip package of the web app +if [ -f "$ZIPFILE" ]; then + rm "$ZIPFILE" +fi + +# Create the zip package of the web app +echo "Creating zip package of the web app..." +zip -r "$ZIPFILE" app.py database.py gunicorn.conf.py static templates requirements.txt + +# List the contents of the zip package +echo "Contents of the zip package [$ZIPFILE]:" +unzip -l "$ZIPFILE" + +# Deploy the web app +echo "Deploying web app [$WEB_APP_NAME] with zip file [$ZIPFILE]..." +echo "Using standard az webapp deploy command for AzureCloud environment." +az webapp deploy \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --name "$WEB_APP_NAME" \ + --src-path "$ZIPFILE" \ + --type zip \ + --async true 1>/dev/null + +# Remove the zip package of the web app +if [ -f "$ZIPFILE" ]; then + rm "$ZIPFILE" +fi + +# Print the list of resources in the resource group +echo "Listing resources in resource group [$RESOURCE_GROUP_NAME]..." +az resource list --resource-group "$RESOURCE_GROUP_NAME" --output table diff --git a/samples/web-app-postgresql-flexible-server/python/scripts/validate.sh b/samples/web-app-postgresql-flexible-server/python/scripts/validate.sh new file mode 100755 index 0000000..e62bdef --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/scripts/validate.sh @@ -0,0 +1,134 @@ +#!/bin/bash + +# Variables +PREFIX='local' +SUFFIX='test' +RESOURCE_GROUP_NAME="${PREFIX}-rg" +LOG_ANALYTICS_NAME="${PREFIX}-log-analytics-${SUFFIX}" +WEB_APP_SUBNET_NSG_NAME="${PREFIX}-webapp-subnet-nsg-${SUFFIX}" +PE_SUBNET_NSG_NAME="${PREFIX}-pe-subnet-nsg-${SUFFIX}" +NAT_GATEWAY_NAME="${PREFIX}-nat-gateway-${SUFFIX}" +VIRTUAL_NETWORK_NAME="${PREFIX}-vnet-${SUFFIX}" +PRIVATE_DNS_ZONE_NAME="privatelink.postgres.database.azure.com" +PRIVATE_ENDPOINT_NAME="${PREFIX}-postgres-pe-${SUFFIX}" +APP_SERVICE_PLAN_NAME="${PREFIX}-app-service-plan-${SUFFIX}" +WEB_APP_NAME="${PREFIX}-webapp-${SUFFIX}" +POSTGRES_SERVER_NAME="${PREFIX}-pgflex-${SUFFIX}" +POSTGRES_DATABASE_NAME="PlannerDB" +FIREWALL_RULE_NAME="AllowAllIPs" + +# Check resource group +echo -e "[$RESOURCE_GROUP_NAME] resource group:\n" +az group show \ + --name "$RESOURCE_GROUP_NAME" \ + --output table \ + --only-show-errors + +# Check App Service Plan +echo -e "\n[$APP_SERVICE_PLAN_NAME] app service plan:\n" +az appservice plan show \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --name "$APP_SERVICE_PLAN_NAME" \ + --output table \ + --only-show-errors + +# Check Azure Web App +echo -e "\n[$WEB_APP_NAME] web app:\n" +az webapp show \ + --name "$WEB_APP_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --output table \ + --only-show-errors + +# Check Azure Database for PostgreSQL flexible server +echo -e "\n[$POSTGRES_SERVER_NAME] PostgreSQL flexible server:\n" +az postgres flexible-server show \ + --name "$POSTGRES_SERVER_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --query '{Name:name,Location:location,ResourceGroup:resourceGroup,State:state,Version:version,FQDN:fullyQualifiedDomainName,PublicNetworkAccess:network.publicNetworkAccess}' \ + --output table \ + --only-show-errors + +# Check PostgreSQL database +echo -e "\n[$POSTGRES_DATABASE_NAME] PostgreSQL database:\n" +az postgres flexible-server db show \ + --server-name "$POSTGRES_SERVER_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --database-name "$POSTGRES_DATABASE_NAME" \ + --query '{Name:name,ResourceGroup:resourceGroup,Charset:charset,Collation:collation}' \ + --output table \ + --only-show-errors + +# Check PostgreSQL firewall rule +echo -e "\n[$FIREWALL_RULE_NAME] PostgreSQL firewall rule:\n" +az postgres flexible-server firewall-rule show \ + --name "$POSTGRES_SERVER_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --rule-name "$FIREWALL_RULE_NAME" \ + --output table \ + --only-show-errors + +# Check Log Analytics Workspace +echo -e "\n[$LOG_ANALYTICS_NAME] log analytics workspace:\n" +az monitor log-analytics workspace show \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --workspace-name "$LOG_ANALYTICS_NAME" \ + --query '{Name:name,Location:location,ResourceGroup:resourceGroup}' \ + --output table \ + --only-show-errors + +# Check NAT Gateway +echo -e "\n[$NAT_GATEWAY_NAME] nat gateway:\n" +az network nat gateway show \ + --name "$NAT_GATEWAY_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --output table \ + --only-show-errors + +# Check Virtual Network +echo -e "\n[$VIRTUAL_NETWORK_NAME] virtual network:\n" +az network vnet show \ + --name "$VIRTUAL_NETWORK_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --output table \ + --only-show-errors + +# Check Private DNS Zone +echo -e "\n[$PRIVATE_DNS_ZONE_NAME] private dns zone:\n" +az network private-dns zone show \ + --name "$PRIVATE_DNS_ZONE_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --query '{Name:name,ResourceGroup:resourceGroup,RecordSets:recordSets,VirtualNetworkLinks:virtualNetworkLinks}' \ + --output table \ + --only-show-errors + +# Check Private Endpoint +echo -e "\n[$PRIVATE_ENDPOINT_NAME] private endpoint:\n" +az network private-endpoint show \ + --name "$PRIVATE_ENDPOINT_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --output table \ + --only-show-errors + +# Check Web App Subnet NSG +echo -e "\n[$WEB_APP_SUBNET_NSG_NAME] network security group:\n" +az network nsg show \ + --name "$WEB_APP_SUBNET_NSG_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --output table \ + --only-show-errors + +# Check Private Endpoint Subnet NSG +echo -e "\n[$PE_SUBNET_NSG_NAME] network security group:\n" +az network nsg show \ + --name "$PE_SUBNET_NSG_NAME" \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --output table \ + --only-show-errors + +# List resources +echo -e "\n[$RESOURCE_GROUP_NAME] all resources:\n" +az resource list \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --output table \ + --only-show-errors diff --git a/samples/web-app-postgresql-flexible-server/python/src/app.py b/samples/web-app-postgresql-flexible-server/python/src/app.py new file mode 100644 index 0000000..cd5cb23 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/src/app.py @@ -0,0 +1,94 @@ +"""Flask application for managing vacation activities backed by PostgreSQL.""" +import datetime +import hashlib +import logging +import os +from typing import List, Tuple + +from flask import Flask, flash, redirect, render_template, request, url_for + +from database import PostgresClient + +app: Flask = Flask(__name__) +app.secret_key = os.environ.get("SECRET_KEY", os.urandom(24)) + +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", +) +logging.getLogger("urllib3").setLevel(logging.WARNING) +logging.getLogger("werkzeug").setLevel(logging.INFO) +logger = logging.getLogger(__name__) +logger.setLevel(logging.INFO) + + +def make_activity_id(username: str, activity: str) -> str: + """MD5 of username + activity + timestamp — preserves the source sample's ID scheme.""" + timestamp = datetime.datetime.now().isoformat() + return hashlib.md5(f"{username}_{activity}_{timestamp}".encode()).hexdigest() + + +db_client: PostgresClient = PostgresClient.from_env() +db_client.init_schema() + +username = os.environ.get("LOGIN_NAME", "paolo") +if not username or not username.strip(): + raise ValueError("LOGIN_NAME cannot be empty") + +activities: List[Tuple[str, str]] = [] + + +def reload_activities() -> None: + activities.clear() + try: + activities.extend(db_client.list_activities(username)) + except Exception as exc: + logger.error("Failed to load activities: %s", exc) + + +@app.route("/", methods=["GET", "POST"]) +def index(): + if request.method == "POST": + activity = request.form.get("activity") + if activity: + try: + row_id = request.form.get("row_id") + if row_id: + if not row_id.strip(): + raise ValueError("Row ID cannot be empty") + if db_client.update_activity(row_id, activity): + logger.info("Activity updated: %s", row_id) + flash("Activity updated!") + else: + activity_id = make_activity_id(username, activity) + db_client.insert_activity(activity_id, username, activity) + logger.info("Activity added: %s", activity) + flash("Activity added!") + except (ConnectionError, ValueError) as e: + logger.error("Error writing activity: %s", e) + + return redirect(url_for("index")) + + reload_activities() + return render_template("index.html", activities=activities, username=username) + + +@app.route("/favicon.ico") +def favicon(): + return app.send_static_file("favicon.ico") + + +@app.route("/delete/", methods=["POST"]) +def delete(activity_id: int): + if 0 <= activity_id < len(activities): + db_client.delete_activity(activities[activity_id][0]) + flash("Activity deleted.") + return redirect(url_for("index")) + + +debug = os.environ.get("DEBUG", "false").lower() == "true" + +reload_activities() + +if __name__ == "__main__": + app.run(debug=debug) diff --git a/samples/web-app-postgresql-flexible-server/python/src/database.py b/samples/web-app-postgresql-flexible-server/python/src/database.py new file mode 100644 index 0000000..515a6f3 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/src/database.py @@ -0,0 +1,134 @@ +"""PostgreSQL helper for the vacation planner sample. + +Wraps a thin psycopg2 client exposing the same conceptual operations the app needs: + - init_schema() ensure the ``activities`` table exists + - list_activities(username) return [(id, activity_text), ...] for a user + - insert_activity(activity_id, username, activity_text) + - update_activity(activity_id, activity_text) -> int rowcount + - delete_activity(activity_id) -> int rowcount + +Connection is sourced from env vars: PG_HOST, PG_PORT, PG_USER, PG_PASSWORD, PG_DATABASE. +A retry loop is used on startup because the flex server can take a few seconds to become +reachable on the first deploy (especially under LocalStack where the postgres container is +spun up on first server creation). +""" + +import logging +import os +import time + +import psycopg2 +from psycopg2.errors import OperationalError + +logger = logging.getLogger(__name__) +logger.setLevel(logging.INFO) + + +_SCHEMA_DDL = """ +CREATE TABLE IF NOT EXISTS activities ( + id TEXT PRIMARY KEY, + username TEXT NOT NULL, + activity TEXT NOT NULL, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); +CREATE INDEX IF NOT EXISTS idx_activities_username ON activities(username); +CREATE INDEX IF NOT EXISTS idx_activities_created_at ON activities(created_at DESC); +""" + + +class PostgresClient: + """Light wrapper around psycopg2 with retry-on-startup and per-call connection + management (the sample is low-throughput, so we open a fresh connection per call to + keep the code straightforward — production code would use a pool).""" + + def __init__( + self, + host: str, + port: int, + user: str, + password: str, + database: str, + ) -> None: + self.host = host + self.port = port + self.user = user + self.password = password + self.database = database + + @classmethod + def from_env(cls) -> "PostgresClient": + try: + host = os.environ["PG_HOST"] + port = int(os.environ.get("PG_PORT", "5432")) + user = os.environ["PG_USER"] + password = os.environ["PG_PASSWORD"] + database = os.environ.get("PG_DATABASE", "sampledb") + except KeyError as exc: + raise RuntimeError( + f"Missing required environment variable: {exc.args[0]}. " + "Set PG_HOST, PG_USER, PG_PASSWORD (and optionally PG_PORT, PG_DATABASE)." + ) from exc + return cls(host=host, port=port, user=user, password=password, database=database) + + def _connect(self): + return psycopg2.connect( + host=self.host, + port=self.port, + user=self.user, + password=self.password, + dbname=self.database, + connect_timeout=10, + ) + + def init_schema(self, retries: int = 30, delay: float = 2.0) -> None: + """Wait for PostgreSQL to accept connections, then create the activities table.""" + last_err: Exception | None = None + for attempt in range(1, retries + 1): + try: + with self._connect() as conn, conn.cursor() as cur: + cur.execute(_SCHEMA_DDL) + conn.commit() + logger.info("PostgreSQL schema initialized") + return + except OperationalError as exc: + last_err = exc + logger.info( + "PostgreSQL not ready (attempt %d/%d): %s", attempt, retries, exc + ) + time.sleep(delay) + raise RuntimeError( + f"PostgreSQL did not become ready after {retries} attempts: {last_err}" + ) + + def list_activities(self, username: str) -> list[tuple[str, str]]: + with self._connect() as conn, conn.cursor() as cur: + cur.execute( + "SELECT id, activity FROM activities WHERE username = %s " + "ORDER BY created_at DESC", + (username,), + ) + return [(row[0], row[1]) for row in cur.fetchall()] + + def insert_activity(self, activity_id: str, username: str, activity_text: str) -> None: + with self._connect() as conn, conn.cursor() as cur: + cur.execute( + "INSERT INTO activities (id, username, activity) VALUES (%s, %s, %s) " + "ON CONFLICT (id) DO NOTHING", + (activity_id, username, activity_text), + ) + conn.commit() + + def update_activity(self, activity_id: str, activity_text: str) -> int: + with self._connect() as conn, conn.cursor() as cur: + cur.execute( + "UPDATE activities SET activity = %s WHERE id = %s", + (activity_text, activity_id), + ) + conn.commit() + return cur.rowcount + + def delete_activity(self, activity_id: str) -> int: + with self._connect() as conn, conn.cursor() as cur: + cur.execute("DELETE FROM activities WHERE id = %s", (activity_id,)) + conn.commit() + return cur.rowcount diff --git a/samples/web-app-postgresql-flexible-server/python/src/gunicorn.conf.py b/samples/web-app-postgresql-flexible-server/python/src/gunicorn.conf.py new file mode 100644 index 0000000..cb87ebc --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/src/gunicorn.conf.py @@ -0,0 +1,18 @@ +import os + + +def worker_int(worker): + # SIGINT (Ctrl+C) default path raises SystemExit inside the worker's recv() + # loop, dumping a traceback through gunicorn's HTTP parser frames. os._exit + # short-circuits the unwind for a clean foreground stop. SIGTERM (graceful) + # is unaffected — it goes through a different code path. + os._exit(0) + + +def worker_abort(worker): + # SIGABRT is what the arbiter sends when a worker misses its heartbeat + # ([CRITICAL] WORKER TIMEOUT). The default handler does sys.exit(1), which + # unwinds through the same recv() stack as SIGINT and prints a misleading + # traceback. The WORKER TIMEOUT log line above it is the real diagnostic; + # exit at the C level to suppress the spurious trace. + os._exit(1) diff --git a/samples/web-app-postgresql-flexible-server/python/src/requirements.txt b/samples/web-app-postgresql-flexible-server/python/src/requirements.txt new file mode 100644 index 0000000..d0b2881 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/src/requirements.txt @@ -0,0 +1,4 @@ +Flask==3.1.3 +psycopg2-binary==2.9.10 +gunicorn==26.0.0 +python-dotenv==1.2.2 diff --git a/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.css b/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.css new file mode 100644 index 0000000..228f23b --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.css @@ -0,0 +1,5051 @@ +/*! + * Bootstrap Grid v5.1.3 (https://getbootstrap.com/) + * 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-color-rgb: 33, 37, 41; + --bs-body-bg-rgb: 255, 255, 255; + --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; +} + +.container, +.container-fluid, +.container-xxl, +.container-xl, +.container-lg, +.container-md, +.container-sm { + width: 100%; + padding-right: var(--bs-gutter-x, 0.75rem); + padding-left: var(--bs-gutter-x, 0.75rem); + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container-sm, .container { + max-width: 540px; + } +} +@media (min-width: 768px) { + .container-md, .container-sm, .container { + max-width: 720px; + } +} +@media (min-width: 992px) { + .container-lg, .container-md, .container-sm, .container { + max-width: 960px; + } +} +@media (min-width: 1200px) { + .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1140px; + } +} +@media (min-width: 1400px) { + .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1320px; + } +} +.row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: flex; + flex-wrap: wrap; + margin-top: calc(-1 * var(--bs-gutter-y)); + margin-right: calc(-0.5 * var(--bs-gutter-x)); + margin-left: calc(-0.5 * var(--bs-gutter-x)); +} +.row > * { + box-sizing: border-box; + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.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; + } +} +.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; +} + +.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; +} + +.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: 0.25rem !important; +} + +.m-2 { + margin: 0.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: 0.25rem !important; + margin-left: 0.25rem !important; +} + +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.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: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; +} + +.mt-2 { + margin-top: 0.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: 0.25rem !important; +} + +.me-2 { + margin-right: 0.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: 0.25rem !important; +} + +.mb-2 { + margin-bottom: 0.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: 0.25rem !important; +} + +.ms-2 { + margin-left: 0.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: 0.25rem !important; +} + +.p-2 { + padding: 0.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: 0.25rem !important; + padding-left: 0.25rem !important; +} + +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.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: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; +} + +.pt-2 { + padding-top: 0.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: 0.25rem !important; +} + +.pe-2 { + padding-right: 0.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: 0.25rem !important; +} + +.pb-2 { + padding-bottom: 0.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: 0.25rem !important; +} + +.ps-2 { + padding-left: 0.5rem !important; +} + +.ps-3 { + padding-left: 1rem !important; +} + +.ps-4 { + padding-left: 1.5rem !important; +} + +.ps-5 { + padding-left: 3rem !important; +} + +@media (min-width: 576px) { + .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; + } + + .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: 0.25rem !important; + } + + .m-sm-2 { + margin: 0.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: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.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: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + + .mt-sm-2 { + margin-top: 0.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: 0.25rem !important; + } + + .me-sm-2 { + margin-right: 0.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: 0.25rem !important; + } + + .mb-sm-2 { + margin-bottom: 0.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: 0.25rem !important; + } + + .ms-sm-2 { + margin-left: 0.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: 0.25rem !important; + } + + .p-sm-2 { + padding: 0.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: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.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: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + + .pt-sm-2 { + padding-top: 0.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: 0.25rem !important; + } + + .pe-sm-2 { + padding-right: 0.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: 0.25rem !important; + } + + .pb-sm-2 { + padding-bottom: 0.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: 0.25rem !important; + } + + .ps-sm-2 { + padding-left: 0.5rem !important; + } + + .ps-sm-3 { + padding-left: 1rem !important; + } + + .ps-sm-4 { + padding-left: 1.5rem !important; + } + + .ps-sm-5 { + padding-left: 3rem !important; + } +} +@media (min-width: 768px) { + .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; + } + + .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: 0.25rem !important; + } + + .m-md-2 { + margin: 0.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: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.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: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + + .mt-md-2 { + margin-top: 0.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: 0.25rem !important; + } + + .me-md-2 { + margin-right: 0.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: 0.25rem !important; + } + + .mb-md-2 { + margin-bottom: 0.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: 0.25rem !important; + } + + .ms-md-2 { + margin-left: 0.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: 0.25rem !important; + } + + .p-md-2 { + padding: 0.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: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.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: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + + .pt-md-2 { + padding-top: 0.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: 0.25rem !important; + } + + .pe-md-2 { + padding-right: 0.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: 0.25rem !important; + } + + .pb-md-2 { + padding-bottom: 0.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: 0.25rem !important; + } + + .ps-md-2 { + padding-left: 0.5rem !important; + } + + .ps-md-3 { + padding-left: 1rem !important; + } + + .ps-md-4 { + padding-left: 1.5rem !important; + } + + .ps-md-5 { + padding-left: 3rem !important; + } +} +@media (min-width: 992px) { + .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; + } + + .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: 0.25rem !important; + } + + .m-lg-2 { + margin: 0.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: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.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: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + + .mt-lg-2 { + margin-top: 0.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: 0.25rem !important; + } + + .me-lg-2 { + margin-right: 0.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: 0.25rem !important; + } + + .mb-lg-2 { + margin-bottom: 0.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: 0.25rem !important; + } + + .ms-lg-2 { + margin-left: 0.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: 0.25rem !important; + } + + .p-lg-2 { + padding: 0.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: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.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: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + + .pt-lg-2 { + padding-top: 0.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: 0.25rem !important; + } + + .pe-lg-2 { + padding-right: 0.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: 0.25rem !important; + } + + .pb-lg-2 { + padding-bottom: 0.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: 0.25rem !important; + } + + .ps-lg-2 { + padding-left: 0.5rem !important; + } + + .ps-lg-3 { + padding-left: 1rem !important; + } + + .ps-lg-4 { + padding-left: 1.5rem !important; + } + + .ps-lg-5 { + padding-left: 3rem !important; + } +} +@media (min-width: 1200px) { + .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; + } + + .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: 0.25rem !important; + } + + .m-xl-2 { + margin: 0.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: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.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: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + + .mt-xl-2 { + margin-top: 0.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: 0.25rem !important; + } + + .me-xl-2 { + margin-right: 0.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: 0.25rem !important; + } + + .mb-xl-2 { + margin-bottom: 0.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: 0.25rem !important; + } + + .ms-xl-2 { + margin-left: 0.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: 0.25rem !important; + } + + .p-xl-2 { + padding: 0.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: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.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: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + + .pt-xl-2 { + padding-top: 0.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: 0.25rem !important; + } + + .pe-xl-2 { + padding-right: 0.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: 0.25rem !important; + } + + .pb-xl-2 { + padding-bottom: 0.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: 0.25rem !important; + } + + .ps-xl-2 { + padding-left: 0.5rem !important; + } + + .ps-xl-3 { + padding-left: 1rem !important; + } + + .ps-xl-4 { + padding-left: 1.5rem !important; + } + + .ps-xl-5 { + padding-left: 3rem !important; + } +} +@media (min-width: 1400px) { + .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; + } + + .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: 0.25rem !important; + } + + .m-xxl-2 { + margin: 0.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: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .mx-xxl-2 { + margin-right: 0.5rem !important; + margin-left: 0.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: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + + .mt-xxl-2 { + margin-top: 0.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: 0.25rem !important; + } + + .me-xxl-2 { + margin-right: 0.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: 0.25rem !important; + } + + .mb-xxl-2 { + margin-bottom: 0.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: 0.25rem !important; + } + + .ms-xxl-2 { + margin-left: 0.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: 0.25rem !important; + } + + .p-xxl-2 { + padding: 0.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: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .px-xxl-2 { + padding-right: 0.5rem !important; + padding-left: 0.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: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + + .pt-xxl-2 { + padding-top: 0.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: 0.25rem !important; + } + + .pe-xxl-2 { + padding-right: 0.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: 0.25rem !important; + } + + .pb-xxl-2 { + padding-bottom: 0.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: 0.25rem !important; + } + + .ps-xxl-2 { + padding-left: 0.5rem !important; + } + + .ps-xxl-3 { + padding-left: 1rem !important; + } + + .ps-xxl-4 { + padding-left: 1.5rem !important; + } + + .ps-xxl-5 { + padding-left: 3rem !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-grid.css.map */ \ No newline at end of file diff --git a/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.css.map b/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.css.map new file mode 100644 index 0000000..6bcd85c --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/bootstrap-grid.scss","../../scss/_root.scss","bootstrap-grid.css","../../scss/_containers.scss","../../scss/mixins/_container.scss","../../scss/mixins/_breakpoints.scss","../../scss/_variables.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_utilities.scss","../../scss/utilities/_api.scss"],"names":[],"mappings":"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BAAA;AP63DZ;;AOp4DQ;EAOI,6BAAA;APi4DZ;;AGx4DI;EIAI;IAOI,0BAAA;EPs4DV;;EO74DM;IAOI,gCAAA;EP04DV;;EOj5DM;IAOI,yBAAA;EP84DV;;EOr5DM;IAOI,wBAAA;EPk5DV;;EOz5DM;IAOI,yBAAA;EPs5DV;;EO75DM;IAOI,6BAAA;EP05DV;;EOj6DM;IAOI,8BAAA;EP85DV;;EOr6DM;IAOI,wBAAA;EPk6DV;;EOz6DM;IAOI,+BAAA;EPs6DV;;EO76DM;IAOI,wBAAA;EP06DV;;EOj7DM;IAOI,yBAAA;EP86DV;;EOr7DM;IAOI,8BAAA;EPk7DV;;EOz7DM;IAOI,iCAAA;EPs7DV;;EO77DM;IAOI,sCAAA;EP07DV;;EOj8DM;IAOI,yCAAA;EP87DV;;EOr8DM;IAOI,uBAAA;EPk8DV;;EOz8DM;IAOI,uBAAA;EPs8DV;;EO78DM;IAOI,yBAAA;EP08DV;;EOj9DM;IAOI,yBAAA;EP88DV;;EOr9DM;IAOI,0BAAA;EPk9DV;;EOz9DM;IAOI,4BAAA;EPs9DV;;EO79DM;IAOI,kCAAA;EP09DV;;EOj+DM;IAOI,sCAAA;EP89DV;;EOr+DM;IAOI,oCAAA;EPk+DV;;EOz+DM;IAOI,kCAAA;EPs+DV;;EO7+DM;IAOI,yCAAA;EP0+DV;;EOj/DM;IAOI,wCAAA;EP8+DV;;EOr/DM;IAOI,wCAAA;EPk/DV;;EOz/DM;IAOI,kCAAA;EPs/DV;;EO7/DM;IAOI,gCAAA;EP0/DV;;EOjgEM;IAOI,8BAAA;EP8/DV;;EOrgEM;IAOI,gCAAA;EPkgEV;;EOzgEM;IAOI,+BAAA;EPsgEV;;EO7gEM;IAOI,oCAAA;EP0gEV;;EOjhEM;IAOI,kCAAA;EP8gEV;;EOrhEM;IAOI,gCAAA;EPkhEV;;EOzhEM;IAOI,uCAAA;EPshEV;;EO7hEM;IAOI,sCAAA;EP0hEV;;EOjiEM;IAOI,iCAAA;EP8hEV;;EOriEM;IAOI,2BAAA;EPkiEV;;EOziEM;IAOI,iCAAA;EPsiEV;;EO7iEM;IAOI,+BAAA;EP0iEV;;EOjjEM;IAOI,6BAAA;EP8iEV;;EOrjEM;IAOI,+BAAA;EPkjEV;;EOzjEM;IAOI,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o5EV;;EO35EM;IAOI,2BAAA;EPw5EV;;EO/5EM;IAOI,iCAAA;EP45EV;;EOn6EM;IAOI,gCAAA;EPg6EV;;EOv6EM;IAOI,8BAAA;EPo6EV;;EO36EM;IAOI,gCAAA;EPw6EV;;EO/6EM;IAOI,8BAAA;EP46EV;;EOn7EM;IAOI,4BAAA;EPg7EV;;EOv7EM;IAOI,kCAAA;EPo7EV;;EO37EM;IAOI,iCAAA;EPw7EV;;EO/7EM;IAOI,+BAAA;EP47EV;;EOn8EM;IAOI,iCAAA;EPg8EV;;EOv8EM;IAOI,+BAAA;EPo8EV;;EO38EM;IAOI,0BAAA;EPw8EV;;EO/8EM;IAOI,gCAAA;EP48EV;;EOn9EM;IAOI,+BAAA;EPg9EV;;EOv9EM;IAOI,6BAAA;EPo9EV;;EO39EM;IAOI,+BAAA;EPw9EV;;EO/9EM;IAOI,6BAAA;EP49EV;AACF;AGp+EI;EIAI;IAOI,0BAAA;EPi+EV;;EOx+EM;IAOI,gCAAA;EPq+EV;;EO5+EM;IAOI,yBAAA;EPy+EV;;EOh/EM;IAOI,wBAAA;EP6+EV;;EOp/EM;IAOI,yBAAA;EPi/EV;;EOx/EM;IAOI,6BAAA;EPq/EV;;EO5/EM;IAOI,8BAAA;EPy/EV;;EOhgFM;IAOI,wBAAA;EP6/EV;;EOpgFM;IAOI,+BAAA;EPigFV;;EOxgFM;IAOI,wBAAA;EPqgFV;;EO5gFM;IAOI,yBAAA;EPygFV;;EOhhFM;IAOI,8BAAA;EP6gFV;;EOphFM;IAOI,iCAAA;EPihFV;;EOxhFM;IAOI,sCAAA;EPqhFV;;EO5hFM;IAOI,yCAAA;EPyhFV;;EOhiFM;IAOI,uBAAA;EP6hFV;;EOpiFM;IAOI,uBAAA;EPiiFV;;EOxiFM;IAOI,yBAAA;EPqiFV;;EO5iFM;IAOI,yBAAA;EPyiFV;;EOhjFM;IAOI,0BAAA;EP6iFV;;EOpjFM;IAOI,4BAAA;EPijFV;;EOxjFM;IAOI,kCAAA;EPqjFV;;EO5jFM;IAOI,sCAAA;EPyjFV;;EOhkFM;IAOI,oCAAA;EP6jFV;;EOpkFM;IAOI,kCAAA;EPikFV;;EOxkFM;IAOI,yCAAA;EPqkFV;;EO5kFM;IAOI,wCAAA;EPykFV;;EOhlFM;IAOI,wCA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EPomGV;;EO3mGM;IAOI,8BAAA;EPwmGV;;EO/mGM;IAOI,iCAAA;EP4mGV;;EOnnGM;IAOI,sCAAA;EPgnGV;;EOvnGM;IAOI,yCAAA;EPonGV;;EO3nGM;IAOI,uBAAA;EPwnGV;;EO/nGM;IAOI,uBAAA;EP4nGV;;EOnoGM;IAOI,yBAAA;EPgoGV;;EOvoGM;IAOI,yBAAA;EPooGV;;EO3oGM;IAOI,0BAAA;EPwoGV;;EO/oGM;IAOI,4BAAA;EP4oGV;;EOnpGM;IAOI,kCAAA;EPgpGV;;EOvpGM;IAOI,sCAAA;EPopGV;;EO3pGM;IAOI,oCAAA;EPwpGV;;EO/pGM;IAOI,kCAAA;EP4pGV;;EOnqGM;IAOI,yCAAA;EPgqGV;;EOvqGM;IAOI,wCAAA;EPoqGV;;EO3qGM;IAOI,wCAAA;EPwqGV;;EO/qGM;IAOI,kCAAA;EP4qGV;;EOnrGM;IAOI,gCAAA;EPgrGV;;EOvrGM;IAOI,8BAAA;EPorGV;;EO3rGM;IAOI,gCAAA;EPwrGV;;EO/rGM;IAOI,+BAAA;EP4rGV;;EOnsGM;IAOI,oCAAA;EPgsGV;;EOvsGM;IAOI,kCAAA;EPosGV;;EO3sGM;IAOI,gCAAA;EPwsGV;;EO/sGM;IAOI,uCAAA;EP4sGV;;EOntGM;IAOI,sCAAA;EPgtGV;;EOvtGM;IAOI,iCAAA;EPotGV;;EO3tGM;IAOI,2BAAA;EPwtGV;;EO/tGM;IAOI,iCAAA;EP4tGV;;EOnuGM;IAOI,+BAAA;EPguGV;;EOvuGM;IAOI,6BAAA;EPouGV;;EO3uGM;IAOI,+BAAA;EPwuGV;;EO/uGM;IAOI,8BAAA;EP4uGV;;EOnvGM;IAOI,oBAAA;EPgvGV;;EOvvGM;IAOI,mBAAA;EPovGV;;EO3vGM;IAOI,mBAAA;EPwvGV;;EO/vGM;IAOI,mBAAA;EP4vGV;;EOnwGM;IAOI,mBAAA;EPgwGV;;EOvwGM;IAOI,mBAAA;EPowGV;;EO3wGM;IAOI,mBAAA;EPwwGV;;EO/wGM;IAOI,mBAAA;EP4wGV;;EOnxGM;IAOI,oBAAA;EPgxGV;;EOvxGM;IAOI,0BAAA;EPoxGV;;EO3xGM;IAOI,yBAAA;EPwxGV;;EO/xGM;IAOI,uBAAA;EP4x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HM;IAOI,0BAAA;EP8nHV;;EOroHM;IAOI,gCAAA;EPkoHV;;EOzoHM;IAOI,+BAAA;EPsoHV;;EO7oHM;IAOI,6BAAA;EP0oHV;;EOjpHM;IAOI,+BAAA;EP8oHV;;EOrpHM;IAOI,6BAAA;EPkpHV;AACF;AG1pHI;EIAI;IAOI,0BAAA;EPupHV;;EO9pHM;IAOI,gCAAA;EP2pHV;;EOlqHM;IAOI,yBAAA;EP+pHV;;EOtqHM;IAOI,wBAAA;EPmqHV;;EO1qHM;IAOI,yBAAA;EPuqHV;;EO9qHM;IAOI,6BAAA;EP2qHV;;EOlrHM;IAOI,8BAAA;EP+qHV;;EOtrHM;IAOI,wBAAA;EPmrHV;;EO1rHM;IAOI,+BAAA;EPurHV;;EO9rHM;IAOI,wBAAA;EP2rHV;;EOlsHM;IAOI,yBAAA;EP+rHV;;EOtsHM;IAOI,8BAAA;EPmsHV;;EO1sHM;IAOI,iCAAA;EPusHV;;EO9sHM;IAOI,sCAAA;EP2sHV;;EOltHM;IAOI,yCAAA;EP+sHV;;EOttHM;IAOI,uBAAA;EPmtHV;;EO1tHM;IAOI,uBAAA;EPutHV;;EO9tHM;IAOI,yBAAA;EP2tHV;;EOluHM;IAOI,yBAAA;EP+tHV;;EOtuHM;IAOI,0BAAA;EPmuHV;;EO1uHM;IAOI,4BAAA;EPuuHV;;EO9uHM;IAOI,kCAAA;EP2uHV;;EOlvHM;IAOI,sCAAA;EP+uHV;;EOtvHM;IAOI,oCAAA;EPmvHV;;EO1vHM;IAOI,kCAAA;EPuvHV;;EO9vHM;IAOI,yCAAA;EP2vHV;;EOlwHM;IAOI,wCAAA;EP+vHV;;EOtwHM;IAOI,wCAAA;EPmwHV;;EO1wHM;IAOI,kCAAA;EPuwHV;;EO9wHM;IAOI,gCAAA;EP2wHV;;EOlxHM;IAOI,8BAAA;EP+wHV;;EOtxHM;IAOI,gCAAA;EPmxHV;;EO1xHM;IAOI,+BAAA;EPuxHV;;EO9xHM;IAOI,oCAAA;EP2xHV;;EOlyHM;IAOI,kCAAA;EP+xHV;;EOtyHM;IAOI,gCAAA;EPmyHV;;EO1yHM;IAOI,uCAAA;EPuyHV;;EO9yHM;IAOI,sCAAA;EP2yHV;;EOlzHM;IAOI,iCAAA;EP+yHV;;EOtzHM;IAOI,2BAAA;EPmzHV;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IAOI,+BAAA;EPqpIV;;EO5pIM;IAOI,8BAAA;EPypIV;;EOhqIM;IAOI,4BAAA;EP6pIV;;EOpqIM;IAOI,8BAAA;EPiqIV;;EOxqIM;IAOI,4BAAA;EPqqIV;;EO5qIM;IAOI,2BAAA;EPyqIV;;EOhrIM;IAOI,iCAAA;EP6qIV;;EOprIM;IAOI,gCAAA;EPirIV;;EOxrIM;IAOI,8BAAA;EPqrIV;;EO5rIM;IAOI,gCAAA;EPyrIV;;EOhsIM;IAOI,8BAAA;EP6rIV;;EOpsIM;IAOI,4BAAA;EPisIV;;EOxsIM;IAOI,kCAAA;EPqsIV;;EO5sIM;IAOI,iCAAA;EPysIV;;EOhtIM;IAOI,+BAAA;EP6sIV;;EOptIM;IAOI,iCAAA;EPitIV;;EOxtIM;IAOI,+BAAA;EPqtIV;;EO5tIM;IAOI,0BAAA;EPytIV;;EOhuIM;IAOI,gCAAA;EP6tIV;;EOpuIM;IAOI,+BAAA;EPiuIV;;EOxuIM;IAOI,6BAAA;EPquIV;;EO5uIM;IAOI,+BAAA;EPyuIV;;EOhvIM;IAOI,6BAAA;EP6uIV;AACF;AGrvII;EIAI;IAOI,0BAAA;EPkvIV;;EOzvIM;IAOI,gCAAA;EPsvIV;;EO7vIM;IAOI,yBAAA;EP0vIV;;EOjwIM;IAOI,wBAAA;EP8vIV;;EOrwIM;IAOI,yBAAA;EPkwIV;;EOzwIM;IAOI,6BAAA;EPswIV;;EO7wIM;IAOI,8BAAA;EP0wIV;;EOjxIM;IAOI,wBAAA;EP8wIV;;EOrxIM;IAOI,+BAAA;EPkxIV;;EOzxIM;IAOI,wBAAA;EPsxIV;;EO7xIM;IAOI,yBAAA;EP0xIV;;EOjyIM;IAOI,8BAAA;EP8xIV;;EOryIM;IAOI,iCAAA;EPkyIV;;EOzyIM;IAOI,sCAAA;EPsyIV;;EO7yIM;IAOI,yCAAA;EP0yIV;;EOjzIM;IAOI,uBAAA;EP8yIV;;EOrzIM;IAOI,uBAAA;EPkzIV;;EOzzIM;IAOI,yBAAA;EPszIV;;EO7zIM;IAOI,yBAAA;EP0zIV;;EOj0IM;IAOI,0BAAA;EP8zIV;;EOr0IM;IAOI,4BAAA;EPk0IV;;EOz0IM;IAOI,kCAAA;EPs0IV;;EO70IM;IAOI,sCAAA;EP00IV;;EO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","file":"bootstrap-grid.css","sourcesContent":["/*!\n * Bootstrap Grid v5.1.3 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\n$include-column-box-sizing: true !default;\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/lists\";\n@import \"mixins/breakpoints\";\n@import \"mixins/container\";\n@import \"mixins/grid\";\n@import \"mixins/utilities\";\n\n@import \"vendor/rfs\";\n\n@import \"root\";\n\n@import \"containers\";\n@import \"grid\";\n\n@import \"utilities\";\n// Only use the utilities we need\n// stylelint-disable-next-line scss/dollar-variable-default\n$utilities: map-get-multiple(\n $utilities,\n (\n \"display\",\n \"order\",\n \"flex\",\n \"flex-direction\",\n \"flex-grow\",\n \"flex-shrink\",\n \"flex-wrap\",\n \"justify-content\",\n \"align-items\",\n \"align-content\",\n \"align-self\",\n \"margin\",\n \"margin-x\",\n \"margin-y\",\n \"margin-top\",\n \"margin-end\",\n \"margin-bottom\",\n \"margin-start\",\n \"negative-margin\",\n \"negative-margin-x\",\n \"negative-margin-y\",\n \"negative-margin-top\",\n \"negative-margin-end\",\n \"negative-margin-bottom\",\n \"negative-margin-start\",\n \"padding\",\n \"padding-x\",\n \"padding-y\",\n \"padding-top\",\n \"padding-end\",\n \"padding-bottom\",\n \"padding-start\",\n )\n);\n\n@import \"utilities/api\";\n",":root {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Colors\n //\n // Generate palettes for full colors, grays, and theme colors.\n\n @each $color, $value in $colors {\n --#{$variable-prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $grays {\n --#{$variable-prefix}gray-#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$variable-prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors-rgb {\n --#{$variable-prefix}#{$color}-rgb: #{$value};\n }\n\n --#{$variable-prefix}white-rgb: #{to-rgb($white)};\n --#{$variable-prefix}black-rgb: #{to-rgb($black)};\n --#{$variable-prefix}body-color-rgb: #{to-rgb($body-color)};\n --#{$variable-prefix}body-bg-rgb: #{to-rgb($body-bg)};\n\n // Fonts\n\n // Note: Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --#{$variable-prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$variable-prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$variable-prefix}gradient: #{$gradient};\n\n // Root and body\n // stylelint-disable custom-property-empty-line-before\n // scss-docs-start root-body-variables\n @if $font-size-root != null {\n --#{$variable-prefix}root-font-size: #{$font-size-root};\n }\n --#{$variable-prefix}body-font-family: #{$font-family-base};\n --#{$variable-prefix}body-font-size: #{$font-size-base};\n --#{$variable-prefix}body-font-weight: #{$font-weight-base};\n --#{$variable-prefix}body-line-height: #{$line-height-base};\n --#{$variable-prefix}body-color: #{$body-color};\n @if $body-text-align != null {\n --#{$variable-prefix}body-text-align: #{$body-text-align};\n }\n --#{$variable-prefix}body-bg: #{$body-bg};\n // scss-docs-end root-body-variables\n // stylelint-enable custom-property-empty-line-before\n}\n","/*!\n * Bootstrap Grid v5.1.3 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --bs-blue: #0d6efd;\n --bs-indigo: #6610f2;\n --bs-purple: #6f42c1;\n --bs-pink: #d63384;\n --bs-red: #dc3545;\n --bs-orange: #fd7e14;\n --bs-yellow: #ffc107;\n --bs-green: #198754;\n --bs-teal: #20c997;\n --bs-cyan: #0dcaf0;\n --bs-white: #fff;\n --bs-gray: #6c757d;\n --bs-gray-dark: #343a40;\n --bs-gray-100: #f8f9fa;\n --bs-gray-200: #e9ecef;\n --bs-gray-300: #dee2e6;\n --bs-gray-400: #ced4da;\n --bs-gray-500: #adb5bd;\n --bs-gray-600: #6c757d;\n --bs-gray-700: #495057;\n --bs-gray-800: #343a40;\n --bs-gray-900: #212529;\n --bs-primary: #0d6efd;\n --bs-secondary: #6c757d;\n --bs-success: #198754;\n --bs-info: #0dcaf0;\n --bs-warning: #ffc107;\n --bs-danger: #dc3545;\n --bs-light: #f8f9fa;\n --bs-dark: #212529;\n --bs-primary-rgb: 13, 110, 253;\n --bs-secondary-rgb: 108, 117, 125;\n --bs-success-rgb: 25, 135, 84;\n --bs-info-rgb: 13, 202, 240;\n --bs-warning-rgb: 255, 193, 7;\n --bs-danger-rgb: 220, 53, 69;\n --bs-light-rgb: 248, 249, 250;\n --bs-dark-rgb: 33, 37, 41;\n --bs-white-rgb: 255, 255, 255;\n --bs-black-rgb: 0, 0, 0;\n --bs-body-color-rgb: 33, 37, 41;\n --bs-body-bg-rgb: 255, 255, 255;\n --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\";\n --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));\n --bs-body-font-family: var(--bs-font-sans-serif);\n --bs-body-font-size: 1rem;\n --bs-body-font-weight: 400;\n --bs-body-line-height: 1.5;\n --bs-body-color: #212529;\n --bs-body-bg: #fff;\n}\n\n.container,\n.container-fluid,\n.container-xxl,\n.container-xl,\n.container-lg,\n.container-md,\n.container-sm {\n width: 100%;\n padding-right: var(--bs-gutter-x, 0.75rem);\n padding-left: var(--bs-gutter-x, 0.75rem);\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container-sm, .container {\n max-width: 540px;\n }\n}\n@media (min-width: 768px) {\n .container-md, .container-sm, .container {\n max-width: 720px;\n }\n}\n@media (min-width: 992px) {\n .container-lg, .container-md, .container-sm, .container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1140px;\n }\n}\n@media (min-width: 1400px) {\n .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1320px;\n }\n}\n.row {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-top: calc(-1 * var(--bs-gutter-y));\n margin-right: calc(-0.5 * var(--bs-gutter-x));\n margin-left: calc(-0.5 * var(--bs-gutter-x));\n}\n.row > * {\n box-sizing: border-box;\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n margin-top: var(--bs-gutter-y);\n}\n\n.col {\n flex: 1 0 0%;\n}\n\n.row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n}\n\n.row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n}\n\n.col-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n}\n\n.col-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-3 {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.col-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.col-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n}\n\n.col-6 {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.col-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n}\n\n.col-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n}\n\n.col-9 {\n flex: 0 0 auto;\n width: 75%;\n}\n\n.col-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n}\n\n.col-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n}\n\n.col-12 {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.offset-1 {\n margin-left: 8.33333333%;\n}\n\n.offset-2 {\n margin-left: 16.66666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.33333333%;\n}\n\n.offset-5 {\n margin-left: 41.66666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.33333333%;\n}\n\n.offset-8 {\n margin-left: 66.66666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.33333333%;\n}\n\n.offset-11 {\n margin-left: 91.66666667%;\n}\n\n.g-0,\n.gx-0 {\n --bs-gutter-x: 0;\n}\n\n.g-0,\n.gy-0 {\n --bs-gutter-y: 0;\n}\n\n.g-1,\n.gx-1 {\n --bs-gutter-x: 0.25rem;\n}\n\n.g-1,\n.gy-1 {\n --bs-gutter-y: 0.25rem;\n}\n\n.g-2,\n.gx-2 {\n --bs-gutter-x: 0.5rem;\n}\n\n.g-2,\n.gy-2 {\n --bs-gutter-y: 0.5rem;\n}\n\n.g-3,\n.gx-3 {\n --bs-gutter-x: 1rem;\n}\n\n.g-3,\n.gy-3 {\n --bs-gutter-y: 1rem;\n}\n\n.g-4,\n.gx-4 {\n --bs-gutter-x: 1.5rem;\n}\n\n.g-4,\n.gy-4 {\n --bs-gutter-y: 1.5rem;\n}\n\n.g-5,\n.gx-5 {\n --bs-gutter-x: 3rem;\n}\n\n.g-5,\n.gy-5 {\n --bs-gutter-y: 3rem;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex: 1 0 0%;\n }\n\n .row-cols-sm-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n\n .row-cols-sm-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .row-cols-sm-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .row-cols-sm-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n .row-cols-sm-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .row-cols-sm-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n\n .row-cols-sm-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n }\n\n .col-sm-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n\n .col-sm-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n\n .col-sm-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .col-sm-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n\n .col-sm-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n\n .col-sm-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .col-sm-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n\n .col-sm-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n\n .col-sm-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n\n .col-sm-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n\n .col-sm-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n\n .col-sm-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .offset-sm-0 {\n margin-left: 0;\n }\n\n .offset-sm-1 {\n margin-left: 8.33333333%;\n }\n\n .offset-sm-2 {\n margin-left: 16.66666667%;\n }\n\n .offset-sm-3 {\n margin-left: 25%;\n }\n\n .offset-sm-4 {\n margin-left: 33.33333333%;\n }\n\n .offset-sm-5 {\n margin-left: 41.66666667%;\n }\n\n .offset-sm-6 {\n margin-left: 50%;\n }\n\n .offset-sm-7 {\n margin-left: 58.33333333%;\n }\n\n .offset-sm-8 {\n margin-left: 66.66666667%;\n }\n\n .offset-sm-9 {\n margin-left: 75%;\n }\n\n .offset-sm-10 {\n margin-left: 83.33333333%;\n }\n\n .offset-sm-11 {\n margin-left: 91.66666667%;\n }\n\n .g-sm-0,\n.gx-sm-0 {\n --bs-gutter-x: 0;\n }\n\n .g-sm-0,\n.gy-sm-0 {\n --bs-gutter-y: 0;\n }\n\n .g-sm-1,\n.gx-sm-1 {\n --bs-gutter-x: 0.25rem;\n }\n\n .g-sm-1,\n.gy-sm-1 {\n --bs-gutter-y: 0.25rem;\n }\n\n .g-sm-2,\n.gx-sm-2 {\n --bs-gutter-x: 0.5rem;\n }\n\n .g-sm-2,\n.gy-sm-2 {\n --bs-gutter-y: 0.5rem;\n }\n\n .g-sm-3,\n.gx-sm-3 {\n --bs-gutter-x: 1rem;\n }\n\n .g-sm-3,\n.gy-sm-3 {\n --bs-gutter-y: 1rem;\n }\n\n .g-sm-4,\n.gx-sm-4 {\n --bs-gutter-x: 1.5rem;\n }\n\n .g-sm-4,\n.gy-sm-4 {\n --bs-gutter-y: 1.5rem;\n }\n\n .g-sm-5,\n.gx-sm-5 {\n --bs-gutter-x: 3rem;\n }\n\n .g-sm-5,\n.gy-sm-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 768px) {\n .col-md {\n flex: 1 0 0%;\n }\n\n .row-cols-md-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n\n .row-cols-md-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .row-cols-md-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .row-cols-md-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n .row-cols-md-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .row-cols-md-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n\n .row-cols-md-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n }\n\n .col-md-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n\n .col-md-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n\n .col-md-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .col-md-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n\n .col-md-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n\n .col-md-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .col-md-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n\n .col-md-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n\n .col-md-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n\n .col-md-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n\n .col-md-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n\n .col-md-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .offset-md-0 {\n margin-left: 0;\n }\n\n .offset-md-1 {\n margin-left: 8.33333333%;\n }\n\n .offset-md-2 {\n margin-left: 16.66666667%;\n }\n\n .offset-md-3 {\n margin-left: 25%;\n }\n\n .offset-md-4 {\n margin-left: 33.33333333%;\n }\n\n .offset-md-5 {\n margin-left: 41.66666667%;\n }\n\n .offset-md-6 {\n margin-left: 50%;\n }\n\n .offset-md-7 {\n margin-left: 58.33333333%;\n }\n\n .offset-md-8 {\n margin-left: 66.66666667%;\n }\n\n .offset-md-9 {\n margin-left: 75%;\n }\n\n .offset-md-10 {\n margin-left: 83.33333333%;\n }\n\n .offset-md-11 {\n margin-left: 91.66666667%;\n }\n\n .g-md-0,\n.gx-md-0 {\n --bs-gutter-x: 0;\n }\n\n .g-md-0,\n.gy-md-0 {\n --bs-gutter-y: 0;\n }\n\n .g-md-1,\n.gx-md-1 {\n --bs-gutter-x: 0.25rem;\n }\n\n .g-md-1,\n.gy-md-1 {\n --bs-gutter-y: 0.25rem;\n }\n\n .g-md-2,\n.gx-md-2 {\n --bs-gutter-x: 0.5rem;\n }\n\n .g-md-2,\n.gy-md-2 {\n --bs-gutter-y: 0.5rem;\n }\n\n .g-md-3,\n.gx-md-3 {\n --bs-gutter-x: 1rem;\n }\n\n .g-md-3,\n.gy-md-3 {\n --bs-gutter-y: 1rem;\n }\n\n .g-md-4,\n.gx-md-4 {\n --bs-gutter-x: 1.5rem;\n }\n\n .g-md-4,\n.gy-md-4 {\n --bs-gutter-y: 1.5rem;\n }\n\n .g-md-5,\n.gx-md-5 {\n --bs-gutter-x: 3rem;\n }\n\n .g-md-5,\n.gy-md-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 992px) {\n .col-lg {\n flex: 1 0 0%;\n }\n\n .row-cols-lg-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n\n .row-cols-lg-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .row-cols-lg-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .row-cols-lg-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n .row-cols-lg-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .row-cols-lg-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n\n .row-cols-lg-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n }\n\n .col-lg-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n\n .col-lg-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n\n .col-lg-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .col-lg-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n\n .col-lg-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n\n .col-lg-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .col-lg-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n\n .col-lg-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n\n .col-lg-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n\n .col-lg-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n\n .col-lg-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n\n .col-lg-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .offset-lg-0 {\n margin-left: 0;\n }\n\n .offset-lg-1 {\n margin-left: 8.33333333%;\n }\n\n .offset-lg-2 {\n margin-left: 16.66666667%;\n }\n\n .offset-lg-3 {\n margin-left: 25%;\n }\n\n .offset-lg-4 {\n margin-left: 33.33333333%;\n }\n\n .offset-lg-5 {\n margin-left: 41.66666667%;\n }\n\n .offset-lg-6 {\n margin-left: 50%;\n }\n\n .offset-lg-7 {\n margin-left: 58.33333333%;\n }\n\n .offset-lg-8 {\n margin-left: 66.66666667%;\n }\n\n .offset-lg-9 {\n margin-left: 75%;\n }\n\n .offset-lg-10 {\n margin-left: 83.33333333%;\n }\n\n .offset-lg-11 {\n margin-left: 91.66666667%;\n }\n\n .g-lg-0,\n.gx-lg-0 {\n --bs-gutter-x: 0;\n }\n\n .g-lg-0,\n.gy-lg-0 {\n --bs-gutter-y: 0;\n }\n\n .g-lg-1,\n.gx-lg-1 {\n --bs-gutter-x: 0.25rem;\n }\n\n .g-lg-1,\n.gy-lg-1 {\n --bs-gutter-y: 0.25rem;\n }\n\n .g-lg-2,\n.gx-lg-2 {\n --bs-gutter-x: 0.5rem;\n }\n\n .g-lg-2,\n.gy-lg-2 {\n --bs-gutter-y: 0.5rem;\n }\n\n .g-lg-3,\n.gx-lg-3 {\n --bs-gutter-x: 1rem;\n }\n\n .g-lg-3,\n.gy-lg-3 {\n --bs-gutter-y: 1rem;\n }\n\n .g-lg-4,\n.gx-lg-4 {\n --bs-gutter-x: 1.5rem;\n }\n\n .g-lg-4,\n.gy-lg-4 {\n --bs-gutter-y: 1.5rem;\n }\n\n .g-lg-5,\n.gx-lg-5 {\n --bs-gutter-x: 3rem;\n }\n\n .g-lg-5,\n.gy-lg-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1200px) {\n .col-xl {\n flex: 1 0 0%;\n }\n\n .row-cols-xl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n\n .row-cols-xl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .row-cols-xl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .row-cols-xl-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n .row-cols-xl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .row-cols-xl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n\n .row-cols-xl-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n\n .col-xl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n\n .col-xl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n\n .col-xl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .col-xl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n\n .col-xl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n\n .col-xl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .col-xl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n\n .col-xl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n\n .col-xl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n\n .col-xl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n\n .col-xl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n\n .col-xl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .offset-xl-0 {\n margin-left: 0;\n }\n\n .offset-xl-1 {\n margin-left: 8.33333333%;\n }\n\n .offset-xl-2 {\n margin-left: 16.66666667%;\n }\n\n .offset-xl-3 {\n margin-left: 25%;\n }\n\n .offset-xl-4 {\n margin-left: 33.33333333%;\n }\n\n .offset-xl-5 {\n margin-left: 41.66666667%;\n }\n\n .offset-xl-6 {\n margin-left: 50%;\n }\n\n .offset-xl-7 {\n margin-left: 58.33333333%;\n }\n\n .offset-xl-8 {\n margin-left: 66.66666667%;\n }\n\n .offset-xl-9 {\n margin-left: 75%;\n }\n\n .offset-xl-10 {\n margin-left: 83.33333333%;\n }\n\n .offset-xl-11 {\n margin-left: 91.66666667%;\n }\n\n .g-xl-0,\n.gx-xl-0 {\n --bs-gutter-x: 0;\n }\n\n .g-xl-0,\n.gy-xl-0 {\n --bs-gutter-y: 0;\n }\n\n .g-xl-1,\n.gx-xl-1 {\n --bs-gutter-x: 0.25rem;\n }\n\n .g-xl-1,\n.gy-xl-1 {\n --bs-gutter-y: 0.25rem;\n }\n\n .g-xl-2,\n.gx-xl-2 {\n --bs-gutter-x: 0.5rem;\n }\n\n .g-xl-2,\n.gy-xl-2 {\n --bs-gutter-y: 0.5rem;\n }\n\n .g-xl-3,\n.gx-xl-3 {\n --bs-gutter-x: 1rem;\n }\n\n .g-xl-3,\n.gy-xl-3 {\n --bs-gutter-y: 1rem;\n }\n\n .g-xl-4,\n.gx-xl-4 {\n --bs-gutter-x: 1.5rem;\n }\n\n .g-xl-4,\n.gy-xl-4 {\n --bs-gutter-y: 1.5rem;\n }\n\n .g-xl-5,\n.gx-xl-5 {\n --bs-gutter-x: 3rem;\n }\n\n .g-xl-5,\n.gy-xl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1400px) {\n .col-xxl {\n flex: 1 0 0%;\n }\n\n .row-cols-xxl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n\n .row-cols-xxl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .row-cols-xxl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .row-cols-xxl-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n .row-cols-xxl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .row-cols-xxl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n\n .row-cols-xxl-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n .col-xxl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n\n .col-xxl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n\n .col-xxl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n\n .col-xxl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .col-xxl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n\n .col-xxl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n\n .col-xxl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .col-xxl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n\n .col-xxl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n\n .col-xxl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n\n .col-xxl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n\n .col-xxl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n\n .col-xxl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .offset-xxl-0 {\n margin-left: 0;\n }\n\n .offset-xxl-1 {\n margin-left: 8.33333333%;\n }\n\n .offset-xxl-2 {\n margin-left: 16.66666667%;\n }\n\n .offset-xxl-3 {\n margin-left: 25%;\n }\n\n .offset-xxl-4 {\n margin-left: 33.33333333%;\n }\n\n .offset-xxl-5 {\n margin-left: 41.66666667%;\n }\n\n .offset-xxl-6 {\n margin-left: 50%;\n }\n\n .offset-xxl-7 {\n margin-left: 58.33333333%;\n }\n\n .offset-xxl-8 {\n margin-left: 66.66666667%;\n }\n\n .offset-xxl-9 {\n margin-left: 75%;\n }\n\n .offset-xxl-10 {\n margin-left: 83.33333333%;\n }\n\n .offset-xxl-11 {\n margin-left: 91.66666667%;\n }\n\n .g-xxl-0,\n.gx-xxl-0 {\n --bs-gutter-x: 0;\n }\n\n .g-xxl-0,\n.gy-xxl-0 {\n --bs-gutter-y: 0;\n }\n\n .g-xxl-1,\n.gx-xxl-1 {\n --bs-gutter-x: 0.25rem;\n }\n\n .g-xxl-1,\n.gy-xxl-1 {\n --bs-gutter-y: 0.25rem;\n }\n\n .g-xxl-2,\n.gx-xxl-2 {\n --bs-gutter-x: 0.5rem;\n }\n\n .g-xxl-2,\n.gy-xxl-2 {\n --bs-gutter-y: 0.5rem;\n }\n\n .g-xxl-3,\n.gx-xxl-3 {\n --bs-gutter-x: 1rem;\n }\n\n .g-xxl-3,\n.gy-xxl-3 {\n --bs-gutter-y: 1rem;\n }\n\n .g-xxl-4,\n.gx-xxl-4 {\n --bs-gutter-x: 1.5rem;\n }\n\n .g-xxl-4,\n.gy-xxl-4 {\n --bs-gutter-y: 1.5rem;\n }\n\n .g-xxl-5,\n.gx-xxl-5 {\n --bs-gutter-x: 3rem;\n }\n\n .g-xxl-5,\n.gy-xxl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-grid {\n display: grid !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.justify-content-evenly {\n justify-content: space-evenly !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n.order-first {\n order: -1 !important;\n}\n\n.order-0 {\n order: 0 !important;\n}\n\n.order-1 {\n order: 1 !important;\n}\n\n.order-2 {\n order: 2 !important;\n}\n\n.order-3 {\n order: 3 !important;\n}\n\n.order-4 {\n order: 4 !important;\n}\n\n.order-5 {\n order: 5 !important;\n}\n\n.order-last {\n order: 6 !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mx-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n}\n\n.mx-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n}\n\n.mx-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n}\n\n.mx-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n}\n\n.mx-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n}\n\n.mx-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n}\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n.my-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n}\n\n.my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n}\n\n.my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n}\n\n.my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n}\n\n.my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n}\n\n.my-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n}\n\n.my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n}\n\n.mt-0 {\n margin-top: 0 !important;\n}\n\n.mt-1 {\n margin-top: 0.25rem !important;\n}\n\n.mt-2 {\n margin-top: 0.5rem !important;\n}\n\n.mt-3 {\n margin-top: 1rem !important;\n}\n\n.mt-4 {\n margin-top: 1.5rem !important;\n}\n\n.mt-5 {\n margin-top: 3rem !important;\n}\n\n.mt-auto {\n margin-top: auto !important;\n}\n\n.me-0 {\n margin-right: 0 !important;\n}\n\n.me-1 {\n margin-right: 0.25rem !important;\n}\n\n.me-2 {\n margin-right: 0.5rem !important;\n}\n\n.me-3 {\n margin-right: 1rem !important;\n}\n\n.me-4 {\n margin-right: 1.5rem !important;\n}\n\n.me-5 {\n margin-right: 3rem !important;\n}\n\n.me-auto {\n margin-right: auto !important;\n}\n\n.mb-0 {\n margin-bottom: 0 !important;\n}\n\n.mb-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.mb-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.mb-3 {\n margin-bottom: 1rem !important;\n}\n\n.mb-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.mb-5 {\n margin-bottom: 3rem !important;\n}\n\n.mb-auto {\n margin-bottom: auto !important;\n}\n\n.ms-0 {\n margin-left: 0 !important;\n}\n\n.ms-1 {\n margin-left: 0.25rem !important;\n}\n\n.ms-2 {\n margin-left: 0.5rem !important;\n}\n\n.ms-3 {\n margin-left: 1rem !important;\n}\n\n.ms-4 {\n margin-left: 1.5rem !important;\n}\n\n.ms-5 {\n margin-left: 3rem !important;\n}\n\n.ms-auto {\n margin-left: auto !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.px-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n}\n\n.px-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n}\n\n.px-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n}\n\n.px-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n}\n\n.px-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n}\n\n.px-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n}\n\n.py-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n}\n\n.py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n}\n\n.py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n}\n\n.py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n}\n\n.py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n}\n\n.py-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n}\n\n.pt-0 {\n padding-top: 0 !important;\n}\n\n.pt-1 {\n padding-top: 0.25rem !important;\n}\n\n.pt-2 {\n padding-top: 0.5rem !important;\n}\n\n.pt-3 {\n padding-top: 1rem !important;\n}\n\n.pt-4 {\n padding-top: 1.5rem !important;\n}\n\n.pt-5 {\n padding-top: 3rem !important;\n}\n\n.pe-0 {\n padding-right: 0 !important;\n}\n\n.pe-1 {\n padding-right: 0.25rem !important;\n}\n\n.pe-2 {\n padding-right: 0.5rem !important;\n}\n\n.pe-3 {\n padding-right: 1rem !important;\n}\n\n.pe-4 {\n padding-right: 1.5rem !important;\n}\n\n.pe-5 {\n padding-right: 3rem !important;\n}\n\n.pb-0 {\n padding-bottom: 0 !important;\n}\n\n.pb-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pb-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pb-3 {\n padding-bottom: 1rem !important;\n}\n\n.pb-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pb-5 {\n padding-bottom: 3rem !important;\n}\n\n.ps-0 {\n padding-left: 0 !important;\n}\n\n.ps-1 {\n padding-left: 0.25rem !important;\n}\n\n.ps-2 {\n padding-left: 0.5rem !important;\n}\n\n.ps-3 {\n padding-left: 1rem !important;\n}\n\n.ps-4 {\n padding-left: 1.5rem !important;\n}\n\n.ps-5 {\n padding-left: 3rem !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-inline {\n display: inline !important;\n }\n\n .d-sm-inline-block {\n display: inline-block !important;\n }\n\n .d-sm-block {\n display: block !important;\n }\n\n .d-sm-grid {\n display: grid !important;\n }\n\n .d-sm-table {\n display: table !important;\n }\n\n .d-sm-table-row {\n display: table-row !important;\n }\n\n .d-sm-table-cell {\n display: table-cell !important;\n }\n\n .d-sm-flex {\n display: flex !important;\n }\n\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n\n .d-sm-none {\n display: none !important;\n }\n\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-sm-row {\n flex-direction: row !important;\n }\n\n .flex-sm-column {\n flex-direction: column !important;\n }\n\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-sm-center {\n justify-content: center !important;\n }\n\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n\n .justify-content-sm-evenly {\n justify-content: space-evenly !important;\n }\n\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n\n .align-items-sm-center {\n align-items: center !important;\n }\n\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n\n .align-content-sm-center {\n align-content: center !important;\n }\n\n .align-content-sm-between {\n align-content: space-between !important;\n }\n\n .align-content-sm-around {\n align-content: space-around !important;\n }\n\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n\n .align-self-sm-auto {\n align-self: auto !important;\n }\n\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n\n .align-self-sm-center {\n align-self: center !important;\n }\n\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n\n .order-sm-first {\n order: -1 !important;\n }\n\n .order-sm-0 {\n order: 0 !important;\n }\n\n .order-sm-1 {\n order: 1 !important;\n }\n\n .order-sm-2 {\n order: 2 !important;\n }\n\n .order-sm-3 {\n order: 3 !important;\n }\n\n .order-sm-4 {\n order: 4 !important;\n }\n\n .order-sm-5 {\n order: 5 !important;\n }\n\n .order-sm-last {\n order: 6 !important;\n }\n\n .m-sm-0 {\n margin: 0 !important;\n }\n\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n\n .m-sm-3 {\n margin: 1rem !important;\n }\n\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n\n .m-sm-5 {\n margin: 3rem !important;\n }\n\n .m-sm-auto {\n margin: auto !important;\n }\n\n .mx-sm-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n\n .mx-sm-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n\n .mx-sm-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n\n .mx-sm-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n .my-sm-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n\n .my-sm-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n\n .my-sm-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n\n .my-sm-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n\n .my-sm-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n\n .my-sm-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n\n .my-sm-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n\n .mt-sm-0 {\n margin-top: 0 !important;\n }\n\n .mt-sm-1 {\n margin-top: 0.25rem !important;\n }\n\n .mt-sm-2 {\n margin-top: 0.5rem !important;\n }\n\n .mt-sm-3 {\n margin-top: 1rem !important;\n }\n\n .mt-sm-4 {\n margin-top: 1.5rem !important;\n }\n\n .mt-sm-5 {\n margin-top: 3rem !important;\n }\n\n .mt-sm-auto {\n margin-top: auto !important;\n }\n\n .me-sm-0 {\n margin-right: 0 !important;\n }\n\n .me-sm-1 {\n margin-right: 0.25rem !important;\n }\n\n .me-sm-2 {\n margin-right: 0.5rem !important;\n }\n\n .me-sm-3 {\n margin-right: 1rem !important;\n }\n\n .me-sm-4 {\n margin-right: 1.5rem !important;\n }\n\n .me-sm-5 {\n margin-right: 3rem !important;\n }\n\n .me-sm-auto {\n margin-right: auto !important;\n }\n\n .mb-sm-0 {\n margin-bottom: 0 !important;\n }\n\n .mb-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .mb-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .mb-sm-3 {\n margin-bottom: 1rem !important;\n }\n\n .mb-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .mb-sm-5 {\n margin-bottom: 3rem !important;\n }\n\n .mb-sm-auto {\n margin-bottom: auto !important;\n }\n\n .ms-sm-0 {\n margin-left: 0 !important;\n }\n\n .ms-sm-1 {\n margin-left: 0.25rem !important;\n }\n\n .ms-sm-2 {\n margin-left: 0.5rem !important;\n }\n\n .ms-sm-3 {\n margin-left: 1rem !important;\n }\n\n .ms-sm-4 {\n margin-left: 1.5rem !important;\n }\n\n .ms-sm-5 {\n margin-left: 3rem !important;\n }\n\n .ms-sm-auto {\n margin-left: auto !important;\n }\n\n .p-sm-0 {\n padding: 0 !important;\n }\n\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n\n .p-sm-3 {\n padding: 1rem !important;\n }\n\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n\n .p-sm-5 {\n padding: 3rem !important;\n }\n\n .px-sm-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n\n .px-sm-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n\n .px-sm-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n\n .px-sm-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n\n .px-sm-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n\n .px-sm-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n\n .py-sm-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n\n .py-sm-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n\n .py-sm-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n\n .py-sm-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n\n .py-sm-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n\n .py-sm-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pt-sm-0 {\n padding-top: 0 !important;\n }\n\n .pt-sm-1 {\n padding-top: 0.25rem !important;\n }\n\n .pt-sm-2 {\n padding-top: 0.5rem !important;\n }\n\n .pt-sm-3 {\n padding-top: 1rem !important;\n }\n\n .pt-sm-4 {\n padding-top: 1.5rem !important;\n }\n\n .pt-sm-5 {\n padding-top: 3rem !important;\n }\n\n .pe-sm-0 {\n padding-right: 0 !important;\n }\n\n .pe-sm-1 {\n padding-right: 0.25rem !important;\n }\n\n .pe-sm-2 {\n padding-right: 0.5rem !important;\n }\n\n .pe-sm-3 {\n padding-right: 1rem !important;\n }\n\n .pe-sm-4 {\n padding-right: 1.5rem !important;\n }\n\n .pe-sm-5 {\n padding-right: 3rem !important;\n }\n\n .pb-sm-0 {\n padding-bottom: 0 !important;\n }\n\n .pb-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pb-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pb-sm-3 {\n padding-bottom: 1rem !important;\n }\n\n .pb-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pb-sm-5 {\n padding-bottom: 3rem !important;\n }\n\n .ps-sm-0 {\n padding-left: 0 !important;\n }\n\n .ps-sm-1 {\n padding-left: 0.25rem !important;\n }\n\n .ps-sm-2 {\n padding-left: 0.5rem !important;\n }\n\n .ps-sm-3 {\n padding-left: 1rem !important;\n }\n\n .ps-sm-4 {\n padding-left: 1.5rem !important;\n }\n\n .ps-sm-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 768px) {\n .d-md-inline {\n display: inline !important;\n }\n\n .d-md-inline-block {\n display: inline-block !important;\n }\n\n .d-md-block {\n display: block !important;\n }\n\n .d-md-grid {\n display: grid !important;\n }\n\n .d-md-table {\n display: table !important;\n }\n\n .d-md-table-row {\n display: table-row !important;\n }\n\n .d-md-table-cell {\n display: table-cell !important;\n }\n\n .d-md-flex {\n display: flex !important;\n }\n\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n\n .d-md-none {\n display: none !important;\n }\n\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-md-row {\n flex-direction: row !important;\n }\n\n .flex-md-column {\n flex-direction: column !important;\n }\n\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-md-center {\n justify-content: center !important;\n }\n\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n\n .justify-content-md-evenly {\n justify-content: space-evenly !important;\n }\n\n .align-items-md-start {\n align-items: flex-start !important;\n }\n\n .align-items-md-end {\n align-items: flex-end !important;\n }\n\n .align-items-md-center {\n align-items: center !important;\n }\n\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n\n .align-content-md-start {\n align-content: flex-start !important;\n }\n\n .align-content-md-end {\n align-content: flex-end !important;\n }\n\n .align-content-md-center {\n align-content: center !important;\n }\n\n .align-content-md-between {\n align-content: space-between !important;\n }\n\n .align-content-md-around {\n align-content: space-around !important;\n }\n\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n\n .align-self-md-auto {\n align-self: auto !important;\n }\n\n .align-self-md-start {\n align-self: flex-start !important;\n }\n\n .align-self-md-end {\n align-self: flex-end !important;\n }\n\n .align-self-md-center {\n align-self: center !important;\n }\n\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n\n .order-md-first {\n order: -1 !important;\n }\n\n .order-md-0 {\n order: 0 !important;\n }\n\n .order-md-1 {\n order: 1 !important;\n }\n\n .order-md-2 {\n order: 2 !important;\n }\n\n .order-md-3 {\n order: 3 !important;\n }\n\n .order-md-4 {\n order: 4 !important;\n }\n\n .order-md-5 {\n order: 5 !important;\n }\n\n .order-md-last {\n order: 6 !important;\n }\n\n .m-md-0 {\n margin: 0 !important;\n }\n\n .m-md-1 {\n margin: 0.25rem !important;\n }\n\n .m-md-2 {\n margin: 0.5rem !important;\n }\n\n .m-md-3 {\n margin: 1rem !important;\n }\n\n .m-md-4 {\n margin: 1.5rem !important;\n }\n\n .m-md-5 {\n margin: 3rem !important;\n }\n\n .m-md-auto {\n margin: auto !important;\n }\n\n .mx-md-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n\n .mx-md-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n\n .mx-md-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n\n .mx-md-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n\n .mx-md-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n\n .mx-md-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n\n .mx-md-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n .my-md-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n\n .my-md-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n\n .my-md-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n\n .my-md-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n\n .my-md-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n\n .my-md-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n\n .my-md-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n\n .mt-md-0 {\n margin-top: 0 !important;\n }\n\n .mt-md-1 {\n margin-top: 0.25rem !important;\n }\n\n .mt-md-2 {\n margin-top: 0.5rem !important;\n }\n\n .mt-md-3 {\n margin-top: 1rem !important;\n }\n\n .mt-md-4 {\n margin-top: 1.5rem !important;\n }\n\n .mt-md-5 {\n margin-top: 3rem !important;\n }\n\n .mt-md-auto {\n margin-top: auto !important;\n }\n\n .me-md-0 {\n margin-right: 0 !important;\n }\n\n .me-md-1 {\n margin-right: 0.25rem !important;\n }\n\n .me-md-2 {\n margin-right: 0.5rem !important;\n }\n\n .me-md-3 {\n margin-right: 1rem !important;\n }\n\n .me-md-4 {\n margin-right: 1.5rem !important;\n }\n\n .me-md-5 {\n margin-right: 3rem !important;\n }\n\n .me-md-auto {\n margin-right: auto !important;\n }\n\n .mb-md-0 {\n margin-bottom: 0 !important;\n }\n\n .mb-md-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .mb-md-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .mb-md-3 {\n margin-bottom: 1rem !important;\n }\n\n .mb-md-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .mb-md-5 {\n margin-bottom: 3rem !important;\n }\n\n .mb-md-auto {\n margin-bottom: auto !important;\n }\n\n .ms-md-0 {\n margin-left: 0 !important;\n }\n\n .ms-md-1 {\n margin-left: 0.25rem !important;\n }\n\n .ms-md-2 {\n margin-left: 0.5rem !important;\n }\n\n .ms-md-3 {\n margin-left: 1rem !important;\n }\n\n .ms-md-4 {\n margin-left: 1.5rem !important;\n }\n\n .ms-md-5 {\n margin-left: 3rem !important;\n }\n\n .ms-md-auto {\n margin-left: auto !important;\n }\n\n .p-md-0 {\n padding: 0 !important;\n }\n\n .p-md-1 {\n padding: 0.25rem !important;\n }\n\n .p-md-2 {\n padding: 0.5rem !important;\n }\n\n .p-md-3 {\n padding: 1rem !important;\n }\n\n .p-md-4 {\n padding: 1.5rem !important;\n }\n\n .p-md-5 {\n padding: 3rem !important;\n }\n\n .px-md-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n\n .px-md-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n\n .px-md-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n\n .px-md-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n\n .px-md-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n\n .px-md-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n\n .py-md-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n\n .py-md-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n\n .py-md-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n\n .py-md-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n\n .py-md-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n\n .py-md-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pt-md-0 {\n padding-top: 0 !important;\n }\n\n .pt-md-1 {\n padding-top: 0.25rem !important;\n }\n\n .pt-md-2 {\n padding-top: 0.5rem !important;\n }\n\n .pt-md-3 {\n padding-top: 1rem !important;\n }\n\n .pt-md-4 {\n padding-top: 1.5rem !important;\n }\n\n .pt-md-5 {\n padding-top: 3rem !important;\n }\n\n .pe-md-0 {\n padding-right: 0 !important;\n }\n\n .pe-md-1 {\n padding-right: 0.25rem !important;\n }\n\n .pe-md-2 {\n padding-right: 0.5rem !important;\n }\n\n .pe-md-3 {\n padding-right: 1rem !important;\n }\n\n .pe-md-4 {\n padding-right: 1.5rem !important;\n }\n\n .pe-md-5 {\n padding-right: 3rem !important;\n }\n\n .pb-md-0 {\n padding-bottom: 0 !important;\n }\n\n .pb-md-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pb-md-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pb-md-3 {\n padding-bottom: 1rem !important;\n }\n\n .pb-md-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pb-md-5 {\n padding-bottom: 3rem !important;\n }\n\n .ps-md-0 {\n padding-left: 0 !important;\n }\n\n .ps-md-1 {\n padding-left: 0.25rem !important;\n }\n\n .ps-md-2 {\n padding-left: 0.5rem !important;\n }\n\n .ps-md-3 {\n padding-left: 1rem !important;\n }\n\n .ps-md-4 {\n padding-left: 1.5rem !important;\n }\n\n .ps-md-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 992px) {\n .d-lg-inline {\n display: inline !important;\n }\n\n .d-lg-inline-block {\n display: inline-block !important;\n }\n\n .d-lg-block {\n display: block !important;\n }\n\n .d-lg-grid {\n display: grid !important;\n }\n\n .d-lg-table {\n display: table !important;\n }\n\n .d-lg-table-row {\n display: table-row !important;\n }\n\n .d-lg-table-cell {\n display: table-cell !important;\n }\n\n .d-lg-flex {\n display: flex !important;\n }\n\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n\n .d-lg-none {\n display: none !important;\n }\n\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-lg-row {\n flex-direction: row !important;\n }\n\n .flex-lg-column {\n flex-direction: column !important;\n }\n\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-lg-center {\n justify-content: center !important;\n }\n\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n\n .justify-content-lg-evenly {\n justify-content: space-evenly !important;\n }\n\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n\n .align-items-lg-center {\n align-items: center !important;\n }\n\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n\n .align-content-lg-center {\n align-content: center !important;\n }\n\n .align-content-lg-between {\n align-content: space-between !important;\n }\n\n .align-content-lg-around {\n align-content: space-around !important;\n }\n\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n\n .align-self-lg-auto {\n align-self: auto !important;\n }\n\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n\n .align-self-lg-center {\n align-self: center !important;\n }\n\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n\n .order-lg-first {\n order: -1 !important;\n }\n\n .order-lg-0 {\n order: 0 !important;\n }\n\n .order-lg-1 {\n order: 1 !important;\n }\n\n .order-lg-2 {\n order: 2 !important;\n }\n\n .order-lg-3 {\n order: 3 !important;\n }\n\n .order-lg-4 {\n order: 4 !important;\n }\n\n .order-lg-5 {\n order: 5 !important;\n }\n\n .order-lg-last {\n order: 6 !important;\n }\n\n .m-lg-0 {\n margin: 0 !important;\n }\n\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n\n .m-lg-3 {\n margin: 1rem !important;\n }\n\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n\n .m-lg-5 {\n margin: 3rem !important;\n }\n\n .m-lg-auto {\n margin: auto !important;\n }\n\n .mx-lg-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n\n .mx-lg-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n\n .mx-lg-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n\n .mx-lg-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n .my-lg-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n\n .my-lg-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n\n .my-lg-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n\n .my-lg-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n\n .my-lg-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n\n .my-lg-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n\n .my-lg-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n\n .mt-lg-0 {\n margin-top: 0 !important;\n }\n\n .mt-lg-1 {\n margin-top: 0.25rem !important;\n }\n\n .mt-lg-2 {\n margin-top: 0.5rem !important;\n }\n\n .mt-lg-3 {\n margin-top: 1rem !important;\n }\n\n .mt-lg-4 {\n margin-top: 1.5rem !important;\n }\n\n .mt-lg-5 {\n margin-top: 3rem !important;\n }\n\n .mt-lg-auto {\n margin-top: auto !important;\n }\n\n .me-lg-0 {\n margin-right: 0 !important;\n }\n\n .me-lg-1 {\n margin-right: 0.25rem !important;\n }\n\n .me-lg-2 {\n margin-right: 0.5rem !important;\n }\n\n .me-lg-3 {\n margin-right: 1rem !important;\n }\n\n .me-lg-4 {\n margin-right: 1.5rem !important;\n }\n\n .me-lg-5 {\n margin-right: 3rem !important;\n }\n\n .me-lg-auto {\n margin-right: auto !important;\n }\n\n .mb-lg-0 {\n margin-bottom: 0 !important;\n }\n\n .mb-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .mb-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .mb-lg-3 {\n margin-bottom: 1rem !important;\n }\n\n .mb-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .mb-lg-5 {\n margin-bottom: 3rem !important;\n }\n\n .mb-lg-auto {\n margin-bottom: auto !important;\n }\n\n .ms-lg-0 {\n margin-left: 0 !important;\n }\n\n .ms-lg-1 {\n margin-left: 0.25rem !important;\n }\n\n .ms-lg-2 {\n margin-left: 0.5rem !important;\n }\n\n .ms-lg-3 {\n margin-left: 1rem !important;\n }\n\n .ms-lg-4 {\n margin-left: 1.5rem !important;\n }\n\n .ms-lg-5 {\n margin-left: 3rem !important;\n }\n\n .ms-lg-auto {\n margin-left: auto !important;\n }\n\n .p-lg-0 {\n padding: 0 !important;\n }\n\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n\n .p-lg-3 {\n padding: 1rem !important;\n }\n\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n\n .p-lg-5 {\n padding: 3rem !important;\n }\n\n .px-lg-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n\n .px-lg-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n\n .px-lg-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n\n .px-lg-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n\n .px-lg-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n\n .px-lg-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n\n .py-lg-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n\n .py-lg-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n\n .py-lg-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n\n .py-lg-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n\n .py-lg-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n\n .py-lg-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pt-lg-0 {\n padding-top: 0 !important;\n }\n\n .pt-lg-1 {\n padding-top: 0.25rem !important;\n }\n\n .pt-lg-2 {\n padding-top: 0.5rem !important;\n }\n\n .pt-lg-3 {\n padding-top: 1rem !important;\n }\n\n .pt-lg-4 {\n padding-top: 1.5rem !important;\n }\n\n .pt-lg-5 {\n padding-top: 3rem !important;\n }\n\n .pe-lg-0 {\n padding-right: 0 !important;\n }\n\n .pe-lg-1 {\n padding-right: 0.25rem !important;\n }\n\n .pe-lg-2 {\n padding-right: 0.5rem !important;\n }\n\n .pe-lg-3 {\n padding-right: 1rem !important;\n }\n\n .pe-lg-4 {\n padding-right: 1.5rem !important;\n }\n\n .pe-lg-5 {\n padding-right: 3rem !important;\n }\n\n .pb-lg-0 {\n padding-bottom: 0 !important;\n }\n\n .pb-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pb-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pb-lg-3 {\n padding-bottom: 1rem !important;\n }\n\n .pb-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pb-lg-5 {\n padding-bottom: 3rem !important;\n }\n\n .ps-lg-0 {\n padding-left: 0 !important;\n }\n\n .ps-lg-1 {\n padding-left: 0.25rem !important;\n }\n\n .ps-lg-2 {\n padding-left: 0.5rem !important;\n }\n\n .ps-lg-3 {\n padding-left: 1rem !important;\n }\n\n .ps-lg-4 {\n padding-left: 1.5rem !important;\n }\n\n .ps-lg-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 1200px) {\n .d-xl-inline {\n display: inline !important;\n }\n\n .d-xl-inline-block {\n display: inline-block !important;\n }\n\n .d-xl-block {\n display: block !important;\n }\n\n .d-xl-grid {\n display: grid !important;\n }\n\n .d-xl-table {\n display: table !important;\n }\n\n .d-xl-table-row {\n display: table-row !important;\n }\n\n .d-xl-table-cell {\n display: table-cell !important;\n }\n\n .d-xl-flex {\n display: flex !important;\n }\n\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n\n .d-xl-none {\n display: none !important;\n }\n\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-xl-row {\n flex-direction: row !important;\n }\n\n .flex-xl-column {\n flex-direction: column !important;\n }\n\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-xl-center {\n justify-content: center !important;\n }\n\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n\n .justify-content-xl-evenly {\n justify-content: space-evenly !important;\n }\n\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n\n .align-items-xl-center {\n align-items: center !important;\n }\n\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n\n .align-content-xl-center {\n align-content: center !important;\n }\n\n .align-content-xl-between {\n align-content: space-between !important;\n }\n\n .align-content-xl-around {\n align-content: space-around !important;\n }\n\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n\n .align-self-xl-auto {\n align-self: auto !important;\n }\n\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n\n .align-self-xl-center {\n align-self: center !important;\n }\n\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n\n .order-xl-first {\n order: -1 !important;\n }\n\n .order-xl-0 {\n order: 0 !important;\n }\n\n .order-xl-1 {\n order: 1 !important;\n }\n\n .order-xl-2 {\n order: 2 !important;\n }\n\n .order-xl-3 {\n order: 3 !important;\n }\n\n .order-xl-4 {\n order: 4 !important;\n }\n\n .order-xl-5 {\n order: 5 !important;\n }\n\n .order-xl-last {\n order: 6 !important;\n }\n\n .m-xl-0 {\n margin: 0 !important;\n }\n\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n\n .m-xl-3 {\n margin: 1rem !important;\n }\n\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n\n .m-xl-5 {\n margin: 3rem !important;\n }\n\n .m-xl-auto {\n margin: auto !important;\n }\n\n .mx-xl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n\n .mx-xl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n\n .mx-xl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n\n .mx-xl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n .my-xl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n\n .my-xl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n\n .my-xl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n\n .my-xl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n\n .my-xl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n\n .my-xl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n\n .my-xl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n\n .mt-xl-0 {\n margin-top: 0 !important;\n }\n\n .mt-xl-1 {\n margin-top: 0.25rem !important;\n }\n\n .mt-xl-2 {\n margin-top: 0.5rem !important;\n }\n\n .mt-xl-3 {\n margin-top: 1rem !important;\n }\n\n .mt-xl-4 {\n margin-top: 1.5rem !important;\n }\n\n .mt-xl-5 {\n margin-top: 3rem !important;\n }\n\n .mt-xl-auto {\n margin-top: auto !important;\n }\n\n .me-xl-0 {\n margin-right: 0 !important;\n }\n\n .me-xl-1 {\n margin-right: 0.25rem !important;\n }\n\n .me-xl-2 {\n margin-right: 0.5rem !important;\n }\n\n .me-xl-3 {\n margin-right: 1rem !important;\n }\n\n .me-xl-4 {\n margin-right: 1.5rem !important;\n }\n\n .me-xl-5 {\n margin-right: 3rem !important;\n }\n\n .me-xl-auto {\n margin-right: auto !important;\n }\n\n .mb-xl-0 {\n margin-bottom: 0 !important;\n }\n\n .mb-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .mb-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .mb-xl-3 {\n margin-bottom: 1rem !important;\n }\n\n .mb-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .mb-xl-5 {\n margin-bottom: 3rem !important;\n }\n\n .mb-xl-auto {\n margin-bottom: auto !important;\n }\n\n .ms-xl-0 {\n margin-left: 0 !important;\n }\n\n .ms-xl-1 {\n margin-left: 0.25rem !important;\n }\n\n .ms-xl-2 {\n margin-left: 0.5rem !important;\n }\n\n .ms-xl-3 {\n margin-left: 1rem !important;\n }\n\n .ms-xl-4 {\n margin-left: 1.5rem !important;\n }\n\n .ms-xl-5 {\n margin-left: 3rem !important;\n }\n\n .ms-xl-auto {\n margin-left: auto !important;\n }\n\n .p-xl-0 {\n padding: 0 !important;\n }\n\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n\n .p-xl-3 {\n padding: 1rem !important;\n }\n\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n\n .p-xl-5 {\n padding: 3rem !important;\n }\n\n .px-xl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n\n .px-xl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n\n .px-xl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n\n .px-xl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n\n .px-xl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n\n .px-xl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n\n .py-xl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n\n .py-xl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n\n .py-xl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n\n .py-xl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n\n .py-xl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n\n .py-xl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pt-xl-0 {\n padding-top: 0 !important;\n }\n\n .pt-xl-1 {\n padding-top: 0.25rem !important;\n }\n\n .pt-xl-2 {\n padding-top: 0.5rem !important;\n }\n\n .pt-xl-3 {\n padding-top: 1rem !important;\n }\n\n .pt-xl-4 {\n padding-top: 1.5rem !important;\n }\n\n .pt-xl-5 {\n padding-top: 3rem !important;\n }\n\n .pe-xl-0 {\n padding-right: 0 !important;\n }\n\n .pe-xl-1 {\n padding-right: 0.25rem !important;\n }\n\n .pe-xl-2 {\n padding-right: 0.5rem !important;\n }\n\n .pe-xl-3 {\n padding-right: 1rem !important;\n }\n\n .pe-xl-4 {\n padding-right: 1.5rem !important;\n }\n\n .pe-xl-5 {\n padding-right: 3rem !important;\n }\n\n .pb-xl-0 {\n padding-bottom: 0 !important;\n }\n\n .pb-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pb-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pb-xl-3 {\n padding-bottom: 1rem !important;\n }\n\n .pb-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pb-xl-5 {\n padding-bottom: 3rem !important;\n }\n\n .ps-xl-0 {\n padding-left: 0 !important;\n }\n\n .ps-xl-1 {\n padding-left: 0.25rem !important;\n }\n\n .ps-xl-2 {\n padding-left: 0.5rem !important;\n }\n\n .ps-xl-3 {\n padding-left: 1rem !important;\n }\n\n .ps-xl-4 {\n padding-left: 1.5rem !important;\n }\n\n .ps-xl-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 1400px) {\n .d-xxl-inline {\n display: inline !important;\n }\n\n .d-xxl-inline-block {\n display: inline-block !important;\n }\n\n .d-xxl-block {\n display: block !important;\n }\n\n .d-xxl-grid {\n display: grid !important;\n }\n\n .d-xxl-table {\n display: table !important;\n }\n\n .d-xxl-table-row {\n display: table-row !important;\n }\n\n .d-xxl-table-cell {\n display: table-cell !important;\n }\n\n .d-xxl-flex {\n display: flex !important;\n }\n\n .d-xxl-inline-flex {\n display: inline-flex !important;\n }\n\n .d-xxl-none {\n display: none !important;\n }\n\n .flex-xxl-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-xxl-row {\n flex-direction: row !important;\n }\n\n .flex-xxl-column {\n flex-direction: column !important;\n }\n\n .flex-xxl-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-xxl-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-xxl-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-xxl-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-xxl-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-xxl-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .flex-xxl-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-xxl-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-xxl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .justify-content-xxl-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-xxl-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-xxl-center {\n justify-content: center !important;\n }\n\n .justify-content-xxl-between {\n justify-content: space-between !important;\n }\n\n .justify-content-xxl-around {\n justify-content: space-around !important;\n }\n\n .justify-content-xxl-evenly {\n justify-content: space-evenly !important;\n }\n\n .align-items-xxl-start {\n align-items: flex-start !important;\n }\n\n .align-items-xxl-end {\n align-items: flex-end !important;\n }\n\n .align-items-xxl-center {\n align-items: center !important;\n }\n\n .align-items-xxl-baseline {\n align-items: baseline !important;\n }\n\n .align-items-xxl-stretch {\n align-items: stretch !important;\n }\n\n .align-content-xxl-start {\n align-content: flex-start !important;\n }\n\n .align-content-xxl-end {\n align-content: flex-end !important;\n }\n\n .align-content-xxl-center {\n align-content: center !important;\n }\n\n .align-content-xxl-between {\n align-content: space-between !important;\n }\n\n .align-content-xxl-around {\n align-content: space-around !important;\n }\n\n .align-content-xxl-stretch {\n align-content: stretch !important;\n }\n\n .align-self-xxl-auto {\n align-self: auto !important;\n }\n\n .align-self-xxl-start {\n align-self: flex-start !important;\n }\n\n .align-self-xxl-end {\n align-self: flex-end !important;\n }\n\n .align-self-xxl-center {\n align-self: center !important;\n }\n\n .align-self-xxl-baseline {\n align-self: baseline !important;\n }\n\n .align-self-xxl-stretch {\n align-self: stretch !important;\n }\n\n .order-xxl-first {\n order: -1 !important;\n }\n\n .order-xxl-0 {\n order: 0 !important;\n }\n\n .order-xxl-1 {\n order: 1 !important;\n }\n\n .order-xxl-2 {\n order: 2 !important;\n }\n\n .order-xxl-3 {\n order: 3 !important;\n }\n\n .order-xxl-4 {\n order: 4 !important;\n }\n\n .order-xxl-5 {\n order: 5 !important;\n }\n\n .order-xxl-last {\n order: 6 !important;\n }\n\n .m-xxl-0 {\n margin: 0 !important;\n }\n\n .m-xxl-1 {\n margin: 0.25rem !important;\n }\n\n .m-xxl-2 {\n margin: 0.5rem !important;\n }\n\n .m-xxl-3 {\n margin: 1rem !important;\n }\n\n .m-xxl-4 {\n margin: 1.5rem !important;\n }\n\n .m-xxl-5 {\n margin: 3rem !important;\n }\n\n .m-xxl-auto {\n margin: auto !important;\n }\n\n .mx-xxl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n\n .mx-xxl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n\n .mx-xxl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n\n .mx-xxl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n\n .mx-xxl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n\n .mx-xxl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n\n .mx-xxl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n .my-xxl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n\n .my-xxl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n\n .my-xxl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n\n .my-xxl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n\n .my-xxl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n\n .my-xxl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n\n .my-xxl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n\n .mt-xxl-0 {\n margin-top: 0 !important;\n }\n\n .mt-xxl-1 {\n margin-top: 0.25rem !important;\n }\n\n .mt-xxl-2 {\n margin-top: 0.5rem !important;\n }\n\n .mt-xxl-3 {\n margin-top: 1rem !important;\n }\n\n .mt-xxl-4 {\n margin-top: 1.5rem !important;\n }\n\n .mt-xxl-5 {\n margin-top: 3rem !important;\n }\n\n .mt-xxl-auto {\n margin-top: auto !important;\n }\n\n .me-xxl-0 {\n margin-right: 0 !important;\n }\n\n .me-xxl-1 {\n margin-right: 0.25rem !important;\n }\n\n .me-xxl-2 {\n margin-right: 0.5rem !important;\n }\n\n .me-xxl-3 {\n margin-right: 1rem !important;\n }\n\n .me-xxl-4 {\n margin-right: 1.5rem !important;\n }\n\n .me-xxl-5 {\n margin-right: 3rem !important;\n }\n\n .me-xxl-auto {\n margin-right: auto !important;\n }\n\n .mb-xxl-0 {\n margin-bottom: 0 !important;\n }\n\n .mb-xxl-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .mb-xxl-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .mb-xxl-3 {\n margin-bottom: 1rem !important;\n }\n\n .mb-xxl-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .mb-xxl-5 {\n margin-bottom: 3rem !important;\n }\n\n .mb-xxl-auto {\n margin-bottom: auto !important;\n }\n\n .ms-xxl-0 {\n margin-left: 0 !important;\n }\n\n .ms-xxl-1 {\n margin-left: 0.25rem !important;\n }\n\n .ms-xxl-2 {\n margin-left: 0.5rem !important;\n }\n\n .ms-xxl-3 {\n margin-left: 1rem !important;\n }\n\n .ms-xxl-4 {\n margin-left: 1.5rem !important;\n }\n\n .ms-xxl-5 {\n margin-left: 3rem !important;\n }\n\n .ms-xxl-auto {\n margin-left: auto !important;\n }\n\n .p-xxl-0 {\n padding: 0 !important;\n }\n\n .p-xxl-1 {\n padding: 0.25rem !important;\n }\n\n .p-xxl-2 {\n padding: 0.5rem !important;\n }\n\n .p-xxl-3 {\n padding: 1rem !important;\n }\n\n .p-xxl-4 {\n padding: 1.5rem !important;\n }\n\n .p-xxl-5 {\n padding: 3rem !important;\n }\n\n .px-xxl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n\n .px-xxl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n\n .px-xxl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n\n .px-xxl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n\n .px-xxl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n\n .px-xxl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n\n .py-xxl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n\n .py-xxl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n\n .py-xxl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n\n .py-xxl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n\n .py-xxl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n\n .py-xxl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pt-xxl-0 {\n padding-top: 0 !important;\n }\n\n .pt-xxl-1 {\n padding-top: 0.25rem !important;\n }\n\n .pt-xxl-2 {\n padding-top: 0.5rem !important;\n }\n\n .pt-xxl-3 {\n padding-top: 1rem !important;\n }\n\n .pt-xxl-4 {\n padding-top: 1.5rem !important;\n }\n\n .pt-xxl-5 {\n padding-top: 3rem !important;\n }\n\n .pe-xxl-0 {\n padding-right: 0 !important;\n }\n\n .pe-xxl-1 {\n padding-right: 0.25rem !important;\n }\n\n .pe-xxl-2 {\n padding-right: 0.5rem !important;\n }\n\n .pe-xxl-3 {\n padding-right: 1rem !important;\n }\n\n .pe-xxl-4 {\n padding-right: 1.5rem !important;\n }\n\n .pe-xxl-5 {\n padding-right: 3rem !important;\n }\n\n .pb-xxl-0 {\n padding-bottom: 0 !important;\n }\n\n .pb-xxl-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pb-xxl-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pb-xxl-3 {\n padding-bottom: 1rem !important;\n }\n\n .pb-xxl-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pb-xxl-5 {\n padding-bottom: 3rem !important;\n }\n\n .ps-xxl-0 {\n padding-left: 0 !important;\n }\n\n .ps-xxl-1 {\n padding-left: 0.25rem !important;\n }\n\n .ps-xxl-2 {\n padding-left: 0.5rem !important;\n }\n\n .ps-xxl-3 {\n padding-left: 1rem !important;\n }\n\n .ps-xxl-4 {\n padding-left: 1.5rem !important;\n }\n\n .ps-xxl-5 {\n padding-left: 3rem !important;\n }\n}\n@media print {\n .d-print-inline {\n display: inline !important;\n }\n\n .d-print-inline-block {\n display: inline-block !important;\n }\n\n .d-print-block {\n display: block !important;\n }\n\n .d-print-grid {\n display: grid !important;\n }\n\n .d-print-table {\n display: table !important;\n }\n\n .d-print-table-row {\n display: table-row !important;\n }\n\n .d-print-table-cell {\n display: table-cell !important;\n }\n\n .d-print-flex {\n display: flex !important;\n }\n\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n\n .d-print-none {\n display: none !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n @each $name, $width in $grid-breakpoints {\n @if ($extend-breakpoint) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n}\n","// Container mixins\n\n@mixin make-container($gutter: $container-padding-x) {\n width: 100%;\n padding-right: var(--#{$variable-prefix}gutter-x, #{$gutter});\n padding-left: var(--#{$variable-prefix}gutter-x, #{$gutter});\n margin-right: auto;\n margin-left: auto;\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoints}`\";\n }\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width.\n// The maximum value is reduced by 0.02px to work around the limitations of\n// `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $max: map-get($breakpoints, $name);\n @return if($max and $max > 0, $max - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($next, $breakpoints) {\n @content;\n }\n }\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n// scss-docs-start gray-color-variables\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n// scss-docs-end gray-color-variables\n\n// fusv-disable\n// scss-docs-start gray-colors-map\n$grays: (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n) !default;\n// scss-docs-end gray-colors-map\n// fusv-enable\n\n// scss-docs-start color-variables\n$blue: #0d6efd !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #d63384 !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #198754 !default;\n$teal: #20c997 !default;\n$cyan: #0dcaf0 !default;\n// scss-docs-end color-variables\n\n// scss-docs-start colors-map\n$colors: (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n) !default;\n// scss-docs-end colors-map\n\n// scss-docs-start theme-color-variables\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-900 !default;\n// scss-docs-end theme-color-variables\n\n// scss-docs-start theme-colors-map\n$theme-colors: (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n) !default;\n// scss-docs-end theme-colors-map\n\n// scss-docs-start theme-colors-rgb\n$theme-colors-rgb: map-loop($theme-colors, to-rgb, \"$value\") !default;\n// scss-docs-end theme-colors-rgb\n\n// The contrast ratio to reach against white, to determine if color changes from \"light\" to \"dark\". Acceptable values for WCAG 2.0 are 3, 4.5 and 7.\n// See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast\n$min-contrast-ratio: 4.5 !default;\n\n// Customize the light and dark text colors for use in our color contrast function.\n$color-contrast-dark: $black !default;\n$color-contrast-light: $white !default;\n\n// fusv-disable\n$blue-100: tint-color($blue, 80%) !default;\n$blue-200: tint-color($blue, 60%) !default;\n$blue-300: tint-color($blue, 40%) !default;\n$blue-400: tint-color($blue, 20%) !default;\n$blue-500: $blue !default;\n$blue-600: shade-color($blue, 20%) !default;\n$blue-700: shade-color($blue, 40%) !default;\n$blue-800: shade-color($blue, 60%) !default;\n$blue-900: shade-color($blue, 80%) !default;\n\n$indigo-100: tint-color($indigo, 80%) !default;\n$indigo-200: tint-color($indigo, 60%) !default;\n$indigo-300: tint-color($indigo, 40%) !default;\n$indigo-400: tint-color($indigo, 20%) !default;\n$indigo-500: $indigo !default;\n$indigo-600: shade-color($indigo, 20%) !default;\n$indigo-700: shade-color($indigo, 40%) !default;\n$indigo-800: shade-color($indigo, 60%) !default;\n$indigo-900: shade-color($indigo, 80%) !default;\n\n$purple-100: tint-color($purple, 80%) !default;\n$purple-200: tint-color($purple, 60%) !default;\n$purple-300: tint-color($purple, 40%) !default;\n$purple-400: tint-color($purple, 20%) !default;\n$purple-500: $purple !default;\n$purple-600: shade-color($purple, 20%) !default;\n$purple-700: shade-color($purple, 40%) !default;\n$purple-800: shade-color($purple, 60%) !default;\n$purple-900: shade-color($purple, 80%) !default;\n\n$pink-100: tint-color($pink, 80%) !default;\n$pink-200: tint-color($pink, 60%) !default;\n$pink-300: tint-color($pink, 40%) !default;\n$pink-400: tint-color($pink, 20%) !default;\n$pink-500: $pink !default;\n$pink-600: shade-color($pink, 20%) !default;\n$pink-700: shade-color($pink, 40%) !default;\n$pink-800: shade-color($pink, 60%) !default;\n$pink-900: shade-color($pink, 80%) !default;\n\n$red-100: tint-color($red, 80%) !default;\n$red-200: tint-color($red, 60%) !default;\n$red-300: tint-color($red, 40%) !default;\n$red-400: tint-color($red, 20%) !default;\n$red-500: $red !default;\n$red-600: shade-color($red, 20%) !default;\n$red-700: shade-color($red, 40%) !default;\n$red-800: shade-color($red, 60%) !default;\n$red-900: shade-color($red, 80%) !default;\n\n$orange-100: tint-color($orange, 80%) !default;\n$orange-200: tint-color($orange, 60%) !default;\n$orange-300: tint-color($orange, 40%) !default;\n$orange-400: tint-color($orange, 20%) !default;\n$orange-500: $orange !default;\n$orange-600: shade-color($orange, 20%) !default;\n$orange-700: shade-color($orange, 40%) !default;\n$orange-800: shade-color($orange, 60%) !default;\n$orange-900: shade-color($orange, 80%) !default;\n\n$yellow-100: tint-color($yellow, 80%) !default;\n$yellow-200: tint-color($yellow, 60%) !default;\n$yellow-300: tint-color($yellow, 40%) !default;\n$yellow-400: tint-color($yellow, 20%) !default;\n$yellow-500: $yellow !default;\n$yellow-600: shade-color($yellow, 20%) !default;\n$yellow-700: shade-color($yellow, 40%) !default;\n$yellow-800: shade-color($yellow, 60%) !default;\n$yellow-900: shade-color($yellow, 80%) !default;\n\n$green-100: tint-color($green, 80%) !default;\n$green-200: tint-color($green, 60%) !default;\n$green-300: tint-color($green, 40%) !default;\n$green-400: tint-color($green, 20%) !default;\n$green-500: $green !default;\n$green-600: shade-color($green, 20%) !default;\n$green-700: shade-color($green, 40%) !default;\n$green-800: shade-color($green, 60%) !default;\n$green-900: shade-color($green, 80%) !default;\n\n$teal-100: tint-color($teal, 80%) !default;\n$teal-200: tint-color($teal, 60%) !default;\n$teal-300: tint-color($teal, 40%) !default;\n$teal-400: tint-color($teal, 20%) !default;\n$teal-500: $teal !default;\n$teal-600: shade-color($teal, 20%) !default;\n$teal-700: shade-color($teal, 40%) !default;\n$teal-800: shade-color($teal, 60%) !default;\n$teal-900: shade-color($teal, 80%) !default;\n\n$cyan-100: tint-color($cyan, 80%) !default;\n$cyan-200: tint-color($cyan, 60%) !default;\n$cyan-300: tint-color($cyan, 40%) !default;\n$cyan-400: tint-color($cyan, 20%) !default;\n$cyan-500: $cyan !default;\n$cyan-600: shade-color($cyan, 20%) !default;\n$cyan-700: shade-color($cyan, 40%) !default;\n$cyan-800: shade-color($cyan, 60%) !default;\n$cyan-900: shade-color($cyan, 80%) !default;\n\n$blues: (\n \"blue-100\": $blue-100,\n \"blue-200\": $blue-200,\n \"blue-300\": $blue-300,\n \"blue-400\": $blue-400,\n \"blue-500\": $blue-500,\n \"blue-600\": $blue-600,\n \"blue-700\": $blue-700,\n \"blue-800\": $blue-800,\n \"blue-900\": $blue-900\n) !default;\n\n$indigos: (\n \"indigo-100\": $indigo-100,\n \"indigo-200\": $indigo-200,\n \"indigo-300\": $indigo-300,\n \"indigo-400\": $indigo-400,\n \"indigo-500\": $indigo-500,\n \"indigo-600\": $indigo-600,\n \"indigo-700\": $indigo-700,\n \"indigo-800\": $indigo-800,\n \"indigo-900\": $indigo-900\n) !default;\n\n$purples: (\n \"purple-100\": $purple-200,\n \"purple-200\": $purple-100,\n \"purple-300\": $purple-300,\n \"purple-400\": $purple-400,\n \"purple-500\": $purple-500,\n \"purple-600\": $purple-600,\n \"purple-700\": $purple-700,\n \"purple-800\": $purple-800,\n \"purple-900\": $purple-900\n) !default;\n\n$pinks: (\n \"pink-100\": $pink-100,\n \"pink-200\": $pink-200,\n \"pink-300\": $pink-300,\n \"pink-400\": $pink-400,\n \"pink-500\": $pink-500,\n \"pink-600\": $pink-600,\n \"pink-700\": $pink-700,\n \"pink-800\": $pink-800,\n \"pink-900\": $pink-900\n) !default;\n\n$reds: (\n \"red-100\": $red-100,\n \"red-200\": $red-200,\n \"red-300\": $red-300,\n \"red-400\": $red-400,\n \"red-500\": $red-500,\n \"red-600\": $red-600,\n \"red-700\": $red-700,\n \"red-800\": $red-800,\n \"red-900\": $red-900\n) !default;\n\n$oranges: (\n \"orange-100\": $orange-100,\n \"orange-200\": $orange-200,\n \"orange-300\": $orange-300,\n \"orange-400\": $orange-400,\n \"orange-500\": $orange-500,\n \"orange-600\": $orange-600,\n \"orange-700\": $orange-700,\n \"orange-800\": $orange-800,\n \"orange-900\": $orange-900\n) !default;\n\n$yellows: (\n \"yellow-100\": $yellow-100,\n \"yellow-200\": $yellow-200,\n \"yellow-300\": $yellow-300,\n \"yellow-400\": $yellow-400,\n \"yellow-500\": $yellow-500,\n \"yellow-600\": $yellow-600,\n \"yellow-700\": $yellow-700,\n \"yellow-800\": $yellow-800,\n \"yellow-900\": $yellow-900\n) !default;\n\n$greens: (\n \"green-100\": $green-100,\n \"green-200\": $green-200,\n \"green-300\": $green-300,\n \"green-400\": $green-400,\n \"green-500\": $green-500,\n \"green-600\": $green-600,\n \"green-700\": $green-700,\n \"green-800\": $green-800,\n \"green-900\": $green-900\n) !default;\n\n$teals: (\n \"teal-100\": $teal-100,\n \"teal-200\": $teal-200,\n \"teal-300\": $teal-300,\n \"teal-400\": $teal-400,\n \"teal-500\": $teal-500,\n \"teal-600\": $teal-600,\n \"teal-700\": $teal-700,\n \"teal-800\": $teal-800,\n \"teal-900\": $teal-900\n) !default;\n\n$cyans: (\n \"cyan-100\": $cyan-100,\n \"cyan-200\": $cyan-200,\n \"cyan-300\": $cyan-300,\n \"cyan-400\": $cyan-400,\n \"cyan-500\": $cyan-500,\n \"cyan-600\": $cyan-600,\n \"cyan-700\": $cyan-700,\n \"cyan-800\": $cyan-800,\n \"cyan-900\": $cyan-900\n) !default;\n// fusv-enable\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-reduced-motion: true !default;\n$enable-smooth-scroll: true !default;\n$enable-grid-classes: true !default;\n$enable-cssgrid: false !default;\n$enable-button-pointers: true !default;\n$enable-rfs: true !default;\n$enable-validation-icons: true !default;\n$enable-negative-margins: false !default;\n$enable-deprecation-messages: true !default;\n$enable-important-utilities: true !default;\n\n// Prefix for :root CSS variables\n\n$variable-prefix: bs- !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, rgba($white, .15), rgba($white, 0)) !default;\n// scss-docs-end variable-gradient\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n 0: 0,\n 1: $spacer * .25,\n 2: $spacer * .5,\n 3: $spacer,\n 4: $spacer * 1.5,\n 5: $spacer * 3,\n) !default;\n\n$negative-spacers: if($enable-negative-margins, negativify-map($spacers), null) !default;\n// scss-docs-end spacer-variables-maps\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n 0: 0,\n 50: 50%,\n 100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Body\n//\n// Settings for the `` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n$body-text-align: null !default;\n\n// Utilities maps\n//\n// Extends the default `$theme-colors` maps to help create our utilities.\n\n// Come v6, we'll de-dupe these variables. Until then, for backward compatibility, we keep them to reassign.\n// scss-docs-start utilities-colors\n$utilities-colors: $theme-colors-rgb !default;\n// scss-docs-end utilities-colors\n\n// scss-docs-start utilities-text-colors\n$utilities-text: map-merge(\n $utilities-colors,\n (\n \"black\": to-rgb($black),\n \"white\": to-rgb($white),\n \"body\": to-rgb($body-color)\n )\n) !default;\n$utilities-text-colors: map-loop($utilities-text, rgba-css-var, \"$key\", \"text\") !default;\n// scss-docs-end utilities-text-colors\n\n// scss-docs-start utilities-bg-colors\n$utilities-bg: map-merge(\n $utilities-colors,\n (\n \"black\": to-rgb($black),\n \"white\": to-rgb($white),\n \"body\": to-rgb($body-bg)\n )\n) !default;\n$utilities-bg-colors: map-loop($utilities-bg, rgba-css-var, \"$key\", \"bg\") !default;\n// scss-docs-end utilities-bg-colors\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: $primary !default;\n$link-decoration: underline !default;\n$link-shade-percentage: 20% !default;\n$link-hover-color: shift-color($link-color, $link-shade-percentage) !default;\n$link-hover-decoration: null !default;\n\n$stretched-link-pseudo-element: after !default;\n$stretched-link-z-index: 1 !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n// scss-docs-start grid-breakpoints\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px,\n xxl: 1400px\n) !default;\n// scss-docs-end grid-breakpoints\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n// scss-docs-start container-max-widths\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px,\n xxl: 1320px\n) !default;\n// scss-docs-end container-max-widths\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 1.5rem !default;\n$grid-row-columns: 6 !default;\n\n$gutters: $spacers !default;\n\n// Container padding\n\n$container-padding-x: $grid-gutter-width * .5 !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width: 1px !default;\n$border-widths: (\n 1: 1px,\n 2: 2px,\n 3: 3px,\n 4: 4px,\n 5: 5px\n) !default;\n\n$border-color: $gray-300 !default;\n// scss-docs-end border-variables\n\n// scss-docs-start border-radius-variables\n$border-radius: .25rem !default;\n$border-radius-sm: .2rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-pill: 50rem !default;\n// scss-docs-end border-radius-variables\n\n// scss-docs-start box-shadow-variables\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n$box-shadow-inset: inset 0 1px 2px rgba($black, .075) !default;\n// scss-docs-end box-shadow-variables\n\n$component-active-color: $white !default;\n$component-active-bg: $primary !default;\n\n// scss-docs-start caret-variables\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n// scss-docs-end caret-variables\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n// scss-docs-start collapse-transition\n$transition-collapse: height .35s ease !default;\n$transition-collapse-width: width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// stylelint-disable function-disallowed-list\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n \"1x1\": 100%,\n \"4x3\": calc(3 / 4 * 100%),\n \"16x9\": calc(9 / 16 * 100%),\n \"21x9\": calc(9 / 21 * 100%)\n) !default;\n// scss-docs-end aspect-ratios\n// stylelint-enable function-disallowed-list\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n// stylelint-disable value-keyword-case\n$font-family-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\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n// stylelint-enable value-keyword-case\n$font-family-base: var(--#{$variable-prefix}font-sans-serif) !default;\n$font-family-code: var(--#{$variable-prefix}font-monospace) !default;\n\n// $font-size-root affects the value of `rem`, which is used for as well font sizes, paddings, and margins\n// $font-size-base affects the font size of the body text\n$font-size-root: null !default;\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-sm: $font-size-base * .875 !default;\n$font-size-lg: $font-size-base * 1.25 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n\n$line-height-base: 1.5 !default;\n$line-height-sm: 1.25 !default;\n$line-height-lg: 2 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: (\n 1: $h1-font-size,\n 2: $h2-font-size,\n 3: $h3-font-size,\n 4: $h4-font-size,\n 5: $h5-font-size,\n 6: $h6-font-size\n) !default;\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom: $spacer * .5 !default;\n$headings-font-family: null !default;\n$headings-font-style: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start display-headings\n$display-font-sizes: (\n 1: 5rem,\n 2: 4.5rem,\n 3: 4rem,\n 4: 3.5rem,\n 5: 3rem,\n 6: 2.5rem\n) !default;\n\n$display-font-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n// scss-docs-end display-headings\n\n// scss-docs-start type-variables\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: .875em !default;\n\n$sub-sup-font-size: .75em !default;\n\n$text-muted: $gray-600 !default;\n\n$initialism-font-size: $small-font-size !default;\n\n$blockquote-margin-y: $spacer !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n$blockquote-footer-color: $gray-600 !default;\n$blockquote-footer-font-size: $small-font-size !default;\n\n$hr-margin-y: $spacer !default;\n$hr-color: inherit !default;\n$hr-height: $border-width !default;\n$hr-opacity: .25 !default;\n\n$legend-margin-bottom: .5rem !default;\n$legend-font-size: 1.5rem !default;\n$legend-font-weight: null !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n// scss-docs-end type-variables\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n// scss-docs-start table-variables\n$table-cell-padding-y: .5rem !default;\n$table-cell-padding-x: .5rem !default;\n$table-cell-padding-y-sm: .25rem !default;\n$table-cell-padding-x-sm: .25rem !default;\n\n$table-cell-vertical-align: top !default;\n\n$table-color: $body-color !default;\n$table-bg: transparent !default;\n$table-accent-bg: transparent !default;\n\n$table-th-font-weight: null !default;\n\n$table-striped-color: $table-color !default;\n$table-striped-bg-factor: .05 !default;\n$table-striped-bg: rgba($black, $table-striped-bg-factor) !default;\n\n$table-active-color: $table-color !default;\n$table-active-bg-factor: .1 !default;\n$table-active-bg: rgba($black, $table-active-bg-factor) !default;\n\n$table-hover-color: $table-color !default;\n$table-hover-bg-factor: .075 !default;\n$table-hover-bg: rgba($black, $table-hover-bg-factor) !default;\n\n$table-border-factor: .1 !default;\n$table-border-width: $border-width !default;\n$table-border-color: $border-color !default;\n\n$table-striped-order: odd !default;\n\n$table-group-separator-color: currentColor !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-scale: -80% !default;\n// scss-docs-end table-variables\n\n// scss-docs-start table-loop\n$table-variants: (\n \"primary\": shift-color($primary, $table-bg-scale),\n \"secondary\": shift-color($secondary, $table-bg-scale),\n \"success\": shift-color($success, $table-bg-scale),\n \"info\": shift-color($info, $table-bg-scale),\n \"warning\": shift-color($warning, $table-bg-scale),\n \"danger\": shift-color($danger, $table-bg-scale),\n \"light\": $light,\n \"dark\": $dark,\n) !default;\n// scss-docs-end table-loop\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n// scss-docs-start input-btn-variables\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .25rem !default;\n$input-btn-focus-color-opacity: .25 !default;\n$input-btn-focus-color: rgba($component-active-bg, $input-btn-focus-color-opacity) !default;\n$input-btn-focus-blur: 0 !default;\n$input-btn-focus-box-shadow: 0 0 $input-btn-focus-blur $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n\n$input-btn-border-width: $border-width !default;\n// scss-docs-end input-btn-variables\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n// scss-docs-start btn-variables\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-color: $link-color !default;\n$btn-link-hover-color: $link-hover-color !default;\n$btn-link-disabled-color: $gray-600 !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$btn-hover-bg-shade-amount: 15% !default;\n$btn-hover-bg-tint-amount: 15% !default;\n$btn-hover-border-shade-amount: 20% !default;\n$btn-hover-border-tint-amount: 10% !default;\n$btn-active-bg-shade-amount: 20% !default;\n$btn-active-bg-tint-amount: 20% !default;\n$btn-active-border-shade-amount: 25% !default;\n$btn-active-border-tint-amount: 10% !default;\n// scss-docs-end btn-variables\n\n\n// Forms\n\n// scss-docs-start form-text-variables\n$form-text-margin-top: .25rem !default;\n$form-text-font-size: $small-font-size !default;\n$form-text-font-style: null !default;\n$form-text-font-weight: null !default;\n$form-text-color: $text-muted !default;\n// scss-docs-end form-text-variables\n\n// scss-docs-start form-label-variables\n$form-label-margin-bottom: .5rem !default;\n$form-label-font-size: null !default;\n$form-label-font-style: null !default;\n$form-label-font-weight: null !default;\n$form-label-color: null !default;\n// scss-docs-end form-label-variables\n\n// scss-docs-start form-input-variables\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n\n$input-bg: $body-bg !default;\n$input-disabled-bg: $gray-200 !default;\n$input-disabled-border-color: null !default;\n\n$input-color: $body-color !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: $box-shadow-inset !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-sm: $border-radius-sm !default;\n$input-border-radius-lg: $border-radius-lg !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: tint-color($component-active-bg, 50%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y * .5) !default;\n\n$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm: add($input-line-height * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg: add($input-line-height * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-color-width: 3rem !default;\n// scss-docs-end form-input-variables\n\n// scss-docs-start form-check-variables\n$form-check-input-width: 1em !default;\n$form-check-min-height: $font-size-base * $line-height-base !default;\n$form-check-padding-start: $form-check-input-width + .5em !default;\n$form-check-margin-bottom: .125rem !default;\n$form-check-label-color: null !default;\n$form-check-label-cursor: null !default;\n$form-check-transition: null !default;\n\n$form-check-input-active-filter: brightness(90%) !default;\n\n$form-check-input-bg: $input-bg !default;\n$form-check-input-border: 1px solid rgba($black, .25) !default;\n$form-check-input-border-radius: .25em !default;\n$form-check-radio-border-radius: 50% !default;\n$form-check-input-focus-border: $input-focus-border-color !default;\n$form-check-input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$form-check-input-checked-color: $component-active-color !default;\n$form-check-input-checked-bg-color: $component-active-bg !default;\n$form-check-input-checked-border-color: $form-check-input-checked-bg-color !default;\n$form-check-input-checked-bg-image: url(\"data:image/svg+xml,\") !default;\n$form-check-radio-checked-bg-image: url(\"data:image/svg+xml,\") !default;\n\n$form-check-input-indeterminate-color: $component-active-color !default;\n$form-check-input-indeterminate-bg-color: $component-active-bg !default;\n$form-check-input-indeterminate-border-color: $form-check-input-indeterminate-bg-color !default;\n$form-check-input-indeterminate-bg-image: url(\"data:image/svg+xml,\") !default;\n\n$form-check-input-disabled-opacity: .5 !default;\n$form-check-label-disabled-opacity: $form-check-input-disabled-opacity !default;\n$form-check-btn-check-disabled-opacity: $btn-disabled-opacity !default;\n\n$form-check-inline-margin-end: 1rem !default;\n// scss-docs-end form-check-variables\n\n// scss-docs-start form-switch-variables\n$form-switch-color: rgba($black, .25) !default;\n$form-switch-width: 2em !default;\n$form-switch-padding-start: $form-switch-width + .5em !default;\n$form-switch-bg-image: url(\"data:image/svg+xml,\") !default;\n$form-switch-border-radius: $form-switch-width !default;\n$form-switch-transition: background-position .15s ease-in-out !default;\n\n$form-switch-focus-color: $input-focus-border-color !default;\n$form-switch-focus-bg-image: url(\"data:image/svg+xml,\") !default;\n\n$form-switch-checked-color: $component-active-color !default;\n$form-switch-checked-bg-image: url(\"data:image/svg+xml,\") !default;\n$form-switch-checked-bg-position: right center !default;\n// scss-docs-end form-switch-variables\n\n// scss-docs-start input-group-variables\n$input-group-addon-padding-y: $input-padding-y !default;\n$input-group-addon-padding-x: $input-padding-x !default;\n$input-group-addon-font-weight: $input-font-weight !default;\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n// scss-docs-end input-group-variables\n\n// scss-docs-start form-select-variables\n$form-select-padding-y: $input-padding-y !default;\n$form-select-padding-x: $input-padding-x !default;\n$form-select-font-family: $input-font-family !default;\n$form-select-font-size: $input-font-size !default;\n$form-select-indicator-padding: $form-select-padding-x * 3 !default; // Extra padding for background-image\n$form-select-font-weight: $input-font-weight !default;\n$form-select-line-height: $input-line-height !default;\n$form-select-color: $input-color !default;\n$form-select-bg: $input-bg !default;\n$form-select-disabled-color: null !default;\n$form-select-disabled-bg: $gray-200 !default;\n$form-select-disabled-border-color: $input-disabled-border-color !default;\n$form-select-bg-position: right $form-select-padding-x center !default;\n$form-select-bg-size: 16px 12px !default; // In pixels because image dimensions\n$form-select-indicator-color: $gray-800 !default;\n$form-select-indicator: url(\"data:image/svg+xml,\") !default;\n\n$form-select-feedback-icon-padding-end: $form-select-padding-x * 2.5 + $form-select-indicator-padding !default;\n$form-select-feedback-icon-position: center right $form-select-indicator-padding !default;\n$form-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$form-select-border-width: $input-border-width !default;\n$form-select-border-color: $input-border-color !default;\n$form-select-border-radius: $input-border-radius !default;\n$form-select-box-shadow: $box-shadow-inset !default;\n\n$form-select-focus-border-color: $input-focus-border-color !default;\n$form-select-focus-width: $input-focus-width !default;\n$form-select-focus-box-shadow: 0 0 0 $form-select-focus-width $input-btn-focus-color !default;\n\n$form-select-padding-y-sm: $input-padding-y-sm !default;\n$form-select-padding-x-sm: $input-padding-x-sm !default;\n$form-select-font-size-sm: $input-font-size-sm !default;\n$form-select-border-radius-sm: $input-border-radius-sm !default;\n\n$form-select-padding-y-lg: $input-padding-y-lg !default;\n$form-select-padding-x-lg: $input-padding-x-lg !default;\n$form-select-font-size-lg: $input-font-size-lg !default;\n$form-select-border-radius-lg: $input-border-radius-lg !default;\n\n$form-select-transition: $input-transition !default;\n// scss-docs-end form-select-variables\n\n// scss-docs-start form-range-variables\n$form-range-track-width: 100% !default;\n$form-range-track-height: .5rem !default;\n$form-range-track-cursor: pointer !default;\n$form-range-track-bg: $gray-300 !default;\n$form-range-track-border-radius: 1rem !default;\n$form-range-track-box-shadow: $box-shadow-inset !default;\n\n$form-range-thumb-width: 1rem !default;\n$form-range-thumb-height: $form-range-thumb-width !default;\n$form-range-thumb-bg: $component-active-bg !default;\n$form-range-thumb-border: 0 !default;\n$form-range-thumb-border-radius: 1rem !default;\n$form-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$form-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$form-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in Edge\n$form-range-thumb-active-bg: tint-color($component-active-bg, 70%) !default;\n$form-range-thumb-disabled-bg: $gray-500 !default;\n$form-range-thumb-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n// scss-docs-end form-range-variables\n\n// scss-docs-start form-file-variables\n$form-file-button-color: $input-color !default;\n$form-file-button-bg: $input-group-addon-bg !default;\n$form-file-button-hover-bg: shade-color($form-file-button-bg, 5%) !default;\n// scss-docs-end form-file-variables\n\n// scss-docs-start form-floating-variables\n$form-floating-height: add(3.5rem, $input-height-border) !default;\n$form-floating-line-height: 1.25 !default;\n$form-floating-padding-x: $input-padding-x !default;\n$form-floating-padding-y: 1rem !default;\n$form-floating-input-padding-t: 1.625rem !default;\n$form-floating-input-padding-b: .625rem !default;\n$form-floating-label-opacity: .65 !default;\n$form-floating-label-transform: scale(.85) translateY(-.5rem) translateX(.15rem) !default;\n$form-floating-transition: opacity .1s ease-in-out, transform .1s ease-in-out !default;\n// scss-docs-end form-floating-variables\n\n// Form validation\n\n// scss-docs-start form-feedback-variables\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $form-text-font-size !default;\n$form-feedback-font-style: $form-text-font-style !default;\n$form-feedback-valid-color: $success !default;\n$form-feedback-invalid-color: $danger !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: url(\"data:image/svg+xml,\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: url(\"data:image/svg+xml,\") !default;\n// scss-docs-end form-feedback-variables\n\n// scss-docs-start form-validation-states\n$form-validation-states: (\n \"valid\": (\n \"color\": $form-feedback-valid-color,\n \"icon\": $form-feedback-icon-valid\n ),\n \"invalid\": (\n \"color\": $form-feedback-invalid-color,\n \"icon\": $form-feedback-icon-invalid\n )\n) !default;\n// scss-docs-end form-validation-states\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n// scss-docs-start zindex-stack\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-offcanvas-backdrop: 1040 !default;\n$zindex-offcanvas: 1045 !default;\n$zindex-modal-backdrop: 1050 !default;\n$zindex-modal: 1055 !default;\n$zindex-popover: 1070 !default;\n$zindex-tooltip: 1080 !default;\n// scss-docs-end zindex-stack\n\n\n// Navs\n\n// scss-docs-start nav-variables\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-font-size: null !default;\n$nav-link-font-weight: null !default;\n$nav-link-color: $link-color !default;\n$nav-link-hover-color: $link-hover-color !default;\n$nav-link-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n// scss-docs-end nav-variables\n\n\n// Navbar\n\n// scss-docs-start navbar-variables\n$navbar-padding-y: $spacer * .5 !default;\n$navbar-padding-x: null !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) * .5 !default;\n$navbar-brand-margin-end: 1rem !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n$navbar-toggler-focus-width: $btn-focus-width !default;\n$navbar-toggler-transition: box-shadow .15s ease-in-out !default;\n// scss-docs-end navbar-variables\n\n// scss-docs-start navbar-theme-variables\n$navbar-dark-color: rgba($white, .55) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .55) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n// scss-docs-end navbar-theme-variables\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n// scss-docs-start dropdown-variables\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-x: 0 !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: $body-color !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;\n$dropdown-divider-bg: $dropdown-border-color !default;\n$dropdown-divider-margin-y: $spacer * .5 !default;\n$dropdown-box-shadow: $box-shadow !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: shade-color($dropdown-link-color, 10%) !default;\n$dropdown-link-hover-bg: $gray-200 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-500 !default;\n\n$dropdown-item-padding-y: $spacer * .25 !default;\n$dropdown-item-padding-x: $spacer !default;\n\n$dropdown-header-color: $gray-600 !default;\n$dropdown-header-padding: $dropdown-padding-y $dropdown-item-padding-x !default;\n// scss-docs-end dropdown-variables\n\n// scss-docs-start dropdown-dark-variables\n$dropdown-dark-color: $gray-300 !default;\n$dropdown-dark-bg: $gray-800 !default;\n$dropdown-dark-border-color: $dropdown-border-color !default;\n$dropdown-dark-divider-bg: $dropdown-divider-bg !default;\n$dropdown-dark-box-shadow: null !default;\n$dropdown-dark-link-color: $dropdown-dark-color !default;\n$dropdown-dark-link-hover-color: $white !default;\n$dropdown-dark-link-hover-bg: rgba($white, .15) !default;\n$dropdown-dark-link-active-color: $dropdown-link-active-color !default;\n$dropdown-dark-link-active-bg: $dropdown-link-active-bg !default;\n$dropdown-dark-link-disabled-color: $gray-500 !default;\n$dropdown-dark-header-color: $gray-500 !default;\n// scss-docs-end dropdown-dark-variables\n\n\n// Pagination\n\n// scss-docs-start pagination-variables\n$pagination-padding-y: .375rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-radius: $border-radius !default;\n$pagination-margin-start: -$pagination-border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-color: $link-hover-color !default;\n$pagination-focus-bg: $gray-200 !default;\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n$pagination-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$pagination-border-radius-sm: $border-radius-sm !default;\n$pagination-border-radius-lg: $border-radius-lg !default;\n// scss-docs-end pagination-variables\n\n\n// Placeholders\n\n// scss-docs-start placeholders\n$placeholder-opacity-max: .5 !default;\n$placeholder-opacity-min: .2 !default;\n// scss-docs-end placeholders\n\n// Cards\n\n// scss-docs-start card-variables\n$card-spacer-y: $spacer !default;\n$card-spacer-x: $spacer !default;\n$card-title-spacer-y: $spacer * .5 !default;\n$card-border-width: $border-width !default;\n$card-border-color: rgba($black, .125) !default;\n$card-border-radius: $border-radius !default;\n$card-box-shadow: null !default;\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\n$card-cap-padding-y: $card-spacer-y * .5 !default;\n$card-cap-padding-x: $card-spacer-x !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: null !default;\n$card-height: null !default;\n$card-color: null !default;\n$card-bg: $white !default;\n$card-img-overlay-padding: $spacer !default;\n$card-group-margin: $grid-gutter-width * .5 !default;\n// scss-docs-end card-variables\n\n// Accordion\n\n// scss-docs-start accordion-variables\n$accordion-padding-y: 1rem !default;\n$accordion-padding-x: 1.25rem !default;\n$accordion-color: $body-color !default;\n$accordion-bg: $body-bg !default;\n$accordion-border-width: $border-width !default;\n$accordion-border-color: rgba($black, .125) !default;\n$accordion-border-radius: $border-radius !default;\n$accordion-inner-border-radius: subtract($accordion-border-radius, $accordion-border-width) !default;\n\n$accordion-body-padding-y: $accordion-padding-y !default;\n$accordion-body-padding-x: $accordion-padding-x !default;\n\n$accordion-button-padding-y: $accordion-padding-y !default;\n$accordion-button-padding-x: $accordion-padding-x !default;\n$accordion-button-color: $accordion-color !default;\n$accordion-button-bg: $accordion-bg !default;\n$accordion-transition: $btn-transition, border-radius .15s ease !default;\n$accordion-button-active-bg: tint-color($component-active-bg, 90%) !default;\n$accordion-button-active-color: shade-color($primary, 10%) !default;\n\n$accordion-button-focus-border-color: $input-focus-border-color !default;\n$accordion-button-focus-box-shadow: $btn-focus-box-shadow !default;\n\n$accordion-icon-width: 1.25rem !default;\n$accordion-icon-color: $accordion-button-color !default;\n$accordion-icon-active-color: $accordion-button-active-color !default;\n$accordion-icon-transition: transform .2s ease-in-out !default;\n$accordion-icon-transform: rotate(-180deg) !default;\n\n$accordion-button-icon: url(\"data:image/svg+xml,\") !default;\n$accordion-button-active-icon: url(\"data:image/svg+xml,\") !default;\n// scss-docs-end accordion-variables\n\n// Tooltips\n\n// scss-docs-start tooltip-variables\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: $spacer * .25 !default;\n$tooltip-padding-x: $spacer * .5 !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n// scss-docs-end tooltip-variables\n\n// Form tooltips must come after regular tooltips\n// scss-docs-start tooltip-feedback-variables\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: null !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n// scss-docs-end tooltip-feedback-variables\n\n\n// Popovers\n\n// scss-docs-start popover-variables\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;\n$popover-box-shadow: $box-shadow !default;\n\n$popover-header-bg: shade-color($popover-bg, 6%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: $spacer !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $spacer !default;\n$popover-body-padding-x: $spacer !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n// scss-docs-end popover-variables\n\n\n// Toasts\n\n// scss-docs-start toast-variables\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .5rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba($black, .1) !default;\n$toast-border-radius: $border-radius !default;\n$toast-box-shadow: $box-shadow !default;\n$toast-spacing: $container-padding-x !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba($black, .05) !default;\n// scss-docs-end toast-variables\n\n\n// Badges\n\n// scss-docs-start badge-variables\n$badge-font-size: .75em !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-color: $white !default;\n$badge-padding-y: .35em !default;\n$badge-padding-x: .65em !default;\n$badge-border-radius: $border-radius !default;\n// scss-docs-end badge-variables\n\n\n// Modals\n\n// scss-docs-start modal-variables\n$modal-inner-padding: $spacer !default;\n\n$modal-footer-margin-between: .5rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs: $box-shadow-sm !default;\n$modal-content-box-shadow-sm-up: $box-shadow !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $border-color !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: $modal-inner-padding !default;\n$modal-header-padding-x: $modal-inner-padding !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-sm: 300px !default;\n$modal-md: 500px !default;\n$modal-lg: 800px !default;\n$modal-xl: 1140px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n$modal-scale-transform: scale(1.02) !default;\n// scss-docs-end modal-variables\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n// scss-docs-start alert-variables\n$alert-padding-y: $spacer !default;\n$alert-padding-x: $spacer !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n$alert-bg-scale: -80% !default;\n$alert-border-scale: -70% !default;\n$alert-color-scale: 40% !default;\n$alert-dismissible-padding-r: $alert-padding-x * 3 !default; // 3x covers width of x plus default padding on either side\n// scss-docs-end alert-variables\n\n\n// Progress bars\n\n// scss-docs-start progress-variables\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: $box-shadow-inset !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: $primary !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n// scss-docs-end progress-variables\n\n\n// List group\n\n// scss-docs-start list-group-variables\n$list-group-color: $gray-900 !default;\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: $spacer * .5 !default;\n$list-group-item-padding-x: $spacer !default;\n$list-group-item-bg-scale: -80% !default;\n$list-group-item-color-scale: 40% !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n// scss-docs-end list-group-variables\n\n\n// Image thumbnails\n\n// scss-docs-start thumbnail-variables\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: $box-shadow-sm !default;\n// scss-docs-end thumbnail-variables\n\n\n// Figures\n\n// scss-docs-start figure-variables\n$figure-caption-font-size: $small-font-size !default;\n$figure-caption-color: $gray-600 !default;\n// scss-docs-end figure-variables\n\n\n// Breadcrumbs\n\n// scss-docs-start breadcrumb-variables\n$breadcrumb-font-size: null !default;\n$breadcrumb-padding-y: 0 !default;\n$breadcrumb-padding-x: 0 !default;\n$breadcrumb-item-padding-x: .5rem !default;\n$breadcrumb-margin-bottom: 1rem !default;\n$breadcrumb-bg: null !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n$breadcrumb-divider-flipped: $breadcrumb-divider !default;\n$breadcrumb-border-radius: null !default;\n// scss-docs-end breadcrumb-variables\n\n// Carousel\n\n// scss-docs-start carousel-variables\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-opacity: .5 !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-active-opacity: 1 !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n$carousel-caption-padding-y: 1.25rem !default;\n$carousel-caption-spacer: 1.25rem !default;\n\n$carousel-control-icon-width: 2rem !default;\n\n$carousel-control-prev-icon-bg: url(\"data:image/svg+xml,\") !default;\n$carousel-control-next-icon-bg: url(\"data:image/svg+xml,\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n$carousel-dark-indicator-active-bg: $black !default;\n$carousel-dark-caption-color: $black !default;\n$carousel-dark-control-icon-filter: invert(1) grayscale(100) !default;\n// scss-docs-end carousel-variables\n\n\n// Spinners\n\n// scss-docs-start spinner-variables\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-vertical-align: -.125em !default;\n$spinner-border-width: .25em !default;\n$spinner-animation-speed: .75s !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n// scss-docs-end spinner-variables\n\n\n// Close\n\n// scss-docs-start close-variables\n$btn-close-width: 1em !default;\n$btn-close-height: $btn-close-width !default;\n$btn-close-padding-x: .25em !default;\n$btn-close-padding-y: $btn-close-padding-x !default;\n$btn-close-color: $black !default;\n$btn-close-bg: url(\"data:image/svg+xml,\") !default;\n$btn-close-focus-shadow: $input-btn-focus-box-shadow !default;\n$btn-close-opacity: .5 !default;\n$btn-close-hover-opacity: .75 !default;\n$btn-close-focus-opacity: 1 !default;\n$btn-close-disabled-opacity: .25 !default;\n$btn-close-white-filter: invert(1) grayscale(100%) brightness(200%) !default;\n// scss-docs-end close-variables\n\n\n// Offcanvas\n\n// scss-docs-start offcanvas-variables\n$offcanvas-padding-y: $modal-inner-padding !default;\n$offcanvas-padding-x: $modal-inner-padding !default;\n$offcanvas-horizontal-width: 400px !default;\n$offcanvas-vertical-height: 30vh !default;\n$offcanvas-transition-duration: .3s !default;\n$offcanvas-border-color: $modal-content-border-color !default;\n$offcanvas-border-width: $modal-content-border-width !default;\n$offcanvas-title-line-height: $modal-title-line-height !default;\n$offcanvas-bg-color: $modal-content-bg !default;\n$offcanvas-color: $modal-content-color !default;\n$offcanvas-box-shadow: $modal-content-box-shadow-xs !default;\n$offcanvas-backdrop-bg: $modal-backdrop-bg !default;\n$offcanvas-backdrop-opacity: $modal-backdrop-opacity !default;\n// scss-docs-end offcanvas-variables\n\n// Code\n\n$code-font-size: $small-font-size !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: null !default;\n","// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n\n > * {\n @include make-col-ready();\n }\n }\n}\n\n@if $enable-cssgrid {\n .grid {\n display: grid;\n grid-template-rows: repeat(var(--#{$variable-prefix}rows, 1), 1fr);\n grid-template-columns: repeat(var(--#{$variable-prefix}columns, #{$grid-columns}), 1fr);\n gap: var(--#{$variable-prefix}gap, #{$grid-gutter-width});\n\n @include make-cssgrid();\n }\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter: $grid-gutter-width) {\n --#{$variable-prefix}gutter-x: #{$gutter};\n --#{$variable-prefix}gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed\n margin-top: calc(-1 * var(--#{$variable-prefix}gutter-y)); // stylelint-disable-line function-disallowed-list\n margin-right: calc(-.5 * var(--#{$variable-prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n margin-left: calc(-.5 * var(--#{$variable-prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n // Add box sizing if only the grid is loaded\n box-sizing: if(variable-exists(include-column-box-sizing) and $include-column-box-sizing, border-box, null);\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we set the width\n // later on to override this initial width.\n flex-shrink: 0;\n width: 100%;\n max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n padding-right: calc(var(--#{$variable-prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n padding-left: calc(var(--#{$variable-prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n margin-top: var(--#{$variable-prefix}gutter-y);\n}\n\n@mixin make-col($size: false, $columns: $grid-columns) {\n @if $size {\n flex: 0 0 auto;\n width: percentage(divide($size, $columns));\n\n } @else {\n flex: 1 1 0;\n max-width: 100%;\n }\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: divide($size, $columns);\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 auto;\n width: divide(100%, $count);\n }\n}\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n }\n\n .row-cols#{$infix}-auto > * {\n @include make-col-auto();\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n\n // Gutters\n //\n // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n @each $key, $value in $gutters {\n .g#{$infix}-#{$key},\n .gx#{$infix}-#{$key} {\n --#{$variable-prefix}gutter-x: #{$value};\n }\n\n .g#{$infix}-#{$key},\n .gy#{$infix}-#{$key} {\n --#{$variable-prefix}gutter-y: #{$value};\n }\n }\n }\n }\n}\n\n@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $grid-breakpoints) {\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .g-col#{$infix}-#{$i} {\n grid-column: auto / span $i;\n }\n }\n\n // Start with `1` because `0` is and invalid value.\n // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.\n @for $i from 1 through ($columns - 1) {\n .g-start#{$infix}-#{$i} {\n grid-column-start: $i;\n }\n }\n }\n }\n }\n}\n","// Utility generator\n// Used to generate utilities & print utilities\n@mixin generate-utility($utility, $infix, $is-rfs-media-query: false) {\n $values: map-get($utility, values);\n\n // If the values are a list or string, convert it into a map\n @if type-of($values) == \"string\" or type-of(nth($values, 1)) != \"list\" {\n $values: zip($values, $values);\n }\n\n @each $key, $value in $values {\n $properties: map-get($utility, property);\n\n // Multiple properties are possible, for example with vertical or horizontal margins or paddings\n @if type-of($properties) == \"string\" {\n $properties: append((), $properties);\n }\n\n // Use custom class if present\n $property-class: if(map-has-key($utility, class), map-get($utility, class), nth($properties, 1));\n $property-class: if($property-class == null, \"\", $property-class);\n\n // State params to generate pseudo-classes\n $state: if(map-has-key($utility, state), map-get($utility, state), ());\n\n $infix: if($property-class == \"\" and str-slice($infix, 1, 1) == \"-\", str-slice($infix, 2), $infix);\n\n // Don't prefix if value key is null (eg. with shadow class)\n $property-class-modifier: if($key, if($property-class == \"\" and $infix == \"\", \"\", \"-\") + $key, \"\");\n\n @if map-get($utility, rfs) {\n // Inside the media query\n @if $is-rfs-media-query {\n $val: rfs-value($value);\n\n // Do not render anything if fluid and non fluid values are the same\n $value: if($val == rfs-fluid-value($value), null, $val);\n }\n @else {\n $value: rfs-fluid-value($value);\n }\n }\n\n $is-css-var: map-get($utility, css-var);\n $is-local-vars: map-get($utility, local-vars);\n $is-rtl: map-get($utility, rtl);\n\n @if $value != null {\n @if $is-rtl == false {\n /* rtl:begin:remove */\n }\n\n @if $is-css-var {\n .#{$property-class + $infix + $property-class-modifier} {\n --#{$variable-prefix}#{$property-class}: #{$value};\n }\n\n @each $pseudo in $state {\n .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n --#{$variable-prefix}#{$property-class}: #{$value};\n }\n }\n } @else {\n .#{$property-class + $infix + $property-class-modifier} {\n @each $property in $properties {\n @if $is-local-vars {\n @each $local-var, $value in $is-local-vars {\n --#{$variable-prefix}#{$local-var}: #{$value};\n }\n }\n #{$property}: $value if($enable-important-utilities, !important, null);\n }\n }\n\n @each $pseudo in $state {\n .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n @each $property in $properties {\n #{$property}: $value if($enable-important-utilities, !important, null);\n }\n }\n }\n }\n\n @if $is-rtl == false {\n /* rtl:end:remove */\n }\n }\n }\n}\n","// Loop over each breakpoint\n@each $breakpoint in map-keys($grid-breakpoints) {\n\n // Generate media query if needed\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n // Loop over each utility property\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Only proceed if responsive media queries are enabled or if it's the base media query\n @if type-of($utility) == \"map\" and (map-get($utility, responsive) or $infix == \"\") {\n @include generate-utility($utility, $infix);\n }\n }\n }\n}\n\n// RFS rescaling\n@media (min-width: $rfs-mq-value) {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @if (map-get($grid-breakpoints, $breakpoint) < $rfs-breakpoint) {\n // Loop over each utility property\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Only proceed if responsive media queries are enabled or if it's the base media query\n @if type-of($utility) == \"map\" and map-get($utility, rfs) and (map-get($utility, responsive) or $infix == \"\") {\n @include generate-utility($utility, $infix, true);\n }\n }\n }\n }\n}\n\n\n// Print utilities\n@media print {\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Then check if the utility needs print styles\n @if type-of($utility) == \"map\" and map-get($utility, print) == true {\n @include generate-utility($utility, \"-print\");\n }\n }\n}\n"]} \ No newline at end of file diff --git a/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.min.css b/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.min.css new file mode 100644 index 0000000..16649a6 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap Grid v5.1.3 (https://getbootstrap.com/) + * 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-color-rgb:33,37,41;--bs-body-bg-rgb:255,255,255;--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}.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(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{box-sizing:border-box;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}}.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}.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}.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}@media (min-width:576px){.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}.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}}@media (min-width:768px){.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}.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}}@media (min-width:992px){.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}.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}}@media (min-width:1200px){.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}.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}}@media (min-width:1400px){.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}.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}}@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-grid.min.css.map */ \ No newline at end of file diff --git a/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.min.css.map b/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.min.css.map new file mode 100644 index 0000000..1e0621c --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/bootstrap-grid.scss","../../scss/_root.scss","../../scss/_containers.scss","dist/css/bootstrap-grid.css","../../scss/mixins/_container.scss","../../scss/mixins/_breakpoints.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_utilities.scss","../../scss/utilities/_api.scss"],"names":[],"mappings":"AAAA;;;;;ACAA,MAQI,UAAA,QAAA,YAAA,QAAA,YAAA,QAAA,UAAA,QAAA,SAAA,QAAA,YAAA,QAAA,YAAA,QAAA,WAAA,QAAA,UAAA,QAAA,UAAA,QAAA,WAAA,KAAA,UAAA,QAAA,eAAA,QAIA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAIA,aAAA,QAAA,eAAA,QAAA,aAAA,QAAA,UAAA,QAAA,aAAA,QAAA,YAAA,QAAA,WAAA,QAAA,UAAA,QAIA,iBAAA,EAAA,CAAA,GAAA,CAAA,IAAA,mBAAA,GAAA,CAAA,GAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,GAAA,CAAA,GAAA,cAAA,EAAA,CAAA,GAAA,CAAA,IAAA,iBAAA,GAAA,CAAA,GAAA,CAAA,EAAA,gBAAA,GAAA,CAAA,EAAA,CAAA,GAAA,eAAA,GAAA,CAAA,GAAA,CAAA,IAAA,cAAA,EAAA,CAAA,EAAA,CAAA,GAGF,eAAA,GAAA,CAAA,GAAA,CAAA,IACA,eAAA,CAAA,CAAA,CAAA,CAAA,EACA,oBAAA,EAAA,CAAA,EAAA,CAAA,GACA,iBAAA,GAAA,CAAA,GAAA,CAAA,IAMA,qBAAA,SAAA,CAAA,aAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,WAAA,CAAA,iBAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,mBACA,oBAAA,cAAA,CAAA,KAAA,CAAA,MAAA,CAAA,QAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,UACA,cAAA,2EAQA,sBAAA,0BACA,oBAAA,KACA,sBAAA,IACA,sBAAA,IACA,gBAAA,QAIA,aAAA,KC5CA,WCuDF,iBAGA,cACA,cACA,cAHA,cADA,eC3DE,MAAA,KACA,cAAA,0BACA,aAAA,0BACA,aAAA,KACA,YAAA,KCwDE,yBH5CE,WAAA,cACE,UAAA,OG2CJ,yBH5CE,WAAA,cAAA,cACE,UAAA,OG2CJ,yBH5CE,WAAA,cAAA,cAAA,cACE,UAAA,OG2CJ,0BH5CE,WAAA,cAAA,cAAA,cAAA,cACE,UAAA,QG2CJ,0BH5CE,WAAA,cAAA,cAAA,cAAA,cAAA,eACE,UAAA,QIfN,KCAA,cAAA,OACA,cAAA,EACA,QAAA,KACA,UAAA,KAEA,WAAA,8BACA,aAAA,+BACA,YAAA,+BDJE,OCSF,WAAA,WAIA,YAAA,EACA,MAAA,KACA,UAAA,KACA,cAAA,8BACA,aAAA,8BACA,WAAA,mBA+CI,KACE,KAAA,EAAA,EAAA,GAGF,iBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,cACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,UAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,QAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,QAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,QAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,UAxDV,YAAA,YAwDU,UAxDV,YAAA,aAwDU,UAxDV,YAAA,IAwDU,UAxDV,YAAA,aAwDU,UAxDV,YAAA,aAwDU,UAxDV,YAAA,IAwDU,UAxDV,YAAA,aAwDU,UAxDV,YAAA,aAwDU,UAxDV,YAAA,IAwDU,WAxDV,YAAA,aAwDU,WAxDV,YAAA,aAmEM,KJyJR,MIvJU,cAAA,EAGF,KJyJR,MIvJU,cAAA,EAPF,KJmKR,MIjKU,cAAA,QAGF,KJmKR,MIjKU,cAAA,QAPF,KJ6KR,MI3KU,cAAA,OAGF,KJ6KR,MI3KU,cAAA,OAPF,KJuLR,MIrLU,cAAA,KAGF,KJuLR,MIrLU,cAAA,KAPF,KJiMR,MI/LU,cAAA,OAGF,KJiMR,MI/LU,cAAA,OAPF,KJ2MR,MIzMU,cAAA,KAGF,KJ2MR,MIzMU,cAAA,KF1DN,yBEUE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,YAAA,EAwDU,aAxDV,YAAA,YAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAmEM,QJ8WR,SI5WU,cAAA,EAGF,QJ8WR,SI5WU,cAAA,EAPF,QJwXR,SItXU,cAAA,QAGF,QJwXR,SItXU,cAAA,QAPF,QJkYR,SIhYU,cAAA,OAGF,QJkYR,SIhYU,cAAA,OAPF,QJ4YR,SI1YU,cAAA,KAGF,QJ4YR,SI1YU,cAAA,KAPF,QJsZR,SIpZU,cAAA,OAGF,QJsZR,SIpZU,cAAA,OAPF,QJgaR,SI9ZU,cAAA,KAGF,QJgaR,SI9ZU,cAAA,MF1DN,yBEUE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,YAAA,EAwDU,aAxDV,YAAA,YAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAmEM,QJmkBR,SIjkBU,cAAA,EAGF,QJmkBR,SIjkBU,cAAA,EAPF,QJ6kBR,SI3kBU,cAAA,QAGF,QJ6kBR,SI3kBU,cAAA,QAPF,QJulBR,SIrlBU,cAAA,OAGF,QJulBR,SIrlBU,cAAA,OAPF,QJimBR,SI/lBU,cAAA,KAGF,QJimBR,SI/lBU,cAAA,KAPF,QJ2mBR,SIzmBU,cAAA,OAGF,QJ2mBR,SIzmBU,cAAA,OAPF,QJqnBR,SInnBU,cAAA,KAGF,QJqnBR,SInnBU,cAAA,MF1DN,yBEUE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,YAAA,EAwDU,aAxDV,YAAA,YAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAmEM,QJwxBR,SItxBU,cAAA,EAGF,QJwxBR,SItxBU,cAAA,EAPF,QJkyBR,SIhyBU,cAAA,QAGF,QJkyBR,SIhyBU,cAAA,QAPF,QJ4yBR,SI1yBU,cAAA,OAGF,QJ4yBR,SI1yBU,cAAA,OAPF,QJszBR,SIpzBU,cAAA,KAGF,QJszBR,SIpzBU,cAAA,KAPF,QJg0BR,SI9zBU,cAAA,OAGF,QJg0BR,SI9zBU,cAAA,OAPF,QJ00BR,SIx0BU,cAAA,KAGF,QJ00BR,SIx0BU,cAAA,MF1DN,0BEUE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,YAAA,EAwDU,aAxDV,YAAA,YAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAmEM,QJ6+BR,SI3+BU,cAAA,EAGF,QJ6+BR,SI3+BU,cAAA,EAPF,QJu/BR,SIr/BU,cAAA,QAGF,QJu/BR,SIr/BU,cAAA,QAPF,QJigCR,SI//BU,cAAA,OAGF,QJigCR,SI//BU,cAAA,OAPF,QJ2gCR,SIzgCU,cAAA,KAGF,QJ2gCR,SIzgCU,cAAA,KAPF,QJqhCR,SInhCU,cAAA,OAGF,QJqhCR,SInhCU,cAAA,OAPF,QJ+hCR,SI7hCU,cAAA,KAGF,QJ+hCR,SI7hCU,cAAA,MF1DN,0BEUE,SACE,KAAA,EAAA,EAAA,GAGF,qBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,cAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,YAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,YAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,YAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,cAxDV,YAAA,EAwDU,cAxDV,YAAA,YAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,IAwDU,eAxDV,YAAA,aAwDU,eAxDV,YAAA,aAmEM,SJksCR,UIhsCU,cAAA,EAGF,SJksCR,UIhsCU,cAAA,EAPF,SJ4sCR,UI1sCU,cAAA,QAGF,SJ4sCR,UI1sCU,cAAA,QAPF,SJstCR,UIptCU,cAAA,OAGF,SJstCR,UIptCU,cAAA,OAPF,SJguCR,UI9tCU,cAAA,KAGF,SJguCR,UI9tCU,cAAA,KAPF,SJ0uCR,UIxuCU,cAAA,OAGF,SJ0uCR,UIxuCU,cAAA,OAPF,SJovCR,UIlvCU,cAAA,KAGF,SJovCR,UIlvCU,cAAA,MC1DF,UAOI,QAAA,iBAPJ,gBAOI,QAAA,uBAPJ,SAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,SAOI,QAAA,gBAPJ,aAOI,QAAA,oBAPJ,cAOI,QAAA,qBAPJ,QAOI,QAAA,eAPJ,eAOI,QAAA,sBAPJ,QAOI,QAAA,eAPJ,WAOI,KAAA,EAAA,EAAA,eAPJ,UAOI,eAAA,cAPJ,aAOI,eAAA,iBAPJ,kBAOI,eAAA,sBAPJ,qBAOI,eAAA,yBAPJ,aAOI,UAAA,YAPJ,aAOI,UAAA,YAPJ,eAOI,YAAA,YAPJ,eAOI,YAAA,YAPJ,WAOI,UAAA,eAPJ,aAOI,UAAA,iBAPJ,mBAOI,UAAA,uBAPJ,uBAOI,gBAAA,qBAPJ,qBAOI,gBAAA,mBAPJ,wBAOI,gBAAA,iBAPJ,yBAOI,gBAAA,wBAPJ,wBAOI,gBAAA,uBAPJ,wBAOI,gBAAA,uBAPJ,mBAOI,YAAA,qBAPJ,iBAOI,YAAA,mBAPJ,oBAOI,YAAA,iBAPJ,sBAOI,YAAA,mBAPJ,qBAOI,YAAA,kBAPJ,qBAOI,cAAA,qBAPJ,mBAOI,cAAA,mBAPJ,sBAOI,cAAA,iBAPJ,uBAOI,cAAA,wBAPJ,sBAOI,cAAA,uBAPJ,uBAOI,cAAA,kBAPJ,iBAOI,WAAA,eAPJ,kBAOI,WAAA,qBAPJ,gBAOI,WAAA,mBAPJ,mBAOI,WAAA,iBAPJ,qBAOI,WAAA,mBAPJ,oBAOI,WAAA,kBAPJ,aAOI,MAAA,aAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,KAOI,OAAA,YAPJ,KAOI,OAAA,iBAPJ,KAOI,OAAA,gBAPJ,KAOI,OAAA,eAPJ,KAOI,OAAA,iBAPJ,KAOI,OAAA,eAPJ,QAOI,OAAA,eAPJ,MAOI,aAAA,YAAA,YAAA,YAPJ,MAOI,aAAA,iBAAA,YAAA,iBAPJ,MAOI,aAAA,gBAAA,YAAA,gBAPJ,MAOI,aAAA,eAAA,YAAA,eAPJ,MAOI,aAAA,iBAAA,YAAA,iBAPJ,MAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,MAOI,WAAA,YAAA,cAAA,YAPJ,MAOI,WAAA,iBAAA,cAAA,iBAPJ,MAOI,WAAA,gBAAA,cAAA,gBAPJ,MAOI,WAAA,eAAA,cAAA,eAPJ,MAOI,WAAA,iBAAA,cAAA,iBAPJ,MAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,MAOI,WAAA,YAPJ,MAOI,WAAA,iBAPJ,MAOI,WAAA,gBAPJ,MAOI,WAAA,eAPJ,MAOI,WAAA,iBAPJ,MAOI,WAAA,eAPJ,SAOI,WAAA,eAPJ,MAOI,aAAA,YAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,gBAPJ,MAOI,aAAA,eAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,eAPJ,SAOI,aAAA,eAPJ,MAOI,cAAA,YAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,gBAPJ,MAOI,cAAA,eAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,eAPJ,SAOI,cAAA,eAPJ,MAOI,YAAA,YAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,gBAPJ,MAOI,YAAA,eAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,eAPJ,SAOI,YAAA,eAPJ,KAOI,QAAA,YAPJ,KAOI,QAAA,iBAPJ,KAOI,QAAA,gBAPJ,KAOI,QAAA,eAPJ,KAOI,QAAA,iBAPJ,KAOI,QAAA,eAPJ,MAOI,cAAA,YAAA,aAAA,YAPJ,MAOI,cAAA,iBAAA,aAAA,iBAPJ,MAOI,cAAA,gBAAA,aAAA,gBAPJ,MAOI,cAAA,eAAA,aAAA,eAPJ,MAOI,cAAA,iBAAA,aAAA,iBAPJ,MAOI,cAAA,eAAA,aAAA,eAPJ,MAOI,YAAA,YAAA,eAAA,YAPJ,MAOI,YAAA,iBAAA,eAAA,iBAPJ,MAOI,YAAA,gBAAA,eAAA,gBAPJ,MAOI,YAAA,eAAA,eAAA,eAPJ,MAOI,YAAA,iBAAA,eAAA,iBAPJ,MAOI,YAAA,eAAA,eAAA,eAPJ,MAOI,YAAA,YAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,gBAPJ,MAOI,YAAA,eAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,eAPJ,MAOI,cAAA,YAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,gBAPJ,MAOI,cAAA,eAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,eAPJ,MAOI,eAAA,YAPJ,MAOI,eAAA,iBAPJ,MAOI,eAAA,gBAPJ,MAOI,eAAA,eAPJ,MAOI,eAAA,iBAPJ,MAOI,eAAA,eAPJ,MAOI,aAAA,YAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,gBAPJ,MAOI,aAAA,eAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,eHPR,yBGAI,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,aAAA,YAAA,YAAA,YAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,gBAAA,YAAA,gBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,YAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,cAAA,YAAA,aAAA,YAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,gBAAA,aAAA,gBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBHPR,yBGAI,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,aAAA,YAAA,YAAA,YAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,gBAAA,YAAA,gBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,YAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,cAAA,YAAA,aAAA,YAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,gBAAA,aAAA,gBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBHPR,yBGAI,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,aAAA,YAAA,YAAA,YAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,gBAAA,YAAA,gBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,YAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,cAAA,YAAA,aAAA,YAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,gBAAA,aAAA,gBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBHPR,0BGAI,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,aAAA,YAAA,YAAA,YAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,gBAAA,YAAA,gBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,YAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,cAAA,YAAA,aAAA,YAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,gBAAA,aAAA,gBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBHPR,0BGAI,cAOI,QAAA,iBAPJ,oBAOI,QAAA,uBAPJ,aAOI,QAAA,gBAPJ,YAOI,QAAA,eAPJ,aAOI,QAAA,gBAPJ,iBAOI,QAAA,oBAPJ,kBAOI,QAAA,qBAPJ,YAOI,QAAA,eAPJ,mBAOI,QAAA,sBAPJ,YAOI,QAAA,eAPJ,eAOI,KAAA,EAAA,EAAA,eAPJ,cAOI,eAAA,cAPJ,iBAOI,eAAA,iBAPJ,sBAOI,eAAA,sBAPJ,yBAOI,eAAA,yBAPJ,iBAOI,UAAA,YAPJ,iBAOI,UAAA,YAPJ,mBAOI,YAAA,YAPJ,mBAOI,YAAA,YAPJ,eAOI,UAAA,eAPJ,iBAOI,UAAA,iBAPJ,uBAOI,UAAA,uBAPJ,2BAOI,gBAAA,qBAPJ,yBAOI,gBAAA,mBAPJ,4BAOI,gBAAA,iBAPJ,6BAOI,gBAAA,wBAPJ,4BAOI,gBAAA,uBAPJ,4BAOI,gBAAA,uBAPJ,uBAOI,YAAA,qBAPJ,qBAOI,YAAA,mBAPJ,wBAOI,YAAA,iBAPJ,0BAOI,YAAA,mBAPJ,yBAOI,YAAA,kBAPJ,yBAOI,cAAA,qBAPJ,uBAOI,cAAA,mBAPJ,0BAOI,cAAA,iBAPJ,2BAOI,cAAA,wBAPJ,0BAOI,cAAA,uBAPJ,2BAOI,cAAA,kBAPJ,qBAOI,WAAA,eAPJ,sBAOI,WAAA,qBAPJ,oBAOI,WAAA,mBAPJ,uBAOI,WAAA,iBAPJ,yBAOI,WAAA,mBAPJ,wBAOI,WAAA,kBAPJ,iBAOI,MAAA,aAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,gBAOI,MAAA,YAPJ,SAOI,OAAA,YAPJ,SAOI,OAAA,iBAPJ,SAOI,OAAA,gBAPJ,SAOI,OAAA,eAPJ,SAOI,OAAA,iBAPJ,SAOI,OAAA,eAPJ,YAOI,OAAA,eAPJ,UAOI,aAAA,YAAA,YAAA,YAPJ,UAOI,aAAA,iBAAA,YAAA,iBAPJ,UAOI,aAAA,gBAAA,YAAA,gBAPJ,UAOI,aAAA,eAAA,YAAA,eAPJ,UAOI,aAAA,iBAAA,YAAA,iBAPJ,UAOI,aAAA,eAAA,YAAA,eAPJ,aAOI,aAAA,eAAA,YAAA,eAPJ,UAOI,WAAA,YAAA,cAAA,YAPJ,UAOI,WAAA,iBAAA,cAAA,iBAPJ,UAOI,WAAA,gBAAA,cAAA,gBAPJ,UAOI,WAAA,eAAA,cAAA,eAPJ,UAOI,WAAA,iBAAA,cAAA,iBAPJ,UAOI,WAAA,eAAA,cAAA,eAPJ,aAOI,WAAA,eAAA,cAAA,eAPJ,UAOI,WAAA,YAPJ,UAOI,WAAA,iBAPJ,UAOI,WAAA,gBAPJ,UAOI,WAAA,eAPJ,UAOI,WAAA,iBAPJ,UAOI,WAAA,eAPJ,aAOI,WAAA,eAPJ,UAOI,aAAA,YAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,gBAPJ,UAOI,aAAA,eAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,eAPJ,aAOI,aAAA,eAPJ,UAOI,cAAA,YAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,gBAPJ,UAOI,cAAA,eAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,eAPJ,aAOI,cAAA,eAPJ,UAOI,YAAA,YAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,gBAPJ,UAOI,YAAA,eAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,eAPJ,aAOI,YAAA,eAPJ,SAOI,QAAA,YAPJ,SAOI,QAAA,iBAPJ,SAOI,QAAA,gBAPJ,SAOI,QAAA,eAPJ,SAOI,QAAA,iBAPJ,SAOI,QAAA,eAPJ,UAOI,cAAA,YAAA,aAAA,YAPJ,UAOI,cAAA,iBAAA,aAAA,iBAPJ,UAOI,cAAA,gBAAA,aAAA,gBAPJ,UAOI,cAAA,eAAA,aAAA,eAPJ,UAOI,cAAA,iBAAA,aAAA,iBAPJ,UAOI,cAAA,eAAA,aAAA,eAPJ,UAOI,YAAA,YAAA,eAAA,YAPJ,UAOI,YAAA,iBAAA,eAAA,iBAPJ,UAOI,YAAA,gBAAA,eAAA,gBAPJ,UAOI,YAAA,eAAA,eAAA,eAPJ,UAOI,YAAA,iBAAA,eAAA,iBAPJ,UAOI,YAAA,eAAA,eAAA,eAPJ,UAOI,YAAA,YAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,gBAPJ,UAOI,YAAA,eAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,eAPJ,UAOI,cAAA,YAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,gBAPJ,UAOI,cAAA,eAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,eAPJ,UAOI,eAAA,YAPJ,UAOI,eAAA,iBAPJ,UAOI,eAAA,gBAPJ,UAOI,eAAA,eAPJ,UAOI,eAAA,iBAPJ,UAOI,eAAA,eAPJ,UAOI,aAAA,YAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,gBAPJ,UAOI,aAAA,eAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,gBChCZ,aDyBQ,gBAOI,QAAA,iBAPJ,sBAOI,QAAA,uBAPJ,eAOI,QAAA,gBAPJ,cAOI,QAAA,eAPJ,eAOI,QAAA,gBAPJ,mBAOI,QAAA,oBAPJ,oBAOI,QAAA,qBAPJ,cAOI,QAAA,eAPJ,qBAOI,QAAA,sBAPJ,cAOI,QAAA","sourcesContent":["/*!\n * Bootstrap Grid v5.1.3 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\n$include-column-box-sizing: true !default;\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/lists\";\n@import \"mixins/breakpoints\";\n@import \"mixins/container\";\n@import \"mixins/grid\";\n@import \"mixins/utilities\";\n\n@import \"vendor/rfs\";\n\n@import \"root\";\n\n@import \"containers\";\n@import \"grid\";\n\n@import \"utilities\";\n// Only use the utilities we need\n// stylelint-disable-next-line scss/dollar-variable-default\n$utilities: map-get-multiple(\n $utilities,\n (\n \"display\",\n \"order\",\n \"flex\",\n \"flex-direction\",\n \"flex-grow\",\n \"flex-shrink\",\n \"flex-wrap\",\n \"justify-content\",\n \"align-items\",\n \"align-content\",\n \"align-self\",\n \"margin\",\n \"margin-x\",\n \"margin-y\",\n \"margin-top\",\n \"margin-end\",\n \"margin-bottom\",\n \"margin-start\",\n \"negative-margin\",\n \"negative-margin-x\",\n \"negative-margin-y\",\n \"negative-margin-top\",\n \"negative-margin-end\",\n \"negative-margin-bottom\",\n \"negative-margin-start\",\n \"padding\",\n \"padding-x\",\n \"padding-y\",\n \"padding-top\",\n \"padding-end\",\n \"padding-bottom\",\n \"padding-start\",\n )\n);\n\n@import \"utilities/api\";\n",":root {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Colors\n //\n // Generate palettes for full colors, grays, and theme colors.\n\n @each $color, $value in $colors {\n --#{$variable-prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $grays {\n --#{$variable-prefix}gray-#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$variable-prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors-rgb {\n --#{$variable-prefix}#{$color}-rgb: #{$value};\n }\n\n --#{$variable-prefix}white-rgb: #{to-rgb($white)};\n --#{$variable-prefix}black-rgb: #{to-rgb($black)};\n --#{$variable-prefix}body-color-rgb: #{to-rgb($body-color)};\n --#{$variable-prefix}body-bg-rgb: #{to-rgb($body-bg)};\n\n // Fonts\n\n // Note: Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --#{$variable-prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$variable-prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$variable-prefix}gradient: #{$gradient};\n\n // Root and body\n // stylelint-disable custom-property-empty-line-before\n // scss-docs-start root-body-variables\n @if $font-size-root != null {\n --#{$variable-prefix}root-font-size: #{$font-size-root};\n }\n --#{$variable-prefix}body-font-family: #{$font-family-base};\n --#{$variable-prefix}body-font-size: #{$font-size-base};\n --#{$variable-prefix}body-font-weight: #{$font-weight-base};\n --#{$variable-prefix}body-line-height: #{$line-height-base};\n --#{$variable-prefix}body-color: #{$body-color};\n @if $body-text-align != null {\n --#{$variable-prefix}body-text-align: #{$body-text-align};\n }\n --#{$variable-prefix}body-bg: #{$body-bg};\n // scss-docs-end root-body-variables\n // stylelint-enable custom-property-empty-line-before\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n @each $name, $width in $grid-breakpoints {\n @if ($extend-breakpoint) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n}\n","/*!\n * Bootstrap Grid v5.1.3 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --bs-blue: #0d6efd;\n --bs-indigo: #6610f2;\n --bs-purple: #6f42c1;\n --bs-pink: #d63384;\n --bs-red: #dc3545;\n --bs-orange: #fd7e14;\n --bs-yellow: #ffc107;\n --bs-green: #198754;\n --bs-teal: #20c997;\n --bs-cyan: #0dcaf0;\n --bs-white: #fff;\n --bs-gray: #6c757d;\n --bs-gray-dark: #343a40;\n --bs-gray-100: #f8f9fa;\n --bs-gray-200: #e9ecef;\n --bs-gray-300: #dee2e6;\n --bs-gray-400: #ced4da;\n --bs-gray-500: #adb5bd;\n --bs-gray-600: #6c757d;\n --bs-gray-700: #495057;\n --bs-gray-800: #343a40;\n --bs-gray-900: #212529;\n --bs-primary: #0d6efd;\n --bs-secondary: #6c757d;\n --bs-success: #198754;\n --bs-info: #0dcaf0;\n --bs-warning: #ffc107;\n --bs-danger: #dc3545;\n --bs-light: #f8f9fa;\n --bs-dark: #212529;\n --bs-primary-rgb: 13, 110, 253;\n --bs-secondary-rgb: 108, 117, 125;\n --bs-success-rgb: 25, 135, 84;\n --bs-info-rgb: 13, 202, 240;\n --bs-warning-rgb: 255, 193, 7;\n --bs-danger-rgb: 220, 53, 69;\n --bs-light-rgb: 248, 249, 250;\n --bs-dark-rgb: 33, 37, 41;\n --bs-white-rgb: 255, 255, 255;\n --bs-black-rgb: 0, 0, 0;\n --bs-body-color-rgb: 33, 37, 41;\n --bs-body-bg-rgb: 255, 255, 255;\n --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\";\n --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));\n --bs-body-font-family: var(--bs-font-sans-serif);\n --bs-body-font-size: 1rem;\n --bs-body-font-weight: 400;\n --bs-body-line-height: 1.5;\n --bs-body-color: #212529;\n --bs-body-bg: #fff;\n}\n\n.container,\n.container-fluid,\n.container-xxl,\n.container-xl,\n.container-lg,\n.container-md,\n.container-sm {\n width: 100%;\n padding-right: var(--bs-gutter-x, 0.75rem);\n padding-left: var(--bs-gutter-x, 0.75rem);\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container-sm, .container {\n max-width: 540px;\n }\n}\n@media (min-width: 768px) {\n .container-md, .container-sm, .container {\n max-width: 720px;\n }\n}\n@media (min-width: 992px) {\n .container-lg, .container-md, .container-sm, .container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1140px;\n }\n}\n@media (min-width: 1400px) {\n .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1320px;\n }\n}\n.row {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-top: calc(-1 * var(--bs-gutter-y));\n margin-right: calc(-0.5 * var(--bs-gutter-x));\n margin-left: calc(-0.5 * var(--bs-gutter-x));\n}\n.row > * {\n box-sizing: border-box;\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n margin-top: var(--bs-gutter-y);\n}\n\n.col {\n flex: 1 0 0%;\n}\n\n.row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n}\n\n.row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n}\n\n.col-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n}\n\n.col-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-3 {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.col-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.col-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n}\n\n.col-6 {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.col-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n}\n\n.col-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n}\n\n.col-9 {\n flex: 0 0 auto;\n width: 75%;\n}\n\n.col-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n}\n\n.col-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n}\n\n.col-12 {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.offset-1 {\n margin-left: 8.33333333%;\n}\n\n.offset-2 {\n margin-left: 16.66666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.33333333%;\n}\n\n.offset-5 {\n margin-left: 41.66666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.33333333%;\n}\n\n.offset-8 {\n margin-left: 66.66666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.33333333%;\n}\n\n.offset-11 {\n margin-left: 91.66666667%;\n}\n\n.g-0,\n.gx-0 {\n --bs-gutter-x: 0;\n}\n\n.g-0,\n.gy-0 {\n --bs-gutter-y: 0;\n}\n\n.g-1,\n.gx-1 {\n --bs-gutter-x: 0.25rem;\n}\n\n.g-1,\n.gy-1 {\n --bs-gutter-y: 0.25rem;\n}\n\n.g-2,\n.gx-2 {\n --bs-gutter-x: 0.5rem;\n}\n\n.g-2,\n.gy-2 {\n --bs-gutter-y: 0.5rem;\n}\n\n.g-3,\n.gx-3 {\n --bs-gutter-x: 1rem;\n}\n\n.g-3,\n.gy-3 {\n --bs-gutter-y: 1rem;\n}\n\n.g-4,\n.gx-4 {\n --bs-gutter-x: 1.5rem;\n}\n\n.g-4,\n.gy-4 {\n --bs-gutter-y: 1.5rem;\n}\n\n.g-5,\n.gx-5 {\n --bs-gutter-x: 3rem;\n}\n\n.g-5,\n.gy-5 {\n --bs-gutter-y: 3rem;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex: 1 0 0%;\n }\n\n .row-cols-sm-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n\n .row-cols-sm-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .row-cols-sm-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .row-cols-sm-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n .row-cols-sm-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .row-cols-sm-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n\n .row-cols-sm-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n }\n\n .col-sm-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n\n .col-sm-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n\n .col-sm-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .col-sm-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n\n .col-sm-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n\n .col-sm-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .col-sm-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n\n .col-sm-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n\n .col-sm-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n\n .col-sm-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n\n .col-sm-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n\n .col-sm-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .offset-sm-0 {\n margin-left: 0;\n }\n\n .offset-sm-1 {\n margin-left: 8.33333333%;\n }\n\n .offset-sm-2 {\n margin-left: 16.66666667%;\n }\n\n .offset-sm-3 {\n margin-left: 25%;\n }\n\n .offset-sm-4 {\n margin-left: 33.33333333%;\n }\n\n .offset-sm-5 {\n margin-left: 41.66666667%;\n }\n\n .offset-sm-6 {\n margin-left: 50%;\n }\n\n .offset-sm-7 {\n margin-left: 58.33333333%;\n }\n\n .offset-sm-8 {\n margin-left: 66.66666667%;\n }\n\n .offset-sm-9 {\n margin-left: 75%;\n }\n\n .offset-sm-10 {\n margin-left: 83.33333333%;\n }\n\n .offset-sm-11 {\n margin-left: 91.66666667%;\n }\n\n .g-sm-0,\n.gx-sm-0 {\n --bs-gutter-x: 0;\n }\n\n .g-sm-0,\n.gy-sm-0 {\n --bs-gutter-y: 0;\n }\n\n .g-sm-1,\n.gx-sm-1 {\n --bs-gutter-x: 0.25rem;\n }\n\n .g-sm-1,\n.gy-sm-1 {\n --bs-gutter-y: 0.25rem;\n }\n\n .g-sm-2,\n.gx-sm-2 {\n --bs-gutter-x: 0.5rem;\n }\n\n .g-sm-2,\n.gy-sm-2 {\n --bs-gutter-y: 0.5rem;\n }\n\n .g-sm-3,\n.gx-sm-3 {\n --bs-gutter-x: 1rem;\n }\n\n .g-sm-3,\n.gy-sm-3 {\n --bs-gutter-y: 1rem;\n }\n\n .g-sm-4,\n.gx-sm-4 {\n --bs-gutter-x: 1.5rem;\n }\n\n .g-sm-4,\n.gy-sm-4 {\n --bs-gutter-y: 1.5rem;\n }\n\n .g-sm-5,\n.gx-sm-5 {\n --bs-gutter-x: 3rem;\n }\n\n .g-sm-5,\n.gy-sm-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 768px) {\n .col-md {\n flex: 1 0 0%;\n }\n\n .row-cols-md-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n\n .row-cols-md-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .row-cols-md-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .row-cols-md-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n .row-cols-md-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .row-cols-md-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n\n .row-cols-md-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n }\n\n .col-md-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n\n .col-md-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n\n .col-md-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .col-md-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n\n .col-md-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n\n .col-md-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .col-md-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n\n .col-md-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n\n .col-md-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n\n .col-md-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n\n .col-md-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n\n .col-md-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .offset-md-0 {\n margin-left: 0;\n }\n\n .offset-md-1 {\n margin-left: 8.33333333%;\n }\n\n .offset-md-2 {\n margin-left: 16.66666667%;\n }\n\n .offset-md-3 {\n margin-left: 25%;\n }\n\n .offset-md-4 {\n margin-left: 33.33333333%;\n }\n\n .offset-md-5 {\n margin-left: 41.66666667%;\n }\n\n .offset-md-6 {\n margin-left: 50%;\n }\n\n .offset-md-7 {\n margin-left: 58.33333333%;\n }\n\n .offset-md-8 {\n margin-left: 66.66666667%;\n }\n\n .offset-md-9 {\n margin-left: 75%;\n }\n\n .offset-md-10 {\n margin-left: 83.33333333%;\n }\n\n .offset-md-11 {\n margin-left: 91.66666667%;\n }\n\n .g-md-0,\n.gx-md-0 {\n --bs-gutter-x: 0;\n }\n\n .g-md-0,\n.gy-md-0 {\n --bs-gutter-y: 0;\n }\n\n .g-md-1,\n.gx-md-1 {\n --bs-gutter-x: 0.25rem;\n }\n\n .g-md-1,\n.gy-md-1 {\n --bs-gutter-y: 0.25rem;\n }\n\n .g-md-2,\n.gx-md-2 {\n --bs-gutter-x: 0.5rem;\n }\n\n .g-md-2,\n.gy-md-2 {\n --bs-gutter-y: 0.5rem;\n }\n\n .g-md-3,\n.gx-md-3 {\n --bs-gutter-x: 1rem;\n }\n\n .g-md-3,\n.gy-md-3 {\n --bs-gutter-y: 1rem;\n }\n\n .g-md-4,\n.gx-md-4 {\n --bs-gutter-x: 1.5rem;\n }\n\n .g-md-4,\n.gy-md-4 {\n --bs-gutter-y: 1.5rem;\n }\n\n .g-md-5,\n.gx-md-5 {\n --bs-gutter-x: 3rem;\n }\n\n .g-md-5,\n.gy-md-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 992px) {\n .col-lg {\n flex: 1 0 0%;\n }\n\n .row-cols-lg-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n\n .row-cols-lg-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .row-cols-lg-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .row-cols-lg-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n .row-cols-lg-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .row-cols-lg-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n\n .row-cols-lg-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n }\n\n .col-lg-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n\n .col-lg-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n\n .col-lg-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .col-lg-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n\n .col-lg-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n\n .col-lg-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .col-lg-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n\n .col-lg-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n\n .col-lg-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n\n .col-lg-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n\n .col-lg-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n\n .col-lg-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .offset-lg-0 {\n margin-left: 0;\n }\n\n .offset-lg-1 {\n margin-left: 8.33333333%;\n }\n\n .offset-lg-2 {\n margin-left: 16.66666667%;\n }\n\n .offset-lg-3 {\n margin-left: 25%;\n }\n\n .offset-lg-4 {\n margin-left: 33.33333333%;\n }\n\n .offset-lg-5 {\n margin-left: 41.66666667%;\n }\n\n .offset-lg-6 {\n margin-left: 50%;\n }\n\n .offset-lg-7 {\n margin-left: 58.33333333%;\n }\n\n .offset-lg-8 {\n margin-left: 66.66666667%;\n }\n\n .offset-lg-9 {\n margin-left: 75%;\n }\n\n .offset-lg-10 {\n margin-left: 83.33333333%;\n }\n\n .offset-lg-11 {\n margin-left: 91.66666667%;\n }\n\n .g-lg-0,\n.gx-lg-0 {\n --bs-gutter-x: 0;\n }\n\n .g-lg-0,\n.gy-lg-0 {\n --bs-gutter-y: 0;\n }\n\n .g-lg-1,\n.gx-lg-1 {\n --bs-gutter-x: 0.25rem;\n }\n\n .g-lg-1,\n.gy-lg-1 {\n --bs-gutter-y: 0.25rem;\n }\n\n .g-lg-2,\n.gx-lg-2 {\n --bs-gutter-x: 0.5rem;\n }\n\n .g-lg-2,\n.gy-lg-2 {\n --bs-gutter-y: 0.5rem;\n }\n\n .g-lg-3,\n.gx-lg-3 {\n --bs-gutter-x: 1rem;\n }\n\n .g-lg-3,\n.gy-lg-3 {\n --bs-gutter-y: 1rem;\n }\n\n .g-lg-4,\n.gx-lg-4 {\n --bs-gutter-x: 1.5rem;\n }\n\n .g-lg-4,\n.gy-lg-4 {\n --bs-gutter-y: 1.5rem;\n }\n\n .g-lg-5,\n.gx-lg-5 {\n --bs-gutter-x: 3rem;\n }\n\n .g-lg-5,\n.gy-lg-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1200px) {\n .col-xl {\n flex: 1 0 0%;\n }\n\n .row-cols-xl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n\n .row-cols-xl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .row-cols-xl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .row-cols-xl-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n .row-cols-xl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .row-cols-xl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n\n .row-cols-xl-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n\n .col-xl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n\n .col-xl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n\n .col-xl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .col-xl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n\n .col-xl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n\n .col-xl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .col-xl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n\n .col-xl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n\n .col-xl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n\n .col-xl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n\n .col-xl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n\n .col-xl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .offset-xl-0 {\n margin-left: 0;\n }\n\n .offset-xl-1 {\n margin-left: 8.33333333%;\n }\n\n .offset-xl-2 {\n margin-left: 16.66666667%;\n }\n\n .offset-xl-3 {\n margin-left: 25%;\n }\n\n .offset-xl-4 {\n margin-left: 33.33333333%;\n }\n\n .offset-xl-5 {\n margin-left: 41.66666667%;\n }\n\n .offset-xl-6 {\n margin-left: 50%;\n }\n\n .offset-xl-7 {\n margin-left: 58.33333333%;\n }\n\n .offset-xl-8 {\n margin-left: 66.66666667%;\n }\n\n .offset-xl-9 {\n margin-left: 75%;\n }\n\n .offset-xl-10 {\n margin-left: 83.33333333%;\n }\n\n .offset-xl-11 {\n margin-left: 91.66666667%;\n }\n\n .g-xl-0,\n.gx-xl-0 {\n --bs-gutter-x: 0;\n }\n\n .g-xl-0,\n.gy-xl-0 {\n --bs-gutter-y: 0;\n }\n\n .g-xl-1,\n.gx-xl-1 {\n --bs-gutter-x: 0.25rem;\n }\n\n .g-xl-1,\n.gy-xl-1 {\n --bs-gutter-y: 0.25rem;\n }\n\n .g-xl-2,\n.gx-xl-2 {\n --bs-gutter-x: 0.5rem;\n }\n\n .g-xl-2,\n.gy-xl-2 {\n --bs-gutter-y: 0.5rem;\n }\n\n .g-xl-3,\n.gx-xl-3 {\n --bs-gutter-x: 1rem;\n }\n\n .g-xl-3,\n.gy-xl-3 {\n --bs-gutter-y: 1rem;\n }\n\n .g-xl-4,\n.gx-xl-4 {\n --bs-gutter-x: 1.5rem;\n }\n\n .g-xl-4,\n.gy-xl-4 {\n --bs-gutter-y: 1.5rem;\n }\n\n .g-xl-5,\n.gx-xl-5 {\n --bs-gutter-x: 3rem;\n }\n\n .g-xl-5,\n.gy-xl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1400px) {\n .col-xxl {\n flex: 1 0 0%;\n }\n\n .row-cols-xxl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n\n .row-cols-xxl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .row-cols-xxl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .row-cols-xxl-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n .row-cols-xxl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .row-cols-xxl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n\n .row-cols-xxl-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n .col-xxl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n\n .col-xxl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n\n .col-xxl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n\n .col-xxl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .col-xxl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n\n .col-xxl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n\n .col-xxl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .col-xxl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n\n .col-xxl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n\n .col-xxl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n\n .col-xxl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n\n .col-xxl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n\n .col-xxl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .offset-xxl-0 {\n margin-left: 0;\n }\n\n .offset-xxl-1 {\n margin-left: 8.33333333%;\n }\n\n .offset-xxl-2 {\n margin-left: 16.66666667%;\n }\n\n .offset-xxl-3 {\n margin-left: 25%;\n }\n\n .offset-xxl-4 {\n margin-left: 33.33333333%;\n }\n\n .offset-xxl-5 {\n margin-left: 41.66666667%;\n }\n\n .offset-xxl-6 {\n margin-left: 50%;\n }\n\n .offset-xxl-7 {\n margin-left: 58.33333333%;\n }\n\n .offset-xxl-8 {\n margin-left: 66.66666667%;\n }\n\n .offset-xxl-9 {\n margin-left: 75%;\n }\n\n .offset-xxl-10 {\n margin-left: 83.33333333%;\n }\n\n .offset-xxl-11 {\n margin-left: 91.66666667%;\n }\n\n .g-xxl-0,\n.gx-xxl-0 {\n --bs-gutter-x: 0;\n }\n\n .g-xxl-0,\n.gy-xxl-0 {\n --bs-gutter-y: 0;\n }\n\n .g-xxl-1,\n.gx-xxl-1 {\n --bs-gutter-x: 0.25rem;\n }\n\n .g-xxl-1,\n.gy-xxl-1 {\n --bs-gutter-y: 0.25rem;\n }\n\n .g-xxl-2,\n.gx-xxl-2 {\n --bs-gutter-x: 0.5rem;\n }\n\n .g-xxl-2,\n.gy-xxl-2 {\n --bs-gutter-y: 0.5rem;\n }\n\n .g-xxl-3,\n.gx-xxl-3 {\n --bs-gutter-x: 1rem;\n }\n\n .g-xxl-3,\n.gy-xxl-3 {\n --bs-gutter-y: 1rem;\n }\n\n .g-xxl-4,\n.gx-xxl-4 {\n --bs-gutter-x: 1.5rem;\n }\n\n .g-xxl-4,\n.gy-xxl-4 {\n --bs-gutter-y: 1.5rem;\n }\n\n .g-xxl-5,\n.gx-xxl-5 {\n --bs-gutter-x: 3rem;\n }\n\n .g-xxl-5,\n.gy-xxl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-grid {\n display: grid !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.justify-content-evenly {\n justify-content: space-evenly !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n.order-first {\n order: -1 !important;\n}\n\n.order-0 {\n order: 0 !important;\n}\n\n.order-1 {\n order: 1 !important;\n}\n\n.order-2 {\n order: 2 !important;\n}\n\n.order-3 {\n order: 3 !important;\n}\n\n.order-4 {\n order: 4 !important;\n}\n\n.order-5 {\n order: 5 !important;\n}\n\n.order-last {\n order: 6 !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mx-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n}\n\n.mx-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n}\n\n.mx-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n}\n\n.mx-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n}\n\n.mx-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n}\n\n.mx-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n}\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n.my-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n}\n\n.my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n}\n\n.my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n}\n\n.my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n}\n\n.my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n}\n\n.my-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n}\n\n.my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n}\n\n.mt-0 {\n margin-top: 0 !important;\n}\n\n.mt-1 {\n margin-top: 0.25rem !important;\n}\n\n.mt-2 {\n margin-top: 0.5rem !important;\n}\n\n.mt-3 {\n margin-top: 1rem !important;\n}\n\n.mt-4 {\n margin-top: 1.5rem !important;\n}\n\n.mt-5 {\n margin-top: 3rem !important;\n}\n\n.mt-auto {\n margin-top: auto !important;\n}\n\n.me-0 {\n margin-right: 0 !important;\n}\n\n.me-1 {\n margin-right: 0.25rem !important;\n}\n\n.me-2 {\n margin-right: 0.5rem !important;\n}\n\n.me-3 {\n margin-right: 1rem !important;\n}\n\n.me-4 {\n margin-right: 1.5rem !important;\n}\n\n.me-5 {\n margin-right: 3rem !important;\n}\n\n.me-auto {\n margin-right: auto !important;\n}\n\n.mb-0 {\n margin-bottom: 0 !important;\n}\n\n.mb-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.mb-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.mb-3 {\n margin-bottom: 1rem !important;\n}\n\n.mb-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.mb-5 {\n margin-bottom: 3rem !important;\n}\n\n.mb-auto {\n margin-bottom: auto !important;\n}\n\n.ms-0 {\n margin-left: 0 !important;\n}\n\n.ms-1 {\n margin-left: 0.25rem !important;\n}\n\n.ms-2 {\n margin-left: 0.5rem !important;\n}\n\n.ms-3 {\n margin-left: 1rem !important;\n}\n\n.ms-4 {\n margin-left: 1.5rem !important;\n}\n\n.ms-5 {\n margin-left: 3rem !important;\n}\n\n.ms-auto {\n margin-left: auto !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.px-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n}\n\n.px-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n}\n\n.px-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n}\n\n.px-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n}\n\n.px-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n}\n\n.px-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n}\n\n.py-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n}\n\n.py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n}\n\n.py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n}\n\n.py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n}\n\n.py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n}\n\n.py-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n}\n\n.pt-0 {\n padding-top: 0 !important;\n}\n\n.pt-1 {\n padding-top: 0.25rem !important;\n}\n\n.pt-2 {\n padding-top: 0.5rem !important;\n}\n\n.pt-3 {\n padding-top: 1rem !important;\n}\n\n.pt-4 {\n padding-top: 1.5rem !important;\n}\n\n.pt-5 {\n padding-top: 3rem !important;\n}\n\n.pe-0 {\n padding-right: 0 !important;\n}\n\n.pe-1 {\n padding-right: 0.25rem !important;\n}\n\n.pe-2 {\n padding-right: 0.5rem !important;\n}\n\n.pe-3 {\n padding-right: 1rem !important;\n}\n\n.pe-4 {\n padding-right: 1.5rem !important;\n}\n\n.pe-5 {\n padding-right: 3rem !important;\n}\n\n.pb-0 {\n padding-bottom: 0 !important;\n}\n\n.pb-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pb-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pb-3 {\n padding-bottom: 1rem !important;\n}\n\n.pb-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pb-5 {\n padding-bottom: 3rem !important;\n}\n\n.ps-0 {\n padding-left: 0 !important;\n}\n\n.ps-1 {\n padding-left: 0.25rem !important;\n}\n\n.ps-2 {\n padding-left: 0.5rem !important;\n}\n\n.ps-3 {\n padding-left: 1rem !important;\n}\n\n.ps-4 {\n padding-left: 1.5rem !important;\n}\n\n.ps-5 {\n padding-left: 3rem !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-inline {\n display: inline !important;\n }\n\n .d-sm-inline-block {\n display: inline-block !important;\n }\n\n .d-sm-block {\n display: block !important;\n }\n\n .d-sm-grid {\n display: grid !important;\n }\n\n .d-sm-table {\n display: table !important;\n }\n\n .d-sm-table-row {\n display: table-row !important;\n }\n\n .d-sm-table-cell {\n display: table-cell !important;\n }\n\n .d-sm-flex {\n display: flex !important;\n }\n\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n\n .d-sm-none {\n display: none !important;\n }\n\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-sm-row {\n flex-direction: row !important;\n }\n\n .flex-sm-column {\n flex-direction: column !important;\n }\n\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-sm-center {\n justify-content: center !important;\n }\n\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n\n .justify-content-sm-evenly {\n justify-content: space-evenly !important;\n }\n\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n\n .align-items-sm-center {\n align-items: center !important;\n }\n\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n\n .align-content-sm-center {\n align-content: center !important;\n }\n\n .align-content-sm-between {\n align-content: space-between !important;\n }\n\n .align-content-sm-around {\n align-content: space-around !important;\n }\n\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n\n .align-self-sm-auto {\n align-self: auto !important;\n }\n\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n\n .align-self-sm-center {\n align-self: center !important;\n }\n\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n\n .order-sm-first {\n order: -1 !important;\n }\n\n .order-sm-0 {\n order: 0 !important;\n }\n\n .order-sm-1 {\n order: 1 !important;\n }\n\n .order-sm-2 {\n order: 2 !important;\n }\n\n .order-sm-3 {\n order: 3 !important;\n }\n\n .order-sm-4 {\n order: 4 !important;\n }\n\n .order-sm-5 {\n order: 5 !important;\n }\n\n .order-sm-last {\n order: 6 !important;\n }\n\n .m-sm-0 {\n margin: 0 !important;\n }\n\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n\n .m-sm-3 {\n margin: 1rem !important;\n }\n\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n\n .m-sm-5 {\n margin: 3rem !important;\n }\n\n .m-sm-auto {\n margin: auto !important;\n }\n\n .mx-sm-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n\n .mx-sm-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n\n .mx-sm-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n\n .mx-sm-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n .my-sm-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n\n .my-sm-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n\n .my-sm-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n\n .my-sm-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n\n .my-sm-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n\n .my-sm-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n\n .my-sm-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n\n .mt-sm-0 {\n margin-top: 0 !important;\n }\n\n .mt-sm-1 {\n margin-top: 0.25rem !important;\n }\n\n .mt-sm-2 {\n margin-top: 0.5rem !important;\n }\n\n .mt-sm-3 {\n margin-top: 1rem !important;\n }\n\n .mt-sm-4 {\n margin-top: 1.5rem !important;\n }\n\n .mt-sm-5 {\n margin-top: 3rem !important;\n }\n\n .mt-sm-auto {\n margin-top: auto !important;\n }\n\n .me-sm-0 {\n margin-right: 0 !important;\n }\n\n .me-sm-1 {\n margin-right: 0.25rem !important;\n }\n\n .me-sm-2 {\n margin-right: 0.5rem !important;\n }\n\n .me-sm-3 {\n margin-right: 1rem !important;\n }\n\n .me-sm-4 {\n margin-right: 1.5rem !important;\n }\n\n .me-sm-5 {\n margin-right: 3rem !important;\n }\n\n .me-sm-auto {\n margin-right: auto !important;\n }\n\n .mb-sm-0 {\n margin-bottom: 0 !important;\n }\n\n .mb-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .mb-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .mb-sm-3 {\n margin-bottom: 1rem !important;\n }\n\n .mb-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .mb-sm-5 {\n margin-bottom: 3rem !important;\n }\n\n .mb-sm-auto {\n margin-bottom: auto !important;\n }\n\n .ms-sm-0 {\n margin-left: 0 !important;\n }\n\n .ms-sm-1 {\n margin-left: 0.25rem !important;\n }\n\n .ms-sm-2 {\n margin-left: 0.5rem !important;\n }\n\n .ms-sm-3 {\n margin-left: 1rem !important;\n }\n\n .ms-sm-4 {\n margin-left: 1.5rem !important;\n }\n\n .ms-sm-5 {\n margin-left: 3rem !important;\n }\n\n .ms-sm-auto {\n margin-left: auto !important;\n }\n\n .p-sm-0 {\n padding: 0 !important;\n }\n\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n\n .p-sm-3 {\n padding: 1rem !important;\n }\n\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n\n .p-sm-5 {\n padding: 3rem !important;\n }\n\n .px-sm-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n\n .px-sm-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n\n .px-sm-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n\n .px-sm-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n\n .px-sm-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n\n .px-sm-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n\n .py-sm-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n\n .py-sm-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n\n .py-sm-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n\n .py-sm-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n\n .py-sm-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n\n .py-sm-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pt-sm-0 {\n padding-top: 0 !important;\n }\n\n .pt-sm-1 {\n padding-top: 0.25rem !important;\n }\n\n .pt-sm-2 {\n padding-top: 0.5rem !important;\n }\n\n .pt-sm-3 {\n padding-top: 1rem !important;\n }\n\n .pt-sm-4 {\n padding-top: 1.5rem !important;\n }\n\n .pt-sm-5 {\n padding-top: 3rem !important;\n }\n\n .pe-sm-0 {\n padding-right: 0 !important;\n }\n\n .pe-sm-1 {\n padding-right: 0.25rem !important;\n }\n\n .pe-sm-2 {\n padding-right: 0.5rem !important;\n }\n\n .pe-sm-3 {\n padding-right: 1rem !important;\n }\n\n .pe-sm-4 {\n padding-right: 1.5rem !important;\n }\n\n .pe-sm-5 {\n padding-right: 3rem !important;\n }\n\n .pb-sm-0 {\n padding-bottom: 0 !important;\n }\n\n .pb-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pb-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pb-sm-3 {\n padding-bottom: 1rem !important;\n }\n\n .pb-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pb-sm-5 {\n padding-bottom: 3rem !important;\n }\n\n .ps-sm-0 {\n padding-left: 0 !important;\n }\n\n .ps-sm-1 {\n padding-left: 0.25rem !important;\n }\n\n .ps-sm-2 {\n padding-left: 0.5rem !important;\n }\n\n .ps-sm-3 {\n padding-left: 1rem !important;\n }\n\n .ps-sm-4 {\n padding-left: 1.5rem !important;\n }\n\n .ps-sm-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 768px) {\n .d-md-inline {\n display: inline !important;\n }\n\n .d-md-inline-block {\n display: inline-block !important;\n }\n\n .d-md-block {\n display: block !important;\n }\n\n .d-md-grid {\n display: grid !important;\n }\n\n .d-md-table {\n display: table !important;\n }\n\n .d-md-table-row {\n display: table-row !important;\n }\n\n .d-md-table-cell {\n display: table-cell !important;\n }\n\n .d-md-flex {\n display: flex !important;\n }\n\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n\n .d-md-none {\n display: none !important;\n }\n\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-md-row {\n flex-direction: row !important;\n }\n\n .flex-md-column {\n flex-direction: column !important;\n }\n\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-md-center {\n justify-content: center !important;\n }\n\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n\n .justify-content-md-evenly {\n justify-content: space-evenly !important;\n }\n\n .align-items-md-start {\n align-items: flex-start !important;\n }\n\n .align-items-md-end {\n align-items: flex-end !important;\n }\n\n .align-items-md-center {\n align-items: center !important;\n }\n\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n\n .align-content-md-start {\n align-content: flex-start !important;\n }\n\n .align-content-md-end {\n align-content: flex-end !important;\n }\n\n .align-content-md-center {\n align-content: center !important;\n }\n\n .align-content-md-between {\n align-content: space-between !important;\n }\n\n .align-content-md-around {\n align-content: space-around !important;\n }\n\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n\n .align-self-md-auto {\n align-self: auto !important;\n }\n\n .align-self-md-start {\n align-self: flex-start !important;\n }\n\n .align-self-md-end {\n align-self: flex-end !important;\n }\n\n .align-self-md-center {\n align-self: center !important;\n }\n\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n\n .order-md-first {\n order: -1 !important;\n }\n\n .order-md-0 {\n order: 0 !important;\n }\n\n .order-md-1 {\n order: 1 !important;\n }\n\n .order-md-2 {\n order: 2 !important;\n }\n\n .order-md-3 {\n order: 3 !important;\n }\n\n .order-md-4 {\n order: 4 !important;\n }\n\n .order-md-5 {\n order: 5 !important;\n }\n\n .order-md-last {\n order: 6 !important;\n }\n\n .m-md-0 {\n margin: 0 !important;\n }\n\n .m-md-1 {\n margin: 0.25rem !important;\n }\n\n .m-md-2 {\n margin: 0.5rem !important;\n }\n\n .m-md-3 {\n margin: 1rem !important;\n }\n\n .m-md-4 {\n margin: 1.5rem !important;\n }\n\n .m-md-5 {\n margin: 3rem !important;\n }\n\n .m-md-auto {\n margin: auto !important;\n }\n\n .mx-md-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n\n .mx-md-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n\n .mx-md-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n\n .mx-md-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n\n .mx-md-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n\n .mx-md-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n\n .mx-md-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n .my-md-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n\n .my-md-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n\n .my-md-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n\n .my-md-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n\n .my-md-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n\n .my-md-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n\n .my-md-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n\n .mt-md-0 {\n margin-top: 0 !important;\n }\n\n .mt-md-1 {\n margin-top: 0.25rem !important;\n }\n\n .mt-md-2 {\n margin-top: 0.5rem !important;\n }\n\n .mt-md-3 {\n margin-top: 1rem !important;\n }\n\n .mt-md-4 {\n margin-top: 1.5rem !important;\n }\n\n .mt-md-5 {\n margin-top: 3rem !important;\n }\n\n .mt-md-auto {\n margin-top: auto !important;\n }\n\n .me-md-0 {\n margin-right: 0 !important;\n }\n\n .me-md-1 {\n margin-right: 0.25rem !important;\n }\n\n .me-md-2 {\n margin-right: 0.5rem !important;\n }\n\n .me-md-3 {\n margin-right: 1rem !important;\n }\n\n .me-md-4 {\n margin-right: 1.5rem !important;\n }\n\n .me-md-5 {\n margin-right: 3rem !important;\n }\n\n .me-md-auto {\n margin-right: auto !important;\n }\n\n .mb-md-0 {\n margin-bottom: 0 !important;\n }\n\n .mb-md-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .mb-md-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .mb-md-3 {\n margin-bottom: 1rem !important;\n }\n\n .mb-md-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .mb-md-5 {\n margin-bottom: 3rem !important;\n }\n\n .mb-md-auto {\n margin-bottom: auto !important;\n }\n\n .ms-md-0 {\n margin-left: 0 !important;\n }\n\n .ms-md-1 {\n margin-left: 0.25rem !important;\n }\n\n .ms-md-2 {\n margin-left: 0.5rem !important;\n }\n\n .ms-md-3 {\n margin-left: 1rem !important;\n }\n\n .ms-md-4 {\n margin-left: 1.5rem !important;\n }\n\n .ms-md-5 {\n margin-left: 3rem !important;\n }\n\n .ms-md-auto {\n margin-left: auto !important;\n }\n\n .p-md-0 {\n padding: 0 !important;\n }\n\n .p-md-1 {\n padding: 0.25rem !important;\n }\n\n .p-md-2 {\n padding: 0.5rem !important;\n }\n\n .p-md-3 {\n padding: 1rem !important;\n }\n\n .p-md-4 {\n padding: 1.5rem !important;\n }\n\n .p-md-5 {\n padding: 3rem !important;\n }\n\n .px-md-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n\n .px-md-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n\n .px-md-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n\n .px-md-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n\n .px-md-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n\n .px-md-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n\n .py-md-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n\n .py-md-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n\n .py-md-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n\n .py-md-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n\n .py-md-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n\n .py-md-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pt-md-0 {\n padding-top: 0 !important;\n }\n\n .pt-md-1 {\n padding-top: 0.25rem !important;\n }\n\n .pt-md-2 {\n padding-top: 0.5rem !important;\n }\n\n .pt-md-3 {\n padding-top: 1rem !important;\n }\n\n .pt-md-4 {\n padding-top: 1.5rem !important;\n }\n\n .pt-md-5 {\n padding-top: 3rem !important;\n }\n\n .pe-md-0 {\n padding-right: 0 !important;\n }\n\n .pe-md-1 {\n padding-right: 0.25rem !important;\n }\n\n .pe-md-2 {\n padding-right: 0.5rem !important;\n }\n\n .pe-md-3 {\n padding-right: 1rem !important;\n }\n\n .pe-md-4 {\n padding-right: 1.5rem !important;\n }\n\n .pe-md-5 {\n padding-right: 3rem !important;\n }\n\n .pb-md-0 {\n padding-bottom: 0 !important;\n }\n\n .pb-md-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pb-md-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pb-md-3 {\n padding-bottom: 1rem !important;\n }\n\n .pb-md-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pb-md-5 {\n padding-bottom: 3rem !important;\n }\n\n .ps-md-0 {\n padding-left: 0 !important;\n }\n\n .ps-md-1 {\n padding-left: 0.25rem !important;\n }\n\n .ps-md-2 {\n padding-left: 0.5rem !important;\n }\n\n .ps-md-3 {\n padding-left: 1rem !important;\n }\n\n .ps-md-4 {\n padding-left: 1.5rem !important;\n }\n\n .ps-md-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 992px) {\n .d-lg-inline {\n display: inline !important;\n }\n\n .d-lg-inline-block {\n display: inline-block !important;\n }\n\n .d-lg-block {\n display: block !important;\n }\n\n .d-lg-grid {\n display: grid !important;\n }\n\n .d-lg-table {\n display: table !important;\n }\n\n .d-lg-table-row {\n display: table-row !important;\n }\n\n .d-lg-table-cell {\n display: table-cell !important;\n }\n\n .d-lg-flex {\n display: flex !important;\n }\n\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n\n .d-lg-none {\n display: none !important;\n }\n\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-lg-row {\n flex-direction: row !important;\n }\n\n .flex-lg-column {\n flex-direction: column !important;\n }\n\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-lg-center {\n justify-content: center !important;\n }\n\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n\n .justify-content-lg-evenly {\n justify-content: space-evenly !important;\n }\n\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n\n .align-items-lg-center {\n align-items: center !important;\n }\n\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n\n .align-content-lg-center {\n align-content: center !important;\n }\n\n .align-content-lg-between {\n align-content: space-between !important;\n }\n\n .align-content-lg-around {\n align-content: space-around !important;\n }\n\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n\n .align-self-lg-auto {\n align-self: auto !important;\n }\n\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n\n .align-self-lg-center {\n align-self: center !important;\n }\n\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n\n .order-lg-first {\n order: -1 !important;\n }\n\n .order-lg-0 {\n order: 0 !important;\n }\n\n .order-lg-1 {\n order: 1 !important;\n }\n\n .order-lg-2 {\n order: 2 !important;\n }\n\n .order-lg-3 {\n order: 3 !important;\n }\n\n .order-lg-4 {\n order: 4 !important;\n }\n\n .order-lg-5 {\n order: 5 !important;\n }\n\n .order-lg-last {\n order: 6 !important;\n }\n\n .m-lg-0 {\n margin: 0 !important;\n }\n\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n\n .m-lg-3 {\n margin: 1rem !important;\n }\n\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n\n .m-lg-5 {\n margin: 3rem !important;\n }\n\n .m-lg-auto {\n margin: auto !important;\n }\n\n .mx-lg-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n\n .mx-lg-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n\n .mx-lg-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n\n .mx-lg-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n .my-lg-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n\n .my-lg-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n\n .my-lg-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n\n .my-lg-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n\n .my-lg-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n\n .my-lg-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n\n .my-lg-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n\n .mt-lg-0 {\n margin-top: 0 !important;\n }\n\n .mt-lg-1 {\n margin-top: 0.25rem !important;\n }\n\n .mt-lg-2 {\n margin-top: 0.5rem !important;\n }\n\n .mt-lg-3 {\n margin-top: 1rem !important;\n }\n\n .mt-lg-4 {\n margin-top: 1.5rem !important;\n }\n\n .mt-lg-5 {\n margin-top: 3rem !important;\n }\n\n .mt-lg-auto {\n margin-top: auto !important;\n }\n\n .me-lg-0 {\n margin-right: 0 !important;\n }\n\n .me-lg-1 {\n margin-right: 0.25rem !important;\n }\n\n .me-lg-2 {\n margin-right: 0.5rem !important;\n }\n\n .me-lg-3 {\n margin-right: 1rem !important;\n }\n\n .me-lg-4 {\n margin-right: 1.5rem !important;\n }\n\n .me-lg-5 {\n margin-right: 3rem !important;\n }\n\n .me-lg-auto {\n margin-right: auto !important;\n }\n\n .mb-lg-0 {\n margin-bottom: 0 !important;\n }\n\n .mb-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .mb-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .mb-lg-3 {\n margin-bottom: 1rem !important;\n }\n\n .mb-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .mb-lg-5 {\n margin-bottom: 3rem !important;\n }\n\n .mb-lg-auto {\n margin-bottom: auto !important;\n }\n\n .ms-lg-0 {\n margin-left: 0 !important;\n }\n\n .ms-lg-1 {\n margin-left: 0.25rem !important;\n }\n\n .ms-lg-2 {\n margin-left: 0.5rem !important;\n }\n\n .ms-lg-3 {\n margin-left: 1rem !important;\n }\n\n .ms-lg-4 {\n margin-left: 1.5rem !important;\n }\n\n .ms-lg-5 {\n margin-left: 3rem !important;\n }\n\n .ms-lg-auto {\n margin-left: auto !important;\n }\n\n .p-lg-0 {\n padding: 0 !important;\n }\n\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n\n .p-lg-3 {\n padding: 1rem !important;\n }\n\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n\n .p-lg-5 {\n padding: 3rem !important;\n }\n\n .px-lg-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n\n .px-lg-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n\n .px-lg-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n\n .px-lg-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n\n .px-lg-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n\n .px-lg-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n\n .py-lg-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n\n .py-lg-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n\n .py-lg-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n\n .py-lg-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n\n .py-lg-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n\n .py-lg-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pt-lg-0 {\n padding-top: 0 !important;\n }\n\n .pt-lg-1 {\n padding-top: 0.25rem !important;\n }\n\n .pt-lg-2 {\n padding-top: 0.5rem !important;\n }\n\n .pt-lg-3 {\n padding-top: 1rem !important;\n }\n\n .pt-lg-4 {\n padding-top: 1.5rem !important;\n }\n\n .pt-lg-5 {\n padding-top: 3rem !important;\n }\n\n .pe-lg-0 {\n padding-right: 0 !important;\n }\n\n .pe-lg-1 {\n padding-right: 0.25rem !important;\n }\n\n .pe-lg-2 {\n padding-right: 0.5rem !important;\n }\n\n .pe-lg-3 {\n padding-right: 1rem !important;\n }\n\n .pe-lg-4 {\n padding-right: 1.5rem !important;\n }\n\n .pe-lg-5 {\n padding-right: 3rem !important;\n }\n\n .pb-lg-0 {\n padding-bottom: 0 !important;\n }\n\n .pb-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pb-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pb-lg-3 {\n padding-bottom: 1rem !important;\n }\n\n .pb-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pb-lg-5 {\n padding-bottom: 3rem !important;\n }\n\n .ps-lg-0 {\n padding-left: 0 !important;\n }\n\n .ps-lg-1 {\n padding-left: 0.25rem !important;\n }\n\n .ps-lg-2 {\n padding-left: 0.5rem !important;\n }\n\n .ps-lg-3 {\n padding-left: 1rem !important;\n }\n\n .ps-lg-4 {\n padding-left: 1.5rem !important;\n }\n\n .ps-lg-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 1200px) {\n .d-xl-inline {\n display: inline !important;\n }\n\n .d-xl-inline-block {\n display: inline-block !important;\n }\n\n .d-xl-block {\n display: block !important;\n }\n\n .d-xl-grid {\n display: grid !important;\n }\n\n .d-xl-table {\n display: table !important;\n }\n\n .d-xl-table-row {\n display: table-row !important;\n }\n\n .d-xl-table-cell {\n display: table-cell !important;\n }\n\n .d-xl-flex {\n display: flex !important;\n }\n\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n\n .d-xl-none {\n display: none !important;\n }\n\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-xl-row {\n flex-direction: row !important;\n }\n\n .flex-xl-column {\n flex-direction: column !important;\n }\n\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-xl-center {\n justify-content: center !important;\n }\n\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n\n .justify-content-xl-evenly {\n justify-content: space-evenly !important;\n }\n\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n\n .align-items-xl-center {\n align-items: center !important;\n }\n\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n\n .align-content-xl-center {\n align-content: center !important;\n }\n\n .align-content-xl-between {\n align-content: space-between !important;\n }\n\n .align-content-xl-around {\n align-content: space-around !important;\n }\n\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n\n .align-self-xl-auto {\n align-self: auto !important;\n }\n\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n\n .align-self-xl-center {\n align-self: center !important;\n }\n\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n\n .order-xl-first {\n order: -1 !important;\n }\n\n .order-xl-0 {\n order: 0 !important;\n }\n\n .order-xl-1 {\n order: 1 !important;\n }\n\n .order-xl-2 {\n order: 2 !important;\n }\n\n .order-xl-3 {\n order: 3 !important;\n }\n\n .order-xl-4 {\n order: 4 !important;\n }\n\n .order-xl-5 {\n order: 5 !important;\n }\n\n .order-xl-last {\n order: 6 !important;\n }\n\n .m-xl-0 {\n margin: 0 !important;\n }\n\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n\n .m-xl-3 {\n margin: 1rem !important;\n }\n\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n\n .m-xl-5 {\n margin: 3rem !important;\n }\n\n .m-xl-auto {\n margin: auto !important;\n }\n\n .mx-xl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n\n .mx-xl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n\n .mx-xl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n\n .mx-xl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n .my-xl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n\n .my-xl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n\n .my-xl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n\n .my-xl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n\n .my-xl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n\n .my-xl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n\n .my-xl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n\n .mt-xl-0 {\n margin-top: 0 !important;\n }\n\n .mt-xl-1 {\n margin-top: 0.25rem !important;\n }\n\n .mt-xl-2 {\n margin-top: 0.5rem !important;\n }\n\n .mt-xl-3 {\n margin-top: 1rem !important;\n }\n\n .mt-xl-4 {\n margin-top: 1.5rem !important;\n }\n\n .mt-xl-5 {\n margin-top: 3rem !important;\n }\n\n .mt-xl-auto {\n margin-top: auto !important;\n }\n\n .me-xl-0 {\n margin-right: 0 !important;\n }\n\n .me-xl-1 {\n margin-right: 0.25rem !important;\n }\n\n .me-xl-2 {\n margin-right: 0.5rem !important;\n }\n\n .me-xl-3 {\n margin-right: 1rem !important;\n }\n\n .me-xl-4 {\n margin-right: 1.5rem !important;\n }\n\n .me-xl-5 {\n margin-right: 3rem !important;\n }\n\n .me-xl-auto {\n margin-right: auto !important;\n }\n\n .mb-xl-0 {\n margin-bottom: 0 !important;\n }\n\n .mb-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .mb-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .mb-xl-3 {\n margin-bottom: 1rem !important;\n }\n\n .mb-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .mb-xl-5 {\n margin-bottom: 3rem !important;\n }\n\n .mb-xl-auto {\n margin-bottom: auto !important;\n }\n\n .ms-xl-0 {\n margin-left: 0 !important;\n }\n\n .ms-xl-1 {\n margin-left: 0.25rem !important;\n }\n\n .ms-xl-2 {\n margin-left: 0.5rem !important;\n }\n\n .ms-xl-3 {\n margin-left: 1rem !important;\n }\n\n .ms-xl-4 {\n margin-left: 1.5rem !important;\n }\n\n .ms-xl-5 {\n margin-left: 3rem !important;\n }\n\n .ms-xl-auto {\n margin-left: auto !important;\n }\n\n .p-xl-0 {\n padding: 0 !important;\n }\n\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n\n .p-xl-3 {\n padding: 1rem !important;\n }\n\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n\n .p-xl-5 {\n padding: 3rem !important;\n }\n\n .px-xl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n\n .px-xl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n\n .px-xl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n\n .px-xl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n\n .px-xl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n\n .px-xl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n\n .py-xl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n\n .py-xl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n\n .py-xl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n\n .py-xl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n\n .py-xl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n\n .py-xl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pt-xl-0 {\n padding-top: 0 !important;\n }\n\n .pt-xl-1 {\n padding-top: 0.25rem !important;\n }\n\n .pt-xl-2 {\n padding-top: 0.5rem !important;\n }\n\n .pt-xl-3 {\n padding-top: 1rem !important;\n }\n\n .pt-xl-4 {\n padding-top: 1.5rem !important;\n }\n\n .pt-xl-5 {\n padding-top: 3rem !important;\n }\n\n .pe-xl-0 {\n padding-right: 0 !important;\n }\n\n .pe-xl-1 {\n padding-right: 0.25rem !important;\n }\n\n .pe-xl-2 {\n padding-right: 0.5rem !important;\n }\n\n .pe-xl-3 {\n padding-right: 1rem !important;\n }\n\n .pe-xl-4 {\n padding-right: 1.5rem !important;\n }\n\n .pe-xl-5 {\n padding-right: 3rem !important;\n }\n\n .pb-xl-0 {\n padding-bottom: 0 !important;\n }\n\n .pb-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pb-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pb-xl-3 {\n padding-bottom: 1rem !important;\n }\n\n .pb-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pb-xl-5 {\n padding-bottom: 3rem !important;\n }\n\n .ps-xl-0 {\n padding-left: 0 !important;\n }\n\n .ps-xl-1 {\n padding-left: 0.25rem !important;\n }\n\n .ps-xl-2 {\n padding-left: 0.5rem !important;\n }\n\n .ps-xl-3 {\n padding-left: 1rem !important;\n }\n\n .ps-xl-4 {\n padding-left: 1.5rem !important;\n }\n\n .ps-xl-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 1400px) {\n .d-xxl-inline {\n display: inline !important;\n }\n\n .d-xxl-inline-block {\n display: inline-block !important;\n }\n\n .d-xxl-block {\n display: block !important;\n }\n\n .d-xxl-grid {\n display: grid !important;\n }\n\n .d-xxl-table {\n display: table !important;\n }\n\n .d-xxl-table-row {\n display: table-row !important;\n }\n\n .d-xxl-table-cell {\n display: table-cell !important;\n }\n\n .d-xxl-flex {\n display: flex !important;\n }\n\n .d-xxl-inline-flex {\n display: inline-flex !important;\n }\n\n .d-xxl-none {\n display: none !important;\n }\n\n .flex-xxl-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-xxl-row {\n flex-direction: row !important;\n }\n\n .flex-xxl-column {\n flex-direction: column !important;\n }\n\n .flex-xxl-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-xxl-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-xxl-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-xxl-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-xxl-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-xxl-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .flex-xxl-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-xxl-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-xxl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .justify-content-xxl-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-xxl-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-xxl-center {\n justify-content: center !important;\n }\n\n .justify-content-xxl-between {\n justify-content: space-between !important;\n }\n\n .justify-content-xxl-around {\n justify-content: space-around !important;\n }\n\n .justify-content-xxl-evenly {\n justify-content: space-evenly !important;\n }\n\n .align-items-xxl-start {\n align-items: flex-start !important;\n }\n\n .align-items-xxl-end {\n align-items: flex-end !important;\n }\n\n .align-items-xxl-center {\n align-items: center !important;\n }\n\n .align-items-xxl-baseline {\n align-items: baseline !important;\n }\n\n .align-items-xxl-stretch {\n align-items: stretch !important;\n }\n\n .align-content-xxl-start {\n align-content: flex-start !important;\n }\n\n .align-content-xxl-end {\n align-content: flex-end !important;\n }\n\n .align-content-xxl-center {\n align-content: center !important;\n }\n\n .align-content-xxl-between {\n align-content: space-between !important;\n }\n\n .align-content-xxl-around {\n align-content: space-around !important;\n }\n\n .align-content-xxl-stretch {\n align-content: stretch !important;\n }\n\n .align-self-xxl-auto {\n align-self: auto !important;\n }\n\n .align-self-xxl-start {\n align-self: flex-start !important;\n }\n\n .align-self-xxl-end {\n align-self: flex-end !important;\n }\n\n .align-self-xxl-center {\n align-self: center !important;\n }\n\n .align-self-xxl-baseline {\n align-self: baseline !important;\n }\n\n .align-self-xxl-stretch {\n align-self: stretch !important;\n }\n\n .order-xxl-first {\n order: -1 !important;\n }\n\n .order-xxl-0 {\n order: 0 !important;\n }\n\n .order-xxl-1 {\n order: 1 !important;\n }\n\n .order-xxl-2 {\n order: 2 !important;\n }\n\n .order-xxl-3 {\n order: 3 !important;\n }\n\n .order-xxl-4 {\n order: 4 !important;\n }\n\n .order-xxl-5 {\n order: 5 !important;\n }\n\n .order-xxl-last {\n order: 6 !important;\n }\n\n .m-xxl-0 {\n margin: 0 !important;\n }\n\n .m-xxl-1 {\n margin: 0.25rem !important;\n }\n\n .m-xxl-2 {\n margin: 0.5rem !important;\n }\n\n .m-xxl-3 {\n margin: 1rem !important;\n }\n\n .m-xxl-4 {\n margin: 1.5rem !important;\n }\n\n .m-xxl-5 {\n margin: 3rem !important;\n }\n\n .m-xxl-auto {\n margin: auto !important;\n }\n\n .mx-xxl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n\n .mx-xxl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n\n .mx-xxl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n\n .mx-xxl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n\n .mx-xxl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n\n .mx-xxl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n\n .mx-xxl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n .my-xxl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n\n .my-xxl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n\n .my-xxl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n\n .my-xxl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n\n .my-xxl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n\n .my-xxl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n\n .my-xxl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n\n .mt-xxl-0 {\n margin-top: 0 !important;\n }\n\n .mt-xxl-1 {\n margin-top: 0.25rem !important;\n }\n\n .mt-xxl-2 {\n margin-top: 0.5rem !important;\n }\n\n .mt-xxl-3 {\n margin-top: 1rem !important;\n }\n\n .mt-xxl-4 {\n margin-top: 1.5rem !important;\n }\n\n .mt-xxl-5 {\n margin-top: 3rem !important;\n }\n\n .mt-xxl-auto {\n margin-top: auto !important;\n }\n\n .me-xxl-0 {\n margin-right: 0 !important;\n }\n\n .me-xxl-1 {\n margin-right: 0.25rem !important;\n }\n\n .me-xxl-2 {\n margin-right: 0.5rem !important;\n }\n\n .me-xxl-3 {\n margin-right: 1rem !important;\n }\n\n .me-xxl-4 {\n margin-right: 1.5rem !important;\n }\n\n .me-xxl-5 {\n margin-right: 3rem !important;\n }\n\n .me-xxl-auto {\n margin-right: auto !important;\n }\n\n .mb-xxl-0 {\n margin-bottom: 0 !important;\n }\n\n .mb-xxl-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .mb-xxl-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .mb-xxl-3 {\n margin-bottom: 1rem !important;\n }\n\n .mb-xxl-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .mb-xxl-5 {\n margin-bottom: 3rem !important;\n }\n\n .mb-xxl-auto {\n margin-bottom: auto !important;\n }\n\n .ms-xxl-0 {\n margin-left: 0 !important;\n }\n\n .ms-xxl-1 {\n margin-left: 0.25rem !important;\n }\n\n .ms-xxl-2 {\n margin-left: 0.5rem !important;\n }\n\n .ms-xxl-3 {\n margin-left: 1rem !important;\n }\n\n .ms-xxl-4 {\n margin-left: 1.5rem !important;\n }\n\n .ms-xxl-5 {\n margin-left: 3rem !important;\n }\n\n .ms-xxl-auto {\n margin-left: auto !important;\n }\n\n .p-xxl-0 {\n padding: 0 !important;\n }\n\n .p-xxl-1 {\n padding: 0.25rem !important;\n }\n\n .p-xxl-2 {\n padding: 0.5rem !important;\n }\n\n .p-xxl-3 {\n padding: 1rem !important;\n }\n\n .p-xxl-4 {\n padding: 1.5rem !important;\n }\n\n .p-xxl-5 {\n padding: 3rem !important;\n }\n\n .px-xxl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n\n .px-xxl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n\n .px-xxl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n\n .px-xxl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n\n .px-xxl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n\n .px-xxl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n\n .py-xxl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n\n .py-xxl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n\n .py-xxl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n\n .py-xxl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n\n .py-xxl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n\n .py-xxl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pt-xxl-0 {\n padding-top: 0 !important;\n }\n\n .pt-xxl-1 {\n padding-top: 0.25rem !important;\n }\n\n .pt-xxl-2 {\n padding-top: 0.5rem !important;\n }\n\n .pt-xxl-3 {\n padding-top: 1rem !important;\n }\n\n .pt-xxl-4 {\n padding-top: 1.5rem !important;\n }\n\n .pt-xxl-5 {\n padding-top: 3rem !important;\n }\n\n .pe-xxl-0 {\n padding-right: 0 !important;\n }\n\n .pe-xxl-1 {\n padding-right: 0.25rem !important;\n }\n\n .pe-xxl-2 {\n padding-right: 0.5rem !important;\n }\n\n .pe-xxl-3 {\n padding-right: 1rem !important;\n }\n\n .pe-xxl-4 {\n padding-right: 1.5rem !important;\n }\n\n .pe-xxl-5 {\n padding-right: 3rem !important;\n }\n\n .pb-xxl-0 {\n padding-bottom: 0 !important;\n }\n\n .pb-xxl-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pb-xxl-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pb-xxl-3 {\n padding-bottom: 1rem !important;\n }\n\n .pb-xxl-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pb-xxl-5 {\n padding-bottom: 3rem !important;\n }\n\n .ps-xxl-0 {\n padding-left: 0 !important;\n }\n\n .ps-xxl-1 {\n padding-left: 0.25rem !important;\n }\n\n .ps-xxl-2 {\n padding-left: 0.5rem !important;\n }\n\n .ps-xxl-3 {\n padding-left: 1rem !important;\n }\n\n .ps-xxl-4 {\n padding-left: 1.5rem !important;\n }\n\n .ps-xxl-5 {\n padding-left: 3rem !important;\n }\n}\n@media print {\n .d-print-inline {\n display: inline !important;\n }\n\n .d-print-inline-block {\n display: inline-block !important;\n }\n\n .d-print-block {\n display: block !important;\n }\n\n .d-print-grid {\n display: grid !important;\n }\n\n .d-print-table {\n display: table !important;\n }\n\n .d-print-table-row {\n display: table-row !important;\n }\n\n .d-print-table-cell {\n display: table-cell !important;\n }\n\n .d-print-flex {\n display: flex !important;\n }\n\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n\n .d-print-none {\n display: none !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */","// Container mixins\n\n@mixin make-container($gutter: $container-padding-x) {\n width: 100%;\n padding-right: var(--#{$variable-prefix}gutter-x, #{$gutter});\n padding-left: var(--#{$variable-prefix}gutter-x, #{$gutter});\n margin-right: auto;\n margin-left: auto;\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoints}`\";\n }\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width.\n// The maximum value is reduced by 0.02px to work around the limitations of\n// `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $max: map-get($breakpoints, $name);\n @return if($max and $max > 0, $max - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($next, $breakpoints) {\n @content;\n }\n }\n}\n","// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n\n > * {\n @include make-col-ready();\n }\n }\n}\n\n@if $enable-cssgrid {\n .grid {\n display: grid;\n grid-template-rows: repeat(var(--#{$variable-prefix}rows, 1), 1fr);\n grid-template-columns: repeat(var(--#{$variable-prefix}columns, #{$grid-columns}), 1fr);\n gap: var(--#{$variable-prefix}gap, #{$grid-gutter-width});\n\n @include make-cssgrid();\n }\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter: $grid-gutter-width) {\n --#{$variable-prefix}gutter-x: #{$gutter};\n --#{$variable-prefix}gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed\n margin-top: calc(-1 * var(--#{$variable-prefix}gutter-y)); // stylelint-disable-line function-disallowed-list\n margin-right: calc(-.5 * var(--#{$variable-prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n margin-left: calc(-.5 * var(--#{$variable-prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n // Add box sizing if only the grid is loaded\n box-sizing: if(variable-exists(include-column-box-sizing) and $include-column-box-sizing, border-box, null);\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we set the width\n // later on to override this initial width.\n flex-shrink: 0;\n width: 100%;\n max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n padding-right: calc(var(--#{$variable-prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n padding-left: calc(var(--#{$variable-prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n margin-top: var(--#{$variable-prefix}gutter-y);\n}\n\n@mixin make-col($size: false, $columns: $grid-columns) {\n @if $size {\n flex: 0 0 auto;\n width: percentage(divide($size, $columns));\n\n } @else {\n flex: 1 1 0;\n max-width: 100%;\n }\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: divide($size, $columns);\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 auto;\n width: divide(100%, $count);\n }\n}\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n }\n\n .row-cols#{$infix}-auto > * {\n @include make-col-auto();\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n\n // Gutters\n //\n // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n @each $key, $value in $gutters {\n .g#{$infix}-#{$key},\n .gx#{$infix}-#{$key} {\n --#{$variable-prefix}gutter-x: #{$value};\n }\n\n .g#{$infix}-#{$key},\n .gy#{$infix}-#{$key} {\n --#{$variable-prefix}gutter-y: #{$value};\n }\n }\n }\n }\n}\n\n@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $grid-breakpoints) {\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .g-col#{$infix}-#{$i} {\n grid-column: auto / span $i;\n }\n }\n\n // Start with `1` because `0` is and invalid value.\n // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.\n @for $i from 1 through ($columns - 1) {\n .g-start#{$infix}-#{$i} {\n grid-column-start: $i;\n }\n }\n }\n }\n }\n}\n","// Utility generator\n// Used to generate utilities & print utilities\n@mixin generate-utility($utility, $infix, $is-rfs-media-query: false) {\n $values: map-get($utility, values);\n\n // If the values are a list or string, convert it into a map\n @if type-of($values) == \"string\" or type-of(nth($values, 1)) != \"list\" {\n $values: zip($values, $values);\n }\n\n @each $key, $value in $values {\n $properties: map-get($utility, property);\n\n // Multiple properties are possible, for example with vertical or horizontal margins or paddings\n @if type-of($properties) == \"string\" {\n $properties: append((), $properties);\n }\n\n // Use custom class if present\n $property-class: if(map-has-key($utility, class), map-get($utility, class), nth($properties, 1));\n $property-class: if($property-class == null, \"\", $property-class);\n\n // State params to generate pseudo-classes\n $state: if(map-has-key($utility, state), map-get($utility, state), ());\n\n $infix: if($property-class == \"\" and str-slice($infix, 1, 1) == \"-\", str-slice($infix, 2), $infix);\n\n // Don't prefix if value key is null (eg. with shadow class)\n $property-class-modifier: if($key, if($property-class == \"\" and $infix == \"\", \"\", \"-\") + $key, \"\");\n\n @if map-get($utility, rfs) {\n // Inside the media query\n @if $is-rfs-media-query {\n $val: rfs-value($value);\n\n // Do not render anything if fluid and non fluid values are the same\n $value: if($val == rfs-fluid-value($value), null, $val);\n }\n @else {\n $value: rfs-fluid-value($value);\n }\n }\n\n $is-css-var: map-get($utility, css-var);\n $is-local-vars: map-get($utility, local-vars);\n $is-rtl: map-get($utility, rtl);\n\n @if $value != null {\n @if $is-rtl == false {\n /* rtl:begin:remove */\n }\n\n @if $is-css-var {\n .#{$property-class + $infix + $property-class-modifier} {\n --#{$variable-prefix}#{$property-class}: #{$value};\n }\n\n @each $pseudo in $state {\n .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n --#{$variable-prefix}#{$property-class}: #{$value};\n }\n }\n } @else {\n .#{$property-class + $infix + $property-class-modifier} {\n @each $property in $properties {\n @if $is-local-vars {\n @each $local-var, $value in $is-local-vars {\n --#{$variable-prefix}#{$local-var}: #{$value};\n }\n }\n #{$property}: $value if($enable-important-utilities, !important, null);\n }\n }\n\n @each $pseudo in $state {\n .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n @each $property in $properties {\n #{$property}: $value if($enable-important-utilities, !important, null);\n }\n }\n }\n }\n\n @if $is-rtl == false {\n /* rtl:end:remove */\n }\n }\n }\n}\n","// Loop over each breakpoint\n@each $breakpoint in map-keys($grid-breakpoints) {\n\n // Generate media query if needed\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n // Loop over each utility property\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Only proceed if responsive media queries are enabled or if it's the base media query\n @if type-of($utility) == \"map\" and (map-get($utility, responsive) or $infix == \"\") {\n @include generate-utility($utility, $infix);\n }\n }\n }\n}\n\n// RFS rescaling\n@media (min-width: $rfs-mq-value) {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @if (map-get($grid-breakpoints, $breakpoint) < $rfs-breakpoint) {\n // Loop over each utility property\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Only proceed if responsive media queries are enabled or if it's the base media query\n @if type-of($utility) == \"map\" and map-get($utility, rfs) and (map-get($utility, responsive) or $infix == \"\") {\n @include generate-utility($utility, $infix, true);\n }\n }\n }\n }\n}\n\n\n// Print utilities\n@media print {\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Then check if the utility needs print styles\n @if type-of($utility) == \"map\" and map-get($utility, print) == true {\n @include generate-utility($utility, \"-print\");\n }\n }\n}\n"]} \ No newline at end of file diff --git a/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.rtl.css b/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.rtl.css new file mode 100644 index 0000000..b5b17d7 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.rtl.css @@ -0,0 +1,5050 @@ +/*! + * Bootstrap Grid v5.1.3 (https://getbootstrap.com/) + * 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-color-rgb: 33, 37, 41; + --bs-body-bg-rgb: 255, 255, 255; + --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; +} + +.container, +.container-fluid, +.container-xxl, +.container-xl, +.container-lg, +.container-md, +.container-sm { + width: 100%; + padding-left: var(--bs-gutter-x, 0.75rem); + padding-right: var(--bs-gutter-x, 0.75rem); + margin-left: auto; + margin-right: auto; +} + +@media (min-width: 576px) { + .container-sm, .container { + max-width: 540px; + } +} +@media (min-width: 768px) { + .container-md, .container-sm, .container { + max-width: 720px; + } +} +@media (min-width: 992px) { + .container-lg, .container-md, .container-sm, .container { + max-width: 960px; + } +} +@media (min-width: 1200px) { + .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1140px; + } +} +@media (min-width: 1400px) { + .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1320px; + } +} +.row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: flex; + flex-wrap: wrap; + margin-top: calc(-1 * var(--bs-gutter-y)); + margin-left: calc(-0.5 * var(--bs-gutter-x)); + margin-right: calc(-0.5 * var(--bs-gutter-x)); +} +.row > * { + box-sizing: border-box; + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-left: calc(var(--bs-gutter-x) * 0.5); + padding-right: calc(var(--bs-gutter-x) * 0.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-right: 8.33333333%; +} + +.offset-2 { + margin-right: 16.66666667%; +} + +.offset-3 { + margin-right: 25%; +} + +.offset-4 { + margin-right: 33.33333333%; +} + +.offset-5 { + margin-right: 41.66666667%; +} + +.offset-6 { + margin-right: 50%; +} + +.offset-7 { + margin-right: 58.33333333%; +} + +.offset-8 { + margin-right: 66.66666667%; +} + +.offset-9 { + margin-right: 75%; +} + +.offset-10 { + margin-right: 83.33333333%; +} + +.offset-11 { + margin-right: 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-right: 0; + } + + .offset-sm-1 { + margin-right: 8.33333333%; + } + + .offset-sm-2 { + margin-right: 16.66666667%; + } + + .offset-sm-3 { + margin-right: 25%; + } + + .offset-sm-4 { + margin-right: 33.33333333%; + } + + .offset-sm-5 { + margin-right: 41.66666667%; + } + + .offset-sm-6 { + margin-right: 50%; + } + + .offset-sm-7 { + margin-right: 58.33333333%; + } + + .offset-sm-8 { + margin-right: 66.66666667%; + } + + .offset-sm-9 { + margin-right: 75%; + } + + .offset-sm-10 { + margin-right: 83.33333333%; + } + + .offset-sm-11 { + margin-right: 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-right: 0; + } + + .offset-md-1 { + margin-right: 8.33333333%; + } + + .offset-md-2 { + margin-right: 16.66666667%; + } + + .offset-md-3 { + margin-right: 25%; + } + + .offset-md-4 { + margin-right: 33.33333333%; + } + + .offset-md-5 { + margin-right: 41.66666667%; + } + + .offset-md-6 { + margin-right: 50%; + } + + .offset-md-7 { + margin-right: 58.33333333%; + } + + .offset-md-8 { + margin-right: 66.66666667%; + } + + .offset-md-9 { + margin-right: 75%; + } + + .offset-md-10 { + margin-right: 83.33333333%; + } + + .offset-md-11 { + margin-right: 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-right: 0; + } + + .offset-lg-1 { + margin-right: 8.33333333%; + } + + .offset-lg-2 { + margin-right: 16.66666667%; + } + + .offset-lg-3 { + margin-right: 25%; + } + + .offset-lg-4 { + margin-right: 33.33333333%; + } + + .offset-lg-5 { + margin-right: 41.66666667%; + } + + .offset-lg-6 { + margin-right: 50%; + } + + .offset-lg-7 { + margin-right: 58.33333333%; + } + + .offset-lg-8 { + margin-right: 66.66666667%; + } + + .offset-lg-9 { + margin-right: 75%; + } + + .offset-lg-10 { + margin-right: 83.33333333%; + } + + .offset-lg-11 { + margin-right: 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-right: 0; + } + + .offset-xl-1 { + margin-right: 8.33333333%; + } + + .offset-xl-2 { + margin-right: 16.66666667%; + } + + .offset-xl-3 { + margin-right: 25%; + } + + .offset-xl-4 { + margin-right: 33.33333333%; + } + + .offset-xl-5 { + margin-right: 41.66666667%; + } + + .offset-xl-6 { + margin-right: 50%; + } + + .offset-xl-7 { + margin-right: 58.33333333%; + } + + .offset-xl-8 { + margin-right: 66.66666667%; + } + + .offset-xl-9 { + margin-right: 75%; + } + + .offset-xl-10 { + margin-right: 83.33333333%; + } + + .offset-xl-11 { + margin-right: 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-right: 0; + } + + .offset-xxl-1 { + margin-right: 8.33333333%; + } + + .offset-xxl-2 { + margin-right: 16.66666667%; + } + + .offset-xxl-3 { + margin-right: 25%; + } + + .offset-xxl-4 { + margin-right: 33.33333333%; + } + + .offset-xxl-5 { + margin-right: 41.66666667%; + } + + .offset-xxl-6 { + margin-right: 50%; + } + + .offset-xxl-7 { + margin-right: 58.33333333%; + } + + .offset-xxl-8 { + margin-right: 66.66666667%; + } + + .offset-xxl-9 { + margin-right: 75%; + } + + .offset-xxl-10 { + margin-right: 83.33333333%; + } + + .offset-xxl-11 { + margin-right: 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; + } +} +.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; +} + +.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; +} + +.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: 0.25rem !important; +} + +.m-2 { + margin: 0.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-left: 0 !important; + margin-right: 0 !important; +} + +.mx-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; +} + +.mx-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; +} + +.mx-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; +} + +.mx-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; +} + +.mx-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; +} + +.mx-auto { + margin-left: auto !important; + margin-right: auto !important; +} + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; +} + +.mt-2 { + margin-top: 0.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-left: 0 !important; +} + +.me-1 { + margin-left: 0.25rem !important; +} + +.me-2 { + margin-left: 0.5rem !important; +} + +.me-3 { + margin-left: 1rem !important; +} + +.me-4 { + margin-left: 1.5rem !important; +} + +.me-5 { + margin-left: 3rem !important; +} + +.me-auto { + margin-left: auto !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +.mb-1 { + margin-bottom: 0.25rem !important; +} + +.mb-2 { + margin-bottom: 0.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-right: 0 !important; +} + +.ms-1 { + margin-right: 0.25rem !important; +} + +.ms-2 { + margin-right: 0.5rem !important; +} + +.ms-3 { + margin-right: 1rem !important; +} + +.ms-4 { + margin-right: 1.5rem !important; +} + +.ms-5 { + margin-right: 3rem !important; +} + +.ms-auto { + margin-right: auto !important; +} + +.p-0 { + padding: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.px-0 { + padding-left: 0 !important; + padding-right: 0 !important; +} + +.px-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; +} + +.px-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; +} + +.px-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; +} + +.px-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; +} + +.px-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; +} + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; +} + +.pt-2 { + padding-top: 0.5rem !important; +} + +.pt-3 { + padding-top: 1rem !important; +} + +.pt-4 { + padding-top: 1.5rem !important; +} + +.pt-5 { + padding-top: 3rem !important; +} + +.pe-0 { + padding-left: 0 !important; +} + +.pe-1 { + padding-left: 0.25rem !important; +} + +.pe-2 { + padding-left: 0.5rem !important; +} + +.pe-3 { + padding-left: 1rem !important; +} + +.pe-4 { + padding-left: 1.5rem !important; +} + +.pe-5 { + padding-left: 3rem !important; +} + +.pb-0 { + padding-bottom: 0 !important; +} + +.pb-1 { + padding-bottom: 0.25rem !important; +} + +.pb-2 { + padding-bottom: 0.5rem !important; +} + +.pb-3 { + padding-bottom: 1rem !important; +} + +.pb-4 { + padding-bottom: 1.5rem !important; +} + +.pb-5 { + padding-bottom: 3rem !important; +} + +.ps-0 { + padding-right: 0 !important; +} + +.ps-1 { + padding-right: 0.25rem !important; +} + +.ps-2 { + padding-right: 0.5rem !important; +} + +.ps-3 { + padding-right: 1rem !important; +} + +.ps-4 { + padding-right: 1.5rem !important; +} + +.ps-5 { + padding-right: 3rem !important; +} + +@media (min-width: 576px) { + .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; + } + + .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: 0.25rem !important; + } + + .m-sm-2 { + margin: 0.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-left: 0 !important; + margin-right: 0 !important; + } + + .mx-sm-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + + .mx-sm-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + + .mx-sm-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + + .mx-sm-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + + .mx-sm-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + + .mx-sm-auto { + margin-left: auto !important; + margin-right: auto !important; + } + + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + + .mt-sm-2 { + margin-top: 0.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-left: 0 !important; + } + + .me-sm-1 { + margin-left: 0.25rem !important; + } + + .me-sm-2 { + margin-left: 0.5rem !important; + } + + .me-sm-3 { + margin-left: 1rem !important; + } + + .me-sm-4 { + margin-left: 1.5rem !important; + } + + .me-sm-5 { + margin-left: 3rem !important; + } + + .me-sm-auto { + margin-left: auto !important; + } + + .mb-sm-0 { + margin-bottom: 0 !important; + } + + .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + + .mb-sm-2 { + margin-bottom: 0.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-right: 0 !important; + } + + .ms-sm-1 { + margin-right: 0.25rem !important; + } + + .ms-sm-2 { + margin-right: 0.5rem !important; + } + + .ms-sm-3 { + margin-right: 1rem !important; + } + + .ms-sm-4 { + margin-right: 1.5rem !important; + } + + .ms-sm-5 { + margin-right: 3rem !important; + } + + .ms-sm-auto { + margin-right: auto !important; + } + + .p-sm-0 { + padding: 0 !important; + } + + .p-sm-1 { + padding: 0.25rem !important; + } + + .p-sm-2 { + padding: 0.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-left: 0 !important; + padding-right: 0 !important; + } + + .px-sm-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + + .px-sm-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + + .px-sm-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + + .px-sm-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + + .px-sm-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + + .pt-sm-2 { + padding-top: 0.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-left: 0 !important; + } + + .pe-sm-1 { + padding-left: 0.25rem !important; + } + + .pe-sm-2 { + padding-left: 0.5rem !important; + } + + .pe-sm-3 { + padding-left: 1rem !important; + } + + .pe-sm-4 { + padding-left: 1.5rem !important; + } + + .pe-sm-5 { + padding-left: 3rem !important; + } + + .pb-sm-0 { + padding-bottom: 0 !important; + } + + .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + + .pb-sm-2 { + padding-bottom: 0.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-right: 0 !important; + } + + .ps-sm-1 { + padding-right: 0.25rem !important; + } + + .ps-sm-2 { + padding-right: 0.5rem !important; + } + + .ps-sm-3 { + padding-right: 1rem !important; + } + + .ps-sm-4 { + padding-right: 1.5rem !important; + } + + .ps-sm-5 { + padding-right: 3rem !important; + } +} +@media (min-width: 768px) { + .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; + } + + .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: 0.25rem !important; + } + + .m-md-2 { + margin: 0.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-left: 0 !important; + margin-right: 0 !important; + } + + .mx-md-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + + .mx-md-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + + .mx-md-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + + .mx-md-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + + .mx-md-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + + .mx-md-auto { + margin-left: auto !important; + margin-right: auto !important; + } + + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + + .mt-md-2 { + margin-top: 0.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-left: 0 !important; + } + + .me-md-1 { + margin-left: 0.25rem !important; + } + + .me-md-2 { + margin-left: 0.5rem !important; + } + + .me-md-3 { + margin-left: 1rem !important; + } + + .me-md-4 { + margin-left: 1.5rem !important; + } + + .me-md-5 { + margin-left: 3rem !important; + } + + .me-md-auto { + margin-left: auto !important; + } + + .mb-md-0 { + margin-bottom: 0 !important; + } + + .mb-md-1 { + margin-bottom: 0.25rem !important; + } + + .mb-md-2 { + margin-bottom: 0.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-right: 0 !important; + } + + .ms-md-1 { + margin-right: 0.25rem !important; + } + + .ms-md-2 { + margin-right: 0.5rem !important; + } + + .ms-md-3 { + margin-right: 1rem !important; + } + + .ms-md-4 { + margin-right: 1.5rem !important; + } + + .ms-md-5 { + margin-right: 3rem !important; + } + + .ms-md-auto { + margin-right: auto !important; + } + + .p-md-0 { + padding: 0 !important; + } + + .p-md-1 { + padding: 0.25rem !important; + } + + .p-md-2 { + padding: 0.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-left: 0 !important; + padding-right: 0 !important; + } + + .px-md-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + + .px-md-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + + .px-md-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + + .px-md-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + + .px-md-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + + .pt-md-2 { + padding-top: 0.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-left: 0 !important; + } + + .pe-md-1 { + padding-left: 0.25rem !important; + } + + .pe-md-2 { + padding-left: 0.5rem !important; + } + + .pe-md-3 { + padding-left: 1rem !important; + } + + .pe-md-4 { + padding-left: 1.5rem !important; + } + + .pe-md-5 { + padding-left: 3rem !important; + } + + .pb-md-0 { + padding-bottom: 0 !important; + } + + .pb-md-1 { + padding-bottom: 0.25rem !important; + } + + .pb-md-2 { + padding-bottom: 0.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-right: 0 !important; + } + + .ps-md-1 { + padding-right: 0.25rem !important; + } + + .ps-md-2 { + padding-right: 0.5rem !important; + } + + .ps-md-3 { + padding-right: 1rem !important; + } + + .ps-md-4 { + padding-right: 1.5rem !important; + } + + .ps-md-5 { + padding-right: 3rem !important; + } +} +@media (min-width: 992px) { + .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; + } + + .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: 0.25rem !important; + } + + .m-lg-2 { + margin: 0.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-left: 0 !important; + margin-right: 0 !important; + } + + .mx-lg-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + + .mx-lg-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + + .mx-lg-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + + .mx-lg-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + + .mx-lg-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + + .mx-lg-auto { + margin-left: auto !important; + margin-right: auto !important; + } + + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + + .mt-lg-2 { + margin-top: 0.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-left: 0 !important; + } + + .me-lg-1 { + margin-left: 0.25rem !important; + } + + .me-lg-2 { + margin-left: 0.5rem !important; + } + + .me-lg-3 { + margin-left: 1rem !important; + } + + .me-lg-4 { + margin-left: 1.5rem !important; + } + + .me-lg-5 { + margin-left: 3rem !important; + } + + .me-lg-auto { + margin-left: auto !important; + } + + .mb-lg-0 { + margin-bottom: 0 !important; + } + + .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + + .mb-lg-2 { + margin-bottom: 0.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-right: 0 !important; + } + + .ms-lg-1 { + margin-right: 0.25rem !important; + } + + .ms-lg-2 { + margin-right: 0.5rem !important; + } + + .ms-lg-3 { + margin-right: 1rem !important; + } + + .ms-lg-4 { + margin-right: 1.5rem !important; + } + + .ms-lg-5 { + margin-right: 3rem !important; + } + + .ms-lg-auto { + margin-right: auto !important; + } + + .p-lg-0 { + padding: 0 !important; + } + + .p-lg-1 { + padding: 0.25rem !important; + } + + .p-lg-2 { + padding: 0.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-left: 0 !important; + padding-right: 0 !important; + } + + .px-lg-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + + .px-lg-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + + .px-lg-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + + .px-lg-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + + .px-lg-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + + .pt-lg-2 { + padding-top: 0.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-left: 0 !important; + } + + .pe-lg-1 { + padding-left: 0.25rem !important; + } + + .pe-lg-2 { + padding-left: 0.5rem !important; + } + + .pe-lg-3 { + padding-left: 1rem !important; + } + + .pe-lg-4 { + padding-left: 1.5rem !important; + } + + .pe-lg-5 { + padding-left: 3rem !important; + } + + .pb-lg-0 { + padding-bottom: 0 !important; + } + + .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + + .pb-lg-2 { + padding-bottom: 0.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-right: 0 !important; + } + + .ps-lg-1 { + padding-right: 0.25rem !important; + } + + .ps-lg-2 { + padding-right: 0.5rem !important; + } + + .ps-lg-3 { + padding-right: 1rem !important; + } + + .ps-lg-4 { + padding-right: 1.5rem !important; + } + + .ps-lg-5 { + padding-right: 3rem !important; + } +} +@media (min-width: 1200px) { + .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; + } + + .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: 0.25rem !important; + } + + .m-xl-2 { + margin: 0.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-left: 0 !important; + margin-right: 0 !important; + } + + .mx-xl-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + + .mx-xl-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + + .mx-xl-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + + .mx-xl-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + + .mx-xl-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + + .mx-xl-auto { + margin-left: auto !important; + margin-right: auto !important; + } + + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + + .mt-xl-2 { + margin-top: 0.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-left: 0 !important; + } + + .me-xl-1 { + margin-left: 0.25rem !important; + } + + .me-xl-2 { + margin-left: 0.5rem !important; + } + + .me-xl-3 { + margin-left: 1rem !important; + } + + .me-xl-4 { + margin-left: 1.5rem !important; + } + + .me-xl-5 { + margin-left: 3rem !important; + } + + .me-xl-auto { + margin-left: auto !important; + } + + .mb-xl-0 { + margin-bottom: 0 !important; + } + + .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + + .mb-xl-2 { + margin-bottom: 0.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-right: 0 !important; + } + + .ms-xl-1 { + margin-right: 0.25rem !important; + } + + .ms-xl-2 { + margin-right: 0.5rem !important; + } + + .ms-xl-3 { + margin-right: 1rem !important; + } + + .ms-xl-4 { + margin-right: 1.5rem !important; + } + + .ms-xl-5 { + margin-right: 3rem !important; + } + + .ms-xl-auto { + margin-right: auto !important; + } + + .p-xl-0 { + padding: 0 !important; + } + + .p-xl-1 { + padding: 0.25rem !important; + } + + .p-xl-2 { + padding: 0.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-left: 0 !important; + padding-right: 0 !important; + } + + .px-xl-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + + .px-xl-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + + .px-xl-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + + .px-xl-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + + .px-xl-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + + .pt-xl-2 { + padding-top: 0.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-left: 0 !important; + } + + .pe-xl-1 { + padding-left: 0.25rem !important; + } + + .pe-xl-2 { + padding-left: 0.5rem !important; + } + + .pe-xl-3 { + padding-left: 1rem !important; + } + + .pe-xl-4 { + padding-left: 1.5rem !important; + } + + .pe-xl-5 { + padding-left: 3rem !important; + } + + .pb-xl-0 { + padding-bottom: 0 !important; + } + + .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + + .pb-xl-2 { + padding-bottom: 0.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-right: 0 !important; + } + + .ps-xl-1 { + padding-right: 0.25rem !important; + } + + .ps-xl-2 { + padding-right: 0.5rem !important; + } + + .ps-xl-3 { + padding-right: 1rem !important; + } + + .ps-xl-4 { + padding-right: 1.5rem !important; + } + + .ps-xl-5 { + padding-right: 3rem !important; + } +} +@media (min-width: 1400px) { + .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; + } + + .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: 0.25rem !important; + } + + .m-xxl-2 { + margin: 0.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-left: 0 !important; + margin-right: 0 !important; + } + + .mx-xxl-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + + .mx-xxl-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + + .mx-xxl-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + + .mx-xxl-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + + .mx-xxl-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + + .mx-xxl-auto { + margin-left: auto !important; + margin-right: auto !important; + } + + .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .my-xxl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + + .mt-xxl-2 { + margin-top: 0.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-left: 0 !important; + } + + .me-xxl-1 { + margin-left: 0.25rem !important; + } + + .me-xxl-2 { + margin-left: 0.5rem !important; + } + + .me-xxl-3 { + margin-left: 1rem !important; + } + + .me-xxl-4 { + margin-left: 1.5rem !important; + } + + .me-xxl-5 { + margin-left: 3rem !important; + } + + .me-xxl-auto { + margin-left: auto !important; + } + + .mb-xxl-0 { + margin-bottom: 0 !important; + } + + .mb-xxl-1 { + margin-bottom: 0.25rem !important; + } + + .mb-xxl-2 { + margin-bottom: 0.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-right: 0 !important; + } + + .ms-xxl-1 { + margin-right: 0.25rem !important; + } + + .ms-xxl-2 { + margin-right: 0.5rem !important; + } + + .ms-xxl-3 { + margin-right: 1rem !important; + } + + .ms-xxl-4 { + margin-right: 1.5rem !important; + } + + .ms-xxl-5 { + margin-right: 3rem !important; + } + + .ms-xxl-auto { + margin-right: auto !important; + } + + .p-xxl-0 { + padding: 0 !important; + } + + .p-xxl-1 { + padding: 0.25rem !important; + } + + .p-xxl-2 { + padding: 0.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-left: 0 !important; + padding-right: 0 !important; + } + + .px-xxl-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + + .px-xxl-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + + .px-xxl-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + + .px-xxl-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + + .px-xxl-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + + .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .py-xxl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + + .pt-xxl-2 { + padding-top: 0.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-left: 0 !important; + } + + .pe-xxl-1 { + padding-left: 0.25rem !important; + } + + .pe-xxl-2 { + padding-left: 0.5rem !important; + } + + .pe-xxl-3 { + padding-left: 1rem !important; + } + + .pe-xxl-4 { + padding-left: 1.5rem !important; + } + + .pe-xxl-5 { + padding-left: 3rem !important; + } + + .pb-xxl-0 { + padding-bottom: 0 !important; + } + + .pb-xxl-1 { + padding-bottom: 0.25rem !important; + } + + .pb-xxl-2 { + padding-bottom: 0.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-right: 0 !important; + } + + .ps-xxl-1 { + padding-right: 0.25rem !important; + } + + .ps-xxl-2 { + padding-right: 0.5rem !important; + } + + .ps-xxl-3 { + padding-right: 1rem !important; + } + + .ps-xxl-4 { + padding-right: 1.5rem !important; + } + + .ps-xxl-5 { + padding-right: 3rem !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-grid.rtl.css.map */ \ No newline at end of file diff --git a/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.rtl.css.map b/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.rtl.css.map new file mode 100644 index 0000000..d9b546b --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.rtl.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/bootstrap-grid.scss","../../scss/_root.scss","bootstrap-grid.css","../../scss/_containers.scss","../../scss/mixins/_container.scss","../../scss/mixins/_breakpoints.scss","../../scss/_variables.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_utilities.scss","../../scss/utilities/_api.scss"],"names":[],"mappings":"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CAAA;AP63DZ;;AOp4DQ;EAOI,8BAAA;APi4DZ;;AGx4DI;EIAI;IAOI,0BAAA;EPs4DV;;EO74DM;IAOI,gCAAA;EP04DV;;EOj5DM;IAOI,yBAAA;EP84DV;;EOr5DM;IAOI,wBAAA;EPk5DV;;EOz5DM;IAOI,yBAAA;EPs5DV;;EO75DM;IAOI,6BAAA;EP05DV;;EOj6DM;IAOI,8BAAA;EP85DV;;EOr6DM;IAOI,wBAAA;EPk6DV;;EOz6DM;IAOI,+BAAA;EPs6DV;;EO76DM;IAOI,wBAAA;EP06DV;;EOj7DM;IAOI,yBAAA;EP86DV;;EOr7DM;IAOI,8BAAA;EPk7DV;;EOz7DM;IAOI,iCAAA;EPs7DV;;EO77DM;IAOI,sCAAA;EP07DV;;EOj8DM;IAOI,yCAAA;EP87DV;;EOr8DM;IAOI,uBAAA;EPk8DV;;EOz8DM;IAOI,uBAAA;EPs8DV;;EO78DM;IAOI,yBAAA;EP08DV;;EOj9DM;IAOI,yBAAA;EP88DV;;EOr9DM;IAOI,0BAAA;EPk9DV;;EOz9DM;IAOI,4BAAA;EPs9DV;;EO79DM;IAOI,kCAAA;EP09DV;;EOj+DM;IAOI,sCAAA;EP89DV;;EOr+DM;IAOI,oCAAA;EPk+DV;;EOz+DM;IAOI,kCAAA;EPs+DV;;EO7+DM;IAOI,yCAAA;EP0+DV;;EOj/DM;IAOI,wCAAA;EP8+DV;;EOr/DM;IAOI,wCAAA;EPk/DV;;EOz/DM;IAOI,kCAAA;EPs/DV;;EO7/DM;IAOI,gCAAA;EP0/DV;;EOjgEM;IAOI,8BAAA;EP8/DV;;EOrgEM;IAOI,gCAAA;EPkgEV;;EOzgEM;IAOI,+BAAA;EPsgEV;;EO7gEM;IAOI,oCAAA;EP0gEV;;EOjhEM;IAOI,kCAAA;EP8gEV;;EOrhEM;IAOI,gCAAA;EPkhEV;;EOzhEM;IAOI,uCAAA;EPshEV;;EO7hEM;IAOI,sCAAA;EP0hEV;;EOjiEM;IAOI,iCAAA;EP8hEV;;EOriEM;IAOI,2BAAA;EPkiEV;;EOziEM;IAOI,iCAAA;EPsiEV;;EO7iEM;IAOI,+BAAA;EP0iEV;;EOjjEM;IAOI,6BAAA;EP8iEV;;EOrjEM;IAOI,+BAAA;EPkjEV;;EOzjEM;IAOI,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o5EV;;EO35EM;IAOI,0BAAA;EPw5EV;;EO/5EM;IAOI,gCAAA;EP45EV;;EOn6EM;IAOI,+BAAA;EPg6EV;;EOv6EM;IAOI,6BAAA;EPo6EV;;EO36EM;IAOI,+BAAA;EPw6EV;;EO/6EM;IAOI,6BAAA;EP46EV;;EOn7EM;IAOI,4BAAA;EPg7EV;;EOv7EM;IAOI,kCAAA;EPo7EV;;EO37EM;IAOI,iCAAA;EPw7EV;;EO/7EM;IAOI,+BAAA;EP47EV;;EOn8EM;IAOI,iCAAA;EPg8EV;;EOv8EM;IAOI,+BAAA;EPo8EV;;EO38EM;IAOI,2BAAA;EPw8EV;;EO/8EM;IAOI,iCAAA;EP48EV;;EOn9EM;IAOI,gCAAA;EPg9EV;;EOv9EM;IAOI,8BAAA;EPo9EV;;EO39EM;IAOI,gCAAA;EPw9EV;;EO/9EM;IAOI,8BAAA;EP49EV;AACF;AGp+EI;EIAI;IAOI,0BAAA;EPi+EV;;EOx+EM;IAOI,gCAAA;EPq+EV;;EO5+EM;IAOI,yBAAA;EPy+EV;;EOh/EM;IAOI,wBAAA;EP6+EV;;EOp/EM;IAOI,yBAAA;EPi/EV;;EOx/EM;IAOI,6BAAA;EPq/EV;;EO5/EM;IAOI,8BAAA;EPy/EV;;EOhgFM;IAOI,wBAAA;EP6/EV;;EOpgFM;IAOI,+BAAA;EPigFV;;EOxgFM;IAOI,wBAAA;EPqgFV;;EO5gFM;IAOI,yBAAA;EPygFV;;EOhhFM;IAOI,8BAAA;EP6gFV;;EOphFM;IAOI,iCAAA;EPihFV;;EOxhFM;IAOI,sCAAA;EPqhFV;;EO5hFM;IAOI,yCAAA;EPyhFV;;EOhiFM;IAOI,uBAAA;EP6hFV;;EOpiFM;IAOI,uBAAA;EPiiFV;;EOxiFM;IAOI,yBAAA;EPqiFV;;EO5iFM;IAOI,yBAAA;EPyiFV;;EOhjFM;IAOI,0BAAA;EP6iFV;;EOpjFM;IAOI,4BAAA;EPijFV;;EOxjFM;IAOI,kCAAA;EPqjFV;;EO5jFM;IAOI,sCAAA;EPyjFV;;EOhkFM;IAOI,oCAAA;EP6jFV;;EOpkFM;IAOI,kCAAA;EPikFV;;EOxkFM;IAOI,yCAAA;EPqkFV;;EO5kFM;IAOI,wCAAA;EPykFV;;EOhlFM;IAOI,wCA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EPomGV;;EO3mGM;IAOI,8BAAA;EPwmGV;;EO/mGM;IAOI,iCAAA;EP4mGV;;EOnnGM;IAOI,sCAAA;EPgnGV;;EOvnGM;IAOI,yCAAA;EPonGV;;EO3nGM;IAOI,uBAAA;EPwnGV;;EO/nGM;IAOI,uBAAA;EP4nGV;;EOnoGM;IAOI,yBAAA;EPgoGV;;EOvoGM;IAOI,yBAAA;EPooGV;;EO3oGM;IAOI,0BAAA;EPwoGV;;EO/oGM;IAOI,4BAAA;EP4oGV;;EOnpGM;IAOI,kCAAA;EPgpGV;;EOvpGM;IAOI,sCAAA;EPopGV;;EO3pGM;IAOI,oCAAA;EPwpGV;;EO/pGM;IAOI,kCAAA;EP4pGV;;EOnqGM;IAOI,yCAAA;EPgqGV;;EOvqGM;IAOI,wCAAA;EPoqGV;;EO3qGM;IAOI,wCAAA;EPwqGV;;EO/qGM;IAOI,kCAAA;EP4qGV;;EOnrGM;IAOI,gCAAA;EPgrGV;;EOvrGM;IAOI,8BAAA;EPorGV;;EO3rGM;IAOI,gCAAA;EPwrGV;;EO/rGM;IAOI,+BAAA;EP4rGV;;EOnsGM;IAOI,oCAAA;EPgsGV;;EOvsGM;IAOI,kCAAA;EPosGV;;EO3sGM;IAOI,gCAAA;EPwsGV;;EO/sGM;IAOI,uCAAA;EP4sGV;;EOntGM;IAOI,sCAAA;EPgtGV;;EOvtGM;IAOI,iCAAA;EPotGV;;EO3tGM;IAOI,2BAAA;EPwtGV;;EO/tGM;IAOI,iCAAA;EP4tGV;;EOnuGM;IAOI,+BAAA;EPguGV;;EOvuGM;IAOI,6BAAA;EPouGV;;EO3uGM;IAOI,+BAAA;EPwuGV;;EO/uGM;IAOI,8BAAA;EP4uGV;;EOnvGM;IAOI,oBAAA;EPgvGV;;EOvvGM;IAOI,mBAAA;EPovGV;;EO3vGM;IAOI,mBAAA;EPwvGV;;EO/vGM;IAOI,mBAAA;EP4vGV;;EOnwGM;IAOI,mBAAA;EPgwGV;;EOvwGM;IAOI,mBAAA;EPowGV;;EO3wGM;IAOI,mBAAA;EPwwGV;;EO/wGM;IAOI,mBAAA;EP4wGV;;EOnxGM;IAOI,oBAAA;EPgxGV;;EOvxGM;IAOI,0BAAA;EPoxGV;;EO3xGM;IAOI,yBAAA;EPwxGV;;EO/xGM;IAOI,uBAAA;EP4x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HM;IAOI,2BAAA;EP8nHV;;EOroHM;IAOI,iCAAA;EPkoHV;;EOzoHM;IAOI,gCAAA;EPsoHV;;EO7oHM;IAOI,8BAAA;EP0oHV;;EOjpHM;IAOI,gCAAA;EP8oHV;;EOrpHM;IAOI,8BAAA;EPkpHV;AACF;AG1pHI;EIAI;IAOI,0BAAA;EPupHV;;EO9pHM;IAOI,gCAAA;EP2pHV;;EOlqHM;IAOI,yBAAA;EP+pHV;;EOtqHM;IAOI,wBAAA;EPmqHV;;EO1qHM;IAOI,yBAAA;EPuqHV;;EO9qHM;IAOI,6BAAA;EP2qHV;;EOlrHM;IAOI,8BAAA;EP+qHV;;EOtrHM;IAOI,wBAAA;EPmrHV;;EO1rHM;IAOI,+BAAA;EPurHV;;EO9rHM;IAOI,wBAAA;EP2rHV;;EOlsHM;IAOI,yBAAA;EP+rHV;;EOtsHM;IAOI,8BAAA;EPmsHV;;EO1sHM;IAOI,iCAAA;EPusHV;;EO9sHM;IAOI,sCAAA;EP2sHV;;EOltHM;IAOI,yCAAA;EP+sHV;;EOttHM;IAOI,uBAAA;EPmtHV;;EO1tHM;IAOI,uBAAA;EPutHV;;EO9tHM;IAOI,yBAAA;EP2tHV;;EOluHM;IAOI,yBAAA;EP+tHV;;EOtuHM;IAOI,0BAAA;EPmuHV;;EO1uHM;IAOI,4BAAA;EPuuHV;;EO9uHM;IAOI,kCAAA;EP2uHV;;EOlvHM;IAOI,sCAAA;EP+uHV;;EOtvHM;IAOI,oCAAA;EPmvHV;;EO1vHM;IAOI,kCAAA;EPuvHV;;EO9vHM;IAOI,yCAAA;EP2vHV;;EOlwHM;IAOI,wCAAA;EP+vHV;;EOtwHM;IAOI,wCAAA;EPmwHV;;EO1wHM;IAOI,kCAAA;EPuwHV;;EO9wHM;IAOI,gCAAA;EP2wHV;;EOlxHM;IAOI,8BAAA;EP+wHV;;EOtxHM;IAOI,gCAAA;EPmxHV;;EO1xHM;IAOI,+BAAA;EPuxHV;;EO9xHM;IAOI,oCAAA;EP2xHV;;EOlyHM;IAOI,kCAAA;EP+xHV;;EOtyHM;IAOI,gCAAA;EPmyHV;;EO1yHM;IAOI,uCAAA;EPuyHV;;EO9yHM;IAOI,sCAAA;EP2yHV;;EOlzHM;IAOI,iCAAA;EP+yHV;;EOtzHM;IAOI,2BAAA;EPmzHV;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IAOI,+BAAA;EPqpIV;;EO5pIM;IAOI,8BAAA;EPypIV;;EOhqIM;IAOI,4BAAA;EP6pIV;;EOpqIM;IAOI,8BAAA;EPiqIV;;EOxqIM;IAOI,4BAAA;EPqqIV;;EO5qIM;IAOI,0BAAA;EPyqIV;;EOhrIM;IAOI,gCAAA;EP6qIV;;EOprIM;IAOI,+BAAA;EPirIV;;EOxrIM;IAOI,6BAAA;EPqrIV;;EO5rIM;IAOI,+BAAA;EPyrIV;;EOhsIM;IAOI,6BAAA;EP6rIV;;EOpsIM;IAOI,4BAAA;EPisIV;;EOxsIM;IAOI,kCAAA;EPqsIV;;EO5sIM;IAOI,iCAAA;EPysIV;;EOhtIM;IAOI,+BAAA;EP6sIV;;EOptIM;IAOI,iCAAA;EPitIV;;EOxtIM;IAOI,+BAAA;EPqtIV;;EO5tIM;IAOI,2BAAA;EPytIV;;EOhuIM;IAOI,iCAAA;EP6tIV;;EOpuIM;IAOI,gCAAA;EPiuIV;;EOxuIM;IAOI,8BAAA;EPquIV;;EO5uIM;IAOI,gCAAA;EPyuIV;;EOhvIM;IAOI,8BAAA;EP6uIV;AACF;AGrvII;EIAI;IAOI,0BAAA;EPkvIV;;EOzvIM;IAOI,gCAAA;EPsvIV;;EO7vIM;IAOI,yBAAA;EP0vIV;;EOjwIM;IAOI,wBAAA;EP8vIV;;EOrwIM;IAOI,yBAAA;EPkwIV;;EOzwIM;IAOI,6BAAA;EPswIV;;EO7wIM;IAOI,8BAAA;EP0wIV;;EOjxIM;IAOI,wBAAA;EP8wIV;;EOrxIM;IAOI,+BAAA;EPkxIV;;EOzxIM;IAOI,wBAAA;EPsxIV;;EO7xIM;IAOI,yBAAA;EP0xIV;;EOjyIM;IAOI,8BAAA;EP8xIV;;EOryIM;IAOI,iCAAA;EPkyIV;;EOzyIM;IAOI,sCAAA;EPsyIV;;EO7yIM;IAOI,yCAAA;EP0yIV;;EOjzIM;IAOI,uBAAA;EP8yIV;;EOrzIM;IAOI,uBAAA;EPkzIV;;EOzzIM;IAOI,yBAAA;EPszIV;;EO7zIM;IAOI,yBAAA;EP0zIV;;EOj0IM;IAOI,0BAAA;EP8zIV;;EOr0IM;IAOI,4BAAA;EPk0IV;;EOz0IM;IAOI,kCAAA;EPs0IV;;EO70IM;IAOI,sCAAA;EP00IV;;EO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","file":"bootstrap-grid.rtl.css","sourcesContent":["/*!\n * Bootstrap Grid v5.1.3 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\n$include-column-box-sizing: true !default;\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/lists\";\n@import \"mixins/breakpoints\";\n@import \"mixins/container\";\n@import \"mixins/grid\";\n@import \"mixins/utilities\";\n\n@import \"vendor/rfs\";\n\n@import \"root\";\n\n@import \"containers\";\n@import \"grid\";\n\n@import \"utilities\";\n// Only use the utilities we need\n// stylelint-disable-next-line scss/dollar-variable-default\n$utilities: map-get-multiple(\n $utilities,\n (\n \"display\",\n \"order\",\n \"flex\",\n \"flex-direction\",\n \"flex-grow\",\n \"flex-shrink\",\n \"flex-wrap\",\n \"justify-content\",\n \"align-items\",\n \"align-content\",\n \"align-self\",\n \"margin\",\n \"margin-x\",\n \"margin-y\",\n \"margin-top\",\n \"margin-end\",\n \"margin-bottom\",\n \"margin-start\",\n \"negative-margin\",\n \"negative-margin-x\",\n \"negative-margin-y\",\n \"negative-margin-top\",\n \"negative-margin-end\",\n \"negative-margin-bottom\",\n \"negative-margin-start\",\n \"padding\",\n \"padding-x\",\n \"padding-y\",\n \"padding-top\",\n \"padding-end\",\n \"padding-bottom\",\n \"padding-start\",\n )\n);\n\n@import \"utilities/api\";\n",":root {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Colors\n //\n // Generate palettes for full colors, grays, and theme colors.\n\n @each $color, $value in $colors {\n --#{$variable-prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $grays {\n --#{$variable-prefix}gray-#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$variable-prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors-rgb {\n --#{$variable-prefix}#{$color}-rgb: #{$value};\n }\n\n --#{$variable-prefix}white-rgb: #{to-rgb($white)};\n --#{$variable-prefix}black-rgb: #{to-rgb($black)};\n --#{$variable-prefix}body-color-rgb: #{to-rgb($body-color)};\n --#{$variable-prefix}body-bg-rgb: #{to-rgb($body-bg)};\n\n // Fonts\n\n // Note: Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --#{$variable-prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$variable-prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$variable-prefix}gradient: #{$gradient};\n\n // Root and body\n // stylelint-disable custom-property-empty-line-before\n // scss-docs-start root-body-variables\n @if $font-size-root != null {\n --#{$variable-prefix}root-font-size: #{$font-size-root};\n }\n --#{$variable-prefix}body-font-family: #{$font-family-base};\n --#{$variable-prefix}body-font-size: #{$font-size-base};\n --#{$variable-prefix}body-font-weight: #{$font-weight-base};\n --#{$variable-prefix}body-line-height: #{$line-height-base};\n --#{$variable-prefix}body-color: #{$body-color};\n @if $body-text-align != null {\n --#{$variable-prefix}body-text-align: #{$body-text-align};\n }\n --#{$variable-prefix}body-bg: #{$body-bg};\n // scss-docs-end root-body-variables\n // stylelint-enable custom-property-empty-line-before\n}\n","/*!\n * Bootstrap Grid v5.1.3 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --bs-blue: #0d6efd;\n --bs-indigo: #6610f2;\n --bs-purple: #6f42c1;\n --bs-pink: #d63384;\n --bs-red: #dc3545;\n --bs-orange: #fd7e14;\n --bs-yellow: #ffc107;\n --bs-green: #198754;\n --bs-teal: #20c997;\n --bs-cyan: #0dcaf0;\n --bs-white: #fff;\n --bs-gray: #6c757d;\n --bs-gray-dark: #343a40;\n --bs-gray-100: #f8f9fa;\n --bs-gray-200: #e9ecef;\n --bs-gray-300: #dee2e6;\n --bs-gray-400: #ced4da;\n --bs-gray-500: #adb5bd;\n --bs-gray-600: #6c757d;\n --bs-gray-700: #495057;\n --bs-gray-800: #343a40;\n --bs-gray-900: #212529;\n --bs-primary: #0d6efd;\n --bs-secondary: #6c757d;\n --bs-success: #198754;\n --bs-info: #0dcaf0;\n --bs-warning: #ffc107;\n --bs-danger: #dc3545;\n --bs-light: #f8f9fa;\n --bs-dark: #212529;\n --bs-primary-rgb: 13, 110, 253;\n --bs-secondary-rgb: 108, 117, 125;\n --bs-success-rgb: 25, 135, 84;\n --bs-info-rgb: 13, 202, 240;\n --bs-warning-rgb: 255, 193, 7;\n --bs-danger-rgb: 220, 53, 69;\n --bs-light-rgb: 248, 249, 250;\n --bs-dark-rgb: 33, 37, 41;\n --bs-white-rgb: 255, 255, 255;\n --bs-black-rgb: 0, 0, 0;\n --bs-body-color-rgb: 33, 37, 41;\n --bs-body-bg-rgb: 255, 255, 255;\n --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\";\n --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));\n --bs-body-font-family: var(--bs-font-sans-serif);\n --bs-body-font-size: 1rem;\n --bs-body-font-weight: 400;\n --bs-body-line-height: 1.5;\n --bs-body-color: #212529;\n --bs-body-bg: #fff;\n}\n\n.container,\n.container-fluid,\n.container-xxl,\n.container-xl,\n.container-lg,\n.container-md,\n.container-sm {\n width: 100%;\n padding-right: var(--bs-gutter-x, 0.75rem);\n padding-left: var(--bs-gutter-x, 0.75rem);\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container-sm, .container {\n max-width: 540px;\n }\n}\n@media (min-width: 768px) {\n .container-md, .container-sm, .container {\n max-width: 720px;\n }\n}\n@media (min-width: 992px) {\n .container-lg, .container-md, .container-sm, .container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1140px;\n }\n}\n@media (min-width: 1400px) {\n .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1320px;\n }\n}\n.row {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-top: calc(-1 * var(--bs-gutter-y));\n margin-right: calc(-0.5 * var(--bs-gutter-x));\n margin-left: calc(-0.5 * var(--bs-gutter-x));\n}\n.row > * {\n box-sizing: border-box;\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n margin-top: var(--bs-gutter-y);\n}\n\n.col {\n flex: 1 0 0%;\n}\n\n.row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n}\n\n.row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n}\n\n.col-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n}\n\n.col-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-3 {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.col-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.col-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n}\n\n.col-6 {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.col-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n}\n\n.col-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n}\n\n.col-9 {\n flex: 0 0 auto;\n width: 75%;\n}\n\n.col-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n}\n\n.col-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n}\n\n.col-12 {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.offset-1 {\n margin-left: 8.33333333%;\n}\n\n.offset-2 {\n margin-left: 16.66666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.33333333%;\n}\n\n.offset-5 {\n margin-left: 41.66666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.33333333%;\n}\n\n.offset-8 {\n margin-left: 66.66666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.33333333%;\n}\n\n.offset-11 {\n margin-left: 91.66666667%;\n}\n\n.g-0,\n.gx-0 {\n --bs-gutter-x: 0;\n}\n\n.g-0,\n.gy-0 {\n --bs-gutter-y: 0;\n}\n\n.g-1,\n.gx-1 {\n --bs-gutter-x: 0.25rem;\n}\n\n.g-1,\n.gy-1 {\n --bs-gutter-y: 0.25rem;\n}\n\n.g-2,\n.gx-2 {\n --bs-gutter-x: 0.5rem;\n}\n\n.g-2,\n.gy-2 {\n --bs-gutter-y: 0.5rem;\n}\n\n.g-3,\n.gx-3 {\n --bs-gutter-x: 1rem;\n}\n\n.g-3,\n.gy-3 {\n --bs-gutter-y: 1rem;\n}\n\n.g-4,\n.gx-4 {\n --bs-gutter-x: 1.5rem;\n}\n\n.g-4,\n.gy-4 {\n --bs-gutter-y: 1.5rem;\n}\n\n.g-5,\n.gx-5 {\n --bs-gutter-x: 3rem;\n}\n\n.g-5,\n.gy-5 {\n --bs-gutter-y: 3rem;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex: 1 0 0%;\n }\n\n .row-cols-sm-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n\n .row-cols-sm-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .row-cols-sm-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .row-cols-sm-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n .row-cols-sm-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .row-cols-sm-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n\n .row-cols-sm-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n }\n\n .col-sm-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n\n .col-sm-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n\n .col-sm-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .col-sm-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n\n .col-sm-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n\n .col-sm-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .col-sm-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n\n .col-sm-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n\n .col-sm-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n\n .col-sm-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n\n .col-sm-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n\n .col-sm-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .offset-sm-0 {\n margin-left: 0;\n }\n\n .offset-sm-1 {\n margin-left: 8.33333333%;\n }\n\n .offset-sm-2 {\n margin-left: 16.66666667%;\n }\n\n .offset-sm-3 {\n margin-left: 25%;\n }\n\n .offset-sm-4 {\n margin-left: 33.33333333%;\n }\n\n .offset-sm-5 {\n margin-left: 41.66666667%;\n }\n\n .offset-sm-6 {\n margin-left: 50%;\n }\n\n .offset-sm-7 {\n margin-left: 58.33333333%;\n }\n\n .offset-sm-8 {\n margin-left: 66.66666667%;\n }\n\n .offset-sm-9 {\n margin-left: 75%;\n }\n\n .offset-sm-10 {\n margin-left: 83.33333333%;\n }\n\n .offset-sm-11 {\n margin-left: 91.66666667%;\n }\n\n .g-sm-0,\n.gx-sm-0 {\n --bs-gutter-x: 0;\n }\n\n .g-sm-0,\n.gy-sm-0 {\n --bs-gutter-y: 0;\n }\n\n .g-sm-1,\n.gx-sm-1 {\n --bs-gutter-x: 0.25rem;\n }\n\n .g-sm-1,\n.gy-sm-1 {\n --bs-gutter-y: 0.25rem;\n }\n\n .g-sm-2,\n.gx-sm-2 {\n --bs-gutter-x: 0.5rem;\n }\n\n .g-sm-2,\n.gy-sm-2 {\n --bs-gutter-y: 0.5rem;\n }\n\n .g-sm-3,\n.gx-sm-3 {\n --bs-gutter-x: 1rem;\n }\n\n .g-sm-3,\n.gy-sm-3 {\n --bs-gutter-y: 1rem;\n }\n\n .g-sm-4,\n.gx-sm-4 {\n --bs-gutter-x: 1.5rem;\n }\n\n .g-sm-4,\n.gy-sm-4 {\n --bs-gutter-y: 1.5rem;\n }\n\n .g-sm-5,\n.gx-sm-5 {\n --bs-gutter-x: 3rem;\n }\n\n .g-sm-5,\n.gy-sm-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 768px) {\n .col-md {\n flex: 1 0 0%;\n }\n\n .row-cols-md-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n\n .row-cols-md-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .row-cols-md-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .row-cols-md-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n .row-cols-md-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .row-cols-md-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n\n .row-cols-md-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n }\n\n .col-md-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n\n .col-md-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n\n .col-md-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .col-md-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n\n .col-md-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n\n .col-md-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .col-md-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n\n .col-md-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n\n .col-md-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n\n .col-md-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n\n .col-md-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n\n .col-md-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .offset-md-0 {\n margin-left: 0;\n }\n\n .offset-md-1 {\n margin-left: 8.33333333%;\n }\n\n .offset-md-2 {\n margin-left: 16.66666667%;\n }\n\n .offset-md-3 {\n margin-left: 25%;\n }\n\n .offset-md-4 {\n margin-left: 33.33333333%;\n }\n\n .offset-md-5 {\n margin-left: 41.66666667%;\n }\n\n .offset-md-6 {\n margin-left: 50%;\n }\n\n .offset-md-7 {\n margin-left: 58.33333333%;\n }\n\n .offset-md-8 {\n margin-left: 66.66666667%;\n }\n\n .offset-md-9 {\n margin-left: 75%;\n }\n\n .offset-md-10 {\n margin-left: 83.33333333%;\n }\n\n .offset-md-11 {\n margin-left: 91.66666667%;\n }\n\n .g-md-0,\n.gx-md-0 {\n --bs-gutter-x: 0;\n }\n\n .g-md-0,\n.gy-md-0 {\n --bs-gutter-y: 0;\n }\n\n .g-md-1,\n.gx-md-1 {\n --bs-gutter-x: 0.25rem;\n }\n\n .g-md-1,\n.gy-md-1 {\n --bs-gutter-y: 0.25rem;\n }\n\n .g-md-2,\n.gx-md-2 {\n --bs-gutter-x: 0.5rem;\n }\n\n .g-md-2,\n.gy-md-2 {\n --bs-gutter-y: 0.5rem;\n }\n\n .g-md-3,\n.gx-md-3 {\n --bs-gutter-x: 1rem;\n }\n\n .g-md-3,\n.gy-md-3 {\n --bs-gutter-y: 1rem;\n }\n\n .g-md-4,\n.gx-md-4 {\n --bs-gutter-x: 1.5rem;\n }\n\n .g-md-4,\n.gy-md-4 {\n --bs-gutter-y: 1.5rem;\n }\n\n .g-md-5,\n.gx-md-5 {\n --bs-gutter-x: 3rem;\n }\n\n .g-md-5,\n.gy-md-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 992px) {\n .col-lg {\n flex: 1 0 0%;\n }\n\n .row-cols-lg-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n\n .row-cols-lg-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .row-cols-lg-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .row-cols-lg-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n .row-cols-lg-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .row-cols-lg-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n\n .row-cols-lg-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n }\n\n .col-lg-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n\n .col-lg-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n\n .col-lg-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .col-lg-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n\n .col-lg-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n\n .col-lg-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .col-lg-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n\n .col-lg-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n\n .col-lg-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n\n .col-lg-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n\n .col-lg-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n\n .col-lg-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .offset-lg-0 {\n margin-left: 0;\n }\n\n .offset-lg-1 {\n margin-left: 8.33333333%;\n }\n\n .offset-lg-2 {\n margin-left: 16.66666667%;\n }\n\n .offset-lg-3 {\n margin-left: 25%;\n }\n\n .offset-lg-4 {\n margin-left: 33.33333333%;\n }\n\n .offset-lg-5 {\n margin-left: 41.66666667%;\n }\n\n .offset-lg-6 {\n margin-left: 50%;\n }\n\n .offset-lg-7 {\n margin-left: 58.33333333%;\n }\n\n .offset-lg-8 {\n margin-left: 66.66666667%;\n }\n\n .offset-lg-9 {\n margin-left: 75%;\n }\n\n .offset-lg-10 {\n margin-left: 83.33333333%;\n }\n\n .offset-lg-11 {\n margin-left: 91.66666667%;\n }\n\n .g-lg-0,\n.gx-lg-0 {\n --bs-gutter-x: 0;\n }\n\n .g-lg-0,\n.gy-lg-0 {\n --bs-gutter-y: 0;\n }\n\n .g-lg-1,\n.gx-lg-1 {\n --bs-gutter-x: 0.25rem;\n }\n\n .g-lg-1,\n.gy-lg-1 {\n --bs-gutter-y: 0.25rem;\n }\n\n .g-lg-2,\n.gx-lg-2 {\n --bs-gutter-x: 0.5rem;\n }\n\n .g-lg-2,\n.gy-lg-2 {\n --bs-gutter-y: 0.5rem;\n }\n\n .g-lg-3,\n.gx-lg-3 {\n --bs-gutter-x: 1rem;\n }\n\n .g-lg-3,\n.gy-lg-3 {\n --bs-gutter-y: 1rem;\n }\n\n .g-lg-4,\n.gx-lg-4 {\n --bs-gutter-x: 1.5rem;\n }\n\n .g-lg-4,\n.gy-lg-4 {\n --bs-gutter-y: 1.5rem;\n }\n\n .g-lg-5,\n.gx-lg-5 {\n --bs-gutter-x: 3rem;\n }\n\n .g-lg-5,\n.gy-lg-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1200px) {\n .col-xl {\n flex: 1 0 0%;\n }\n\n .row-cols-xl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n\n .row-cols-xl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .row-cols-xl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .row-cols-xl-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n .row-cols-xl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .row-cols-xl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n\n .row-cols-xl-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n\n .col-xl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n\n .col-xl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n\n .col-xl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .col-xl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n\n .col-xl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n\n .col-xl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .col-xl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n\n .col-xl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n\n .col-xl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n\n .col-xl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n\n .col-xl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n\n .col-xl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .offset-xl-0 {\n margin-left: 0;\n }\n\n .offset-xl-1 {\n margin-left: 8.33333333%;\n }\n\n .offset-xl-2 {\n margin-left: 16.66666667%;\n }\n\n .offset-xl-3 {\n margin-left: 25%;\n }\n\n .offset-xl-4 {\n margin-left: 33.33333333%;\n }\n\n .offset-xl-5 {\n margin-left: 41.66666667%;\n }\n\n .offset-xl-6 {\n margin-left: 50%;\n }\n\n .offset-xl-7 {\n margin-left: 58.33333333%;\n }\n\n .offset-xl-8 {\n margin-left: 66.66666667%;\n }\n\n .offset-xl-9 {\n margin-left: 75%;\n }\n\n .offset-xl-10 {\n margin-left: 83.33333333%;\n }\n\n .offset-xl-11 {\n margin-left: 91.66666667%;\n }\n\n .g-xl-0,\n.gx-xl-0 {\n --bs-gutter-x: 0;\n }\n\n .g-xl-0,\n.gy-xl-0 {\n --bs-gutter-y: 0;\n }\n\n .g-xl-1,\n.gx-xl-1 {\n --bs-gutter-x: 0.25rem;\n }\n\n .g-xl-1,\n.gy-xl-1 {\n --bs-gutter-y: 0.25rem;\n }\n\n .g-xl-2,\n.gx-xl-2 {\n --bs-gutter-x: 0.5rem;\n }\n\n .g-xl-2,\n.gy-xl-2 {\n --bs-gutter-y: 0.5rem;\n }\n\n .g-xl-3,\n.gx-xl-3 {\n --bs-gutter-x: 1rem;\n }\n\n .g-xl-3,\n.gy-xl-3 {\n --bs-gutter-y: 1rem;\n }\n\n .g-xl-4,\n.gx-xl-4 {\n --bs-gutter-x: 1.5rem;\n }\n\n .g-xl-4,\n.gy-xl-4 {\n --bs-gutter-y: 1.5rem;\n }\n\n .g-xl-5,\n.gx-xl-5 {\n --bs-gutter-x: 3rem;\n }\n\n .g-xl-5,\n.gy-xl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1400px) {\n .col-xxl {\n flex: 1 0 0%;\n }\n\n .row-cols-xxl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n\n .row-cols-xxl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .row-cols-xxl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .row-cols-xxl-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n .row-cols-xxl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .row-cols-xxl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n\n .row-cols-xxl-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n .col-xxl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n\n .col-xxl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n\n .col-xxl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n\n .col-xxl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .col-xxl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n\n .col-xxl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n\n .col-xxl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .col-xxl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n\n .col-xxl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n\n .col-xxl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n\n .col-xxl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n\n .col-xxl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n\n .col-xxl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .offset-xxl-0 {\n margin-left: 0;\n }\n\n .offset-xxl-1 {\n margin-left: 8.33333333%;\n }\n\n .offset-xxl-2 {\n margin-left: 16.66666667%;\n }\n\n .offset-xxl-3 {\n margin-left: 25%;\n }\n\n .offset-xxl-4 {\n margin-left: 33.33333333%;\n }\n\n .offset-xxl-5 {\n margin-left: 41.66666667%;\n }\n\n .offset-xxl-6 {\n margin-left: 50%;\n }\n\n .offset-xxl-7 {\n margin-left: 58.33333333%;\n }\n\n .offset-xxl-8 {\n margin-left: 66.66666667%;\n }\n\n .offset-xxl-9 {\n margin-left: 75%;\n }\n\n .offset-xxl-10 {\n margin-left: 83.33333333%;\n }\n\n .offset-xxl-11 {\n margin-left: 91.66666667%;\n }\n\n .g-xxl-0,\n.gx-xxl-0 {\n --bs-gutter-x: 0;\n }\n\n .g-xxl-0,\n.gy-xxl-0 {\n --bs-gutter-y: 0;\n }\n\n .g-xxl-1,\n.gx-xxl-1 {\n --bs-gutter-x: 0.25rem;\n }\n\n .g-xxl-1,\n.gy-xxl-1 {\n --bs-gutter-y: 0.25rem;\n }\n\n .g-xxl-2,\n.gx-xxl-2 {\n --bs-gutter-x: 0.5rem;\n }\n\n .g-xxl-2,\n.gy-xxl-2 {\n --bs-gutter-y: 0.5rem;\n }\n\n .g-xxl-3,\n.gx-xxl-3 {\n --bs-gutter-x: 1rem;\n }\n\n .g-xxl-3,\n.gy-xxl-3 {\n --bs-gutter-y: 1rem;\n }\n\n .g-xxl-4,\n.gx-xxl-4 {\n --bs-gutter-x: 1.5rem;\n }\n\n .g-xxl-4,\n.gy-xxl-4 {\n --bs-gutter-y: 1.5rem;\n }\n\n .g-xxl-5,\n.gx-xxl-5 {\n --bs-gutter-x: 3rem;\n }\n\n .g-xxl-5,\n.gy-xxl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-grid {\n display: grid !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.justify-content-evenly {\n justify-content: space-evenly !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n.order-first {\n order: -1 !important;\n}\n\n.order-0 {\n order: 0 !important;\n}\n\n.order-1 {\n order: 1 !important;\n}\n\n.order-2 {\n order: 2 !important;\n}\n\n.order-3 {\n order: 3 !important;\n}\n\n.order-4 {\n order: 4 !important;\n}\n\n.order-5 {\n order: 5 !important;\n}\n\n.order-last {\n order: 6 !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mx-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n}\n\n.mx-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n}\n\n.mx-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n}\n\n.mx-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n}\n\n.mx-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n}\n\n.mx-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n}\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n.my-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n}\n\n.my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n}\n\n.my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n}\n\n.my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n}\n\n.my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n}\n\n.my-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n}\n\n.my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n}\n\n.mt-0 {\n margin-top: 0 !important;\n}\n\n.mt-1 {\n margin-top: 0.25rem !important;\n}\n\n.mt-2 {\n margin-top: 0.5rem !important;\n}\n\n.mt-3 {\n margin-top: 1rem !important;\n}\n\n.mt-4 {\n margin-top: 1.5rem !important;\n}\n\n.mt-5 {\n margin-top: 3rem !important;\n}\n\n.mt-auto {\n margin-top: auto !important;\n}\n\n.me-0 {\n margin-right: 0 !important;\n}\n\n.me-1 {\n margin-right: 0.25rem !important;\n}\n\n.me-2 {\n margin-right: 0.5rem !important;\n}\n\n.me-3 {\n margin-right: 1rem !important;\n}\n\n.me-4 {\n margin-right: 1.5rem !important;\n}\n\n.me-5 {\n margin-right: 3rem !important;\n}\n\n.me-auto {\n margin-right: auto !important;\n}\n\n.mb-0 {\n margin-bottom: 0 !important;\n}\n\n.mb-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.mb-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.mb-3 {\n margin-bottom: 1rem !important;\n}\n\n.mb-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.mb-5 {\n margin-bottom: 3rem !important;\n}\n\n.mb-auto {\n margin-bottom: auto !important;\n}\n\n.ms-0 {\n margin-left: 0 !important;\n}\n\n.ms-1 {\n margin-left: 0.25rem !important;\n}\n\n.ms-2 {\n margin-left: 0.5rem !important;\n}\n\n.ms-3 {\n margin-left: 1rem !important;\n}\n\n.ms-4 {\n margin-left: 1.5rem !important;\n}\n\n.ms-5 {\n margin-left: 3rem !important;\n}\n\n.ms-auto {\n margin-left: auto !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.px-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n}\n\n.px-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n}\n\n.px-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n}\n\n.px-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n}\n\n.px-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n}\n\n.px-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n}\n\n.py-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n}\n\n.py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n}\n\n.py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n}\n\n.py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n}\n\n.py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n}\n\n.py-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n}\n\n.pt-0 {\n padding-top: 0 !important;\n}\n\n.pt-1 {\n padding-top: 0.25rem !important;\n}\n\n.pt-2 {\n padding-top: 0.5rem !important;\n}\n\n.pt-3 {\n padding-top: 1rem !important;\n}\n\n.pt-4 {\n padding-top: 1.5rem !important;\n}\n\n.pt-5 {\n padding-top: 3rem !important;\n}\n\n.pe-0 {\n padding-right: 0 !important;\n}\n\n.pe-1 {\n padding-right: 0.25rem !important;\n}\n\n.pe-2 {\n padding-right: 0.5rem !important;\n}\n\n.pe-3 {\n padding-right: 1rem !important;\n}\n\n.pe-4 {\n padding-right: 1.5rem !important;\n}\n\n.pe-5 {\n padding-right: 3rem !important;\n}\n\n.pb-0 {\n padding-bottom: 0 !important;\n}\n\n.pb-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pb-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pb-3 {\n padding-bottom: 1rem !important;\n}\n\n.pb-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pb-5 {\n padding-bottom: 3rem !important;\n}\n\n.ps-0 {\n padding-left: 0 !important;\n}\n\n.ps-1 {\n padding-left: 0.25rem !important;\n}\n\n.ps-2 {\n padding-left: 0.5rem !important;\n}\n\n.ps-3 {\n padding-left: 1rem !important;\n}\n\n.ps-4 {\n padding-left: 1.5rem !important;\n}\n\n.ps-5 {\n padding-left: 3rem !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-inline {\n display: inline !important;\n }\n\n .d-sm-inline-block {\n display: inline-block !important;\n }\n\n .d-sm-block {\n display: block !important;\n }\n\n .d-sm-grid {\n display: grid !important;\n }\n\n .d-sm-table {\n display: table !important;\n }\n\n .d-sm-table-row {\n display: table-row !important;\n }\n\n .d-sm-table-cell {\n display: table-cell !important;\n }\n\n .d-sm-flex {\n display: flex !important;\n }\n\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n\n .d-sm-none {\n display: none !important;\n }\n\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-sm-row {\n flex-direction: row !important;\n }\n\n .flex-sm-column {\n flex-direction: column !important;\n }\n\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-sm-center {\n justify-content: center !important;\n }\n\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n\n .justify-content-sm-evenly {\n justify-content: space-evenly !important;\n }\n\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n\n .align-items-sm-center {\n align-items: center !important;\n }\n\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n\n .align-content-sm-center {\n align-content: center !important;\n }\n\n .align-content-sm-between {\n align-content: space-between !important;\n }\n\n .align-content-sm-around {\n align-content: space-around !important;\n }\n\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n\n .align-self-sm-auto {\n align-self: auto !important;\n }\n\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n\n .align-self-sm-center {\n align-self: center !important;\n }\n\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n\n .order-sm-first {\n order: -1 !important;\n }\n\n .order-sm-0 {\n order: 0 !important;\n }\n\n .order-sm-1 {\n order: 1 !important;\n }\n\n .order-sm-2 {\n order: 2 !important;\n }\n\n .order-sm-3 {\n order: 3 !important;\n }\n\n .order-sm-4 {\n order: 4 !important;\n }\n\n .order-sm-5 {\n order: 5 !important;\n }\n\n .order-sm-last {\n order: 6 !important;\n }\n\n .m-sm-0 {\n margin: 0 !important;\n }\n\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n\n .m-sm-3 {\n margin: 1rem !important;\n }\n\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n\n .m-sm-5 {\n margin: 3rem !important;\n }\n\n .m-sm-auto {\n margin: auto !important;\n }\n\n .mx-sm-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n\n .mx-sm-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n\n .mx-sm-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n\n .mx-sm-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n .my-sm-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n\n .my-sm-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n\n .my-sm-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n\n .my-sm-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n\n .my-sm-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n\n .my-sm-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n\n .my-sm-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n\n .mt-sm-0 {\n margin-top: 0 !important;\n }\n\n .mt-sm-1 {\n margin-top: 0.25rem !important;\n }\n\n .mt-sm-2 {\n margin-top: 0.5rem !important;\n }\n\n .mt-sm-3 {\n margin-top: 1rem !important;\n }\n\n .mt-sm-4 {\n margin-top: 1.5rem !important;\n }\n\n .mt-sm-5 {\n margin-top: 3rem !important;\n }\n\n .mt-sm-auto {\n margin-top: auto !important;\n }\n\n .me-sm-0 {\n margin-right: 0 !important;\n }\n\n .me-sm-1 {\n margin-right: 0.25rem !important;\n }\n\n .me-sm-2 {\n margin-right: 0.5rem !important;\n }\n\n .me-sm-3 {\n margin-right: 1rem !important;\n }\n\n .me-sm-4 {\n margin-right: 1.5rem !important;\n }\n\n .me-sm-5 {\n margin-right: 3rem !important;\n }\n\n .me-sm-auto {\n margin-right: auto !important;\n }\n\n .mb-sm-0 {\n margin-bottom: 0 !important;\n }\n\n .mb-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .mb-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .mb-sm-3 {\n margin-bottom: 1rem !important;\n }\n\n .mb-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .mb-sm-5 {\n margin-bottom: 3rem !important;\n }\n\n .mb-sm-auto {\n margin-bottom: auto !important;\n }\n\n .ms-sm-0 {\n margin-left: 0 !important;\n }\n\n .ms-sm-1 {\n margin-left: 0.25rem !important;\n }\n\n .ms-sm-2 {\n margin-left: 0.5rem !important;\n }\n\n .ms-sm-3 {\n margin-left: 1rem !important;\n }\n\n .ms-sm-4 {\n margin-left: 1.5rem !important;\n }\n\n .ms-sm-5 {\n margin-left: 3rem !important;\n }\n\n .ms-sm-auto {\n margin-left: auto !important;\n }\n\n .p-sm-0 {\n padding: 0 !important;\n }\n\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n\n .p-sm-3 {\n padding: 1rem !important;\n }\n\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n\n .p-sm-5 {\n padding: 3rem !important;\n }\n\n .px-sm-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n\n .px-sm-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n\n .px-sm-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n\n .px-sm-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n\n .px-sm-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n\n .px-sm-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n\n .py-sm-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n\n .py-sm-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n\n .py-sm-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n\n .py-sm-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n\n .py-sm-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n\n .py-sm-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pt-sm-0 {\n padding-top: 0 !important;\n }\n\n .pt-sm-1 {\n padding-top: 0.25rem !important;\n }\n\n .pt-sm-2 {\n padding-top: 0.5rem !important;\n }\n\n .pt-sm-3 {\n padding-top: 1rem !important;\n }\n\n .pt-sm-4 {\n padding-top: 1.5rem !important;\n }\n\n .pt-sm-5 {\n padding-top: 3rem !important;\n }\n\n .pe-sm-0 {\n padding-right: 0 !important;\n }\n\n .pe-sm-1 {\n padding-right: 0.25rem !important;\n }\n\n .pe-sm-2 {\n padding-right: 0.5rem !important;\n }\n\n .pe-sm-3 {\n padding-right: 1rem !important;\n }\n\n .pe-sm-4 {\n padding-right: 1.5rem !important;\n }\n\n .pe-sm-5 {\n padding-right: 3rem !important;\n }\n\n .pb-sm-0 {\n padding-bottom: 0 !important;\n }\n\n .pb-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pb-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pb-sm-3 {\n padding-bottom: 1rem !important;\n }\n\n .pb-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pb-sm-5 {\n padding-bottom: 3rem !important;\n }\n\n .ps-sm-0 {\n padding-left: 0 !important;\n }\n\n .ps-sm-1 {\n padding-left: 0.25rem !important;\n }\n\n .ps-sm-2 {\n padding-left: 0.5rem !important;\n }\n\n .ps-sm-3 {\n padding-left: 1rem !important;\n }\n\n .ps-sm-4 {\n padding-left: 1.5rem !important;\n }\n\n .ps-sm-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 768px) {\n .d-md-inline {\n display: inline !important;\n }\n\n .d-md-inline-block {\n display: inline-block !important;\n }\n\n .d-md-block {\n display: block !important;\n }\n\n .d-md-grid {\n display: grid !important;\n }\n\n .d-md-table {\n display: table !important;\n }\n\n .d-md-table-row {\n display: table-row !important;\n }\n\n .d-md-table-cell {\n display: table-cell !important;\n }\n\n .d-md-flex {\n display: flex !important;\n }\n\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n\n .d-md-none {\n display: none !important;\n }\n\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-md-row {\n flex-direction: row !important;\n }\n\n .flex-md-column {\n flex-direction: column !important;\n }\n\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-md-center {\n justify-content: center !important;\n }\n\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n\n .justify-content-md-evenly {\n justify-content: space-evenly !important;\n }\n\n .align-items-md-start {\n align-items: flex-start !important;\n }\n\n .align-items-md-end {\n align-items: flex-end !important;\n }\n\n .align-items-md-center {\n align-items: center !important;\n }\n\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n\n .align-content-md-start {\n align-content: flex-start !important;\n }\n\n .align-content-md-end {\n align-content: flex-end !important;\n }\n\n .align-content-md-center {\n align-content: center !important;\n }\n\n .align-content-md-between {\n align-content: space-between !important;\n }\n\n .align-content-md-around {\n align-content: space-around !important;\n }\n\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n\n .align-self-md-auto {\n align-self: auto !important;\n }\n\n .align-self-md-start {\n align-self: flex-start !important;\n }\n\n .align-self-md-end {\n align-self: flex-end !important;\n }\n\n .align-self-md-center {\n align-self: center !important;\n }\n\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n\n .order-md-first {\n order: -1 !important;\n }\n\n .order-md-0 {\n order: 0 !important;\n }\n\n .order-md-1 {\n order: 1 !important;\n }\n\n .order-md-2 {\n order: 2 !important;\n }\n\n .order-md-3 {\n order: 3 !important;\n }\n\n .order-md-4 {\n order: 4 !important;\n }\n\n .order-md-5 {\n order: 5 !important;\n }\n\n .order-md-last {\n order: 6 !important;\n }\n\n .m-md-0 {\n margin: 0 !important;\n }\n\n .m-md-1 {\n margin: 0.25rem !important;\n }\n\n .m-md-2 {\n margin: 0.5rem !important;\n }\n\n .m-md-3 {\n margin: 1rem !important;\n }\n\n .m-md-4 {\n margin: 1.5rem !important;\n }\n\n .m-md-5 {\n margin: 3rem !important;\n }\n\n .m-md-auto {\n margin: auto !important;\n }\n\n .mx-md-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n\n .mx-md-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n\n .mx-md-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n\n .mx-md-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n\n .mx-md-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n\n .mx-md-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n\n .mx-md-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n .my-md-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n\n .my-md-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n\n .my-md-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n\n .my-md-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n\n .my-md-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n\n .my-md-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n\n .my-md-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n\n .mt-md-0 {\n margin-top: 0 !important;\n }\n\n .mt-md-1 {\n margin-top: 0.25rem !important;\n }\n\n .mt-md-2 {\n margin-top: 0.5rem !important;\n }\n\n .mt-md-3 {\n margin-top: 1rem !important;\n }\n\n .mt-md-4 {\n margin-top: 1.5rem !important;\n }\n\n .mt-md-5 {\n margin-top: 3rem !important;\n }\n\n .mt-md-auto {\n margin-top: auto !important;\n }\n\n .me-md-0 {\n margin-right: 0 !important;\n }\n\n .me-md-1 {\n margin-right: 0.25rem !important;\n }\n\n .me-md-2 {\n margin-right: 0.5rem !important;\n }\n\n .me-md-3 {\n margin-right: 1rem !important;\n }\n\n .me-md-4 {\n margin-right: 1.5rem !important;\n }\n\n .me-md-5 {\n margin-right: 3rem !important;\n }\n\n .me-md-auto {\n margin-right: auto !important;\n }\n\n .mb-md-0 {\n margin-bottom: 0 !important;\n }\n\n .mb-md-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .mb-md-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .mb-md-3 {\n margin-bottom: 1rem !important;\n }\n\n .mb-md-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .mb-md-5 {\n margin-bottom: 3rem !important;\n }\n\n .mb-md-auto {\n margin-bottom: auto !important;\n }\n\n .ms-md-0 {\n margin-left: 0 !important;\n }\n\n .ms-md-1 {\n margin-left: 0.25rem !important;\n }\n\n .ms-md-2 {\n margin-left: 0.5rem !important;\n }\n\n .ms-md-3 {\n margin-left: 1rem !important;\n }\n\n .ms-md-4 {\n margin-left: 1.5rem !important;\n }\n\n .ms-md-5 {\n margin-left: 3rem !important;\n }\n\n .ms-md-auto {\n margin-left: auto !important;\n }\n\n .p-md-0 {\n padding: 0 !important;\n }\n\n .p-md-1 {\n padding: 0.25rem !important;\n }\n\n .p-md-2 {\n padding: 0.5rem !important;\n }\n\n .p-md-3 {\n padding: 1rem !important;\n }\n\n .p-md-4 {\n padding: 1.5rem !important;\n }\n\n .p-md-5 {\n padding: 3rem !important;\n }\n\n .px-md-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n\n .px-md-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n\n .px-md-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n\n .px-md-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n\n .px-md-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n\n .px-md-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n\n .py-md-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n\n .py-md-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n\n .py-md-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n\n .py-md-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n\n .py-md-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n\n .py-md-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pt-md-0 {\n padding-top: 0 !important;\n }\n\n .pt-md-1 {\n padding-top: 0.25rem !important;\n }\n\n .pt-md-2 {\n padding-top: 0.5rem !important;\n }\n\n .pt-md-3 {\n padding-top: 1rem !important;\n }\n\n .pt-md-4 {\n padding-top: 1.5rem !important;\n }\n\n .pt-md-5 {\n padding-top: 3rem !important;\n }\n\n .pe-md-0 {\n padding-right: 0 !important;\n }\n\n .pe-md-1 {\n padding-right: 0.25rem !important;\n }\n\n .pe-md-2 {\n padding-right: 0.5rem !important;\n }\n\n .pe-md-3 {\n padding-right: 1rem !important;\n }\n\n .pe-md-4 {\n padding-right: 1.5rem !important;\n }\n\n .pe-md-5 {\n padding-right: 3rem !important;\n }\n\n .pb-md-0 {\n padding-bottom: 0 !important;\n }\n\n .pb-md-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pb-md-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pb-md-3 {\n padding-bottom: 1rem !important;\n }\n\n .pb-md-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pb-md-5 {\n padding-bottom: 3rem !important;\n }\n\n .ps-md-0 {\n padding-left: 0 !important;\n }\n\n .ps-md-1 {\n padding-left: 0.25rem !important;\n }\n\n .ps-md-2 {\n padding-left: 0.5rem !important;\n }\n\n .ps-md-3 {\n padding-left: 1rem !important;\n }\n\n .ps-md-4 {\n padding-left: 1.5rem !important;\n }\n\n .ps-md-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 992px) {\n .d-lg-inline {\n display: inline !important;\n }\n\n .d-lg-inline-block {\n display: inline-block !important;\n }\n\n .d-lg-block {\n display: block !important;\n }\n\n .d-lg-grid {\n display: grid !important;\n }\n\n .d-lg-table {\n display: table !important;\n }\n\n .d-lg-table-row {\n display: table-row !important;\n }\n\n .d-lg-table-cell {\n display: table-cell !important;\n }\n\n .d-lg-flex {\n display: flex !important;\n }\n\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n\n .d-lg-none {\n display: none !important;\n }\n\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-lg-row {\n flex-direction: row !important;\n }\n\n .flex-lg-column {\n flex-direction: column !important;\n }\n\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-lg-center {\n justify-content: center !important;\n }\n\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n\n .justify-content-lg-evenly {\n justify-content: space-evenly !important;\n }\n\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n\n .align-items-lg-center {\n align-items: center !important;\n }\n\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n\n .align-content-lg-center {\n align-content: center !important;\n }\n\n .align-content-lg-between {\n align-content: space-between !important;\n }\n\n .align-content-lg-around {\n align-content: space-around !important;\n }\n\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n\n .align-self-lg-auto {\n align-self: auto !important;\n }\n\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n\n .align-self-lg-center {\n align-self: center !important;\n }\n\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n\n .order-lg-first {\n order: -1 !important;\n }\n\n .order-lg-0 {\n order: 0 !important;\n }\n\n .order-lg-1 {\n order: 1 !important;\n }\n\n .order-lg-2 {\n order: 2 !important;\n }\n\n .order-lg-3 {\n order: 3 !important;\n }\n\n .order-lg-4 {\n order: 4 !important;\n }\n\n .order-lg-5 {\n order: 5 !important;\n }\n\n .order-lg-last {\n order: 6 !important;\n }\n\n .m-lg-0 {\n margin: 0 !important;\n }\n\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n\n .m-lg-3 {\n margin: 1rem !important;\n }\n\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n\n .m-lg-5 {\n margin: 3rem !important;\n }\n\n .m-lg-auto {\n margin: auto !important;\n }\n\n .mx-lg-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n\n .mx-lg-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n\n .mx-lg-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n\n .mx-lg-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n .my-lg-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n\n .my-lg-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n\n .my-lg-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n\n .my-lg-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n\n .my-lg-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n\n .my-lg-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n\n .my-lg-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n\n .mt-lg-0 {\n margin-top: 0 !important;\n }\n\n .mt-lg-1 {\n margin-top: 0.25rem !important;\n }\n\n .mt-lg-2 {\n margin-top: 0.5rem !important;\n }\n\n .mt-lg-3 {\n margin-top: 1rem !important;\n }\n\n .mt-lg-4 {\n margin-top: 1.5rem !important;\n }\n\n .mt-lg-5 {\n margin-top: 3rem !important;\n }\n\n .mt-lg-auto {\n margin-top: auto !important;\n }\n\n .me-lg-0 {\n margin-right: 0 !important;\n }\n\n .me-lg-1 {\n margin-right: 0.25rem !important;\n }\n\n .me-lg-2 {\n margin-right: 0.5rem !important;\n }\n\n .me-lg-3 {\n margin-right: 1rem !important;\n }\n\n .me-lg-4 {\n margin-right: 1.5rem !important;\n }\n\n .me-lg-5 {\n margin-right: 3rem !important;\n }\n\n .me-lg-auto {\n margin-right: auto !important;\n }\n\n .mb-lg-0 {\n margin-bottom: 0 !important;\n }\n\n .mb-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .mb-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .mb-lg-3 {\n margin-bottom: 1rem !important;\n }\n\n .mb-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .mb-lg-5 {\n margin-bottom: 3rem !important;\n }\n\n .mb-lg-auto {\n margin-bottom: auto !important;\n }\n\n .ms-lg-0 {\n margin-left: 0 !important;\n }\n\n .ms-lg-1 {\n margin-left: 0.25rem !important;\n }\n\n .ms-lg-2 {\n margin-left: 0.5rem !important;\n }\n\n .ms-lg-3 {\n margin-left: 1rem !important;\n }\n\n .ms-lg-4 {\n margin-left: 1.5rem !important;\n }\n\n .ms-lg-5 {\n margin-left: 3rem !important;\n }\n\n .ms-lg-auto {\n margin-left: auto !important;\n }\n\n .p-lg-0 {\n padding: 0 !important;\n }\n\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n\n .p-lg-3 {\n padding: 1rem !important;\n }\n\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n\n .p-lg-5 {\n padding: 3rem !important;\n }\n\n .px-lg-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n\n .px-lg-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n\n .px-lg-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n\n .px-lg-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n\n .px-lg-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n\n .px-lg-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n\n .py-lg-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n\n .py-lg-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n\n .py-lg-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n\n .py-lg-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n\n .py-lg-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n\n .py-lg-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pt-lg-0 {\n padding-top: 0 !important;\n }\n\n .pt-lg-1 {\n padding-top: 0.25rem !important;\n }\n\n .pt-lg-2 {\n padding-top: 0.5rem !important;\n }\n\n .pt-lg-3 {\n padding-top: 1rem !important;\n }\n\n .pt-lg-4 {\n padding-top: 1.5rem !important;\n }\n\n .pt-lg-5 {\n padding-top: 3rem !important;\n }\n\n .pe-lg-0 {\n padding-right: 0 !important;\n }\n\n .pe-lg-1 {\n padding-right: 0.25rem !important;\n }\n\n .pe-lg-2 {\n padding-right: 0.5rem !important;\n }\n\n .pe-lg-3 {\n padding-right: 1rem !important;\n }\n\n .pe-lg-4 {\n padding-right: 1.5rem !important;\n }\n\n .pe-lg-5 {\n padding-right: 3rem !important;\n }\n\n .pb-lg-0 {\n padding-bottom: 0 !important;\n }\n\n .pb-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pb-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pb-lg-3 {\n padding-bottom: 1rem !important;\n }\n\n .pb-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pb-lg-5 {\n padding-bottom: 3rem !important;\n }\n\n .ps-lg-0 {\n padding-left: 0 !important;\n }\n\n .ps-lg-1 {\n padding-left: 0.25rem !important;\n }\n\n .ps-lg-2 {\n padding-left: 0.5rem !important;\n }\n\n .ps-lg-3 {\n padding-left: 1rem !important;\n }\n\n .ps-lg-4 {\n padding-left: 1.5rem !important;\n }\n\n .ps-lg-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 1200px) {\n .d-xl-inline {\n display: inline !important;\n }\n\n .d-xl-inline-block {\n display: inline-block !important;\n }\n\n .d-xl-block {\n display: block !important;\n }\n\n .d-xl-grid {\n display: grid !important;\n }\n\n .d-xl-table {\n display: table !important;\n }\n\n .d-xl-table-row {\n display: table-row !important;\n }\n\n .d-xl-table-cell {\n display: table-cell !important;\n }\n\n .d-xl-flex {\n display: flex !important;\n }\n\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n\n .d-xl-none {\n display: none !important;\n }\n\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-xl-row {\n flex-direction: row !important;\n }\n\n .flex-xl-column {\n flex-direction: column !important;\n }\n\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-xl-center {\n justify-content: center !important;\n }\n\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n\n .justify-content-xl-evenly {\n justify-content: space-evenly !important;\n }\n\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n\n .align-items-xl-center {\n align-items: center !important;\n }\n\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n\n .align-content-xl-center {\n align-content: center !important;\n }\n\n .align-content-xl-between {\n align-content: space-between !important;\n }\n\n .align-content-xl-around {\n align-content: space-around !important;\n }\n\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n\n .align-self-xl-auto {\n align-self: auto !important;\n }\n\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n\n .align-self-xl-center {\n align-self: center !important;\n }\n\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n\n .order-xl-first {\n order: -1 !important;\n }\n\n .order-xl-0 {\n order: 0 !important;\n }\n\n .order-xl-1 {\n order: 1 !important;\n }\n\n .order-xl-2 {\n order: 2 !important;\n }\n\n .order-xl-3 {\n order: 3 !important;\n }\n\n .order-xl-4 {\n order: 4 !important;\n }\n\n .order-xl-5 {\n order: 5 !important;\n }\n\n .order-xl-last {\n order: 6 !important;\n }\n\n .m-xl-0 {\n margin: 0 !important;\n }\n\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n\n .m-xl-3 {\n margin: 1rem !important;\n }\n\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n\n .m-xl-5 {\n margin: 3rem !important;\n }\n\n .m-xl-auto {\n margin: auto !important;\n }\n\n .mx-xl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n\n .mx-xl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n\n .mx-xl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n\n .mx-xl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n .my-xl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n\n .my-xl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n\n .my-xl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n\n .my-xl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n\n .my-xl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n\n .my-xl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n\n .my-xl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n\n .mt-xl-0 {\n margin-top: 0 !important;\n }\n\n .mt-xl-1 {\n margin-top: 0.25rem !important;\n }\n\n .mt-xl-2 {\n margin-top: 0.5rem !important;\n }\n\n .mt-xl-3 {\n margin-top: 1rem !important;\n }\n\n .mt-xl-4 {\n margin-top: 1.5rem !important;\n }\n\n .mt-xl-5 {\n margin-top: 3rem !important;\n }\n\n .mt-xl-auto {\n margin-top: auto !important;\n }\n\n .me-xl-0 {\n margin-right: 0 !important;\n }\n\n .me-xl-1 {\n margin-right: 0.25rem !important;\n }\n\n .me-xl-2 {\n margin-right: 0.5rem !important;\n }\n\n .me-xl-3 {\n margin-right: 1rem !important;\n }\n\n .me-xl-4 {\n margin-right: 1.5rem !important;\n }\n\n .me-xl-5 {\n margin-right: 3rem !important;\n }\n\n .me-xl-auto {\n margin-right: auto !important;\n }\n\n .mb-xl-0 {\n margin-bottom: 0 !important;\n }\n\n .mb-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .mb-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .mb-xl-3 {\n margin-bottom: 1rem !important;\n }\n\n .mb-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .mb-xl-5 {\n margin-bottom: 3rem !important;\n }\n\n .mb-xl-auto {\n margin-bottom: auto !important;\n }\n\n .ms-xl-0 {\n margin-left: 0 !important;\n }\n\n .ms-xl-1 {\n margin-left: 0.25rem !important;\n }\n\n .ms-xl-2 {\n margin-left: 0.5rem !important;\n }\n\n .ms-xl-3 {\n margin-left: 1rem !important;\n }\n\n .ms-xl-4 {\n margin-left: 1.5rem !important;\n }\n\n .ms-xl-5 {\n margin-left: 3rem !important;\n }\n\n .ms-xl-auto {\n margin-left: auto !important;\n }\n\n .p-xl-0 {\n padding: 0 !important;\n }\n\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n\n .p-xl-3 {\n padding: 1rem !important;\n }\n\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n\n .p-xl-5 {\n padding: 3rem !important;\n }\n\n .px-xl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n\n .px-xl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n\n .px-xl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n\n .px-xl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n\n .px-xl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n\n .px-xl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n\n .py-xl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n\n .py-xl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n\n .py-xl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n\n .py-xl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n\n .py-xl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n\n .py-xl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pt-xl-0 {\n padding-top: 0 !important;\n }\n\n .pt-xl-1 {\n padding-top: 0.25rem !important;\n }\n\n .pt-xl-2 {\n padding-top: 0.5rem !important;\n }\n\n .pt-xl-3 {\n padding-top: 1rem !important;\n }\n\n .pt-xl-4 {\n padding-top: 1.5rem !important;\n }\n\n .pt-xl-5 {\n padding-top: 3rem !important;\n }\n\n .pe-xl-0 {\n padding-right: 0 !important;\n }\n\n .pe-xl-1 {\n padding-right: 0.25rem !important;\n }\n\n .pe-xl-2 {\n padding-right: 0.5rem !important;\n }\n\n .pe-xl-3 {\n padding-right: 1rem !important;\n }\n\n .pe-xl-4 {\n padding-right: 1.5rem !important;\n }\n\n .pe-xl-5 {\n padding-right: 3rem !important;\n }\n\n .pb-xl-0 {\n padding-bottom: 0 !important;\n }\n\n .pb-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pb-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pb-xl-3 {\n padding-bottom: 1rem !important;\n }\n\n .pb-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pb-xl-5 {\n padding-bottom: 3rem !important;\n }\n\n .ps-xl-0 {\n padding-left: 0 !important;\n }\n\n .ps-xl-1 {\n padding-left: 0.25rem !important;\n }\n\n .ps-xl-2 {\n padding-left: 0.5rem !important;\n }\n\n .ps-xl-3 {\n padding-left: 1rem !important;\n }\n\n .ps-xl-4 {\n padding-left: 1.5rem !important;\n }\n\n .ps-xl-5 {\n padding-left: 3rem !important;\n }\n}\n@media (min-width: 1400px) {\n .d-xxl-inline {\n display: inline !important;\n }\n\n .d-xxl-inline-block {\n display: inline-block !important;\n }\n\n .d-xxl-block {\n display: block !important;\n }\n\n .d-xxl-grid {\n display: grid !important;\n }\n\n .d-xxl-table {\n display: table !important;\n }\n\n .d-xxl-table-row {\n display: table-row !important;\n }\n\n .d-xxl-table-cell {\n display: table-cell !important;\n }\n\n .d-xxl-flex {\n display: flex !important;\n }\n\n .d-xxl-inline-flex {\n display: inline-flex !important;\n }\n\n .d-xxl-none {\n display: none !important;\n }\n\n .flex-xxl-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-xxl-row {\n flex-direction: row !important;\n }\n\n .flex-xxl-column {\n flex-direction: column !important;\n }\n\n .flex-xxl-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-xxl-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-xxl-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-xxl-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-xxl-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-xxl-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .flex-xxl-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-xxl-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-xxl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .justify-content-xxl-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-xxl-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-xxl-center {\n justify-content: center !important;\n }\n\n .justify-content-xxl-between {\n justify-content: space-between !important;\n }\n\n .justify-content-xxl-around {\n justify-content: space-around !important;\n }\n\n .justify-content-xxl-evenly {\n justify-content: space-evenly !important;\n }\n\n .align-items-xxl-start {\n align-items: flex-start !important;\n }\n\n .align-items-xxl-end {\n align-items: flex-end !important;\n }\n\n .align-items-xxl-center {\n align-items: center !important;\n }\n\n .align-items-xxl-baseline {\n align-items: baseline !important;\n }\n\n .align-items-xxl-stretch {\n align-items: stretch !important;\n }\n\n .align-content-xxl-start {\n align-content: flex-start !important;\n }\n\n .align-content-xxl-end {\n align-content: flex-end !important;\n }\n\n .align-content-xxl-center {\n align-content: center !important;\n }\n\n .align-content-xxl-between {\n align-content: space-between !important;\n }\n\n .align-content-xxl-around {\n align-content: space-around !important;\n }\n\n .align-content-xxl-stretch {\n align-content: stretch !important;\n }\n\n .align-self-xxl-auto {\n align-self: auto !important;\n }\n\n .align-self-xxl-start {\n align-self: flex-start !important;\n }\n\n .align-self-xxl-end {\n align-self: flex-end !important;\n }\n\n .align-self-xxl-center {\n align-self: center !important;\n }\n\n .align-self-xxl-baseline {\n align-self: baseline !important;\n }\n\n .align-self-xxl-stretch {\n align-self: stretch !important;\n }\n\n .order-xxl-first {\n order: -1 !important;\n }\n\n .order-xxl-0 {\n order: 0 !important;\n }\n\n .order-xxl-1 {\n order: 1 !important;\n }\n\n .order-xxl-2 {\n order: 2 !important;\n }\n\n .order-xxl-3 {\n order: 3 !important;\n }\n\n .order-xxl-4 {\n order: 4 !important;\n }\n\n .order-xxl-5 {\n order: 5 !important;\n }\n\n .order-xxl-last {\n order: 6 !important;\n }\n\n .m-xxl-0 {\n margin: 0 !important;\n }\n\n .m-xxl-1 {\n margin: 0.25rem !important;\n }\n\n .m-xxl-2 {\n margin: 0.5rem !important;\n }\n\n .m-xxl-3 {\n margin: 1rem !important;\n }\n\n .m-xxl-4 {\n margin: 1.5rem !important;\n }\n\n .m-xxl-5 {\n margin: 3rem !important;\n }\n\n .m-xxl-auto {\n margin: auto !important;\n }\n\n .mx-xxl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n\n .mx-xxl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n\n .mx-xxl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n\n .mx-xxl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n\n .mx-xxl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n\n .mx-xxl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n\n .mx-xxl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n .my-xxl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n\n .my-xxl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n\n .my-xxl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n\n .my-xxl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n\n .my-xxl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n\n .my-xxl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n\n .my-xxl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n\n .mt-xxl-0 {\n margin-top: 0 !important;\n }\n\n .mt-xxl-1 {\n margin-top: 0.25rem !important;\n }\n\n .mt-xxl-2 {\n margin-top: 0.5rem !important;\n }\n\n .mt-xxl-3 {\n margin-top: 1rem !important;\n }\n\n .mt-xxl-4 {\n margin-top: 1.5rem !important;\n }\n\n .mt-xxl-5 {\n margin-top: 3rem !important;\n }\n\n .mt-xxl-auto {\n margin-top: auto !important;\n }\n\n .me-xxl-0 {\n margin-right: 0 !important;\n }\n\n .me-xxl-1 {\n margin-right: 0.25rem !important;\n }\n\n .me-xxl-2 {\n margin-right: 0.5rem !important;\n }\n\n .me-xxl-3 {\n margin-right: 1rem !important;\n }\n\n .me-xxl-4 {\n margin-right: 1.5rem !important;\n }\n\n .me-xxl-5 {\n margin-right: 3rem !important;\n }\n\n .me-xxl-auto {\n margin-right: auto !important;\n }\n\n .mb-xxl-0 {\n margin-bottom: 0 !important;\n }\n\n .mb-xxl-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .mb-xxl-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .mb-xxl-3 {\n margin-bottom: 1rem !important;\n }\n\n .mb-xxl-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .mb-xxl-5 {\n margin-bottom: 3rem !important;\n }\n\n .mb-xxl-auto {\n margin-bottom: auto !important;\n }\n\n .ms-xxl-0 {\n margin-left: 0 !important;\n }\n\n .ms-xxl-1 {\n margin-left: 0.25rem !important;\n }\n\n .ms-xxl-2 {\n margin-left: 0.5rem !important;\n }\n\n .ms-xxl-3 {\n margin-left: 1rem !important;\n }\n\n .ms-xxl-4 {\n margin-left: 1.5rem !important;\n }\n\n .ms-xxl-5 {\n margin-left: 3rem !important;\n }\n\n .ms-xxl-auto {\n margin-left: auto !important;\n }\n\n .p-xxl-0 {\n padding: 0 !important;\n }\n\n .p-xxl-1 {\n padding: 0.25rem !important;\n }\n\n .p-xxl-2 {\n padding: 0.5rem !important;\n }\n\n .p-xxl-3 {\n padding: 1rem !important;\n }\n\n .p-xxl-4 {\n padding: 1.5rem !important;\n }\n\n .p-xxl-5 {\n padding: 3rem !important;\n }\n\n .px-xxl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n\n .px-xxl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n\n .px-xxl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n\n .px-xxl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n\n .px-xxl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n\n .px-xxl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n\n .py-xxl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n\n .py-xxl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n\n .py-xxl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n\n .py-xxl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n\n .py-xxl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n\n .py-xxl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pt-xxl-0 {\n padding-top: 0 !important;\n }\n\n .pt-xxl-1 {\n padding-top: 0.25rem !important;\n }\n\n .pt-xxl-2 {\n padding-top: 0.5rem !important;\n }\n\n .pt-xxl-3 {\n padding-top: 1rem !important;\n }\n\n .pt-xxl-4 {\n padding-top: 1.5rem !important;\n }\n\n .pt-xxl-5 {\n padding-top: 3rem !important;\n }\n\n .pe-xxl-0 {\n padding-right: 0 !important;\n }\n\n .pe-xxl-1 {\n padding-right: 0.25rem !important;\n }\n\n .pe-xxl-2 {\n padding-right: 0.5rem !important;\n }\n\n .pe-xxl-3 {\n padding-right: 1rem !important;\n }\n\n .pe-xxl-4 {\n padding-right: 1.5rem !important;\n }\n\n .pe-xxl-5 {\n padding-right: 3rem !important;\n }\n\n .pb-xxl-0 {\n padding-bottom: 0 !important;\n }\n\n .pb-xxl-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pb-xxl-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pb-xxl-3 {\n padding-bottom: 1rem !important;\n }\n\n .pb-xxl-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pb-xxl-5 {\n padding-bottom: 3rem !important;\n }\n\n .ps-xxl-0 {\n padding-left: 0 !important;\n }\n\n .ps-xxl-1 {\n padding-left: 0.25rem !important;\n }\n\n .ps-xxl-2 {\n padding-left: 0.5rem !important;\n }\n\n .ps-xxl-3 {\n padding-left: 1rem !important;\n }\n\n .ps-xxl-4 {\n padding-left: 1.5rem !important;\n }\n\n .ps-xxl-5 {\n padding-left: 3rem !important;\n }\n}\n@media print {\n .d-print-inline {\n display: inline !important;\n }\n\n .d-print-inline-block {\n display: inline-block !important;\n }\n\n .d-print-block {\n display: block !important;\n }\n\n .d-print-grid {\n display: grid !important;\n }\n\n .d-print-table {\n display: table !important;\n }\n\n .d-print-table-row {\n display: table-row !important;\n }\n\n .d-print-table-cell {\n display: table-cell !important;\n }\n\n .d-print-flex {\n display: flex !important;\n }\n\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n\n .d-print-none {\n display: none !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n @each $name, $width in $grid-breakpoints {\n @if ($extend-breakpoint) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n}\n","// Container mixins\n\n@mixin make-container($gutter: $container-padding-x) {\n width: 100%;\n padding-right: var(--#{$variable-prefix}gutter-x, #{$gutter});\n padding-left: var(--#{$variable-prefix}gutter-x, #{$gutter});\n margin-right: auto;\n margin-left: auto;\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoints}`\";\n }\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width.\n// The maximum value is reduced by 0.02px to work around the limitations of\n// `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $max: map-get($breakpoints, $name);\n @return if($max and $max > 0, $max - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($next, $breakpoints) {\n @content;\n }\n }\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n// scss-docs-start gray-color-variables\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n// scss-docs-end gray-color-variables\n\n// fusv-disable\n// scss-docs-start gray-colors-map\n$grays: (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n) !default;\n// scss-docs-end gray-colors-map\n// fusv-enable\n\n// scss-docs-start color-variables\n$blue: #0d6efd !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #d63384 !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #198754 !default;\n$teal: #20c997 !default;\n$cyan: #0dcaf0 !default;\n// scss-docs-end color-variables\n\n// scss-docs-start colors-map\n$colors: (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n) !default;\n// scss-docs-end colors-map\n\n// scss-docs-start theme-color-variables\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-900 !default;\n// scss-docs-end theme-color-variables\n\n// scss-docs-start theme-colors-map\n$theme-colors: (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n) !default;\n// scss-docs-end theme-colors-map\n\n// scss-docs-start theme-colors-rgb\n$theme-colors-rgb: map-loop($theme-colors, to-rgb, \"$value\") !default;\n// scss-docs-end theme-colors-rgb\n\n// The contrast ratio to reach against white, to determine if color changes from \"light\" to \"dark\". Acceptable values for WCAG 2.0 are 3, 4.5 and 7.\n// See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast\n$min-contrast-ratio: 4.5 !default;\n\n// Customize the light and dark text colors for use in our color contrast function.\n$color-contrast-dark: $black !default;\n$color-contrast-light: $white !default;\n\n// fusv-disable\n$blue-100: tint-color($blue, 80%) !default;\n$blue-200: tint-color($blue, 60%) !default;\n$blue-300: tint-color($blue, 40%) !default;\n$blue-400: tint-color($blue, 20%) !default;\n$blue-500: $blue !default;\n$blue-600: shade-color($blue, 20%) !default;\n$blue-700: shade-color($blue, 40%) !default;\n$blue-800: shade-color($blue, 60%) !default;\n$blue-900: shade-color($blue, 80%) !default;\n\n$indigo-100: tint-color($indigo, 80%) !default;\n$indigo-200: tint-color($indigo, 60%) !default;\n$indigo-300: tint-color($indigo, 40%) !default;\n$indigo-400: tint-color($indigo, 20%) !default;\n$indigo-500: $indigo !default;\n$indigo-600: shade-color($indigo, 20%) !default;\n$indigo-700: shade-color($indigo, 40%) !default;\n$indigo-800: shade-color($indigo, 60%) !default;\n$indigo-900: shade-color($indigo, 80%) !default;\n\n$purple-100: tint-color($purple, 80%) !default;\n$purple-200: tint-color($purple, 60%) !default;\n$purple-300: tint-color($purple, 40%) !default;\n$purple-400: tint-color($purple, 20%) !default;\n$purple-500: $purple !default;\n$purple-600: shade-color($purple, 20%) !default;\n$purple-700: shade-color($purple, 40%) !default;\n$purple-800: shade-color($purple, 60%) !default;\n$purple-900: shade-color($purple, 80%) !default;\n\n$pink-100: tint-color($pink, 80%) !default;\n$pink-200: tint-color($pink, 60%) !default;\n$pink-300: tint-color($pink, 40%) !default;\n$pink-400: tint-color($pink, 20%) !default;\n$pink-500: $pink !default;\n$pink-600: shade-color($pink, 20%) !default;\n$pink-700: shade-color($pink, 40%) !default;\n$pink-800: shade-color($pink, 60%) !default;\n$pink-900: shade-color($pink, 80%) !default;\n\n$red-100: tint-color($red, 80%) !default;\n$red-200: tint-color($red, 60%) !default;\n$red-300: tint-color($red, 40%) !default;\n$red-400: tint-color($red, 20%) !default;\n$red-500: $red !default;\n$red-600: shade-color($red, 20%) !default;\n$red-700: shade-color($red, 40%) !default;\n$red-800: shade-color($red, 60%) !default;\n$red-900: shade-color($red, 80%) !default;\n\n$orange-100: tint-color($orange, 80%) !default;\n$orange-200: tint-color($orange, 60%) !default;\n$orange-300: tint-color($orange, 40%) !default;\n$orange-400: tint-color($orange, 20%) !default;\n$orange-500: $orange !default;\n$orange-600: shade-color($orange, 20%) !default;\n$orange-700: shade-color($orange, 40%) !default;\n$orange-800: shade-color($orange, 60%) !default;\n$orange-900: shade-color($orange, 80%) !default;\n\n$yellow-100: tint-color($yellow, 80%) !default;\n$yellow-200: tint-color($yellow, 60%) !default;\n$yellow-300: tint-color($yellow, 40%) !default;\n$yellow-400: tint-color($yellow, 20%) !default;\n$yellow-500: $yellow !default;\n$yellow-600: shade-color($yellow, 20%) !default;\n$yellow-700: shade-color($yellow, 40%) !default;\n$yellow-800: shade-color($yellow, 60%) !default;\n$yellow-900: shade-color($yellow, 80%) !default;\n\n$green-100: tint-color($green, 80%) !default;\n$green-200: tint-color($green, 60%) !default;\n$green-300: tint-color($green, 40%) !default;\n$green-400: tint-color($green, 20%) !default;\n$green-500: $green !default;\n$green-600: shade-color($green, 20%) !default;\n$green-700: shade-color($green, 40%) !default;\n$green-800: shade-color($green, 60%) !default;\n$green-900: shade-color($green, 80%) !default;\n\n$teal-100: tint-color($teal, 80%) !default;\n$teal-200: tint-color($teal, 60%) !default;\n$teal-300: tint-color($teal, 40%) !default;\n$teal-400: tint-color($teal, 20%) !default;\n$teal-500: $teal !default;\n$teal-600: shade-color($teal, 20%) !default;\n$teal-700: shade-color($teal, 40%) !default;\n$teal-800: shade-color($teal, 60%) !default;\n$teal-900: shade-color($teal, 80%) !default;\n\n$cyan-100: tint-color($cyan, 80%) !default;\n$cyan-200: tint-color($cyan, 60%) !default;\n$cyan-300: tint-color($cyan, 40%) !default;\n$cyan-400: tint-color($cyan, 20%) !default;\n$cyan-500: $cyan !default;\n$cyan-600: shade-color($cyan, 20%) !default;\n$cyan-700: shade-color($cyan, 40%) !default;\n$cyan-800: shade-color($cyan, 60%) !default;\n$cyan-900: shade-color($cyan, 80%) !default;\n\n$blues: (\n \"blue-100\": $blue-100,\n \"blue-200\": $blue-200,\n \"blue-300\": $blue-300,\n \"blue-400\": $blue-400,\n \"blue-500\": $blue-500,\n \"blue-600\": $blue-600,\n \"blue-700\": $blue-700,\n \"blue-800\": $blue-800,\n \"blue-900\": $blue-900\n) !default;\n\n$indigos: (\n \"indigo-100\": $indigo-100,\n \"indigo-200\": $indigo-200,\n \"indigo-300\": $indigo-300,\n \"indigo-400\": $indigo-400,\n \"indigo-500\": $indigo-500,\n \"indigo-600\": $indigo-600,\n \"indigo-700\": $indigo-700,\n \"indigo-800\": $indigo-800,\n \"indigo-900\": $indigo-900\n) !default;\n\n$purples: (\n \"purple-100\": $purple-200,\n \"purple-200\": $purple-100,\n \"purple-300\": $purple-300,\n \"purple-400\": $purple-400,\n \"purple-500\": $purple-500,\n \"purple-600\": $purple-600,\n \"purple-700\": $purple-700,\n \"purple-800\": $purple-800,\n \"purple-900\": $purple-900\n) !default;\n\n$pinks: (\n \"pink-100\": $pink-100,\n \"pink-200\": $pink-200,\n \"pink-300\": $pink-300,\n \"pink-400\": $pink-400,\n \"pink-500\": $pink-500,\n \"pink-600\": $pink-600,\n \"pink-700\": $pink-700,\n \"pink-800\": $pink-800,\n \"pink-900\": $pink-900\n) !default;\n\n$reds: (\n \"red-100\": $red-100,\n \"red-200\": $red-200,\n \"red-300\": $red-300,\n \"red-400\": $red-400,\n \"red-500\": $red-500,\n \"red-600\": $red-600,\n \"red-700\": $red-700,\n \"red-800\": $red-800,\n \"red-900\": $red-900\n) !default;\n\n$oranges: (\n \"orange-100\": $orange-100,\n \"orange-200\": $orange-200,\n \"orange-300\": $orange-300,\n \"orange-400\": $orange-400,\n \"orange-500\": $orange-500,\n \"orange-600\": $orange-600,\n \"orange-700\": $orange-700,\n \"orange-800\": $orange-800,\n \"orange-900\": $orange-900\n) !default;\n\n$yellows: (\n \"yellow-100\": $yellow-100,\n \"yellow-200\": $yellow-200,\n \"yellow-300\": $yellow-300,\n \"yellow-400\": $yellow-400,\n \"yellow-500\": $yellow-500,\n \"yellow-600\": $yellow-600,\n \"yellow-700\": $yellow-700,\n \"yellow-800\": $yellow-800,\n \"yellow-900\": $yellow-900\n) !default;\n\n$greens: (\n \"green-100\": $green-100,\n \"green-200\": $green-200,\n \"green-300\": $green-300,\n \"green-400\": $green-400,\n \"green-500\": $green-500,\n \"green-600\": $green-600,\n \"green-700\": $green-700,\n \"green-800\": $green-800,\n \"green-900\": $green-900\n) !default;\n\n$teals: (\n \"teal-100\": $teal-100,\n \"teal-200\": $teal-200,\n \"teal-300\": $teal-300,\n \"teal-400\": $teal-400,\n \"teal-500\": $teal-500,\n \"teal-600\": $teal-600,\n \"teal-700\": $teal-700,\n \"teal-800\": $teal-800,\n \"teal-900\": $teal-900\n) !default;\n\n$cyans: (\n \"cyan-100\": $cyan-100,\n \"cyan-200\": $cyan-200,\n \"cyan-300\": $cyan-300,\n \"cyan-400\": $cyan-400,\n \"cyan-500\": $cyan-500,\n \"cyan-600\": $cyan-600,\n \"cyan-700\": $cyan-700,\n \"cyan-800\": $cyan-800,\n \"cyan-900\": $cyan-900\n) !default;\n// fusv-enable\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-reduced-motion: true !default;\n$enable-smooth-scroll: true !default;\n$enable-grid-classes: true !default;\n$enable-cssgrid: false !default;\n$enable-button-pointers: true !default;\n$enable-rfs: true !default;\n$enable-validation-icons: true !default;\n$enable-negative-margins: false !default;\n$enable-deprecation-messages: true !default;\n$enable-important-utilities: true !default;\n\n// Prefix for :root CSS variables\n\n$variable-prefix: bs- !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, rgba($white, .15), rgba($white, 0)) !default;\n// scss-docs-end variable-gradient\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n 0: 0,\n 1: $spacer * .25,\n 2: $spacer * .5,\n 3: $spacer,\n 4: $spacer * 1.5,\n 5: $spacer * 3,\n) !default;\n\n$negative-spacers: if($enable-negative-margins, negativify-map($spacers), null) !default;\n// scss-docs-end spacer-variables-maps\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n 0: 0,\n 50: 50%,\n 100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Body\n//\n// Settings for the `` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n$body-text-align: null !default;\n\n// Utilities maps\n//\n// Extends the default `$theme-colors` maps to help create our utilities.\n\n// Come v6, we'll de-dupe these variables. Until then, for backward compatibility, we keep them to reassign.\n// scss-docs-start utilities-colors\n$utilities-colors: $theme-colors-rgb !default;\n// scss-docs-end utilities-colors\n\n// scss-docs-start utilities-text-colors\n$utilities-text: map-merge(\n $utilities-colors,\n (\n \"black\": to-rgb($black),\n \"white\": to-rgb($white),\n \"body\": to-rgb($body-color)\n )\n) !default;\n$utilities-text-colors: map-loop($utilities-text, rgba-css-var, \"$key\", \"text\") !default;\n// scss-docs-end utilities-text-colors\n\n// scss-docs-start utilities-bg-colors\n$utilities-bg: map-merge(\n $utilities-colors,\n (\n \"black\": to-rgb($black),\n \"white\": to-rgb($white),\n \"body\": to-rgb($body-bg)\n )\n) !default;\n$utilities-bg-colors: map-loop($utilities-bg, rgba-css-var, \"$key\", \"bg\") !default;\n// scss-docs-end utilities-bg-colors\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: $primary !default;\n$link-decoration: underline !default;\n$link-shade-percentage: 20% !default;\n$link-hover-color: shift-color($link-color, $link-shade-percentage) !default;\n$link-hover-decoration: null !default;\n\n$stretched-link-pseudo-element: after !default;\n$stretched-link-z-index: 1 !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n// scss-docs-start grid-breakpoints\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px,\n xxl: 1400px\n) !default;\n// scss-docs-end grid-breakpoints\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n// scss-docs-start container-max-widths\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px,\n xxl: 1320px\n) !default;\n// scss-docs-end container-max-widths\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 1.5rem !default;\n$grid-row-columns: 6 !default;\n\n$gutters: $spacers !default;\n\n// Container padding\n\n$container-padding-x: $grid-gutter-width * .5 !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width: 1px !default;\n$border-widths: (\n 1: 1px,\n 2: 2px,\n 3: 3px,\n 4: 4px,\n 5: 5px\n) !default;\n\n$border-color: $gray-300 !default;\n// scss-docs-end border-variables\n\n// scss-docs-start border-radius-variables\n$border-radius: .25rem !default;\n$border-radius-sm: .2rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-pill: 50rem !default;\n// scss-docs-end border-radius-variables\n\n// scss-docs-start box-shadow-variables\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n$box-shadow-inset: inset 0 1px 2px rgba($black, .075) !default;\n// scss-docs-end box-shadow-variables\n\n$component-active-color: $white !default;\n$component-active-bg: $primary !default;\n\n// scss-docs-start caret-variables\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n// scss-docs-end caret-variables\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n// scss-docs-start collapse-transition\n$transition-collapse: height .35s ease !default;\n$transition-collapse-width: width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// stylelint-disable function-disallowed-list\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n \"1x1\": 100%,\n \"4x3\": calc(3 / 4 * 100%),\n \"16x9\": calc(9 / 16 * 100%),\n \"21x9\": calc(9 / 21 * 100%)\n) !default;\n// scss-docs-end aspect-ratios\n// stylelint-enable function-disallowed-list\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n// stylelint-disable value-keyword-case\n$font-family-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\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n// stylelint-enable value-keyword-case\n$font-family-base: var(--#{$variable-prefix}font-sans-serif) !default;\n$font-family-code: var(--#{$variable-prefix}font-monospace) !default;\n\n// $font-size-root affects the value of `rem`, which is used for as well font sizes, paddings, and margins\n// $font-size-base affects the font size of the body text\n$font-size-root: null !default;\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-sm: $font-size-base * .875 !default;\n$font-size-lg: $font-size-base * 1.25 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n\n$line-height-base: 1.5 !default;\n$line-height-sm: 1.25 !default;\n$line-height-lg: 2 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: (\n 1: $h1-font-size,\n 2: $h2-font-size,\n 3: $h3-font-size,\n 4: $h4-font-size,\n 5: $h5-font-size,\n 6: $h6-font-size\n) !default;\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom: $spacer * .5 !default;\n$headings-font-family: null !default;\n$headings-font-style: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start display-headings\n$display-font-sizes: (\n 1: 5rem,\n 2: 4.5rem,\n 3: 4rem,\n 4: 3.5rem,\n 5: 3rem,\n 6: 2.5rem\n) !default;\n\n$display-font-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n// scss-docs-end display-headings\n\n// scss-docs-start type-variables\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: .875em !default;\n\n$sub-sup-font-size: .75em !default;\n\n$text-muted: $gray-600 !default;\n\n$initialism-font-size: $small-font-size !default;\n\n$blockquote-margin-y: $spacer !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n$blockquote-footer-color: $gray-600 !default;\n$blockquote-footer-font-size: $small-font-size !default;\n\n$hr-margin-y: $spacer !default;\n$hr-color: inherit !default;\n$hr-height: $border-width !default;\n$hr-opacity: .25 !default;\n\n$legend-margin-bottom: .5rem !default;\n$legend-font-size: 1.5rem !default;\n$legend-font-weight: null !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n// scss-docs-end type-variables\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n// scss-docs-start table-variables\n$table-cell-padding-y: .5rem !default;\n$table-cell-padding-x: .5rem !default;\n$table-cell-padding-y-sm: .25rem !default;\n$table-cell-padding-x-sm: .25rem !default;\n\n$table-cell-vertical-align: top !default;\n\n$table-color: $body-color !default;\n$table-bg: transparent !default;\n$table-accent-bg: transparent !default;\n\n$table-th-font-weight: null !default;\n\n$table-striped-color: $table-color !default;\n$table-striped-bg-factor: .05 !default;\n$table-striped-bg: rgba($black, $table-striped-bg-factor) !default;\n\n$table-active-color: $table-color !default;\n$table-active-bg-factor: .1 !default;\n$table-active-bg: rgba($black, $table-active-bg-factor) !default;\n\n$table-hover-color: $table-color !default;\n$table-hover-bg-factor: .075 !default;\n$table-hover-bg: rgba($black, $table-hover-bg-factor) !default;\n\n$table-border-factor: .1 !default;\n$table-border-width: $border-width !default;\n$table-border-color: $border-color !default;\n\n$table-striped-order: odd !default;\n\n$table-group-separator-color: currentColor !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-scale: -80% !default;\n// scss-docs-end table-variables\n\n// scss-docs-start table-loop\n$table-variants: (\n \"primary\": shift-color($primary, $table-bg-scale),\n \"secondary\": shift-color($secondary, $table-bg-scale),\n \"success\": shift-color($success, $table-bg-scale),\n \"info\": shift-color($info, $table-bg-scale),\n \"warning\": shift-color($warning, $table-bg-scale),\n \"danger\": shift-color($danger, $table-bg-scale),\n \"light\": $light,\n \"dark\": $dark,\n) !default;\n// scss-docs-end table-loop\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n// scss-docs-start input-btn-variables\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .25rem !default;\n$input-btn-focus-color-opacity: .25 !default;\n$input-btn-focus-color: rgba($component-active-bg, $input-btn-focus-color-opacity) !default;\n$input-btn-focus-blur: 0 !default;\n$input-btn-focus-box-shadow: 0 0 $input-btn-focus-blur $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n\n$input-btn-border-width: $border-width !default;\n// scss-docs-end input-btn-variables\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n// scss-docs-start btn-variables\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-color: $link-color !default;\n$btn-link-hover-color: $link-hover-color !default;\n$btn-link-disabled-color: $gray-600 !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$btn-hover-bg-shade-amount: 15% !default;\n$btn-hover-bg-tint-amount: 15% !default;\n$btn-hover-border-shade-amount: 20% !default;\n$btn-hover-border-tint-amount: 10% !default;\n$btn-active-bg-shade-amount: 20% !default;\n$btn-active-bg-tint-amount: 20% !default;\n$btn-active-border-shade-amount: 25% !default;\n$btn-active-border-tint-amount: 10% !default;\n// scss-docs-end btn-variables\n\n\n// Forms\n\n// scss-docs-start form-text-variables\n$form-text-margin-top: .25rem !default;\n$form-text-font-size: $small-font-size !default;\n$form-text-font-style: null !default;\n$form-text-font-weight: null !default;\n$form-text-color: $text-muted !default;\n// scss-docs-end form-text-variables\n\n// scss-docs-start form-label-variables\n$form-label-margin-bottom: .5rem !default;\n$form-label-font-size: null !default;\n$form-label-font-style: null !default;\n$form-label-font-weight: null !default;\n$form-label-color: null !default;\n// scss-docs-end form-label-variables\n\n// scss-docs-start form-input-variables\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n\n$input-bg: $body-bg !default;\n$input-disabled-bg: $gray-200 !default;\n$input-disabled-border-color: null !default;\n\n$input-color: $body-color !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: $box-shadow-inset !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-sm: $border-radius-sm !default;\n$input-border-radius-lg: $border-radius-lg !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: tint-color($component-active-bg, 50%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y * .5) !default;\n\n$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm: add($input-line-height * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg: add($input-line-height * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-color-width: 3rem !default;\n// scss-docs-end form-input-variables\n\n// scss-docs-start form-check-variables\n$form-check-input-width: 1em !default;\n$form-check-min-height: $font-size-base * $line-height-base !default;\n$form-check-padding-start: $form-check-input-width + .5em !default;\n$form-check-margin-bottom: .125rem !default;\n$form-check-label-color: null !default;\n$form-check-label-cursor: null !default;\n$form-check-transition: null !default;\n\n$form-check-input-active-filter: brightness(90%) !default;\n\n$form-check-input-bg: $input-bg !default;\n$form-check-input-border: 1px solid rgba($black, .25) !default;\n$form-check-input-border-radius: .25em !default;\n$form-check-radio-border-radius: 50% !default;\n$form-check-input-focus-border: $input-focus-border-color !default;\n$form-check-input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$form-check-input-checked-color: $component-active-color !default;\n$form-check-input-checked-bg-color: $component-active-bg !default;\n$form-check-input-checked-border-color: $form-check-input-checked-bg-color !default;\n$form-check-input-checked-bg-image: url(\"data:image/svg+xml,\") !default;\n$form-check-radio-checked-bg-image: url(\"data:image/svg+xml,\") !default;\n\n$form-check-input-indeterminate-color: $component-active-color !default;\n$form-check-input-indeterminate-bg-color: $component-active-bg !default;\n$form-check-input-indeterminate-border-color: $form-check-input-indeterminate-bg-color !default;\n$form-check-input-indeterminate-bg-image: url(\"data:image/svg+xml,\") !default;\n\n$form-check-input-disabled-opacity: .5 !default;\n$form-check-label-disabled-opacity: $form-check-input-disabled-opacity !default;\n$form-check-btn-check-disabled-opacity: $btn-disabled-opacity !default;\n\n$form-check-inline-margin-end: 1rem !default;\n// scss-docs-end form-check-variables\n\n// scss-docs-start form-switch-variables\n$form-switch-color: rgba($black, .25) !default;\n$form-switch-width: 2em !default;\n$form-switch-padding-start: $form-switch-width + .5em !default;\n$form-switch-bg-image: url(\"data:image/svg+xml,\") !default;\n$form-switch-border-radius: $form-switch-width !default;\n$form-switch-transition: background-position .15s ease-in-out !default;\n\n$form-switch-focus-color: $input-focus-border-color !default;\n$form-switch-focus-bg-image: url(\"data:image/svg+xml,\") !default;\n\n$form-switch-checked-color: $component-active-color !default;\n$form-switch-checked-bg-image: url(\"data:image/svg+xml,\") !default;\n$form-switch-checked-bg-position: right center !default;\n// scss-docs-end form-switch-variables\n\n// scss-docs-start input-group-variables\n$input-group-addon-padding-y: $input-padding-y !default;\n$input-group-addon-padding-x: $input-padding-x !default;\n$input-group-addon-font-weight: $input-font-weight !default;\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n// scss-docs-end input-group-variables\n\n// scss-docs-start form-select-variables\n$form-select-padding-y: $input-padding-y !default;\n$form-select-padding-x: $input-padding-x !default;\n$form-select-font-family: $input-font-family !default;\n$form-select-font-size: $input-font-size !default;\n$form-select-indicator-padding: $form-select-padding-x * 3 !default; // Extra padding for background-image\n$form-select-font-weight: $input-font-weight !default;\n$form-select-line-height: $input-line-height !default;\n$form-select-color: $input-color !default;\n$form-select-bg: $input-bg !default;\n$form-select-disabled-color: null !default;\n$form-select-disabled-bg: $gray-200 !default;\n$form-select-disabled-border-color: $input-disabled-border-color !default;\n$form-select-bg-position: right $form-select-padding-x center !default;\n$form-select-bg-size: 16px 12px !default; // In pixels because image dimensions\n$form-select-indicator-color: $gray-800 !default;\n$form-select-indicator: url(\"data:image/svg+xml,\") !default;\n\n$form-select-feedback-icon-padding-end: $form-select-padding-x * 2.5 + $form-select-indicator-padding !default;\n$form-select-feedback-icon-position: center right $form-select-indicator-padding !default;\n$form-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$form-select-border-width: $input-border-width !default;\n$form-select-border-color: $input-border-color !default;\n$form-select-border-radius: $input-border-radius !default;\n$form-select-box-shadow: $box-shadow-inset !default;\n\n$form-select-focus-border-color: $input-focus-border-color !default;\n$form-select-focus-width: $input-focus-width !default;\n$form-select-focus-box-shadow: 0 0 0 $form-select-focus-width $input-btn-focus-color !default;\n\n$form-select-padding-y-sm: $input-padding-y-sm !default;\n$form-select-padding-x-sm: $input-padding-x-sm !default;\n$form-select-font-size-sm: $input-font-size-sm !default;\n$form-select-border-radius-sm: $input-border-radius-sm !default;\n\n$form-select-padding-y-lg: $input-padding-y-lg !default;\n$form-select-padding-x-lg: $input-padding-x-lg !default;\n$form-select-font-size-lg: $input-font-size-lg !default;\n$form-select-border-radius-lg: $input-border-radius-lg !default;\n\n$form-select-transition: $input-transition !default;\n// scss-docs-end form-select-variables\n\n// scss-docs-start form-range-variables\n$form-range-track-width: 100% !default;\n$form-range-track-height: .5rem !default;\n$form-range-track-cursor: pointer !default;\n$form-range-track-bg: $gray-300 !default;\n$form-range-track-border-radius: 1rem !default;\n$form-range-track-box-shadow: $box-shadow-inset !default;\n\n$form-range-thumb-width: 1rem !default;\n$form-range-thumb-height: $form-range-thumb-width !default;\n$form-range-thumb-bg: $component-active-bg !default;\n$form-range-thumb-border: 0 !default;\n$form-range-thumb-border-radius: 1rem !default;\n$form-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$form-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$form-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in Edge\n$form-range-thumb-active-bg: tint-color($component-active-bg, 70%) !default;\n$form-range-thumb-disabled-bg: $gray-500 !default;\n$form-range-thumb-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n// scss-docs-end form-range-variables\n\n// scss-docs-start form-file-variables\n$form-file-button-color: $input-color !default;\n$form-file-button-bg: $input-group-addon-bg !default;\n$form-file-button-hover-bg: shade-color($form-file-button-bg, 5%) !default;\n// scss-docs-end form-file-variables\n\n// scss-docs-start form-floating-variables\n$form-floating-height: add(3.5rem, $input-height-border) !default;\n$form-floating-line-height: 1.25 !default;\n$form-floating-padding-x: $input-padding-x !default;\n$form-floating-padding-y: 1rem !default;\n$form-floating-input-padding-t: 1.625rem !default;\n$form-floating-input-padding-b: .625rem !default;\n$form-floating-label-opacity: .65 !default;\n$form-floating-label-transform: scale(.85) translateY(-.5rem) translateX(.15rem) !default;\n$form-floating-transition: opacity .1s ease-in-out, transform .1s ease-in-out !default;\n// scss-docs-end form-floating-variables\n\n// Form validation\n\n// scss-docs-start form-feedback-variables\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $form-text-font-size !default;\n$form-feedback-font-style: $form-text-font-style !default;\n$form-feedback-valid-color: $success !default;\n$form-feedback-invalid-color: $danger !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: url(\"data:image/svg+xml,\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: url(\"data:image/svg+xml,\") !default;\n// scss-docs-end form-feedback-variables\n\n// scss-docs-start form-validation-states\n$form-validation-states: (\n \"valid\": (\n \"color\": $form-feedback-valid-color,\n \"icon\": $form-feedback-icon-valid\n ),\n \"invalid\": (\n \"color\": $form-feedback-invalid-color,\n \"icon\": $form-feedback-icon-invalid\n )\n) !default;\n// scss-docs-end form-validation-states\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n// scss-docs-start zindex-stack\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-offcanvas-backdrop: 1040 !default;\n$zindex-offcanvas: 1045 !default;\n$zindex-modal-backdrop: 1050 !default;\n$zindex-modal: 1055 !default;\n$zindex-popover: 1070 !default;\n$zindex-tooltip: 1080 !default;\n// scss-docs-end zindex-stack\n\n\n// Navs\n\n// scss-docs-start nav-variables\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-font-size: null !default;\n$nav-link-font-weight: null !default;\n$nav-link-color: $link-color !default;\n$nav-link-hover-color: $link-hover-color !default;\n$nav-link-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n// scss-docs-end nav-variables\n\n\n// Navbar\n\n// scss-docs-start navbar-variables\n$navbar-padding-y: $spacer * .5 !default;\n$navbar-padding-x: null !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) * .5 !default;\n$navbar-brand-margin-end: 1rem !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n$navbar-toggler-focus-width: $btn-focus-width !default;\n$navbar-toggler-transition: box-shadow .15s ease-in-out !default;\n// scss-docs-end navbar-variables\n\n// scss-docs-start navbar-theme-variables\n$navbar-dark-color: rgba($white, .55) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .55) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n// scss-docs-end navbar-theme-variables\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n// scss-docs-start dropdown-variables\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-x: 0 !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: $body-color !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;\n$dropdown-divider-bg: $dropdown-border-color !default;\n$dropdown-divider-margin-y: $spacer * .5 !default;\n$dropdown-box-shadow: $box-shadow !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: shade-color($dropdown-link-color, 10%) !default;\n$dropdown-link-hover-bg: $gray-200 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-500 !default;\n\n$dropdown-item-padding-y: $spacer * .25 !default;\n$dropdown-item-padding-x: $spacer !default;\n\n$dropdown-header-color: $gray-600 !default;\n$dropdown-header-padding: $dropdown-padding-y $dropdown-item-padding-x !default;\n// scss-docs-end dropdown-variables\n\n// scss-docs-start dropdown-dark-variables\n$dropdown-dark-color: $gray-300 !default;\n$dropdown-dark-bg: $gray-800 !default;\n$dropdown-dark-border-color: $dropdown-border-color !default;\n$dropdown-dark-divider-bg: $dropdown-divider-bg !default;\n$dropdown-dark-box-shadow: null !default;\n$dropdown-dark-link-color: $dropdown-dark-color !default;\n$dropdown-dark-link-hover-color: $white !default;\n$dropdown-dark-link-hover-bg: rgba($white, .15) !default;\n$dropdown-dark-link-active-color: $dropdown-link-active-color !default;\n$dropdown-dark-link-active-bg: $dropdown-link-active-bg !default;\n$dropdown-dark-link-disabled-color: $gray-500 !default;\n$dropdown-dark-header-color: $gray-500 !default;\n// scss-docs-end dropdown-dark-variables\n\n\n// Pagination\n\n// scss-docs-start pagination-variables\n$pagination-padding-y: .375rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-radius: $border-radius !default;\n$pagination-margin-start: -$pagination-border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-color: $link-hover-color !default;\n$pagination-focus-bg: $gray-200 !default;\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n$pagination-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$pagination-border-radius-sm: $border-radius-sm !default;\n$pagination-border-radius-lg: $border-radius-lg !default;\n// scss-docs-end pagination-variables\n\n\n// Placeholders\n\n// scss-docs-start placeholders\n$placeholder-opacity-max: .5 !default;\n$placeholder-opacity-min: .2 !default;\n// scss-docs-end placeholders\n\n// Cards\n\n// scss-docs-start card-variables\n$card-spacer-y: $spacer !default;\n$card-spacer-x: $spacer !default;\n$card-title-spacer-y: $spacer * .5 !default;\n$card-border-width: $border-width !default;\n$card-border-color: rgba($black, .125) !default;\n$card-border-radius: $border-radius !default;\n$card-box-shadow: null !default;\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\n$card-cap-padding-y: $card-spacer-y * .5 !default;\n$card-cap-padding-x: $card-spacer-x !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: null !default;\n$card-height: null !default;\n$card-color: null !default;\n$card-bg: $white !default;\n$card-img-overlay-padding: $spacer !default;\n$card-group-margin: $grid-gutter-width * .5 !default;\n// scss-docs-end card-variables\n\n// Accordion\n\n// scss-docs-start accordion-variables\n$accordion-padding-y: 1rem !default;\n$accordion-padding-x: 1.25rem !default;\n$accordion-color: $body-color !default;\n$accordion-bg: $body-bg !default;\n$accordion-border-width: $border-width !default;\n$accordion-border-color: rgba($black, .125) !default;\n$accordion-border-radius: $border-radius !default;\n$accordion-inner-border-radius: subtract($accordion-border-radius, $accordion-border-width) !default;\n\n$accordion-body-padding-y: $accordion-padding-y !default;\n$accordion-body-padding-x: $accordion-padding-x !default;\n\n$accordion-button-padding-y: $accordion-padding-y !default;\n$accordion-button-padding-x: $accordion-padding-x !default;\n$accordion-button-color: $accordion-color !default;\n$accordion-button-bg: $accordion-bg !default;\n$accordion-transition: $btn-transition, border-radius .15s ease !default;\n$accordion-button-active-bg: tint-color($component-active-bg, 90%) !default;\n$accordion-button-active-color: shade-color($primary, 10%) !default;\n\n$accordion-button-focus-border-color: $input-focus-border-color !default;\n$accordion-button-focus-box-shadow: $btn-focus-box-shadow !default;\n\n$accordion-icon-width: 1.25rem !default;\n$accordion-icon-color: $accordion-button-color !default;\n$accordion-icon-active-color: $accordion-button-active-color !default;\n$accordion-icon-transition: transform .2s ease-in-out !default;\n$accordion-icon-transform: rotate(-180deg) !default;\n\n$accordion-button-icon: url(\"data:image/svg+xml,\") !default;\n$accordion-button-active-icon: url(\"data:image/svg+xml,\") !default;\n// scss-docs-end accordion-variables\n\n// Tooltips\n\n// scss-docs-start tooltip-variables\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: $spacer * .25 !default;\n$tooltip-padding-x: $spacer * .5 !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n// scss-docs-end tooltip-variables\n\n// Form tooltips must come after regular tooltips\n// scss-docs-start tooltip-feedback-variables\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: null !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n// scss-docs-end tooltip-feedback-variables\n\n\n// Popovers\n\n// scss-docs-start popover-variables\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;\n$popover-box-shadow: $box-shadow !default;\n\n$popover-header-bg: shade-color($popover-bg, 6%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: $spacer !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $spacer !default;\n$popover-body-padding-x: $spacer !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n// scss-docs-end popover-variables\n\n\n// Toasts\n\n// scss-docs-start toast-variables\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .5rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba($black, .1) !default;\n$toast-border-radius: $border-radius !default;\n$toast-box-shadow: $box-shadow !default;\n$toast-spacing: $container-padding-x !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba($black, .05) !default;\n// scss-docs-end toast-variables\n\n\n// Badges\n\n// scss-docs-start badge-variables\n$badge-font-size: .75em !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-color: $white !default;\n$badge-padding-y: .35em !default;\n$badge-padding-x: .65em !default;\n$badge-border-radius: $border-radius !default;\n// scss-docs-end badge-variables\n\n\n// Modals\n\n// scss-docs-start modal-variables\n$modal-inner-padding: $spacer !default;\n\n$modal-footer-margin-between: .5rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs: $box-shadow-sm !default;\n$modal-content-box-shadow-sm-up: $box-shadow !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $border-color !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: $modal-inner-padding !default;\n$modal-header-padding-x: $modal-inner-padding !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-sm: 300px !default;\n$modal-md: 500px !default;\n$modal-lg: 800px !default;\n$modal-xl: 1140px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n$modal-scale-transform: scale(1.02) !default;\n// scss-docs-end modal-variables\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n// scss-docs-start alert-variables\n$alert-padding-y: $spacer !default;\n$alert-padding-x: $spacer !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n$alert-bg-scale: -80% !default;\n$alert-border-scale: -70% !default;\n$alert-color-scale: 40% !default;\n$alert-dismissible-padding-r: $alert-padding-x * 3 !default; // 3x covers width of x plus default padding on either side\n// scss-docs-end alert-variables\n\n\n// Progress bars\n\n// scss-docs-start progress-variables\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: $box-shadow-inset !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: $primary !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n// scss-docs-end progress-variables\n\n\n// List group\n\n// scss-docs-start list-group-variables\n$list-group-color: $gray-900 !default;\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: $spacer * .5 !default;\n$list-group-item-padding-x: $spacer !default;\n$list-group-item-bg-scale: -80% !default;\n$list-group-item-color-scale: 40% !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n// scss-docs-end list-group-variables\n\n\n// Image thumbnails\n\n// scss-docs-start thumbnail-variables\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: $box-shadow-sm !default;\n// scss-docs-end thumbnail-variables\n\n\n// Figures\n\n// scss-docs-start figure-variables\n$figure-caption-font-size: $small-font-size !default;\n$figure-caption-color: $gray-600 !default;\n// scss-docs-end figure-variables\n\n\n// Breadcrumbs\n\n// scss-docs-start breadcrumb-variables\n$breadcrumb-font-size: null !default;\n$breadcrumb-padding-y: 0 !default;\n$breadcrumb-padding-x: 0 !default;\n$breadcrumb-item-padding-x: .5rem !default;\n$breadcrumb-margin-bottom: 1rem !default;\n$breadcrumb-bg: null !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n$breadcrumb-divider-flipped: $breadcrumb-divider !default;\n$breadcrumb-border-radius: null !default;\n// scss-docs-end breadcrumb-variables\n\n// Carousel\n\n// scss-docs-start carousel-variables\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-opacity: .5 !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-active-opacity: 1 !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n$carousel-caption-padding-y: 1.25rem !default;\n$carousel-caption-spacer: 1.25rem !default;\n\n$carousel-control-icon-width: 2rem !default;\n\n$carousel-control-prev-icon-bg: url(\"data:image/svg+xml,\") !default;\n$carousel-control-next-icon-bg: url(\"data:image/svg+xml,\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n$carousel-dark-indicator-active-bg: $black !default;\n$carousel-dark-caption-color: $black !default;\n$carousel-dark-control-icon-filter: invert(1) grayscale(100) !default;\n// scss-docs-end carousel-variables\n\n\n// Spinners\n\n// scss-docs-start spinner-variables\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-vertical-align: -.125em !default;\n$spinner-border-width: .25em !default;\n$spinner-animation-speed: .75s !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n// scss-docs-end spinner-variables\n\n\n// Close\n\n// scss-docs-start close-variables\n$btn-close-width: 1em !default;\n$btn-close-height: $btn-close-width !default;\n$btn-close-padding-x: .25em !default;\n$btn-close-padding-y: $btn-close-padding-x !default;\n$btn-close-color: $black !default;\n$btn-close-bg: url(\"data:image/svg+xml,\") !default;\n$btn-close-focus-shadow: $input-btn-focus-box-shadow !default;\n$btn-close-opacity: .5 !default;\n$btn-close-hover-opacity: .75 !default;\n$btn-close-focus-opacity: 1 !default;\n$btn-close-disabled-opacity: .25 !default;\n$btn-close-white-filter: invert(1) grayscale(100%) brightness(200%) !default;\n// scss-docs-end close-variables\n\n\n// Offcanvas\n\n// scss-docs-start offcanvas-variables\n$offcanvas-padding-y: $modal-inner-padding !default;\n$offcanvas-padding-x: $modal-inner-padding !default;\n$offcanvas-horizontal-width: 400px !default;\n$offcanvas-vertical-height: 30vh !default;\n$offcanvas-transition-duration: .3s !default;\n$offcanvas-border-color: $modal-content-border-color !default;\n$offcanvas-border-width: $modal-content-border-width !default;\n$offcanvas-title-line-height: $modal-title-line-height !default;\n$offcanvas-bg-color: $modal-content-bg !default;\n$offcanvas-color: $modal-content-color !default;\n$offcanvas-box-shadow: $modal-content-box-shadow-xs !default;\n$offcanvas-backdrop-bg: $modal-backdrop-bg !default;\n$offcanvas-backdrop-opacity: $modal-backdrop-opacity !default;\n// scss-docs-end offcanvas-variables\n\n// Code\n\n$code-font-size: $small-font-size !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: null !default;\n","// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n\n > * {\n @include make-col-ready();\n }\n }\n}\n\n@if $enable-cssgrid {\n .grid {\n display: grid;\n grid-template-rows: repeat(var(--#{$variable-prefix}rows, 1), 1fr);\n grid-template-columns: repeat(var(--#{$variable-prefix}columns, #{$grid-columns}), 1fr);\n gap: var(--#{$variable-prefix}gap, #{$grid-gutter-width});\n\n @include make-cssgrid();\n }\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter: $grid-gutter-width) {\n --#{$variable-prefix}gutter-x: #{$gutter};\n --#{$variable-prefix}gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed\n margin-top: calc(-1 * var(--#{$variable-prefix}gutter-y)); // stylelint-disable-line function-disallowed-list\n margin-right: calc(-.5 * var(--#{$variable-prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n margin-left: calc(-.5 * var(--#{$variable-prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n // Add box sizing if only the grid is loaded\n box-sizing: if(variable-exists(include-column-box-sizing) and $include-column-box-sizing, border-box, null);\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we set the width\n // later on to override this initial width.\n flex-shrink: 0;\n width: 100%;\n max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n padding-right: calc(var(--#{$variable-prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n padding-left: calc(var(--#{$variable-prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n margin-top: var(--#{$variable-prefix}gutter-y);\n}\n\n@mixin make-col($size: false, $columns: $grid-columns) {\n @if $size {\n flex: 0 0 auto;\n width: percentage(divide($size, $columns));\n\n } @else {\n flex: 1 1 0;\n max-width: 100%;\n }\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: divide($size, $columns);\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 auto;\n width: divide(100%, $count);\n }\n}\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n }\n\n .row-cols#{$infix}-auto > * {\n @include make-col-auto();\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n\n // Gutters\n //\n // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n @each $key, $value in $gutters {\n .g#{$infix}-#{$key},\n .gx#{$infix}-#{$key} {\n --#{$variable-prefix}gutter-x: #{$value};\n }\n\n .g#{$infix}-#{$key},\n .gy#{$infix}-#{$key} {\n --#{$variable-prefix}gutter-y: #{$value};\n }\n }\n }\n }\n}\n\n@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $grid-breakpoints) {\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .g-col#{$infix}-#{$i} {\n grid-column: auto / span $i;\n }\n }\n\n // Start with `1` because `0` is and invalid value.\n // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.\n @for $i from 1 through ($columns - 1) {\n .g-start#{$infix}-#{$i} {\n grid-column-start: $i;\n }\n }\n }\n }\n }\n}\n","// Utility generator\n// Used to generate utilities & print utilities\n@mixin generate-utility($utility, $infix, $is-rfs-media-query: false) {\n $values: map-get($utility, values);\n\n // If the values are a list or string, convert it into a map\n @if type-of($values) == \"string\" or type-of(nth($values, 1)) != \"list\" {\n $values: zip($values, $values);\n }\n\n @each $key, $value in $values {\n $properties: map-get($utility, property);\n\n // Multiple properties are possible, for example with vertical or horizontal margins or paddings\n @if type-of($properties) == \"string\" {\n $properties: append((), $properties);\n }\n\n // Use custom class if present\n $property-class: if(map-has-key($utility, class), map-get($utility, class), nth($properties, 1));\n $property-class: if($property-class == null, \"\", $property-class);\n\n // State params to generate pseudo-classes\n $state: if(map-has-key($utility, state), map-get($utility, state), ());\n\n $infix: if($property-class == \"\" and str-slice($infix, 1, 1) == \"-\", str-slice($infix, 2), $infix);\n\n // Don't prefix if value key is null (eg. with shadow class)\n $property-class-modifier: if($key, if($property-class == \"\" and $infix == \"\", \"\", \"-\") + $key, \"\");\n\n @if map-get($utility, rfs) {\n // Inside the media query\n @if $is-rfs-media-query {\n $val: rfs-value($value);\n\n // Do not render anything if fluid and non fluid values are the same\n $value: if($val == rfs-fluid-value($value), null, $val);\n }\n @else {\n $value: rfs-fluid-value($value);\n }\n }\n\n $is-css-var: map-get($utility, css-var);\n $is-local-vars: map-get($utility, local-vars);\n $is-rtl: map-get($utility, rtl);\n\n @if $value != null {\n @if $is-rtl == false {\n /* rtl:begin:remove */\n }\n\n @if $is-css-var {\n .#{$property-class + $infix + $property-class-modifier} {\n --#{$variable-prefix}#{$property-class}: #{$value};\n }\n\n @each $pseudo in $state {\n .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n --#{$variable-prefix}#{$property-class}: #{$value};\n }\n }\n } @else {\n .#{$property-class + $infix + $property-class-modifier} {\n @each $property in $properties {\n @if $is-local-vars {\n @each $local-var, $value in $is-local-vars {\n --#{$variable-prefix}#{$local-var}: #{$value};\n }\n }\n #{$property}: $value if($enable-important-utilities, !important, null);\n }\n }\n\n @each $pseudo in $state {\n .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n @each $property in $properties {\n #{$property}: $value if($enable-important-utilities, !important, null);\n }\n }\n }\n }\n\n @if $is-rtl == false {\n /* rtl:end:remove */\n }\n }\n }\n}\n","// Loop over each breakpoint\n@each $breakpoint in map-keys($grid-breakpoints) {\n\n // Generate media query if needed\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n // Loop over each utility property\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Only proceed if responsive media queries are enabled or if it's the base media query\n @if type-of($utility) == \"map\" and (map-get($utility, responsive) or $infix == \"\") {\n @include generate-utility($utility, $infix);\n }\n }\n }\n}\n\n// RFS rescaling\n@media (min-width: $rfs-mq-value) {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @if (map-get($grid-breakpoints, $breakpoint) < $rfs-breakpoint) {\n // Loop over each utility property\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Only proceed if responsive media queries are enabled or if it's the base media query\n @if type-of($utility) == \"map\" and map-get($utility, rfs) and (map-get($utility, responsive) or $infix == \"\") {\n @include generate-utility($utility, $infix, true);\n }\n }\n }\n }\n}\n\n\n// Print utilities\n@media print {\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Then check if the utility needs print styles\n @if type-of($utility) == \"map\" and map-get($utility, print) == true {\n @include generate-utility($utility, \"-print\");\n }\n }\n}\n"]} \ No newline at end of file diff --git a/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.rtl.min.css b/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.rtl.min.css new file mode 100644 index 0000000..8ec49c7 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.rtl.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap Grid v5.1.3 (https://getbootstrap.com/) + * 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-color-rgb:33,37,41;--bs-body-bg-rgb:255,255,255;--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}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{width:100%;padding-left:var(--bs-gutter-x,.75rem);padding-right:var(--bs-gutter-x,.75rem);margin-left:auto;margin-right: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(-1 * var(--bs-gutter-y));margin-left:calc(-.5 * var(--bs-gutter-x));margin-right:calc(-.5 * var(--bs-gutter-x))}.row>*{box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;padding-left:calc(var(--bs-gutter-x) * .5);padding-right: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-right:8.33333333%}.offset-2{margin-right:16.66666667%}.offset-3{margin-right:25%}.offset-4{margin-right:33.33333333%}.offset-5{margin-right:41.66666667%}.offset-6{margin-right:50%}.offset-7{margin-right:58.33333333%}.offset-8{margin-right:66.66666667%}.offset-9{margin-right:75%}.offset-10{margin-right:83.33333333%}.offset-11{margin-right: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-right:0}.offset-sm-1{margin-right:8.33333333%}.offset-sm-2{margin-right:16.66666667%}.offset-sm-3{margin-right:25%}.offset-sm-4{margin-right:33.33333333%}.offset-sm-5{margin-right:41.66666667%}.offset-sm-6{margin-right:50%}.offset-sm-7{margin-right:58.33333333%}.offset-sm-8{margin-right:66.66666667%}.offset-sm-9{margin-right:75%}.offset-sm-10{margin-right:83.33333333%}.offset-sm-11{margin-right: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-right:0}.offset-md-1{margin-right:8.33333333%}.offset-md-2{margin-right:16.66666667%}.offset-md-3{margin-right:25%}.offset-md-4{margin-right:33.33333333%}.offset-md-5{margin-right:41.66666667%}.offset-md-6{margin-right:50%}.offset-md-7{margin-right:58.33333333%}.offset-md-8{margin-right:66.66666667%}.offset-md-9{margin-right:75%}.offset-md-10{margin-right:83.33333333%}.offset-md-11{margin-right: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-right:0}.offset-lg-1{margin-right:8.33333333%}.offset-lg-2{margin-right:16.66666667%}.offset-lg-3{margin-right:25%}.offset-lg-4{margin-right:33.33333333%}.offset-lg-5{margin-right:41.66666667%}.offset-lg-6{margin-right:50%}.offset-lg-7{margin-right:58.33333333%}.offset-lg-8{margin-right:66.66666667%}.offset-lg-9{margin-right:75%}.offset-lg-10{margin-right:83.33333333%}.offset-lg-11{margin-right: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-right:0}.offset-xl-1{margin-right:8.33333333%}.offset-xl-2{margin-right:16.66666667%}.offset-xl-3{margin-right:25%}.offset-xl-4{margin-right:33.33333333%}.offset-xl-5{margin-right:41.66666667%}.offset-xl-6{margin-right:50%}.offset-xl-7{margin-right:58.33333333%}.offset-xl-8{margin-right:66.66666667%}.offset-xl-9{margin-right:75%}.offset-xl-10{margin-right:83.33333333%}.offset-xl-11{margin-right: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-right:0}.offset-xxl-1{margin-right:8.33333333%}.offset-xxl-2{margin-right:16.66666667%}.offset-xxl-3{margin-right:25%}.offset-xxl-4{margin-right:33.33333333%}.offset-xxl-5{margin-right:41.66666667%}.offset-xxl-6{margin-right:50%}.offset-xxl-7{margin-right:58.33333333%}.offset-xxl-8{margin-right:66.66666667%}.offset-xxl-9{margin-right:75%}.offset-xxl-10{margin-right:83.33333333%}.offset-xxl-11{margin-right: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}}.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}.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}.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-left:0!important;margin-right:0!important}.mx-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-3{margin-left:1rem!important;margin-right:1rem!important}.mx-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-5{margin-left:3rem!important;margin-right:3rem!important}.mx-auto{margin-left:auto!important;margin-right: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-left:0!important}.me-1{margin-left:.25rem!important}.me-2{margin-left:.5rem!important}.me-3{margin-left:1rem!important}.me-4{margin-left:1.5rem!important}.me-5{margin-left:3rem!important}.me-auto{margin-left: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-right:0!important}.ms-1{margin-right:.25rem!important}.ms-2{margin-right:.5rem!important}.ms-3{margin-right:1rem!important}.ms-4{margin-right:1.5rem!important}.ms-5{margin-right:3rem!important}.ms-auto{margin-right: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-left:0!important;padding-right:0!important}.px-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-3{padding-left:1rem!important;padding-right:1rem!important}.px-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-5{padding-left:3rem!important;padding-right: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-left:0!important}.pe-1{padding-left:.25rem!important}.pe-2{padding-left:.5rem!important}.pe-3{padding-left:1rem!important}.pe-4{padding-left:1.5rem!important}.pe-5{padding-left: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-right:0!important}.ps-1{padding-right:.25rem!important}.ps-2{padding-right:.5rem!important}.ps-3{padding-right:1rem!important}.ps-4{padding-right:1.5rem!important}.ps-5{padding-right:3rem!important}@media (min-width:576px){.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}.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-left:0!important;margin-right:0!important}.mx-sm-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-sm-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-sm-3{margin-left:1rem!important;margin-right:1rem!important}.mx-sm-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-sm-5{margin-left:3rem!important;margin-right:3rem!important}.mx-sm-auto{margin-left:auto!important;margin-right: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-left:0!important}.me-sm-1{margin-left:.25rem!important}.me-sm-2{margin-left:.5rem!important}.me-sm-3{margin-left:1rem!important}.me-sm-4{margin-left:1.5rem!important}.me-sm-5{margin-left:3rem!important}.me-sm-auto{margin-left: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-right:0!important}.ms-sm-1{margin-right:.25rem!important}.ms-sm-2{margin-right:.5rem!important}.ms-sm-3{margin-right:1rem!important}.ms-sm-4{margin-right:1.5rem!important}.ms-sm-5{margin-right:3rem!important}.ms-sm-auto{margin-right: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-left:0!important;padding-right:0!important}.px-sm-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-sm-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-sm-3{padding-left:1rem!important;padding-right:1rem!important}.px-sm-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-sm-5{padding-left:3rem!important;padding-right: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-left:0!important}.pe-sm-1{padding-left:.25rem!important}.pe-sm-2{padding-left:.5rem!important}.pe-sm-3{padding-left:1rem!important}.pe-sm-4{padding-left:1.5rem!important}.pe-sm-5{padding-left: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-right:0!important}.ps-sm-1{padding-right:.25rem!important}.ps-sm-2{padding-right:.5rem!important}.ps-sm-3{padding-right:1rem!important}.ps-sm-4{padding-right:1.5rem!important}.ps-sm-5{padding-right:3rem!important}}@media (min-width:768px){.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}.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-left:0!important;margin-right:0!important}.mx-md-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-md-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-md-3{margin-left:1rem!important;margin-right:1rem!important}.mx-md-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-md-5{margin-left:3rem!important;margin-right:3rem!important}.mx-md-auto{margin-left:auto!important;margin-right: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-left:0!important}.me-md-1{margin-left:.25rem!important}.me-md-2{margin-left:.5rem!important}.me-md-3{margin-left:1rem!important}.me-md-4{margin-left:1.5rem!important}.me-md-5{margin-left:3rem!important}.me-md-auto{margin-left: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-right:0!important}.ms-md-1{margin-right:.25rem!important}.ms-md-2{margin-right:.5rem!important}.ms-md-3{margin-right:1rem!important}.ms-md-4{margin-right:1.5rem!important}.ms-md-5{margin-right:3rem!important}.ms-md-auto{margin-right: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-left:0!important;padding-right:0!important}.px-md-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-md-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-md-3{padding-left:1rem!important;padding-right:1rem!important}.px-md-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-md-5{padding-left:3rem!important;padding-right: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-left:0!important}.pe-md-1{padding-left:.25rem!important}.pe-md-2{padding-left:.5rem!important}.pe-md-3{padding-left:1rem!important}.pe-md-4{padding-left:1.5rem!important}.pe-md-5{padding-left: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-right:0!important}.ps-md-1{padding-right:.25rem!important}.ps-md-2{padding-right:.5rem!important}.ps-md-3{padding-right:1rem!important}.ps-md-4{padding-right:1.5rem!important}.ps-md-5{padding-right:3rem!important}}@media (min-width:992px){.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}.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-left:0!important;margin-right:0!important}.mx-lg-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-lg-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-lg-3{margin-left:1rem!important;margin-right:1rem!important}.mx-lg-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-lg-5{margin-left:3rem!important;margin-right:3rem!important}.mx-lg-auto{margin-left:auto!important;margin-right: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-left:0!important}.me-lg-1{margin-left:.25rem!important}.me-lg-2{margin-left:.5rem!important}.me-lg-3{margin-left:1rem!important}.me-lg-4{margin-left:1.5rem!important}.me-lg-5{margin-left:3rem!important}.me-lg-auto{margin-left: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-right:0!important}.ms-lg-1{margin-right:.25rem!important}.ms-lg-2{margin-right:.5rem!important}.ms-lg-3{margin-right:1rem!important}.ms-lg-4{margin-right:1.5rem!important}.ms-lg-5{margin-right:3rem!important}.ms-lg-auto{margin-right: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-left:0!important;padding-right:0!important}.px-lg-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-lg-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-lg-3{padding-left:1rem!important;padding-right:1rem!important}.px-lg-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-lg-5{padding-left:3rem!important;padding-right: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-left:0!important}.pe-lg-1{padding-left:.25rem!important}.pe-lg-2{padding-left:.5rem!important}.pe-lg-3{padding-left:1rem!important}.pe-lg-4{padding-left:1.5rem!important}.pe-lg-5{padding-left: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-right:0!important}.ps-lg-1{padding-right:.25rem!important}.ps-lg-2{padding-right:.5rem!important}.ps-lg-3{padding-right:1rem!important}.ps-lg-4{padding-right:1.5rem!important}.ps-lg-5{padding-right:3rem!important}}@media (min-width:1200px){.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}.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-left:0!important;margin-right:0!important}.mx-xl-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-xl-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-xl-3{margin-left:1rem!important;margin-right:1rem!important}.mx-xl-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-xl-5{margin-left:3rem!important;margin-right:3rem!important}.mx-xl-auto{margin-left:auto!important;margin-right: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-left:0!important}.me-xl-1{margin-left:.25rem!important}.me-xl-2{margin-left:.5rem!important}.me-xl-3{margin-left:1rem!important}.me-xl-4{margin-left:1.5rem!important}.me-xl-5{margin-left:3rem!important}.me-xl-auto{margin-left: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-right:0!important}.ms-xl-1{margin-right:.25rem!important}.ms-xl-2{margin-right:.5rem!important}.ms-xl-3{margin-right:1rem!important}.ms-xl-4{margin-right:1.5rem!important}.ms-xl-5{margin-right:3rem!important}.ms-xl-auto{margin-right: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-left:0!important;padding-right:0!important}.px-xl-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-xl-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-xl-3{padding-left:1rem!important;padding-right:1rem!important}.px-xl-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-xl-5{padding-left:3rem!important;padding-right: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-left:0!important}.pe-xl-1{padding-left:.25rem!important}.pe-xl-2{padding-left:.5rem!important}.pe-xl-3{padding-left:1rem!important}.pe-xl-4{padding-left:1.5rem!important}.pe-xl-5{padding-left: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-right:0!important}.ps-xl-1{padding-right:.25rem!important}.ps-xl-2{padding-right:.5rem!important}.ps-xl-3{padding-right:1rem!important}.ps-xl-4{padding-right:1.5rem!important}.ps-xl-5{padding-right:3rem!important}}@media (min-width:1400px){.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}.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-left:0!important;margin-right:0!important}.mx-xxl-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-xxl-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-xxl-3{margin-left:1rem!important;margin-right:1rem!important}.mx-xxl-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-xxl-5{margin-left:3rem!important;margin-right:3rem!important}.mx-xxl-auto{margin-left:auto!important;margin-right: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-left:0!important}.me-xxl-1{margin-left:.25rem!important}.me-xxl-2{margin-left:.5rem!important}.me-xxl-3{margin-left:1rem!important}.me-xxl-4{margin-left:1.5rem!important}.me-xxl-5{margin-left:3rem!important}.me-xxl-auto{margin-left: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-right:0!important}.ms-xxl-1{margin-right:.25rem!important}.ms-xxl-2{margin-right:.5rem!important}.ms-xxl-3{margin-right:1rem!important}.ms-xxl-4{margin-right:1.5rem!important}.ms-xxl-5{margin-right:3rem!important}.ms-xxl-auto{margin-right: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-left:0!important;padding-right:0!important}.px-xxl-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-xxl-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-xxl-3{padding-left:1rem!important;padding-right:1rem!important}.px-xxl-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-xxl-5{padding-left:3rem!important;padding-right: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-left:0!important}.pe-xxl-1{padding-left:.25rem!important}.pe-xxl-2{padding-left:.5rem!important}.pe-xxl-3{padding-left:1rem!important}.pe-xxl-4{padding-left:1.5rem!important}.pe-xxl-5{padding-left: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-right:0!important}.ps-xxl-1{padding-right:.25rem!important}.ps-xxl-2{padding-right:.5rem!important}.ps-xxl-3{padding-right:1rem!important}.ps-xxl-4{padding-right:1.5rem!important}.ps-xxl-5{padding-right:3rem!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-grid.rtl.min.css.map */ \ No newline at end of file diff --git a/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.rtl.min.css.map b/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.rtl.min.css.map new file mode 100644 index 0000000..fbf1d00 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-grid.rtl.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/bootstrap-grid.scss","../../scss/_root.scss","../../scss/_containers.scss","dist/css/bootstrap-grid.rtl.css","../../scss/mixins/_container.scss","../../scss/mixins/_breakpoints.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_utilities.scss","../../scss/utilities/_api.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap Grid v5.1.3 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\n$include-column-box-sizing: true !default;\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/lists\";\n@import \"mixins/breakpoints\";\n@import \"mixins/container\";\n@import \"mixins/grid\";\n@import \"mixins/utilities\";\n\n@import \"vendor/rfs\";\n\n@import \"root\";\n\n@import \"containers\";\n@import \"grid\";\n\n@import \"utilities\";\n// Only use the utilities we need\n// stylelint-disable-next-line scss/dollar-variable-default\n$utilities: map-get-multiple(\n $utilities,\n (\n \"display\",\n \"order\",\n \"flex\",\n \"flex-direction\",\n \"flex-grow\",\n \"flex-shrink\",\n \"flex-wrap\",\n \"justify-content\",\n \"align-items\",\n \"align-content\",\n \"align-self\",\n \"margin\",\n \"margin-x\",\n \"margin-y\",\n \"margin-top\",\n \"margin-end\",\n \"margin-bottom\",\n \"margin-start\",\n \"negative-margin\",\n \"negative-margin-x\",\n \"negative-margin-y\",\n \"negative-margin-top\",\n \"negative-margin-end\",\n \"negative-margin-bottom\",\n \"negative-margin-start\",\n \"padding\",\n \"padding-x\",\n \"padding-y\",\n \"padding-top\",\n \"padding-end\",\n \"padding-bottom\",\n \"padding-start\",\n )\n);\n\n@import \"utilities/api\";\n",":root {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Colors\n //\n // Generate palettes for full colors, grays, and theme colors.\n\n @each $color, $value in $colors {\n --#{$variable-prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $grays {\n --#{$variable-prefix}gray-#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$variable-prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors-rgb {\n --#{$variable-prefix}#{$color}-rgb: #{$value};\n }\n\n --#{$variable-prefix}white-rgb: #{to-rgb($white)};\n --#{$variable-prefix}black-rgb: #{to-rgb($black)};\n --#{$variable-prefix}body-color-rgb: #{to-rgb($body-color)};\n --#{$variable-prefix}body-bg-rgb: #{to-rgb($body-bg)};\n\n // Fonts\n\n // Note: Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --#{$variable-prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$variable-prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$variable-prefix}gradient: #{$gradient};\n\n // Root and body\n // stylelint-disable custom-property-empty-line-before\n // scss-docs-start root-body-variables\n @if $font-size-root != null {\n --#{$variable-prefix}root-font-size: #{$font-size-root};\n }\n --#{$variable-prefix}body-font-family: #{$font-family-base};\n --#{$variable-prefix}body-font-size: #{$font-size-base};\n --#{$variable-prefix}body-font-weight: #{$font-weight-base};\n --#{$variable-prefix}body-line-height: #{$line-height-base};\n --#{$variable-prefix}body-color: #{$body-color};\n @if $body-text-align != null {\n --#{$variable-prefix}body-text-align: #{$body-text-align};\n }\n --#{$variable-prefix}body-bg: #{$body-bg};\n // scss-docs-end root-body-variables\n // stylelint-enable custom-property-empty-line-before\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n @each $name, $width in $grid-breakpoints {\n @if ($extend-breakpoint) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n}\n","/*!\n * Bootstrap Grid v5.1.3 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --bs-blue: #0d6efd;\n --bs-indigo: #6610f2;\n --bs-purple: #6f42c1;\n --bs-pink: #d63384;\n --bs-red: #dc3545;\n --bs-orange: #fd7e14;\n --bs-yellow: #ffc107;\n --bs-green: #198754;\n --bs-teal: #20c997;\n --bs-cyan: #0dcaf0;\n --bs-white: #fff;\n --bs-gray: #6c757d;\n --bs-gray-dark: #343a40;\n --bs-gray-100: #f8f9fa;\n --bs-gray-200: #e9ecef;\n --bs-gray-300: #dee2e6;\n --bs-gray-400: #ced4da;\n --bs-gray-500: #adb5bd;\n --bs-gray-600: #6c757d;\n --bs-gray-700: #495057;\n --bs-gray-800: #343a40;\n --bs-gray-900: #212529;\n --bs-primary: #0d6efd;\n --bs-secondary: #6c757d;\n --bs-success: #198754;\n --bs-info: #0dcaf0;\n --bs-warning: #ffc107;\n --bs-danger: #dc3545;\n --bs-light: #f8f9fa;\n --bs-dark: #212529;\n --bs-primary-rgb: 13, 110, 253;\n --bs-secondary-rgb: 108, 117, 125;\n --bs-success-rgb: 25, 135, 84;\n --bs-info-rgb: 13, 202, 240;\n --bs-warning-rgb: 255, 193, 7;\n --bs-danger-rgb: 220, 53, 69;\n --bs-light-rgb: 248, 249, 250;\n --bs-dark-rgb: 33, 37, 41;\n --bs-white-rgb: 255, 255, 255;\n --bs-black-rgb: 0, 0, 0;\n --bs-body-color-rgb: 33, 37, 41;\n --bs-body-bg-rgb: 255, 255, 255;\n --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\";\n --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));\n --bs-body-font-family: var(--bs-font-sans-serif);\n --bs-body-font-size: 1rem;\n --bs-body-font-weight: 400;\n --bs-body-line-height: 1.5;\n --bs-body-color: #212529;\n --bs-body-bg: #fff;\n}\n\n.container,\n.container-fluid,\n.container-xxl,\n.container-xl,\n.container-lg,\n.container-md,\n.container-sm {\n width: 100%;\n padding-left: var(--bs-gutter-x, 0.75rem);\n padding-right: var(--bs-gutter-x, 0.75rem);\n margin-left: auto;\n margin-right: auto;\n}\n\n@media (min-width: 576px) {\n .container-sm, .container {\n max-width: 540px;\n }\n}\n@media (min-width: 768px) {\n .container-md, .container-sm, .container {\n max-width: 720px;\n }\n}\n@media (min-width: 992px) {\n .container-lg, .container-md, .container-sm, .container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1140px;\n }\n}\n@media (min-width: 1400px) {\n .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1320px;\n }\n}\n.row {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-top: calc(-1 * var(--bs-gutter-y));\n margin-left: calc(-0.5 * var(--bs-gutter-x));\n margin-right: calc(-0.5 * var(--bs-gutter-x));\n}\n.row > * {\n box-sizing: border-box;\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n margin-top: var(--bs-gutter-y);\n}\n\n.col {\n flex: 1 0 0%;\n}\n\n.row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n}\n\n.row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n}\n\n.col-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n}\n\n.col-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-3 {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.col-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.col-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n}\n\n.col-6 {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.col-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n}\n\n.col-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n}\n\n.col-9 {\n flex: 0 0 auto;\n width: 75%;\n}\n\n.col-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n}\n\n.col-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n}\n\n.col-12 {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.offset-1 {\n margin-right: 8.33333333%;\n}\n\n.offset-2 {\n margin-right: 16.66666667%;\n}\n\n.offset-3 {\n margin-right: 25%;\n}\n\n.offset-4 {\n margin-right: 33.33333333%;\n}\n\n.offset-5 {\n margin-right: 41.66666667%;\n}\n\n.offset-6 {\n margin-right: 50%;\n}\n\n.offset-7 {\n margin-right: 58.33333333%;\n}\n\n.offset-8 {\n margin-right: 66.66666667%;\n}\n\n.offset-9 {\n margin-right: 75%;\n}\n\n.offset-10 {\n margin-right: 83.33333333%;\n}\n\n.offset-11 {\n margin-right: 91.66666667%;\n}\n\n.g-0,\n.gx-0 {\n --bs-gutter-x: 0;\n}\n\n.g-0,\n.gy-0 {\n --bs-gutter-y: 0;\n}\n\n.g-1,\n.gx-1 {\n --bs-gutter-x: 0.25rem;\n}\n\n.g-1,\n.gy-1 {\n --bs-gutter-y: 0.25rem;\n}\n\n.g-2,\n.gx-2 {\n --bs-gutter-x: 0.5rem;\n}\n\n.g-2,\n.gy-2 {\n --bs-gutter-y: 0.5rem;\n}\n\n.g-3,\n.gx-3 {\n --bs-gutter-x: 1rem;\n}\n\n.g-3,\n.gy-3 {\n --bs-gutter-y: 1rem;\n}\n\n.g-4,\n.gx-4 {\n --bs-gutter-x: 1.5rem;\n}\n\n.g-4,\n.gy-4 {\n --bs-gutter-y: 1.5rem;\n}\n\n.g-5,\n.gx-5 {\n --bs-gutter-x: 3rem;\n}\n\n.g-5,\n.gy-5 {\n --bs-gutter-y: 3rem;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex: 1 0 0%;\n }\n\n .row-cols-sm-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n\n .row-cols-sm-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .row-cols-sm-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .row-cols-sm-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n .row-cols-sm-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .row-cols-sm-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n\n .row-cols-sm-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n }\n\n .col-sm-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n\n .col-sm-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n\n .col-sm-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .col-sm-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n\n .col-sm-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n\n .col-sm-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .col-sm-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n\n .col-sm-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n\n .col-sm-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n\n .col-sm-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n\n .col-sm-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n\n .col-sm-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .offset-sm-0 {\n margin-right: 0;\n }\n\n .offset-sm-1 {\n margin-right: 8.33333333%;\n }\n\n .offset-sm-2 {\n margin-right: 16.66666667%;\n }\n\n .offset-sm-3 {\n margin-right: 25%;\n }\n\n .offset-sm-4 {\n margin-right: 33.33333333%;\n }\n\n .offset-sm-5 {\n margin-right: 41.66666667%;\n }\n\n .offset-sm-6 {\n margin-right: 50%;\n }\n\n .offset-sm-7 {\n margin-right: 58.33333333%;\n }\n\n .offset-sm-8 {\n margin-right: 66.66666667%;\n }\n\n .offset-sm-9 {\n margin-right: 75%;\n }\n\n .offset-sm-10 {\n margin-right: 83.33333333%;\n }\n\n .offset-sm-11 {\n margin-right: 91.66666667%;\n }\n\n .g-sm-0,\n.gx-sm-0 {\n --bs-gutter-x: 0;\n }\n\n .g-sm-0,\n.gy-sm-0 {\n --bs-gutter-y: 0;\n }\n\n .g-sm-1,\n.gx-sm-1 {\n --bs-gutter-x: 0.25rem;\n }\n\n .g-sm-1,\n.gy-sm-1 {\n --bs-gutter-y: 0.25rem;\n }\n\n .g-sm-2,\n.gx-sm-2 {\n --bs-gutter-x: 0.5rem;\n }\n\n .g-sm-2,\n.gy-sm-2 {\n --bs-gutter-y: 0.5rem;\n }\n\n .g-sm-3,\n.gx-sm-3 {\n --bs-gutter-x: 1rem;\n }\n\n .g-sm-3,\n.gy-sm-3 {\n --bs-gutter-y: 1rem;\n }\n\n .g-sm-4,\n.gx-sm-4 {\n --bs-gutter-x: 1.5rem;\n }\n\n .g-sm-4,\n.gy-sm-4 {\n --bs-gutter-y: 1.5rem;\n }\n\n .g-sm-5,\n.gx-sm-5 {\n --bs-gutter-x: 3rem;\n }\n\n .g-sm-5,\n.gy-sm-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 768px) {\n .col-md {\n flex: 1 0 0%;\n }\n\n .row-cols-md-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n\n .row-cols-md-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .row-cols-md-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .row-cols-md-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n .row-cols-md-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .row-cols-md-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n\n .row-cols-md-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n }\n\n .col-md-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n\n .col-md-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n\n .col-md-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .col-md-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n\n .col-md-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n\n .col-md-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .col-md-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n\n .col-md-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n\n .col-md-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n\n .col-md-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n\n .col-md-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n\n .col-md-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .offset-md-0 {\n margin-right: 0;\n }\n\n .offset-md-1 {\n margin-right: 8.33333333%;\n }\n\n .offset-md-2 {\n margin-right: 16.66666667%;\n }\n\n .offset-md-3 {\n margin-right: 25%;\n }\n\n .offset-md-4 {\n margin-right: 33.33333333%;\n }\n\n .offset-md-5 {\n margin-right: 41.66666667%;\n }\n\n .offset-md-6 {\n margin-right: 50%;\n }\n\n .offset-md-7 {\n margin-right: 58.33333333%;\n }\n\n .offset-md-8 {\n margin-right: 66.66666667%;\n }\n\n .offset-md-9 {\n margin-right: 75%;\n }\n\n .offset-md-10 {\n margin-right: 83.33333333%;\n }\n\n .offset-md-11 {\n margin-right: 91.66666667%;\n }\n\n .g-md-0,\n.gx-md-0 {\n --bs-gutter-x: 0;\n }\n\n .g-md-0,\n.gy-md-0 {\n --bs-gutter-y: 0;\n }\n\n .g-md-1,\n.gx-md-1 {\n --bs-gutter-x: 0.25rem;\n }\n\n .g-md-1,\n.gy-md-1 {\n --bs-gutter-y: 0.25rem;\n }\n\n .g-md-2,\n.gx-md-2 {\n --bs-gutter-x: 0.5rem;\n }\n\n .g-md-2,\n.gy-md-2 {\n --bs-gutter-y: 0.5rem;\n }\n\n .g-md-3,\n.gx-md-3 {\n --bs-gutter-x: 1rem;\n }\n\n .g-md-3,\n.gy-md-3 {\n --bs-gutter-y: 1rem;\n }\n\n .g-md-4,\n.gx-md-4 {\n --bs-gutter-x: 1.5rem;\n }\n\n .g-md-4,\n.gy-md-4 {\n --bs-gutter-y: 1.5rem;\n }\n\n .g-md-5,\n.gx-md-5 {\n --bs-gutter-x: 3rem;\n }\n\n .g-md-5,\n.gy-md-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 992px) {\n .col-lg {\n flex: 1 0 0%;\n }\n\n .row-cols-lg-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n\n .row-cols-lg-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .row-cols-lg-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .row-cols-lg-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n .row-cols-lg-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .row-cols-lg-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n\n .row-cols-lg-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n }\n\n .col-lg-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n\n .col-lg-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n\n .col-lg-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .col-lg-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n\n .col-lg-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n\n .col-lg-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .col-lg-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n\n .col-lg-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n\n .col-lg-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n\n .col-lg-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n\n .col-lg-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n\n .col-lg-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .offset-lg-0 {\n margin-right: 0;\n }\n\n .offset-lg-1 {\n margin-right: 8.33333333%;\n }\n\n .offset-lg-2 {\n margin-right: 16.66666667%;\n }\n\n .offset-lg-3 {\n margin-right: 25%;\n }\n\n .offset-lg-4 {\n margin-right: 33.33333333%;\n }\n\n .offset-lg-5 {\n margin-right: 41.66666667%;\n }\n\n .offset-lg-6 {\n margin-right: 50%;\n }\n\n .offset-lg-7 {\n margin-right: 58.33333333%;\n }\n\n .offset-lg-8 {\n margin-right: 66.66666667%;\n }\n\n .offset-lg-9 {\n margin-right: 75%;\n }\n\n .offset-lg-10 {\n margin-right: 83.33333333%;\n }\n\n .offset-lg-11 {\n margin-right: 91.66666667%;\n }\n\n .g-lg-0,\n.gx-lg-0 {\n --bs-gutter-x: 0;\n }\n\n .g-lg-0,\n.gy-lg-0 {\n --bs-gutter-y: 0;\n }\n\n .g-lg-1,\n.gx-lg-1 {\n --bs-gutter-x: 0.25rem;\n }\n\n .g-lg-1,\n.gy-lg-1 {\n --bs-gutter-y: 0.25rem;\n }\n\n .g-lg-2,\n.gx-lg-2 {\n --bs-gutter-x: 0.5rem;\n }\n\n .g-lg-2,\n.gy-lg-2 {\n --bs-gutter-y: 0.5rem;\n }\n\n .g-lg-3,\n.gx-lg-3 {\n --bs-gutter-x: 1rem;\n }\n\n .g-lg-3,\n.gy-lg-3 {\n --bs-gutter-y: 1rem;\n }\n\n .g-lg-4,\n.gx-lg-4 {\n --bs-gutter-x: 1.5rem;\n }\n\n .g-lg-4,\n.gy-lg-4 {\n --bs-gutter-y: 1.5rem;\n }\n\n .g-lg-5,\n.gx-lg-5 {\n --bs-gutter-x: 3rem;\n }\n\n .g-lg-5,\n.gy-lg-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1200px) {\n .col-xl {\n flex: 1 0 0%;\n }\n\n .row-cols-xl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n\n .row-cols-xl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .row-cols-xl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .row-cols-xl-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n .row-cols-xl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .row-cols-xl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n\n .row-cols-xl-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n\n .col-xl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n\n .col-xl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n\n .col-xl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .col-xl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n\n .col-xl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n\n .col-xl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .col-xl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n\n .col-xl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n\n .col-xl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n\n .col-xl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n\n .col-xl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n\n .col-xl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .offset-xl-0 {\n margin-right: 0;\n }\n\n .offset-xl-1 {\n margin-right: 8.33333333%;\n }\n\n .offset-xl-2 {\n margin-right: 16.66666667%;\n }\n\n .offset-xl-3 {\n margin-right: 25%;\n }\n\n .offset-xl-4 {\n margin-right: 33.33333333%;\n }\n\n .offset-xl-5 {\n margin-right: 41.66666667%;\n }\n\n .offset-xl-6 {\n margin-right: 50%;\n }\n\n .offset-xl-7 {\n margin-right: 58.33333333%;\n }\n\n .offset-xl-8 {\n margin-right: 66.66666667%;\n }\n\n .offset-xl-9 {\n margin-right: 75%;\n }\n\n .offset-xl-10 {\n margin-right: 83.33333333%;\n }\n\n .offset-xl-11 {\n margin-right: 91.66666667%;\n }\n\n .g-xl-0,\n.gx-xl-0 {\n --bs-gutter-x: 0;\n }\n\n .g-xl-0,\n.gy-xl-0 {\n --bs-gutter-y: 0;\n }\n\n .g-xl-1,\n.gx-xl-1 {\n --bs-gutter-x: 0.25rem;\n }\n\n .g-xl-1,\n.gy-xl-1 {\n --bs-gutter-y: 0.25rem;\n }\n\n .g-xl-2,\n.gx-xl-2 {\n --bs-gutter-x: 0.5rem;\n }\n\n .g-xl-2,\n.gy-xl-2 {\n --bs-gutter-y: 0.5rem;\n }\n\n .g-xl-3,\n.gx-xl-3 {\n --bs-gutter-x: 1rem;\n }\n\n .g-xl-3,\n.gy-xl-3 {\n --bs-gutter-y: 1rem;\n }\n\n .g-xl-4,\n.gx-xl-4 {\n --bs-gutter-x: 1.5rem;\n }\n\n .g-xl-4,\n.gy-xl-4 {\n --bs-gutter-y: 1.5rem;\n }\n\n .g-xl-5,\n.gx-xl-5 {\n --bs-gutter-x: 3rem;\n }\n\n .g-xl-5,\n.gy-xl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1400px) {\n .col-xxl {\n flex: 1 0 0%;\n }\n\n .row-cols-xxl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n\n .row-cols-xxl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .row-cols-xxl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .row-cols-xxl-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n .row-cols-xxl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .row-cols-xxl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n\n .row-cols-xxl-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n .col-xxl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n\n .col-xxl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n\n .col-xxl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n\n .col-xxl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n\n .col-xxl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n\n .col-xxl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n\n .col-xxl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n\n .col-xxl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n\n .col-xxl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n\n .col-xxl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n\n .col-xxl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n\n .col-xxl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n\n .col-xxl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n\n .offset-xxl-0 {\n margin-right: 0;\n }\n\n .offset-xxl-1 {\n margin-right: 8.33333333%;\n }\n\n .offset-xxl-2 {\n margin-right: 16.66666667%;\n }\n\n .offset-xxl-3 {\n margin-right: 25%;\n }\n\n .offset-xxl-4 {\n margin-right: 33.33333333%;\n }\n\n .offset-xxl-5 {\n margin-right: 41.66666667%;\n }\n\n .offset-xxl-6 {\n margin-right: 50%;\n }\n\n .offset-xxl-7 {\n margin-right: 58.33333333%;\n }\n\n .offset-xxl-8 {\n margin-right: 66.66666667%;\n }\n\n .offset-xxl-9 {\n margin-right: 75%;\n }\n\n .offset-xxl-10 {\n margin-right: 83.33333333%;\n }\n\n .offset-xxl-11 {\n margin-right: 91.66666667%;\n }\n\n .g-xxl-0,\n.gx-xxl-0 {\n --bs-gutter-x: 0;\n }\n\n .g-xxl-0,\n.gy-xxl-0 {\n --bs-gutter-y: 0;\n }\n\n .g-xxl-1,\n.gx-xxl-1 {\n --bs-gutter-x: 0.25rem;\n }\n\n .g-xxl-1,\n.gy-xxl-1 {\n --bs-gutter-y: 0.25rem;\n }\n\n .g-xxl-2,\n.gx-xxl-2 {\n --bs-gutter-x: 0.5rem;\n }\n\n .g-xxl-2,\n.gy-xxl-2 {\n --bs-gutter-y: 0.5rem;\n }\n\n .g-xxl-3,\n.gx-xxl-3 {\n --bs-gutter-x: 1rem;\n }\n\n .g-xxl-3,\n.gy-xxl-3 {\n --bs-gutter-y: 1rem;\n }\n\n .g-xxl-4,\n.gx-xxl-4 {\n --bs-gutter-x: 1.5rem;\n }\n\n .g-xxl-4,\n.gy-xxl-4 {\n --bs-gutter-y: 1.5rem;\n }\n\n .g-xxl-5,\n.gx-xxl-5 {\n --bs-gutter-x: 3rem;\n }\n\n .g-xxl-5,\n.gy-xxl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-grid {\n display: grid !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.justify-content-evenly {\n justify-content: space-evenly !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n.order-first {\n order: -1 !important;\n}\n\n.order-0 {\n order: 0 !important;\n}\n\n.order-1 {\n order: 1 !important;\n}\n\n.order-2 {\n order: 2 !important;\n}\n\n.order-3 {\n order: 3 !important;\n}\n\n.order-4 {\n order: 4 !important;\n}\n\n.order-5 {\n order: 5 !important;\n}\n\n.order-last {\n order: 6 !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mx-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n.mx-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n}\n\n.mx-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n}\n\n.mx-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n}\n\n.mx-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n}\n\n.mx-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n}\n\n.mx-auto {\n margin-left: auto !important;\n margin-right: auto !important;\n}\n\n.my-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n}\n\n.my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n}\n\n.my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n}\n\n.my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n}\n\n.my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n}\n\n.my-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n}\n\n.my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n}\n\n.mt-0 {\n margin-top: 0 !important;\n}\n\n.mt-1 {\n margin-top: 0.25rem !important;\n}\n\n.mt-2 {\n margin-top: 0.5rem !important;\n}\n\n.mt-3 {\n margin-top: 1rem !important;\n}\n\n.mt-4 {\n margin-top: 1.5rem !important;\n}\n\n.mt-5 {\n margin-top: 3rem !important;\n}\n\n.mt-auto {\n margin-top: auto !important;\n}\n\n.me-0 {\n margin-left: 0 !important;\n}\n\n.me-1 {\n margin-left: 0.25rem !important;\n}\n\n.me-2 {\n margin-left: 0.5rem !important;\n}\n\n.me-3 {\n margin-left: 1rem !important;\n}\n\n.me-4 {\n margin-left: 1.5rem !important;\n}\n\n.me-5 {\n margin-left: 3rem !important;\n}\n\n.me-auto {\n margin-left: auto !important;\n}\n\n.mb-0 {\n margin-bottom: 0 !important;\n}\n\n.mb-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.mb-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.mb-3 {\n margin-bottom: 1rem !important;\n}\n\n.mb-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.mb-5 {\n margin-bottom: 3rem !important;\n}\n\n.mb-auto {\n margin-bottom: auto !important;\n}\n\n.ms-0 {\n margin-right: 0 !important;\n}\n\n.ms-1 {\n margin-right: 0.25rem !important;\n}\n\n.ms-2 {\n margin-right: 0.5rem !important;\n}\n\n.ms-3 {\n margin-right: 1rem !important;\n}\n\n.ms-4 {\n margin-right: 1.5rem !important;\n}\n\n.ms-5 {\n margin-right: 3rem !important;\n}\n\n.ms-auto {\n margin-right: auto !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.px-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n}\n\n.px-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n}\n\n.px-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n}\n\n.px-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n}\n\n.px-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n}\n\n.px-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n}\n\n.py-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n}\n\n.py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n}\n\n.py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n}\n\n.py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n}\n\n.py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n}\n\n.py-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n}\n\n.pt-0 {\n padding-top: 0 !important;\n}\n\n.pt-1 {\n padding-top: 0.25rem !important;\n}\n\n.pt-2 {\n padding-top: 0.5rem !important;\n}\n\n.pt-3 {\n padding-top: 1rem !important;\n}\n\n.pt-4 {\n padding-top: 1.5rem !important;\n}\n\n.pt-5 {\n padding-top: 3rem !important;\n}\n\n.pe-0 {\n padding-left: 0 !important;\n}\n\n.pe-1 {\n padding-left: 0.25rem !important;\n}\n\n.pe-2 {\n padding-left: 0.5rem !important;\n}\n\n.pe-3 {\n padding-left: 1rem !important;\n}\n\n.pe-4 {\n padding-left: 1.5rem !important;\n}\n\n.pe-5 {\n padding-left: 3rem !important;\n}\n\n.pb-0 {\n padding-bottom: 0 !important;\n}\n\n.pb-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pb-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pb-3 {\n padding-bottom: 1rem !important;\n}\n\n.pb-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pb-5 {\n padding-bottom: 3rem !important;\n}\n\n.ps-0 {\n padding-right: 0 !important;\n}\n\n.ps-1 {\n padding-right: 0.25rem !important;\n}\n\n.ps-2 {\n padding-right: 0.5rem !important;\n}\n\n.ps-3 {\n padding-right: 1rem !important;\n}\n\n.ps-4 {\n padding-right: 1.5rem !important;\n}\n\n.ps-5 {\n padding-right: 3rem !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-inline {\n display: inline !important;\n }\n\n .d-sm-inline-block {\n display: inline-block !important;\n }\n\n .d-sm-block {\n display: block !important;\n }\n\n .d-sm-grid {\n display: grid !important;\n }\n\n .d-sm-table {\n display: table !important;\n }\n\n .d-sm-table-row {\n display: table-row !important;\n }\n\n .d-sm-table-cell {\n display: table-cell !important;\n }\n\n .d-sm-flex {\n display: flex !important;\n }\n\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n\n .d-sm-none {\n display: none !important;\n }\n\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-sm-row {\n flex-direction: row !important;\n }\n\n .flex-sm-column {\n flex-direction: column !important;\n }\n\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-sm-center {\n justify-content: center !important;\n }\n\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n\n .justify-content-sm-evenly {\n justify-content: space-evenly !important;\n }\n\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n\n .align-items-sm-center {\n align-items: center !important;\n }\n\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n\n .align-content-sm-center {\n align-content: center !important;\n }\n\n .align-content-sm-between {\n align-content: space-between !important;\n }\n\n .align-content-sm-around {\n align-content: space-around !important;\n }\n\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n\n .align-self-sm-auto {\n align-self: auto !important;\n }\n\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n\n .align-self-sm-center {\n align-self: center !important;\n }\n\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n\n .order-sm-first {\n order: -1 !important;\n }\n\n .order-sm-0 {\n order: 0 !important;\n }\n\n .order-sm-1 {\n order: 1 !important;\n }\n\n .order-sm-2 {\n order: 2 !important;\n }\n\n .order-sm-3 {\n order: 3 !important;\n }\n\n .order-sm-4 {\n order: 4 !important;\n }\n\n .order-sm-5 {\n order: 5 !important;\n }\n\n .order-sm-last {\n order: 6 !important;\n }\n\n .m-sm-0 {\n margin: 0 !important;\n }\n\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n\n .m-sm-3 {\n margin: 1rem !important;\n }\n\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n\n .m-sm-5 {\n margin: 3rem !important;\n }\n\n .m-sm-auto {\n margin: auto !important;\n }\n\n .mx-sm-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n\n .mx-sm-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n\n .mx-sm-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n\n .mx-sm-auto {\n margin-left: auto !important;\n margin-right: auto !important;\n }\n\n .my-sm-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n\n .my-sm-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n\n .my-sm-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n\n .my-sm-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n\n .my-sm-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n\n .my-sm-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n\n .my-sm-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n\n .mt-sm-0 {\n margin-top: 0 !important;\n }\n\n .mt-sm-1 {\n margin-top: 0.25rem !important;\n }\n\n .mt-sm-2 {\n margin-top: 0.5rem !important;\n }\n\n .mt-sm-3 {\n margin-top: 1rem !important;\n }\n\n .mt-sm-4 {\n margin-top: 1.5rem !important;\n }\n\n .mt-sm-5 {\n margin-top: 3rem !important;\n }\n\n .mt-sm-auto {\n margin-top: auto !important;\n }\n\n .me-sm-0 {\n margin-left: 0 !important;\n }\n\n .me-sm-1 {\n margin-left: 0.25rem !important;\n }\n\n .me-sm-2 {\n margin-left: 0.5rem !important;\n }\n\n .me-sm-3 {\n margin-left: 1rem !important;\n }\n\n .me-sm-4 {\n margin-left: 1.5rem !important;\n }\n\n .me-sm-5 {\n margin-left: 3rem !important;\n }\n\n .me-sm-auto {\n margin-left: auto !important;\n }\n\n .mb-sm-0 {\n margin-bottom: 0 !important;\n }\n\n .mb-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .mb-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .mb-sm-3 {\n margin-bottom: 1rem !important;\n }\n\n .mb-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .mb-sm-5 {\n margin-bottom: 3rem !important;\n }\n\n .mb-sm-auto {\n margin-bottom: auto !important;\n }\n\n .ms-sm-0 {\n margin-right: 0 !important;\n }\n\n .ms-sm-1 {\n margin-right: 0.25rem !important;\n }\n\n .ms-sm-2 {\n margin-right: 0.5rem !important;\n }\n\n .ms-sm-3 {\n margin-right: 1rem !important;\n }\n\n .ms-sm-4 {\n margin-right: 1.5rem !important;\n }\n\n .ms-sm-5 {\n margin-right: 3rem !important;\n }\n\n .ms-sm-auto {\n margin-right: auto !important;\n }\n\n .p-sm-0 {\n padding: 0 !important;\n }\n\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n\n .p-sm-3 {\n padding: 1rem !important;\n }\n\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n\n .p-sm-5 {\n padding: 3rem !important;\n }\n\n .px-sm-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n\n .px-sm-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n\n .px-sm-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n\n .px-sm-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n\n .px-sm-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n\n .px-sm-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n\n .py-sm-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n\n .py-sm-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n\n .py-sm-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n\n .py-sm-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n\n .py-sm-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n\n .py-sm-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pt-sm-0 {\n padding-top: 0 !important;\n }\n\n .pt-sm-1 {\n padding-top: 0.25rem !important;\n }\n\n .pt-sm-2 {\n padding-top: 0.5rem !important;\n }\n\n .pt-sm-3 {\n padding-top: 1rem !important;\n }\n\n .pt-sm-4 {\n padding-top: 1.5rem !important;\n }\n\n .pt-sm-5 {\n padding-top: 3rem !important;\n }\n\n .pe-sm-0 {\n padding-left: 0 !important;\n }\n\n .pe-sm-1 {\n padding-left: 0.25rem !important;\n }\n\n .pe-sm-2 {\n padding-left: 0.5rem !important;\n }\n\n .pe-sm-3 {\n padding-left: 1rem !important;\n }\n\n .pe-sm-4 {\n padding-left: 1.5rem !important;\n }\n\n .pe-sm-5 {\n padding-left: 3rem !important;\n }\n\n .pb-sm-0 {\n padding-bottom: 0 !important;\n }\n\n .pb-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pb-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pb-sm-3 {\n padding-bottom: 1rem !important;\n }\n\n .pb-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pb-sm-5 {\n padding-bottom: 3rem !important;\n }\n\n .ps-sm-0 {\n padding-right: 0 !important;\n }\n\n .ps-sm-1 {\n padding-right: 0.25rem !important;\n }\n\n .ps-sm-2 {\n padding-right: 0.5rem !important;\n }\n\n .ps-sm-3 {\n padding-right: 1rem !important;\n }\n\n .ps-sm-4 {\n padding-right: 1.5rem !important;\n }\n\n .ps-sm-5 {\n padding-right: 3rem !important;\n }\n}\n@media (min-width: 768px) {\n .d-md-inline {\n display: inline !important;\n }\n\n .d-md-inline-block {\n display: inline-block !important;\n }\n\n .d-md-block {\n display: block !important;\n }\n\n .d-md-grid {\n display: grid !important;\n }\n\n .d-md-table {\n display: table !important;\n }\n\n .d-md-table-row {\n display: table-row !important;\n }\n\n .d-md-table-cell {\n display: table-cell !important;\n }\n\n .d-md-flex {\n display: flex !important;\n }\n\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n\n .d-md-none {\n display: none !important;\n }\n\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-md-row {\n flex-direction: row !important;\n }\n\n .flex-md-column {\n flex-direction: column !important;\n }\n\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-md-center {\n justify-content: center !important;\n }\n\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n\n .justify-content-md-evenly {\n justify-content: space-evenly !important;\n }\n\n .align-items-md-start {\n align-items: flex-start !important;\n }\n\n .align-items-md-end {\n align-items: flex-end !important;\n }\n\n .align-items-md-center {\n align-items: center !important;\n }\n\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n\n .align-content-md-start {\n align-content: flex-start !important;\n }\n\n .align-content-md-end {\n align-content: flex-end !important;\n }\n\n .align-content-md-center {\n align-content: center !important;\n }\n\n .align-content-md-between {\n align-content: space-between !important;\n }\n\n .align-content-md-around {\n align-content: space-around !important;\n }\n\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n\n .align-self-md-auto {\n align-self: auto !important;\n }\n\n .align-self-md-start {\n align-self: flex-start !important;\n }\n\n .align-self-md-end {\n align-self: flex-end !important;\n }\n\n .align-self-md-center {\n align-self: center !important;\n }\n\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n\n .order-md-first {\n order: -1 !important;\n }\n\n .order-md-0 {\n order: 0 !important;\n }\n\n .order-md-1 {\n order: 1 !important;\n }\n\n .order-md-2 {\n order: 2 !important;\n }\n\n .order-md-3 {\n order: 3 !important;\n }\n\n .order-md-4 {\n order: 4 !important;\n }\n\n .order-md-5 {\n order: 5 !important;\n }\n\n .order-md-last {\n order: 6 !important;\n }\n\n .m-md-0 {\n margin: 0 !important;\n }\n\n .m-md-1 {\n margin: 0.25rem !important;\n }\n\n .m-md-2 {\n margin: 0.5rem !important;\n }\n\n .m-md-3 {\n margin: 1rem !important;\n }\n\n .m-md-4 {\n margin: 1.5rem !important;\n }\n\n .m-md-5 {\n margin: 3rem !important;\n }\n\n .m-md-auto {\n margin: auto !important;\n }\n\n .mx-md-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n\n .mx-md-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n\n .mx-md-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n\n .mx-md-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n\n .mx-md-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n\n .mx-md-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n\n .mx-md-auto {\n margin-left: auto !important;\n margin-right: auto !important;\n }\n\n .my-md-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n\n .my-md-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n\n .my-md-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n\n .my-md-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n\n .my-md-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n\n .my-md-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n\n .my-md-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n\n .mt-md-0 {\n margin-top: 0 !important;\n }\n\n .mt-md-1 {\n margin-top: 0.25rem !important;\n }\n\n .mt-md-2 {\n margin-top: 0.5rem !important;\n }\n\n .mt-md-3 {\n margin-top: 1rem !important;\n }\n\n .mt-md-4 {\n margin-top: 1.5rem !important;\n }\n\n .mt-md-5 {\n margin-top: 3rem !important;\n }\n\n .mt-md-auto {\n margin-top: auto !important;\n }\n\n .me-md-0 {\n margin-left: 0 !important;\n }\n\n .me-md-1 {\n margin-left: 0.25rem !important;\n }\n\n .me-md-2 {\n margin-left: 0.5rem !important;\n }\n\n .me-md-3 {\n margin-left: 1rem !important;\n }\n\n .me-md-4 {\n margin-left: 1.5rem !important;\n }\n\n .me-md-5 {\n margin-left: 3rem !important;\n }\n\n .me-md-auto {\n margin-left: auto !important;\n }\n\n .mb-md-0 {\n margin-bottom: 0 !important;\n }\n\n .mb-md-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .mb-md-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .mb-md-3 {\n margin-bottom: 1rem !important;\n }\n\n .mb-md-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .mb-md-5 {\n margin-bottom: 3rem !important;\n }\n\n .mb-md-auto {\n margin-bottom: auto !important;\n }\n\n .ms-md-0 {\n margin-right: 0 !important;\n }\n\n .ms-md-1 {\n margin-right: 0.25rem !important;\n }\n\n .ms-md-2 {\n margin-right: 0.5rem !important;\n }\n\n .ms-md-3 {\n margin-right: 1rem !important;\n }\n\n .ms-md-4 {\n margin-right: 1.5rem !important;\n }\n\n .ms-md-5 {\n margin-right: 3rem !important;\n }\n\n .ms-md-auto {\n margin-right: auto !important;\n }\n\n .p-md-0 {\n padding: 0 !important;\n }\n\n .p-md-1 {\n padding: 0.25rem !important;\n }\n\n .p-md-2 {\n padding: 0.5rem !important;\n }\n\n .p-md-3 {\n padding: 1rem !important;\n }\n\n .p-md-4 {\n padding: 1.5rem !important;\n }\n\n .p-md-5 {\n padding: 3rem !important;\n }\n\n .px-md-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n\n .px-md-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n\n .px-md-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n\n .px-md-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n\n .px-md-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n\n .px-md-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n\n .py-md-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n\n .py-md-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n\n .py-md-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n\n .py-md-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n\n .py-md-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n\n .py-md-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pt-md-0 {\n padding-top: 0 !important;\n }\n\n .pt-md-1 {\n padding-top: 0.25rem !important;\n }\n\n .pt-md-2 {\n padding-top: 0.5rem !important;\n }\n\n .pt-md-3 {\n padding-top: 1rem !important;\n }\n\n .pt-md-4 {\n padding-top: 1.5rem !important;\n }\n\n .pt-md-5 {\n padding-top: 3rem !important;\n }\n\n .pe-md-0 {\n padding-left: 0 !important;\n }\n\n .pe-md-1 {\n padding-left: 0.25rem !important;\n }\n\n .pe-md-2 {\n padding-left: 0.5rem !important;\n }\n\n .pe-md-3 {\n padding-left: 1rem !important;\n }\n\n .pe-md-4 {\n padding-left: 1.5rem !important;\n }\n\n .pe-md-5 {\n padding-left: 3rem !important;\n }\n\n .pb-md-0 {\n padding-bottom: 0 !important;\n }\n\n .pb-md-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pb-md-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pb-md-3 {\n padding-bottom: 1rem !important;\n }\n\n .pb-md-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pb-md-5 {\n padding-bottom: 3rem !important;\n }\n\n .ps-md-0 {\n padding-right: 0 !important;\n }\n\n .ps-md-1 {\n padding-right: 0.25rem !important;\n }\n\n .ps-md-2 {\n padding-right: 0.5rem !important;\n }\n\n .ps-md-3 {\n padding-right: 1rem !important;\n }\n\n .ps-md-4 {\n padding-right: 1.5rem !important;\n }\n\n .ps-md-5 {\n padding-right: 3rem !important;\n }\n}\n@media (min-width: 992px) {\n .d-lg-inline {\n display: inline !important;\n }\n\n .d-lg-inline-block {\n display: inline-block !important;\n }\n\n .d-lg-block {\n display: block !important;\n }\n\n .d-lg-grid {\n display: grid !important;\n }\n\n .d-lg-table {\n display: table !important;\n }\n\n .d-lg-table-row {\n display: table-row !important;\n }\n\n .d-lg-table-cell {\n display: table-cell !important;\n }\n\n .d-lg-flex {\n display: flex !important;\n }\n\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n\n .d-lg-none {\n display: none !important;\n }\n\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-lg-row {\n flex-direction: row !important;\n }\n\n .flex-lg-column {\n flex-direction: column !important;\n }\n\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-lg-center {\n justify-content: center !important;\n }\n\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n\n .justify-content-lg-evenly {\n justify-content: space-evenly !important;\n }\n\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n\n .align-items-lg-center {\n align-items: center !important;\n }\n\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n\n .align-content-lg-center {\n align-content: center !important;\n }\n\n .align-content-lg-between {\n align-content: space-between !important;\n }\n\n .align-content-lg-around {\n align-content: space-around !important;\n }\n\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n\n .align-self-lg-auto {\n align-self: auto !important;\n }\n\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n\n .align-self-lg-center {\n align-self: center !important;\n }\n\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n\n .order-lg-first {\n order: -1 !important;\n }\n\n .order-lg-0 {\n order: 0 !important;\n }\n\n .order-lg-1 {\n order: 1 !important;\n }\n\n .order-lg-2 {\n order: 2 !important;\n }\n\n .order-lg-3 {\n order: 3 !important;\n }\n\n .order-lg-4 {\n order: 4 !important;\n }\n\n .order-lg-5 {\n order: 5 !important;\n }\n\n .order-lg-last {\n order: 6 !important;\n }\n\n .m-lg-0 {\n margin: 0 !important;\n }\n\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n\n .m-lg-3 {\n margin: 1rem !important;\n }\n\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n\n .m-lg-5 {\n margin: 3rem !important;\n }\n\n .m-lg-auto {\n margin: auto !important;\n }\n\n .mx-lg-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n\n .mx-lg-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n\n .mx-lg-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n\n .mx-lg-auto {\n margin-left: auto !important;\n margin-right: auto !important;\n }\n\n .my-lg-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n\n .my-lg-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n\n .my-lg-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n\n .my-lg-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n\n .my-lg-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n\n .my-lg-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n\n .my-lg-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n\n .mt-lg-0 {\n margin-top: 0 !important;\n }\n\n .mt-lg-1 {\n margin-top: 0.25rem !important;\n }\n\n .mt-lg-2 {\n margin-top: 0.5rem !important;\n }\n\n .mt-lg-3 {\n margin-top: 1rem !important;\n }\n\n .mt-lg-4 {\n margin-top: 1.5rem !important;\n }\n\n .mt-lg-5 {\n margin-top: 3rem !important;\n }\n\n .mt-lg-auto {\n margin-top: auto !important;\n }\n\n .me-lg-0 {\n margin-left: 0 !important;\n }\n\n .me-lg-1 {\n margin-left: 0.25rem !important;\n }\n\n .me-lg-2 {\n margin-left: 0.5rem !important;\n }\n\n .me-lg-3 {\n margin-left: 1rem !important;\n }\n\n .me-lg-4 {\n margin-left: 1.5rem !important;\n }\n\n .me-lg-5 {\n margin-left: 3rem !important;\n }\n\n .me-lg-auto {\n margin-left: auto !important;\n }\n\n .mb-lg-0 {\n margin-bottom: 0 !important;\n }\n\n .mb-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .mb-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .mb-lg-3 {\n margin-bottom: 1rem !important;\n }\n\n .mb-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .mb-lg-5 {\n margin-bottom: 3rem !important;\n }\n\n .mb-lg-auto {\n margin-bottom: auto !important;\n }\n\n .ms-lg-0 {\n margin-right: 0 !important;\n }\n\n .ms-lg-1 {\n margin-right: 0.25rem !important;\n }\n\n .ms-lg-2 {\n margin-right: 0.5rem !important;\n }\n\n .ms-lg-3 {\n margin-right: 1rem !important;\n }\n\n .ms-lg-4 {\n margin-right: 1.5rem !important;\n }\n\n .ms-lg-5 {\n margin-right: 3rem !important;\n }\n\n .ms-lg-auto {\n margin-right: auto !important;\n }\n\n .p-lg-0 {\n padding: 0 !important;\n }\n\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n\n .p-lg-3 {\n padding: 1rem !important;\n }\n\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n\n .p-lg-5 {\n padding: 3rem !important;\n }\n\n .px-lg-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n\n .px-lg-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n\n .px-lg-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n\n .px-lg-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n\n .px-lg-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n\n .px-lg-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n\n .py-lg-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n\n .py-lg-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n\n .py-lg-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n\n .py-lg-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n\n .py-lg-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n\n .py-lg-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pt-lg-0 {\n padding-top: 0 !important;\n }\n\n .pt-lg-1 {\n padding-top: 0.25rem !important;\n }\n\n .pt-lg-2 {\n padding-top: 0.5rem !important;\n }\n\n .pt-lg-3 {\n padding-top: 1rem !important;\n }\n\n .pt-lg-4 {\n padding-top: 1.5rem !important;\n }\n\n .pt-lg-5 {\n padding-top: 3rem !important;\n }\n\n .pe-lg-0 {\n padding-left: 0 !important;\n }\n\n .pe-lg-1 {\n padding-left: 0.25rem !important;\n }\n\n .pe-lg-2 {\n padding-left: 0.5rem !important;\n }\n\n .pe-lg-3 {\n padding-left: 1rem !important;\n }\n\n .pe-lg-4 {\n padding-left: 1.5rem !important;\n }\n\n .pe-lg-5 {\n padding-left: 3rem !important;\n }\n\n .pb-lg-0 {\n padding-bottom: 0 !important;\n }\n\n .pb-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pb-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pb-lg-3 {\n padding-bottom: 1rem !important;\n }\n\n .pb-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pb-lg-5 {\n padding-bottom: 3rem !important;\n }\n\n .ps-lg-0 {\n padding-right: 0 !important;\n }\n\n .ps-lg-1 {\n padding-right: 0.25rem !important;\n }\n\n .ps-lg-2 {\n padding-right: 0.5rem !important;\n }\n\n .ps-lg-3 {\n padding-right: 1rem !important;\n }\n\n .ps-lg-4 {\n padding-right: 1.5rem !important;\n }\n\n .ps-lg-5 {\n padding-right: 3rem !important;\n }\n}\n@media (min-width: 1200px) {\n .d-xl-inline {\n display: inline !important;\n }\n\n .d-xl-inline-block {\n display: inline-block !important;\n }\n\n .d-xl-block {\n display: block !important;\n }\n\n .d-xl-grid {\n display: grid !important;\n }\n\n .d-xl-table {\n display: table !important;\n }\n\n .d-xl-table-row {\n display: table-row !important;\n }\n\n .d-xl-table-cell {\n display: table-cell !important;\n }\n\n .d-xl-flex {\n display: flex !important;\n }\n\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n\n .d-xl-none {\n display: none !important;\n }\n\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-xl-row {\n flex-direction: row !important;\n }\n\n .flex-xl-column {\n flex-direction: column !important;\n }\n\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-xl-center {\n justify-content: center !important;\n }\n\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n\n .justify-content-xl-evenly {\n justify-content: space-evenly !important;\n }\n\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n\n .align-items-xl-center {\n align-items: center !important;\n }\n\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n\n .align-content-xl-center {\n align-content: center !important;\n }\n\n .align-content-xl-between {\n align-content: space-between !important;\n }\n\n .align-content-xl-around {\n align-content: space-around !important;\n }\n\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n\n .align-self-xl-auto {\n align-self: auto !important;\n }\n\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n\n .align-self-xl-center {\n align-self: center !important;\n }\n\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n\n .order-xl-first {\n order: -1 !important;\n }\n\n .order-xl-0 {\n order: 0 !important;\n }\n\n .order-xl-1 {\n order: 1 !important;\n }\n\n .order-xl-2 {\n order: 2 !important;\n }\n\n .order-xl-3 {\n order: 3 !important;\n }\n\n .order-xl-4 {\n order: 4 !important;\n }\n\n .order-xl-5 {\n order: 5 !important;\n }\n\n .order-xl-last {\n order: 6 !important;\n }\n\n .m-xl-0 {\n margin: 0 !important;\n }\n\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n\n .m-xl-3 {\n margin: 1rem !important;\n }\n\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n\n .m-xl-5 {\n margin: 3rem !important;\n }\n\n .m-xl-auto {\n margin: auto !important;\n }\n\n .mx-xl-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n\n .mx-xl-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n\n .mx-xl-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n\n .mx-xl-auto {\n margin-left: auto !important;\n margin-right: auto !important;\n }\n\n .my-xl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n\n .my-xl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n\n .my-xl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n\n .my-xl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n\n .my-xl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n\n .my-xl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n\n .my-xl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n\n .mt-xl-0 {\n margin-top: 0 !important;\n }\n\n .mt-xl-1 {\n margin-top: 0.25rem !important;\n }\n\n .mt-xl-2 {\n margin-top: 0.5rem !important;\n }\n\n .mt-xl-3 {\n margin-top: 1rem !important;\n }\n\n .mt-xl-4 {\n margin-top: 1.5rem !important;\n }\n\n .mt-xl-5 {\n margin-top: 3rem !important;\n }\n\n .mt-xl-auto {\n margin-top: auto !important;\n }\n\n .me-xl-0 {\n margin-left: 0 !important;\n }\n\n .me-xl-1 {\n margin-left: 0.25rem !important;\n }\n\n .me-xl-2 {\n margin-left: 0.5rem !important;\n }\n\n .me-xl-3 {\n margin-left: 1rem !important;\n }\n\n .me-xl-4 {\n margin-left: 1.5rem !important;\n }\n\n .me-xl-5 {\n margin-left: 3rem !important;\n }\n\n .me-xl-auto {\n margin-left: auto !important;\n }\n\n .mb-xl-0 {\n margin-bottom: 0 !important;\n }\n\n .mb-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .mb-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .mb-xl-3 {\n margin-bottom: 1rem !important;\n }\n\n .mb-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .mb-xl-5 {\n margin-bottom: 3rem !important;\n }\n\n .mb-xl-auto {\n margin-bottom: auto !important;\n }\n\n .ms-xl-0 {\n margin-right: 0 !important;\n }\n\n .ms-xl-1 {\n margin-right: 0.25rem !important;\n }\n\n .ms-xl-2 {\n margin-right: 0.5rem !important;\n }\n\n .ms-xl-3 {\n margin-right: 1rem !important;\n }\n\n .ms-xl-4 {\n margin-right: 1.5rem !important;\n }\n\n .ms-xl-5 {\n margin-right: 3rem !important;\n }\n\n .ms-xl-auto {\n margin-right: auto !important;\n }\n\n .p-xl-0 {\n padding: 0 !important;\n }\n\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n\n .p-xl-3 {\n padding: 1rem !important;\n }\n\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n\n .p-xl-5 {\n padding: 3rem !important;\n }\n\n .px-xl-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n\n .px-xl-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n\n .px-xl-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n\n .px-xl-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n\n .px-xl-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n\n .px-xl-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n\n .py-xl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n\n .py-xl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n\n .py-xl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n\n .py-xl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n\n .py-xl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n\n .py-xl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pt-xl-0 {\n padding-top: 0 !important;\n }\n\n .pt-xl-1 {\n padding-top: 0.25rem !important;\n }\n\n .pt-xl-2 {\n padding-top: 0.5rem !important;\n }\n\n .pt-xl-3 {\n padding-top: 1rem !important;\n }\n\n .pt-xl-4 {\n padding-top: 1.5rem !important;\n }\n\n .pt-xl-5 {\n padding-top: 3rem !important;\n }\n\n .pe-xl-0 {\n padding-left: 0 !important;\n }\n\n .pe-xl-1 {\n padding-left: 0.25rem !important;\n }\n\n .pe-xl-2 {\n padding-left: 0.5rem !important;\n }\n\n .pe-xl-3 {\n padding-left: 1rem !important;\n }\n\n .pe-xl-4 {\n padding-left: 1.5rem !important;\n }\n\n .pe-xl-5 {\n padding-left: 3rem !important;\n }\n\n .pb-xl-0 {\n padding-bottom: 0 !important;\n }\n\n .pb-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pb-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pb-xl-3 {\n padding-bottom: 1rem !important;\n }\n\n .pb-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pb-xl-5 {\n padding-bottom: 3rem !important;\n }\n\n .ps-xl-0 {\n padding-right: 0 !important;\n }\n\n .ps-xl-1 {\n padding-right: 0.25rem !important;\n }\n\n .ps-xl-2 {\n padding-right: 0.5rem !important;\n }\n\n .ps-xl-3 {\n padding-right: 1rem !important;\n }\n\n .ps-xl-4 {\n padding-right: 1.5rem !important;\n }\n\n .ps-xl-5 {\n padding-right: 3rem !important;\n }\n}\n@media (min-width: 1400px) {\n .d-xxl-inline {\n display: inline !important;\n }\n\n .d-xxl-inline-block {\n display: inline-block !important;\n }\n\n .d-xxl-block {\n display: block !important;\n }\n\n .d-xxl-grid {\n display: grid !important;\n }\n\n .d-xxl-table {\n display: table !important;\n }\n\n .d-xxl-table-row {\n display: table-row !important;\n }\n\n .d-xxl-table-cell {\n display: table-cell !important;\n }\n\n .d-xxl-flex {\n display: flex !important;\n }\n\n .d-xxl-inline-flex {\n display: inline-flex !important;\n }\n\n .d-xxl-none {\n display: none !important;\n }\n\n .flex-xxl-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-xxl-row {\n flex-direction: row !important;\n }\n\n .flex-xxl-column {\n flex-direction: column !important;\n }\n\n .flex-xxl-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-xxl-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-xxl-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-xxl-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-xxl-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-xxl-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .flex-xxl-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-xxl-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-xxl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .justify-content-xxl-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-xxl-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-xxl-center {\n justify-content: center !important;\n }\n\n .justify-content-xxl-between {\n justify-content: space-between !important;\n }\n\n .justify-content-xxl-around {\n justify-content: space-around !important;\n }\n\n .justify-content-xxl-evenly {\n justify-content: space-evenly !important;\n }\n\n .align-items-xxl-start {\n align-items: flex-start !important;\n }\n\n .align-items-xxl-end {\n align-items: flex-end !important;\n }\n\n .align-items-xxl-center {\n align-items: center !important;\n }\n\n .align-items-xxl-baseline {\n align-items: baseline !important;\n }\n\n .align-items-xxl-stretch {\n align-items: stretch !important;\n }\n\n .align-content-xxl-start {\n align-content: flex-start !important;\n }\n\n .align-content-xxl-end {\n align-content: flex-end !important;\n }\n\n .align-content-xxl-center {\n align-content: center !important;\n }\n\n .align-content-xxl-between {\n align-content: space-between !important;\n }\n\n .align-content-xxl-around {\n align-content: space-around !important;\n }\n\n .align-content-xxl-stretch {\n align-content: stretch !important;\n }\n\n .align-self-xxl-auto {\n align-self: auto !important;\n }\n\n .align-self-xxl-start {\n align-self: flex-start !important;\n }\n\n .align-self-xxl-end {\n align-self: flex-end !important;\n }\n\n .align-self-xxl-center {\n align-self: center !important;\n }\n\n .align-self-xxl-baseline {\n align-self: baseline !important;\n }\n\n .align-self-xxl-stretch {\n align-self: stretch !important;\n }\n\n .order-xxl-first {\n order: -1 !important;\n }\n\n .order-xxl-0 {\n order: 0 !important;\n }\n\n .order-xxl-1 {\n order: 1 !important;\n }\n\n .order-xxl-2 {\n order: 2 !important;\n }\n\n .order-xxl-3 {\n order: 3 !important;\n }\n\n .order-xxl-4 {\n order: 4 !important;\n }\n\n .order-xxl-5 {\n order: 5 !important;\n }\n\n .order-xxl-last {\n order: 6 !important;\n }\n\n .m-xxl-0 {\n margin: 0 !important;\n }\n\n .m-xxl-1 {\n margin: 0.25rem !important;\n }\n\n .m-xxl-2 {\n margin: 0.5rem !important;\n }\n\n .m-xxl-3 {\n margin: 1rem !important;\n }\n\n .m-xxl-4 {\n margin: 1.5rem !important;\n }\n\n .m-xxl-5 {\n margin: 3rem !important;\n }\n\n .m-xxl-auto {\n margin: auto !important;\n }\n\n .mx-xxl-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n\n .mx-xxl-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n\n .mx-xxl-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n\n .mx-xxl-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n\n .mx-xxl-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n\n .mx-xxl-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n\n .mx-xxl-auto {\n margin-left: auto !important;\n margin-right: auto !important;\n }\n\n .my-xxl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n\n .my-xxl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n\n .my-xxl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n\n .my-xxl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n\n .my-xxl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n\n .my-xxl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n\n .my-xxl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n\n .mt-xxl-0 {\n margin-top: 0 !important;\n }\n\n .mt-xxl-1 {\n margin-top: 0.25rem !important;\n }\n\n .mt-xxl-2 {\n margin-top: 0.5rem !important;\n }\n\n .mt-xxl-3 {\n margin-top: 1rem !important;\n }\n\n .mt-xxl-4 {\n margin-top: 1.5rem !important;\n }\n\n .mt-xxl-5 {\n margin-top: 3rem !important;\n }\n\n .mt-xxl-auto {\n margin-top: auto !important;\n }\n\n .me-xxl-0 {\n margin-left: 0 !important;\n }\n\n .me-xxl-1 {\n margin-left: 0.25rem !important;\n }\n\n .me-xxl-2 {\n margin-left: 0.5rem !important;\n }\n\n .me-xxl-3 {\n margin-left: 1rem !important;\n }\n\n .me-xxl-4 {\n margin-left: 1.5rem !important;\n }\n\n .me-xxl-5 {\n margin-left: 3rem !important;\n }\n\n .me-xxl-auto {\n margin-left: auto !important;\n }\n\n .mb-xxl-0 {\n margin-bottom: 0 !important;\n }\n\n .mb-xxl-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .mb-xxl-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .mb-xxl-3 {\n margin-bottom: 1rem !important;\n }\n\n .mb-xxl-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .mb-xxl-5 {\n margin-bottom: 3rem !important;\n }\n\n .mb-xxl-auto {\n margin-bottom: auto !important;\n }\n\n .ms-xxl-0 {\n margin-right: 0 !important;\n }\n\n .ms-xxl-1 {\n margin-right: 0.25rem !important;\n }\n\n .ms-xxl-2 {\n margin-right: 0.5rem !important;\n }\n\n .ms-xxl-3 {\n margin-right: 1rem !important;\n }\n\n .ms-xxl-4 {\n margin-right: 1.5rem !important;\n }\n\n .ms-xxl-5 {\n margin-right: 3rem !important;\n }\n\n .ms-xxl-auto {\n margin-right: auto !important;\n }\n\n .p-xxl-0 {\n padding: 0 !important;\n }\n\n .p-xxl-1 {\n padding: 0.25rem !important;\n }\n\n .p-xxl-2 {\n padding: 0.5rem !important;\n }\n\n .p-xxl-3 {\n padding: 1rem !important;\n }\n\n .p-xxl-4 {\n padding: 1.5rem !important;\n }\n\n .p-xxl-5 {\n padding: 3rem !important;\n }\n\n .px-xxl-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n\n .px-xxl-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n\n .px-xxl-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n\n .px-xxl-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n\n .px-xxl-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n\n .px-xxl-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n\n .py-xxl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n\n .py-xxl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n\n .py-xxl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n\n .py-xxl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n\n .py-xxl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n\n .py-xxl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pt-xxl-0 {\n padding-top: 0 !important;\n }\n\n .pt-xxl-1 {\n padding-top: 0.25rem !important;\n }\n\n .pt-xxl-2 {\n padding-top: 0.5rem !important;\n }\n\n .pt-xxl-3 {\n padding-top: 1rem !important;\n }\n\n .pt-xxl-4 {\n padding-top: 1.5rem !important;\n }\n\n .pt-xxl-5 {\n padding-top: 3rem !important;\n }\n\n .pe-xxl-0 {\n padding-left: 0 !important;\n }\n\n .pe-xxl-1 {\n padding-left: 0.25rem !important;\n }\n\n .pe-xxl-2 {\n padding-left: 0.5rem !important;\n }\n\n .pe-xxl-3 {\n padding-left: 1rem !important;\n }\n\n .pe-xxl-4 {\n padding-left: 1.5rem !important;\n }\n\n .pe-xxl-5 {\n padding-left: 3rem !important;\n }\n\n .pb-xxl-0 {\n padding-bottom: 0 !important;\n }\n\n .pb-xxl-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pb-xxl-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pb-xxl-3 {\n padding-bottom: 1rem !important;\n }\n\n .pb-xxl-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pb-xxl-5 {\n padding-bottom: 3rem !important;\n }\n\n .ps-xxl-0 {\n padding-right: 0 !important;\n }\n\n .ps-xxl-1 {\n padding-right: 0.25rem !important;\n }\n\n .ps-xxl-2 {\n padding-right: 0.5rem !important;\n }\n\n .ps-xxl-3 {\n padding-right: 1rem !important;\n }\n\n .ps-xxl-4 {\n padding-right: 1.5rem !important;\n }\n\n .ps-xxl-5 {\n padding-right: 3rem !important;\n }\n}\n@media print {\n .d-print-inline {\n display: inline !important;\n }\n\n .d-print-inline-block {\n display: inline-block !important;\n }\n\n .d-print-block {\n display: block !important;\n }\n\n .d-print-grid {\n display: grid !important;\n }\n\n .d-print-table {\n display: table !important;\n }\n\n .d-print-table-row {\n display: table-row !important;\n }\n\n .d-print-table-cell {\n display: table-cell !important;\n }\n\n .d-print-flex {\n display: flex !important;\n }\n\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n\n .d-print-none {\n display: none !important;\n }\n}\n/*# sourceMappingURL=bootstrap-grid.rtl.css.map */","// Container mixins\n\n@mixin make-container($gutter: $container-padding-x) {\n width: 100%;\n padding-right: var(--#{$variable-prefix}gutter-x, #{$gutter});\n padding-left: var(--#{$variable-prefix}gutter-x, #{$gutter});\n margin-right: auto;\n margin-left: auto;\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoints}`\";\n }\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width.\n// The maximum value is reduced by 0.02px to work around the limitations of\n// `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $max: map-get($breakpoints, $name);\n @return if($max and $max > 0, $max - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($next, $breakpoints) {\n @content;\n }\n }\n}\n","// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n\n > * {\n @include make-col-ready();\n }\n }\n}\n\n@if $enable-cssgrid {\n .grid {\n display: grid;\n grid-template-rows: repeat(var(--#{$variable-prefix}rows, 1), 1fr);\n grid-template-columns: repeat(var(--#{$variable-prefix}columns, #{$grid-columns}), 1fr);\n gap: var(--#{$variable-prefix}gap, #{$grid-gutter-width});\n\n @include make-cssgrid();\n }\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter: $grid-gutter-width) {\n --#{$variable-prefix}gutter-x: #{$gutter};\n --#{$variable-prefix}gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed\n margin-top: calc(-1 * var(--#{$variable-prefix}gutter-y)); // stylelint-disable-line function-disallowed-list\n margin-right: calc(-.5 * var(--#{$variable-prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n margin-left: calc(-.5 * var(--#{$variable-prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n // Add box sizing if only the grid is loaded\n box-sizing: if(variable-exists(include-column-box-sizing) and $include-column-box-sizing, border-box, null);\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we set the width\n // later on to override this initial width.\n flex-shrink: 0;\n width: 100%;\n max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n padding-right: calc(var(--#{$variable-prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n padding-left: calc(var(--#{$variable-prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n margin-top: var(--#{$variable-prefix}gutter-y);\n}\n\n@mixin make-col($size: false, $columns: $grid-columns) {\n @if $size {\n flex: 0 0 auto;\n width: percentage(divide($size, $columns));\n\n } @else {\n flex: 1 1 0;\n max-width: 100%;\n }\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: divide($size, $columns);\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 auto;\n width: divide(100%, $count);\n }\n}\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n }\n\n .row-cols#{$infix}-auto > * {\n @include make-col-auto();\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n\n // Gutters\n //\n // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n @each $key, $value in $gutters {\n .g#{$infix}-#{$key},\n .gx#{$infix}-#{$key} {\n --#{$variable-prefix}gutter-x: #{$value};\n }\n\n .g#{$infix}-#{$key},\n .gy#{$infix}-#{$key} {\n --#{$variable-prefix}gutter-y: #{$value};\n }\n }\n }\n }\n}\n\n@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $grid-breakpoints) {\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .g-col#{$infix}-#{$i} {\n grid-column: auto / span $i;\n }\n }\n\n // Start with `1` because `0` is and invalid value.\n // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.\n @for $i from 1 through ($columns - 1) {\n .g-start#{$infix}-#{$i} {\n grid-column-start: $i;\n }\n }\n }\n }\n }\n}\n","// Utility generator\n// Used to generate utilities & print utilities\n@mixin generate-utility($utility, $infix, $is-rfs-media-query: false) {\n $values: map-get($utility, values);\n\n // If the values are a list or string, convert it into a map\n @if type-of($values) == \"string\" or type-of(nth($values, 1)) != \"list\" {\n $values: zip($values, $values);\n }\n\n @each $key, $value in $values {\n $properties: map-get($utility, property);\n\n // Multiple properties are possible, for example with vertical or horizontal margins or paddings\n @if type-of($properties) == \"string\" {\n $properties: append((), $properties);\n }\n\n // Use custom class if present\n $property-class: if(map-has-key($utility, class), map-get($utility, class), nth($properties, 1));\n $property-class: if($property-class == null, \"\", $property-class);\n\n // State params to generate pseudo-classes\n $state: if(map-has-key($utility, state), map-get($utility, state), ());\n\n $infix: if($property-class == \"\" and str-slice($infix, 1, 1) == \"-\", str-slice($infix, 2), $infix);\n\n // Don't prefix if value key is null (eg. with shadow class)\n $property-class-modifier: if($key, if($property-class == \"\" and $infix == \"\", \"\", \"-\") + $key, \"\");\n\n @if map-get($utility, rfs) {\n // Inside the media query\n @if $is-rfs-media-query {\n $val: rfs-value($value);\n\n // Do not render anything if fluid and non fluid values are the same\n $value: if($val == rfs-fluid-value($value), null, $val);\n }\n @else {\n $value: rfs-fluid-value($value);\n }\n }\n\n $is-css-var: map-get($utility, css-var);\n $is-local-vars: map-get($utility, local-vars);\n $is-rtl: map-get($utility, rtl);\n\n @if $value != null {\n @if $is-rtl == false {\n /* rtl:begin:remove */\n }\n\n @if $is-css-var {\n .#{$property-class + $infix + $property-class-modifier} {\n --#{$variable-prefix}#{$property-class}: #{$value};\n }\n\n @each $pseudo in $state {\n .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n --#{$variable-prefix}#{$property-class}: #{$value};\n }\n }\n } @else {\n .#{$property-class + $infix + $property-class-modifier} {\n @each $property in $properties {\n @if $is-local-vars {\n @each $local-var, $value in $is-local-vars {\n --#{$variable-prefix}#{$local-var}: #{$value};\n }\n }\n #{$property}: $value if($enable-important-utilities, !important, null);\n }\n }\n\n @each $pseudo in $state {\n .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n @each $property in $properties {\n #{$property}: $value if($enable-important-utilities, !important, null);\n }\n }\n }\n }\n\n @if $is-rtl == false {\n /* rtl:end:remove */\n }\n }\n }\n}\n","// Loop over each breakpoint\n@each $breakpoint in map-keys($grid-breakpoints) {\n\n // Generate media query if needed\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n // Loop over each utility property\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Only proceed if responsive media queries are enabled or if it's the base media query\n @if type-of($utility) == \"map\" and (map-get($utility, responsive) or $infix == \"\") {\n @include generate-utility($utility, $infix);\n }\n }\n }\n}\n\n// RFS rescaling\n@media (min-width: $rfs-mq-value) {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @if (map-get($grid-breakpoints, $breakpoint) < $rfs-breakpoint) {\n // Loop over each utility property\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Only proceed if responsive media queries are enabled or if it's the base media query\n @if type-of($utility) == \"map\" and map-get($utility, rfs) and (map-get($utility, responsive) or $infix == \"\") {\n @include generate-utility($utility, $infix, true);\n }\n }\n }\n }\n}\n\n\n// Print utilities\n@media print {\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Then check if the utility needs print styles\n @if type-of($utility) == \"map\" and map-get($utility, print) == true {\n @include generate-utility($utility, \"-print\");\n }\n }\n}\n"]} \ No newline at end of file diff --git a/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-reboot.css b/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-reboot.css new file mode 100644 index 0000000..1207a17 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-reboot.css @@ -0,0 +1,485 @@ +/*! + * Bootstrap Reboot v5.1.3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) + */ +: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-color-rgb: 33, 37, 41; + --bs-body-bg-rgb: 255, 255, 255; + --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; +} + +*, +*::before, +*::after { + 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: rgba(0, 0, 0, 0); +} + +hr { + margin: 1rem 0; + color: inherit; + background-color: currentColor; + border: 0; + opacity: 0.25; +} + +hr:not([size]) { + height: 1px; +} + +h6, h5, h4, h3, h2, h1 { + margin-top: 0; + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; +} + +h1 { + font-size: calc(1.375rem + 1.5vw); +} +@media (min-width: 1200px) { + h1 { + font-size: 2.5rem; + } +} + +h2 { + font-size: calc(1.325rem + 0.9vw); +} +@media (min-width: 1200px) { + h2 { + font-size: 2rem; + } +} + +h3 { + font-size: calc(1.3rem + 0.6vw); +} +@media (min-width: 1200px) { + h3 { + font-size: 1.75rem; + } +} + +h4 { + font-size: calc(1.275rem + 0.3vw); +} +@media (min-width: 1200px) { + h4 { + font-size: 1.5rem; + } +} + +h5 { + font-size: 1.25rem; +} + +h6 { + font-size: 1rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +abbr[title], +abbr[data-bs-original-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; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: 700; +} + +dd { + margin-bottom: 0.5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +b, +strong { + font-weight: bolder; +} + +small { + font-size: 0.875em; +} + +mark { + padding: 0.2em; + background-color: #fcf8e3; +} + +sub, +sup { + position: relative; + font-size: 0.75em; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.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; +} + +pre, +code, +kbd, +samp { + font-family: var(--bs-font-monospace); + font-size: 1em; + direction: ltr /* rtl:ignore */; + unicode-bidi: bidi-override; +} + +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + font-size: 0.875em; +} +pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +code { + font-size: 0.875em; + color: #d63384; + word-wrap: break-word; +} +a > code { + color: inherit; +} + +kbd { + padding: 0.2rem 0.4rem; + font-size: 0.875em; + color: #fff; + background-color: #212529; + border-radius: 0.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: 0.5rem; + padding-bottom: 0.5rem; + color: #6c757d; + text-align: left; +} + +th { + text-align: inherit; + text-align: -webkit-match-parent; +} + +thead, +tbody, +tfoot, +tr, +td, +th { + border-color: inherit; + border-style: solid; + border-width: 0; +} + +label { + display: inline-block; +} + +button { + border-radius: 0; +} + +button:focus:not(:focus-visible) { + outline: 0; +} + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +select { + text-transform: none; +} + +[role=button] { + cursor: pointer; +} + +select { + word-wrap: normal; +} +select:disabled { + opacity: 1; +} + +[list]::-webkit-calendar-picker-indicator { + display: none; +} + +button, +[type=button], +[type=reset], +[type=submit] { + -webkit-appearance: button; +} +button:not(:disabled), +[type=button]:not(:disabled), +[type=reset]:not(:disabled), +[type=submit]:not(:disabled) { + cursor: pointer; +} + +::-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: 0.5rem; + font-size: calc(1.275rem + 0.3vw); + line-height: inherit; +} +@media (min-width: 1200px) { + legend { + font-size: 1.5rem; + } +} +legend + * { + clear: left; +} + +::-webkit-datetime-edit-fields-wrapper, +::-webkit-datetime-edit-text, +::-webkit-datetime-edit-minute, +::-webkit-datetime-edit-hour-field, +::-webkit-datetime-edit-day-field, +::-webkit-datetime-edit-month-field, +::-webkit-datetime-edit-year-field { + padding: 0; +} + +::-webkit-inner-spin-button { + height: auto; +} + +[type=search] { + outline-offset: -2px; + -webkit-appearance: textfield; +} + +/* rtl:raw: +[type="tel"], +[type="url"], +[type="email"], +[type="number"] { + direction: ltr; +} +*/ +::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-color-swatch-wrapper { + padding: 0; +} + +::-webkit-file-upload-button { + font: inherit; +} + +::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; +} + +/*# sourceMappingURL=bootstrap-reboot.css.map */ \ No newline at end of file diff --git a/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-reboot.css.map b/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-reboot.css.map new file mode 100644 index 0000000..71177ef --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/src/static/bootstrap/css/bootstrap-reboot.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/bootstrap-reboot.scss","../../scss/_root.scss","bootstrap-reboot.css","../../scss/_reboot.scss","../../scss/vendor/_rfs.scss","../../scss/_variables.scss","../../scss/mixins/_border-radius.scss"],"names":[],"mappings":"AAAA;;;;;;EAAA;ACAA;EAQI,kBAAA;EAAA,oBAAA;EAAA,oBAAA;EAAA,kBAAA;EAAA,iBAAA;EAAA,oBAAA;EAAA,oBAAA;EAAA,mBAAA;EAAA,kBAAA;EAAA,kBAAA;EAAA,gBAAA;EAAA,kBAAA;EAAA,uBAAA;EAIA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAAA,sBAAA;EAIA,qBAAA;EAAA,uBAAA;EAAA,qBAAA;EAAA,kBAAA;EAAA,qBAAA;EAAA,oBAAA;EAAA,mBAAA;EAAA,kBAAA;EAIA,8BAAA;EAAA,iCAAA;EAAA,6BAAA;EAAA,2BAAA;EAAA,6BAAA;EAAA,4BAAA;EAAA,6BAAA;EAAA,yBAAA;EAGF,6BAAA;EACA,uBAAA;EACA,+BAAA;EACA,+BAAA;EAMA,qNAAA;EACA,yGAAA;EACA,yFAAA;EAQA,gDAAA;EACA,yBAAA;EACA,0BAAA;EACA,0BAAA;EACA,wBAAA;EAIA,kBAAA;ACSF;;AC5CA;;;EAGE,sBAAA;AD+CF;;AChCI;EANJ;IAOM,uBAAA;EDoCJ;AACF;;ACvBA;EACE,SAAA;EACA,uCAAA;ECmPI,mCALI;ED5OR,uCAAA;EACA,uCAAA;EACA,2BAAA;EACA,qCAAA;EACA,mCAAA;EACA,8BAAA;EACA,6CAAA;AD0BF;;AChBA;EACE,cAAA;EACA,cE+kB4B;EF9kB5B,8BAAA;EACA,SAAA;EACA,aE8kB4B;AH3jB9B;;AChBA;EACE,WEwb4B;AHra9B;;ACTA;EACE,aAAA;EACA,qBEohB4B;EFjhB5B,gBEohB4B;EFnhB5B,gBEohB4B;AH1gB9B;;ACNA;ECwMQ,iCAAA;AF9LR;AE4BI;EDtCJ;IC+MQ,iBAAA;EFjMN;AACF;;ACVA;ECmMQ,iCAAA;AFrLR;AEmBI;EDjCJ;IC0MQ,eAAA;EFxLN;AACF;;ACdA;EC8LQ,+BAAA;AF5KR;AEUI;ED5BJ;ICqMQ,kBAAA;EF/KN;AACF;;AClBA;ECyLQ,iCAAA;AFnKR;AECI;EDvBJ;ICgMQ,iBAAA;EFtKN;AACF;;ACtBA;ECgLM,kBALI;AFjJV;;ACrBA;EC2KM,eALI;AF7IV;;ACdA;EACE,aAAA;EACA,mBEkU0B;AHjT5B;;ACNA;;EAEE,yCAAA;EAAA,iCAAA;EACA,YAAA;EACA,sCAAA;EAAA,8BAAA;ADSF;;ACHA;EACE,mBAAA;EACA,kBAAA;EACA,oBAAA;ADMF;;ACAA;;EAEE,kBAAA;ADGF;;ACAA;;;EAGE,aAAA;EACA,mBAAA;ADGF;;ACAA;;;;EAIE,gBAAA;ADGF;;ACAA;EACE,gBEuZ4B;AHpZ9B;;ACEA;EACE,qBAAA;EACA,cAAA;ADCF;;ACKA;EACE,gBAAA;ADFF;;ACUA;;EAEE,mBEgY4B;AHvY9B;;ACeA;EC4EM,kBALI;AFlFV;;ACkBA;EACE,cE4b4B;EF3b5B,yBEmc4B;AHld9B;;ACwBA;;EAEE,kBAAA;ECwDI,iBALI;EDjDR,cAAA;EACA,wBAAA;ADrBF;;ACwBA;EAAM,eAAA;ADpBN;;ACqBA;EAAM,WAAA;ADjBN;;ACsBA;EACE,cEpNQ;EFqNR,0BEkMwC;AHrN1C;ACqBE;EACE,cEiMsC;AHpN1C;;AC8BE;EAEE,cAAA;EACA,qBAAA;AD5BJ;;ACmCA;;;;EAIE,qCE6S4B;ED/RxB,cALI;EDPR,+BAAA;EACA,2BAAA;ADhCF;;ACuCA;EACE,cAAA;EACA,aAAA;EACA,mBAAA;EACA,cAAA;ECAI,kBALI;AF9BV;ACwCE;ECLI,kBALI;EDYN,cAAA;EACA,kBAAA;ADtCJ;;AC0CA;ECZM,kBALI;EDmBR,cE1QQ;EF2QR,qBAAA;ADvCF;AC0CE;EACE,cAAA;ADxCJ;;AC4CA;EACE,sBAAA;ECxBI,kBALI;ED+BR,WEvTS;EFwTT,yBE/SS;ECEP,qBAAA;AJqQJ;AC2CE;EACE,UAAA;EC/BE,cALI;EDsCN,gBE0Q0B;AHnT9B;;ACkDA;EACE,gBAAA;AD/CF;;ACqDA;;EAEE,sBAAA;ADlDF;;AC0DA;EACE,oBAAA;EACA,yBAAA;ADvDF;;AC0DA;EACE,mBEwU4B;EFvU5B,sBEuU4B;EFtU5B,cE1VS;EF2VT,gBAAA;ADvDF;;AC8DA;EAEE,mBAAA;EACA,gCAAA;AD5DF;;AC+DA;;;;;;EAME,qBAAA;EACA,mBAAA;EACA,eAAA;AD5DF;;ACoEA;EACE,qBAAA;ADjEF;;ACuEA;EAEE,gBAAA;ADrEF;;AC6EA;EACE,UAAA;AD1EF;;AC+EA;;;;;EAKE,SAAA;EACA,oBAAA;EC9HI,kBALI;EDqIR,oBAAA;AD5EF;;ACgFA;;EAEE,oBAAA;AD7EF;;ACkFA;EACE,eAAA;AD/EF;;ACkFA;EAGE,iBAAA;ADjFF;ACoFE;EACE,UAAA;ADlFJ;;ACyFA;EACE,aAAA;ADtFF;;AC8FA;;;;EAIE,0BAAA;AD3FF;AC8FI;;;;EACE,eAAA;ADzFN;;ACgGA;EACE,UAAA;EACA,kBAAA;AD7FF;;ACkGA;EACE,gBAAA;AD/FF;;ACyGA;EACE,YAAA;EACA,UAAA;EACA,SAAA;EACA,SAAA;ADtGF;;AC8GA;EACE,WAAA;EACA,WAAA;EACA,UAAA;EACA,qBE6J4B;EDhXtB,iCAAA;EDsNN,oBAAA;AD5GF;AE5QI;EDiXJ;ICxMQ,iBAAA;EFuGN;AACF;ACyGE;EACE,WAAA;ADvGJ;;AC8GA;;;;;;;EAOE,UAAA;AD3GF;;AC8GA;EACE,YAAA;AD3GF;;ACoHA;EACE,oBAAA;EACA,6BAAA;ADjHF;;ACyHA;;;;;;;CAAA;AAWA;EACE,wBAAA;ADzHF;;AC8HA;EACE,UAAA;AD3HF;;ACiIA;EACE,aAAA;AD9HF;;AC6HA;EACE,aAAA;AD9HF;;ACoIA;EACE,aAAA;EACA,0BAAA;ADjIF;;ACsIA;EACE,qBAAA;ADnIF;;ACwIA;EACE,SAAA;ADrIF;;AC4IA;EACE,kBAAA;EACA,eAAA;ADzIF;;ACiJA;EACE,wBAAA;AD9IF;;ACsJA;EACE,wBAAA;ADnJF","file":"bootstrap-reboot.css","sourcesContent":["/*!\n * Bootstrap Reboot v5.1.3 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n",":root {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Colors\n //\n // Generate palettes for full colors, grays, and theme colors.\n\n @each $color, $value in $colors {\n --#{$variable-prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $grays {\n --#{$variable-prefix}gray-#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$variable-prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors-rgb {\n --#{$variable-prefix}#{$color}-rgb: #{$value};\n }\n\n --#{$variable-prefix}white-rgb: #{to-rgb($white)};\n --#{$variable-prefix}black-rgb: #{to-rgb($black)};\n --#{$variable-prefix}body-color-rgb: #{to-rgb($body-color)};\n --#{$variable-prefix}body-bg-rgb: #{to-rgb($body-bg)};\n\n // Fonts\n\n // Note: Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --#{$variable-prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$variable-prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$variable-prefix}gradient: #{$gradient};\n\n // Root and body\n // stylelint-disable custom-property-empty-line-before\n // scss-docs-start root-body-variables\n @if $font-size-root != null {\n --#{$variable-prefix}root-font-size: #{$font-size-root};\n }\n --#{$variable-prefix}body-font-family: #{$font-family-base};\n --#{$variable-prefix}body-font-size: #{$font-size-base};\n --#{$variable-prefix}body-font-weight: #{$font-weight-base};\n --#{$variable-prefix}body-line-height: #{$line-height-base};\n --#{$variable-prefix}body-color: #{$body-color};\n @if $body-text-align != null {\n --#{$variable-prefix}body-text-align: #{$body-text-align};\n }\n --#{$variable-prefix}body-bg: #{$body-bg};\n // scss-docs-end root-body-variables\n // stylelint-enable custom-property-empty-line-before\n}\n","/*!\n * Bootstrap Reboot v5.1.3 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n:root {\n --bs-blue: #0d6efd;\n --bs-indigo: #6610f2;\n --bs-purple: #6f42c1;\n --bs-pink: #d63384;\n --bs-red: #dc3545;\n --bs-orange: #fd7e14;\n --bs-yellow: #ffc107;\n --bs-green: #198754;\n --bs-teal: #20c997;\n --bs-cyan: #0dcaf0;\n --bs-white: #fff;\n --bs-gray: #6c757d;\n --bs-gray-dark: #343a40;\n --bs-gray-100: #f8f9fa;\n --bs-gray-200: #e9ecef;\n --bs-gray-300: #dee2e6;\n --bs-gray-400: #ced4da;\n --bs-gray-500: #adb5bd;\n --bs-gray-600: #6c757d;\n --bs-gray-700: #495057;\n --bs-gray-800: #343a40;\n --bs-gray-900: #212529;\n --bs-primary: #0d6efd;\n --bs-secondary: #6c757d;\n --bs-success: #198754;\n --bs-info: #0dcaf0;\n --bs-warning: #ffc107;\n --bs-danger: #dc3545;\n --bs-light: #f8f9fa;\n --bs-dark: #212529;\n --bs-primary-rgb: 13, 110, 253;\n --bs-secondary-rgb: 108, 117, 125;\n --bs-success-rgb: 25, 135, 84;\n --bs-info-rgb: 13, 202, 240;\n --bs-warning-rgb: 255, 193, 7;\n --bs-danger-rgb: 220, 53, 69;\n --bs-light-rgb: 248, 249, 250;\n --bs-dark-rgb: 33, 37, 41;\n --bs-white-rgb: 255, 255, 255;\n --bs-black-rgb: 0, 0, 0;\n --bs-body-color-rgb: 33, 37, 41;\n --bs-body-bg-rgb: 255, 255, 255;\n --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\";\n --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));\n --bs-body-font-family: var(--bs-font-sans-serif);\n --bs-body-font-size: 1rem;\n --bs-body-font-weight: 400;\n --bs-body-line-height: 1.5;\n --bs-body-color: #212529;\n --bs-body-bg: #fff;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n :root {\n scroll-behavior: smooth;\n }\n}\n\nbody {\n margin: 0;\n font-family: var(--bs-body-font-family);\n font-size: var(--bs-body-font-size);\n font-weight: var(--bs-body-font-weight);\n line-height: var(--bs-body-line-height);\n color: var(--bs-body-color);\n text-align: var(--bs-body-text-align);\n background-color: var(--bs-body-bg);\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\nhr {\n margin: 1rem 0;\n color: inherit;\n background-color: currentColor;\n border: 0;\n opacity: 0.25;\n}\n\nhr:not([size]) {\n height: 1px;\n}\n\nh6, h5, h4, h3, h2, h1 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1 {\n font-size: calc(1.375rem + 1.5vw);\n}\n@media (min-width: 1200px) {\n h1 {\n font-size: 2.5rem;\n }\n}\n\nh2 {\n font-size: calc(1.325rem + 0.9vw);\n}\n@media (min-width: 1200px) {\n h2 {\n font-size: 2rem;\n }\n}\n\nh3 {\n font-size: calc(1.3rem + 0.6vw);\n}\n@media (min-width: 1200px) {\n h3 {\n font-size: 1.75rem;\n }\n}\n\nh4 {\n font-size: calc(1.275rem + 0.3vw);\n}\n@media (min-width: 1200px) {\n h4 {\n font-size: 1.5rem;\n }\n}\n\nh5 {\n font-size: 1.25rem;\n}\n\nh6 {\n font-size: 1rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-bs-original-title] {\n text-decoration: underline dotted;\n cursor: help;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: 0.5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 0.875em;\n}\n\nmark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 0.75em;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\na {\n color: #0d6efd;\n text-decoration: underline;\n}\na:hover {\n color: #0a58ca;\n}\n\na:not([href]):not([class]), a:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: var(--bs-font-monospace);\n font-size: 1em;\n direction: ltr /* rtl:ignore */;\n unicode-bidi: bidi-override;\n}\n\npre {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n font-size: 0.875em;\n}\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\ncode {\n font-size: 0.875em;\n color: #d63384;\n word-wrap: break-word;\n}\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 0.875em;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\nkbd kbd {\n padding: 0;\n font-size: 1em;\n font-weight: 700;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n color: #6c757d;\n text-align: left;\n}\n\nth {\n text-align: inherit;\n text-align: -webkit-match-parent;\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\nlabel {\n display: inline-block;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=button] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\nselect:disabled {\n opacity: 1;\n}\n\n[list]::-webkit-calendar-picker-indicator {\n display: none;\n}\n\nbutton,\n[type=button],\n[type=reset],\n[type=submit] {\n -webkit-appearance: button;\n}\nbutton:not(:disabled),\n[type=button]:not(:disabled),\n[type=reset]:not(:disabled),\n[type=submit]:not(:disabled) {\n cursor: pointer;\n}\n\n::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ntextarea {\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n float: left;\n width: 100%;\n padding: 0;\n margin-bottom: 0.5rem;\n font-size: calc(1.275rem + 0.3vw);\n line-height: inherit;\n}\n@media (min-width: 1200px) {\n legend {\n font-size: 1.5rem;\n }\n}\nlegend + * {\n clear: left;\n}\n\n::-webkit-datetime-edit-fields-wrapper,\n::-webkit-datetime-edit-text,\n::-webkit-datetime-edit-minute,\n::-webkit-datetime-edit-hour-field,\n::-webkit-datetime-edit-day-field,\n::-webkit-datetime-edit-month-field,\n::-webkit-datetime-edit-year-field {\n padding: 0;\n}\n\n::-webkit-inner-spin-button {\n height: auto;\n}\n\n[type=search] {\n outline-offset: -2px;\n -webkit-appearance: textfield;\n}\n\n/* rtl:raw:\n[type=\"tel\"],\n[type=\"url\"],\n[type=\"email\"],\n[type=\"number\"] {\n direction: ltr;\n}\n*/\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-color-swatch-wrapper {\n padding: 0;\n}\n\n::file-selector-button {\n font: inherit;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\niframe {\n border: 0;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[hidden] {\n display: none !important;\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n\n// Root\n//\n// Ability to the value of the root font sizes, affecting the value of `rem`.\n// null by default, thus nothing is generated.\n\n:root {\n @if $font-size-root != null {\n font-size: var(--#{$variable-prefix}root-font-size);\n }\n\n @if $enable-smooth-scroll {\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n}\n\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Prevent adjustments of font size after orientation changes in iOS.\n// 4. Change the default tap highlight to be completely transparent in iOS.\n\n// scss-docs-start reboot-body-rules\nbody {\n margin: 0; // 1\n font-family: var(--#{$variable-prefix}body-font-family);\n @include font-size(var(--#{$variable-prefix}body-font-size));\n font-weight: var(--#{$variable-prefix}body-font-weight);\n line-height: var(--#{$variable-prefix}body-line-height);\n color: var(--#{$variable-prefix}body-color);\n text-align: var(--#{$variable-prefix}body-text-align);\n background-color: var(--#{$variable-prefix}body-bg); // 2\n -webkit-text-size-adjust: 100%; // 3\n -webkit-tap-highlight-color: rgba($black, 0); // 4\n}\n// scss-docs-end reboot-body-rules\n\n\n// Content grouping\n//\n// 1. Reset Firefox's gray color\n// 2. Set correct height and prevent the `size` attribute to make the `hr` look like an input field\n\nhr {\n margin: $hr-margin-y 0;\n color: $hr-color; // 1\n background-color: currentColor;\n border: 0;\n opacity: $hr-opacity;\n}\n\nhr:not([size]) {\n height: $hr-height; // 2\n}\n\n\n// Typography\n//\n// 1. Remove top margins from headings\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n\n%heading {\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1 {\n @extend %heading;\n @include font-size($h1-font-size);\n}\n\nh2 {\n @extend %heading;\n @include font-size($h2-font-size);\n}\n\nh3 {\n @extend %heading;\n @include font-size($h3-font-size);\n}\n\nh4 {\n @extend %heading;\n @include font-size($h4-font-size);\n}\n\nh5 {\n @extend %heading;\n @include font-size($h5-font-size);\n}\n\nh6 {\n @extend %heading;\n @include font-size($h6-font-size);\n}\n\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\n\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-bs-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-bs-original-title] { // 1\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n text-decoration-skip-ink: none; // 4\n}\n\n\n// Address\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\n\n// Lists\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\n// 1. Undo browser default\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // 1\n}\n\n\n// Blockquote\n\nblockquote {\n margin: 0 0 1rem;\n}\n\n\n// Strong\n//\n// Add the correct font weight in Chrome, Edge, and Safari\n\nb,\nstrong {\n font-weight: $font-weight-bolder;\n}\n\n\n// Small\n//\n// Add the correct font size in all browsers\n\nsmall {\n @include font-size($small-font-size);\n}\n\n\n// Mark\n\nmark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n// Sub and Sup\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n\nsub,\nsup {\n position: relative;\n @include font-size($sub-sup-font-size);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n// Links\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n\n &:hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n// Code\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-code;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n direction: ltr #{\"/* rtl:ignore */\"};\n unicode-bidi: bidi-override;\n}\n\n// 1. Remove browser default top margin\n// 2. Reset browser default of `1em` to use `rem`s\n// 3. Don't allow content to break outside\n\npre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\ncode {\n @include font-size($code-font-size);\n color: $code-color;\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n\n kbd {\n padding: 0;\n @include font-size(1em);\n font-weight: $nested-kbd-font-weight;\n }\n}\n\n\n// Figures\n//\n// Apply a consistent margin strategy (matches our type styles).\n\nfigure {\n margin: 0 0 1rem;\n}\n\n\n// Images and content\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\n\n// Tables\n//\n// Prevent double borders\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: $table-cell-padding-y;\n padding-bottom: $table-cell-padding-y;\n color: $table-caption-color;\n text-align: left;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\n\n// Forms\n//\n// 1. Allow labels to use `margin` for spacing.\n\nlabel {\n display: inline-block; // 1\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n// See https://github.com/twbs/bootstrap/issues/24093\n\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\n// 1. Remove the margin in Firefox and Safari\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // 1\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\n// Remove the inheritance of text transform in Firefox\nbutton,\nselect {\n text-transform: none;\n}\n// Set the cursor for non-` + + + + + +

+ + +
+ +
+ + +
+ +
+ + +
+ + + + diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/.terraform.lock.hcl b/samples/web-app-postgresql-flexible-server/python/terraform/.terraform.lock.hcl new file mode 100644 index 0000000..6a962cb --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/.terraform.lock.hcl @@ -0,0 +1,22 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/azurerm" { + version = "4.60.0" + constraints = "4.60.0" + hashes = [ + "h1:S2mEoRIdLdNxx7OPP3hGpaRb7DVMk/XYHhLvpMmklAc=", + "zh:1ee965ee6be563f14eb7cc8825d06524f2723f05b3ed8ae857a4b83690439eac", + "zh:594c57e40075b584a77889a21fa7df3e20cb421ce302a07e504a1d1305759217", + "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", + "zh:8c7ed398bf4ea5729fe9b30c8d4da36f2cf07d4c58f5265d8967bf92030da24b", + "zh:9088e9e6c9610bb5c87c310c0b9d3f821c4e52f77b6ad1085647b71b20d8151c", + "zh:986379fa0b1fd493f11cb3d9224235968357c3e7064c1478c8bba213567d6767", + "zh:a0025810f724a46648dbcd24d345151f21f2e0d093b7cfe7771280b9efa492db", + "zh:b72ac710c9e89d64ad59f2f11528cd178379910577f7fc08e273d5f983266244", + "zh:bebb774b44b588c889525667362bdbc4a9799ff78e3144025f0d5b231e16ec56", + "zh:ed2a586b9fab6cf18da7a47096257132b49a880cf0da258e8cc9beec624a058f", + "zh:f9b5ff4c433c78cbbdf1067557f8f6b04156361e102854848559163d6e73b0b1", + "zh:fd69648e4b009d0a7893c3ce7c0cf344d106a6aea78257c95947721280fe3459", + ] +} diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/README.md b/samples/web-app-postgresql-flexible-server/python/terraform/README.md new file mode 100644 index 0000000..c8c5fc9 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/README.md @@ -0,0 +1,63 @@ +# Terraform Deployment + +This directory contains Terraform modules and a deployment script for provisioning the sample's Azure resources. For details about the sample application, see [Azure Web App with Azure Database for PostgreSQL flexible server](../README.md). + +## Prerequisites + +- [LocalStack for Azure](https://docs.localstack.cloud/azure/) +- [Terraform](https://developer.hashicorp.com/terraform/downloads) (1.5+) +- [Docker](https://docs.docker.com/get-docker/) +- [Azure CLI](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli) + [Azlocal CLI](https://azure.localstack.cloud/user-guides/sdks/az/) +- [Python 3.12+](https://www.python.org/downloads/) +- [PostgreSQL client (`psql`)](https://www.postgresql.org/download/) +- [`jq`](https://jqlang.org/) + +```bash +pip install azlocal +``` + +## Architecture Overview + +The Terraform configuration provisions: + +1. [Azure Resource Group](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-cli). +2. [Azure Virtual Network](https://learn.microsoft.com/azure/virtual-network/virtual-networks-overview) with two subnets: + - *app-subnet* (delegated to `Microsoft.Web/serverFarms` for the Web App's VNet integration) + - *pe-subnet* (hosts the Private Endpoint to the flex server) +3. [Azure Private DNS Zone](https://learn.microsoft.com/azure/dns/private-dns-privatednszone) `privatelink.postgres.database.azure.com`, linked to the VNet. +4. [Azure Private Endpoint](https://learn.microsoft.com/azure/private-link/private-endpoint-overview) (group `postgresqlServer`). +5. [Azure NAT Gateway](https://learn.microsoft.com/azure/nat-gateway/nat-overview). +6. [Network Security Groups](https://learn.microsoft.com/en-us/azure/virtual-network/network-security-groups-overview): one per subnet. +7. [Azure Log Analytics Workspace](https://learn.microsoft.com/azure/azure-monitor/logs/log-analytics-overview). +8. [Azure Database for PostgreSQL flexible server](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/overview): public-access mode, Burstable `Standard_B1ms`, version 16, 32 GiB, HA disabled. A permissive firewall rule (`AllowAllIPs`, `0.0.0.0–255.255.255.255`) lets the deploy machine reach the server for the post-apply psql bootstrap. +9. [PostgreSQL database](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/concepts-server-and-database) `PlannerDB`. +10. [Azure App Service Plan](https://learn.microsoft.com/en-us/azure/app-service/overview-hosting-plans). +11. [Azure Web App](https://learn.microsoft.com/en-us/azure/app-service/overview) with regional VNet integration. `PG_HOST` / `PG_PORT` / `PG_DATABASE` are written by Terraform; `PG_USER` and `PG_PASSWORD` are written by `deploy.sh` after psql creates the application role. + +## Provisioning Script + +[`deploy.sh`](deploy.sh) performs: + +- `terraform init -upgrade` +- `terraform plan -out=tfplan` (passing `pg_admin_password`) +- `terraform apply -auto-approve tfplan` +- Reads outputs (`resource_group_name`, `web_app_name`, `postgres_server_name`, `postgres_fqdn`, `postgres_database_name`). +- Connects to the server as the admin via the public endpoint + firewall rule and creates the `testuser` role, grants schema rights, creates the `activities` table, and seeds three rows. +- Sets `PG_USER=testuser` + `PG_PASSWORD=` on the Web App via `az webapp config appsettings set`. +- Zips the source under `../src` and deploys via `az webapp deploy`. + +## Variables + +Override any of the variables in [`variables.tf`](variables.tf) by editing [`terraform.tfvars`](terraform.tfvars) or passing `-var` to `terraform plan`. Notable PostgreSQL ones: + +| Variable | Default | Description | +| -------------------------- | ---------------- | ---------------------------------------- | +| `pg_admin_login` | `pgadmin` | Server administrator login | +| `pg_admin_password` | `P@ssw0rd1234!` | Server administrator password (sensitive) | +| `pg_version` | `16` | PostgreSQL major version | +| `pg_sku_name` | `B_Standard_B1ms`| Compute SKU | +| `pg_storage_mb` | `32768` | Storage size in MB | +| `pg_backup_retention_days` | `7` | Backup retention | +| `pg_database_name` | `PlannerDB` | Application database | + +For non-dev deployments, set `pg_admin_password` via env var: `PG_ADMIN_PASSWORD=... bash deploy.sh`. diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/deploy.sh b/samples/web-app-postgresql-flexible-server/python/terraform/deploy.sh new file mode 100755 index 0000000..496637b --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/deploy.sh @@ -0,0 +1,266 @@ +#!/bin/bash + +# Variables +PREFIX='local' +SUFFIX='test' +LOCATION='westeurope' +PG_ADMIN_USER="pgadmin" +PG_ADMIN_PASSWORD="P@ssw0rd1234!" +PG_APP_USER="testuser" +PG_APP_PASSWORD="TestP@ssw0rd123" +CURRENT_DIR="$(cd "$(dirname "$0")" && pwd)" +ZIPFILE="planner_website.zip" + +# Change the current directory to the script's directory +cd "$CURRENT_DIR" || exit + +# Intialize Terraform +echo "Initializing Terraform..." +terraform init -upgrade + +# Run terraform plan and check for errors +echo "Planning Terraform deployment..." +terraform plan -out=tfplan \ + -var "prefix=$PREFIX" \ + -var "suffix=$SUFFIX" \ + -var "location=$LOCATION" \ + -var "pg_admin_login=$PG_ADMIN_USER" \ + -var "pg_admin_password=$PG_ADMIN_PASSWORD" + +if [[ $? != 0 ]]; then + echo "Terraform plan failed. Exiting." + exit 1 +fi + +# Apply the Terraform configuration +echo "Applying Terraform configuration..." +terraform apply -auto-approve tfplan + +if [[ $? != 0 ]]; then + echo "Terraform apply failed. Exiting." + exit 1 +fi + +# Get the output values +RESOURCE_GROUP_NAME=$(terraform output -raw resource_group_name) +WEB_APP_NAME=$(terraform output -raw web_app_name) +POSTGRES_SERVER_NAME=$(terraform output -raw postgres_server_name) +POSTGRES_FQDN_FULL=$(terraform output -raw postgres_fqdn) +DATABASE_NAME=$(terraform output -raw postgres_database_name) + +if [[ -z "$RESOURCE_GROUP_NAME" || -z "$WEB_APP_NAME" || -z "$POSTGRES_SERVER_NAME" ]]; then + echo "Resource Group Name, Web App Name, or PostgreSQL Server Name is empty. Exiting." + exit 1 +fi + +# Split host:port — the LocalStack emulator embeds the dynamically allocated TCP-proxy port +# directly in fullyQualifiedDomainName, mirroring the storage / container registry emulators. +# Real Azure returns just the bare host so PG_PORT defaults to 5432. +POSTGRES_FQDN="${POSTGRES_FQDN_FULL%%:*}" +if [[ "$POSTGRES_FQDN_FULL" == *:* ]]; then + POSTGRES_PORT="${POSTGRES_FQDN_FULL##*:}" +else + POSTGRES_PORT=5432 +fi +echo "PostgreSQL host = $POSTGRES_FQDN, port = $POSTGRES_PORT" + +# Create application role [$PG_APP_USER] on the PostgreSQL flexible server +echo "Creating login [$PG_APP_USER] on the [$POSTGRES_SERVER_NAME] PostgreSQL flexible server..." +PGPASSWORD="$PG_ADMIN_PASSWORD" psql \ + --host="$POSTGRES_FQDN" \ + --port="$POSTGRES_PORT" \ + --username="$PG_ADMIN_USER" \ + --dbname=postgres \ + --no-password \ + --set=ON_ERROR_STOP=on \ + -c "DO \$\$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = '$PG_APP_USER') THEN + CREATE ROLE \"$PG_APP_USER\" WITH LOGIN PASSWORD '$PG_APP_PASSWORD'; + END IF; +END +\$\$;" + +if [ $? -eq 0 ]; then + echo "Login [$PG_APP_USER] created successfully" +else + echo "Failed to create login [$PG_APP_USER]" + exit 1 +fi + +# Grant CONNECT on the database to [$PG_APP_USER] +echo "Granting CONNECT on [$DATABASE_NAME] to [$PG_APP_USER]..." +PGPASSWORD="$PG_ADMIN_PASSWORD" psql \ + --host="$POSTGRES_FQDN" \ + --port="$POSTGRES_PORT" \ + --username="$PG_ADMIN_USER" \ + --dbname=postgres \ + --no-password \ + --set=ON_ERROR_STOP=on \ + -c "GRANT CONNECT ON DATABASE \"$DATABASE_NAME\" TO \"$PG_APP_USER\";" + +if [ $? -eq 0 ]; then + echo "CONNECT granted successfully to [$PG_APP_USER]" +else + echo "Failed to grant CONNECT to [$PG_APP_USER]" + exit 1 +fi + +# Grant schema privileges to [$PG_APP_USER] +echo "Granting schema privileges on [$DATABASE_NAME] to [$PG_APP_USER]..." +PGPASSWORD="$PG_ADMIN_PASSWORD" psql \ + --host="$POSTGRES_FQDN" \ + --port="$POSTGRES_PORT" \ + --username="$PG_ADMIN_USER" \ + --dbname="$DATABASE_NAME" \ + --no-password \ + --set=ON_ERROR_STOP=on \ + -c "GRANT USAGE, CREATE ON SCHEMA public TO \"$PG_APP_USER\"; + ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO \"$PG_APP_USER\"; + ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO \"$PG_APP_USER\";" + +if [ $? -eq 0 ]; then + echo "Schema privileges granted successfully to [$PG_APP_USER]" +else + echo "Failed to grant schema privileges to [$PG_APP_USER]" + exit 1 +fi + +# Test connection +echo "Testing connection with user [$PG_APP_USER]..." +PGPASSWORD="$PG_APP_PASSWORD" psql \ + --host="$POSTGRES_FQDN" \ + --port="$POSTGRES_PORT" \ + --username="$PG_APP_USER" \ + --dbname="$DATABASE_NAME" \ + --no-password \ + -c "SELECT current_user, current_database(), now();" + +if [ $? -eq 0 ]; then + echo "Connection test successful with user [$PG_APP_USER]" +else + echo "Connection test failed with user [$PG_APP_USER]" + exit 1 +fi + +# Create [activities] table +echo "Creating [activities] table in the [$DATABASE_NAME] database..." +PGPASSWORD="$PG_APP_PASSWORD" psql \ + --host="$POSTGRES_FQDN" \ + --port="$POSTGRES_PORT" \ + --username="$PG_APP_USER" \ + --dbname="$DATABASE_NAME" \ + --no-password \ + --set=ON_ERROR_STOP=on \ + -c "CREATE TABLE IF NOT EXISTS activities ( + id TEXT PRIMARY KEY, + username TEXT NOT NULL, + activity TEXT NOT NULL, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() + ); + CREATE INDEX IF NOT EXISTS idx_activities_username ON activities(username); + CREATE INDEX IF NOT EXISTS idx_activities_created_at ON activities(created_at DESC);" + +if [ $? -eq 0 ]; then + echo "[activities] table created successfully" +else + echo "Failed to create [activities] table" + exit 1 +fi + +# Insert sample data +echo "Inserting sample data into [activities] table..." +PGPASSWORD="$PG_APP_PASSWORD" psql \ + --host="$POSTGRES_FQDN" \ + --port="$POSTGRES_PORT" \ + --username="$PG_APP_USER" \ + --dbname="$DATABASE_NAME" \ + --no-password \ + --set=ON_ERROR_STOP=on \ + -c "INSERT INTO activities (id, username, activity) VALUES + (md5('paolo_pisa_seed'), 'paolo', 'Visit the Leaning Tower in Pisa'), + (md5('paolo_volterra_seed'), 'paolo', 'Explore Etruscan walls in Volterra'), + (md5('paolo_san_gimignano_seed'), 'paolo', 'Climb Torre Grossa in San Gimignano'), + (md5('paolo_siena_seed'), 'paolo', 'Walk across Piazza del Campo in Siena'), + (md5('paolo_montalcino_seed'), 'paolo', 'Taste Brunello wine in Montalcino'), + (md5('paolo_pienza_seed'), 'paolo', 'Sample Pecorino cheese in Pienza'), + (md5('paolo_florence_seed'), 'paolo', 'Admire Michelangelo''s David in Florence'), + (md5('paolo_viareggio_beach_seed'), 'paolo', 'Relax by the beach in Viareggio'), + (md5('paolo_viareggio_promenade_seed'), 'paolo', 'Stroll along the Viareggio promenade') + ON CONFLICT (id) DO NOTHING;" + +if [ $? -eq 0 ]; then + echo "Sample data inserted successfully into [activities] table" +else + echo "Failed to insert sample data into [activities] table" + exit 1 +fi + +# Query sample data +echo "Querying sample data from [activities] table..." +PGPASSWORD="$PG_APP_PASSWORD" psql \ + --host="$POSTGRES_FQDN" \ + --port="$POSTGRES_PORT" \ + --username="$PG_APP_USER" \ + --dbname="$DATABASE_NAME" \ + --no-password \ + -c "SELECT * FROM activities;" + +if [ $? -eq 0 ]; then + echo "Sample data queried successfully from [activities] table" +else + echo "Failed to query sample data from [activities] table" + exit 1 +fi + +# Set PG_USER + PG_PASSWORD on the web app to point at the application role +echo "Setting PG_USER=[$PG_APP_USER] and PG_PASSWORD on the [$WEB_APP_NAME] web app..." +az webapp config appsettings set \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --name "$WEB_APP_NAME" \ + --settings PG_USER="$PG_APP_USER" PG_PASSWORD="$PG_APP_PASSWORD" \ + --only-show-errors 1>/dev/null + +if [ $? -eq 0 ]; then + echo "PG_USER and PG_PASSWORD set successfully on the [$WEB_APP_NAME] web app" +else + echo "Failed to set PG_USER and PG_PASSWORD on the [$WEB_APP_NAME] web app" + exit 1 +fi + +# Print the application settings of the web app +echo "Retrieving application settings for web app [$WEB_APP_NAME]..." +az webapp config appsettings list \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --name "$WEB_APP_NAME" + +# Change current directory to source folder +cd "../src" || exit + +# Remove any existing zip package of the web app +if [ -f "$ZIPFILE" ]; then + rm "$ZIPFILE" +fi + +# Create the zip package of the web app +echo "Creating zip package of the web app..." +zip -r "$ZIPFILE" app.py database.py gunicorn.conf.py static templates requirements.txt + +# Deploy the web app +# Deploy the web app +echo "Deploying web app [$WEB_APP_NAME] with zip file [$ZIPFILE]..." +az webapp deploy \ + --resource-group "$RESOURCE_GROUP_NAME" \ + --name "$WEB_APP_NAME" \ + --src-path "$ZIPFILE" \ + --type zip \ + --async true 1>/dev/null + +# Remove the zip package of the web app +if [ -f "$ZIPFILE" ]; then + rm "$ZIPFILE" +fi + +# Print the list of resources in the resource group +echo "Listing resources in resource group [$RESOURCE_GROUP_NAME]..." +az resource list --resource-group "$RESOURCE_GROUP_NAME" --output table diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/main.tf b/samples/web-app-postgresql-flexible-server/python/terraform/main.tf new file mode 100644 index 0000000..b652aa2 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/main.tf @@ -0,0 +1,198 @@ +locals { + prefix = lower(var.prefix) + suffix = lower(var.suffix) + resource_group_name = "${var.prefix}-rg" + log_analytics_name = "${local.prefix}-log-analytics-${local.suffix}" + virtual_network_name = "${local.prefix}-vnet-${local.suffix}" + nat_gateway_name = "${local.prefix}-nat-gateway-${local.suffix}" + webapp_subnet_nsg_name = "${local.prefix}-webapp-subnet-nsg-${local.suffix}" + pe_subnet_nsg_name = "${local.prefix}-pe-subnet-nsg-${local.suffix}" + postgres_server_name = "${local.prefix}-pgflex-${local.suffix}" + private_endpoint_name = "${local.prefix}-postgres-pe-${local.suffix}" + app_service_plan_name = "${local.prefix}-app-service-plan-${local.suffix}" + web_app_name = "${local.prefix}-webapp-${local.suffix}" + private_dns_zone_name = "privatelink.postgres.database.azure.com" + + # The PostgreSQL flexible-server emulator embeds the LS-side TCP-proxy port directly in + # `fullyQualifiedDomainName` (e.g. ".postgres.database.localhost.localstack.cloud:4515"). + # Real Azure returns just the bare host on 5432. Split on ":" so the Web App always gets the + # right host + port without any post-apply shell logic. + pg_fqdn_parts = split(":", module.postgres_flexible_server.fqdn) + pg_host = local.pg_fqdn_parts[0] + pg_port = length(local.pg_fqdn_parts) > 1 ? local.pg_fqdn_parts[1] : "5432" +} + +data "azurerm_client_config" "current" {} + +resource "azurerm_resource_group" "example" { + name = local.resource_group_name + location = var.location + tags = var.tags +} + +module "log_analytics_workspace" { + source = "./modules/log_analytics" + name = local.log_analytics_name + location = var.location + resource_group_name = azurerm_resource_group.example.name + tags = var.tags +} + +# VNet with two subnets: +# * app-subnet — delegated to Microsoft.Web/serverFarms for the Web App's regional +# VNet integration. Outbound through the NAT Gateway. +# * pe-subnet — hosts the Private Endpoint to the PostgreSQL flexible server (no +# delegation; standard private-link subnet). +module "virtual_network" { + source = "./modules/virtual_network" + resource_group_name = azurerm_resource_group.example.name + location = var.location + vnet_name = local.virtual_network_name + address_space = var.vnet_address_space + log_analytics_workspace_id = module.log_analytics_workspace.id + tags = var.tags + + subnets = [ + { + name : var.webapp_subnet_name + address_prefixes : var.webapp_subnet_address_prefix + private_endpoint_network_policies : "Enabled" + private_link_service_network_policies_enabled : false + delegation : "Microsoft.Web/serverFarms" + }, + { + name : var.pe_subnet_name + address_prefixes : var.pe_subnet_address_prefix + private_endpoint_network_policies : "Enabled" + private_link_service_network_policies_enabled : false + delegation : null + } + ] +} + +module "webapp_subnet_network_security_group" { + source = "./modules/network_security_group" + name = local.webapp_subnet_nsg_name + resource_group_name = azurerm_resource_group.example.name + location = var.location + log_analytics_workspace_id = module.log_analytics_workspace.id + tags = var.tags + subnet_ids = { + (var.webapp_subnet_name) = module.virtual_network.subnet_ids[var.webapp_subnet_name] + } +} + +module "pe_subnet_network_security_group" { + source = "./modules/network_security_group" + name = local.pe_subnet_nsg_name + resource_group_name = azurerm_resource_group.example.name + location = var.location + log_analytics_workspace_id = module.log_analytics_workspace.id + tags = var.tags + subnet_ids = { + (var.pe_subnet_name) = module.virtual_network.subnet_ids[var.pe_subnet_name] + } +} + +module "nat_gateway" { + source = "./modules/nat_gateway" + name = local.nat_gateway_name + resource_group_name = azurerm_resource_group.example.name + location = var.location + sku_name = var.nat_gateway_sku_name + idle_timeout_in_minutes = var.nat_gateway_idle_timeout_in_minutes + zones = var.nat_gateway_zones + subnet_ids = { + (var.webapp_subnet_name) = module.virtual_network.subnet_ids[var.webapp_subnet_name] + } + tags = var.tags +} + +module "private_dns_zone" { + source = "./modules/private_dns_zone" + name = local.private_dns_zone_name + resource_group_name = azurerm_resource_group.example.name + tags = var.tags + virtual_networks_to_link = { + (module.virtual_network.name) = { + subscription_id = data.azurerm_client_config.current.subscription_id + resource_group_name = azurerm_resource_group.example.name + } + } +} + +module "postgres_flexible_server" { + source = "./modules/postgres_flexible_server" + name = local.postgres_server_name + resource_group_name = azurerm_resource_group.example.name + location = azurerm_resource_group.example.location + administrator_login = var.pg_admin_login + administrator_password = var.pg_admin_password + postgresql_version = var.pg_version + sku_name = var.pg_sku_name + storage_mb = var.pg_storage_mb + backup_retention_days = var.pg_backup_retention_days + database_name = var.pg_database_name + log_analytics_workspace_id = module.log_analytics_workspace.id + tags = var.tags +} + +module "private_endpoint" { + source = "./modules/private_endpoint" + name = local.private_endpoint_name + location = var.location + resource_group_name = azurerm_resource_group.example.name + subnet_id = module.virtual_network.subnet_ids[var.pe_subnet_name] + tags = var.tags + private_connection_resource_id = module.postgres_flexible_server.id + is_manual_connection = false + subresource_name = "postgresqlServer" + private_dns_zone_group_name = "private-dns-zone-group" + private_dns_zone_group_ids = [module.private_dns_zone.id] +} + +module "app_service_plan" { + source = "./modules/app_service_plan" + name = local.app_service_plan_name + resource_group_name = azurerm_resource_group.example.name + location = azurerm_resource_group.example.location + sku_name = var.sku_name + os_type = var.os_type + zone_balancing_enabled = var.zone_balancing_enabled + log_analytics_workspace_id = module.log_analytics_workspace.id + tags = var.tags +} + +# Note: PG_USER and PG_PASSWORD are intentionally NOT set here. The post-apply step in +# deploy.sh connects to the server (via the firewall-allowed public endpoint) as the admin, +# creates the application role `testuser`, seeds the schema, and then writes `PG_USER` / +# `PG_PASSWORD` onto this Web App via `az webapp config appsettings set`. The server-admin +# login is never exposed to the Web App at runtime. +module "web_app" { + source = "./modules/web_app" + name = local.web_app_name + resource_group_name = azurerm_resource_group.example.name + location = azurerm_resource_group.example.location + service_plan_id = module.app_service_plan.id + https_only = var.https_only + virtual_network_subnet_id = module.virtual_network.subnet_ids[var.webapp_subnet_name] + vnet_route_all_enabled = true + public_network_access_enabled = var.public_network_access_enabled + always_on = var.always_on + http2_enabled = var.http2_enabled + minimum_tls_version = var.minimum_tls_version + python_version = var.python_version + repo_url = var.repo_url + log_analytics_workspace_id = module.log_analytics_workspace.id + tags = var.tags + + app_settings = { + SCM_DO_BUILD_DURING_DEPLOYMENT = "true" + ENABLE_ORYX_BUILD = "true" + PG_HOST = local.pg_host + PG_PORT = local.pg_port + PG_DATABASE = module.postgres_flexible_server.database_name + LOGIN_NAME = var.login_name + WEBSITES_PORT = var.websites_port + } +} diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/app_service_plan/main.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/app_service_plan/main.tf new file mode 100644 index 0000000..98a3e4d --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/app_service_plan/main.tf @@ -0,0 +1,25 @@ +resource "azurerm_service_plan" "example" { + name = var.name + resource_group_name = var.resource_group_name + location = var.location + sku_name = var.sku_name + os_type = var.os_type + zone_balancing_enabled = var.zone_balancing_enabled + tags = var.tags + + lifecycle { + ignore_changes = [ + tags + ] + } +} + +resource "azurerm_monitor_diagnostic_setting" "example" { + name = "DiagnosticsSettings" + target_resource_id = azurerm_service_plan.example.id + log_analytics_workspace_id = var.log_analytics_workspace_id + + enabled_metric { + category = "AllMetrics" + } +} \ No newline at end of file diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/app_service_plan/outputs.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/app_service_plan/outputs.tf new file mode 100644 index 0000000..f1455ea --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/app_service_plan/outputs.tf @@ -0,0 +1,19 @@ +output "id" { + value = azurerm_service_plan.example.id + description = "Specifies the resource id of the App Service Plan" +} + +output "name" { + value = azurerm_service_plan.example.name + description = "Specifies the name of the App Service Plan" +} + +output "location" { + value = azurerm_service_plan.example.location + description = "Specifies the location of the App Service Plan" +} + +output "resource_group_name" { + value = azurerm_service_plan.example.resource_group_name + description = "Specifies the resource group name of the App Service Plan" +} diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/app_service_plan/variables.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/app_service_plan/variables.tf new file mode 100644 index 0000000..e543066 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/app_service_plan/variables.tf @@ -0,0 +1,42 @@ +variable "resource_group_name" { + description = "(Required) Specifies the name of the resource group." + type = string +} + +variable "location" { + description = "(Required) Specifies the location for the App Service Plan." + type = string +} + +variable "name" { + description = "(Required) Specifies the name of the App Service Plan." + type = string +} + +variable "sku_name" { + description = "(Required) Specifies the SKU name for the App Service Plan." + type = string +} + +variable "os_type" { + description = "(Required) Specifies the O/S type for the App Services to be hosted in this plan." + type = string + default = "Linux" +} + +variable "zone_balancing_enabled" { + description = "(Optional) Should the Service Plan balance across Availability Zones in the region." + type = bool + default = false +} + +variable "tags" { + description = "(Optional) Specifies the tags to be applied to the resources." + type = map(any) + default = {} +} + +variable "log_analytics_workspace_id" { + description = "Specifies the resource id of the Azure Log Analytics workspace." + type = string +} \ No newline at end of file diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/log_analytics/main.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/log_analytics/main.tf new file mode 100644 index 0000000..2f88414 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/log_analytics/main.tf @@ -0,0 +1,14 @@ +resource "azurerm_log_analytics_workspace" "example" { + name = var.name + location = var.location + resource_group_name = var.resource_group_name + sku = var.sku + tags = var.tags + retention_in_days = var.retention_in_days != "" ? var.retention_in_days : null + + lifecycle { + ignore_changes = [ + tags + ] + } +} diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/log_analytics/output.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/log_analytics/output.tf new file mode 100644 index 0000000..fe2c398 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/log_analytics/output.tf @@ -0,0 +1,30 @@ +output "id" { + value = azurerm_log_analytics_workspace.example.id + description = "Specifies the resource id of the log analytics workspace" +} + +output "location" { + value = azurerm_log_analytics_workspace.example.location + description = "Specifies the location of the log analytics workspace" +} + +output "name" { + value = azurerm_log_analytics_workspace.example.name + description = "Specifies the name of the log analytics workspace" +} + +output "resource_group_name" { + value = azurerm_log_analytics_workspace.example.resource_group_name + description = "Specifies the name of the resource group that contains the log analytics workspace" +} + +output "workspace_id" { + value = azurerm_log_analytics_workspace.example.workspace_id + description = "Specifies the workspace id of the log analytics workspace" +} + +output "primary_shared_key" { + value = azurerm_log_analytics_workspace.example.primary_shared_key + description = "Specifies the workspace key of the log analytics workspace" + sensitive = true +} diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/log_analytics/variables.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/log_analytics/variables.tf new file mode 100644 index 0000000..2db6a01 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/log_analytics/variables.tf @@ -0,0 +1,37 @@ +variable "resource_group_name" { + description = "(Required) Specifies the name of the resource group." + type = string +} + +variable "location" { + description = "(Required) Specifies the location of the Azure Log Analytics workspace" + type = string +} + +variable "name" { + description = "(Required) Specifies the name of the Azure Log Analytics workspace" + type = string +} + +variable "sku" { + description = "(Optional) Specifies the sku of the Azure Log Analytics workspace" + type = string + default = "PerGB2018" + + validation { + condition = contains(["Free", "Standalone", "PerNode", "PerGB2018"], var.sku) + error_message = "The log analytics sku is incorrect." + } +} + +variable "tags" { + description = "(Optional) Specifies the tags of the Azure Log Analytics workspace." + type = map(any) + default = {} +} + +variable "retention_in_days" { + description = " (Optional) Specifies the workspace data retention in days. Possible values are either 7 (Free Tier only) or range between 30 and 730." + type = number + default = 30 +} diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/nat_gateway/main.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/nat_gateway/main.tf new file mode 100644 index 0000000..cc384af --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/nat_gateway/main.tf @@ -0,0 +1,42 @@ +resource "azurerm_public_ip" "example" { + name = "${var.name}PublicIp" + location = var.location + resource_group_name = var.resource_group_name + allocation_method = "Static" + sku = "Standard" + zones = var.zones + tags = var.tags + + lifecycle { + ignore_changes = [ + tags + ] + } +} + +resource "azurerm_nat_gateway" "example" { + name = var.name + location = var.location + resource_group_name = var.resource_group_name + sku_name = var.sku_name + idle_timeout_in_minutes = var.idle_timeout_in_minutes + zones = var.zones + tags = var.tags + + lifecycle { + ignore_changes = [ + tags + ] + } +} + +resource "azurerm_nat_gateway_public_ip_association" "example" { + nat_gateway_id = azurerm_nat_gateway.example.id + public_ip_address_id = azurerm_public_ip.example.id +} + +resource "azurerm_subnet_nat_gateway_association" "example" { + for_each = var.subnet_ids + subnet_id = each.value + nat_gateway_id = azurerm_nat_gateway.example.id +} diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/nat_gateway/output.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/nat_gateway/output.tf new file mode 100644 index 0000000..1e3fd03 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/nat_gateway/output.tf @@ -0,0 +1,14 @@ +output "name" { + value = azurerm_nat_gateway.example.name + description = "Specifies the name of the Azure NAT Gateway" +} + +output "id" { + value = azurerm_nat_gateway.example.id + description = "Specifies the resource id of the Azure NAT Gateway" +} + +output "public_ip_address" { + value = azurerm_public_ip.example.ip_address + description = "Contains the public IP address of the Azure NAT Gateway." +} diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/nat_gateway/variables.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/nat_gateway/variables.tf new file mode 100644 index 0000000..c1c8ea5 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/nat_gateway/variables.tf @@ -0,0 +1,43 @@ +variable "resource_group_name" { + description = "(Required) Specifies the name of the resource group." + type = string +} + +variable "location" { + description = "(Required) Specifies the location of the Azure NAT Gateway" + type = string +} + +variable "name" { + description = "(Required) Specifies the name of the Azure NAT Gateway" + type = string +} + +variable "tags" { + description = "(Optional) Specifies the tags of the Azure NAT Gateway" + type = map(any) + default = {} +} + +variable "sku_name" { + description = "(Optional) The SKU which should be used. At this time the only supported value is Standard. Defaults to Standard" + type = string + default = "Standard" +} + +variable "idle_timeout_in_minutes" { + description = "(Optional) The idle timeout which should be used in minutes. Defaults to 4." + type = number + default = 4 +} + +variable "zones" { + description = " (Optional) A list of Availability Zones in which this NAT Gateway should be located. Changing this forces a new NAT Gateway to be created." + type = list(string) + default = [] +} + +variable "subnet_ids" { + description = "(Required) A map of subnet ids to associate with the NAT Gateway" + type = map(string) +} \ No newline at end of file diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/network_security_group/main.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/network_security_group/main.tf new file mode 100644 index 0000000..c649652 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/network_security_group/main.tf @@ -0,0 +1,53 @@ +resource "azurerm_network_security_group" "example" { + name = var.name + resource_group_name = var.resource_group_name + location = var.location + tags = var.tags + + dynamic "security_rule" { + for_each = try(var.security_rules, []) + content { + name = try(security_rule.value.name, null) + priority = try(security_rule.value.priority, null) + direction = try(security_rule.value.direction, null) + access = try(security_rule.value.access, null) + protocol = try(security_rule.value.protocol, null) + source_port_range = try(security_rule.value.source_port_range, null) + source_port_ranges = try(security_rule.value.source_port_ranges, null) + destination_port_range = try(security_rule.value.destination_port_range, null) + destination_port_ranges = try(security_rule.value.destination_port_ranges, null) + source_address_prefix = try(security_rule.value.source_address_prefix, null) + source_address_prefixes = try(security_rule.value.source_address_prefixes, null) + destination_address_prefix = try(security_rule.value.destination_address_prefix, null) + destination_address_prefixes = try(security_rule.value.destination_address_prefixes, null) + source_application_security_group_ids = try(security_rule.value.source_application_security_group_ids, null) + destination_application_security_group_ids = try(security_rule.value.destination_application_security_group_ids, null) + } + } + + lifecycle { + ignore_changes = [ + tags + ] + } +} + +resource "azurerm_subnet_network_security_group_association" "example" { + for_each = var.subnet_ids + subnet_id = each.value + network_security_group_id = azurerm_network_security_group.example.id +} + +resource "azurerm_monitor_diagnostic_setting" "settings" { + name = "DiagnosticsSettings" + target_resource_id = azurerm_network_security_group.example.id + log_analytics_workspace_id = var.log_analytics_workspace_id + + enabled_log { + category = "NetworkSecurityGroupEvent" + } + + enabled_log { + category = "NetworkSecurityGroupRuleCounter" + } +} diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/network_security_group/outputs.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/network_security_group/outputs.tf new file mode 100644 index 0000000..b8ca8d5 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/network_security_group/outputs.tf @@ -0,0 +1,9 @@ +output "name" { + description = "Specifies the name of the network security group" + value = azurerm_network_security_group.example.name +} + +output "id" { + description = "Specifies the resource id of the network security group" + value = azurerm_network_security_group.example.id +} diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/network_security_group/variables.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/network_security_group/variables.tf new file mode 100644 index 0000000..04eb07e --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/network_security_group/variables.tf @@ -0,0 +1,51 @@ +variable "name" { + description = "(Required) Specifies the name of the Azure Network Security Group" + type = string +} + +variable "resource_group_name" { + description = "(Required) Specifies the name of the resource group. of the Azure Network Security Group" + type = string +} + +variable "location" { + description = "(Required) Specifies the location of the Azure Network Security Group" + type = string +} + +variable "security_rules" { + description = "(Optional) Specifies the security rules of the Azure Network Security Group" + type = list(object({ + name = string + priority = number + direction = string + access = string + protocol = string + source_port_range = string + source_port_ranges = list(string) + destination_port_range = string + destination_port_ranges = list(string) + source_address_prefix = string + source_address_prefixes = list(string) + destination_address_prefix = string + destination_address_prefixes = list(string) + source_application_security_group_ids = list(string) + destination_application_security_group_ids = list(string) + })) + default = [] +} + +variable "subnet_ids" { + description = "(Required) A map of subnet ids to associate with the Azure Network Security Group" + type = map(string) +} + +variable "tags" { + description = "(Optional) Specifies the tags of the Azure Network Security Group" + default = {} +} + +variable "log_analytics_workspace_id" { + description = "Specifies the resource id of the Azure Log Analytics workspace" + type = string +} diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/postgres_flexible_server/main.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/postgres_flexible_server/main.tf new file mode 100644 index 0000000..443327b --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/postgres_flexible_server/main.tf @@ -0,0 +1,46 @@ +resource "azurerm_postgresql_flexible_server" "this" { + name = var.name + resource_group_name = var.resource_group_name + location = var.location + version = var.postgresql_version + administrator_login = var.administrator_login + administrator_password = var.administrator_password + sku_name = var.sku_name + storage_mb = var.storage_mb + backup_retention_days = var.backup_retention_days + geo_redundant_backup_enabled = false + # Public access is enabled and a permissive firewall rule lets the deploy machine reach the + # server just long enough to run the post-deploy psql bootstrap. The Web App itself reaches + # the server through a Private Endpoint (see the private_endpoint module in main.tf). + public_network_access_enabled = true + + tags = var.tags +} + +resource "azurerm_postgresql_flexible_server_database" "this" { + name = var.database_name + server_id = azurerm_postgresql_flexible_server.this.id + charset = var.database_charset + collation = var.database_collation +} + +resource "azurerm_postgresql_flexible_server_firewall_rule" "allow_all" { + name = var.firewall_rule_name + server_id = azurerm_postgresql_flexible_server.this.id + start_ip_address = var.firewall_start_ip + end_ip_address = var.firewall_end_ip +} + +resource "azurerm_monitor_diagnostic_setting" "this" { + name = "DiagnosticsSettings" + target_resource_id = azurerm_postgresql_flexible_server.this.id + log_analytics_workspace_id = var.log_analytics_workspace_id + + enabled_log { + category = "PostgreSQLLogs" + } + + enabled_metric { + category = "AllMetrics" + } +} diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/postgres_flexible_server/outputs.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/postgres_flexible_server/outputs.tf new file mode 100644 index 0000000..faccfe8 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/postgres_flexible_server/outputs.tf @@ -0,0 +1,15 @@ +output "id" { + value = azurerm_postgresql_flexible_server.this.id +} + +output "name" { + value = azurerm_postgresql_flexible_server.this.name +} + +output "fqdn" { + value = azurerm_postgresql_flexible_server.this.fqdn +} + +output "database_name" { + value = azurerm_postgresql_flexible_server_database.this.name +} diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/postgres_flexible_server/variables.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/postgres_flexible_server/variables.tf new file mode 100644 index 0000000..d8bd65a --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/postgres_flexible_server/variables.tf @@ -0,0 +1,81 @@ +variable "name" { + description = "Name of the PostgreSQL flexible server." + type = string +} + +variable "resource_group_name" { + type = string +} + +variable "location" { + type = string +} + +variable "administrator_login" { + type = string +} + +variable "administrator_password" { + type = string + sensitive = true +} + +variable "postgresql_version" { + type = string + default = "16" +} + +variable "sku_name" { + type = string + default = "B_Standard_B1ms" +} + +variable "storage_mb" { + type = number + default = 32768 +} + +variable "backup_retention_days" { + type = number + default = 7 +} + +variable "database_name" { + type = string + default = "PlannerDB" +} + +variable "database_charset" { + type = string + default = "UTF8" +} + +variable "database_collation" { + type = string + default = "en_US.utf8" +} + +variable "firewall_rule_name" { + description = "Server-level firewall rule that allows the deploy machine to run the psql bootstrap." + type = string + default = "AllowAllIPs" +} + +variable "firewall_start_ip" { + type = string + default = "0.0.0.0" +} + +variable "firewall_end_ip" { + type = string + default = "255.255.255.255" +} + +variable "log_analytics_workspace_id" { + type = string +} + +variable "tags" { + type = map(string) + default = {} +} diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/private_dns_zone/main.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/private_dns_zone/main.tf new file mode 100644 index 0000000..393f9dc --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/private_dns_zone/main.tf @@ -0,0 +1,26 @@ +resource "azurerm_private_dns_zone" "example" { + name = var.name + resource_group_name = var.resource_group_name + tags = var.tags + + lifecycle { + ignore_changes = [ + tags + ] + } +} + +resource "azurerm_private_dns_zone_virtual_network_link" "example" { + for_each = var.virtual_networks_to_link + + name = "link_to_${lower(basename(each.key))}" + resource_group_name = var.resource_group_name + private_dns_zone_name = azurerm_private_dns_zone.example.name + virtual_network_id = "/subscriptions/${each.value.subscription_id}/resourceGroups/${each.value.resource_group_name}/providers/Microsoft.Network/virtualNetworks/${each.key}" + + lifecycle { + ignore_changes = [ + tags + ] + } +} diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/private_dns_zone/outputs.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/private_dns_zone/outputs.tf new file mode 100644 index 0000000..ca141f3 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/private_dns_zone/outputs.tf @@ -0,0 +1,9 @@ +output "name" { + description = "Specifies the name of the private dns zone" + value = azurerm_private_dns_zone.example.name +} + +output "id" { + description = "Specifies the resource id of the private dns zone" + value = azurerm_private_dns_zone.example.id +} diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/private_dns_zone/variables.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/private_dns_zone/variables.tf new file mode 100644 index 0000000..8d0c0cc --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/private_dns_zone/variables.tf @@ -0,0 +1,20 @@ +variable "name" { + description = "(Required) Specifies the name of the Azure Private DNS Zone" + type = string +} + +variable "resource_group_name" { + description = "(Required) Specifies the name of the resource group. of the Azure Private DNS Zone" + type = string +} + +variable "tags" { + description = "(Optional) Specifies the tags of the Azure Private DNS Zone" + default = {} +} + +variable "virtual_networks_to_link" { + description = "(Optional) Specifies the subscription id, resource group name, and name of the virtual networks to which create a virtual network link" + type = map(any) + default = {} +} diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/private_endpoint/main.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/private_endpoint/main.tf new file mode 100644 index 0000000..62bfbfb --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/private_endpoint/main.tf @@ -0,0 +1,26 @@ +resource "azurerm_private_endpoint" "example" { + name = var.name + location = var.location + resource_group_name = var.resource_group_name + subnet_id = var.subnet_id + tags = var.tags + + private_service_connection { + name = "${var.name}Connection" + private_connection_resource_id = var.private_connection_resource_id + is_manual_connection = var.is_manual_connection + subresource_names = try([var.subresource_name], null) + request_message = try(var.request_message, null) + } + + private_dns_zone_group { + name = var.private_dns_zone_group_name + private_dns_zone_ids = var.private_dns_zone_group_ids + } + + lifecycle { + ignore_changes = [ + tags + ] + } +} diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/private_endpoint/outputs.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/private_endpoint/outputs.tf new file mode 100644 index 0000000..367ab51 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/private_endpoint/outputs.tf @@ -0,0 +1,19 @@ +output "name" { + description = "Specifies the name of the private endpoint." + value = azurerm_private_endpoint.example.name +} + +output "id" { + description = "Specifies the resource id of the private endpoint." + value = azurerm_private_endpoint.example.id +} + +output "private_dns_zone_group" { + description = "Specifies the private dns zone group of the private endpoint." + value = azurerm_private_endpoint.example.private_dns_zone_group +} + +output "private_dns_zone_configs" { + description = "Specifies the private dns zone(s) configuration" + value = azurerm_private_endpoint.example.private_dns_zone_configs +} diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/private_endpoint/variables.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/private_endpoint/variables.tf new file mode 100644 index 0000000..2b7a888 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/private_endpoint/variables.tf @@ -0,0 +1,61 @@ +variable "name" { + description = "(Required) Specifies the name of the Azure Private Endpoint. Changing this forces a new resource to be created." + type = string +} + +variable "resource_group_name" { + description = "(Required) The name of the resource group. Changing this forces a new resource to be created." + type = string +} + +variable "private_connection_resource_id" { + description = "(Required) Specifies the resource id of the private link service" + type = string +} + +variable "location" { + description = "(Required) Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created." + type = string +} + +variable "subnet_id" { + description = "(Required) Specifies the resource id of the subnet" + type = string +} + +variable "is_manual_connection" { + description = "(Optional) Specifies whether the Azure Private Endpoint connection requires manual approval from the remote resource owner." + type = string + default = false +} + +variable "subresource_name" { + description = "(Optional) Specifies a subresource name which the Azure Private Endpoint is able to connect to." + type = string + default = null +} + +variable "request_message" { + description = "(Optional) Specifies a message passed to the owner of the remote resource when the Azure Private Endpoint attempts to establish the connection to the remote resource." + type = string + default = null +} + +variable "private_dns_zone_group_name" { + description = "(Required) Specifies the Name of the Private DNS Zone Group. Changing this forces a new private_dns_zone_group resource to be created." + type = string +} + +variable "private_dns_zone_group_ids" { + description = "(Required) Specifies the list of Private DNS Zones to include within the private_dns_zone_group." + type = list(string) +} + +variable "tags" { + description = "(Optional) Specifies the tags of the Azure Azure Private Endpoint." + default = {} +} + +variable "private_dns" { + default = {} +} diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/virtual_network/main.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/virtual_network/main.tf new file mode 100644 index 0000000..2b7af04 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/virtual_network/main.tf @@ -0,0 +1,58 @@ +resource "azurerm_virtual_network" "example" { + name = var.vnet_name + address_space = var.address_space + location = var.location + resource_group_name = var.resource_group_name + tags = var.tags + + lifecycle { + ignore_changes = [ + tags + ] + } +} + +resource "azurerm_subnet" "example" { + for_each = { for subnet in var.subnets : subnet.name => subnet if subnet != null } + + name = each.key + resource_group_name = var.resource_group_name + virtual_network_name = azurerm_virtual_network.example.name + address_prefixes = each.value.address_prefixes + private_endpoint_network_policies = each.value.private_endpoint_network_policies + private_link_service_network_policies_enabled = each.value.private_link_service_network_policies_enabled + + dynamic "delegation" { + for_each = each.value.delegation != null ? [each.value.delegation] : [] + content { + name = "delegation" + + service_delegation { + name = delegation.value + } + } + } + + lifecycle { + ignore_changes = [ + delegation + ] + } +} + +resource "azurerm_monitor_diagnostic_setting" "example" { + name = "DiagnosticsSettings" + target_resource_id = azurerm_virtual_network.example.id + log_analytics_workspace_id = var.log_analytics_workspace_id + + # NOTE: we deliberately do NOT add `enabled_metric { category = "AllMetrics" }` here. + # Many Azure subscriptions have a built-in or org-level Azure Policy + # (DeployIfNotExists) that auto-creates a `diagnosticSettings` resource on every new VNet + # forwarding `AllMetrics` to a workspace. Azure rejects a second diag setting that targets + # the same (resource, category, sink) triplet with a 409 Conflict — even if its name is + # different. The policy-managed one already covers AllMetrics; we contribute only the + # VMProtectionAlerts logs (typically NOT included by the default policy). + enabled_log { + category = "VMProtectionAlerts" + } +} diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/virtual_network/outputs.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/virtual_network/outputs.tf new file mode 100644 index 0000000..b464308 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/virtual_network/outputs.tf @@ -0,0 +1,19 @@ +output "name" { + description = "Specifies the name of the virtual network" + value = azurerm_virtual_network.example.name +} + +output "vnet_id" { + description = "Specifies the resource id of the virtual network" + value = azurerm_virtual_network.example.id +} + +output "subnet_ids" { + description = "Contains a list of the the resource id of the subnets" + value = { for subnet in azurerm_subnet.example : subnet.name => subnet.id } +} + +output "subnet_ids_as_list" { + description = "Returns the list of the subnet ids as a list of strings." + value = [for subnet in azurerm_subnet.example : subnet.id] +} diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/virtual_network/variables.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/virtual_network/variables.tf new file mode 100644 index 0000000..f8c0b0e --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/virtual_network/variables.tf @@ -0,0 +1,40 @@ +variable "resource_group_name" { + description = "Resource Group name" + type = string +} + +variable "location" { + description = "Location in which to deploy the network" + type = string +} + +variable "vnet_name" { + description = "VNET name" + type = string +} + +variable "address_space" { + description = "VNET address space" + type = list(string) +} + +variable "subnets" { + description = "Subnets configuration" + type = list(object({ + name = string + address_prefixes = list(string) + private_endpoint_network_policies = string + private_link_service_network_policies_enabled = bool + delegation = string + })) +} + +variable "tags" { + description = "(Optional) Specifies the tags of the Azure Virtual Network resource." + default = {} +} + +variable "log_analytics_workspace_id" { + description = "Specifies the resource id of the Azure Log Analytics workspace." + type = string +} diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/web_app/main.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/web_app/main.tf new file mode 100644 index 0000000..64e9176 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/web_app/main.tf @@ -0,0 +1,81 @@ +resource "azurerm_linux_web_app" "example" { + name = var.name + resource_group_name = var.resource_group_name + location = var.location + service_plan_id = var.service_plan_id + https_only = var.https_only + virtual_network_subnet_id = var.virtual_network_subnet_id + public_network_access_enabled = var.public_network_access_enabled + client_affinity_enabled = false + tags = var.tags + + identity { + type = "SystemAssigned" + } + + site_config { + always_on = var.always_on + http2_enabled = var.http2_enabled + minimum_tls_version = var.minimum_tls_version + vnet_route_all_enabled = var.vnet_route_all_enabled + application_stack { + python_version = var.python_version + } + } + + app_settings = var.app_settings + + lifecycle { + ignore_changes = [ + tags + ] + } +} + +# Deploy code from a public GitHub repo +resource "azurerm_app_service_source_control" "example" { + count = var.repo_url == "" ? 0 : 1 + app_id = azurerm_linux_web_app.example.id + repo_url = var.repo_url + branch = var.repo_branch + use_manual_integration = true + use_mercurial = false +} + +resource "azurerm_monitor_diagnostic_setting" "example" { + name = "DiagnosticsSettings" + target_resource_id = azurerm_linux_web_app.example.id + log_analytics_workspace_id = var.log_analytics_workspace_id + + enabled_log { + category = "AppServiceHTTPLogs" + } + + enabled_log { + category = "AppServiceConsoleLogs" + } + + enabled_log { + category = "AppServiceAppLogs" + } + + enabled_log { + category = "AppServiceAuditLogs" + } + + enabled_log { + category = "AppServiceIPSecAuditLogs" + } + + enabled_log { + category = "AppServicePlatformLogs" + } + + enabled_log { + category = "AppServiceAuthenticationLogs" + } + + enabled_metric { + category = "AllMetrics" + } +} \ No newline at end of file diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/web_app/outputs.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/web_app/outputs.tf new file mode 100644 index 0000000..d7b6981 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/web_app/outputs.tf @@ -0,0 +1,24 @@ +output "id" { + value = azurerm_linux_web_app.example.id + description = "Specifies the resource id of the Web App" +} + +output "name" { + value = azurerm_linux_web_app.example.name + description = "Specifies the name of the Web App" +} + +output "default_hostname" { + value = azurerm_linux_web_app.example.default_hostname + description = "Specifies the default hostname of the Web App" +} + +output "outbound_ip_addresses" { + value = azurerm_linux_web_app.example.outbound_ip_addresses + description = "Specifies the outbound IP addresses of the Web App" +} + +output "principal_id" { + value = azurerm_linux_web_app.example.identity[0].principal_id + description = "Specifies the Principal ID of the System Assigned Managed Identity" +} diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/modules/web_app/variables.tf b/samples/web-app-postgresql-flexible-server/python/terraform/modules/web_app/variables.tf new file mode 100644 index 0000000..a1ea892 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/modules/web_app/variables.tf @@ -0,0 +1,96 @@ +variable "resource_group_name" { + description = "(Required) Specifies the name of the resource group." + type = string +} + +variable "location" { + description = "(Required) Specifies the location for the Web App." + type = string +} + +variable "name" { + description = "(Required) Specifies the name of the Web App." + type = string +} + +variable "service_plan_id" { + description = "(Required) Specifies the ID of the App Service Plan within which to create this Web App." + type = string +} + +variable "https_only" { + description = "(Optional) Specifies whether the Web App requires HTTPS connections." + type = bool + default = false +} + +variable "virtual_network_subnet_id" { + description = "(Optional) The subnet id which will be used by this Web App for regional virtual network integration." + type = string + default = null +} + +variable "vnet_route_all_enabled" { + description = "(Optional) Specifies whether to route all traffic from the Web App into the virtual network. This is only applicable if virtual_network_subnet_id is specified. Defaults to false." + type = bool + default = false +} + +variable "public_network_access_enabled" { + description = "(Optional) Specifies whether the public network access is enabled or disabled." + type = bool + default = true +} + +variable "always_on" { + description = "(Optional) Specifies whether the Web App is Always On enabled." + type = bool + default = true +} + +variable "http2_enabled" { + description = "(Optional) Specifies whether HTTP/2 is enabled for the Web App." + type = bool + default = false +} + +variable "minimum_tls_version" { + description = "(Optional) Specifies the minimum version of TLS required for SSL requests." + type = string + default = "1.2" +} + +variable "python_version" { + description = "(Optional) Specifies the version of Python to run." + type = string + default = "3.12" +} + +variable "app_settings" { + description = "(Optional) A map of key-value pairs for App Settings." + type = map(string) + default = {} +} + +variable "repo_url" { + description = "(Optional) Specifies the Git repository URL." + type = string + default = "" +} + +variable "repo_branch" { + description = "(Optional) Specifies the Git repository branch." + type = string + default = "main" +} + +variable "tags" { + description = "(Optional) Specifies the tags to be applied to the resources." + type = map(any) + default = {} +} + +variable "log_analytics_workspace_id" { + description = "Specifies the resource id of the Azure Log Analytics workspace." + type = string +} diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/outputs.tf b/samples/web-app-postgresql-flexible-server/python/terraform/outputs.tf new file mode 100644 index 0000000..ae10778 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/outputs.tf @@ -0,0 +1,27 @@ +output "resource_group_name" { + value = local.resource_group_name +} + +output "postgres_server_name" { + value = module.postgres_flexible_server.name +} + +output "postgres_fqdn" { + value = module.postgres_flexible_server.fqdn +} + +output "postgres_database_name" { + value = module.postgres_flexible_server.database_name +} + +output "app_service_plan_name" { + value = module.app_service_plan.name +} + +output "web_app_name" { + value = module.web_app.name +} + +output "web_app_url" { + value = module.web_app.default_hostname +} diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/providers.tf b/samples/web-app-postgresql-flexible-server/python/terraform/providers.tf new file mode 100644 index 0000000..3e04500 --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/providers.tf @@ -0,0 +1,24 @@ +terraform { + required_providers { + azurerm = { + source = "hashicorp/azurerm" + version = "=4.60.0" + } + } +} + +provider "azurerm" { + features { + resource_group { + prevent_deletion_if_contains_resources = false + } + } + + # Set the hostname of the Azure Metadata Service (for example management.azure.com) + # used to obtain the Cloud Environment when using LocalStack's Azure emulator. + # This allows the provider to correctly identify the environment and avoid making calls to the real Azure endpoints. + metadata_host = "localhost.localstack.cloud:4566" + + # Set the subscription ID to a dummy value when using LocalStack's Azure emulator. + subscription_id = "00000000-0000-0000-0000-000000000000" +} \ No newline at end of file diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/terraform.tfvars b/samples/web-app-postgresql-flexible-server/python/terraform/terraform.tfvars new file mode 100644 index 0000000..919af4f --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/terraform.tfvars @@ -0,0 +1,3 @@ +prefix = "local" +suffix = "test" +location = "westeurope" \ No newline at end of file diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/variables.tf b/samples/web-app-postgresql-flexible-server/python/terraform/variables.tf new file mode 100644 index 0000000..32d2b3d --- /dev/null +++ b/samples/web-app-postgresql-flexible-server/python/terraform/variables.tf @@ -0,0 +1,206 @@ +variable "prefix" { + description = "Prefix for the name of the Azure resources." + type = string + default = "local" + + validation { + condition = var.prefix == null || length(var.prefix) >= 2 + error_message = "The prefix must be at least 2 characters long." + } +} + +variable "suffix" { + description = "Suffix for the name of the Azure resources." + type = string + default = "test" + + validation { + condition = var.suffix == null || length(var.suffix) >= 2 + error_message = "The suffix must be at least 2 characters long." + } +} + +variable "location" { + description = "Specifies the location for all resources." + type = string + default = "westeurope" +} + +# ----------------------------------------------------------------------------- +# PostgreSQL flexible server +# ----------------------------------------------------------------------------- +variable "pg_admin_login" { + description = "Administrator login for the PostgreSQL flexible server." + type = string + default = "pgadmin" +} + +variable "pg_admin_password" { + description = "Administrator password for the PostgreSQL flexible server. Pass via -var or the PG_ADMIN_PASSWORD env var; do NOT commit." + type = string + sensitive = true + default = "P@ssw0rd1234!" +} + +variable "pg_version" { + description = "PostgreSQL major version." + type = string + default = "16" + + validation { + condition = contains(["13", "14", "15", "16", "17"], var.pg_version) + error_message = "The pg_version must be one of: 13, 14, 15, 16, 17." + } +} + +variable "pg_sku_name" { + description = "Compute SKU for the PostgreSQL flexible server (e.g. B_Standard_B1ms)." + type = string + default = "B_Standard_B1ms" +} + +variable "pg_storage_mb" { + description = "Storage size in MB for the PostgreSQL flexible server." + type = number + default = 32768 +} + +variable "pg_backup_retention_days" { + description = "Backup retention period in days for the PostgreSQL flexible server." + type = number + default = 7 +} + +variable "pg_database_name" { + description = "Name of the application database to create on the PostgreSQL flexible server." + type = string + default = "PlannerDB" +} + +# ----------------------------------------------------------------------------- +# App Service / Web App +# ----------------------------------------------------------------------------- +variable "os_type" { + description = "OS type for the App Service Plan." + type = string + default = "Linux" +} + +variable "zone_balancing_enabled" { + type = bool + default = false +} + +variable "sku_name" { + description = "App Service Plan SKU name." + type = string + default = "S1" +} + +variable "python_version" { + description = "Python runtime version for the Web App." + type = string + default = "3.12" + + validation { + condition = contains(["3.13", "3.12", "3.11", "3.10", "3.9", "3.8", "3.7"], var.python_version) + error_message = "Unsupported python_version." + } +} + +variable "https_only" { + type = bool + default = false +} + +variable "minimum_tls_version" { + type = string + default = "1.2" +} + +variable "always_on" { + type = bool + default = true +} + +variable "http2_enabled" { + type = bool + default = false +} + +variable "public_network_access_enabled" { + type = bool + default = true +} + +variable "repo_url" { + type = string + default = "" + + validation { + condition = var.repo_url == "" || can(regex("^https?://", var.repo_url)) + error_message = "The repo_url must be empty or a valid HTTP/HTTPS URL." + } +} + +variable "login_name" { + description = "Login name for the application (scopes activity ownership)." + type = string + default = "paolo" +} + +variable "websites_port" { + type = number + default = 8000 +} + +variable "tags" { + type = map(string) + default = { + environment = "test" + iac = "terraform" + } +} + +# ----------------------------------------------------------------------------- +# Networking +# ----------------------------------------------------------------------------- +variable "vnet_address_space" { + type = list(string) + default = ["10.0.0.0/8"] +} + +variable "webapp_subnet_name" { + type = string + default = "app-subnet" +} + +variable "webapp_subnet_address_prefix" { + type = list(string) + default = ["10.0.0.0/24"] +} + +variable "pe_subnet_name" { + type = string + default = "pe-subnet" +} + +variable "pe_subnet_address_prefix" { + type = list(string) + default = ["10.0.1.0/24"] +} + +variable "nat_gateway_sku_name" { + type = string + default = "Standard" +} + +variable "nat_gateway_idle_timeout_in_minutes" { + type = number + default = 4 +} + +variable "nat_gateway_zones" { + type = list(string) + default = ["1"] +} diff --git a/samples/web-app-postgresql-flexible-server/python/visio/architecture.vsdx b/samples/web-app-postgresql-flexible-server/python/visio/architecture.vsdx new file mode 100644 index 0000000000000000000000000000000000000000..8a89ad699a7d2a1d4c7bbb3f9db7ffda524cb26e GIT binary patch literal 542962 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 z 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%0D6;x9(_iRp~6$8};*AP>H9TQgWyGxEu&y5HsJ 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 &_b5!bULM^v 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

ON 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 z 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 d9~=&A_;JIC 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 literal 0 HcmV?d00001 From 63896602d80e639eb7ffd6e86b223cc318d7fee5 Mon Sep 17 00:00:00 2001 From: Paolo Salvatori Date: Wed, 27 May 2026 16:23:22 +0200 Subject: [PATCH 2/3] Vacation Planner Sample for Azure Database for PostgreSQL Flexible Server --- .claude/settings.json | 14 +++++++++++ .../python/src/static/favicon.ico | Bin 4286 -> 36791 bytes .../python/src/static/favicon.ico | Bin 4286 -> 36791 bytes .../python/src/static/favicon.ico | Bin 4286 -> 36791 bytes .../python/scripts/call-web-app.sh | 11 +++++---- .../python/terraform/.terraform.lock.hcl | 22 ------------------ .../python/src/static/favicon.ico | Bin 4286 -> 36791 bytes 7 files changed, 21 insertions(+), 26 deletions(-) create mode 100644 .claude/settings.json delete mode 100644 samples/web-app-postgresql-flexible-server/python/terraform/.terraform.lock.hcl diff --git a/.claude/settings.json b/.claude/settings.json new file mode 100644 index 0000000..796a060 --- /dev/null +++ b/.claude/settings.json @@ -0,0 +1,14 @@ +{ + "permissions": { + "additionalDirectories": [ + "/home/paolo/localstack/localstack-pro/localstack-pro-azure" + ], + "allow": [ + "Read(/home/paolo/localstack/localstack-pro/localstack-pro-azure/**)", + "Edit(/home/paolo/localstack/localstack-pro/localstack-pro-azure/**)", + "Write(/home/paolo/localstack/localstack-pro/localstack-pro-azure/**)", + "Bash(cd /home/paolo/localstack/localstack-pro/localstack-pro-azure:*)", + "Bash(/home/paolo/localstack/localstack-pro/localstack-pro-azure/**)" + ] + } +} diff --git a/samples/web-app-cosmosdb-mongodb-api/python/src/static/favicon.ico b/samples/web-app-cosmosdb-mongodb-api/python/src/static/favicon.ico index f1fe50511ca0c33d95783506d4af99426dfc10bf..5b1d5cf37d81c073dbacd66df3f69d9240359dda 100644 GIT binary patch literal 36791 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 diff --git a/samples/web-app-cosmosdb-nosql-api/python/src/static/favicon.ico b/samples/web-app-cosmosdb-nosql-api/python/src/static/favicon.ico index f1fe50511ca0c33d95783506d4af99426dfc10bf..5b1d5cf37d81c073dbacd66df3f69d9240359dda 100644 GIT binary patch literal 36791 zcmagEWmp_d(>6Q{i$hpk0}H_+c#vR=6Wrb1od6-g;x0iFoDJ?0f_tzeIKkZs9^B#M zdhWm9alG?mrfYhnrmO3ms?|=hE{~(xo1m$5$WOx zbWKdfscH3)sLJu8Xzj(xu<713Y$3x$OfLQLhNy8}4uYlTL|y(QT@oUE8%0m6*lERg z1z4=(8HnCaQ${&?+Zzf}>!bD+H;@yHKQSZYu^->grpOP5U0!8&*$!7!B+yIi1l|oaJ(PxauD5x8~L*c^Ib0^4*b-W%Gu9Sovk9&i(=hRu&Fz(W>Lscu7crQLUxrCM;>!e0m{r*JdLi zX1#U$C?c6~)NA%5PB4y7HQH>;zWNGg*Ey4P&2YQ_)ul&FNMtBeU~#9Paylk8=aUY{ zNBfE9?{iK09V9WWab|*Lq!FiiDKA!9(^k%@#WN!qU<{Fj+%hW*|2T4pa@@bMiZZMnTL#@zEc1$?Q2pM5i^aK{)@f|5L zgrL8(V|Z z_P_K+c)0)doEohned9K=)z411+B%JG7yQb^y(oqU*iX!T=Xq{0W%1<+!dPDWy@E9! zHs7r}y&k4(A>gj2{I^^3JZggQ{)fHvVz&W+6pq)3ti z!9XnJ{b2ma@Ik4GevGVKB5b^sp}QmS@Fj)Q762@%ewgc#XF?g6f2_LO=15ljp$_1xD`Q%T-%Hi+CUcHxoLJ%bB8waM({HJ{AthxM&$4xpw>& z)~qgo;6b1%I+Hx9$;au+f^H5XO#2udviAgAWfwD1>eIbLLwd0hXx=X$eo~*N8(gxX z(2H!!ey+c2(Q&0JGf~0^pbS`FO7h1qr>93=$E++~b3R>P%D!Fsu-(4WAnqhbaE67a z_`zwuHr?{KRq(e_1QtJYt! z^!VX&+eDO0B@7(Yvu=)EFx$1dr}$}`YDCQkEt})^1aD--7vtNGE9<9|-OkIndnP-} zY9YZ&m}kt!)HE`HHq&_Z>kEG%4gyWlT#s#avp#-*Zms+A>NY(5BMIE|qs>O&$Z)3X zRS0fk>vlsNVA-?CKmcBaqF=`yzET;uIH$hRV&_r-0oRHNDgczsn|ZiOm+QCHZ*?9D z{-k0MM44Ynm5d@+Um%dGjym_pWK{AMUw#j|q%IT;aG3{WO#UgWAM3i1LAa(KHGX1xH=6DDVRH(*83nISQ^U^IDH)$8Oj$R#{Q6@CQ0}9^bKGzWQ_LjDUQuy-WU0W13&+{^7vjRKUJg)-7yo77u0}i@LsSLXC;-wIJ=;!z-qPYbdPlhVEba-<2@N+Oq8S$ZeKt|HLaA4RAl5qSm#4Pw(bQYGWGpvp?oDC zG8)(7k`k*cThNyeXsdCD1Ixxelo zVHAYCqX%Dod@D%WKdXMmJ!0oQGeWJRH0Bl#A&5vzH47X^_r)1Y#cj z3A^9ukKWvSqjfI4>2QIu`Vwdde)GGGlhjxWooCSiP3Oldw+w0i7zdS4n2C>XI5j-6LNO$Oi-?-O8EZ+@S)HB(EkH`j}ITt0RTPke}G@8 zWA_aBM2{owF6n(d%9M_(<^#%^u=Ro%DFaR71-yGXyt4T+i^;t2S|tbsgJn=SHDae& z8(noFRGW~fH;*rJy)<+J>EREt3i^n;^lL&DTl{Z=X?!4)(sdCo=7Zin%E3<;-}44y`dm{RAC! z2OpHcxQdt2d5bTdg|y0A)&@ZkVaUg{Dztf>#NjLMYi&|CFb&-*6UMz(*!jfKA!7m( zY^G@X?y%{?Q+JF8zydJdCB6`kz|Qv}9AX5uFj4B;BL(=erR#o?*6xldMT6y_o%*L$ z4aWr1vYlhZ3__LdPbPT%h>+%v{xNAImV2Z@irtaoa zY@lrgal!sq>A`;UIL2=Qd?g&9!dse&_Aw&^{XmQ6(~cTT!ZadKa1zIF_ByPKaG3D^{)pJ=y>8;sp^2pBAyHtEec817Cf z#YBe$Bam>k_#o{z63qsEDOnD4ED&WINO4dR-El)N~u9CD1vMP4f#A zle+s!d$7@IX|1hkX$MmwNeJY2)+WNof2oysFZ^;CKd$g!U?=VbJ?6L=?Fd-UtWb%0 zl;q@jbsDvQjys9tI+Wqz(g{@nzC*#Bu5{f*_+|)@bsto14&9N|l;7HbWpXE&d*w1> z_!xUCB&`-l;~|lBFGY4##P9Z4j*p4S*2{3VP#_Uf7Odd@W-R|aXK%&XBV6L zndulWat_+3Bc;q^m;ECMu?R6?N|C%p`irA}$8tl}yGLQSRRb(3%N7wsP6}o~J-&`o9g?O@(rAObK zP9p&ljnZiWNNC?@R*az*`S#lU&)9>vpLD1fd3;7iW)?bf)ed}-faq8G`Gse%e&Xa# z+&qubNvN2UE6y)R zSY*ygWZ#AmD5%pzf=7i!Fbp1h65i1E;XwFTm{N!U`mG|)FMgazD-=B^>rY{g@|36#=Zw|{AGK_|v%(0W8c zZVvp+7UshJ1;+du?&`GZar2J=n5=j|U^yv;j#RA9oc`!`i4Vq=A$PKnsM}A)@w@WN zk-eDXfpr{b^3PPeaZriP1stvD#oFLbT#uop37nd}sS8p;>be*>`Hm{{R+c5AdF^|O zL`~Njkq$ET9}M9H0O2%8^4a99Z?v)Rv!`oMo;2;;czAz&{2t2tBGf9&KO;N=MM;HY zE}OCnPbm$)SOB+wdcsTxS}-V@m!UPofJEKm&RoQ0PMu9R;5GRdPsOigM^9uhr8N$* z8ZjOARPCoDS-(+$ddhwt)f9cT_5iI>g;FeNeO3VFhEhJ6M6HRFD@uj6%gTEAG=2h? zx+yZkhW$Cq`+22geU|Oiy=ghKJFZp(k&rWsj*n9i=fnp7W(tMQ0j^%b>0Brmzz;OV zL9ZGA>h8SR<~1I9qUg_<$TWs%f>aP8ZB zTXt`9VD;{a5xGtm_XBof5Xc3GU76PVvF-C`r609kA^X2ep+n1U?VUfhvWKRQv&c&B z)>OzP=*_tX>I+ugZCl?Gmg&yM&E57F&!!e{=vBP^cUpDV84wbBVD%42$`>jf#;U zE+?!U=Xi|XEWN@D2qV6fAZb|xR!@~|vI>PC^iVF|;TfZF@{#g~)l1jnloCw9UU|?iOhmHBiC*0gt5<5}} z5=^aiMg{l}$e!xXkgpLSiwA}ep#>~evhuO!EyT$V^O@Bkhggr$1gTSfx~MMA>FQuVqTwQ3ettVMGsXTp>$kpMYAd?vd3pm#C+ofbl@0A6wp z3_|Y(xz1|@0rc-~ZW$YoR_1;ZFw$}QPgt#pR!(gU^}#y;T7`5vEmao>caD3TvmlX@ zK6`)Vhn<$;m)KU+TC{iL)3PUf!QNpuES3MiYy&u6v z${dYuzGx`+$$*Jkw05FkI1KEHffacP`xUa4)Ot17iu)q$M!6G$!?4d+-83;+ChIuF z40tT&&?0G*>-%B;K*~HN1-k$OFxWd7hYb5mjPNoijlN1aUxr= z`(mqd)G?UDJ5n9wWPo4^#=@@ygom=2?66sr|sj>pwQ9Vp^M8Xv9dLo{sPW%pW$;4ej4 z*BrhaziZ$U0XDpzCSN!>W@|tG=A~Hvo#W68I5A!%IuxP~hAo?IJ5{&c9Eo9zgrDs0 zhnc0a0fd;Vg802`oP^=3+1ZI5Cv^el8JcM+SttlwhJS*R)#Uh6KawQ=y|v3aRu7+u z4(^ILMjPvooQ@WDdaNw0uZLz_^^f2jEY|pefgj7N-Y*C(WgbT*zoK!oIw(CA=9Eo4 z?KaH}{&kthRFQzd#FY|!(VMn0GTu(z2JNgsli6U&lIel#zho%NX4}+BA|(=pixK|*n)R94Ayx#ZDnTA!+k~Z&4GDXd{fSBh;=yI|;UF^*Gm>UVJ{=qzJyM}` zN~S)u;_BZUvFmdjp;oM`5oz;j`l^*n&QQ@w414NOM4bjnUiapn5XZ1@Q1i-Q29XH25h#vgupAFy94OYte~jo?8T zd*}eKJbNxrUx{sX``M}3nBIp(SddZ{J?$UTw*Z_qW6JjxX!_X2+-~Chqruj(i7jhk zP|4`0uO8pk#;8qCQkto(aELOp&cpZq z3dFs~?;FmGCq*8L#%wd^OSXhsyMio^iYA#MX#HYv=Zqzq_Hlk%C0ixu$prpgU{FG; zZlf`PT#7PT!@=!#P-nk>r?>;j7d0B4z24dKcBYjN_4#{`R~DZ}5}pd4IC_6GI<7bP1*y#souZ0| zK6H`h-@FC>N;+f8O2VG6%wt-oiFLuqXpfnQu7^&<^-uq6h3=>S_Hn;^m6`is{4{QJ z)i?bTBN!XwQnE0@lYwQilj2=vpNwLZJAt*cV7=8q$qQ3sDbyxWj2yksu@Yf=nQ zN+W}TfD9#2j;AB(A_ zLw-GIhd<`@igfe>5|wO2(N2+s!D3I3IsK+74_#F1X)h z37#!g09}8dI!@GmpTrekBw#XP=nX7RWH}kQZ_j-JU^Ljpm+`c&TrBg3qBidrPlxtp zapRtflpMKiFR`T@mA=)S)T@kCp~Ac0ObrUhz)VzzMS`7oq>2hIPFD2{#}3k)9I01M zDj)ZImQ_joqMa|uULygOgDQdLRySm}A|7PK6@Ot1d#Q_VC(^p#Zx=5Bi1Xj9dgtdi z*6>dz$Z*7-ZeEj2L?2##>xcDzf~7E^m%ac5cwKGzf<973qn};~aTqCw#u)wxl_AmT z^(CwP6TRT!sa_QXe~X6srf~K-#1-+|3X(3@u~=(nwdKN?t-6NkOT@geyN}mCknd`q$qfhfx;9Tc;M)hJa8VKR9)C$DGk${p( zII&;QxZAJgld;OytF3+yhUh%KxT2OSU?{quN{$lb8Y>it+)9*n5Z8PwDJIx9>sFW8tu8>od-YbdX5?v6! z%=3NkY$yKSj6is!TOSJ&gl_Bf`^SqoHetMfdd0K|w34Uv4P|?4^m<(Fr61GnTlf+7 z2BrG7->cCPLR1MktXDL}@qvajmBqyoK-Z|NHYu5n(}mzJpK|re~>Kc1)GQogq zG#HHjiaGT^Uia#&=occ)IulDC$w=spu;zEOtDicJMwh{tT3<3P9gv7-Q;wOR-Oh4m zJPQ4DON>U8Th}2tpqYY1Nq4U7OV#$W+Xgc zw_nO&{Qzvhh-qZ591UKWJ*6*!sHZ|_e>d0X_J*Jkqt*g_x1eFJlu=bBE@wO9&%4ZP zJxL_r`;Iu3m)L%iA}iDsz^d!(_Ii^h>!lxBtmBIvgpa}6X+;caio^j5Ji#cHXH{s>yO0-2Q1kZg7Wvf4p3gm}l0mOfV|&qj`~6L}Zp(X| z&lT-Jab-K8Fd|g_tReprugdGkNHAdPI&7+>J|?nN>*>SGb3+F(Uk>^Ef)I_3ET2ZN zXZK<T5-d>f?us*x0TjB^d?wt-RE?&E4L1R6neUiW>mo%odultu6<=)p?E2Y zlz55EG>T02Iyy3|z80k&4M0ZD?#zN@IN#hy4FE8g`k$-23soI-8-COrjM}qrvp)|; z4)k;STB85@$GN^Xj`voW4+#)aJ0E0p&8yI8oZ)z`5C zL-m;xZNfP^k83d|?^+q{&cesg-r&*Dx^p<+9dTQoYnASpjhChBSA;3xH_?F%7%PYM zQYwX>^8?Z95|+uwCyeup3tK?jX4or+q=B83j6;u;0wQk1%{j*g$a#1W?_T$2mP~Vo z$>0{@+EFugs8|{qi5!v4m>lEaw%x~FU3J8NH`Im(Pqf@#1?!`wMRu`q=_MQ&hjr)&eEKoYrOA>?0w7#{hTjc5G1I7) z(0iacs!A!7je^GPN<%F_<~?@dRm$OTsiY)Fk$|AsttwGj0`xRsK>n{y5ZBwWc@m%? zMI-0^Z&C)81;y1`F6(2GMv|3ed){n(+$`RpBZ>Nf=Eoe_r#(5lQwnTfHG;3dc-}h1 zzKGQhQa7$UW)8n61a428eQztMN0jFR%P0M^RW?2P#XinkNi1$r1|mrf@{Sh(Vs(X| zoQxJ?PD+11dEJTm7jvwQdXpslKXOdib3g3=a?CP2w`Bkz*#2LRIc4CNn5C8alSq;&l%MFM09hSLfIhPPoFHqB*1CeR)9am7do^e)P>T;cu?#nJMGzQ5x$3`)Dk zRY@lo^l%NTq7WMeo)%&^%cCFLAk`N+dv#C#XxkC7ASDXHMGjmy*o zfF=_>TKZa=RXG5cxjFUCYb$BjT3A-3sy$u^GFTC_02>+jxXvF_$Z@fFGe7#gi0rx) zEn{?ks0nc2gOqF?orc!67+2)vJ1Phx8ur=&2{4sKHLYCgWOxcX)c7bMpM1ILA?I-F z#BjY5fZaHA0#ezs9I8z48IZ6Cg(am29U<(-39;m1Ekdw0_ygM${zXI&>t1k$UOqr5M z2$fw1&vm}wyQafOh>lfgC5WMDKLU^%LM-dLo(_I3ymzi*74>}eMs;zWs1B=0+KV1p z6x1DC%`F9>A#sU+qOHj@oA+TH1HEEyo@vX+%56ETH+tnJ(F07TjvDcMN82`LMT+)> z??6E7;N_V%Jg_-j;9;L2C{h@C)ue9fUw7_eU3wFqe>D^>a7d?1*V zYmClF2c^FAADQ8^+Ai&Oh2a;9K#)45S3Fb-3PB>I_`vVbQY|rM6{9nxN9EP=s3{A2 zE&x(7v5-8dKp!WSV*DqcY%W<-yW&#*$cQ97!v5Ho?0x9##T)Ota;jlNb~u8ITeBJ; z)dGjxFUCukZ!Z?%m~a@cR_G!T%B=juYmGo#_3F}ZYh=I7_1mlBKQg($X(r+NCF9cf z%IX#`EDa$UUVf_sZkkD~c$k|pSrI%Jx)GjSj_dWU4`2lbuPu1mcUQ5SEI6#kXSr}rYQxMvPdRG0gNYXY%3inO|`jQPy{T*1^EFu0uXP2-Mbzh7eQF|L4v(ZAN+oZKx@lEd#rj(I7rI(oXXm_2=0jEamwZoa zc=S?G@JW4LPFH~^qANO4^I#v`(%5FQL_y?t%ZT}d6WEho%GrS#rMk=_P&vd@gs7!7SxxpG#fT_pc~!s(y;(dWN-WngL);OXLuo53lSfgjA&P8`3x)4@I!H3B?*uj+a+k$c-#h!7>R`N4PHV=&_k!)IO(wd27WEwsrmeljXO%Fll}*1*%S3~CV5Xvq z`@*1nI31A`aXjIXkzLjXai!S3xT0+zH?*21l&=W=9A5$0$!bX?llOx=o#_r3eWH}s z!?NYbQ4x{wlCKAq$_Nas<#7rmso9skRhGgw8Q4)Iv$K*}D!(eaeR1>Qbbss>3;8?T zhJVMIP{)uaph9urGIWWz$(?(bSP2Re4^6*HVptxc=<`k__rCrnpfT$XUK(yPRUuYx zn@!w!${`B84J^7)Qlp|irNs(~wZEdO(L#$9fW&E$kOl*xq&b99y58M;`+OqFqdQuJ zFL8d1Q&3k1(<0bm4Z}a{d)EUjCA`cER~V!weO&1v3dX&@9p@L?S$<401;3!SPF}@X zZ~3zvcC#p|*%z@_J5-hf*4}Z|q@-6te-sw|Dk*TJFZ!O#sT9|``?dSQ*V$yE{3vDe5s85?-yoK!K`faJ$mp+(m}`h`b4g3 zOjXfD=P_D{z2l7|217+#q>oct#r5N#vP0Gt{=A4p=Cx4HBhls4rJ(5d2kDf{qp$=5rb;6Z z2D;oPN?_>ktWaM4R8)oP&)qjO&iCS!gXYIpt#%XgmICNV=3jgun^{&@xip zz8caL19IV0XdxAXQw+-Fv`RsoJ2NDp{b}JP_1PAAAA<;POz?_x3*ifwAq5QZdjbLUCV!LPI$>;&ZYxo#i)t@OG0URyGQt zmO?$Vx7YUXFG*nSfYxHJ-@bPVtdyK92_{9xfTRQhHgOYPx}ARXZm~7psM9;aSdNa( zOp9!SmU|hx?<8zAKt`2Y|%2+uJf`HqvM%|WhPMa(*k~t(?4b1B3=-3p5l4v zdUw^CHPo)Wj;~@Oj_I&);B{xG8fF9_`!Ce=QIt%i03JE!zfkyZ>k(8qy#l$KSZa=W z!Z4Bh?YI_2ZiALz+>12v2&15P@kkz0z@9_2sqyOvQXVavNC<%-Yp!wKUa8UZv?edb zK>_xy9q9o?*TI-Lz$YW;0O9F<+w1?}`8QR^ZFO!(1qE1abds>eir4lZy z?R0IX-ms63Pgkch3j+GsV{y8m82G9Ef2ReL-<0V$i23?#6&>>%##hzq-`N#kU;28C z^ZKLyxO@+;tVEyJ|CIigC|!?-%W9d~>F`+4ix@zt3KaQazchFSg1z`a22YUAR?E`H z>bHw$2aP2cCHcv|KH>VLV3-%>^7iwvRgv;VrN%sTKuLwGDj5eaNG{e~>qtZZ1<1Qu zh{u4x#S{Cs{)+@?Q}y$^H$*50|9ecu!-e6ISn>+(Q~TQX-I`D<$oBV5jWP0xJhf9F z5JY-F9Ky0fVC{w4hDLjOn{v5vwxAHRnpNp9J}^YM7lcp^zmWqf#!`=8q`NC3_j;{n)lwyCJ`&=HA)oVU^Ytr zR_oFGNHO3(U~BaHg+R^W+=h_?F*22DzIc{?i4U5~>sPgMNd?rv>42$O-0#1;t~wbn zkpG$uLxUqCdB~*MKQZca>aRRB1x4F4VV%k(rJcB2GK}OWJ&4 z>&v3OshD&pvh?aMjj{Tp)n{-f;Whlgkb)Ug`(3u@qGRiq$T&s6>Z=5ZVjjh+?(3|N zm(r(np-}5S(s?o^mwBI^HHMdPwbzLEYw+`c_PPEetHLzBI{Dx42f7jWuL|6*LURH% z2f26H1fGlrI_oxiP5V7DGBTr5%9dWc{~H0Vix1^+2O-0&8mo3nxV2?vpVNj%<=SHR zEhDVXa_klCAc6hPtLrHP`HhQ3nWXzz-g^2%jvPLZx0-&f1UuhV*xHmoo=64D{=)l<2#T}#g~NS-wj&Ve0|CItlwLFvvz zA(Qm}pys9|T{u(w!H!6q$G_>qpidr&z50|D_iJ)B>}uYd;!x7&egTnk>q}2dIl(Ha zZ0s)Fwtx3`MO18vbcfbCee!Rw~BVSP(M`Jd`(ISarU2HNGTCe}ozz-hy5- zriF--@{foJW{O@MJ!>Y0h^iBH(POkCqtUpV{+rPHK!}+UCvNg)83UF#qKv}(h?N*6 zzfsF49xv?+=zh5*h2(tv5uuOdAyKIA2IjQGAp)!R!|Rnd0;lt0gQl(dpCMkz-DC4G zsgZt;RAsODR|?O_^}+X>m$o^ASd?JMm(M>8v$_`at!-cTGW=WaFs2YLooK?M%=g?m zi;kAQ%4~Ic%a0urh5^+W6)?IHkWpu$VNP9T(YmG!^1+3Vao6LRKXiD8fABJQx10d| z+&P00ij#RLc`&R>B3miI87lFV(}Ra5OC_C?Fr~U)&p{>@p11+Fbg@8no*(Z}5UPNN zP4U9N3kT~m&TF4vE$2Tp4i89L8~gf>wcYO6I4kn{ ze9LK?3ICJM`wlYaYMlfIhrp1#tOFGLIG3B7H(xq=Ca+VjzD>qtrE}>|1xRRgN@C#6 zCMi@IyRYC<9gOT~?V#%ztT^Aa-}`(h;a1@=u+H*5Ta;S7q2e|HGfG5$|1s!h-s$}d zIidQ=zb4S=5trD`ZOR#n`|kfi55k}O;r~Yu_K2Dd0su?Y|LDO(f8R7Ct<+jtJ3%sN%X5u6nBZiPMp%>)9MNx7X z^Tc2$X-UGH%{SxqxepH`xAhA#HB0o@zf41QNKI3ih`S5%zbj|)n|Kf9e#-YI*r0_g z*OM_o5XN7TN{V{y9<7L5r(AruoCx!6`NC? zsbm&|B^3&|j(oEiMH`RMI{yJ3(9V*`lJGL!;Rb!5A(*}m{1t=#8M|9I*c&tQF&I4P zec8M)^Lk}A0hQ;!XCPrSbO|cN8_C6XGD-&i3SXrSVxa_zLKpM>i!$6p8M|CzQsL0r zdtyZ3!Q&ziYmLI`PpOrK=R0}PQ8<79!}>CmJ&Y<1tKNjKIpoPhkbG!!^X>D%8E|Ya zgt1O@+T-zFX09GGJi5UOPzz&3T}Wh( zzegtAM>~4DKMPD_V(@b$QOyg6Zk(*7f?l-Hu+>yc@5)cl0I z7}#?rmVwTYRz^XN8AV&Ti`Cjr9&Ijvf4RT?vafd8iRZqdiS`91PgpM+KpX7#<^-If zWEpV1Z8c!5#oqJE4H|bdr&te$5{e%JqZzoby|MRE@-NNZFW(~vi(g(hsWCo&o0Ekf zBq;r?PAKQzr41A)k%$!U$G^$&Tn;?*C=~H0$nT!ygyAiAa9r8#sR>nVHFK(uNYgn6 zD`v$ws7}KamU$XW-e=-G-Dbe>VK1YUqJKowk+DVI3pd%K@*dcu-je zgzy&$4?6aIePj^DIEaAj#vnK&5sBoNELGD2H&Pjn}5ZsITTsTA1{=8^cd%JCu^8?+mJEYzha(9RwYVo!FuC1eESl7 z9~1NN+CjAQ-KNQTTQfRhBz54uXVrX;Ub?K`P_CtGzvc~h=@G{t)sI;vEErLkrkp6 zN1yyW01u{uYwKYk(a6Qr=4bYU)U+{j?pw1o?dv3()053sm7qK&V0IJ@U#YU(~9N^ios zGHNy1fAL%8~6{N zZ8ex1%xdgK5gQ9#H9!kk*D>DSX)w$3^`ziGI)ER|ui{jmsvh}66sMv*%;S(Ztl_sK zCO(IY8}AASt%q_4G%Vx~Nmw9!rsloupS`O)Zf=gVuGaE#6C?s+ai|OPxb+(a@NmGV z`!!_Yn5z~y@fbs5i&yDl511Nh$Nc!QF|g;aTv~G7VaxGmK{=&%-1X7Pr2Qm@tx4k; z8TEay>^nSG?6>uhicx{Q-_GH|4tdMMXtxVqkGPkTN&Rt)$w%M2mTni~7EJ52+u_Nj zxkK6Y%rwQ=bkLsA(*ga!NF(vnukh`bzg=_zFW*VU&B~rCXbC&>6s^+YkxSf>yo=Yg z4(CFhoX^lWof z(tkNd9z*4jv|O?nLG}#S*DYMCOk}ix>fF_t&bxc1X6s*|6}Ew4T<^ClPI*8l+GES6c3D5-Ps`Y z-7F|+FvTnZKgX_r%6PH?j1-G1#!pIuSM3YckGnA?5nt7MH93F$B{g-Oj6ETs$l#}z zqxtjps|=PJh=3;7MMA*=>)YJHk(A1Cx*Dw&o-O&3skJo)Ck$qIkqJELn16h@ET4I# zM2-b`X>U9NNr#Paq=rZI-tO%4*({Uj6y;p|F;e;-rorJD<>52h%836!Oa>6k^Y%pFl zChjI369rNz&LyM;L#Wb{(n3zEAkNvn`riJN{5y!1Ql?%;9eMg{m0_L`@try@)Hy{| zGlmdFz7VL^P?|UY#?|-nE6w@6_3SkA<_+0kDHcdN)Mm}TO6M#86zz@Y&3pt)oOSRT z88ogadn!;q`Q#yiT%q_{Hw?W1lLr11KF1(5B8#b22|Guj7k($7N!Wr>*4|r$JC-4V ztc?ktF9_|y5Qt6LW;zE$tVw&wGR>MaGp(&R-32$#d@VinbRDkp({`8VZ*m%Wf;-b` znGiYZQ4ra0BeE^m@mA$CgfY_WUZ20?S#Q*+n0NhY^c)!$pJt19z(+PM>YaIQOrvb9 zJthe?!ul8Zj`FGB8JFKX@N9R_me}L5UY1XAWH>7C8tfHdT*T~W)=|1!Ijp2)MjB4= zHSOiK+zXXjJ&Rrky5NM$ChH3&TUD>IF%`~>6ONVuWg*yAw2oO1jb3o|uNSoUkTS7z zGVkL(mChQg+!?vErw{z>i0!#yOiyHB?@6q@*kI6UY#n;osL(o;@FnoXon+7pP{vo& zo{~(QmxN7)%z??mWA6Ej6b8{;j6Qlh<)xcG;l8O)Sr8Mhdsmn4oXJ(K!sC;pHWdik zq`+NlTAS;hvFG?Pv=>ygtJ_+|i;bG=@nz}b_Lik0*HF4|)%KdX2p#`zWFiwcJ|7B0 zRZFhstEZ~ddfay2Pl`1wvO>_?FO+xFHR*u|ECKl}{_F=h9UqQQiyM%C9kHLoWikRA z88yXUzC>aFGT5<_8cmE$>Ul|Zb(}X#TED+q?g9LX7?oM!bcTI3x+}&M5a1ZV-3GNmkBtUR? zyM4dA-}k$xXS#Yyo|3M97RZ|Lzx#DwR+dz1mVscl zUXH^^*Yq&V&5jsX1&igHWmYhb3Q^lf(wM5QBo)mJ+jou&;`EKZG$h)qN zLrEJH&G@FYR4<4jk;ZMmV^cVa4&HsgbyqbOwA|TD8K9@!8!EMgug1~=g>^{c^Si`T zg>^Ux*Qe!OSfA>&+?t;Zd#oECZdRFCm1HjDRI=VSPWK!r{#*>iv7kQhh^s2h6!-VWQp z`3p)Fr;GsZJH|eLvhcHG+d~j*~a5_pRsiuQ}0qQbY<|u4;J3bg!Mx zf=6a(4+1Jp9kLb-k!MLbSh<}=@YW7a(i71u^p#qwmPPcH57Z7VyNxHKlZNeIPON*~ zC$nQXj6S(0_41v@^!_vR4o0P%fM3$t8G^4(nVYp=_Qz0Q!m^rFWkGYYX+mRTS(twI z47@$=<@)%@@}Y4v24lA5lmv`{jY0pr3zeDAQXfwlo-(k8V>(znp!5*f2(#ngBowC+jbWvBrQ!6J{OEC*}#G(q@EI z%5M^Fwzwa48hyVHcdpY92z!}`&47niT3fv{wsA(I=@?7&&badtqjiSG_m0G_lU(@s zM@*Auj3B=9^550^v2M%^^Vb_xE~a#2CcO3q)ypvADZZ%8-a$oXmdlh+elR6q^t9m6R#GK1*Hdr3G8yI)AN|h9({;ZA8D3=U8>!-`Kp9l=u&}6Oj z07^G-3g@!l>CE@1$xce7uTWvo&m}YgUida@ZiOOBRFY)5EA-=2_(vi`HNEh&SRS91 z#ITBBegUy*GG8tA1)00`SnrxDKJ@$zPV#qRfH2C(F6_E~_Kj%1zweFvGT+y~KVWC0 zZ!3WiSw;V8Yxxs~uPpTE&Hs0T9uvn&jfHAaRbPnXg@Us_Uk>A?k);8l#fhshR-}EQ zw)*0F?C-Wi^0+0k&sy5ry3&70?1r35;@yH2Xk;Df(j&Z|*4p+qEU=BG{CUV-j7dZ; zm+ptAb5}TsU6&Zt#l51;%Rk@z?fFF&1D6=tMmYJPIDfqtGjDu$q-)#$^;m4i4AbBr zLuQ(`aQ($Cjs2_Kh-;e;P5TTG z7S3pHyUDCVB}Z4=Iy<;G=FwcHQ0^14I{scwROKn}%MNS%`EJUax6Fd^cZxZmTZGxf z-xiuQb&!VJ696(bMH!{dAohdQ5*@x7fBl3su=jCyy-xQ^8S4s0J5B`E#yIi2G;VTw zxbnuY%IIbkdVc^|TWXEFf5c`;KGgg7t(C>Eo6;YsB)rHpV9l;Xc3bMm4%8ueyZK>> z?$Gskh|EFmpnrZ;n!cA(wI~}Ek-)l?0K%72b$n8&3plxX5(3|Pf*4X$CIR5A=O%Z4 zrE_{E_C*0RY$#x7W7D>>Gt%KZt?*3_x%YJ#m#MdobS58CVPOl;KipPk#D#I~*xj!8 zlX$cl_YZy2+`V|+vtf)GLiG(gOrfotKAv$|XX9Wz6C&L|aGF@Eyyiak1TCL>;ed4V zZr8tXU$4DXREnxhPTL+|x2km-Z|l0QGQ@A%DV$Mp$gn9<5#d;c$JP!u!|-858@~HX z+UK!>=}Yzlj03IYTE=@QYdhr7j^7V?a<`^`@Oe5R54;{02kjMqwWbH|%WrYQ6&|ZI zkg$Vbkws^FZ={aB9#?rmeYnI{39l&1ghe`V_%TvFFNfTo3zc8A43f^kA5(CuzGV&k z3BpQ^#Hq%A->b`2Z2xKOw0gg~`%D3O-;1snq+S(y__tkdF>Dn|?;VBem)R3-kw-Hj zqgp9ThNS1m&&#<50>_c$Wkrg`La8EVV0H<~ZAM%TYPhH_Mj*7uHB~`H7cY`l8Co@Odmgi7P6T4+fJf`h_ky zH?P#lf+LFDq9)Gnf}dP-OE~i$fP7K|Y~0#q%=Ue2xFsd!mx4opA(V2e(<7O)@Hnpr z&jj-$bD@=svNFuO+hhbT?9lIJ`xAr!MBLQij$4PQTBqywC)R;C)#DQdex|D~65ORx zf4Eh5$sQ`8vanN6?6)DwV3(xuExG6D%DN{z3kpc{%o=lrDmSgFVPLTW$$;v$F7FMs?;63W@-!d5;7;_Ngr`yH|UZ@jOx}dt|h>uxl z7#4g$pYdlASy=~Hf4-%=j-hhkkfuhr@GoM0OTdZPE9je!phklVsQA=Lqi?`ugL{p9Ec_&CMhw&xny8Xa5e7$Xkx)~nPSPK5-R0Kl zFc8#Zbxk_a?qqLrxGhvULcS<`Bt#{R^$S`+N0THgid!vJK5@t(RJXxvvdn)mFcNif zF=dv|UA7BG{wiOPgCB*!NFy!=)S>XJr(6o`lI67+uK)aQ*8)qKJAU`gd2E4T?{NR4Qlc;&ekxV(p;zL3EiT*Uzpx>s3lu z<7I^hV_EyZT1>=dW>r5K7@&$)ESy9Sd-#sdMf6f88BK+Yc2$je5F{e@jS%SY5(7Sa z_~8conQ48K2kmwcDXEX}_y$R1;e}bi&^@XwA-~8CA=^lYcb2(E} z@Vc+j3By%rTP7*8-3=CgL!SYYtH+|6ban;E>6BB#`yHQJuC@-XB9;kwp3070PbR~w z199#CRQX?DSKe*Y@Wub|kh^B0Svh~=*l{+hnTm0IHv40)Up0oT}XMq3pduYRZv04S#j}G@A zQoihNz7RdB!FlSVjL~p-2?I=RW+<*fvl2hU8gZbZjN!Rvg|G6@-E8u;fSZHK`U4oTf%@nZnN)ZD%>jxBF=I9lIJTBQ`yn zPeruRq>_K9JKs4{s>%_4Lp%isx74s!F_^sf3e<4#MdKJbW`$^Ysx_$bCI3uNbwKyZ zT$>>{QWj$vA-YX^8Z%VT77@&?5h3w#%FN3Qu5Fq8h)y)vn1^5A%&GhogUorrKnMQ~ ztK{p~zAb~bZYA!349~_%g3_W12~yMEoCY>g4xm`a0-*Dun~A!8t&q<|S2VcV(rLf$ zulv^W+9r8g{2)}p3h0}k6;XHJi9H0vluw2;_hcv|K-|3jf{JDf4L)s*Fyf2M{h?}) zX2woBHO40@Iy0HzbRb|?d#s!s{4OZq1fj(Fzm}9>Td8U#hC{Hi>v$0guUU$Iu)Z4>Yyg0sM zyZJLV2eP3d4AoHk`N53KB0r*e?-HEV`s2c7s58RcF@Xyl$87?qnJl=4idq z&U|+9&UcmvOu@W+_HSjq1yk&VpVv+gZcA+OYx86$`%WoY`0T*+F!Z28lxdB+{*^OJ zV-+Nhpo-g(g09c2YY22L5?bO0>S-qp*SG4l6T`MzE^|c_V#Nelqvxt{+7$!ZRT%pe zn{*TX)ndZP9GLicO~Bork3E0_ z^Gj*WU=4>3v4RjuO8jaEKEY8;fFP*fmzBalwBi3CJrAo5ZvX!EdHWl0-pzxex{KpN zhL;(xiR(KI9$3+7HrE){BS7fN7YkdZ{ex01X|FohxLuf6Ma7Q@C#a8)3LiVZxkY}6 ze0&f@Hzz#T-5HK%fwU+wbaO?yh^iq*1w%u^S%{*H+40Wu173d?;u>cMUgU`d!c-{(`I6zOk}52F!d}NW%GK53iU_keclWTPOAaf&~@x zf7glGh#lnM^1O8gAUo$-t#Oi3@@h=MS_a?uw2L)xSe1iaI00t7h^>6{dYEK6kD{cL zsebGf!m9}<+RG%#{A=u$;Yn0Usz$xN2_$`eJ&fZOka11F45lB6Se|leSb52>krX`; z8jOpH=>Uo=?binf8xIHn13nN@I{#W>3GesGUlveQ$Sq_w zuc)dMkSs=0hpQP(S=gGRpVkax$e-)Pi%jG-vPr)GP+d}BWU8zU-nIq3FMbZuAg zmn6RlQaM`^W*Q!#(;V=U$_XUuDZcB-$uD0l>xlhp{&g8za>!7&nt|99=k>4a$BXC~ zn~Y{FYJGwH;XC5)C(j^69$WP~sIg8WmoUqS^lkOcUODxKQAv>v!yI0x!$q2vQS^(I zK{A;2RSuIapp}pf!J>|+1nWwu_}T96obJD~JhzzmNxAo)q9k?s7nZQ}y*yq4TD&+S z5QE3r*#E>}g5HpVv;>cBD16ju`1lV4f@ z^2tEw>BUG{I5(EL8AS6Ykp5+9lq35HQGZWw*m0`99TjMo(Qs6?abS>YVoc6nJcYogl6- zlADOs^;2ZeiAi9Gu`j}>swqJHex5B}J6lP}e8Vh%p+>rQ(THpPIHC>AxC9)Any0pjD&CJ;6)9Lcj=X<7?e{BHe0UylCOlU+)T{#nv{o zNb3!iyLdc_pUNkb&(%3CfjD4j+eOQ#v9WnGW%+AhbJEZHA+OPsJ^UDuboC(*W1tJp(fyJZbZ9yXHY z=QF*TOYHZ*xaovaXyxEQplj;}L>&H7Uu9~rO0w6E_QwZ;4CeJsoZ5_cdqc$9lwaJe?3bzU!T?L$p? zmM5dE>|B?UMwBn^tUQp(G&*gvAmB5RDRS2J)##;?u%%gZB{N76xCt=!chaO|e3B;`;8pbZyOd>WrRd6eynitYS;ugAbk#9Y+{4PmS8|llE^9x4GqXQl%XR zmeQ9e`A>C7JPtp&4cT7VKFZM*K4gByY-w4F5dkaq{`wl^q|Jo^5LVHmpxX^BvzsdA z>Rzu4r~kZ@#kaT-f4=|^(K3ae1yXguK?LyJA8WBey@2^Qiu{g<%`JIa+)wA+O`BOzc(yXc08%aJ9$ z#5mS8-v0GL5!DlR1`3Wv5>+|mFyJwhgwGGE^r9Y`#=J2iHE>;QD}*q|h~R?6W>OVW z#BNKgO69^fecAC?fA_v%CKh+EIAs{OvuOQWj}%I5!OPj1-xeMXZljv!E& zMC)6gU@3h2tpU&cj+BMV$CXnf5z0Hj&7S}51f}Qyposg4nk~dvUp2r z`$L)Bf3TUNs7xPp`j2N@qx^P$@?3C=+$o0x3=Iv{)g&@*;i>F7oE;sfbP0|!5#W8K zb0+0W6d}>KPWJ~A=K0IM6sBg@4<))4TOC%D3Ba?>_Og1a;6;c!7M zTsT$L_577QyY7-du3sKo6T%V!$GlLMA|+D?>wSj@KE1xooM@wgNw6v=eW~I;QXJNG zfB%SWp~>DTojzy*Uo|jf)W?LW1Q$B{@+0Ze6gH;jD z0`|Kj?{ZxJ>q0}%(dU1MTLW`HIr4*Mv}bSO;UVQy>T`7#%3jm?XKlcy38kNczG%ez zN)Ra2;QvRsoj4D|s|m&^JPJ8?qp~S=&$cR4me^QNSi3zbcU+HeYsKI3n?s=Be(^95 z70RNDf}zb*>~dJNT{q6ZCbq{w`v6v9=1`R*dpd4*%Mxmrpdv+yAc8H-^*9eTOrUUpadZ@O*hyc~^o;jW-wI`? zrnTcCu<-9_4k_MLF6Oja`oFz26BG)4$@PiKVBjK4MKMDO_9GKh4=5O?kfVxxG+-G` zqkok`!dPUHSYW4#qoTu#h{b9JPamyFJCY1ef_%fKzZg|XMwTm%n`|tZ~;@^ zH`)jSmY93*61_YkV&Qa}%I7_CeNfi788SRRlem|gBgTk=u!q@q^me6CvPE3#|0Hgk zoiGqk4ODHqOn6UDKFn7cC7-UE+ZZ)XAJJ_Ly{IxVJQ4s72M69^AT)ya-N^2vEv45pw$d6?dJZuQLDO)aaS8sqmcx4y~&g$E}IIwNoNOj9?b7 zF1zp1TP%WUEiWY{n;qBdp%B>Yzo6l51l`Qt0J6&>0{}TP>_@nRDK{r)2f%(d%$W~K z@ovf`!&LK>CNMiD82~i9CLm7}xP|L108?^S#a9M z8RC<$7N1w{wBD0ok!bPdxYi;usD-U^b3KnC^6PyDaJ~?mfsVBEheBi=5h5IL1E013 z=X`m!ud5Qz_ZQ=7Z=JH~-Ox1Pf9@AD^yPt$(L8P3Jf?38qDagr3uKl${{!!E$hAzuqPwrUq*><1h?f04VeDsS+pO_>3 z7no?XB>4N4mdW1C+2qNtUMyce)=wY_E+=qCAJ($j$?B!sDLO&>*}uYmN_T;~!1Ls) zm2GULAfZw$U&&46p!b&G*xLY2Zl_7h;Jmc8niJ!PS8hFeg6z;Fo|LE%Ed&A-_;MYl z%a6tnt*mzvn=8b_1(ytg6A>U@Ygl4}(k7S54+|3WQKL^wgj`C9(Xe}kBGH;sr*HrX zj9j7bPGU0fUyxPS^PfLC0~hfSKKnIm*S4U!%_m{RLX{z-ZOOuSV=SE_Sv^v4gQ3;U z<-;tMk)4l$eh&ygQ(mQ0);HWZTx8jSx#vkYnIHjh)S!!#ZgEN<8S zMtqnZHf9(tVJm8Z2D+xEJ2v)~x~to|en#Ni{taY)VN=)KWsF^v^xaIQS*LEOR3qI* zK)^7rSX}Ew@<#JHG5av**v(@A1U|*#vI@96){r&7xQ{7?<%L0QqR!L2?o`EV(@E8_M5Yyde z)>T*FdwMD)-tmdttemSCzk9!Hj?ej9mR13G6CbC&(F$j6z)U525b1gHk&J{`Vl}id zHl==?G%y{a4PA@pkI43_(>?deN^UTrBaq$4+2ZD4aUM@vK)p?X$WIhI4I>CH3;}SC z_rDN}QbUi>dS%em@lY6r)@w88-MwlR^oX0xf(wzz(lAn56A0+S_~QCfKt$*izkNtX z^Z}8!u;sbo>eTW6Pd;l}`HfzgxVCCEJ`LN2e3{)VjMX)Y0MQF5gU1Hv=wI6<1x&oK8vn4)P-v z)o9KqTR|K#bSOJB3>Zbw*NAZ?hQ7);%RsnN7R!lZ8)Z??M-Cw*z_Ouh_W(YQ82SM6 ze-C5|`YuEDnRq82-9GJ}1QOWI(1irdSq}Z{)ND)Iu)IW85ESRVP^ zo#-TM&=&-Vgr@yPQiN`FRmRrqru3q?PY4eXXCIs6?iH|b+=eTefj;AFFA!qQT(G56 zqbFO6G89vC0V%#rN{RaS3QX=+{RI&g*$>pCiIw9OA_;MM-A}bZZkc65%-@00vZad(A~>6;%xWRz(f{A839!`hej^L5$?0*-JKp)h8;(d z!OmPq7k@PG83?6${C&nPqu`;1la`QMtv8l$13P1(==$)__WkbQYVOJ(_Atq&k~Y7; zQqYOgP&S~B{vqQJJA@9@YuF=w#Kh3V%}B_u(L=l@fY4%>rX~nVU;I5n;3#w>ltHb8w$HM`8pW&gS@V`m2nZ5yd;jwi+E{Dew zBP+SD_@aXv_Tx@ovyBgNmJDw2O`zjp+t29C^?3^y6FahCa=8f^b~YGA2{D4XL14uL zm;`v(>$L!T(d+co%Qypp+qplU)pC!|nvcV&RpEPXOj@ITu9eLw7*6^;fiKMg2&Cs= zHq)tdQ#_eoCPFDVGW2auGL-nzJ}=B6#(td-l=)Tq^{1p6=56v9$EtyF=Gk_nu(9?T zlg5EL1t5eHkYXi)Yl#UvYM-_kpX#^+;@2dkK=|KD8ya716MYa<7^RJ-3ZFEN2q0{j zhL6Wx?wSGcBy3=|gU8vBSe(F+AO!%r-P5B*c|(_Sa$fIQ=FnN&9o4HCXofA#OjO@ z3F?yz7+LfS*7|TCyFpb zVDE_SL+*{sgduM&xMCk~{q`RmBbL~z8>0skS)HLmRJNd5B`JM&8$IuUfr6w<2-Ua-wHnR!1;I4$AhRSAo3Z=fu zs4v&0ub(LK(h_{a5!E+R@N`H3WzK)>$ZPmgpQXtZ&_3bdiL_ti6BBjE z;>yGFeO~%K%ftEbnKl*e8aEEE+5;}Itd4pl<);iTyJ^bLy;ikAu1j&h2^ z)XF8+?Nb4#Al(OQPmVtv(Dqaj{hV#XAMJj)Q%_C*{gu?GZ8_e%Ck;9Mtk_fciXWFh zm19jDbOyqiCj5+8@~pp1MXF@wU{O4uKCORe=ZTQZb2k&L!QV~!_v-Zsv_W+lw`H+* zH0zfuie8ADmLQ0vRy%_pSobk9vw($#`12P}gp&D#n1RQ0&U+!M?A6qQ!28CBqreLC z*B)#gSo&5l{UTRvcN&tljky!QK0AUu@TNBf+)szu z^H$)cD8Ze83wNSbkt5kfAZr6Z#0J=2h5r*;kHGDf5qQ&wJDP3p^qmq*WFqUsh%Nu% zFW4%o!~ep79~#KxJcxXXCHD#HWdr}7-&Brwm%%ePgG+VftDsa2FkZ9|K z4&>Og3cTb+wyj)nfCDBsD6%S*N>-ErCU}VMRGe}sdPDNq$9x9Fx?t4(McdQS<}tws zwmg*Hj?f=Hh*g`}66iB|#f_{z=f?oCF(W6*!j;+%G%045!q0P=Ac9mzT8#uClYlUA zPKK=o`^;d{m5uG_d(@M)xhywkr9lkfYR5j}LeA)yiVo-`Lv^^KZ3M$@-or3rg<<4x z8QEg=iYKSD$5@k&mixL)&D9toOwy(ji9+erNA$~+N6qdrC!ocO;@i0(C~hF2zcO~O zGokHbAW#Gtv^MSxSLnSPgDuIXxkUDsx|5C)JTt}um`A`~alyIp-wl6@b1uCRsQ0{aXx z`Lj7}`O{d7nU?-OfQC*xmM@Hw3<2XtprteegOV;u)F^`^e?LU{%OJjm zVzT2daj7WKV+Kh-dxrq`9t#Nv56|i*q!*nZc&*_&k3p!lRnfv%fe#=Alvv0gFt81` z)diJUqolvmlW0WRd=c%<`UYqa4vD<^%MGqq4&Mi{f>pSDuj7WEB}B|DvBePyNLejnN5cP%?PEjH#y$&h8?>)uNWw!^`(VC+Y0%^h)AWjR7okK zOhgjz4;7-TM~KO=pWt4zv`@|uP8FX;efJSrXKvo9)sM1= z83nxkvTcl#EdFewByyz-b3(D*QJLIf95i5Dw3M>$X7=!}0eo>qM)TwVcV&-p&Ckh= zRWHW2=?S;VYvLSVh9$tc_Mr^RY@qhH1WG&_GDeK-0GlR|rhUOA97#b=U+i>}yndw1SCdk>j|SLjLT zky3VZY0jV2QLZSW1=Q#J9TUF?qud7B5_2+Qy1EPyix3vT82WvgMuu8%=!@cy(MMo5 z@7uAX%!72{{2sDCEH>tbxW9AZ>pYGgy7`Q;tmK5eLFSjpmu0kAAMqu>E@g_=MbCOg zN%XyGr7dicjA+AXJFk8CE^=c#J{1F)5f%)2Wg!J}z>yjGtUtbWRE#o~ZVCUEqqmps@ ztIk>@He$shYb>kHz@gJt^JGrx8R)fsYED;lJ)vc(B@n{i_VwWpM^Z*Qe>OcL%2-&U z;tC^T$r1?&(-{FQ}1>-a58QD|mlyo_vwAi%j&k zD=pYtULC5V&Ue9p;RKUdrC2h6` zCucoJ(j+47e{YM;X~um)P>d8qo7%+rciB!}`&qp?G2g{SoSV_#CZqq;-3^UUBFGy+@rNd%mJFV4ZivYXF_GWK)zYO7}w zDOoik;z@~BOYv=^Zm+j0PAEt{7-9HBF_Mzjm2iqsZK;LjS362yjzUzEk>KL#!Nfqg zKTvbU1sjZ?QmRQ(axw)z&b_@3!)6UjM1B0dd_Q)9DPV|-Hido$;ersx&`#29dvGHLFh%e0y*(;ALEe|=tL`W8I zZJ}W*(T!BMvtq8(X13@f=xcS(%FKxVO$k_+FJZk$bB-$ZGG~eH#`;KN#x?BV5Wl*D z^}XSPlezVKuGRIR2*jh4)En=`oGi4+oik269MV**%QGNeyM{)Vq?0*5rRA@QvB)(T zJG@z+V9CkE)tb`_F_J>(iLTg+Yt9r%ilL3?qv(3B zAIN{L|Dnn_h#A>Mw)M}7ng+YH7%8n%_tvr0^eReiS93w2V{vdfKiym3sCRgNPmI8j z%*;lZl2Z+V(Z#2N22E+OWOUC|$p-7B&R*TBlowX)fgngFCr8sL;-8lbwIB;R6 zC$v2qI*`ni)o*y=K{lq8W+4cadYM}%%yTWaS8=0(Z&Te+KPfuqET0YKgTY9jCy2jT z#L*HKCEG|{?+#MH{(S@})ryakM8FqD8o^oA3mzyp#LT@7AX8kuvcyY|vIzkF_fEA$ zgyNU!V;axX4Ht)ln$y@iHk*-?6xx*SpM-pYK;4)h>uT4_*xHZ954|u}5g_Pjaa0Uw zLWP-zo}`g8T7C1)A{ZS&oR@shimqkEQta)`_NT!}o7;L^*6DeBe)Q$+mvb9EvHE@j zISJ-SYh)W-pAGLi8tjChl#=dX-E(vXE|~4*7D^Gk^eNU)_sZ=qW8D?UH0PZR&DXDqgqpopdl+W<6ry^e( zX*TQt;i}8@DY}_oYi0E-Z_m&rb)>dIqs{Y0vJ@#K6w16Nx$N=*A6%O#$XV^zpK{7b z-$DfZKY%ULp%Qh!pea}C zY<0sWm+lnBr3X^M?6HrtXPMkIKaFcxDhftIkpP5_V~+yLiA!olderTc{uC$Rx5gqr z3$7KoubDV_@0TZe0u7!*_vL4_^WbP{XRIHd%TeR z!h^X~wXj1K{LMdVU#tsln>K?vQ;k0A4e0x^eeOUDzlU5UPjtHV#5(6V9v2W3^&X4v zf%LPnM%uy)?s)E3PzNT&d7NugEW^i8giQl%5_4U514G^f`tr%se(YP`WjCV()Wlx# z8rC$`4?9)X8qVn%>S=$_$wj0{%yGRAmSEB4vMtU4iJJqQP6g-gfU$Os1iNG6b=u)v z2VI8%B*m7dlOyXwHY&R9S3{e_!_P&Uo0R@99|&?Zj}92oygD*YA_jm`R-z2_;;>40 z`qDVKK*vCVDZPWDz$CTDGCR)=FE%4sVQ^5@&qF+YaX-Ai!OGohc$lfG>g&^wsA16Z zlU5jlBE1OlHQDp!N-J)`?q1kYEv-@uj)SKW?75bjKx5yEvR{immz~MG`jrYt({!b_ zKsNOAG=p12g0q~TQM*7BI$RBig+DcqRAfic-<)zaE`^+F+$jl3*RyA@ABk;zZrqzr z*MwIy+Wbo@t82B0`~*QkziK><5l24eH=k$@I;rR)fkuk!%b4y$j6|M+?UKCx?i9GO zFGMxOB7N!FuQ4ak*521sQ)m%D!GWa#uh({V_#K*ktw1jrq8)xfJ+|~7us)}BV#$88qu6-lwO9P$@gvT)`|HT+J5s!HuRovyPV4OsD zBNwVP;}s-PWUCsg-I)Xu`*`=~E`No85OP}RXEJSVrv9}SeqF0o;&J*c+1i8d@T-a2 zZM$i0ZRUiU$NYB*Cr}H+rt*-r0@m9Tl0&YaWP#Wpw1;_)yZ1Zsu3~Y8ap$6roBq{KOP_8V*wat!H`0@!#L3@7lC$IVMExxp~Uqt8bu<;m$N9BqDLZFzXja8{B1ktSSYZv z?9Fwf!0aj2i%_mE(byUImZl)|qDfiK35Z%iZ@3iIlzVvteL;hGgmF+g)+Dhz@emNe z*3Ta}qbJIX)X|c9Yb`b_=yjtFy+eh-DS6pW4S%fM@fCBo{e_+UfC30;+9rk*>{|H- zu>%-_b%CWsRMoAHe`5b*x#vi0qPaVEfH6sQ^Peh#&jvd?3ERJ%fYG~bgdardNaM!f zdP6Bcw~qom7+{zGObh&s`I6oWrAbaG-yihv84p@bjZ!Q2fLDH!_1^nL-*Yhnw+S5* zwp*LODCA(%Y!d~);iDA>9fQsK;LOx(xW+kvU7fSwNww5RP0h*TXj393?Fm1eh8yacg z56||?q58~)XZg{b&A+v@+L`g`5jkknVtb}1*IoxN){8_-5X?yykrg=@JIb-?JQFL8 zeyXrhuVUCy{5x4HWh!kV@Wx)@^MM<>XgkQDss0|Z&(%Lk0&;KbuKUYOvmbjff_9vZ z!V&3UgacaN~4KO_}u^sjP&Mjz^o z!^_>ktOlDMOB0QU`hlgzwCEqB0KxG%zx6KL;bibw>&wdTX1bCun_7egOq^AhppLH{ zB|YI{y!RLk(~~2qM12bpr9^;W#h2pDW}Mxtv$rL+UGDv{q`InDR;ndyjgh;Q?75B{ zv9|d?Y!|irBep{F_ACNq2ETt61(byeq`nCdDZnOA7-D$pqy|eK!S|0+COqp2}*<$<6YHL=QBM1Uaw;J#h_+HDwYS>7tw8|rbHYxx1s#8y4Vmv*74 zV%X#NHBk^(bnc`@j;OY#LB$GCKNBhf`Y} zDrRlFt41833o_9*Ua$9bbe&X8BM=?pLf61--D2Yra4;_R2{U$1y69@{S^-bUmCp3I z6YFj2N7TIe~$lEFHWbaF2C5@f>qn`<%9% z8-GXEpW*$b)ug$(gYl|HFYCx&_*P1R7(+>^2=XcKsQx`&DRrH8%RD(rWrjvO4`GX) zGPW5v`Ou%-&jdQ?lUq+bz{%Ah`ow^mCEwoMTeu>~^^vHLh?fXi2(D$HaEnvP+TD5S z9((4v6om#X`qxPnmV8AXGyj{OWT1_1@2LFKidmyylEQ;7U|dBh5@c;eC1W{Mv&6ps3eSmg7V}7hu+J$*ZZo z)BeoAAQ*`g{SnfUo$Oz!t`s zuqCu0UsVJwYT^h8)wh+LeqbXz`;B3pI2O1(nOXENn$g7cKZis!#s$}E*Bp4nHF?7j z_zqh6^?Z{pAW!DmJd|0iC|cBI6mX|vKGy`JyIv=PQ9%v|hf()*yIPb5QWMjB_*@s{ zqRboklDvMgpa?6@z^t~4t=QOgd-&}~=T9eU*znW1Bb>A#RStbD4(z)wnHnl zLF7Uz4Ffk^c2Y4x8-_F6?_!M+y4$P+*~VOo!{8(F@V*4}p>%e`diWC0Ig+}l$?+X< zS#ZFQe!BZX5(y_c6dEaMqLa5ClhZ&D>xE(^h-T{7lxFypUc*n!2Ai(M(hPcTJ4&!F z*F|~n#rRWn67H0Xxk{}Wk=3+)S%3y}LXyOaDt={?_!DOcDZ*TmiB+E~MOOb@5C#ke z%mABMaK~#WzON=xs-v%1I1x8^n?OGcrYQnEt8{1FeGR+F(KS5ohX+Bl$Y$$m6Uclg zWTQDRvoHa})>0nX$x7h0Ji&=yx%8V`5^-pO5p%a{sqg`j2JCVlzncT;+eqZyc&qsq zG_yl9(O=##3%!=mSU~Ab)eJ~WON497o?GGlmp0hC_@dhUP6PwIQwfE2{oQ$v+%Gb^ z3~V8rTDVUVsIkPs9Ytm9vU2_RyEJp|AlOh2Sc-bqZZ#50yKf(kS)O!3q3GQ-i1xCgkcx{5uu191OSpF z01`Ju7cBx|%%f`#Yr(U_|HXx}H5{TPII;1hS*Y6g7KPTQ5$gUJ`+g6@qLeOAhfFn) z|2HiQv;fT#ApGO*{eyK++iMO6aRjTyQj^?JAiR@j1#^m=SqsACSFltVpIT28iiWp) zj`R|NXZq|3RG>-9dpiK_99!fMJQ7y1XfwFbe#=G4L}eWo<31tbcRsNV^_#DFDPgRb z=sz;iMCb&q{N{I}YY93NTohX`p5~e1-}GSlIYkj9_bhdw!-g>~&jg5me*Paq}sf3`zt&DlZR+cp=(Mu+xy5NcPR3hEyC9R_qZ42x@ac& zM6AIX9>|=UL~Cn{e4~pd5<4ZMTHE-})>a`)6MiO#vvCNu?2xvRt~~v(-eg&{GhOyd zy&&`e_{ye^1*;i^1aw|xAwGESPg(LZuBMPJTorZWfD5U>;sFU6X*~BmO>q^eBG8n4 z{)(YrzO5vAyTd(aIF=rbE5JxUq=wGI7)en_yV)_Phm%Z1Q#r3%_Ga;2k(L@3@;ly} zEM$$+id(~aU|)LziYU~YJ4FmQZ{ZT*DqX|X>H8*zXK0hV4F{;P0jhrBN*a&+BWku) zt3_b*s=3i9srgQ0+JO#X0jDGV$N_2WUoj`UHjwN#NF`=q-A_GUJJajHQ|??Z@r6kq z+IZS53hAU*{(j2&S`Bg=|DOHqhY@P&MVNu3tw%M(K?oO)kiW(UcfR6nJE+Q{!SVN# zq!rNLJp3uauE2LTO6nY!aIKVq%f! z_G|xVi>cnXRhtG&hxXT}0uwt~KSB@=J2B?i6LE<3OWcZYHK{osAj;+smy+)W^knW1 zjWBrv5>6i~cc1nVmB_T}NQwAmbnzzk*Z?Th&+`e6LLfAFp=`J*_f~|EzWq^2Cw!ih z`;wk;@%|y5AmMzEF2%}&jMSu5WQPWicc-`1{Z`~MP~G?cCi1{Ry~3&U4WX0xQ5Vh@ zj}wPS(KW!JUeSJ{?*P2F|G4mn=I3iu4RZJ}MkxzNC?aenfSJ!eXO3WepqCgmgr=484( zy!ST6I^TO;xYm1;g@Wupk4esaIZ5S5C%)x2n;({DDExl9kVk;l?~8y)Iem?5!HpB{Yz8 z^B3~TX{7%6#8s40ykhsf#Jn*#d((Y%3bJ^5XcBzneWUo z=jbr3V_lM!3}Y3>iu8tLI#M?~@*2b20p8+T{oo{nXl3P&>3qX56SsM!E$&^!3a{Wo z;TQ}*2a9H;KXa}~oa3XL-Sq>A$D^xt3wPHnp|WXzQ<$VX3bD{MDM&Y2ftP`Y4H-1| zepGDR0yr&iNUqjz&~;lXz9y)bn=v%n?U6TYsa# z$vNty^04O4su`cHit)OIKR@PLyFlDM{YM9KZ8*>q)+K7d^RfQn_$2k(x~6|^Ep#za z6dM$Vh$RW-@?!A&bMeY2m9?~HN(_maG=9+s+l&^%n5o%2>jGyd#%LXPU{fVqa2XuY6DfSH1O z_ZB=p_iD^k7kf&EogJ-rWkVCd8ZU8N>q3Q-NdzP5rD+}F{MJo42Uc}|_UB;P_&BjN zV1r#IJKf%^-=D5Yf!y(a;Zi*h-|G7&-!1gy&0GaBX)E^Tbij|KIxqUsWYeI0&GZo#nb+m)VCF_LiRR3o0t^*VLE>d2U8c zz@Q^-IH@NAH&Sn1+4;f_&O89}V`NNb4t={{2Bi23BVQV{&Mega$tvax-kg!;KdXl1 z8~;3Y0yzE_DH6+b1U~x|IN@J5KQAcb-0LEzs3H#_%7eHmn&%(UY0+skmR5dqtmcm! zdP&<1I8sG{B1+#mt`2`(Z49jM1JK11Qx*HPVl zmw#vCs-*3NucV;BbU;MSZOnzrXY5va^gA++i#!~^;-IY!pa(OUWBDQJeW%OTJCRV% zqJ`5yxV`3kc8EZfd?QoJGHy00?L+bx7j!kcEDQf!Mphtu=}_feIYZh_J|&nJ#{nP% z^BDVi32klWQJ0fcL@(XoXrrJKT4<&^%DecJH1mR&J#-?~3be8?h@lr>rczQFNy}vt zsn%^4g+#KydeDK3`hl4^4j1&T^d&$0y0(&=WoP6q@3W0{8u>G1x^mU>n@`fG4_Y)L z#rnYGkkLY)DcdQA)v$u+>=9b`jda+~utw`M^^}2vl7FaniO{%m`}4Gw4zi)z9m*Jq<1o2xe<}Nl?D#Ob)HCvU zF%Xh*-r2)Xr#u8Af?N8h0s)Kh%q7?+D~*Xa-z!l0UuH< z$OgLxk3m|{COPkTqzwQ%hKCgYTLOP*Tb@6KOap6Ew*=Ty5N~;VD_wWCYY94Amlpox z+ia7RW2IB{|EZy=PF!v}?pY`o`J>8HC5*aohbf@`+62sxGdoG0&hfF55iqzR%XIP3 zpm+hp24oHklEErC%Dv6f^(4eQXILoE$#b*s&MZT9eCxCC5LP-DL=CL(gWlXp;cYgU zyS>*!q@gvakNXr0=PgJAC}Dxu?l1b;#I#!>a=4oh)C|I&pBIoO_qfm(!ypr|@F9Qp z+IvVU5W-?bMFf3Q-Lw@gLO&>y^-HG?O#tLF*1@p!?W%31=Bvb9zyo#uIM34<)H4w= zkbfux=DYBPt(BMS*YH^%+MiQMdNlg4;zc{I>AgYHzU|yWEa*sf>`n2r?u)DIv?d74 zb1NEl;&Tu`NYI*rdb(WhQ_cu2@PC%Ir?FZg7{?h9tO)cKN5w_W*FP1_iumDia89&o zbd+d~SH!7!)HL*|m+>CsBrh4R@#yo~Xu6McvLtt!x>%wqeBUsnQaU!*C(`bJyZrwP D@Ge6l;!e6l+@sXjS`p?#Yy_Wl*$JQ~=;HeYy=6c%Kf!Ux=ZJCigSyTk z@tp5xu(*$Rv#qzA zCYq+a+3TcxoJ^Ce$lKy}3f$YeO^%kWGB1yf?-Yd+b-GCy?h&Her946SKixNPvpa9IcjOKAV%$L~XVuJSBK@)riCNcWK@xgMq+ z?}$zr@0#{ippo;eLLg9`>`T4KB0qhVZRCBs{N(Qa>}`v?~M8s1&(j@Mdf-W`qI5^mopg#Jp315 zrrozt2Y-DO)|zmb%gA3A1T*Cra^>Jzf&`w0I%)NEdLGlRDcsjUKJFw0K9AAfeD`xN zc;nKm;@*6B4)6ZGUF1*o!oNxaVX3D5j|3ATFdwEIyo<6R!CXoiTv>usJe{7$4JoRJ z$#=UhMUL7{3ZZtRLg4ON+Py#hC%E!D!>4-~=-G?ilb?6rvz_>(29~;T3?H3?>y;t6 zULJyL1fS-^Ap-B@T3PTNnp1W!<*47}+fcJnff{o1&MT6XXrtdpzBljugO|N9kiowE z{53XyDU&%bq%&tj5*vFzd)6&`bEN36;u(mFIk?7g=OBNhSU$XXRg;InLv3i%1j#nLsCrxz|BZ_s13hTNRv zp%^(9>dG=)J(sfZ40HZ%t_add*F0z*U9W85pY=-eaw<4UDxq8iG;v_1tWvs%t#w|7 zr9KRn`cRD4k((H;B`C`<$Ub7={&qviNoaN@Xk4<&v4WzOz?$qwRZ0H z`mkU}X9UKY^%y%rG*X5}J;5`GolqZkYjfz7|94H7rEIObvTTj=p7W6C6%MUd3kS(x zuv~?`@#;czU8vD{DgxuJ^Dx%p&OkXVt}HaEld-1I^65O&oiAOZP2{^CTCD>29b8SU zqUXL!jRSO?{X1X0nWzzloAv*>(KBBdZwn{p2|UL*&*9EuY0|^mtWTKEGu?Ue`;gP= z@~zU4Q-flf#pEw}T7%aX_~6Lze}UU)qv1FeAy`j_b6{-`2W6o?!o>_NdWWqwQa+vM zLFbE~QJ0rIO`kRL6?u@KphiZN9B1t95$Z8m4lv1`#f0NBJTa3 zJjgZGYsOWYr;1jpVO*&};R+GsN-h5Oq!NFL_roYTZ@ses6Q|~jbWx5@^7A|d&tYqe z_{MjZsa#W?GbHL}7*=SkE_b3zP0 zKv{%|Zt9>r>TBPZzN^#oeFX`+xcvz_xDno1qQalz{9x^k!kzbG;CMRm>}=nfhTa|d<;SUz6D>;@op6L5%Yt)m;AZ0 zx*30u^)v0%D^Z*I8{o4gxb@E%O!m8>9Fr1#)XCZC&+Wa7{x9828UDOf8=JXQXZWm1 zpNq?jvnTtbvv2mtWZyjRp7ig@^U=At`lIu2o{N4`y6(sM;0ECS$(q^gm8H!hm{*pD zdG)H8cQ0e!CdOnEcE+?W=v`lWWzBTK*vz|(Es_uzdtCyI;T~CDfJCpiq{V*$i&S=H diff --git a/samples/web-app-managed-identity/python/src/static/favicon.ico b/samples/web-app-managed-identity/python/src/static/favicon.ico index f1fe50511ca0c33d95783506d4af99426dfc10bf..5b1d5cf37d81c073dbacd66df3f69d9240359dda 100644 GIT binary patch literal 36791 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 diff --git a/samples/web-app-postgresql-flexible-server/python/scripts/call-web-app.sh b/samples/web-app-postgresql-flexible-server/python/scripts/call-web-app.sh index 075a3b4..3473567 100755 --- a/samples/web-app-postgresql-flexible-server/python/scripts/call-web-app.sh +++ b/samples/web-app-postgresql-flexible-server/python/scripts/call-web-app.sh @@ -66,6 +66,9 @@ get_docker_container_port_mapping() { } call_web_app() { + # Web app port + local web_app_port=8000 + # Get the web app name echo "Getting web app name..." web_app_name=$(az webapp list --query '[0].name' --output tsv) @@ -125,9 +128,9 @@ call_web_app() { exit 1 fi - # Get the mapped host port for web app HTTP trigger (internal port 80) - echo "Getting the host port mapped to internal port 80 in container [$container_name]..." - host_port=$(get_docker_container_port_mapping "$container_name" "80") + # Get the mapped host port for web app HTTP trigger (internal port 8000) + echo "Getting the host port mapped to internal port $web_app_port in container [$container_name]..." + host_port=$(get_docker_container_port_mapping "$container_name" "$web_app_port") if [ $? -eq 0 ] && [ -n "$host_port" ]; then echo "Mapped host port [$host_port] retrieved successfully for container [$container_name]" @@ -155,7 +158,7 @@ call_web_app() { if [ -n "$container_ip" ]; then # Call the web app via the container IP address echo "Calling web app [$web_app_name] via container IP address [$container_ip]..." - curl -s "http://$container_ip/" 1> /dev/null + curl -s "http://$container_ip:$web_app_port/" 1> /dev/null if [ $? == 0 ]; then echo "Web app call via container IP address [$container_ip] succeeded." diff --git a/samples/web-app-postgresql-flexible-server/python/terraform/.terraform.lock.hcl b/samples/web-app-postgresql-flexible-server/python/terraform/.terraform.lock.hcl deleted file mode 100644 index 6a962cb..0000000 --- a/samples/web-app-postgresql-flexible-server/python/terraform/.terraform.lock.hcl +++ /dev/null @@ -1,22 +0,0 @@ -# This file is maintained automatically by "terraform init". -# Manual edits may be lost in future updates. - -provider "registry.terraform.io/hashicorp/azurerm" { - version = "4.60.0" - constraints = "4.60.0" - hashes = [ - "h1:S2mEoRIdLdNxx7OPP3hGpaRb7DVMk/XYHhLvpMmklAc=", - "zh:1ee965ee6be563f14eb7cc8825d06524f2723f05b3ed8ae857a4b83690439eac", - "zh:594c57e40075b584a77889a21fa7df3e20cb421ce302a07e504a1d1305759217", - "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", - "zh:8c7ed398bf4ea5729fe9b30c8d4da36f2cf07d4c58f5265d8967bf92030da24b", - "zh:9088e9e6c9610bb5c87c310c0b9d3f821c4e52f77b6ad1085647b71b20d8151c", - "zh:986379fa0b1fd493f11cb3d9224235968357c3e7064c1478c8bba213567d6767", - "zh:a0025810f724a46648dbcd24d345151f21f2e0d093b7cfe7771280b9efa492db", - "zh:b72ac710c9e89d64ad59f2f11528cd178379910577f7fc08e273d5f983266244", - "zh:bebb774b44b588c889525667362bdbc4a9799ff78e3144025f0d5b231e16ec56", - "zh:ed2a586b9fab6cf18da7a47096257132b49a880cf0da258e8cc9beec624a058f", - "zh:f9b5ff4c433c78cbbdf1067557f8f6b04156361e102854848559163d6e73b0b1", - "zh:fd69648e4b009d0a7893c3ce7c0cf344d106a6aea78257c95947721280fe3459", - ] -} diff --git a/samples/web-app-sql-database/python/src/static/favicon.ico b/samples/web-app-sql-database/python/src/static/favicon.ico index f1fe50511ca0c33d95783506d4af99426dfc10bf..5b1d5cf37d81c073dbacd66df3f69d9240359dda 100644 GIT binary patch literal 36791 zcmagEWmp_d(>6Q{i$hpk0}H_+c#vR=6Wrb1od6-g;x0iFoDJ?0f_tzeIKkZs9^B#M zdhWm9alG?mrfYhnrmO3ms?|=hE{~(xo1m$5$WOx zbWKdfscH3)sLJu8Xzj(xu<713Y$3x$OfLQLhNy8}4uYlTL|y(QT@oUE8%0m6*lERg z1z4=(8HnCaQ${&?+Zzf}>!bD+H;@yHKQSZYu^->grpOP5U0!8&*$!7!B+yIi1l|oaJ(PxauD5x8~L*c^Ib0^4*b-W%Gu9Sovk9&i(=hRu&Fz(W>Lscu7crQLUxrCM;>!e0m{r*JdLi zX1#U$C?c6~)NA%5PB4y7HQH>;zWNGg*Ey4P&2YQ_)ul&FNMtBeU~#9Paylk8=aUY{ zNBfE9?{iK09V9WWab|*Lq!FiiDKA!9(^k%@#WN!qU<{Fj+%hW*|2T4pa@@bMiZZMnTL#@zEc1$?Q2pM5i^aK{)@f|5L zgrL8(V|Z z_P_K+c)0)doEohned9K=)z411+B%JG7yQb^y(oqU*iX!T=Xq{0W%1<+!dPDWy@E9! zHs7r}y&k4(A>gj2{I^^3JZggQ{)fHvVz&W+6pq)3ti z!9XnJ{b2ma@Ik4GevGVKB5b^sp}QmS@Fj)Q762@%ewgc#XF?g6f2_LO=15ljp$_1xD`Q%T-%Hi+CUcHxoLJ%bB8waM({HJ{AthxM&$4xpw>& z)~qgo;6b1%I+Hx9$;au+f^H5XO#2udviAgAWfwD1>eIbLLwd0hXx=X$eo~*N8(gxX z(2H!!ey+c2(Q&0JGf~0^pbS`FO7h1qr>93=$E++~b3R>P%D!Fsu-(4WAnqhbaE67a z_`zwuHr?{KRq(e_1QtJYt! z^!VX&+eDO0B@7(Yvu=)EFx$1dr}$}`YDCQkEt})^1aD--7vtNGE9<9|-OkIndnP-} zY9YZ&m}kt!)HE`HHq&_Z>kEG%4gyWlT#s#avp#-*Zms+A>NY(5BMIE|qs>O&$Z)3X zRS0fk>vlsNVA-?CKmcBaqF=`yzET;uIH$hRV&_r-0oRHNDgczsn|ZiOm+QCHZ*?9D z{-k0MM44Ynm5d@+Um%dGjym_pWK{AMUw#j|q%IT;aG3{WO#UgWAM3i1LAa(KHGX1xH=6DDVRH(*83nISQ^U^IDH)$8Oj$R#{Q6@CQ0}9^bKGzWQ_LjDUQuy-WU0W13&+{^7vjRKUJg)-7yo77u0}i@LsSLXC;-wIJ=;!z-qPYbdPlhVEba-<2@N+Oq8S$ZeKt|HLaA4RAl5qSm#4Pw(bQYGWGpvp?oDC zG8)(7k`k*cThNyeXsdCD1Ixxelo zVHAYCqX%Dod@D%WKdXMmJ!0oQGeWJRH0Bl#A&5vzH47X^_r)1Y#cj z3A^9ukKWvSqjfI4>2QIu`Vwdde)GGGlhjxWooCSiP3Oldw+w0i7zdS4n2C>XI5j-6LNO$Oi-?-O8EZ+@S)HB(EkH`j}ITt0RTPke}G@8 zWA_aBM2{owF6n(d%9M_(<^#%^u=Ro%DFaR71-yGXyt4T+i^;t2S|tbsgJn=SHDae& z8(noFRGW~fH;*rJy)<+J>EREt3i^n;^lL&DTl{Z=X?!4)(sdCo=7Zin%E3<;-}44y`dm{RAC! z2OpHcxQdt2d5bTdg|y0A)&@ZkVaUg{Dztf>#NjLMYi&|CFb&-*6UMz(*!jfKA!7m( zY^G@X?y%{?Q+JF8zydJdCB6`kz|Qv}9AX5uFj4B;BL(=erR#o?*6xldMT6y_o%*L$ z4aWr1vYlhZ3__LdPbPT%h>+%v{xNAImV2Z@irtaoa zY@lrgal!sq>A`;UIL2=Qd?g&9!dse&_Aw&^{XmQ6(~cTT!ZadKa1zIF_ByPKaG3D^{)pJ=y>8;sp^2pBAyHtEec817Cf z#YBe$Bam>k_#o{z63qsEDOnD4ED&WINO4dR-El)N~u9CD1vMP4f#A zle+s!d$7@IX|1hkX$MmwNeJY2)+WNof2oysFZ^;CKd$g!U?=VbJ?6L=?Fd-UtWb%0 zl;q@jbsDvQjys9tI+Wqz(g{@nzC*#Bu5{f*_+|)@bsto14&9N|l;7HbWpXE&d*w1> z_!xUCB&`-l;~|lBFGY4##P9Z4j*p4S*2{3VP#_Uf7Odd@W-R|aXK%&XBV6L zndulWat_+3Bc;q^m;ECMu?R6?N|C%p`irA}$8tl}yGLQSRRb(3%N7wsP6}o~J-&`o9g?O@(rAObK zP9p&ljnZiWNNC?@R*az*`S#lU&)9>vpLD1fd3;7iW)?bf)ed}-faq8G`Gse%e&Xa# z+&qubNvN2UE6y)R zSY*ygWZ#AmD5%pzf=7i!Fbp1h65i1E;XwFTm{N!U`mG|)FMgazD-=B^>rY{g@|36#=Zw|{AGK_|v%(0W8c zZVvp+7UshJ1;+du?&`GZar2J=n5=j|U^yv;j#RA9oc`!`i4Vq=A$PKnsM}A)@w@WN zk-eDXfpr{b^3PPeaZriP1stvD#oFLbT#uop37nd}sS8p;>be*>`Hm{{R+c5AdF^|O zL`~Njkq$ET9}M9H0O2%8^4a99Z?v)Rv!`oMo;2;;czAz&{2t2tBGf9&KO;N=MM;HY zE}OCnPbm$)SOB+wdcsTxS}-V@m!UPofJEKm&RoQ0PMu9R;5GRdPsOigM^9uhr8N$* z8ZjOARPCoDS-(+$ddhwt)f9cT_5iI>g;FeNeO3VFhEhJ6M6HRFD@uj6%gTEAG=2h? zx+yZkhW$Cq`+22geU|Oiy=ghKJFZp(k&rWsj*n9i=fnp7W(tMQ0j^%b>0Brmzz;OV zL9ZGA>h8SR<~1I9qUg_<$TWs%f>aP8ZB zTXt`9VD;{a5xGtm_XBof5Xc3GU76PVvF-C`r609kA^X2ep+n1U?VUfhvWKRQv&c&B z)>OzP=*_tX>I+ugZCl?Gmg&yM&E57F&!!e{=vBP^cUpDV84wbBVD%42$`>jf#;U zE+?!U=Xi|XEWN@D2qV6fAZb|xR!@~|vI>PC^iVF|;TfZF@{#g~)l1jnloCw9UU|?iOhmHBiC*0gt5<5}} z5=^aiMg{l}$e!xXkgpLSiwA}ep#>~evhuO!EyT$V^O@Bkhggr$1gTSfx~MMA>FQuVqTwQ3ettVMGsXTp>$kpMYAd?vd3pm#C+ofbl@0A6wp z3_|Y(xz1|@0rc-~ZW$YoR_1;ZFw$}QPgt#pR!(gU^}#y;T7`5vEmao>caD3TvmlX@ zK6`)Vhn<$;m)KU+TC{iL)3PUf!QNpuES3MiYy&u6v z${dYuzGx`+$$*Jkw05FkI1KEHffacP`xUa4)Ot17iu)q$M!6G$!?4d+-83;+ChIuF z40tT&&?0G*>-%B;K*~HN1-k$OFxWd7hYb5mjPNoijlN1aUxr= z`(mqd)G?UDJ5n9wWPo4^#=@@ygom=2?66sr|sj>pwQ9Vp^M8Xv9dLo{sPW%pW$;4ej4 z*BrhaziZ$U0XDpzCSN!>W@|tG=A~Hvo#W68I5A!%IuxP~hAo?IJ5{&c9Eo9zgrDs0 zhnc0a0fd;Vg802`oP^=3+1ZI5Cv^el8JcM+SttlwhJS*R)#Uh6KawQ=y|v3aRu7+u z4(^ILMjPvooQ@WDdaNw0uZLz_^^f2jEY|pefgj7N-Y*C(WgbT*zoK!oIw(CA=9Eo4 z?KaH}{&kthRFQzd#FY|!(VMn0GTu(z2JNgsli6U&lIel#zho%NX4}+BA|(=pixK|*n)R94Ayx#ZDnTA!+k~Z&4GDXd{fSBh;=yI|;UF^*Gm>UVJ{=qzJyM}` zN~S)u;_BZUvFmdjp;oM`5oz;j`l^*n&QQ@w414NOM4bjnUiapn5XZ1@Q1i-Q29XH25h#vgupAFy94OYte~jo?8T zd*}eKJbNxrUx{sX``M}3nBIp(SddZ{J?$UTw*Z_qW6JjxX!_X2+-~Chqruj(i7jhk zP|4`0uO8pk#;8qCQkto(aELOp&cpZq z3dFs~?;FmGCq*8L#%wd^OSXhsyMio^iYA#MX#HYv=Zqzq_Hlk%C0ixu$prpgU{FG; zZlf`PT#7PT!@=!#P-nk>r?>;j7d0B4z24dKcBYjN_4#{`R~DZ}5}pd4IC_6GI<7bP1*y#souZ0| zK6H`h-@FC>N;+f8O2VG6%wt-oiFLuqXpfnQu7^&<^-uq6h3=>S_Hn;^m6`is{4{QJ z)i?bTBN!XwQnE0@lYwQilj2=vpNwLZJAt*cV7=8q$qQ3sDbyxWj2yksu@Yf=nQ zN+W}TfD9#2j;AB(A_ zLw-GIhd<`@igfe>5|wO2(N2+s!D3I3IsK+74_#F1X)h z37#!g09}8dI!@GmpTrekBw#XP=nX7RWH}kQZ_j-JU^Ljpm+`c&TrBg3qBidrPlxtp zapRtflpMKiFR`T@mA=)S)T@kCp~Ac0ObrUhz)VzzMS`7oq>2hIPFD2{#}3k)9I01M zDj)ZImQ_joqMa|uULygOgDQdLRySm}A|7PK6@Ot1d#Q_VC(^p#Zx=5Bi1Xj9dgtdi z*6>dz$Z*7-ZeEj2L?2##>xcDzf~7E^m%ac5cwKGzf<973qn};~aTqCw#u)wxl_AmT z^(CwP6TRT!sa_QXe~X6srf~K-#1-+|3X(3@u~=(nwdKN?t-6NkOT@geyN}mCknd`q$qfhfx;9Tc;M)hJa8VKR9)C$DGk${p( zII&;QxZAJgld;OytF3+yhUh%KxT2OSU?{quN{$lb8Y>it+)9*n5Z8PwDJIx9>sFW8tu8>od-YbdX5?v6! z%=3NkY$yKSj6is!TOSJ&gl_Bf`^SqoHetMfdd0K|w34Uv4P|?4^m<(Fr61GnTlf+7 z2BrG7->cCPLR1MktXDL}@qvajmBqyoK-Z|NHYu5n(}mzJpK|re~>Kc1)GQogq zG#HHjiaGT^Uia#&=occ)IulDC$w=spu;zEOtDicJMwh{tT3<3P9gv7-Q;wOR-Oh4m zJPQ4DON>U8Th}2tpqYY1Nq4U7OV#$W+Xgc zw_nO&{Qzvhh-qZ591UKWJ*6*!sHZ|_e>d0X_J*Jkqt*g_x1eFJlu=bBE@wO9&%4ZP zJxL_r`;Iu3m)L%iA}iDsz^d!(_Ii^h>!lxBtmBIvgpa}6X+;caio^j5Ji#cHXH{s>yO0-2Q1kZg7Wvf4p3gm}l0mOfV|&qj`~6L}Zp(X| z&lT-Jab-K8Fd|g_tReprugdGkNHAdPI&7+>J|?nN>*>SGb3+F(Uk>^Ef)I_3ET2ZN zXZK<T5-d>f?us*x0TjB^d?wt-RE?&E4L1R6neUiW>mo%odultu6<=)p?E2Y zlz55EG>T02Iyy3|z80k&4M0ZD?#zN@IN#hy4FE8g`k$-23soI-8-COrjM}qrvp)|; z4)k;STB85@$GN^Xj`voW4+#)aJ0E0p&8yI8oZ)z`5C zL-m;xZNfP^k83d|?^+q{&cesg-r&*Dx^p<+9dTQoYnASpjhChBSA;3xH_?F%7%PYM zQYwX>^8?Z95|+uwCyeup3tK?jX4or+q=B83j6;u;0wQk1%{j*g$a#1W?_T$2mP~Vo z$>0{@+EFugs8|{qi5!v4m>lEaw%x~FU3J8NH`Im(Pqf@#1?!`wMRu`q=_MQ&hjr)&eEKoYrOA>?0w7#{hTjc5G1I7) z(0iacs!A!7je^GPN<%F_<~?@dRm$OTsiY)Fk$|AsttwGj0`xRsK>n{y5ZBwWc@m%? zMI-0^Z&C)81;y1`F6(2GMv|3ed){n(+$`RpBZ>Nf=Eoe_r#(5lQwnTfHG;3dc-}h1 zzKGQhQa7$UW)8n61a428eQztMN0jFR%P0M^RW?2P#XinkNi1$r1|mrf@{Sh(Vs(X| zoQxJ?PD+11dEJTm7jvwQdXpslKXOdib3g3=a?CP2w`Bkz*#2LRIc4CNn5C8alSq;&l%MFM09hSLfIhPPoFHqB*1CeR)9am7do^e)P>T;cu?#nJMGzQ5x$3`)Dk zRY@lo^l%NTq7WMeo)%&^%cCFLAk`N+dv#C#XxkC7ASDXHMGjmy*o zfF=_>TKZa=RXG5cxjFUCYb$BjT3A-3sy$u^GFTC_02>+jxXvF_$Z@fFGe7#gi0rx) zEn{?ks0nc2gOqF?orc!67+2)vJ1Phx8ur=&2{4sKHLYCgWOxcX)c7bMpM1ILA?I-F z#BjY5fZaHA0#ezs9I8z48IZ6Cg(am29U<(-39;m1Ekdw0_ygM${zXI&>t1k$UOqr5M z2$fw1&vm}wyQafOh>lfgC5WMDKLU^%LM-dLo(_I3ymzi*74>}eMs;zWs1B=0+KV1p z6x1DC%`F9>A#sU+qOHj@oA+TH1HEEyo@vX+%56ETH+tnJ(F07TjvDcMN82`LMT+)> z??6E7;N_V%Jg_-j;9;L2C{h@C)ue9fUw7_eU3wFqe>D^>a7d?1*V zYmClF2c^FAADQ8^+Ai&Oh2a;9K#)45S3Fb-3PB>I_`vVbQY|rM6{9nxN9EP=s3{A2 zE&x(7v5-8dKp!WSV*DqcY%W<-yW&#*$cQ97!v5Ho?0x9##T)Ota;jlNb~u8ITeBJ; z)dGjxFUCukZ!Z?%m~a@cR_G!T%B=juYmGo#_3F}ZYh=I7_1mlBKQg($X(r+NCF9cf z%IX#`EDa$UUVf_sZkkD~c$k|pSrI%Jx)GjSj_dWU4`2lbuPu1mcUQ5SEI6#kXSr}rYQxMvPdRG0gNYXY%3inO|`jQPy{T*1^EFu0uXP2-Mbzh7eQF|L4v(ZAN+oZKx@lEd#rj(I7rI(oXXm_2=0jEamwZoa zc=S?G@JW4LPFH~^qANO4^I#v`(%5FQL_y?t%ZT}d6WEho%GrS#rMk=_P&vd@gs7!7SxxpG#fT_pc~!s(y;(dWN-WngL);OXLuo53lSfgjA&P8`3x)4@I!H3B?*uj+a+k$c-#h!7>R`N4PHV=&_k!)IO(wd27WEwsrmeljXO%Fll}*1*%S3~CV5Xvq z`@*1nI31A`aXjIXkzLjXai!S3xT0+zH?*21l&=W=9A5$0$!bX?llOx=o#_r3eWH}s z!?NYbQ4x{wlCKAq$_Nas<#7rmso9skRhGgw8Q4)Iv$K*}D!(eaeR1>Qbbss>3;8?T zhJVMIP{)uaph9urGIWWz$(?(bSP2Re4^6*HVptxc=<`k__rCrnpfT$XUK(yPRUuYx zn@!w!${`B84J^7)Qlp|irNs(~wZEdO(L#$9fW&E$kOl*xq&b99y58M;`+OqFqdQuJ zFL8d1Q&3k1(<0bm4Z}a{d)EUjCA`cER~V!weO&1v3dX&@9p@L?S$<401;3!SPF}@X zZ~3zvcC#p|*%z@_J5-hf*4}Z|q@-6te-sw|Dk*TJFZ!O#sT9|``?dSQ*V$yE{3vDe5s85?-yoK!K`faJ$mp+(m}`h`b4g3 zOjXfD=P_D{z2l7|217+#q>oct#r5N#vP0Gt{=A4p=Cx4HBhls4rJ(5d2kDf{qp$=5rb;6Z z2D;oPN?_>ktWaM4R8)oP&)qjO&iCS!gXYIpt#%XgmICNV=3jgun^{&@xip zz8caL19IV0XdxAXQw+-Fv`RsoJ2NDp{b}JP_1PAAAA<;POz?_x3*ifwAq5QZdjbLUCV!LPI$>;&ZYxo#i)t@OG0URyGQt zmO?$Vx7YUXFG*nSfYxHJ-@bPVtdyK92_{9xfTRQhHgOYPx}ARXZm~7psM9;aSdNa( zOp9!SmU|hx?<8zAKt`2Y|%2+uJf`HqvM%|WhPMa(*k~t(?4b1B3=-3p5l4v zdUw^CHPo)Wj;~@Oj_I&);B{xG8fF9_`!Ce=QIt%i03JE!zfkyZ>k(8qy#l$KSZa=W z!Z4Bh?YI_2ZiALz+>12v2&15P@kkz0z@9_2sqyOvQXVavNC<%-Yp!wKUa8UZv?edb zK>_xy9q9o?*TI-Lz$YW;0O9F<+w1?}`8QR^ZFO!(1qE1abds>eir4lZy z?R0IX-ms63Pgkch3j+GsV{y8m82G9Ef2ReL-<0V$i23?#6&>>%##hzq-`N#kU;28C z^ZKLyxO@+;tVEyJ|CIigC|!?-%W9d~>F`+4ix@zt3KaQazchFSg1z`a22YUAR?E`H z>bHw$2aP2cCHcv|KH>VLV3-%>^7iwvRgv;VrN%sTKuLwGDj5eaNG{e~>qtZZ1<1Qu zh{u4x#S{Cs{)+@?Q}y$^H$*50|9ecu!-e6ISn>+(Q~TQX-I`D<$oBV5jWP0xJhf9F z5JY-F9Ky0fVC{w4hDLjOn{v5vwxAHRnpNp9J}^YM7lcp^zmWqf#!`=8q`NC3_j;{n)lwyCJ`&=HA)oVU^Ytr zR_oFGNHO3(U~BaHg+R^W+=h_?F*22DzIc{?i4U5~>sPgMNd?rv>42$O-0#1;t~wbn zkpG$uLxUqCdB~*MKQZca>aRRB1x4F4VV%k(rJcB2GK}OWJ&4 z>&v3OshD&pvh?aMjj{Tp)n{-f;Whlgkb)Ug`(3u@qGRiq$T&s6>Z=5ZVjjh+?(3|N zm(r(np-}5S(s?o^mwBI^HHMdPwbzLEYw+`c_PPEetHLzBI{Dx42f7jWuL|6*LURH% z2f26H1fGlrI_oxiP5V7DGBTr5%9dWc{~H0Vix1^+2O-0&8mo3nxV2?vpVNj%<=SHR zEhDVXa_klCAc6hPtLrHP`HhQ3nWXzz-g^2%jvPLZx0-&f1UuhV*xHmoo=64D{=)l<2#T}#g~NS-wj&Ve0|CItlwLFvvz zA(Qm}pys9|T{u(w!H!6q$G_>qpidr&z50|D_iJ)B>}uYd;!x7&egTnk>q}2dIl(Ha zZ0s)Fwtx3`MO18vbcfbCee!Rw~BVSP(M`Jd`(ISarU2HNGTCe}ozz-hy5- zriF--@{foJW{O@MJ!>Y0h^iBH(POkCqtUpV{+rPHK!}+UCvNg)83UF#qKv}(h?N*6 zzfsF49xv?+=zh5*h2(tv5uuOdAyKIA2IjQGAp)!R!|Rnd0;lt0gQl(dpCMkz-DC4G zsgZt;RAsODR|?O_^}+X>m$o^ASd?JMm(M>8v$_`at!-cTGW=WaFs2YLooK?M%=g?m zi;kAQ%4~Ic%a0urh5^+W6)?IHkWpu$VNP9T(YmG!^1+3Vao6LRKXiD8fABJQx10d| z+&P00ij#RLc`&R>B3miI87lFV(}Ra5OC_C?Fr~U)&p{>@p11+Fbg@8no*(Z}5UPNN zP4U9N3kT~m&TF4vE$2Tp4i89L8~gf>wcYO6I4kn{ ze9LK?3ICJM`wlYaYMlfIhrp1#tOFGLIG3B7H(xq=Ca+VjzD>qtrE}>|1xRRgN@C#6 zCMi@IyRYC<9gOT~?V#%ztT^Aa-}`(h;a1@=u+H*5Ta;S7q2e|HGfG5$|1s!h-s$}d zIidQ=zb4S=5trD`ZOR#n`|kfi55k}O;r~Yu_K2Dd0su?Y|LDO(f8R7Ct<+jtJ3%sN%X5u6nBZiPMp%>)9MNx7X z^Tc2$X-UGH%{SxqxepH`xAhA#HB0o@zf41QNKI3ih`S5%zbj|)n|Kf9e#-YI*r0_g z*OM_o5XN7TN{V{y9<7L5r(AruoCx!6`NC? zsbm&|B^3&|j(oEiMH`RMI{yJ3(9V*`lJGL!;Rb!5A(*}m{1t=#8M|9I*c&tQF&I4P zec8M)^Lk}A0hQ;!XCPrSbO|cN8_C6XGD-&i3SXrSVxa_zLKpM>i!$6p8M|CzQsL0r zdtyZ3!Q&ziYmLI`PpOrK=R0}PQ8<79!}>CmJ&Y<1tKNjKIpoPhkbG!!^X>D%8E|Ya zgt1O@+T-zFX09GGJi5UOPzz&3T}Wh( zzegtAM>~4DKMPD_V(@b$QOyg6Zk(*7f?l-Hu+>yc@5)cl0I z7}#?rmVwTYRz^XN8AV&Ti`Cjr9&Ijvf4RT?vafd8iRZqdiS`91PgpM+KpX7#<^-If zWEpV1Z8c!5#oqJE4H|bdr&te$5{e%JqZzoby|MRE@-NNZFW(~vi(g(hsWCo&o0Ekf zBq;r?PAKQzr41A)k%$!U$G^$&Tn;?*C=~H0$nT!ygyAiAa9r8#sR>nVHFK(uNYgn6 zD`v$ws7}KamU$XW-e=-G-Dbe>VK1YUqJKowk+DVI3pd%K@*dcu-je zgzy&$4?6aIePj^DIEaAj#vnK&5sBoNELGD2H&Pjn}5ZsITTsTA1{=8^cd%JCu^8?+mJEYzha(9RwYVo!FuC1eESl7 z9~1NN+CjAQ-KNQTTQfRhBz54uXVrX;Ub?K`P_CtGzvc~h=@G{t)sI;vEErLkrkp6 zN1yyW01u{uYwKYk(a6Qr=4bYU)U+{j?pw1o?dv3()053sm7qK&V0IJ@U#YU(~9N^ios zGHNy1fAL%8~6{N zZ8ex1%xdgK5gQ9#H9!kk*D>DSX)w$3^`ziGI)ER|ui{jmsvh}66sMv*%;S(Ztl_sK zCO(IY8}AASt%q_4G%Vx~Nmw9!rsloupS`O)Zf=gVuGaE#6C?s+ai|OPxb+(a@NmGV z`!!_Yn5z~y@fbs5i&yDl511Nh$Nc!QF|g;aTv~G7VaxGmK{=&%-1X7Pr2Qm@tx4k; z8TEay>^nSG?6>uhicx{Q-_GH|4tdMMXtxVqkGPkTN&Rt)$w%M2mTni~7EJ52+u_Nj zxkK6Y%rwQ=bkLsA(*ga!NF(vnukh`bzg=_zFW*VU&B~rCXbC&>6s^+YkxSf>yo=Yg z4(CFhoX^lWof z(tkNd9z*4jv|O?nLG}#S*DYMCOk}ix>fF_t&bxc1X6s*|6}Ew4T<^ClPI*8l+GES6c3D5-Ps`Y z-7F|+FvTnZKgX_r%6PH?j1-G1#!pIuSM3YckGnA?5nt7MH93F$B{g-Oj6ETs$l#}z zqxtjps|=PJh=3;7MMA*=>)YJHk(A1Cx*Dw&o-O&3skJo)Ck$qIkqJELn16h@ET4I# zM2-b`X>U9NNr#Paq=rZI-tO%4*({Uj6y;p|F;e;-rorJD<>52h%836!Oa>6k^Y%pFl zChjI369rNz&LyM;L#Wb{(n3zEAkNvn`riJN{5y!1Ql?%;9eMg{m0_L`@try@)Hy{| zGlmdFz7VL^P?|UY#?|-nE6w@6_3SkA<_+0kDHcdN)Mm}TO6M#86zz@Y&3pt)oOSRT z88ogadn!;q`Q#yiT%q_{Hw?W1lLr11KF1(5B8#b22|Guj7k($7N!Wr>*4|r$JC-4V ztc?ktF9_|y5Qt6LW;zE$tVw&wGR>MaGp(&R-32$#d@VinbRDkp({`8VZ*m%Wf;-b` znGiYZQ4ra0BeE^m@mA$CgfY_WUZ20?S#Q*+n0NhY^c)!$pJt19z(+PM>YaIQOrvb9 zJthe?!ul8Zj`FGB8JFKX@N9R_me}L5UY1XAWH>7C8tfHdT*T~W)=|1!Ijp2)MjB4= zHSOiK+zXXjJ&Rrky5NM$ChH3&TUD>IF%`~>6ONVuWg*yAw2oO1jb3o|uNSoUkTS7z zGVkL(mChQg+!?vErw{z>i0!#yOiyHB?@6q@*kI6UY#n;osL(o;@FnoXon+7pP{vo& zo{~(QmxN7)%z??mWA6Ej6b8{;j6Qlh<)xcG;l8O)Sr8Mhdsmn4oXJ(K!sC;pHWdik zq`+NlTAS;hvFG?Pv=>ygtJ_+|i;bG=@nz}b_Lik0*HF4|)%KdX2p#`zWFiwcJ|7B0 zRZFhstEZ~ddfay2Pl`1wvO>_?FO+xFHR*u|ECKl}{_F=h9UqQQiyM%C9kHLoWikRA z88yXUzC>aFGT5<_8cmE$>Ul|Zb(}X#TED+q?g9LX7?oM!bcTI3x+}&M5a1ZV-3GNmkBtUR? zyM4dA-}k$xXS#Yyo|3M97RZ|Lzx#DwR+dz1mVscl zUXH^^*Yq&V&5jsX1&igHWmYhb3Q^lf(wM5QBo)mJ+jou&;`EKZG$h)qN zLrEJH&G@FYR4<4jk;ZMmV^cVa4&HsgbyqbOwA|TD8K9@!8!EMgug1~=g>^{c^Si`T zg>^Ux*Qe!OSfA>&+?t;Zd#oECZdRFCm1HjDRI=VSPWK!r{#*>iv7kQhh^s2h6!-VWQp z`3p)Fr;GsZJH|eLvhcHG+d~j*~a5_pRsiuQ}0qQbY<|u4;J3bg!Mx zf=6a(4+1Jp9kLb-k!MLbSh<}=@YW7a(i71u^p#qwmPPcH57Z7VyNxHKlZNeIPON*~ zC$nQXj6S(0_41v@^!_vR4o0P%fM3$t8G^4(nVYp=_Qz0Q!m^rFWkGYYX+mRTS(twI z47@$=<@)%@@}Y4v24lA5lmv`{jY0pr3zeDAQXfwlo-(k8V>(znp!5*f2(#ngBowC+jbWvBrQ!6J{OEC*}#G(q@EI z%5M^Fwzwa48hyVHcdpY92z!}`&47niT3fv{wsA(I=@?7&&badtqjiSG_m0G_lU(@s zM@*Auj3B=9^550^v2M%^^Vb_xE~a#2CcO3q)ypvADZZ%8-a$oXmdlh+elR6q^t9m6R#GK1*Hdr3G8yI)AN|h9({;ZA8D3=U8>!-`Kp9l=u&}6Oj z07^G-3g@!l>CE@1$xce7uTWvo&m}YgUida@ZiOOBRFY)5EA-=2_(vi`HNEh&SRS91 z#ITBBegUy*GG8tA1)00`SnrxDKJ@$zPV#qRfH2C(F6_E~_Kj%1zweFvGT+y~KVWC0 zZ!3WiSw;V8Yxxs~uPpTE&Hs0T9uvn&jfHAaRbPnXg@Us_Uk>A?k);8l#fhshR-}EQ zw)*0F?C-Wi^0+0k&sy5ry3&70?1r35;@yH2Xk;Df(j&Z|*4p+qEU=BG{CUV-j7dZ; zm+ptAb5}TsU6&Zt#l51;%Rk@z?fFF&1D6=tMmYJPIDfqtGjDu$q-)#$^;m4i4AbBr zLuQ(`aQ($Cjs2_Kh-;e;P5TTG z7S3pHyUDCVB}Z4=Iy<;G=FwcHQ0^14I{scwROKn}%MNS%`EJUax6Fd^cZxZmTZGxf z-xiuQb&!VJ696(bMH!{dAohdQ5*@x7fBl3su=jCyy-xQ^8S4s0J5B`E#yIi2G;VTw zxbnuY%IIbkdVc^|TWXEFf5c`;KGgg7t(C>Eo6;YsB)rHpV9l;Xc3bMm4%8ueyZK>> z?$Gskh|EFmpnrZ;n!cA(wI~}Ek-)l?0K%72b$n8&3plxX5(3|Pf*4X$CIR5A=O%Z4 zrE_{E_C*0RY$#x7W7D>>Gt%KZt?*3_x%YJ#m#MdobS58CVPOl;KipPk#D#I~*xj!8 zlX$cl_YZy2+`V|+vtf)GLiG(gOrfotKAv$|XX9Wz6C&L|aGF@Eyyiak1TCL>;ed4V zZr8tXU$4DXREnxhPTL+|x2km-Z|l0QGQ@A%DV$Mp$gn9<5#d;c$JP!u!|-858@~HX z+UK!>=}Yzlj03IYTE=@QYdhr7j^7V?a<`^`@Oe5R54;{02kjMqwWbH|%WrYQ6&|ZI zkg$Vbkws^FZ={aB9#?rmeYnI{39l&1ghe`V_%TvFFNfTo3zc8A43f^kA5(CuzGV&k z3BpQ^#Hq%A->b`2Z2xKOw0gg~`%D3O-;1snq+S(y__tkdF>Dn|?;VBem)R3-kw-Hj zqgp9ThNS1m&&#<50>_c$Wkrg`La8EVV0H<~ZAM%TYPhH_Mj*7uHB~`H7cY`l8Co@Odmgi7P6T4+fJf`h_ky zH?P#lf+LFDq9)Gnf}dP-OE~i$fP7K|Y~0#q%=Ue2xFsd!mx4opA(V2e(<7O)@Hnpr z&jj-$bD@=svNFuO+hhbT?9lIJ`xAr!MBLQij$4PQTBqywC)R;C)#DQdex|D~65ORx zf4Eh5$sQ`8vanN6?6)DwV3(xuExG6D%DN{z3kpc{%o=lrDmSgFVPLTW$$;v$F7FMs?;63W@-!d5;7;_Ngr`yH|UZ@jOx}dt|h>uxl z7#4g$pYdlASy=~Hf4-%=j-hhkkfuhr@GoM0OTdZPE9je!phklVsQA=Lqi?`ugL{p9Ec_&CMhw&xny8Xa5e7$Xkx)~nPSPK5-R0Kl zFc8#Zbxk_a?qqLrxGhvULcS<`Bt#{R^$S`+N0THgid!vJK5@t(RJXxvvdn)mFcNif zF=dv|UA7BG{wiOPgCB*!NFy!=)S>XJr(6o`lI67+uK)aQ*8)qKJAU`gd2E4T?{NR4Qlc;&ekxV(p;zL3EiT*Uzpx>s3lu z<7I^hV_EyZT1>=dW>r5K7@&$)ESy9Sd-#sdMf6f88BK+Yc2$je5F{e@jS%SY5(7Sa z_~8conQ48K2kmwcDXEX}_y$R1;e}bi&^@XwA-~8CA=^lYcb2(E} z@Vc+j3By%rTP7*8-3=CgL!SYYtH+|6ban;E>6BB#`yHQJuC@-XB9;kwp3070PbR~w z199#CRQX?DSKe*Y@Wub|kh^B0Svh~=*l{+hnTm0IHv40)Up0oT}XMq3pduYRZv04S#j}G@A zQoihNz7RdB!FlSVjL~p-2?I=RW+<*fvl2hU8gZbZjN!Rvg|G6@-E8u;fSZHK`U4oTf%@nZnN)ZD%>jxBF=I9lIJTBQ`yn zPeruRq>_K9JKs4{s>%_4Lp%isx74s!F_^sf3e<4#MdKJbW`$^Ysx_$bCI3uNbwKyZ zT$>>{QWj$vA-YX^8Z%VT77@&?5h3w#%FN3Qu5Fq8h)y)vn1^5A%&GhogUorrKnMQ~ ztK{p~zAb~bZYA!349~_%g3_W12~yMEoCY>g4xm`a0-*Dun~A!8t&q<|S2VcV(rLf$ zulv^W+9r8g{2)}p3h0}k6;XHJi9H0vluw2;_hcv|K-|3jf{JDf4L)s*Fyf2M{h?}) zX2woBHO40@Iy0HzbRb|?d#s!s{4OZq1fj(Fzm}9>Td8U#hC{Hi>v$0guUU$Iu)Z4>Yyg0sM zyZJLV2eP3d4AoHk`N53KB0r*e?-HEV`s2c7s58RcF@Xyl$87?qnJl=4idq z&U|+9&UcmvOu@W+_HSjq1yk&VpVv+gZcA+OYx86$`%WoY`0T*+F!Z28lxdB+{*^OJ zV-+Nhpo-g(g09c2YY22L5?bO0>S-qp*SG4l6T`MzE^|c_V#Nelqvxt{+7$!ZRT%pe zn{*TX)ndZP9GLicO~Bork3E0_ z^Gj*WU=4>3v4RjuO8jaEKEY8;fFP*fmzBalwBi3CJrAo5ZvX!EdHWl0-pzxex{KpN zhL;(xiR(KI9$3+7HrE){BS7fN7YkdZ{ex01X|FohxLuf6Ma7Q@C#a8)3LiVZxkY}6 ze0&f@Hzz#T-5HK%fwU+wbaO?yh^iq*1w%u^S%{*H+40Wu173d?;u>cMUgU`d!c-{(`I6zOk}52F!d}NW%GK53iU_keclWTPOAaf&~@x zf7glGh#lnM^1O8gAUo$-t#Oi3@@h=MS_a?uw2L)xSe1iaI00t7h^>6{dYEK6kD{cL zsebGf!m9}<+RG%#{A=u$;Yn0Usz$xN2_$`eJ&fZOka11F45lB6Se|leSb52>krX`; z8jOpH=>Uo=?binf8xIHn13nN@I{#W>3GesGUlveQ$Sq_w zuc)dMkSs=0hpQP(S=gGRpVkax$e-)Pi%jG-vPr)GP+d}BWU8zU-nIq3FMbZuAg zmn6RlQaM`^W*Q!#(;V=U$_XUuDZcB-$uD0l>xlhp{&g8za>!7&nt|99=k>4a$BXC~ zn~Y{FYJGwH;XC5)C(j^69$WP~sIg8WmoUqS^lkOcUODxKQAv>v!yI0x!$q2vQS^(I zK{A;2RSuIapp}pf!J>|+1nWwu_}T96obJD~JhzzmNxAo)q9k?s7nZQ}y*yq4TD&+S z5QE3r*#E>}g5HpVv;>cBD16ju`1lV4f@ z^2tEw>BUG{I5(EL8AS6Ykp5+9lq35HQGZWw*m0`99TjMo(Qs6?abS>YVoc6nJcYogl6- zlADOs^;2ZeiAi9Gu`j}>swqJHex5B}J6lP}e8Vh%p+>rQ(THpPIHC>AxC9)Any0pjD&CJ;6)9Lcj=X<7?e{BHe0UylCOlU+)T{#nv{o zNb3!iyLdc_pUNkb&(%3CfjD4j+eOQ#v9WnGW%+AhbJEZHA+OPsJ^UDuboC(*W1tJp(fyJZbZ9yXHY z=QF*TOYHZ*xaovaXyxEQplj;}L>&H7Uu9~rO0w6E_QwZ;4CeJsoZ5_cdqc$9lwaJe?3bzU!T?L$p? zmM5dE>|B?UMwBn^tUQp(G&*gvAmB5RDRS2J)##;?u%%gZB{N76xCt=!chaO|e3B;`;8pbZyOd>WrRd6eynitYS;ugAbk#9Y+{4PmS8|llE^9x4GqXQl%XR zmeQ9e`A>C7JPtp&4cT7VKFZM*K4gByY-w4F5dkaq{`wl^q|Jo^5LVHmpxX^BvzsdA z>Rzu4r~kZ@#kaT-f4=|^(K3ae1yXguK?LyJA8WBey@2^Qiu{g<%`JIa+)wA+O`BOzc(yXc08%aJ9$ z#5mS8-v0GL5!DlR1`3Wv5>+|mFyJwhgwGGE^r9Y`#=J2iHE>;QD}*q|h~R?6W>OVW z#BNKgO69^fecAC?fA_v%CKh+EIAs{OvuOQWj}%I5!OPj1-xeMXZljv!E& zMC)6gU@3h2tpU&cj+BMV$CXnf5z0Hj&7S}51f}Qyposg4nk~dvUp2r z`$L)Bf3TUNs7xPp`j2N@qx^P$@?3C=+$o0x3=Iv{)g&@*;i>F7oE;sfbP0|!5#W8K zb0+0W6d}>KPWJ~A=K0IM6sBg@4<))4TOC%D3Ba?>_Og1a;6;c!7M zTsT$L_577QyY7-du3sKo6T%V!$GlLMA|+D?>wSj@KE1xooM@wgNw6v=eW~I;QXJNG zfB%SWp~>DTojzy*Uo|jf)W?LW1Q$B{@+0Ze6gH;jD z0`|Kj?{ZxJ>q0}%(dU1MTLW`HIr4*Mv}bSO;UVQy>T`7#%3jm?XKlcy38kNczG%ez zN)Ra2;QvRsoj4D|s|m&^JPJ8?qp~S=&$cR4me^QNSi3zbcU+HeYsKI3n?s=Be(^95 z70RNDf}zb*>~dJNT{q6ZCbq{w`v6v9=1`R*dpd4*%Mxmrpdv+yAc8H-^*9eTOrUUpadZ@O*hyc~^o;jW-wI`? zrnTcCu<-9_4k_MLF6Oja`oFz26BG)4$@PiKVBjK4MKMDO_9GKh4=5O?kfVxxG+-G` zqkok`!dPUHSYW4#qoTu#h{b9JPamyFJCY1ef_%fKzZg|XMwTm%n`|tZ~;@^ zH`)jSmY93*61_YkV&Qa}%I7_CeNfi788SRRlem|gBgTk=u!q@q^me6CvPE3#|0Hgk zoiGqk4ODHqOn6UDKFn7cC7-UE+ZZ)XAJJ_Ly{IxVJQ4s72M69^AT)ya-N^2vEv45pw$d6?dJZuQLDO)aaS8sqmcx4y~&g$E}IIwNoNOj9?b7 zF1zp1TP%WUEiWY{n;qBdp%B>Yzo6l51l`Qt0J6&>0{}TP>_@nRDK{r)2f%(d%$W~K z@ovf`!&LK>CNMiD82~i9CLm7}xP|L108?^S#a9M z8RC<$7N1w{wBD0ok!bPdxYi;usD-U^b3KnC^6PyDaJ~?mfsVBEheBi=5h5IL1E013 z=X`m!ud5Qz_ZQ=7Z=JH~-Ox1Pf9@AD^yPt$(L8P3Jf?38qDagr3uKl${{!!E$hAzuqPwrUq*><1h?f04VeDsS+pO_>3 z7no?XB>4N4mdW1C+2qNtUMyce)=wY_E+=qCAJ($j$?B!sDLO&>*}uYmN_T;~!1Ls) zm2GULAfZw$U&&46p!b&G*xLY2Zl_7h;Jmc8niJ!PS8hFeg6z;Fo|LE%Ed&A-_;MYl z%a6tnt*mzvn=8b_1(ytg6A>U@Ygl4}(k7S54+|3WQKL^wgj`C9(Xe}kBGH;sr*HrX zj9j7bPGU0fUyxPS^PfLC0~hfSKKnIm*S4U!%_m{RLX{z-ZOOuSV=SE_Sv^v4gQ3;U z<-;tMk)4l$eh&ygQ(mQ0);HWZTx8jSx#vkYnIHjh)S!!#ZgEN<8S zMtqnZHf9(tVJm8Z2D+xEJ2v)~x~to|en#Ni{taY)VN=)KWsF^v^xaIQS*LEOR3qI* zK)^7rSX}Ew@<#JHG5av**v(@A1U|*#vI@96){r&7xQ{7?<%L0QqR!L2?o`EV(@E8_M5Yyde z)>T*FdwMD)-tmdttemSCzk9!Hj?ej9mR13G6CbC&(F$j6z)U525b1gHk&J{`Vl}id zHl==?G%y{a4PA@pkI43_(>?deN^UTrBaq$4+2ZD4aUM@vK)p?X$WIhI4I>CH3;}SC z_rDN}QbUi>dS%em@lY6r)@w88-MwlR^oX0xf(wzz(lAn56A0+S_~QCfKt$*izkNtX z^Z}8!u;sbo>eTW6Pd;l}`HfzgxVCCEJ`LN2e3{)VjMX)Y0MQF5gU1Hv=wI6<1x&oK8vn4)P-v z)o9KqTR|K#bSOJB3>Zbw*NAZ?hQ7);%RsnN7R!lZ8)Z??M-Cw*z_Ouh_W(YQ82SM6 ze-C5|`YuEDnRq82-9GJ}1QOWI(1irdSq}Z{)ND)Iu)IW85ESRVP^ zo#-TM&=&-Vgr@yPQiN`FRmRrqru3q?PY4eXXCIs6?iH|b+=eTefj;AFFA!qQT(G56 zqbFO6G89vC0V%#rN{RaS3QX=+{RI&g*$>pCiIw9OA_;MM-A}bZZkc65%-@00vZad(A~>6;%xWRz(f{A839!`hej^L5$?0*-JKp)h8;(d z!OmPq7k@PG83?6${C&nPqu`;1la`QMtv8l$13P1(==$)__WkbQYVOJ(_Atq&k~Y7; zQqYOgP&S~B{vqQJJA@9@YuF=w#Kh3V%}B_u(L=l@fY4%>rX~nVU;I5n;3#w>ltHb8w$HM`8pW&gS@V`m2nZ5yd;jwi+E{Dew zBP+SD_@aXv_Tx@ovyBgNmJDw2O`zjp+t29C^?3^y6FahCa=8f^b~YGA2{D4XL14uL zm;`v(>$L!T(d+co%Qypp+qplU)pC!|nvcV&RpEPXOj@ITu9eLw7*6^;fiKMg2&Cs= zHq)tdQ#_eoCPFDVGW2auGL-nzJ}=B6#(td-l=)Tq^{1p6=56v9$EtyF=Gk_nu(9?T zlg5EL1t5eHkYXi)Yl#UvYM-_kpX#^+;@2dkK=|KD8ya716MYa<7^RJ-3ZFEN2q0{j zhL6Wx?wSGcBy3=|gU8vBSe(F+AO!%r-P5B*c|(_Sa$fIQ=FnN&9o4HCXofA#OjO@ z3F?yz7+LfS*7|TCyFpb zVDE_SL+*{sgduM&xMCk~{q`RmBbL~z8>0skS)HLmRJNd5B`JM&8$IuUfr6w<2-Ua-wHnR!1;I4$AhRSAo3Z=fu zs4v&0ub(LK(h_{a5!E+R@N`H3WzK)>$ZPmgpQXtZ&_3bdiL_ti6BBjE z;>yGFeO~%K%ftEbnKl*e8aEEE+5;}Itd4pl<);iTyJ^bLy;ikAu1j&h2^ z)XF8+?Nb4#Al(OQPmVtv(Dqaj{hV#XAMJj)Q%_C*{gu?GZ8_e%Ck;9Mtk_fciXWFh zm19jDbOyqiCj5+8@~pp1MXF@wU{O4uKCORe=ZTQZb2k&L!QV~!_v-Zsv_W+lw`H+* zH0zfuie8ADmLQ0vRy%_pSobk9vw($#`12P}gp&D#n1RQ0&U+!M?A6qQ!28CBqreLC z*B)#gSo&5l{UTRvcN&tljky!QK0AUu@TNBf+)szu z^H$)cD8Ze83wNSbkt5kfAZr6Z#0J=2h5r*;kHGDf5qQ&wJDP3p^qmq*WFqUsh%Nu% zFW4%o!~ep79~#KxJcxXXCHD#HWdr}7-&Brwm%%ePgG+VftDsa2FkZ9|K z4&>Og3cTb+wyj)nfCDBsD6%S*N>-ErCU}VMRGe}sdPDNq$9x9Fx?t4(McdQS<}tws zwmg*Hj?f=Hh*g`}66iB|#f_{z=f?oCF(W6*!j;+%G%045!q0P=Ac9mzT8#uClYlUA zPKK=o`^;d{m5uG_d(@M)xhywkr9lkfYR5j}LeA)yiVo-`Lv^^KZ3M$@-or3rg<<4x z8QEg=iYKSD$5@k&mixL)&D9toOwy(ji9+erNA$~+N6qdrC!ocO;@i0(C~hF2zcO~O zGokHbAW#Gtv^MSxSLnSPgDuIXxkUDsx|5C)JTt}um`A`~alyIp-wl6@b1uCRsQ0{aXx z`Lj7}`O{d7nU?-OfQC*xmM@Hw3<2XtprteegOV;u)F^`^e?LU{%OJjm zVzT2daj7WKV+Kh-dxrq`9t#Nv56|i*q!*nZc&*_&k3p!lRnfv%fe#=Alvv0gFt81` z)diJUqolvmlW0WRd=c%<`UYqa4vD<^%MGqq4&Mi{f>pSDuj7WEB}B|DvBePyNLejnN5cP%?PEjH#y$&h8?>)uNWw!^`(VC+Y0%^h)AWjR7okK zOhgjz4;7-TM~KO=pWt4zv`@|uP8FX;efJSrXKvo9)sM1= z83nxkvTcl#EdFewByyz-b3(D*QJLIf95i5Dw3M>$X7=!}0eo>qM)TwVcV&-p&Ckh= zRWHW2=?S;VYvLSVh9$tc_Mr^RY@qhH1WG&_GDeK-0GlR|rhUOA97#b=U+i>}yndw1SCdk>j|SLjLT zky3VZY0jV2QLZSW1=Q#J9TUF?qud7B5_2+Qy1EPyix3vT82WvgMuu8%=!@cy(MMo5 z@7uAX%!72{{2sDCEH>tbxW9AZ>pYGgy7`Q;tmK5eLFSjpmu0kAAMqu>E@g_=MbCOg zN%XyGr7dicjA+AXJFk8CE^=c#J{1F)5f%)2Wg!J}z>yjGtUtbWRE#o~ZVCUEqqmps@ ztIk>@He$shYb>kHz@gJt^JGrx8R)fsYED;lJ)vc(B@n{i_VwWpM^Z*Qe>OcL%2-&U z;tC^T$r1?&(-{FQ}1>-a58QD|mlyo_vwAi%j&k zD=pYtULC5V&Ue9p;RKUdrC2h6` zCucoJ(j+47e{YM;X~um)P>d8qo7%+rciB!}`&qp?G2g{SoSV_#CZqq;-3^UUBFGy+@rNd%mJFV4ZivYXF_GWK)zYO7}w zDOoik;z@~BOYv=^Zm+j0PAEt{7-9HBF_Mzjm2iqsZK;LjS362yjzUzEk>KL#!Nfqg zKTvbU1sjZ?QmRQ(axw)z&b_@3!)6UjM1B0dd_Q)9DPV|-Hido$;ersx&`#29dvGHLFh%e0y*(;ALEe|=tL`W8I zZJ}W*(T!BMvtq8(X13@f=xcS(%FKxVO$k_+FJZk$bB-$ZGG~eH#`;KN#x?BV5Wl*D z^}XSPlezVKuGRIR2*jh4)En=`oGi4+oik269MV**%QGNeyM{)Vq?0*5rRA@QvB)(T zJG@z+V9CkE)tb`_F_J>(iLTg+Yt9r%ilL3?qv(3B zAIN{L|Dnn_h#A>Mw)M}7ng+YH7%8n%_tvr0^eReiS93w2V{vdfKiym3sCRgNPmI8j z%*;lZl2Z+V(Z#2N22E+OWOUC|$p-7B&R*TBlowX)fgngFCr8sL;-8lbwIB;R6 zC$v2qI*`ni)o*y=K{lq8W+4cadYM}%%yTWaS8=0(Z&Te+KPfuqET0YKgTY9jCy2jT z#L*HKCEG|{?+#MH{(S@})ryakM8FqD8o^oA3mzyp#LT@7AX8kuvcyY|vIzkF_fEA$ zgyNU!V;axX4Ht)ln$y@iHk*-?6xx*SpM-pYK;4)h>uT4_*xHZ954|u}5g_Pjaa0Uw zLWP-zo}`g8T7C1)A{ZS&oR@shimqkEQta)`_NT!}o7;L^*6DeBe)Q$+mvb9EvHE@j zISJ-SYh)W-pAGLi8tjChl#=dX-E(vXE|~4*7D^Gk^eNU)_sZ=qW8D?UH0PZR&DXDqgqpopdl+W<6ry^e( zX*TQt;i}8@DY}_oYi0E-Z_m&rb)>dIqs{Y0vJ@#K6w16Nx$N=*A6%O#$XV^zpK{7b z-$DfZKY%ULp%Qh!pea}C zY<0sWm+lnBr3X^M?6HrtXPMkIKaFcxDhftIkpP5_V~+yLiA!olderTc{uC$Rx5gqr z3$7KoubDV_@0TZe0u7!*_vL4_^WbP{XRIHd%TeR z!h^X~wXj1K{LMdVU#tsln>K?vQ;k0A4e0x^eeOUDzlU5UPjtHV#5(6V9v2W3^&X4v zf%LPnM%uy)?s)E3PzNT&d7NugEW^i8giQl%5_4U514G^f`tr%se(YP`WjCV()Wlx# z8rC$`4?9)X8qVn%>S=$_$wj0{%yGRAmSEB4vMtU4iJJqQP6g-gfU$Os1iNG6b=u)v z2VI8%B*m7dlOyXwHY&R9S3{e_!_P&Uo0R@99|&?Zj}92oygD*YA_jm`R-z2_;;>40 z`qDVKK*vCVDZPWDz$CTDGCR)=FE%4sVQ^5@&qF+YaX-Ai!OGohc$lfG>g&^wsA16Z zlU5jlBE1OlHQDp!N-J)`?q1kYEv-@uj)SKW?75bjKx5yEvR{immz~MG`jrYt({!b_ zKsNOAG=p12g0q~TQM*7BI$RBig+DcqRAfic-<)zaE`^+F+$jl3*RyA@ABk;zZrqzr z*MwIy+Wbo@t82B0`~*QkziK><5l24eH=k$@I;rR)fkuk!%b4y$j6|M+?UKCx?i9GO zFGMxOB7N!FuQ4ak*521sQ)m%D!GWa#uh({V_#K*ktw1jrq8)xfJ+|~7us)}BV#$88qu6-lwO9P$@gvT)`|HT+J5s!HuRovyPV4OsD zBNwVP;}s-PWUCsg-I)Xu`*`=~E`No85OP}RXEJSVrv9}SeqF0o;&J*c+1i8d@T-a2 zZM$i0ZRUiU$NYB*Cr}H+rt*-r0@m9Tl0&YaWP#Wpw1;_)yZ1Zsu3~Y8ap$6roBq{KOP_8V*wat!H`0@!#L3@7lC$IVMExxp~Uqt8bu<;m$N9BqDLZFzXja8{B1ktSSYZv z?9Fwf!0aj2i%_mE(byUImZl)|qDfiK35Z%iZ@3iIlzVvteL;hGgmF+g)+Dhz@emNe z*3Ta}qbJIX)X|c9Yb`b_=yjtFy+eh-DS6pW4S%fM@fCBo{e_+UfC30;+9rk*>{|H- zu>%-_b%CWsRMoAHe`5b*x#vi0qPaVEfH6sQ^Peh#&jvd?3ERJ%fYG~bgdardNaM!f zdP6Bcw~qom7+{zGObh&s`I6oWrAbaG-yihv84p@bjZ!Q2fLDH!_1^nL-*Yhnw+S5* zwp*LODCA(%Y!d~);iDA>9fQsK;LOx(xW+kvU7fSwNww5RP0h*TXj393?Fm1eh8yacg z56||?q58~)XZg{b&A+v@+L`g`5jkknVtb}1*IoxN){8_-5X?yykrg=@JIb-?JQFL8 zeyXrhuVUCy{5x4HWh!kV@Wx)@^MM<>XgkQDss0|Z&(%Lk0&;KbuKUYOvmbjff_9vZ z!V&3UgacaN~4KO_}u^sjP&Mjz^o z!^_>ktOlDMOB0QU`hlgzwCEqB0KxG%zx6KL;bibw>&wdTX1bCun_7egOq^AhppLH{ zB|YI{y!RLk(~~2qM12bpr9^;W#h2pDW}Mxtv$rL+UGDv{q`InDR;ndyjgh;Q?75B{ zv9|d?Y!|irBep{F_ACNq2ETt61(byeq`nCdDZnOA7-D$pqy|eK!S|0+COqp2}*<$<6YHL=QBM1Uaw;J#h_+HDwYS>7tw8|rbHYxx1s#8y4Vmv*74 zV%X#NHBk^(bnc`@j;OY#LB$GCKNBhf`Y} zDrRlFt41833o_9*Ua$9bbe&X8BM=?pLf61--D2Yra4;_R2{U$1y69@{S^-bUmCp3I z6YFj2N7TIe~$lEFHWbaF2C5@f>qn`<%9% z8-GXEpW*$b)ug$(gYl|HFYCx&_*P1R7(+>^2=XcKsQx`&DRrH8%RD(rWrjvO4`GX) zGPW5v`Ou%-&jdQ?lUq+bz{%Ah`ow^mCEwoMTeu>~^^vHLh?fXi2(D$HaEnvP+TD5S z9((4v6om#X`qxPnmV8AXGyj{OWT1_1@2LFKidmyylEQ;7U|dBh5@c;eC1W{Mv&6ps3eSmg7V}7hu+J$*ZZo z)BeoAAQ*`g{SnfUo$Oz!t`s zuqCu0UsVJwYT^h8)wh+LeqbXz`;B3pI2O1(nOXENn$g7cKZis!#s$}E*Bp4nHF?7j z_zqh6^?Z{pAW!DmJd|0iC|cBI6mX|vKGy`JyIv=PQ9%v|hf()*yIPb5QWMjB_*@s{ zqRboklDvMgpa?6@z^t~4t=QOgd-&}~=T9eU*znW1Bb>A#RStbD4(z)wnHnl zLF7Uz4Ffk^c2Y4x8-_F6?_!M+y4$P+*~VOo!{8(F@V*4}p>%e`diWC0Ig+}l$?+X< zS#ZFQe!BZX5(y_c6dEaMqLa5ClhZ&D>xE(^h-T{7lxFypUc*n!2Ai(M(hPcTJ4&!F z*F|~n#rRWn67H0Xxk{}Wk=3+)S%3y}LXyOaDt={?_!DOcDZ*TmiB+E~MOOb@5C#ke z%mABMaK~#WzON=xs-v%1I1x8^n?OGcrYQnEt8{1FeGR+F(KS5ohX+Bl$Y$$m6Uclg zWTQDRvoHa})>0nX$x7h0Ji&=yx%8V`5^-pO5p%a{sqg`j2JCVlzncT;+eqZyc&qsq zG_yl9(O=##3%!=mSU~Ab)eJ~WON497o?GGlmp0hC_@dhUP6PwIQwfE2{oQ$v+%Gb^ z3~V8rTDVUVsIkPs9Ytm9vU2_RyEJp|AlOh2Sc-bqZZ#50yKf(kS)O!3q3GQ-i1xCgkcx{5uu191OSpF z01`Ju7cBx|%%f`#Yr(U_|HXx}H5{TPII;1hS*Y6g7KPTQ5$gUJ`+g6@qLeOAhfFn) z|2HiQv;fT#ApGO*{eyK++iMO6aRjTyQj^?JAiR@j1#^m=SqsACSFltVpIT28iiWp) zj`R|NXZq|3RG>-9dpiK_99!fMJQ7y1XfwFbe#=G4L}eWo<31tbcRsNV^_#DFDPgRb z=sz;iMCb&q{N{I}YY93NTohX`p5~e1-}GSlIYkj9_bhdw!-g>~&jg5me*Paq}sf3`zt&DlZR+cp=(Mu+xy5NcPR3hEyC9R_qZ42x@ac& zM6AIX9>|=UL~Cn{e4~pd5<4ZMTHE-})>a`)6MiO#vvCNu?2xvRt~~v(-eg&{GhOyd zy&&`e_{ye^1*;i^1aw|xAwGESPg(LZuBMPJTorZWfD5U>;sFU6X*~BmO>q^eBG8n4 z{)(YrzO5vAyTd(aIF=rbE5JxUq=wGI7)en_yV)_Phm%Z1Q#r3%_Ga;2k(L@3@;ly} zEM$$+id(~aU|)LziYU~YJ4FmQZ{ZT*DqX|X>H8*zXK0hV4F{;P0jhrBN*a&+BWku) zt3_b*s=3i9srgQ0+JO#X0jDGV$N_2WUoj`UHjwN#NF`=q-A_GUJJajHQ|??Z@r6kq z+IZS53hAU*{(j2&S`Bg=|DOHqhY@P&MVNu3tw%M(K?oO)kiW(UcfR6nJE+Q{!SVN# zq!rNLJp3uauE2LTO6nY!aIKVq%f! z_G|xVi>cnXRhtG&hxXT}0uwt~KSB@=J2B?i6LE<3OWcZYHK{osAj;+smy+)W^knW1 zjWBrv5>6i~cc1nVmB_T}NQwAmbnzzk*Z?Th&+`e6LLfAFp=`J*_f~|EzWq^2Cw!ih z`;wk;@%|y5AmMzEF2%}&jMSu5WQPWicc-`1{Z`~MP~G?cCi1{Ry~3&U4WX0xQ5Vh@ zj}wPS(KW!JUeSJ{?*P2F|G4mn=I3iu4RZJ}MkxzNC?aenfSJ!eXO3WepqCgmgr=484( zy!ST6I^TO;xYm1;g@Wupk4esaIZ5S5C%)x2n;({DDExl9kVk;l?~8y)Iem?5!HpB{Yz8 z^B3~TX{7%6#8s40ykhsf#Jn*#d((Y%3bJ^5XcBzneWUo z=jbr3V_lM!3}Y3>iu8tLI#M?~@*2b20p8+T{oo{nXl3P&>3qX56SsM!E$&^!3a{Wo z;TQ}*2a9H;KXa}~oa3XL-Sq>A$D^xt3wPHnp|WXzQ<$VX3bD{MDM&Y2ftP`Y4H-1| zepGDR0yr&iNUqjz&~;lXz9y)bn=v%n?U6TYsa# z$vNty^04O4su`cHit)OIKR@PLyFlDM{YM9KZ8*>q)+K7d^RfQn_$2k(x~6|^Ep#za z6dM$Vh$RW-@?!A&bMeY2m9?~HN(_maG=9+s+l&^%n5o%2>jGyd#%LXPU{fVqa2XuY6DfSH1O z_ZB=p_iD^k7kf&EogJ-rWkVCd8ZU8N>q3Q-NdzP5rD+}F{MJo42Uc}|_UB;P_&BjN zV1r#IJKf%^-=D5Yf!y(a;Zi*h-|G7&-!1gy&0GaBX)E^Tbij|KIxqUsWYeI0&GZo#nb+m)VCF_LiRR3o0t^*VLE>d2U8c zz@Q^-IH@NAH&Sn1+4;f_&O89}V`NNb4t={{2Bi23BVQV{&Mega$tvax-kg!;KdXl1 z8~;3Y0yzE_DH6+b1U~x|IN@J5KQAcb-0LEzs3H#_%7eHmn&%(UY0+skmR5dqtmcm! zdP&<1I8sG{B1+#mt`2`(Z49jM1JK11Qx*HPVl zmw#vCs-*3NucV;BbU;MSZOnzrXY5va^gA++i#!~^;-IY!pa(OUWBDQJeW%OTJCRV% zqJ`5yxV`3kc8EZfd?QoJGHy00?L+bx7j!kcEDQf!Mphtu=}_feIYZh_J|&nJ#{nP% z^BDVi32klWQJ0fcL@(XoXrrJKT4<&^%DecJH1mR&J#-?~3be8?h@lr>rczQFNy}vt zsn%^4g+#KydeDK3`hl4^4j1&T^d&$0y0(&=WoP6q@3W0{8u>G1x^mU>n@`fG4_Y)L z#rnYGkkLY)DcdQA)v$u+>=9b`jda+~utw`M^^}2vl7FaniO{%m`}4Gw4zi)z9m*Jq<1o2xe<}Nl?D#Ob)HCvU zF%Xh*-r2)Xr#u8Af?N8h0s)Kh%q7?+D~*Xa-z!l0UuH< z$OgLxk3m|{COPkTqzwQ%hKCgYTLOP*Tb@6KOap6Ew*=Ty5N~;VD_wWCYY94Amlpox z+ia7RW2IB{|EZy=PF!v}?pY`o`J>8HC5*aohbf@`+62sxGdoG0&hfF55iqzR%XIP3 zpm+hp24oHklEErC%Dv6f^(4eQXILoE$#b*s&MZT9eCxCC5LP-DL=CL(gWlXp;cYgU zyS>*!q@gvakNXr0=PgJAC}Dxu?l1b;#I#!>a=4oh)C|I&pBIoO_qfm(!ypr|@F9Qp z+IvVU5W-?bMFf3Q-Lw@gLO&>y^-HG?O#tLF*1@p!?W%31=Bvb9zyo#uIM34<)H4w= zkbfux=DYBPt(BMS*YH^%+MiQMdNlg4;zc{I>AgYHzU|yWEa*sf>`n2r?u)DIv?d74 zb1NEl;&Tu`NYI*rdb(WhQ_cu2@PC%Ir?FZg7{?h9tO)cKN5w_W*FP1_iumDia89&o zbd+d~SH!7!)HL*|m+>CsBrh4R@#yo~Xu6McvLtt!x>%wqeBUsnQaU!*C(`bJyZrwP D@Ge6l;!e6l+@sXjS`p?#Yy_Wl*$JQ~=;HeYy=6c%Kf!Ux=ZJCigSyTk z@tp5xu(*$Rv#qzA zCYq+a+3TcxoJ^Ce$lKy}3f$YeO^%kWGB1yf?-Yd+b-GCy?h&Her946SKixNPvpa9IcjOKAV%$L~XVuJSBK@)riCNcWK@xgMq+ z?}$zr@0#{ippo;eLLg9`>`T4KB0qhVZRCBs{N(Qa>}`v?~M8s1&(j@Mdf-W`qI5^mopg#Jp315 zrrozt2Y-DO)|zmb%gA3A1T*Cra^>Jzf&`w0I%)NEdLGlRDcsjUKJFw0K9AAfeD`xN zc;nKm;@*6B4)6ZGUF1*o!oNxaVX3D5j|3ATFdwEIyo<6R!CXoiTv>usJe{7$4JoRJ z$#=UhMUL7{3ZZtRLg4ON+Py#hC%E!D!>4-~=-G?ilb?6rvz_>(29~;T3?H3?>y;t6 zULJyL1fS-^Ap-B@T3PTNnp1W!<*47}+fcJnff{o1&MT6XXrtdpzBljugO|N9kiowE z{53XyDU&%bq%&tj5*vFzd)6&`bEN36;u(mFIk?7g=OBNhSU$XXRg;InLv3i%1j#nLsCrxz|BZ_s13hTNRv zp%^(9>dG=)J(sfZ40HZ%t_add*F0z*U9W85pY=-eaw<4UDxq8iG;v_1tWvs%t#w|7 zr9KRn`cRD4k((H;B`C`<$Ub7={&qviNoaN@Xk4<&v4WzOz?$qwRZ0H z`mkU}X9UKY^%y%rG*X5}J;5`GolqZkYjfz7|94H7rEIObvTTj=p7W6C6%MUd3kS(x zuv~?`@#;czU8vD{DgxuJ^Dx%p&OkXVt}HaEld-1I^65O&oiAOZP2{^CTCD>29b8SU zqUXL!jRSO?{X1X0nWzzloAv*>(KBBdZwn{p2|UL*&*9EuY0|^mtWTKEGu?Ue`;gP= z@~zU4Q-flf#pEw}T7%aX_~6Lze}UU)qv1FeAy`j_b6{-`2W6o?!o>_NdWWqwQa+vM zLFbE~QJ0rIO`kRL6?u@KphiZN9B1t95$Z8m4lv1`#f0NBJTa3 zJjgZGYsOWYr;1jpVO*&};R+GsN-h5Oq!NFL_roYTZ@ses6Q|~jbWx5@^7A|d&tYqe z_{MjZsa#W?GbHL}7*=SkE_b3zP0 zKv{%|Zt9>r>TBPZzN^#oeFX`+xcvz_xDno1qQalz{9x^k!kzbG;CMRm>}=nfhTa|d<;SUz6D>;@op6L5%Yt)m;AZ0 zx*30u^)v0%D^Z*I8{o4gxb@E%O!m8>9Fr1#)XCZC&+Wa7{x9828UDOf8=JXQXZWm1 zpNq?jvnTtbvv2mtWZyjRp7ig@^U=At`lIu2o{N4`y6(sM;0ECS$(q^gm8H!hm{*pD zdG)H8cQ0e!CdOnEcE+?W=v`lWWzBTK*vz|(Es_uzdtCyI;T~CDfJCpiq{V*$i&S=H From 2366ec5cf609895f252ab56dd52b11674014d3c6 Mon Sep 17 00:00:00 2001 From: Paolo Salvatori Date: Thu, 28 May 2026 09:39:51 +0200 Subject: [PATCH 3/3] Extend main README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a25929e..7e2d4aa 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,7 @@ This repository contains comprehensive sample projects demonstrating how to deve | [Web App and CosmosDB for NoSQL API ](./samples/web-app-cosmosdb-nosql-api/python/README.md) | Azure Web App using CosmosDB for NoSQL API | | [Web App and Managed Identities](./samples/web-app-managed-identity/python/README.md) | Azure Web App using Managed Identities | | [Web App and SQL Database ](./samples/web-app-sql-database/python/README.md) | Azure Web App using SQL Database | +| [Web App and PostgreSQL Database ](./samples/web-app-postgresql-flexible-server/python/README.md) | Azure Web App using PostgreSQL Database | | [Web App with Custom Docker Image](./samples/web-app-custom-image/python/README.md) | Azure Web App running a custom Docker image | | [ACI and Blob Storage](./samples/aci-blob-storage/python/README.md) | Azure Container Instances with ACR, Key Vault, and Blob Storage | | [Azure Service Bus with Spring Boot](./samples/servicebus/java/README.md) | Azure Service Bus used by a Spring Boot application |