diff --git a/.circleci/config.yml b/.circleci/config.yml index c4feb48379..eac7fa38be 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -313,7 +313,7 @@ jobs: lint: docker: - - image: cimg/php:8.1.27-node + - image: cimg/php:8.3-node steps: - checkout - run: diff --git a/.docker/src-cms/50_xdebug.ini b/.docker/src-cms/50_xdebug.ini index eaf42534f9..5c6e3ff57c 100644 --- a/.docker/src-cms/50_xdebug.ini +++ b/.docker/src-cms/50_xdebug.ini @@ -4,4 +4,4 @@ xdebug.client_host=host.docker.internal xdebug.idekey=VSCODE xdebug.max_nesting_level=1500 xdebug.mode=debug -# xdebug.start_with_request=1 \ No newline at end of file +# xdebug.start_with_request=1 diff --git a/.docker/src-cron/etc/periodic/1min/cfevents.sh b/.docker/src-cron/etc/periodic/1min/cfevents.sh index 855dfa6824..cb5f614605 100755 --- a/.docker/src-cron/etc/periodic/1min/cfevents.sh +++ b/.docker/src-cron/etc/periodic/1min/cfevents.sh @@ -1,6 +1,15 @@ #!/usr/bin/env bash SPACE=$1 +if [ x$SPACE = x ]; then + SPACE=$(echo $VCAP_APPLICATION | jq -r '.space_name') +else + shift +fi + +if [ x$CFEVENT_RUN = x ]; then + exit 0; +fi source ~/.profile $SPACE event &> /dev/null diff --git a/.docker/src-cron/root/.profile b/.docker/src-cron/root/.profile index 6793c878ba..060af97965 100755 --- a/.docker/src-cron/root/.profile +++ b/.docker/src-cron/root/.profile @@ -41,11 +41,12 @@ if [ ! -f ~/.certs-updated ]; then touch ~/.certs-updated fi -CF_USERNAME=$(echo "$VCAP_SERVICES" | jq -r '.["cloud-gov-service-account"][]? | select(.name == "cron-service-account") | .credentials.username';) -CF_PASSWORD=$(echo "$VCAP_SERVICES" | jq -r '.["cloud-gov-service-account"][]? | select(.name == "cron-service-account") | .credentials.password') - case $TASK in event) + CF_USERNAME=$(echo "$VCAP_SERVICES" | jq -r '.["cloud-gov-service-account"][]? | select(.name == "cfevent-service-account") | .credentials.username';) + CF_PASSWORD=$(echo "$VCAP_SERVICES" | jq -r '.["cloud-gov-service-account"][]? | select(.name == "cfevent-service-account") | .credentials.password') + SERVICE_ACCOUNT="cfevent-service-account" + KEY_NAME="cfevent-service-key" export S3_BUCKET=$(echo "$VCAP_SERVICES" | jq -r '.["s3"][]? | select(.name == "cron-event-storage") | .credentials.bucket') export S3_ENDPOINT=$(echo "$VCAP_SERVICES" | jq -r '.["s3"][]? | select(.name == "cron-event-storage") | .credentials.fips_endpoint') export AWS_ACCESS_KEY_ID=$(echo "$VCAP_SERVICES" | jq -r '.["s3"][]? | select(.name == "cron-event-storage") | .credentials.access_key_id') @@ -53,13 +54,21 @@ case $TASK in export AWS_DEFAULT_REGION=$(echo "$VCAP_SERVICES" | jq -r '.["s3"][]? | select(.name == "cron-event-storage") | .credentials.region') ;; callwait) + CF_USERNAME=$(echo "$VCAP_SERVICES" | jq -r '.["cloud-gov-service-account"][]? | select(.name == "callcenter-service-account") | .credentials.username';) + CF_PASSWORD=$(echo "$VCAP_SERVICES" | jq -r '.["cloud-gov-service-account"][]? | select(.name == "callcenter-service-account") | .credentials.password') + SERVICE_ACCOUNT="callcenter-service-account" + KEY_NAME="callcenter-service-key" export S3_BUCKET=$(echo "$VCAP_SERVICES" | jq -r '.["s3"][]? | select(.name == "cron-callwait-storage") | .credentials.bucket') export S3_ENDPOINT=$(echo "$VCAP_SERVICES" | jq -r '.["s3"][]? | select(.name == "cron-callwait-storage") | .credentials.fips_endpoint') export AWS_ACCESS_KEY_ID=$(echo "$VCAP_SERVICES" | jq -r '.["s3"][]? | select(.name == "cron-callwait-storage") | .credentials.access_key_id') export AWS_SECRET_ACCESS_KEY=$(echo "$VCAP_SERVICES" | jq -r '.["s3"][]? | select(.name == "cron-callwait-storage") | .credentials.secret_access_key') export AWS_DEFAULT_REGION=$(echo "$VCAP_SERVICES" | jq -r '.["s3"][]? | select(.name == "cron-callwait-storage") | .credentials.region') ;; - *) + *) + CF_USERNAME=$(echo "$VCAP_SERVICES" | jq -r '.["cloud-gov-service-account"][]? | select(.name == "cron-service-account") | .credentials.username';) + CF_PASSWORD=$(echo "$VCAP_SERVICES" | jq -r '.["cloud-gov-service-account"][]? | select(.name == "cron-service-account") | .credentials.password') + SERVICE_ACCOUNT="cron-service-account" + KEY_NAME="cron-service-key" export S3_BUCKET=$(echo "$VCAP_SERVICES" | jq -r '.["s3"][]? | select(.name == "cron-state-storage") | .credentials.bucket') export S3_ENDPOINT=$(echo "$VCAP_SERVICES" | jq -r '.["s3"][]? | select(.name == "cron-state-storage") | .credentials.fips_endpoint') export AWS_ACCESS_KEY_ID=$(echo "$VCAP_SERVICES" | jq -r '.["s3"][]? | select(.name == "cron-state-storage") | .credentials.access_key_id') @@ -68,12 +77,6 @@ case $TASK in ;; esac -#echo S3_BUCKET: $S3_BUCKET -#echo S3_ENDPOINT: $S3_ENDPOINT -#echo AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID -#echo AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY -#echo AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION - CF_API="https://api.fr.cloud.gov" CF_ORG=gsa-tts-usagov @@ -84,13 +87,28 @@ TARGET_RESULT=0 cf api "$CF_API" &> /dev/null API_RESULT=$? -cf auth "$CF_USERNAME" "$CF_PASSWORD" &> /dev/null +### First auth - use service account creds +export CF_PASSWORD ### pass via env, not cmd line! +cf auth "$CF_USERNAME" &> /dev/null AUTH_RESULT=$? -cf target -o "$CF_ORG" -s "$CF_SPACE" &> /dev/null +cf target -o $CF_ORG &> /dev/null +ORG_TARGET_RESULT=$? + +echo cf service-key $SERVICE_ACCOUNT $KEY_NAME +SERVICE_KEY=$(cf service-key $SERVICE_ACCOUNT $KEY_NAME | tail -n +3) +KEY_USERNAME=$( echo ${SERVICE_KEY} | jq -r '.credentials.username') +KEY_PASSWORD=$( echo ${SERVICE_KEY} | jq -r '.credentials.password') + +### Only after auth as service account can we auth with the service key, which holds the correct roles for audit log access +export CF_PASSWORD="$KEY_PASSWORD" ### pass via env, not cmd line! +cf auth "$KEY_USERNAME" &>/dev/null + +echo cf target -o "$CF_ORG" -s "$CF_SPACE" +cf target -o "$CF_ORG" -s "$CF_SPACE" &>/dev/null TARGET_RESULT=$? -if [ 0 -ne $API_RESULT -o 0 -ne $AUTH_RESULT -o 0 -ne $TARGET_RESULT ]; then +if [ 0 -ne $API_RESULT -o 0 -ne $AUTH_RESULT -o 0 -ne $TARGET_RESULT -o 0 -ne $ORG_TARGET_RESULT ]; then echo "ERROR: Cloud Foundry Initialization Failed" fi @@ -143,5 +161,3 @@ TASKLOCK_SCRIPT_ROOT=/opt/cron ### Maybe we should be using /var/run/tasks/ on the container? TASKLOCK_RUN_ROOT=/tmp/tasks/run - -#echo "Cron App Setup Complete" diff --git a/.gitignore b/.gitignore index 73b38e54b5..0a39c86b7d 100644 --- a/.gitignore +++ b/.gitignore @@ -110,6 +110,9 @@ web/themes/custom/usagov/css/styles.css.map web/themes/custom/usagov/npm-debug.log web/themes/custom/usagov/img +# # Ignore published-pages.csv file +web/modules/custom/usagov_ssg_postprocessing/files/published-pages.csv + .vscode .vscode/settings.json workspace.code-workspace diff --git a/README.md b/README.md index c20e8dfee5..3e04bcceba 100644 --- a/README.md +++ b/README.md @@ -243,15 +243,17 @@ PHPCodesniffer and the parallel linting tools should be installed automatically The following composer scripts are aliases for running these tools. * Check for code style errors across all project files. Must have zero errors: - `./bin/composer phpcs-errors`: -* Check for code style errors and warnings across all project files. - `./bin/composer phpcs-strict` +`./bin/composer phpcs-errors` +* Check for code style errors and warnings across all project file +`./bin/composer phpcs-strict` * Check for code style errors in current branch. Must have zero errors: `./bin/composer phpcs-changes` * Check for code style errors and warnings in current branch. `./bin/composer phpcs-changes-strict` * Check for PHP lint errors `./bin/composer php-lint` +* Check for PHP 8.3 compatibility + `./bin/composer php-compatibility` ## Checking code with PHPStan diff --git a/bin/cloudgov/create-service-account b/bin/cloudgov/create-service-account index 3a91ce2360..d83de3e5ab 100755 --- a/bin/cloudgov/create-service-account +++ b/bin/cloudgov/create-service-account @@ -62,15 +62,37 @@ echo $SERVICE_KEY SERVICE_USER=$( echo $SERVICE_KEY | jq -r '.credentials.username') # you must already be logged in as an OrgManager to have enough permissions +if [ $keyname = 'cfevent' ]; then + if existsCFService ${keyname}-service-account; then + SERVICE_KEY=$(cf service-key ${keyname}-service-account ${keyname}-service-key | tail -n +3) + SERVICE_USER=$( echo ${SERVICE_KEY} | jq -r '.credentials.username') + $echo cf set-org-role ${SERVICE_USER} $startorg OrgAuditor + ### target our roles a bit: + if [ $SPACE = "prod" ]; then + for cfspace in dr dev stage prod tools shared-egress; do + $echo cf set-space-role ${SERVICE_USER} $startorg $cfspace SpaceAuditor + done + else + $echo cf set-space-role ${SERVICE_USER} $startorg $SPACE SpaceAuditor + fi + echo cf unset-space-role ${SERVICE_USER} $startorg $SPACE SpaceDeveloper + else + echo could not create Service Account for ${keyname} in ${SPACE} + exit 1 + fi +fi + # to assign these cross-space developer roles to the service account's user # Note: for service users created in the prod space, grant access to lower spaces as well. This is for CircleCI access -cf set-space-role $SERVICE_USER $startorg $SPACE SpaceDeveloper -if [ $SPACE = "prod" ]; then - cf set-space-role $SERVICE_USER $startorg dev SpaceDeveloper - cf set-space-role $SERVICE_USER $startorg stage SpaceDeveloper - cf set-space-role $SERVICE_USER $startorg prod SpaceDeveloper - cf set-space-role $SERVICE_USER $startorg tools SpaceDeveloper - cf set-space-role $SERVICE_USER $startorg shared-egress SpaceDeveloper - cf set-space-role $SERVICE_USER $startorg dr SpaceDeveloper - #cf set-space-role $SERVICE_USER $startorg shared-egress-dr SpaceDeveloper +if [ $keyname = 'cci' ]; then + $echo cf set-org-role ${SERVICE_USER} $startorg OrgAuditor + cf set-space-role $SERVICE_USER $startorg $SPACE SpaceDeveloper + if [ $SPACE = "prod" ]; then + cf set-space-role $SERVICE_USER $startorg dev SpaceDeveloper + cf set-space-role $SERVICE_USER $startorg stage SpaceDeveloper + cf set-space-role $SERVICE_USER $startorg prod SpaceDeveloper + cf set-space-role $SERVICE_USER $startorg tools SpaceDeveloper + cf set-space-role $SERVICE_USER $startorg shared-egress SpaceDeveloper + cf set-space-role $SERVICE_USER $startorg dr SpaceDeveloper + fi fi diff --git a/bin/cloudgov/deploy-cron b/bin/cloudgov/deploy-cron index ea3e1e0284..637bbfe4f5 100755 --- a/bin/cloudgov/deploy-cron +++ b/bin/cloudgov/deploy-cron @@ -60,19 +60,18 @@ else $SCRIPT_DIR/create-service-account $SPACE $APPNAME fi -if existsCFService ${APPNAME}-service-account; then - SERVICE_KEY=$(cf service-key ${APPNAME}-service-account ${APPNAME}-service-key | tail -n +3) - SERVICE_USER=$( echo ${SERVICE_KEY} | jq -r '.credentials.username') - ### target our roles a bit: - $echo cf set-space-role ${SERVICE_USER} $ORG $SPACE SpaceAuditor - $echo cf set-org-role ${SERVICE_USER} $ORG OrgAuditor - echo cf unset-space-role ${SERVICE_USER} $ORG $SPACE SpaceDeveloper +if existsCFService cfevent-service-account; then + echo "User service cfevent-service-account already exists - good!" +else + $SCRIPT_DIR/create-service-account $SPACE cfevent +fi + +if existsCFService callcenter-service-account; then + echo "User service callcenter-service-account already exists - good!" else - echo could not create Service Account for ${APPNAME} in ${SPACE} - exit 1 + $SCRIPT_DIR/create-service-account $SPACE callcenter fi -# TODO: I want to come back to this and make CALLWAIT_STORAGE_SERVICE a shared service -- one s3 bucket for all three environs -akf STATE_STORAGE_SERVICE=${APPNAME}-state-storage EVENT_STORAGE_SERVICE=${APPNAME}-event-storage CALLWAIT_STORAGE_SERVICE=${APPNAME}-callwait-storage @@ -109,10 +108,19 @@ function cf_push() { if existsCFApp ${APPNAME} ; then $SCRIPT_DIR/setup-egress-for-apps ${APPNAME} + retval=$? + if [ $retval != 0 ]; then + echo "ERROR: setup-egress-for-apps has failed. Check output stream!" + exit 1 + fi cf_push $APPSPEC $APPINSTANCES else cf_push $APPSPEC $APPINSTANCES $SCRIPT_DIR/setup-egress-for-apps ${APPNAME} + if [ $retval != 0 ]; then + echo "ERROR: setup-egress-for-apps has failed. Check output stream!" + exit 1 + fi fi ### These are set for some reason - unset them at deployment @@ -129,9 +137,10 @@ cf set-env $APPNAME CALL_CENTER_ENVIRONMENT $CALL_CENTER_ENVIRONMENT cf set-env $APPNAME CALL_CENTER_EN_QUEUE_ID $CALL_CENTER_EN_QUEUE_ID cf set-env $APPNAME CALL_CENTER_SP_QUEUE_ID $CALL_CENTER_SP_QUEUE_ID -# Enable call center script on prod only. (We can manually update this in dev, etc. for testing) +# Enable call center / cfevents scripts on prod only. (We can manually update this in dev, etc. for testing) if [ $SPACE = "prod" ]; then cf set-env $APPNAME CALL_CENTER_RUN "true" + cf set-env $APPNAME CFEVENT_RUN "true" fi cf restage $APPNAME diff --git a/bin/cloudgov/events/cf-guids b/bin/cloudgov/events/cf-guids index fab4c5b771..1efa4ef40d 100755 --- a/bin/cloudgov/events/cf-guids +++ b/bin/cloudgov/events/cf-guids @@ -1,5 +1,5 @@ #!/bin/sh -for SPACE in dev-dr dev stage prod shared-egress shared-egress-dr tools; do +for SPACE in dr dev stage prod shared-egress tools; do if ! cf space $SPACE &> /dev/null; then echo "ERROR: CF space '$SPACE' does not exist!" exit 4 diff --git a/bin/cloudgov/events/get-events b/bin/cloudgov/events/get-events index 6ea17e43f2..4a45fdf187 100755 --- a/bin/cloudgov/events/get-events +++ b/bin/cloudgov/events/get-events @@ -65,14 +65,21 @@ SPACE_GUID=$(cf space $SPACE --guid) cf target -s $SPACE &>/dev/null declare -A SPACE_GUIDS=() -# Keep the code needed to query multiple spaces for events. Not working now, but may be possible. -# for SPACE in dev stage prod shared-egress shared-egress-dr tools; do -for SPC in $SPACE; do + +# Attempt to fetch uuids for all usagov cf spaces: +SPACE_QUERY='' +for SPC in dr dev stage prod shared-egress tools; do +#for SPC in $SPACE; do if [ ! cf space $SPC &> /dev/null ]; then echo "ERROR: CF space '$SPC' does not exist!" else SPACE_GUID=$(cf space $SPC --guid) SPACE_GUIDS[$SPACE_GUID]=$SPC + if [ -z $SPACE_QUERY ]; then + SPACE_QUERY=$SPACE_GUID + else + SPACE_QUERY="$SPACE_QUERY,$SPACE_GUID" + fi fi done @@ -105,7 +112,7 @@ for resource_type in ${!AUDIT_TYPES[@]}; do fields=${AUDIT_FIELDS[$resource_type]} # Manually create the query to fetch the first page of results - NEXT="/v3/audit_events?types=${types}&organization_guids=${ORG_GUID}&space_guids=${SPACE_GUID}&created_ats[gt]=${LAST_EVENT_TIME}&order_by=created_at" + NEXT="/v3/audit_events?types=${types}&organization_guids=${ORG_GUID}&space_guids=${SPACE_QUERY}&created_ats[gt]=${LAST_EVENT_TIME}&order_by=created_at" while [ -n "$NEXT" -a ! "$NEXT" == 'null' ]; do EVENTS=$(cf curl $NEXT) diff --git a/bin/cloudgov/setup-egress-for-apps b/bin/cloudgov/setup-egress-for-apps index 6909988e65..3bb281aac9 100755 --- a/bin/cloudgov/setup-egress-for-apps +++ b/bin/cloudgov/setup-egress-for-apps @@ -15,7 +15,12 @@ fi if [ -f ./env.local ]; then . ./env.local fi - +if [ -f $SCRIPT_DIR/../deploy/includes ]; then + . $SCRIPT_DIR/../deploy/includes +else + echo Cannot find $SCRIPT_DIR/../deploy/includes + exit 1 +fi usage=" $0: (Re-)deploy egress proxy for an environment @@ -160,6 +165,19 @@ for app in $applist; do fi fi + if [ "$app" = cron ]; then + for svc in callcenter-service-account cfevent-service-account; do + if existsCFService $svc; then + echo "Binding $app with $svc" + $output cf bind-service $app $svc + retval=$? + else + echo "Cannot bind $app with non-existant service $svc" + retval=1 + fi + done + fi + if [ $restartRequired -eq 1 ]; then $output cf restart "$app" --no-wait --strategy rolling fi diff --git a/composer.json b/composer.json index dae04f2ca7..8f6b60f40f 100644 --- a/composer.json +++ b/composer.json @@ -15,6 +15,7 @@ } ], "require": { + "php": ">=8.3", "composer/installers": "^2.3", "cweagans/composer-patches": "^1.7", "drupal/address": "^1.9", @@ -49,7 +50,6 @@ "drupal/log_stdout": "^1.3", "drupal/menu_block": "^1.7", "drupal/menu_breadcrumb": "^2.0@alpha", - "drupal/menu_entity_index": "^1.6", "drupal/menu_item_fields": "^1.10", "drupal/new_relic_rpm": "^2.1", "drupal/node_menus": "^3.0@alpha", @@ -142,7 +142,7 @@ }, "patches": { "drupal/tome": { - "CSS on Amazon S3 via Flysystem not processing properly": "https://www.drupal.org/files/issues/2020-08-06/3161384-4.patch", + "Make tome work with js and css aggregation": "./patches/drupal/tomeAggregationFix.patch", "De-duplicate invoke paths in StaticCommand's exportPaths": "./patches/drupal/deduplicateTomeInvokePaths.patch", "Make tome work with drush 12": "https://www.drupal.org/files/issues/2023-08-02/tome_drush12-support.patch", "Make tome work with path count > 1 without re-exporting pages multiple times" : "./patches/drupal/tomePathCountFixes.patch" @@ -171,8 +171,10 @@ "drupal/coder": "^8.3", "mglaman/phpstan-drupal": "*", "php-parallel-lint/php-parallel-lint": "^1.4", + "phpcompatibility/php-compatibility": "^9.3", "phpstan/phpstan": "*", - "phpstan/phpstan-deprecation-rules": "*" + "phpstan/phpstan-deprecation-rules": "*", + "rector/rector": "^2.0" }, "scripts": { "changed-files": [ @@ -195,6 +197,9 @@ ], "phpstan": [ "vendor/bin/phpstan --memory-limit=1G" + ], + "php-compatibility": [ + "vendor/bin/phpcs -pn --runtime-set testVersion 8.3- web/modules/custom web/themes/custom -d memory_limit=2G --standard=.phpcs.xml.dist" ] } } diff --git a/composer.lock b/composer.lock index 2cfc89fd21..d00d9f9b0b 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "2a01470ac0ac62fc2142878509efa3d4", + "content-hash": "4de8643f5e7868e6ec3f10d581f83139", "packages": [ { "name": "asm89/stack-cors", @@ -4517,58 +4517,6 @@ "source": "https://git.drupalcode.org/project/menu_breadcrumb" } }, - { - "name": "drupal/menu_entity_index", - "version": "1.6.0", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/menu_entity_index.git", - "reference": "8.x-1.6" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/menu_entity_index-8.x-1.6.zip", - "reference": "8.x-1.6", - "shasum": "38ab589be5fc3395a64fe51c627765e9e6cf1cd5" - }, - "require": { - "drupal/core": "^8.8 || ^9 || ^10" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "8.x-1.6", - "datestamp": "1681993178", - "security-coverage": { - "status": "covered", - "message": "Covered by Drupal's security advisory policy" - } - } - }, - "notification-url": "https://packages.drupal.org/8/downloads", - "license": [ - "GPL-2.0+" - ], - "authors": [ - { - "name": "FeyP", - "homepage": "https://www.drupal.org/user/998680" - }, - { - "name": "Mirroar", - "homepage": "https://www.drupal.org/user/1533592" - } - ], - "description": "Maintains an index of menu links and their referenced entities.", - "homepage": "https://www.drupal.org/project/menu_entity_index", - "keywords": [ - "Drupal" - ], - "support": { - "source": "http://cgit.drupalcode.org/menu_entity_index", - "issues": "https://www.drupal.org/project/issues/menu_entity_index" - } - }, { "name": "drupal/menu_item_fields", "version": "1.11.0", @@ -8274,16 +8222,16 @@ }, { "name": "phpoffice/phpspreadsheet", - "version": "2.3.3", + "version": "2.3.5", "source": { "type": "git", "url": "https://github.com/PHPOffice/PhpSpreadsheet.git", - "reference": "91a4b42e41976a0b2f839720c3e20a12a84f6852" + "reference": "d836f2d7308a192441ccd1546545890b378af913" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/91a4b42e41976a0b2f839720c3e20a12a84f6852", - "reference": "91a4b42e41976a0b2f839720c3e20a12a84f6852", + "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/d836f2d7308a192441ccd1546545890b378af913", + "reference": "d836f2d7308a192441ccd1546545890b378af913", "shasum": "" }, "require": { @@ -8372,9 +8320,9 @@ ], "support": { "issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues", - "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/2.3.3" + "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/2.3.5" }, - "time": "2024-11-22T06:11:37+00:00" + "time": "2024-12-27T05:17:46+00:00" }, { "name": "phpowermove/docblock", @@ -12320,6 +12268,68 @@ }, "time": "2024-03-27T12:14:49+00:00" }, + { + "name": "phpcompatibility/php-compatibility", + "version": "9.3.5", + "source": { + "type": "git", + "url": "https://github.com/PHPCompatibility/PHPCompatibility.git", + "reference": "9fb324479acf6f39452e0655d2429cc0d3914243" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/9fb324479acf6f39452e0655d2429cc0d3914243", + "reference": "9fb324479acf6f39452e0655d2429cc0d3914243", + "shasum": "" + }, + "require": { + "php": ">=5.3", + "squizlabs/php_codesniffer": "^2.3 || ^3.0.2" + }, + "conflict": { + "squizlabs/php_codesniffer": "2.6.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.5 || ^5.0 || ^6.0 || ^7.0" + }, + "suggest": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically.", + "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." + }, + "type": "phpcodesniffer-standard", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Wim Godden", + "homepage": "https://github.com/wimg", + "role": "lead" + }, + { + "name": "Juliette Reinders Folmer", + "homepage": "https://github.com/jrfnl", + "role": "lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCompatibility/PHPCompatibility/graphs/contributors" + } + ], + "description": "A set of sniffs for PHP_CodeSniffer that checks for PHP cross-version compatibility.", + "homepage": "http://techblog.wimgodden.be/tag/codesniffer/", + "keywords": [ + "compatibility", + "phpcs", + "standards" + ], + "support": { + "issues": "https://github.com/PHPCompatibility/PHPCompatibility/issues", + "source": "https://github.com/PHPCompatibility/PHPCompatibility" + }, + "time": "2019-12-27T09:44:58+00:00" + }, { "name": "phpstan/phpdoc-parser", "version": "1.33.0", @@ -12369,16 +12379,16 @@ }, { "name": "phpstan/phpstan", - "version": "2.0.4", + "version": "2.1.1", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "50d276fc3bf1430ec315f2f109bbde2769821524" + "reference": "cd6e973e04b4c2b94c86e8612b5a65f0da0e08e7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/50d276fc3bf1430ec315f2f109bbde2769821524", - "reference": "50d276fc3bf1430ec315f2f109bbde2769821524", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/cd6e973e04b4c2b94c86e8612b5a65f0da0e08e7", + "reference": "cd6e973e04b4c2b94c86e8612b5a65f0da0e08e7", "shasum": "" }, "require": { @@ -12423,7 +12433,7 @@ "type": "github" } ], - "time": "2024-12-17T17:14:01+00:00" + "time": "2025-01-05T16:43:48+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -12472,6 +12482,65 @@ }, "time": "2024-11-28T21:56:36+00:00" }, + { + "name": "rector/rector", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/rectorphp/rector.git", + "reference": "df5de7b80deced1ea7f719a0b4d02e4aee87dd21" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/df5de7b80deced1ea7f719a0b4d02e4aee87dd21", + "reference": "df5de7b80deced1ea7f719a0b4d02e4aee87dd21", + "shasum": "" + }, + "require": { + "php": "^7.4|^8.0", + "phpstan/phpstan": "^2.0.4" + }, + "conflict": { + "rector/rector-doctrine": "*", + "rector/rector-downgrade-php": "*", + "rector/rector-phpunit": "*", + "rector/rector-symfony": "*" + }, + "suggest": { + "ext-dom": "To manipulate phpunit.xml via the custom-rule command" + }, + "bin": [ + "bin/rector" + ], + "type": "library", + "autoload": { + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Instant Upgrade and Automated Refactoring of any PHP code", + "keywords": [ + "automation", + "dev", + "migration", + "refactoring" + ], + "support": { + "issues": "https://github.com/rectorphp/rector/issues", + "source": "https://github.com/rectorphp/rector/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/tomasvotruba", + "type": "github" + } + ], + "time": "2024-12-26T23:06:19+00:00" + }, { "name": "sirbrillig/phpcs-variable-analysis", "version": "v2.11.22", @@ -12688,7 +12757,9 @@ }, "prefer-stable": true, "prefer-lowest": false, - "platform": [], - "platform-dev": [], - "plugin-api-version": "2.2.0" + "platform": { + "php": ">=8.3" + }, + "platform-dev": {}, + "plugin-api-version": "2.6.0" } diff --git a/config/sync/field.field.paragraph.b_levent_elg_criteria.field_b_children.yml b/config/sync/field.field.paragraph.b_levent_elg_criteria.field_b_children.yml index aedbe1b7e6..581771247c 100644 --- a/config/sync/field.field.paragraph.b_levent_elg_criteria.field_b_children.yml +++ b/config/sync/field.field.paragraph.b_levent_elg_criteria.field_b_children.yml @@ -5,7 +5,6 @@ dependencies: config: - field.storage.paragraph.field_b_children - paragraphs.paragraphs_type.b_levent_elg_criteria - - paragraphs.paragraphs_type.b_levent_elg_criteria_group module: - entity_reference_revisions id: paragraph.b_levent_elg_criteria.field_b_children @@ -23,7 +22,6 @@ settings: handler_settings: target_bundles: b_levent_elg_criteria: b_levent_elg_criteria - b_levent_elg_criteria_group: b_levent_elg_criteria_group negate: 0 target_bundles_drag_drop: b_benefit_eligibility: @@ -34,10 +32,13 @@ settings: enabled: true b_levent_elg_criteria_group: weight: 32 - enabled: true + enabled: false b_levent_elg_section: weight: 33 enabled: false + b_levent_relevant_benefit: + weight: 35 + enabled: false faq: weight: 34 enabled: false diff --git a/config/sync/field.field.paragraph.b_levent_elg_section.field_b_criterias.yml b/config/sync/field.field.paragraph.b_levent_elg_section.field_b_criterias.yml index 466892bbf6..926451b88c 100644 --- a/config/sync/field.field.paragraph.b_levent_elg_section.field_b_criterias.yml +++ b/config/sync/field.field.paragraph.b_levent_elg_section.field_b_criterias.yml @@ -5,7 +5,6 @@ dependencies: config: - field.storage.paragraph.field_b_criterias - paragraphs.paragraphs_type.b_levent_elg_criteria - - paragraphs.paragraphs_type.b_levent_elg_criteria_group - paragraphs.paragraphs_type.b_levent_elg_section module: - entity_reference_revisions @@ -24,7 +23,6 @@ settings: handler_settings: target_bundles: b_levent_elg_criteria: b_levent_elg_criteria - b_levent_elg_criteria_group: b_levent_elg_criteria_group negate: 0 target_bundles_drag_drop: b_benefit_eligibility: @@ -35,10 +33,13 @@ settings: enabled: true b_levent_elg_criteria_group: weight: 32 - enabled: true + enabled: false b_levent_elg_section: weight: 6 enabled: false + b_levent_relevant_benefit: + weight: 35 + enabled: false faq: weight: 34 enabled: false diff --git a/config/sync/system.performance.yml b/config/sync/system.performance.yml index 6b57fb61b5..cd81c181fb 100644 --- a/config/sync/system.performance.yml +++ b/config/sync/system.performance.yml @@ -4,7 +4,7 @@ cache: page: max_age: 0 css: - preprocess: false + preprocess: true gzip: true fast_404: enabled: true @@ -12,6 +12,6 @@ fast_404: exclude_paths: '/\/(?:styles|imagecache)\//' html: '404 Not Found

Not Found

The requested URL "@path" was not found on this server.

' js: - preprocess: false + preprocess: true gzip: true stale_file_threshold: 2592000 diff --git a/patches/drupal/tomeAggregationFix.patch b/patches/drupal/tomeAggregationFix.patch new file mode 100644 index 0000000000..506ccd24e7 --- /dev/null +++ b/patches/drupal/tomeAggregationFix.patch @@ -0,0 +1,11 @@ +--- a/modules/tome_static/src/StaticGenerator.php ++++ b/modules/tome_static/src/StaticGenerator.php +@@ -173,7 +173,7 @@ class StaticGenerator implements StaticGeneratorInterface { + // This is probably an image style derivative. + if ($response instanceof BinaryFileResponse) { + $file_path = $response->getFile()->getPathname(); +- $this->copyPath($file_path, $destination); ++ $invoke_paths[] = \Drupal::service('file_url_generator')->generateAbsoluteString($file_path); + } + else { + $content = $response->getContent(); diff --git a/phpstan.neon b/phpstan.neon index 79293c35ed..41ef636ead 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -3,7 +3,7 @@ includes: - vendor/mglaman/phpstan-drupal/rules.neon - vendor/phpstan/phpstan-deprecation-rules/rules.neon parameters: - level: 4 + level: 6 paths: - web/modules/custom - web/themes/custom diff --git a/rector.php b/rector.php new file mode 100644 index 0000000000..6158933cfd --- /dev/null +++ b/rector.php @@ -0,0 +1,18 @@ +paths([ + __DIR__ . '/web/modules/custom/', + __DIR__ . '/web/themes/custom/', + ]); + + // Other configurations, such as rule sets + $rectorConfig->sets([ + SetList::PHP_83, + ]); +}; diff --git a/web/modules/custom/usa_admin_styles/src/Controller/UsaAdminController.php b/web/modules/custom/usa_admin_styles/src/Controller/UsaAdminController.php index 413b3f704a..02fd2dcb65 100644 --- a/web/modules/custom/usa_admin_styles/src/Controller/UsaAdminController.php +++ b/web/modules/custom/usa_admin_styles/src/Controller/UsaAdminController.php @@ -13,10 +13,10 @@ */ class UsaAdminController extends ControllerBase { - public function __construct(MenuLinkTreeInterface $menu_link_tree, SystemManager $system_manager) { - $this->menuLinkTree = $menu_link_tree; - $this->systemManager = $system_manager; - } + public function __construct( + private MenuLinkTreeInterface $menuLinkTree, + private SystemManager $systemManager, + ) {} // Returns a page with some instructions and the same list of links as are in the menu. public function mainPage() { @@ -27,7 +27,7 @@ public function mainPage() { $link_id = 'usa_admin_styles.main'; $parameters = new MenuTreeParameters(); $parameters->setRoot($link_id)->excludeRoot()->setTopLevelOnly()->onlyEnabledLinks(); - $tree = $this->menuLinkTree->load(NULL, $parameters); + $tree = $this->menuLinkTree->load('', $parameters); $manipulators = [ ['callable' => 'menu.default_tree_manipulators:checkAccess'], ['callable' => 'menu.default_tree_manipulators:generateIndexAndSort'], @@ -56,7 +56,7 @@ public function mainPage() { // Check for a valid URL and its access, and construct the relevant content instead. if (empty($block['content']['#content'])) { $url = $link->getUrlObject(); - if ($url && $url->access()) { + if ($url->access()) { // Create block content that mimics what a routed element with a controller // would produce. $link_info = [ diff --git a/web/modules/custom/usa_contact_center_api/src/Controller/USAContactCenterController.php b/web/modules/custom/usa_contact_center_api/src/Controller/USAContactCenterController.php index aabc678f50..cf701e8d5a 100644 --- a/web/modules/custom/usa_contact_center_api/src/Controller/USAContactCenterController.php +++ b/web/modules/custom/usa_contact_center_api/src/Controller/USAContactCenterController.php @@ -6,28 +6,23 @@ use Drupal\Core\Database\Connection; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\HttpFoundation\JsonResponse; +use Symfony\Component\HttpFoundation\Request; /** * Controller routines for USA Contact Center API routes. */ class USAContactCenterController extends ControllerBase { - - /** - * The database connection. - * - * @var \Drupal\Core\Database\Connection - */ - protected $connection; - /** * Constructs a USAContactCenterController object. * * @param \Drupal\Core\Database\Connection $connection * The database connection. */ - public function __construct(Connection $connection) { - $this->connection = $connection; + final public function __construct( + protected Connection $connection, + private Request $request, + ) { } /** @@ -35,7 +30,8 @@ public function __construct(Connection $connection) { */ public static function create(ContainerInterface $container) { return new static( - $container->get('database') + connection: $container->get('database'), + request: $container->get('request_stack')->getCurrentRequest() ); } @@ -46,7 +42,7 @@ public static function create(ContainerInterface $container) { * The response. */ public function getDeletedNodes() { - $date = \Drupal::request()->query->get('deleted'); + $date = $this->request->query->get('deleted'); $query = $this->connection->select('usa_node_delete_log', 'n') ->fields('n', []) ->orderBy('deleted_time', 'DESC'); @@ -74,7 +70,7 @@ public function getArchivedNodes() { $query->condition('status', '0', '='); $query->condition('type', 'basic_page', '='); - $date = \Drupal::request()->query->get('archived'); + $date = $this->request->query->get('archived'); if (isset($date) && is_numeric($date)) { $query->condition('changed', $date, '>='); } diff --git a/web/modules/custom/usa_contact_center_api/usa_contact_center_api.module b/web/modules/custom/usa_contact_center_api/usa_contact_center_api.module index 37b36bc79d..e7558bf6f0 100644 --- a/web/modules/custom/usa_contact_center_api/usa_contact_center_api.module +++ b/web/modules/custom/usa_contact_center_api/usa_contact_center_api.module @@ -12,7 +12,7 @@ use Drupal\node\NodeInterface; */ function usa_contact_center_api_node_delete(NodeInterface $node) { - $type = $node->type->entity->id(); + $type = $node->getType(); if ($type == 'basic_page') { \Drupal::database()->insert('usa_node_delete_log') ->fields([ diff --git a/web/modules/custom/usa_content_moderation_notifications/usa_content_moderation_notifications.module b/web/modules/custom/usa_content_moderation_notifications/usa_content_moderation_notifications.module index f71aad318c..c0e504046f 100644 --- a/web/modules/custom/usa_content_moderation_notifications/usa_content_moderation_notifications.module +++ b/web/modules/custom/usa_content_moderation_notifications/usa_content_moderation_notifications.module @@ -5,7 +5,6 @@ * Call classes. */ -use Drupal\user\Entity\Role; use Drupal\user\Entity\User; /** diff --git a/web/modules/custom/usa_orphaned_entities/src/Form/OrphanedEntitiesSettings.php b/web/modules/custom/usa_orphaned_entities/src/Form/OrphanedEntitiesSettings.php index 0399e51ada..8d46775316 100644 --- a/web/modules/custom/usa_orphaned_entities/src/Form/OrphanedEntitiesSettings.php +++ b/web/modules/custom/usa_orphaned_entities/src/Form/OrphanedEntitiesSettings.php @@ -2,30 +2,48 @@ namespace Drupal\usa_orphaned_entities\Form; +use Drupal\Core\Config\ConfigFactoryInterface; +use Drupal\Core\Entity\EntityTypeManagerInterface; use Drupal\Core\Form\ConfigFormBase; use Drupal\Core\Form\FormStateInterface; +use Symfony\Component\DependencyInjection\ContainerInterface; class OrphanedEntitiesSettings extends ConfigFormBase { + public function __construct( + ConfigFactoryInterface $config_factory, + private EntityTypeManagerInterface $entityTypeManager, + protected $typedConfigManager = NULL, + ) { + parent::__construct($config_factory); + } + + public static function create(ContainerInterface $container): self { + return new self( + $container->get('config.factory'), + $container->get('entity_type.manager'), + $container->get('config.typed') + ); + } + /** * {@inheritdoc} */ - public function getFormId() { + public function getFormId(): string { return 'orphaned_entities_form'; } /** * {@inheritdoc} */ - public function buildForm(array $form, FormStateInterface $form_state) { - $entityTypeManager = \Drupal::service('entity_type.manager'); - + #[\Override] + public function buildForm(array $form, FormStateInterface $form_state): array { $form['#attached']['library'][] = 'usa_orphaned_entities/orphaned'; $form = parent::buildForm($form, $form_state); $config = $this->config('orphaned_entities.settings'); $form['#entity_reference'] = []; - $entity_references = $entityTypeManager->getStorage('field_storage_config')->loadByProperties([ + $entity_references = $this->entityTypeManager->getStorage('field_storage_config')->loadByProperties([ 'type' => 'entity_reference', ]); @@ -45,7 +63,7 @@ public function buildForm(array $form, FormStateInterface $form_state) { foreach ($entity_references as $index => $entity_reference) { $form['#entity_reference'][$index] = $entity_reference; $bundles = $entity_reference->getBundles(); - foreach ($bundles as $index => $bundle) { + foreach ($bundles as $bundle) { $reference_field = $entity_reference->getName(); $reference_field_map[$bundle][] = $reference_field; } @@ -77,6 +95,7 @@ public function buildForm(array $form, FormStateInterface $form_state) { /** * {@inheritdoc} */ + #[\Override] public function validateForm(array &$form, FormStateInterface $form_state) { // foreach ($form['#entity_reference'] as $index => $entity_reference) { @@ -96,22 +115,25 @@ public function validateForm(array &$form, FormStateInterface $form_state) { /** * {@inheritdoc} */ - public function submitForm(array &$form, FormStateInterface $form_state) { + #[\Override] + public function submitForm(array &$form, FormStateInterface $form_state): void { $config = $this->config('orphaned_entities.settings'); foreach ($form['#entity_reference'] as $index => $entity_reference) { if (!str_contains($index, '#')) { $bundles = $entity_reference->getBundles(); - foreach ($bundles as $index => $bundle) { + foreach ($bundles as $bundle) { $reference_field = $entity_reference->getName(); $config->set( - 'orphaned_entities.' . $bundle . '_' . $reference_field, $form_state->getValue($bundle . '_' . $reference_field)); + 'orphaned_entities.' . $bundle . '_' . $reference_field, + $form_state->getValue($bundle . '_' . $reference_field) + ); } } } $config->save(); - return parent::submitForm($form, $form_state); + parent::submitForm($form, $form_state); } /** diff --git a/web/modules/custom/usa_orphaned_entities/usa_orphaned_entities.module b/web/modules/custom/usa_orphaned_entities/usa_orphaned_entities.module index 53fd1a6e87..1467259a22 100644 --- a/web/modules/custom/usa_orphaned_entities/usa_orphaned_entities.module +++ b/web/modules/custom/usa_orphaned_entities/usa_orphaned_entities.module @@ -158,7 +158,7 @@ function usa_orphaned_entities_get_reference_data($deleting_entity) { // getTargetEntityTypeId() answers "as a field, which entity type // are you/ attached to?" It should not matter if $reference_field // is not attached to the same entity type that we are deleting. - $entity_type = $entity_reference->getTargetEntityTypeId('target_type'); + $entity_type = $entity_reference->getTargetEntityTypeId(); // Instead, we must look at the "target_type" setting to check // if $reference_field can select other entities like the diff --git a/web/modules/custom/usa_translation/usa_translation.module b/web/modules/custom/usa_translation/usa_translation.module index e1525b932c..41e0a2267b 100644 --- a/web/modules/custom/usa_translation/usa_translation.module +++ b/web/modules/custom/usa_translation/usa_translation.module @@ -6,6 +6,7 @@ */ use Drupal\Core\Cache\CacheableMetadata; +use Drupal\Core\Entity\ContentEntityBase; use Drupal\Core\Entity\FieldableEntityInterface; use Drupal\Core\Url; use Drupal\node\NodeInterface; @@ -64,10 +65,7 @@ function usa_translation_page_attachments_alter(&$page) { ->load($altid); } - if (!empty($altnode) - && is_object($altnode) - && method_exists($altnode, 'hasLinkTemplate') - && $altnode->hasLinkTemplate('canonical')) { + if (!empty($altnode) && $altnode->hasLinkTemplate('canonical')) { foreach ($altnode->getTranslationLanguages() as $language) { // Skip any translation that cannot be viewed. $translation = $altnode->getTranslation($language->getId()); @@ -111,9 +109,7 @@ function usa_translation_page_attachments_alter(&$page) { } // Displays current route of an entity in the metadata // The route should be the same as the canonical url. - if (!empty($entity) - && is_object($entity) - && method_exists($entity, 'hasLinkTemplate') + if ($entity instanceof ContentEntityBase && $entity->hasLinkTemplate('canonical')) { foreach ($entity->getTranslationLanguages() as $language) { // Skip any translation that cannot be viewed. diff --git a/web/modules/custom/usa_twig_vars/src/TaxonomyDatalayerBuilder.php b/web/modules/custom/usa_twig_vars/src/TaxonomyDatalayerBuilder.php index 264cb50d86..35b3b47c63 100644 --- a/web/modules/custom/usa_twig_vars/src/TaxonomyDatalayerBuilder.php +++ b/web/modules/custom/usa_twig_vars/src/TaxonomyDatalayerBuilder.php @@ -2,7 +2,7 @@ namespace Drupal\usa_twig_vars; -use Drupal\Core\Breadcrumb\BreadcrumbManager; +use Drupal\Core\Breadcrumb\ChainBreadcrumbBuilderInterface; use Drupal\Core\Entity\EntityMalformedException; use Drupal\Core\Routing\RouteMatchInterface; use Drupal\node\Entity\Node; @@ -18,17 +18,17 @@ class TaxonomyDatalayerBuilder { public const HOME_TITLE_ES = "Página principal"; public const HOME_URL_ES = "/es/"; - private const ABOUT_GOVT_EN = "About the U.S. and its government"; - private const ABOUT_URL_EN = "/about-the-us"; + private const string ABOUT_GOVT_EN = "About the U.S. and its government"; + private const string ABOUT_URL_EN = "/about-the-us"; - private const ABOUT_GOVT_ES = "Acerca de EE. UU. y su Gobierno"; - private const ABOUT_URL_ES = "/es/acerca-de-estados-unidos"; + private const string ABOUT_GOVT_ES = "Acerca de EE. UU. y su Gobierno"; + private const string ABOUT_URL_ES = "/es/acerca-de-estados-unidos"; - private const AGENCY_INDEX_URL_EN = '/agency-index'; - private const AGENCY_INDEX_URL_ES = '/es/indice-agencias'; + private const string AGENCY_INDEX_URL_EN = '/agency-index'; + private const string AGENCY_INDEX_URL_ES = '/es/indice-agencias'; - private const STATE_INDEX_URL_EN = '/state-governments'; - private const STATE_INDEX_URL_ES = '/es/gobiernos-estatales'; + private const string STATE_INDEX_URL_EN = '/state-governments'; + private const string STATE_INDEX_URL_ES = '/es/gobiernos-estatales'; /** * Language code for entity. @@ -49,7 +49,7 @@ class TaxonomyDatalayerBuilder { public function __construct( private RouteMatchInterface $routeMatch, - private BreadcrumbManager $breadcrumbManager, + private ChainBreadcrumbBuilderInterface $breadcrumbManager, public Node $node, bool $isFront, public ?string $basicPagesubType, diff --git a/web/modules/custom/usa_twig_vars/usa_twig_vars.module b/web/modules/custom/usa_twig_vars/usa_twig_vars.module index e6f71cb75b..6027af30e2 100644 --- a/web/modules/custom/usa_twig_vars/usa_twig_vars.module +++ b/web/modules/custom/usa_twig_vars/usa_twig_vars.module @@ -15,7 +15,7 @@ use Drupal\usa_twig_vars\Event\DatalayerAlterEvent; use Drupal\usa_twig_vars\TaxonomyDatalayerBuilder; /** - * Description message. + * Implements hook_preprocess() * * @param mixed $variables * Self described. @@ -44,7 +44,7 @@ function usa_twig_vars_preprocess(&$variables, $hook) { // Check node has all the four variables set which must not be null. $node_real_type = $node->getType(); - if ($node->id() != NULL && $node_real_type != NULL && $isFront !== NULL) { + if ($node->id() != NULL && $node_real_type != NULL) { // Check for special nodes by path: switch ($node->toUrl()->toString()) { case '/agency-index': @@ -141,25 +141,19 @@ function usa_twig_vars_get_page_type(&$node) { * * Attempt to get text from field_meta_description, and if that is absent or * does not contain text, from field_page_intro (which will be the more common - * case). - * - * @param \Drupal\node\NodeInterface $node - * The node entity to get the meta description from. - * - * @return string,NULL - * Returns the meta description or NULL if there is none. + * case). Returns the meta description or NULL if there is none. */ -function usa_twig_vars_get_meta_description(&$node) { +function usa_twig_vars_get_meta_description(NodeInterface &$node): ?string { $fields = $node->getFields(); foreach (['field_meta_description', 'field_page_intro'] as $field_name) { - if (array_key_exists($field_name, $fields) && ($fields[$field_name] !== NULL) && $fields[$field_name]->value) { + if (array_key_exists($field_name, $fields) && ($fields[$field_name] != NULL) && $fields[$field_name]->value) { $value = trim($fields[$field_name]->value); if (strlen($value) > 0) { return $value; } } } - return ''; + return NULL; } /** @@ -244,9 +238,11 @@ function usa_twig_vars_preprocess_views_view_summary__federal_agencies(&$variabl /** * Modify output of menu item level (Hierarchy level) to be human readable. + * + * @deprecated */ function usa_twig_vars_preprocess_views_view_field__published_pages_report(&$variables, $hook, $info) { - if ($variables['field']->field == 'level' ?? FALSE) { + if ($variables['field']->field == 'level') { if (empty($variables['output'])) { $variables['output'] = 1; } diff --git a/web/modules/custom/usa_workflow/src/UsaWorkflowPermissionChecker.php b/web/modules/custom/usa_workflow/src/UsaWorkflowPermissionChecker.php index 3186b30fdd..9f6d7f0535 100644 --- a/web/modules/custom/usa_workflow/src/UsaWorkflowPermissionChecker.php +++ b/web/modules/custom/usa_workflow/src/UsaWorkflowPermissionChecker.php @@ -2,10 +2,17 @@ namespace Drupal\usa_workflow; +use Drupal\Core\DependencyInjection\ContainerInjectionInterface; +use Drupal\Core\Entity\EntityTypeManagerInterface; +use Drupal\Core\Routing\RouteMatchInterface; +use Drupal\Core\Session\AccountProxyInterface; +use Psr\Log\LoggerInterface; +use Symfony\Component\DependencyInjection\ContainerInterface; + /** * Check if a certain permission exist for current user. */ -class UsaWorkflowPermissionChecker { +class UsaWorkflowPermissionChecker implements ContainerInjectionInterface { /** * Approve own content permission. * @@ -20,6 +27,22 @@ class UsaWorkflowPermissionChecker { */ private $usaDeleteOwnContent = FALSE; + public function __construct( + private RouteMatchInterface $routeMatch, + private EntityTypeManagerInterface $entityTypeManager, + private AccountProxyInterface $currentUser, + private LoggerInterface $logger, + ) {} + + public static function create(ContainerInterface $container): self { + return new self( + routeMatch: $container->get('current_route_match'), + entityTypeManager: $container->get('entity_type.manager'), + currentUser: $container->get('current_user'), + logger: $container->get('logger.factory')->get('usa_workflow'), + ); + } + /** * WfUserPermission. * @@ -27,71 +50,54 @@ class UsaWorkflowPermissionChecker { * the value should be of type array */ public function wfUserPermission() { - $return = []; - $currentUser = \Drupal::currentUser(); - if ($currentUser) { - $node_param = \Drupal::routeMatch()->getParameter('node'); + $node_param = $this->routeMatch->getParameter('node'); - // Check if the user has 'usa approve own content' - // assign TRUE as value. - if ($currentUser->hasPermission('usa approve own content')) { - $this->usaApproveOwnContent = TRUE; - } + // Check if the user has 'usa approve own content' + // assign TRUE as value. + if ($this->currentUser->hasPermission('usa approve own content')) { + $this->usaApproveOwnContent = TRUE; + } - // Check if the user have 'usa delete own content' - // assign TRUE as value. - if ($currentUser->hasPermission('usa delete own content')) { - $this->usaDeleteOwnContent = TRUE; - } + // Check if the user have 'usa delete own content' + // assign TRUE as value. + if ($this->currentUser->hasPermission('usa delete own content')) { + $this->usaDeleteOwnContent = TRUE; + } + + // These are valid regardless of whether we have an existing node: + $return['usaApproveOwnContent'] = $this->usaApproveOwnContent ?: FALSE; + $return['usaDeleteOwnContent'] = $this->usaDeleteOwnContent ?: FALSE; + $return['currentUser']['id'] = $this->currentUser->id(); + $return['currentUser']['roles'] = $this->currentUser->getRoles(); + + // Default revisionUser to anonymous. This way it won't match if there is no revisionUser + // (e.g., new page or some edge case.) + $return['revisionUser']['id'] = 0; + $return['revisionUser']['roles'] = []; + + if ($node_param) { + // Get the user who last revised this node. + $return['isNewPage'] = FALSE; + $rev_uid = $node_param->getRevisionUserId(); + + $storage = $this->entityTypeManager->getStorage('user'); + + $revisionUser = $storage->load($rev_uid); - // These are valid regardless of whether we have an existing node: - $return['usaApproveOwnContent'] = $this->usaApproveOwnContent ?? FALSE; - $return['usaDeleteOwnContent'] = $this->usaDeleteOwnContent ?? FALSE; - $return['currentUser']['id'] = $currentUser->id(); - $return['currentUser']['roles'] = $currentUser->getRoles(); - - // Default revisionUser to anonymous. This way it won't match if there is no revisionUser - // (e.g., new page or some edge case.) - $return['revisionUser']['id'] = 0; - $return['revisionUser']['roles'] = []; - - if ($node_param) { - // Get the user who last revised this node. - $return['isNewPage'] = FALSE; - $rev_uid = $node_param->getRevisionUserId(); - $entityTypeManager = \Drupal::service('entity_type.manager'); - if ($entityTypeManager) { - - $storage = $entityTypeManager->getStorage('user'); - if ($storage) { - $revisionUser = $storage->load($rev_uid); - - if ($revisionUser) { - $return['revisionUser']['id'] = $revisionUser->id(); - $return['revisionUser']['roles'] = $revisionUser->getRoles(); // Do we ever need these? - } - else { - // $rev_uid is invalid or $storage->load($rev_uid) failed - \Drupal::logger('usa_workflow')->error('$rev_uid (@rev_uid) is invalid or $storage->load($rev_uid) failed', - ['@rev_uid' => $rev_uid ?? '']); - } - } - else { - \Drupal::logger('usa_workflow')->error("getStorage('user') failed"); - } - } - else { - \Drupal::logger('usa_workflow')->error("Drupal::service('entity_type.manager') failed"); - } + if ($revisionUser) { + $return['revisionUser']['id'] = $revisionUser->id(); + $return['revisionUser']['roles'] = $revisionUser->getRoles(); // Do we ever need these? } else { - $return['isNewPage'] = TRUE; + // $rev_uid is invalid or $storage->load($rev_uid) failed + $this->logger->error('$rev_uid (@rev_uid) is invalid or $storage->load($rev_uid) failed', + ['@rev_uid' => $rev_uid ?? '']); } } else { - \Drupal::logger('usa_workflow')->error('\Drupal::currentUser() failed'); + $return['isNewPage'] = TRUE; } return $return; diff --git a/web/modules/custom/usagov_benefit_category_search/src/Form/BenefitCategorySearchForm.php b/web/modules/custom/usagov_benefit_category_search/src/Form/BenefitCategorySearchForm.php index 90d86040b8..8972c224bc 100644 --- a/web/modules/custom/usagov_benefit_category_search/src/Form/BenefitCategorySearchForm.php +++ b/web/modules/custom/usagov_benefit_category_search/src/Form/BenefitCategorySearchForm.php @@ -4,6 +4,9 @@ use Drupal\Core\Form\FormBase; use Drupal\Core\Form\FormStateInterface; +use Drupal\Core\State\StateInterface; +use Psr\Log\LoggerInterface; +use Symfony\Component\DependencyInjection\ContainerInterface; /** * Provides a form to enable or disable showing the benefit search @@ -12,6 +15,18 @@ class BenefitCategorySearchForm extends FormBase { public const TOGGLE_KEY = 'usagov_benefit_category_search.show_block'; + public function __construct( + private StateInterface $state, + private LoggerInterface $log_channel, + ) {} + + public static function create(ContainerInterface $container): self { + return new self( + state: $container->get('state'), + log_channel: $container->get('logger.factory')->get('usagov_benefit_category_search'), + ); + } + /** * {@inheritdoc} */ @@ -24,7 +39,7 @@ public function getFormId(): string { */ public function buildForm(array $form, FormStateInterface $form_state): array { - $toggle_state = \Drupal::state()->get(self::TOGGLE_KEY) ? TRUE : FALSE; + $toggle_state = $this->state->get(self::TOGGLE_KEY) ? TRUE : FALSE; $description = $toggle_state ? "Showing the benefit search blocks is ENABLED" : @@ -51,21 +66,22 @@ public function buildForm(array $form, FormStateInterface $form_state): array { * {@inheritdoc} */ public function submitForm(array &$form, FormStateInterface $form_state): void { - $toggle_state = \Drupal::state()->get(self::TOGGLE_KEY) ? TRUE : FALSE; + $toggle_state = $this->state->get(self::TOGGLE_KEY) ? TRUE : FALSE; $errors = FALSE; try { if ($toggle_state) { - \Drupal::state()->delete(self::TOGGLE_KEY); + $this->state->delete(self::TOGGLE_KEY); } else { - \Drupal::state()->set(self::TOGGLE_KEY, TRUE); + $this->state->set(self::TOGGLE_KEY, TRUE); } } catch (\Exception $e) { - \Drupal::logger('usagov_benefit_category_search') - ->error('Error while attempting toggle benefit search blocks: @error', - ['@error' => $e->getMessage()]); + $this->log_channel->error( + 'Error while attempting toggle benefit search blocks: @error', + ['@error' => $e->getMessage()] + ); $errors = TRUE; } diff --git a/web/modules/custom/usagov_benefit_category_search/src/PrepareSearchResults.php b/web/modules/custom/usagov_benefit_category_search/src/PrepareSearchResults.php index 79b9b2aea7..743233c3ab 100644 --- a/web/modules/custom/usagov_benefit_category_search/src/PrepareSearchResults.php +++ b/web/modules/custom/usagov_benefit_category_search/src/PrepareSearchResults.php @@ -20,6 +20,7 @@ public function cleanTerms(ViewExecutable $view): ViewExecutable { // // For filtering, remove categories that are not in the language we want. foreach ($view->result as $row) { + /** @var \Drupal\node\Entity\Node $row->_entity */ $categories = $row->_entity->field_benefits_category; foreach ($categories as $category) { diff --git a/web/modules/custom/usagov_benefit_category_search/usagov_benefit_category_search.module b/web/modules/custom/usagov_benefit_category_search/usagov_benefit_category_search.module index d150088c08..eeb8227ea7 100644 --- a/web/modules/custom/usagov_benefit_category_search/usagov_benefit_category_search.module +++ b/web/modules/custom/usagov_benefit_category_search/usagov_benefit_category_search.module @@ -195,7 +195,8 @@ function usagov_benefit_category_search_menu_local_tasks_alter( $view = match($node->language()->getId()) { 'en' => 'view.manage_benefits_search_sort.page_en', - 'es' => 'view.manage_benefits_search_sort.page_es' + 'es' => 'view.manage_benefits_search_sort.page_es', + default => 'view.manage_benefits_search_sort.page_en', }; $userCurrent = \Drupal::currentUser(); diff --git a/web/modules/custom/usagov_benefit_finder/README.md b/web/modules/custom/usagov_benefit_finder/README.md index b6951723c3..752ee47922 100644 --- a/web/modules/custom/usagov_benefit_finder/README.md +++ b/web/modules/custom/usagov_benefit_finder/README.md @@ -1,113 +1,149 @@ -# USAgov Benefit Finder module -* USAgov Benefit Finder app folder - * USAgov bears block module -* USAgov bears content module -* USAgov bears API module +# Benefit Finder v2 Custom Drupal Module + +## Structure + +```text +/usagov_benefit_finder + |-config + |-modules + |-usagov_benefit_finder_api + |-src + |-Controller + LifeEventController.php + usagov_benefit_finder_api.module + |-usagov_benefit_finder_app + |-usagov_benefit_finder_page + |-css + benefit-finder.min.css + |-js + benefit-finder.min.js + |-templates + page--benefit-finder-life-event.html.twig + usagov_benefit_finder_page.libraries.yml + usagov_benefit_finder_page.module + |-usagov_benefit_finder_content + |-src + usagov_benefit_finder_content.module + |-src + |-Form + BenefitFinderSettingsForm.php + |-Traits + BenefitFinderTrait.php + |-tests + |-README.md +``` + +## Basics +| File or folder | Description | +|---------------------------------------------|--------------------------------------------------------------------| +| `usagov_benefit_finder_api` | Benefit finder API module | +| `LifeEventController.php` | Process benefit finder content to generate JSON data and JSON file | +| `usagov_benefit_finder_api.module` | JSON file generation batch job | +| `usagov_benefit_finder_page` | Benefit finder page module | +| `benefit-finder.min.css` | Benefit finder app css | +| `benefit-finder.min.js` | Benefit finder app JavaScript | +| `page--benefit-finder-life-event.html.twig` | Benefit finder page template | +| `usagov_benefit_finder_page.libraries.yml` | Benefit finder app library | +| `usagov_benefit_finder_page.module` | Benefit finder page theme, preprocess, attach library | +| `usagov_benefit_finder_content` | Benefit finder content module | +| `usagov_benefit_finder_content.module` | Provide benefit finder content form validation | +| `src/Form/BenefitFinderSettingsForm.php` | Form to set up automate JSON data file generation | +| `src/Traits/BenefitFinderTrait.php` | Functions to get benefit finder node | + +## Benefit finder API module + +The `usagov_benefit_finder_api` custom Drupal module works on reading and processing benefit finder content, +generating JSON data and JSON file for a given life event; creating and running batch job to update JSON +files of all life events when content editors add/update benefit finder content. + +### Life event controller + +The `LifeEventController.php` life event controller has the following functions: +* Fetches benefit finder content of given life event +* Processes the benefit finder content +* Generates JSON data +* Saves JSON data as JSON file + +### Benefit finder API module + +The `usagov_benefit_finder_api.module` module creates and runs batch job of generating JSON data files +of all life events when content editors add/update a benefit finder content. This keeps benefit finder +JSON data files consistent with benefit finder content. + + +## Benefit finder page module + +The `usagov_benefit_finder_page` custom Drupal module works on defining benefit finder library including +benefit finder app JavaScript and CSS file; providing twig page template with container for benefit +finder app to attach to, with JSON data file path attribute for benefit finder app to fetch data from, +and HTML content for benefit finder app to override. + +### Benefit finder App + +The `benefit-finder.min.js` is a React program with following functions: +* Fetches JSON data generated by Drupal custom module +* Provides users life event form +* Outputs result about benefit eligibility according to user inputs + +The `benefit-finder.min.css` is the associated CSS file. + +The `usagov_benefit_finder_page.libraries.yml` defines benefit_finder_app library. + +```php +benefit_finder_app: + version: 1.x + js: + js/benefit-finder.min.js: {} + css: + theme: + css/benefit-finder.min.css: {} +``` + +### Twig Page Template + +The `page--benefit-finder-life-event.html.twig` is the page template of life event page: +* Outputs container for React app to attach to +* Outputs draft and published JSON data file path for React app to fetch data from +* Outputs HTML content for React app to override + +```php +
+ {# app will rehydrate and replace innerHTML #} +

{{ node.label }}

+
``` -bin/drush pm:enable usagov_bears_block -bin/drush pm:enable usagov_bears_content -bin/drush pm:enable usagov_bears_api -bin/drush pm:enable usagov_bears -``` - -These enable the USAgov bears modules. - -## USAgov bears block module - -This module provides custom block "usagov bears block" with div id="usagov-bears-app" for React app. - -## USAgov bears content module - -config/optional folder include configuration of content type, taxonomy, paragraph... - -``` -bin/drush config:import \ - --partial \ - --source=modules/custom/usagov_bears/modules/usagov_bears_content/config/optional -``` -This imports the configuration of content type, taxonomy, paragraph, custom entity. - - -config folder includes content type, taxonomy, paragraph, custom entity configuration. - -``` -bin/drush config:import \ - --partial \ - --source=modules/custom/usagov_bears/modules/usagov_bears_content/config -``` -This imports the configuration of content type, taxonomy, paragraph, custom entity. - -path: /bears/import-life-event - -This imports Life Event content. - -## USAgov bears API module - -path: /bears/api/life-event/{name} - -This outputs JSON data of given life event. - -For example, - -/bears/api/life-event/death of a loved one -/bears/api/life-event/retirement +### Benefit finder page module -/bears/api/life-event/disability +The `usagov_benefit_finder_page.module` module suggests life event page to use the benefit finder page template, and attaches +benefit finder app JavaScript and CSS file to the life event page. -## Local Functional Testing -#### Set up local development site +## Benefit finder content module -Make sure that local development site setup and run at http://localhost +The `usagov_benefit_finder_content` custom Drupal module works on benefit finder form alter and form validation. -The functional testing uses the existing database of local development site. +### Benefit finder content module -#### Set up testing environment (Install testing software and set PHPUnit configuration) +The `usagov_benefit_finder_content.module` module: +* Validates agency form +* Validates criteria form +* Validates life event form +* Alters benefit edit form +* Validates benefit form -``` -$ bash scripts/local/setup-benefit-finder-test -``` - -#### Change to local development site directory +## Benefit finder settings form -``` -cd usagov-2021 -``` +The `src/Form/BenefitFinderSettingsForm.php` form provides automate JSON data file generation setting. -#### Uninstall USAGov Login Customizations module +## Benefit finder trait -``` -bin/drush pm:uninstall usagov_login -``` - -#### The system is ready for functional testing - -#### The following is a functional testing example. - -Start SSH session -``` -bin/ssh -cd /var/www -``` - -Use following command to test Benefit Finder system -``` -/var/www # ./vendor/bin/phpunit \ -web/modules/custom/usagov_benefit_finder/tests/src/Functional/BenefitFinderTest.php \ ---group usagov_benefit_finder \ ---filter testAll -``` - -The test displays result. -``` -PHPUnit 9.6.17 by Sebastian Bergmann and contributors. - -. 1 / 1 (100%) - -Time: 00:02.558, Memory: 30.00 MB - -OK (1 test, 9 assertions) -``` +The `src/Traits/BenefitFinderTrait.php` trait provides functions to get benefit finder content. +* Get life event +* Get agency +* Get criteria +* Get benefit +* Get life event form +* Get node of a given node ID and content mode diff --git a/web/modules/custom/usagov_benefit_finder/modules/usagov_benefit_finder_app/usagov_benefit_finder_page/css/benefit-finder.min.css b/web/modules/custom/usagov_benefit_finder/modules/usagov_benefit_finder_app/usagov_benefit_finder_page/css/benefit-finder.min.css index 37d45915f1..d3054072e3 100644 --- a/web/modules/custom/usagov_benefit_finder/modules/usagov_benefit_finder_app/usagov_benefit_finder_page/css/benefit-finder.min.css +++ b/web/modules/custom/usagov_benefit_finder/modules/usagov_benefit_finder_app/usagov_benefit_finder_page/css/benefit-finder.min.css @@ -1 +1 @@ -@charset "UTF-8";#benefit-finder .no-background{background-color:#fff;border-left-color:#fff}#benefit-finder h2.bf-usa-alert__heading{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.3125rem;font-style:normal;font-weight:700;line-height:117.4%}#benefit-finder .bf-errors-list-item a{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;font-weight:400;line-height:132%}#benefit-finder .bf-usa-accordion .bf-usa-accordion__button{position:relative}#benefit-finder .bf-usa-accordion .bf-usa-accordion__button svg{position:absolute;top:0;bottom:0;right:1.25rem;margin:auto 0}#benefit-finder .bf-usa-accordion .bf-usa-accordion__button .bf-accordion-heading{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.3125rem;font-style:normal;font-weight:700;line-height:117.4%;letter-spacing:0}#benefit-finder .bf-usa-accordion .bf-usa-accordion__button .bf-accordion-sub-heading{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;font-weight:400;line-height:132%;letter-spacing:0}#benefit-finder .bf-usa-accordion .bf-usa-accordion__content{padding:0 2.5rem 1rem}#benefit-finder .bf-usa-accordion-group .bf-usa-accordion{margin-bottom:.75rem}#benefit-finder .bf-usa-accordion-group .bf-usa-accordion .bf-usa-detail-title{margin-bottom:.5rem}#benefit-finder .bf-usa-accordion-group .bf-usa-accordion .bf-usa-detail-summary p{margin-bottom:1.5rem}#benefit-finder .bf-usa-accordion-group .bf-usa-accordion .bf-key-eligibility-criteria-heading{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.3125rem;font-style:normal;font-weight:700;line-height:117.4%}#benefit-finder .bf-usa-accordion-group .bf-usa-accordion .bf-usa-accordion-group-cta-wrapper{display:flex;justify-content:center;margin-top:2rem}#benefit-finder .bf-usa-accordion-group .bf-usa-accordion .bf-usa-accordion-group-cta-wrapper .bf-usa-link{margin-bottom:1rem}#benefit-finder .bf-usa-accordion-group .bf-expand-all{margin-bottom:2rem}#benefit-finder .bf-usa-button{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;font-weight:400;line-height:132%;font-weight:700;padding:1rem 1.25rem;font-size:1.1rem}#benefit-finder .bf-usa-button--outline{background-color:transparent;box-shadow:inset 0 0 0 .125rem #000;color:#000}#benefit-finder .bf-usa-button--outline:focus{box-shadow:inset 0 0 0 .125rem #fff}#benefit-finder .bf-usa-button--outline:hover{background-color:#f0f0f0}#benefit-finder .bf-usa-card--relative-benefit{margin-bottom:1rem}#benefit-finder .bf-usa-card--relative-benefit .bf-usa-card__container{border-radius:0;border:.125rem solid #0081a1;color:#162e51;height:auto;margin:0}#benefit-finder .bf-usa-card--relative-benefit a{text-decoration:none}#benefit-finder .bf-usa-card--relative-benefit a:hover.bf-usa-card__container{background-color:#ccecf2}#benefit-finder .bf-usa-card--relative-benefit a:active.bf-usa-card__container{border:.125rem solid #0081a1}#benefit-finder .bf-usa-card--relative-benefit.bf-card-icon .bf-relative-icon svg{margin:auto 0;position:absolute;top:0;bottom:0;left:1rem;width:4.375rem;height:4.375rem;padding:.75rem}#benefit-finder .bf-usa-card--relative-benefit.bf-card-icon .bf-usa-card__container{padding:0 2.5rem 0 5.375rem}#benefit-finder .bf-usa-card--relative-benefit .bf-usa-card__header{padding-bottom:0}#benefit-finder .bf-usa-card--relative-benefit h3.bf-usa-card__heading{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.3125rem;font-style:normal;font-weight:400;line-height:145.4%;font-weight:700;text-decoration:underline}#benefit-finder .bf-usa-card--relative-benefit .bf-usa-card__body{display:none}#benefit-finder .bf-usa-card--relative-benefit .bf-usa-card__cta,.bf-usa-card--relative-benefit .bf-usa-card__body{padding:1.5rem;padding-top:0;margin-top:0;margin-bottom:0}@media (width >= 65.5625rem){#benefit-finder .bf-usa-card--relative-benefit .bf-usa-card__body{display:block;padding-top:0;padding-bottom:1.5rem;margin-top:0;margin-bottom:0}#benefit-finder .bf-usa-card--relative-benefit .bf-usa-card__body p{max-width:90%}#benefit-finder .bf-usa-card--relative-benefit .bf-usa-card__cta{display:none}}#benefit-finder h1.bf-chevron-heading{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2.4375rem;font-style:normal;font-weight:900;line-height:117.4%;letter-spacing:-.39px}#benefit-finder .bf-chevron{position:relative;background-color:#162e51;padding:4rem 2rem 2.375rem;margin:0 auto;color:#fff;margin-bottom:8.75rem}#benefit-finder .bf-chevron-description p{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.3125rem;font-style:normal;font-weight:400;line-height:164%}#benefit-finder .bf-chevron:before{content:"";position:absolute;top:100%;left:0;border-top:4.75rem solid #162e51;border-left:50vw solid transparent;border-right:50vw solid transparent}@media (width >= 65.5625rem){#benefit-finder .bf-chevron{padding-bottom:4rem;margin-bottom:4rem}#benefit-finder .bf-chevron:before{display:none}}#benefit-finder .bf-usa-form-group{width:100%}#benefit-finder .bf-usa-memorable-date{max-width:20rem;flex-wrap:wrap}#benefit-finder .bf-usa-input.usa-input--error{padding:.5rem;height:initial;border-color:#b50909}#benefit-finder .bf-usa-form-group--month{width:15.125rem;margin-top:.5rem}#benefit-finder .bf-usa-form-group--day{width:4rem;margin-top:.5rem}#benefit-finder .bf-usa-form-group--year{width:5.9375rem;margin-top:.5rem}@media (width >= 65.5625rem){#benefit-finder .bf-usa-memorable-date{max-width:100%}}#benefit-finder .bf-usa-fieldset{position:relative;padding:0;margin:0}#benefit-finder .bf-usa-fieldset .bf-hint{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;font-weight:400;line-height:132%}#benefit-finder .bf-usa-fieldset .bf-error-detail{margin:0 0 .5rem;color:#b50909;font-weight:600}#benefit-finder .bf-usa-fieldset li.bf-error-detail{margin:0 0 .25rem}#benefit-finder .bf-fieldset-wrapper{padding:0 0 2rem}#benefit-finder .bf-fieldset-wrapper:has(fieldset.usa-input--error){border-left:.25rem solid #c61f0c;padding-left:1.25rem}#benefit-finder .bf-fieldset-wrapper:has(fieldset.usa-input--error)+.bf-fieldset-wrapper:has(fieldset:not(.usa-input--error)){padding-top:1.25rem}#benefit-finder .bf-fieldset-wrapper:has(fieldset.display-none){padding:0}#benefit-finder h1{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2.4375rem;font-style:normal;font-weight:900;line-height:117.4%;letter-spacing:-.39px}#benefit-finder h2{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2rem;font-style:normal;font-weight:900;line-height:117.4%}#benefit-finder h3{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.625rem;font-style:normal;font-weight:900;line-height:117.4%}#benefit-finder h4{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.3125rem;font-style:normal;font-weight:700;line-height:117.4%}#benefit-finder h5{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.3125rem;font-style:normal;font-weight:700;line-height:117.4%}#benefit-finder h6{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.25rem;font-weight:700;line-height:134.09%}#benefit-finder .bf-usa-hint--required{color:#3d4551}#benefit-finder .bf-required{color:#3d4551;font-weight:400;margin-left:.5rem}#benefit-finder .bf-carrot-solid,.bf-carrot{position:absolute;top:0;bottom:0;right:3.125rem;margin:auto 0;transform:rotate(-90deg)}#benefit-finder .bf-carrot-solid:after,.bf-carrot:after{content:"▸"}#benefit-finder .bf-carrot{transform:rotate(0)}#benefit-finder .bf-key-eligibility-criteria-group .bf-key-eligibility-criteria-heading{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.25rem;font-weight:700;line-height:134.09%;background-color:#f0f0f0;padding:1rem 2rem;margin:0}#benefit-finder .bf-key-eligibility-criteria-group .bf-key-eligibility-criteria-sub-heading{margin-bottom:0}#benefit-finder .bf-key-eligibility-criteria-group .bf-key-eligibility-criteria-list{padding:0;margin:0}#benefit-finder .bf-key-eligibility-criteria-group .bf-key-eligibility-criteria-list .bf-key-eligibility-criteria-list-item{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;font-weight:400;line-height:132%;line-height:26px;margin:0;padding:1rem 2rem;border:.125rem solid #f0f0f0;border-bottom:0;display:flex;flex-wrap:nowrap}#benefit-finder .bf-key-eligibility-criteria-group .bf-key-eligibility-criteria-list .bf-key-eligibility-criteria-list-item .bf-checkmark--green{height:100%;margin-right:2rem}#benefit-finder .bf-key-eligibility-criteria-group .bf-key-eligibility-criteria-list:last-child{border-bottom:.125rem solid #f0f0f0}#benefit-finder .bf-key-eligibility-criteria-group .bf-key-eligibility-criteria-list li.bf-usa-list{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;font-weight:400;line-height:132%;line-height:26px;line-height:normal}#benefit-finder .bf-unmet-criteria-group{padding:1.5rem 0 0 1.5rem}#benefit-finder .bf-unmet-criteria-group .bf-unmet-criteria-title{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.3125rem;font-style:normal;font-weight:700;line-height:117.4%;margin-bottom:.75rem}#benefit-finder .bf-unmet-criteria-group li.bf-unmet-criteria-item{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;font-weight:400;line-height:132%;line-height:26px}#benefit-finder .bf-legend{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.3125rem;font-style:normal;font-weight:400;line-height:145.4%;font-weight:600;margin:0 0 .5rem;padding:0;max-width:fit-content}#benefit-finder .bf-usa-label{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;font-weight:400;line-height:132%;margin-top:0}#benefit-finder-modal .bf-modal-button{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;font-weight:400;line-height:132%;font-weight:700;background-color:transparent;border:0;position:absolute;top:1.5rem;right:1.5rem;cursor:pointer}#benefit-finder-modal .bf-modal-heading{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-weight:400;line-height:132%;font-weight:700;font-weight:600;color:#000;text-align:center;font-style:normal;margin:1.5rem 0}#benefit-finder-modal .bf-modal.bf-usa-button-group.width-full{margin:0 auto;text-align:center}#benefit-finder-modal .bf-modal.bf-usa-button-group.width-full .bf-usa-button-group__item{margin-left:0;margin-right:0}#benefit-finder-modal .bf-modal.bf-usa-button-group.width-full .bf-usa-button{width:14.5rem;padding:1rem 1.25rem}#benefit-finder .bf-notices-list{margin-top:1.5rem;margin-bottom:4rem}#benefit-finder .bf-notice{display:flex;padding-bottom:2rem}#benefit-finder .bf-notice .bf-info{margin-top:.25rem;margin-right:.75rem}#benefit-finder .bf-line-sperator-wrapper{display:block;padding-top:2rem;padding-bottom:2rem;margin:2rem}#benefit-finder .bf-line-sperator{display:block;border-top:.125rem solid #f0f0f0;width:100%;height:100%}#benefit-finder .bf-line-sperator-wrapper--vertical,#benefit-finder .bf-line-sperator--vertical{display:none}@media (width >= 65.5625rem){#benefit-finder .bf-intro .bf-line-sperator-wrapper,#benefit-finder .bf-intro .bf-line-sperator{display:none}#benefit-finder .bf-line-sperator-wrapper--vertical{display:block;padding-top:2rem;padding-bottom:2rem;margin:0;margin-right:2rem}#benefit-finder .bf-line-sperator--vertical{display:block;border-left:.125rem solid #f0f0f0;width:100%;height:80%}}#benefit-finder .bf-obfuscated-link{position:relative;text-decoration:none}#benefit-finder .bf-obfuscated-link:visited{text-decoration:none}#benefit-finder p,p.regular{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;font-weight:400;line-height:132%}#benefit-finder p.bold{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;font-weight:400;line-height:132%;font-weight:700}#benefit-finder .bf-usa-process-list{margin-left:4.375rem;margin-right:1.125rem}#benefit-finder .bf-usa-process-list__item{min-height:5rem}#benefit-finder .bf-usa-process-list__item .bf-usa-process-list__heading{font-size:1.3125rem}#benefit-finder .bf-usa-process-list__item:last-child{border-left:.5rem solid transparent}#benefit-finder h3.bf-usa-process-list__heading{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.3125rem;font-style:normal;font-weight:700;line-height:117.4%}#benefit-finder .bf-usa-radio__label{margin-top:1rem}#benefit-finder .bf-usa-radio__input:checked+.bf-usa-radio__label:before{background-color:#1b1b1b;box-shadow:0 0 0 .125rem #1b1b1b,inset 0 0 0 .125rem #fff;outline-offset:.25rem}#benefit-finder .bf-usa-radio__input:checked.usa-input--error+.bf-usa-radio__label:before{background-color:#005ea2;box-shadow:0 0 0 .1875rem #b50909,inset 0 0 0 .125rem #fff;outline-offset:.25rem}@media (width >= 65.5625rem){#benefit-finder .bf-radio-group>.bf-usa-radio:first-of-type .bf-usa-radio__label{margin-top:1.5rem}}#benefit-finder .bf-usa-step-indicator__segment .bf-usa-step-indicator__segment-label{color:#757575}#benefit-finder .bf-usa-step-indicator__segment:after{background-color:#757575}#benefit-finder .bf-usa-step-indicator__segment--complete .bf-usa-step-indicator__segment-label{color:#162e51}#benefit-finder .bf-usa-step-indicator__segment--complete:after{background-color:#162e51}#benefit-finder .bf-usa-step-indicator__segment--current .bf-usa-step-indicator__segment-label{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;font-weight:400;line-height:132%;font-weight:700;color:#0081a1;font-style:italic}#benefit-finder .bf-usa-step-indicator__segment--current:after{background-color:#0081a1}#benefit-finder .bf-step-back-button{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;font-weight:400;line-height:132%;padding:0}#benefit-finder .bf-usa-select.usa-input--error{padding:.5rem 2rem .5rem .5rem;height:auto;border-color:#b50909}#benefit-finder .bf-usa-select.usa-input--error:focus{outline-offset:.125rem}#benefit-finder .bf-usa-summary-box{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.3125rem;font-style:normal;font-weight:700;line-height:117.4%;margin-bottom:1rem;border-color:#00bde3}#benefit-finder .bf-usa-summary-box .bf-usa-list li{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;font-weight:400;line-height:132%;line-height:26px}#benefit-finder .bf-usa-input.usa-input--error{outline-offset:.125rem}#benefit-finder .time-indicator{color:#3d4551;text-align:center;margin-bottom:2rem}#benefit-finder .bf-intro{padding-bottom:2rem}#benefit-finder .bf-intro h2{text-align:center}#benefit-finder .bf-intro .bf-cta-wrapper{display:flex;justify-content:center;margin:2rem 2rem 4rem}#benefit-finder .bf-intro .bf-cta-wrapper button{margin:0 auto}#benefit-finder .bf-intro .bf-intro-process-notices{display:flex;flex-direction:column;align-items:center;justify-content:space-around;margin-left:1rem}#benefit-finder .bf-intro .bf-intro-process-list{display:flex;flex-direction:column;align-items:center;justify-content:space-around}#benefit-finder .bf-intro .bf-intro-process-list .bf-usa-process-list{margin-left:0;margin-right:0}@media (width >= 65.5625rem){#benefit-finder .bf-intro .bf-intro-process-list{min-width:50%}#benefit-finder .bf-intro .bf-intro-process-notices-heading{display:none}#benefit-finder .bf-intro .bf-intro-process-group{display:flex}}#benefit-finder .bf-usa-form,.bf-verify-selections-view{background-color:#162e51;margin:0;padding-bottom:4rem}#benefit-finder .bf-section-wrapper{background-color:#fff;border:.0625rem solid #fff;border-radius:.5rem}#benefit-finder .bf-section-wrapper .bf-usa-button{margin-bottom:1rem}#benefit-finder .bf-section-info{margin:3.125rem 1.25rem}#benefit-finder .bf-section-nav-btn-group{display:flex;flex-wrap:wrap;justify-content:center}#benefit-finder .bf-section-nav-btn-group .bf-usa-button{min-width:7.5rem}#benefit-finder .bf-section-nav-btn-group .bf-usa-modal-group{width:100%}#benefit-finder .bf-section-nav-btn-group button,.bf-section-nav-btn-group .bf-usa-modal-group a{margin:0}@media (width >= 29.9375rem){#benefit-finder .bf-section-nav-btn-group .bf-usa-button:first-of-type{margin-right:2.5rem}#benefit-finder .bf-section-nav-btn-group .bf-usa-modal-group{width:auto}#benefit-finder .bf-section-nav-btn-group button,.bf-section-nav-btn-group .bf-usa-modal-group a{margin-bottom:1rem}}#benefit-finder .bf-section-heading{background-color:#162e51;color:#fff;margin:0;padding:4rem 1rem}#benefit-finder #bf-section{padding-left:1rem;padding-right:1rem;padding-bottom:2rem;margin-bottom:2.5rem}#benefit-finder #bf-section .bf-form-heading-group{padding-bottom:2rem}#benefit-finder #bf-section .bf-form-heading-group h2.bf-form-heading{margin-bottom:0;padding-bottom:.5rem}#benefit-finder #bf-section .bf-form-heading-group .bf-section-sub-heading p{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.3125rem;font-style:normal;font-weight:400;line-height:145.4%;margin:0}#benefit-finder .bf-radio-group{display:flex}#benefit-finder .bf-radio-group .bf-usa-radio__label{margin-right:2rem}@media (width >= 65.5625rem){#benefit-finder .bf-section-info{margin:4rem}#benefit-finder #bf-section{padding-left:0;padding-right:0}#benefit-finder .bf-radio-group{display:inline}}#benefit-finder .bf-eligible-view-heading{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2rem;font-style:normal;font-weight:900;line-height:117.4%}#benefit-finder .bf-eligible-view-description{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.25rem;font-weight:700;line-height:134.09%}#benefit-finder .bf-not-eligible-view-heading{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2rem;font-style:normal;font-weight:900;line-height:117.4%}#benefit-finder .bf-not-eligible-view-description{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.25rem;font-weight:700;line-height:134.09%}#benefit-finder .bf-zero-benefits-view-heading{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2rem;font-style:normal;font-weight:900;line-height:117.4%}#benefit-finder h3.bf-zero-benefits-view-description{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;font-weight:400;line-height:132%}#benefit-finder .bf-back-to-form-cta{margin:1rem 0 2rem}#benefit-finder .bf-result-view-details{padding:2rem}#benefit-finder .bf-result-view-benefits,.bf-result-view-unmet,.bf-result-view-relvant-benefits,.bf-result-view-share-results{padding:1rem 0;text-align:left}#benefit-finder .bf-result-view-benefits .bf-result-view-unmet-heading,.bf-result-view-benefits .bf-result-view-relvant-benefits-heading,.bf-result-view-benefits .bf-result-view-share-results-heading,.bf-result-view-unmet .bf-result-view-unmet-heading,.bf-result-view-unmet .bf-result-view-relvant-benefits-heading,.bf-result-view-unmet .bf-result-view-share-results-heading,.bf-result-view-relvant-benefits .bf-result-view-unmet-heading,.bf-result-view-relvant-benefits .bf-result-view-relvant-benefits-heading,.bf-result-view-relvant-benefits .bf-result-view-share-results-heading,.bf-result-view-share-results .bf-result-view-unmet-heading,.bf-result-view-share-results .bf-result-view-relvant-benefits-heading,.bf-result-view-share-results .bf-result-view-share-results-heading{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.625rem;font-style:normal;font-weight:900;line-height:117.4%}#benefit-finder .bf-result-view-unmet p{padding-bottom:1rem}#benefit-finder .bf-result-view-unmet .bf-result-view-cta-wrapper{display:flex;justify-content:center}#benefit-finder .bf-result-view-share-results-trigger-group button{margin-bottom:.5rem}#benefit-finder .bf-result-view-share-results{text-align:left}@media (width >= 65.5625rem){#benefit-finder .bf-result-view-details{padding:1.5rem 5.4rem}}#benefit-finder .bf-verify-criteria-value{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;font-weight:400;line-height:132%;font-weight:700;padding-bottom:2.5rem}#benefit-finder .bf-verify-criteria-legend{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;font-weight:400;line-height:132%;padding-bottom:.5rem}#benefit-finder .bf-verify-criteria-section-heading{border-bottom:.125rem solid #0081a1;padding-bottom:.5rem}#benefit-finder .bf-verify-criteria-section:last-of-type{padding-bottom:4rem}#benefit-finder html{background-color:#162e51;height:100%;min-height:100vh}#benefit-finder .main-content{padding-bottom:0!important}#benefit-finder .usa-footer{padding-top:0!important} +@charset "UTF-8";#benefit-finder h2.bf-usa-alert__heading{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;font-weight:700;line-height:117.4%;padding-left:1rem}@media (width >= 65.5625rem){#benefit-finder h2.bf-usa-alert__heading{font-size:1.3125rem}}#benefit-finder .bf-usa-alert{padding:1.5625rem 0}#benefit-finder .bf-usa-alert p{padding-left:1rem}#benefit-finder .bf-usa-alert ul a{font-size:.9375rem}@media (width >= 65.5625rem){#benefit-finder .bf-usa-alert ul a{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1rem;font-style:normal;font-weight:400;line-height:132%}}@media (width >= 65.5625rem) and (width >= 65.5625rem){#benefit-finder .bf-usa-alert ul a{font-size:1.0625rem}}@media (width <= 65.5625rem){#benefit-finder .bf-usa-alert__body{padding-left:2rem}#benefit-finder .bf-usa-alert ul{padding-left:0}#benefit-finder .bf-usa-alert:before{width:.9375rem;height:4.25rem}}#benefit-finder .bf-usa-accordion .bf-usa-accordion__button{position:relative}#benefit-finder .bf-usa-accordion .bf-usa-accordion__button svg{position:absolute;top:0;bottom:0;right:1.25rem;margin:auto 0}#benefit-finder .bf-usa-accordion .bf-usa-accordion__button .bf-accordion-heading{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;font-weight:700;line-height:117.4%;letter-spacing:0}@media (width >= 65.5625rem){#benefit-finder .bf-usa-accordion .bf-usa-accordion__button .bf-accordion-heading{font-size:1.3125rem}}#benefit-finder .bf-usa-accordion .bf-usa-accordion__button .bf-accordion-sub-heading{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1rem;font-style:normal;font-weight:400;line-height:132%;letter-spacing:0}@media (width >= 65.5625rem){#benefit-finder .bf-usa-accordion .bf-usa-accordion__button .bf-accordion-sub-heading{font-size:1.0625rem}}#benefit-finder .bf-usa-accordion .bf-usa-accordion__content{padding:0 1rem 1.5rem}@media (width >= 65.5625rem){#benefit-finder .bf-usa-accordion .bf-usa-accordion__content{padding:0 1.125rem 2.5rem}}#benefit-finder .bf-usa-accordion-group .bf-usa-accordion{margin-bottom:.75rem}#benefit-finder .bf-usa-accordion-group .bf-usa-accordion .bf-usa-detail-title{margin-top:1.5rem;margin-bottom:.5rem}#benefit-finder .bf-usa-accordion-group .bf-usa-accordion .bf-usa-detail-summary p{margin-bottom:1.125rem}@media (width >= 65.5625rem){#benefit-finder .bf-usa-accordion-group .bf-usa-accordion .bf-usa-detail-summary p{margin-bottom:1.5rem}}#benefit-finder .bf-usa-accordion-group .bf-usa-accordion .bf-key-eligibility-criteria-heading{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;font-weight:700;line-height:117.4%}@media (width >= 65.5625rem){#benefit-finder .bf-usa-accordion-group .bf-usa-accordion .bf-key-eligibility-criteria-heading{font-size:1.3125rem}}#benefit-finder .bf-usa-accordion-group .bf-usa-accordion .bf-usa-accordion-group-cta-wrapper{display:flex;justify-content:center;margin-top:1.125rem}@media (width >= 65.5625rem){#benefit-finder .bf-usa-accordion-group .bf-usa-accordion .bf-usa-accordion-group-cta-wrapper{margin-top:2rem}}#benefit-finder .bf-usa-accordion-group .bf-usa-accordion .bf-usa-accordion-group-cta-wrapper .bf-usa-link{margin-bottom:1rem}#benefit-finder .bf-usa-accordion-group .bf-expand-all{margin-bottom:2rem}#benefit-finder .bf-usa-button{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1rem;font-style:normal;font-weight:400;line-height:132%;font-weight:700;padding:1rem 1.25rem;font-size:1.1rem}@media (width >= 65.5625rem){#benefit-finder .bf-usa-button{font-size:1.0625rem}}#benefit-finder .bf-usa-button--outline{background-color:transparent;box-shadow:inset 0 0 0 .125rem #000;color:#000}#benefit-finder .bf-usa-button--outline:focus{box-shadow:inset 0 0 0 .125rem #fff}#benefit-finder .bf-usa-button--outline:hover{background-color:#f0f0f0}#benefit-finder .bf-usa-card--relative-benefit{margin-bottom:1rem}#benefit-finder .bf-usa-card--relative-benefit .bf-usa-card__container{border-radius:0;border:.125rem solid #0081a1;color:#162e51;height:auto;margin:0}#benefit-finder .bf-usa-card--relative-benefit a{text-decoration:none}#benefit-finder .bf-usa-card--relative-benefit a:hover.bf-usa-card__container{background-color:#ccecf2}#benefit-finder .bf-usa-card--relative-benefit a:active.bf-usa-card__container{border:.125rem solid #0081a1}#benefit-finder .bf-usa-card--relative-benefit.bf-card-icon .bf-relative-icon svg{margin:auto 0;position:absolute;top:0;bottom:0;left:1rem;width:4.375rem;height:4.375rem;padding:.75rem}#benefit-finder .bf-usa-card--relative-benefit.bf-card-icon .bf-usa-card__container{padding:0 2.5rem 0 4rem -plus}#benefit-finder .bf-usa-card--relative-benefit .bf-usa-card__header{padding-bottom:0}#benefit-finder .bf-usa-card--relative-benefit h3.bf-usa-card__heading{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;font-weight:600;line-height:145.4%;font-weight:700;text-decoration:underline}@media (width >= 65.5625rem){#benefit-finder .bf-usa-card--relative-benefit h3.bf-usa-card__heading{font-size:1.3125rem}}#benefit-finder .bf-usa-card--relative-benefit .bf-usa-card__body{display:none}#benefit-finder .bf-usa-card--relative-benefit .bf-usa-card__cta,.bf-usa-card--relative-benefit .bf-usa-card__body{padding:1.5rem;padding-top:0;margin-top:0;margin-bottom:0}@media (width >= 65.5625rem){#benefit-finder .bf-usa-card--relative-benefit .bf-usa-card__body{display:block;padding-top:0;padding-bottom:1.5rem;margin-top:0;margin-bottom:0}#benefit-finder .bf-usa-card--relative-benefit .bf-usa-card__body p{max-width:90%}#benefit-finder .bf-usa-card--relative-benefit .bf-usa-card__cta{display:none}}#benefit-finder h1.bf-banner-heading{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2rem;font-style:normal;font-weight:900;line-height:117.4%;letter-spacing:-.32px}@media (width >= 65.5625rem){#benefit-finder h1.bf-banner-heading{font-size:2.4375rem;letter-spacing:-.39px}}#benefit-finder .bf-banner{position:relative;background-color:#162e51;padding:2.8125rem 0 3.75rem;margin:0 auto 1.5rem;color:#fff}#benefit-finder .bf-banner .bf-grid-container.grid-container{padding:0 1.25rem}#benefit-finder .bf-banner .bf-banner-heading{margin:0 0 1rem}@media (width >= 65.5625rem){#benefit-finder .bf-banner{margin-bottom:4rem;padding:4rem 2rem 2.375rem}}#benefit-finder .bf-banner-description p{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.0625rem;font-style:normal;font-weight:700;line-height:164%;margin-bottom:0}@media (width >= 65.5625rem){#benefit-finder .bf-banner-description p{font-size:1.3125rem;font-weight:400}}@media (width >= 65.5625rem){#benefit-finder .bf-banner{padding-bottom:4rem;margin-bottom:4rem}}#benefit-finder .bf-usa-form-group{width:100%}#benefit-finder .bf-usa-memorable-date{max-width:20rem;flex-wrap:wrap}#benefit-finder .bf-usa-input.usa-input--error{padding:.5rem;height:initial;border-color:#b50909}#benefit-finder .bf-usa-form-group--month{width:15.125rem;margin-top:.5rem}#benefit-finder .bf-usa-form-group--day{width:4rem;margin-top:.5rem}#benefit-finder .bf-usa-form-group--year{width:5.9375rem;margin-top:.5rem}@media (width >= 65.5625rem){#benefit-finder .bf-usa-memorable-date{max-width:100%}}#benefit-finder .bf-usa-fieldset{position:relative;padding:0;margin:0}#benefit-finder .bf-usa-fieldset .bf-hint{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1rem;font-style:normal;font-weight:400;line-height:132%}@media (width >= 65.5625rem){#benefit-finder .bf-usa-fieldset .bf-hint{font-size:1.0625rem}}#benefit-finder .bf-usa-fieldset .bf-error-detail{margin:0 0 .5rem;color:#b50909;font-weight:600}#benefit-finder .bf-usa-fieldset li.bf-error-detail{margin:0 0 .25rem}#benefit-finder .bf-fieldset-wrapper{padding:0 0 2rem}#benefit-finder .bf-fieldset-wrapper:has(fieldset.usa-input--error){border-left:.25rem solid #c61f0c;padding-left:1.25rem}#benefit-finder .bf-fieldset-wrapper:has(fieldset.usa-input--error)+.bf-fieldset-wrapper:has(fieldset:not(.usa-input--error)){padding-top:1.25rem}#benefit-finder .bf-fieldset-wrapper:has(fieldset.display-none){padding:0}#benefit-finder form.bf-usa-form{height:100%;min-height:100vh;margin:0;background-color:#162e51;padding-bottom:4rem}#benefit-finder form.bf-usa-form .bf-grid-container.grid-container{max-width:77.125rem;padding:0 1.25rem}@media (width >= 78.625rem){#benefit-finder form.bf-usa-form .bf-grid-container.grid-container{padding-left:0;padding-right:0}}#benefit-finder h1{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2rem;font-style:normal;font-weight:900;line-height:117.4%;letter-spacing:-.32px}@media (width >= 65.5625rem){#benefit-finder h1{font-size:2.4375rem;letter-spacing:-.39px}}#benefit-finder h2{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.3125rem;font-style:normal;font-weight:900;line-height:117.4%}@media (width >= 65.5625rem){#benefit-finder h2{font-size:2rem}}#benefit-finder h3{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.125rem;font-style:normal;font-weight:900;line-height:117.4%}@media (width >= 65.5625rem){#benefit-finder h3{font-size:1.625rem}}#benefit-finder h4{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;font-weight:700;line-height:117.4%}@media (width >= 65.5625rem){#benefit-finder h4{font-size:1.3125rem}}#benefit-finder h5{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.0625rem;font-style:normal;font-weight:700;line-height:117.4%}@media (width >= 65.5625rem){#benefit-finder h5{font-size:1.3125rem}}#benefit-finder h6{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1rem;font-weight:700;line-height:134.09%}@media (width >= 65.5625rem){#benefit-finder h6{font-size:1.25rem}}#benefit-finder .bf-usa-hint--required{color:#3d4551}#benefit-finder .bf-required{color:#3d4551;font-weight:400;margin-left:.5rem}#benefit-finder .bf-carrot-solid,.bf-carrot{position:absolute;top:0;bottom:0;right:3.125rem;margin:auto 0;transform:rotate(-90deg)}#benefit-finder .bf-carrot-solid:after,.bf-carrot:after{content:"▸"}#benefit-finder .bf-carrot{transform:rotate(0)}#benefit-finder .bf-key-eligibility-criteria-group .bf-key-eligibility-criteria-heading{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1rem;font-weight:700;line-height:134.09%;background-color:#f0f0f0;padding:1.6875rem 1.125rem;margin:0}@media (width >= 65.5625rem){#benefit-finder .bf-key-eligibility-criteria-group .bf-key-eligibility-criteria-heading{font-size:1.25rem}}@media (width >= 65.5625rem){#benefit-finder .bf-key-eligibility-criteria-group .bf-key-eligibility-criteria-heading{padding:1rem 2rem}}#benefit-finder .bf-key-eligibility-criteria-group .bf-key-eligibility-criteria-sub-heading{margin-bottom:0}#benefit-finder .bf-key-eligibility-criteria-group .bf-key-eligibility-criteria-list{padding:0;margin:0}#benefit-finder .bf-key-eligibility-criteria-group .bf-key-eligibility-criteria-list .bf-key-eligibility-criteria-list-item{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1rem;font-style:normal;font-weight:400;line-height:132%;line-height:26px;font-size:1.0625rem;margin:0;padding:1rem 1.4375rem;border:.125rem solid #f0f0f0;border-bottom:0;display:flex;flex-wrap:nowrap}@media (width >= 65.5625rem){#benefit-finder .bf-key-eligibility-criteria-group .bf-key-eligibility-criteria-list .bf-key-eligibility-criteria-list-item{font-size:1.0625rem}}@media (width >= 65.5625rem){#benefit-finder .bf-key-eligibility-criteria-group .bf-key-eligibility-criteria-list .bf-key-eligibility-criteria-list-item{padding:1rem 2rem}}#benefit-finder .bf-key-eligibility-criteria-group .bf-key-eligibility-criteria-list .bf-key-eligibility-criteria-list-item .bf-checkmark--green{height:100%;margin-right:2rem}#benefit-finder .bf-key-eligibility-criteria-group .bf-key-eligibility-criteria-list:last-child{border-bottom:.125rem solid #f0f0f0}#benefit-finder .bf-key-eligibility-criteria-group .bf-key-eligibility-criteria-list li.bf-usa-list{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-style:normal;font-weight:400;line-height:132%;line-height:26px;font-size:1.0625rem;line-height:normal;font-size:1rem}@media (width >= 65.5625rem){#benefit-finder .bf-key-eligibility-criteria-group .bf-key-eligibility-criteria-list li.bf-usa-list{font-size:1.0625rem}}#benefit-finder .bf-unmet-criteria-group{padding:1.125rem 0 0 .625rem}@media (width >= 65.5625rem){#benefit-finder .bf-unmet-criteria-group{padding-top:1.5rem;padding-left:1.5rem}}#benefit-finder .bf-unmet-criteria-group .bf-unmet-criteria-title{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;font-weight:700;line-height:117.4%;margin-bottom:.75rem}@media (width >= 65.5625rem){#benefit-finder .bf-unmet-criteria-group .bf-unmet-criteria-title{font-size:1.3125rem}}#benefit-finder .bf-unmet-criteria-group ul.bf-unmet-criteria-list{margin-bottom:1.125rem;padding-left:2rem}#benefit-finder .bf-unmet-criteria-group li.bf-unmet-criteria-item{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1rem;font-style:normal;font-weight:400;line-height:132%;line-height:26px;font-size:1.0625rem}@media (width >= 65.5625rem){#benefit-finder .bf-unmet-criteria-group li.bf-unmet-criteria-item{font-size:1.0625rem}}#benefit-finder .bf-legend{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;line-height:145.4%;font-weight:600;margin:0 0 .5rem;padding:0;max-width:fit-content}@media (width >= 65.5625rem){#benefit-finder .bf-legend{font-size:1.3125rem}}#benefit-finder .bf-usa-label{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1rem;font-style:normal;font-weight:400;line-height:132%;margin-top:0}@media (width >= 65.5625rem){#benefit-finder .bf-usa-label{font-size:1.0625rem}}#benefit-finder-modal .bf-modal-button{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1rem;font-style:normal;font-weight:400;line-height:132%;font-weight:700;background-color:transparent;border:0;position:absolute;top:1.5rem;right:1.5rem;cursor:pointer}@media (width >= 65.5625rem){#benefit-finder-modal .bf-modal-button{font-size:1.0625rem}}#benefit-finder-modal .bf-modal-heading{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1rem;font-weight:400;line-height:132%;font-weight:700;font-weight:600;color:#000;text-align:center;font-style:normal;margin:1.5rem 0}@media (width >= 65.5625rem){#benefit-finder-modal .bf-modal-heading{font-size:1.0625rem}}#benefit-finder-modal .bf-modal.bf-usa-button-group.width-full{margin:0 auto;text-align:center;flex-direction:row}#benefit-finder-modal .bf-modal.bf-usa-button-group.width-full .bf-usa-button-group__item{margin-left:0;margin-right:0}#benefit-finder-modal .bf-modal.bf-usa-button-group.width-full .bf-usa-button{width:100%;padding:1rem 1.25rem}@media (width >= 65.5625rem){#benefit-finder .bf-notices-list{margin-top:2.25rem;margin-bottom:4rem}}#benefit-finder .bf-notice{display:flex}@media (width >= 65.5625rem){#benefit-finder .bf-notice{padding-bottom:2rem}}#benefit-finder .bf-notice .bf-info{margin-top:.25rem;margin-right:.75rem}#benefit-finder .bf-line-separator-wrapper--vertical,#benefit-finder .bf-line-separator--vertical{display:none}@media (width >= 65.5625rem){#benefit-finder .bf-line-separator-wrapper--vertical{display:block;padding-top:8rem;padding-bottom:2rem;margin:0;margin-right:2rem}#benefit-finder .bf-line-separator--vertical{display:block;border-left:.125rem solid #f0f0f0;width:100%;height:100%}}#benefit-finder .bf-obfuscated-link{position:relative;text-decoration:none}#benefit-finder .bf-obfuscated-link:visited{text-decoration:none}#benefit-finder p,p.regular{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1rem;font-style:normal;font-weight:400;line-height:132%}@media (width >= 65.5625rem){#benefit-finder p,p.regular{font-size:1.0625rem}}#benefit-finder p.bold{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1rem;font-style:normal;font-weight:400;line-height:132%;font-weight:700}@media (width >= 65.5625rem){#benefit-finder p.bold{font-size:1.0625rem}}#benefit-finder .bf-usa-process-list{margin-left:4.375rem;margin-right:1.125rem}#benefit-finder .bf-usa-process-list__item{min-height:5rem}#benefit-finder .bf-usa-process-list__item .bf-usa-process-list__heading{font-size:1.3125rem}#benefit-finder .bf-usa-process-list__item:last-child{border-left:.5rem solid transparent}#benefit-finder h3.bf-usa-process-list__heading{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;font-weight:700;line-height:117.4%}@media (width >= 65.5625rem){#benefit-finder h3.bf-usa-process-list__heading{font-size:1.3125rem}}#benefit-finder .bf-usa-radio__label{margin-top:1rem}#benefit-finder .bf-usa-radio__input:checked+.bf-usa-radio__label:before{background-color:#1b1b1b;box-shadow:0 0 0 .125rem #1b1b1b,inset 0 0 0 .125rem #fff;outline-offset:.25rem}#benefit-finder .bf-usa-radio__input:checked.usa-input--error+.bf-usa-radio__label:before{background-color:#005ea2;box-shadow:0 0 0 .1875rem #b50909,inset 0 0 0 .125rem #fff;outline-offset:.25rem}@media (width >= 65.5625rem){#benefit-finder .bf-radio-group>.bf-usa-radio:first-of-type .bf-usa-radio__label{margin-top:1.5rem}}#benefit-finder .benefit-finder__main h3,.benefit-finder__main p{all:revert;margin:0}#benefit-finder .bf-usa-step-indicator__segment .bf-usa-step-indicator__segment-label{color:#757575}#benefit-finder .bf-usa-step-indicator__segment:after{background-color:#757575}#benefit-finder .bf-usa-step-indicator__segment--complete .bf-usa-step-indicator__segment-label{color:#162e51}#benefit-finder .bf-usa-step-indicator__segment--complete:after{background-color:#162e51}#benefit-finder .bf-usa-step-indicator__segment--current .bf-usa-step-indicator__segment-label{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1rem;font-style:normal;font-weight:400;line-height:132%;font-weight:700;color:#0081a1;font-style:italic}@media (width >= 65.5625rem){#benefit-finder .bf-usa-step-indicator__segment--current .bf-usa-step-indicator__segment-label{font-size:1.0625rem}}#benefit-finder .bf-usa-step-indicator__segment--current:after{background-color:#0081a1}#benefit-finder .bf-step-back-button{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1rem;font-style:normal;font-weight:400;line-height:132%;padding:0}@media (width >= 65.5625rem){#benefit-finder .bf-step-back-button{font-size:1.0625rem}}#benefit-finder .bf-usa-select.usa-input--error{padding:.5rem 2rem .5rem .5rem;height:auto;border-color:#b50909}#benefit-finder .bf-usa-select.usa-input--error:focus{outline-offset:.125rem}#benefit-finder .bf-usa-summary-box{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;font-weight:700;line-height:117.4%;margin:1rem .9375rem;border-color:#00bde3}@media (width >= 65.5625rem){#benefit-finder .bf-usa-summary-box{font-size:1.3125rem}}@media (width > 65.5625rem){#benefit-finder .bf-usa-summary-box{margin:1rem 0}}#benefit-finder .bf-usa-summary-box .bf-usa-list li{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1rem;font-style:normal;font-weight:400;line-height:132%;line-height:26px;font-size:1.0625rem}@media (width >= 65.5625rem){#benefit-finder .bf-usa-summary-box .bf-usa-list li{font-size:1.0625rem}}#benefit-finder .bf-usa-input.usa-input--error{outline-offset:.125rem}#benefit-finder .time-indicator{color:#3d4551;margin-bottom:2.25rem}#benefit-finder .bf-intro{padding-bottom:2.25rem}#benefit-finder .bf-intro>.bf-grid-container.grid-container{padding:0 2.25rem}#benefit-finder .bf-intro .bf-cta-wrapper{display:flex;justify-content:center;margin:1.25rem 0 1.5rem}@media (width >= 65.5625rem){#benefit-finder .bf-intro .bf-cta-wrapper{margin:2rem 2rem 4rem}}#benefit-finder .bf-intro .bf-cta-wrapper button{margin:0 auto}#benefit-finder .bf-intro .bf-intro-process-notices{display:flex;flex-direction:column;text-align:left}@media (width >= 65.5625rem){#benefit-finder .bf-intro .bf-intro-process-notices{margin-left:1rem}}#benefit-finder .bf-intro .bf-intro-process-notices .bf-intro-process-notices-heading{width:100;margin-bottom:1.875rem}#benefit-finder .bf-intro .bf-intro-process-notices p{margin-top:0}#benefit-finder .bf-intro .bf-intro-process-list{display:flex;flex-direction:column;justify-content:space-around}#benefit-finder .bf-intro .bf-intro-process-list .bf-intro-process-heading h2{text-align:left;margin-bottom:1.875rem}@media (width >= 65.5625rem){#benefit-finder .bf-intro .bf-intro-process-list .bf-intro-process-heading h2{margin-bottom:1rem}}#benefit-finder .bf-intro .bf-intro-process-list .bf-usa-process-list{margin-left:0;margin-right:0;padding-top:.5rem}#benefit-finder .bf-intro .bf-intro-process-list .bf-usa-process-list .bf-usa-process-list__heading{font-size:1rem}@media (width >= 65.5625rem){#benefit-finder .bf-intro .bf-intro-process-list .bf-usa-process-list .bf-usa-process-list__heading{font-size:1.3125rem}}@media (width >= 65.5625rem){#benefit-finder .bf-intro .bf-intro-process-list{min-width:50%}#benefit-finder .bf-intro .bf-intro-process-group{display:flex}}#benefit-finder .bf-verify-selections-view{background-color:#162e51;margin:0;padding-bottom:4rem}#benefit-finder .bf-verify-selections-view .bf-grid-container.grid-container{max-width:77.125rem;padding:0 1.25rem}@media (width >= 78.625rem){#benefit-finder .bf-verify-selections-view .bf-grid-container.grid-container{padding-left:0;padding-right:0}}#benefit-finder .bf-section-wrapper{background-color:#fff;border:.0625rem solid #fff;border-radius:.75rem}#benefit-finder .bf-section-wrapper .bf-usa-button{margin-bottom:1rem}#benefit-finder .bf-section-info{margin:3rem 1rem}#benefit-finder .bf-section-nav-btn-group{display:flex;flex-wrap:wrap;justify-content:center}#benefit-finder .bf-section-nav-btn-group .bf-usa-button{min-width:7.5rem}#benefit-finder .bf-section-nav-btn-group .bf-usa-modal-group{width:100%}#benefit-finder .bf-section-nav-btn-group button,.bf-section-nav-btn-group .bf-usa-modal-group a{margin:0}@media (width >= 29.9375rem){#benefit-finder .bf-section-nav-btn-group .bf-usa-button:first-of-type{margin-right:2.5rem}#benefit-finder .bf-section-nav-btn-group .bf-usa-modal-group{width:auto}#benefit-finder .bf-section-nav-btn-group button,.bf-section-nav-btn-group .bf-usa-modal-group a{margin-bottom:1rem}}#benefit-finder .bf-section-heading{background-color:#162e51;color:#fff;margin:0;padding:3rem 0 1.875rem}@media (width >= 65.5625rem){#benefit-finder .bf-section-heading{padding:4rem 1rem}}#benefit-finder #bf-section{padding-left:0;padding-right:0;margin-bottom:2.5rem}#benefit-finder #bf-section .bf-form-heading-group{padding-bottom:1.875rem}#benefit-finder #bf-section .bf-form-heading-group h2.bf-form-heading{margin-bottom:0;margin-top:1.875rem;padding-bottom:.5rem}#benefit-finder #bf-section .bf-form-heading-group .bf-section-sub-heading p{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.0625rem;font-style:normal;font-weight:600;line-height:145.4%;margin:0}@media (width >= 65.5625rem){#benefit-finder #bf-section .bf-form-heading-group .bf-section-sub-heading p{font-size:1.3125rem}}#benefit-finder .bf-radio-group{display:flex;flex-wrap:wrap;margin-left:1.25rem}#benefit-finder .bf-radio-group .bf-usa-radio__label{margin-right:.875rem}@media (width >= 65.5625rem){#benefit-finder .bf-section-info{margin:4rem}#benefit-finder .bf-radio-group{display:inline}}#benefit-finder .bf-eligible-view-heading{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.3125rem;font-style:normal;font-weight:900;line-height:117.4%;margin-left:.9375rem}@media (width >= 65.5625rem){#benefit-finder .bf-eligible-view-heading{font-size:2rem}}@media (width > 65.5625rem){#benefit-finder .bf-eligible-view-heading{margin-left:0}}#benefit-finder .bf-eligible-view-description{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1rem;font-weight:700;line-height:134.09%;margin-left:.9375rem}@media (width >= 65.5625rem){#benefit-finder .bf-eligible-view-description{font-size:1.25rem}}@media (width > 65.5625rem){#benefit-finder .bf-eligible-view-description{margin-left:0}}#benefit-finder .bf-not-eligible-view-heading{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.3125rem;font-style:normal;font-weight:900;line-height:117.4%}@media (width >= 65.5625rem){#benefit-finder .bf-not-eligible-view-heading{font-size:2rem}}#benefit-finder .bf-not-eligible-view-description{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1rem;font-weight:700;line-height:134.09%}@media (width >= 65.5625rem){#benefit-finder .bf-not-eligible-view-description{font-size:1.25rem}}#benefit-finder .bf-zero-benefits-view-heading{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.3125rem;font-style:normal;font-weight:900;line-height:117.4%}@media (width >= 65.5625rem){#benefit-finder .bf-zero-benefits-view-heading{font-size:2rem}}#benefit-finder h3.bf-zero-benefits-view-description{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1rem;font-style:normal;font-weight:400;line-height:132%}@media (width >= 65.5625rem){#benefit-finder h3.bf-zero-benefits-view-description{font-size:1.0625rem}}#benefit-finder .bf-back-to-form-cta{margin:1rem 0 2rem}#benefit-finder .bf-result-view .bf-grid-container.grid-container{padding:1.25rem}#benefit-finder .bf-result-view-benefits,.bf-result-view-unmet,.bf-result-view-relevant-benefits,.bf-result-view-share-results{padding:1rem 0;text-align:left}#benefit-finder .bf-result-view-benefits .bf-result-view-unmet-heading,.bf-result-view-benefits .bf-result-view-relevant-benefits-heading,.bf-result-view-benefits .bf-result-view-share-results-heading,.bf-result-view-unmet .bf-result-view-unmet-heading,.bf-result-view-unmet .bf-result-view-relevant-benefits-heading,.bf-result-view-unmet .bf-result-view-share-results-heading,.bf-result-view-relevant-benefits .bf-result-view-unmet-heading,.bf-result-view-relevant-benefits .bf-result-view-relevant-benefits-heading,.bf-result-view-relevant-benefits .bf-result-view-share-results-heading,.bf-result-view-share-results .bf-result-view-unmet-heading,.bf-result-view-share-results .bf-result-view-relevant-benefits-heading,.bf-result-view-share-results .bf-result-view-share-results-heading{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.125rem;font-style:normal;font-weight:900;line-height:117.4%;margin-left:.9375rem}@media (width >= 65.5625rem){#benefit-finder .bf-result-view-benefits .bf-result-view-unmet-heading,.bf-result-view-benefits .bf-result-view-relevant-benefits-heading,.bf-result-view-benefits .bf-result-view-share-results-heading,.bf-result-view-unmet .bf-result-view-unmet-heading,.bf-result-view-unmet .bf-result-view-relevant-benefits-heading,.bf-result-view-unmet .bf-result-view-share-results-heading,.bf-result-view-relevant-benefits .bf-result-view-unmet-heading,.bf-result-view-relevant-benefits .bf-result-view-relevant-benefits-heading,.bf-result-view-relevant-benefits .bf-result-view-share-results-heading,.bf-result-view-share-results .bf-result-view-unmet-heading,.bf-result-view-share-results .bf-result-view-relevant-benefits-heading,.bf-result-view-share-results .bf-result-view-share-results-heading{font-size:1.625rem}}@media (width > 65.5625rem){#benefit-finder .bf-result-view-benefits .bf-result-view-unmet-heading,.bf-result-view-benefits .bf-result-view-relevant-benefits-heading,.bf-result-view-benefits .bf-result-view-share-results-heading,.bf-result-view-unmet .bf-result-view-unmet-heading,.bf-result-view-unmet .bf-result-view-relevant-benefits-heading,.bf-result-view-unmet .bf-result-view-share-results-heading,.bf-result-view-relevant-benefits .bf-result-view-unmet-heading,.bf-result-view-relevant-benefits .bf-result-view-relevant-benefits-heading,.bf-result-view-relevant-benefits .bf-result-view-share-results-heading,.bf-result-view-share-results .bf-result-view-unmet-heading,.bf-result-view-share-results .bf-result-view-relevant-benefits-heading,.bf-result-view-share-results .bf-result-view-share-results-heading{margin-left:0}}#benefit-finder .bf-result-view-benefits>p,.bf-result-view-unmet>p,.bf-result-view-relevant-benefits>p,.bf-result-view-share-results>p{margin-left:.9375rem}@media (width > 65.5625rem){#benefit-finder .bf-result-view-benefits>p,.bf-result-view-unmet>p,.bf-result-view-relevant-benefits>p,.bf-result-view-share-results>p{margin-left:0}}#benefit-finder .bf-result-view-benefits .bf-expand-all,.bf-result-view-unmet .bf-expand-all,.bf-result-view-relevant-benefits .bf-expand-all,.bf-result-view-share-results .bf-expand-all{display:none}#benefit-finder .bf-result-view-unmet p{padding-bottom:1rem}#benefit-finder .bf-result-view-unmet .bf-result-view-cta-wrapper{display:flex;justify-content:center}@media (width > 65.5625rem){#benefit-finder .bf-result-view-unmet{margin-left:0}}#benefit-finder .bf-result-view-share-results-trigger-group button{margin-bottom:.5rem}#benefit-finder .bf-result-view-share-results{text-align:left}@media (width >= 65.5625rem){#benefit-finder .bf-result-view-details{padding:1.5rem 5.4rem}#benefit-finder .bf-result-view-benefits .bf-expand-all{display:block}}#benefit-finder .bf-verify-criteria-value{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1rem;font-style:normal;font-weight:400;line-height:132%;font-weight:700;padding-bottom:1.875rem}@media (width >= 65.5625rem){#benefit-finder .bf-verify-criteria-value{font-size:1.0625rem}}@media (width >= 65.5625rem){#benefit-finder .bf-verify-criteria-value{padding-bottom:2.5rem}}#benefit-finder .bf-verify-criteria-legend{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1rem;font-style:normal;font-weight:400;line-height:132%;padding-bottom:.5rem}@media (width >= 65.5625rem){#benefit-finder .bf-verify-criteria-legend{font-size:1.0625rem}}#benefit-finder .bf-verify-criteria-section-heading{border-bottom:.125rem solid #0081a1;padding-bottom:.5rem}#benefit-finder .bf-verify-criteria-section:last-of-type{padding-bottom:1.875rem}#benefit-finder html{background-color:#162e51;height:100%;min-height:100vh} diff --git a/web/modules/custom/usagov_benefit_finder/modules/usagov_benefit_finder_app/usagov_benefit_finder_page/css/usagov-benefit-finder.css b/web/modules/custom/usagov_benefit_finder/modules/usagov_benefit_finder_app/usagov_benefit_finder_page/css/usagov-benefit-finder.css new file mode 100644 index 0000000000..ed6103278c --- /dev/null +++ b/web/modules/custom/usagov_benefit_finder/modules/usagov_benefit_finder_app/usagov_benefit_finder_page/css/usagov-benefit-finder.css @@ -0,0 +1,16 @@ +/* usa-gov overrides */ +#main-content { + padding-bottom: 0; +} + +footer.usa-footer--big { + padding-top: 0; +} + +.bf-qual-survey { + padding-bottom: 4rem; +} + +.bf-qual-survey .additional_body_info { + padding-top: 0; +} diff --git a/web/modules/custom/usagov_benefit_finder/modules/usagov_benefit_finder_app/usagov_benefit_finder_page/js/benefit-finder.min.js b/web/modules/custom/usagov_benefit_finder/modules/usagov_benefit_finder_app/usagov_benefit_finder_page/js/benefit-finder.min.js index 6bf87e4b25..09d6a3fe5a 100644 --- a/web/modules/custom/usagov_benefit_finder/modules/usagov_benefit_finder_app/usagov_benefit_finder_page/js/benefit-finder.min.js +++ b/web/modules/custom/usagov_benefit_finder/modules/usagov_benefit_finder_app/usagov_benefit_finder_page/js/benefit-finder.min.js @@ -1,4 +1,4 @@ -function Gp(e,t){for(var n=0;nr[l]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))r(l);new MutationObserver(l=>{for(const i of l)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(l){const i={};return l.integrity&&(i.integrity=l.integrity),l.referrerPolicy&&(i.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?i.credentials="include":l.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(l){if(l.ep)return;l.ep=!0;const i=n(l);fetch(l.href,i)}})();function yi(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Yp(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var l=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,l.get?l:{enumerable:!0,get:function(){return e[r]}})}),n}var oc={exports:{}},wi={},sc={exports:{}},U={};/** +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))r(l);new MutationObserver(l=>{for(const i of l)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(l){const i={};return l.integrity&&(i.integrity=l.integrity),l.referrerPolicy&&(i.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?i.credentials="include":l.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(l){if(l.ep)return;l.ep=!0;const i=n(l);fetch(l.href,i)}})();function Ni(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function fh(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var l=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,l.get?l:{enumerable:!0,get:function(){return e[r]}})}),n}var xc={exports:{}},ji={},Cc={exports:{}},U={};/** * @license React * react.production.min.js * @@ -6,7 +6,7 @@ function Gp(e,t){for(var n=0;n>>1,z=_[M];if(0>>1;Ml(Jt,L))otl($,Jt)?(_[M]=$,_[ot]=L,M=ot):(_[M]=Jt,_[_e]=L,M=_e);else if(otl($,L))_[M]=$,_[ot]=L,M=ot;else break e}}return R}function l(_,R){var L=_.sortIndex-R.sortIndex;return L!==0?L:_.id-R.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var a=[],c=[],p=1,d=null,m=3,y=!1,x=!1,g=!1,S=typeof setTimeout=="function"?setTimeout:null,f=typeof clearTimeout=="function"?clearTimeout:null,h=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function v(_){for(var R=n(c);R!==null;){if(R.callback===null)r(c);else if(R.startTime<=_)r(c),R.sortIndex=R.expirationTime,t(a,R);else break;R=n(c)}}function w(_){if(g=!1,v(_),!x)if(n(a)!==null)x=!0,W(j);else{var R=n(c);R!==null&&k(w,R.startTime-_)}}function j(_,R){x=!1,g&&(g=!1,f(T),T=-1),y=!0;var L=m;try{for(v(R),d=n(a);d!==null&&(!(d.expirationTime>R)||_&&!q());){var M=d.callback;if(typeof M=="function"){d.callback=null,m=d.priorityLevel;var z=M(d.expirationTime<=R);R=e.unstable_now(),typeof z=="function"?d.callback=z:d===n(a)&&r(a),v(R)}else r(a);d=n(a)}if(d!==null)var fe=!0;else{var _e=n(c);_e!==null&&k(w,_e.startTime-R),fe=!1}return fe}finally{d=null,m=L,y=!1}}var N=!1,P=null,T=-1,B=5,D=-1;function q(){return!(e.unstable_now()-D_||125<_?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):B=0<_?Math.floor(1e3/_):5},e.unstable_getCurrentPriorityLevel=function(){return m},e.unstable_getFirstCallbackNode=function(){return n(a)},e.unstable_next=function(_){switch(m){case 1:case 2:case 3:var R=3;break;default:R=m}var L=m;m=R;try{return _()}finally{m=L}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(_,R){switch(_){case 1:case 2:case 3:case 4:case 5:break;default:_=3}var L=m;m=_;try{return R()}finally{m=L}},e.unstable_scheduleCallback=function(_,R,L){var M=e.unstable_now();switch(typeof L=="object"&&L!==null?(L=L.delay,L=typeof L=="number"&&0M?(_.sortIndex=L,t(c,_),n(a)===null&&_===n(c)&&(g?(f(T),T=-1):g=!0,k(w,L-M))):(_.sortIndex=z,t(a,_),x||y||(x=!0,W(j))),_},e.unstable_shouldYield=q,e.unstable_wrapCallback=function(_){var R=m;return function(){var L=m;m=R;try{return _.apply(this,arguments)}finally{m=L}}}})(xc);wc.exports=xc;var x1=wc.exports;/** + */(function(e){function t(b,O){var L=b.length;b.push(O);e:for(;0>>1,B=b[D];if(0>>1;Dl(ln,L))atl($,ln)?(b[D]=$,b[at]=L,D=at):(b[D]=ln,b[_e]=L,D=_e);else if(atl($,L))b[D]=$,b[at]=L,D=at;else break e}}return O}function l(b,O){var L=b.sortIndex-O.sortIndex;return L!==0?L:b.id-O.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var o=Date,a=o.now();e.unstable_now=function(){return o.now()-a}}var s=[],u=[],d=1,p=null,m=3,g=!1,x=!1,y=!1,S=typeof setTimeout=="function"?setTimeout:null,h=typeof clearTimeout=="function"?clearTimeout:null,f=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function v(b){for(var O=n(u);O!==null;){if(O.callback===null)r(u);else if(O.startTime<=b)r(u),O.sortIndex=O.expirationTime,t(s,O);else break;O=n(u)}}function k(b){if(y=!1,v(b),!x)if(n(s)!==null)x=!0,V(N);else{var O=n(u);O!==null&&E(k,O.startTime-b)}}function N(b,O){x=!1,y&&(y=!1,h(T),T=-1),g=!0;var L=m;try{for(v(O),p=n(s);p!==null&&(!(p.expirationTime>O)||b&&!Y());){var D=p.callback;if(typeof D=="function"){p.callback=null,m=p.priorityLevel;var B=D(p.expirationTime<=O);O=e.unstable_now(),typeof B=="function"?p.callback=B:p===n(s)&&r(s),v(O)}else r(s);p=n(s)}if(p!==null)var X=!0;else{var _e=n(u);_e!==null&&E(k,_e.startTime-O),X=!1}return X}finally{p=null,m=L,g=!1}}var _=!1,P=null,T=-1,I=5,M=-1;function Y(){return!(e.unstable_now()-Mb||125D?(b.sortIndex=L,t(u,b),n(s)===null&&b===n(u)&&(y?(h(T),T=-1):y=!0,E(k,L-D))):(b.sortIndex=B,t(s,b),x||g||(x=!0,V(N))),b},e.unstable_shouldYield=Y,e.unstable_wrapCallback=function(b){var O=m;return function(){var L=m;m=O;try{return b.apply(this,arguments)}finally{m=L}}}})(Oc);Rc.exports=Oc;var Mh=Rc.exports;/** * @license React * react-dom.production.min.js * @@ -30,15 +30,15 @@ function Gp(e,t){for(var n=0;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),go=Object.prototype.hasOwnProperty,S1=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,_a={},ba={};function k1(e){return go.call(ba,e)?!0:go.call(_a,e)?!1:S1.test(e)?ba[e]=!0:(_a[e]=!0,!1)}function E1(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function _1(e,t,n,r){if(t===null||typeof t>"u"||E1(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Ee(e,t,n,r,l,i,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=o}var me={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){me[e]=new Ee(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];me[t]=new Ee(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){me[e]=new Ee(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){me[e]=new Ee(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){me[e]=new Ee(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){me[e]=new Ee(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){me[e]=new Ee(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){me[e]=new Ee(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){me[e]=new Ee(e,5,!1,e.toLowerCase(),null,!1,!1)});var Cs=/[\-:]([a-z])/g;function Ss(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Cs,Ss);me[t]=new Ee(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Cs,Ss);me[t]=new Ee(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Cs,Ss);me[t]=new Ee(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){me[e]=new Ee(e,1,!1,e.toLowerCase(),null,!1,!1)});me.xlinkHref=new Ee("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){me[e]=new Ee(e,1,!1,e.toLowerCase(),null,!0,!0)});function ks(e,t,n,r){var l=me.hasOwnProperty(t)?me[t]:null;(l!==null?l.type!==0:r||!(2"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),_o=Object.prototype.hasOwnProperty,Ih=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,zs={},Bs={};function Fh(e){return _o.call(Bs,e)?!0:_o.call(zs,e)?!1:Ih.test(e)?Bs[e]=!0:(zs[e]=!0,!1)}function Ah(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function zh(e,t,n,r){if(t===null||typeof t>"u"||Ah(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function be(e,t,n,r,l,i,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=o}var ve={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){ve[e]=new be(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];ve[t]=new be(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){ve[e]=new be(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){ve[e]=new be(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){ve[e]=new be(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){ve[e]=new be(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){ve[e]=new be(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){ve[e]=new be(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){ve[e]=new be(e,5,!1,e.toLowerCase(),null,!1,!1)});var Pa=/[\-:]([a-z])/g;function Ta(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Pa,Ta);ve[t]=new be(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Pa,Ta);ve[t]=new be(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Pa,Ta);ve[t]=new be(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){ve[e]=new be(e,1,!1,e.toLowerCase(),null,!1,!1)});ve.xlinkHref=new be("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){ve[e]=new be(e,1,!1,e.toLowerCase(),null,!0,!0)});function Ra(e,t,n,r){var l=ve.hasOwnProperty(t)?ve[t]:null;(l!==null?l.type!==0:r||!(2s||l[o]!==i[s]){var a=` -`+l[o].replace(" at new "," at ");return e.displayName&&a.includes("")&&(a=a.replace("",e.displayName)),a}while(1<=o&&0<=s);break}}}finally{Hi=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?hr(e):""}function b1(e){switch(e.tag){case 5:return hr(e.type);case 16:return hr("Lazy");case 13:return hr("Suspense");case 19:return hr("SuspenseList");case 0:case 2:case 15:return e=Wi(e.type,!1),e;case 11:return e=Wi(e.type.render,!1),e;case 1:return e=Wi(e.type,!0),e;default:return""}}function Co(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case _n:return"Fragment";case En:return"Portal";case yo:return"Profiler";case Es:return"StrictMode";case wo:return"Suspense";case xo:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case kc:return(e.displayName||"Context")+".Consumer";case Sc:return(e._context.displayName||"Context")+".Provider";case _s:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case bs:return t=e.displayName||null,t!==null?t:Co(e.type)||"Memo";case Ot:t=e._payload,e=e._init;try{return Co(e(t))}catch{}}return null}function j1(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Co(t);case 8:return t===Es?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Qt(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function _c(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function N1(e){var t=_c(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(o){r=""+o,i.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function dl(e){e._valueTracker||(e._valueTracker=N1(e))}function bc(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=_c(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Bl(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function So(e,t){var n=t.checked;return te({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Na(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Qt(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function jc(e,t){t=t.checked,t!=null&&ks(e,"checked",t,!1)}function ko(e,t){jc(e,t);var n=Qt(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Eo(e,t.type,n):t.hasOwnProperty("defaultValue")&&Eo(e,t.type,Qt(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function La(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Eo(e,t,n){(t!=="number"||Bl(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var mr=Array.isArray;function In(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=fl.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Rr(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var wr={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},L1=["Webkit","ms","Moz","O"];Object.keys(wr).forEach(function(e){L1.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),wr[t]=wr[e]})});function Tc(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||wr.hasOwnProperty(e)&&wr[e]?(""+t).trim():t+"px"}function Oc(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=Tc(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var P1=te({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function jo(e,t){if(t){if(P1[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(b(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(b(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(b(61))}if(t.style!=null&&typeof t.style!="object")throw Error(b(62))}}function No(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Lo=null;function js(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Po=null,Fn=null,An=null;function Oa(e){if(e=rl(e)){if(typeof Po!="function")throw Error(b(280));var t=e.stateNode;t&&(t=Ei(t),Po(e.stateNode,e.type,t))}}function Rc(e){Fn?An?An.push(e):An=[e]:Fn=e}function Mc(){if(Fn){var e=Fn,t=An;if(An=Fn=null,Oa(e),t)for(e=0;e>>=0,e===0?32:31-(z1(e)/U1|0)|0}var pl=64,hl=4194304;function vr(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Hl(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,i=e.pingedLanes,o=n&268435455;if(o!==0){var s=o&~l;s!==0?r=vr(s):(i&=o,i!==0&&(r=vr(i)))}else o=n&~l,o!==0?r=vr(o):i!==0&&(r=vr(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&l)&&(l=r&-r,i=t&-t,l>=i||l===16&&(i&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function tl(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-et(t),e[t]=n}function K1(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Cr),za=" ",Ua=!1;function ed(e,t){switch(e){case"keyup":return xh.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function td(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var bn=!1;function Sh(e,t){switch(e){case"compositionend":return td(t);case"keypress":return t.which!==32?null:(Ua=!0,za);case"textInput":return e=t.data,e===za&&Ua?null:e;default:return null}}function kh(e,t){if(bn)return e==="compositionend"||!$s&&ed(e,t)?(e=Xc(),Pl=Os=Dt=null,bn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Ka(n)}}function id(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?id(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function od(){for(var e=window,t=Bl();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Bl(e.document)}return t}function Ds(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Oh(e){var t=od(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&id(n.ownerDocument.documentElement,n)){if(r!==null&&Ds(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=n.textContent.length,i=Math.min(r.start,l);r=r.end===void 0?i:Math.min(r.end,l),!e.extend&&i>r&&(l=r,r=i,i=l),l=qa(n,i);var o=qa(n,r);l&&o&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,jn=null,Do=null,kr=null,Io=!1;function Qa(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Io||jn==null||jn!==Bl(r)||(r=jn,"selectionStart"in r&&Ds(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),kr&&Ar(kr,r)||(kr=r,r=ql(Do,"onSelect"),0Pn||(e.current=Vo[Pn],Vo[Pn]=null,Pn--)}function Q(e,t){Pn++,Vo[Pn]=e.current,e.current=t}var Zt={},xe=Yt(Zt),Ne=Yt(!1),pn=Zt;function Hn(e,t){var n=e.type.contextTypes;if(!n)return Zt;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},i;for(i in n)l[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function Le(e){return e=e.childContextTypes,e!=null}function Zl(){G(Ne),G(xe)}function tu(e,t,n){if(xe.current!==Zt)throw Error(b(168));Q(xe,t),Q(Ne,n)}function md(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(b(108,j1(e)||"Unknown",l));return te({},n,r)}function Gl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Zt,pn=xe.current,Q(xe,e),Q(Ne,Ne.current),!0}function nu(e,t,n){var r=e.stateNode;if(!r)throw Error(b(169));n?(e=md(e,t,pn),r.__reactInternalMemoizedMergedChildContext=e,G(Ne),G(xe),Q(xe,e)):G(Ne),Q(Ne,n)}var yt=null,_i=!1,io=!1;function vd(e){yt===null?yt=[e]:yt.push(e)}function Hh(e){_i=!0,vd(e)}function Xt(){if(!io&&yt!==null){io=!0;var e=0,t=K;try{var n=yt;for(K=1;e>=o,l-=o,wt=1<<32-et(t)+l|n<T?(B=P,P=null):B=P.sibling;var D=m(f,P,v[T],w);if(D===null){P===null&&(P=B);break}e&&P&&D.alternate===null&&t(f,P),h=i(D,h,T),N===null?j=D:N.sibling=D,N=D,P=B}if(T===v.length)return n(f,P),Y&&tn(f,T),j;if(P===null){for(;TT?(B=P,P=null):B=P.sibling;var q=m(f,P,D.value,w);if(q===null){P===null&&(P=B);break}e&&P&&q.alternate===null&&t(f,P),h=i(q,h,T),N===null?j=q:N.sibling=q,N=q,P=B}if(D.done)return n(f,P),Y&&tn(f,T),j;if(P===null){for(;!D.done;T++,D=v.next())D=d(f,D.value,w),D!==null&&(h=i(D,h,T),N===null?j=D:N.sibling=D,N=D);return Y&&tn(f,T),j}for(P=r(f,P);!D.done;T++,D=v.next())D=y(P,f,T,D.value,w),D!==null&&(e&&D.alternate!==null&&P.delete(D.key===null?T:D.key),h=i(D,h,T),N===null?j=D:N.sibling=D,N=D);return e&&P.forEach(function(de){return t(f,de)}),Y&&tn(f,T),j}function S(f,h,v,w){if(typeof v=="object"&&v!==null&&v.type===_n&&v.key===null&&(v=v.props.children),typeof v=="object"&&v!==null){switch(v.$$typeof){case cl:e:{for(var j=v.key,N=h;N!==null;){if(N.key===j){if(j=v.type,j===_n){if(N.tag===7){n(f,N.sibling),h=l(N,v.props.children),h.return=f,f=h;break e}}else if(N.elementType===j||typeof j=="object"&&j!==null&&j.$$typeof===Ot&&iu(j)===N.type){n(f,N.sibling),h=l(N,v.props),h.ref=dr(f,N,v),h.return=f,f=h;break e}n(f,N);break}else t(f,N);N=N.sibling}v.type===_n?(h=un(v.props.children,f.mode,w,v.key),h.return=f,f=h):(w=Fl(v.type,v.key,v.props,null,f.mode,w),w.ref=dr(f,h,v),w.return=f,f=w)}return o(f);case En:e:{for(N=v.key;h!==null;){if(h.key===N)if(h.tag===4&&h.stateNode.containerInfo===v.containerInfo&&h.stateNode.implementation===v.implementation){n(f,h.sibling),h=l(h,v.children||[]),h.return=f,f=h;break e}else{n(f,h);break}else t(f,h);h=h.sibling}h=ho(v,f.mode,w),h.return=f,f=h}return o(f);case Ot:return N=v._init,S(f,h,N(v._payload),w)}if(mr(v))return x(f,h,v,w);if(or(v))return g(f,h,v,w);Cl(f,v)}return typeof v=="string"&&v!==""||typeof v=="number"?(v=""+v,h!==null&&h.tag===6?(n(f,h.sibling),h=l(h,v),h.return=f,f=h):(n(f,h),h=po(v,f.mode,w),h.return=f,f=h),o(f)):n(f,h)}return S}var Kn=xd(!0),Cd=xd(!1),Jl=Yt(null),ei=null,Rn=null,Bs=null;function zs(){Bs=Rn=ei=null}function Us(e){var t=Jl.current;G(Jl),e._currentValue=t}function Ko(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function zn(e,t){ei=e,Bs=Rn=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(je=!0),e.firstContext=null)}function He(e){var t=e._currentValue;if(Bs!==e)if(e={context:e,memoizedValue:t,next:null},Rn===null){if(ei===null)throw Error(b(308));Rn=e,ei.dependencies={lanes:0,firstContext:e}}else Rn=Rn.next=e;return t}var on=null;function Vs(e){on===null?on=[e]:on.push(e)}function Sd(e,t,n,r){var l=t.interleaved;return l===null?(n.next=n,Vs(t)):(n.next=l.next,l.next=n),t.interleaved=n,Et(e,r)}function Et(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var Rt=!1;function Hs(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function kd(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Ct(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Ht(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,V&2){var l=r.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),r.pending=t,Et(e,n)}return l=r.interleaved,l===null?(t.next=t,Vs(r)):(t.next=l.next,l.next=t),r.interleaved=t,Et(e,n)}function Ol(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ls(e,n)}}function ou(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var l=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?l=i=o:i=i.next=o,n=n.next}while(n!==null);i===null?l=i=t:i=i.next=t}else l=i=t;n={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:i,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function ti(e,t,n,r){var l=e.updateQueue;Rt=!1;var i=l.firstBaseUpdate,o=l.lastBaseUpdate,s=l.shared.pending;if(s!==null){l.shared.pending=null;var a=s,c=a.next;a.next=null,o===null?i=c:o.next=c,o=a;var p=e.alternate;p!==null&&(p=p.updateQueue,s=p.lastBaseUpdate,s!==o&&(s===null?p.firstBaseUpdate=c:s.next=c,p.lastBaseUpdate=a))}if(i!==null){var d=l.baseState;o=0,p=c=a=null,s=i;do{var m=s.lane,y=s.eventTime;if((r&m)===m){p!==null&&(p=p.next={eventTime:y,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var x=e,g=s;switch(m=t,y=n,g.tag){case 1:if(x=g.payload,typeof x=="function"){d=x.call(y,d,m);break e}d=x;break e;case 3:x.flags=x.flags&-65537|128;case 0:if(x=g.payload,m=typeof x=="function"?x.call(y,d,m):x,m==null)break e;d=te({},d,m);break e;case 2:Rt=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,m=l.effects,m===null?l.effects=[s]:m.push(s))}else y={eventTime:y,lane:m,tag:s.tag,payload:s.payload,callback:s.callback,next:null},p===null?(c=p=y,a=d):p=p.next=y,o|=m;if(s=s.next,s===null){if(s=l.shared.pending,s===null)break;m=s,s=m.next,m.next=null,l.lastBaseUpdate=m,l.shared.pending=null}}while(!0);if(p===null&&(a=d),l.baseState=a,l.firstBaseUpdate=c,l.lastBaseUpdate=p,t=l.shared.interleaved,t!==null){l=t;do o|=l.lane,l=l.next;while(l!==t)}else i===null&&(l.shared.lanes=0);vn|=o,e.lanes=o,e.memoizedState=d}}function su(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=so.transition;so.transition={};try{e(!1),t()}finally{K=n,so.transition=r}}function Bd(){return We().memoizedState}function Qh(e,t,n){var r=Kt(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},zd(e))Ud(t,n);else if(n=Sd(e,t,n,r),n!==null){var l=Se();tt(n,e,r,l),Vd(n,t,r)}}function Zh(e,t,n){var r=Kt(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(zd(e))Ud(t,l);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var o=t.lastRenderedState,s=i(o,n);if(l.hasEagerState=!0,l.eagerState=s,rt(s,o)){var a=t.interleaved;a===null?(l.next=l,Vs(t)):(l.next=a.next,a.next=l),t.interleaved=l;return}}catch{}finally{}n=Sd(e,t,l,r),n!==null&&(l=Se(),tt(n,e,r,l),Vd(n,t,r))}}function zd(e){var t=e.alternate;return e===J||t!==null&&t===J}function Ud(e,t){Er=ri=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Vd(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ls(e,n)}}var li={readContext:He,useCallback:ve,useContext:ve,useEffect:ve,useImperativeHandle:ve,useInsertionEffect:ve,useLayoutEffect:ve,useMemo:ve,useReducer:ve,useRef:ve,useState:ve,useDebugValue:ve,useDeferredValue:ve,useTransition:ve,useMutableSource:ve,useSyncExternalStore:ve,useId:ve,unstable_isNewReconciler:!1},Gh={readContext:He,useCallback:function(e,t){return at().memoizedState=[e,t===void 0?null:t],e},useContext:He,useEffect:uu,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Ml(4194308,4,$d.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ml(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ml(4,2,e,t)},useMemo:function(e,t){var n=at();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=at();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Qh.bind(null,J,e),[r.memoizedState,e]},useRef:function(e){var t=at();return e={current:e},t.memoizedState=e},useState:au,useDebugValue:Xs,useDeferredValue:function(e){return at().memoizedState=e},useTransition:function(){var e=au(!1),t=e[0];return e=qh.bind(null,e[1]),at().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=J,l=at();if(Y){if(n===void 0)throw Error(b(407));n=n()}else{if(n=t(),ce===null)throw Error(b(349));mn&30||jd(r,t,n)}l.memoizedState=n;var i={value:n,getSnapshot:t};return l.queue=i,uu(Ld.bind(null,r,i,e),[e]),r.flags|=2048,qr(9,Nd.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=at(),t=ce.identifierPrefix;if(Y){var n=xt,r=wt;n=(r&~(1<<32-et(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Wr++,0a||l[o]!==i[a]){var s=` +`+l[o].replace(" at new "," at ");return e.displayName&&s.includes("")&&(s=s.replace("",e.displayName)),s}while(1<=o&&0<=a);break}}}finally{Xi=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?wr(e):""}function Bh(e){switch(e.tag){case 5:return wr(e.type);case 16:return wr("Lazy");case 13:return wr("Suspense");case 19:return wr("SuspenseList");case 0:case 2:case 15:return e=Ji(e.type,!1),e;case 11:return e=Ji(e.type.render,!1),e;case 1:return e=Ji(e.type,!0),e;default:return""}}function Po(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Ln:return"Fragment";case jn:return"Portal";case No:return"Profiler";case Oa:return"StrictMode";case jo:return"Suspense";case Lo:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Dc:return(e.displayName||"Context")+".Consumer";case Mc:return(e._context.displayName||"Context")+".Provider";case $a:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Ma:return t=e.displayName||null,t!==null?t:Po(e.type)||"Memo";case Dt:t=e._payload,e=e._init;try{return Po(e(t))}catch{}}return null}function Uh(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Po(t);case 8:return t===Oa?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Gt(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Fc(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Hh(e){var t=Fc(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(o){r=""+o,i.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function gl(e){e._valueTracker||(e._valueTracker=Hh(e))}function Ac(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Fc(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Zl(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function To(e,t){var n=t.checked;return ne({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Hs(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Gt(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function zc(e,t){t=t.checked,t!=null&&Ra(e,"checked",t,!1)}function Ro(e,t){zc(e,t);var n=Gt(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Oo(e,t.type,n):t.hasOwnProperty("defaultValue")&&Oo(e,t.type,Gt(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Vs(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Oo(e,t,n){(t!=="number"||Zl(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var xr=Array.isArray;function Bn(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=yl.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Fr(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Er={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Vh=["Webkit","ms","Moz","O"];Object.keys(Er).forEach(function(e){Vh.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Er[t]=Er[e]})});function Vc(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Er.hasOwnProperty(e)&&Er[e]?(""+t).trim():t+"px"}function Wc(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=Vc(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var Wh=ne({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Do(e,t){if(t){if(Wh[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(j(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(j(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(j(61))}if(t.style!=null&&typeof t.style!="object")throw Error(j(62))}}function Io(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Fo=null;function Da(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Ao=null,Un=null,Hn=null;function qs(e){if(e=al(e)){if(typeof Ao!="function")throw Error(j(280));var t=e.stateNode;t&&(t=Oi(t),Ao(e.stateNode,e.type,t))}}function Kc(e){Un?Hn?Hn.push(e):Hn=[e]:Un=e}function qc(){if(Un){var e=Un,t=Hn;if(Hn=Un=null,qs(e),t)for(e=0;e>>=0,e===0?32:31-(n1(e)/r1|0)|0}var wl=64,xl=4194304;function Cr(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Jl(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,i=e.pingedLanes,o=n&268435455;if(o!==0){var a=o&~l;a!==0?r=Cr(a):(i&=o,i!==0&&(r=Cr(i)))}else o=n&~l,o!==0?r=Cr(o):i!==0&&(r=Cr(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&l)&&(l=r&-r,i=t&-t,l>=i||l===16&&(i&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function il(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-et(t),e[t]=n}function a1(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=_r),nu=" ",ru=!1;function pd(e,t){switch(e){case"keyup":return M1.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function hd(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Pn=!1;function I1(e,t){switch(e){case"compositionend":return hd(t);case"keypress":return t.which!==32?null:(ru=!0,nu);case"textInput":return e=t.data,e===nu&&ru?null:e;default:return null}}function F1(e,t){if(Pn)return e==="compositionend"||!Va&&pd(e,t)?(e=dd(),Il=Ba=zt=null,Pn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=au(n)}}function yd(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?yd(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function wd(){for(var e=window,t=Zl();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Zl(e.document)}return t}function Wa(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function q1(e){var t=wd(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&yd(n.ownerDocument.documentElement,n)){if(r!==null&&Wa(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=n.textContent.length,i=Math.min(r.start,l);r=r.end===void 0?i:Math.min(r.end,l),!e.extend&&i>r&&(l=r,r=i,i=l),l=su(n,i);var o=su(n,r);l&&o&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,Tn=null,Wo=null,jr=null,Ko=!1;function uu(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ko||Tn==null||Tn!==Zl(r)||(r=Tn,"selectionStart"in r&&Wa(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),jr&&Vr(jr,r)||(jr=r,r=ni(Wo,"onSelect"),0$n||(e.current=Xo[$n],Xo[$n]=null,$n--)}function q(e,t){$n++,Xo[$n]=e.current,e.current=t}var Xt={},Ce=nn(Xt),Le=nn(!1),vn=Xt;function Qn(e,t){var n=e.type.contextTypes;if(!n)return Xt;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},i;for(i in n)l[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function Pe(e){return e=e.childContextTypes,e!=null}function li(){Z(Le),Z(Ce)}function vu(e,t,n){if(Ce.current!==Xt)throw Error(j(168));q(Ce,t),q(Le,n)}function jd(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(j(108,Uh(e)||"Unknown",l));return ne({},n,r)}function ii(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Xt,vn=Ce.current,q(Ce,e),q(Le,Le.current),!0}function gu(e,t,n){var r=e.stateNode;if(!r)throw Error(j(169));n?(e=jd(e,t,vn),r.__reactInternalMemoizedMergedChildContext=e,Z(Le),Z(Ce),q(Ce,e)):Z(Le),q(Le,n)}var Ct=null,$i=!1,ho=!1;function Ld(e){Ct===null?Ct=[e]:Ct.push(e)}function im(e){$i=!0,Ld(e)}function rn(){if(!ho&&Ct!==null){ho=!0;var e=0,t=K;try{var n=Ct;for(K=1;e>=o,l-=o,St=1<<32-et(t)+l|n<T?(I=P,P=null):I=P.sibling;var M=m(h,P,v[T],k);if(M===null){P===null&&(P=I);break}e&&P&&M.alternate===null&&t(h,P),f=i(M,f,T),_===null?N=M:_.sibling=M,_=M,P=I}if(T===v.length)return n(h,P),G&&on(h,T),N;if(P===null){for(;TT?(I=P,P=null):I=P.sibling;var Y=m(h,P,M.value,k);if(Y===null){P===null&&(P=I);break}e&&P&&Y.alternate===null&&t(h,P),f=i(Y,f,T),_===null?N=Y:_.sibling=Y,_=Y,P=I}if(M.done)return n(h,P),G&&on(h,T),N;if(P===null){for(;!M.done;T++,M=v.next())M=p(h,M.value,k),M!==null&&(f=i(M,f,T),_===null?N=M:_.sibling=M,_=M);return G&&on(h,T),N}for(P=r(h,P);!M.done;T++,M=v.next())M=g(P,h,T,M.value,k),M!==null&&(e&&M.alternate!==null&&P.delete(M.key===null?T:M.key),f=i(M,f,T),_===null?N=M:_.sibling=M,_=M);return e&&P.forEach(function(re){return t(h,re)}),G&&on(h,T),N}function S(h,f,v,k){if(typeof v=="object"&&v!==null&&v.type===Ln&&v.key===null&&(v=v.props.children),typeof v=="object"&&v!==null){switch(v.$$typeof){case vl:e:{for(var N=v.key,_=f;_!==null;){if(_.key===N){if(N=v.type,N===Ln){if(_.tag===7){n(h,_.sibling),f=l(_,v.props.children),f.return=h,h=f;break e}}else if(_.elementType===N||typeof N=="object"&&N!==null&&N.$$typeof===Dt&&xu(N)===_.type){n(h,_.sibling),f=l(_,v.props),f.ref=mr(h,_,v),f.return=h,h=f;break e}n(h,_);break}else t(h,_);_=_.sibling}v.type===Ln?(f=pn(v.props.children,h.mode,k,v.key),f.return=h,h=f):(k=Wl(v.type,v.key,v.props,null,h.mode,k),k.ref=mr(h,f,v),k.return=h,h=k)}return o(h);case jn:e:{for(_=v.key;f!==null;){if(f.key===_)if(f.tag===4&&f.stateNode.containerInfo===v.containerInfo&&f.stateNode.implementation===v.implementation){n(h,f.sibling),f=l(f,v.children||[]),f.return=h,h=f;break e}else{n(h,f);break}else t(h,f);f=f.sibling}f=So(v,h.mode,k),f.return=h,h=f}return o(h);case Dt:return _=v._init,S(h,f,_(v._payload),k)}if(xr(v))return x(h,f,v,k);if(cr(v))return y(h,f,v,k);Nl(h,v)}return typeof v=="string"&&v!==""||typeof v=="number"?(v=""+v,f!==null&&f.tag===6?(n(h,f.sibling),f=l(f,v),f.return=h,h=f):(n(h,f),f=Co(v,h.mode,k),f.return=h,h=f),o(h)):n(h,f)}return S}var Yn=Od(!0),$d=Od(!1),si=nn(null),ui=null,In=null,Za=null;function Ya(){Za=In=ui=null}function Ga(e){var t=si.current;Z(si),e._currentValue=t}function ta(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Wn(e,t){ui=e,Za=In=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(je=!0),e.firstContext=null)}function Ve(e){var t=e._currentValue;if(Za!==e)if(e={context:e,memoizedValue:t,next:null},In===null){if(ui===null)throw Error(j(308));In=e,ui.dependencies={lanes:0,firstContext:e}}else In=In.next=e;return t}var cn=null;function Xa(e){cn===null?cn=[e]:cn.push(e)}function Md(e,t,n,r){var l=t.interleaved;return l===null?(n.next=n,Xa(t)):(n.next=l.next,l.next=n),t.interleaved=n,jt(e,r)}function jt(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var It=!1;function Ja(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Dd(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Et(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function qt(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,H&2){var l=r.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),r.pending=t,jt(e,n)}return l=r.interleaved,l===null?(t.next=t,Xa(r)):(t.next=l.next,l.next=t),r.interleaved=t,jt(e,n)}function Al(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Fa(e,n)}}function Cu(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var l=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?l=i=o:i=i.next=o,n=n.next}while(n!==null);i===null?l=i=t:i=i.next=t}else l=i=t;n={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:i,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function ci(e,t,n,r){var l=e.updateQueue;It=!1;var i=l.firstBaseUpdate,o=l.lastBaseUpdate,a=l.shared.pending;if(a!==null){l.shared.pending=null;var s=a,u=s.next;s.next=null,o===null?i=u:o.next=u,o=s;var d=e.alternate;d!==null&&(d=d.updateQueue,a=d.lastBaseUpdate,a!==o&&(a===null?d.firstBaseUpdate=u:a.next=u,d.lastBaseUpdate=s))}if(i!==null){var p=l.baseState;o=0,d=u=s=null,a=i;do{var m=a.lane,g=a.eventTime;if((r&m)===m){d!==null&&(d=d.next={eventTime:g,lane:0,tag:a.tag,payload:a.payload,callback:a.callback,next:null});e:{var x=e,y=a;switch(m=t,g=n,y.tag){case 1:if(x=y.payload,typeof x=="function"){p=x.call(g,p,m);break e}p=x;break e;case 3:x.flags=x.flags&-65537|128;case 0:if(x=y.payload,m=typeof x=="function"?x.call(g,p,m):x,m==null)break e;p=ne({},p,m);break e;case 2:It=!0}}a.callback!==null&&a.lane!==0&&(e.flags|=64,m=l.effects,m===null?l.effects=[a]:m.push(a))}else g={eventTime:g,lane:m,tag:a.tag,payload:a.payload,callback:a.callback,next:null},d===null?(u=d=g,s=p):d=d.next=g,o|=m;if(a=a.next,a===null){if(a=l.shared.pending,a===null)break;m=a,a=m.next,m.next=null,l.lastBaseUpdate=m,l.shared.pending=null}}while(!0);if(d===null&&(s=p),l.baseState=s,l.firstBaseUpdate=u,l.lastBaseUpdate=d,t=l.shared.interleaved,t!==null){l=t;do o|=l.lane,l=l.next;while(l!==t)}else i===null&&(l.shared.lanes=0);wn|=o,e.lanes=o,e.memoizedState=p}}function Su(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=vo.transition;vo.transition={};try{e(!1),t()}finally{K=n,vo.transition=r}}function Jd(){return We().memoizedState}function um(e,t,n){var r=Zt(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},ef(e))tf(t,n);else if(n=Md(e,t,n,r),n!==null){var l=ke();tt(n,e,r,l),nf(n,t,r)}}function cm(e,t,n){var r=Zt(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(ef(e))tf(t,l);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var o=t.lastRenderedState,a=i(o,n);if(l.hasEagerState=!0,l.eagerState=a,rt(a,o)){var s=t.interleaved;s===null?(l.next=l,Xa(t)):(l.next=s.next,s.next=l),t.interleaved=l;return}}catch{}finally{}n=Md(e,t,l,r),n!==null&&(l=ke(),tt(n,e,r,l),nf(n,t,r))}}function ef(e){var t=e.alternate;return e===ee||t!==null&&t===ee}function tf(e,t){Lr=fi=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function nf(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Fa(e,n)}}var pi={readContext:Ve,useCallback:ge,useContext:ge,useEffect:ge,useImperativeHandle:ge,useInsertionEffect:ge,useLayoutEffect:ge,useMemo:ge,useReducer:ge,useRef:ge,useState:ge,useDebugValue:ge,useDeferredValue:ge,useTransition:ge,useMutableSource:ge,useSyncExternalStore:ge,useId:ge,unstable_isNewReconciler:!1},dm={readContext:Ve,useCallback:function(e,t){return ct().memoizedState=[e,t===void 0?null:t],e},useContext:Ve,useEffect:Eu,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Bl(4194308,4,Qd.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Bl(4194308,4,e,t)},useInsertionEffect:function(e,t){return Bl(4,2,e,t)},useMemo:function(e,t){var n=ct();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=ct();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=um.bind(null,ee,e),[r.memoizedState,e]},useRef:function(e){var t=ct();return e={current:e},t.memoizedState=e},useState:ku,useDebugValue:as,useDeferredValue:function(e){return ct().memoizedState=e},useTransition:function(){var e=ku(!1),t=e[0];return e=sm.bind(null,e[1]),ct().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ee,l=ct();if(G){if(n===void 0)throw Error(j(407));n=n()}else{if(n=t(),pe===null)throw Error(j(349));yn&30||zd(r,t,n)}l.memoizedState=n;var i={value:n,getSnapshot:t};return l.queue=i,Eu(Ud.bind(null,r,i,e),[e]),r.flags|=2048,Xr(9,Bd.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=ct(),t=pe.identifierPrefix;if(G){var n=kt,r=St;n=(r&~(1<<32-et(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Yr++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[ut]=t,e[Ur]=r,Jd(e,t,!1,!1),t.stateNode=e;e:{switch(o=No(n,r),n){case"dialog":Z("cancel",e),Z("close",e),l=r;break;case"iframe":case"object":case"embed":Z("load",e),l=r;break;case"video":case"audio":for(l=0;lZn&&(t.flags|=128,r=!0,fr(i,!1),t.lanes=4194304)}else{if(!r)if(e=ni(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),fr(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!Y)return ge(t),null}else 2*re()-i.renderingStartTime>Zn&&n!==1073741824&&(t.flags|=128,r=!0,fr(i,!1),t.lanes=4194304);i.isBackwards?(o.sibling=t.child,t.child=o):(n=i.last,n!==null?n.sibling=o:t.child=o,i.last=o)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=re(),t.sibling=null,n=X.current,Q(X,r?n&1|2:n&1),t):(ge(t),null);case 22:case 23:return la(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Oe&1073741824&&(ge(t),t.subtreeFlags&6&&(t.flags|=8192)):ge(t),null;case 24:return null;case 25:return null}throw Error(b(156,t.tag))}function l0(e,t){switch(Fs(t),t.tag){case 1:return Le(t.type)&&Zl(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return qn(),G(Ne),G(xe),qs(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Ks(t),null;case 13:if(G(X),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(b(340));Wn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return G(X),null;case 4:return qn(),null;case 10:return Us(t.type._context),null;case 22:case 23:return la(),null;case 24:return null;default:return null}}var kl=!1,we=!1,i0=typeof WeakSet=="function"?WeakSet:Set,O=null;function Mn(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){ne(e,t,r)}else n.current=null}function ts(e,t,n){try{n()}catch(r){ne(e,t,r)}}var xu=!1;function o0(e,t){if(Fo=Wl,e=od(),Ds(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var o=0,s=-1,a=-1,c=0,p=0,d=e,m=null;t:for(;;){for(var y;d!==n||l!==0&&d.nodeType!==3||(s=o+l),d!==i||r!==0&&d.nodeType!==3||(a=o+r),d.nodeType===3&&(o+=d.nodeValue.length),(y=d.firstChild)!==null;)m=d,d=y;for(;;){if(d===e)break t;if(m===n&&++c===l&&(s=o),m===i&&++p===r&&(a=o),(y=d.nextSibling)!==null)break;d=m,m=d.parentNode}d=y}n=s===-1||a===-1?null:{start:s,end:a}}else n=null}n=n||{start:0,end:0}}else n=null;for(Ao={focusedElem:e,selectionRange:n},Wl=!1,O=t;O!==null;)if(t=O,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,O=e;else for(;O!==null;){t=O;try{var x=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(x!==null){var g=x.memoizedProps,S=x.memoizedState,f=t.stateNode,h=f.getSnapshotBeforeUpdate(t.elementType===t.type?g:Ge(t.type,g),S);f.__reactInternalSnapshotBeforeUpdate=h}break;case 3:var v=t.stateNode.containerInfo;v.nodeType===1?v.textContent="":v.nodeType===9&&v.documentElement&&v.removeChild(v.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(b(163))}}catch(w){ne(t,t.return,w)}if(e=t.sibling,e!==null){e.return=t.return,O=e;break}O=t.return}return x=xu,xu=!1,x}function _r(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var i=l.destroy;l.destroy=void 0,i!==void 0&&ts(t,n,i)}l=l.next}while(l!==r)}}function Ni(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function ns(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function nf(e){var t=e.alternate;t!==null&&(e.alternate=null,nf(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[ut],delete t[Ur],delete t[Uo],delete t[Uh],delete t[Vh])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function rf(e){return e.tag===5||e.tag===3||e.tag===4}function Cu(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||rf(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function rs(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Ql));else if(r!==4&&(e=e.child,e!==null))for(rs(e,t,n),e=e.sibling;e!==null;)rs(e,t,n),e=e.sibling}function ls(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(ls(e,t,n),e=e.sibling;e!==null;)ls(e,t,n),e=e.sibling}var pe=null,Xe=!1;function Tt(e,t,n){for(n=n.child;n!==null;)lf(e,t,n),n=n.sibling}function lf(e,t,n){if(ct&&typeof ct.onCommitFiberUnmount=="function")try{ct.onCommitFiberUnmount(xi,n)}catch{}switch(n.tag){case 5:we||Mn(n,t);case 6:var r=pe,l=Xe;pe=null,Tt(e,t,n),pe=r,Xe=l,pe!==null&&(Xe?(e=pe,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):pe.removeChild(n.stateNode));break;case 18:pe!==null&&(Xe?(e=pe,n=n.stateNode,e.nodeType===8?lo(e.parentNode,n):e.nodeType===1&&lo(e,n),Ir(e)):lo(pe,n.stateNode));break;case 4:r=pe,l=Xe,pe=n.stateNode.containerInfo,Xe=!0,Tt(e,t,n),pe=r,Xe=l;break;case 0:case 11:case 14:case 15:if(!we&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var i=l,o=i.destroy;i=i.tag,o!==void 0&&(i&2||i&4)&&ts(n,t,o),l=l.next}while(l!==r)}Tt(e,t,n);break;case 1:if(!we&&(Mn(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){ne(n,t,s)}Tt(e,t,n);break;case 21:Tt(e,t,n);break;case 22:n.mode&1?(we=(r=we)||n.memoizedState!==null,Tt(e,t,n),we=r):Tt(e,t,n);break;default:Tt(e,t,n)}}function Su(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new i0),t.forEach(function(r){var l=m0.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function Ze(e,t){var n=t.deletions;if(n!==null)for(var r=0;rl&&(l=o),r&=~i}if(r=l,r=re()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*a0(r/1960))-r,10e?16:e,It===null)var r=!1;else{if(e=It,It=null,si=0,V&6)throw Error(b(331));var l=V;for(V|=4,O=e.current;O!==null;){var i=O,o=i.child;if(O.flags&16){var s=i.deletions;if(s!==null){for(var a=0;are()-na?an(e,0):ta|=n),Pe(e,t)}function pf(e,t){t===0&&(e.mode&1?(t=hl,hl<<=1,!(hl&130023424)&&(hl=4194304)):t=1);var n=Se();e=Et(e,t),e!==null&&(tl(e,t,n),Pe(e,n))}function h0(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),pf(e,n)}function m0(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(b(314))}r!==null&&r.delete(t),pf(e,n)}var hf;hf=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Ne.current)je=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return je=!1,n0(e,t,n);je=!!(e.flags&131072)}else je=!1,Y&&t.flags&1048576&&gd(t,Xl,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;$l(e,t),e=t.pendingProps;var l=Hn(t,xe.current);zn(t,n),l=Zs(null,t,r,e,l,n);var i=Gs();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Le(r)?(i=!0,Gl(t)):i=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,Hs(t),l.updater=ji,t.stateNode=l,l._reactInternals=t,Qo(t,r,e,n),t=Yo(null,t,r,!0,i,n)):(t.tag=0,Y&&i&&Is(t),Ce(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch($l(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=g0(r),e=Ge(r,e),l){case 0:t=Go(null,t,r,e,n);break e;case 1:t=gu(null,t,r,e,n);break e;case 11:t=mu(null,t,r,e,n);break e;case 14:t=vu(null,t,r,Ge(r.type,e),n);break e}throw Error(b(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ge(r,l),Go(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ge(r,l),gu(e,t,r,l,n);case 3:e:{if(Gd(t),e===null)throw Error(b(387));r=t.pendingProps,i=t.memoizedState,l=i.element,kd(e,t),ti(t,r,null,n);var o=t.memoizedState;if(r=o.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){l=Qn(Error(b(423)),t),t=yu(e,t,r,n,l);break e}else if(r!==l){l=Qn(Error(b(424)),t),t=yu(e,t,r,n,l);break e}else for(Re=Vt(t.stateNode.containerInfo.firstChild),Me=t,Y=!0,Je=null,n=Cd(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Wn(),r===l){t=_t(e,t,n);break e}Ce(e,t,r,n)}t=t.child}return t;case 5:return Ed(t),e===null&&Wo(t),r=t.type,l=t.pendingProps,i=e!==null?e.memoizedProps:null,o=l.children,Bo(r,l)?o=null:i!==null&&Bo(r,i)&&(t.flags|=32),Zd(e,t),Ce(e,t,o,n),t.child;case 6:return e===null&&Wo(t),null;case 13:return Yd(e,t,n);case 4:return Ws(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Kn(t,null,r,n):Ce(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ge(r,l),mu(e,t,r,l,n);case 7:return Ce(e,t,t.pendingProps,n),t.child;case 8:return Ce(e,t,t.pendingProps.children,n),t.child;case 12:return Ce(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,i=t.memoizedProps,o=l.value,Q(Jl,r._currentValue),r._currentValue=o,i!==null)if(rt(i.value,o)){if(i.children===l.children&&!Ne.current){t=_t(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var s=i.dependencies;if(s!==null){o=i.child;for(var a=s.firstContext;a!==null;){if(a.context===r){if(i.tag===1){a=Ct(-1,n&-n),a.tag=2;var c=i.updateQueue;if(c!==null){c=c.shared;var p=c.pending;p===null?a.next=a:(a.next=p.next,p.next=a),c.pending=a}}i.lanes|=n,a=i.alternate,a!==null&&(a.lanes|=n),Ko(i.return,n,t),s.lanes|=n;break}a=a.next}}else if(i.tag===10)o=i.type===t.type?null:i.child;else if(i.tag===18){if(o=i.return,o===null)throw Error(b(341));o.lanes|=n,s=o.alternate,s!==null&&(s.lanes|=n),Ko(o,n,t),o=i.sibling}else o=i.child;if(o!==null)o.return=i;else for(o=i;o!==null;){if(o===t){o=null;break}if(i=o.sibling,i!==null){i.return=o.return,o=i;break}o=o.return}i=o}Ce(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,zn(t,n),l=He(l),r=r(l),t.flags|=1,Ce(e,t,r,n),t.child;case 14:return r=t.type,l=Ge(r,t.pendingProps),l=Ge(r.type,l),vu(e,t,r,l,n);case 15:return qd(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ge(r,l),$l(e,t),t.tag=1,Le(r)?(e=!0,Gl(t)):e=!1,zn(t,n),Hd(t,r,l),Qo(t,r,l,n),Yo(null,t,r,!0,e,n);case 19:return Xd(e,t,n);case 22:return Qd(e,t,n)}throw Error(b(156,t.tag))};function mf(e,t){return zc(e,t)}function v0(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ue(e,t,n,r){return new v0(e,t,n,r)}function oa(e){return e=e.prototype,!(!e||!e.isReactComponent)}function g0(e){if(typeof e=="function")return oa(e)?1:0;if(e!=null){if(e=e.$$typeof,e===_s)return 11;if(e===bs)return 14}return 2}function qt(e,t){var n=e.alternate;return n===null?(n=Ue(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Fl(e,t,n,r,l,i){var o=2;if(r=e,typeof e=="function")oa(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case _n:return un(n.children,l,i,t);case Es:o=8,l|=8;break;case yo:return e=Ue(12,n,t,l|2),e.elementType=yo,e.lanes=i,e;case wo:return e=Ue(13,n,t,l),e.elementType=wo,e.lanes=i,e;case xo:return e=Ue(19,n,t,l),e.elementType=xo,e.lanes=i,e;case Ec:return Pi(n,l,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Sc:o=10;break e;case kc:o=9;break e;case _s:o=11;break e;case bs:o=14;break e;case Ot:o=16,r=null;break e}throw Error(b(130,e==null?e:typeof e,""))}return t=Ue(o,n,t,l),t.elementType=e,t.type=r,t.lanes=i,t}function un(e,t,n,r){return e=Ue(7,e,r,t),e.lanes=n,e}function Pi(e,t,n,r){return e=Ue(22,e,r,t),e.elementType=Ec,e.lanes=n,e.stateNode={isHidden:!1},e}function po(e,t,n){return e=Ue(6,e,null,t),e.lanes=n,e}function ho(e,t,n){return t=Ue(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function y0(e,t,n,r,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=qi(0),this.expirationTimes=qi(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=qi(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function sa(e,t,n,r,l,i,o,s,a){return e=new y0(e,t,n,s,a),t===1?(t=1,i===!0&&(t|=8)):t=0,i=Ue(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Hs(i),e}function w0(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(wf)}catch(e){console.error(e)}}wf(),yc.exports=De;var xf=yc.exports,Pu=xf;vo.createRoot=Pu.createRoot,vo.hydrateRoot=Pu.hydrateRoot;/** - * @remix-run/router v1.20.0 +`+i.stack}return{value:e,source:t,stack:l,digest:null}}function wo(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function la(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var hm=typeof WeakMap=="function"?WeakMap:Map;function lf(e,t,n){n=Et(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){mi||(mi=!0,ha=r),la(e,t)},n}function of(e,t,n){n=Et(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var l=t.value;n.payload=function(){return r(l)},n.callback=function(){la(e,t)}}var i=e.stateNode;return i!==null&&typeof i.componentDidCatch=="function"&&(n.callback=function(){la(e,t),typeof r!="function"&&(Qt===null?Qt=new Set([this]):Qt.add(this));var o=t.stack;this.componentDidCatch(t.value,{componentStack:o!==null?o:""})}),n}function Nu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new hm;var l=new Set;r.set(t,l)}else l=r.get(t),l===void 0&&(l=new Set,r.set(t,l));l.has(n)||(l.add(n),e=jm.bind(null,e,t,n),t.then(e,e))}function ju(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function Lu(e,t,n,r,l){return e.mode&1?(e.flags|=65536,e.lanes=l,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=Et(-1,1),t.tag=2,qt(n,t,1))),n.lanes|=1),e)}var mm=Pt.ReactCurrentOwner,je=!1;function Se(e,t,n,r){t.child=e===null?$d(t,null,n,r):Yn(t,e.child,n,r)}function Pu(e,t,n,r,l){n=n.render;var i=t.ref;return Wn(t,l),r=ls(e,t,n,r,i,l),n=is(),e!==null&&!je?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~l,Lt(e,t,l)):(G&&n&&Ka(t),t.flags|=1,Se(e,t,r,l),t.child)}function Tu(e,t,n,r,l){if(e===null){var i=n.type;return typeof i=="function"&&!ms(i)&&i.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=i,af(e,t,i,r,l)):(e=Wl(n.type,null,r,t,t.mode,l),e.ref=t.ref,e.return=t,t.child=e)}if(i=e.child,!(e.lanes&l)){var o=i.memoizedProps;if(n=n.compare,n=n!==null?n:Vr,n(o,r)&&e.ref===t.ref)return Lt(e,t,l)}return t.flags|=1,e=Yt(i,r),e.ref=t.ref,e.return=t,t.child=e}function af(e,t,n,r,l){if(e!==null){var i=e.memoizedProps;if(Vr(i,r)&&e.ref===t.ref)if(je=!1,t.pendingProps=r=i,(e.lanes&l)!==0)e.flags&131072&&(je=!0);else return t.lanes=e.lanes,Lt(e,t,l)}return ia(e,t,n,r,l)}function sf(e,t,n){var r=t.pendingProps,l=r.children,i=e!==null?e.memoizedState:null;if(r.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},q(An,Re),Re|=n;else{if(!(n&1073741824))return e=i!==null?i.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,q(An,Re),Re|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=i!==null?i.baseLanes:n,q(An,Re),Re|=r}else i!==null?(r=i.baseLanes|n,t.memoizedState=null):r=n,q(An,Re),Re|=r;return Se(e,t,l,n),t.child}function uf(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function ia(e,t,n,r,l){var i=Pe(n)?vn:Ce.current;return i=Qn(t,i),Wn(t,l),n=ls(e,t,n,r,i,l),r=is(),e!==null&&!je?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~l,Lt(e,t,l)):(G&&r&&Ka(t),t.flags|=1,Se(e,t,n,l),t.child)}function Ru(e,t,n,r,l){if(Pe(n)){var i=!0;ii(t)}else i=!1;if(Wn(t,l),t.stateNode===null)Ul(e,t),rf(t,n,r),ra(t,n,r,l),r=!0;else if(e===null){var o=t.stateNode,a=t.memoizedProps;o.props=a;var s=o.context,u=n.contextType;typeof u=="object"&&u!==null?u=Ve(u):(u=Pe(n)?vn:Ce.current,u=Qn(t,u));var d=n.getDerivedStateFromProps,p=typeof d=="function"||typeof o.getSnapshotBeforeUpdate=="function";p||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(a!==r||s!==u)&&_u(t,o,r,u),It=!1;var m=t.memoizedState;o.state=m,ci(t,r,o,l),s=t.memoizedState,a!==r||m!==s||Le.current||It?(typeof d=="function"&&(na(t,n,d,r),s=t.memoizedState),(a=It||bu(t,n,a,r,m,s,u))?(p||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount=="function"&&(t.flags|=4194308)):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=s),o.props=r,o.state=s,o.context=u,r=a):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{o=t.stateNode,Dd(e,t),a=t.memoizedProps,u=t.type===t.elementType?a:Ye(t.type,a),o.props=u,p=t.pendingProps,m=o.context,s=n.contextType,typeof s=="object"&&s!==null?s=Ve(s):(s=Pe(n)?vn:Ce.current,s=Qn(t,s));var g=n.getDerivedStateFromProps;(d=typeof g=="function"||typeof o.getSnapshotBeforeUpdate=="function")||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(a!==p||m!==s)&&_u(t,o,r,s),It=!1,m=t.memoizedState,o.state=m,ci(t,r,o,l);var x=t.memoizedState;a!==p||m!==x||Le.current||It?(typeof g=="function"&&(na(t,n,g,r),x=t.memoizedState),(u=It||bu(t,n,u,r,m,x,s)||!1)?(d||typeof o.UNSAFE_componentWillUpdate!="function"&&typeof o.componentWillUpdate!="function"||(typeof o.componentWillUpdate=="function"&&o.componentWillUpdate(r,x,s),typeof o.UNSAFE_componentWillUpdate=="function"&&o.UNSAFE_componentWillUpdate(r,x,s)),typeof o.componentDidUpdate=="function"&&(t.flags|=4),typeof o.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof o.componentDidUpdate!="function"||a===e.memoizedProps&&m===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||a===e.memoizedProps&&m===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=x),o.props=r,o.state=x,o.context=s,r=u):(typeof o.componentDidUpdate!="function"||a===e.memoizedProps&&m===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||a===e.memoizedProps&&m===e.memoizedState||(t.flags|=1024),r=!1)}return oa(e,t,n,r,i,l)}function oa(e,t,n,r,l,i){uf(e,t);var o=(t.flags&128)!==0;if(!r&&!o)return l&&gu(t,n,!1),Lt(e,t,i);r=t.stateNode,mm.current=t;var a=o&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&o?(t.child=Yn(t,e.child,null,i),t.child=Yn(t,null,a,i)):Se(e,t,a,i),t.memoizedState=r.state,l&&gu(t,n,!0),t.child}function cf(e){var t=e.stateNode;t.pendingContext?vu(e,t.pendingContext,t.pendingContext!==t.context):t.context&&vu(e,t.context,!1),es(e,t.containerInfo)}function Ou(e,t,n,r,l){return Zn(),Qa(l),t.flags|=256,Se(e,t,n,r),t.child}var aa={dehydrated:null,treeContext:null,retryLane:0};function sa(e){return{baseLanes:e,cachePool:null,transitions:null}}function df(e,t,n){var r=t.pendingProps,l=J.current,i=!1,o=(t.flags&128)!==0,a;if((a=o)||(a=e!==null&&e.memoizedState===null?!1:(l&2)!==0),a?(i=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(l|=1),q(J,l&1),e===null)return ea(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data==="$!"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(o=r.children,e=r.fallback,i?(r=t.mode,i=t.child,o={mode:"hidden",children:o},!(r&1)&&i!==null?(i.childLanes=0,i.pendingProps=o):i=Ai(o,r,0,null),e=pn(e,r,n,null),i.return=t,e.return=t,i.sibling=e,t.child=i,t.child.memoizedState=sa(n),t.memoizedState=aa,e):ss(t,o));if(l=e.memoizedState,l!==null&&(a=l.dehydrated,a!==null))return vm(e,t,o,r,a,l,n);if(i){i=r.fallback,o=t.mode,l=e.child,a=l.sibling;var s={mode:"hidden",children:r.children};return!(o&1)&&t.child!==l?(r=t.child,r.childLanes=0,r.pendingProps=s,t.deletions=null):(r=Yt(l,s),r.subtreeFlags=l.subtreeFlags&14680064),a!==null?i=Yt(a,i):(i=pn(i,o,n,null),i.flags|=2),i.return=t,r.return=t,r.sibling=i,t.child=r,r=i,i=t.child,o=e.child.memoizedState,o=o===null?sa(n):{baseLanes:o.baseLanes|n,cachePool:null,transitions:o.transitions},i.memoizedState=o,i.childLanes=e.childLanes&~n,t.memoizedState=aa,r}return i=e.child,e=i.sibling,r=Yt(i,{mode:"visible",children:r.children}),!(t.mode&1)&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function ss(e,t){return t=Ai({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function jl(e,t,n,r){return r!==null&&Qa(r),Yn(t,e.child,null,n),e=ss(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function vm(e,t,n,r,l,i,o){if(n)return t.flags&256?(t.flags&=-257,r=wo(Error(j(422))),jl(e,t,o,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(i=r.fallback,l=t.mode,r=Ai({mode:"visible",children:r.children},l,0,null),i=pn(i,l,o,null),i.flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,t.mode&1&&Yn(t,e.child,null,o),t.child.memoizedState=sa(o),t.memoizedState=aa,i);if(!(t.mode&1))return jl(e,t,o,null);if(l.data==="$!"){if(r=l.nextSibling&&l.nextSibling.dataset,r)var a=r.dgst;return r=a,i=Error(j(419)),r=wo(i,r,void 0),jl(e,t,o,r)}if(a=(o&e.childLanes)!==0,je||a){if(r=pe,r!==null){switch(o&-o){case 4:l=2;break;case 16:l=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:l=32;break;case 536870912:l=268435456;break;default:l=0}l=l&(r.suspendedLanes|o)?0:l,l!==0&&l!==i.retryLane&&(i.retryLane=l,jt(e,l),tt(r,e,l,-1))}return hs(),r=wo(Error(j(421))),jl(e,t,o,r)}return l.data==="$?"?(t.flags|=128,t.child=e.child,t=Lm.bind(null,e),l._reactRetry=t,null):(e=i.treeContext,Oe=Kt(l.nextSibling),$e=t,G=!0,Je=null,e!==null&&(ze[Be++]=St,ze[Be++]=kt,ze[Be++]=gn,St=e.id,kt=e.overflow,gn=t),t=ss(t,r.children),t.flags|=4096,t)}function $u(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),ta(e.return,t,n)}function xo(e,t,n,r,l){var i=e.memoizedState;i===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:l}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=l)}function ff(e,t,n){var r=t.pendingProps,l=r.revealOrder,i=r.tail;if(Se(e,t,r.children,n),r=J.current,r&2)r=r&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&$u(e,n,t);else if(e.tag===19)$u(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(q(J,r),!(t.mode&1))t.memoizedState=null;else switch(l){case"forwards":for(n=t.child,l=null;n!==null;)e=n.alternate,e!==null&&di(e)===null&&(l=n),n=n.sibling;n=l,n===null?(l=t.child,t.child=null):(l=n.sibling,n.sibling=null),xo(t,!1,l,n,i);break;case"backwards":for(n=null,l=t.child,t.child=null;l!==null;){if(e=l.alternate,e!==null&&di(e)===null){t.child=l;break}e=l.sibling,l.sibling=n,n=l,l=e}xo(t,!0,n,null,i);break;case"together":xo(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Ul(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Lt(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),wn|=t.lanes,!(n&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(j(153));if(t.child!==null){for(e=t.child,n=Yt(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=Yt(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function gm(e,t,n){switch(t.tag){case 3:cf(t),Zn();break;case 5:Id(t);break;case 1:Pe(t.type)&&ii(t);break;case 4:es(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,l=t.memoizedProps.value;q(si,r._currentValue),r._currentValue=l;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(q(J,J.current&1),t.flags|=128,null):n&t.child.childLanes?df(e,t,n):(q(J,J.current&1),e=Lt(e,t,n),e!==null?e.sibling:null);q(J,J.current&1);break;case 19:if(r=(n&t.childLanes)!==0,e.flags&128){if(r)return ff(e,t,n);t.flags|=128}if(l=t.memoizedState,l!==null&&(l.rendering=null,l.tail=null,l.lastEffect=null),q(J,J.current),r)break;return null;case 22:case 23:return t.lanes=0,sf(e,t,n)}return Lt(e,t,n)}var pf,ua,hf,mf;pf=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}};ua=function(){};hf=function(e,t,n,r){var l=e.memoizedProps;if(l!==r){e=t.stateNode,dn(pt.current);var i=null;switch(n){case"input":l=To(e,l),r=To(e,r),i=[];break;case"select":l=ne({},l,{value:void 0}),r=ne({},r,{value:void 0}),i=[];break;case"textarea":l=$o(e,l),r=$o(e,r),i=[];break;default:typeof l.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=ri)}Do(n,r);var o;n=null;for(u in l)if(!r.hasOwnProperty(u)&&l.hasOwnProperty(u)&&l[u]!=null)if(u==="style"){var a=l[u];for(o in a)a.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else u!=="dangerouslySetInnerHTML"&&u!=="children"&&u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&u!=="autoFocus"&&(Ir.hasOwnProperty(u)?i||(i=[]):(i=i||[]).push(u,null));for(u in r){var s=r[u];if(a=l!=null?l[u]:void 0,r.hasOwnProperty(u)&&s!==a&&(s!=null||a!=null))if(u==="style")if(a){for(o in a)!a.hasOwnProperty(o)||s&&s.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in s)s.hasOwnProperty(o)&&a[o]!==s[o]&&(n||(n={}),n[o]=s[o])}else n||(i||(i=[]),i.push(u,n)),n=s;else u==="dangerouslySetInnerHTML"?(s=s?s.__html:void 0,a=a?a.__html:void 0,s!=null&&a!==s&&(i=i||[]).push(u,s)):u==="children"?typeof s!="string"&&typeof s!="number"||(i=i||[]).push(u,""+s):u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&(Ir.hasOwnProperty(u)?(s!=null&&u==="onScroll"&&Q("scroll",e),i||a===s||(i=[])):(i=i||[]).push(u,s))}n&&(i=i||[]).push("style",n);var u=i;(t.updateQueue=u)&&(t.flags|=4)}};mf=function(e,t,n,r){n!==r&&(t.flags|=4)};function vr(e,t){if(!G)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ye(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var l=e.child;l!==null;)n|=l.lanes|l.childLanes,r|=l.subtreeFlags&14680064,r|=l.flags&14680064,l.return=e,l=l.sibling;else for(l=e.child;l!==null;)n|=l.lanes|l.childLanes,r|=l.subtreeFlags,r|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function ym(e,t,n){var r=t.pendingProps;switch(qa(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return ye(t),null;case 1:return Pe(t.type)&&li(),ye(t),null;case 3:return r=t.stateNode,Gn(),Z(Le),Z(Ce),ns(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(_l(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Je!==null&&(ga(Je),Je=null))),ua(e,t),ye(t),null;case 5:ts(t);var l=dn(Zr.current);if(n=t.type,e!==null&&t.stateNode!=null)hf(e,t,n,r,l),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(j(166));return ye(t),null}if(e=dn(pt.current),_l(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[dt]=t,r[qr]=i,e=(t.mode&1)!==0,n){case"dialog":Q("cancel",r),Q("close",r);break;case"iframe":case"object":case"embed":Q("load",r);break;case"video":case"audio":for(l=0;l<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[dt]=t,e[qr]=r,pf(e,t,!1,!1),t.stateNode=e;e:{switch(o=Io(n,r),n){case"dialog":Q("cancel",e),Q("close",e),l=r;break;case"iframe":case"object":case"embed":Q("load",e),l=r;break;case"video":case"audio":for(l=0;lJn&&(t.flags|=128,r=!0,vr(i,!1),t.lanes=4194304)}else{if(!r)if(e=di(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),vr(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!G)return ye(t),null}else 2*ae()-i.renderingStartTime>Jn&&n!==1073741824&&(t.flags|=128,r=!0,vr(i,!1),t.lanes=4194304);i.isBackwards?(o.sibling=t.child,t.child=o):(n=i.last,n!==null?n.sibling=o:t.child=o,i.last=o)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=ae(),t.sibling=null,n=J.current,q(J,r?n&1|2:n&1),t):(ye(t),null);case 22:case 23:return ps(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Re&1073741824&&(ye(t),t.subtreeFlags&6&&(t.flags|=8192)):ye(t),null;case 24:return null;case 25:return null}throw Error(j(156,t.tag))}function wm(e,t){switch(qa(t),t.tag){case 1:return Pe(t.type)&&li(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Gn(),Z(Le),Z(Ce),ns(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return ts(t),null;case 13:if(Z(J),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(j(340));Zn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Z(J),null;case 4:return Gn(),null;case 10:return Ga(t.type._context),null;case 22:case 23:return ps(),null;case 24:return null;default:return null}}var Ll=!1,xe=!1,xm=typeof WeakSet=="function"?WeakSet:Set,R=null;function Fn(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){le(e,t,r)}else n.current=null}function ca(e,t,n){try{n()}catch(r){le(e,t,r)}}var Mu=!1;function Cm(e,t){if(qo=ei,e=wd(),Wa(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var o=0,a=-1,s=-1,u=0,d=0,p=e,m=null;t:for(;;){for(var g;p!==n||l!==0&&p.nodeType!==3||(a=o+l),p!==i||r!==0&&p.nodeType!==3||(s=o+r),p.nodeType===3&&(o+=p.nodeValue.length),(g=p.firstChild)!==null;)m=p,p=g;for(;;){if(p===e)break t;if(m===n&&++u===l&&(a=o),m===i&&++d===r&&(s=o),(g=p.nextSibling)!==null)break;p=m,m=p.parentNode}p=g}n=a===-1||s===-1?null:{start:a,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(Qo={focusedElem:e,selectionRange:n},ei=!1,R=t;R!==null;)if(t=R,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,R=e;else for(;R!==null;){t=R;try{var x=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(x!==null){var y=x.memoizedProps,S=x.memoizedState,h=t.stateNode,f=h.getSnapshotBeforeUpdate(t.elementType===t.type?y:Ye(t.type,y),S);h.__reactInternalSnapshotBeforeUpdate=f}break;case 3:var v=t.stateNode.containerInfo;v.nodeType===1?v.textContent="":v.nodeType===9&&v.documentElement&&v.removeChild(v.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(j(163))}}catch(k){le(t,t.return,k)}if(e=t.sibling,e!==null){e.return=t.return,R=e;break}R=t.return}return x=Mu,Mu=!1,x}function Pr(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var i=l.destroy;l.destroy=void 0,i!==void 0&&ca(t,n,i)}l=l.next}while(l!==r)}}function Ii(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function da(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function vf(e){var t=e.alternate;t!==null&&(e.alternate=null,vf(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[dt],delete t[qr],delete t[Go],delete t[rm],delete t[lm])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function gf(e){return e.tag===5||e.tag===3||e.tag===4}function Du(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||gf(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function fa(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=ri));else if(r!==4&&(e=e.child,e!==null))for(fa(e,t,n),e=e.sibling;e!==null;)fa(e,t,n),e=e.sibling}function pa(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(pa(e,t,n),e=e.sibling;e!==null;)pa(e,t,n),e=e.sibling}var he=null,Xe=!1;function Mt(e,t,n){for(n=n.child;n!==null;)yf(e,t,n),n=n.sibling}function yf(e,t,n){if(ft&&typeof ft.onCommitFiberUnmount=="function")try{ft.onCommitFiberUnmount(Li,n)}catch{}switch(n.tag){case 5:xe||Fn(n,t);case 6:var r=he,l=Xe;he=null,Mt(e,t,n),he=r,Xe=l,he!==null&&(Xe?(e=he,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):he.removeChild(n.stateNode));break;case 18:he!==null&&(Xe?(e=he,n=n.stateNode,e.nodeType===8?po(e.parentNode,n):e.nodeType===1&&po(e,n),Ur(e)):po(he,n.stateNode));break;case 4:r=he,l=Xe,he=n.stateNode.containerInfo,Xe=!0,Mt(e,t,n),he=r,Xe=l;break;case 0:case 11:case 14:case 15:if(!xe&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var i=l,o=i.destroy;i=i.tag,o!==void 0&&(i&2||i&4)&&ca(n,t,o),l=l.next}while(l!==r)}Mt(e,t,n);break;case 1:if(!xe&&(Fn(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(a){le(n,t,a)}Mt(e,t,n);break;case 21:Mt(e,t,n);break;case 22:n.mode&1?(xe=(r=xe)||n.memoizedState!==null,Mt(e,t,n),xe=r):Mt(e,t,n);break;default:Mt(e,t,n)}}function Iu(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new xm),t.forEach(function(r){var l=Pm.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function Ze(e,t){var n=t.deletions;if(n!==null)for(var r=0;rl&&(l=o),r&=~i}if(r=l,r=ae()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*km(r/1960))-r,10e?16:e,Bt===null)var r=!1;else{if(e=Bt,Bt=null,vi=0,H&6)throw Error(j(331));var l=H;for(H|=4,R=e.current;R!==null;){var i=R,o=i.child;if(R.flags&16){var a=i.deletions;if(a!==null){for(var s=0;sae()-ds?fn(e,0):cs|=n),Te(e,t)}function _f(e,t){t===0&&(e.mode&1?(t=xl,xl<<=1,!(xl&130023424)&&(xl=4194304)):t=1);var n=ke();e=jt(e,t),e!==null&&(il(e,t,n),Te(e,n))}function Lm(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),_f(e,n)}function Pm(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(j(314))}r!==null&&r.delete(t),_f(e,n)}var Nf;Nf=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Le.current)je=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return je=!1,gm(e,t,n);je=!!(e.flags&131072)}else je=!1,G&&t.flags&1048576&&Pd(t,ai,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Ul(e,t),e=t.pendingProps;var l=Qn(t,Ce.current);Wn(t,n),l=ls(null,t,r,e,l,n);var i=is();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Pe(r)?(i=!0,ii(t)):i=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,Ja(t),l.updater=Di,t.stateNode=l,l._reactInternals=t,ra(t,r,e,n),t=oa(null,t,r,!0,i,n)):(t.tag=0,G&&i&&Ka(t),Se(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Ul(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=Rm(r),e=Ye(r,e),l){case 0:t=ia(null,t,r,e,n);break e;case 1:t=Ru(null,t,r,e,n);break e;case 11:t=Pu(null,t,r,e,n);break e;case 14:t=Tu(null,t,r,Ye(r.type,e),n);break e}throw Error(j(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ye(r,l),ia(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ye(r,l),Ru(e,t,r,l,n);case 3:e:{if(cf(t),e===null)throw Error(j(387));r=t.pendingProps,i=t.memoizedState,l=i.element,Dd(e,t),ci(t,r,null,n);var o=t.memoizedState;if(r=o.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){l=Xn(Error(j(423)),t),t=Ou(e,t,r,n,l);break e}else if(r!==l){l=Xn(Error(j(424)),t),t=Ou(e,t,r,n,l);break e}else for(Oe=Kt(t.stateNode.containerInfo.firstChild),$e=t,G=!0,Je=null,n=$d(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Zn(),r===l){t=Lt(e,t,n);break e}Se(e,t,r,n)}t=t.child}return t;case 5:return Id(t),e===null&&ea(t),r=t.type,l=t.pendingProps,i=e!==null?e.memoizedProps:null,o=l.children,Zo(r,l)?o=null:i!==null&&Zo(r,i)&&(t.flags|=32),uf(e,t),Se(e,t,o,n),t.child;case 6:return e===null&&ea(t),null;case 13:return df(e,t,n);case 4:return es(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Yn(t,null,r,n):Se(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ye(r,l),Pu(e,t,r,l,n);case 7:return Se(e,t,t.pendingProps,n),t.child;case 8:return Se(e,t,t.pendingProps.children,n),t.child;case 12:return Se(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,i=t.memoizedProps,o=l.value,q(si,r._currentValue),r._currentValue=o,i!==null)if(rt(i.value,o)){if(i.children===l.children&&!Le.current){t=Lt(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var a=i.dependencies;if(a!==null){o=i.child;for(var s=a.firstContext;s!==null;){if(s.context===r){if(i.tag===1){s=Et(-1,n&-n),s.tag=2;var u=i.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?s.next=s:(s.next=d.next,d.next=s),u.pending=s}}i.lanes|=n,s=i.alternate,s!==null&&(s.lanes|=n),ta(i.return,n,t),a.lanes|=n;break}s=s.next}}else if(i.tag===10)o=i.type===t.type?null:i.child;else if(i.tag===18){if(o=i.return,o===null)throw Error(j(341));o.lanes|=n,a=o.alternate,a!==null&&(a.lanes|=n),ta(o,n,t),o=i.sibling}else o=i.child;if(o!==null)o.return=i;else for(o=i;o!==null;){if(o===t){o=null;break}if(i=o.sibling,i!==null){i.return=o.return,o=i;break}o=o.return}i=o}Se(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,Wn(t,n),l=Ve(l),r=r(l),t.flags|=1,Se(e,t,r,n),t.child;case 14:return r=t.type,l=Ye(r,t.pendingProps),l=Ye(r.type,l),Tu(e,t,r,l,n);case 15:return af(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ye(r,l),Ul(e,t),t.tag=1,Pe(r)?(e=!0,ii(t)):e=!1,Wn(t,n),rf(t,r,l),ra(t,r,l,n),oa(null,t,r,!0,e,n);case 19:return ff(e,t,n);case 22:return sf(e,t,n)}throw Error(j(156,t.tag))};function jf(e,t){return ed(e,t)}function Tm(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ue(e,t,n,r){return new Tm(e,t,n,r)}function ms(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Rm(e){if(typeof e=="function")return ms(e)?1:0;if(e!=null){if(e=e.$$typeof,e===$a)return 11;if(e===Ma)return 14}return 2}function Yt(e,t){var n=e.alternate;return n===null?(n=Ue(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Wl(e,t,n,r,l,i){var o=2;if(r=e,typeof e=="function")ms(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Ln:return pn(n.children,l,i,t);case Oa:o=8,l|=8;break;case No:return e=Ue(12,n,t,l|2),e.elementType=No,e.lanes=i,e;case jo:return e=Ue(13,n,t,l),e.elementType=jo,e.lanes=i,e;case Lo:return e=Ue(19,n,t,l),e.elementType=Lo,e.lanes=i,e;case Ic:return Ai(n,l,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Mc:o=10;break e;case Dc:o=9;break e;case $a:o=11;break e;case Ma:o=14;break e;case Dt:o=16,r=null;break e}throw Error(j(130,e==null?e:typeof e,""))}return t=Ue(o,n,t,l),t.elementType=e,t.type=r,t.lanes=i,t}function pn(e,t,n,r){return e=Ue(7,e,r,t),e.lanes=n,e}function Ai(e,t,n,r){return e=Ue(22,e,r,t),e.elementType=Ic,e.lanes=n,e.stateNode={isHidden:!1},e}function Co(e,t,n){return e=Ue(6,e,null,t),e.lanes=n,e}function So(e,t,n){return t=Ue(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Om(e,t,n,r,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=to(0),this.expirationTimes=to(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=to(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function vs(e,t,n,r,l,i,o,a,s){return e=new Om(e,t,n,a,s),t===1?(t=1,i===!0&&(t|=8)):t=0,i=Ue(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ja(i),e}function $m(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Rf)}catch(e){console.error(e)}}Rf(),Tc.exports=De;var Of=Tc.exports,Wu=Of;bo.createRoot=Wu.createRoot,bo.hydrateRoot=Wu.hydrateRoot;var xs={};Object.defineProperty(xs,"__esModule",{value:!0});xs.parse=Wm;xs.serialize=Km;const Am=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,zm=/^[\u0021-\u003A\u003C-\u007E]*$/,Bm=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,Um=/^[\u0020-\u003A\u003D-\u007E]*$/,Hm=Object.prototype.toString,Vm=(()=>{const e=function(){};return e.prototype=Object.create(null),e})();function Wm(e,t){const n=new Vm,r=e.length;if(r<2)return n;const l=(t==null?void 0:t.decode)||qm;let i=0;do{const o=e.indexOf("=",i);if(o===-1)break;const a=e.indexOf(";",i),s=a===-1?r:a;if(o>s){i=e.lastIndexOf(";",o-1)+1;continue}const u=Ku(e,i,o),d=qu(e,o,u),p=e.slice(u,d);if(n[p]===void 0){let m=Ku(e,o+1,s),g=qu(e,s,m);const x=l(e.slice(m,g));n[p]=x}i=s+1}while(in;){const r=e.charCodeAt(--t);if(r!==32&&r!==9)return t+1}return n}function Km(e,t,n){const r=(n==null?void 0:n.encode)||encodeURIComponent;if(!Am.test(e))throw new TypeError(`argument name is invalid: ${e}`);const l=r(t);if(!zm.test(l))throw new TypeError(`argument val is invalid: ${t}`);let i=e+"="+l;if(!n)return i;if(n.maxAge!==void 0){if(!Number.isInteger(n.maxAge))throw new TypeError(`option maxAge is invalid: ${n.maxAge}`);i+="; Max-Age="+n.maxAge}if(n.domain){if(!Bm.test(n.domain))throw new TypeError(`option domain is invalid: ${n.domain}`);i+="; Domain="+n.domain}if(n.path){if(!Um.test(n.path))throw new TypeError(`option path is invalid: ${n.path}`);i+="; Path="+n.path}if(n.expires){if(!Qm(n.expires)||!Number.isFinite(n.expires.valueOf()))throw new TypeError(`option expires is invalid: ${n.expires}`);i+="; Expires="+n.expires.toUTCString()}if(n.httpOnly&&(i+="; HttpOnly"),n.secure&&(i+="; Secure"),n.partitioned&&(i+="; Partitioned"),n.priority)switch(typeof n.priority=="string"?n.priority.toLowerCase():void 0){case"low":i+="; Priority=Low";break;case"medium":i+="; Priority=Medium";break;case"high":i+="; Priority=High";break;default:throw new TypeError(`option priority is invalid: ${n.priority}`)}if(n.sameSite)switch(typeof n.sameSite=="string"?n.sameSite.toLowerCase():n.sameSite){case!0:case"strict":i+="; SameSite=Strict";break;case"lax":i+="; SameSite=Lax";break;case"none":i+="; SameSite=None";break;default:throw new TypeError(`option sameSite is invalid: ${n.sameSite}`)}return i}function qm(e){if(e.indexOf("%")===-1)return e;try{return decodeURIComponent(e)}catch{return e}}function Qm(e){return Hm.call(e)==="[object Date]"}/** + * react-router v7.0.2 * * Copyright (c) Remix Software Inc. * @@ -46,30 +46,14 @@ Error generating stack: `+i.message+` * LICENSE.md file in the root directory of this source tree. * * @license MIT - */function Zr(){return Zr=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function Cf(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function _0(){return Math.random().toString(36).substr(2,8)}function Ou(e,t){return{usr:e.state,key:e.key,idx:t}}function us(e,t,n,r){return n===void 0&&(n=null),Zr({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?er(t):t,{state:n,key:t&&t.key||r||_0()})}function Sf(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function er(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function b0(e,t,n,r){r===void 0&&(r={});let{window:l=document.defaultView,v5Compat:i=!1}=r,o=l.history,s=Ft.Pop,a=null,c=p();c==null&&(c=0,o.replaceState(Zr({},o.state,{idx:c}),""));function p(){return(o.state||{idx:null}).idx}function d(){s=Ft.Pop;let S=p(),f=S==null?null:S-c;c=S,a&&a({action:s,location:g.location,delta:f})}function m(S,f){s=Ft.Push;let h=us(g.location,S,f);c=p()+1;let v=Ou(h,c),w=g.createHref(h);try{o.pushState(v,"",w)}catch(j){if(j instanceof DOMException&&j.name==="DataCloneError")throw j;l.location.assign(w)}i&&a&&a({action:s,location:g.location,delta:1})}function y(S,f){s=Ft.Replace;let h=us(g.location,S,f);c=p();let v=Ou(h,c),w=g.createHref(h);o.replaceState(v,"",w),i&&a&&a({action:s,location:g.location,delta:0})}function x(S){let f=l.location.origin!=="null"?l.location.origin:l.location.href,h=typeof S=="string"?S:Sf(S);return h=h.replace(/ $/,"%20"),ae(f,"No window.location.(origin|href) available to create URL for href: "+h),new URL(h,f)}let g={get action(){return s},get location(){return e(l,o)},listen(S){if(a)throw new Error("A history only accepts one active listener");return l.addEventListener(Tu,d),a=S,()=>{l.removeEventListener(Tu,d),a=null}},createHref(S){return t(l,S)},createURL:x,encodeLocation(S){let f=x(S);return{pathname:f.pathname,search:f.search,hash:f.hash}},push:m,replace:y,go(S){return o.go(S)}};return g}var Ru;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(Ru||(Ru={}));function j0(e,t,n){return n===void 0&&(n="/"),N0(e,t,n,!1)}function N0(e,t,n,r){let l=typeof t=="string"?er(t):t,i=_f(l.pathname||"/",n);if(i==null)return null;let o=kf(e);L0(o);let s=null;for(let a=0;s==null&&a{let a={relativePath:s===void 0?i.path||"":s,caseSensitive:i.caseSensitive===!0,childrenIndex:o,route:i};a.relativePath.startsWith("/")&&(ae(a.relativePath.startsWith(r),'Absolute route path "'+a.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),a.relativePath=a.relativePath.slice(r.length));let c=cn([r,a.relativePath]),p=n.concat(a);i.children&&i.children.length>0&&(ae(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+c+'".')),kf(i.children,t,p,c)),!(i.path==null&&!i.index)&&t.push({path:c,score:D0(c,i.index),routesMeta:p})};return e.forEach((i,o)=>{var s;if(i.path===""||!((s=i.path)!=null&&s.includes("?")))l(i,o);else for(let a of Ef(i.path))l(i,o,a)}),t}function Ef(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,l=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return l?[i,""]:[i];let o=Ef(r.join("/")),s=[];return s.push(...o.map(a=>a===""?i:[i,a].join("/"))),l&&s.push(...o),s.map(a=>e.startsWith("/")&&a===""?"/":a)}function L0(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:I0(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const P0=/^:[\w-]+$/,T0=3,O0=2,R0=1,M0=10,$0=-2,Mu=e=>e==="*";function D0(e,t){let n=e.split("/"),r=n.length;return n.some(Mu)&&(r+=$0),t&&(r+=O0),n.filter(l=>!Mu(l)).reduce((l,i)=>l+(P0.test(i)?T0:i===""?R0:M0),r)}function I0(e,t){return e.length===t.length&&e.slice(0,-1).every((r,l)=>r===t[l])?e[e.length-1]-t[t.length-1]:0}function F0(e,t,n){let{routesMeta:r}=e,l={},i="/",o=[];for(let s=0;s{let{paramName:m,isOptional:y}=p;if(m==="*"){let g=s[d]||"";o=i.slice(0,i.length-g.length).replace(/(.)\/+$/,"$1")}const x=s[d];return y&&!x?c[m]=void 0:c[m]=(x||"").replace(/%2F/g,"/"),c},{}),pathname:i,pathnameBase:o,pattern:e}}function A0(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),Cf(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let r=[],l="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,s,a)=>(r.push({paramName:s,isOptional:a!=null}),a?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),l+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?l+="\\/*$":e!==""&&e!=="/"&&(l+="(?:(?=\\/|$))"),[new RegExp(l,t?void 0:"i"),r]}function B0(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Cf(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function _f(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}function z0(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:l=""}=typeof e=="string"?er(e):e;return{pathname:n?n.startsWith("/")?n:U0(n,t):t,search:q0(r),hash:Q0(l)}}function U0(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(l=>{l===".."?n.length>1&&n.pop():l!=="."&&n.push(l)}),n.length>1?n.join("/"):"/"}function mo(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function V0(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function H0(e,t){let n=V0(e);return t?n.map((r,l)=>l===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function W0(e,t,n,r){r===void 0&&(r=!1);let l;typeof e=="string"?l=er(e):(l=Zr({},e),ae(!l.pathname||!l.pathname.includes("?"),mo("?","pathname","search",l)),ae(!l.pathname||!l.pathname.includes("#"),mo("#","pathname","hash",l)),ae(!l.search||!l.search.includes("#"),mo("#","search","hash",l)));let i=e===""||l.pathname==="",o=i?"/":l.pathname,s;if(o==null)s=n;else{let d=t.length-1;if(!r&&o.startsWith("..")){let m=o.split("/");for(;m[0]==="..";)m.shift(),d-=1;l.pathname=m.join("/")}s=d>=0?t[d]:"/"}let a=z0(l,s),c=o&&o!=="/"&&o.endsWith("/"),p=(i||o===".")&&n.endsWith("/");return!a.pathname.endsWith("/")&&(c||p)&&(a.pathname+="/"),a}const cn=e=>e.join("/").replace(/\/\/+/g,"/"),K0=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),q0=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Q0=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function Z0(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const bf=["post","put","patch","delete"];new Set(bf);const G0=["get",...bf];new Set(G0);/** - * React Router v6.27.0 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function Gr(){return Gr=Object.assign?Object.assign.bind():function(e){for(var t=1;t{s.current=!0}),E.useCallback(function(c,p){if(p===void 0&&(p={}),!s.current)return;if(typeof c=="number"){r.go(c);return}let d=W0(c,JSON.parse(o),i,p.relative==="path");e==null&&t!=="/"&&(d.pathname=d.pathname==="/"?t:cn([t,d.pathname])),(p.replace?r.replace:r.push)(d,p.state,p)},[t,r,o,i,e])}function J0(e,t){return em(e,t)}function em(e,t,n,r){Ii()||ae(!1);let{navigator:l}=E.useContext($i),{matches:i}=E.useContext(tr),o=i[i.length-1],s=o?o.params:{};o&&o.pathname;let a=o?o.pathnameBase:"/";o&&o.route;let c=nr(),p;if(t){var d;let S=typeof t=="string"?er(t):t;a==="/"||(d=S.pathname)!=null&&d.startsWith(a)||ae(!1),p=S}else p=c;let m=p.pathname||"/",y=m;if(a!=="/"){let S=a.replace(/^\//,"").split("/");y="/"+m.replace(/^\//,"").split("/").slice(S.length).join("/")}let x=j0(e,{pathname:y}),g=im(x&&x.map(S=>Object.assign({},S,{params:Object.assign({},s,S.params),pathname:cn([a,l.encodeLocation?l.encodeLocation(S.pathname).pathname:S.pathname]),pathnameBase:S.pathnameBase==="/"?a:cn([a,l.encodeLocation?l.encodeLocation(S.pathnameBase).pathname:S.pathnameBase])})),i,n,r);return t&&g?E.createElement(Di.Provider,{value:{location:Gr({pathname:"/",search:"",hash:"",state:null,key:"default"},p),navigationType:Ft.Pop}},g):g}function tm(){let e=um(),t=Z0(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,l={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return E.createElement(E.Fragment,null,E.createElement("h2",null,"Unexpected Application Error!"),E.createElement("h3",{style:{fontStyle:"italic"}},t),n?E.createElement("pre",{style:l},n):null,null)}const nm=E.createElement(tm,null);class rm extends E.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?E.createElement(tr.Provider,{value:this.props.routeContext},E.createElement(jf.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function lm(e){let{routeContext:t,match:n,children:r}=e,l=E.useContext(da);return l&&l.static&&l.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(l.staticContext._deepestRenderedBoundaryId=n.route.id),E.createElement(tr.Provider,{value:t},r)}function im(e,t,n,r){var l;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var i;if(!n)return null;if(n.errors)e=n.matches;else if((i=r)!=null&&i.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let o=e,s=(l=n)==null?void 0:l.errors;if(s!=null){let p=o.findIndex(d=>d.route.id&&(s==null?void 0:s[d.route.id])!==void 0);p>=0||ae(!1),o=o.slice(0,Math.min(o.length,p+1))}let a=!1,c=-1;if(n&&r&&r.v7_partialHydration)for(let p=0;p=0?o=o.slice(0,c+1):o=[o[0]];break}}}return o.reduceRight((p,d,m)=>{let y,x=!1,g=null,S=null;n&&(y=s&&d.route.id?s[d.route.id]:void 0,g=d.route.errorElement||nm,a&&(c<0&&m===0?(x=!0,S=null):c===m&&(x=!0,S=d.route.hydrateFallbackElement||null)));let f=t.concat(o.slice(0,m+1)),h=()=>{let v;return y?v=g:x?v=S:d.route.Component?v=E.createElement(d.route.Component,null):d.route.element?v=d.route.element:v=p,E.createElement(lm,{match:d,routeContext:{outlet:p,matches:f,isDataRoute:n!=null},children:v})};return n&&(d.route.ErrorBoundary||d.route.errorElement||m===0)?E.createElement(rm,{location:n.location,revalidation:n.revalidation,component:g,error:y,children:h(),routeContext:{outlet:null,matches:f,isDataRoute:!0}}):h()},null)}var Lf=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(Lf||{}),ci=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(ci||{});function om(e){let t=E.useContext(da);return t||ae(!1),t}function sm(e){let t=E.useContext(Y0);return t||ae(!1),t}function am(e){let t=E.useContext(tr);return t||ae(!1),t}function Pf(e){let t=am(),n=t.matches[t.matches.length-1];return n.route.id||ae(!1),n.route.id}function um(){var e;let t=E.useContext(jf),n=sm(ci.UseRouteError),r=Pf(ci.UseRouteError);return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function cm(){let{router:e}=om(Lf.UseNavigateStable),t=Pf(ci.UseNavigateStable),n=E.useRef(!1);return Nf(()=>{n.current=!0}),E.useCallback(function(l,i){i===void 0&&(i={}),n.current&&(typeof l=="number"?e.navigate(l):e.navigate(l,Gr({fromRouteId:t},i)))},[e,t])}function yr(e){ae(!1)}function dm(e){let{basename:t="/",children:n=null,location:r,navigationType:l=Ft.Pop,navigator:i,static:o=!1,future:s}=e;Ii()&&ae(!1);let a=t.replace(/^\/*/,"/"),c=E.useMemo(()=>({basename:a,navigator:i,static:o,future:Gr({v7_relativeSplatPath:!1},s)}),[a,s,i,o]);typeof r=="string"&&(r=er(r));let{pathname:p="/",search:d="",hash:m="",state:y=null,key:x="default"}=r,g=E.useMemo(()=>{let S=_f(p,a);return S==null?null:{location:{pathname:S,search:d,hash:m,state:y,key:x},navigationType:l}},[a,p,d,m,y,x,l]);return g==null?null:E.createElement($i.Provider,{value:c},E.createElement(Di.Provider,{children:n,value:g}))}function fm(e){let{children:t,location:n}=e;return J0(cs(t),n)}new Promise(()=>{});function cs(e,t){t===void 0&&(t=[]);let n=[];return E.Children.forEach(e,(r,l)=>{if(!E.isValidElement(r))return;let i=[...t,l];if(r.type===E.Fragment){n.push.apply(n,cs(r.props.children,i));return}r.type!==yr&&ae(!1),!r.props.index||!r.props.children||ae(!1);let o={id:r.props.id||i.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(o.children=cs(r.props.children,i)),n.push(o)}),n}/** - * React Router DOM v6.27.0 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */const pm="6";try{window.__reactRouterVersion=pm}catch{}const hm="startTransition",Du=p1[hm];function mm(e){let{basename:t,children:n,future:r,window:l}=e,i=E.useRef();i.current==null&&(i.current=E0({window:l,v5Compat:!0}));let o=i.current,[s,a]=E.useState({action:o.action,location:o.location}),{v7_startTransition:c}=r||{},p=E.useCallback(d=>{c&&Du?Du(()=>a(d)):a(d)},[a,c]);return E.useLayoutEffect(()=>o.listen(p),[o,p]),E.createElement(dm,{basename:t,children:n,location:s.location,navigationType:s.action,navigator:o,future:r})}var Iu;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Iu||(Iu={}));var Fu;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Fu||(Fu={}));const vm="0.8.1.beta.1",pt=({className:e,defaultClasses:t,utilityClasses:n})=>{const[r,l]=E.useState("");return E.useEffect(()=>{const i=[e,t&&t.join(" "),n&&n.join(" ")];l(i.filter(o=>o!==void 0).join(" "))},[e,t,n]),r},Au=e=>{e.preventDefault(),e.returnValue=""},gm=e=>{E.useEffect(()=>{e!==!1?window.addEventListener("beforeunload",Au):window.removeEventListener("beforeunload",Au)},[e])},rr=()=>(E.useEffect(()=>{document.getElementById("index-reset")===null&&document.body.insertAdjacentHTML("afterBegin",'')},[]),E.useRef(document.getElementById("index-reset"))),di=(e,t)=>{const n=t&&t.map(r=>{var p,d,m;const l=encodeURI(r.criteriaKey),i=typeof((p=r.values)==null?void 0:p.value)=="object"?encodeURIComponent(JSON.stringify((d=r.values)==null?void 0:d.value)):encodeURIComponent((m=r.values)==null?void 0:m.value),o=e.indexOf("#"),s=o===-1?"":e.substr(o);e=o===-1?e:e.substr(0,o);const a=new RegExp("([?&])"+l+"=.*?(&|$)","i"),c=e.indexOf("?")!==-1?"&":"?";return e.match(a)?e=e.replace(a,"$1"+l+"="+i+"$2"):e=e+c+l+"="+i,e+s});return t?`${n[n.length-1]}&shared=true`:""},ym=({loading:e,parentElementID:t})=>{document.querySelector(`[data-testid="${t}"]`);const n=document.createElement("div");n.dataset.testid="dom-ready"},wm=(e,t)=>{const n=e.querySelectorAll("fieldset"),r=Array.from(n).filter(l=>l.attributes.required);t(Array.from(r))},xm=(e,t,n,r,l,i)=>{const o=document.getElementById(`${e}`);if(!o.attributes.required){const c=i.filter(g=>g.criteriaKey===e)[0].values.value,p=g=>{for(const S in g)if(g[S]!=="")return!1;return!0},d=[...t,o],m=[...new Set(d)],y=m.filter(g=>!g.id===e),x=l.filter(g=>!g.id.includes(e));p(c)&&r(x),p(c)?n(y):n(m)}},Cm=async(e,t)=>{const n=e.map(i=>Array.from(i.elements).filter(o=>{var s,a;return((s=o.attributes["data-datetype"])==null?void 0:s.value)==="year"?!o.value||o.value&&o.value.length!==4:((a=o.attributes["data-datetype"])==null?void 0:a.value)==="day"?!o.value||o.value&&o.value==="0":!o.value})).flat(),r=e.map(i=>{if(Array.from(i.elements).every(s=>{var a;return!((a=s.attributes.type)!=null&&a.value)==="radio"}))return[];const o=Array.from(i.elements).filter(s=>{var a;return((a=s.attributes.type)==null?void 0:a.value)==="radio"});return o.length>0&&o.every(s=>!s.checked)?i:[]}).flat(),l=[n,r].flat();return t(l),l.length===0},Sm=({hasError:e,criteriaKey:t,fieldSetId:n,useFilter:r=!1})=>{const l=e.map(o=>o.id!==void 0&&n&&n.includes(o.id)||o.id!==void 0&&o.id.includes(t)).includes(!0),i=e.filter(o=>o.id!==void 0&&o.id.includes(n));return r===!0?i:l},Fe={getRequiredFieldsets:wm,getNonRequiredFieldsets:xm,handleCheckForRequiredValues:Cm,handleInvalid:Sm},Tf=e=>e.toLowerCase().replace(/[^a-zA-Z0-9\s]/g,"").replace(/ /g,"-"),jt=e=>({__html:e}),km=(e,t,n=!0)=>{const r=i=>i!=null&&typeof i=="object",l=(i,o)=>{const s=Object.keys(i),a=Object.keys(o);if(s.length!==a.length)return!1;for(const c of s){const p=i[c],d=o[c],m=r(p)&&r(d);if(m&&!l(p,d)||!m&&p!==d)return!1}return!0};if(e.dataLayer){const i={...window.dataLayer[window.dataLayer.length-1]};delete i["gtm.uniqueEventId"],delete i.eventCallback,n===!0?l(i,t)===!1&&e.dataLayer.push(t):e.dataLayer.push(t)}},Em={intro:{event:"bf_page_change",bfData:{pageView:"bf-intro",viewTitle:null}},lifeEventSection:{event:"bf_page_change",bfData:{pageView:"bf-form",viewTitle:null}},errors:{event:"bf_form_page_submit_attempt",bfData:{errors:null,errorCount:{number:null,string:null},formSuccess:!1}},modal:{event:"bf_page_change",bfData:{pageView:"bf-form-completion-modal",viewTitle:null}},verifySelections:{event:"bf_page_change",bfData:{pageView:"bf-verify-selections",viewTitle:null}},resultsView:{event:"bf_page_change",bfData:{pageView:["bf-result-eligible-view","bf-result-not-eligible-view"],viewTitle:null,eligibilityCount:{eligibleBenefitCount:null,moreInfoBenefitCount:null,notEligibleBenefitCount:null}}},openAllBenefitAccordions:{event:"bf_open_all_accordions",bfData:{accordionsOpen:!0}},benefitAccordion:{event:"bf_accordion_open",bfData:{benefitTitle:null}},benefitLink:{event:"bf_benefit_link",bfData:{benefitTitle:null}}},ie={dataLayerPush:km,dataLayerStructure:Em},_m=e=>{if(/^[0-9]*$/.test(`${e.target.value}`)){if(e.target.id.includes("day"))return e.target.value.length===2?/^(0?[1-9]|[12][0-9]|3[01])$/.test(`${e.target.value}`):e.target.value.length<3;if(e.target.id.includes("year")){const t=new Date().getFullYear().toString(),n=t.substring(t.length-1);return e.target.value.length===4?new RegExp(`^(19[0-9][0-9]|20[0-1][0-9]|20[0-2][0-${n}])$`).test(`${e.target.value}`):e.target.value.length<5}}if(e.target.id.includes("month"))return!0},fa=({hide:e})=>{const t=document.querySelector(".bf-qual-survey");t&&t.hidden===!e&&(t.hidden=e)},bm=e=>{const t=e&&new window.Date(Date.UTC(e.year,e.month,e.day));return new Date(t.getTime()+Math.abs(t.getTimezoneOffset()*6e4))},jm={37:1,38:1,39:1,40:1},dn=e=>{e.preventDefault()},Of=e=>{if(jm[e.keyCode])return dn(e),!1},fi={passive:!1},Rf="onwheel"in document.createElement("div")?"wheel":"mousewheel",Nm=()=>{window.addEventListener("DOMMouseScroll",dn,!1),window.addEventListener(Rf,dn,fi),window.addEventListener("touchmove",dn,fi),window.addEventListener("keydown",Of,!1)},Lm=()=>{window.removeEventListener("DOMMouseScroll",dn,!1),window.removeEventListener(Rf,dn,fi),window.removeEventListener("touchmove",dn,fi),window.removeEventListener("keydown",Of,!1)},Bu={disableScroll:Lm,enableScroll:Nm},Pm=({selectedValue:e,conditional:t})=>{const n=t,r=/['>', '>=', '<', '<=', '=']/g,l=n.match(r),i=n.match(/\d+/)[0],o=new RegExp(`[${l}]`,"g"),s=n.replace(/-/g,"/").replace(o,""),a=/-/,c=a.test(n)?new window.Date(s):new window.Date(new Date().getFullYear()-i,new Date().getMonth(),new Date().getDate()),p=new window.Date(Date.UTC(e.year,e.month,e.day,0,0,0));return((m,y,x)=>{const g=x,S=new window.Date(Date.UTC(y.getUTCFullYear(),y.getUTCMonth(),y.getUTCDate(),0,0,0));if(a.test(n)===!1){const f=S.getTime()-g.getTime();switch(m.length&&m.join("")){case">":return f>0;case">=":return f>=0;case"<":return f<0;case"<=":return f<=0;case"=":return+f==0;default:return!1}}else switch(m.length&&m.join("")){case">":return g.getTime()>S.getTime();case">=":return g.getTime()>=S.getTime();case"<":return g.getTime()r.fieldset.criteriaKey===t),n===void 0&&e.forEach(r=>{r.fieldset.children.forEach(l=>{l.fieldsets[0].fieldset.criteriaKey===t&&(n=l.fieldsets[0])})}),n}function Om(e){return e.slice(e.indexOf("?")+1).split("&").map(r=>{const[l,i]=r.split("=");return{criteriaKey:l,value:decodeURIComponent(i)}})}const Rm=()=>/^\/es/.test(window.location.pathname)?"es":"en",Mm=(e,t,n)=>{const r=e.location.pathname.split("/");r.slice(1);const l=r.pop(),i=r.join("/"),o=n==null?void 0:n.map(d=>Tf(d.section.heading)),s=t==="es"?"revisar-selecciónes":"verify-selections",a=t==="es"?"resultados":"results",c=t==="es"?`${a}/no-es-elegible`:`${a}/not-eligible`;return{basePath:i,indexPath:l,formPaths:o,verifySelectionsPath:s,resultsPaths:{resultsPath:a,notEligiblePath:c}}};async function $m(e){let t;if(e===void 0){const r=window.location.search;t=new URLSearchParams(r),t.get("mode")==="draft"&&`${t.get("mode")}`,e=window.location.pathname.split("/").pop()}let n;{const r=document.getElementById("benefit-finder");if(r!==null){const l=r.getAttribute("json-data-file-path"),i=r.getAttribute("draft-json-data-file-path");n=t.get("mode")==="draft"?i:l}}if(n!==void 0)return await fetch(n).then(l=>{if(l!=null&&l.ok)return l.json();throw new Error(l==null?void 0:l.status)}).then(l=>l!=null&&l.data?l:"Something went wrong.").catch(l=>(console.error(l),"Something went wrong."))}const Dm=e=>e&&e.fieldset.inputs[0].inputCriteria.values.find(t=>t.selected),Im=e=>{var t;return e&&((t=e.fieldset)==null?void 0:t.children.map(n=>n.fieldsets[0]))},Fm=e=>e&&e.flatMap((t,n)=>t.section.fieldsets.flatMap(r=>{const l=H.SelectedValue(r);return l&&[{criteriaKey:r.fieldset.inputs[0].inputCriteria.id,values:l},H.Children(r)&&H.Children(r).flatMap(i=>H.SelectedValue(i)&&{criteriaKey:i.fieldset.criteriaKey,values:H.SelectedValue(i)}).filter(i=>i!==void 0)]})).flat().filter(t=>t!==void 0),Am=(e,t)=>{const n=t.length>0&&t.map(l=>(e.forEach(i=>{const o=l.benefit.eligibility.find(s=>s.criteriaKey===i.criteriaKey);if(o!==void 0){const s=()=>{let a;return typeof i.values.value=="object"?a=o.acceptableValues.find(c=>Fi.DateEligibility({selectedValue:i.values.value,conditional:c})):a=o.acceptableValues.find(c=>c===i.values.value),a};o.isEligible=!!s()}}),l));return n&&[].concat(...n)};async function Bm(e,t,n,r){const l={...t};Fi.FindCriteria(l.section.fieldsets,e).then(i=>{var o;if(i)return((o=i.fieldset)==null?void 0:o.inputs[0].inputCriteria.values).forEach(a=>{a.value===r?a.selected=!0:delete a.selected}),n(l)}).catch(i=>(console.error(i),"Something went wrong."))}async function zm(e,t,n,r,l){const i={...t};Fi.FindCriteria(i.section.fieldsets,e).then(o=>{var s;if(o){const a=(s=o.fieldset)==null?void 0:s.inputs[0].inputCriteria.values;return l?(l.includes("day")&&(a[0].value.day=r),l.includes("month")&&(a[0].value.month=r),l.includes("year")&&(a[0].value.year=r),a[0].value={...a[0].value}):a[0].value=r,(p=>{for(const d in p)if(p[d]!==null&&p[d]!==void 0&&p[d]!=="")return!0;return!1})(a[0].value)===!1?a[0].selected=!1:a[0].selected=!0,n(i)}}).catch(o=>(console.error(o),"Something went wrong."))}const Um=(e,t,n,r,l)=>{const i=Fi.GetQueryParams(decodeURI(e));i.filter(a=>a.criteriaKey!==l);const o=(a,c)=>a[c];async function s(){await Promise.all(t.map(async a=>{a.completed=!0,await Promise.all(i.map(async c=>{const p=c.value.includes("{")?JSON.parse(c.value):c.value;p!==void 0&&typeof p=="object"?Yr.DataDate(c.criteriaKey,a,o,p):Yr.Data(c.criteriaKey,a,o,p)}))})),n(H.ElegibilityByCriteria(H.SelectedValueAll(t),r))}s()},Vm=async(e,t)=>{const n=r=>r.map(l=>{const i=l.benefit.eligibility.filter(c=>c.isEligible===!0),o=l.benefit.eligibility.filter(c=>c.isEligible===!1),s=l.benefit.eligibility.filter(c=>c.isEligible===void 0);return i.length===l.benefit.eligibility.length?t[0]:o.length===0&&s.length>0?t[1]:t[2]});try{const r=await n(e),l=(o,s)=>{const a=o.filter(c=>c===s);return{number:a.length,string:`${a.length}`}};return{eligibleBenefitCount:l(r,t[0]),moreInfoBenefitCount:l(r,t[1]),notEligibleBenefitCount:l(r,t[2])}}catch(r){console.error(r)}},H={BenefitsEligibilityCounts:Vm,Children:Im,ElegibilityByCriteria:Am,LifeEvent:$m,Language:Rm,Routes:Mm,SelectedValue:Dm,SelectedValueAll:Fm},Yr={Data:Bm,DataDate:zm,DataFromParams:Um},Fi={FindCriteria:Tm,DateEligibility:Pm,GetQueryParams:Om};var Mf={exports:{}},Hm="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",Wm=Hm,Km=Wm;function $f(){}function Df(){}Df.resetWarningCache=$f;var qm=function(){function e(r,l,i,o,s,a){if(a!==Km){var c=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw c.name="Invariant Violation",c}}e.isRequired=e;function t(){return e}var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:Df,resetWarningCache:$f};return n.PropTypes=n,n};Mf.exports=qm();var pa=Mf.exports;const C=yi(pa),ha=({className:e,children:t,alertFieldRef:n,heading:r,description:l,type:i,hasError:o,noBackground:s,tabIndex:a,errorCount:c,errorList:p,submissionCount:d})=>{const m=i==="error"?["bf-usa-alert","usa-alert","bf-usa-alert--error","usa-alert--error",`${o===!1?"display-none":""}`]:["bf-usa-alert","usa-alert","bf-usa-alert--info","usa-alert--info",`${s?"no-background":""}`];return E.useEffect(()=>{const{errors:y}=ie.dataLayerStructure;o&&p&&ie.dataLayerPush(window,{event:y.event,bfData:{errors:p.map(x=>x==null?void 0:x.id).join(","),errorCount:{number:c,string:`${c}`},formSuccess:!1}},!1)},[d]),u.jsx("div",{className:pt({className:e,defaultClasses:m}),role:"alert",ref:n,tabIndex:a||0,"aria-live":o===!0?"assertive":"polite","aria-hidden":o===void 0?!1:!o,"data-testid":"alert",children:t?u.jsx("div",{className:"bf-usa-alert__body usa-alert__body",children:u.jsx("div",{className:"bf-usa-alert__text usa-alert__text",children:t})}):u.jsxs("div",{className:"bf-usa-alert__body usa-alert__body",children:[u.jsxs(ee,{headingLevel:2,className:"bf-usa-alert__heading usa-alert__heading","data-testid":"bf-alert-heading",children:[r==null?void 0:r.prefix," ",c," ",r==null?void 0:r.suffix]}),u.jsx("p",{className:"bf-usa-alert__text usa-alert__text",children:l}),u.jsx("ul",{"data-testid":"bf-errors-list",children:p&&p.map(y=>u.jsx("li",{"data-testid":"bf-errors-list-item",children:u.jsx("a",{href:`#${y.id}`,children:y.getAttribute("data-errormessage")||y.id})},y.id))})]})})};ha.propTypes={className:C.string,children:C.any,alertFieldRef:C.any,heading:C.object,description:C.string,type:C.string,hasError:C.bool,noBackground:C.bool,tabIndex:C.number,errorCount:C.number};const Qm=e=>e&&typeof e=="object"&&e.nodeType===1;var Zm=(e,t)=>{if(typeof e!="string")return[];(!t||!Qm(t))&&(t=window.document);const n=t.querySelectorAll(e);return Array.prototype.slice.call(n)};/* + */var Qu="popstate";function Zm(e={}){function t(r,l){let{pathname:i,search:o,hash:a}=r.location;return ya("",{pathname:i,search:o,hash:a},l.state&&l.state.usr||null,l.state&&l.state.key||"default")}function n(r,l){return typeof l=="string"?l:el(l)}return Gm(t,n,null,e)}function te(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function ht(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function Ym(){return Math.random().toString(36).substring(2,10)}function Zu(e,t){return{usr:e.state,key:e.key,idx:t}}function ya(e,t,n=null,r){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?lr(t):t,state:n,key:t&&t.key||r||Ym()}}function el({pathname:e="/",search:t="",hash:n=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),n&&n!=="#"&&(e+=n.charAt(0)==="#"?n:"#"+n),e}function lr(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function Gm(e,t,n,r={}){let{window:l=document.defaultView,v5Compat:i=!1}=r,o=l.history,a="POP",s=null,u=d();u==null&&(u=0,o.replaceState({...o.state,idx:u},""));function d(){return(o.state||{idx:null}).idx}function p(){a="POP";let S=d(),h=S==null?null:S-u;u=S,s&&s({action:a,location:y.location,delta:h})}function m(S,h){a="PUSH";let f=ya(y.location,S,h);u=d()+1;let v=Zu(f,u),k=y.createHref(f);try{o.pushState(v,"",k)}catch(N){if(N instanceof DOMException&&N.name==="DataCloneError")throw N;l.location.assign(k)}i&&s&&s({action:a,location:y.location,delta:1})}function g(S,h){a="REPLACE";let f=ya(y.location,S,h);u=d();let v=Zu(f,u),k=y.createHref(f);o.replaceState(v,"",k),i&&s&&s({action:a,location:y.location,delta:0})}function x(S){let h=l.location.origin!=="null"?l.location.origin:l.location.href,f=typeof S=="string"?S:el(S);return f=f.replace(/ $/,"%20"),te(h,`No window.location.(origin|href) available to create URL for href: ${f}`),new URL(f,h)}let y={get action(){return a},get location(){return e(l,o)},listen(S){if(s)throw new Error("A history only accepts one active listener");return l.addEventListener(Qu,p),s=S,()=>{l.removeEventListener(Qu,p),s=null}},createHref(S){return t(l,S)},createURL:x,encodeLocation(S){let h=x(S);return{pathname:h.pathname,search:h.search,hash:h.hash}},push:m,replace:g,go(S){return o.go(S)}};return y}function $f(e,t,n="/"){return Xm(e,t,n,!1)}function Xm(e,t,n,r){let l=typeof t=="string"?lr(t):t,i=Jt(l.pathname||"/",n);if(i==null)return null;let o=Mf(e);Jm(o);let a=null;for(let s=0;a==null&&s{let s={relativePath:a===void 0?i.path||"":a,caseSensitive:i.caseSensitive===!0,childrenIndex:o,route:i};s.relativePath.startsWith("/")&&(te(s.relativePath.startsWith(r),`Absolute route path "${s.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),s.relativePath=s.relativePath.slice(r.length));let u=bt([r,s.relativePath]),d=n.concat(s);i.children&&i.children.length>0&&(te(i.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${u}".`),Mf(i.children,t,d,u)),!(i.path==null&&!i.index)&&t.push({path:u,score:o0(u,i.index),routesMeta:d})};return e.forEach((i,o)=>{var a;if(i.path===""||!((a=i.path)!=null&&a.includes("?")))l(i,o);else for(let s of Df(i.path))l(i,o,s)}),t}function Df(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,l=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return l?[i,""]:[i];let o=Df(r.join("/")),a=[];return a.push(...o.map(s=>s===""?i:[i,s].join("/"))),l&&a.push(...o),a.map(s=>e.startsWith("/")&&s===""?"/":s)}function Jm(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:a0(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}var e0=/^:[\w-]+$/,t0=3,n0=2,r0=1,l0=10,i0=-2,Yu=e=>e==="*";function o0(e,t){let n=e.split("/"),r=n.length;return n.some(Yu)&&(r+=i0),t&&(r+=n0),n.filter(l=>!Yu(l)).reduce((l,i)=>l+(e0.test(i)?t0:i===""?r0:l0),r)}function a0(e,t){return e.length===t.length&&e.slice(0,-1).every((r,l)=>r===t[l])?e[e.length-1]-t[t.length-1]:0}function s0(e,t,n=!1){let{routesMeta:r}=e,l={},i="/",o=[];for(let a=0;a{if(d==="*"){let x=a[m]||"";o=i.slice(0,i.length-x.length).replace(/(.)\/+$/,"$1")}const g=a[m];return p&&!g?u[d]=void 0:u[d]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:i,pathnameBase:o,pattern:e}}function u0(e,t=!1,n=!0){ht(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let r=[],l="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,a,s)=>(r.push({paramName:a,isOptional:s!=null}),s?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),l+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?l+="\\/*$":e!==""&&e!=="/"&&(l+="(?:(?=\\/|$))"),[new RegExp(l,t?void 0:"i"),r]}function c0(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return ht(!1,`The URL path "${e}" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function Jt(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}function d0(e,t="/"){let{pathname:n,search:r="",hash:l=""}=typeof e=="string"?lr(e):e;return{pathname:n?n.startsWith("/")?n:f0(n,t):t,search:m0(r),hash:v0(l)}}function f0(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(l=>{l===".."?n.length>1&&n.pop():l!=="."&&n.push(l)}),n.length>1?n.join("/"):"/"}function ko(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function p0(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function If(e){let t=p0(e);return t.map((n,r)=>r===t.length-1?n.pathname:n.pathnameBase)}function Ff(e,t,n,r=!1){let l;typeof e=="string"?l=lr(e):(l={...e},te(!l.pathname||!l.pathname.includes("?"),ko("?","pathname","search",l)),te(!l.pathname||!l.pathname.includes("#"),ko("#","pathname","hash",l)),te(!l.search||!l.search.includes("#"),ko("#","search","hash",l)));let i=e===""||l.pathname==="",o=i?"/":l.pathname,a;if(o==null)a=n;else{let p=t.length-1;if(!r&&o.startsWith("..")){let m=o.split("/");for(;m[0]==="..";)m.shift(),p-=1;l.pathname=m.join("/")}a=p>=0?t[p]:"/"}let s=d0(l,a),u=o&&o!=="/"&&o.endsWith("/"),d=(i||o===".")&&n.endsWith("/");return!s.pathname.endsWith("/")&&(u||d)&&(s.pathname+="/"),s}var bt=e=>e.join("/").replace(/\/\/+/g,"/"),h0=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),m0=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,v0=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function g0(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}var Af=["POST","PUT","PATCH","DELETE"];new Set(Af);var y0=["GET",...Af];new Set(y0);var ir=w.createContext(null);ir.displayName="DataRouter";var Vi=w.createContext(null);Vi.displayName="DataRouterState";var zf=w.createContext({isTransitioning:!1});zf.displayName="ViewTransition";var w0=w.createContext(new Map);w0.displayName="Fetchers";var x0=w.createContext(null);x0.displayName="Await";var vt=w.createContext(null);vt.displayName="Navigation";var ul=w.createContext(null);ul.displayName="Location";var Tt=w.createContext({outlet:null,matches:[],isDataRoute:!1});Tt.displayName="Route";var Cs=w.createContext(null);Cs.displayName="RouteError";function C0(e,{relative:t}={}){te(cl(),"useHref() may be used only in the context of a component.");let{basename:n,navigator:r}=w.useContext(vt),{hash:l,pathname:i,search:o}=dl(e,{relative:t}),a=i;return n!=="/"&&(a=i==="/"?n:bt([n,i])),r.createHref({pathname:a,search:o,hash:l})}function cl(){return w.useContext(ul)!=null}function lt(){return te(cl(),"useLocation() may be used only in the context of a component."),w.useContext(ul).location}var Bf="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Uf(e){w.useContext(vt).static||w.useLayoutEffect(e)}function bn(){let{isDataRoute:e}=w.useContext(Tt);return e?$0():S0()}function S0(){te(cl(),"useNavigate() may be used only in the context of a component.");let e=w.useContext(ir),{basename:t,navigator:n}=w.useContext(vt),{matches:r}=w.useContext(Tt),{pathname:l}=lt(),i=JSON.stringify(If(r)),o=w.useRef(!1);return Uf(()=>{o.current=!0}),w.useCallback((s,u={})=>{if(ht(o.current,Bf),!o.current)return;if(typeof s=="number"){n.go(s);return}let d=Ff(s,JSON.parse(i),l,u.relative==="path");e==null&&t!=="/"&&(d.pathname=d.pathname==="/"?t:bt([t,d.pathname])),(u.replace?n.replace:n.push)(d,u.state,u)},[t,n,i,l,e])}w.createContext(null);function dl(e,{relative:t}={}){let{matches:n}=w.useContext(Tt),{pathname:r}=lt(),l=JSON.stringify(If(n));return w.useMemo(()=>Ff(e,JSON.parse(l),r,t==="path"),[e,l,r,t])}function k0(e,t){return Hf(e,t)}function Hf(e,t,n,r){var h;te(cl(),"useRoutes() may be used only in the context of a component.");let{navigator:l}=w.useContext(vt),{matches:i}=w.useContext(Tt),o=i[i.length-1],a=o?o.params:{},s=o?o.pathname:"/",u=o?o.pathnameBase:"/",d=o&&o.route;{let f=d&&d.path||"";Vf(s,!d||f.endsWith("*")||f.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${s}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. + +Please change the parent to .`)}let p=lt(),m;if(t){let f=typeof t=="string"?lr(t):t;te(u==="/"||((h=f.pathname)==null?void 0:h.startsWith(u)),`When overriding the location using \`\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${u}" but pathname "${f.pathname}" was given in the \`location\` prop.`),m=f}else m=p;let g=m.pathname||"/",x=g;if(u!=="/"){let f=u.replace(/^\//,"").split("/");x="/"+g.replace(/^\//,"").split("/").slice(f.length).join("/")}let y=$f(e,{pathname:x});ht(d||y!=null,`No routes matched location "${m.pathname}${m.search}${m.hash}" `),ht(y==null||y[y.length-1].route.element!==void 0||y[y.length-1].route.Component!==void 0||y[y.length-1].route.lazy!==void 0,`Matched leaf route at location "${m.pathname}${m.search}${m.hash}" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.`);let S=j0(y&&y.map(f=>Object.assign({},f,{params:Object.assign({},a,f.params),pathname:bt([u,l.encodeLocation?l.encodeLocation(f.pathname).pathname:f.pathname]),pathnameBase:f.pathnameBase==="/"?u:bt([u,l.encodeLocation?l.encodeLocation(f.pathnameBase).pathname:f.pathnameBase])})),i,n,r);return t&&S?w.createElement(ul.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...m},navigationType:"POP"}},S):S}function E0(){let e=O0(),t=g0(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r="rgba(200,200,200, 0.5)",l={padding:"0.5rem",backgroundColor:r},i={padding:"2px 4px",backgroundColor:r},o=null;return console.error("Error handled by React Router default ErrorBoundary:",e),o=w.createElement(w.Fragment,null,w.createElement("p",null,"💿 Hey developer 👋"),w.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",w.createElement("code",{style:i},"ErrorBoundary")," or"," ",w.createElement("code",{style:i},"errorElement")," prop on your route.")),w.createElement(w.Fragment,null,w.createElement("h2",null,"Unexpected Application Error!"),w.createElement("h3",{style:{fontStyle:"italic"}},t),n?w.createElement("pre",{style:l},n):null,o)}var b0=w.createElement(E0,null),_0=class extends w.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){console.error("React Router caught the following error during render",e,t)}render(){return this.state.error!==void 0?w.createElement(Tt.Provider,{value:this.props.routeContext},w.createElement(Cs.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function N0({routeContext:e,match:t,children:n}){let r=w.useContext(ir);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),w.createElement(Tt.Provider,{value:e},n)}function j0(e,t=[],n=null,r=null){if(e==null){if(!n)return null;if(n.errors)e=n.matches;else if(t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let l=e,i=n==null?void 0:n.errors;if(i!=null){let s=l.findIndex(u=>u.route.id&&(i==null?void 0:i[u.route.id])!==void 0);te(s>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(i).join(",")}`),l=l.slice(0,Math.min(l.length,s+1))}let o=!1,a=-1;if(n)for(let s=0;s=0?l=l.slice(0,a+1):l=[l[0]];break}}}return l.reduceRight((s,u,d)=>{let p,m=!1,g=null,x=null;n&&(p=i&&u.route.id?i[u.route.id]:void 0,g=u.route.errorElement||b0,o&&(a<0&&d===0?(Vf("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),m=!0,x=null):a===d&&(m=!0,x=u.route.hydrateFallbackElement||null)));let y=t.concat(l.slice(0,d+1)),S=()=>{let h;return p?h=g:m?h=x:u.route.Component?h=w.createElement(u.route.Component,null):u.route.element?h=u.route.element:h=s,w.createElement(N0,{match:u,routeContext:{outlet:s,matches:y,isDataRoute:n!=null},children:h})};return n&&(u.route.ErrorBoundary||u.route.errorElement||d===0)?w.createElement(_0,{location:n.location,revalidation:n.revalidation,component:g,error:p,children:S(),routeContext:{outlet:null,matches:y,isDataRoute:!0}}):S()},null)}function Ss(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function L0(e){let t=w.useContext(ir);return te(t,Ss(e)),t}function P0(e){let t=w.useContext(Vi);return te(t,Ss(e)),t}function T0(e){let t=w.useContext(Tt);return te(t,Ss(e)),t}function ks(e){let t=T0(e),n=t.matches[t.matches.length-1];return te(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function R0(){return ks("useRouteId")}function O0(){var r;let e=w.useContext(Cs),t=P0("useRouteError"),n=ks("useRouteError");return e!==void 0?e:(r=t.errors)==null?void 0:r[n]}function $0(){let{router:e}=L0("useNavigate"),t=ks("useNavigate"),n=w.useRef(!1);return Uf(()=>{n.current=!0}),w.useCallback(async(l,i={})=>{ht(n.current,Bf),n.current&&(typeof l=="number"?e.navigate(l):await e.navigate(l,{fromRouteId:t,...i}))},[e,t])}var Gu={};function Vf(e,t,n){!t&&!Gu[e]&&(Gu[e]=!0,ht(!1,n))}w.memo(M0);function M0({routes:e,future:t,state:n}){return Hf(e,void 0,n,t)}function kr(e){te(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function D0({basename:e="/",children:t=null,location:n,navigationType:r="POP",navigator:l,static:i=!1}){te(!cl(),"You cannot render a inside another . You should never have more than one in your app.");let o=e.replace(/^\/*/,"/"),a=w.useMemo(()=>({basename:o,navigator:l,static:i,future:{}}),[o,l,i]);typeof n=="string"&&(n=lr(n));let{pathname:s="/",search:u="",hash:d="",state:p=null,key:m="default"}=n,g=w.useMemo(()=>{let x=Jt(s,o);return x==null?null:{location:{pathname:x,search:u,hash:d,state:p,key:m},navigationType:r}},[o,s,u,d,p,m,r]);return ht(g!=null,` is not able to match the URL "${s}${u}${d}" because it does not start with the basename, so the won't render anything.`),g==null?null:w.createElement(vt.Provider,{value:a},w.createElement(ul.Provider,{children:t,value:g}))}function I0({children:e,location:t}){return k0(wa(e),t)}function wa(e,t=[]){let n=[];return w.Children.forEach(e,(r,l)=>{if(!w.isValidElement(r))return;let i=[...t,l];if(r.type===w.Fragment){n.push.apply(n,wa(r.props.children,i));return}te(r.type===kr,`[${typeof r.type=="string"?r.type:r.type.name}] is not a component. All component children of must be a or `),te(!r.props.index||!r.props.children,"An index route cannot have child routes.");let o={id:r.props.id||i.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,hydrateFallbackElement:r.props.hydrateFallbackElement,HydrateFallback:r.props.HydrateFallback,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.hasErrorBoundary===!0||r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(o.children=wa(r.props.children,i)),n.push(o)}),n}var Kl="get",ql="application/x-www-form-urlencoded";function Wi(e){return e!=null&&typeof e.tagName=="string"}function F0(e){return Wi(e)&&e.tagName.toLowerCase()==="button"}function A0(e){return Wi(e)&&e.tagName.toLowerCase()==="form"}function z0(e){return Wi(e)&&e.tagName.toLowerCase()==="input"}function B0(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function U0(e,t){return e.button===0&&(!t||t==="_self")&&!B0(e)}var Rl=null;function H0(){if(Rl===null)try{new FormData(document.createElement("form"),0),Rl=!1}catch{Rl=!0}return Rl}var V0=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Eo(e){return e!=null&&!V0.has(e)?(ht(!1,`"${e}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${ql}"`),null):e}function W0(e,t){let n,r,l,i,o;if(A0(e)){let a=e.getAttribute("action");r=a?Jt(a,t):null,n=e.getAttribute("method")||Kl,l=Eo(e.getAttribute("enctype"))||ql,i=new FormData(e)}else if(F0(e)||z0(e)&&(e.type==="submit"||e.type==="image")){let a=e.form;if(a==null)throw new Error('Cannot submit a