{"version":3,"file":"index-D7iHsyNS.js","sources":["../../../app/javascript/src/explore/elements/Dropdown/index.jsx","../../../app/javascript/src/explore/elements/Sorting/services/LabelFormatter.js","../../../app/javascript/src/explore/elements/Sorting/compositions/List/elements/Option/index.tsx","../../../app/javascript/src/explore/elements/Sorting/compositions/List/index.tsx","../../../app/javascript/src/explore/elements/Sorting/index.tsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/hooks/FiltersContext/index.ts","../../../app/javascript/src/explore/elements/TagFilters/elements/TagFilter/elements/Filter/elements/Button/index.tsx","../../../app/javascript/src/explore/elements/TagFilters/elements/TagFilter/elements/Filter/index.tsx","../../../app/javascript/src/explore/elements/TagFilters/elements/TagFilter/elements/HolidayFilter/index.tsx","../../../app/javascript/src/explore/elements/TagFilters/elements/TagFilter/elements/BadgeFilter/index.tsx","../../../app/javascript/src/explore/elements/TagFilters/elements/TagFilter/elements/FastDeliveryFilter/index.tsx","../../../app/javascript/src/explore/elements/TagFilters/elements/TagFilter/index.tsx","../../../app/javascript/src/explore/elements/TagFilters/index.tsx","../../../app/javascript/src/explore/services/deliveryDate/index.js","../../../app/javascript/src/explore/services/productFilters/mappers/ArrivalDateMapper/index.js","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/ApplyButton/index.tsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/OverlayTrigger/index.tsx","../../../app/javascript/src/explore/elements/Checkbox/index.jsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/FilterFactory/elements/FilterItem/index.tsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/FilterFactory/elements/ArrivalFilter/services/OptionFormatter/index.js","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/FilterFactory/elements/ArrivalFilter/index.jsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/hooks/useHistory/index.js","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/FilterFactory/elements/TreeFilter/index.jsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/FilterFactory/elements/CategoryFilter/index.jsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/FilterFactory/elements/CuisineFilter/index.tsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/FilterFactory/elements/DietFilter/index.jsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/FilterFactory/elements/DietMerchantFilter/index.tsx","../../../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../../../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../../../node_modules/@babel/runtime/helpers/esm/createSuper.js","../../../node_modules/rc-util/es/warning.js","../../../node_modules/rc-slider/es/common/Track.js","../../../node_modules/rc-util/es/Dom/addEventListener.js","../../../node_modules/rc-slider/es/common/Steps.js","../../../node_modules/rc-slider/es/common/Marks.js","../../../node_modules/rc-slider/es/Handle.js","../../../node_modules/rc-util/es/KeyCode.js","../../../node_modules/rc-slider/es/utils.js","../../../node_modules/rc-slider/es/common/createSlider.js","../../../node_modules/rc-slider/es/Slider.js","../../../node_modules/rc-slider/es/Range.js","../../../node_modules/rc-util/es/raf.js","../../../node_modules/rc-util/es/Dom/contains.js","../../../node_modules/rc-util/es/Dom/findDOMNode.js","../../../node_modules/rc-util/es/ref.js","../../../node_modules/rc-util/es/Dom/canUseDom.js","../../../node_modules/rc-util/es/Portal.js","../../../node_modules/rc-trigger/es/utils/alignUtil.js","../../../node_modules/rc-util/es/isMobile.js","../../../node_modules/rc-motion/es/util/motion.js","../../../node_modules/rc-motion/es/interface.js","../../../node_modules/rc-motion/es/hooks/useState.js","../../../node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","../../../node_modules/rc-motion/es/hooks/useNextFrame.js","../../../node_modules/rc-motion/es/hooks/useStepQueue.js","../../../node_modules/rc-motion/es/hooks/useDomMotionEvents.js","../../../node_modules/rc-motion/es/hooks/useStatus.js","../../../node_modules/rc-motion/es/DomWrapper.js","../../../node_modules/rc-motion/es/CSSMotion.js","../../../node_modules/rc-trigger/es/utils/legacyUtil.js","../../../node_modules/rc-trigger/es/Popup/Mask.js","../../../node_modules/rc-util/es/Dom/isVisible.js","../../../node_modules/dom-align/dist-web/index.js","../../../node_modules/rc-align/es/util.js","../../../node_modules/rc-align/es/hooks/useBuffer.js","../../../node_modules/rc-align/es/Align.js","../../../node_modules/rc-trigger/es/Popup/useVisibleStatus.js","../../../node_modules/rc-trigger/es/Popup/useStretchStyle.js","../../../node_modules/rc-trigger/es/Popup/PopupInner.js","../../../node_modules/rc-trigger/es/Popup/MobilePopupInner.js","../../../node_modules/rc-trigger/es/Popup/index.js","../../../node_modules/rc-trigger/es/context.js","../../../node_modules/rc-trigger/es/index.js","../../../node_modules/rc-tooltip/es/placements.js","../../../node_modules/rc-tooltip/es/Content.js","../../../node_modules/rc-tooltip/es/Tooltip.js","../../../node_modules/rc-slider/es/common/SliderTooltip.js","../../../node_modules/rc-slider/es/createSliderWithTooltip.js","../../../node_modules/rc-slider/es/index.js","../../../app/javascript/src/explore/elements/RangeFilter/index.jsx","../../../app/javascript/src/explore/compositions/Filters/services/PriceTipFormatter.js","../../../app/javascript/src/explore/compositions/Filters/elements/Price/index.jsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/FilterFactory/elements/PriceFilter/index.jsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/FilterFactory/elements/ProductTypeFilter/elements/CheckboxItem/index.tsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/FilterFactory/elements/ProductTypeFilter/index.tsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/FilterFactory/elements/RegionFilter/index.jsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/FilterFactory/index.tsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/Loader/index.tsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/index.tsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/Header/index.tsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/index.tsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/services/FiltersToParams/index.ts","../../../app/javascript/src/explore/compositions/FilteredSearch/services/SortLabelFormatter/index.js","../../../app/javascript/src/explore/compositions/FilteredSearch/index.tsx"],"sourcesContent":["import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faChevronDown } from '@fortawesome/pro-solid-svg-icons';\n\nimport SvgIcon from 'src/explore/elements/SvgIcon';\n\n// Horrible hack\nimport styles from './index.module.sass';\n\nconst Option = ({ labelFormatter, selected, value, onSelect }) => (\n
  • \n onSelect( value )}>\n {!!selected && }\n {` ${labelFormatter( value )}`}\n \n
  • \n);\n\nexport const Dropdown = ({ className = '', value, values, labelFormatter, onSelect }) => {\n const formatter = labelFormatter || (( v ) => v );\n\n return (\n
    \n {/* the .btn-sorting is backwards compatibility :( */}\n \n {'Sort By: '}\n {formatter( value )}\n\n \n \n\n
      \n {values.map(( v ) => (\n \n ))}\n
    \n
    \n );\n};\n","const format = ( value ) => {\n switch ( value ) {\n case null:\n return 'Recommended';\n case 'trending':\n return 'Popular Now';\n case 'best_sellers':\n return 'Best Sellers';\n case 'price_low':\n return 'Price: Lowest First';\n case 'price_high':\n return 'Price: Highest First';\n default:\n return '';\n }\n};\n\nexport const LabelFormatter = {\n format,\n};\n","import React, { ReactNode } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCheck } from '@fortawesome/pro-solid-svg-icons';\n\nimport styles from './index.module.sass';\n\ninterface OptionProps {\n children: ReactNode;\n selected: boolean;\n onClick: () => void;\n}\n\nexport const Option = ({ children, selected, onClick }: OptionProps ) => (\n \n {selected && (\n \n )}\n\n {children}\n \n);\n","import React from 'react';\nimport cls from 'classnames';\n\nimport { Option } from './elements/Option';\n\nimport styles from './index.module.sass';\n\ninterface ListProps {\n className?: string;\n labelFormatter: ( option: string ) => string;\n options: Array;\n selection: string | null;\n onSelect: ( value: string ) => void;\n}\n\nexport const List = ({ className, labelFormatter, options, selection, onSelect }: ListProps ) => (\n
    \n

    Sort

    \n\n
      \n {options.map(( option: string ) => (\n
    • \n \n
    • \n ))}\n
    \n
    \n);\n","import React, { useEffect } from 'react';\nimport cls from 'classnames';\n\nimport { Dropdown } from 'src/explore/elements/Dropdown';\n\nimport { LabelFormatter } from './services/LabelFormatter';\nimport { List } from './compositions/List';\n\nconst DEFAULT_OPTIONS = [ null, 'best_sellers', 'trending', 'price_low', 'price_high' ];\n\ninterface SortingProps {\n className?: string;\n format?: 'list';\n labelFormatter?: ( option: string ) => string;\n value: string | null;\n values: Array;\n onChange: ( value: string ) => void;\n}\n\nexport const Sorting = ({\n className,\n format,\n labelFormatter,\n value,\n values,\n onChange,\n}: SortingProps ) => {\n const safeValues = values || DEFAULT_OPTIONS;\n\n useEffect(() => {\n // If selected value is not allowed, select first by default\n if ( !safeValues.includes( value )) {\n onChange( safeValues[0]);\n }\n }, [ onChange, value, safeValues ]);\n\n return format === 'list' ? (\n \n ) : (\n \n );\n};\n","import { createContext } from 'react';\n\nexport type IAPIFilters = {\n arrives_before?: string;\n 'badges[]'?: string[] | string;\n 'categories.id'?: number;\n 'categories.name'?: string;\n collection_ids?: string;\n city?: string;\n cuisine?: string;\n editor_pick?: boolean;\n has_gb_tv_video?: boolean;\n highlight?: string; // comma separated list of product ids\n holidays?: string;\n is_class?: boolean;\n is_sold_out?: boolean;\n fast_delivery?: string;\n free_shipping?: boolean;\n has_available_or_coming_soon_products?: boolean;\n max_price?: number;\n merchant_id?: number;\n min_price?: number;\n occasions?: string;\n on_sale?: boolean;\n past?: boolean;\n product_tags?: string;\n 'product_types[]'?: string[] | string;\n query?: string;\n sort?: string;\n special_holiday?: string;\n 'state.region_name'?: string;\n 'state.name'?: string;\n tags?: string;\n};\n\nexport type IContextState = {\n appliedFilters: IAPIFilters;\n onFilterChange: ( updatedFilters: IAPIFilters ) => void;\n};\n\nconst INITIAL_STATE: IContextState = {\n appliedFilters: {},\n onFilterChange: () => null,\n};\n\nconst FiltersContext = createContext( INITIAL_STATE );\n\nexport { FiltersContext as default, INITIAL_STATE };\n","import React, { ReactNode } from 'react';\nimport cls from 'classnames';\n\nimport styles from './index.module.sass';\n\ninterface ButtonProps {\n children?: ReactNode;\n className?: string;\n disabled: boolean;\n highlightRed?: boolean;\n isSelected?: boolean;\n onClick?: () => void;\n}\n\nexport const Button = ({\n children,\n className,\n disabled,\n highlightRed,\n isSelected,\n onClick,\n}: ButtonProps ) => (\n \n {children}\n \n);\n","import React, { useMemo, useState } from 'react';\nimport { add } from 'date-fns';\n\nimport FiltersContext, {\n IAPIFilters,\n IContextState,\n} from 'src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/hooks/FiltersContext'; // FIXME: import\nimport { ISearchFilter } from 'src/explore/compositions/FilteredSearch/compositions/SearchFilter/types'; // FIXME: import\nimport { ISearchAggregations, ISearchAggregationBucket } from 'src/explore/types/shoppe';\n\nimport { Button } from './elements/Button';\n\ninterface Props {\n aggs?: ISearchAggregations;\n disabled?: boolean;\n label?: string;\n loading?: boolean;\n name: ISearchFilter;\n isSelected?: boolean;\n onClick?: () => void;\n}\n\nexport const Filter = ({\n aggs,\n disabled,\n label,\n loading,\n name,\n isSelected = false,\n onClick,\n}: Props ) => {\n const [ isVisible, setIsVisible ] = useState();\n\n const { appliedFilters, onFilterChange }: IContextState = React.useContext( FiltersContext );\n const text = useMemo(() => {\n if ( label ) return label;\n\n switch ( name ) {\n case 'award_winner':\n return 'Award Winner';\n case 'editor_pick':\n return 'Joe’s Pick';\n case 'free_shipping':\n return 'Free Shipping';\n case 'gb_top_gifts':\n return 'Top 100';\n case 'gorgeous_box':\n return 'Gorgeous Box';\n case 'has_gb_tv_video':\n return 'Shop by Video';\n case 'on_sale':\n return 'Sale';\n default:\n return name;\n }\n }, [ label, name ]);\n\n const isAvailable = useMemo(() => {\n if ( disabled ) return false;\n\n switch ( name ) {\n case 'award_winner':\n return !aggs\n ? true\n : aggs?.badges?.buckets.some(\n ( bucket: ISearchAggregationBucket ) =>\n bucket.key === 'award_winner' && bucket.doc_count > 0\n );\n case 'editor_pick':\n return !aggs\n ? true\n : aggs?.editor_pick?.buckets.some(\n ( bucket: ISearchAggregationBucket ) => bucket.key === 1 && bucket.doc_count > 0\n );\n case 'fast_delivery':\n return !aggs\n ? true\n : aggs?.earliest_delivery_dates?.buckets.some(\n ( bucket ) =>\n bucket.doc_count > 0 &&\n ( bucket.key as number ) <= add( new Date(), { days: 2 }).getTime()\n );\n case 'free_shipping':\n return !aggs\n ? true\n : aggs?.free_shipping?.buckets.some(\n ( bucket: ISearchAggregationBucket ) => bucket.key === 1 && bucket.doc_count > 0\n );\n case 'gb_top_gifts':\n return !aggs\n ? true\n : aggs?.badges?.buckets.some(\n ( bucket: ISearchAggregationBucket ) =>\n bucket.key === 'gb_top_gifts' && bucket.doc_count > 0\n );\n case 'gorgeous_box':\n return !aggs\n ? true\n : aggs?.badges?.buckets.some(\n ( bucket: ISearchAggregationBucket ) =>\n bucket.key === 'gorgeous_box' && bucket.doc_count > 0\n );\n case 'has_gb_tv_video':\n return !aggs\n ? true\n : aggs?.has_gb_tv_video?.buckets.some(\n ( bucket: ISearchAggregationBucket ) => bucket.key === 1 && bucket.doc_count > 0\n );\n case 'on_sale':\n return !aggs\n ? true\n : aggs?.on_sale?.buckets.some(\n ( bucket: ISearchAggregationBucket ) => bucket.key === 1 && bucket.doc_count > 0\n );\n default:\n return true;\n }\n }, [ aggs, disabled, name ]);\n\n if ( isVisible === undefined && !loading ) {\n setIsVisible( isAvailable );\n } else if ( isVisible === false && isAvailable ) {\n setIsVisible( true );\n }\n\n isSelected = isSelected || !!appliedFilters[name as keyof IAPIFilters]; // FIXME: types\n\n const handleClick = () => {\n if ( onClick ) {\n onClick();\n } else {\n onFilterChange({ [name]: isSelected ? undefined : true });\n }\n };\n\n if ( !isVisible ) return null;\n\n return (\n
  • \n \n {text}\n \n
  • \n );\n};\n","import React, { useMemo, useState } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport FiltersContext, {\n IContextState,\n} from 'src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/hooks/FiltersContext'; // FIXME: import\nimport { ISearchAggregations } from 'src/explore/types/shoppe';\nimport { IStore } from 'src/explore/types/store';\n\nimport { Filter } from '../Filter';\n\ninterface HolidayFilterProps {\n aggs: ISearchAggregations;\n loading?: boolean;\n}\n\nexport const HolidayFilter = ({ aggs, loading }: HolidayFilterProps ) => {\n const [ isVisible, setIsVisible ] = useState();\n\n const { appliedFilters, onFilterChange }: IContextState = React.useContext( FiltersContext );\n const { dateString, label } = useSelector(( state: IStore ) => state.data.specialDate || {});\n\n const isAvailable = useMemo(\n () =>\n aggs?.earliest_delivery_dates?.buckets.some(\n ( bucket ) => bucket.doc_count > 0 && ( bucket.key as number ) <= new Date( dateString ).getTime()\n ),\n [ aggs, dateString ]\n );\n\n if ( isVisible === undefined && !loading ) {\n setIsVisible( isAvailable );\n } else if ( isVisible === false && isAvailable ) {\n setIsVisible( true );\n }\n\n const active = appliedFilters.special_holiday === dateString;\n\n if ( !dateString || !label || !isVisible ) return null;\n\n return (\n onFilterChange({ special_holiday: !active ? dateString : undefined })}\n />\n );\n};\n","import React from 'react';\n\nimport FiltersContext, {\n IContextState,\n} from 'src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/hooks/FiltersContext'; // FIXME: import\nimport { ISearchFilter } from 'src/explore/compositions/FilteredSearch/compositions/SearchFilter/types'; // FIXME: import\nimport { ISearchAggregations } from 'src/explore/types/shoppe';\n\nimport { Filter } from '../Filter';\n\ninterface Props {\n aggs?: ISearchAggregations;\n loading?: boolean;\n name: ISearchFilter;\n}\n\nexport const BadgeFilter = ({ aggs, loading, name }: Props ) => {\n const { appliedFilters, onFilterChange }: IContextState = React.useContext( FiltersContext );\n\n const active = appliedFilters['badges[]']?.includes( name );\n\n const handleOnClick = () => {\n const badges = appliedFilters['badges[]'];\n let currentBadges: string[] = [];\n\n if ( badges ) {\n currentBadges = typeof badges === 'string' ? badges.split( ',' ) : badges;\n }\n\n if ( active ) {\n onFilterChange({\n 'badges[]': currentBadges.filter(( badge: string ) => !name.includes( badge )),\n });\n } else {\n const newBadges = [ currentBadges, name ].flat();\n\n onFilterChange({ 'badges[]': newBadges });\n }\n };\n\n return (\n \n );\n};\n","import React from 'react';\nimport { add, format } from 'date-fns';\n\nimport FiltersContext, {\n IContextState,\n} from 'src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/hooks/FiltersContext'; // FIXME: import\nimport { ISearchAggregations } from 'src/explore/types/shoppe';\n\nimport { Filter } from '../Filter';\n\ninterface FastDeliveryFilterProps {\n aggs?: ISearchAggregations;\n loading?: boolean;\n}\n\nexport const FastDeliveryFilter = ({ aggs, loading }: FastDeliveryFilterProps ) => {\n const { appliedFilters, onFilterChange }: IContextState = React.useContext( FiltersContext );\n\n const today = new Date();\n const dateString = format( add( today, { days: 2 }), 'yyyy-MM-dd' );\n\n const active = appliedFilters.fast_delivery === dateString;\n\n return (\n onFilterChange({ fast_delivery: !active ? dateString : undefined })}\n />\n );\n};\n","import React from 'react';\n\nimport { ISearchFilter } from 'src/explore/compositions/FilteredSearch/compositions/SearchFilter/types'; // FIXME: import\n\nimport { ISearchAggregations } from 'src/explore/types/shoppe';\nimport { Filter } from './elements/Filter';\nimport { HolidayFilter } from './elements/HolidayFilter';\nimport { BadgeFilter } from './elements/BadgeFilter';\nimport { FastDeliveryFilter } from './elements/FastDeliveryFilter';\n\ninterface TagFilterProps {\n aggs: ISearchAggregations;\n loading?: boolean;\n name: ISearchFilter;\n}\n\nexport const TagFilter = ({ aggs, loading, name }: TagFilterProps ) => {\n switch ( name ) {\n case 'special_holiday':\n return ;\n case 'fast_delivery':\n return ;\n case 'gorgeous_box':\n return ;\n case 'award_winner':\n return ;\n case 'gb_top_gifts':\n return ;\n default:\n return ;\n }\n};\n","import React from 'react';\nimport cls from 'classnames';\n\nimport { ISearchFilter } from 'src/explore/compositions/FilteredSearch/compositions/SearchFilter/types'; // FIXME: import\nimport { ISearchAggregations } from 'src/explore/types/shoppe';\n\nimport { TagFilter } from './elements/TagFilter';\n\ninterface TagFiltersProps {\n aggs: ISearchAggregations;\n availableFilters?: ISearchFilter[];\n className?: string;\n loading?: boolean;\n}\n\n// TODO: this is replicating what the FilterFactory does, we should consolidate the code\nexport const TagFilters = ({ aggs, availableFilters, className, loading }: TagFiltersProps ) => (\n
      \n {availableFilters.map(( filter ) => (\n \n ))}\n
    \n);\n","// Dates (1/2)\nconst today = new Date();\nconst tomorrow = new Date();\ntomorrow.setDate( today.getDate() + 1 );\nconst lastSunday = new Date();\nlastSunday.setDate( today.getDate() - today.getDay());\n\n// Private helpers\nconst getDayRelativeToLastSunday = ( dayNumber ) => {\n const d = new Date( lastSunday.getTime());\n d.setDate( d.getDate() + dayNumber );\n return d;\n};\n\nconst getDaysRelativeToLastSunday = ( initialDayNumber, endDayNumber ) => {\n const result = [];\n\n for ( let i = initialDayNumber; i <= endDayNumber; i += 1 ) {\n result.push( getDayRelativeToLastSunday( i ));\n }\n\n return result;\n};\n\n// Dates (2/2)\nconst thisWeek = getDaysRelativeToLastSunday( 1, 7 ); // Last Monday to next Sunday\n\nconst thisWeekend = getDaysRelativeToLastSunday( 6, 7 ); // This Saturday & Sunday\n\nconst nextWeek = getDaysRelativeToLastSunday( 8, 14 ); // Next Monday up to following Sunday\n\n// Public methods\nconst isToday = ( day ) => {\n switch ( day ) {\n case 'sunday':\n return today.getDay() === 0;\n case 'monday':\n return today.getDay() === 1;\n case 'tuesday':\n return today.getDay() === 2;\n case 'wednesday':\n return today.getDay() === 3;\n case 'thursday':\n return today.getDay() === 4;\n case 'friday':\n return today.getDay() === 5;\n case 'saturday':\n return today.getDay() === 6;\n default:\n return false;\n }\n};\n\nconst dateToYMD = ( date ) => {\n let d = date.getDate();\n let m = date.getMonth() + 1; // Month from 0 to 11\n const y = date.getFullYear();\n\n // Add leading zeroes\n m = `0${m}`.slice( -2 );\n d = `0${d}`.slice( -2 );\n\n return `${y}-${m}-${d}`;\n};\n\n// Service export\nexport default {\n today,\n tomorrow,\n thisWeek,\n thisWeekend,\n nextWeek,\n dateToYMD,\n isToday,\n};\n","import DeliveryDate from 'src/explore/services/deliveryDate';\n\nconst map = ( text ) => {\n let date;\n\n switch ( text ) {\n case 'tomorrow':\n date = DeliveryDate.tomorrow;\n break;\n case 'this_week':\n // \"this week\" is defined as Monday thru Sunday in deliveryDate, so we need to look at the second to last day\n // because the ES query is a less than or equal to comparison, we want it to look at Saturday\n date = DeliveryDate.thisWeek[DeliveryDate.thisWeek.length - 2];\n break;\n case 'next_week':\n date = DeliveryDate.nextWeek[DeliveryDate.nextWeek.length - 1];\n break;\n default:\n // Check if the value matches yyyy-mm-dd\n if ( text && text.match( /^\\d{4}-\\d{2}-\\d{2}$/ )) {\n return text;\n }\n\n // This prevents the filter from filtering for wrong values\n return null;\n }\n\n return DeliveryDate.dateToYMD( date );\n};\n\nexport default {\n map,\n};\n","import React from 'react';\n\ninterface ApplyButtonProps {\n disabled: boolean;\n onClick: () => void;\n}\n\nexport const ApplyButton = ({ disabled, onClick }: ApplyButtonProps ) => (\n
    \n \n Apply\n \n
    \n);\n","import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSlidersSimple } from '@fortawesome/pro-regular-svg-icons';\n\nimport styles from './index.module.sass';\n\ninterface OverlayTriggerProps {\n filterCount?: number;\n onClick: () => void;\n}\n\nexport const OverlayTrigger = ({ filterCount, onClick }: OverlayTriggerProps ) => (\n \n \n Filter\n {!!filterCount && ` (${filterCount})`}\n \n);\n","import React from 'react';\nimport cls from 'classnames';\n\nimport styles from './index.module.sass';\n\nexport const Checkbox = ({ checked, children, className, name, type, value, onChange }) => (\n \n);\n","import React, { ReactNode } from 'react';\nimport cls from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faChevronLeft } from '@fortawesome/pro-solid-svg-icons';\n\nimport styles from './index.module.sass';\n\ninterface FilterItemProps {\n backTitle?: string;\n children: ReactNode;\n className?: string;\n currentValue?: string;\n loading?: boolean;\n name: string;\n onTitleClick?: () => void;\n}\n\nexport const FilterItem = ({\n backTitle,\n children,\n className,\n currentValue,\n loading,\n name,\n onTitleClick,\n}: FilterItemProps ) => {\n const handleClick = () => {\n if ( loading ) return;\n\n if ( currentValue && onTitleClick ) {\n onTitleClick();\n }\n };\n\n const handleKeyDown = ( event: React.KeyboardEvent ) => {\n if ( event.key === 'Enter' || event.key === ' ' ) {\n handleClick();\n }\n };\n\n return (\n
  • \n

    \n {currentValue ? (\n \n
    \n \n {backTitle || name}\n
    \n
    {currentValue}
    \n \n ) : (\n name\n )}\n

    \n\n {loading ? (\n
    \n Loading...\n
    \n ) : (\n children\n )}\n
  • \n );\n};\n","import moment from 'moment';\n\nconst format = ( option ) => {\n switch ( option ) {\n case '':\n return 'no rush';\n case 'tomorrow':\n return 'tomorrow';\n case 'this_week':\n return 'this week';\n case 'next_week':\n return 'next week';\n default: {\n const d = moment( option );\n\n return d.isValid() ? d.format( 'l' ) : null;\n }\n }\n};\n\nexport const OptionFormatter = {\n format,\n};\n","import React, { useCallback, useContext, useMemo, useState } from 'react';\nimport cls from 'classnames';\n// TODO: replace with date-fns\n// but it doesn't have full feature parity with moment (see other TODO in SingleDatePicker below)\nimport moment from 'moment';\n\nimport Breakpoints from 'src/explore/services/breakpoints';\n\nimport { Checkbox } from 'src/explore/elements/Checkbox';\nimport { SingleDatePicker } from 'src/explore/elements/SingleDatePicker';\n\nimport FiltersContext from '../../../../hooks/FiltersContext';\nimport { FilterItem } from '../FilterItem';\nimport { OptionFormatter } from './services/OptionFormatter';\n\nimport styles from './index.module.sass';\n\nconst DISCLAIMER_TEXT = 'You can specify your delivery (up to 90 days) at checkout.';\n\nconst DatepickerNote = () => (\n /* The bs4 is because the component is rendered on a portal */\n
    \n
    \n

    FILTER FOODS THAT CAN ARRIVE ON OR BEFORE A SPECIFIC DATE

    \n

    \n Have a party coming up or giving a gift? We’ll show you the products that can make it in\n time.*\n
    \n {`*${DISCLAIMER_TEXT}`}\n

    \n
    \n
    \n);\n\nconst ArrivalFilter = ({ className, earliestDate }) => {\n const { appliedFilters, onFilterChange } = useContext( FiltersContext );\n const [ datePicker, setDatePicker ] = useState({\n date: null,\n focused: false,\n });\n const deadline = useMemo(() => moment( new Date()).add( 90, 'days' ), []);\n\n const selectedOption = appliedFilters.arrives_before || '';\n\n const earliestDateObj = useMemo(\n () =>\n earliestDate && moment.utc( earliestDate ).isAfter() ? moment.utc( earliestDate ) : moment(),\n [ earliestDate ]\n );\n\n const endOfWeekOptions = useMemo(\n () =>\n // moment defines end of week as Saturday at 11:59PM (in the user's timezone)\n earliestDate && moment.utc( earliestDate ).isBefore( moment().endOf( 'week' )),\n [ earliestDate ]\n );\n\n const handleFilterChange = useCallback(\n ( date ) => {\n onFilterChange({ arrives_before: date });\n setDatePicker(( state ) => ({ ...state, date: null }));\n },\n [ onFilterChange, setDatePicker ]\n );\n\n // If all sold out, then don't show filter\n if ( !earliestDate && !selectedOption ) return null;\n\n return (\n handleFilterChange( null )}\n >\n {!selectedOption && (\n
      \n
    • \n handleFilterChange( '' )}\n >\n {OptionFormatter.format( '' )}\n \n
    • \n\n {endOfWeekOptions && (\n
    • \n onFilterChange({ arrives_before: 'this_week' })}\n >\n {OptionFormatter.format( 'this_week' )}\n \n
    • \n )}\n\n
    • \n {\n setDatePicker(( state ) => ({ ...state, focused: true }));\n }}\n >\n
      \n \n // TODO: date-fns doesn't have isSameOrBefore/isSameOrAfter\n // https://stackoverflow.com/questions/68314103/issameorbefore-implementation-for-date-fns\n value.isSameOrBefore( earliestDateObj ) || value.isSameOrAfter( deadline )\n }\n numberOfMonths={Breakpoints.appliesTo( 'md' ) ? 3 : 1}\n placeholder=\"Or pick a date\"\n renderCalendarInfo={DatepickerNote}\n showDefaultInputIcon\n small\n withPortal\n onDateChange={( date ) => {\n setDatePicker(( state ) => ({ ...state, date }));\n onFilterChange({ arrives_before: date.format( 'YYYY-MM-DD' ) });\n }}\n onFocusChange={({ focused }) => {\n setDatePicker(( state ) => ({ ...state, focused }));\n }}\n />\n
      \n \n
    • \n
    \n )}\n \n );\n};\n\nexport default ArrivalFilter;\n","import { useState } from 'react';\n\nexport default () => {\n const [ history, setHistory ] = useState([]);\n\n const push = ( value ) => {\n setHistory([ ...history, value ]);\n };\n\n const pop = () => {\n setHistory( history.slice( 0, -1 ));\n };\n\n return [ history, pop, push ];\n};\n","import React, { useEffect } from 'react';\n\nimport { FilterItem } from '../FilterItem';\n\nimport useHistory from '../../../../hooks/useHistory';\n\nimport styles from './index.module.sass';\n\nconst TreeFilter = ({ activeFilter, className, defaultTitle, filters, onBack, onNavigate }) => {\n const [ history, pop, push ] = useHistory();\n\n // Save first value to history if set\n useEffect(() => {\n if ( history.length === 0 && activeFilter ) push( activeFilter );\n }, [ activeFilter, history, push ]);\n\n const handleNavigateBack = () => {\n onBack( history[history.length - 2]);\n pop();\n };\n\n const handleNavigateForward = ( filter ) => {\n onNavigate( filter.key );\n push( filter.key );\n };\n\n return (\n \n {filters?.length > 0 && (\n
      \n {filters.map(( filter ) => (\n
    • \n handleNavigateForward( filter )}\n >\n {filter.key} {`(${filter.doc_count})`}\n \n
    • \n ))}\n
    \n )}\n \n );\n};\n\nexport default TreeFilter;\n","import React, { useContext, useEffect, useRef } from 'react';\nimport cls from 'classnames';\n\nimport TreeFilter from '../TreeFilter';\n\nimport FiltersContext from '../../../../hooks/FiltersContext';\n\nconst CategoryFilter = ({ className, categories = []}) => {\n const forceShow = useRef( false );\n const { appliedFilters, onFilterChange } = useContext( FiltersContext );\n\n useEffect(() => {\n if ( forceShow.current ) return;\n\n forceShow.current = categories.length > 1;\n }, [ categories ]);\n\n const currentFilter = appliedFilters['categories.name'];\n\n if ( forceShow.current || currentFilter ) {\n return (\n onFilterChange({ 'categories.name': filter })}\n onNavigate={( filter ) => onFilterChange({ 'categories.name': filter })}\n />\n );\n }\n\n return null;\n};\n\nexport default CategoryFilter;\n","import * as React from 'react';\nimport cls from 'classnames';\n\nimport { ISearchAggregationBucket } from 'src/explore/types/shoppe';\n\nimport FiltersContext, { IAPIFilters } from '../../../../hooks/FiltersContext';\nimport TreeFilter from '../TreeFilter';\n\ninterface Props {\n className?: string;\n cuisine: ISearchAggregationBucket[];\n}\n\nexport const CuisineFilter: React.FC = ({ className, cuisine }) => {\n const {\n appliedFilters,\n onFilterChange,\n }: {\n appliedFilters: IAPIFilters;\n onFilterChange: ( filter: IAPIFilters ) => void;\n } = React.useContext( FiltersContext );\n\n if ( !cuisine?.length ) return null;\n\n return (\n onFilterChange({ cuisine: undefined })}\n onNavigate={( filter: string ) => onFilterChange({ cuisine: filter })}\n />\n );\n};\n","import React, { useContext } from 'react';\nimport cls from 'classnames';\n\nimport TreeFilter from '../TreeFilter';\n\nimport FiltersContext from '../../../../hooks/FiltersContext';\n\nconst DietFilter = ({ className, tags }) => {\n const { appliedFilters, onFilterChange } = useContext( FiltersContext );\n\n if ( !tags?.length ) return null;\n\n return (\n onFilterChange({ tags: undefined })}\n onNavigate={( filter ) => onFilterChange({ tags: filter })}\n />\n );\n};\n\nexport default DietFilter;\n","import * as React from 'react';\nimport cls from 'classnames';\n\nimport { ISearchAggregationBucket } from 'src/explore/types/shoppe';\n\nimport FiltersContext, { IAPIFilters } from '../../../../hooks/FiltersContext';\nimport TreeFilter from '../TreeFilter';\n\ninterface Props {\n className?: string;\n tags: ISearchAggregationBucket[];\n}\n\nexport const DietMerchantFilter: React.FC = ({ className, tags }) => {\n const {\n appliedFilters,\n onFilterChange,\n }: {\n appliedFilters: IAPIFilters;\n onFilterChange: ( filter: IAPIFilters ) => void;\n } = React.useContext( FiltersContext );\n\n if ( !tags?.length ) return null;\n\n return (\n onFilterChange({ product_tags: undefined })}\n onNavigate={( filter: string ) => onFilterChange({ product_tags: filter })}\n />\n );\n};\n","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","/* eslint-disable no-console */\nvar warned = {};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.error(\"Warning: \".concat(message));\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.warn(\"Note: \".concat(message));\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nexport default warningOnce;\n/* eslint-enable */","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport React from 'react';\n\nvar Track = function Track(props) {\n var _ref, _ref2;\n\n var className = props.className,\n included = props.included,\n vertical = props.vertical,\n style = props.style;\n var length = props.length,\n offset = props.offset,\n reverse = props.reverse;\n\n if (length < 0) {\n reverse = !reverse;\n length = Math.abs(length);\n offset = 100 - offset;\n }\n\n var positonStyle = vertical ? (_ref = {}, _defineProperty(_ref, reverse ? 'top' : 'bottom', \"\".concat(offset, \"%\")), _defineProperty(_ref, reverse ? 'bottom' : 'top', 'auto'), _defineProperty(_ref, \"height\", \"\".concat(length, \"%\")), _ref) : (_ref2 = {}, _defineProperty(_ref2, reverse ? 'right' : 'left', \"\".concat(offset, \"%\")), _defineProperty(_ref2, reverse ? 'left' : 'right', 'auto'), _defineProperty(_ref2, \"width\", \"\".concat(length, \"%\")), _ref2);\n\n var elStyle = _objectSpread(_objectSpread({}, style), positonStyle);\n\n return included ? /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: elStyle\n }) : null;\n};\n\nexport default Track;","import ReactDOM from 'react-dom';\nexport default function addEventListenerWrap(target, eventType, cb, option) {\n /* eslint camelcase: 2 */\n var callback = ReactDOM.unstable_batchedUpdates ? function run(e) {\n ReactDOM.unstable_batchedUpdates(cb, e);\n } : cb;\n\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, option);\n }\n\n return {\n remove: function remove() {\n if (target.removeEventListener) {\n target.removeEventListener(eventType, callback);\n }\n }\n };\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport warning from \"rc-util/es/warning\";\n\nvar calcPoints = function calcPoints(vertical, marks, dots, step, min, max) {\n warning(dots ? step > 0 : true, '`Slider[step]` should be a positive number in order to make Slider[dots] work.');\n var points = Object.keys(marks).map(parseFloat).sort(function (a, b) {\n return a - b;\n });\n\n if (dots && step) {\n for (var i = min; i <= max; i += step) {\n if (points.indexOf(i) === -1) {\n points.push(i);\n }\n }\n }\n\n return points;\n};\n\nvar Steps = function Steps(_ref) {\n var prefixCls = _ref.prefixCls,\n vertical = _ref.vertical,\n reverse = _ref.reverse,\n marks = _ref.marks,\n dots = _ref.dots,\n step = _ref.step,\n included = _ref.included,\n lowerBound = _ref.lowerBound,\n upperBound = _ref.upperBound,\n max = _ref.max,\n min = _ref.min,\n dotStyle = _ref.dotStyle,\n activeDotStyle = _ref.activeDotStyle;\n var range = max - min;\n var elements = calcPoints(vertical, marks, dots, step, min, max).map(function (point) {\n var _classNames;\n\n var offset = \"\".concat(Math.abs(point - min) / range * 100, \"%\");\n var isActived = !included && point === upperBound || included && point <= upperBound && point >= lowerBound;\n var style = vertical ? _objectSpread(_objectSpread({}, dotStyle), {}, _defineProperty({}, reverse ? 'top' : 'bottom', offset)) : _objectSpread(_objectSpread({}, dotStyle), {}, _defineProperty({}, reverse ? 'right' : 'left', offset));\n\n if (isActived) {\n style = _objectSpread(_objectSpread({}, style), activeDotStyle);\n }\n\n var pointClassName = classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-dot\"), true), _defineProperty(_classNames, \"\".concat(prefixCls, \"-dot-active\"), isActived), _defineProperty(_classNames, \"\".concat(prefixCls, \"-dot-reverse\"), reverse), _classNames));\n return /*#__PURE__*/React.createElement(\"span\", {\n className: pointClassName,\n style: style,\n key: point\n });\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-step\")\n }, elements);\n};\n\nexport default Steps;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport React from 'react';\nimport classNames from 'classnames';\n\nvar Marks = function Marks(_ref) {\n var className = _ref.className,\n vertical = _ref.vertical,\n reverse = _ref.reverse,\n marks = _ref.marks,\n included = _ref.included,\n upperBound = _ref.upperBound,\n lowerBound = _ref.lowerBound,\n max = _ref.max,\n min = _ref.min,\n onClickLabel = _ref.onClickLabel;\n var marksKeys = Object.keys(marks);\n var range = max - min;\n var elements = marksKeys.map(parseFloat).sort(function (a, b) {\n return a - b;\n }).map(function (point) {\n var _classNames;\n\n var markPoint = marks[point];\n var markPointIsObject = _typeof(markPoint) === 'object' && ! /*#__PURE__*/React.isValidElement(markPoint);\n var markLabel = markPointIsObject ? markPoint.label : markPoint;\n\n if (!markLabel && markLabel !== 0) {\n return null;\n }\n\n var isActive = !included && point === upperBound || included && point <= upperBound && point >= lowerBound;\n var markClassName = classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(className, \"-text\"), true), _defineProperty(_classNames, \"\".concat(className, \"-text-active\"), isActive), _classNames));\n\n var bottomStyle = _defineProperty({\n marginBottom: '-50%'\n }, reverse ? 'top' : 'bottom', \"\".concat((point - min) / range * 100, \"%\"));\n\n var leftStyle = _defineProperty({\n transform: \"translateX(\".concat(reverse ? \"50%\" : \"-50%\", \")\"),\n msTransform: \"translateX(\".concat(reverse ? \"50%\" : \"-50%\", \")\")\n }, reverse ? 'right' : 'left', \"\".concat((point - min) / range * 100, \"%\"));\n\n var style = vertical ? bottomStyle : leftStyle;\n var markStyle = markPointIsObject ? _objectSpread(_objectSpread({}, style), markPoint.style) : style;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: markClassName,\n style: markStyle,\n key: point,\n onMouseDown: function onMouseDown(e) {\n return onClickLabel(e, point);\n },\n onTouchStart: function onTouchStart(e) {\n return onClickLabel(e, point);\n }\n }, markLabel);\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, elements);\n};\n\nexport default Marks;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\n\nvar Handle = /*#__PURE__*/function (_React$Component) {\n _inherits(Handle, _React$Component);\n\n var _super = _createSuper(Handle);\n\n function Handle() {\n var _this;\n\n _classCallCheck(this, Handle);\n\n _this = _super.apply(this, arguments);\n _this.state = {\n clickFocused: false\n };\n\n _this.setHandleRef = function (node) {\n _this.handle = node;\n };\n\n _this.handleMouseUp = function () {\n if (document.activeElement === _this.handle) {\n _this.setClickFocus(true);\n }\n };\n\n _this.handleMouseDown = function (e) {\n // avoid selecting text during drag\n // https://github.com/ant-design/ant-design/issues/25010\n e.preventDefault(); // fix https://github.com/ant-design/ant-design/issues/15324\n\n _this.focus();\n };\n\n _this.handleBlur = function () {\n _this.setClickFocus(false);\n };\n\n _this.handleKeyDown = function () {\n _this.setClickFocus(false);\n };\n\n return _this;\n }\n\n _createClass(Handle, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // mouseup won't trigger if mouse moved out of handle,\n // so we listen on document here.\n this.onMouseUpListener = addEventListener(document, 'mouseup', this.handleMouseUp);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.onMouseUpListener) {\n this.onMouseUpListener.remove();\n }\n }\n }, {\n key: \"setClickFocus\",\n value: function setClickFocus(focused) {\n this.setState({\n clickFocused: focused\n });\n }\n }, {\n key: \"clickFocus\",\n value: function clickFocus() {\n this.setClickFocus(true);\n this.focus();\n }\n }, {\n key: \"focus\",\n value: function focus() {\n this.handle.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.handle.blur();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _ref, _ref2;\n\n var _this$props = this.props,\n prefixCls = _this$props.prefixCls,\n vertical = _this$props.vertical,\n reverse = _this$props.reverse,\n offset = _this$props.offset,\n style = _this$props.style,\n disabled = _this$props.disabled,\n min = _this$props.min,\n max = _this$props.max,\n value = _this$props.value,\n tabIndex = _this$props.tabIndex,\n ariaLabel = _this$props.ariaLabel,\n ariaLabelledBy = _this$props.ariaLabelledBy,\n ariaValueTextFormatter = _this$props.ariaValueTextFormatter,\n restProps = _objectWithoutProperties(_this$props, [\"prefixCls\", \"vertical\", \"reverse\", \"offset\", \"style\", \"disabled\", \"min\", \"max\", \"value\", \"tabIndex\", \"ariaLabel\", \"ariaLabelledBy\", \"ariaValueTextFormatter\"]);\n\n var className = classNames(this.props.className, _defineProperty({}, \"\".concat(prefixCls, \"-handle-click-focused\"), this.state.clickFocused));\n var positionStyle = vertical ? (_ref = {}, _defineProperty(_ref, reverse ? 'top' : 'bottom', \"\".concat(offset, \"%\")), _defineProperty(_ref, reverse ? 'bottom' : 'top', 'auto'), _defineProperty(_ref, \"transform\", reverse ? null : \"translateY(+50%)\"), _ref) : (_ref2 = {}, _defineProperty(_ref2, reverse ? 'right' : 'left', \"\".concat(offset, \"%\")), _defineProperty(_ref2, reverse ? 'left' : 'right', 'auto'), _defineProperty(_ref2, \"transform\", \"translateX(\".concat(reverse ? '+' : '-', \"50%)\")), _ref2);\n\n var elStyle = _objectSpread(_objectSpread({}, style), positionStyle);\n\n var mergedTabIndex = tabIndex || 0;\n\n if (disabled || tabIndex === null) {\n mergedTabIndex = null;\n }\n\n var ariaValueText;\n\n if (ariaValueTextFormatter) {\n ariaValueText = ariaValueTextFormatter(value);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: this.setHandleRef,\n tabIndex: mergedTabIndex\n }, restProps, {\n className: className,\n style: elStyle,\n onBlur: this.handleBlur,\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleMouseDown // aria attribute\n ,\n role: \"slider\",\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n \"aria-valuenow\": value,\n \"aria-disabled\": !!disabled,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-valuetext\": ariaValueText\n }));\n }\n }]);\n\n return Handle;\n}(React.Component);\n\nexport { Handle as default };","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n\n /**\n * TAB\n */\n TAB: 9,\n\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n\n /**\n * ENTER\n */\n ENTER: 13,\n\n /**\n * SHIFT\n */\n SHIFT: 16,\n\n /**\n * CTRL\n */\n CTRL: 17,\n\n /**\n * ALT\n */\n ALT: 18,\n\n /**\n * PAUSE\n */\n PAUSE: 19,\n\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n\n /**\n * ESC\n */\n ESC: 27,\n\n /**\n * SPACE\n */\n SPACE: 32,\n\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n\n /**\n * END\n */\n END: 35,\n\n /**\n * HOME\n */\n HOME: 36,\n\n /**\n * LEFT\n */\n LEFT: 37,\n\n /**\n * UP\n */\n UP: 38,\n\n /**\n * RIGHT\n */\n RIGHT: 39,\n\n /**\n * DOWN\n */\n DOWN: 40,\n\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n\n /**\n * INSERT\n */\n INSERT: 45,\n\n /**\n * DELETE\n */\n DELETE: 46,\n\n /**\n * ZERO\n */\n ZERO: 48,\n\n /**\n * ONE\n */\n ONE: 49,\n\n /**\n * TWO\n */\n TWO: 50,\n\n /**\n * THREE\n */\n THREE: 51,\n\n /**\n * FOUR\n */\n FOUR: 52,\n\n /**\n * FIVE\n */\n FIVE: 53,\n\n /**\n * SIX\n */\n SIX: 54,\n\n /**\n * SEVEN\n */\n SEVEN: 55,\n\n /**\n * EIGHT\n */\n EIGHT: 56,\n\n /**\n * NINE\n */\n NINE: 57,\n\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n\n /**\n * A\n */\n A: 65,\n\n /**\n * B\n */\n B: 66,\n\n /**\n * C\n */\n C: 67,\n\n /**\n * D\n */\n D: 68,\n\n /**\n * E\n */\n E: 69,\n\n /**\n * F\n */\n F: 70,\n\n /**\n * G\n */\n G: 71,\n\n /**\n * H\n */\n H: 72,\n\n /**\n * I\n */\n I: 73,\n\n /**\n * J\n */\n J: 74,\n\n /**\n * K\n */\n K: 75,\n\n /**\n * L\n */\n L: 76,\n\n /**\n * M\n */\n M: 77,\n\n /**\n * N\n */\n N: 78,\n\n /**\n * O\n */\n O: 79,\n\n /**\n * P\n */\n P: 80,\n\n /**\n * Q\n */\n Q: 81,\n\n /**\n * R\n */\n R: 82,\n\n /**\n * S\n */\n S: 83,\n\n /**\n * T\n */\n T: 84,\n\n /**\n * U\n */\n U: 85,\n\n /**\n * V\n */\n V: 86,\n\n /**\n * W\n */\n W: 87,\n\n /**\n * X\n */\n X: 88,\n\n /**\n * Y\n */\n Y: 89,\n\n /**\n * Z\n */\n Z: 90,\n\n /**\n * META\n */\n META: 91,\n\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n\n /**\n * F1\n */\n F1: 112,\n\n /**\n * F2\n */\n F2: 113,\n\n /**\n * F3\n */\n F3: 114,\n\n /**\n * F4\n */\n F4: 115,\n\n /**\n * F5\n */\n F5: 116,\n\n /**\n * F6\n */\n F6: 117,\n\n /**\n * F7\n */\n F7: 118,\n\n /**\n * F8\n */\n F8: 119,\n\n /**\n * F9\n */\n F9: 120,\n\n /**\n * F10\n */\n F10: 121,\n\n /**\n * F11\n */\n F11: 122,\n\n /**\n * F12\n */\n F12: 123,\n\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n\n /**\n * DASH\n */\n DASH: 189,\n\n /**\n * EQUALS\n */\n EQUALS: 187,\n\n /**\n * COMMA\n */\n COMMA: 188,\n\n /**\n * PERIOD\n */\n PERIOD: 190,\n\n /**\n * SLASH\n */\n SLASH: 191,\n\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n\n if (e.altKey && !e.ctrlKey || e.metaKey || // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n } // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n\n\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n\n default:\n return true;\n }\n },\n\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n } // Safari sends zero key code for non-latin characters.\n\n\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { findDOMNode } from 'react-dom';\nimport keyCode from \"rc-util/es/KeyCode\";\nexport function isEventFromHandle(e, handles) {\n try {\n return Object.keys(handles).some(function (key) {\n return e.target === findDOMNode(handles[key]);\n });\n } catch (error) {\n return false;\n }\n}\nexport function isValueOutOfRange(value, _ref) {\n var min = _ref.min,\n max = _ref.max;\n return value < min || value > max;\n}\nexport function isNotTouchEvent(e) {\n return e.touches.length > 1 || e.type.toLowerCase() === 'touchend' && e.touches.length > 0;\n}\nexport function getClosestPoint(val, _ref2) {\n var marks = _ref2.marks,\n step = _ref2.step,\n min = _ref2.min,\n max = _ref2.max;\n var points = Object.keys(marks).map(parseFloat);\n\n if (step !== null) {\n var baseNum = Math.pow(10, getPrecision(step));\n var maxSteps = Math.floor((max * baseNum - min * baseNum) / (step * baseNum));\n var steps = Math.min((val - min) / step, maxSteps);\n var closestStep = Math.round(steps) * step + min;\n points.push(closestStep);\n }\n\n var diffs = points.map(function (point) {\n return Math.abs(val - point);\n });\n return points[diffs.indexOf(Math.min.apply(Math, _toConsumableArray(diffs)))];\n}\nexport function getPrecision(step) {\n var stepString = step.toString();\n var precision = 0;\n\n if (stepString.indexOf('.') >= 0) {\n precision = stepString.length - stepString.indexOf('.') - 1;\n }\n\n return precision;\n}\nexport function getMousePosition(vertical, e) {\n return vertical ? e.clientY : e.pageX;\n}\nexport function getTouchPosition(vertical, e) {\n return vertical ? e.touches[0].clientY : e.touches[0].pageX;\n}\nexport function getHandleCenterPosition(vertical, handle) {\n var coords = handle.getBoundingClientRect();\n return vertical ? coords.top + coords.height * 0.5 : window.pageXOffset + coords.left + coords.width * 0.5;\n}\nexport function ensureValueInRange(val, _ref3) {\n var max = _ref3.max,\n min = _ref3.min;\n\n if (val <= min) {\n return min;\n }\n\n if (val >= max) {\n return max;\n }\n\n return val;\n}\nexport function ensureValuePrecision(val, props) {\n var step = props.step;\n var closestPoint = isFinite(getClosestPoint(val, props)) ? getClosestPoint(val, props) : 0; // eslint-disable-line\n\n return step === null ? closestPoint : parseFloat(closestPoint.toFixed(getPrecision(step)));\n}\nexport function pauseEvent(e) {\n e.stopPropagation();\n e.preventDefault();\n}\nexport function calculateNextValue(func, value, props) {\n var operations = {\n increase: function increase(a, b) {\n return a + b;\n },\n decrease: function decrease(a, b) {\n return a - b;\n }\n };\n var indexToGet = operations[func](Object.keys(props.marks).indexOf(JSON.stringify(value)), 1);\n var keyToGet = Object.keys(props.marks)[indexToGet];\n\n if (props.step) {\n return operations[func](value, props.step);\n }\n\n if (!!Object.keys(props.marks).length && !!props.marks[keyToGet]) {\n return props.marks[keyToGet];\n }\n\n return value;\n}\nexport function getKeyboardValueMutator(e, vertical, reverse) {\n var increase = 'increase';\n var decrease = 'decrease';\n var method = increase;\n\n switch (e.keyCode) {\n case keyCode.UP:\n method = vertical && reverse ? decrease : increase;\n break;\n\n case keyCode.RIGHT:\n method = !vertical && reverse ? decrease : increase;\n break;\n\n case keyCode.DOWN:\n method = vertical && reverse ? increase : decrease;\n break;\n\n case keyCode.LEFT:\n method = !vertical && reverse ? increase : decrease;\n break;\n\n case keyCode.END:\n return function (value, props) {\n return props.max;\n };\n\n case keyCode.HOME:\n return function (value, props) {\n return props.min;\n };\n\n case keyCode.PAGE_UP:\n return function (value, props) {\n return value + props.step * 2;\n };\n\n case keyCode.PAGE_DOWN:\n return function (value, props) {\n return value - props.step * 2;\n };\n\n default:\n return undefined;\n }\n\n return function (value, props) {\n return calculateNextValue(method, value, props);\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _get from \"@babel/runtime/helpers/esm/get\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport classNames from 'classnames';\nimport warning from \"rc-util/es/warning\";\nimport Steps from './Steps';\nimport Marks from './Marks';\nimport Handle from '../Handle';\nimport * as utils from '../utils';\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nfunction noop() {}\n\nexport default function createSlider(Component) {\n var _a; // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\n return _a = /*#__PURE__*/function (_Component) {\n _inherits(ComponentEnhancer, _Component);\n\n var _super = _createSuper(ComponentEnhancer);\n\n function ComponentEnhancer(props) {\n var _this;\n\n _classCallCheck(this, ComponentEnhancer);\n\n _this = _super.call(this, props);\n\n _this.onDown = function (e, position) {\n var p = position;\n var _this$props = _this.props,\n draggableTrack = _this$props.draggableTrack,\n isVertical = _this$props.vertical;\n var bounds = _this.state.bounds;\n var value = draggableTrack && _this.positionGetValue ? _this.positionGetValue(p) || [] : [];\n var inPoint = utils.isEventFromHandle(e, _this.handlesRefs);\n _this.dragTrack = draggableTrack && bounds.length >= 2 && !inPoint && !value.map(function (n, i) {\n var v = !i ? n >= bounds[i] : true;\n return i === value.length - 1 ? n <= bounds[i] : v;\n }).some(function (c) {\n return !c;\n });\n\n if (_this.dragTrack) {\n _this.dragOffset = p;\n _this.startBounds = _toConsumableArray(bounds);\n } else {\n if (!inPoint) {\n _this.dragOffset = 0;\n } else {\n var handlePosition = utils.getHandleCenterPosition(isVertical, e.target);\n _this.dragOffset = p - handlePosition;\n p = handlePosition;\n }\n\n _this.onStart(p);\n }\n };\n\n _this.onMouseDown = function (e) {\n if (e.button !== 0) {\n return;\n }\n\n _this.removeDocumentEvents();\n\n var isVertical = _this.props.vertical;\n var position = utils.getMousePosition(isVertical, e);\n\n _this.onDown(e, position);\n\n _this.addDocumentMouseEvents();\n };\n\n _this.onTouchStart = function (e) {\n if (utils.isNotTouchEvent(e)) return;\n var isVertical = _this.props.vertical;\n var position = utils.getTouchPosition(isVertical, e);\n\n _this.onDown(e, position);\n\n _this.addDocumentTouchEvents();\n\n utils.pauseEvent(e);\n };\n\n _this.onFocus = function (e) {\n var _this$props2 = _this.props,\n onFocus = _this$props2.onFocus,\n vertical = _this$props2.vertical;\n\n if (utils.isEventFromHandle(e, _this.handlesRefs) && !_this.dragTrack) {\n var handlePosition = utils.getHandleCenterPosition(vertical, e.target);\n _this.dragOffset = 0;\n\n _this.onStart(handlePosition);\n\n utils.pauseEvent(e);\n\n if (onFocus) {\n onFocus(e);\n }\n }\n };\n\n _this.onBlur = function (e) {\n var onBlur = _this.props.onBlur;\n\n if (!_this.dragTrack) {\n _this.onEnd();\n }\n\n if (onBlur) {\n onBlur(e);\n }\n };\n\n _this.onMouseUp = function () {\n if (_this.handlesRefs[_this.prevMovedHandleIndex]) {\n _this.handlesRefs[_this.prevMovedHandleIndex].clickFocus();\n }\n };\n\n _this.onMouseMove = function (e) {\n if (!_this.sliderRef) {\n _this.onEnd();\n\n return;\n }\n\n var position = utils.getMousePosition(_this.props.vertical, e);\n\n _this.onMove(e, position - _this.dragOffset, _this.dragTrack, _this.startBounds);\n };\n\n _this.onTouchMove = function (e) {\n if (utils.isNotTouchEvent(e) || !_this.sliderRef) {\n _this.onEnd();\n\n return;\n }\n\n var position = utils.getTouchPosition(_this.props.vertical, e);\n\n _this.onMove(e, position - _this.dragOffset, _this.dragTrack, _this.startBounds);\n };\n\n _this.onKeyDown = function (e) {\n if (_this.sliderRef && utils.isEventFromHandle(e, _this.handlesRefs)) {\n _this.onKeyboard(e);\n }\n };\n\n _this.onClickMarkLabel = function (e, value) {\n e.stopPropagation();\n\n _this.onChange({\n value: value\n }); // eslint-disable-next-line react/no-unused-state\n\n\n _this.setState({\n value: value\n }, function () {\n return _this.onEnd(true);\n });\n };\n\n _this.saveSlider = function (slider) {\n _this.sliderRef = slider;\n };\n\n var step = props.step,\n max = props.max,\n min = props.min;\n var isPointDiffEven = isFinite(max - min) ? (max - min) % step === 0 : true; // eslint-disable-line\n\n warning(step && Math.floor(step) === step ? isPointDiffEven : true, \"Slider[max] - Slider[min] (\".concat(max - min, \") should be a multiple of Slider[step] (\").concat(step, \")\"));\n _this.handlesRefs = {};\n return _this;\n }\n\n _createClass(ComponentEnhancer, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // Snapshot testing cannot handle refs, so be sure to null-check this.\n this.document = this.sliderRef && this.sliderRef.ownerDocument;\n var _this$props3 = this.props,\n autoFocus = _this$props3.autoFocus,\n disabled = _this$props3.disabled;\n\n if (autoFocus && !disabled) {\n this.focus();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (_get(_getPrototypeOf(ComponentEnhancer.prototype), \"componentWillUnmount\", this)) _get(_getPrototypeOf(ComponentEnhancer.prototype), \"componentWillUnmount\", this).call(this);\n this.removeDocumentEvents();\n }\n }, {\n key: \"getSliderStart\",\n value: function getSliderStart() {\n var slider = this.sliderRef;\n var _this$props4 = this.props,\n vertical = _this$props4.vertical,\n reverse = _this$props4.reverse;\n var rect = slider.getBoundingClientRect();\n\n if (vertical) {\n return reverse ? rect.bottom : rect.top;\n }\n\n return window.pageXOffset + (reverse ? rect.right : rect.left);\n }\n }, {\n key: \"getSliderLength\",\n value: function getSliderLength() {\n var slider = this.sliderRef;\n\n if (!slider) {\n return 0;\n }\n\n var coords = slider.getBoundingClientRect();\n return this.props.vertical ? coords.height : coords.width;\n }\n }, {\n key: \"addDocumentTouchEvents\",\n value: function addDocumentTouchEvents() {\n // just work for Chrome iOS Safari and Android Browser\n this.onTouchMoveListener = addEventListener(this.document, 'touchmove', this.onTouchMove);\n this.onTouchUpListener = addEventListener(this.document, 'touchend', this.onEnd);\n }\n }, {\n key: \"addDocumentMouseEvents\",\n value: function addDocumentMouseEvents() {\n this.onMouseMoveListener = addEventListener(this.document, 'mousemove', this.onMouseMove);\n this.onMouseUpListener = addEventListener(this.document, 'mouseup', this.onEnd);\n }\n }, {\n key: \"removeDocumentEvents\",\n value: function removeDocumentEvents() {\n /* eslint-disable @typescript-eslint/no-unused-expressions */\n this.onTouchMoveListener && this.onTouchMoveListener.remove();\n this.onTouchUpListener && this.onTouchUpListener.remove();\n this.onMouseMoveListener && this.onMouseMoveListener.remove();\n this.onMouseUpListener && this.onMouseUpListener.remove();\n /* eslint-enable no-unused-expressions */\n }\n }, {\n key: \"focus\",\n value: function focus() {\n var _this$handlesRefs$;\n\n if (this.props.disabled) {\n return;\n }\n\n (_this$handlesRefs$ = this.handlesRefs[0]) === null || _this$handlesRefs$ === void 0 ? void 0 : _this$handlesRefs$.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n var _this2 = this;\n\n if (this.props.disabled) {\n return;\n }\n\n Object.keys(this.handlesRefs).forEach(function (key) {\n var _this2$handlesRefs$ke, _this2$handlesRefs$ke2;\n\n (_this2$handlesRefs$ke = _this2.handlesRefs[key]) === null || _this2$handlesRefs$ke === void 0 ? void 0 : (_this2$handlesRefs$ke2 = _this2$handlesRefs$ke.blur) === null || _this2$handlesRefs$ke2 === void 0 ? void 0 : _this2$handlesRefs$ke2.call(_this2$handlesRefs$ke);\n });\n }\n }, {\n key: \"calcValue\",\n value: function calcValue(offset) {\n var _this$props5 = this.props,\n vertical = _this$props5.vertical,\n min = _this$props5.min,\n max = _this$props5.max;\n var ratio = Math.abs(Math.max(offset, 0) / this.getSliderLength());\n var value = vertical ? (1 - ratio) * (max - min) + min : ratio * (max - min) + min;\n return value;\n }\n }, {\n key: \"calcValueByPos\",\n value: function calcValueByPos(position) {\n var sign = this.props.reverse ? -1 : +1;\n var pixelOffset = sign * (position - this.getSliderStart());\n var nextValue = this.trimAlignValue(this.calcValue(pixelOffset));\n return nextValue;\n }\n }, {\n key: \"calcOffset\",\n value: function calcOffset(value) {\n var _this$props6 = this.props,\n min = _this$props6.min,\n max = _this$props6.max;\n var ratio = (value - min) / (max - min);\n return Math.max(0, ratio * 100);\n }\n }, {\n key: \"saveHandle\",\n value: function saveHandle(index, handle) {\n this.handlesRefs[index] = handle;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n\n var _this$props7 = this.props,\n prefixCls = _this$props7.prefixCls,\n className = _this$props7.className,\n marks = _this$props7.marks,\n dots = _this$props7.dots,\n step = _this$props7.step,\n included = _this$props7.included,\n disabled = _this$props7.disabled,\n vertical = _this$props7.vertical,\n reverse = _this$props7.reverse,\n min = _this$props7.min,\n max = _this$props7.max,\n children = _this$props7.children,\n maximumTrackStyle = _this$props7.maximumTrackStyle,\n style = _this$props7.style,\n railStyle = _this$props7.railStyle,\n dotStyle = _this$props7.dotStyle,\n activeDotStyle = _this$props7.activeDotStyle;\n\n var _get$call = _get(_getPrototypeOf(ComponentEnhancer.prototype), \"render\", this).call(this),\n tracks = _get$call.tracks,\n handles = _get$call.handles;\n\n var sliderClassName = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-with-marks\"), Object.keys(marks).length), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-vertical\"), vertical), _defineProperty(_classNames, className, className), _classNames));\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: this.saveSlider,\n className: sliderClassName,\n onTouchStart: disabled ? noop : this.onTouchStart,\n onMouseDown: disabled ? noop : this.onMouseDown,\n onMouseUp: disabled ? noop : this.onMouseUp,\n onKeyDown: disabled ? noop : this.onKeyDown,\n onFocus: disabled ? noop : this.onFocus,\n onBlur: disabled ? noop : this.onBlur,\n style: style\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-rail\"),\n style: _objectSpread(_objectSpread({}, maximumTrackStyle), railStyle)\n }), tracks, /*#__PURE__*/React.createElement(Steps, {\n prefixCls: prefixCls,\n vertical: vertical,\n reverse: reverse,\n marks: marks,\n dots: dots,\n step: step,\n included: included,\n lowerBound: this.getLowerBound(),\n upperBound: this.getUpperBound(),\n max: max,\n min: min,\n dotStyle: dotStyle,\n activeDotStyle: activeDotStyle\n }), handles, /*#__PURE__*/React.createElement(Marks, {\n className: \"\".concat(prefixCls, \"-mark\"),\n onClickLabel: disabled ? noop : this.onClickMarkLabel,\n vertical: vertical,\n marks: marks,\n included: included,\n lowerBound: this.getLowerBound(),\n upperBound: this.getUpperBound(),\n max: max,\n min: min,\n reverse: reverse\n }), children);\n }\n }]);\n\n return ComponentEnhancer;\n }(Component), _a.displayName = \"ComponentEnhancer(\".concat(Component.displayName, \")\"), _a.defaultProps = _objectSpread(_objectSpread({}, Component.defaultProps), {}, {\n prefixCls: 'rc-slider',\n className: '',\n min: 0,\n max: 100,\n step: 1,\n marks: {},\n handle: function handle(props) {\n var index = props.index,\n restProps = _objectWithoutProperties(props, [\"index\"]);\n\n delete restProps.dragging;\n\n if (restProps.value === null) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Handle, _extends({}, restProps, {\n key: index\n }));\n },\n onBeforeChange: noop,\n onChange: noop,\n onAfterChange: noop,\n included: true,\n disabled: false,\n dots: false,\n vertical: false,\n reverse: false,\n trackStyle: [{}],\n handleStyle: [{}],\n railStyle: {},\n dotStyle: {},\n activeDotStyle: {}\n }), _a;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport Track from './common/Track';\nimport createSlider from './common/createSlider';\nimport * as utils from './utils';\n\nvar Slider = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n var _super = _createSuper(Slider);\n\n /* eslint-enable */\n function Slider(props) {\n var _this;\n\n _classCallCheck(this, Slider);\n\n _this = _super.call(this, props);\n\n _this.positionGetValue = function (position) {\n return [];\n };\n\n _this.onEnd = function (force) {\n var dragging = _this.state.dragging;\n\n _this.removeDocumentEvents();\n\n if (dragging || force) {\n _this.props.onAfterChange(_this.getValue());\n }\n\n _this.setState({\n dragging: false\n });\n };\n\n var defaultValue = props.defaultValue !== undefined ? props.defaultValue : props.min;\n var value = props.value !== undefined ? props.value : defaultValue;\n _this.state = {\n value: _this.trimAlignValue(value),\n dragging: false\n };\n warning(!('minimumTrackStyle' in props), 'minimumTrackStyle will be deprecated, please use trackStyle instead.');\n warning(!('maximumTrackStyle' in props), 'maximumTrackStyle will be deprecated, please use railStyle instead.');\n return _this;\n }\n /**\n * [Legacy] Used for inherit other component.\n * It's a bad code style which should be refactor.\n */\n\n /* eslint-disable @typescript-eslint/no-unused-vars, class-methods-use-this */\n\n\n _createClass(Slider, [{\n key: \"calcValueByPos\",\n value: function calcValueByPos(value) {\n return 0;\n }\n }, {\n key: \"calcOffset\",\n value: function calcOffset(value) {\n return 0;\n }\n }, {\n key: \"saveHandle\",\n value: function saveHandle(index, h) {}\n }, {\n key: \"removeDocumentEvents\",\n value: function removeDocumentEvents() {}\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var _this$props = this.props,\n min = _this$props.min,\n max = _this$props.max,\n value = _this$props.value,\n onChange = _this$props.onChange;\n\n if (!('min' in this.props || 'max' in this.props)) {\n return;\n }\n\n var theValue = value !== undefined ? value : prevState.value;\n var nextValue = this.trimAlignValue(theValue, this.props);\n\n if (nextValue === prevState.value) {\n return;\n } // eslint-disable-next-line\n\n\n this.setState({\n value: nextValue\n });\n\n if (!(min === prevProps.min && max === prevProps.max) && utils.isValueOutOfRange(theValue, this.props)) {\n onChange(nextValue);\n }\n }\n }, {\n key: \"onChange\",\n value: function onChange(state) {\n var props = this.props;\n var isNotControlled = !('value' in props);\n var nextState = state.value > this.props.max ? _objectSpread(_objectSpread({}, state), {}, {\n value: this.props.max\n }) : state;\n\n if (isNotControlled) {\n this.setState(nextState);\n }\n\n var changedValue = nextState.value;\n props.onChange(changedValue);\n }\n }, {\n key: \"onStart\",\n value: function onStart(position) {\n this.setState({\n dragging: true\n });\n var props = this.props;\n var prevValue = this.getValue();\n props.onBeforeChange(prevValue);\n var value = this.calcValueByPos(position);\n this.startValue = value;\n this.startPosition = position;\n if (value === prevValue) return;\n this.prevMovedHandleIndex = 0;\n this.onChange({\n value: value\n });\n }\n }, {\n key: \"onMove\",\n value: function onMove(e, position) {\n utils.pauseEvent(e);\n var oldValue = this.state.value;\n var value = this.calcValueByPos(position);\n if (value === oldValue) return;\n this.onChange({\n value: value\n });\n }\n }, {\n key: \"onKeyboard\",\n value: function onKeyboard(e) {\n var _this$props2 = this.props,\n reverse = _this$props2.reverse,\n vertical = _this$props2.vertical;\n var valueMutator = utils.getKeyboardValueMutator(e, vertical, reverse);\n\n if (valueMutator) {\n utils.pauseEvent(e);\n var state = this.state;\n var oldValue = state.value;\n var mutatedValue = valueMutator(oldValue, this.props);\n var value = this.trimAlignValue(mutatedValue);\n if (value === oldValue) return;\n this.onChange({\n value: value\n });\n this.props.onAfterChange(value);\n this.onEnd();\n }\n }\n }, {\n key: \"getValue\",\n value: function getValue() {\n return this.state.value;\n }\n }, {\n key: \"getLowerBound\",\n value: function getLowerBound() {\n var minPoint = this.props.startPoint || this.props.min;\n return this.state.value > minPoint ? minPoint : this.state.value;\n }\n }, {\n key: \"getUpperBound\",\n value: function getUpperBound() {\n if (this.state.value < this.props.startPoint) {\n return this.props.startPoint;\n }\n\n return this.state.value;\n }\n }, {\n key: \"trimAlignValue\",\n value: function trimAlignValue(v) {\n var nextProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (v === null) {\n return null;\n }\n\n var mergedProps = _objectSpread(_objectSpread({}, this.props), nextProps);\n\n var val = utils.ensureValueInRange(v, mergedProps);\n return utils.ensureValuePrecision(val, mergedProps);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props3 = this.props,\n prefixCls = _this$props3.prefixCls,\n vertical = _this$props3.vertical,\n included = _this$props3.included,\n disabled = _this$props3.disabled,\n minimumTrackStyle = _this$props3.minimumTrackStyle,\n trackStyle = _this$props3.trackStyle,\n handleStyle = _this$props3.handleStyle,\n tabIndex = _this$props3.tabIndex,\n ariaLabelForHandle = _this$props3.ariaLabelForHandle,\n ariaLabelledByForHandle = _this$props3.ariaLabelledByForHandle,\n ariaValueTextFormatterForHandle = _this$props3.ariaValueTextFormatterForHandle,\n min = _this$props3.min,\n max = _this$props3.max,\n startPoint = _this$props3.startPoint,\n reverse = _this$props3.reverse,\n handleGenerator = _this$props3.handle;\n var _this$state = this.state,\n value = _this$state.value,\n dragging = _this$state.dragging;\n var offset = this.calcOffset(value);\n var handle = handleGenerator({\n className: \"\".concat(prefixCls, \"-handle\"),\n prefixCls: prefixCls,\n vertical: vertical,\n offset: offset,\n value: value,\n dragging: dragging,\n disabled: disabled,\n min: min,\n max: max,\n reverse: reverse,\n index: 0,\n tabIndex: tabIndex,\n ariaLabel: ariaLabelForHandle,\n ariaLabelledBy: ariaLabelledByForHandle,\n ariaValueTextFormatter: ariaValueTextFormatterForHandle,\n style: handleStyle[0] || handleStyle,\n ref: function ref(h) {\n return _this2.saveHandle(0, h);\n }\n });\n var trackOffset = startPoint !== undefined ? this.calcOffset(startPoint) : 0;\n var mergedTrackStyle = trackStyle[0] || trackStyle;\n var track = /*#__PURE__*/React.createElement(Track, {\n className: \"\".concat(prefixCls, \"-track\"),\n vertical: vertical,\n included: included,\n offset: trackOffset,\n reverse: reverse,\n length: offset - trackOffset,\n style: _objectSpread(_objectSpread({}, minimumTrackStyle), mergedTrackStyle)\n });\n return {\n tracks: track,\n handles: handle\n };\n }\n }]);\n\n return Slider;\n}(React.Component);\n\nexport default createSlider(Slider);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport Track from './common/Track';\nimport createSlider from './common/createSlider';\nimport * as utils from './utils';\n\nvar _trimAlignValue = function trimAlignValue(_ref) {\n var value = _ref.value,\n handle = _ref.handle,\n bounds = _ref.bounds,\n props = _ref.props;\n var allowCross = props.allowCross,\n pushable = props.pushable;\n var thershold = Number(pushable);\n var valInRange = utils.ensureValueInRange(value, props);\n var valNotConflict = valInRange;\n\n if (!allowCross && handle != null && bounds !== undefined) {\n if (handle > 0 && valInRange <= bounds[handle - 1] + thershold) {\n valNotConflict = bounds[handle - 1] + thershold;\n }\n\n if (handle < bounds.length - 1 && valInRange >= bounds[handle + 1] - thershold) {\n valNotConflict = bounds[handle + 1] - thershold;\n }\n }\n\n return utils.ensureValuePrecision(valNotConflict, props);\n};\n\nvar Range = /*#__PURE__*/function (_React$Component) {\n _inherits(Range, _React$Component);\n\n var _super = _createSuper(Range);\n\n function Range(props) {\n var _this;\n\n _classCallCheck(this, Range);\n\n _this = _super.call(this, props);\n\n _this.positionGetValue = function (position) {\n var bounds = _this.getValue();\n\n var value = _this.calcValueByPos(position);\n\n var closestBound = _this.getClosestBound(value);\n\n var index = _this.getBoundNeedMoving(value, closestBound);\n\n var prevValue = bounds[index];\n if (value === prevValue) return null;\n\n var nextBounds = _toConsumableArray(bounds);\n\n nextBounds[index] = value;\n return nextBounds;\n };\n\n _this.onEnd = function (force) {\n var handle = _this.state.handle;\n\n _this.removeDocumentEvents();\n\n if (!handle) {\n _this.dragTrack = false;\n }\n\n if (handle !== null || force) {\n _this.props.onAfterChange(_this.getValue());\n }\n\n _this.setState({\n handle: null\n });\n };\n\n var count = props.count,\n min = props.min,\n max = props.max;\n var initialValue = Array.apply(void 0, _toConsumableArray(Array(count + 1))).map(function () {\n return min;\n });\n var defaultValue = 'defaultValue' in props ? props.defaultValue : initialValue;\n var value = props.value !== undefined ? props.value : defaultValue;\n var bounds = value.map(function (v, i) {\n return _trimAlignValue({\n value: v,\n handle: i,\n props: props\n });\n });\n var recent = bounds[0] === max ? 0 : bounds.length - 1;\n _this.state = {\n handle: null,\n recent: recent,\n bounds: bounds\n };\n return _this;\n }\n /**\n * [Legacy] Used for inherit other component.\n * It's a bad code style which should be refactor.\n */\n\n /* eslint-disable @typescript-eslint/no-unused-vars, class-methods-use-this */\n\n\n _createClass(Range, [{\n key: \"calcValueByPos\",\n value: function calcValueByPos(value) {\n return 0;\n }\n }, {\n key: \"getSliderLength\",\n value: function getSliderLength() {\n return 0;\n }\n }, {\n key: \"calcOffset\",\n value: function calcOffset(value) {\n return 0;\n }\n }, {\n key: \"saveHandle\",\n value: function saveHandle(index, h) {}\n }, {\n key: \"removeDocumentEvents\",\n value: function removeDocumentEvents() {}\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var _this2 = this;\n\n var _this$props = this.props,\n onChange = _this$props.onChange,\n value = _this$props.value,\n min = _this$props.min,\n max = _this$props.max;\n\n if (!('min' in this.props || 'max' in this.props)) {\n return;\n }\n\n if (min === prevProps.min && max === prevProps.max) {\n return;\n }\n\n var currentValue = value || prevState.bounds;\n\n if (currentValue.some(function (v) {\n return utils.isValueOutOfRange(v, _this2.props);\n })) {\n var newValues = currentValue.map(function (v) {\n return utils.ensureValueInRange(v, _this2.props);\n });\n onChange(newValues);\n }\n }\n }, {\n key: \"onChange\",\n value: function onChange(state) {\n var props = this.props;\n var isNotControlled = !('value' in props);\n\n if (isNotControlled) {\n this.setState(state);\n } else {\n var controlledState = {};\n ['handle', 'recent'].forEach(function (item) {\n if (state[item] !== undefined) {\n controlledState[item] = state[item];\n }\n });\n\n if (Object.keys(controlledState).length) {\n this.setState(controlledState);\n }\n }\n\n var data = _objectSpread(_objectSpread({}, this.state), state);\n\n var changedValue = data.bounds;\n props.onChange(changedValue);\n }\n }, {\n key: \"onStart\",\n value: function onStart(position) {\n var props = this.props,\n state = this.state;\n var bounds = this.getValue();\n props.onBeforeChange(bounds);\n var value = this.calcValueByPos(position);\n this.startValue = value;\n this.startPosition = position;\n var closestBound = this.getClosestBound(value);\n this.prevMovedHandleIndex = this.getBoundNeedMoving(value, closestBound);\n this.setState({\n handle: this.prevMovedHandleIndex,\n recent: this.prevMovedHandleIndex\n });\n var prevValue = bounds[this.prevMovedHandleIndex];\n if (value === prevValue) return;\n\n var nextBounds = _toConsumableArray(state.bounds);\n\n nextBounds[this.prevMovedHandleIndex] = value;\n this.onChange({\n bounds: nextBounds\n });\n }\n }, {\n key: \"onMove\",\n value: function onMove(e, position, dragTrack, startBounds) {\n utils.pauseEvent(e);\n var state = this.state,\n props = this.props;\n var maxValue = props.max || 100;\n var minValue = props.min || 0;\n\n if (dragTrack) {\n var pos = props.vertical ? -position : position;\n pos = props.reverse ? -pos : pos;\n var max = maxValue - Math.max.apply(Math, _toConsumableArray(startBounds));\n var min = minValue - Math.min.apply(Math, _toConsumableArray(startBounds));\n var ratio = Math.min(Math.max(pos / (this.getSliderLength() / 100), min), max);\n var nextBounds = startBounds.map(function (v) {\n return Math.floor(Math.max(Math.min(v + ratio, maxValue), minValue));\n });\n\n if (state.bounds.map(function (c, i) {\n return c === nextBounds[i];\n }).some(function (c) {\n return !c;\n })) {\n this.onChange({\n bounds: nextBounds\n });\n }\n\n return;\n }\n\n var value = this.calcValueByPos(position);\n var oldValue = state.bounds[state.handle];\n if (value === oldValue) return;\n this.moveTo(value);\n }\n }, {\n key: \"onKeyboard\",\n value: function onKeyboard(e) {\n var _this$props2 = this.props,\n reverse = _this$props2.reverse,\n vertical = _this$props2.vertical;\n var valueMutator = utils.getKeyboardValueMutator(e, vertical, reverse);\n\n if (valueMutator) {\n utils.pauseEvent(e);\n var state = this.state,\n props = this.props;\n var bounds = state.bounds,\n handle = state.handle;\n var oldValue = bounds[handle === null ? state.recent : handle];\n var mutatedValue = valueMutator(oldValue, props);\n\n var value = _trimAlignValue({\n value: mutatedValue,\n handle: handle,\n bounds: state.bounds,\n props: props\n });\n\n if (value === oldValue) return;\n var isFromKeyboardEvent = true;\n this.moveTo(value, isFromKeyboardEvent);\n }\n }\n }, {\n key: \"getValue\",\n value: function getValue() {\n return this.state.bounds;\n }\n }, {\n key: \"getClosestBound\",\n value: function getClosestBound(value) {\n var bounds = this.state.bounds;\n var closestBound = 0;\n\n for (var i = 1; i < bounds.length - 1; i += 1) {\n if (value >= bounds[i]) {\n closestBound = i;\n }\n }\n\n if (Math.abs(bounds[closestBound + 1] - value) < Math.abs(bounds[closestBound] - value)) {\n closestBound += 1;\n }\n\n return closestBound;\n }\n }, {\n key: \"getBoundNeedMoving\",\n value: function getBoundNeedMoving(value, closestBound) {\n var _this$state = this.state,\n bounds = _this$state.bounds,\n recent = _this$state.recent;\n var boundNeedMoving = closestBound;\n var isAtTheSamePoint = bounds[closestBound + 1] === bounds[closestBound];\n\n if (isAtTheSamePoint && bounds[recent] === bounds[closestBound]) {\n boundNeedMoving = recent;\n }\n\n if (isAtTheSamePoint && value !== bounds[closestBound + 1]) {\n boundNeedMoving = value < bounds[closestBound + 1] ? closestBound : closestBound + 1;\n }\n\n return boundNeedMoving;\n }\n }, {\n key: \"getLowerBound\",\n value: function getLowerBound() {\n return this.state.bounds[0];\n }\n }, {\n key: \"getUpperBound\",\n value: function getUpperBound() {\n var bounds = this.state.bounds;\n return bounds[bounds.length - 1];\n }\n /**\n * Returns an array of possible slider points, taking into account both\n * `marks` and `step`. The result is cached.\n */\n\n }, {\n key: \"getPoints\",\n value: function getPoints() {\n var _this$props3 = this.props,\n marks = _this$props3.marks,\n step = _this$props3.step,\n min = _this$props3.min,\n max = _this$props3.max;\n var cache = this.internalPointsCache;\n\n if (!cache || cache.marks !== marks || cache.step !== step) {\n var pointsObject = _objectSpread({}, marks);\n\n if (step !== null) {\n for (var point = min; point <= max; point += step) {\n pointsObject[point] = point;\n }\n }\n\n var points = Object.keys(pointsObject).map(parseFloat);\n points.sort(function (a, b) {\n return a - b;\n });\n this.internalPointsCache = {\n marks: marks,\n step: step,\n points: points\n };\n }\n\n return this.internalPointsCache.points;\n }\n }, {\n key: \"moveTo\",\n value: function moveTo(value, isFromKeyboardEvent) {\n var _this3 = this;\n\n var state = this.state,\n props = this.props;\n\n var nextBounds = _toConsumableArray(state.bounds);\n\n var handle = state.handle === null ? state.recent : state.handle;\n nextBounds[handle] = value;\n var nextHandle = handle;\n\n if (props.pushable !== false) {\n this.pushSurroundingHandles(nextBounds, nextHandle);\n } else if (props.allowCross) {\n nextBounds.sort(function (a, b) {\n return a - b;\n });\n nextHandle = nextBounds.indexOf(value);\n }\n\n this.onChange({\n recent: nextHandle,\n handle: nextHandle,\n bounds: nextBounds\n });\n\n if (isFromKeyboardEvent) {\n // known problem: because setState is async,\n // so trigger focus will invoke handler's onEnd and another handler's onStart too early,\n // cause onBeforeChange and onAfterChange receive wrong value.\n // here use setState callback to hack,but not elegant\n this.props.onAfterChange(nextBounds);\n this.setState({}, function () {\n _this3.handlesRefs[nextHandle].focus();\n });\n this.onEnd();\n }\n }\n }, {\n key: \"pushSurroundingHandles\",\n value: function pushSurroundingHandles(bounds, handle) {\n var value = bounds[handle];\n var pushable = this.props.pushable;\n var threshold = Number(pushable);\n var direction = 0;\n\n if (bounds[handle + 1] - value < threshold) {\n direction = +1; // push to right\n }\n\n if (value - bounds[handle - 1] < threshold) {\n direction = -1; // push to left\n }\n\n if (direction === 0) {\n return;\n }\n\n var nextHandle = handle + direction;\n var diffToNext = direction * (bounds[nextHandle] - value);\n\n if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {\n // revert to original value if pushing is impossible\n // eslint-disable-next-line no-param-reassign\n bounds[handle] = bounds[nextHandle] - direction * threshold;\n }\n }\n }, {\n key: \"pushHandle\",\n value: function pushHandle(bounds, handle, direction, amount) {\n var originalValue = bounds[handle];\n var currentValue = bounds[handle];\n\n while (direction * (currentValue - originalValue) < amount) {\n if (!this.pushHandleOnePoint(bounds, handle, direction)) {\n // can't push handle enough to create the needed `amount` gap, so we\n // revert its position to the original value\n // eslint-disable-next-line no-param-reassign\n bounds[handle] = originalValue;\n return false;\n }\n\n currentValue = bounds[handle];\n } // the handle was pushed enough to create the needed `amount` gap\n\n\n return true;\n }\n }, {\n key: \"pushHandleOnePoint\",\n value: function pushHandleOnePoint(bounds, handle, direction) {\n var points = this.getPoints();\n var pointIndex = points.indexOf(bounds[handle]);\n var nextPointIndex = pointIndex + direction;\n\n if (nextPointIndex >= points.length || nextPointIndex < 0) {\n // reached the minimum or maximum available point, can't push anymore\n return false;\n }\n\n var nextHandle = handle + direction;\n var nextValue = points[nextPointIndex];\n var pushable = this.props.pushable;\n var threshold = Number(pushable);\n var diffToNext = direction * (bounds[nextHandle] - nextValue);\n\n if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {\n // couldn't push next handle, so we won't push this one either\n return false;\n } // push the handle\n // eslint-disable-next-line no-param-reassign\n\n\n bounds[handle] = nextValue;\n return true;\n }\n }, {\n key: \"trimAlignValue\",\n value: function trimAlignValue(value) {\n var _this$state2 = this.state,\n handle = _this$state2.handle,\n bounds = _this$state2.bounds;\n return _trimAlignValue({\n value: value,\n handle: handle,\n bounds: bounds,\n props: this.props\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var _this$state3 = this.state,\n handle = _this$state3.handle,\n bounds = _this$state3.bounds;\n var _this$props4 = this.props,\n prefixCls = _this$props4.prefixCls,\n vertical = _this$props4.vertical,\n included = _this$props4.included,\n disabled = _this$props4.disabled,\n min = _this$props4.min,\n max = _this$props4.max,\n reverse = _this$props4.reverse,\n handleGenerator = _this$props4.handle,\n trackStyle = _this$props4.trackStyle,\n handleStyle = _this$props4.handleStyle,\n tabIndex = _this$props4.tabIndex,\n ariaLabelGroupForHandles = _this$props4.ariaLabelGroupForHandles,\n ariaLabelledByGroupForHandles = _this$props4.ariaLabelledByGroupForHandles,\n ariaValueTextFormatterGroupForHandles = _this$props4.ariaValueTextFormatterGroupForHandles;\n var offsets = bounds.map(function (v) {\n return _this4.calcOffset(v);\n });\n var handleClassName = \"\".concat(prefixCls, \"-handle\");\n var handles = bounds.map(function (v, i) {\n var _classNames;\n\n var mergedTabIndex = tabIndex[i] || 0;\n\n if (disabled || tabIndex[i] === null) {\n mergedTabIndex = null;\n }\n\n var dragging = handle === i;\n return handleGenerator({\n className: classNames((_classNames = {}, _defineProperty(_classNames, handleClassName, true), _defineProperty(_classNames, \"\".concat(handleClassName, \"-\").concat(i + 1), true), _defineProperty(_classNames, \"\".concat(handleClassName, \"-dragging\"), dragging), _classNames)),\n prefixCls: prefixCls,\n vertical: vertical,\n dragging: dragging,\n offset: offsets[i],\n value: v,\n index: i,\n tabIndex: mergedTabIndex,\n min: min,\n max: max,\n reverse: reverse,\n disabled: disabled,\n style: handleStyle[i],\n ref: function ref(h) {\n return _this4.saveHandle(i, h);\n },\n ariaLabel: ariaLabelGroupForHandles[i],\n ariaLabelledBy: ariaLabelledByGroupForHandles[i],\n ariaValueTextFormatter: ariaValueTextFormatterGroupForHandles[i]\n });\n });\n var tracks = bounds.slice(0, -1).map(function (_, index) {\n var _classNames2;\n\n var i = index + 1;\n var trackClassName = classNames((_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-track\"), true), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-track-\").concat(i), true), _classNames2));\n return /*#__PURE__*/React.createElement(Track, {\n className: trackClassName,\n vertical: vertical,\n reverse: reverse,\n included: included,\n offset: offsets[i - 1],\n length: offsets[i] - offsets[i - 1],\n style: trackStyle[index],\n key: i\n });\n });\n return {\n tracks: tracks,\n handles: handles\n };\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, state) {\n if (!('value' in props || 'min' in props || 'max' in props)) {\n return null;\n }\n\n var value = props.value || state.bounds;\n var nextBounds = value.map(function (v, i) {\n return _trimAlignValue({\n value: v,\n handle: i,\n bounds: state.bounds,\n props: props\n });\n });\n\n if (state.bounds.length === nextBounds.length) {\n if (nextBounds.every(function (v, i) {\n return v === state.bounds[i];\n })) {\n return null;\n }\n } else {\n nextBounds = value.map(function (v, i) {\n return _trimAlignValue({\n value: v,\n handle: i,\n props: props\n });\n });\n }\n\n return _objectSpread(_objectSpread({}, state), {}, {\n bounds: nextBounds\n });\n }\n }]);\n\n return Range;\n}(React.Component);\n/* eslint-enable */\n\n\nRange.displayName = 'Range';\nRange.defaultProps = {\n count: 1,\n allowCross: true,\n pushable: false,\n draggableTrack: false,\n tabIndex: [],\n ariaLabelGroupForHandles: [],\n ariaLabelledByGroupForHandles: [],\n ariaValueTextFormatterGroupForHandles: []\n};\nexport default createSlider(Range);","var raf = function raf(callback) {\n return +setTimeout(callback, 16);\n};\n\nvar caf = function caf(num) {\n return clearTimeout(num);\n};\n\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n raf = function raf(callback) {\n return window.requestAnimationFrame(callback);\n };\n\n caf = function caf(handle) {\n return window.cancelAnimationFrame(handle);\n };\n}\n\nvar rafUUID = 0;\nvar rafIds = new Map();\n\nfunction cleanup(id) {\n rafIds.delete(id);\n}\n\nexport default function wrapperRaf(callback) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n rafUUID += 1;\n var id = rafUUID;\n\n function callRef(leftTimes) {\n if (leftTimes === 0) {\n // Clean up\n cleanup(id); // Trigger\n\n callback();\n } else {\n // Next raf\n var realId = raf(function () {\n callRef(leftTimes - 1);\n }); // Bind real raf id\n\n rafIds.set(id, realId);\n }\n }\n\n callRef(times);\n return id;\n}\n\nwrapperRaf.cancel = function (id) {\n var realId = rafIds.get(id);\n cleanup(realId);\n return caf(realId);\n};","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n return root.contains(n);\n}","import ReactDOM from 'react-dom';\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\n\nexport default function findDOMNode(node) {\n if (node instanceof HTMLElement) {\n return node;\n }\n\n return ReactDOM.findDOMNode(node);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { isMemo } from 'react-is';\nexport function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n}\n/**\n * Merge refs into one ref function to support ref passing.\n */\n\nexport function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n}\nexport function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n\n var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type; // Function component node\n\n if (typeof type === 'function' && !((_type$prototype = type.prototype) === null || _type$prototype === void 0 ? void 0 : _type$prototype.render)) {\n return false;\n } // Class component\n\n\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) === null || _nodeOrComponent$prot === void 0 ? void 0 : _nodeOrComponent$prot.render)) {\n return false;\n }\n\n return true;\n}\n/* eslint-enable */","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","import { useRef, useEffect, forwardRef, useImperativeHandle } from 'react';\nimport ReactDOM from 'react-dom';\nimport canUseDom from './Dom/canUseDom';\nvar Portal = forwardRef(function (props, ref) {\n var didUpdate = props.didUpdate,\n getContainer = props.getContainer,\n children = props.children;\n var containerRef = useRef(); // Ref return nothing, only for wrapper check exist\n\n useImperativeHandle(ref, function () {\n return {};\n }); // Create container in client side with sync to avoid useEffect not get ref\n\n var initRef = useRef(false);\n\n if (!initRef.current && canUseDom()) {\n containerRef.current = getContainer();\n initRef.current = true;\n } // [Legacy] Used by `rc-trigger`\n\n\n useEffect(function () {\n didUpdate === null || didUpdate === void 0 ? void 0 : didUpdate(props);\n });\n useEffect(function () {\n return function () {\n var _containerRef$current, _containerRef$current2;\n\n // [Legacy] This should not be handle by Portal but parent PortalWrapper instead.\n // Since some component use `Portal` directly, we have to keep the logic here.\n (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : (_containerRef$current2 = _containerRef$current.parentNode) === null || _containerRef$current2 === void 0 ? void 0 : _containerRef$current2.removeChild(containerRef.current);\n };\n }, []);\n return containerRef.current ? ReactDOM.createPortal(children, containerRef.current) : null;\n});\nexport default Portal;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n\nfunction isPointsEq(a1, a2, isAlignPoint) {\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\n\nexport function getAlignFromPlacement(builtinPlacements, placementStr, align) {\n var baseAlign = builtinPlacements[placementStr] || {};\n return _objectSpread(_objectSpread({}, baseAlign), align);\n}\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n var placements = Object.keys(builtinPlacements);\n\n for (var i = 0; i < placements.length; i += 1) {\n var placement = placements[i];\n\n if (isPointsEq(builtinPlacements[placement].points, points, isAlignPoint)) {\n return \"\".concat(prefixCls, \"-placement-\").concat(placement);\n }\n }\n\n return '';\n}","export default (function () {\n if (typeof navigator === 'undefined' || typeof window === 'undefined') {\n return false;\n }\n\n var agent = navigator.userAgent || navigator.vendor || window.opera;\n\n if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(agent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(agent === null || agent === void 0 ? void 0 : agent.substr(0, 4))) {\n return true;\n }\n\n return false;\n});","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport canUseDOM from \"rc-util/es/Dom/canUseDom\"; // ================= Transition =================\n// Event wrapper. Copy from react source code\n\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\".concat(styleProp)] = \"webkit\".concat(eventName);\n prefixes[\"Moz\".concat(styleProp)] = \"moz\".concat(eventName);\n prefixes[\"ms\".concat(styleProp)] = \"MS\".concat(eventName);\n prefixes[\"O\".concat(styleProp)] = \"o\".concat(eventName.toLowerCase());\n return prefixes;\n}\n\nexport function getVendorPrefixes(domSupport, win) {\n var prefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n };\n\n if (domSupport) {\n if (!('AnimationEvent' in win)) {\n delete prefixes.animationend.animation;\n }\n\n if (!('TransitionEvent' in win)) {\n delete prefixes.transitionend.transition;\n }\n }\n\n return prefixes;\n}\nvar vendorPrefixes = getVendorPrefixes(canUseDOM(), typeof window !== 'undefined' ? window : {});\nvar style = {};\n\nif (canUseDOM()) {\n var _document$createEleme = document.createElement('div');\n\n style = _document$createEleme.style;\n}\n\nvar prefixedEventNames = {};\nexport function getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n if (prefixMap) {\n var stylePropList = Object.keys(prefixMap);\n var len = stylePropList.length;\n\n for (var i = 0; i < len; i += 1) {\n var styleProp = stylePropList[i];\n\n if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {\n prefixedEventNames[eventName] = prefixMap[styleProp];\n return prefixedEventNames[eventName];\n }\n }\n }\n\n return '';\n}\nvar internalAnimationEndName = getVendorPrefixedEventName('animationend');\nvar internalTransitionEndName = getVendorPrefixedEventName('transitionend');\nexport var supportTransition = !!(internalAnimationEndName && internalTransitionEndName);\nexport var animationEndName = internalAnimationEndName || 'animationend';\nexport var transitionEndName = internalTransitionEndName || 'transitionend';\nexport function getTransitionName(transitionName, transitionType) {\n if (!transitionName) return null;\n\n if (_typeof(transitionName) === 'object') {\n var type = transitionType.replace(/-\\w/g, function (match) {\n return match[1].toUpperCase();\n });\n return transitionName[type];\n }\n\n return \"\".concat(transitionName, \"-\").concat(transitionType);\n}","export var STATUS_NONE = 'none';\nexport var STATUS_APPEAR = 'appear';\nexport var STATUS_ENTER = 'enter';\nexport var STATUS_LEAVE = 'leave';\nexport var STEP_NONE = 'none';\nexport var STEP_PREPARE = 'prepare';\nexport var STEP_START = 'start';\nexport var STEP_ACTIVE = 'active';\nexport var STEP_ACTIVATED = 'end';","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useState, useRef } from 'react';\nexport default function useMountStatus(defaultValue) {\n var destroyRef = useRef(false);\n\n var _useState = useState(defaultValue),\n _useState2 = _slicedToArray(_useState, 2),\n val = _useState2[0],\n setVal = _useState2[1];\n\n function setValue(next) {\n if (!destroyRef.current) {\n setVal(next);\n }\n }\n\n useEffect(function () {\n return function () {\n destroyRef.current = true;\n };\n }, []);\n return [val, setValue];\n}","import { useEffect, useLayoutEffect } from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\"; // It's safe to use `useLayoutEffect` but the warning is annoying\n\nvar useIsomorphicLayoutEffect = canUseDom() ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;","import * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default (function () {\n var nextFrameRef = React.useRef(null);\n\n function cancelNextFrame() {\n raf.cancel(nextFrameRef.current);\n }\n\n function nextFrame(callback) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n cancelNextFrame();\n var nextFrameId = raf(function () {\n if (delay <= 1) {\n callback({\n isCanceled: function isCanceled() {\n return nextFrameId !== nextFrameRef.current;\n }\n });\n } else {\n nextFrame(callback, delay - 1);\n }\n });\n nextFrameRef.current = nextFrameId;\n }\n\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [nextFrame, cancelNextFrame];\n});","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { STEP_PREPARE, STEP_ACTIVE, STEP_START, STEP_ACTIVATED, STEP_NONE } from '../interface';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nimport useNextFrame from './useNextFrame';\nvar STEP_QUEUE = [STEP_PREPARE, STEP_START, STEP_ACTIVE, STEP_ACTIVATED];\n/** Skip current step */\n\nexport var SkipStep = false;\n/** Current step should be update in */\n\nexport var DoStep = true;\nexport function isActive(step) {\n return step === STEP_ACTIVE || step === STEP_ACTIVATED;\n}\nexport default (function (status, callback) {\n var _React$useState = React.useState(STEP_NONE),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n step = _React$useState2[0],\n setStep = _React$useState2[1];\n\n var _useNextFrame = useNextFrame(),\n _useNextFrame2 = _slicedToArray(_useNextFrame, 2),\n nextFrame = _useNextFrame2[0],\n cancelNextFrame = _useNextFrame2[1];\n\n function startQueue() {\n setStep(STEP_PREPARE);\n }\n\n useIsomorphicLayoutEffect(function () {\n if (step !== STEP_NONE && step !== STEP_ACTIVATED) {\n var index = STEP_QUEUE.indexOf(step);\n var nextStep = STEP_QUEUE[index + 1];\n var result = callback(step);\n\n if (result === SkipStep) {\n // Skip when no needed\n setStep(nextStep);\n } else {\n // Do as frame for step update\n nextFrame(function (info) {\n function doNext() {\n // Skip since current queue is ood\n if (info.isCanceled()) return;\n setStep(nextStep);\n }\n\n if (result === true) {\n doNext();\n } else {\n // Only promise should be async\n Promise.resolve(result).then(doNext);\n }\n });\n }\n }\n }, [status, step]);\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [startQueue, step];\n});","import * as React from 'react';\nimport { useRef } from 'react';\nimport { animationEndName, transitionEndName } from '../util/motion';\nexport default (function (callback) {\n var cacheElementRef = useRef(); // Cache callback\n\n var callbackRef = useRef(callback);\n callbackRef.current = callback; // Internal motion event handler\n\n var onInternalMotionEnd = React.useCallback(function (event) {\n callbackRef.current(event);\n }, []); // Remove events\n\n function removeMotionEvents(element) {\n if (element) {\n element.removeEventListener(transitionEndName, onInternalMotionEnd);\n element.removeEventListener(animationEndName, onInternalMotionEnd);\n }\n } // Patch events\n\n\n function patchMotionEvents(element) {\n if (cacheElementRef.current && cacheElementRef.current !== element) {\n removeMotionEvents(cacheElementRef.current);\n }\n\n if (element && element !== cacheElementRef.current) {\n element.addEventListener(transitionEndName, onInternalMotionEnd);\n element.addEventListener(animationEndName, onInternalMotionEnd); // Save as cache in case dom removed trigger by `motionDeadline`\n\n cacheElementRef.current = element;\n }\n } // Clean up when removed\n\n\n React.useEffect(function () {\n return function () {\n removeMotionEvents(cacheElementRef.current);\n };\n }, []);\n return [patchMotionEvents, removeMotionEvents];\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect } from 'react';\nimport { STATUS_APPEAR, STATUS_NONE, STATUS_LEAVE, STATUS_ENTER, STEP_PREPARE, STEP_START, STEP_ACTIVE } from '../interface';\nimport useState from './useState';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nimport useStepQueue, { DoStep, SkipStep, isActive } from './useStepQueue';\nimport useDomMotionEvents from './useDomMotionEvents';\nexport default function useStatus(supportMotion, visible, getElement, _ref) {\n var _ref$motionEnter = _ref.motionEnter,\n motionEnter = _ref$motionEnter === void 0 ? true : _ref$motionEnter,\n _ref$motionAppear = _ref.motionAppear,\n motionAppear = _ref$motionAppear === void 0 ? true : _ref$motionAppear,\n _ref$motionLeave = _ref.motionLeave,\n motionLeave = _ref$motionLeave === void 0 ? true : _ref$motionLeave,\n motionDeadline = _ref.motionDeadline,\n motionLeaveImmediately = _ref.motionLeaveImmediately,\n onAppearPrepare = _ref.onAppearPrepare,\n onEnterPrepare = _ref.onEnterPrepare,\n onLeavePrepare = _ref.onLeavePrepare,\n onAppearStart = _ref.onAppearStart,\n onEnterStart = _ref.onEnterStart,\n onLeaveStart = _ref.onLeaveStart,\n onAppearActive = _ref.onAppearActive,\n onEnterActive = _ref.onEnterActive,\n onLeaveActive = _ref.onLeaveActive,\n onAppearEnd = _ref.onAppearEnd,\n onEnterEnd = _ref.onEnterEnd,\n onLeaveEnd = _ref.onLeaveEnd,\n onVisibleChanged = _ref.onVisibleChanged;\n\n // Used for outer render usage to avoid `visible: false & status: none` to render nothing\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n asyncVisible = _useState2[0],\n setAsyncVisible = _useState2[1];\n\n var _useState3 = useState(STATUS_NONE),\n _useState4 = _slicedToArray(_useState3, 2),\n status = _useState4[0],\n setStatus = _useState4[1];\n\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n style = _useState6[0],\n setStyle = _useState6[1];\n\n var mountedRef = useRef(false);\n var deadlineRef = useRef(null);\n var destroyedRef = useRef(false); // =========================== Dom Node ===========================\n\n var cacheElementRef = useRef(null);\n\n function getDomElement() {\n var element = getElement();\n return element || cacheElementRef.current;\n } // ========================== Motion End ==========================\n\n\n var activeRef = useRef(false);\n\n function onInternalMotionEnd(event) {\n var element = getDomElement();\n\n if (event && !event.deadline && event.target !== element) {\n // event exists\n // not initiated by deadline\n // transitionEnd not fired by inner elements\n return;\n }\n\n var canEnd;\n\n if (status === STATUS_APPEAR && activeRef.current) {\n canEnd = onAppearEnd === null || onAppearEnd === void 0 ? void 0 : onAppearEnd(element, event);\n } else if (status === STATUS_ENTER && activeRef.current) {\n canEnd = onEnterEnd === null || onEnterEnd === void 0 ? void 0 : onEnterEnd(element, event);\n } else if (status === STATUS_LEAVE && activeRef.current) {\n canEnd = onLeaveEnd === null || onLeaveEnd === void 0 ? void 0 : onLeaveEnd(element, event);\n } // Only update status when `canEnd` and not destroyed\n\n\n if (canEnd !== false && !destroyedRef.current) {\n setStatus(STATUS_NONE);\n setStyle(null);\n }\n }\n\n var _useDomMotionEvents = useDomMotionEvents(onInternalMotionEnd),\n _useDomMotionEvents2 = _slicedToArray(_useDomMotionEvents, 1),\n patchMotionEvents = _useDomMotionEvents2[0]; // ============================= Step =============================\n\n\n var eventHandlers = React.useMemo(function () {\n var _ref2, _ref3, _ref4;\n\n switch (status) {\n case 'appear':\n return _ref2 = {}, _defineProperty(_ref2, STEP_PREPARE, onAppearPrepare), _defineProperty(_ref2, STEP_START, onAppearStart), _defineProperty(_ref2, STEP_ACTIVE, onAppearActive), _ref2;\n\n case 'enter':\n return _ref3 = {}, _defineProperty(_ref3, STEP_PREPARE, onEnterPrepare), _defineProperty(_ref3, STEP_START, onEnterStart), _defineProperty(_ref3, STEP_ACTIVE, onEnterActive), _ref3;\n\n case 'leave':\n return _ref4 = {}, _defineProperty(_ref4, STEP_PREPARE, onLeavePrepare), _defineProperty(_ref4, STEP_START, onLeaveStart), _defineProperty(_ref4, STEP_ACTIVE, onLeaveActive), _ref4;\n\n default:\n return {};\n }\n }, [status]);\n\n var _useStepQueue = useStepQueue(status, function (newStep) {\n // Only prepare step can be skip\n if (newStep === STEP_PREPARE) {\n var onPrepare = eventHandlers[STEP_PREPARE];\n\n if (!onPrepare) {\n return SkipStep;\n }\n\n return onPrepare(getDomElement());\n } // Rest step is sync update\n\n\n // Rest step is sync update\n if (step in eventHandlers) {\n var _eventHandlers$step;\n\n setStyle(((_eventHandlers$step = eventHandlers[step]) === null || _eventHandlers$step === void 0 ? void 0 : _eventHandlers$step.call(eventHandlers, getDomElement(), null)) || null);\n }\n\n if (step === STEP_ACTIVE) {\n // Patch events when motion needed\n patchMotionEvents(getDomElement());\n\n if (motionDeadline > 0) {\n clearTimeout(deadlineRef.current);\n deadlineRef.current = setTimeout(function () {\n onInternalMotionEnd({\n deadline: true\n });\n }, motionDeadline);\n }\n }\n\n return DoStep;\n }),\n _useStepQueue2 = _slicedToArray(_useStepQueue, 2),\n startStep = _useStepQueue2[0],\n step = _useStepQueue2[1];\n\n var active = isActive(step);\n activeRef.current = active; // ============================ Status ============================\n // Update with new status\n\n useIsomorphicLayoutEffect(function () {\n setAsyncVisible(visible);\n var isMounted = mountedRef.current;\n mountedRef.current = true;\n\n if (!supportMotion) {\n return;\n }\n\n var nextStatus; // Appear\n\n if (!isMounted && visible && motionAppear) {\n nextStatus = STATUS_APPEAR;\n } // Enter\n\n\n if (isMounted && visible && motionEnter) {\n nextStatus = STATUS_ENTER;\n } // Leave\n\n\n if (isMounted && !visible && motionLeave || !isMounted && motionLeaveImmediately && !visible && motionLeave) {\n nextStatus = STATUS_LEAVE;\n } // Update to next status\n\n\n if (nextStatus) {\n setStatus(nextStatus);\n startStep();\n }\n }, [visible]); // ============================ Effect ============================\n // Reset when motion changed\n\n useEffect(function () {\n if ( // Cancel appear\n status === STATUS_APPEAR && !motionAppear || // Cancel enter\n status === STATUS_ENTER && !motionEnter || // Cancel leave\n status === STATUS_LEAVE && !motionLeave) {\n setStatus(STATUS_NONE);\n }\n }, [motionAppear, motionEnter, motionLeave]);\n useEffect(function () {\n return function () {\n clearTimeout(deadlineRef.current);\n destroyedRef.current = true;\n };\n }, []); // Trigger `onVisibleChanged`\n\n useEffect(function () {\n if (asyncVisible !== undefined && status === STATUS_NONE) {\n onVisibleChanged === null || onVisibleChanged === void 0 ? void 0 : onVisibleChanged(asyncVisible);\n }\n }, [asyncVisible, status]); // ============================ Styles ============================\n\n var mergedStyle = style;\n\n if (eventHandlers[STEP_PREPARE] && step === STEP_START) {\n mergedStyle = _objectSpread({\n transition: 'none'\n }, mergedStyle);\n }\n\n return [status, step, mergedStyle, asyncVisible !== null && asyncVisible !== void 0 ? asyncVisible : visible];\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\n\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n\n var _super = _createSuper(DomWrapper);\n\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n\n return DomWrapper;\n}(React.Component);\n\nexport default DomWrapper;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { fillRef } from \"rc-util/es/ref\";\nimport classNames from 'classnames';\nimport { getTransitionName, supportTransition } from './util/motion';\nimport { STATUS_NONE, STEP_PREPARE, STEP_START } from './interface';\nimport useStatus from './hooks/useStatus';\nimport DomWrapper from './DomWrapper';\nimport { isActive } from './hooks/useStepQueue';\n/**\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\n\nexport function genCSSMotion(config) {\n var transitionSupport = config;\n\n if (_typeof(config) === 'object') {\n transitionSupport = config.transitionSupport;\n }\n\n function isSupportTransition(props) {\n return !!(props.motionName && transitionSupport);\n }\n\n var CSSMotion = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$visible = props.visible,\n visible = _props$visible === void 0 ? true : _props$visible,\n _props$removeOnLeave = props.removeOnLeave,\n removeOnLeave = _props$removeOnLeave === void 0 ? true : _props$removeOnLeave,\n forceRender = props.forceRender,\n children = props.children,\n motionName = props.motionName,\n leavedClassName = props.leavedClassName,\n eventProps = props.eventProps;\n var supportMotion = isSupportTransition(props); // Ref to the react node, it may be a HTMLElement\n\n var nodeRef = useRef(); // Ref to the dom wrapper in case ref can not pass to HTMLElement\n\n var wrapperNodeRef = useRef();\n\n function getDomElement() {\n try {\n return findDOMNode(nodeRef.current || wrapperNodeRef.current);\n } catch (e) {\n // Only happen when `motionDeadline` trigger but element removed.\n return null;\n }\n }\n\n var _useStatus = useStatus(supportMotion, visible, getDomElement, props),\n _useStatus2 = _slicedToArray(_useStatus, 4),\n status = _useStatus2[0],\n statusStep = _useStatus2[1],\n statusStyle = _useStatus2[2],\n mergedVisible = _useStatus2[3]; // Record whether content has rended\n // Will return null for un-rendered even when `removeOnLeave={false}`\n\n\n var renderedRef = React.useRef(mergedVisible);\n\n if (mergedVisible) {\n renderedRef.current = true;\n } // ====================== Refs ======================\n\n\n var originRef = useRef(ref);\n originRef.current = ref;\n var setNodeRef = React.useCallback(function (node) {\n nodeRef.current = node;\n fillRef(originRef.current, node);\n }, []); // ===================== Render =====================\n\n var motionChildren;\n\n var mergedProps = _objectSpread(_objectSpread({}, eventProps), {}, {\n visible: visible\n });\n\n if (!children) {\n // No children\n motionChildren = null;\n } else if (status === STATUS_NONE || !isSupportTransition(props)) {\n // Stable children\n if (mergedVisible) {\n motionChildren = children(_objectSpread({}, mergedProps), setNodeRef);\n } else if (!removeOnLeave && renderedRef.current) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: leavedClassName\n }), setNodeRef);\n } else if (forceRender) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n style: {\n display: 'none'\n }\n }), setNodeRef);\n } else {\n motionChildren = null;\n }\n } else {\n var _classNames;\n\n // In motion\n var statusSuffix;\n\n if (statusStep === STEP_PREPARE) {\n statusSuffix = 'prepare';\n } else if (isActive(statusStep)) {\n statusSuffix = 'active';\n } else if (statusStep === STEP_START) {\n statusSuffix = 'start';\n }\n\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: classNames(getTransitionName(motionName, status), (_classNames = {}, _defineProperty(_classNames, getTransitionName(motionName, \"\".concat(status, \"-\").concat(statusSuffix)), statusSuffix), _defineProperty(_classNames, motionName, typeof motionName === 'string'), _classNames)),\n style: statusStyle\n }), setNodeRef);\n }\n\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperNodeRef\n }, motionChildren);\n });\n CSSMotion.displayName = 'CSSMotion';\n return CSSMotion;\n}\nexport default genCSSMotion(supportTransition);","export function getMotion(_ref) {\n var prefixCls = _ref.prefixCls,\n motion = _ref.motion,\n animation = _ref.animation,\n transitionName = _ref.transitionName;\n\n if (motion) {\n return motion;\n }\n\n if (animation) {\n return {\n motionName: \"\".concat(prefixCls, \"-\").concat(animation)\n };\n }\n\n if (transitionName) {\n return {\n motionName: transitionName\n };\n }\n\n return null;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport { getMotion } from '../utils/legacyUtil';\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n mask = props.mask,\n maskMotion = props.maskMotion,\n maskAnimation = props.maskAnimation,\n maskTransitionName = props.maskTransitionName;\n\n if (!mask) {\n return null;\n }\n\n var motion = {};\n\n if (maskMotion || maskTransitionName || maskAnimation) {\n motion = _objectSpread({\n motionAppear: true\n }, getMotion({\n motion: maskMotion,\n prefixCls: prefixCls,\n transitionName: maskTransitionName,\n animation: maskAnimation\n }));\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motion, {\n visible: visible,\n removeOnLeave: true\n }), function (_ref) {\n var className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n zIndex: zIndex\n },\n className: classNames(\"\".concat(prefixCls, \"-mask\"), className)\n });\n });\n}","export default (function (element) {\n if (!element) {\n return false;\n }\n\n if (element.offsetParent) {\n return true;\n }\n\n if (element.getBBox) {\n var box = element.getBBox();\n\n if (box.width || box.height) {\n return true;\n }\n }\n\n if (element.getBoundingClientRect) {\n var _box = element.getBoundingClientRect();\n\n if (_box.width || _box.height) {\n return true;\n }\n }\n\n return false;\n});","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nvar vendorPrefix;\nvar jsCssMap = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n // IE did it wrong again ...\n ms: '-ms-',\n O: '-o-'\n};\n\nfunction getVendorPrefix() {\n if (vendorPrefix !== undefined) {\n return vendorPrefix;\n }\n\n vendorPrefix = '';\n var style = document.createElement('p').style;\n var testProp = 'Transform';\n\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n vendorPrefix = key;\n }\n }\n\n return vendorPrefix;\n}\n\nfunction getTransitionName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"TransitionProperty\") : 'transitionProperty';\n}\n\nfunction getTransformName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"Transform\") : 'transform';\n}\nfunction setTransitionProperty(node, value) {\n var name = getTransitionName();\n\n if (name) {\n node.style[name] = value;\n\n if (name !== 'transitionProperty') {\n node.style.transitionProperty = value;\n }\n }\n}\n\nfunction setTransform(node, value) {\n var name = getTransformName();\n\n if (name) {\n node.style[name] = value;\n\n if (name !== 'transform') {\n node.style.transform = value;\n }\n }\n}\n\nfunction getTransitionProperty(node) {\n return node.style.transitionProperty || node.style[getTransitionName()];\n}\nfunction getTransformXY(node) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n\n if (transform && transform !== 'none') {\n var matrix = transform.replace(/[^0-9\\-.,]/g, '').split(',');\n return {\n x: parseFloat(matrix[12] || matrix[4], 0),\n y: parseFloat(matrix[13] || matrix[5], 0)\n };\n }\n\n return {\n x: 0,\n y: 0\n };\n}\nvar matrix2d = /matrix\\((.*)\\)/;\nvar matrix3d = /matrix3d\\((.*)\\)/;\nfunction setTransformXY(node, xy) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n\n if (transform && transform !== 'none') {\n var arr;\n var match2d = transform.match(matrix2d);\n\n if (match2d) {\n match2d = match2d[1];\n arr = match2d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[4] = xy.x;\n arr[5] = xy.y;\n setTransform(node, \"matrix(\".concat(arr.join(','), \")\"));\n } else {\n var match3d = transform.match(matrix3d)[1];\n arr = match3d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[12] = xy.x;\n arr[13] = xy.y;\n setTransform(node, \"matrix3d(\".concat(arr.join(','), \")\"));\n }\n } else {\n setTransform(node, \"translateX(\".concat(xy.x, \"px) translateY(\").concat(xy.y, \"px) translateZ(0)\"));\n }\n}\n\nvar RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\nvar getComputedStyleX; // https://stackoverflow.com/a/3485654/3040605\n\nfunction forceRelayout(elem) {\n var originalStyle = elem.style.display;\n elem.style.display = 'none';\n elem.offsetHeight; // eslint-disable-line\n\n elem.style.display = originalStyle;\n}\n\nfunction css(el, name, v) {\n var value = v;\n\n if (_typeof(name) === 'object') {\n for (var i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n\n return undefined;\n }\n\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value = \"\".concat(value, \"px\");\n }\n\n el.style[name] = value;\n return undefined;\n }\n\n return getComputedStyleX(el, name);\n}\n\nfunction getClientPosition(elem) {\n var box;\n var x;\n var y;\n var doc = elem.ownerDocument;\n var body = doc.body;\n var docElem = doc && doc.documentElement; // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n\n box = elem.getBoundingClientRect(); // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = box.left;\n y = box.top; // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n return {\n left: x,\n top: y\n };\n}\n\nfunction getScroll(w, top) {\n var ret = w[\"page\".concat(top ? 'Y' : 'X', \"Offset\")];\n var method = \"scroll\".concat(top ? 'Top' : 'Left');\n\n if (typeof ret !== 'number') {\n var d = w.document; // ie6,7,8 standard mode\n\n ret = d.documentElement[method];\n\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n\n return ret;\n}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n var pos = getClientPosition(el);\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\n\n\nfunction isWindow(obj) {\n // must use == for ie8\n\n /* eslint eqeqeq:0 */\n return obj !== null && obj !== undefined && obj == obj.window;\n}\n\nfunction getDocument(node) {\n if (isWindow(node)) {\n return node.document;\n }\n\n if (node.nodeType === 9) {\n return node;\n }\n\n return node.ownerDocument;\n}\n\nfunction _getComputedStyle(elem, name, cs) {\n var computedStyle = cs;\n var val = '';\n var d = getDocument(elem);\n computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null); // https://github.com/kissyteam/kissy/issues/61\n\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n\n return val;\n}\n\nvar _RE_NUM_NO_PX = new RegExp(\"^(\".concat(RE_NUM, \")(?!px)[a-z%]+$\"), 'i');\n\nvar RE_POS = /^(top|right|bottom|left)$/;\nvar CURRENT_STYLE = 'currentStyle';\nvar RUNTIME_STYLE = 'runtimeStyle';\nvar LEFT = 'left';\nvar PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name]; // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n var style = elem.style;\n var left = style[LEFT];\n var rsLeft = elem[RUNTIME_STYLE][LEFT]; // prevent flashing of content\n\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT]; // Put in the new values to get a computed value out\n\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX; // Revert the changed values\n\n style[LEFT] = left;\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n\n return ret === '' ? 'auto' : ret;\n}\n\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\n\nfunction getOffsetDirection(dir, option) {\n if (dir === 'left') {\n return option.useCssRight ? 'right' : dir;\n }\n\n return option.useCssBottom ? 'bottom' : dir;\n}\n\nfunction oppositeOffsetDirection(dir) {\n if (dir === 'left') {\n return 'right';\n } else if (dir === 'right') {\n return 'left';\n } else if (dir === 'top') {\n return 'bottom';\n } else if (dir === 'bottom') {\n return 'top';\n }\n} // 设置 elem 相对 elem.ownerDocument 的坐标\n\n\nfunction setLeftTop(elem, offset, option) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n\n var presetH = -999;\n var presetV = -999;\n var horizontalProperty = getOffsetDirection('left', option);\n var verticalProperty = getOffsetDirection('top', option);\n var oppositeHorizontalProperty = oppositeOffsetDirection(horizontalProperty);\n var oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);\n\n if (horizontalProperty !== 'left') {\n presetH = 999;\n }\n\n if (verticalProperty !== 'top') {\n presetV = 999;\n }\n\n var originalTransition = '';\n var originalOffset = getOffset(elem);\n\n if ('left' in offset || 'top' in offset) {\n originalTransition = getTransitionProperty(elem) || '';\n setTransitionProperty(elem, 'none');\n }\n\n if ('left' in offset) {\n elem.style[oppositeHorizontalProperty] = '';\n elem.style[horizontalProperty] = \"\".concat(presetH, \"px\");\n }\n\n if ('top' in offset) {\n elem.style[oppositeVerticalProperty] = '';\n elem.style[verticalProperty] = \"\".concat(presetV, \"px\");\n } // force relayout\n\n\n forceRelayout(elem);\n var old = getOffset(elem);\n var originalStyle = {};\n\n for (var key in offset) {\n if (offset.hasOwnProperty(key)) {\n var dir = getOffsetDirection(key, option);\n var preset = key === 'left' ? presetH : presetV;\n var off = originalOffset[key] - old[key];\n\n if (dir === key) {\n originalStyle[dir] = preset + off;\n } else {\n originalStyle[dir] = preset - off;\n }\n }\n }\n\n css(elem, originalStyle); // force relayout\n\n forceRelayout(elem);\n\n if ('left' in offset || 'top' in offset) {\n setTransitionProperty(elem, originalTransition);\n }\n\n var ret = {};\n\n for (var _key in offset) {\n if (offset.hasOwnProperty(_key)) {\n var _dir = getOffsetDirection(_key, option);\n\n var _off = offset[_key] - originalOffset[_key];\n\n if (_key === _dir) {\n ret[_dir] = originalStyle[_dir] + _off;\n } else {\n ret[_dir] = originalStyle[_dir] - _off;\n }\n }\n }\n\n css(elem, ret);\n}\n\nfunction setTransform$1(elem, offset) {\n var originalOffset = getOffset(elem);\n var originalXY = getTransformXY(elem);\n var resultXY = {\n x: originalXY.x,\n y: originalXY.y\n };\n\n if ('left' in offset) {\n resultXY.x = originalXY.x + offset.left - originalOffset.left;\n }\n\n if ('top' in offset) {\n resultXY.y = originalXY.y + offset.top - originalOffset.top;\n }\n\n setTransformXY(elem, resultXY);\n}\n\nfunction setOffset(elem, offset, option) {\n if (option.ignoreShake) {\n var oriOffset = getOffset(elem);\n var oLeft = oriOffset.left.toFixed(0);\n var oTop = oriOffset.top.toFixed(0);\n var tLeft = offset.left.toFixed(0);\n var tTop = offset.top.toFixed(0);\n\n if (oLeft === tLeft && oTop === tTop) {\n return;\n }\n }\n\n if (option.useCssRight || option.useCssBottom) {\n setLeftTop(elem, offset, option);\n } else if (option.useCssTransform && getTransformName() in document.body.style) {\n setTransform$1(elem, offset);\n } else {\n setLeftTop(elem, offset, option);\n }\n}\n\nfunction each(arr, fn) {\n for (var i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nvar BOX_MODELS = ['margin', 'border', 'padding'];\nvar CONTENT_INDEX = -1;\nvar PADDING_INDEX = 2;\nvar BORDER_INDEX = 1;\nvar MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n var old = {};\n var style = elem.style;\n var name; // Remember the old values, and insert the new ones\n\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n\n callback.call(elem); // Revert the old values\n\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\n\nfunction getPBMWidth(elem, props, which) {\n var value = 0;\n var prop;\n var j;\n var i;\n\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n\n if (prop) {\n for (i = 0; i < which.length; i++) {\n var cssProp = void 0;\n\n if (prop === 'border') {\n cssProp = \"\".concat(prop).concat(which[i], \"Width\");\n } else {\n cssProp = prop + which[i];\n }\n\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n\n return value;\n}\n\nvar domUtils = {\n getParent: function getParent(element) {\n var parent = element;\n\n do {\n if (parent.nodeType === 11 && parent.host) {\n parent = parent.host;\n } else {\n parent = parent.parentNode;\n }\n } while (parent && parent.nodeType !== 1 && parent.nodeType !== 9);\n\n return parent;\n }\n};\neach(['Width', 'Height'], function (name) {\n domUtils[\"doc\".concat(name)] = function (refWin) {\n var d = refWin.document;\n return Math.max( // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement[\"scroll\".concat(name)], // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body[\"scroll\".concat(name)], domUtils[\"viewport\".concat(name)](d));\n };\n\n domUtils[\"viewport\".concat(name)] = function (win) {\n // pc browser includes scrollbar in window.innerWidth\n var prop = \"client\".concat(name);\n var doc = win.document;\n var body = doc.body;\n var documentElement = doc.documentElement;\n var documentElementProp = documentElement[prop]; // 标准模式取 documentElement\n // backcompat 取 body\n\n return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;\n };\n});\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\n\nfunction getWH(elem, name, ex) {\n var extra = ex;\n\n if (isWindow(elem)) {\n return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);\n }\n\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n var borderBoxValue = name === 'width' ? elem.getBoundingClientRect().width : elem.getBoundingClientRect().height;\n var computedStyle = getComputedStyleX(elem);\n var isBorderBox = isBorderBoxFn(elem);\n var cssBoxValue = 0;\n\n if (borderBoxValue === null || borderBoxValue === undefined || borderBoxValue <= 0) {\n borderBoxValue = undefined; // Fall back to computed then un computed css if necessary\n\n cssBoxValue = getComputedStyleX(elem, name);\n\n if (cssBoxValue === null || cssBoxValue === undefined || Number(cssBoxValue) < 0) {\n cssBoxValue = elem.style[name] || 0;\n } // Normalize '', auto, and prepare for extra\n\n\n cssBoxValue = parseFloat(cssBoxValue) || 0;\n }\n\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n\n var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;\n var val = borderBoxValue || cssBoxValue;\n\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return val - getPBMWidth(elem, ['border', 'padding'], which);\n }\n\n return cssBoxValue;\n } else if (borderBoxValueOrIsBorderBox) {\n if (extra === BORDER_INDEX) {\n return val;\n }\n\n return val + (extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which) : getPBMWidth(elem, ['margin'], which));\n }\n\n return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which);\n}\n\nvar cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block'\n}; // fix #119 : https://github.com/kissyteam/kissy/issues/119\n\nfunction getWHIgnoreDisplay() {\n for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var val;\n var elem = args[0]; // in case elem is window\n // elem.offsetWidth === undefined\n\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, function () {\n val = getWH.apply(undefined, args);\n });\n }\n\n return val;\n}\n\neach(['width', 'height'], function (name) {\n var first = name.charAt(0).toUpperCase() + name.slice(1);\n\n domUtils[\"outer\".concat(first)] = function (el, includeMargin) {\n return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);\n };\n\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = function (elem, v) {\n var val = v;\n\n if (val !== undefined) {\n if (elem) {\n var computedStyle = getComputedStyleX(elem);\n var isBorderBox = isBorderBoxFn(elem);\n\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which);\n }\n\n return css(elem, name, val);\n }\n\n return undefined;\n }\n\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\n\nfunction mix(to, from) {\n for (var i in from) {\n if (from.hasOwnProperty(i)) {\n to[i] = from[i];\n }\n }\n\n return to;\n}\n\nvar utils = {\n getWindow: function getWindow(node) {\n if (node && node.document && node.setTimeout) {\n return node;\n }\n\n var doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n getDocument: getDocument,\n offset: function offset(el, value, option) {\n if (typeof value !== 'undefined') {\n setOffset(el, value, option || {});\n } else {\n return getOffset(el);\n }\n },\n isWindow: isWindow,\n each: each,\n css: css,\n clone: function clone(obj) {\n var i;\n var ret = {};\n\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n\n var overflow = obj.overflow;\n\n if (overflow) {\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret.overflow[i] = obj.overflow[i];\n }\n }\n }\n\n return ret;\n },\n mix: mix,\n getWindowScrollLeft: function getWindowScrollLeft(w) {\n return getScrollLeft(w);\n },\n getWindowScrollTop: function getWindowScrollTop(w) {\n return getScrollTop(w);\n },\n merge: function merge() {\n var ret = {};\n\n for (var i = 0; i < arguments.length; i++) {\n utils.mix(ret, i < 0 || arguments.length <= i ? undefined : arguments[i]);\n }\n\n return ret;\n },\n viewportWidth: 0,\n viewportHeight: 0\n};\nmix(utils, domUtils);\n\n/**\n * 得到会导致元素显示不全的祖先元素\n */\n\nvar getParent = utils.getParent;\n\nfunction getOffsetParent(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return null;\n } // ie 这个也不是完全可行\n\n /*\n
    \n
    \n 元素 6 高 100px 宽 50px
    \n
    \n
    \n */\n // element.offsetParent does the right thing in ie7 and below. Return parent with layout!\n // In other browsers it only includes elements with position absolute, relative or\n // fixed, not elements with overflow set to auto or scroll.\n // if (UA.ie && ieMode < 8) {\n // return element.offsetParent;\n // }\n // 统一的 offsetParent 方法\n\n\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent;\n var positionStyle = utils.css(element, 'position');\n var skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';\n\n if (!skipStatic) {\n return element.nodeName.toLowerCase() === 'html' ? null : getParent(element);\n }\n\n for (parent = getParent(element); parent && parent !== body && parent.nodeType !== 9; parent = getParent(parent)) {\n positionStyle = utils.css(parent, 'position');\n\n if (positionStyle !== 'static') {\n return parent;\n }\n }\n\n return null;\n}\n\nvar getParent$1 = utils.getParent;\nfunction isAncestorFixed(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return false;\n }\n\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent = null;\n\n for (parent = getParent$1(element); parent && parent !== body; parent = getParent$1(parent)) {\n var positionStyle = utils.css(parent, 'position');\n\n if (positionStyle === 'fixed') {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * 获得元素的显示部分的区域\n */\n\nfunction getVisibleRectForElement(element, alwaysByViewport) {\n var visibleRect = {\n left: 0,\n right: Infinity,\n top: 0,\n bottom: Infinity\n };\n var el = getOffsetParent(element);\n var doc = utils.getDocument(element);\n var win = doc.defaultView || doc.parentWindow;\n var body = doc.body;\n var documentElement = doc.documentElement; // Determine the size of the visible rect by climbing the dom accounting for\n // all scrollable containers.\n\n while (el) {\n // clientWidth is zero for inline block elements in ie.\n if ((navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) && // body may have overflow set on it, yet we still get the entire\n // viewport. In some browsers, el.offsetParent may be\n // document.documentElement, so check for that too.\n el !== body && el !== documentElement && utils.css(el, 'overflow') !== 'visible') {\n var pos = utils.offset(el); // add border\n\n pos.left += el.clientLeft;\n pos.top += el.clientTop;\n visibleRect.top = Math.max(visibleRect.top, pos.top);\n visibleRect.right = Math.min(visibleRect.right, // consider area without scrollBar\n pos.left + el.clientWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, pos.top + el.clientHeight);\n visibleRect.left = Math.max(visibleRect.left, pos.left);\n } else if (el === body || el === documentElement) {\n break;\n }\n\n el = getOffsetParent(el);\n } // Set element position to fixed\n // make sure absolute element itself don't affect it's visible area\n // https://github.com/ant-design/ant-design/issues/7601\n\n\n var originalPosition = null;\n\n if (!utils.isWindow(element) && element.nodeType !== 9) {\n originalPosition = element.style.position;\n var position = utils.css(element, 'position');\n\n if (position === 'absolute') {\n element.style.position = 'fixed';\n }\n }\n\n var scrollX = utils.getWindowScrollLeft(win);\n var scrollY = utils.getWindowScrollTop(win);\n var viewportWidth = utils.viewportWidth(win);\n var viewportHeight = utils.viewportHeight(win);\n var documentWidth = documentElement.scrollWidth;\n var documentHeight = documentElement.scrollHeight; // scrollXXX on html is sync with body which means overflow: hidden on body gets wrong scrollXXX.\n // We should cut this ourself.\n\n var bodyStyle = window.getComputedStyle(body);\n\n if (bodyStyle.overflowX === 'hidden') {\n documentWidth = win.innerWidth;\n }\n\n if (bodyStyle.overflowY === 'hidden') {\n documentHeight = win.innerHeight;\n } // Reset element position after calculate the visible area\n\n\n if (element.style) {\n element.style.position = originalPosition;\n }\n\n if (alwaysByViewport || isAncestorFixed(element)) {\n // Clip by viewport's size.\n visibleRect.left = Math.max(visibleRect.left, scrollX);\n visibleRect.top = Math.max(visibleRect.top, scrollY);\n visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight);\n } else {\n // Clip by document's size.\n var maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);\n visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);\n var maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);\n visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);\n }\n\n return visibleRect.top >= 0 && visibleRect.left >= 0 && visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left ? visibleRect : null;\n}\n\nfunction adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {\n var pos = utils.clone(elFuturePos);\n var size = {\n width: elRegion.width,\n height: elRegion.height\n };\n\n if (overflow.adjustX && pos.left < visibleRect.left) {\n pos.left = visibleRect.left;\n } // Left edge inside and right edge outside viewport, try to resize it.\n\n\n if (overflow.resizeWidth && pos.left >= visibleRect.left && pos.left + size.width > visibleRect.right) {\n size.width -= pos.left + size.width - visibleRect.right;\n } // Right edge outside viewport, try to move it.\n\n\n if (overflow.adjustX && pos.left + size.width > visibleRect.right) {\n // 保证左边界和可视区域左边界对齐\n pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);\n } // Top edge outside viewport, try to move it.\n\n\n if (overflow.adjustY && pos.top < visibleRect.top) {\n pos.top = visibleRect.top;\n } // Top edge inside and bottom edge outside viewport, try to resize it.\n\n\n if (overflow.resizeHeight && pos.top >= visibleRect.top && pos.top + size.height > visibleRect.bottom) {\n size.height -= pos.top + size.height - visibleRect.bottom;\n } // Bottom edge outside viewport, try to move it.\n\n\n if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {\n // 保证上边界和可视区域上边界对齐\n pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);\n }\n\n return utils.mix(pos, size);\n}\n\nfunction getRegion(node) {\n var offset;\n var w;\n var h;\n\n if (!utils.isWindow(node) && node.nodeType !== 9) {\n offset = utils.offset(node);\n w = utils.outerWidth(node);\n h = utils.outerHeight(node);\n } else {\n var win = utils.getWindow(node);\n offset = {\n left: utils.getWindowScrollLeft(win),\n top: utils.getWindowScrollTop(win)\n };\n w = utils.viewportWidth(win);\n h = utils.viewportHeight(win);\n }\n\n offset.width = w;\n offset.height = h;\n return offset;\n}\n\n/**\n * 获取 node 上的 align 对齐点 相对于页面的坐标\n */\nfunction getAlignOffset(region, align) {\n var V = align.charAt(0);\n var H = align.charAt(1);\n var w = region.width;\n var h = region.height;\n var x = region.left;\n var y = region.top;\n\n if (V === 'c') {\n y += h / 2;\n } else if (V === 'b') {\n y += h;\n }\n\n if (H === 'c') {\n x += w / 2;\n } else if (H === 'r') {\n x += w;\n }\n\n return {\n left: x,\n top: y\n };\n}\n\nfunction getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {\n var p1 = getAlignOffset(refNodeRegion, points[1]);\n var p2 = getAlignOffset(elRegion, points[0]);\n var diff = [p2.left - p1.left, p2.top - p1.top];\n return {\n left: Math.round(elRegion.left - diff[0] + offset[0] - targetOffset[0]),\n top: Math.round(elRegion.top - diff[1] + offset[1] - targetOffset[1])\n };\n}\n\n/**\n * align dom node flexibly\n * @author yiminghe@gmail.com\n */\n\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left < visibleRect.left || elFuturePos.left + elRegion.width > visibleRect.right;\n}\n\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top < visibleRect.top || elFuturePos.top + elRegion.height > visibleRect.bottom;\n}\n\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left > visibleRect.right || elFuturePos.left + elRegion.width < visibleRect.left;\n}\n\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top > visibleRect.bottom || elFuturePos.top + elRegion.height < visibleRect.top;\n}\n\nfunction flip(points, reg, map) {\n var ret = [];\n utils.each(points, function (p) {\n ret.push(p.replace(reg, function (m) {\n return map[m];\n }));\n });\n return ret;\n}\n\nfunction flipOffset(offset, index) {\n offset[index] = -offset[index];\n return offset;\n}\n\nfunction convertOffset(str, offsetLen) {\n var n;\n\n if (/%$/.test(str)) {\n n = parseInt(str.substring(0, str.length - 1), 10) / 100 * offsetLen;\n } else {\n n = parseInt(str, 10);\n }\n\n return n || 0;\n}\n\nfunction normalizeOffset(offset, el) {\n offset[0] = convertOffset(offset[0], el.width);\n offset[1] = convertOffset(offset[1], el.height);\n}\n/**\n * @param el\n * @param tgtRegion 参照节点所占的区域: { left, top, width, height }\n * @param align\n */\n\n\nfunction doAlign(el, tgtRegion, align, isTgtRegionVisible) {\n var points = align.points;\n var offset = align.offset || [0, 0];\n var targetOffset = align.targetOffset || [0, 0];\n var overflow = align.overflow;\n var source = align.source || el;\n offset = [].concat(offset);\n targetOffset = [].concat(targetOffset);\n overflow = overflow || {};\n var newOverflowCfg = {};\n var fail = 0;\n var alwaysByViewport = !!(overflow && overflow.alwaysByViewport); // 当前节点可以被放置的显示区域\n\n var visibleRect = getVisibleRectForElement(source, alwaysByViewport); // 当前节点所占的区域, left/top/width/height\n\n var elRegion = getRegion(source); // 将 offset 转换成数值,支持百分比\n\n normalizeOffset(offset, elRegion);\n normalizeOffset(targetOffset, tgtRegion); // 当前节点将要被放置的位置\n\n var elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset); // 当前节点将要所处的区域\n\n var newElRegion = utils.merge(elRegion, elFuturePos); // 如果可视区域不能完全放置当前节点时允许调整\n\n if (visibleRect && (overflow.adjustX || overflow.adjustY) && isTgtRegionVisible) {\n if (overflow.adjustX) {\n // 如果横向不能放下\n if (isFailX(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l'\n }); // 偏移量也反下\n\n var newOffset = flipOffset(offset, 0);\n var newTargetOffset = flipOffset(targetOffset, 0);\n var newElFuturePos = getElFuturePos(elRegion, tgtRegion, newPoints, newOffset, newTargetOffset);\n\n if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n if (overflow.adjustY) {\n // 如果纵向不能放下\n if (isFailY(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var _newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't'\n }); // 偏移量也反下\n\n\n var _newOffset = flipOffset(offset, 1);\n\n var _newTargetOffset = flipOffset(targetOffset, 1);\n\n var _newElFuturePos = getElFuturePos(elRegion, tgtRegion, _newPoints, _newOffset, _newTargetOffset);\n\n if (!isCompleteFailY(_newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = _newPoints;\n offset = _newOffset;\n targetOffset = _newTargetOffset;\n }\n }\n } // 如果失败,重新计算当前节点将要被放置的位置\n\n\n if (fail) {\n elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset);\n utils.mix(newElRegion, elFuturePos);\n }\n\n var isStillFailX = isFailX(elFuturePos, elRegion, visibleRect);\n var isStillFailY = isFailY(elFuturePos, elRegion, visibleRect); // 检查反下后的位置是否可以放下了,如果仍然放不下:\n // 1. 复原修改过的定位参数\n\n if (isStillFailX || isStillFailY) {\n var _newPoints2 = points; // 重置对应部分的翻转逻辑\n\n if (isStillFailX) {\n _newPoints2 = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l'\n });\n }\n\n if (isStillFailY) {\n _newPoints2 = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't'\n });\n }\n\n points = _newPoints2;\n offset = align.offset || [0, 0];\n targetOffset = align.targetOffset || [0, 0];\n } // 2. 只有指定了可以调整当前方向才调整\n\n\n newOverflowCfg.adjustX = overflow.adjustX && isStillFailX;\n newOverflowCfg.adjustY = overflow.adjustY && isStillFailY; // 确实要调整,甚至可能会调整高度宽度\n\n if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {\n newElRegion = adjustForViewport(elFuturePos, elRegion, visibleRect, newOverflowCfg);\n }\n } // need judge to in case set fixed with in css on height auto element\n\n\n if (newElRegion.width !== elRegion.width) {\n utils.css(source, 'width', utils.width(source) + newElRegion.width - elRegion.width);\n }\n\n if (newElRegion.height !== elRegion.height) {\n utils.css(source, 'height', utils.height(source) + newElRegion.height - elRegion.height);\n } // https://github.com/kissyteam/kissy/issues/190\n // 相对于屏幕位置没变,而 left/top 变了\n // 例如
    \n\n\n utils.offset(source, {\n left: newElRegion.left,\n top: newElRegion.top\n }, {\n useCssRight: align.useCssRight,\n useCssBottom: align.useCssBottom,\n useCssTransform: align.useCssTransform,\n ignoreShake: align.ignoreShake\n });\n return {\n points: points,\n offset: offset,\n targetOffset: targetOffset,\n overflow: newOverflowCfg\n };\n}\n/**\n * 2012-04-26 yiminghe@gmail.com\n * - 优化智能对齐算法\n * - 慎用 resizeXX\n *\n * 2011-07-13 yiminghe@gmail.com note:\n * - 增加智能对齐,以及大小调整选项\n **/\n\nfunction isOutOfVisibleRect(target, alwaysByViewport) {\n var visibleRect = getVisibleRectForElement(target, alwaysByViewport);\n var targetRegion = getRegion(target);\n return !visibleRect || targetRegion.left + targetRegion.width <= visibleRect.left || targetRegion.top + targetRegion.height <= visibleRect.top || targetRegion.left >= visibleRect.right || targetRegion.top >= visibleRect.bottom;\n}\n\nfunction alignElement(el, refNode, align) {\n var target = align.target || refNode;\n var refNodeRegion = getRegion(target);\n var isTargetNotOutOfVisible = !isOutOfVisibleRect(target, align.overflow && align.overflow.alwaysByViewport);\n return doAlign(el, refNodeRegion, align, isTargetNotOutOfVisible);\n}\n\nalignElement.__getOffsetParent = getOffsetParent;\nalignElement.__getVisibleRectForElement = getVisibleRectForElement;\n\n/**\n * `tgtPoint`: { pageX, pageY } or { clientX, clientY }.\n * If client position provided, will internal convert to page position.\n */\n\nfunction alignPoint(el, tgtPoint, align) {\n var pageX;\n var pageY;\n var doc = utils.getDocument(el);\n var win = doc.defaultView || doc.parentWindow;\n var scrollX = utils.getWindowScrollLeft(win);\n var scrollY = utils.getWindowScrollTop(win);\n var viewportWidth = utils.viewportWidth(win);\n var viewportHeight = utils.viewportHeight(win);\n\n if ('pageX' in tgtPoint) {\n pageX = tgtPoint.pageX;\n } else {\n pageX = scrollX + tgtPoint.clientX;\n }\n\n if ('pageY' in tgtPoint) {\n pageY = tgtPoint.pageY;\n } else {\n pageY = scrollY + tgtPoint.clientY;\n }\n\n var tgtRegion = {\n left: pageX,\n top: pageY,\n width: 0,\n height: 0\n };\n var pointInView = pageX >= 0 && pageX <= scrollX + viewportWidth && pageY >= 0 && pageY <= scrollY + viewportHeight; // Provide default target point\n\n var points = [align.points[0], 'cc'];\n return doAlign(el, tgtRegion, _objectSpread2({}, align, {\n points: points\n }), pointInView);\n}\n\nexport default alignElement;\nexport { alignElement, alignPoint };\n//# sourceMappingURL=index.js.map\n","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ResizeObserver from 'resize-observer-polyfill';\nimport contains from \"rc-util/es/Dom/contains\";\nexport function isSamePoint(prev, next) {\n if (prev === next) return true;\n if (!prev || !next) return false;\n\n if ('pageX' in next && 'pageY' in next) {\n return prev.pageX === next.pageX && prev.pageY === next.pageY;\n }\n\n if ('clientX' in next && 'clientY' in next) {\n return prev.clientX === next.clientX && prev.clientY === next.clientY;\n }\n\n return false;\n}\nexport function restoreFocus(activeElement, container) {\n // Focus back if is in the container\n if (activeElement !== document.activeElement && contains(container, activeElement) && typeof activeElement.focus === 'function') {\n activeElement.focus();\n }\n}\nexport function monitorResize(element, callback) {\n var prevWidth = null;\n var prevHeight = null;\n\n function onResize(_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n target = _ref2[0].target;\n\n if (!document.documentElement.contains(target)) return;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n\n if (prevWidth !== fixedWidth || prevHeight !== fixedHeight) {\n // https://webkit.org/blog/9997/resizeobserver-in-webkit/\n Promise.resolve().then(function () {\n callback({\n width: fixedWidth,\n height: fixedHeight\n });\n });\n }\n\n prevWidth = fixedWidth;\n prevHeight = fixedHeight;\n }\n\n var resizeObserver = new ResizeObserver(onResize);\n\n if (element) {\n resizeObserver.observe(element);\n }\n\n return function () {\n resizeObserver.disconnect();\n };\n}","import React from 'react';\nexport default (function (callback, buffer) {\n var calledRef = React.useRef(false);\n var timeoutRef = React.useRef(null);\n\n function cancelTrigger() {\n window.clearTimeout(timeoutRef.current);\n }\n\n function trigger(force) {\n if (!calledRef.current || force === true) {\n if (callback() === false) {\n // Not delay since callback cancelled self\n return;\n }\n\n calledRef.current = true;\n cancelTrigger();\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n }, buffer);\n } else {\n cancelTrigger();\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n trigger();\n }, buffer);\n }\n }\n\n return [trigger, function () {\n calledRef.current = false;\n cancelTrigger();\n }];\n});","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/**\n * Removed props:\n * - childrenProps\n */\nimport React from 'react';\nimport { composeRef } from \"rc-util/es/ref\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport { alignElement, alignPoint } from 'dom-align';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport { isSamePoint, restoreFocus, monitorResize } from './util';\nimport useBuffer from './hooks/useBuffer';\n\nfunction getElement(func) {\n if (typeof func !== 'function') return null;\n return func();\n}\n\nfunction getPoint(point) {\n if (_typeof(point) !== 'object' || !point) return null;\n return point;\n}\n\nvar Align = function Align(_ref, ref) {\n var children = _ref.children,\n disabled = _ref.disabled,\n target = _ref.target,\n align = _ref.align,\n onAlign = _ref.onAlign,\n monitorWindowResize = _ref.monitorWindowResize,\n _ref$monitorBufferTim = _ref.monitorBufferTime,\n monitorBufferTime = _ref$monitorBufferTim === void 0 ? 0 : _ref$monitorBufferTim;\n var cacheRef = React.useRef({});\n var nodeRef = React.useRef();\n var childNode = React.Children.only(children); // ===================== Align ======================\n // We save the props here to avoid closure makes props ood\n\n var forceAlignPropsRef = React.useRef({});\n forceAlignPropsRef.current.disabled = disabled;\n forceAlignPropsRef.current.target = target;\n forceAlignPropsRef.current.onAlign = onAlign;\n\n var _useBuffer = useBuffer(function () {\n var _forceAlignPropsRef$c = forceAlignPropsRef.current,\n latestDisabled = _forceAlignPropsRef$c.disabled,\n latestTarget = _forceAlignPropsRef$c.target,\n latestOnAlign = _forceAlignPropsRef$c.onAlign;\n\n if (!latestDisabled && latestTarget) {\n var source = nodeRef.current;\n var result;\n var element = getElement(latestTarget);\n var point = getPoint(latestTarget);\n cacheRef.current.element = element;\n cacheRef.current.point = point; // IE lose focus after element realign\n // We should record activeElement and restore later\n\n var _document = document,\n activeElement = _document.activeElement; // We only align when element is visible\n\n if (element && isVisible(element)) {\n result = alignElement(source, element, align);\n } else if (point) {\n result = alignPoint(source, point, align);\n }\n\n restoreFocus(activeElement, source);\n\n if (latestOnAlign && result) {\n latestOnAlign(source, result);\n }\n\n return true;\n }\n\n return false;\n }, monitorBufferTime),\n _useBuffer2 = _slicedToArray(_useBuffer, 2),\n _forceAlign = _useBuffer2[0],\n cancelForceAlign = _useBuffer2[1]; // ===================== Effect =====================\n // Listen for target updated\n\n\n var resizeMonitor = React.useRef({\n cancel: function cancel() {}\n }); // Listen for source updated\n\n var sourceResizeMonitor = React.useRef({\n cancel: function cancel() {}\n });\n React.useEffect(function () {\n var element = getElement(target);\n var point = getPoint(target);\n\n if (nodeRef.current !== sourceResizeMonitor.current.element) {\n sourceResizeMonitor.current.cancel();\n sourceResizeMonitor.current.element = nodeRef.current;\n sourceResizeMonitor.current.cancel = monitorResize(nodeRef.current, _forceAlign);\n }\n\n if (cacheRef.current.element !== element || !isSamePoint(cacheRef.current.point, point)) {\n _forceAlign(); // Add resize observer\n\n\n if (resizeMonitor.current.element !== element) {\n resizeMonitor.current.cancel();\n resizeMonitor.current.element = element;\n resizeMonitor.current.cancel = monitorResize(element, _forceAlign);\n }\n }\n }); // Listen for disabled change\n\n React.useEffect(function () {\n if (!disabled) {\n _forceAlign();\n } else {\n cancelForceAlign();\n }\n }, [disabled]); // Listen for window resize\n\n var winResizeRef = React.useRef(null);\n React.useEffect(function () {\n if (monitorWindowResize) {\n if (!winResizeRef.current) {\n winResizeRef.current = addEventListener(window, 'resize', _forceAlign);\n }\n } else if (winResizeRef.current) {\n winResizeRef.current.remove();\n winResizeRef.current = null;\n }\n }, [monitorWindowResize]); // Clear all if unmount\n\n React.useEffect(function () {\n return function () {\n resizeMonitor.current.cancel();\n sourceResizeMonitor.current.cancel();\n if (winResizeRef.current) winResizeRef.current.remove();\n cancelForceAlign();\n };\n }, []); // ====================== Ref =======================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {\n return _forceAlign(true);\n }\n };\n }); // ===================== Render =====================\n\n if (React.isValidElement(childNode)) {\n childNode = React.cloneElement(childNode, {\n ref: composeRef(childNode.ref, nodeRef)\n });\n }\n\n return childNode;\n};\n\nvar RefAlign = React.forwardRef(Align);\nRefAlign.displayName = 'Align';\nexport default RefAlign;","import _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useState, useEffect, useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nvar StatusQueue = ['measure', 'align', null, 'motion'];\nexport default (function (visible, doMeasure) {\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n status = _useState2[0],\n setInternalStatus = _useState2[1];\n\n var rafRef = useRef();\n var destroyRef = useRef(false);\n\n function setStatus(nextStatus) {\n if (!destroyRef.current) {\n setInternalStatus(nextStatus);\n }\n }\n\n function cancelRaf() {\n raf.cancel(rafRef.current);\n }\n\n function goNextStatus(callback) {\n cancelRaf();\n rafRef.current = raf(function () {\n // Only align should be manually trigger\n setStatus(function (prev) {\n switch (status) {\n case 'align':\n return 'motion';\n\n case 'motion':\n return 'stable';\n\n default:\n }\n\n return prev;\n });\n callback === null || callback === void 0 ? void 0 : callback();\n });\n } // Init status\n\n\n useEffect(function () {\n setStatus('measure');\n }, [visible]); // Go next status\n\n useEffect(function () {\n switch (status) {\n case 'measure':\n doMeasure();\n break;\n\n default:\n }\n\n if (status) {\n rafRef.current = raf( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var index, nextStatus;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n index = StatusQueue.indexOf(status);\n nextStatus = StatusQueue[index + 1];\n\n if (nextStatus && index !== -1) {\n setStatus(nextStatus);\n }\n\n case 3:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n })));\n }\n }, [status]);\n useEffect(function () {\n return function () {\n destroyRef.current = true;\n cancelRaf();\n };\n }, []);\n return [status, goNextStatus];\n});","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default (function (stretch) {\n var _React$useState = React.useState({\n width: 0,\n height: 0\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n targetSize = _React$useState2[0],\n setTargetSize = _React$useState2[1];\n\n function measureStretch(element) {\n setTargetSize({\n width: element.offsetWidth,\n height: element.offsetHeight\n });\n } // Merge stretch style\n\n\n var style = React.useMemo(function () {\n var sizeStyle = {};\n\n if (stretch) {\n var width = targetSize.width,\n height = targetSize.height; // Stretch with target\n\n if (stretch.indexOf('height') !== -1 && height) {\n sizeStyle.height = height;\n } else if (stretch.indexOf('minHeight') !== -1 && height) {\n sizeStyle.minHeight = height;\n }\n\n if (stretch.indexOf('width') !== -1 && width) {\n sizeStyle.width = width;\n } else if (stretch.indexOf('minWidth') !== -1 && width) {\n sizeStyle.minWidth = width;\n }\n }\n\n return sizeStyle;\n }, [stretch, targetSize]);\n return [style, measureStretch];\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport Align from 'rc-align';\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nimport useVisibleStatus from './useVisibleStatus';\nimport { getMotion } from '../utils/legacyUtil';\nimport useStretchStyle from './useStretchStyle';\nvar PopupInner = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var visible = props.visible,\n prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n children = props.children,\n zIndex = props.zIndex,\n stretch = props.stretch,\n destroyPopupOnHide = props.destroyPopupOnHide,\n forceRender = props.forceRender,\n align = props.align,\n point = props.point,\n getRootDomNode = props.getRootDomNode,\n getClassNameFromAlign = props.getClassNameFromAlign,\n onAlign = props.onAlign,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onMouseDown = props.onMouseDown,\n onTouchStart = props.onTouchStart;\n var alignRef = useRef();\n var elementRef = useRef();\n\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n alignedClassName = _useState2[0],\n setAlignedClassName = _useState2[1]; // ======================= Measure ========================\n\n\n var _useStretchStyle = useStretchStyle(stretch),\n _useStretchStyle2 = _slicedToArray(_useStretchStyle, 2),\n stretchStyle = _useStretchStyle2[0],\n measureStretchStyle = _useStretchStyle2[1];\n\n function doMeasure() {\n if (stretch) {\n measureStretchStyle(getRootDomNode());\n }\n } // ======================== Status ========================\n\n\n var _useVisibleStatus = useVisibleStatus(visible, doMeasure),\n _useVisibleStatus2 = _slicedToArray(_useVisibleStatus, 2),\n status = _useVisibleStatus2[0],\n goNextStatus = _useVisibleStatus2[1]; // ======================== Aligns ========================\n\n\n var prepareResolveRef = useRef(); // `target` on `rc-align` can accept as a function to get the bind element or a point.\n // ref: https://www.npmjs.com/package/rc-align\n\n function getAlignTarget() {\n if (point) {\n return point;\n }\n\n return getRootDomNode;\n }\n\n function forceAlign() {\n var _alignRef$current;\n\n (_alignRef$current = alignRef.current) === null || _alignRef$current === void 0 ? void 0 : _alignRef$current.forceAlign();\n }\n\n function onInternalAlign(popupDomNode, matchAlign) {\n if (status === 'align') {\n var nextAlignedClassName = getClassNameFromAlign(matchAlign);\n setAlignedClassName(nextAlignedClassName); // Repeat until not more align needed\n\n if (alignedClassName !== nextAlignedClassName) {\n Promise.resolve().then(function () {\n forceAlign();\n });\n } else {\n goNextStatus(function () {\n var _prepareResolveRef$cu;\n\n (_prepareResolveRef$cu = prepareResolveRef.current) === null || _prepareResolveRef$cu === void 0 ? void 0 : _prepareResolveRef$cu.call(prepareResolveRef);\n });\n }\n\n onAlign === null || onAlign === void 0 ? void 0 : onAlign(popupDomNode, matchAlign);\n }\n } // ======================== Motion ========================\n\n\n var motion = _objectSpread({}, getMotion(props));\n\n ['onAppearEnd', 'onEnterEnd', 'onLeaveEnd'].forEach(function (eventName) {\n var originHandler = motion[eventName];\n\n motion[eventName] = function (element, event) {\n goNextStatus();\n return originHandler === null || originHandler === void 0 ? void 0 : originHandler(element, event);\n };\n });\n\n function onShowPrepare() {\n return new Promise(function (resolve) {\n prepareResolveRef.current = resolve;\n });\n } // Go to stable directly when motion not provided\n\n\n React.useEffect(function () {\n if (!motion.motionName && status === 'motion') {\n goNextStatus();\n }\n }, [motion.motionName, status]); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: forceAlign,\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread(_objectSpread({}, stretchStyle), {}, {\n zIndex: zIndex,\n opacity: status === 'motion' || status === 'stable' || !visible ? undefined : 0,\n pointerEvents: status === 'stable' ? undefined : 'none'\n }, style); // Align status\n\n\n var alignDisabled = true;\n\n if ((align === null || align === void 0 ? void 0 : align.points) && (status === 'align' || status === 'stable')) {\n alignDisabled = false;\n }\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: visible,\n ref: elementRef,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }, motion, {\n onAppearPrepare: onShowPrepare,\n onEnterPrepare: onShowPrepare,\n removeOnLeave: destroyPopupOnHide,\n forceRender: forceRender\n }), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, className, alignedClassName, motionClassName);\n return /*#__PURE__*/React.createElement(Align, {\n target: getAlignTarget(),\n key: \"popup\",\n ref: alignRef,\n monitorWindowResize: true,\n disabled: alignDisabled,\n align: align,\n onAlign: onInternalAlign\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDownCapture: onMouseDown,\n onTouchStartCapture: onTouchStart,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode));\n });\n});\nPopupInner.displayName = 'PopupInner';\nexport default PopupInner;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nvar MobilePopupInner = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n children = props.children,\n _props$mobile = props.mobile;\n _props$mobile = _props$mobile === void 0 ? {} : _props$mobile;\n var popupClassName = _props$mobile.popupClassName,\n popupStyle = _props$mobile.popupStyle,\n _props$mobile$popupMo = _props$mobile.popupMotion,\n popupMotion = _props$mobile$popupMo === void 0 ? {} : _props$mobile$popupMo,\n popupRender = _props$mobile.popupRender;\n var elementRef = React.useRef(); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {},\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread({\n zIndex: zIndex\n }, popupStyle);\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n } // Mobile support additional render\n\n\n if (popupRender) {\n childNode = popupRender(childNode);\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: visible,\n ref: elementRef,\n removeOnLeave: true\n }, popupMotion), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, popupClassName, motionClassName);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode);\n });\n});\nMobilePopupInner.displayName = 'MobilePopupInner';\nexport default MobilePopupInner;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { useState, useEffect } from 'react';\nimport isMobile from \"rc-util/es/isMobile\";\nimport Mask from './Mask';\nimport PopupInner from './PopupInner';\nimport MobilePopupInner from './MobilePopupInner';\nvar Popup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var visible = _ref.visible,\n mobile = _ref.mobile,\n props = _objectWithoutProperties(_ref, [\"visible\", \"mobile\"]);\n\n var _useState = useState(visible),\n _useState2 = _slicedToArray(_useState, 2),\n innerVisible = _useState2[0],\n serInnerVisible = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n inMobile = _useState4[0],\n setInMobile = _useState4[1];\n\n var cloneProps = _objectSpread(_objectSpread({}, props), {}, {\n visible: innerVisible\n }); // We check mobile in visible changed here.\n // And this also delay set `innerVisible` to avoid popup component render flash\n\n\n useEffect(function () {\n serInnerVisible(visible);\n\n if (visible && mobile) {\n setInMobile(isMobile());\n }\n }, [visible, mobile]);\n var popupNode = inMobile ? /*#__PURE__*/React.createElement(MobilePopupInner, _extends({}, cloneProps, {\n mobile: mobile,\n ref: ref\n })) : /*#__PURE__*/React.createElement(PopupInner, _extends({}, cloneProps, {\n ref: ref\n })); // We can use fragment directly but this may failed some selector usage. Keep as origin logic\n\n return /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(Mask, cloneProps), popupNode);\n});\nPopup.displayName = 'Popup';\nexport default Popup;","import * as React from 'react';\nvar TriggerContext = /*#__PURE__*/React.createContext(null);\nexport default TriggerContext;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport raf from \"rc-util/es/raf\";\nimport contains from \"rc-util/es/Dom/contains\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport Portal from \"rc-util/es/Portal\";\nimport classNames from 'classnames';\nimport { getAlignFromPlacement, getAlignPopupClassName } from './utils/alignUtil';\nimport Popup from './Popup';\nimport TriggerContext from './context';\n\nfunction noop() {}\n\nfunction returnEmptyString() {\n return '';\n}\n\nfunction returnDocument(element) {\n if (element) {\n return element.ownerDocument;\n }\n\n return window.document;\n}\n\nvar ALL_HANDLERS = ['onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur', 'onContextMenu'];\n/**\n * Internal usage. Do not use in your code since this will be removed.\n */\n\nexport function generateTrigger(PortalComponent) {\n var Trigger = /*#__PURE__*/function (_React$Component) {\n _inherits(Trigger, _React$Component);\n\n var _super = _createSuper(Trigger);\n\n function Trigger(props) {\n var _this;\n\n _classCallCheck(this, Trigger);\n\n _this = _super.call(this, props);\n _this.popupRef = /*#__PURE__*/React.createRef();\n _this.triggerRef = /*#__PURE__*/React.createRef();\n\n _this.onMouseEnter = function (e) {\n var mouseEnterDelay = _this.props.mouseEnterDelay;\n\n _this.fireEvents('onMouseEnter', e);\n\n _this.delaySetPopupVisible(true, mouseEnterDelay, mouseEnterDelay ? null : e);\n };\n\n _this.onMouseMove = function (e) {\n _this.fireEvents('onMouseMove', e);\n\n _this.setPoint(e);\n };\n\n _this.onMouseLeave = function (e) {\n _this.fireEvents('onMouseLeave', e);\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n };\n\n _this.onPopupMouseEnter = function () {\n _this.clearDelayTimer();\n };\n\n _this.onPopupMouseLeave = function (e) {\n var _this$popupRef$curren;\n\n // https://github.com/react-component/trigger/pull/13\n // react bug?\n if (e.relatedTarget && !e.relatedTarget.setTimeout && contains((_this$popupRef$curren = _this.popupRef.current) === null || _this$popupRef$curren === void 0 ? void 0 : _this$popupRef$curren.getElement(), e.relatedTarget)) {\n return;\n }\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n };\n\n _this.onFocus = function (e) {\n _this.fireEvents('onFocus', e); // incase focusin and focusout\n\n\n _this.clearDelayTimer();\n\n if (_this.isFocusToShow()) {\n _this.focusTime = Date.now();\n\n _this.delaySetPopupVisible(true, _this.props.focusDelay);\n }\n };\n\n _this.onMouseDown = function (e) {\n _this.fireEvents('onMouseDown', e);\n\n _this.preClickTime = Date.now();\n };\n\n _this.onTouchStart = function (e) {\n _this.fireEvents('onTouchStart', e);\n\n _this.preTouchTime = Date.now();\n };\n\n _this.onBlur = function (e) {\n _this.fireEvents('onBlur', e);\n\n _this.clearDelayTimer();\n\n if (_this.isBlurToHide()) {\n _this.delaySetPopupVisible(false, _this.props.blurDelay);\n }\n };\n\n _this.onContextMenu = function (e) {\n e.preventDefault();\n\n _this.fireEvents('onContextMenu', e);\n\n _this.setPopupVisible(true, e);\n };\n\n _this.onContextMenuClose = function () {\n if (_this.isContextMenuToShow()) {\n _this.close();\n }\n };\n\n _this.onClick = function (event) {\n _this.fireEvents('onClick', event); // focus will trigger click\n\n\n if (_this.focusTime) {\n var preTime;\n\n if (_this.preClickTime && _this.preTouchTime) {\n preTime = Math.min(_this.preClickTime, _this.preTouchTime);\n } else if (_this.preClickTime) {\n preTime = _this.preClickTime;\n } else if (_this.preTouchTime) {\n preTime = _this.preTouchTime;\n }\n\n if (Math.abs(preTime - _this.focusTime) < 20) {\n return;\n }\n\n _this.focusTime = 0;\n }\n\n _this.preClickTime = 0;\n _this.preTouchTime = 0; // Only prevent default when all the action is click.\n // https://github.com/ant-design/ant-design/issues/17043\n // https://github.com/ant-design/ant-design/issues/17291\n\n if (_this.isClickToShow() && (_this.isClickToHide() || _this.isBlurToHide()) && event && event.preventDefault) {\n event.preventDefault();\n }\n\n var nextVisible = !_this.state.popupVisible;\n\n if (_this.isClickToHide() && !nextVisible || nextVisible && _this.isClickToShow()) {\n _this.setPopupVisible(!_this.state.popupVisible, event);\n }\n };\n\n _this.onPopupMouseDown = function () {\n _this.hasPopupMouseDown = true;\n clearTimeout(_this.mouseDownTimeout);\n _this.mouseDownTimeout = window.setTimeout(function () {\n _this.hasPopupMouseDown = false;\n }, 0);\n\n if (_this.context) {\n var _this$context;\n\n (_this$context = _this.context).onPopupMouseDown.apply(_this$context, arguments);\n }\n };\n\n _this.onDocumentClick = function (event) {\n if (_this.props.mask && !_this.props.maskClosable) {\n return;\n }\n\n var target = event.target;\n\n var root = _this.getRootDomNode();\n\n var popupNode = _this.getPopupDomNode();\n\n if ( // mousedown on the target should also close popup when action is contextMenu.\n // https://github.com/ant-design/ant-design/issues/29853\n (!contains(root, target) || _this.isContextMenuOnly()) && !contains(popupNode, target) && !_this.hasPopupMouseDown) {\n _this.close();\n }\n };\n\n _this.getRootDomNode = function () {\n var getTriggerDOMNode = _this.props.getTriggerDOMNode;\n\n if (getTriggerDOMNode) {\n return getTriggerDOMNode(_this.triggerRef.current);\n }\n\n try {\n var domNode = findDOMNode(_this.triggerRef.current);\n\n if (domNode) {\n return domNode;\n }\n } catch (err) {// Do nothing\n }\n\n return ReactDOM.findDOMNode(_assertThisInitialized(_this));\n };\n\n _this.getPopupClassNameFromAlign = function (align) {\n var className = [];\n var _this$props = _this.props,\n popupPlacement = _this$props.popupPlacement,\n builtinPlacements = _this$props.builtinPlacements,\n prefixCls = _this$props.prefixCls,\n alignPoint = _this$props.alignPoint,\n getPopupClassNameFromAlign = _this$props.getPopupClassNameFromAlign;\n\n if (popupPlacement && builtinPlacements) {\n className.push(getAlignPopupClassName(builtinPlacements, prefixCls, align, alignPoint));\n }\n\n if (getPopupClassNameFromAlign) {\n className.push(getPopupClassNameFromAlign(align));\n }\n\n return className.join(' ');\n };\n\n _this.getComponent = function () {\n var _this$props2 = _this.props,\n prefixCls = _this$props2.prefixCls,\n destroyPopupOnHide = _this$props2.destroyPopupOnHide,\n popupClassName = _this$props2.popupClassName,\n onPopupAlign = _this$props2.onPopupAlign,\n popupMotion = _this$props2.popupMotion,\n popupAnimation = _this$props2.popupAnimation,\n popupTransitionName = _this$props2.popupTransitionName,\n popupStyle = _this$props2.popupStyle,\n mask = _this$props2.mask,\n maskAnimation = _this$props2.maskAnimation,\n maskTransitionName = _this$props2.maskTransitionName,\n maskMotion = _this$props2.maskMotion,\n zIndex = _this$props2.zIndex,\n popup = _this$props2.popup,\n stretch = _this$props2.stretch,\n alignPoint = _this$props2.alignPoint,\n mobile = _this$props2.mobile,\n forceRender = _this$props2.forceRender;\n var _this$state = _this.state,\n popupVisible = _this$state.popupVisible,\n point = _this$state.point;\n\n var align = _this.getPopupAlign();\n\n var mouseProps = {};\n\n if (_this.isMouseEnterToShow()) {\n mouseProps.onMouseEnter = _this.onPopupMouseEnter;\n }\n\n if (_this.isMouseLeaveToHide()) {\n mouseProps.onMouseLeave = _this.onPopupMouseLeave;\n }\n\n mouseProps.onMouseDown = _this.onPopupMouseDown;\n mouseProps.onTouchStart = _this.onPopupMouseDown;\n return /*#__PURE__*/React.createElement(Popup, _extends({\n prefixCls: prefixCls,\n destroyPopupOnHide: destroyPopupOnHide,\n visible: popupVisible,\n point: alignPoint && point,\n className: popupClassName,\n align: align,\n onAlign: onPopupAlign,\n animation: popupAnimation,\n getClassNameFromAlign: _this.getPopupClassNameFromAlign\n }, mouseProps, {\n stretch: stretch,\n getRootDomNode: _this.getRootDomNode,\n style: popupStyle,\n mask: mask,\n zIndex: zIndex,\n transitionName: popupTransitionName,\n maskAnimation: maskAnimation,\n maskTransitionName: maskTransitionName,\n maskMotion: maskMotion,\n ref: _this.popupRef,\n motion: popupMotion,\n mobile: mobile,\n forceRender: forceRender\n }), typeof popup === 'function' ? popup() : popup);\n };\n\n _this.attachParent = function (popupContainer) {\n raf.cancel(_this.attachId);\n var _this$props3 = _this.props,\n getPopupContainer = _this$props3.getPopupContainer,\n getDocument = _this$props3.getDocument;\n\n var domNode = _this.getRootDomNode();\n\n var mountNode;\n\n if (!getPopupContainer) {\n mountNode = getDocument(_this.getRootDomNode()).body;\n } else if (domNode || getPopupContainer.length === 0) {\n // Compatible for legacy getPopupContainer with domNode argument.\n // If no need `domNode` argument, will call directly.\n // https://codesandbox.io/s/eloquent-mclean-ss93m?file=/src/App.js\n mountNode = getPopupContainer(domNode);\n }\n\n if (mountNode) {\n mountNode.appendChild(popupContainer);\n } else {\n // Retry after frame render in case parent not ready\n _this.attachId = raf(function () {\n _this.attachParent(popupContainer);\n });\n }\n };\n\n _this.getContainer = function () {\n var getDocument = _this.props.getDocument;\n var popupContainer = getDocument(_this.getRootDomNode()).createElement('div'); // Make sure default popup container will never cause scrollbar appearing\n // https://github.com/react-component/trigger/issues/41\n\n popupContainer.style.position = 'absolute';\n popupContainer.style.top = '0';\n popupContainer.style.left = '0';\n popupContainer.style.width = '100%';\n\n _this.attachParent(popupContainer);\n\n return popupContainer;\n };\n\n _this.setPoint = function (point) {\n var alignPoint = _this.props.alignPoint;\n if (!alignPoint || !point) return;\n\n _this.setState({\n point: {\n pageX: point.pageX,\n pageY: point.pageY\n }\n });\n };\n\n _this.handlePortalUpdate = function () {\n if (_this.state.prevPopupVisible !== _this.state.popupVisible) {\n _this.props.afterPopupVisibleChange(_this.state.popupVisible);\n }\n };\n\n _this.triggerContextValue = {\n onPopupMouseDown: _this.onPopupMouseDown\n };\n var popupVisible;\n\n if ('popupVisible' in props) {\n popupVisible = !!props.popupVisible;\n } else {\n popupVisible = !!props.defaultPopupVisible;\n }\n\n _this.state = {\n prevPopupVisible: popupVisible,\n popupVisible: popupVisible\n };\n ALL_HANDLERS.forEach(function (h) {\n _this[\"fire\".concat(h)] = function (e) {\n _this.fireEvents(h, e);\n };\n });\n return _this;\n }\n\n _createClass(Trigger, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.componentDidUpdate();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var props = this.props;\n var state = this.state; // We must listen to `mousedown` or `touchstart`, edge case:\n // https://github.com/ant-design/ant-design/issues/5804\n // https://github.com/react-component/calendar/issues/250\n // https://github.com/react-component/trigger/issues/50\n\n if (state.popupVisible) {\n var currentDocument;\n\n if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextMenuToShow())) {\n currentDocument = props.getDocument(this.getRootDomNode());\n this.clickOutsideHandler = addEventListener(currentDocument, 'mousedown', this.onDocumentClick);\n } // always hide on mobile\n\n\n if (!this.touchOutsideHandler) {\n currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n this.touchOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick);\n } // close popup when trigger type contains 'onContextMenu' and document is scrolling.\n\n\n if (!this.contextMenuOutsideHandler1 && this.isContextMenuToShow()) {\n currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n this.contextMenuOutsideHandler1 = addEventListener(currentDocument, 'scroll', this.onContextMenuClose);\n } // close popup when trigger type contains 'onContextMenu' and window is blur.\n\n\n if (!this.contextMenuOutsideHandler2 && this.isContextMenuToShow()) {\n this.contextMenuOutsideHandler2 = addEventListener(window, 'blur', this.onContextMenuClose);\n }\n\n return;\n }\n\n this.clearOutsideHandler();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearDelayTimer();\n this.clearOutsideHandler();\n clearTimeout(this.mouseDownTimeout);\n raf.cancel(this.attachId);\n }\n }, {\n key: \"getPopupDomNode\",\n value: function getPopupDomNode() {\n var _this$popupRef$curren2;\n\n // for test\n return ((_this$popupRef$curren2 = this.popupRef.current) === null || _this$popupRef$curren2 === void 0 ? void 0 : _this$popupRef$curren2.getElement()) || null;\n }\n }, {\n key: \"getPopupAlign\",\n value: function getPopupAlign() {\n var props = this.props;\n var popupPlacement = props.popupPlacement,\n popupAlign = props.popupAlign,\n builtinPlacements = props.builtinPlacements;\n\n if (popupPlacement && builtinPlacements) {\n return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n }\n\n return popupAlign;\n }\n /**\n * @param popupVisible Show or not the popup element\n * @param event SyntheticEvent, used for `pointAlign`\n */\n\n }, {\n key: \"setPopupVisible\",\n value: function setPopupVisible(popupVisible, event) {\n var alignPoint = this.props.alignPoint;\n var prevPopupVisible = this.state.popupVisible;\n this.clearDelayTimer();\n\n if (prevPopupVisible !== popupVisible) {\n if (!('popupVisible' in this.props)) {\n this.setState({\n popupVisible: popupVisible,\n prevPopupVisible: prevPopupVisible\n });\n }\n\n this.props.onPopupVisibleChange(popupVisible);\n } // Always record the point position since mouseEnterDelay will delay the show\n\n\n if (alignPoint && event && popupVisible) {\n this.setPoint(event);\n }\n }\n }, {\n key: \"delaySetPopupVisible\",\n value: function delaySetPopupVisible(visible, delayS, event) {\n var _this2 = this;\n\n var delay = delayS * 1000;\n this.clearDelayTimer();\n\n if (delay) {\n var point = event ? {\n pageX: event.pageX,\n pageY: event.pageY\n } : null;\n this.delayTimer = window.setTimeout(function () {\n _this2.setPopupVisible(visible, point);\n\n _this2.clearDelayTimer();\n }, delay);\n } else {\n this.setPopupVisible(visible, event);\n }\n }\n }, {\n key: \"clearDelayTimer\",\n value: function clearDelayTimer() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n }\n }, {\n key: \"clearOutsideHandler\",\n value: function clearOutsideHandler() {\n if (this.clickOutsideHandler) {\n this.clickOutsideHandler.remove();\n this.clickOutsideHandler = null;\n }\n\n if (this.contextMenuOutsideHandler1) {\n this.contextMenuOutsideHandler1.remove();\n this.contextMenuOutsideHandler1 = null;\n }\n\n if (this.contextMenuOutsideHandler2) {\n this.contextMenuOutsideHandler2.remove();\n this.contextMenuOutsideHandler2 = null;\n }\n\n if (this.touchOutsideHandler) {\n this.touchOutsideHandler.remove();\n this.touchOutsideHandler = null;\n }\n }\n }, {\n key: \"createTwoChains\",\n value: function createTwoChains(event) {\n var childPros = this.props.children.props;\n var props = this.props;\n\n if (childPros[event] && props[event]) {\n return this[\"fire\".concat(event)];\n }\n\n return childPros[event] || props[event];\n }\n }, {\n key: \"isClickToShow\",\n value: function isClickToShow() {\n var _this$props4 = this.props,\n action = _this$props4.action,\n showAction = _this$props4.showAction;\n return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isContextMenuOnly\",\n value: function isContextMenuOnly() {\n var action = this.props.action;\n return action === 'contextMenu' || action.length === 1 && action[0] === 'contextMenu';\n }\n }, {\n key: \"isContextMenuToShow\",\n value: function isContextMenuToShow() {\n var _this$props5 = this.props,\n action = _this$props5.action,\n showAction = _this$props5.showAction;\n return action.indexOf('contextMenu') !== -1 || showAction.indexOf('contextMenu') !== -1;\n }\n }, {\n key: \"isClickToHide\",\n value: function isClickToHide() {\n var _this$props6 = this.props,\n action = _this$props6.action,\n hideAction = _this$props6.hideAction;\n return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isMouseEnterToShow\",\n value: function isMouseEnterToShow() {\n var _this$props7 = this.props,\n action = _this$props7.action,\n showAction = _this$props7.showAction;\n return action.indexOf('hover') !== -1 || showAction.indexOf('mouseEnter') !== -1;\n }\n }, {\n key: \"isMouseLeaveToHide\",\n value: function isMouseLeaveToHide() {\n var _this$props8 = this.props,\n action = _this$props8.action,\n hideAction = _this$props8.hideAction;\n return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseLeave') !== -1;\n }\n }, {\n key: \"isFocusToShow\",\n value: function isFocusToShow() {\n var _this$props9 = this.props,\n action = _this$props9.action,\n showAction = _this$props9.showAction;\n return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n }\n }, {\n key: \"isBlurToHide\",\n value: function isBlurToHide() {\n var _this$props10 = this.props,\n action = _this$props10.action,\n hideAction = _this$props10.hideAction;\n return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n }\n }, {\n key: \"forcePopupAlign\",\n value: function forcePopupAlign() {\n if (this.state.popupVisible) {\n var _this$popupRef$curren3;\n\n (_this$popupRef$curren3 = this.popupRef.current) === null || _this$popupRef$curren3 === void 0 ? void 0 : _this$popupRef$curren3.forceAlign();\n }\n }\n }, {\n key: \"fireEvents\",\n value: function fireEvents(type, e) {\n var childCallback = this.props.children.props[type];\n\n if (childCallback) {\n childCallback(e);\n }\n\n var callback = this.props[type];\n\n if (callback) {\n callback(e);\n }\n }\n }, {\n key: \"close\",\n value: function close() {\n this.setPopupVisible(false);\n }\n }, {\n key: \"render\",\n value: function render() {\n var popupVisible = this.state.popupVisible;\n var _this$props11 = this.props,\n children = _this$props11.children,\n forceRender = _this$props11.forceRender,\n alignPoint = _this$props11.alignPoint,\n className = _this$props11.className,\n autoDestroy = _this$props11.autoDestroy;\n var child = React.Children.only(children);\n var newChildProps = {\n key: 'trigger'\n }; // ============================== Visible Handlers ==============================\n // >>> ContextMenu\n\n if (this.isContextMenuToShow()) {\n newChildProps.onContextMenu = this.onContextMenu;\n } else {\n newChildProps.onContextMenu = this.createTwoChains('onContextMenu');\n } // >>> Click\n\n\n if (this.isClickToHide() || this.isClickToShow()) {\n newChildProps.onClick = this.onClick;\n newChildProps.onMouseDown = this.onMouseDown;\n newChildProps.onTouchStart = this.onTouchStart;\n } else {\n newChildProps.onClick = this.createTwoChains('onClick');\n newChildProps.onMouseDown = this.createTwoChains('onMouseDown');\n newChildProps.onTouchStart = this.createTwoChains('onTouchStart');\n } // >>> Hover(enter)\n\n\n if (this.isMouseEnterToShow()) {\n newChildProps.onMouseEnter = this.onMouseEnter; // Point align\n\n if (alignPoint) {\n newChildProps.onMouseMove = this.onMouseMove;\n }\n } else {\n newChildProps.onMouseEnter = this.createTwoChains('onMouseEnter');\n } // >>> Hover(leave)\n\n\n if (this.isMouseLeaveToHide()) {\n newChildProps.onMouseLeave = this.onMouseLeave;\n } else {\n newChildProps.onMouseLeave = this.createTwoChains('onMouseLeave');\n } // >>> Focus\n\n\n if (this.isFocusToShow() || this.isBlurToHide()) {\n newChildProps.onFocus = this.onFocus;\n newChildProps.onBlur = this.onBlur;\n } else {\n newChildProps.onFocus = this.createTwoChains('onFocus');\n newChildProps.onBlur = this.createTwoChains('onBlur');\n } // =================================== Render ===================================\n\n\n var childrenClassName = classNames(child && child.props && child.props.className, className);\n\n if (childrenClassName) {\n newChildProps.className = childrenClassName;\n }\n\n var cloneProps = _objectSpread({}, newChildProps);\n\n if (supportRef(child)) {\n cloneProps.ref = composeRef(this.triggerRef, child.ref);\n }\n\n var trigger = /*#__PURE__*/React.cloneElement(child, cloneProps);\n var portal; // prevent unmounting after it's rendered\n\n if (popupVisible || this.popupRef.current || forceRender) {\n portal = /*#__PURE__*/React.createElement(PortalComponent, {\n key: \"portal\",\n getContainer: this.getContainer,\n didUpdate: this.handlePortalUpdate\n }, this.getComponent());\n }\n\n if (!popupVisible && autoDestroy) {\n portal = null;\n }\n\n return /*#__PURE__*/React.createElement(TriggerContext.Provider, {\n value: this.triggerContextValue\n }, trigger, portal);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref, prevState) {\n var popupVisible = _ref.popupVisible;\n var newState = {};\n\n if (popupVisible !== undefined && prevState.popupVisible !== popupVisible) {\n newState.popupVisible = popupVisible;\n newState.prevPopupVisible = prevState.popupVisible;\n }\n\n return newState;\n }\n }]);\n\n return Trigger;\n }(React.Component);\n\n Trigger.contextType = TriggerContext;\n Trigger.defaultProps = {\n prefixCls: 'rc-trigger-popup',\n getPopupClassNameFromAlign: returnEmptyString,\n getDocument: returnDocument,\n onPopupVisibleChange: noop,\n afterPopupVisibleChange: noop,\n onPopupAlign: noop,\n popupClassName: '',\n mouseEnterDelay: 0,\n mouseLeaveDelay: 0.1,\n focusDelay: 0,\n blurDelay: 0.15,\n popupStyle: {},\n destroyPopupOnHide: false,\n popupAlign: {},\n defaultPopupVisible: false,\n mask: false,\n maskClosable: true,\n action: [],\n showAction: [],\n hideAction: [],\n autoDestroy: false\n };\n return Trigger;\n}\nexport default generateTrigger(Portal);","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nexport var placements = {\n left: {\n points: ['cr', 'cl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n right: {\n points: ['cl', 'cr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n top: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottom: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n rightBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n leftBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n }\n};\nexport default placements;","import * as React from 'react';\n\nvar Content = function Content(props) {\n var overlay = props.overlay,\n prefixCls = props.prefixCls,\n id = props.id,\n overlayInnerStyle = props.overlayInnerStyle;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner\"),\n id: id,\n role: \"tooltip\",\n style: overlayInnerStyle\n }, typeof overlay === 'function' ? overlay() : overlay);\n};\n\nexport default Content;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { useRef, useImperativeHandle, forwardRef } from 'react';\nimport Trigger from 'rc-trigger';\nimport { placements } from './placements';\nimport Content from './Content';\n\nvar Tooltip = function Tooltip(props, ref) {\n var overlayClassName = props.overlayClassName,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n overlayStyle = props.overlayStyle,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-tooltip' : _props$prefixCls,\n children = props.children,\n onVisibleChange = props.onVisibleChange,\n afterVisibleChange = props.afterVisibleChange,\n transitionName = props.transitionName,\n animation = props.animation,\n motion = props.motion,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'right' : _props$placement,\n _props$align = props.align,\n align = _props$align === void 0 ? {} : _props$align,\n _props$destroyTooltip = props.destroyTooltipOnHide,\n destroyTooltipOnHide = _props$destroyTooltip === void 0 ? false : _props$destroyTooltip,\n defaultVisible = props.defaultVisible,\n getTooltipContainer = props.getTooltipContainer,\n overlayInnerStyle = props.overlayInnerStyle,\n restProps = _objectWithoutProperties(props, [\"overlayClassName\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"prefixCls\", \"children\", \"onVisibleChange\", \"afterVisibleChange\", \"transitionName\", \"animation\", \"motion\", \"placement\", \"align\", \"destroyTooltipOnHide\", \"defaultVisible\", \"getTooltipContainer\", \"overlayInnerStyle\"]);\n\n var domRef = useRef(null);\n useImperativeHandle(ref, function () {\n return domRef.current;\n });\n\n var extraProps = _objectSpread({}, restProps);\n\n if ('visible' in props) {\n extraProps.popupVisible = props.visible;\n }\n\n var getPopupElement = function getPopupElement() {\n var _props$arrowContent = props.arrowContent,\n arrowContent = _props$arrowContent === void 0 ? null : _props$arrowContent,\n overlay = props.overlay,\n id = props.id;\n return [/*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\"),\n key: \"arrow\"\n }, arrowContent), /*#__PURE__*/React.createElement(Content, {\n key: \"content\",\n prefixCls: prefixCls,\n id: id,\n overlay: overlay,\n overlayInnerStyle: overlayInnerStyle\n })];\n };\n\n var destroyTooltip = false;\n var autoDestroy = false;\n\n if (typeof destroyTooltipOnHide === 'boolean') {\n destroyTooltip = destroyTooltipOnHide;\n } else if (destroyTooltipOnHide && _typeof(destroyTooltipOnHide) === 'object') {\n var keepParent = destroyTooltipOnHide.keepParent;\n destroyTooltip = keepParent === true;\n autoDestroy = keepParent === false;\n }\n\n return /*#__PURE__*/React.createElement(Trigger, _extends({\n popupClassName: overlayClassName,\n prefixCls: prefixCls,\n popup: getPopupElement,\n action: trigger,\n builtinPlacements: placements,\n popupPlacement: placement,\n ref: domRef,\n popupAlign: align,\n getPopupContainer: getTooltipContainer,\n onPopupVisibleChange: onVisibleChange,\n afterPopupVisibleChange: afterVisibleChange,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupMotion: motion,\n defaultPopupVisible: defaultVisible,\n destroyPopupOnHide: destroyTooltip,\n autoDestroy: autoDestroy,\n mouseLeaveDelay: mouseLeaveDelay,\n popupStyle: overlayStyle,\n mouseEnterDelay: mouseEnterDelay\n }, extraProps), children);\n};\n\nexport default /*#__PURE__*/forwardRef(Tooltip);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Tooltip from 'rc-tooltip';\nimport { composeRef } from \"rc-util/es/ref\";\nimport raf from \"rc-util/es/raf\";\nvar SliderTooltip = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var visible = props.visible,\n overlay = props.overlay;\n var innerRef = React.useRef(null);\n var tooltipRef = composeRef(ref, innerRef);\n var rafRef = React.useRef(null);\n\n function cancelKeepAlign() {\n raf.cancel(rafRef.current);\n }\n\n function keepAlign() {\n rafRef.current = raf(function () {\n var _innerRef$current;\n\n (_innerRef$current = innerRef.current) === null || _innerRef$current === void 0 ? void 0 : _innerRef$current.forcePopupAlign();\n });\n }\n\n React.useEffect(function () {\n if (visible) {\n keepAlign();\n } else {\n cancelKeepAlign();\n }\n\n return cancelKeepAlign;\n }, [visible, overlay]);\n return /*#__PURE__*/React.createElement(Tooltip, _extends({\n ref: tooltipRef\n }, props));\n});\nexport default SliderTooltip;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport Tooltip from './common/SliderTooltip';\nimport Handle from './Handle';\nexport default function createSliderWithTooltip(Component) {\n var _a; // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\n return _a = /*#__PURE__*/function (_React$Component) {\n _inherits(ComponentWrapper, _React$Component);\n\n var _super = _createSuper(ComponentWrapper);\n\n function ComponentWrapper() {\n var _this;\n\n _classCallCheck(this, ComponentWrapper);\n\n _this = _super.apply(this, arguments);\n _this.state = {\n visibles: {}\n };\n\n _this.handleTooltipVisibleChange = function (index, visible) {\n _this.setState(function (prevState) {\n return {\n visibles: _objectSpread(_objectSpread({}, prevState.visibles), {}, _defineProperty({}, index, visible))\n };\n });\n };\n\n _this.handleWithTooltip = function (_ref) {\n var value = _ref.value,\n dragging = _ref.dragging,\n index = _ref.index,\n disabled = _ref.disabled,\n restProps = _objectWithoutProperties(_ref, [\"value\", \"dragging\", \"index\", \"disabled\"]);\n\n var _this$props = _this.props,\n tipFormatter = _this$props.tipFormatter,\n tipProps = _this$props.tipProps,\n handleStyle = _this$props.handleStyle,\n getTooltipContainer = _this$props.getTooltipContainer;\n\n var _tipProps$prefixCls = tipProps.prefixCls,\n prefixCls = _tipProps$prefixCls === void 0 ? 'rc-slider-tooltip' : _tipProps$prefixCls,\n _tipProps$overlay = tipProps.overlay,\n overlay = _tipProps$overlay === void 0 ? tipFormatter(value) : _tipProps$overlay,\n _tipProps$placement = tipProps.placement,\n placement = _tipProps$placement === void 0 ? 'top' : _tipProps$placement,\n _tipProps$visible = tipProps.visible,\n visible = _tipProps$visible === void 0 ? false : _tipProps$visible,\n restTooltipProps = _objectWithoutProperties(tipProps, [\"prefixCls\", \"overlay\", \"placement\", \"visible\"]);\n\n var handleStyleWithIndex;\n\n if (Array.isArray(handleStyle)) {\n handleStyleWithIndex = handleStyle[index] || handleStyle[0];\n } else {\n handleStyleWithIndex = handleStyle;\n }\n\n return /*#__PURE__*/React.createElement(Tooltip, _extends({}, restTooltipProps, {\n getTooltipContainer: getTooltipContainer,\n prefixCls: prefixCls,\n overlay: overlay,\n placement: placement,\n visible: !disabled && (_this.state.visibles[index] || dragging) || visible,\n key: index\n }), /*#__PURE__*/React.createElement(Handle, _extends({}, restProps, {\n style: _objectSpread({}, handleStyleWithIndex),\n value: value,\n onMouseEnter: function onMouseEnter() {\n return _this.handleTooltipVisibleChange(index, true);\n },\n onMouseLeave: function onMouseLeave() {\n return _this.handleTooltipVisibleChange(index, false);\n }\n })));\n };\n\n return _this;\n }\n\n _createClass(ComponentWrapper, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(Component, _extends({}, this.props, {\n handle: this.handleWithTooltip\n }));\n }\n }]);\n\n return ComponentWrapper;\n }(React.Component), _a.defaultProps = {\n tipFormatter: function tipFormatter(value) {\n return value;\n },\n handleStyle: [{}],\n tipProps: {},\n getTooltipContainer: function getTooltipContainer(node) {\n return node.parentNode;\n }\n }, _a;\n}","import Slider from './Slider';\nimport Range from './Range';\nimport Handle from './Handle';\nimport createSliderWithTooltip from './createSliderWithTooltip';\nimport SliderTooltip from './common/SliderTooltip';\nvar InternalSlider = Slider;\nInternalSlider.Range = Range;\nInternalSlider.Handle = Handle;\nInternalSlider.createSliderWithTooltip = createSliderWithTooltip;\nexport default InternalSlider;\nexport { Range, Handle, createSliderWithTooltip, SliderTooltip };","import React from 'react';\nimport { Range, createSliderWithTooltip } from 'rc-slider';\nimport 'rc-slider/assets/index.css';\n\nconst RangeWithTooltip = createSliderWithTooltip(Range);\n\nconst RangeFilter = ({ ariaLabel = '', ...attrs }) => (\n
    \n \n
    \n);\n\nexport default RangeFilter;\n","import { ntc } from 'src/explore/services/currency_helper';\n\nconst format = ( value ) => ntc( value, { verbose: false });\n\nexport default {\n format,\n};\n","import React, { useState } from 'react';\n\nimport RangeFilter from 'src/explore/elements/RangeFilter';\n\nimport { ntc } from 'src/explore/services/currency_helper';\n\nimport TipFormatter from '../../services/PriceTipFormatter';\n\nexport const Price = ({ defaultValue, onChange, ...props }) => {\n const [ value, setValue ] = useState( defaultValue );\n\n let { min, max } = props;\n // Round cents\n min = Math.floor( min / 100 ) * 100;\n max = Math.ceil( max / 100 ) * 100;\n\n const marks = {};\n // Create marks\n marks[min] = ntc( min, { verbose: false });\n marks[max] = ntc( max, { verbose: false });\n\n return (\n onChange( value )}\n />\n );\n};\n","import React, { useCallback, useContext, useEffect, useMemo, useRef } from 'react';\nimport cls from 'classnames';\nimport debounce from 'lodash-es/debounce';\nimport isEqual from 'lodash-es/isEqual';\n\nimport { ntc } from 'src/explore/services/currency_helper';\n\nimport { Price } from 'src/explore/compositions/Filters/elements/Price';\n\nimport { FilterItem } from '../FilterItem';\nimport FiltersContext from '../../../../hooks/FiltersContext';\n\nconst PriceFilter = ({ className, max, min }) => {\n const values = useRef();\n const { appliedFilters, onFilterChange } = useContext( FiltersContext );\n\n useEffect(() => {\n if ( !min || !max ) return;\n if ( values.current ) return;\n\n values.current = [ min, max ];\n }, [ min, max ]);\n\n const currentValues = [ appliedFilters.min_price, appliedFilters.max_price ];\n\n const filterTitle = useMemo(() => {\n const { max_price, min_price } = appliedFilters;\n\n if ( !max_price && !min_price ) return null;\n\n return `${ntc( min_price, { verbose: false })} - ${ntc( max_price, { verbose: false })}`;\n }, [ appliedFilters ]);\n\n const handleChange = useCallback(\n debounce(\n ( newValues ) => {\n if ( isEqual( currentValues, newValues )) return;\n\n onFilterChange({\n min_price: newValues[0],\n max_price: newValues[1],\n });\n },\n 1500,\n { trailing: true }\n ),\n [ currentValues, onFilterChange ]\n );\n\n // show filters only when default values present and they are different\n const showFilter = values.current && values.current[0] !== values.current[1];\n\n // if no prices to filter by, and no applied values\n if ( !showFilter && !currentValues[0] && !currentValues[1]) return null;\n\n return (\n onFilterChange({ min_price: null, max_price: null })}\n >\n
    \n {showFilter && (\n \n )}\n
    \n \n );\n};\n\nexport default PriceFilter;\n","import React from 'react';\nimport { Checkbox } from '@goldbely/explore-component-library';\n\ninterface CheckboxProps {\n checked: boolean;\n label?: string;\n value: string;\n onChange: ( target: string, isChecked: boolean ) => void;\n}\n\nexport const CheckboxItem = ({ checked, label, value, onChange }: CheckboxProps ) => {\n const handleChange = () => {\n onChange( value, checked );\n };\n\n return (\n \n );\n};\n","import React, { useContext } from 'react';\nimport cls from 'classnames';\n\nimport { ISearchAggregationBucket } from 'src/explore/types/shoppe';\n\nimport { CheckboxItem } from './elements/CheckboxItem';\nimport { FilterItem } from '../FilterItem';\nimport FiltersContext from '../../../../hooks/FiltersContext';\n\nconst labelMaker = ( key: string ) => {\n switch ( key ) {\n case 'combo':\n return 'Combos';\n case 'food':\n return 'Foods';\n case 'gift_card':\n return 'Gift Cards';\n case 'live_class':\n return 'Live Classes';\n case 'mealkit':\n return 'Meal Kits';\n case 'merch':\n return 'Merchandise';\n case 'subscription':\n return 'Subscriptions';\n default:\n return key;\n }\n};\n\ninterface ProductTypeFilterProps {\n className?: string;\n filters?: ISearchAggregationBucket[];\n}\n\nexport const ProductTypeFilter = ({ className, filters = []}: ProductTypeFilterProps ) => {\n const { appliedFilters, onFilterChange } = useContext( FiltersContext );\n\n const handleChange = ( filter: string, isChecked: boolean ) => {\n let activeFilters = appliedFilters['product_types[]'] || [];\n if ( typeof activeFilters === 'string' ) {\n activeFilters = activeFilters.split( ',' );\n }\n\n onFilterChange({\n 'product_types[]': isChecked\n ? activeFilters.filter(( activeFilter: string ) => !filter.includes( activeFilter ))\n : [ activeFilters, filter ].flat(),\n });\n };\n\n if ( filters.length < 1 ) return null;\n\n return (\n \n
      \n {filters.map(( filter ) => (\n
    • \n \n
    • \n ))}\n
    \n
    \n );\n};\n","import React, { useCallback, useContext } from 'react';\nimport cls from 'classnames';\n\nimport TreeFilter from '../TreeFilter';\n\nimport FiltersContext from '../../../../hooks/FiltersContext';\n\nconst RegionFilter = ({ className, regions = []}) => {\n const { appliedFilters, onFilterChange } = useContext( FiltersContext );\n\n let activeFilter;\n let filters;\n let handleBack;\n let handleNavigate;\n\n const selectedState = appliedFilters['state.name'];\n const selectedRegion = appliedFilters['state.region_name'];\n\n const selectLocation = useCallback(\n ( region, state ) => onFilterChange({ 'state.region_name': region, 'state.name': state }),\n [ onFilterChange ]\n );\n\n if ( selectedRegion || selectedState ) {\n activeFilter = selectedState || selectedRegion;\n filters = selectedState ? undefined : regions[0]?.states?.buckets;\n handleBack = selectedState ? () => selectLocation( selectedRegion ) : selectLocation;\n handleNavigate = ( key ) => selectLocation( selectedRegion, key );\n } else {\n filters = regions;\n handleNavigate = selectLocation;\n }\n\n return (\n \n );\n};\n\nexport default RegionFilter;\n","import * as React from 'react';\n\nimport { ISearchAggregations } from 'src/explore/types/shoppe';\n\nimport ArrivalFilter from './elements/ArrivalFilter';\nimport CategoryFilter from './elements/CategoryFilter';\nimport { CuisineFilter } from './elements/CuisineFilter';\nimport DietFilter from './elements/DietFilter';\nimport { DietMerchantFilter } from './elements/DietMerchantFilter';\nimport PriceFilter from './elements/PriceFilter';\nimport { ProductTypeFilter } from './elements/ProductTypeFilter';\nimport RegionFilter from './elements/RegionFilter';\nimport { ISearchFilter } from '../../../../types';\n\ninterface Props {\n aggs?: ISearchAggregations;\n className?: string;\n filter: ISearchFilter;\n}\n\nexport const FilterFactory: React.FC = ({ aggs, className, filter }) => {\n switch ( filter ) {\n case 'arrives_before':\n return (\n \n );\n case 'category':\n return (\n \n );\n case 'cuisine':\n return ;\n case 'diet':\n return ;\n case 'price':\n return (\n \n );\n case 'product_tags':\n return (\n \n );\n case 'product_types':\n return (\n \n );\n case 'region':\n return ;\n default:\n return null;\n }\n};\n","import React from 'react';\nimport cls from 'classnames';\n\nimport styles from './index.module.sass';\n\ninterface LoaderProps {\n show: boolean;\n}\n\nexport const Loader = ({ show }: LoaderProps ) => (\n \n \n Loading...\n \n \n);\n","import * as React from 'react';\n\nimport { ISearchAggregations } from 'src/explore/types/shoppe';\nimport { Sorting } from 'src/explore/elements/Sorting';\nimport { TagFilters } from 'src/explore/elements/TagFilters';\n\nimport { FilterFactory } from './elements/FilterFactory';\nimport { Loader } from './elements/Loader';\nimport { ISearchFilter } from '../../types';\n\nimport styles from './index.module.sass';\n\ninterface FiltersAndSortingProps {\n aggs?: ISearchAggregations;\n loading: boolean;\n panelFilters: ISearchFilter[];\n sortLabelFormatter: ( option: string ) => string;\n sortOptions: Array;\n sortSelection: string | null;\n tagFilters: ISearchFilter[];\n onSort: ( value: string ) => void;\n}\n\nexport const FiltersAndSorting = ({\n aggs,\n loading,\n panelFilters,\n sortLabelFormatter,\n sortOptions,\n sortSelection,\n tagFilters,\n onSort,\n}: FiltersAndSortingProps ) => (\n
    \n {!!tagFilters.length && (\n \n )}\n\n {!!sortOptions.length && (\n \n )}\n\n
      \n {panelFilters.map(( filter: ISearchFilter ) => (\n \n ))}\n
    \n\n \n
    \n);\n","import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faTimes } from '@fortawesome/pro-solid-svg-icons';\n\nimport styles from './index.module.sass';\n\ninterface HeaderProps {\n onClickClose: () => void;\n}\n\nexport const Header = ({ onClickClose }: HeaderProps ) => (\n
    \n \n Filters\n
    \n\n \n \n \n \n);\n","import React, { useEffect, useState } from 'react';\nimport cls from 'classnames';\n\nimport { ISearchAggregations } from 'src/explore/types/shoppe';\n\nimport { ApplyButton } from './elements/ApplyButton';\nimport { OverlayTrigger } from './elements/OverlayTrigger';\nimport { FiltersAndSorting } from './elements/FiltersAndSorting';\nimport { Header } from './elements/Header';\nimport { ISearchFilter } from './types';\n\nimport styles from './index.module.sass';\n\nexport type ISource = {\n id?: string;\n text?: string;\n type: string;\n};\n\ninterface SearchFilterProps {\n aggs?: ISearchAggregations;\n availablePanelFilters?: ISearchFilter[];\n availableTagFilters?: ISearchFilter[];\n count?: number;\n loading: boolean;\n sortLabelFormatter: ( option: string ) => string;\n sortOptions: Array;\n sortSelection: string | null;\n onSort: ( value: string ) => void;\n}\n\nexport const SearchFilter = ({\n aggs,\n availablePanelFilters,\n availableTagFilters,\n count,\n loading,\n sortLabelFormatter,\n sortOptions,\n sortSelection,\n onSort,\n}: SearchFilterProps ) => {\n const [ open, setOpen ] = useState( false );\n\n useEffect(() => {\n const handleKeyDown = ( event: KeyboardEvent ) => {\n if ( event.key === 'Escape' ) {\n setOpen( false );\n }\n };\n\n document.addEventListener( 'keydown', handleKeyDown );\n return () => {\n document.removeEventListener( 'keydown', handleKeyDown );\n };\n }, []);\n\n return (\n <>\n setOpen( !open )} />\n\n \n
    setOpen( !open )} />\n\n \n\n setOpen( !open )} />\n \n \n );\n};\n","import { IAPIFilters } from '../../elements/FiltersAndSorting/hooks/FiltersContext';\nimport { ISearchFilter } from '../../types';\n\nconst convert = ( filters: ISearchFilter[]): Array => {\n if ( !filters ) return null;\n\n const result: Array = [];\n\n filters.forEach(( filter ) => {\n switch ( filter ) {\n case 'category':\n result.push( 'categories.name' );\n break;\n case 'diet':\n result.push( 'tags' ); // Temporary\n break;\n case 'award_winner':\n case 'gorgeous_box':\n case 'gb_top_gifts':\n result.push( 'badges[]' );\n break;\n case 'on_sale':\n result.push( 'on_sale' );\n break;\n case 'price':\n result.push( 'max_price' );\n result.push( 'min_price' );\n break;\n case 'product_types':\n result.push( 'product_types[]' );\n break;\n case 'region':\n result.push( 'state.region_name' );\n result.push( 'state.name' );\n break;\n default:\n result.push( filter );\n }\n });\n\n return result;\n};\n\nexport const FiltersToParams = {\n convert,\n};\n","const format = ( value ) => {\n switch ( value ) {\n case null:\n case '':\n return 'Popular Now';\n case 'recommended':\n return 'Recommended';\n case 'best_sellers':\n return 'Best Sellers';\n case 'class_date_low':\n return 'Date: Earliest First';\n case 'class_date_high':\n return 'Date: Latest First';\n case 'price_low':\n return 'Price: Lowest First';\n case 'price_high':\n return 'Price: Highest First';\n default:\n return '';\n }\n};\n\nexport const SortLabelFormatter = {\n format,\n};\n","import React, {\n isValidElement,\n ReactElement,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport * as EppoSdk from '@eppo/js-client-sdk';\nimport cls from 'classnames';\n\nimport { Sorting } from 'src/explore/elements/Sorting';\nimport { TagFilters } from 'src/explore/elements/TagFilters';\nimport { useApiObject } from 'src/explore/hooks/useApiObject';\nimport ahoyTrack from 'src/explore/services/ahoy';\nimport ArrivalDateMapper from 'src/explore/services/productFilters/mappers/ArrivalDateMapper';\nimport URLParams from 'src/explore/services/URLParams';\nimport { IPromotion, ITrackingParams } from 'src/explore/types/shoppe';\n\nimport { useSelector } from 'react-redux';\nimport { IStore } from 'src/explore/types/store';\nimport { ISource, SearchFilter } from './compositions/SearchFilter';\nimport FiltersContext, {\n IAPIFilters,\n INITIAL_STATE as FILTERS_INITIAL_STATE,\n} from './compositions/SearchFilter/elements/FiltersAndSorting/hooks/FiltersContext';\nimport { FiltersToParams } from './compositions/SearchFilter/services/FiltersToParams';\nimport { ISearchFilter } from './compositions/SearchFilter/types';\nimport { SortLabelFormatter } from './services/SortLabelFormatter';\n\nimport styles from './index.module.sass';\n\nconst buildURLParams = ( filters: IAPIFilters ) =>\n URLParams.buildURLParams( filters, {\n mappers: {\n arrives_before: ArrivalDateMapper.map,\n },\n });\n\nconst eppo = EppoSdk.getInstance();\n\nconst TAG_FILTERS: ISearchFilter[] = [\n 'award_winner',\n 'editor_pick',\n 'fast_delivery',\n 'free_shipping',\n 'gb_top_gifts',\n 'gorgeous_box',\n 'has_gb_tv_video',\n 'special_holiday',\n 'on_sale',\n];\n\nexport type { IAPIFilters };\n\nexport type ISearchParams = {\n source_id?: string;\n source_text?: string;\n source_type?: string;\n limit?: number;\n page?: number;\n cacheable?: number;\n video_offset?: number;\n product_offset?: number;\n max_num_videos?: number;\n};\n\ninterface Props {\n adjustQueryParams?: ( queryParams: ISearchParams ) => ISearchParams;\n apiPath: string;\n apiPathOverride?: string;\n apiResponseParser?: ( response: any ) => Promise;\n availableFilters?: ISearchFilter[];\n availableSorting?: Array;\n cacheable?: boolean;\n children?: ReactNode;\n conditions?: IAPIFilters;\n defaultSortOrder?: string;\n experimentName?: string;\n filterColumnClass?: string;\n filteredResultsColumnClass?: string;\n loadMore?: string | ReactElement;\n pageSize?: number;\n parseCollectionData?: ( collection: T[], page: number ) => Array;\n source?: ISource;\n sidebar?: ReactNode;\n syncTrackingDataToPage?: ( data: ITrackingParams, page: T[]) => ITrackingParams;\n syncUrl?: boolean;\n title?: string;\n onChangePage?: ( page: number ) => void;\n onRenderContent: ( arg0: {\n data: T[];\n filterCount: number;\n loading: boolean;\n meta: any;\n onResetFilters: () => void;\n }) => ReactElement;\n onRenderHeader?: ({ content, filters }: { content: T[]; filters: IAPIFilters }) => void;\n}\n\nexport const FilteredSearch = ({\n adjustQueryParams,\n apiPath,\n apiPathOverride,\n apiResponseParser,\n availableFilters = [],\n availableSorting = [],\n cacheable,\n children,\n conditions,\n defaultSortOrder,\n experimentName,\n filterColumnClass,\n filteredResultsColumnClass,\n loadMore,\n pageSize,\n parseCollectionData,\n source,\n sidebar,\n syncTrackingDataToPage,\n syncUrl,\n title,\n onChangePage,\n onRenderContent,\n onRenderHeader,\n}: Props ) => {\n // Services\n const urlParams = useRef( new URLParams());\n\n // Get filters from URL\n const initialFilters = useMemo(() => {\n if ( !availableFilters || !syncUrl ) return {};\n\n const parsedFilters = FiltersToParams.convert( availableFilters );\n\n return urlParams.current.mread( parsedFilters );\n }, [ availableFilters, syncUrl ]);\n\n const account = useSelector(( state: IStore ) => state.data.account );\n const [ content, setContent ] = useState([]);\n const [ filters, setFilters ] = useState( initialFilters );\n const [ loading, setLoading ] = useState( true );\n const [ page, setPage ] = useState( 1 );\n const [ sort, setSort ] = useState(\n typeof defaultSortOrder === 'undefined' ? availableSorting[0] : defaultSortOrder\n );\n\n // This help us make sure users are not multi-clicking\n const currentPage = useRef( page );\n useEffect(() => {\n currentPage.current = page;\n }, [ page ]);\n\n // Set up the search query\n const query = useMemo(() => {\n const combinedFilters: { [key: string]: IAPIFilters[keyof IAPIFilters] } = { ...conditions };\n // We're only overriding the options passed in through conditions if is defined in filters.\n // filters represents the actual chosen filters by the user and many of them are undefined\n // if not selected.\n Object.keys( filters ).forEach(( key ) => {\n const typedKey = key as keyof IAPIFilters;\n if ( filters[typedKey]) {\n combinedFilters[typedKey] = filters[typedKey];\n }\n });\n\n if ( sort ) {\n combinedFilters.sort = sort;\n }\n\n return buildURLParams( combinedFilters );\n }, [ conditions, filters, sort ]);\n\n // Generate full query\n const completeQuery = useMemo(() => {\n if ( !apiPath ) return null;\n\n let params: ISearchParams = {};\n if ( source ) {\n if ( source.id ) {\n params.source_id = source.id;\n }\n if ( source.text ) {\n params.source_text = source.text;\n }\n if ( source.type ) {\n params.source_type = source.type;\n }\n }\n if ( pageSize ) {\n params.limit = pageSize;\n params.page = page;\n }\n if ( cacheable ) {\n params.cacheable = 1;\n }\n\n if ( adjustQueryParams ) {\n params = adjustQueryParams( params );\n }\n\n return `/${apiPath}?${query}&${URLParams.buildURLParams( params )}`;\n }, [ apiPath, cacheable, query, page, pageSize, source ]);\n\n // map available filters\n const availableTagFilters = useMemo(\n () =>\n availableFilters.filter(( availableFilter: ISearchFilter ) =>\n TAG_FILTERS.includes( availableFilter )\n ),\n [ availableFilters ]\n );\n const availablePanelFilters = useMemo(\n () =>\n availableFilters.filter(\n ( availableFilter: ISearchFilter ) => !TAG_FILTERS.includes( availableFilter )\n ),\n [ availableFilters ]\n );\n\n // Call API to retrieve content\n // FIXME: any data type\n const collection = useApiObject( completeQuery, {\n responseParser: apiResponseParser,\n apiPathOverride,\n });\n\n const track = useCallback(\n ( data: any ) => {\n if ( data ) {\n if ( experimentName ) {\n const variation =\n window.eppo?.experimentOverrides[experimentName] ||\n ( window.ahoy.getVisitorToken()\n ? eppo.getStringAssignment(\n experimentName,\n String( account?.data?.meta_store?.account_id || window.ahoy.getVisitorToken()),\n {},\n null\n )\n : null );\n\n ahoyTrack( '$browserSearch', {\n ...data,\n 'experiment-key': experimentName,\n 'experiment-value': variation,\n });\n } else {\n ahoyTrack( '$browserSearch', data );\n }\n }\n },\n [ experimentName ]\n );\n\n const trackFb = useMemo(() => {\n let fired = false;\n\n return ( queryString: string, products: any ) => {\n if ( fired ) return;\n fired = true;\n if ( !!window.fbq && !!queryString ) {\n window.fbq( 'track', 'Search', {\n search_string: queryString,\n content_ids: products.slice( 0, 10 ).map(( p: any ) => p.id ),\n content_type: 'product',\n });\n }\n };\n }, []);\n\n // Store content locally\n useEffect(() => {\n if ( !collection.data ) return;\n\n let newContent = collection.data;\n trackFb( conditions?.query, newContent );\n\n if ( parseCollectionData ) {\n newContent = parseCollectionData( collection.data, currentPage.current );\n }\n\n if ( currentPage.current === 1 ) {\n // new search\n setContent( newContent );\n } else {\n // new page\n setContent(( currentContent ) => {\n newContent = currentContent.concat( newContent );\n return newContent;\n });\n }\n\n if ( collection.meta ) {\n track(\n syncTrackingDataToPage\n ? syncTrackingDataToPage( collection.meta.tracking_params, newContent )\n : collection.meta.tracking_params\n );\n }\n\n setLoading( false );\n }, [ collection.data ]);\n\n // Sync URL\n useEffect(() => {\n if ( !syncUrl ) return;\n\n urlParams.current.sync( filters );\n }, [ filters, syncUrl ]);\n\n // Reset state when query changes\n useEffect(() => {\n setPage( 1 );\n if ( onChangePage ) {\n onChangePage( 1 );\n }\n setLoading( true );\n setContent([]);\n }, [ query ]);\n\n // FIXME: this is ugly, but I don't care too much right now\n const filterCount = useMemo(() => {\n const queryString = buildURLParams( filters );\n\n return queryString ? queryString.split( '&' ).length : 0;\n }, [ filters ]);\n\n // Set the context for the components using filters\n const filtersContext = {\n ...FILTERS_INITIAL_STATE,\n appliedFilters: filters,\n onFilterChange: ( updatedFilters: IAPIFilters ) => {\n const result = { ...filters, ...updatedFilters };\n\n setLoading( true );\n setFilters( result );\n },\n };\n\n const aggs = collection.meta?.aggs;\n\n const hasMoreResults = useMemo(() => {\n if ( !pageSize ) return false;\n if ( collection.status !== 'success' ) return false;\n\n return collection.meta?.total_count > content.length;\n }, [ collection, pageSize, content ]);\n\n // If no results and no filters applied\n if ( filterCount === 0 && collection.meta?.total_count === 0 && children ) {\n return <>{children};\n }\n\n const hasSideContent = !!availablePanelFilters.length || sidebar;\n\n return (\n \n {title &&

    {title}

    }\n\n {!!onRenderHeader && onRenderHeader({ content, filters })}\n\n {( !!availableSorting.length || !!availableTagFilters.length ) && (\n \n {!!availableTagFilters.length && (\n \n )}\n\n {/* FIXME: sorting drop-down can overflow page with many tag filters on screens >= large */}\n {!!availableSorting.length && (\n \n \n \n )}\n \n )}\n\n \n {hasSideContent && (\n 0,\n },\n filterColumnClass\n )}\n >\n 0,\n })}\n >\n {sidebar}\n\n \n \n \n )}\n\n \n {onRenderContent({\n data: content,\n filterCount,\n loading,\n meta: collection.meta,\n onResetFilters: () => setFilters({}),\n })}\n\n
    \n {hasMoreResults && (\n <>\n {isValidElement( loadMore ) ? (\n loadMore\n ) : (\n {\n setPage( page + 1 );\n if ( onChangePage ) {\n onChangePage( page + 1 );\n }\n }}\n >\n {loadMore || 'Show More'}\n \n )}\n \n )}\n\n {!loading && collection.loading && (\n
    \n Loading...\n
    \n )}\n
    \n \n \n
    \n );\n};\n"],"names":["Option","labelFormatter","selected","value","onSelect","React","SvgIcon","Dropdown","className","values","formatter","v","styles","FontAwesomeIcon","faChevronDown","format","LabelFormatter","children","onClick","faCheck","List","options","selection","cls","option","DEFAULT_OPTIONS","Sorting","onChange","safeValues","useEffect","INITIAL_STATE","FiltersContext","createContext","Button","disabled","highlightRed","isSelected","Filter","aggs","label","loading","name","isVisible","setIsVisible","useState","appliedFilters","onFilterChange","text","useMemo","isAvailable","_a","bucket","_b","_c","add","_d","_e","_f","_g","_h","handleClick","HolidayFilter","dateString","useSelector","state","active","BadgeFilter","handleOnClick","badges","currentBadges","badge","newBadges","FastDeliveryFilter","TagFilter","TagFilters","availableFilters","filter","today","tomorrow","lastSunday","getDayRelativeToLastSunday","dayNumber","d","getDaysRelativeToLastSunday","initialDayNumber","endDayNumber","result","i","thisWeek","thisWeekend","nextWeek","isToday","day","dateToYMD","date","m","y","DeliveryDate","map","ArrivalDateMapper","ApplyButton","OverlayTrigger","filterCount","faSlidersSimple","Checkbox","checked","type","FilterItem","backTitle","currentValue","onTitleClick","handleKeyDown","event","faChevronLeft","moment","OptionFormatter","DISCLAIMER_TEXT","DatepickerNote","ArrivalFilter","earliestDate","useContext","datePicker","setDatePicker","deadline","selectedOption","earliestDateObj","endOfWeekOptions","handleFilterChange","useCallback","SingleDatePicker","Breakpoints","focused","useHistory","history","setHistory","TreeFilter","activeFilter","defaultTitle","filters","onBack","onNavigate","pop","push","handleNavigateBack","handleNavigateForward","CategoryFilter","categories","forceShow","useRef","currentFilter","CuisineFilter","cuisine","React.useContext","React.createElement","DietFilter","tags","DietMerchantFilter","ownKeys","object","enumerableOnly","keys","symbols","sym","_objectSpread2","target","source","key","defineProperty","_isNativeReflectConstruct","_createSuper","Derived","hasNativeReflectConstruct","isNativeReflectConstruct","Super","getPrototypeOf","NewTarget","possibleConstructorReturn","warned","warning","valid","message","call","method","warningOnce","Track","props","_ref","_ref2","included","vertical","style","length","offset","reverse","positonStyle","_defineProperty","elStyle","_objectSpread","addEventListenerWrap","eventType","cb","callback","ReactDOM","e","calcPoints","marks","dots","step","min","max","points","a","b","Steps","prefixCls","lowerBound","upperBound","dotStyle","activeDotStyle","range","elements","point","_classNames","isActived","pointClassName","classNames","Marks","onClickLabel","marksKeys","markPoint","markPointIsObject","_typeof","markLabel","isActive","markClassName","bottomStyle","leftStyle","markStyle","Handle","_React$Component","_inherits","_super","_this","_classCallCheck","node","_createClass","addEventListener","_this$props","tabIndex","ariaLabel","ariaLabelledBy","ariaValueTextFormatter","restProps","_objectWithoutProperties","positionStyle","mergedTabIndex","ariaValueText","_extends","KeyCode","keyCode","isEventFromHandle","handles","findDOMNode","isValueOutOfRange","isNotTouchEvent","getClosestPoint","val","baseNum","getPrecision","maxSteps","steps","closestStep","diffs","_toConsumableArray","stepString","precision","getMousePosition","getTouchPosition","getHandleCenterPosition","handle","coords","ensureValueInRange","_ref3","ensureValuePrecision","closestPoint","pauseEvent","calculateNextValue","func","operations","indexToGet","keyToGet","getKeyboardValueMutator","increase","decrease","noop","createSlider","Component","_Component","ComponentEnhancer","position","p","draggableTrack","isVertical","bounds","inPoint","utils.isEventFromHandle","n","c","handlePosition","utils.getHandleCenterPosition","utils.getMousePosition","utils.isNotTouchEvent","utils.getTouchPosition","utils.pauseEvent","_this$props2","onFocus","onBlur","slider","isPointDiffEven","_this$props3","autoFocus","_get","_getPrototypeOf","_this$props4","rect","_this$handlesRefs$","_this2","_this2$handlesRefs$ke","_this2$handlesRefs$ke2","_this$props5","ratio","sign","pixelOffset","nextValue","_this$props6","index","_this$props7","maximumTrackStyle","railStyle","_get$call","tracks","sliderClassName","Slider","force","dragging","defaultValue","h","prevProps","prevState","theValue","utils.isValueOutOfRange","isNotControlled","nextState","changedValue","prevValue","oldValue","valueMutator","utils.getKeyboardValueMutator","mutatedValue","minPoint","nextProps","mergedProps","utils.ensureValueInRange","utils.ensureValuePrecision","minimumTrackStyle","trackStyle","handleStyle","ariaLabelForHandle","ariaLabelledByForHandle","ariaValueTextFormatterForHandle","startPoint","handleGenerator","_this$state","trackOffset","mergedTrackStyle","track","Slider$1","_trimAlignValue","allowCross","pushable","thershold","valInRange","valNotConflict","Range","closestBound","nextBounds","count","initialValue","recent","newValues","controlledState","item","data","dragTrack","startBounds","maxValue","minValue","pos","isFromKeyboardEvent","boundNeedMoving","isAtTheSamePoint","cache","pointsObject","_this3","nextHandle","threshold","direction","diffToNext","amount","originalValue","pointIndex","nextPointIndex","_this$state2","_this4","_this$state3","ariaLabelGroupForHandles","ariaLabelledByGroupForHandles","ariaValueTextFormatterGroupForHandles","offsets","handleClassName","_","_classNames2","trackClassName","Range$1","raf","caf","num","rafUUID","rafIds","cleanup","id","wrapperRaf","times","callRef","leftTimes","realId","contains","root","fillRef","ref","composeRef","_len","refs","_key","supportRef","nodeOrComponent","_type$prototype","_nodeOrComponent$prot","isMemo","canUseDom","Portal","forwardRef","didUpdate","getContainer","containerRef","useImperativeHandle","initRef","_containerRef$current","_containerRef$current2","isPointsEq","a1","a2","isAlignPoint","getAlignFromPlacement","builtinPlacements","placementStr","align","baseAlign","getAlignPopupClassName","placements","placement","isMobile","agent","makePrefixMap","styleProp","eventName","prefixes","getVendorPrefixes","domSupport","win","vendorPrefixes","canUseDOM","_document$createEleme","prefixedEventNames","getVendorPrefixedEventName","prefixMap","stylePropList","len","internalAnimationEndName","internalTransitionEndName","supportTransition","animationEndName","transitionEndName","getTransitionName","transitionName","transitionType","match","STATUS_NONE","STATUS_APPEAR","STATUS_ENTER","STATUS_LEAVE","STEP_NONE","STEP_PREPARE","STEP_START","STEP_ACTIVE","STEP_ACTIVATED","useMountStatus","destroyRef","_useState","_useState2","_slicedToArray","setVal","setValue","next","useIsomorphicLayoutEffect","useLayoutEffect","useNextFrame","nextFrameRef","React.useRef","cancelNextFrame","nextFrame","delay","nextFrameId","React.useEffect","STEP_QUEUE","SkipStep","DoStep","useStepQueue","status","_React$useState","React.useState","_React$useState2","setStep","_useNextFrame","_useNextFrame2","startQueue","nextStep","info","doNext","useDomMotionEvents","cacheElementRef","callbackRef","onInternalMotionEnd","React.useCallback","removeMotionEvents","element","patchMotionEvents","useStatus","supportMotion","visible","getElement","_ref$motionEnter","motionEnter","_ref$motionAppear","motionAppear","_ref$motionLeave","motionLeave","motionDeadline","motionLeaveImmediately","onAppearPrepare","onEnterPrepare","onLeavePrepare","onAppearStart","onEnterStart","onLeaveStart","onAppearActive","onEnterActive","onLeaveActive","onAppearEnd","onEnterEnd","onLeaveEnd","onVisibleChanged","asyncVisible","setAsyncVisible","_useState3","_useState4","setStatus","_useState5","_useState6","setStyle","mountedRef","deadlineRef","destroyedRef","getDomElement","activeRef","canEnd","_useDomMotionEvents","_useDomMotionEvents2","eventHandlers","React.useMemo","_ref4","_useStepQueue","newStep","onPrepare","_eventHandlers$step","_useStepQueue2","startStep","isMounted","nextStatus","mergedStyle","DomWrapper","React.Component","genCSSMotion","config","transitionSupport","isSupportTransition","CSSMotion","React.forwardRef","_props$visible","_props$removeOnLeave","removeOnLeave","forceRender","motionName","leavedClassName","eventProps","nodeRef","wrapperNodeRef","_useStatus","_useStatus2","statusStep","statusStyle","mergedVisible","renderedRef","originRef","setNodeRef","motionChildren","statusSuffix","getMotion","motion","animation","Mask","zIndex","mask","maskMotion","maskAnimation","maskTransitionName","box","_box","obj","vendorPrefix","jsCssMap","getVendorPrefix","testProp","getTransformName","setTransitionProperty","setTransform","getTransitionProperty","getTransformXY","transform","matrix","matrix2d","matrix3d","setTransformXY","xy","arr","match2d","match3d","RE_NUM","getComputedStyleX","forceRelayout","elem","originalStyle","css","el","getClientPosition","x","doc","body","docElem","getScroll","w","top","ret","getScrollLeft","getScrollTop","getOffset","isWindow","getDocument","_getComputedStyle","cs","computedStyle","_RE_NUM_NO_PX","RE_POS","CURRENT_STYLE","RUNTIME_STYLE","LEFT","PX","_getComputedStyleIE","left","rsLeft","getOffsetDirection","dir","oppositeOffsetDirection","setLeftTop","presetH","presetV","horizontalProperty","verticalProperty","oppositeHorizontalProperty","oppositeVerticalProperty","originalTransition","originalOffset","old","preset","off","_dir","_off","setTransform$1","originalXY","resultXY","setOffset","oriOffset","oLeft","oTop","tLeft","tTop","each","fn","isBorderBoxFn","BOX_MODELS","CONTENT_INDEX","PADDING_INDEX","BORDER_INDEX","MARGIN_INDEX","swap","getPBMWidth","which","prop","j","cssProp","domUtils","parent","refWin","documentElement","documentElementProp","getWH","ex","extra","borderBoxValue","isBorderBox","cssBoxValue","borderBoxValueOrIsBorderBox","cssShow","getWHIgnoreDisplay","args","_key2","first","includeMargin","mix","to","from","utils","overflow","getParent","getOffsetParent","skipStatic","getParent$1","isAncestorFixed","getVisibleRectForElement","alwaysByViewport","visibleRect","originalPosition","scrollX","scrollY","viewportWidth","viewportHeight","documentWidth","documentHeight","bodyStyle","maxVisibleWidth","maxVisibleHeight","adjustForViewport","elFuturePos","elRegion","size","getRegion","getAlignOffset","region","V","H","getElFuturePos","refNodeRegion","targetOffset","p1","p2","diff","isFailX","isFailY","isCompleteFailX","isCompleteFailY","flip","reg","flipOffset","convertOffset","str","offsetLen","normalizeOffset","doAlign","tgtRegion","isTgtRegionVisible","newOverflowCfg","fail","newElRegion","newPoints","newOffset","newTargetOffset","newElFuturePos","_newPoints","_newOffset","_newTargetOffset","_newElFuturePos","isStillFailX","isStillFailY","_newPoints2","isOutOfVisibleRect","targetRegion","alignElement","refNode","isTargetNotOutOfVisible","alignPoint","tgtPoint","pageX","pageY","pointInView","isSamePoint","prev","restoreFocus","activeElement","container","monitorResize","prevWidth","prevHeight","onResize","_target$getBoundingCl","width","height","fixedWidth","fixedHeight","resizeObserver","ResizeObserver","useBuffer","buffer","calledRef","timeoutRef","cancelTrigger","trigger","getPoint","Align","onAlign","monitorWindowResize","_ref$monitorBufferTim","monitorBufferTime","cacheRef","childNode","forceAlignPropsRef","_useBuffer","_forceAlignPropsRef$c","latestDisabled","latestTarget","latestOnAlign","_document","_useBuffer2","_forceAlign","cancelForceAlign","resizeMonitor","sourceResizeMonitor","winResizeRef","RefAlign","StatusQueue","useVisibleStatus","doMeasure","setInternalStatus","rafRef","cancelRaf","goNextStatus","_asyncToGenerator","_regeneratorRuntime","_callee","_context","useStretchStyle","stretch","targetSize","setTargetSize","measureStretch","sizeStyle","PopupInner","destroyPopupOnHide","getRootDomNode","getClassNameFromAlign","onMouseEnter","onMouseLeave","onMouseDown","onTouchStart","alignRef","elementRef","alignedClassName","setAlignedClassName","_useStretchStyle","_useStretchStyle2","stretchStyle","measureStretchStyle","_useVisibleStatus","_useVisibleStatus2","prepareResolveRef","getAlignTarget","forceAlign","_alignRef$current","onInternalAlign","popupDomNode","matchAlign","nextAlignedClassName","_prepareResolveRef$cu","originHandler","onShowPrepare","resolve","React.useImperativeHandle","alignDisabled","React.Children","motionRef","motionClassName","motionStyle","mergedClassName","MobilePopupInner","_props$mobile","popupClassName","popupStyle","_props$mobile$popupMo","popupMotion","popupRender","Popup","mobile","innerVisible","serInnerVisible","inMobile","setInMobile","cloneProps","popupNode","TriggerContext","React.createContext","returnEmptyString","returnDocument","ALL_HANDLERS","generateTrigger","PortalComponent","Trigger","React.createRef","mouseEnterDelay","_this$popupRef$curren","preTime","nextVisible","_this$context","getTriggerDOMNode","domNode","_assertThisInitialized","popupPlacement","getPopupClassNameFromAlign","onPopupAlign","popupAnimation","popupTransitionName","popup","popupVisible","mouseProps","popupContainer","getPopupContainer","mountNode","currentDocument","_this$popupRef$curren2","popupAlign","prevPopupVisible","delayS","childPros","action","showAction","hideAction","_this$props8","_this$props9","_this$props10","_this$popupRef$curren3","childCallback","_this$props11","autoDestroy","child","newChildProps","childrenClassName","React.cloneElement","portal","newState","autoAdjustOverflow","Content","overlay","overlayInnerStyle","Tooltip","overlayClassName","_props$trigger","_props$mouseEnterDela","_props$mouseLeaveDela","mouseLeaveDelay","overlayStyle","_props$prefixCls","onVisibleChange","afterVisibleChange","_props$placement","_props$align","_props$destroyTooltip","destroyTooltipOnHide","defaultVisible","getTooltipContainer","domRef","extraProps","getPopupElement","_props$arrowContent","arrowContent","destroyTooltip","keepParent","Tooltip$1","SliderTooltip","innerRef","tooltipRef","cancelKeepAlign","keepAlign","_innerRef$current","createSliderWithTooltip","ComponentWrapper","tipFormatter","tipProps","_tipProps$prefixCls","_tipProps$overlay","_tipProps$placement","_tipProps$visible","restTooltipProps","handleStyleWithIndex","InternalSlider","RangeWithTooltip","RangeFilter","attrs","ntc","TipFormatter","Price","PriceFilter","currentValues","filterTitle","max_price","min_price","handleChange","debounce","isEqual","showFilter","CheckboxItem","labelMaker","ProductTypeFilter","isChecked","activeFilters","RegionFilter","regions","handleBack","handleNavigate","selectedState","selectedRegion","selectLocation","FilterFactory","_i","_j","_k","Loader","show","FiltersAndSorting","panelFilters","sortLabelFormatter","sortOptions","sortSelection","tagFilters","onSort","Header","onClickClose","faTimes","SearchFilter","availablePanelFilters","availableTagFilters","open","setOpen","convert","FiltersToParams","SortLabelFormatter","buildURLParams","URLParams","eppo","EppoSdk.getInstance","TAG_FILTERS","FilteredSearch","adjustQueryParams","apiPath","apiPathOverride","apiResponseParser","availableSorting","cacheable","conditions","defaultSortOrder","experimentName","filterColumnClass","filteredResultsColumnClass","loadMore","pageSize","parseCollectionData","sidebar","syncTrackingDataToPage","syncUrl","title","onChangePage","onRenderContent","onRenderHeader","urlParams","initialFilters","parsedFilters","account","content","setContent","setFilters","setLoading","page","setPage","sort","setSort","currentPage","query","combinedFilters","typedKey","completeQuery","params","availableFilter","collection","useApiObject","variation","ahoyTrack","trackFb","fired","queryString","products","newContent","currentContent","filtersContext","FILTERS_INITIAL_STATE","updatedFilters","hasMoreResults","hasSideContent","isValidElement"],"mappings":"+gDASMA,GAAS,CAAC,CAAE,eAAAC,EAAgB,SAAAC,EAAU,MAAAC,EAAO,SAAAC,CAAS,IACzDC,EAAA,cAAA,KAAA,qBACE,IAAE,CAAA,KAAK,cAAc,QAAS,IAAMD,EAAUD,CAAM,CAClD,EAAA,CAAC,CAACD,GAAYG,EAAA,cAACC,GAAQ,CAAA,KAAK,aAAa,WAAW,iBAAiB,SAAQ,EAAC,CAAA,EAC9E,IAAIL,EAAgBE,CAAM,CAAC,EAC9B,CACF,EAGWI,GAAW,CAAC,CAAE,UAAAC,EAAY,GAAI,MAAAL,EAAO,OAAAM,EAAQ,eAAAR,EAAgB,SAAAG,KAAe,CACjF,MAAAM,EAAYT,IAAqBU,GAAOA,GAE9C,OACGN,EAAA,cAAA,MAAA,CAAI,UAAW,YAAYG,CAAS,IAEnCH,EAAA,cAAC,SAAA,CACC,KAAK,SACL,UAAW,mEAAmEO,GAAO,cAAc,GACnG,cAAY,WACZ,gBAAc,OACd,gBAAc,MAAA,EAEbP,EAAA,cAAA,OAAA,CAAK,UAAU,8BAAA,EAAgC,WAAY,kBAC3D,SAAO,CAAA,UAAU,QAAQK,EAAWP,CAAM,CAAE,EAE7CE,EAAA,cAACQ,GAAgB,CAAA,KAAMC,EAAe,CAAA,CACxC,kBAEC,KAAG,CAAA,UAAU,qCACXL,EAAO,IAAME,GACZN,EAAA,cAACL,GAAA,CACC,IAAKW,EACL,MAAOA,EACP,SAAUA,IAAMR,EAChB,eAAAF,EACA,SAAAG,CAAA,CAEH,CAAA,CACH,CACF,CAEJ,EClDMW,GAAWZ,GAAW,CAC1B,OAASA,EAAK,CACZ,KAAK,KACH,MAAO,cACT,IAAK,WACH,MAAO,cACT,IAAK,eACH,MAAO,eACT,IAAK,YACH,MAAO,sBACT,IAAK,aACH,MAAO,uBACT,QACE,MAAO,EACb,CACA,EAEaa,GAAiB,CAC9B,OAAED,EACF,mECPaf,GAAS,CAAC,CAAE,SAAAiB,EAAU,SAAAf,EAAU,QAAAgB,KAC3Cb,EAAA,cAAC,SAAA,CACC,UAAW,GAAGO,GAAO,MAAM,yFAC3B,KAAK,SACL,QAAAM,CAAA,EAEChB,mBACEW,GAAgB,CAAA,UAAW,GAAGD,GAAO,KAAK,4BAA6B,KAAMO,EAAS,CAAA,EAGxFF,CACH,oCCRWG,GAAO,CAAC,CAAE,UAAAZ,EAAW,eAAAP,EAAgB,QAAAoB,EAAS,UAAAC,EAAW,SAAAlB,CACpE,IAAAC,EAAA,cAAC,MAAI,CAAA,UAAWkB,EAAKf,CAAU,CAAA,EAC5BH,EAAA,cAAA,KAAA,CAAG,UAAW,GAAGO,GAAO,KAAK,iBAAA,EAAmB,MAAI,EAEpDP,EAAA,cAAA,KAAA,KACEgB,EAAQ,IAAMG,GACbnB,EAAA,cAAC,KAAG,CAAA,UAAU,0BAA0B,IAAKmB,CAAA,EAC1CnB,EAAA,cAAAL,GAAA,CAAO,SAAUwB,IAAWF,EAAW,QAAS,IAAMlB,EAAUoB,CAAO,CACrE,EAAAvB,EAAgBuB,CAAO,CAC1B,CACF,CACD,CACH,CACF,ECpBIC,GAAkB,CAAE,KAAM,eAAgB,WAAY,YAAa,YAAa,EAWzEC,GAAU,CAAC,CACtB,UAAAlB,EACA,OAAAO,EACA,eAAAd,EACA,MAAAE,EACA,OAAAM,EACA,SAAAkB,CACF,IAAqB,CACnB,MAAMC,EAAanB,GAAUgB,GAE7BI,OAAAA,EAAAA,UAAU,IAAM,CAERD,EAAW,SAAUzB,CAAM,GACrBwB,EAAAC,EAAW,CAAC,CAAC,CAExB,EAAA,CAAED,EAAUxB,EAAOyB,CAAW,CAAC,EAE3Bb,IAAW,OAChBV,EAAA,cAACe,GAAA,CACC,UAAWG,EAAKf,EAAW,eAAgB,EAC3C,eAAgBP,GAAkBe,GAAe,OACjD,QAASY,EACT,UAAWzB,EACX,SAAUwB,CAAA,CAGZ,EAAAtB,EAAA,cAACE,GAAA,CACC,UAAWgB,EAAKf,EAAW,0BAA2B,EACtD,MAAAL,EACA,OAAQyB,EACR,eAAgB3B,GAAkBe,GAAe,OACjD,SAAUW,CAAA,CACZ,CAEJ,ECbMG,GAA+B,CACnC,eAAgB,CAAC,EACjB,eAAgB,IAAM,IACxB,EAEMC,EAAiBC,gBAAeF,EAAc,0GC/BvCG,GAAS,CAAC,CACrB,SAAAhB,EACA,UAAAT,EACA,SAAA0B,EACA,aAAAC,EACA,WAAAC,EACA,QAAAlB,CACF,IACEb,EAAA,cAAC,SAAA,CACC,UAAWkB,EACTX,GAAO,OACP,sCACA,CACE,CAACA,GAAO,EAAE,EAAGwB,EACb,CAACxB,GAAO,YAAY,EAAGuB,CACzB,EACA3B,CACF,EACA,SAAA0B,EACA,KAAK,SACL,QAAAhB,CAAA,EAECD,CACH,ECfWoB,GAAS,CAAC,CACrB,KAAAC,EACA,SAAAJ,EACA,MAAAK,EACA,QAAAC,EACA,KAAAC,EACA,WAAAL,EAAa,GACb,QAAAlB,CACF,IAAc,CACZ,KAAM,CAAEwB,EAAWC,CAAa,EAAIC,WAAkB,EAEhD,CAAE,eAAAC,EAAgB,eAAAC,CAAA,EAAkCzC,EAAM,WAAY0B,CAAe,EACrFgB,EAAOC,EAAAA,QAAQ,IAAM,CACzB,GAAKT,EAAe,OAAAA,EAEpB,OAASE,EAAO,CACd,IAAK,eACI,MAAA,eACT,IAAK,cACI,MAAA,aACT,IAAK,gBACI,MAAA,gBACT,IAAK,eACI,MAAA,UACT,IAAK,eACI,MAAA,eACT,IAAK,kBACI,MAAA,gBACT,IAAK,UACI,MAAA,OACT,QACS,OAAAA,CAAA,CACX,EACC,CAAEF,EAAOE,CAAK,CAAC,EAEZQ,EAAcD,EAAAA,QAAQ,IAAM,qBAChC,GAAKd,EAAkB,MAAA,GAEvB,OAASO,EAAO,CACd,IAAK,eACH,OAAQH,GAEJY,EAAAZ,GAAA,YAAAA,EAAM,SAAN,YAAAY,EAAc,QAAQ,KAClBC,GACAA,EAAO,MAAQ,gBAAkBA,EAAO,UAAY,GAHxD,GAKN,IAAK,cACH,OAAQb,GAEJc,EAAAd,GAAA,YAAAA,EAAM,cAAN,YAAAc,EAAmB,QAAQ,KACvBD,GAAsCA,EAAO,MAAQ,GAAKA,EAAO,UAAY,GAFjF,GAIN,IAAK,gBACH,OAAQb,GAEJe,EAAAf,GAAA,YAAAA,EAAM,0BAAN,YAAAe,EAA+B,QAAQ,KACnCF,GACAA,EAAO,UAAY,GACjBA,EAAO,KAAmBG,GAAS,IAAA,KAAQ,CAAE,KAAM,CAAE,CAAC,EAAE,QAAQ,GAJtE,GAMN,IAAK,gBACH,OAAQhB,GAEJiB,EAAAjB,GAAA,YAAAA,EAAM,gBAAN,YAAAiB,EAAqB,QAAQ,KACzBJ,GAAsCA,EAAO,MAAQ,GAAKA,EAAO,UAAY,GAFjF,GAIN,IAAK,eACH,OAAQb,GAEJkB,EAAAlB,GAAA,YAAAA,EAAM,SAAN,YAAAkB,EAAc,QAAQ,KAClBL,GACAA,EAAO,MAAQ,gBAAkBA,EAAO,UAAY,GAHxD,GAKN,IAAK,eACH,OAAQb,GAEJmB,EAAAnB,GAAA,YAAAA,EAAM,SAAN,YAAAmB,EAAc,QAAQ,KAClBN,GACAA,EAAO,MAAQ,gBAAkBA,EAAO,UAAY,GAHxD,GAKN,IAAK,kBACH,OAAQb,GAEJoB,EAAApB,GAAA,YAAAA,EAAM,kBAAN,YAAAoB,EAAuB,QAAQ,KAC3BP,GAAsCA,EAAO,MAAQ,GAAKA,EAAO,UAAY,GAFjF,GAIN,IAAK,UACH,OAAQb,GAEJqB,EAAArB,GAAA,YAAAA,EAAM,UAAN,YAAAqB,EAAe,QAAQ,KACnBR,GAAsCA,EAAO,MAAQ,GAAKA,EAAO,UAAY,GAFjF,GAIN,QACS,MAAA,EAAA,CAEV,EAAA,CAAEb,EAAMJ,EAAUO,CAAK,CAAC,EAEtBC,IAAc,QAAa,CAACF,EAC/BG,EAAcM,CAAY,EAChBP,IAAc,IAASO,GACjCN,EAAc,EAAK,EAGrBP,EAAaA,GAAc,CAAC,CAACS,EAAeJ,CAAyB,EAErE,MAAMmB,EAAc,IAAM,CACnB1C,EACKA,EAAA,EAER4B,EAAe,CAAE,CAACL,CAAI,EAAGL,EAAa,OAAY,GAAM,CAE5D,EAEK,OAACM,EAGJrC,EAAA,cAAC,KAAG,CAAA,UAAU,0BACZ,EAAAA,EAAA,cAAC4B,GAAA,CACC,UAAW,gBAAgBQ,CAAI,GAC/B,SAAUD,GAAW,CAACS,EACtB,WAAAb,EACA,aAAcK,IAAS,UACvB,QAASmB,CAAA,EAERb,CAAA,CAEL,EAbuB,IAe3B,ECtIac,GAAgB,CAAC,CAAE,KAAAvB,EAAM,QAAAE,KAAmC,CACvE,KAAM,CAAEE,EAAWC,CAAa,EAAIC,WAAkB,EAEhD,CAAE,eAAAC,EAAgB,eAAAC,CAAA,EAAkCzC,EAAM,WAAY0B,CAAe,EACrF,CAAE,WAAA+B,EAAY,MAAAvB,CAAA,EAAUwB,GAAcC,GAAmBA,EAAM,KAAK,aAAe,EAAE,EAErFf,EAAcD,EAAA,QAClB,WACE,OAAAE,EAAAZ,GAAA,YAAAA,EAAM,0BAAN,YAAAY,EAA+B,QAAQ,KACnCC,GAAYA,EAAO,UAAY,GAAOA,EAAO,KAAmB,IAAI,KAAMW,CAAW,EAAE,QAAQ,IAErG,CAAExB,EAAMwB,CAAW,CACrB,EAEKpB,IAAc,QAAa,CAACF,EAC/BG,EAAcM,CAAY,EAChBP,IAAc,IAASO,GACjCN,EAAc,EAAK,EAGf,MAAAsB,EAASpB,EAAe,kBAAoBiB,EAElD,MAAK,CAACA,GAAc,CAACvB,GAAS,CAACG,EAAmB,KAGhDrC,EAAA,cAACgC,GAAA,CACC,SAAU,CAACY,EACX,MAAAV,EACA,QAAAC,EACA,KAAK,kBACL,QAAS,IAAMM,EAAe,CAAE,gBAAkBmB,EAAsB,OAAbH,CAAwB,CAAA,CAAA,CACrF,CAEJ,ECjCaI,GAAc,CAAC,CAAE,KAAA5B,EAAM,QAAAE,EAAS,KAAAC,KAAmB,OAC9D,KAAM,CAAE,eAAAI,EAAgB,eAAAC,CAAA,EAAkCzC,EAAM,WAAY0B,CAAe,EAErFkC,GAASf,EAAAL,EAAe,UAAU,IAAzB,YAAAK,EAA4B,SAAUT,GAE/C0B,EAAgB,IAAM,CACpB,MAAAC,EAASvB,EAAe,UAAU,EACxC,IAAIwB,EAA0B,CAAC,EAM/B,GAJKD,IACHC,EAAgB,OAAOD,GAAW,SAAWA,EAAO,MAAO,GAAI,EAAIA,GAGhEH,EACYnB,EAAA,CACb,WAAYuB,EAAc,OAASC,GAAmB,CAAC7B,EAAK,SAAU6B,CAAM,CAAC,CAAA,CAC9E,MACI,CACL,MAAMC,EAAY,CAAEF,EAAe5B,CAAK,EAAE,KAAK,EAEhCK,EAAA,CAAE,WAAYyB,EAAW,CAAA,CAE5C,EAGE,OAAAlE,EAAA,cAACgC,IAAO,KAAAC,EAAY,WAAY2B,EAAQ,QAAAzB,EAAkB,KAAAC,EAAY,QAAS0B,CAAe,CAAA,CAElG,EC5BaK,GAAqB,CAAC,CAAE,KAAAlC,EAAM,QAAAE,KAAwC,CACjF,KAAM,CAAE,eAAAK,EAAgB,eAAAC,CAAA,EAAkCzC,EAAM,WAAY0B,CAAe,EAGrF+B,EAAa/C,GAAQuC,OADT,KACqB,CAAE,KAAM,EAAG,EAAG,YAAa,EAE5DW,EAASpB,EAAe,gBAAkBiB,EAG9C,OAAAzD,EAAA,cAACgC,GAAA,CACC,KAAAC,EACA,MAAM,gBACN,QAAAE,EACA,KAAK,gBACL,QAAS,IAAMM,EAAe,CAAE,cAAgBmB,EAAsB,OAAbH,CAAwB,CAAA,CAAA,CACnF,CAEJ,EChBaW,GAAY,CAAC,CAAE,KAAAnC,EAAM,QAAAE,EAAS,KAAAC,KAA4B,CACrE,OAASA,EAAO,CACd,IAAK,kBACI,OAAApC,EAAA,cAACwD,GAAc,CAAA,KAAAvB,EAAY,QAAAE,CAAkB,CAAA,EACtD,IAAK,gBACI,OAAAnC,EAAA,cAACmE,GAAmB,CAAA,KAAAlC,EAAY,QAAAE,CAAkB,CAAA,EAC3D,IAAK,eACH,OAAQnC,EAAA,cAAA6D,GAAA,CAAY,KAAA5B,EAAY,QAAAE,EAAkB,KAAK,eAAe,EACxE,IAAK,eACH,OAAQnC,EAAA,cAAA6D,GAAA,CAAY,KAAA5B,EAAY,QAAAE,EAAkB,KAAK,eAAe,EACxE,IAAK,eACH,OAAQnC,EAAA,cAAA6D,GAAA,CAAY,KAAA5B,EAAY,QAAAE,EAAkB,KAAK,eAAe,EACxE,QACE,OAAQnC,EAAA,cAAAgC,GAAA,CAAO,KAAAC,EAAY,QAAAE,EAAkB,KAAAC,EAAY,CAAA,CAE/D,ECfaiC,GAAa,CAAC,CAAE,KAAApC,EAAM,iBAAAqC,EAAkB,UAAAnE,EAAW,QAAAgC,CAAQ,IACrEnC,EAAA,cAAA,KAAA,CAAG,UAAWkB,EAAK,0BAA2Bf,CAAU,CACtD,EAAAmE,EAAiB,IAAMC,GACtBvE,EAAA,cAACoE,GAAU,CAAA,KAAAnC,EAAY,IAAKsC,EAAQ,QAAApC,EAAkB,KAAMoC,CAAQ,CAAA,CACrE,CACH,ECpBIC,GAAQ,IAAI,KACZC,GAAW,IAAI,KACrBA,GAAS,QAASD,GAAM,QAAO,EAAK,CAAG,EACvC,MAAME,GAAa,IAAI,KACvBA,GAAW,QAASF,GAAM,QAAS,EAAGA,GAAM,OAAM,CAAE,EAGpD,MAAMG,GAA+BC,GAAe,CAClD,MAAMC,EAAI,IAAI,KAAMH,GAAW,QAAO,CAAE,EACxC,OAAAG,EAAE,QAASA,EAAE,QAAO,EAAKD,CAAW,EAC7BC,CACT,EAEMC,GAA8B,CAAEC,EAAkBC,IAAkB,CACxE,MAAMC,EAAS,CAAE,EAEjB,QAAUC,EAAIH,EAAkBG,GAAKF,EAAcE,GAAK,EACtDD,EAAO,KAAMN,GAA4BO,EAAG,EAG9C,OAAOD,CACT,EAGME,GAAWL,GAA6B,EAAG,GAE3CM,GAAcN,GAA6B,EAAG,GAE9CO,GAAWP,GAA6B,EAAG,IAG3CQ,GAAYC,GAAS,CACzB,OAASA,EAAG,CACV,IAAK,SACH,OAAOf,GAAM,OAAM,IAAO,EAC5B,IAAK,SACH,OAAOA,GAAM,OAAM,IAAO,EAC5B,IAAK,UACH,OAAOA,GAAM,OAAM,IAAO,EAC5B,IAAK,YACH,OAAOA,GAAM,OAAM,IAAO,EAC5B,IAAK,WACH,OAAOA,GAAM,OAAM,IAAO,EAC5B,IAAK,SACH,OAAOA,GAAM,OAAM,IAAO,EAC5B,IAAK,WACH,OAAOA,GAAM,OAAM,IAAO,EAC5B,QACE,MAAO,EACb,CACA,EAEMgB,GAAcC,GAAU,CAC5B,IAAIZ,EAAIY,EAAK,QAAS,EAClBC,EAAID,EAAK,SAAQ,EAAK,EAC1B,MAAME,EAAIF,EAAK,YAAa,EAG5B,OAAAC,EAAI,IAAIA,CAAC,GAAG,MAAO,EAAI,EACvBb,EAAI,IAAIA,CAAC,GAAG,MAAO,EAAI,EAEhB,GAAGc,CAAC,IAAID,CAAC,IAAIb,CAAC,EACvB,EAGee,GAAA,CACb,MAAApB,GACA,SAAAC,GACA,SAAAU,GACA,YAAAC,GACA,SAAAC,GACA,UAAAG,GACA,QAAAF,EACF,ECxEMO,GAAQnD,GAAU,CACtB,IAAI+C,EAEJ,OAAS/C,EAAI,CACX,IAAK,WACH+C,EAAOG,GAAa,SACpB,MACF,IAAK,YAGHH,EAAOG,GAAa,SAASA,GAAa,SAAS,OAAS,CAAC,EAC7D,MACF,IAAK,YACHH,EAAOG,GAAa,SAASA,GAAa,SAAS,OAAS,CAAC,EAC7D,MACF,QAEE,OAAKlD,GAAQA,EAAK,MAAO,qBAAqB,EACrCA,EAIF,IACb,CAEE,OAAOkD,GAAa,UAAWH,CAAM,CACvC,EAEeK,GAAA,CACb,IAAAD,EACF,ECzBaE,GAAc,CAAC,CAAE,SAAAlE,EAAU,QAAAhB,CACtC,IAAAb,EAAA,cAAC,MAAI,CAAA,UAAU,iCACb,EAAAA,EAAA,cAAC,SAAA,CACC,UAAU,8DACV,SAAA6B,EACA,KAAK,SACL,QAAAhB,CAAA,EACD,OAED,CACF,8DCNWmF,GAAiB,CAAC,CAAE,YAAAC,EAAa,QAAApF,CAC5C,IAAAb,EAAA,cAAC,SAAA,CACC,UAAW,GAAGO,GAAO,MAAM,iHAC3B,KAAK,SACL,QAAAM,CAAA,EAECb,EAAA,cAAAQ,GAAA,CAAgB,UAAU,YAAY,KAAM0F,GAAiB,EAAE,SAE/D,CAAC,CAACD,GAAe,KAAKA,CAAW,GACpC,mGCfWE,GAAW,CAAC,CAAE,QAAAC,EAAS,SAAAxF,EAAU,UAAAT,EAAW,KAAAiC,EAAM,KAAAiE,EAAM,MAAAvG,EAAO,SAAAwB,KAC1EtB,EAAA,cAAC,SAAM,UAAWkB,EAAKX,GAAO,MAAO,gBAAiBJ,CAAU,GAC9DH,EAAA,cAAC,QAAA,CACC,QAAAoG,EACA,UAAW,GAAG7F,GAAO,QAAQ,UAC7B,KAAA6B,EACA,KAAMiE,GAAQ,WACd,MAAAvG,EACA,SAAAwB,CAAA,CACF,EAEAtB,EAAA,cAAC,QAAK,UAAW,GAAGO,GAAO,IAAI,yBAAA,EAA4BK,CAAS,CACtE,kICAW0F,GAAa,CAAC,CACzB,UAAAC,EACA,SAAA3F,EACA,UAAAT,EACA,aAAAqG,EACA,QAAArE,EACA,KAAAC,EACA,aAAAqE,CACF,IAAwB,CACtB,MAAMlD,EAAc,IAAM,CACnBpB,GAEAqE,GAAgBC,GACNA,EAAA,CAEjB,EAEMC,EAAkBC,GAAmD,EACpEA,EAAM,MAAQ,SAAWA,EAAM,MAAQ,MAC9BpD,EAAA,CAEhB,EAEA,OACGvD,EAAA,cAAA,KAAA,CAAG,UAAWkB,EAAK,OAAQf,CAAU,CAAA,EACnCH,EAAA,cAAA,KAAA,CAAG,UAAW,GAAGO,GAAO,KAAK,sCAC3BiG,EACCxG,EAAA,cAAC,SAAA,CACC,UAAW,GAAGO,GAAO,MAAM,2HAC3B,KAAK,SACL,QAASgD,EACT,UAAWmD,CAAA,EAEV1G,EAAA,cAAA,MAAA,CAAI,UAAW,GAAGO,GAAO,KAAK,4BAAA,EAC5BP,EAAA,cAAAQ,GAAA,CAAgB,UAAU,OAAO,KAAMoG,EAAe,CAAA,EACtDL,GAAanE,CAChB,kBACC,MAAI,CAAA,UAAW,GAAG7B,GAAO,OAAO,mBAAoBiG,CAAa,CAAA,EAGpEpE,CAEJ,EAECD,EACCnC,EAAA,cAAC,OAAI,UAAU,6CAA6C,KAAK,QAAA,kBAC9D,OAAK,CAAA,UAAU,WAAU,YAAU,CACtC,EAEAY,CAEJ,CAEJ,ECpEMF,GAAWS,GAAY,CAC3B,OAASA,EAAM,CACb,IAAK,GACH,MAAO,UACT,IAAK,WACH,MAAO,WACT,IAAK,YACH,MAAO,YACT,IAAK,YACH,MAAO,YACT,QAAS,CACP,MAAM0D,EAAIgC,GAAQ1F,CAAQ,EAE1B,OAAO0D,EAAE,QAAS,EAAGA,EAAE,OAAQ,GAAG,EAAK,IAC7C,CACA,CACA,EAEaiC,GAAkB,CAC/B,OAAEpG,EACF,yECLMqG,GAAkB,6DAElBC,GAAiB,IAEpBhH,EAAA,cAAA,MAAA,CAAI,UAAU,OACZA,EAAA,cAAA,MAAA,CAAI,UAAU,+BAAA,EACZA,EAAA,cAAA,KAAA,KAAG,2DAAyD,EAC5DA,EAAA,cAAA,IAAA,CAAE,UAAU,WAAA,EAAY,kGAGvBA,EAAA,cAAC,KAAG,IAAA,EACHA,EAAA,cAAA,QAAA,CAAM,UAAU,YAAA,EAAc,IAAI+G,EAAe,EAAG,CACvD,CACF,CACF,EAGIE,GAAgB,CAAC,CAAE,UAAA9G,EAAW,aAAA+G,KAAmB,CACrD,KAAM,CAAE,eAAA1E,EAAgB,eAAAC,GAAmB0E,EAAAA,WAAYzF,CAAe,EAChE,CAAE0F,EAAYC,CAAc,EAAI9E,WAAS,CAC7C,KAAM,KACN,QAAS,EAAA,CACV,EACK+E,EAAW3E,EAAAA,QAAQ,IAAMkE,GAAY,IAAA,IAAM,EAAE,IAAK,GAAI,MAAO,EAAG,CAAA,CAAE,EAElEU,EAAiB/E,EAAe,gBAAkB,GAElDgF,EAAkB7E,EAAA,QACtB,IACEuE,GAAgBL,GAAO,IAAKK,CAAa,EAAE,QAAQ,EAAIL,GAAO,IAAKK,CAAa,EAAIL,GAAO,EAC7F,CAAEK,CAAa,CACjB,EAEMO,EAAmB9E,EAAA,QACvB,IAEEuE,GAAgBL,GAAO,IAAKK,CAAa,EAAE,SAAUL,GAAO,EAAE,MAAO,MAAO,CAAC,EAC/E,CAAEK,CAAa,CACjB,EAEMQ,EAAqBC,EAAA,YACvBlC,GAAU,CACKhD,EAAA,CAAE,eAAgBgD,EAAM,EACvC4B,EAAgB1D,IAAY,CAAE,GAAGA,EAAO,KAAM,MAAO,CACvD,EACA,CAAElB,EAAgB4E,CAAc,CAClC,EAGA,MAAK,CAACH,GAAgB,CAACK,EAAwB,KAG7CvH,EAAA,cAACsG,GAAA,CACC,UAAWpF,EAAK,4BAA6Bf,CAAU,EACvD,aAAcoH,GAAkBT,GAAgB,OAAQS,CAAe,EACvE,KAAK,YACL,aAAc,IAAMG,EAAoB,IAAK,CAAA,EAE5C,CAACH,GACCvH,EAAA,cAAA,KAAA,CAAG,UAAU,uBACZ,EAAAA,EAAA,cAAC,KAAG,CAAA,UAAU,cACZ,EAAAA,EAAA,cAACmG,GAAA,CACC,UAAW5F,GAAO,OAClB,KAAK,QACL,KAAK,wBACL,QAASgH,IAAmB,GAC5B,MAAM,GACN,SAAU,IAAMG,EAAoB,EAAG,CAAA,EAEtCZ,GAAgB,OAAQ,EAAG,CAAA,CAEhC,EAECW,GACEzH,EAAA,cAAA,KAAA,CAAG,UAAU,gBACZA,EAAA,cAACmG,GAAA,CACC,UAAW5F,GAAO,OAClB,KAAK,QACL,KAAK,wBACL,QAASgH,IAAmB,YAC5B,MAAM,YACN,SAAU,IAAM9E,EAAe,CAAE,eAAgB,WAAa,CAAA,CAAA,EAE7DqE,GAAgB,OAAQ,WAAY,CAAA,CAEzC,EAGD9G,EAAA,cAAA,KAAA,CAAG,UAAU,cACZ,EAAAA,EAAA,cAACmG,GAAA,CACC,KAAK,QACL,KAAK,wBACL,QAASiB,EAAW,QACpB,MAAM,SACN,SAAU,IAAM,CACdC,EAAgB1D,IAAY,CAAE,GAAGA,EAAO,QAAS,IAAO,CAAA,CAC1D,kBAEC,MAAI,CAAA,UAAWzC,EAAKX,GAAO,SAAU,kCAAmC,CACvE,EAAAP,EAAA,cAAC4H,GAAA,CACC,MAAK,GACL,qBAAqB,MACrB,KAAMR,EAAW,KACjB,cAAa,GACb,QAASA,EAAW,QACpB,2BAA0B,GAC1B,GAAG,uBACH,eAAkBtH,GAGhBA,EAAM,eAAgB0H,CAAgB,GAAK1H,EAAM,cAAewH,CAAS,EAE3E,eAAgBO,GAAY,UAAW,IAAK,EAAI,EAAI,EACpD,YAAY,iBACZ,mBAAoBb,GACpB,qBAAoB,GACpB,MAAK,GACL,WAAU,GACV,aAAgBvB,GAAU,CACxB4B,EAAgB1D,IAAY,CAAE,GAAGA,EAAO,KAAA8B,CAAO,EAAA,EAC/ChD,EAAe,CAAE,eAAgBgD,EAAK,OAAQ,YAAa,EAAG,CAChE,EACA,cAAe,CAAC,CAAE,QAAAqC,KAAc,CAC9BT,EAAgB1D,IAAY,CAAE,GAAGA,EAAO,QAAAmE,CAAU,EAAA,CAAA,CACpD,CAEJ,CAAA,CAAA,CAEJ,CACF,CAEJ,CAEJ,ECpJAC,GAAe,IAAM,CACnB,KAAM,CAAEC,EAASC,GAAe1F,EAAAA,SAAS,CAAA,CAAE,EAU3C,MAAO,CAAEyF,EAJG,IAAM,CAChBC,EAAYD,EAAQ,MAAO,EAAG,EAAE,CAAE,CACnC,EANclI,GAAW,CACxBmI,EAAW,CAAE,GAAGD,EAASlI,EAAO,CACjC,CAM4B,CAC/B,sCCNMoI,GAAa,CAAC,CAAE,aAAAC,EAAc,UAAAhI,EAAW,aAAAiI,EAAc,QAAAC,EAAS,OAAAC,EAAQ,WAAAC,KAAiB,CAC7F,KAAM,CAAEP,EAASQ,EAAKC,CAAK,EAAIV,GAAW,EAG1CvG,EAAAA,UAAU,IAAM,CACTwG,EAAQ,SAAW,GAAKG,KAAqBA,CAAa,CAC9D,EAAA,CAAEA,EAAcH,EAASS,CAAK,CAAC,EAElC,MAAMC,EAAqB,IAAM,CAC/BJ,EAAQN,EAAQA,EAAQ,OAAS,CAAC,CAAC,EAC/BQ,EAAA,CACN,EAEMG,EAA0BpE,GAAY,CAC1CgE,EAAYhE,EAAO,GAAI,EACvBkE,EAAMlE,EAAO,GAAI,CACnB,EAGE,OAAAvE,EAAA,cAACsG,GAAA,CACC,UAAW0B,EAAQA,EAAQ,OAAS,CAAC,EACrC,UAAA7H,EACA,aAAcgI,EACd,KAAMC,EACN,aAAcM,CAAA,GAEbL,GAAA,YAAAA,EAAS,QAAS,GACjBrI,EAAA,cAAC,UACEqI,EAAQ,IAAM9D,mBACZ,KAAG,CAAA,UAAU,eAAe,IAAKA,EAAO,KACvCvE,EAAA,cAAC,SAAA,CACC,UAAW,GAAGO,GAAO,MAAM,gGAC3B,KAAK,SACL,QAAS,IAAMoI,EAAuBpE,CAAO,CAAA,EAE5CA,EAAO,IAAI,IAAE,IAAIA,EAAO,SAAS,GAAA,CAEtC,CACD,CACH,CAEJ,CAEJ,EC5CMqE,GAAiB,CAAC,CAAE,UAAAzI,EAAW,WAAA0I,EAAa,MAAQ,CAClD,MAAAC,EAAYC,SAAQ,EAAM,EAC1B,CAAE,eAAAvG,EAAgB,eAAAC,GAAmB0E,EAAAA,WAAYzF,CAAe,EAEtEF,EAAAA,UAAU,IAAM,CACTsH,EAAU,UAELA,EAAA,QAAUD,EAAW,OAAS,EAAA,EACvC,CAAEA,CAAW,CAAC,EAEX,MAAAG,EAAgBxG,EAAe,iBAAiB,EAEjD,OAAAsG,EAAU,SAAWE,EAEtBhJ,EAAA,cAACkI,GAAA,CACC,aAAcc,EACd,UAAW9H,EAAK,wBAAyBf,CAAU,EACnD,aAAa,WACb,QAAS0I,EACT,OAAUtE,GAAY9B,EAAe,CAAE,kBAAmB8B,EAAQ,EAClE,WAAcA,GAAY9B,EAAe,CAAE,kBAAmB8B,CAAQ,CAAA,CAAA,CACxE,EAIG,IACT,ECpBa0E,GAAiC,CAAC,CAAE,UAAA9I,EAAW,QAAA+I,KAAc,CAClE,KAAA,CACJ,eAAA1G,EACA,eAAAC,CAAA,EAIE0G,EAAAA,WAAkBzH,CAAe,EAEhC,OAACwH,GAAA,MAAAA,EAAS,OAGbE,EAAA,cAAClB,GAAA,CACC,aAAc1F,EAAe,QAC7B,UAAWtB,EAAK,uBAAwBf,CAAU,EAClD,aAAa,UACb,QAASqC,EAAe,QAAU,CAAA,EAAK0G,EACvC,OAAQ,IAAMzG,EAAe,CAAE,QAAS,OAAW,EACnD,WAAc8B,GAAoB9B,EAAe,CAAE,QAAS8B,CAAQ,CAAA,CAAA,CACtE,EAV6B,IAYjC,EC3BM8E,GAAa,CAAC,CAAE,UAAAlJ,EAAW,KAAAmJ,KAAW,CAC1C,KAAM,CAAE,eAAA9G,EAAgB,eAAAC,GAAmB0E,EAAAA,WAAYzF,CAAe,EAEjE,OAAC4H,GAAA,MAAAA,EAAM,OAGVtJ,EAAA,cAACkI,GAAA,CACC,aAAc1F,EAAe,KAC7B,UAAWtB,EAAK,oBAAqBf,CAAU,EAC/C,aAAa,OACb,QAASqC,EAAe,KAAO,CAAA,EAAK8G,EACpC,OAAQ,IAAM7G,EAAe,CAAE,KAAM,OAAW,EAChD,WAAc8B,GAAY9B,EAAe,CAAE,KAAM8B,CAAQ,CAAA,CAAA,CAC3D,EAV0B,IAY9B,ECTagF,GAAsC,CAAC,CAAE,UAAApJ,EAAW,KAAAmJ,KAAW,CACpE,KAAA,CACJ,eAAA9G,EACA,eAAAC,CAAA,EAIE0G,EAAAA,WAAkBzH,CAAe,EAEhC,OAAC4H,GAAA,MAAAA,EAAM,OAGVF,EAAA,cAAClB,GAAA,CACC,aAAc1F,EAAe,aAC7B,UAAWtB,EAAK,6BAA8Bf,CAAU,EACxD,aAAa,OACb,QAASqC,EAAe,aAAe,CAAA,EAAK8G,EAC5C,OAAQ,IAAM7G,EAAe,CAAE,aAAc,OAAW,EACxD,WAAc8B,GAAoB9B,EAAe,CAAE,aAAc8B,CAAQ,CAAA,CAAA,CAC3E,EAV0B,IAY9B,EChCA,SAASiF,GAAQC,EAAQC,EAAgB,CACvC,IAAIC,EAAO,OAAO,KAAKF,CAAM,EAE7B,GAAI,OAAO,sBAAuB,CAChC,IAAIG,EAAU,OAAO,sBAAsBH,CAAM,EAE7CC,IACFE,EAAUA,EAAQ,OAAO,SAAUC,EAAK,CACtC,OAAO,OAAO,yBAAyBJ,EAAQI,CAAG,EAAE,UAC5D,CAAO,GAGHF,EAAK,KAAK,MAAMA,EAAMC,CAAO,CACjC,CAEE,OAAOD,CACT,CAEe,SAASG,EAAeC,EAAQ,CAC7C,QAAS7E,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CACzC,IAAI8E,EAAS,UAAU9E,CAAC,GAAK,KAAO,UAAUA,CAAC,EAAI,CAAE,EAEjDA,EAAI,EACNsE,GAAQ,OAAOQ,CAAM,EAAG,EAAI,EAAE,QAAQ,SAAUC,EAAK,CACnDC,EAAeH,EAAQE,EAAKD,EAAOC,CAAG,CAAC,CAC/C,CAAO,EACQ,OAAO,0BAChB,OAAO,iBAAiBF,EAAQ,OAAO,0BAA0BC,CAAM,CAAC,EAExER,GAAQ,OAAOQ,CAAM,CAAC,EAAE,QAAQ,SAAUC,EAAK,CAC7C,OAAO,eAAeF,EAAQE,EAAK,OAAO,yBAAyBD,EAAQC,CAAG,CAAC,CACvF,CAAO,CAEP,CAEE,OAAOF,CACT,CCtCe,SAASI,IAA4B,CAElD,GADI,OAAO,QAAY,KAAe,CAAC,QAAQ,WAC3C,QAAQ,UAAU,KAAM,MAAO,GACnC,GAAI,OAAO,OAAU,WAAY,MAAO,GAExC,GAAI,CACF,eAAQ,UAAU,QAAQ,KAAK,QAAQ,UAAU,QAAS,CAAA,EAAI,UAAY,CAAA,CAAE,CAAC,EACtE,EACR,MAAW,CACV,MAAO,EACX,CACA,CCRe,SAASC,GAAaC,EAAS,CAC5C,IAAIC,EAA4BC,GAA0B,EAC1D,OAAO,UAAgC,CACrC,IAAIC,EAAQC,GAAeJ,CAAO,EAC9BpF,EAEJ,GAAIqF,EAA2B,CAC7B,IAAII,EAAYD,GAAe,IAAI,EAAE,YACrCxF,EAAS,QAAQ,UAAUuF,EAAO,UAAWE,CAAS,CAC5D,MACMzF,EAASuF,EAAM,MAAM,KAAM,SAAS,EAGtC,OAAOG,GAA0B,KAAM1F,CAAM,CAC9C,CACH,CCjBA,IAAI2F,GAAS,CAAC,EACE,SAAAC,GAAQC,EAAOC,EAAS,CAKxC,CAUgB,SAAAC,GAAKC,EAAQH,EAAOC,EAAS,CACvC,CAACD,GAAS,CAACF,GAAOG,CAAO,IAE3BH,GAAOG,CAAO,EAAI,GAEtB,CACgB,SAAAG,GAAYJ,EAAOC,EAAS,CACrCC,GAAAH,GAASC,EAAOC,CAAO,CAC9B,CCrBA,IAAII,GAAQ,SAAeC,EAAO,CAChC,IAAIC,EAAMC,EAENnL,EAAYiL,EAAM,UAClBG,EAAWH,EAAM,SACjBI,EAAWJ,EAAM,SACjBK,EAAQL,EAAM,MACdM,EAASN,EAAM,OACfO,EAASP,EAAM,OACfQ,EAAUR,EAAM,QAEhBM,EAAS,IACXE,EAAU,CAACA,EACXF,EAAS,KAAK,IAAIA,CAAM,EACxBC,EAAS,IAAMA,GAGjB,IAAIE,EAAeL,GAAYH,EAAO,CAAA,EAAIS,EAAgBT,EAAMO,EAAU,MAAQ,SAAU,GAAG,OAAOD,EAAQ,GAAG,CAAC,EAAGG,EAAgBT,EAAMO,EAAU,SAAW,MAAO,MAAM,EAAGE,EAAgBT,EAAM,SAAU,GAAG,OAAOK,EAAQ,GAAG,CAAC,EAAGL,IAASC,EAAQ,CAAE,EAAEQ,EAAgBR,EAAOM,EAAU,QAAU,OAAQ,GAAG,OAAOD,EAAQ,GAAG,CAAC,EAAGG,EAAgBR,EAAOM,EAAU,OAAS,QAAS,MAAM,EAAGE,EAAgBR,EAAO,QAAS,GAAG,OAAOI,EAAQ,GAAG,CAAC,EAAGJ,GAE3bS,EAAUC,EAAcA,EAAc,CAAA,EAAIP,CAAK,EAAGI,CAAY,EAElE,OAAON,EAAwBvL,EAAM,cAAc,MAAO,CACxD,UAAWG,EACX,MAAO4L,CACR,CAAA,EAAI,IACP,EC5Be,SAASE,GAAqBlC,EAAQmC,EAAWC,EAAIhL,EAAQ,CAE1E,IAAIiL,EAAWC,GAAS,wBAA0B,SAAaC,EAAG,CAChED,GAAS,wBAAwBF,EAAIG,CAAC,CAC1C,EAAMH,EAEJ,OAAIpC,EAAO,kBACTA,EAAO,iBAAiBmC,EAAWE,EAAUjL,CAAM,EAG9C,CACL,OAAQ,UAAkB,CACpB4I,EAAO,qBACTA,EAAO,oBAAoBmC,EAAWE,CAAQ,CAEtD,CACG,CACH,CCZA,IAAIG,GAAa,SAAoBf,EAAUgB,EAAOC,EAAMC,EAAMC,EAAKC,EAAK,CAC1E/B,GAAQ4B,EAAOC,EAAO,EAAI,GAAM,gFAAgF,EAChH,IAAIG,EAAS,OAAO,KAAKL,CAAK,EAAE,IAAI,UAAU,EAAE,KAAK,SAAUM,EAAGC,EAAG,CACnE,OAAOD,EAAIC,CACf,CAAG,EAED,GAAIN,GAAQC,EACV,QAASxH,EAAIyH,EAAKzH,GAAK0H,EAAK1H,GAAKwH,EAC3BG,EAAO,QAAQ3H,CAAC,IAAM,IACxB2H,EAAO,KAAK3H,CAAC,EAKnB,OAAO2H,CACT,EAEIG,GAAQ,SAAe3B,EAAM,CAC/B,IAAI4B,EAAY5B,EAAK,UACjBG,EAAWH,EAAK,SAChBO,EAAUP,EAAK,QACfmB,EAAQnB,EAAK,MACboB,EAAOpB,EAAK,KACZqB,EAAOrB,EAAK,KACZE,EAAWF,EAAK,SAChB6B,EAAa7B,EAAK,WAClB8B,EAAa9B,EAAK,WAClBuB,EAAMvB,EAAK,IACXsB,EAAMtB,EAAK,IACX+B,EAAW/B,EAAK,SAChBgC,EAAiBhC,EAAK,eACtBiC,EAAQV,EAAMD,EACdY,EAAWhB,GAAWf,EAAUgB,EAAOC,EAAMC,EAAMC,EAAKC,CAAG,EAAE,IAAI,SAAUY,EAAO,CACpF,IAAIC,EAEA9B,EAAS,GAAG,OAAO,KAAK,IAAI6B,EAAQb,CAAG,EAAIW,EAAQ,IAAK,GAAG,EAC3DI,EAAY,CAACnC,GAAYiC,IAAUL,GAAc5B,GAAYiC,GAASL,GAAcK,GAASN,EAC7FzB,EAAQD,EAAWQ,EAAcA,EAAc,CAAA,EAAIoB,CAAQ,EAAG,CAAA,EAAItB,EAAgB,CAAA,EAAIF,EAAU,MAAQ,SAAUD,CAAM,CAAC,EAAIK,EAAcA,EAAc,CAAE,EAAEoB,CAAQ,EAAG,CAAA,EAAItB,EAAgB,CAAE,EAAEF,EAAU,QAAU,OAAQD,CAAM,CAAC,EAEnO+B,IACFjC,EAAQO,EAAcA,EAAc,CAAE,EAAEP,CAAK,EAAG4B,CAAc,GAGhE,IAAIM,EAAiBC,GAAYH,EAAc,CAAE,EAAE3B,EAAgB2B,EAAa,GAAG,OAAOR,EAAW,MAAM,EAAG,EAAI,EAAGnB,EAAgB2B,EAAa,GAAG,OAAOR,EAAW,aAAa,EAAGS,CAAS,EAAG5B,EAAgB2B,EAAa,GAAG,OAAOR,EAAW,cAAc,EAAGrB,CAAO,EAAG6B,EAAa,EAC7R,OAAoBzN,EAAM,cAAc,OAAQ,CAC9C,UAAW2N,EACX,MAAOlC,EACP,IAAK+B,CACX,CAAK,CACL,CAAG,EACD,OAAoBxN,EAAM,cAAc,MAAO,CAC7C,UAAW,GAAG,OAAOiN,EAAW,OAAO,CACxC,EAAEM,CAAQ,CACb,ECrDIM,GAAQ,SAAexC,EAAM,CAC/B,IAAIlL,EAAYkL,EAAK,UACjBG,EAAWH,EAAK,SAChBO,EAAUP,EAAK,QACfmB,EAAQnB,EAAK,MACbE,EAAWF,EAAK,SAChB8B,EAAa9B,EAAK,WAClB6B,EAAa7B,EAAK,WAClBuB,EAAMvB,EAAK,IACXsB,EAAMtB,EAAK,IACXyC,EAAezC,EAAK,aACpB0C,EAAY,OAAO,KAAKvB,CAAK,EAC7Bc,EAAQV,EAAMD,EACdY,EAAWQ,EAAU,IAAI,UAAU,EAAE,KAAK,SAAUjB,EAAGC,EAAG,CAC5D,OAAOD,EAAIC,CACf,CAAG,EAAE,IAAI,SAAUS,EAAO,CACtB,IAAIC,EAEAO,EAAYxB,EAAMgB,CAAK,EACvBS,EAAoBC,GAAQF,CAAS,IAAM,UAAY,CAAehO,EAAM,eAAegO,CAAS,EACpGG,EAAYF,EAAoBD,EAAU,MAAQA,EAEtD,GAAI,CAACG,GAAaA,IAAc,EAC9B,OAAO,KAGT,IAAIC,EAAW,CAAC7C,GAAYiC,IAAUL,GAAc5B,GAAYiC,GAASL,GAAcK,GAASN,EAC5FmB,EAAgBT,GAAYH,EAAc,CAAE,EAAE3B,EAAgB2B,EAAa,GAAG,OAAOtN,EAAW,OAAO,EAAG,EAAI,EAAG2L,EAAgB2B,EAAa,GAAG,OAAOtN,EAAW,cAAc,EAAGiO,CAAQ,EAAGX,EAAa,EAE5Ma,EAAcxC,EAAgB,CAChC,aAAc,MACf,EAAEF,EAAU,MAAQ,SAAU,GAAG,QAAQ4B,EAAQb,GAAOW,EAAQ,IAAK,GAAG,CAAC,EAEtEiB,EAAYzC,EAAgB,CAC9B,UAAW,cAAc,OAAOF,EAAU,MAAQ,OAAQ,GAAG,EAC7D,YAAa,cAAc,OAAOA,EAAU,MAAQ,OAAQ,GAAG,CAChE,EAAEA,EAAU,QAAU,OAAQ,GAAG,QAAQ4B,EAAQb,GAAOW,EAAQ,IAAK,GAAG,CAAC,EAEtE7B,EAAQD,EAAW8C,EAAcC,EACjCC,EAAYP,EAAoBjC,EAAcA,EAAc,GAAIP,CAAK,EAAGuC,EAAU,KAAK,EAAIvC,EAC/F,OAAoBzL,EAAM,cAAc,OAAQ,CAC9C,UAAWqO,EACX,MAAOG,EACP,IAAKhB,EACL,YAAa,SAAqBlB,EAAG,CACnC,OAAOwB,EAAaxB,EAAGkB,CAAK,CAC7B,EACD,aAAc,SAAsBlB,EAAG,CACrC,OAAOwB,EAAaxB,EAAGkB,CAAK,CACpC,CACK,EAAEW,CAAS,CAChB,CAAG,EACD,OAAoBnO,EAAM,cAAc,MAAO,CAC7C,UAAWG,CACZ,EAAEoN,CAAQ,CACb,ECjDIkB,GAAsB,SAAUC,EAAkB,CACpDC,GAAUF,EAAQC,CAAgB,EAElC,IAAIE,EAASxE,GAAaqE,CAAM,EAEhC,SAASA,GAAS,CAChB,IAAII,EAEJ,OAAAC,GAAgB,KAAML,CAAM,EAE5BI,EAAQD,EAAO,MAAM,KAAM,SAAS,EACpCC,EAAM,MAAQ,CACZ,aAAc,EACf,EAEDA,EAAM,aAAe,SAAUE,EAAM,CACnCF,EAAM,OAASE,CAChB,EAEDF,EAAM,cAAgB,UAAY,CAC5B,SAAS,gBAAkBA,EAAM,QACnCA,EAAM,cAAc,EAAI,CAE3B,EAEDA,EAAM,gBAAkB,SAAUvC,EAAG,CAGnCA,EAAE,eAAc,EAEhBuC,EAAM,MAAO,CACd,EAEDA,EAAM,WAAa,UAAY,CAC7BA,EAAM,cAAc,EAAK,CAC1B,EAEDA,EAAM,cAAgB,UAAY,CAChCA,EAAM,cAAc,EAAK,CAC1B,EAEMA,CACX,CAEE,OAAAG,GAAaP,EAAQ,CAAC,CACpB,IAAK,oBACL,MAAO,UAA6B,CAGlC,KAAK,kBAAoBQ,GAAiB,SAAU,UAAW,KAAK,aAAa,CACvF,CACA,EAAK,CACD,IAAK,uBACL,MAAO,UAAgC,CACjC,KAAK,mBACP,KAAK,kBAAkB,OAAQ,CAEvC,CACA,EAAK,CACD,IAAK,gBACL,MAAO,SAAuBnH,EAAS,CACrC,KAAK,SAAS,CACZ,aAAcA,CACtB,CAAO,CACP,CACA,EAAK,CACD,IAAK,aACL,MAAO,UAAsB,CAC3B,KAAK,cAAc,EAAI,EACvB,KAAK,MAAO,CAClB,CACA,EAAK,CACD,IAAK,QACL,MAAO,UAAiB,CACtB,KAAK,OAAO,MAAO,CACzB,CACA,EAAK,CACD,IAAK,OACL,MAAO,UAAgB,CACrB,KAAK,OAAO,KAAM,CACxB,CACA,EAAK,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,IAAIuD,EAAMC,EAEN4D,EAAc,KAAK,MACnBjC,EAAYiC,EAAY,UACxB1D,EAAW0D,EAAY,SACvBtD,EAAUsD,EAAY,QACtBvD,EAASuD,EAAY,OACrBzD,EAAQyD,EAAY,MACpBrN,EAAWqN,EAAY,SACvBvC,EAAMuC,EAAY,IAClBtC,EAAMsC,EAAY,IAClBpP,EAAQoP,EAAY,MACpBC,EAAWD,EAAY,SACvBE,EAAYF,EAAY,UACxBG,EAAiBH,EAAY,eAC7BI,EAAyBJ,EAAY,uBACrCK,EAAYC,GAAyBN,EAAa,CAAC,YAAa,WAAY,UAAW,SAAU,QAAS,WAAY,MAAO,MAAO,QAAS,WAAY,YAAa,iBAAkB,wBAAwB,CAAC,EAEjN/O,EAAYyN,EAAW,KAAK,MAAM,UAAW9B,EAAgB,CAAE,EAAE,GAAG,OAAOmB,EAAW,uBAAuB,EAAG,KAAK,MAAM,YAAY,CAAC,EACxIwC,EAAgBjE,GAAYH,EAAO,CAAA,EAAIS,EAAgBT,EAAMO,EAAU,MAAQ,SAAU,GAAG,OAAOD,EAAQ,GAAG,CAAC,EAAGG,EAAgBT,EAAMO,EAAU,SAAW,MAAO,MAAM,EAAGE,EAAgBT,EAAM,YAAaO,EAAU,KAAO,kBAAkB,EAAGP,IAASC,EAAQ,CAAA,EAAIQ,EAAgBR,EAAOM,EAAU,QAAU,OAAQ,GAAG,OAAOD,EAAQ,GAAG,CAAC,EAAGG,EAAgBR,EAAOM,EAAU,OAAS,QAAS,MAAM,EAAGE,EAAgBR,EAAO,YAAa,cAAc,OAAOM,EAAU,IAAM,IAAK,MAAM,CAAC,EAAGN,GAE3eS,EAAUC,EAAcA,EAAc,CAAA,EAAIP,CAAK,EAAGgE,CAAa,EAE/DC,EAAiBP,GAAY,GAE7BtN,GAAYsN,IAAa,QAC3BO,EAAiB,MAGnB,IAAIC,EAEJ,OAAIL,IACFK,EAAgBL,EAAuBxP,CAAK,GAG1BE,EAAM,cAAc,MAAO4P,EAAS,CACtD,IAAK,KAAK,aACV,SAAUF,CACX,EAAEH,EAAW,CACZ,UAAWpP,EACX,MAAO4L,EACP,OAAQ,KAAK,WACb,UAAW,KAAK,cAChB,YAAa,KAAK,gBAElB,KAAM,SACN,gBAAiBY,EACjB,gBAAiBC,EACjB,gBAAiB9M,EACjB,gBAAiB,CAAC,CAAC+B,EACnB,aAAcuN,EACd,kBAAmBC,EACnB,iBAAkBM,CAC1B,CAAO,CAAC,CACR,CACA,CAAG,CAAC,EAEKlB,CACT,EAAEzO,EAAM,SAAS,ECrJb6P,EAAU,CAIZ,UAAW,EAKX,UAAW,EAKX,IAAK,EAKL,WAAY,GAKZ,MAAO,GAKP,MAAO,GAKP,KAAM,GAKN,IAAK,GAKL,MAAO,GAKP,UAAW,GAKX,IAAK,GAKL,MAAO,GAKP,QAAS,GAKT,UAAW,GAKX,IAAK,GAKL,KAAM,GAKN,KAAM,GAKN,GAAI,GAKJ,MAAO,GAKP,KAAM,GAKN,aAAc,GAKd,OAAQ,GAKR,OAAQ,GAKR,KAAM,GAKN,IAAK,GAKL,IAAK,GAKL,MAAO,GAKP,KAAM,GAKN,KAAM,GAKN,IAAK,GAKL,MAAO,GAKP,MAAO,GAKP,KAAM,GAKN,cAAe,GAKf,EAAG,GAKH,EAAG,GAKH,EAAG,GAKH,EAAG,GAKH,EAAG,GAKH,EAAG,GAKH,EAAG,GAKH,EAAG,GAKH,EAAG,GAKH,EAAG,GAKH,EAAG,GAKH,EAAG,GAKH,EAAG,GAKH,EAAG,GAKH,EAAG,GAKH,EAAG,GAKH,EAAG,GAKH,EAAG,GAKH,EAAG,GAKH,EAAG,GAKH,EAAG,GAKH,EAAG,GAKH,EAAG,GAKH,EAAG,GAKH,EAAG,GAKH,EAAG,GAKH,KAAM,GAKN,cAAe,GAKf,aAAc,GAKd,SAAU,GAKV,QAAS,GAKT,QAAS,GAKT,UAAW,GAKX,SAAU,IAKV,SAAU,IAKV,QAAS,IAKT,UAAW,IAKX,UAAW,IAKX,SAAU,IAKV,aAAc,IAKd,SAAU,IAKV,UAAW,IAKX,WAAY,IAKZ,aAAc,IAKd,GAAI,IAKJ,GAAI,IAKJ,GAAI,IAKJ,GAAI,IAKJ,GAAI,IAKJ,GAAI,IAKJ,GAAI,IAKJ,GAAI,IAKJ,GAAI,IAKJ,IAAK,IAKL,IAAK,IAKL,IAAK,IAKL,QAAS,IAKT,UAAW,IAKX,KAAM,IAKN,OAAQ,IAKR,MAAO,IAKP,OAAQ,IAKR,MAAO,IAKP,WAAY,IAKZ,aAAc,IAKd,oBAAqB,IAKrB,UAAW,IAKX,qBAAsB,IAKtB,QAAS,IAKT,YAAa,IAKb,QAAS,IAMT,wBAAyB,SAAiCvD,EAAG,CAC3D,IAAIwD,EAAUxD,EAAE,QAEhB,GAAIA,EAAE,QAAU,CAACA,EAAE,SAAWA,EAAE,SAChCwD,GAAWD,EAAQ,IAAMC,GAAWD,EAAQ,IAC1C,MAAO,GAKT,OAAQC,EAAO,CACb,KAAKD,EAAQ,IACb,KAAKA,EAAQ,UACb,KAAKA,EAAQ,aACb,KAAKA,EAAQ,KACb,KAAKA,EAAQ,KACb,KAAKA,EAAQ,IACb,KAAKA,EAAQ,IACb,KAAKA,EAAQ,KACb,KAAKA,EAAQ,OACb,KAAKA,EAAQ,KACb,KAAKA,EAAQ,YACb,KAAKA,EAAQ,KACb,KAAKA,EAAQ,QACb,KAAKA,EAAQ,WACb,KAAKA,EAAQ,UACb,KAAKA,EAAQ,QACb,KAAKA,EAAQ,MACb,KAAKA,EAAQ,aACb,KAAKA,EAAQ,MACb,KAAKA,EAAQ,MACb,KAAKA,EAAQ,GACb,KAAKA,EAAQ,QACb,KAAKA,EAAQ,cACX,MAAO,GAET,QACE,MAAO,EACf,CACG,EAKD,eAAgB,SAAwBC,EAAS,CAc/C,GAbIA,GAAWD,EAAQ,MAAQC,GAAWD,EAAQ,MAI9CC,GAAWD,EAAQ,UAAYC,GAAWD,EAAQ,cAIlDC,GAAWD,EAAQ,GAAKC,GAAWD,EAAQ,GAK3C,OAAO,UAAU,UAAU,QAAQ,QAAQ,IAAM,IAAMC,IAAY,EACrE,MAAO,GAGT,OAAQA,EAAO,CACb,KAAKD,EAAQ,MACb,KAAKA,EAAQ,cACb,KAAKA,EAAQ,SACb,KAAKA,EAAQ,UACb,KAAKA,EAAQ,WACb,KAAKA,EAAQ,aACb,KAAKA,EAAQ,UACb,KAAKA,EAAQ,KACb,KAAKA,EAAQ,OACb,KAAKA,EAAQ,MACb,KAAKA,EAAQ,OACb,KAAKA,EAAQ,MACb,KAAKA,EAAQ,WACb,KAAKA,EAAQ,aACb,KAAKA,EAAQ,oBACb,KAAKA,EAAQ,UACb,KAAKA,EAAQ,qBACX,MAAO,GAET,QACE,MAAO,EACf,CACA,CACA,EC1mBO,SAASE,GAAkB,EAAGC,EAAS,CAC5C,GAAI,CACF,OAAO,OAAO,KAAKA,CAAO,EAAE,KAAK,SAAU/F,EAAK,CAC9C,OAAO,EAAE,SAAWgG,GAAW,YAACD,EAAQ/F,CAAG,CAAC,CAClD,CAAK,CACF,MAAe,CACd,MAAO,EACX,CACA,CACO,SAASiG,GAAkBpQ,EAAOuL,EAAM,CAC7C,IAAIsB,EAAMtB,EAAK,IACXuB,EAAMvB,EAAK,IACf,OAAOvL,EAAQ6M,GAAO7M,EAAQ8M,CAChC,CACO,SAASuD,GAAgB,EAAG,CACjC,OAAO,EAAE,QAAQ,OAAS,GAAK,EAAE,KAAK,YAAW,IAAO,YAAc,EAAE,QAAQ,OAAS,CAC3F,CACO,SAASC,GAAgBC,EAAK/E,EAAO,CAC1C,IAAIkB,EAAQlB,EAAM,MACdoB,EAAOpB,EAAM,KACbqB,EAAMrB,EAAM,IACZsB,EAAMtB,EAAM,IACZuB,EAAS,OAAO,KAAKL,CAAK,EAAE,IAAI,UAAU,EAE9C,GAAIE,IAAS,KAAM,CACjB,IAAI4D,EAAU,KAAK,IAAI,GAAIC,GAAa7D,CAAI,CAAC,EACzC8D,EAAW,KAAK,OAAO5D,EAAM0D,EAAU3D,EAAM2D,IAAY5D,EAAO4D,EAAQ,EACxEG,EAAQ,KAAK,KAAKJ,EAAM1D,GAAOD,EAAM8D,CAAQ,EAC7CE,EAAc,KAAK,MAAMD,CAAK,EAAI/D,EAAOC,EAC7CE,EAAO,KAAK6D,CAAW,CAC3B,CAEE,IAAIC,EAAQ9D,EAAO,IAAI,SAAUW,EAAO,CACtC,OAAO,KAAK,IAAI6C,EAAM7C,CAAK,CAC/B,CAAG,EACD,OAAOX,EAAO8D,EAAM,QAAQ,KAAK,IAAI,MAAM,KAAMC,GAAmBD,CAAK,CAAC,CAAC,CAAC,CAC9E,CACO,SAASJ,GAAa7D,EAAM,CACjC,IAAImE,EAAanE,EAAK,SAAU,EAC5BoE,EAAY,EAEhB,OAAID,EAAW,QAAQ,GAAG,GAAK,IAC7BC,EAAYD,EAAW,OAASA,EAAW,QAAQ,GAAG,EAAI,GAGrDC,CACT,CACO,SAASC,GAAiBvF,EAAUc,EAAG,CAC5C,OAAOd,EAAWc,EAAE,QAAUA,EAAE,KAClC,CACO,SAAS0E,GAAiBxF,EAAUc,EAAG,CAC5C,OAAOd,EAAWc,EAAE,QAAQ,CAAC,EAAE,QAAUA,EAAE,QAAQ,CAAC,EAAE,KACxD,CACO,SAAS2E,GAAwBzF,EAAU0F,EAAQ,CACxD,IAAIC,EAASD,EAAO,sBAAuB,EAC3C,OAAO1F,EAAW2F,EAAO,IAAMA,EAAO,OAAS,GAAM,OAAO,YAAcA,EAAO,KAAOA,EAAO,MAAQ,EACzG,CACO,SAASC,GAAmBf,EAAKgB,EAAO,CAC7C,IAAIzE,EAAMyE,EAAM,IACZ1E,EAAM0E,EAAM,IAEhB,OAAIhB,GAAO1D,EACFA,EAGL0D,GAAOzD,EACFA,EAGFyD,CACT,CACO,SAASiB,GAAqBjB,EAAKjF,EAAO,CAC/C,IAAIsB,EAAOtB,EAAM,KACbmG,EAAe,SAASnB,GAAgBC,EAAKjF,CAAK,CAAC,EAAIgF,GAAgBC,EAAKjF,CAAK,EAAI,EAEzF,OAAOsB,IAAS,KAAO6E,EAAe,WAAWA,EAAa,QAAQhB,GAAa7D,CAAI,CAAC,CAAC,CAC3F,CACO,SAAS8E,GAAW,EAAG,CAC5B,EAAE,gBAAiB,EACnB,EAAE,eAAgB,CACpB,CACO,SAASC,GAAmBC,EAAM5R,EAAOsL,EAAO,CACrD,IAAIuG,EAAa,CACf,SAAU,SAAkB7E,EAAGC,EAAG,CAChC,OAAOD,EAAIC,CACZ,EACD,SAAU,SAAkBD,EAAGC,EAAG,CAChC,OAAOD,EAAIC,CACjB,CACG,EACG6E,EAAaD,EAAWD,CAAI,EAAE,OAAO,KAAKtG,EAAM,KAAK,EAAE,QAAQ,KAAK,UAAUtL,CAAK,CAAC,EAAG,CAAC,EACxF+R,EAAW,OAAO,KAAKzG,EAAM,KAAK,EAAEwG,CAAU,EAElD,OAAIxG,EAAM,KACDuG,EAAWD,CAAI,EAAE5R,EAAOsL,EAAM,IAAI,EAGrC,OAAO,KAAKA,EAAM,KAAK,EAAE,QAAYA,EAAM,MAAMyG,CAAQ,EACtDzG,EAAM,MAAMyG,CAAQ,EAGtB/R,CACT,CACO,SAASgS,GAAwB,EAAGtG,EAAUI,EAAS,CAC5D,IAAImG,EAAW,WACXC,EAAW,WACX/G,EAAS8G,EAEb,OAAQ,EAAE,QAAO,CACf,KAAKjC,EAAQ,GACX7E,EAASO,GAAYI,EAAUoG,EAAWD,EAC1C,MAEF,KAAKjC,EAAQ,MACX7E,EAAS,CAACO,GAAYI,EAAUoG,EAAWD,EAC3C,MAEF,KAAKjC,EAAQ,KACX7E,EAASO,GAAYI,EAAUmG,EAAWC,EAC1C,MAEF,KAAKlC,EAAQ,KACX7E,EAAS,CAACO,GAAYI,EAAUmG,EAAWC,EAC3C,MAEF,KAAKlC,EAAQ,IACX,OAAO,SAAUhQ,EAAOsL,EAAO,CAC7B,OAAOA,EAAM,GACd,EAEH,KAAK0E,EAAQ,KACX,OAAO,SAAUhQ,EAAOsL,EAAO,CAC7B,OAAOA,EAAM,GACd,EAEH,KAAK0E,EAAQ,QACX,OAAO,SAAUhQ,EAAOsL,EAAO,CAC7B,OAAOtL,EAAQsL,EAAM,KAAO,CAC7B,EAEH,KAAK0E,EAAQ,UACX,OAAO,SAAUhQ,EAAOsL,EAAO,CAC7B,OAAOtL,EAAQsL,EAAM,KAAO,CAC7B,EAEH,QACE,MACN,CAEE,OAAO,SAAUtL,EAAOsL,EAAO,CAC7B,OAAOqG,GAAmBxG,EAAQnL,EAAOsL,CAAK,CAC/C,CACH,CCtIA,SAAS6G,IAAO,CAAA,CAED,SAASC,GAAaC,EAAW,CAC9C,IAAItP,EAGJ,OAAOA,EAAkB,SAAUuP,EAAY,CAC7CzD,GAAU0D,EAAmBD,CAAU,EAEvC,IAAIxD,EAASxE,GAAaiI,CAAiB,EAE3C,SAASA,EAAkBjH,EAAO,CAChC,IAAIyD,EAEJC,GAAgB,KAAMuD,CAAiB,EAEvCxD,EAAQD,EAAO,KAAK,KAAMxD,CAAK,EAE/ByD,EAAM,OAAS,SAAUvC,EAAGgG,EAAU,CACpC,IAAIC,EAAID,EACJpD,EAAcL,EAAM,MACpB2D,EAAiBtD,EAAY,eAC7BuD,EAAavD,EAAY,SACzBwD,EAAS7D,EAAM,MAAM,OACrB/O,EAAQ0S,GAAkB3D,EAAM,iBAAmBA,EAAM,iBAAiB0D,CAAC,GAAK,CAAA,EAAK,CAAE,EACvFI,EAAUC,GAAwBtG,EAAGuC,EAAM,WAAW,EAQ1D,GAPAA,EAAM,UAAY2D,GAAkBE,EAAO,QAAU,GAAK,CAACC,GAAW,CAAC7S,EAAM,IAAI,SAAU+S,EAAG3N,EAAG,CAC/F,IAAI5E,EAAK4E,EAAqB,GAAjB2N,GAAKH,EAAOxN,CAAC,EAC1B,OAAOA,IAAMpF,EAAM,OAAS,EAAI+S,GAAKH,EAAOxN,CAAC,EAAI5E,CAC3D,CAAS,EAAE,KAAK,SAAUwS,EAAG,CACnB,MAAO,CAACA,CAClB,CAAS,EAEGjE,EAAM,UACRA,EAAM,WAAa0D,EACnB1D,EAAM,YAAc+B,GAAmB8B,CAAM,MACxC,CACL,GAAI,CAACC,EACH9D,EAAM,WAAa,MACd,CACL,IAAIkE,EAAiBC,GAA8BP,EAAYnG,EAAE,MAAM,EACvEuC,EAAM,WAAa0D,EAAIQ,EACvBR,EAAIQ,CAChB,CAEUlE,EAAM,QAAQ0D,CAAC,CACzB,CACO,EAED1D,EAAM,YAAc,SAAUvC,EAAG,CAC/B,GAAIA,EAAE,SAAW,EAIjB,CAAAuC,EAAM,qBAAsB,EAE5B,IAAI4D,EAAa5D,EAAM,MAAM,SACzByD,EAAWW,GAAuBR,EAAYnG,CAAC,EAEnDuC,EAAM,OAAOvC,EAAGgG,CAAQ,EAExBzD,EAAM,uBAAwB,EAC/B,EAEDA,EAAM,aAAe,SAAUvC,EAAG,CAChC,GAAI4G,CAAAA,GAAsB5G,CAAC,EAC3B,KAAImG,EAAa5D,EAAM,MAAM,SACzByD,EAAWa,GAAuBV,EAAYnG,CAAC,EAEnDuC,EAAM,OAAOvC,EAAGgG,CAAQ,EAExBzD,EAAM,uBAAwB,EAE9BuE,GAAiB9G,CAAC,EACnB,EAEDuC,EAAM,QAAU,SAAUvC,EAAG,CAC3B,IAAI+G,EAAexE,EAAM,MACrByE,EAAUD,EAAa,QACvB7H,EAAW6H,EAAa,SAE5B,GAAIT,GAAwBtG,EAAGuC,EAAM,WAAW,GAAK,CAACA,EAAM,UAAW,CACrE,IAAIkE,EAAiBC,GAA8BxH,EAAUc,EAAE,MAAM,EACrEuC,EAAM,WAAa,EAEnBA,EAAM,QAAQkE,CAAc,EAE5BK,GAAiB9G,CAAC,EAEdgH,GACFA,EAAQhH,CAAC,CAErB,CACO,EAEDuC,EAAM,OAAS,SAAUvC,EAAG,CAC1B,IAAIiH,EAAS1E,EAAM,MAAM,OAEpBA,EAAM,WACTA,EAAM,MAAO,EAGX0E,GACFA,EAAOjH,CAAC,CAEX,EAEDuC,EAAM,UAAY,UAAY,CACxBA,EAAM,YAAYA,EAAM,oBAAoB,GAC9CA,EAAM,YAAYA,EAAM,oBAAoB,EAAE,WAAY,CAE7D,EAEDA,EAAM,YAAc,SAAUvC,EAAG,CAC/B,GAAI,CAACuC,EAAM,UAAW,CACpBA,EAAM,MAAO,EAEb,MACV,CAEQ,IAAIyD,EAAWW,GAAuBpE,EAAM,MAAM,SAAUvC,CAAC,EAE7DuC,EAAM,OAAOvC,EAAGgG,EAAWzD,EAAM,WAAYA,EAAM,UAAWA,EAAM,WAAW,CAChF,EAEDA,EAAM,YAAc,SAAUvC,EAAG,CAC/B,GAAI4G,GAAsB5G,CAAC,GAAK,CAACuC,EAAM,UAAW,CAChDA,EAAM,MAAO,EAEb,MACV,CAEQ,IAAIyD,EAAWa,GAAuBtE,EAAM,MAAM,SAAUvC,CAAC,EAE7DuC,EAAM,OAAOvC,EAAGgG,EAAWzD,EAAM,WAAYA,EAAM,UAAWA,EAAM,WAAW,CAChF,EAEDA,EAAM,UAAY,SAAUvC,EAAG,CACzBuC,EAAM,WAAa+D,GAAwBtG,EAAGuC,EAAM,WAAW,GACjEA,EAAM,WAAWvC,CAAC,CAErB,EAEDuC,EAAM,iBAAmB,SAAUvC,EAAGxM,EAAO,CAC3CwM,EAAE,gBAAiB,EAEnBuC,EAAM,SAAS,CACb,MAAO/O,CACjB,CAAS,EAGD+O,EAAM,SAAS,CACb,MAAO/O,CACjB,EAAW,UAAY,CACb,OAAO+O,EAAM,MAAM,EAAI,CACjC,CAAS,CACF,EAEDA,EAAM,WAAa,SAAU2E,EAAQ,CACnC3E,EAAM,UAAY2E,CACnB,EAED,IAAI9G,EAAOtB,EAAM,KACbwB,EAAMxB,EAAM,IACZuB,EAAMvB,EAAM,IACZqI,EAAkB,SAAS7G,EAAMD,CAAG,GAAKC,EAAMD,GAAOD,IAAS,EAAI,GAEvE7B,OAAAA,GAAQ6B,GAAQ,KAAK,MAAMA,CAAI,IAAMA,EAAO+G,EAAkB,GAAM,8BAA8B,OAAO7G,EAAMD,EAAK,0CAA0C,EAAE,OAAOD,EAAM,GAAG,CAAC,EACjLmC,EAAM,YAAc,CAAE,EACfA,CACb,CAEI,OAAAG,GAAaqD,EAAmB,CAAC,CAC/B,IAAK,oBACL,MAAO,UAA6B,CAElC,KAAK,SAAW,KAAK,WAAa,KAAK,UAAU,cACjD,IAAIqB,EAAe,KAAK,MACpBC,EAAYD,EAAa,UACzB7R,EAAW6R,EAAa,SAExBC,GAAa,CAAC9R,GAChB,KAAK,MAAO,CAEtB,CACA,EAAO,CACD,IAAK,uBACL,MAAO,UAAgC,CACjC+R,GAAKC,GAAgBxB,EAAkB,SAAS,EAAG,uBAAwB,IAAI,GAAGuB,GAAKC,GAAgBxB,EAAkB,SAAS,EAAG,uBAAwB,IAAI,EAAE,KAAK,IAAI,EAChL,KAAK,qBAAsB,CACnC,CACA,EAAO,CACD,IAAK,iBACL,MAAO,UAA0B,CAC/B,IAAImB,EAAS,KAAK,UACdM,EAAe,KAAK,MACpBtI,EAAWsI,EAAa,SACxBlI,EAAUkI,EAAa,QACvBC,EAAOP,EAAO,sBAAuB,EAEzC,OAAIhI,EACKI,EAAUmI,EAAK,OAASA,EAAK,IAG/B,OAAO,aAAenI,EAAUmI,EAAK,MAAQA,EAAK,KACjE,CACA,EAAO,CACD,IAAK,kBACL,MAAO,UAA2B,CAChC,IAAIP,EAAS,KAAK,UAElB,GAAI,CAACA,EACH,MAAO,GAGT,IAAIrC,EAASqC,EAAO,sBAAuB,EAC3C,OAAO,KAAK,MAAM,SAAWrC,EAAO,OAASA,EAAO,KAC5D,CACA,EAAO,CACD,IAAK,yBACL,MAAO,UAAkC,CAEvC,KAAK,oBAAsBlC,GAAiB,KAAK,SAAU,YAAa,KAAK,WAAW,EACxF,KAAK,kBAAoBA,GAAiB,KAAK,SAAU,WAAY,KAAK,KAAK,CACvF,CACA,EAAO,CACD,IAAK,yBACL,MAAO,UAAkC,CACvC,KAAK,oBAAsBA,GAAiB,KAAK,SAAU,YAAa,KAAK,WAAW,EACxF,KAAK,kBAAoBA,GAAiB,KAAK,SAAU,UAAW,KAAK,KAAK,CACtF,CACA,EAAO,CACD,IAAK,uBACL,MAAO,UAAgC,CAErC,KAAK,qBAAuB,KAAK,oBAAoB,OAAQ,EAC7D,KAAK,mBAAqB,KAAK,kBAAkB,OAAQ,EACzD,KAAK,qBAAuB,KAAK,oBAAoB,OAAQ,EAC7D,KAAK,mBAAqB,KAAK,kBAAkB,OAAQ,CAEjE,CACA,EAAO,CACD,IAAK,QACL,MAAO,UAAiB,CACtB,IAAI+E,EAEA,KAAK,MAAM,WAIdA,EAAqB,KAAK,YAAY,CAAC,KAAO,MAAQA,IAAuB,QAAkBA,EAAmB,MAAO,CAClI,CACA,EAAO,CACD,IAAK,OACL,MAAO,UAAgB,CACrB,IAAIC,EAAS,KAET,KAAK,MAAM,UAIf,OAAO,KAAK,KAAK,WAAW,EAAE,QAAQ,SAAUhK,EAAK,CACnD,IAAIiK,EAAuBC,GAE1BD,EAAwBD,EAAO,YAAYhK,CAAG,KAAO,MAAQiK,IAA0B,SAAmBC,EAAyBD,EAAsB,QAAU,MAAQC,IAA2B,QAAkBA,EAAuB,KAAKD,CAAqB,CACpR,CAAS,CACT,CACA,EAAO,CACD,IAAK,YACL,MAAO,SAAmBvI,EAAQ,CAChC,IAAIyI,EAAe,KAAK,MACpB5I,EAAW4I,EAAa,SACxBzH,EAAMyH,EAAa,IACnBxH,EAAMwH,EAAa,IACnBC,EAAQ,KAAK,IAAI,KAAK,IAAI1I,EAAQ,CAAC,EAAI,KAAK,iBAAiB,EAC7D7L,EAAQ0L,GAAY,EAAI6I,IAAUzH,EAAMD,GAAOA,EAAM0H,GAASzH,EAAMD,GAAOA,EAC/E,OAAO7M,CACf,CACA,EAAO,CACD,IAAK,iBACL,MAAO,SAAwBwS,EAAU,CACvC,IAAIgC,EAAO,KAAK,MAAM,QAAU,GAAK,EACjCC,EAAcD,GAAQhC,EAAW,KAAK,eAAc,GACpDkC,EAAY,KAAK,eAAe,KAAK,UAAUD,CAAW,CAAC,EAC/D,OAAOC,CACf,CACA,EAAO,CACD,IAAK,aACL,MAAO,SAAoB1U,EAAO,CAChC,IAAI2U,EAAe,KAAK,MACpB9H,EAAM8H,EAAa,IACnB7H,EAAM6H,EAAa,IACnBJ,GAASvU,EAAQ6M,IAAQC,EAAMD,GACnC,OAAO,KAAK,IAAI,EAAG0H,EAAQ,GAAG,CACtC,CACA,EAAO,CACD,IAAK,aACL,MAAO,SAAoBK,EAAOxD,EAAQ,CACxC,KAAK,YAAYwD,CAAK,EAAIxD,CAClC,CACA,EAAO,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,IAAIzD,EAEAkH,EAAe,KAAK,MACpB1H,EAAY0H,EAAa,UACzBxU,EAAYwU,EAAa,UACzBnI,EAAQmI,EAAa,MACrBlI,EAAOkI,EAAa,KACpBjI,EAAOiI,EAAa,KACpBpJ,EAAWoJ,EAAa,SACxB9S,EAAW8S,EAAa,SACxBnJ,EAAWmJ,EAAa,SACxB/I,EAAU+I,EAAa,QACvBhI,EAAMgI,EAAa,IACnB/H,EAAM+H,EAAa,IACnB/T,EAAW+T,EAAa,SACxBC,EAAoBD,EAAa,kBACjClJ,EAAQkJ,EAAa,MACrBE,EAAYF,EAAa,UACzBvH,EAAWuH,EAAa,SACxBtH,EAAiBsH,EAAa,eAE9BG,EAAYlB,GAAKC,GAAgBxB,EAAkB,SAAS,EAAG,SAAU,IAAI,EAAE,KAAK,IAAI,EACxF0C,EAASD,EAAU,OACnB9E,EAAU8E,EAAU,QAEpBE,EAAkBpH,EAAWX,GAAYQ,EAAc,CAAA,EAAI3B,EAAgB2B,EAAa,GAAG,OAAOR,EAAW,aAAa,EAAG,OAAO,KAAKT,CAAK,EAAE,MAAM,EAAGV,EAAgB2B,EAAa,GAAG,OAAOR,EAAW,WAAW,EAAGpL,CAAQ,EAAGiK,EAAgB2B,EAAa,GAAG,OAAOR,EAAW,WAAW,EAAGzB,CAAQ,EAAGM,EAAgB2B,EAAatN,EAAWA,CAAS,EAAGsN,EAAa,EACpX,OAAoBzN,EAAM,cAAc,MAAO,CAC7C,IAAK,KAAK,WACV,UAAWgV,EACX,aAAcnT,EAAWoQ,GAAO,KAAK,aACrC,YAAapQ,EAAWoQ,GAAO,KAAK,YACpC,UAAWpQ,EAAWoQ,GAAO,KAAK,UAClC,UAAWpQ,EAAWoQ,GAAO,KAAK,UAClC,QAASpQ,EAAWoQ,GAAO,KAAK,QAChC,OAAQpQ,EAAWoQ,GAAO,KAAK,OAC/B,MAAOxG,CACjB,EAAwBzL,EAAM,cAAc,MAAO,CACzC,UAAW,GAAG,OAAOiN,EAAW,OAAO,EACvC,MAAOjB,EAAcA,EAAc,CAAA,EAAI4I,CAAiB,EAAGC,CAAS,CACrE,CAAA,EAAGE,EAAqB/U,EAAM,cAAcgN,GAAO,CAClD,UAAWC,EACX,SAAUzB,EACV,QAASI,EACT,MAAOY,EACP,KAAMC,EACN,KAAMC,EACN,SAAUnB,EACV,WAAY,KAAK,cAAe,EAChC,WAAY,KAAK,cAAe,EAChC,IAAKqB,EACL,IAAKD,EACL,SAAUS,EACV,eAAgBC,CACjB,CAAA,EAAG2C,EAAsBhQ,EAAM,cAAc6N,GAAO,CACnD,UAAW,GAAG,OAAOZ,EAAW,OAAO,EACvC,aAAcpL,EAAWoQ,GAAO,KAAK,iBACrC,SAAUzG,EACV,MAAOgB,EACP,SAAUjB,EACV,WAAY,KAAK,cAAe,EAChC,WAAY,KAAK,cAAe,EAChC,IAAKqB,EACL,IAAKD,EACL,QAASf,CACV,CAAA,EAAGhL,CAAQ,CACpB,CACA,CAAK,CAAC,EAEKyR,CACX,EAAIF,CAAS,EAAGtP,EAAG,YAAc,qBAAqB,OAAOsP,EAAU,YAAa,GAAG,EAAGtP,EAAG,aAAemJ,EAAcA,EAAc,CAAE,EAAEmG,EAAU,YAAY,EAAG,GAAI,CACrK,UAAW,YACX,UAAW,GACX,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,CAAE,EACT,OAAQ,SAAgB/G,EAAO,CAC7B,IAAIsJ,EAAQtJ,EAAM,MACdmE,EAAYC,GAAyBpE,EAAO,CAAC,OAAO,CAAC,EAIzD,OAFA,OAAOmE,EAAU,SAEbA,EAAU,QAAU,KACf,KAGWvP,EAAM,cAAcyO,GAAQmB,EAAS,CAAA,EAAIL,EAAW,CACtE,IAAKmF,CACb,CAAO,CAAC,CACH,EACD,eAAgBzC,GAChB,SAAUA,GACV,cAAeA,GACf,SAAU,GACV,SAAU,GACV,KAAM,GACN,SAAU,GACV,QAAS,GACT,WAAY,CAAC,CAAA,CAAE,EACf,YAAa,CAAC,CAAA,CAAE,EAChB,UAAW,CAAE,EACb,SAAU,CAAE,EACZ,eAAgB,CAAA,CACjB,CAAA,EAAGpP,CACN,CCjaA,IAAIoS,GAAsB,SAAUvG,EAAkB,CACpDC,GAAUsG,EAAQvG,CAAgB,EAElC,IAAIE,EAASxE,GAAa6K,CAAM,EAGhC,SAASA,EAAO7J,EAAO,CACrB,IAAIyD,EAEJC,GAAgB,KAAMmG,CAAM,EAE5BpG,EAAQD,EAAO,KAAK,KAAMxD,CAAK,EAE/ByD,EAAM,iBAAmB,SAAUyD,EAAU,CAC3C,MAAO,CAAE,CACV,EAEDzD,EAAM,MAAQ,SAAUqG,EAAO,CAC7B,IAAIC,EAAWtG,EAAM,MAAM,SAE3BA,EAAM,qBAAsB,GAExBsG,GAAYD,IACdrG,EAAM,MAAM,cAAcA,EAAM,SAAQ,CAAE,EAG5CA,EAAM,SAAS,CACb,SAAU,EAClB,CAAO,CACF,EAED,IAAIuG,EAAehK,EAAM,eAAiB,OAAYA,EAAM,aAAeA,EAAM,IAC7EtL,EAAQsL,EAAM,QAAU,OAAYA,EAAM,MAAQgK,EACtD,OAAAvG,EAAM,MAAQ,CACZ,MAAOA,EAAM,eAAe/O,CAAK,EACjC,SAAU,EACX,EACD+K,GAAQ,EAAE,sBAAuBO,GAAQ,sEAAsE,EAC/GP,GAAQ,EAAE,sBAAuBO,GAAQ,qEAAqE,EACvGyD,CACX,CASE,OAAAG,GAAaiG,EAAQ,CAAC,CACpB,IAAK,iBACL,MAAO,SAAwBnV,EAAO,CACpC,MAAO,EACb,CACA,EAAK,CACD,IAAK,aACL,MAAO,SAAoBA,EAAO,CAChC,MAAO,EACb,CACA,EAAK,CACD,IAAK,aACL,MAAO,SAAoB4U,EAAOW,EAAG,CAAA,CACzC,EAAK,CACD,IAAK,uBACL,MAAO,UAAgC,CAAA,CAC3C,EAAK,CACD,IAAK,qBACL,MAAO,SAA4BC,EAAWC,EAAW,CACvD,IAAIrG,EAAc,KAAK,MACnBvC,EAAMuC,EAAY,IAClBtC,EAAMsC,EAAY,IAClBpP,EAAQoP,EAAY,MACpB5N,EAAW4N,EAAY,SAE3B,GAAM,QAAS,KAAK,OAAS,QAAS,KAAK,MAI3C,KAAIsG,EAAW1V,IAAU,OAAYA,EAAQyV,EAAU,MACnDf,EAAY,KAAK,eAAegB,EAAU,KAAK,KAAK,EAEpDhB,IAAce,EAAU,QAK5B,KAAK,SAAS,CACZ,MAAOf,CACf,CAAO,EAEG,EAAE7H,IAAQ2I,EAAU,KAAO1I,IAAQ0I,EAAU,MAAQG,GAAwBD,EAAU,KAAK,KAAK,GACnGlU,EAASkT,CAAS,GAE1B,CACA,EAAK,CACD,IAAK,WACL,MAAO,SAAkB7Q,EAAO,CAC9B,IAAIyH,EAAQ,KAAK,MACbsK,EAAkB,EAAE,UAAWtK,GAC/BuK,EAAYhS,EAAM,MAAQ,KAAK,MAAM,IAAMqI,EAAcA,EAAc,CAAA,EAAIrI,CAAK,EAAG,CAAA,EAAI,CACzF,MAAO,KAAK,MAAM,GACnB,CAAA,EAAIA,EAED+R,GACF,KAAK,SAASC,CAAS,EAGzB,IAAIC,EAAeD,EAAU,MAC7BvK,EAAM,SAASwK,CAAY,CACjC,CACA,EAAK,CACD,IAAK,UACL,MAAO,SAAiBtD,EAAU,CAChC,KAAK,SAAS,CACZ,SAAU,EAClB,CAAO,EACD,IAAIlH,EAAQ,KAAK,MACbyK,EAAY,KAAK,SAAU,EAC/BzK,EAAM,eAAeyK,CAAS,EAC9B,IAAI/V,EAAQ,KAAK,eAAewS,CAAQ,EACxC,KAAK,WAAaxS,EAClB,KAAK,cAAgBwS,EACjBxS,IAAU+V,IACd,KAAK,qBAAuB,EAC5B,KAAK,SAAS,CACZ,MAAO/V,CACf,CAAO,EACP,CACA,EAAK,CACD,IAAK,SACL,MAAO,SAAgBwM,EAAGgG,EAAU,CAClCc,GAAiB9G,CAAC,EAClB,IAAIwJ,EAAW,KAAK,MAAM,MACtBhW,EAAQ,KAAK,eAAewS,CAAQ,EACpCxS,IAAUgW,GACd,KAAK,SAAS,CACZ,MAAOhW,CACf,CAAO,CACP,CACA,EAAK,CACD,IAAK,aACL,MAAO,SAAoBwM,EAAG,CAC5B,IAAI+G,EAAe,KAAK,MACpBzH,EAAUyH,EAAa,QACvB7H,EAAW6H,EAAa,SACxB0C,EAAeC,GAA8B1J,EAAGd,EAAUI,CAAO,EAErE,GAAImK,EAAc,CAChB3C,GAAiB9G,CAAC,EAClB,IAAI3I,EAAQ,KAAK,MACbmS,EAAWnS,EAAM,MACjBsS,EAAeF,EAAaD,EAAU,KAAK,KAAK,EAChDhW,EAAQ,KAAK,eAAemW,CAAY,EAC5C,GAAInW,IAAUgW,EAAU,OACxB,KAAK,SAAS,CACZ,MAAOhW,CACjB,CAAS,EACD,KAAK,MAAM,cAAcA,CAAK,EAC9B,KAAK,MAAO,CACpB,CACA,CACA,EAAK,CACD,IAAK,WACL,MAAO,UAAoB,CACzB,OAAO,KAAK,MAAM,KACxB,CACA,EAAK,CACD,IAAK,gBACL,MAAO,UAAyB,CAC9B,IAAIoW,EAAW,KAAK,MAAM,YAAc,KAAK,MAAM,IACnD,OAAO,KAAK,MAAM,MAAQA,EAAWA,EAAW,KAAK,MAAM,KACjE,CACA,EAAK,CACD,IAAK,gBACL,MAAO,UAAyB,CAC9B,OAAI,KAAK,MAAM,MAAQ,KAAK,MAAM,WACzB,KAAK,MAAM,WAGb,KAAK,MAAM,KACxB,CACA,EAAK,CACD,IAAK,iBACL,MAAO,SAAwB5V,EAAG,CAChC,IAAI6V,EAAY,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAAE,EAEtF,GAAI7V,IAAM,KACR,OAAO,KAGT,IAAI8V,EAAcpK,EAAcA,EAAc,CAAE,EAAE,KAAK,KAAK,EAAGmK,CAAS,EAEpE9F,EAAMgG,GAAyB/V,EAAG8V,CAAW,EACjD,OAAOE,GAA2BjG,EAAK+F,CAAW,CACxD,CACA,EAAK,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,IAAInC,EAAS,KAETP,EAAe,KAAK,MACpBzG,EAAYyG,EAAa,UACzBlI,EAAWkI,EAAa,SACxBnI,EAAWmI,EAAa,SACxB7R,EAAW6R,EAAa,SACxB6C,EAAoB7C,EAAa,kBACjC8C,EAAa9C,EAAa,WAC1B+C,EAAc/C,EAAa,YAC3BvE,EAAWuE,EAAa,SACxBgD,EAAqBhD,EAAa,mBAClCiD,EAA0BjD,EAAa,wBACvCkD,EAAkClD,EAAa,gCAC/C/G,EAAM+G,EAAa,IACnB9G,EAAM8G,EAAa,IACnBmD,EAAanD,EAAa,WAC1B9H,EAAU8H,EAAa,QACvBoD,EAAkBpD,EAAa,OAC/BqD,EAAc,KAAK,MACnBjX,EAAQiX,EAAY,MACpB5B,EAAW4B,EAAY,SACvBpL,EAAS,KAAK,WAAW7L,CAAK,EAC9BoR,EAAS4F,EAAgB,CAC3B,UAAW,GAAG,OAAO7J,EAAW,SAAS,EACzC,UAAWA,EACX,SAAUzB,EACV,OAAQG,EACR,MAAO7L,EACP,SAAUqV,EACV,SAAUtT,EACV,IAAK8K,EACL,IAAKC,EACL,QAAShB,EACT,MAAO,EACP,SAAUuD,EACV,UAAWuH,EACX,eAAgBC,EAChB,uBAAwBC,EACxB,MAAOH,EAAY,CAAC,GAAKA,EACzB,IAAK,SAAapB,EAAG,CACnB,OAAOpB,EAAO,WAAW,EAAGoB,CAAC,CACvC,CACA,CAAO,EACG2B,EAAcH,IAAe,OAAY,KAAK,WAAWA,CAAU,EAAI,EACvEI,EAAmBT,EAAW,CAAC,GAAKA,EACpCU,EAAqBlX,EAAM,cAAcmL,GAAO,CAClD,UAAW,GAAG,OAAO8B,EAAW,QAAQ,EACxC,SAAUzB,EACV,SAAUD,EACV,OAAQyL,EACR,QAASpL,EACT,OAAQD,EAASqL,EACjB,MAAOhL,EAAcA,EAAc,CAAA,EAAIuK,CAAiB,EAAGU,CAAgB,CACnF,CAAO,EACD,MAAO,CACL,OAAQC,EACR,QAAShG,CACV,CACP,CACA,CAAG,CAAC,EAEK+D,CACT,EAAEjV,EAAM,SAAS,EAEjB,MAAemX,GAAAjF,GAAa+C,EAAM,ECrQlC,IAAImC,GAAkB,SAAwB/L,EAAM,CAClD,IAAIvL,EAAQuL,EAAK,MACb6F,EAAS7F,EAAK,OACdqH,EAASrH,EAAK,OACdD,EAAQC,EAAK,MACbgM,EAAajM,EAAM,WACnBkM,EAAWlM,EAAM,SACjBmM,EAAY,OAAOD,CAAQ,EAC3BE,EAAanB,GAAyBvW,EAAOsL,CAAK,EAClDqM,EAAiBD,EAErB,MAAI,CAACH,GAAcnG,GAAU,MAAQwB,IAAW,SAC1CxB,EAAS,GAAKsG,GAAc9E,EAAOxB,EAAS,CAAC,EAAIqG,IACnDE,EAAiB/E,EAAOxB,EAAS,CAAC,EAAIqG,GAGpCrG,EAASwB,EAAO,OAAS,GAAK8E,GAAc9E,EAAOxB,EAAS,CAAC,EAAIqG,IACnEE,EAAiB/E,EAAOxB,EAAS,CAAC,EAAIqG,IAInCjB,GAA2BmB,EAAgBrM,CAAK,CACzD,EAEIsM,GAAqB,SAAUhJ,EAAkB,CACnDC,GAAU+I,EAAOhJ,CAAgB,EAEjC,IAAIE,EAASxE,GAAasN,CAAK,EAE/B,SAASA,EAAMtM,EAAO,CACpB,IAAIyD,EAEJC,GAAgB,KAAM4I,CAAK,EAE3B7I,EAAQD,EAAO,KAAK,KAAMxD,CAAK,EAE/ByD,EAAM,iBAAmB,SAAUyD,EAAU,CAC3C,IAAII,EAAS7D,EAAM,SAAU,EAEzB/O,EAAQ+O,EAAM,eAAeyD,CAAQ,EAErCqF,EAAe9I,EAAM,gBAAgB/O,CAAK,EAE1C4U,EAAQ7F,EAAM,mBAAmB/O,EAAO6X,CAAY,EAEpD9B,EAAYnD,EAAOgC,CAAK,EAC5B,GAAI5U,IAAU+V,EAAW,OAAO,KAEhC,IAAI+B,EAAahH,GAAmB8B,CAAM,EAE1C,OAAAkF,EAAWlD,CAAK,EAAI5U,EACb8X,CACR,EAED/I,EAAM,MAAQ,SAAUqG,EAAO,CAC7B,IAAIhE,EAASrC,EAAM,MAAM,OAEzBA,EAAM,qBAAsB,EAEvBqC,IACHrC,EAAM,UAAY,KAGhBqC,IAAW,MAAQgE,IACrBrG,EAAM,MAAM,cAAcA,EAAM,SAAQ,CAAE,EAG5CA,EAAM,SAAS,CACb,OAAQ,IAChB,CAAO,CACF,EAED,IAAIgJ,EAAQzM,EAAM,MACduB,EAAMvB,EAAM,IACZwB,EAAMxB,EAAM,IACZ0M,EAAe,MAAM,MAAM,OAAQlH,GAAmB,MAAMiH,EAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,UAAY,CAC3F,OAAOlL,CACb,CAAK,EACGyI,EAAe,iBAAkBhK,EAAQA,EAAM,aAAe0M,EAC9DhY,EAAQsL,EAAM,QAAU,OAAYA,EAAM,MAAQgK,EAClD1C,EAAS5S,EAAM,IAAI,SAAU,EAAGoF,EAAG,CACrC,OAAOkS,GAAgB,CACrB,MAAO,EACP,OAAQlS,EACR,MAAOkG,CACf,CAAO,CACP,CAAK,EACG2M,EAASrF,EAAO,CAAC,IAAM9F,EAAM,EAAI8F,EAAO,OAAS,EACrD,OAAA7D,EAAM,MAAQ,CACZ,OAAQ,KACR,OAAQkJ,EACR,OAAQrF,CACT,EACM7D,CACX,CASE,OAAAG,GAAa0I,EAAO,CAAC,CACnB,IAAK,iBACL,MAAO,SAAwB5X,EAAO,CACpC,MAAO,EACb,CACA,EAAK,CACD,IAAK,kBACL,MAAO,UAA2B,CAChC,MAAO,EACb,CACA,EAAK,CACD,IAAK,aACL,MAAO,SAAoBA,EAAO,CAChC,MAAO,EACb,CACA,EAAK,CACD,IAAK,aACL,MAAO,SAAoB4U,EAAOW,EAAG,CAAA,CACzC,EAAK,CACD,IAAK,uBACL,MAAO,UAAgC,CAAA,CAC3C,EAAK,CACD,IAAK,qBACL,MAAO,SAA4BC,EAAWC,EAAW,CACvD,IAAItB,EAAS,KAET/E,EAAc,KAAK,MACnB5N,EAAW4N,EAAY,SACvBpP,EAAQoP,EAAY,MACpBvC,EAAMuC,EAAY,IAClBtC,EAAMsC,EAAY,IAEtB,IAAM,QAAS,KAAK,OAAS,QAAS,KAAK,QAIvC,EAAAvC,IAAQ2I,EAAU,KAAO1I,IAAQ0I,EAAU,KAI/C,KAAI9O,EAAe1G,GAASyV,EAAU,OAEtC,GAAI/O,EAAa,KAAK,SAAUlG,EAAG,CACjC,OAAOmV,GAAwBnV,EAAG2T,EAAO,KAAK,CACtD,CAAO,EAAG,CACF,IAAI+D,EAAYxR,EAAa,IAAI,SAAUlG,EAAG,CAC5C,OAAO+V,GAAyB/V,EAAG2T,EAAO,KAAK,CACzD,CAAS,EACD3S,EAAS0W,CAAS,CAC1B,EACA,CACA,EAAK,CACD,IAAK,WACL,MAAO,SAAkBrU,EAAO,CAC9B,IAAIyH,EAAQ,KAAK,MACbsK,EAAkB,EAAE,UAAWtK,GAEnC,GAAIsK,EACF,KAAK,SAAS/R,CAAK,MACd,CACL,IAAIsU,EAAkB,CAAE,EACxB,CAAC,SAAU,QAAQ,EAAE,QAAQ,SAAUC,EAAM,CACvCvU,EAAMuU,CAAI,IAAM,SAClBD,EAAgBC,CAAI,EAAIvU,EAAMuU,CAAI,EAE9C,CAAS,EAEG,OAAO,KAAKD,CAAe,EAAE,QAC/B,KAAK,SAASA,CAAe,CAEvC,CAEM,IAAIE,EAAOnM,EAAcA,EAAc,CAAE,EAAE,KAAK,KAAK,EAAGrI,CAAK,EAEzDiS,EAAeuC,EAAK,OACxB/M,EAAM,SAASwK,CAAY,CACjC,CACA,EAAK,CACD,IAAK,UACL,MAAO,SAAiBtD,EAAU,CAChC,IAAIlH,EAAQ,KAAK,MACbzH,EAAQ,KAAK,MACb+O,EAAS,KAAK,SAAU,EAC5BtH,EAAM,eAAesH,CAAM,EAC3B,IAAI5S,EAAQ,KAAK,eAAewS,CAAQ,EACxC,KAAK,WAAaxS,EAClB,KAAK,cAAgBwS,EACrB,IAAIqF,EAAe,KAAK,gBAAgB7X,CAAK,EAC7C,KAAK,qBAAuB,KAAK,mBAAmBA,EAAO6X,CAAY,EACvE,KAAK,SAAS,CACZ,OAAQ,KAAK,qBACb,OAAQ,KAAK,oBACrB,CAAO,EACD,IAAI9B,EAAYnD,EAAO,KAAK,oBAAoB,EAChD,GAAI5S,IAAU+V,EAEd,KAAI+B,EAAahH,GAAmBjN,EAAM,MAAM,EAEhDiU,EAAW,KAAK,oBAAoB,EAAI9X,EACxC,KAAK,SAAS,CACZ,OAAQ8X,CAChB,CAAO,EACP,CACA,EAAK,CACD,IAAK,SACL,MAAO,SAAgBtL,EAAGgG,EAAU8F,EAAWC,EAAa,CAC1DjF,GAAiB9G,CAAC,EAClB,IAAI3I,EAAQ,KAAK,MACbyH,EAAQ,KAAK,MACbkN,EAAWlN,EAAM,KAAO,IACxBmN,EAAWnN,EAAM,KAAO,EAE5B,GAAIgN,EAAW,CACb,IAAII,EAAMpN,EAAM,SAAW,CAACkH,EAAWA,EACvCkG,EAAMpN,EAAM,QAAU,CAACoN,EAAMA,EAC7B,IAAI5L,EAAM0L,EAAW,KAAK,IAAI,MAAM,KAAM1H,GAAmByH,CAAW,CAAC,EACrE1L,EAAM4L,EAAW,KAAK,IAAI,MAAM,KAAM3H,GAAmByH,CAAW,CAAC,EACrEhE,EAAQ,KAAK,IAAI,KAAK,IAAImE,GAAO,KAAK,gBAAe,EAAK,KAAM7L,CAAG,EAAGC,CAAG,EACzEgL,EAAaS,EAAY,IAAI,SAAU/X,EAAG,CAC5C,OAAO,KAAK,MAAM,KAAK,IAAI,KAAK,IAAIA,EAAI+T,EAAOiE,CAAQ,EAAGC,CAAQ,CAAC,CAC7E,CAAS,EAEG5U,EAAM,OAAO,IAAI,SAAUmP,EAAG5N,EAAG,CACnC,OAAO4N,IAAM8E,EAAW1S,CAAC,CACnC,CAAS,EAAE,KAAK,SAAU4N,EAAG,CACnB,MAAO,CAACA,CAClB,CAAS,GACC,KAAK,SAAS,CACZ,OAAQ8E,CACpB,CAAW,EAGH,MACR,CAEM,IAAI9X,EAAQ,KAAK,eAAewS,CAAQ,EACpCwD,EAAWnS,EAAM,OAAOA,EAAM,MAAM,EACpC7D,IAAUgW,GACd,KAAK,OAAOhW,CAAK,CACvB,CACA,EAAK,CACD,IAAK,aACL,MAAO,SAAoBwM,EAAG,CAC5B,IAAI+G,EAAe,KAAK,MACpBzH,EAAUyH,EAAa,QACvB7H,EAAW6H,EAAa,SACxB0C,EAAeC,GAA8B1J,EAAGd,EAAUI,CAAO,EAErE,GAAImK,EAAc,CAChB3C,GAAiB9G,CAAC,EAClB,IAAI3I,EAAQ,KAAK,MACbyH,EAAQ,KAAK,MACbsH,EAAS/O,EAAM,OACfuN,EAASvN,EAAM,OACfmS,EAAWpD,EAAOxB,IAAW,KAAOvN,EAAM,OAASuN,CAAM,EACzD+E,EAAeF,EAAaD,EAAU1K,CAAK,EAE3CtL,EAAQsX,GAAgB,CAC1B,MAAOnB,EACP,OAAQ/E,EACR,OAAQvN,EAAM,OACd,MAAOyH,CACjB,CAAS,EAED,GAAItL,IAAUgW,EAAU,OACxB,IAAI2C,EAAsB,GAC1B,KAAK,OAAO3Y,EAAO2Y,CAAmB,CAC9C,CACA,CACA,EAAK,CACD,IAAK,WACL,MAAO,UAAoB,CACzB,OAAO,KAAK,MAAM,MACxB,CACA,EAAK,CACD,IAAK,kBACL,MAAO,SAAyB3Y,EAAO,CAIrC,QAHI4S,EAAS,KAAK,MAAM,OACpBiF,EAAe,EAEVzS,EAAI,EAAGA,EAAIwN,EAAO,OAAS,EAAGxN,GAAK,EACtCpF,GAAS4S,EAAOxN,CAAC,IACnByS,EAAezS,GAInB,OAAI,KAAK,IAAIwN,EAAOiF,EAAe,CAAC,EAAI7X,CAAK,EAAI,KAAK,IAAI4S,EAAOiF,CAAY,EAAI7X,CAAK,IACpF6X,GAAgB,GAGXA,CACb,CACA,EAAK,CACD,IAAK,qBACL,MAAO,SAA4B7X,EAAO6X,EAAc,CACtD,IAAIZ,EAAc,KAAK,MACnBrE,EAASqE,EAAY,OACrBgB,EAAShB,EAAY,OACrB2B,EAAkBf,EAClBgB,EAAmBjG,EAAOiF,EAAe,CAAC,IAAMjF,EAAOiF,CAAY,EAEvE,OAAIgB,GAAoBjG,EAAOqF,CAAM,IAAMrF,EAAOiF,CAAY,IAC5De,EAAkBX,GAGhBY,GAAoB7Y,IAAU4S,EAAOiF,EAAe,CAAC,IACvDe,EAAkB5Y,EAAQ4S,EAAOiF,EAAe,CAAC,EAAIA,EAAeA,EAAe,GAG9Ee,CACb,CACA,EAAK,CACD,IAAK,gBACL,MAAO,UAAyB,CAC9B,OAAO,KAAK,MAAM,OAAO,CAAC,CAChC,CACA,EAAK,CACD,IAAK,gBACL,MAAO,UAAyB,CAC9B,IAAIhG,EAAS,KAAK,MAAM,OACxB,OAAOA,EAAOA,EAAO,OAAS,CAAC,CACrC,CAMA,EAAK,CACD,IAAK,YACL,MAAO,UAAqB,CAC1B,IAAIgB,EAAe,KAAK,MACpBlH,EAAQkH,EAAa,MACrBhH,EAAOgH,EAAa,KACpB/G,EAAM+G,EAAa,IACnB9G,EAAM8G,EAAa,IACnBkF,EAAQ,KAAK,oBAEjB,GAAI,CAACA,GAASA,EAAM,QAAUpM,GAASoM,EAAM,OAASlM,EAAM,CAC1D,IAAImM,EAAe7M,EAAc,CAAE,EAAEQ,CAAK,EAE1C,GAAIE,IAAS,KACX,QAASc,EAAQb,EAAKa,GAASZ,EAAKY,GAASd,EAC3CmM,EAAarL,CAAK,EAAIA,EAI1B,IAAIX,EAAS,OAAO,KAAKgM,CAAY,EAAE,IAAI,UAAU,EACrDhM,EAAO,KAAK,SAAUC,EAAGC,EAAG,CAC1B,OAAOD,EAAIC,CACrB,CAAS,EACD,KAAK,oBAAsB,CACzB,MAAOP,EACP,KAAME,EACN,OAAQG,CACT,CACT,CAEM,OAAO,KAAK,oBAAoB,MACtC,CACA,EAAK,CACD,IAAK,SACL,MAAO,SAAgB/M,EAAO2Y,EAAqB,CACjD,IAAIK,EAAS,KAETnV,EAAQ,KAAK,MACbyH,EAAQ,KAAK,MAEbwM,EAAahH,GAAmBjN,EAAM,MAAM,EAE5CuN,EAASvN,EAAM,SAAW,KAAOA,EAAM,OAASA,EAAM,OAC1DiU,EAAW1G,CAAM,EAAIpR,EACrB,IAAIiZ,EAAa7H,EAEb9F,EAAM,WAAa,GACrB,KAAK,uBAAuBwM,EAAYmB,CAAU,EACzC3N,EAAM,aACfwM,EAAW,KAAK,SAAU9K,EAAGC,EAAG,CAC9B,OAAOD,EAAIC,CACrB,CAAS,EACDgM,EAAanB,EAAW,QAAQ9X,CAAK,GAGvC,KAAK,SAAS,CACZ,OAAQiZ,EACR,OAAQA,EACR,OAAQnB,CAChB,CAAO,EAEGa,IAKF,KAAK,MAAM,cAAcb,CAAU,EACnC,KAAK,SAAS,CAAA,EAAI,UAAY,CAC5BkB,EAAO,YAAYC,CAAU,EAAE,MAAO,CAChD,CAAS,EACD,KAAK,MAAO,EAEpB,CACA,EAAK,CACD,IAAK,yBACL,MAAO,SAAgCrG,EAAQxB,EAAQ,CACrD,IAAIpR,EAAQ4S,EAAOxB,CAAM,EACrBoG,EAAW,KAAK,MAAM,SACtB0B,EAAY,OAAO1B,CAAQ,EAC3B2B,EAAY,EAUhB,GARIvG,EAAOxB,EAAS,CAAC,EAAIpR,EAAQkZ,IAC/BC,EAAY,GAGVnZ,EAAQ4S,EAAOxB,EAAS,CAAC,EAAI8H,IAC/BC,EAAY,IAGVA,IAAc,EAIlB,KAAIF,EAAa7H,EAAS+H,EACtBC,EAAaD,GAAavG,EAAOqG,CAAU,EAAIjZ,GAE9C,KAAK,WAAW4S,EAAQqG,EAAYE,EAAWD,EAAYE,CAAU,IAGxExG,EAAOxB,CAAM,EAAIwB,EAAOqG,CAAU,EAAIE,EAAYD,GAE1D,CACA,EAAK,CACD,IAAK,aACL,MAAO,SAAoBtG,EAAQxB,EAAQ+H,EAAWE,EAAQ,CAI5D,QAHIC,EAAgB1G,EAAOxB,CAAM,EAC7B1K,EAAekM,EAAOxB,CAAM,EAEzB+H,GAAazS,EAAe4S,GAAiBD,GAAQ,CAC1D,GAAI,CAAC,KAAK,mBAAmBzG,EAAQxB,EAAQ+H,CAAS,EAIpD,OAAAvG,EAAOxB,CAAM,EAAIkI,EACV,GAGT5S,EAAekM,EAAOxB,CAAM,CAC7B,CAGD,MAAO,EACb,CACA,EAAK,CACD,IAAK,qBACL,MAAO,SAA4BwB,EAAQxB,EAAQ+H,EAAW,CAC5D,IAAIpM,EAAS,KAAK,UAAW,EACzBwM,EAAaxM,EAAO,QAAQ6F,EAAOxB,CAAM,CAAC,EAC1CoI,EAAiBD,EAAaJ,EAElC,GAAIK,GAAkBzM,EAAO,QAAUyM,EAAiB,EAEtD,MAAO,GAGT,IAAIP,EAAa7H,EAAS+H,EACtBzE,EAAY3H,EAAOyM,CAAc,EACjChC,EAAW,KAAK,MAAM,SACtB0B,EAAY,OAAO1B,CAAQ,EAC3B4B,EAAaD,GAAavG,EAAOqG,CAAU,EAAIvE,GAEnD,OAAK,KAAK,WAAW9B,EAAQqG,EAAYE,EAAWD,EAAYE,CAAU,GAO1ExG,EAAOxB,CAAM,EAAIsD,EACV,IANE,EAOf,CACA,EAAK,CACD,IAAK,iBACL,MAAO,SAAwB1U,EAAO,CACpC,IAAIyZ,EAAe,KAAK,MACpBrI,EAASqI,EAAa,OACtB7G,EAAS6G,EAAa,OAC1B,OAAOnC,GAAgB,CACrB,MAAOtX,EACP,OAAQoR,EACR,OAAQwB,EACR,MAAO,KAAK,KACpB,CAAO,CACP,CACA,EAAK,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,IAAI8G,EAAS,KAETC,EAAe,KAAK,MACpBvI,EAASuI,EAAa,OACtB/G,EAAS+G,EAAa,OACtB3F,EAAe,KAAK,MACpB7G,EAAY6G,EAAa,UACzBtI,EAAWsI,EAAa,SACxBvI,EAAWuI,EAAa,SACxBjS,EAAWiS,EAAa,SACxBnH,EAAMmH,EAAa,IACnBlH,EAAMkH,EAAa,IACnBlI,EAAUkI,EAAa,QACvBgD,EAAkBhD,EAAa,OAC/B0C,EAAa1C,EAAa,WAC1B2C,EAAc3C,EAAa,YAC3B3E,EAAW2E,EAAa,SACxB4F,EAA2B5F,EAAa,yBACxC6F,EAAgC7F,EAAa,8BAC7C8F,EAAwC9F,EAAa,sCACrD+F,EAAUnH,EAAO,IAAI,SAAUpS,EAAG,CACpC,OAAOkZ,EAAO,WAAWlZ,CAAC,CAClC,CAAO,EACGwZ,EAAkB,GAAG,OAAO7M,EAAW,SAAS,EAChD+C,EAAU0C,EAAO,IAAI,SAAUpS,EAAG4E,EAAG,CACvC,IAAIuI,EAEAiC,EAAiBP,EAASjK,CAAC,GAAK,GAEhCrD,GAAYsN,EAASjK,CAAC,IAAM,QAC9BwK,EAAiB,MAGnB,IAAIyF,EAAWjE,IAAWhM,EAC1B,OAAO4R,EAAgB,CACrB,UAAWlJ,GAAYH,EAAc,CAAA,EAAI3B,EAAgB2B,EAAaqM,EAAiB,EAAI,EAAGhO,EAAgB2B,EAAa,GAAG,OAAOqM,EAAiB,GAAG,EAAE,OAAO5U,EAAI,CAAC,EAAG,EAAI,EAAG4G,EAAgB2B,EAAa,GAAG,OAAOqM,EAAiB,WAAW,EAAG3E,CAAQ,EAAG1H,EAAa,EAC/Q,UAAWR,EACX,SAAUzB,EACV,SAAU2J,EACV,OAAQ0E,EAAQ3U,CAAC,EACjB,MAAO5E,EACP,MAAO4E,EACP,SAAUwK,EACV,IAAK/C,EACL,IAAKC,EACL,QAAShB,EACT,SAAU/J,EACV,MAAO4U,EAAYvR,CAAC,EACpB,IAAK,SAAamQ,EAAG,CACnB,OAAOmE,EAAO,WAAWtU,EAAGmQ,CAAC,CAC9B,EACD,UAAWqE,EAAyBxU,CAAC,EACrC,eAAgByU,EAA8BzU,CAAC,EAC/C,uBAAwB0U,EAAsC1U,CAAC,CACzE,CAAS,CACT,CAAO,EACG6P,EAASrC,EAAO,MAAM,EAAG,EAAE,EAAE,IAAI,SAAUqH,EAAGrF,EAAO,CACvD,IAAIsF,EAEA9U,EAAIwP,EAAQ,EACZuF,EAAiBrM,GAAYoM,EAAe,GAAIlO,EAAgBkO,EAAc,GAAG,OAAO/M,EAAW,QAAQ,EAAG,EAAI,EAAGnB,EAAgBkO,EAAc,GAAG,OAAO/M,EAAW,SAAS,EAAE,OAAO/H,CAAC,EAAG,EAAI,EAAG8U,EAAc,EACvN,OAAoBha,EAAM,cAAcmL,GAAO,CAC7C,UAAW8O,EACX,SAAUzO,EACV,QAASI,EACT,SAAUL,EACV,OAAQsO,EAAQ3U,EAAI,CAAC,EACrB,OAAQ2U,EAAQ3U,CAAC,EAAI2U,EAAQ3U,EAAI,CAAC,EAClC,MAAOsR,EAAW9B,CAAK,EACvB,IAAKxP,CACf,CAAS,CACT,CAAO,EACD,MAAO,CACL,OAAQ6P,EACR,QAAS/E,CACV,CACP,CACG,CAAA,EAAG,CAAC,CACH,IAAK,2BACL,MAAO,SAAkC5E,EAAOzH,EAAO,CACrD,GAAI,EAAE,UAAWyH,GAAS,QAASA,GAAS,QAASA,GACnD,OAAO,KAGT,IAAItL,EAAQsL,EAAM,OAASzH,EAAM,OAC7BiU,EAAa9X,EAAM,IAAI,SAAUQ,EAAG4E,EAAG,CACzC,OAAOkS,GAAgB,CACrB,MAAO9W,EACP,OAAQ4E,EACR,OAAQvB,EAAM,OACd,MAAOyH,CACjB,CAAS,CACT,CAAO,EAED,GAAIzH,EAAM,OAAO,SAAWiU,EAAW,QACrC,GAAIA,EAAW,MAAM,SAAUtX,EAAG4E,EAAG,CACnC,OAAO5E,IAAMqD,EAAM,OAAOuB,CAAC,CACrC,CAAS,EACC,OAAO,UAGT0S,EAAa9X,EAAM,IAAI,SAAUQ,EAAG4E,EAAG,CACrC,OAAOkS,GAAgB,CACrB,MAAO9W,EACP,OAAQ4E,EACR,MAAOkG,CACnB,CAAW,CACX,CAAS,EAGH,OAAOY,EAAcA,EAAc,CAAE,EAAErI,CAAK,EAAG,CAAA,EAAI,CACjD,OAAQiU,CAChB,CAAO,CACP,CACA,CAAG,CAAC,EAEKF,CACT,EAAE1X,EAAM,SAAS,EAIjB0X,GAAM,YAAc,QACpBA,GAAM,aAAe,CACnB,MAAO,EACP,WAAY,GACZ,SAAU,GACV,eAAgB,GAChB,SAAU,CAAE,EACZ,yBAA0B,CAAE,EAC5B,8BAA+B,CAAE,EACjC,sCAAuC,CAAA,CACzC,EACA,MAAewC,GAAAhI,GAAawF,EAAK,ECloBjC,IAAIyC,GAAM,SAAa/N,EAAU,CAC/B,MAAO,CAAC,WAAWA,EAAU,EAAE,CACjC,EAEIgO,GAAM,SAAaC,EAAK,CAC1B,OAAO,aAAaA,CAAG,CACzB,EAEI,OAAO,OAAW,KAAe,0BAA2B,SAC9DF,GAAM,SAAa/N,EAAU,CAC3B,OAAO,OAAO,sBAAsBA,CAAQ,CAC7C,EAEDgO,GAAM,SAAalJ,EAAQ,CACzB,OAAO,OAAO,qBAAqBA,CAAM,CAC1C,GAGH,IAAIoJ,GAAU,EACVC,GAAS,IAAI,IAEjB,SAASC,GAAQC,EAAI,CACnBF,GAAO,OAAOE,CAAE,CAClB,CAEe,SAASC,GAAWtO,EAAU,CAC3C,IAAIuO,EAAQ,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,EAChFL,IAAW,EACX,IAAIG,EAAKH,GAET,SAASM,EAAQC,EAAW,CAC1B,GAAIA,IAAc,EAEhBL,GAAQC,CAAE,EAEVrO,EAAU,MACL,CAEL,IAAI0O,EAASX,GAAI,UAAY,CAC3BS,EAAQC,EAAY,CAAC,CAC7B,CAAO,EAEDN,GAAO,IAAIE,EAAIK,CAAM,CAC3B,CACA,CAEE,OAAAF,EAAQD,CAAK,EACNF,CACT,CAEAC,GAAW,OAAS,SAAUD,EAAI,CAChC,IAAIK,EAASP,GAAO,IAAIE,CAAE,EAC1B,OAAAD,GAAQM,CAAM,EACPV,GAAIU,CAAM,CACnB,ECtDe,SAASC,GAASC,EAAMnI,EAAG,CACxC,OAAKmI,EAIEA,EAAK,SAASnI,CAAC,EAHb,EAIX,CCDe,SAAS5C,GAAYlB,EAAM,CACxC,OAAIA,aAAgB,YACXA,EAGF1C,GAAS,YAAY0C,CAAI,CAClC,CCTO,SAASkM,GAAQC,EAAKnM,EAAM,CAC7B,OAAOmM,GAAQ,WACjBA,EAAInM,CAAI,EACCb,GAAQgN,CAAG,IAAM,UAAYA,GAAO,YAAaA,IAC1DA,EAAI,QAAUnM,EAElB,CAKO,SAASoM,IAAa,CAC3B,QAASC,EAAO,UAAU,OAAQC,EAAO,IAAI,MAAMD,CAAI,EAAGE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,CAAI,EAAI,UAAUA,CAAI,EAG7B,OAAO,SAAUvM,EAAM,CACrBsM,EAAK,QAAQ,SAAUH,EAAK,CAC1BD,GAAQC,EAAKnM,CAAI,CACvB,CAAK,CACF,CACH,CACO,SAASwM,GAAWC,EAAiB,CAC1C,IAAIC,EAAiBC,EAEjBrV,EAAOsV,GAAM,OAACH,CAAe,EAAIA,EAAgB,KAAK,KAAOA,EAAgB,KAOjF,MALI,SAAOnV,GAAS,YAAc,EAAG,GAAAoV,EAAkBpV,EAAK,aAAe,MAAQoV,IAAoB,SAAkBA,EAAgB,SAKrI,OAAOD,GAAoB,YAAc,EAAG,GAAAE,EAAwBF,EAAgB,aAAe,MAAQE,IAA0B,SAAkBA,EAAsB,QAKnL,CCvCe,SAASE,IAAY,CAClC,MAAO,CAAC,EAAE,OAAO,OAAW,KAAe,OAAO,UAAY,OAAO,SAAS,cAChF,CCCA,IAAIC,GAASC,EAAU,WAAC,SAAU1Q,EAAO8P,EAAK,CAC5C,IAAIa,EAAY3Q,EAAM,UAClB4Q,EAAe5Q,EAAM,aACrBxK,EAAWwK,EAAM,SACjB6Q,EAAelT,EAAAA,SAEnBmT,EAAmB,oBAAChB,EAAK,UAAY,CACnC,MAAO,CAAE,CACb,CAAG,EAED,IAAIiB,EAAUpT,EAAM,OAAC,EAAK,EAE1B,MAAI,CAACoT,EAAQ,SAAWP,OACtBK,EAAa,QAAUD,EAAc,EACrCG,EAAQ,QAAU,IAIpB3a,EAAAA,UAAU,UAAY,CACpBua,GAAc,MAAwCA,EAAU3Q,CAAK,CACzE,CAAG,EACD5J,EAAAA,UAAU,UAAY,CACpB,OAAO,UAAY,CACjB,IAAI4a,EAAuBC,GAI1BD,EAAwBH,EAAa,WAAa,MAAQG,IAA0B,SAAmBC,EAAyBD,EAAsB,cAAgB,MAAQC,IAA2B,QAAkBA,EAAuB,YAAYJ,EAAa,OAAO,CACpR,CACF,EAAE,EAAE,EACEA,EAAa,QAAU5P,GAAS,aAAazL,EAAUqb,EAAa,OAAO,EAAI,IACxF,CAAC,EChCD,SAASK,GAAWC,EAAIC,EAAIC,EAAc,CACxC,OAAIA,EACKF,EAAG,CAAC,IAAMC,EAAG,CAAC,EAGhBD,EAAG,CAAC,IAAMC,EAAG,CAAC,GAAKD,EAAG,CAAC,IAAMC,EAAG,CAAC,CAC1C,CAEO,SAASE,GAAsBC,EAAmBC,EAAcC,EAAO,CAC5E,IAAIC,EAAYH,EAAkBC,CAAY,GAAK,CAAE,EACrD,OAAO5Q,EAAcA,EAAc,CAAE,EAAE8Q,CAAS,EAAGD,CAAK,CAC1D,CACO,SAASE,GAAuBJ,EAAmB1P,EAAW4P,EAAOJ,EAAc,CAIxF,QAHI5P,EAASgQ,EAAM,OACfG,EAAa,OAAO,KAAKL,CAAiB,EAErCzX,EAAI,EAAGA,EAAI8X,EAAW,OAAQ9X,GAAK,EAAG,CAC7C,IAAI+X,EAAYD,EAAW9X,CAAC,EAE5B,GAAIoX,GAAWK,EAAkBM,CAAS,EAAE,OAAQpQ,EAAQ4P,CAAY,EACtE,MAAO,GAAG,OAAOxP,EAAW,aAAa,EAAE,OAAOgQ,CAAS,CAEjE,CAEE,MAAO,EACT,CC3BA,MAAAC,GAAgB,UAAY,CAC1B,GAAI,OAAO,UAAc,KAAe,OAAO,OAAW,IACxD,MAAO,GAGT,IAAIC,EAAQ,UAAU,WAAa,UAAU,QAAU,OAAO,MAE9D,MAAI,yVAAsV,KAAKA,CAAK,GAAK,4hDAA4hD,KAAKA,GAAU,KAA2B,OAASA,EAAM,OAAO,EAAG,CAAC,CAAC,EAK58D,ECRA,SAASC,GAAcC,EAAWC,EAAW,CAC3C,IAAIC,EAAW,CAAE,EACjB,OAAAA,EAASF,EAAU,YAAa,CAAA,EAAIC,EAAU,YAAa,EAC3DC,EAAS,SAAS,OAAOF,CAAS,CAAC,EAAI,SAAS,OAAOC,CAAS,EAChEC,EAAS,MAAM,OAAOF,CAAS,CAAC,EAAI,MAAM,OAAOC,CAAS,EAC1DC,EAAS,KAAK,OAAOF,CAAS,CAAC,EAAI,KAAK,OAAOC,CAAS,EACxDC,EAAS,IAAI,OAAOF,CAAS,CAAC,EAAI,IAAI,OAAOC,EAAU,aAAa,EAC7DC,CACT,CAEO,SAASC,GAAkBC,EAAYC,EAAK,CACjD,IAAIH,EAAW,CACb,aAAcH,GAAc,YAAa,cAAc,EACvD,cAAeA,GAAc,aAAc,eAAe,CAC3D,EAED,OAAIK,IACI,mBAAoBC,GACxB,OAAOH,EAAS,aAAa,UAGzB,oBAAqBG,GACzB,OAAOH,EAAS,cAAc,YAI3BA,CACT,CACA,IAAII,GAAiBH,GAAkBI,GAAW,EAAE,OAAO,OAAW,IAAc,OAAS,EAAE,EAC3FnS,GAAQ,CAAE,EAEd,GAAImS,KAAa,CACf,IAAIC,GAAwB,SAAS,cAAc,KAAK,EAExDpS,GAAQoS,GAAsB,KAChC,CAEA,IAAIC,GAAqB,CAAE,EACpB,SAASC,GAA2BT,EAAW,CACpD,GAAIQ,GAAmBR,CAAS,EAC9B,OAAOQ,GAAmBR,CAAS,EAGrC,IAAIU,EAAYL,GAAeL,CAAS,EAExC,GAAIU,EAIF,QAHIC,EAAgB,OAAO,KAAKD,CAAS,EACrCE,EAAMD,EAAc,OAEf/Y,EAAI,EAAGA,EAAIgZ,EAAKhZ,GAAK,EAAG,CAC/B,IAAImY,EAAYY,EAAc/Y,CAAC,EAE/B,GAAI,OAAO,UAAU,eAAe,KAAK8Y,EAAWX,CAAS,GAAKA,KAAa5R,GAC7E,OAAAqS,GAAmBR,CAAS,EAAIU,EAAUX,CAAS,EAC5CS,GAAmBR,CAAS,CAE3C,CAGE,MAAO,EACT,CACA,IAAIa,GAA2BJ,GAA2B,cAAc,EACpEK,GAA4BL,GAA2B,eAAe,EAC/DM,GAAoB,CAAC,EAAEF,IAA4BC,IACnDE,GAAmBH,IAA4B,eAC/CI,GAAoBH,IAA6B,gBACrD,SAASI,GAAkBC,EAAgBC,EAAgB,CAChE,GAAI,CAACD,EAAgB,OAAO,KAE5B,GAAIvQ,GAAQuQ,CAAc,IAAM,SAAU,CACxC,IAAIpY,EAAOqY,EAAe,QAAQ,OAAQ,SAAUC,EAAO,CACzD,OAAOA,EAAM,CAAC,EAAE,YAAa,CACnC,CAAK,EACD,OAAOF,EAAepY,CAAI,CAC9B,CAEE,MAAO,GAAG,OAAOoY,EAAgB,GAAG,EAAE,OAAOC,CAAc,CAC7D,CCjFO,IAAIE,GAAc,OACdC,GAAgB,SAChBC,GAAe,QACfC,GAAe,QACfC,GAAY,OACZC,GAAe,UACfC,GAAa,QACbC,GAAc,SACdC,GAAiB,MCNb,SAASC,GAAejK,EAAc,CACnD,IAAIkK,EAAavW,EAAM,OAAC,EAAK,EAEzBwW,EAAYhd,EAAQ,SAAC6S,CAAY,EACjCoK,EAAaC,EAAeF,EAAW,CAAC,EACxClP,EAAMmP,EAAW,CAAC,EAClBE,EAASF,EAAW,CAAC,EAEzB,SAASG,EAASC,EAAM,CACjBN,EAAW,SACdI,EAAOE,CAAI,CAEjB,CAEEpe,OAAAA,EAAAA,UAAU,UAAY,CACpB,OAAO,UAAY,CACjB8d,EAAW,QAAU,EACtB,CACF,EAAE,EAAE,EACE,CAACjP,EAAKsP,CAAQ,CACvB,CCnBA,IAAIE,GAA4BjE,KAAckE,EAAAA,gBAAkBte,EAAS,UCDzE,MAAAue,GAAgB,UAAY,CAC1B,IAAIC,EAAeC,EAAY,OAAC,IAAI,EAEpC,SAASC,GAAkB,CACzB/F,GAAI,OAAO6F,EAAa,OAAO,CACnC,CAEE,SAASG,EAAU/T,EAAU,CAC3B,IAAIgU,EAAQ,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,EAChFF,EAAiB,EACjB,IAAIG,EAAclG,GAAI,UAAY,CAC5BiG,GAAS,EACXhU,EAAS,CACP,WAAY,UAAsB,CAChC,OAAOiU,IAAgBL,EAAa,OAChD,CACA,CAAS,EAEDG,EAAU/T,EAAUgU,EAAQ,CAAC,CAErC,CAAK,EACDJ,EAAa,QAAUK,CAC3B,CAEEC,OAAAA,EAAAA,UAAgB,UAAY,CAC1B,OAAO,UAAY,CACjBJ,EAAiB,CAClB,CACF,EAAE,EAAE,EACE,CAACC,EAAWD,CAAe,CACpC,EC3BA,IAAIK,GAAa,CAACtB,GAAcC,GAAYC,GAAaC,EAAc,EAG5DoB,GAAW,GAGXC,GAAS,GACb,SAASrS,GAAS1B,EAAM,CAC7B,OAAOA,IAASyS,IAAezS,IAAS0S,EAC1C,CACA,MAAAsB,GAAgB,SAAUC,EAAQvU,EAAU,CAC1C,IAAIwU,EAAkBC,EAAc,SAAC7B,EAAS,EAC1C8B,EAAmBrB,EAAemB,EAAiB,CAAC,EACpDlU,EAAOoU,EAAiB,CAAC,EACzBC,EAAUD,EAAiB,CAAC,EAE5BE,EAAgBjB,GAAc,EAC9BkB,EAAiBxB,EAAeuB,EAAe,CAAC,EAChDb,EAAYc,EAAe,CAAC,EAC5Bf,EAAkBe,EAAe,CAAC,EAEtC,SAASC,GAAa,CACpBH,EAAQ9B,EAAY,CACxB,CAEE,OAAAY,GAA0B,UAAY,CACpC,GAAInT,IAASsS,IAAatS,IAAS0S,GAAgB,CACjD,IAAI1K,EAAQ6L,GAAW,QAAQ7T,CAAI,EAC/ByU,EAAWZ,GAAW7L,EAAQ,CAAC,EAC/BzP,EAASmH,EAASM,CAAI,EAEtBzH,IAAWub,GAEbO,EAAQI,CAAQ,EAGhBhB,EAAU,SAAUiB,EAAM,CACxB,SAASC,GAAS,CAEZD,EAAK,cACTL,EAAQI,CAAQ,CAC5B,CAEclc,IAAW,GACboc,EAAQ,EAGR,QAAQ,QAAQpc,CAAM,EAAE,KAAKoc,CAAM,CAE/C,CAAS,CAET,CACA,EAAK,CAACV,EAAQjU,CAAI,CAAC,EACjB4T,EAAAA,UAAgB,UAAY,CAC1B,OAAO,UAAY,CACjBJ,EAAiB,CAClB,CACF,EAAE,EAAE,EACE,CAACgB,EAAYxU,CAAI,CAC1B,EC7De4U,GAAC,SAAUlV,EAAU,CAClC,IAAImV,EAAkBxY,EAAAA,SAElByY,EAAczY,EAAM,OAACqD,CAAQ,EACjCoV,EAAY,QAAUpV,EAEtB,IAAIqV,EAAsBC,cAAkB,SAAU/a,EAAO,CAC3D6a,EAAY,QAAQ7a,CAAK,CAC1B,EAAE,CAAE,CAAA,EAEL,SAASgb,EAAmBC,EAAS,CAC/BA,IACFA,EAAQ,oBAAoBrD,GAAmBkD,CAAmB,EAClEG,EAAQ,oBAAoBtD,GAAkBmD,CAAmB,EAEpE,CAGD,SAASI,EAAkBD,EAAS,CAC9BL,EAAgB,SAAWA,EAAgB,UAAYK,GACzDD,EAAmBJ,EAAgB,OAAO,EAGxCK,GAAWA,IAAYL,EAAgB,UACzCK,EAAQ,iBAAiBrD,GAAmBkD,CAAmB,EAC/DG,EAAQ,iBAAiBtD,GAAkBmD,CAAmB,EAE9DF,EAAgB,QAAUK,EAE7B,CAGDtB,OAAAA,EAAAA,UAAgB,UAAY,CAC1B,OAAO,UAAY,CACjBqB,EAAmBJ,EAAgB,OAAO,CAC3C,CACF,EAAE,EAAE,EACE,CAACM,EAAmBF,CAAkB,CAC/C,EC/Be,SAASG,GAAUC,EAAeC,EAASC,EAAY5W,EAAM,CAC1E,IAAI6W,EAAmB7W,EAAK,YACxB8W,EAAcD,IAAqB,OAAS,GAAOA,EACnDE,EAAoB/W,EAAK,aACzBgX,EAAeD,IAAsB,OAAS,GAAOA,EACrDE,EAAmBjX,EAAK,YACxBkX,EAAcD,IAAqB,OAAS,GAAOA,EACnDE,EAAiBnX,EAAK,eACtBoX,EAAyBpX,EAAK,uBAC9BqX,EAAkBrX,EAAK,gBACvBsX,EAAiBtX,EAAK,eACtBuX,EAAiBvX,EAAK,eACtBwX,EAAgBxX,EAAK,cACrByX,EAAezX,EAAK,aACpB0X,EAAe1X,EAAK,aACpB2X,EAAiB3X,EAAK,eACtB4X,EAAgB5X,EAAK,cACrB6X,EAAgB7X,EAAK,cACrB8X,EAAc9X,EAAK,YACnB+X,EAAa/X,EAAK,WAClBgY,EAAahY,EAAK,WAClBiY,EAAmBjY,EAAK,iBAGxBkU,EAAYhd,GAAU,EACtBid,EAAaC,EAAeF,EAAW,CAAC,EACxCgE,EAAe/D,EAAW,CAAC,EAC3BgE,EAAkBhE,EAAW,CAAC,EAE9BiE,EAAalhB,GAASqc,EAAW,EACjC8E,EAAajE,EAAegE,EAAY,CAAC,EACzC9C,EAAS+C,EAAW,CAAC,EACrBC,EAAYD,EAAW,CAAC,EAExBE,EAAarhB,GAAS,IAAI,EAC1BshB,EAAapE,EAAemE,EAAY,CAAC,EACzCnY,GAAQoY,EAAW,CAAC,EACpBC,GAAWD,EAAW,CAAC,EAEvBE,GAAahb,EAAM,OAAC,EAAK,EACzBib,GAAcjb,EAAM,OAAC,IAAI,EACzBkb,GAAelb,SAAO,EAAK,EAE3BwY,GAAkBxY,EAAM,OAAC,IAAI,EAEjC,SAASmb,IAAgB,CACvB,IAAItC,EAAUK,EAAY,EAC1B,OAAOL,GAAWL,GAAgB,OACnC,CAGD,IAAI4C,EAAYpb,EAAM,OAAC,EAAK,EAE5B,SAAS0Y,GAAoB9a,EAAO,CAClC,IAAIib,EAAUsC,GAAe,EAE7B,GAAI,EAAAvd,GAAS,CAACA,EAAM,UAAYA,EAAM,SAAWib,GAOjD,KAAIwC,EAEAzD,IAAW9B,IAAiBsF,EAAU,QACxCC,EAASjB,GAAgB,KAAiC,OAASA,EAAYvB,EAASjb,CAAK,EACpFga,IAAW7B,IAAgBqF,EAAU,QAC9CC,EAAShB,GAAe,KAAgC,OAASA,EAAWxB,EAASjb,CAAK,EACjFga,IAAW5B,IAAgBoF,EAAU,UAC9CC,EAASf,GAAe,KAAgC,OAASA,EAAWzB,EAASjb,CAAK,GAIxFyd,IAAW,IAAS,CAACH,GAAa,UACpCN,EAAU/E,EAAW,EACrBkF,GAAS,IAAI,GAEnB,CAEE,IAAIO,EAAsB/C,GAAmBG,EAAmB,EAC5D6C,EAAuB7E,EAAe4E,EAAqB,CAAC,EAC5DxC,GAAoByC,EAAqB,CAAC,EAG1CC,EAAgBC,EAAAA,QAAc,UAAY,CAC5C,IAAIlZ,EAAO+F,EAAOoT,EAElB,OAAQ9D,EAAM,CACZ,IAAK,SACH,OAAOrV,EAAQ,CAAA,EAAIQ,EAAgBR,EAAO2T,GAAcyD,CAAe,EAAG5W,EAAgBR,EAAO4T,GAAY2D,CAAa,EAAG/W,EAAgBR,EAAO6T,GAAa6D,CAAc,EAAG1X,EAEpL,IAAK,QACH,OAAO+F,EAAQ,CAAA,EAAIvF,EAAgBuF,EAAO4N,GAAc0D,CAAc,EAAG7W,EAAgBuF,EAAO6N,GAAY4D,CAAY,EAAGhX,EAAgBuF,EAAO8N,GAAa8D,CAAa,EAAG5R,EAEjL,IAAK,QACH,OAAOoT,EAAQ,CAAA,EAAI3Y,EAAgB2Y,EAAOxF,GAAc2D,CAAc,EAAG9W,EAAgB2Y,EAAOvF,GAAY6D,CAAY,EAAGjX,EAAgB2Y,EAAOtF,GAAa+D,CAAa,EAAGuB,EAEjL,QACE,MAAO,CAAE,CACjB,CACA,EAAK,CAAC9D,CAAM,CAAC,EAEP+D,GAAgBhE,GAAaC,EAAQ,SAAUgE,EAAS,CAE1D,GAAIA,IAAY1F,GAAc,CAC5B,IAAI2F,EAAYL,EAActF,EAAY,EAE1C,OAAK2F,EAIEA,EAAUV,IAAe,EAHvB1D,EAIV,CAID,GAAI9T,MAAQ6X,EAAe,CACzB,IAAIM,EAEJf,KAAWe,EAAsBN,EAAc7X,EAAI,KAAO,MAAQmY,IAAwB,OAAS,OAASA,EAAoB,KAAKN,EAAeL,GAAa,EAAI,IAAI,IAAM,IAAI,CACzL,CAEI,OAAIxX,KAASyS,KAEX0C,GAAkBqC,GAAa,CAAE,EAE7B1B,EAAiB,IACnB,aAAawB,GAAY,OAAO,EAChCA,GAAY,QAAU,WAAW,UAAY,CAC3CvC,GAAoB,CAClB,SAAU,EACtB,CAAW,CACF,EAAEe,CAAc,IAId/B,EACX,CAAG,EACGqE,GAAiBrF,EAAeiF,GAAe,CAAC,EAChDK,GAAYD,GAAe,CAAC,EAC5BpY,GAAOoY,GAAe,CAAC,EAEvBlhB,EAASwK,GAAS1B,EAAI,EAC1ByX,EAAU,QAAUvgB,EAGpBic,GAA0B,UAAY,CACpC2D,EAAgBxB,CAAO,EACvB,IAAIgD,EAAYjB,GAAW,QAG3B,GAFAA,GAAW,QAAU,GAEjB,EAAChC,EAIL,KAAIkD,EAEA,CAACD,GAAahD,GAAWK,IAC3B4C,EAAapG,IAIXmG,GAAahD,GAAWG,IAC1B8C,EAAanG,KAIXkG,GAAa,CAAChD,GAAWO,GAAe,CAACyC,GAAavC,GAA0B,CAACT,GAAWO,KAC9F0C,EAAalG,IAIXkG,IACFtB,EAAUsB,CAAU,EACpBF,GAAW,GAEjB,EAAK,CAAC/C,CAAO,CAAC,EAGZxgB,EAAAA,UAAU,UAAY,EAEpBmf,IAAW9B,IAAiB,CAACwD,GAC7B1B,IAAW7B,IAAgB,CAACqD,GAC5BxB,IAAW5B,IAAgB,CAACwD,IAC1BoB,EAAU/E,EAAW,CAExB,EAAE,CAACyD,EAAcF,EAAaI,CAAW,CAAC,EAC3C/gB,EAAAA,UAAU,UAAY,CACpB,OAAO,UAAY,CACjB,aAAawiB,GAAY,OAAO,EAChCC,GAAa,QAAU,EACxB,CACF,EAAE,CAAE,CAAA,EAELziB,EAAAA,UAAU,UAAY,CAChB+hB,IAAiB,QAAa5C,IAAW/B,KAC3C0E,GAAqB,MAA+CA,EAAiBC,CAAY,EAEvG,EAAK,CAACA,EAAc5C,CAAM,CAAC,EAEzB,IAAIuE,EAAczZ,GAElB,OAAI8Y,EAActF,EAAY,GAAKvS,KAASwS,KAC1CgG,EAAclZ,EAAc,CAC1B,WAAY,MACb,EAAEkZ,CAAW,GAGT,CAACvE,EAAQjU,GAAMwY,EAAa3B,GAAkEvB,CAAO,CAC9G,CCtNA,IAAImD,GAA0B,SAAUzW,EAAkB,CACxDC,GAAUwW,EAAYzW,CAAgB,EAEtC,IAAIE,EAASxE,GAAa+a,CAAU,EAEpC,SAASA,GAAa,CACpB,OAAArW,GAAgB,KAAMqW,CAAU,EAEzBvW,EAAO,MAAM,KAAM,SAAS,CACvC,CAEE,OAAAI,GAAamW,EAAY,CAAC,CACxB,IAAK,SACL,MAAO,UAAkB,CACvB,OAAO,KAAK,MAAM,QACxB,CACA,CAAG,CAAC,EAEKA,CACT,EAAEC,WAAe,ECJV,SAASC,GAAaC,EAAQ,CACnC,IAAIC,EAAoBD,EAEpBpX,GAAQoX,CAAM,IAAM,WACtBC,EAAoBD,EAAO,mBAG7B,SAASE,EAAoBpa,EAAO,CAClC,MAAO,CAAC,EAAEA,EAAM,YAAcma,EAClC,CAEE,IAAIE,EAAyBC,EAAAA,WAAiB,SAAUta,EAAO8P,EAAK,CAClE,IAAIyK,EAAiBva,EAAM,QACvB4W,EAAU2D,IAAmB,OAAS,GAAOA,EAC7CC,EAAuBxa,EAAM,cAC7Bya,EAAgBD,IAAyB,OAAS,GAAOA,EACzDE,EAAc1a,EAAM,YACpBxK,EAAWwK,EAAM,SACjB2a,EAAa3a,EAAM,WACnB4a,EAAkB5a,EAAM,gBACxB6a,EAAa7a,EAAM,WACnB2W,EAAgByD,EAAoBpa,CAAK,EAEzC8a,EAAUnd,EAAAA,SAEVod,EAAiBpd,EAAAA,OAAQ,EAE7B,SAASmb,GAAgB,CACvB,GAAI,CACF,OAAOjU,GAAYiW,EAAQ,SAAWC,EAAe,OAAO,CAC7D,MAAW,CAEV,OAAO,IACf,CACA,CAEI,IAAIC,EAAatE,GAAUC,EAAeC,EAASkC,EAAe9Y,CAAK,EACnEib,EAAc5G,EAAe2G,EAAY,CAAC,EAC1CzF,EAAS0F,EAAY,CAAC,EACtBC,EAAaD,EAAY,CAAC,EAC1BE,EAAcF,EAAY,CAAC,EAC3BG,EAAgBH,EAAY,CAAC,EAI7BI,EAAcxG,EAAY,OAACuG,CAAa,EAExCA,IACFC,EAAY,QAAU,IAIxB,IAAIC,EAAY3d,EAAM,OAACmS,CAAG,EAC1BwL,EAAU,QAAUxL,EACpB,IAAIyL,EAAajF,cAAkB,SAAU3S,EAAM,CACjDmX,EAAQ,QAAUnX,EAClBkM,GAAQyL,EAAU,QAAS3X,CAAI,CAChC,EAAE,CAAE,CAAA,EAED6X,EAEAxQ,EAAcpK,EAAcA,EAAc,CAAA,EAAIia,CAAU,EAAG,GAAI,CACjE,QAASjE,CACf,CAAK,EAED,GAAI,CAACphB,EAEHgmB,EAAiB,aACRjG,IAAW/B,IAAe,CAAC4G,EAAoBpa,CAAK,EAEzDob,EACFI,EAAiBhmB,EAASoL,EAAc,CAAE,EAAEoK,CAAW,EAAGuQ,CAAU,EAC3D,CAACd,GAAiBY,EAAY,QACvCG,EAAiBhmB,EAASoL,EAAcA,EAAc,CAAA,EAAIoK,CAAW,EAAG,GAAI,CAC1E,UAAW4P,CACZ,CAAA,EAAGW,CAAU,EACLb,EACTc,EAAiBhmB,EAASoL,EAAcA,EAAc,CAAA,EAAIoK,CAAW,EAAG,GAAI,CAC1E,MAAO,CACL,QAAS,MACrB,CACS,CAAA,EAAGuQ,CAAU,EAEdC,EAAiB,SAEd,CACL,IAAInZ,EAGAoZ,EAEAP,IAAerH,GACjB4H,EAAe,UACNzY,GAASkY,CAAU,EAC5BO,EAAe,SACNP,IAAepH,KACxB2H,EAAe,SAGjBD,EAAiBhmB,EAASoL,EAAcA,EAAc,CAAA,EAAIoK,CAAW,EAAG,GAAI,CAC1E,UAAWxI,EAAW4Q,GAAkBuH,EAAYpF,CAAM,GAAIlT,EAAc,CAAE,EAAE3B,EAAgB2B,EAAa+Q,GAAkBuH,EAAY,GAAG,OAAOpF,EAAQ,GAAG,EAAE,OAAOkG,CAAY,CAAC,EAAGA,CAAY,EAAG/a,EAAgB2B,EAAasY,EAAY,OAAOA,GAAe,QAAQ,EAAGtY,EAAa,EAC/R,MAAO8Y,CACR,CAAA,EAAGI,CAAU,CACpB,CAEI,OAAoBvd,EAAAA,cAAoB+b,GAAY,CAClD,IAAKgB,CACN,EAAES,CAAc,CACrB,CAAG,EACD,OAAAnB,EAAU,YAAc,YACjBA,CACT,CACA,MAAeA,GAAAJ,GAAahH,EAAiB,ECrItC,SAASyI,GAAUzb,EAAM,CAC9B,IAAI4B,EAAY5B,EAAK,UACjB0b,EAAS1b,EAAK,OACd2b,EAAY3b,EAAK,UACjBoT,EAAiBpT,EAAK,eAE1B,OAAI0b,IAIAC,EACK,CACL,WAAY,GAAG,OAAO/Z,EAAW,GAAG,EAAE,OAAO+Z,CAAS,CACvD,EAGCvI,EACK,CACL,WAAYA,CACb,EAGI,KACT,CCjBe,SAASwI,GAAK7b,EAAO,CAClC,IAAI6B,EAAY7B,EAAM,UAClB4W,EAAU5W,EAAM,QAChB8b,EAAS9b,EAAM,OACf+b,EAAO/b,EAAM,KACbgc,EAAahc,EAAM,WACnBic,EAAgBjc,EAAM,cACtBkc,EAAqBlc,EAAM,mBAE/B,GAAI,CAAC+b,EACH,OAAO,KAGT,IAAIJ,EAAS,CAAE,EAEf,OAAIK,GAAcE,GAAsBD,KACtCN,EAAS/a,EAAc,CACrB,aAAc,EACf,EAAE8a,GAAU,CACX,OAAQM,EACR,UAAWna,EACX,eAAgBqa,EAChB,UAAWD,CACjB,CAAK,CAAC,GAGgBje,EAAmB,cAACqc,GAAW7V,EAAS,CAAA,EAAImX,EAAQ,CACtE,QAAS/E,EACT,cAAe,EACnB,CAAG,EAAG,SAAU3W,EAAM,CAClB,IAAIlL,EAAYkL,EAAK,UACrB,OAAoBjC,EAAAA,cAAoB,MAAO,CAC7C,MAAO,CACL,OAAQ8d,CACT,EACD,UAAWtZ,EAAW,GAAG,OAAOX,EAAW,OAAO,EAAG9M,CAAS,CACpE,CAAK,CACL,CAAG,CACH,CC5CA,MAAekC,GAAC,SAAUuf,EAAS,CACjC,GAAI,CAACA,EACH,MAAO,GAGT,GAAIA,EAAQ,aACV,MAAO,GAGT,GAAIA,EAAQ,QAAS,CACnB,IAAI2F,EAAM3F,EAAQ,QAAS,EAE3B,GAAI2F,EAAI,OAASA,EAAI,OACnB,MAAO,EAEb,CAEE,GAAI3F,EAAQ,sBAAuB,CACjC,IAAI4F,EAAO5F,EAAQ,sBAAuB,EAE1C,GAAI4F,EAAK,OAASA,EAAK,OACrB,MAAO,EAEb,CAEE,MAAO,EACT,EC1BA,SAAStZ,GAAQuZ,EAAK,CACpB,OAAI,OAAO,QAAW,YAAc,OAAO,OAAO,UAAa,SAC7DvZ,GAAU,SAAUuZ,EAAK,CACvB,OAAO,OAAOA,CACf,EAEDvZ,GAAU,SAAUuZ,EAAK,CACvB,OAAOA,GAAO,OAAO,QAAW,YAAcA,EAAI,cAAgB,QAAUA,IAAQ,OAAO,UAAY,SAAW,OAAOA,CAC1H,EAGIvZ,GAAQuZ,CAAG,CACpB,CAEA,SAAS3b,GAAgB2b,EAAKxd,EAAKnK,EAAO,CACxC,OAAImK,KAAOwd,EACT,OAAO,eAAeA,EAAKxd,EAAK,CAC9B,MAAOnK,EACP,WAAY,GACZ,aAAc,GACd,SAAU,EAChB,CAAK,EAED2nB,EAAIxd,CAAG,EAAInK,EAGN2nB,CACT,CAEA,SAASje,GAAQC,EAAQC,EAAgB,CACvC,IAAIC,EAAO,OAAO,KAAKF,CAAM,EAE7B,GAAI,OAAO,sBAAuB,CAChC,IAAIG,EAAU,OAAO,sBAAsBH,CAAM,EAC7CC,IAAgBE,EAAUA,EAAQ,OAAO,SAAUC,EAAK,CAC1D,OAAO,OAAO,yBAAyBJ,EAAQI,CAAG,EAAE,UAC1D,CAAK,GACDF,EAAK,KAAK,MAAMA,EAAMC,CAAO,CACjC,CAEE,OAAOD,CACT,CAEA,SAASG,GAAeC,EAAQ,CAC9B,QAAS7E,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CACzC,IAAI8E,EAAS,UAAU9E,CAAC,GAAK,KAAO,UAAUA,CAAC,EAAI,CAAE,EAEjDA,EAAI,EACNsE,GAAQQ,EAAQ,EAAI,EAAE,QAAQ,SAAUC,EAAK,CAC3C6B,GAAgB/B,EAAQE,EAAKD,EAAOC,CAAG,CAAC,CAChD,CAAO,EACQ,OAAO,0BAChB,OAAO,iBAAiBF,EAAQ,OAAO,0BAA0BC,CAAM,CAAC,EAExER,GAAQQ,CAAM,EAAE,QAAQ,SAAUC,EAAK,CACrC,OAAO,eAAeF,EAAQE,EAAK,OAAO,yBAAyBD,EAAQC,CAAG,CAAC,CACvF,CAAO,CAEP,CAEE,OAAOF,CACT,CAEA,IAAI2d,GACAC,GAAW,CACb,OAAQ,WACR,IAAK,QAEL,GAAI,OACJ,EAAG,KACL,EAEA,SAASC,IAAkB,CACzB,GAAIF,KAAiB,OACnB,OAAOA,GAGTA,GAAe,GACf,IAAIjc,EAAQ,SAAS,cAAc,GAAG,EAAE,MACpCoc,EAAW,YAEf,QAAS5d,KAAO0d,GACV1d,EAAM4d,KAAYpc,IACpBic,GAAezd,GAInB,OAAOyd,EACT,CAEA,SAASlJ,IAAoB,CAC3B,OAAOoJ,GAAiB,EAAG,GAAG,OAAOA,GAAiB,EAAE,oBAAoB,EAAI,oBAClF,CAEA,SAASE,IAAmB,CAC1B,OAAOF,GAAiB,EAAG,GAAG,OAAOA,GAAiB,EAAE,WAAW,EAAI,WACzE,CACA,SAASG,GAAsBhZ,EAAMjP,EAAO,CAC1C,IAAIsC,EAAOoc,GAAmB,EAE1Bpc,IACF2M,EAAK,MAAM3M,CAAI,EAAItC,EAEfsC,IAAS,uBACX2M,EAAK,MAAM,mBAAqBjP,GAGtC,CAEA,SAASkoB,GAAajZ,EAAMjP,EAAO,CACjC,IAAIsC,EAAO0lB,GAAkB,EAEzB1lB,IACF2M,EAAK,MAAM3M,CAAI,EAAItC,EAEfsC,IAAS,cACX2M,EAAK,MAAM,UAAYjP,GAG7B,CAEA,SAASmoB,GAAsBlZ,EAAM,CACnC,OAAOA,EAAK,MAAM,oBAAsBA,EAAK,MAAMyP,IAAmB,CACxE,CACA,SAAS0J,GAAenZ,EAAM,CAC5B,IAAItD,EAAQ,OAAO,iBAAiBsD,EAAM,IAAI,EAC1CoZ,EAAY1c,EAAM,iBAAiB,WAAW,GAAKA,EAAM,iBAAiBqc,IAAkB,EAEhG,GAAIK,GAAaA,IAAc,OAAQ,CACrC,IAAIC,EAASD,EAAU,QAAQ,cAAe,EAAE,EAAE,MAAM,GAAG,EAC3D,MAAO,CACL,EAAG,WAAWC,EAAO,EAAE,GAAKA,EAAO,CAAC,EAAG,CAAC,EACxC,EAAG,WAAWA,EAAO,EAAE,GAAKA,EAAO,CAAC,EAAG,CAAC,CACzC,CACL,CAEE,MAAO,CACL,EAAG,EACH,EAAG,CACJ,CACH,CACA,IAAIC,GAAW,iBACXC,GAAW,mBACf,SAASC,GAAexZ,EAAMyZ,EAAI,CAChC,IAAI/c,EAAQ,OAAO,iBAAiBsD,EAAM,IAAI,EAC1CoZ,EAAY1c,EAAM,iBAAiB,WAAW,GAAKA,EAAM,iBAAiBqc,IAAkB,EAEhG,GAAIK,GAAaA,IAAc,OAAQ,CACrC,IAAIM,EACAC,EAAUP,EAAU,MAAME,EAAQ,EAEtC,GAAIK,EACFA,EAAUA,EAAQ,CAAC,EACnBD,EAAMC,EAAQ,MAAM,GAAG,EAAE,IAAI,SAAUxQ,EAAM,CAC3C,OAAO,WAAWA,EAAM,EAAE,CAClC,CAAO,EACDuQ,EAAI,CAAC,EAAID,EAAG,EACZC,EAAI,CAAC,EAAID,EAAG,EACZR,GAAajZ,EAAM,UAAU,OAAO0Z,EAAI,KAAK,GAAG,EAAG,GAAG,CAAC,MAClD,CACL,IAAIE,EAAUR,EAAU,MAAMG,EAAQ,EAAE,CAAC,EACzCG,EAAME,EAAQ,MAAM,GAAG,EAAE,IAAI,SAAUzQ,EAAM,CAC3C,OAAO,WAAWA,EAAM,EAAE,CAClC,CAAO,EACDuQ,EAAI,EAAE,EAAID,EAAG,EACbC,EAAI,EAAE,EAAID,EAAG,EACbR,GAAajZ,EAAM,YAAY,OAAO0Z,EAAI,KAAK,GAAG,EAAG,GAAG,CAAC,CAC/D,CACA,MACIT,GAAajZ,EAAM,cAAc,OAAOyZ,EAAG,EAAG,iBAAiB,EAAE,OAAOA,EAAG,EAAG,mBAAmB,CAAC,CAEtG,CAEA,IAAII,GAAS,wCAAwC,OACjDC,GAEJ,SAASC,GAAcC,EAAM,CAC3B,IAAIC,EAAgBD,EAAK,MAAM,QAC/BA,EAAK,MAAM,QAAU,OACrBA,EAAK,aAELA,EAAK,MAAM,QAAUC,CACvB,CAEA,SAASC,GAAIC,EAAI9mB,EAAM9B,EAAG,CACxB,IAAIR,EAAQQ,EAEZ,GAAI4N,GAAQ9L,CAAI,IAAM,SAAU,CAC9B,QAAS8C,KAAK9C,EACRA,EAAK,eAAe8C,CAAC,GACvB+jB,GAAIC,EAAIhkB,EAAG9C,EAAK8C,CAAC,CAAC,EAItB,MACJ,CAEE,GAAI,OAAOpF,EAAU,IAAa,CAC5B,OAAOA,GAAU,WACnBA,EAAQ,GAAG,OAAOA,EAAO,IAAI,GAG/BopB,EAAG,MAAM9mB,CAAI,EAAItC,EACjB,MACJ,CAEE,OAAO+oB,GAAkBK,EAAI9mB,CAAI,CACnC,CAEA,SAAS+mB,GAAkBJ,EAAM,CAC/B,IAAIxB,EACA6B,EACAzjB,EACA0jB,EAAMN,EAAK,cACXO,EAAOD,EAAI,KACXE,EAAUF,GAAOA,EAAI,gBAEzB,OAAA9B,EAAMwB,EAAK,wBAIXK,EAAI7B,EAAI,KACR5hB,EAAI4hB,EAAI,IAkBR6B,GAAKG,EAAQ,YAAcD,EAAK,YAAc,EAC9C3jB,GAAK4jB,EAAQ,WAAaD,EAAK,WAAa,EACrC,CACL,KAAMF,EACN,IAAKzjB,CACN,CACH,CAEA,SAAS6jB,GAAUC,EAAGC,EAAK,CACzB,IAAIC,EAAMF,EAAE,OAAO,OAAOC,EAAM,IAAM,IAAK,QAAQ,CAAC,EAChDze,EAAS,SAAS,OAAOye,EAAM,MAAQ,MAAM,EAEjD,GAAI,OAAOC,GAAQ,SAAU,CAC3B,IAAI9kB,EAAI4kB,EAAE,SAEVE,EAAM9kB,EAAE,gBAAgBoG,CAAM,EAE1B,OAAO0e,GAAQ,WAEjBA,EAAM9kB,EAAE,KAAKoG,CAAM,EAEzB,CAEE,OAAO0e,CACT,CAEA,SAASC,GAAcH,EAAG,CACxB,OAAOD,GAAUC,CAAC,CACpB,CAEA,SAASI,GAAaJ,EAAG,CACvB,OAAOD,GAAUC,EAAG,EAAI,CAC1B,CAEA,SAASK,GAAUZ,EAAI,CACrB,IAAI1Q,EAAM2Q,GAAkBD,CAAE,EAC1BG,EAAMH,EAAG,cACTO,EAAIJ,EAAI,aAAeA,EAAI,aAC/B,OAAA7Q,EAAI,MAAQoR,GAAcH,CAAC,EAC3BjR,EAAI,KAAOqR,GAAaJ,CAAC,EAClBjR,CACT,CAOA,SAASuR,GAAStC,EAAK,CAIrB,OAAOA,GAAQ,MAA6BA,GAAOA,EAAI,MACzD,CAEA,SAASuC,GAAYjb,EAAM,CACzB,OAAIgb,GAAShb,CAAI,EACRA,EAAK,SAGVA,EAAK,WAAa,EACbA,EAGFA,EAAK,aACd,CAEA,SAASkb,GAAkBlB,EAAM3mB,EAAM8nB,EAAI,CACzC,IAAIC,EAAgBD,EAChB7Z,EAAM,GACNxL,EAAImlB,GAAYjB,CAAI,EACxB,OAAAoB,EAAgBA,GAAiBtlB,EAAE,YAAY,iBAAiBkkB,EAAM,IAAI,EAEtEoB,IACF9Z,EAAM8Z,EAAc,iBAAiB/nB,CAAI,GAAK+nB,EAAc/nB,CAAI,GAG3DiO,CACT,CAEA,IAAI+Z,GAAgB,IAAI,OAAO,KAAK,OAAOxB,GAAQ,iBAAiB,EAAG,GAAG,EAEtEyB,GAAS,4BACTC,GAAgB,eAChBC,GAAgB,eAChBC,GAAO,OACPC,GAAK,KAET,SAASC,GAAoB3B,EAAM3mB,EAAM,CAGvC,IAAIunB,EAAMZ,EAAKuB,EAAa,GAAKvB,EAAKuB,EAAa,EAAEloB,CAAI,EAUzD,GAAIgoB,GAAc,KAAKT,CAAG,GAAK,CAACU,GAAO,KAAKjoB,CAAI,EAAG,CAEjD,IAAIqJ,EAAQsd,EAAK,MACb4B,EAAOlf,EAAM+e,EAAI,EACjBI,EAAS7B,EAAKwB,EAAa,EAAEC,EAAI,EAErCzB,EAAKwB,EAAa,EAAEC,EAAI,EAAIzB,EAAKuB,EAAa,EAAEE,EAAI,EAEpD/e,EAAM+e,EAAI,EAAIpoB,IAAS,WAAa,MAAQunB,GAAO,EACnDA,EAAMle,EAAM,UAAYgf,GAExBhf,EAAM+e,EAAI,EAAIG,EACd5B,EAAKwB,EAAa,EAAEC,EAAI,EAAII,CAChC,CAEE,OAAOjB,IAAQ,GAAK,OAASA,CAC/B,CAEI,OAAO,OAAW,MACpBd,GAAoB,OAAO,iBAAmBoB,GAAoBS,IAGpE,SAASG,GAAmBC,EAAK3pB,EAAQ,CACvC,OAAI2pB,IAAQ,OACH3pB,EAAO,YAAc,QAAU2pB,EAGjC3pB,EAAO,aAAe,SAAW2pB,CAC1C,CAEA,SAASC,GAAwBD,EAAK,CACpC,GAAIA,IAAQ,OACV,MAAO,QACF,GAAIA,IAAQ,QACjB,MAAO,OACF,GAAIA,IAAQ,MACjB,MAAO,SACF,GAAIA,IAAQ,SACjB,MAAO,KAEX,CAGA,SAASE,GAAWjC,EAAMpd,EAAQxK,EAAQ,CAEpC8nB,GAAIF,EAAM,UAAU,IAAM,WAC5BA,EAAK,MAAM,SAAW,YAGxB,IAAIkC,EAAU,KACVC,EAAU,KACVC,EAAqBN,GAAmB,OAAQ1pB,CAAM,EACtDiqB,EAAmBP,GAAmB,MAAO1pB,CAAM,EACnDkqB,EAA6BN,GAAwBI,CAAkB,EACvEG,EAA2BP,GAAwBK,CAAgB,EAEnED,IAAuB,SACzBF,EAAU,KAGRG,IAAqB,QACvBF,EAAU,KAGZ,IAAIK,EAAqB,GACrBC,EAAiB1B,GAAUf,CAAI,GAE/B,SAAUpd,GAAU,QAASA,KAC/B4f,EAAqBtD,GAAsBc,CAAI,GAAK,GACpDhB,GAAsBgB,EAAM,MAAM,GAGhC,SAAUpd,IACZod,EAAK,MAAMsC,CAA0B,EAAI,GACzCtC,EAAK,MAAMoC,CAAkB,EAAI,GAAG,OAAOF,EAAS,IAAI,GAGtD,QAAStf,IACXod,EAAK,MAAMuC,CAAwB,EAAI,GACvCvC,EAAK,MAAMqC,CAAgB,EAAI,GAAG,OAAOF,EAAS,IAAI,GAIxDpC,GAAcC,CAAI,EAClB,IAAI0C,EAAM3B,GAAUf,CAAI,EACpBC,EAAgB,CAAE,EAEtB,QAAS/e,KAAO0B,EACd,GAAIA,EAAO,eAAe1B,CAAG,EAAG,CAC9B,IAAI6gB,EAAMD,GAAmB5gB,EAAK9I,CAAM,EACpCuqB,EAASzhB,IAAQ,OAASghB,EAAUC,EACpCS,EAAMH,EAAevhB,CAAG,EAAIwhB,EAAIxhB,CAAG,EAEnC6gB,IAAQ7gB,EACV+e,EAAc8B,CAAG,EAAIY,EAASC,EAE9B3C,EAAc8B,CAAG,EAAIY,EAASC,CAEtC,CAGE1C,GAAIF,EAAMC,CAAa,EAEvBF,GAAcC,CAAI,GAEd,SAAUpd,GAAU,QAASA,IAC/Boc,GAAsBgB,EAAMwC,CAAkB,EAGhD,IAAI5B,EAAM,CAAE,EAEZ,QAASrO,KAAQ3P,EACf,GAAIA,EAAO,eAAe2P,CAAI,EAAG,CAC/B,IAAIsQ,EAAOf,GAAmBvP,EAAMna,CAAM,EAEtC0qB,EAAOlgB,EAAO2P,CAAI,EAAIkQ,EAAelQ,CAAI,EAEzCA,IAASsQ,EACXjC,EAAIiC,CAAI,EAAI5C,EAAc4C,CAAI,EAAIC,EAElClC,EAAIiC,CAAI,EAAI5C,EAAc4C,CAAI,EAAIC,CAE1C,CAGE5C,GAAIF,EAAMY,CAAG,CACf,CAEA,SAASmC,GAAe/C,EAAMpd,EAAQ,CACpC,IAAI6f,EAAiB1B,GAAUf,CAAI,EAC/BgD,EAAa7D,GAAea,CAAI,EAChCiD,EAAW,CACb,EAAGD,EAAW,EACd,EAAGA,EAAW,CACf,EAEG,SAAUpgB,IACZqgB,EAAS,EAAID,EAAW,EAAIpgB,EAAO,KAAO6f,EAAe,MAGvD,QAAS7f,IACXqgB,EAAS,EAAID,EAAW,EAAIpgB,EAAO,IAAM6f,EAAe,KAG1DjD,GAAeQ,EAAMiD,CAAQ,CAC/B,CAEA,SAASC,GAAUlD,EAAMpd,EAAQxK,EAAQ,CACvC,GAAIA,EAAO,YAAa,CACtB,IAAI+qB,EAAYpC,GAAUf,CAAI,EAC1BoD,EAAQD,EAAU,KAAK,QAAQ,CAAC,EAChCE,EAAOF,EAAU,IAAI,QAAQ,CAAC,EAC9BG,EAAQ1gB,EAAO,KAAK,QAAQ,CAAC,EAC7B2gB,EAAO3gB,EAAO,IAAI,QAAQ,CAAC,EAE/B,GAAIwgB,IAAUE,GAASD,IAASE,EAC9B,MAEN,CAEMnrB,EAAO,aAAeA,EAAO,aAC/B6pB,GAAWjC,EAAMpd,EAAQxK,CAAM,EACtBA,EAAO,iBAAmB2mB,GAAkB,IAAI,SAAS,KAAK,MACvEgE,GAAe/C,EAAMpd,CAAM,EAE3Bqf,GAAWjC,EAAMpd,EAAQxK,CAAM,CAEnC,CAEA,SAASorB,GAAK9D,EAAK+D,EAAI,CACrB,QAAStnB,EAAI,EAAGA,EAAIujB,EAAI,OAAQvjB,IAC9BsnB,EAAG/D,EAAIvjB,CAAC,CAAC,CAEb,CAEA,SAASunB,GAAc1D,EAAM,CAC3B,OAAOF,GAAkBE,EAAM,WAAW,IAAM,YAClD,CAEA,IAAI2D,GAAa,CAAC,SAAU,SAAU,SAAS,EAC3CC,GAAgB,GAChBC,GAAgB,EAChBC,GAAe,EACfC,GAAe,EAEnB,SAASC,GAAKhE,EAAM/nB,EAASoL,EAAU,CACrC,IAAIqf,EAAM,CAAE,EACRhgB,EAAQsd,EAAK,MACb3mB,EAEJ,IAAKA,KAAQpB,EACPA,EAAQ,eAAeoB,CAAI,IAC7BqpB,EAAIrpB,CAAI,EAAIqJ,EAAMrJ,CAAI,EACtBqJ,EAAMrJ,CAAI,EAAIpB,EAAQoB,CAAI,GAI9BgK,EAAS,KAAK2c,CAAI,EAElB,IAAK3mB,KAAQpB,EACPA,EAAQ,eAAeoB,CAAI,IAC7BqJ,EAAMrJ,CAAI,EAAIqpB,EAAIrpB,CAAI,EAG5B,CAEA,SAAS4qB,GAAYjE,EAAM3d,EAAO6hB,EAAO,CACvC,IAAIntB,EAAQ,EACRotB,EACAC,EACAjoB,EAEJ,IAAKioB,EAAI,EAAGA,EAAI/hB,EAAM,OAAQ+hB,IAG5B,GAFAD,EAAO9hB,EAAM+hB,CAAC,EAEVD,EACF,IAAKhoB,EAAI,EAAGA,EAAI+nB,EAAM,OAAQ/nB,IAAK,CACjC,IAAIkoB,EAAU,OAEVF,IAAS,SACXE,EAAU,GAAG,OAAOF,CAAI,EAAE,OAAOD,EAAM/nB,CAAC,EAAG,OAAO,EAElDkoB,EAAUF,EAAOD,EAAM/nB,CAAC,EAG1BpF,GAAS,WAAW+oB,GAAkBE,EAAMqE,CAAO,CAAC,GAAK,CACjE,CAIE,OAAOttB,CACT,CAEA,IAAIutB,GAAW,CACb,UAAW,SAAmBzL,EAAS,CACrC,IAAI0L,EAAS1L,EAEb,GACM0L,EAAO,WAAa,IAAMA,EAAO,KACnCA,EAASA,EAAO,KAEhBA,EAASA,EAAO,iBAEXA,GAAUA,EAAO,WAAa,GAAKA,EAAO,WAAa,GAEhE,OAAOA,CACX,CACA,EACAf,GAAK,CAAC,QAAS,QAAQ,EAAG,SAAUnqB,EAAM,CACxCirB,GAAS,MAAM,OAAOjrB,CAAI,CAAC,EAAI,SAAUmrB,EAAQ,CAC/C,IAAI1oB,EAAI0oB,EAAO,SACf,OAAO,KAAK,IAEZ1oB,EAAE,gBAAgB,SAAS,OAAOzC,CAAI,CAAC,EACvCyC,EAAE,KAAK,SAAS,OAAOzC,CAAI,CAAC,EAAGirB,GAAS,WAAW,OAAOjrB,CAAI,CAAC,EAAEyC,CAAC,CAAC,CACpE,EAEDwoB,GAAS,WAAW,OAAOjrB,CAAI,CAAC,EAAI,SAAUsb,EAAK,CAEjD,IAAIwP,EAAO,SAAS,OAAO9qB,CAAI,EAC3BinB,EAAM3L,EAAI,SACV4L,EAAOD,EAAI,KACXmE,EAAkBnE,EAAI,gBACtBoE,EAAsBD,EAAgBN,CAAI,EAG9C,OAAO7D,EAAI,aAAe,cAAgBoE,GAAuBnE,GAAQA,EAAK4D,CAAI,GAAKO,CACxF,CACH,CAAC,EAUD,SAASC,GAAM3E,EAAM3mB,EAAMurB,EAAI,CAC7B,IAAIC,EAAQD,EAEZ,GAAI5D,GAAShB,CAAI,EACf,OAAO3mB,IAAS,QAAUirB,GAAS,cAActE,CAAI,EAAIsE,GAAS,eAAetE,CAAI,EAChF,GAAIA,EAAK,WAAa,EAC3B,OAAO3mB,IAAS,QAAUirB,GAAS,SAAStE,CAAI,EAAIsE,GAAS,UAAUtE,CAAI,EAG7E,IAAIkE,EAAQ7qB,IAAS,QAAU,CAAC,OAAQ,OAAO,EAAI,CAAC,MAAO,QAAQ,EAC/DyrB,EAAiBzrB,IAAS,QAAU2mB,EAAK,sBAAuB,EAAC,MAAQA,EAAK,sBAAqB,EAAG,OACtFF,GAAkBE,CAAI,EAC1C,IAAI+E,EAAcrB,GAAc1D,CAAI,EAChCgF,EAAc,GAEdF,GAAmB,MAAwCA,GAAkB,KAC/EA,EAAiB,OAEjBE,EAAclF,GAAkBE,EAAM3mB,CAAI,GAEtC2rB,GAAgB,MAAqC,OAAOA,CAAW,EAAI,KAC7EA,EAAchF,EAAK,MAAM3mB,CAAI,GAAK,GAIpC2rB,EAAc,WAAWA,CAAW,GAAK,GAGvCH,IAAU,SACZA,EAAQE,EAAcjB,GAAeF,IAGvC,IAAIqB,EAA8BH,IAAmB,QAAaC,EAC9Dzd,EAAMwd,GAAkBE,EAE5B,OAAIH,IAAUjB,GACRqB,EACK3d,EAAM2c,GAAYjE,EAAM,CAAC,SAAU,SAAS,EAAGkE,CAAK,EAGtDc,EACEC,EACLJ,IAAUf,GACLxc,EAGFA,GAAOud,IAAUhB,GAAgB,CAACI,GAAYjE,EAAM,CAAC,QAAQ,EAAGkE,CAAK,EAAID,GAAYjE,EAAM,CAAC,QAAQ,EAAGkE,CAAK,GAG9Gc,EAAcf,GAAYjE,EAAM2D,GAAW,MAAMkB,CAAK,EAAGX,CAAK,CACvE,CAEA,IAAIgB,GAAU,CACZ,SAAU,WACV,WAAY,SACZ,QAAS,OACX,EAEA,SAASC,IAAqB,CAC5B,QAAS9S,EAAO,UAAU,OAAQ+S,EAAO,IAAI,MAAM/S,CAAI,EAAGgT,EAAQ,EAAGA,EAAQhT,EAAMgT,IACjFD,EAAKC,CAAK,EAAI,UAAUA,CAAK,EAG/B,IAAI/d,EACA0Y,EAAOoF,EAAK,CAAC,EAGjB,OAAIpF,EAAK,cAAgB,EACvB1Y,EAAMqd,GAAM,MAAM,OAAWS,CAAI,EAEjCpB,GAAKhE,EAAMkF,GAAS,UAAY,CAC9B5d,EAAMqd,GAAM,MAAM,OAAWS,CAAI,CACvC,CAAK,EAGI9d,CACT,CAEAkc,GAAK,CAAC,QAAS,QAAQ,EAAG,SAAUnqB,EAAM,CACxC,IAAIisB,EAAQjsB,EAAK,OAAO,CAAC,EAAE,cAAgBA,EAAK,MAAM,CAAC,EAEvDirB,GAAS,QAAQ,OAAOgB,CAAK,CAAC,EAAI,SAAUnF,EAAIoF,EAAe,CAC7D,OAAOpF,GAAMgF,GAAmBhF,EAAI9mB,EAAMksB,EAAgBxB,GAAeD,EAAY,CACtF,EAED,IAAII,EAAQ7qB,IAAS,QAAU,CAAC,OAAQ,OAAO,EAAI,CAAC,MAAO,QAAQ,EAEnEirB,GAASjrB,CAAI,EAAI,SAAU2mB,EAAMzoB,EAAG,CAClC,IAAI+P,EAAM/P,EAEV,GAAI+P,IAAQ,OAAW,CACrB,GAAI0Y,EAAM,CACYF,GAAkBE,CAAI,EAC1C,IAAI+E,EAAcrB,GAAc1D,CAAI,EAEpC,OAAI+E,IACFzd,GAAO2c,GAAYjE,EAAM,CAAC,UAAW,QAAQ,EAAGkE,CAAK,GAGhDhE,GAAIF,EAAM3mB,EAAMiO,CAAG,CAClC,CAEM,MACN,CAEI,OAAO0Y,GAAQmF,GAAmBnF,EAAM3mB,EAAMuqB,EAAa,CAC5D,CACH,CAAC,EAED,SAAS4B,GAAIC,EAAIC,EAAM,CACrB,QAASvpB,KAAKupB,EACRA,EAAK,eAAevpB,CAAC,IACvBspB,EAAGtpB,CAAC,EAAIupB,EAAKvpB,CAAC,GAIlB,OAAOspB,CACT,CAEA,IAAIE,EAAQ,CACV,UAAW,SAAmB3f,EAAM,CAClC,GAAIA,GAAQA,EAAK,UAAYA,EAAK,WAChC,OAAOA,EAGT,IAAIsa,EAAMta,EAAK,eAAiBA,EAChC,OAAOsa,EAAI,aAAeA,EAAI,YAC/B,EACD,YAAaW,GACb,OAAQ,SAAgBd,EAAIppB,EAAOqB,EAAQ,CACzC,GAAI,OAAOrB,EAAU,IACnBmsB,GAAU/C,EAAIppB,EAAOqB,GAAU,CAAA,CAAE,MAEjC,QAAO2oB,GAAUZ,CAAE,CAEtB,EACD,SAAUa,GACV,KAAMwC,GACN,IAAKtD,GACL,MAAO,SAAexB,EAAK,CACzB,IAAIviB,EACAykB,EAAM,CAAE,EAEZ,IAAKzkB,KAAKuiB,EACJA,EAAI,eAAeviB,CAAC,IACtBykB,EAAIzkB,CAAC,EAAIuiB,EAAIviB,CAAC,GAIlB,IAAIypB,EAAWlH,EAAI,SAEnB,GAAIkH,EACF,IAAKzpB,KAAKuiB,EACJA,EAAI,eAAeviB,CAAC,IACtBykB,EAAI,SAASzkB,CAAC,EAAIuiB,EAAI,SAASviB,CAAC,GAKtC,OAAOykB,CACR,EACD,IAAK4E,GACL,oBAAqB,SAA6B9E,EAAG,CACnD,OAAOG,GAAcH,CAAC,CACvB,EACD,mBAAoB,SAA4BA,EAAG,CACjD,OAAOI,GAAaJ,CAAC,CACtB,EACD,MAAO,UAAiB,CAGtB,QAFIE,EAAM,CAAE,EAEHzkB,EAAI,EAAGA,EAAI,UAAU,OAAQA,IACpCwpB,EAAM,IAAI/E,EAAKzkB,EAAI,GAAK,UAAU,QAAUA,EAAI,OAAY,UAAUA,CAAC,CAAC,EAG1E,OAAOykB,CACR,EACD,cAAe,EACf,eAAgB,CAClB,EACA4E,GAAIG,EAAOrB,EAAQ,EAMnB,IAAIuB,GAAYF,EAAM,UAEtB,SAASG,GAAgBjN,EAAS,CAChC,GAAI8M,EAAM,SAAS9M,CAAO,GAAKA,EAAQ,WAAa,EAClD,OAAO,KAmBT,IAAIyH,EAAMqF,EAAM,YAAY9M,CAAO,EAC/B0H,EAAOD,EAAI,KACXiE,EACA7d,EAAgBif,EAAM,IAAI9M,EAAS,UAAU,EAC7CkN,EAAarf,IAAkB,SAAWA,IAAkB,WAEhE,GAAI,CAACqf,EACH,OAAOlN,EAAQ,SAAS,YAAW,IAAO,OAAS,KAAOgN,GAAUhN,CAAO,EAG7E,IAAK0L,EAASsB,GAAUhN,CAAO,EAAG0L,GAAUA,IAAWhE,GAAQgE,EAAO,WAAa,EAAGA,EAASsB,GAAUtB,CAAM,EAG7G,GAFA7d,EAAgBif,EAAM,IAAIpB,EAAQ,UAAU,EAExC7d,IAAkB,SACpB,OAAO6d,EAIX,OAAO,IACT,CAEA,IAAIyB,GAAcL,EAAM,UACxB,SAASM,GAAgBpN,EAAS,CAChC,GAAI8M,EAAM,SAAS9M,CAAO,GAAKA,EAAQ,WAAa,EAClD,MAAO,GAGT,IAAIyH,EAAMqF,EAAM,YAAY9M,CAAO,EAC/B0H,EAAOD,EAAI,KACXiE,EAAS,KAEb,IAAKA,EAASyB,GAAYnN,CAAO,EAAG0L,GAAUA,IAAWhE,EAAMgE,EAASyB,GAAYzB,CAAM,EAAG,CAC3F,IAAI7d,EAAgBif,EAAM,IAAIpB,EAAQ,UAAU,EAEhD,GAAI7d,IAAkB,QACpB,MAAO,EAEb,CAEE,MAAO,EACT,CAMA,SAASwf,GAAyBrN,EAASsN,EAAkB,CAc3D,QAbIC,EAAc,CAChB,KAAM,EACN,MAAO,IACP,IAAK,EACL,OAAQ,GACT,EACGjG,EAAK2F,GAAgBjN,CAAO,EAC5ByH,EAAMqF,EAAM,YAAY9M,CAAO,EAC/BlE,EAAM2L,EAAI,aAAeA,EAAI,aAC7BC,EAAOD,EAAI,KACXmE,EAAkBnE,EAAI,gBAGnBH,GAAI,CAET,IAAK,UAAU,UAAU,QAAQ,MAAM,IAAM,IAAMA,EAAG,cAAgB,IAGtEA,IAAOI,GAAQJ,IAAOsE,GAAmBkB,EAAM,IAAIxF,EAAI,UAAU,IAAM,UAAW,CAChF,IAAI1Q,EAAMkW,EAAM,OAAOxF,CAAE,EAEzB1Q,EAAI,MAAQ0Q,EAAG,WACf1Q,EAAI,KAAO0Q,EAAG,UACdiG,EAAY,IAAM,KAAK,IAAIA,EAAY,IAAK3W,EAAI,GAAG,EACnD2W,EAAY,MAAQ,KAAK,IAAIA,EAAY,MACzC3W,EAAI,KAAO0Q,EAAG,WAAW,EACzBiG,EAAY,OAAS,KAAK,IAAIA,EAAY,OAAQ3W,EAAI,IAAM0Q,EAAG,YAAY,EAC3EiG,EAAY,KAAO,KAAK,IAAIA,EAAY,KAAM3W,EAAI,IAAI,CACvD,SAAU0Q,IAAOI,GAAQJ,IAAOsE,EAC/B,MAGFtE,EAAK2F,GAAgB3F,CAAE,CACxB,CAKD,IAAIkG,EAAmB,KAEvB,GAAI,CAACV,EAAM,SAAS9M,CAAO,GAAKA,EAAQ,WAAa,EAAG,CACtDwN,EAAmBxN,EAAQ,MAAM,SACjC,IAAItP,EAAWoc,EAAM,IAAI9M,EAAS,UAAU,EAExCtP,IAAa,aACfsP,EAAQ,MAAM,SAAW,QAE/B,CAEE,IAAIyN,EAAUX,EAAM,oBAAoBhR,CAAG,EACvC4R,EAAUZ,EAAM,mBAAmBhR,CAAG,EACtC6R,EAAgBb,EAAM,cAAchR,CAAG,EACvC8R,EAAiBd,EAAM,eAAehR,CAAG,EACzC+R,EAAgBjC,EAAgB,YAChCkC,EAAiBlC,EAAgB,aAGjCmC,EAAY,OAAO,iBAAiBrG,CAAI,EAe5C,GAbIqG,EAAU,YAAc,WAC1BF,EAAgB/R,EAAI,YAGlBiS,EAAU,YAAc,WAC1BD,EAAiBhS,EAAI,aAInBkE,EAAQ,QACVA,EAAQ,MAAM,SAAWwN,GAGvBF,GAAoBF,GAAgBpN,CAAO,EAE7CuN,EAAY,KAAO,KAAK,IAAIA,EAAY,KAAME,CAAO,EACrDF,EAAY,IAAM,KAAK,IAAIA,EAAY,IAAKG,CAAO,EACnDH,EAAY,MAAQ,KAAK,IAAIA,EAAY,MAAOE,EAAUE,CAAa,EACvEJ,EAAY,OAAS,KAAK,IAAIA,EAAY,OAAQG,EAAUE,CAAc,MACrE,CAEL,IAAII,EAAkB,KAAK,IAAIH,EAAeJ,EAAUE,CAAa,EACrEJ,EAAY,MAAQ,KAAK,IAAIA,EAAY,MAAOS,CAAe,EAC/D,IAAIC,EAAmB,KAAK,IAAIH,EAAgBJ,EAAUE,CAAc,EACxEL,EAAY,OAAS,KAAK,IAAIA,EAAY,OAAQU,CAAgB,CACtE,CAEE,OAAOV,EAAY,KAAO,GAAKA,EAAY,MAAQ,GAAKA,EAAY,OAASA,EAAY,KAAOA,EAAY,MAAQA,EAAY,KAAOA,EAAc,IACvJ,CAEA,SAASW,GAAkBC,EAAaC,EAAUb,EAAaR,EAAU,CACvE,IAAInW,EAAMkW,EAAM,MAAMqB,CAAW,EAC7BE,EAAO,CACT,MAAOD,EAAS,MAChB,OAAQA,EAAS,MAClB,EAED,OAAIrB,EAAS,SAAWnW,EAAI,KAAO2W,EAAY,OAC7C3W,EAAI,KAAO2W,EAAY,MAIrBR,EAAS,aAAenW,EAAI,MAAQ2W,EAAY,MAAQ3W,EAAI,KAAOyX,EAAK,MAAQd,EAAY,QAC9Fc,EAAK,OAASzX,EAAI,KAAOyX,EAAK,MAAQd,EAAY,OAIhDR,EAAS,SAAWnW,EAAI,KAAOyX,EAAK,MAAQd,EAAY,QAE1D3W,EAAI,KAAO,KAAK,IAAI2W,EAAY,MAAQc,EAAK,MAAOd,EAAY,IAAI,GAIlER,EAAS,SAAWnW,EAAI,IAAM2W,EAAY,MAC5C3W,EAAI,IAAM2W,EAAY,KAIpBR,EAAS,cAAgBnW,EAAI,KAAO2W,EAAY,KAAO3W,EAAI,IAAMyX,EAAK,OAASd,EAAY,SAC7Fc,EAAK,QAAUzX,EAAI,IAAMyX,EAAK,OAASd,EAAY,QAIjDR,EAAS,SAAWnW,EAAI,IAAMyX,EAAK,OAASd,EAAY,SAE1D3W,EAAI,IAAM,KAAK,IAAI2W,EAAY,OAASc,EAAK,OAAQd,EAAY,GAAG,GAG/DT,EAAM,IAAIlW,EAAKyX,CAAI,CAC5B,CAEA,SAASC,GAAUnhB,EAAM,CACvB,IAAIpD,EACA8d,EACApU,EAEJ,GAAI,CAACqZ,EAAM,SAAS3f,CAAI,GAAKA,EAAK,WAAa,EAC7CpD,EAAS+iB,EAAM,OAAO3f,CAAI,EAC1B0a,EAAIiF,EAAM,WAAW3f,CAAI,EACzBsG,EAAIqZ,EAAM,YAAY3f,CAAI,MACrB,CACL,IAAI2O,EAAMgR,EAAM,UAAU3f,CAAI,EAC9BpD,EAAS,CACP,KAAM+iB,EAAM,oBAAoBhR,CAAG,EACnC,IAAKgR,EAAM,mBAAmBhR,CAAG,CAClC,EACD+L,EAAIiF,EAAM,cAAchR,CAAG,EAC3BrI,EAAIqZ,EAAM,eAAehR,CAAG,CAChC,CAEE,OAAA/R,EAAO,MAAQ8d,EACf9d,EAAO,OAAS0J,EACT1J,CACT,CAKA,SAASwkB,GAAeC,EAAQvT,EAAO,CACrC,IAAIwT,EAAIxT,EAAM,OAAO,CAAC,EAClByT,EAAIzT,EAAM,OAAO,CAAC,EAClB4M,EAAI2G,EAAO,MACX/a,EAAI+a,EAAO,OACXhH,EAAIgH,EAAO,KACXzqB,EAAIyqB,EAAO,IAEf,OAAIC,IAAM,IACR1qB,GAAK0P,EAAI,EACAgb,IAAM,MACf1qB,GAAK0P,GAGHib,IAAM,IACRlH,GAAKK,EAAI,EACA6G,IAAM,MACflH,GAAKK,GAGA,CACL,KAAML,EACN,IAAKzjB,CACN,CACH,CAEA,SAAS4qB,GAAeP,EAAUQ,EAAe3jB,EAAQlB,EAAQ8kB,EAAc,CAC7E,IAAIC,EAAKP,GAAeK,EAAe3jB,EAAO,CAAC,CAAC,EAC5C8jB,EAAKR,GAAeH,EAAUnjB,EAAO,CAAC,CAAC,EACvC+jB,EAAO,CAACD,EAAG,KAAOD,EAAG,KAAMC,EAAG,IAAMD,EAAG,GAAG,EAC9C,MAAO,CACL,KAAM,KAAK,MAAMV,EAAS,KAAOY,EAAK,CAAC,EAAIjlB,EAAO,CAAC,EAAI8kB,EAAa,CAAC,CAAC,EACtE,IAAK,KAAK,MAAMT,EAAS,IAAMY,EAAK,CAAC,EAAIjlB,EAAO,CAAC,EAAI8kB,EAAa,CAAC,CAAC,CACrE,CACH,CAOA,SAASI,GAAQd,EAAaC,EAAUb,EAAa,CACnD,OAAOY,EAAY,KAAOZ,EAAY,MAAQY,EAAY,KAAOC,EAAS,MAAQb,EAAY,KAChG,CAEA,SAAS2B,GAAQf,EAAaC,EAAUb,EAAa,CACnD,OAAOY,EAAY,IAAMZ,EAAY,KAAOY,EAAY,IAAMC,EAAS,OAASb,EAAY,MAC9F,CAEA,SAAS4B,GAAgBhB,EAAaC,EAAUb,EAAa,CAC3D,OAAOY,EAAY,KAAOZ,EAAY,OAASY,EAAY,KAAOC,EAAS,MAAQb,EAAY,IACjG,CAEA,SAAS6B,GAAgBjB,EAAaC,EAAUb,EAAa,CAC3D,OAAOY,EAAY,IAAMZ,EAAY,QAAUY,EAAY,IAAMC,EAAS,OAASb,EAAY,GACjG,CAEA,SAAS8B,GAAKpkB,EAAQqkB,EAAKrrB,EAAK,CAC9B,IAAI8jB,EAAM,CAAE,EACZ,OAAA+E,EAAM,KAAK7hB,EAAQ,SAAU0F,EAAG,CAC9BoX,EAAI,KAAKpX,EAAE,QAAQ2e,EAAK,SAAUxrB,EAAG,CACnC,OAAOG,EAAIH,CAAC,CAClB,CAAK,CAAC,CACN,CAAG,EACMikB,CACT,CAEA,SAASwH,GAAWxlB,EAAQ+I,EAAO,CACjC,OAAA/I,EAAO+I,CAAK,EAAI,CAAC/I,EAAO+I,CAAK,EACtB/I,CACT,CAEA,SAASylB,GAAcC,EAAKC,EAAW,CACrC,IAAIze,EAEJ,MAAI,KAAK,KAAKwe,CAAG,EACfxe,EAAI,SAASwe,EAAI,UAAU,EAAGA,EAAI,OAAS,CAAC,EAAG,EAAE,EAAI,IAAMC,EAE3Dze,EAAI,SAASwe,EAAK,EAAE,EAGfxe,GAAK,CACd,CAEA,SAAS0e,GAAgB5lB,EAAQud,EAAI,CACnCvd,EAAO,CAAC,EAAIylB,GAAczlB,EAAO,CAAC,EAAGud,EAAG,KAAK,EAC7Cvd,EAAO,CAAC,EAAIylB,GAAczlB,EAAO,CAAC,EAAGud,EAAG,MAAM,CAChD,CAQA,SAASsI,GAAQtI,EAAIuI,EAAW5U,EAAO6U,EAAoB,CACzD,IAAI7kB,EAASgQ,EAAM,OACflR,EAASkR,EAAM,QAAU,CAAC,EAAG,CAAC,EAC9B4T,EAAe5T,EAAM,cAAgB,CAAC,EAAG,CAAC,EAC1C8R,EAAW9R,EAAM,SACjB7S,EAAS6S,EAAM,QAAUqM,EAC7Bvd,EAAS,CAAA,EAAG,OAAOA,CAAM,EACzB8kB,EAAe,CAAA,EAAG,OAAOA,CAAY,EACrC9B,EAAWA,GAAY,CAAE,EACzB,IAAIgD,EAAiB,CAAE,EACnBC,EAAO,EACP1C,EAAmB,CAAC,EAAEP,GAAYA,EAAS,kBAE3CQ,EAAcF,GAAyBjlB,EAAQklB,CAAgB,EAE/Dc,EAAWE,GAAUlmB,CAAM,EAE/BunB,GAAgB5lB,EAAQqkB,CAAQ,EAChCuB,GAAgBd,EAAcgB,CAAS,EAEvC,IAAI1B,EAAcQ,GAAeP,EAAUyB,EAAW5kB,EAAQlB,EAAQ8kB,CAAY,EAE9EoB,EAAcnD,EAAM,MAAMsB,EAAUD,CAAW,EAEnD,GAAIZ,IAAgBR,EAAS,SAAWA,EAAS,UAAY+C,EAAoB,CAC/E,GAAI/C,EAAS,SAEPkC,GAAQd,EAAaC,EAAUb,CAAW,EAAG,CAE/C,IAAI2C,EAAYb,GAAKpkB,EAAQ,SAAU,CACrC,EAAG,IACH,EAAG,GACb,CAAS,EAEGklB,EAAYZ,GAAWxlB,EAAQ,CAAC,EAChCqmB,EAAkBb,GAAWV,EAAc,CAAC,EAC5CwB,EAAiB1B,GAAeP,EAAUyB,EAAWK,EAAWC,EAAWC,CAAe,EAEzFjB,GAAgBkB,EAAgBjC,EAAUb,CAAW,IACxDyC,EAAO,EACP/kB,EAASilB,EACTnmB,EAASomB,EACTtB,EAAeuB,EAEzB,CAGI,GAAIrD,EAAS,SAEPmC,GAAQf,EAAaC,EAAUb,CAAW,EAAG,CAE/C,IAAI+C,EAAajB,GAAKpkB,EAAQ,SAAU,CACtC,EAAG,IACH,EAAG,GACb,CAAS,EAGGslB,EAAahB,GAAWxlB,EAAQ,CAAC,EAEjCymB,EAAmBjB,GAAWV,EAAc,CAAC,EAE7C4B,EAAkB9B,GAAeP,EAAUyB,EAAWS,EAAYC,EAAYC,CAAgB,EAE7FpB,GAAgBqB,EAAiBrC,EAAUb,CAAW,IACzDyC,EAAO,EACP/kB,EAASqlB,EACTvmB,EAASwmB,EACT1B,EAAe2B,EAEzB,CAIQR,IACF7B,EAAcQ,GAAeP,EAAUyB,EAAW5kB,EAAQlB,EAAQ8kB,CAAY,EAC9E/B,EAAM,IAAImD,EAAa9B,CAAW,GAGpC,IAAIuC,EAAezB,GAAQd,EAAaC,EAAUb,CAAW,EACzDoD,EAAezB,GAAQf,EAAaC,EAAUb,CAAW,EAG7D,GAAImD,GAAgBC,EAAc,CAChC,IAAIC,EAAc3lB,EAEdylB,IACFE,EAAcvB,GAAKpkB,EAAQ,SAAU,CACnC,EAAG,IACH,EAAG,GACb,CAAS,GAGC0lB,IACFC,EAAcvB,GAAKpkB,EAAQ,SAAU,CACnC,EAAG,IACH,EAAG,GACb,CAAS,GAGHA,EAAS2lB,EACT7mB,EAASkR,EAAM,QAAU,CAAC,EAAG,CAAC,EAC9B4T,EAAe5T,EAAM,cAAgB,CAAC,EAAG,CAAC,CAC3C,CAGD8U,EAAe,QAAUhD,EAAS,SAAW2D,EAC7CX,EAAe,QAAUhD,EAAS,SAAW4D,GAEzCZ,EAAe,SAAWA,EAAe,WAC3CE,EAAc/B,GAAkBC,EAAaC,EAAUb,EAAawC,CAAc,EAErF,CAGD,OAAIE,EAAY,QAAU7B,EAAS,OACjCtB,EAAM,IAAI1kB,EAAQ,QAAS0kB,EAAM,MAAM1kB,CAAM,EAAI6nB,EAAY,MAAQ7B,EAAS,KAAK,EAGjF6B,EAAY,SAAW7B,EAAS,QAClCtB,EAAM,IAAI1kB,EAAQ,SAAU0kB,EAAM,OAAO1kB,CAAM,EAAI6nB,EAAY,OAAS7B,EAAS,MAAM,EAMzFtB,EAAM,OAAO1kB,EAAQ,CACnB,KAAM6nB,EAAY,KAClB,IAAKA,EAAY,GACrB,EAAK,CACD,YAAahV,EAAM,YACnB,aAAcA,EAAM,aACpB,gBAAiBA,EAAM,gBACvB,YAAaA,EAAM,WACvB,CAAG,EACM,CACL,OAAQhQ,EACR,OAAQlB,EACR,aAAc8kB,EACd,SAAUkB,CACX,CACH,CAUA,SAASc,GAAmB1oB,EAAQmlB,EAAkB,CACpD,IAAIC,EAAcF,GAAyBllB,EAAQmlB,CAAgB,EAC/DwD,EAAexC,GAAUnmB,CAAM,EACnC,MAAO,CAAColB,GAAeuD,EAAa,KAAOA,EAAa,OAASvD,EAAY,MAAQuD,EAAa,IAAMA,EAAa,QAAUvD,EAAY,KAAOuD,EAAa,MAAQvD,EAAY,OAASuD,EAAa,KAAOvD,EAAY,MAC9N,CAEA,SAASwD,GAAazJ,EAAI0J,EAAS/V,EAAO,CACxC,IAAI9S,EAAS8S,EAAM,QAAU+V,EACzBpC,EAAgBN,GAAUnmB,CAAM,EAChC8oB,EAA0B,CAACJ,GAAmB1oB,EAAQ8S,EAAM,UAAYA,EAAM,SAAS,gBAAgB,EAC3G,OAAO2U,GAAQtI,EAAIsH,EAAe3T,EAAOgW,CAAuB,CAClE,CAEAF,GAAa,kBAAoB9D,GACjC8D,GAAa,2BAA6B1D,GAO1C,SAAS6D,GAAW5J,EAAI6J,EAAUlW,EAAO,CACvC,IAAImW,EACAC,EACA5J,EAAMqF,EAAM,YAAYxF,CAAE,EAC1BxL,EAAM2L,EAAI,aAAeA,EAAI,aAC7BgG,EAAUX,EAAM,oBAAoBhR,CAAG,EACvC4R,EAAUZ,EAAM,mBAAmBhR,CAAG,EACtC6R,EAAgBb,EAAM,cAAchR,CAAG,EACvC8R,EAAiBd,EAAM,eAAehR,CAAG,EAEzC,UAAWqV,EACbC,EAAQD,EAAS,MAEjBC,EAAQ3D,EAAU0D,EAAS,QAGzB,UAAWA,EACbE,EAAQF,EAAS,MAEjBE,EAAQ3D,EAAUyD,EAAS,QAG7B,IAAItB,EAAY,CACd,KAAMuB,EACN,IAAKC,EACL,MAAO,EACP,OAAQ,CACT,EACGC,EAAcF,GAAS,GAAKA,GAAS3D,EAAUE,GAAiB0D,GAAS,GAAKA,GAAS3D,EAAUE,EAEjG3iB,EAAS,CAACgQ,EAAM,OAAO,CAAC,EAAG,IAAI,EACnC,OAAO2U,GAAQtI,EAAIuI,EAAW3nB,GAAe,CAAA,EAAI+S,EAAO,CACtD,OAAQhQ,CACT,CAAA,EAAGqmB,CAAW,CACjB,CCjzCO,SAASC,GAAYC,EAAMxT,EAAM,CACtC,OAAIwT,IAASxT,EAAa,GACtB,CAACwT,GAAQ,CAACxT,EAAa,GAEvB,UAAWA,GAAQ,UAAWA,EACzBwT,EAAK,QAAUxT,EAAK,OAASwT,EAAK,QAAUxT,EAAK,MAGtD,YAAaA,GAAQ,YAAaA,EAC7BwT,EAAK,UAAYxT,EAAK,SAAWwT,EAAK,UAAYxT,EAAK,QAGzD,EACT,CACO,SAASyT,GAAaC,EAAeC,EAAW,CAEjDD,IAAkB,SAAS,eAAiBvY,GAASwY,EAAWD,CAAa,GAAK,OAAOA,EAAc,OAAU,YACnHA,EAAc,MAAO,CAEzB,CACO,SAASE,GAAc5R,EAASxV,EAAU,CAC/C,IAAIqnB,EAAY,KACZC,EAAa,KAEjB,SAASC,EAAStoB,EAAM,CACtB,IAAIC,EAAQmU,EAAepU,EAAM,CAAC,EAC9BtB,EAASuB,EAAM,CAAC,EAAE,OAEtB,GAAK,SAAS,gBAAgB,SAASvB,CAAM,EAE7C,KAAI6pB,EAAwB7pB,EAAO,sBAAuB,EACtD8pB,EAAQD,EAAsB,MAC9BE,EAASF,EAAsB,OAE/BG,EAAa,KAAK,MAAMF,CAAK,EAC7BG,EAAc,KAAK,MAAMF,CAAM,GAE/BL,IAAcM,GAAcL,IAAeM,IAE7C,QAAQ,UAAU,KAAK,UAAY,CACjC5nB,EAAS,CACP,MAAO2nB,EACP,OAAQC,CAClB,CAAS,CACT,CAAO,EAGHP,EAAYM,EACZL,EAAaM,EACjB,CAEE,IAAIC,EAAiB,IAAIC,GAAeP,CAAQ,EAEhD,OAAI/R,GACFqS,EAAe,QAAQrS,CAAO,EAGzB,UAAY,CACjBqS,EAAe,WAAY,CAC5B,CACH,CC9DA,MAAAE,GAAgB,SAAU/nB,EAAUgoB,EAAQ,CAC1C,IAAIC,EAAYr0B,EAAM,OAAO,EAAK,EAC9Bs0B,EAAat0B,EAAM,OAAO,IAAI,EAElC,SAASu0B,GAAgB,CACvB,OAAO,aAAaD,EAAW,OAAO,CAC1C,CAEE,SAASE,EAAQtf,EAAO,CACtB,GAAI,CAACmf,EAAU,SAAWnf,IAAU,GAAM,CACxC,GAAI9I,EAAU,IAAK,GAEjB,OAGFioB,EAAU,QAAU,GACpBE,EAAe,EACfD,EAAW,QAAU,OAAO,WAAW,UAAY,CACjDD,EAAU,QAAU,EACrB,EAAED,CAAM,CACf,MACMG,EAAe,EACfD,EAAW,QAAU,OAAO,WAAW,UAAY,CACjDD,EAAU,QAAU,GACpBG,EAAS,CACV,EAAEJ,CAAM,CAEf,CAEE,MAAO,CAACI,EAAS,UAAY,CAC3BH,EAAU,QAAU,GACpBE,EAAe,CACnB,CAAG,CACH,ECnBA,SAAStS,GAAWvQ,EAAM,CACxB,OAAI,OAAOA,GAAS,WAAmB,KAChCA,EAAM,CACf,CAEA,SAAS+iB,GAASjnB,EAAO,CACvB,OAAIU,GAAQV,CAAK,IAAM,UAAY,CAACA,EAAc,KAC3CA,CACT,CAEA,IAAIknB,GAAQ,SAAerpB,EAAM6P,EAAK,CACpC,IAAIta,EAAWyK,EAAK,SAChBxJ,EAAWwJ,EAAK,SAChBtB,EAASsB,EAAK,OACdwR,EAAQxR,EAAK,MACbspB,EAAUtpB,EAAK,QACfupB,EAAsBvpB,EAAK,oBAC3BwpB,EAAwBxpB,EAAK,kBAC7BypB,EAAoBD,IAA0B,OAAS,EAAIA,EAC3DE,EAAW/0B,EAAM,OAAO,EAAE,EAC1BkmB,EAAUlmB,EAAM,OAAQ,EACxBg1B,EAAYh1B,EAAM,SAAS,KAAKY,CAAQ,EAGxCq0B,EAAqBj1B,EAAM,OAAO,EAAE,EACxCi1B,EAAmB,QAAQ,SAAWpzB,EACtCozB,EAAmB,QAAQ,OAASlrB,EACpCkrB,EAAmB,QAAQ,QAAUN,EAErC,IAAIO,EAAaf,GAAU,UAAY,CACrC,IAAIgB,EAAwBF,EAAmB,QAC3CG,EAAiBD,EAAsB,SACvCE,EAAeF,EAAsB,OACrCG,EAAgBH,EAAsB,QAE1C,GAAI,CAACC,GAAkBC,EAAc,CACnC,IAAIrrB,EAASkc,EAAQ,QACjBjhB,EACA2c,EAAUK,GAAWoT,CAAY,EACjC7nB,EAAQinB,GAASY,CAAY,EACjCN,EAAS,QAAQ,QAAUnT,EAC3BmT,EAAS,QAAQ,MAAQvnB,EAGzB,IAAI+nB,EAAY,SACZjC,EAAgBiC,EAAU,cAE9B,OAAI3T,GAAWvf,GAAUuf,CAAO,EAC9B3c,EAAS0tB,GAAa3oB,EAAQ4X,EAAS/E,CAAK,EACnCrP,IACTvI,EAAS6tB,GAAW9oB,EAAQwD,EAAOqP,CAAK,GAG1CwW,GAAaC,EAAetpB,CAAM,EAE9BsrB,GAAiBrwB,GACnBqwB,EAActrB,EAAQ/E,CAAM,EAGvB,EACb,CAEI,MAAO,EACR,EAAE6vB,CAAiB,EAChBU,EAAc/V,EAAeyV,EAAY,CAAC,EAC1CO,EAAcD,EAAY,CAAC,EAC3BE,EAAmBF,EAAY,CAAC,EAIhCG,EAAgB31B,EAAM,OAAO,CAC/B,OAAQ,UAAkB,CAAA,CAC9B,CAAG,EAEG41B,EAAsB51B,EAAM,OAAO,CACrC,OAAQ,UAAkB,CAAA,CAC9B,CAAG,EACDA,EAAM,UAAU,UAAY,CAC1B,IAAI4hB,EAAUK,GAAWlY,CAAM,EAC3ByD,EAAQinB,GAAS1qB,CAAM,EAEvBmc,EAAQ,UAAY0P,EAAoB,QAAQ,UAClDA,EAAoB,QAAQ,OAAQ,EACpCA,EAAoB,QAAQ,QAAU1P,EAAQ,QAC9C0P,EAAoB,QAAQ,OAASpC,GAActN,EAAQ,QAASuP,CAAW,IAG7EV,EAAS,QAAQ,UAAYnT,GAAW,CAACuR,GAAY4B,EAAS,QAAQ,MAAOvnB,CAAK,KACpFioB,IAGIE,EAAc,QAAQ,UAAY/T,IACpC+T,EAAc,QAAQ,OAAQ,EAC9BA,EAAc,QAAQ,QAAU/T,EAChC+T,EAAc,QAAQ,OAASnC,GAAc5R,EAAS6T,CAAW,GAGzE,CAAG,EAEDz1B,EAAM,UAAU,UAAY,CACrB6B,EAGH6zB,EAAkB,EAFlBD,EAAa,CAInB,EAAK,CAAC5zB,CAAQ,CAAC,EAEb,IAAIg0B,EAAe71B,EAAM,OAAO,IAAI,EACpC,OAAAA,EAAM,UAAU,UAAY,CACtB40B,EACGiB,EAAa,UAChBA,EAAa,QAAU5mB,GAAiB,OAAQ,SAAUwmB,CAAW,GAE9DI,EAAa,UACtBA,EAAa,QAAQ,OAAQ,EAC7BA,EAAa,QAAU,KAE7B,EAAK,CAACjB,CAAmB,CAAC,EAExB50B,EAAM,UAAU,UAAY,CAC1B,OAAO,UAAY,CACjB21B,EAAc,QAAQ,OAAQ,EAC9BC,EAAoB,QAAQ,OAAQ,EAChCC,EAAa,SAASA,EAAa,QAAQ,OAAQ,EACvDH,EAAkB,CACnB,CACF,EAAE,CAAE,CAAA,EAEL11B,EAAM,oBAAoBkb,EAAK,UAAY,CACzC,MAAO,CACL,WAAY,UAAsB,CAChC,OAAOua,EAAY,EAAI,CAC/B,CACK,CACL,CAAG,EAEGz1B,EAAM,eAAeg1B,CAAS,IAChCA,EAAYh1B,EAAM,aAAag1B,EAAW,CACxC,IAAK7Z,GAAW6Z,EAAU,IAAK9O,CAAO,CAC5C,CAAK,GAGI8O,CACT,EAEIc,GAAW91B,EAAM,WAAW00B,EAAK,EACrCoB,GAAS,YAAc,QC5JvB,IAAIC,GAAc,CAAC,UAAW,QAAS,KAAM,QAAQ,EACrD,MAAAC,GAAgB,SAAUhU,EAASiU,EAAW,CAC5C,IAAI1W,EAAYhd,EAAQ,SAAC,IAAI,EACzBid,EAAaC,EAAeF,EAAW,CAAC,EACxCoB,EAASnB,EAAW,CAAC,EACrB0W,EAAoB1W,EAAW,CAAC,EAEhC2W,EAASptB,EAAAA,OAAQ,EACjBuW,EAAavW,EAAM,OAAC,EAAK,EAE7B,SAAS4a,EAAUsB,EAAY,CACxB3F,EAAW,SACd4W,EAAkBjR,CAAU,CAElC,CAEE,SAASmR,GAAY,CACnBjc,GAAI,OAAOgc,EAAO,OAAO,CAC7B,CAEE,SAASE,EAAajqB,EAAU,CAC9BgqB,EAAW,EACXD,EAAO,QAAUhc,GAAI,UAAY,CAE/BwJ,EAAU,SAAUyP,EAAM,CACxB,OAAQzS,EAAM,CACZ,IAAK,QACH,MAAO,SAET,IAAK,SACH,MAAO,QAGnB,CAEQ,OAAOyS,CACf,CAAO,EACDhnB,GAAa,MAAuCA,EAAU,CACpE,CAAK,CACF,CAGD5K,OAAAA,EAAAA,UAAU,UAAY,CACpBmiB,EAAU,SAAS,CACvB,EAAK,CAAC3B,CAAO,CAAC,EAEZxgB,EAAAA,UAAU,UAAY,CACpB,OAAQmf,EAAM,CACZ,IAAK,UACHsV,EAAW,EACX,KAGR,CAEQtV,IACFwV,EAAO,QAAUhc,GAAkBmc,GAAgCC,GAAoB,KAAK,SAASC,GAAU,CAC7G,IAAI9hB,EAAOuQ,EACX,OAAOsR,GAAoB,KAAK,SAAkBE,EAAU,CAC1D,OACE,OAAQA,EAAS,KAAOA,EAAS,KAAI,CACnC,IAAK,GACH/hB,EAAQqhB,GAAY,QAAQpV,CAAM,EAClCsE,EAAa8Q,GAAYrhB,EAAQ,CAAC,EAE9BuQ,GAAcvQ,IAAU,IAC1BiP,EAAUsB,CAAU,EAGxB,IAAK,GACL,IAAK,MACH,OAAOwR,EAAS,KAAM,CACtC,CAES,EAAED,CAAO,CACX,CAAA,CAAC,CAAC,EAET,EAAK,CAAC7V,CAAM,CAAC,EACXnf,EAAAA,UAAU,UAAY,CACpB,OAAO,UAAY,CACjB8d,EAAW,QAAU,GACrB8W,EAAW,CACZ,CACF,EAAE,EAAE,EACE,CAACzV,EAAQ0V,CAAY,CAC9B,ECxFeK,GAAC,SAAUC,EAAS,CACjC,IAAI/V,EAAkBC,EAAAA,SAAe,CACnC,MAAO,EACP,OAAQ,CACZ,CAAG,EACGC,EAAmBrB,EAAemB,EAAiB,CAAC,EACpDgW,EAAa9V,EAAiB,CAAC,EAC/B+V,EAAgB/V,EAAiB,CAAC,EAEtC,SAASgW,EAAelV,EAAS,CAC/BiV,EAAc,CACZ,MAAOjV,EAAQ,YACf,OAAQA,EAAQ,YACtB,CAAK,CACF,CAGD,IAAInW,EAAQ+Y,EAAAA,QAAc,UAAY,CACpC,IAAIuS,EAAY,CAAE,EAElB,GAAIJ,EAAS,CACX,IAAI9C,EAAQ+C,EAAW,MACnB9C,EAAS8C,EAAW,OAEpBD,EAAQ,QAAQ,QAAQ,IAAM,IAAM7C,EACtCiD,EAAU,OAASjD,EACV6C,EAAQ,QAAQ,WAAW,IAAM,IAAM7C,IAChDiD,EAAU,UAAYjD,GAGpB6C,EAAQ,QAAQ,OAAO,IAAM,IAAM9C,EACrCkD,EAAU,MAAQlD,EACT8C,EAAQ,QAAQ,UAAU,IAAM,IAAM9C,IAC/CkD,EAAU,SAAWlD,EAE7B,CAEI,OAAOkD,CACX,EAAK,CAACJ,EAASC,CAAU,CAAC,EACxB,MAAO,CAACnrB,EAAOqrB,CAAc,CAC/B,EC/BA,IAAIE,GAA0BtR,EAAgB,WAAC,SAAUta,EAAO8P,EAAK,CACnE,IAAI8G,EAAU5W,EAAM,QAChB6B,EAAY7B,EAAM,UAClBjL,EAAYiL,EAAM,UAClBK,EAAQL,EAAM,MACdxK,EAAWwK,EAAM,SACjB8b,EAAS9b,EAAM,OACfurB,EAAUvrB,EAAM,QAChB6rB,EAAqB7rB,EAAM,mBAC3B0a,EAAc1a,EAAM,YACpByR,EAAQzR,EAAM,MACdoC,EAAQpC,EAAM,MACd8rB,EAAiB9rB,EAAM,eACvB+rB,EAAwB/rB,EAAM,sBAC9BupB,EAAUvpB,EAAM,QAChBgsB,EAAehsB,EAAM,aACrBisB,EAAejsB,EAAM,aACrBksB,EAAclsB,EAAM,YACpBmsB,EAAensB,EAAM,aACrBosB,EAAWzuB,EAAAA,OAAQ,EACnB0uB,EAAa1uB,EAAAA,OAAQ,EAErBwW,EAAYhd,EAAAA,SAAU,EACtBid,EAAaC,EAAeF,EAAW,CAAC,EACxCmY,EAAmBlY,EAAW,CAAC,EAC/BmY,EAAsBnY,EAAW,CAAC,EAGlCoY,EAAmBlB,GAAgBC,CAAO,EAC1CkB,EAAoBpY,EAAemY,EAAkB,CAAC,EACtDE,EAAeD,EAAkB,CAAC,EAClCE,EAAsBF,EAAkB,CAAC,EAE7C,SAAS5B,GAAY,CACfU,GACFoB,EAAoBb,EAAc,CAAE,CAEvC,CAGD,IAAIc,EAAoBhC,GAAiBhU,EAASiU,CAAS,EACvDgC,EAAqBxY,EAAeuY,EAAmB,CAAC,EACxDrX,EAASsX,EAAmB,CAAC,EAC7B5B,EAAe4B,EAAmB,CAAC,EAGnCC,GAAoBnvB,EAAAA,SAGxB,SAASovB,IAAiB,CACxB,OAAI3qB,GAIG0pB,CACX,CAEE,SAASkB,IAAa,CACpB,IAAIC,GAEHA,EAAoBb,EAAS,WAAa,MAAQa,IAAsB,QAAkBA,EAAkB,WAAY,CAC7H,CAEE,SAASC,GAAgBC,EAAcC,EAAY,CACjD,GAAI7X,IAAW,QAAS,CACtB,IAAI8X,GAAuBtB,EAAsBqB,CAAU,EAC3Db,EAAoBc,EAAoB,EAEpCf,IAAqBe,GACvB,QAAQ,UAAU,KAAK,UAAY,CACjCL,GAAY,CACtB,CAAS,EAED/B,EAAa,UAAY,CACvB,IAAIqC,GAEHA,EAAwBR,GAAkB,WAAa,MAAQQ,IAA0B,QAAkBA,EAAsB,KAAKR,EAAiB,CAClK,CAAS,EAGHvD,GAAY,MAAsCA,EAAQ4D,EAAcC,CAAU,CACxF,CACG,CAGD,IAAIzR,GAAS/a,EAAc,CAAE,EAAE8a,GAAU1b,CAAK,CAAC,EAE/C,CAAC,cAAe,aAAc,YAAY,EAAE,QAAQ,SAAUkS,EAAW,CACvE,IAAIqb,EAAgB5R,GAAOzJ,CAAS,EAEpCyJ,GAAOzJ,CAAS,EAAI,SAAUsE,GAASjb,EAAO,CAC5C,OAAA0vB,EAAc,EACPsC,GAAkB,KAAmC,OAASA,EAAc/W,GAASjb,CAAK,CAClG,CACL,CAAG,EAED,SAASiyB,IAAgB,CACvB,OAAO,IAAI,QAAQ,SAAUC,EAAS,CACpCX,GAAkB,QAAUW,CAClC,CAAK,CACF,CAGDvY,EAAAA,UAAgB,UAAY,CACtB,CAACyG,GAAO,YAAcpG,IAAW,UACnC0V,EAAc,CAEjB,EAAE,CAACtP,GAAO,WAAYpG,CAAM,CAAC,EAE9BmY,EAAyB,oBAAC5d,EAAK,UAAY,CACzC,MAAO,CACL,WAAYkd,GACZ,WAAY,UAAsB,CAChC,OAAOX,EAAW,OAC1B,CACK,CACL,CAAG,EAED,IAAIvS,GAAclZ,EAAcA,EAAc,CAAA,EAAI8rB,CAAY,EAAG,GAAI,CACnE,OAAQ5Q,EACR,QAASvG,IAAW,UAAYA,IAAW,UAAY,CAACqB,EAAU,OAAY,EAC9E,cAAerB,IAAW,SAAW,OAAY,MAClD,EAAElV,CAAK,EAGJstB,EAAgB,GAEflc,GAAU,MAAoCA,EAAM,SAAY8D,IAAW,SAAWA,IAAW,YACpGoY,EAAgB,IAGlB,IAAI/D,GAAYp0B,EAEhB,OAAIo4B,WAAe,MAAMp4B,CAAQ,EAAI,IACnCo0B,GAAyB5rB,EAAmB,cAAC,MAAO,CAClD,UAAW,GAAG,OAAO6D,EAAW,UAAU,CAC3C,EAAErM,CAAQ,GAGOwI,EAAmB,cAACqc,GAAW7V,EAAS,CAC1D,QAASoS,EACT,IAAKyV,EACL,gBAAiB,GAAG,OAAOxqB,EAAW,SAAS,CAChD,EAAE8Z,GAAQ,CACT,gBAAiB6R,GACjB,eAAgBA,GAChB,cAAe3B,EACf,YAAanR,CACjB,CAAG,EAAG,SAAUza,EAAM4tB,EAAW,CAC7B,IAAIC,GAAkB7tB,EAAK,UACvB8tB,EAAc9tB,EAAK,MACnB+tB,GAAkBxrB,EAAWX,EAAW9M,EAAWu3B,EAAkBwB,EAAe,EACxF,OAAoB9vB,EAAAA,cAAoBsrB,GAAO,CAC7C,OAAQyD,GAAgB,EACxB,IAAK,QACL,IAAKX,EACL,oBAAqB,GACrB,SAAUuB,EACV,MAAOlc,EACP,QAASyb,EACf,EAAoBlvB,EAAAA,cAAoB,MAAO,CACzC,IAAK6vB,EACL,UAAWG,GACX,aAAchC,EACd,aAAcC,EACd,mBAAoBC,EACpB,oBAAqBC,EACrB,MAAOvrB,EAAcA,EAAc,CAAA,EAAImtB,CAAW,EAAGjU,EAAW,CACjE,EAAE8P,EAAS,CAAC,CACjB,CAAG,CACH,CAAC,EACDgC,GAAW,YAAc,aCjLzB,IAAIqC,GAAgC3T,EAAgB,WAAC,SAAUta,EAAO8P,EAAK,CACzE,IAAIjO,EAAY7B,EAAM,UAClB4W,EAAU5W,EAAM,QAChB8b,EAAS9b,EAAM,OACfxK,EAAWwK,EAAM,SACjBkuB,EAAgBluB,EAAM,OAC1BkuB,EAAgBA,IAAkB,OAAS,CAAA,EAAKA,EAChD,IAAIC,EAAiBD,EAAc,eAC/BE,EAAaF,EAAc,WAC3BG,EAAwBH,EAAc,YACtCI,EAAcD,IAA0B,OAAS,CAAA,EAAKA,EACtDE,EAAcL,EAAc,YAC5B7B,EAAaxX,EAAAA,SAEjB6Y,EAAyB,oBAAC5d,EAAK,UAAY,CACzC,MAAO,CACL,WAAY,UAAsB,CAAE,EACpC,WAAY,UAAsB,CAChC,OAAOuc,EAAW,OAC1B,CACK,CACL,CAAG,EAED,IAAIvS,EAAclZ,EAAc,CAC9B,OAAQkb,CACT,EAAEsS,CAAU,EAETxE,EAAYp0B,EAEhB,OAAIo4B,WAAe,MAAMp4B,CAAQ,EAAI,IACnCo0B,EAAyB5rB,EAAmB,cAAC,MAAO,CAClD,UAAW,GAAG,OAAO6D,EAAW,UAAU,CAC3C,EAAErM,CAAQ,GAIT+4B,IACF3E,EAAY2E,EAAY3E,CAAS,GAGf5rB,EAAmB,cAACqc,GAAW7V,EAAS,CAC1D,QAASoS,EACT,IAAKyV,EACL,cAAe,EAChB,EAAEiC,CAAW,EAAG,SAAUruB,EAAM4tB,EAAW,CAC1C,IAAIC,EAAkB7tB,EAAK,UACvB8tB,EAAc9tB,EAAK,MACnB+tB,EAAkBxrB,EAAWX,EAAWssB,EAAgBL,CAAe,EAC3E,OAAoB9vB,EAAAA,cAAoB,MAAO,CAC7C,IAAK6vB,EACL,UAAWG,EACX,MAAOptB,EAAcA,EAAc,CAAA,EAAImtB,CAAW,EAAGjU,CAAW,CACjE,EAAE8P,CAAS,CAChB,CAAG,CACH,CAAC,EACDqE,GAAiB,YAAc,mBClD/B,IAAIO,GAAqBlU,EAAgB,WAAC,SAAUra,EAAM6P,EAAK,CAC7D,IAAI8G,EAAU3W,EAAK,QACfwuB,EAASxuB,EAAK,OACdD,EAAQoE,GAAyBnE,EAAM,CAAC,UAAW,QAAQ,CAAC,EAE5DkU,EAAYhd,EAAQ,SAACyf,CAAO,EAC5BxC,EAAaC,EAAeF,EAAW,CAAC,EACxCua,EAAeta,EAAW,CAAC,EAC3Bua,EAAkBva,EAAW,CAAC,EAE9BiE,EAAalhB,EAAQ,SAAC,EAAK,EAC3BmhB,EAAajE,EAAegE,EAAY,CAAC,EACzCuW,EAAWtW,EAAW,CAAC,EACvBuW,EAAcvW,EAAW,CAAC,EAE1BwW,EAAaluB,EAAcA,EAAc,CAAA,EAAIZ,CAAK,EAAG,GAAI,CAC3D,QAAS0uB,CACb,CAAG,EAIDt4B,EAAAA,UAAU,UAAY,CACpBu4B,EAAgB/X,CAAO,EAEnBA,GAAW6X,GACbI,EAAY/c,GAAQ,CAAE,CAE5B,EAAK,CAAC8E,EAAS6X,CAAM,CAAC,EACpB,IAAIM,EAAYH,EAAwB5wB,EAAmB,cAACiwB,GAAkBzpB,EAAS,CAAE,EAAEsqB,EAAY,CACrG,OAAQL,EACR,IAAK3e,CACT,CAAG,CAAC,EAAiB9R,EAAAA,cAAoB4tB,GAAYpnB,EAAS,CAAA,EAAIsqB,EAAY,CAC1E,IAAKhf,CACN,CAAA,CAAC,EAEF,OAAoB9R,EAAAA,cAAoB,MAAO,KAAmBA,EAAmB,cAAC6d,GAAMiT,CAAU,EAAGC,CAAS,CACpH,CAAC,EACDP,GAAM,YAAc,QC9CpB,IAAIQ,GAA8BC,EAAmB,cAAC,IAAI,ECmB1D,SAASpoB,IAAO,CAAA,CAEhB,SAASqoB,IAAoB,CAC3B,MAAO,EACT,CAEA,SAASC,GAAe3Y,EAAS,CAC/B,OAAIA,EACKA,EAAQ,cAGV,OAAO,QAChB,CAEA,IAAI4Y,GAAe,CAAC,UAAW,cAAe,eAAgB,eAAgB,eAAgB,UAAW,SAAU,eAAe,EAK3H,SAASC,GAAgBC,EAAiB,CAC/C,IAAIC,EAAuB,SAAUjsB,EAAkB,CACrDC,GAAUgsB,EAASjsB,CAAgB,EAEnC,IAAIE,EAASxE,GAAauwB,CAAO,EAEjC,SAASA,EAAQvvB,EAAO,CACtB,IAAIyD,EAEJC,GAAgB,KAAM6rB,CAAO,EAE7B9rB,EAAQD,EAAO,KAAK,KAAMxD,CAAK,EAC/ByD,EAAM,SAAwB+rB,YAAiB,EAC/C/rB,EAAM,WAA0B+rB,YAAiB,EAEjD/rB,EAAM,aAAe,SAAUvC,EAAG,CAChC,IAAIuuB,EAAkBhsB,EAAM,MAAM,gBAElCA,EAAM,WAAW,eAAgBvC,CAAC,EAElCuC,EAAM,qBAAqB,GAAMgsB,EAAiBA,EAAkB,KAAOvuB,CAAC,CAC7E,EAEDuC,EAAM,YAAc,SAAUvC,EAAG,CAC/BuC,EAAM,WAAW,cAAevC,CAAC,EAEjCuC,EAAM,SAASvC,CAAC,CACjB,EAEDuC,EAAM,aAAe,SAAUvC,EAAG,CAChCuC,EAAM,WAAW,eAAgBvC,CAAC,EAElCuC,EAAM,qBAAqB,GAAOA,EAAM,MAAM,eAAe,CAC9D,EAEDA,EAAM,kBAAoB,UAAY,CACpCA,EAAM,gBAAiB,CACxB,EAEDA,EAAM,kBAAoB,SAAUvC,EAAG,CACrC,IAAIwuB,EAIAxuB,EAAE,eAAiB,CAACA,EAAE,cAAc,YAAcyO,IAAU+f,EAAwBjsB,EAAM,SAAS,WAAa,MAAQisB,IAA0B,OAAS,OAASA,EAAsB,WAAY,EAAExuB,EAAE,aAAa,GAI3NuC,EAAM,qBAAqB,GAAOA,EAAM,MAAM,eAAe,CAC9D,EAEDA,EAAM,QAAU,SAAUvC,EAAG,CAC3BuC,EAAM,WAAW,UAAWvC,CAAC,EAG7BuC,EAAM,gBAAiB,EAEnBA,EAAM,kBACRA,EAAM,UAAY,KAAK,IAAK,EAE5BA,EAAM,qBAAqB,GAAMA,EAAM,MAAM,UAAU,EAE1D,EAEDA,EAAM,YAAc,SAAUvC,EAAG,CAC/BuC,EAAM,WAAW,cAAevC,CAAC,EAEjCuC,EAAM,aAAe,KAAK,IAAK,CAChC,EAEDA,EAAM,aAAe,SAAUvC,EAAG,CAChCuC,EAAM,WAAW,eAAgBvC,CAAC,EAElCuC,EAAM,aAAe,KAAK,IAAK,CAChC,EAEDA,EAAM,OAAS,SAAUvC,EAAG,CAC1BuC,EAAM,WAAW,SAAUvC,CAAC,EAE5BuC,EAAM,gBAAiB,EAEnBA,EAAM,gBACRA,EAAM,qBAAqB,GAAOA,EAAM,MAAM,SAAS,CAE1D,EAEDA,EAAM,cAAgB,SAAUvC,EAAG,CACjCA,EAAE,eAAgB,EAElBuC,EAAM,WAAW,gBAAiBvC,CAAC,EAEnCuC,EAAM,gBAAgB,GAAMvC,CAAC,CAC9B,EAEDuC,EAAM,mBAAqB,UAAY,CACjCA,EAAM,uBACRA,EAAM,MAAO,CAEhB,EAEDA,EAAM,QAAU,SAAUlI,EAAO,CAI/B,GAHAkI,EAAM,WAAW,UAAWlI,CAAK,EAG7BkI,EAAM,UAAW,CACnB,IAAIksB,EAUJ,GARIlsB,EAAM,cAAgBA,EAAM,aAC9BksB,EAAU,KAAK,IAAIlsB,EAAM,aAAcA,EAAM,YAAY,EAChDA,EAAM,aACfksB,EAAUlsB,EAAM,aACPA,EAAM,eACfksB,EAAUlsB,EAAM,cAGd,KAAK,IAAIksB,EAAUlsB,EAAM,SAAS,EAAI,GACxC,OAGFA,EAAM,UAAY,CAC5B,CAEQA,EAAM,aAAe,EACrBA,EAAM,aAAe,EAIjBA,EAAM,kBAAoBA,EAAM,cAAe,GAAIA,EAAM,iBAAmBlI,GAASA,EAAM,gBAC7FA,EAAM,eAAgB,EAGxB,IAAIq0B,EAAc,CAACnsB,EAAM,MAAM,cAE3BA,EAAM,iBAAmB,CAACmsB,GAAeA,GAAensB,EAAM,kBAChEA,EAAM,gBAAgB,CAACA,EAAM,MAAM,aAAclI,CAAK,CAEzD,EAEDkI,EAAM,iBAAmB,UAAY,CAOnC,GANAA,EAAM,kBAAoB,GAC1B,aAAaA,EAAM,gBAAgB,EACnCA,EAAM,iBAAmB,OAAO,WAAW,UAAY,CACrDA,EAAM,kBAAoB,EAC3B,EAAE,CAAC,EAEAA,EAAM,QAAS,CACjB,IAAIosB,GAEHA,EAAgBpsB,EAAM,SAAS,iBAAiB,MAAMosB,EAAe,SAAS,CACzF,CACO,EAEDpsB,EAAM,gBAAkB,SAAUlI,EAAO,CACvC,GAAI,EAAAkI,EAAM,MAAM,MAAQ,CAACA,EAAM,MAAM,cAIrC,KAAI9E,EAASpD,EAAM,OAEfqU,EAAOnM,EAAM,eAAgB,EAE7BsrB,EAAYtrB,EAAM,gBAAiB,GAItC,CAACkM,GAASC,EAAMjR,CAAM,GAAK8E,EAAM,kBAAiB,IAAO,CAACkM,GAASof,EAAWpwB,CAAM,GAAK,CAAC8E,EAAM,mBAC/FA,EAAM,MAAO,EAEhB,EAEDA,EAAM,eAAiB,UAAY,CACjC,IAAIqsB,EAAoBrsB,EAAM,MAAM,kBAEpC,GAAIqsB,EACF,OAAOA,EAAkBrsB,EAAM,WAAW,OAAO,EAGnD,GAAI,CACF,IAAIssB,EAAUlrB,GAAYpB,EAAM,WAAW,OAAO,EAElD,GAAIssB,EACF,OAAOA,CAEV,MAAa,CACtB,CAEQ,OAAO9uB,GAAS,YAAY+uB,GAAuBvsB,CAAK,CAAC,CAC1D,EAEDA,EAAM,2BAA6B,SAAUgO,EAAO,CAClD,IAAI1c,EAAY,CAAE,EACd+O,EAAcL,EAAM,MACpBwsB,EAAiBnsB,EAAY,eAC7ByN,EAAoBzN,EAAY,kBAChCjC,EAAYiC,EAAY,UACxB4jB,EAAa5jB,EAAY,WACzBosB,EAA6BpsB,EAAY,2BAE7C,OAAImsB,GAAkB1e,GACpBxc,EAAU,KAAK4c,GAAuBJ,EAAmB1P,EAAW4P,EAAOiW,CAAU,CAAC,EAGpFwI,GACFn7B,EAAU,KAAKm7B,EAA2Bze,CAAK,CAAC,EAG3C1c,EAAU,KAAK,GAAG,CAC1B,EAED0O,EAAM,aAAe,UAAY,CAC/B,IAAIwE,EAAexE,EAAM,MACrB5B,EAAYoG,EAAa,UACzB4jB,EAAqB5jB,EAAa,mBAClCkmB,EAAiBlmB,EAAa,eAC9BkoB,EAAeloB,EAAa,aAC5BqmB,EAAcrmB,EAAa,YAC3BmoB,EAAiBnoB,EAAa,eAC9BooB,EAAsBpoB,EAAa,oBACnCmmB,EAAanmB,EAAa,WAC1B8T,EAAO9T,EAAa,KACpBgU,EAAgBhU,EAAa,cAC7BiU,EAAqBjU,EAAa,mBAClC+T,EAAa/T,EAAa,WAC1B6T,EAAS7T,EAAa,OACtBqoB,EAAQroB,EAAa,MACrBsjB,EAAUtjB,EAAa,QACvByf,EAAazf,EAAa,WAC1BwmB,EAASxmB,EAAa,OACtByS,EAAczS,EAAa,YAC3B0D,EAAclI,EAAM,MACpB8sB,EAAe5kB,EAAY,aAC3BvJ,EAAQuJ,EAAY,MAEpB8F,EAAQhO,EAAM,cAAe,EAE7B+sB,EAAa,CAAE,EAEnB,OAAI/sB,EAAM,uBACR+sB,EAAW,aAAe/sB,EAAM,mBAG9BA,EAAM,uBACR+sB,EAAW,aAAe/sB,EAAM,mBAGlC+sB,EAAW,YAAc/sB,EAAM,iBAC/B+sB,EAAW,aAAe/sB,EAAM,iBACZzF,EAAmB,cAACwwB,GAAOhqB,EAAS,CACtD,UAAW3C,EACX,mBAAoBgqB,EACpB,QAAS0E,EACT,MAAO7I,GAActlB,EACrB,UAAW+rB,EACX,MAAO1c,EACP,QAAS0e,EACT,UAAWC,EACX,sBAAuB3sB,EAAM,0BAC9B,EAAE+sB,EAAY,CACb,QAASjF,EACT,eAAgB9nB,EAAM,eACtB,MAAO2qB,EACP,KAAMrS,EACN,OAAQD,EACR,eAAgBuU,EAChB,cAAepU,EACf,mBAAoBC,EACpB,WAAYF,EACZ,IAAKvY,EAAM,SACX,OAAQ6qB,EACR,OAAQG,EACR,YAAa/T,CACd,CAAA,EAAG,OAAO4V,GAAU,WAAaA,EAAK,EAAKA,CAAK,CAClD,EAED7sB,EAAM,aAAe,SAAUgtB,EAAgB,CAC7C1hB,GAAI,OAAOtL,EAAM,QAAQ,EACzB,IAAI6E,EAAe7E,EAAM,MACrBitB,EAAoBpoB,EAAa,kBACjCsW,EAActW,EAAa,YAE3BynB,EAAUtsB,EAAM,eAAgB,EAEhCktB,EAECD,GAEMX,GAAWW,EAAkB,SAAW,KAIjDC,EAAYD,EAAkBX,CAAO,GALrCY,EAAY/R,EAAYnb,EAAM,eAAc,CAAE,EAAE,KAQ9CktB,EACFA,EAAU,YAAYF,CAAc,EAGpChtB,EAAM,SAAWsL,GAAI,UAAY,CAC/BtL,EAAM,aAAagtB,CAAc,CAC7C,CAAW,CAEJ,EAEDhtB,EAAM,aAAe,UAAY,CAC/B,IAAImb,EAAcnb,EAAM,MAAM,YAC1BgtB,EAAiB7R,EAAYnb,EAAM,eAAc,CAAE,EAAE,cAAc,KAAK,EAG5E,OAAAgtB,EAAe,MAAM,SAAW,WAChCA,EAAe,MAAM,IAAM,IAC3BA,EAAe,MAAM,KAAO,IAC5BA,EAAe,MAAM,MAAQ,OAE7BhtB,EAAM,aAAagtB,CAAc,EAE1BA,CACR,EAEDhtB,EAAM,SAAW,SAAUrB,EAAO,CAChC,IAAIslB,EAAajkB,EAAM,MAAM,WACzB,CAACikB,GAAc,CAACtlB,GAEpBqB,EAAM,SAAS,CACb,MAAO,CACL,MAAOrB,EAAM,MACb,MAAOA,EAAM,KACzB,CACA,CAAS,CACF,EAEDqB,EAAM,mBAAqB,UAAY,CACjCA,EAAM,MAAM,mBAAqBA,EAAM,MAAM,cAC/CA,EAAM,MAAM,wBAAwBA,EAAM,MAAM,YAAY,CAE/D,EAEDA,EAAM,oBAAsB,CAC1B,iBAAkBA,EAAM,gBACzB,EACD,IAAI8sB,EAEJ,MAAI,iBAAkBvwB,EACpBuwB,EAAe,CAAC,CAACvwB,EAAM,aAEvBuwB,EAAe,CAAC,CAACvwB,EAAM,oBAGzByD,EAAM,MAAQ,CACZ,iBAAkB8sB,EAClB,aAAcA,CACf,EACDnB,GAAa,QAAQ,SAAUnlB,EAAG,CAChCxG,EAAM,OAAO,OAAOwG,CAAC,CAAC,EAAI,SAAU/I,EAAG,CACrCuC,EAAM,WAAWwG,EAAG/I,CAAC,CACtB,CACT,CAAO,EACMuC,CACb,CAEI,OAAAG,GAAa2rB,EAAS,CAAC,CACrB,IAAK,oBACL,MAAO,UAA6B,CAClC,KAAK,mBAAoB,CACjC,CACA,EAAO,CACD,IAAK,qBACL,MAAO,UAA8B,CACnC,IAAIvvB,EAAQ,KAAK,MACbzH,EAAQ,KAAK,MAKjB,GAAIA,EAAM,aAAc,CACtB,IAAIq4B,EAEA,CAAC,KAAK,sBAAwB,KAAK,cAAa,GAAM,KAAK,oBAAmB,KAChFA,EAAkB5wB,EAAM,YAAY,KAAK,eAAc,CAAE,EACzD,KAAK,oBAAsB6D,GAAiB+sB,EAAiB,YAAa,KAAK,eAAe,GAI3F,KAAK,sBACRA,EAAkBA,GAAmB5wB,EAAM,YAAY,KAAK,eAAc,CAAE,EAC5E,KAAK,oBAAsB6D,GAAiB+sB,EAAiB,aAAc,KAAK,eAAe,GAI7F,CAAC,KAAK,4BAA8B,KAAK,oBAAmB,IAC9DA,EAAkBA,GAAmB5wB,EAAM,YAAY,KAAK,eAAc,CAAE,EAC5E,KAAK,2BAA6B6D,GAAiB+sB,EAAiB,SAAU,KAAK,kBAAkB,GAInG,CAAC,KAAK,4BAA8B,KAAK,oBAAmB,IAC9D,KAAK,2BAA6B/sB,GAAiB,OAAQ,OAAQ,KAAK,kBAAkB,GAG5F,MACV,CAEQ,KAAK,oBAAqB,CAClC,CACA,EAAO,CACD,IAAK,uBACL,MAAO,UAAgC,CACrC,KAAK,gBAAiB,EACtB,KAAK,oBAAqB,EAC1B,aAAa,KAAK,gBAAgB,EAClCkL,GAAI,OAAO,KAAK,QAAQ,CAChC,CACA,EAAO,CACD,IAAK,kBACL,MAAO,UAA2B,CAChC,IAAI8hB,EAGJ,QAASA,EAAyB,KAAK,SAAS,WAAa,MAAQA,IAA2B,OAAS,OAASA,EAAuB,WAAY,IAAK,IAClK,CACA,EAAO,CACD,IAAK,gBACL,MAAO,UAAyB,CAC9B,IAAI7wB,EAAQ,KAAK,MACbiwB,EAAiBjwB,EAAM,eACvB8wB,EAAa9wB,EAAM,WACnBuR,EAAoBvR,EAAM,kBAE9B,OAAIiwB,GAAkB1e,EACbD,GAAsBC,EAAmB0e,EAAgBa,CAAU,EAGrEA,CACf,CAMA,EAAO,CACD,IAAK,kBACL,MAAO,SAAyBP,EAAch1B,EAAO,CACnD,IAAImsB,EAAa,KAAK,MAAM,WACxBqJ,EAAmB,KAAK,MAAM,aAClC,KAAK,gBAAiB,EAElBA,IAAqBR,IACjB,iBAAkB,KAAK,OAC3B,KAAK,SAAS,CACZ,aAAcA,EACd,iBAAkBQ,CAChC,CAAa,EAGH,KAAK,MAAM,qBAAqBR,CAAY,GAI1C7I,GAAcnsB,GAASg1B,GACzB,KAAK,SAASh1B,CAAK,CAE7B,CACA,EAAO,CACD,IAAK,uBACL,MAAO,SAA8Bqb,EAASoa,EAAQz1B,EAAO,CAC3D,IAAIsN,EAAS,KAETmM,EAAQgc,EAAS,IAGrB,GAFA,KAAK,gBAAiB,EAElBhc,EAAO,CACT,IAAI5S,EAAQ7G,EAAQ,CAClB,MAAOA,EAAM,MACb,MAAOA,EAAM,KACzB,EAAc,KACJ,KAAK,WAAa,OAAO,WAAW,UAAY,CAC9CsN,EAAO,gBAAgB+N,EAASxU,CAAK,EAErCyG,EAAO,gBAAiB,CACzB,EAAEmM,CAAK,CAClB,MACU,KAAK,gBAAgB4B,EAASrb,CAAK,CAE7C,CACA,EAAO,CACD,IAAK,kBACL,MAAO,UAA2B,CAC5B,KAAK,aACP,aAAa,KAAK,UAAU,EAC5B,KAAK,WAAa,KAE5B,CACA,EAAO,CACD,IAAK,sBACL,MAAO,UAA+B,CAChC,KAAK,sBACP,KAAK,oBAAoB,OAAQ,EACjC,KAAK,oBAAsB,MAGzB,KAAK,6BACP,KAAK,2BAA2B,OAAQ,EACxC,KAAK,2BAA6B,MAGhC,KAAK,6BACP,KAAK,2BAA2B,OAAQ,EACxC,KAAK,2BAA6B,MAGhC,KAAK,sBACP,KAAK,oBAAoB,OAAQ,EACjC,KAAK,oBAAsB,KAErC,CACA,EAAO,CACD,IAAK,kBACL,MAAO,SAAyBA,EAAO,CACrC,IAAI01B,EAAY,KAAK,MAAM,SAAS,MAChCjxB,EAAQ,KAAK,MAEjB,OAAIixB,EAAU11B,CAAK,GAAKyE,EAAMzE,CAAK,EAC1B,KAAK,OAAO,OAAOA,CAAK,CAAC,EAG3B01B,EAAU11B,CAAK,GAAKyE,EAAMzE,CAAK,CAC9C,CACA,EAAO,CACD,IAAK,gBACL,MAAO,UAAyB,CAC9B,IAAImN,EAAe,KAAK,MACpBwoB,EAASxoB,EAAa,OACtByoB,EAAazoB,EAAa,WAC9B,OAAOwoB,EAAO,QAAQ,OAAO,IAAM,IAAMC,EAAW,QAAQ,OAAO,IAAM,EACjF,CACA,EAAO,CACD,IAAK,oBACL,MAAO,UAA6B,CAClC,IAAID,EAAS,KAAK,MAAM,OACxB,OAAOA,IAAW,eAAiBA,EAAO,SAAW,GAAKA,EAAO,CAAC,IAAM,aAChF,CACA,EAAO,CACD,IAAK,sBACL,MAAO,UAA+B,CACpC,IAAIloB,EAAe,KAAK,MACpBkoB,EAASloB,EAAa,OACtBmoB,EAAanoB,EAAa,WAC9B,OAAOkoB,EAAO,QAAQ,aAAa,IAAM,IAAMC,EAAW,QAAQ,aAAa,IAAM,EAC7F,CACA,EAAO,CACD,IAAK,gBACL,MAAO,UAAyB,CAC9B,IAAI9nB,EAAe,KAAK,MACpB6nB,EAAS7nB,EAAa,OACtB+nB,EAAa/nB,EAAa,WAC9B,OAAO6nB,EAAO,QAAQ,OAAO,IAAM,IAAME,EAAW,QAAQ,OAAO,IAAM,EACjF,CACA,EAAO,CACD,IAAK,qBACL,MAAO,UAA8B,CACnC,IAAI7nB,EAAe,KAAK,MACpB2nB,EAAS3nB,EAAa,OACtB4nB,EAAa5nB,EAAa,WAC9B,OAAO2nB,EAAO,QAAQ,OAAO,IAAM,IAAMC,EAAW,QAAQ,YAAY,IAAM,EACtF,CACA,EAAO,CACD,IAAK,qBACL,MAAO,UAA8B,CACnC,IAAIE,EAAe,KAAK,MACpBH,EAASG,EAAa,OACtBD,EAAaC,EAAa,WAC9B,OAAOH,EAAO,QAAQ,OAAO,IAAM,IAAME,EAAW,QAAQ,YAAY,IAAM,EACtF,CACA,EAAO,CACD,IAAK,gBACL,MAAO,UAAyB,CAC9B,IAAIE,EAAe,KAAK,MACpBJ,EAASI,EAAa,OACtBH,EAAaG,EAAa,WAC9B,OAAOJ,EAAO,QAAQ,OAAO,IAAM,IAAMC,EAAW,QAAQ,OAAO,IAAM,EACjF,CACA,EAAO,CACD,IAAK,eACL,MAAO,UAAwB,CAC7B,IAAII,EAAgB,KAAK,MACrBL,EAASK,EAAc,OACvBH,EAAaG,EAAc,WAC/B,OAAOL,EAAO,QAAQ,OAAO,IAAM,IAAME,EAAW,QAAQ,MAAM,IAAM,EAChF,CACA,EAAO,CACD,IAAK,kBACL,MAAO,UAA2B,CAChC,GAAI,KAAK,MAAM,aAAc,CAC3B,IAAII,GAEHA,EAAyB,KAAK,SAAS,WAAa,MAAQA,IAA2B,QAAkBA,EAAuB,WAAY,CACvJ,CACA,CACA,EAAO,CACD,IAAK,aACL,MAAO,SAAoBv2B,EAAMiG,EAAG,CAClC,IAAIuwB,EAAgB,KAAK,MAAM,SAAS,MAAMx2B,CAAI,EAE9Cw2B,GACFA,EAAcvwB,CAAC,EAGjB,IAAIF,EAAW,KAAK,MAAM/F,CAAI,EAE1B+F,GACFA,EAASE,CAAC,CAEpB,CACA,EAAO,CACD,IAAK,QACL,MAAO,UAAiB,CACtB,KAAK,gBAAgB,EAAK,CAClC,CACA,EAAO,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,IAAIqvB,EAAe,KAAK,MAAM,aAC1BmB,EAAgB,KAAK,MACrBl8B,EAAWk8B,EAAc,SACzBhX,EAAcgX,EAAc,YAC5BhK,EAAagK,EAAc,WAC3B38B,EAAY28B,EAAc,UAC1BC,EAAcD,EAAc,YAC5BE,EAAQhE,EAAAA,SAAe,KAAKp4B,CAAQ,EACpCq8B,EAAgB,CAClB,IAAK,SACf,EAGY,KAAK,sBACPA,EAAc,cAAgB,KAAK,cAEnCA,EAAc,cAAgB,KAAK,gBAAgB,eAAe,EAIhE,KAAK,cAAa,GAAM,KAAK,cAAa,GAC5CA,EAAc,QAAU,KAAK,QAC7BA,EAAc,YAAc,KAAK,YACjCA,EAAc,aAAe,KAAK,eAElCA,EAAc,QAAU,KAAK,gBAAgB,SAAS,EACtDA,EAAc,YAAc,KAAK,gBAAgB,aAAa,EAC9DA,EAAc,aAAe,KAAK,gBAAgB,cAAc,GAI9D,KAAK,sBACPA,EAAc,aAAe,KAAK,aAE9BnK,IACFmK,EAAc,YAAc,KAAK,cAGnCA,EAAc,aAAe,KAAK,gBAAgB,cAAc,EAI9D,KAAK,qBACPA,EAAc,aAAe,KAAK,aAElCA,EAAc,aAAe,KAAK,gBAAgB,cAAc,EAI9D,KAAK,cAAa,GAAM,KAAK,aAAY,GAC3CA,EAAc,QAAU,KAAK,QAC7BA,EAAc,OAAS,KAAK,SAE5BA,EAAc,QAAU,KAAK,gBAAgB,SAAS,EACtDA,EAAc,OAAS,KAAK,gBAAgB,QAAQ,GAItD,IAAIC,EAAoBtvB,EAAWovB,GAASA,EAAM,OAASA,EAAM,MAAM,UAAW78B,CAAS,EAEvF+8B,IACFD,EAAc,UAAYC,GAG5B,IAAIhD,EAAaluB,EAAc,CAAE,EAAEixB,CAAa,EAE5C1hB,GAAWyhB,CAAK,IAClB9C,EAAW,IAAM/e,GAAW,KAAK,WAAY6hB,EAAM,GAAG,GAGxD,IAAIxI,EAAuB2I,EAAAA,aAAmBH,EAAO9C,CAAU,EAC3DkD,EAEJ,OAAIzB,GAAgB,KAAK,SAAS,SAAW7V,KAC3CsX,EAAsBh0B,EAAmB,cAACsxB,EAAiB,CACzD,IAAK,SACL,aAAc,KAAK,aACnB,UAAW,KAAK,kBAC5B,EAAa,KAAK,cAAc,GAGpB,CAACiB,GAAgBoB,IACnBK,EAAS,MAGSh0B,EAAmB,cAACgxB,GAAe,SAAU,CAC/D,MAAO,KAAK,mBACtB,EAAW5F,EAAS4I,CAAM,CAC1B,CACK,CAAA,EAAG,CAAC,CACH,IAAK,2BACL,MAAO,SAAkC/xB,EAAMkK,EAAW,CACxD,IAAIomB,EAAetwB,EAAK,aACpBgyB,EAAW,CAAE,EAEjB,OAAI1B,IAAiB,QAAapmB,EAAU,eAAiBomB,IAC3D0B,EAAS,aAAe1B,EACxB0B,EAAS,iBAAmB9nB,EAAU,cAGjC8nB,CACf,CACA,CAAK,CAAC,EAEK1C,CACR,EAACvV,WAAe,EAEjB,OAAAuV,EAAQ,YAAcP,GACtBO,EAAQ,aAAe,CACrB,UAAW,mBACX,2BAA4BL,GAC5B,YAAaC,GACb,qBAAsBtoB,GACtB,wBAAyBA,GACzB,aAAcA,GACd,eAAgB,GAChB,gBAAiB,EACjB,gBAAiB,GACjB,WAAY,EACZ,UAAW,IACX,WAAY,CAAE,EACd,mBAAoB,GACpB,WAAY,CAAE,EACd,oBAAqB,GACrB,KAAM,GACN,aAAc,GACd,OAAQ,CAAE,EACV,WAAY,CAAE,EACd,WAAY,CAAE,EACd,YAAa,EACd,EACM0oB,CACT,CACA,MAAeA,GAAAF,GAAgB5e,EAAM,ECxxBrC,IAAIyhB,GAAqB,CACvB,QAAS,EACT,QAAS,CACX,EACI7M,GAAe,CAAC,EAAG,CAAC,EACbzT,GAAa,CACtB,KAAM,CACJ,OAAQ,CAAC,KAAM,IAAI,EACnB,SAAUsgB,GACV,OAAQ,CAAC,GAAI,CAAC,EACd,aAAc7M,EACf,EACD,MAAO,CACL,OAAQ,CAAC,KAAM,IAAI,EACnB,SAAU6M,GACV,OAAQ,CAAC,EAAG,CAAC,EACb,aAAc7M,EACf,EACD,IAAK,CACH,OAAQ,CAAC,KAAM,IAAI,EACnB,SAAU6M,GACV,OAAQ,CAAC,EAAG,EAAE,EACd,aAAc7M,EACf,EACD,OAAQ,CACN,OAAQ,CAAC,KAAM,IAAI,EACnB,SAAU6M,GACV,OAAQ,CAAC,EAAG,CAAC,EACb,aAAc7M,EACf,EACD,QAAS,CACP,OAAQ,CAAC,KAAM,IAAI,EACnB,SAAU6M,GACV,OAAQ,CAAC,EAAG,EAAE,EACd,aAAc7M,EACf,EACD,QAAS,CACP,OAAQ,CAAC,KAAM,IAAI,EACnB,SAAU6M,GACV,OAAQ,CAAC,GAAI,CAAC,EACd,aAAc7M,EACf,EACD,SAAU,CACR,OAAQ,CAAC,KAAM,IAAI,EACnB,SAAU6M,GACV,OAAQ,CAAC,EAAG,EAAE,EACd,aAAc7M,EACf,EACD,SAAU,CACR,OAAQ,CAAC,KAAM,IAAI,EACnB,SAAU6M,GACV,OAAQ,CAAC,EAAG,CAAC,EACb,aAAc7M,EACf,EACD,YAAa,CACX,OAAQ,CAAC,KAAM,IAAI,EACnB,SAAU6M,GACV,OAAQ,CAAC,EAAG,CAAC,EACb,aAAc7M,EACf,EACD,YAAa,CACX,OAAQ,CAAC,KAAM,IAAI,EACnB,SAAU6M,GACV,OAAQ,CAAC,EAAG,CAAC,EACb,aAAc7M,EACf,EACD,WAAY,CACV,OAAQ,CAAC,KAAM,IAAI,EACnB,SAAU6M,GACV,OAAQ,CAAC,EAAG,CAAC,EACb,aAAc7M,EACf,EACD,WAAY,CACV,OAAQ,CAAC,KAAM,IAAI,EACnB,SAAU6M,GACV,OAAQ,CAAC,GAAI,CAAC,EACd,aAAc7M,EAClB,CACA,EC5EI8M,GAAU,SAAiBnyB,EAAO,CACpC,IAAIoyB,EAAUpyB,EAAM,QAChB6B,EAAY7B,EAAM,UAClBqP,EAAKrP,EAAM,GACXqyB,EAAoBryB,EAAM,kBAC9B,OAAoBhC,EAAAA,cAAoB,MAAO,CAC7C,UAAW,GAAG,OAAO6D,EAAW,QAAQ,EACxC,GAAIwN,EACJ,KAAM,UACN,MAAOgjB,CACR,EAAE,OAAOD,GAAY,WAAaA,EAAO,EAAKA,CAAO,CACxD,ECHIE,GAAU,SAAiBtyB,EAAO8P,EAAK,CACzC,IAAIyiB,EAAmBvyB,EAAM,iBACzBwyB,EAAiBxyB,EAAM,QACvBopB,EAAUoJ,IAAmB,OAAS,CAAC,OAAO,EAAIA,EAClDC,EAAwBzyB,EAAM,gBAC9ByvB,EAAkBgD,IAA0B,OAAS,EAAIA,EACzDC,EAAwB1yB,EAAM,gBAC9B2yB,EAAkBD,IAA0B,OAAS,GAAMA,EAC3DE,EAAe5yB,EAAM,aACrB6yB,EAAmB7yB,EAAM,UACzB6B,EAAYgxB,IAAqB,OAAS,aAAeA,EACzDr9B,EAAWwK,EAAM,SACjB8yB,EAAkB9yB,EAAM,gBACxB+yB,EAAqB/yB,EAAM,mBAC3BqT,EAAiBrT,EAAM,eACvB4b,EAAY5b,EAAM,UAClB2b,EAAS3b,EAAM,OACfgzB,EAAmBhzB,EAAM,UACzB6R,EAAYmhB,IAAqB,OAAS,QAAUA,EACpDC,EAAejzB,EAAM,MACrByR,EAAQwhB,IAAiB,OAAS,CAAA,EAAKA,EACvCC,EAAwBlzB,EAAM,qBAC9BmzB,EAAuBD,IAA0B,OAAS,GAAQA,EAClEE,EAAiBpzB,EAAM,eACvBqzB,EAAsBrzB,EAAM,oBAC5BqyB,EAAoBryB,EAAM,kBAC1BmE,EAAYC,GAAyBpE,EAAO,CAAC,mBAAoB,UAAW,kBAAmB,kBAAmB,eAAgB,YAAa,WAAY,kBAAmB,qBAAsB,iBAAkB,YAAa,SAAU,YAAa,QAAS,uBAAwB,iBAAkB,sBAAuB,mBAAmB,CAAC,EAExVszB,EAAS31B,EAAM,OAAC,IAAI,EACxBmT,EAAmB,oBAAChB,EAAK,UAAY,CACnC,OAAOwjB,EAAO,OAClB,CAAG,EAED,IAAIC,EAAa3yB,EAAc,CAAE,EAAEuD,CAAS,EAExC,YAAanE,IACfuzB,EAAW,aAAevzB,EAAM,SAGlC,IAAIwzB,EAAkB,UAA2B,CAC/C,IAAIC,GAAsBzzB,EAAM,aAC5B0zB,GAAeD,KAAwB,OAAS,KAAOA,GACvDrB,GAAUpyB,EAAM,QAChBqP,GAAKrP,EAAM,GACf,MAAO,CAAchC,EAAmB,cAAC,MAAO,CAC9C,UAAW,GAAG,OAAO6D,EAAW,QAAQ,EACxC,IAAK,OACX,EAAO6xB,EAAY,EAAgB11B,EAAmB,cAACm0B,GAAS,CAC1D,IAAK,UACL,UAAWtwB,EACX,GAAIwN,GACJ,QAAS+iB,GACT,kBAAmBC,CACzB,CAAK,CAAC,CACH,EAEGsB,EAAiB,GACjBhC,EAAc,GAElB,GAAI,OAAOwB,GAAyB,UAClCQ,EAAiBR,UACRA,GAAwBrwB,GAAQqwB,CAAoB,IAAM,SAAU,CAC7E,IAAIS,EAAaT,EAAqB,WACtCQ,EAAiBC,IAAe,GAChCjC,EAAciC,IAAe,EACjC,CAEE,OAAoB51B,EAAmB,cAACuxB,GAAS/qB,EAAS,CACxD,eAAgB+tB,EAChB,UAAW1wB,EACX,MAAO2xB,EACP,OAAQpK,EACR,kBAAmBxX,GACnB,eAAgBC,EAChB,IAAKyhB,EACL,WAAY7hB,EACZ,kBAAmB4hB,EACnB,qBAAsBP,EACtB,wBAAyBC,EACzB,oBAAqB1f,EACrB,eAAgBuI,EAChB,YAAaD,EACb,oBAAqByX,EACrB,mBAAoBO,EACpB,YAAahC,EACb,gBAAiBgB,EACjB,WAAYC,EACZ,gBAAiBnD,CACrB,EAAK8D,CAAU,EAAG/9B,CAAQ,CAC1B,EAEA,MAAAq+B,GAA4BnjB,EAAAA,WAAW4hB,EAAO,EChG9C,IAAIwB,GAA6BxZ,EAAgB,WAAC,SAAUta,EAAO8P,EAAK,CACtE,IAAI8G,EAAU5W,EAAM,QAChBoyB,EAAUpyB,EAAM,QAChB+zB,EAAWlf,EAAY,OAAC,IAAI,EAC5Bmf,EAAajkB,GAAWD,EAAKikB,CAAQ,EACrChJ,EAASlW,EAAY,OAAC,IAAI,EAE9B,SAASof,GAAkB,CACzBllB,GAAI,OAAOgc,EAAO,OAAO,CAC7B,CAEE,SAASmJ,GAAY,CACnBnJ,EAAO,QAAUhc,GAAI,UAAY,CAC/B,IAAIolB,GAEHA,EAAoBJ,EAAS,WAAa,MAAQI,IAAsB,QAAkBA,EAAkB,gBAAiB,CACpI,CAAK,CACL,CAEEjf,OAAAA,EAAAA,UAAgB,UAAY,CAC1B,OAAI0B,EACFsd,EAAW,EAEXD,EAAiB,EAGZA,CACX,EAAK,CAACrd,EAASwb,CAAO,CAAC,EACDp0B,EAAmB,cAACs0B,GAAS9tB,EAAS,CACxD,IAAKwvB,CACN,EAAEh0B,CAAK,CAAC,CACX,CAAC,ECzBc,SAASo0B,GAAwBrtB,EAAW,CACzD,IAAItP,EAGJ,OAAOA,EAAkB,SAAU6L,EAAkB,CACnDC,GAAU8wB,EAAkB/wB,CAAgB,EAE5C,IAAIE,EAASxE,GAAaq1B,CAAgB,EAE1C,SAASA,GAAmB,CAC1B,IAAI5wB,EAEJ,OAAAC,GAAgB,KAAM2wB,CAAgB,EAEtC5wB,EAAQD,EAAO,MAAM,KAAM,SAAS,EACpCC,EAAM,MAAQ,CACZ,SAAU,CAAA,CACX,EAEDA,EAAM,2BAA6B,SAAU6F,EAAOsN,EAAS,CAC3DnT,EAAM,SAAS,SAAU0G,EAAW,CAClC,MAAO,CACL,SAAUvJ,EAAcA,EAAc,CAAA,EAAIuJ,EAAU,QAAQ,EAAG,CAAA,EAAIzJ,EAAgB,GAAI4I,EAAOsN,CAAO,CAAC,CACvG,CACX,CAAS,CACF,EAEDnT,EAAM,kBAAoB,SAAUxD,EAAM,CACxC,IAAIvL,EAAQuL,EAAK,MACb8J,EAAW9J,EAAK,SAChBqJ,EAAQrJ,EAAK,MACbxJ,EAAWwJ,EAAK,SAChBkE,EAAYC,GAAyBnE,EAAM,CAAC,QAAS,WAAY,QAAS,UAAU,CAAC,EAErF6D,EAAcL,EAAM,MACpB6wB,EAAexwB,EAAY,aAC3BywB,EAAWzwB,EAAY,SACvBuH,EAAcvH,EAAY,YAC1BuvB,EAAsBvvB,EAAY,oBAElC0wB,EAAsBD,EAAS,UAC/B1yB,EAAY2yB,IAAwB,OAAS,oBAAsBA,EACnEC,EAAoBF,EAAS,QAC7BnC,EAAUqC,IAAsB,OAASH,EAAa5/B,CAAK,EAAI+/B,EAC/DC,EAAsBH,EAAS,UAC/B1iB,EAAY6iB,IAAwB,OAAS,MAAQA,EACrDC,EAAoBJ,EAAS,QAC7B3d,EAAU+d,IAAsB,OAAS,GAAQA,EACjDC,EAAmBxwB,GAAyBmwB,EAAU,CAAC,YAAa,UAAW,YAAa,SAAS,CAAC,EAEtGM,EAEJ,OAAI,MAAM,QAAQxpB,CAAW,EAC3BwpB,EAAuBxpB,EAAY/B,CAAK,GAAK+B,EAAY,CAAC,EAE1DwpB,EAAuBxpB,EAGLzW,EAAM,cAAc09B,GAAS9tB,EAAS,CAAA,EAAIowB,EAAkB,CAC9E,oBAAqBvB,EACrB,UAAWxxB,EACX,QAASuwB,EACT,UAAWvgB,EACX,QAAS,CAACpb,IAAagN,EAAM,MAAM,SAAS6F,CAAK,GAAKS,IAAa6M,EACnE,IAAKtN,CACf,CAAS,EAAgB1U,EAAM,cAAcyO,GAAQmB,EAAS,CAAE,EAAEL,EAAW,CACnE,MAAOvD,EAAc,CAAE,EAAEi0B,CAAoB,EAC7C,MAAOngC,EACP,aAAc,UAAwB,CACpC,OAAO+O,EAAM,2BAA2B6F,EAAO,EAAI,CACpD,EACD,aAAc,UAAwB,CACpC,OAAO7F,EAAM,2BAA2B6F,EAAO,EAAK,CAChE,CACS,CAAA,CAAC,CAAC,CACJ,EAEM7F,CACb,CAEI,OAAAG,GAAaywB,EAAkB,CAAC,CAC9B,IAAK,SACL,MAAO,UAAkB,CACvB,OAAoBz/B,EAAM,cAAcmS,EAAWvC,EAAS,CAAE,EAAE,KAAK,MAAO,CAC1E,OAAQ,KAAK,iBACvB,CAAS,CAAC,CACV,CACA,CAAK,CAAC,EAEK6vB,CACR,EAACz/B,EAAM,SAAS,EAAG6C,EAAG,aAAe,CACpC,aAAc,SAAsB/C,EAAO,CACzC,OAAOA,CACR,EACD,YAAa,CAAC,CAAA,CAAE,EAChB,SAAU,CAAE,EACZ,oBAAqB,SAA6BiP,EAAM,CACtD,OAAOA,EAAK,UAClB,CACA,EAAKlM,CACL,CC1GA,IAAIq9B,GAAiBjrB,GACrBirB,GAAe,MAAQxoB,GACvBwoB,GAAe,OAASzxB,GACxByxB,GAAe,wBAA0BV,GCJzC,MAAMW,GAAmBX,GAAwB9nB,EAAK,EAEhD0oB,GAAc,CAAC,CAAE,UAAAhxB,EAAY,GAAI,GAAGixB,CAAA,IACxCrgC,EAAA,cAAC,MAAI,CAAA,UAAU,mBACb,EAAAA,EAAA,cAACmgC,GAAA,CACC,yBAA0B,CACxB,GAAG/wB,CAAS,qBACZ,GAAGA,CAAS,oBACd,EACC,GAAGixB,CAAA,CACN,CACF,ECbI3/B,GAAWZ,GAAWwgC,GAAKxgC,EAAO,CAAE,QAAS,GAAO,EAE3CygC,GAAA,CACf,OAAE7/B,EACF,ECEa8/B,GAAQ,CAAC,CAAE,aAAAprB,EAAc,SAAA9T,EAAU,GAAG8J,KAAY,CAC7D,KAAM,CAAEtL,EAAO6f,CAAS,EAAIpd,EAAAA,SAAU6S,CAAa,EAE/C,GAAA,CAAE,IAAAzI,EAAK,IAAAC,CAAA,EAAQxB,EAEnBuB,EAAM,KAAK,MAAOA,EAAM,GAAI,EAAI,IAChCC,EAAM,KAAK,KAAMA,EAAM,GAAI,EAAI,IAE/B,MAAMJ,EAAQ,CAAC,EAEf,OAAAA,EAAMG,CAAG,EAAI2zB,GAAK3zB,EAAK,CAAE,QAAS,GAAO,EACzCH,EAAMI,CAAG,EAAI0zB,GAAK1zB,EAAK,CAAE,QAAS,GAAO,EAGvC5M,EAAA,cAACogC,GAAA,CACC,UAAU,QACV,WAAY,GACZ,aAActgC,EACd,MAAA0M,EACA,IAAAI,EACA,IAAAD,EACA,SAAU,IACV,KAAM,IACN,aAAc4zB,GAAa,OAC3B,MAAAzgC,EACA,SAAU6f,EACV,cAAe,IAAMre,EAAUxB,CAAM,CAAA,CACvC,CAEJ,ECzBM2gC,GAAc,CAAC,CAAE,UAAAtgC,EAAW,IAAAyM,EAAK,IAAAD,KAAU,CAC/C,MAAMvM,EAAS2I,EAAAA,OAAO,EAChB,CAAE,eAAAvG,EAAgB,eAAAC,GAAmB0E,EAAAA,WAAYzF,CAAe,EAEtEF,EAAAA,UAAU,IAAM,CACT,CAACmL,GAAO,CAACC,GACTxM,EAAO,UAELA,EAAA,QAAU,CAAEuM,EAAKC,CAAI,EAAA,EAC3B,CAAED,EAAKC,CAAI,CAAC,EAEf,MAAM8zB,EAAgB,CAAEl+B,EAAe,UAAWA,EAAe,SAAU,EAErEm+B,EAAch+B,EAAAA,QAAQ,IAAM,CAC1B,KAAA,CAAE,UAAAi+B,EAAW,UAAAC,CAAA,EAAcr+B,EAEjC,MAAK,CAACo+B,GAAa,CAACC,EAAmB,KAEhC,GAAGP,GAAKO,EAAW,CAAE,QAAS,EAAO,CAAA,CAAC,MAAMP,GAAKM,EAAW,CAAE,QAAS,EAAA,CAAO,CAAC,EAAA,EACrF,CAAEp+B,CAAe,CAAC,EAEfs+B,EAAen5B,EAAA,YACnBo5B,GACI/oB,GAAe,CACVgpB,GAASN,EAAe1oB,CAAU,GAExBvV,EAAA,CACb,UAAWuV,EAAU,CAAC,EACtB,UAAWA,EAAU,CAAC,CAAA,CACvB,CACH,EACA,KACA,CAAE,SAAU,EAAK,CACnB,EACA,CAAE0oB,EAAej+B,CAAe,CAClC,EAGMw+B,EAAa7gC,EAAO,SAAWA,EAAO,QAAQ,CAAC,IAAMA,EAAO,QAAQ,CAAC,EAGtE,MAAA,CAAC6gC,GAAc,CAACP,EAAc,CAAC,GAAK,CAACA,EAAc,CAAC,EAAU,KAGjE1gC,EAAA,cAACsG,GAAA,CACC,UAAWpF,EAAK,mCAAoCf,CAAU,EAC9D,aAAcwgC,EACd,QAAS,CAACvgC,EAAO,QACjB,KAAK,QACL,aAAc,IAAMqC,EAAe,CAAE,UAAW,KAAM,UAAW,IAAM,CAAA,CAAA,EAEtEzC,EAAA,cAAA,MAAA,CAAI,UAAU,uBACZihC,GACCjhC,EAAA,cAACwgC,GAAA,CACC,aAAcpgC,EAAO,QACrB,IAAKA,EAAO,QAAQ,CAAC,EACrB,IAAKA,EAAO,QAAQ,CAAC,EACrB,SAAU0gC,CAAA,CAGhB,CAAA,CACF,CAEJ,ECjEaI,GAAe,CAAC,CAAE,QAAA96B,EAAS,MAAAlE,EAAO,MAAApC,EAAO,SAAAwB,KAA+B,CACnF,MAAMw/B,EAAe,IAAM,CACzBx/B,EAAUxB,EAAOsG,CAAQ,CAC3B,EAGE,OAAApG,EAAA,cAACmG,GAAA,CACC,UAAU,mBACV,QAAAC,EACA,MAAAlE,EACA,SAAU4+B,CAAA,CACZ,CAEJ,ECdMK,GAAel3B,GAAiB,CACpC,OAASA,EAAM,CACb,IAAK,QACI,MAAA,SACT,IAAK,OACI,MAAA,QACT,IAAK,YACI,MAAA,aACT,IAAK,aACI,MAAA,eACT,IAAK,UACI,MAAA,YACT,IAAK,QACI,MAAA,cACT,IAAK,eACI,MAAA,gBACT,QACS,OAAAA,CAAA,CAEb,EAOam3B,GAAoB,CAAC,CAAE,UAAAjhC,EAAW,QAAAkI,EAAU,MAAiC,CACxF,KAAM,CAAE,eAAA7F,EAAgB,eAAAC,GAAmB0E,EAAAA,WAAYzF,CAAe,EAEhEo/B,EAAe,CAAEv8B,EAAgB88B,IAAwB,CAC7D,IAAIC,EAAgB9+B,EAAe,iBAAiB,GAAK,CAAC,EACrD,OAAO8+B,GAAkB,WACZA,EAAAA,EAAc,MAAO,GAAI,GAG5B7+B,EAAA,CACb,kBAAmB4+B,EACfC,EAAc,OAASn5B,GAA0B,CAAC5D,EAAO,SAAU4D,CAAa,CAAC,EACjF,CAAEm5B,EAAe/8B,CAAO,EAAE,KAAK,CAAA,CACpC,CACH,EAEK,OAAA8D,EAAQ,OAAS,EAAW,KAG/BrI,EAAA,cAACsG,IAAW,UAAWpF,EAAK,6BAA8Bf,CAAU,EAAG,KAAK,eAC1E,EAAAH,EAAA,cAAC,UACEqI,EAAQ,IAAM9D,GACb,OAAA,OAAAvE,EAAA,cAAC,MAAG,UAAU,eAAe,IAAKuE,EAAO,GACvC,EAAAvE,EAAA,cAACkhC,GAAA,CACC,QAAS,CAAC,GAACr+B,EAAAL,EAAe,iBAAiB,IAAhC,MAAAK,EAAmC,SAAU0B,EAAO,MAC/D,MAAO48B,GAAY58B,EAAO,GAAc,EACxC,MAAOA,EAAO,IACd,SAAUu8B,CAAA,CAEd,CAAA,EACD,CACH,CACF,CAEJ,EC9DMS,GAAe,CAAC,CAAE,UAAAphC,EAAW,QAAAqhC,EAAU,MAAQ,SACnD,KAAM,CAAE,eAAAh/B,EAAgB,eAAAC,GAAmB0E,EAAAA,WAAYzF,CAAe,EAElE,IAAAyG,EACAE,EACAo5B,EACAC,EAEE,MAAAC,EAAgBn/B,EAAe,YAAY,EAC3Co/B,EAAiBp/B,EAAe,mBAAmB,EAEnDq/B,EAAiBl6B,EAAA,YACrB,CAAEyoB,EAAQzsB,IAAWlB,EAAe,CAAE,oBAAqB2tB,EAAQ,aAAczsB,EAAO,EACxF,CAAElB,CAAe,CACnB,EAEA,OAAKm/B,GAAkBD,GACrBx5B,EAAew5B,GAAiBC,EAChCv5B,EAAUs5B,IAA4B5+B,GAAAF,EAAA2+B,EAAQ,CAAC,IAAT,YAAA3+B,EAAY,SAAZ,KAAZ,OAAYE,EAAoB,QAC1D0+B,EAAaE,EAAgB,IAAME,EAAgBD,CAAe,EAAIC,EACtEH,EAAmBz3B,GAAS43B,EAAgBD,EAAgB33B,CAAI,IAEtD5B,EAAAm5B,EACOE,EAAAG,GAIjB7hC,EAAA,cAACkI,GAAA,CACC,aAAAC,EACA,UAAWjH,EAAK,sBAAuBf,CAAU,EACjD,aAAa,SACb,QAAAkI,EACA,OAAQo5B,EACR,WAAYC,CAAA,CACd,CAEJ,ECvBaI,GAAiC,CAAC,CAAE,KAAA7/B,EAAM,UAAA9B,EAAW,OAAAoE,KAAa,2BAC7E,OAASA,EAAS,CAChB,IAAK,iBAED,OAAA6E,EAAA,cAACnC,GAAA,CACC,UAAA9G,EACA,cAAc0C,EAAAZ,GAAA,YAAAA,EAAM,yBAAN,YAAAY,EAA8B,MAC5C,IAAK0B,CAAA,CACP,EAEJ,IAAK,WAED,OAAA6E,EAAA,cAACR,GAAA,CACC,aAAY1F,GAAAF,GAAAD,EAAAd,GAAA,YAAAA,EAAM,oBAAN,YAAAc,EAAyB,QAAzB,YAAAC,EAAgC,OAAhC,YAAAE,EAAsC,YAAWC,EAAAlB,GAAA,YAAAA,EAAM,aAAN,YAAAkB,EAAkB,SAC/E,UAAAhD,EACA,IAAKoE,CAAA,CACP,EAEJ,IAAK,UACI,OAAA6E,gBAACH,IAAc,UAAA9I,EAAsB,SAASiD,EAAAnB,GAAA,YAAAA,EAAM,UAAN,YAAAmB,EAAe,QAAS,IAAKmB,EAAQ,EAC5F,IAAK,OACI,OAAA6E,gBAACC,IAAW,UAAAlJ,EAAsB,IAAKoE,EAAQ,MAAMlB,EAAApB,GAAA,YAAAA,EAAM,OAAN,YAAAoB,EAAY,QAAS,EACnF,IAAK,QAED,OAAA+F,EAAA,cAACq3B,GAAA,CACC,UAAAtgC,EACA,IAAKoE,EACL,KAAKjB,EAAArB,GAAA,YAAAA,EAAM,YAAN,YAAAqB,EAAiB,MACtB,KAAKy+B,EAAA9/B,GAAA,YAAAA,EAAM,YAAN,YAAA8/B,EAAiB,KAAA,CACxB,EAEJ,IAAK,eAED,OAAA34B,gBAACG,IAAmB,UAAApJ,EAAsB,IAAKoE,EAAQ,MAAMy9B,EAAA//B,GAAA,YAAAA,EAAM,eAAN,YAAA+/B,EAAoB,QAAS,EAE9F,IAAK,gBAED,OAAA54B,EAAA,cAACg4B,GAAA,CACC,UAAAjhC,EACA,QAAS,CACP,CAAE,UAAW,OAAW,IAAK,MAAO,EACpC,CAAE,UAAW,OAAW,IAAK,SAAU,EACvC,CAAE,UAAW,OAAW,IAAK,OAAQ,CAAA,CACvC,CACF,EAEJ,IAAK,SACI,OAAAiJ,gBAACm4B,IAAa,UAAAphC,EAAsB,IAAKoE,EAAQ,SAAS09B,EAAAhgC,GAAA,YAAAA,EAAM,UAAN,YAAAggC,EAAe,QAAS,EAC3F,QACS,OAAA,IAAA,CAEb,oGC9DaC,GAAS,CAAC,CAAE,KAAAC,CACvB,IAAAniC,EAAA,cAAC,MAAA,CACC,UAAWkB,EACTX,GAAO,OACP,0GACA,CACE,CAACA,GAAO,IAAI,EAAG4hC,CAAA,CACjB,CACF,EAEAniC,EAAA,cAAC,MAAA,CACC,UAAWkB,EAAKX,GAAO,QAAS,iBAAkB,CAChD,CAACA,GAAO,IAAI,EAAG4hC,CAAA,CAChB,EACD,KAAK,QAAA,EAEJniC,EAAA,cAAA,OAAA,CAAK,UAAU,SAAA,EAAU,YAAU,CAAA,CAExC,gECJWoiC,GAAoB,CAAC,CAChC,KAAAngC,EACA,QAAAE,EACA,aAAAkgC,EACA,mBAAAC,EACA,YAAAC,EACA,cAAAC,EACA,WAAAC,EACA,OAAAC,CACF,oBACG,MAAI,CAAA,UAAU,6CACZ,CAAC,CAACD,EAAW,QACZr5B,EAAA,cAAC/E,GAAA,CACC,KAAApC,EACA,iBAAkBwgC,EAClB,UAAW,GAAGliC,GAAO,IAAI,oCACzB,QAAA4B,CAAA,CACF,EAGD,CAAC,CAACogC,EAAY,QACbn5B,EAAA,cAAC/H,GAAA,CACC,UAAU,+BACV,OAAO,OACP,eAAgBihC,EAChB,MAAOE,EACP,OAAQD,EACR,SAAUG,CAAA,CACZ,EAGFt5B,gBAAC,UACEi5B,EAAa,IAAM99B,GAClB6E,EAAA,cAAC04B,GAAc,CAAA,KAAA7/B,EAAY,UAAW1B,GAAO,MAAO,OAAAgE,EAAgB,IAAKA,CAAQ,CAAA,CAClF,CACH,EAEC6E,EAAA,cAAA84B,GAAA,CAAO,KAAM//B,CAAS,CAAA,CACzB,wECnDWwgC,GAAS,CAAC,CAAE,aAAAC,KACtB5iC,EAAA,cAAA,MAAA,CAAI,UAAU,4BACb,EAAAA,EAAA,cAAC,MAAA,CACC,UAAW,GAAGO,GAAO,QAAQ,qEAAA,EAC9B,SAED,EAEAP,EAAA,cAAC,SAAA,CACC,aAAW,QACX,UAAW,GAAGO,GAAO,KAAK,uDAC1B,KAAK,SACL,QAASqiC,CAAA,EAER5iC,EAAA,cAAAQ,GAAA,CAAgB,UAAU,OAAO,KAAMqiC,EAAS,CAAA,CACnD,CACF,oECKWC,GAAe,CAAC,CAC3B,KAAA7gC,EACA,sBAAA8gC,EACA,oBAAAC,EACA,MAAAnrB,EACA,QAAA1V,EACA,mBAAAmgC,EACA,YAAAC,EACA,cAAAC,EACA,OAAAE,CACF,IAA0B,CACxB,KAAM,CAAEO,EAAMC,CAAQ,EAAI3gC,EAAAA,SAAmB,EAAM,EAEnDf,OAAAA,EAAAA,UAAU,IAAM,CACR,MAAAkF,EAAkBC,GAA0B,CAC3CA,EAAM,MAAQ,UACjBu8B,EAAS,EAAM,CAEnB,EAES,gBAAA,iBAAkB,UAAWx8B,CAAc,EAC7C,IAAM,CACF,SAAA,oBAAqB,UAAWA,CAAc,CACzD,CACF,EAAG,EAAE,EAGH1G,EAAA,cAAAA,EAAA,SAAA,KACGA,EAAA,cAAAgG,GAAA,CAAe,YAAa6R,EAAO,QAAS,IAAMqrB,EAAS,CAACD,CAAK,CAAG,CAAA,EAErEjjC,EAAA,cAAC,MAAA,CACC,UAAWkB,EAAKX,GAAO,QAAS,mBAAoB,CAClD,CAACA,GAAO,IAAI,EAAG0iC,CAChB,CAAA,CAAA,kBAEAN,GAAO,CAAA,aAAc,IAAMO,EAAS,CAACD,CAAK,EAAG,EAE9CjjC,EAAA,cAACoiC,GAAA,CACC,KAAAngC,EACA,QAAAE,EACA,aAAc4gC,EACd,mBAAAT,EACA,YAAAC,EACA,cAAAC,EACA,WAAYQ,EACZ,OAAAN,CAAA,CACF,EAEA1iC,EAAA,cAAC+F,IAAY,SAAU5D,EAAS,QAAS,IAAM+gC,EAAS,CAACD,CAAK,CAAG,CAAA,CAAA,CAErE,CAEJ,EChFME,GAAY96B,GAAuD,CAClE,GAAA,CAACA,EAAiB,OAAA,KAEvB,MAAMpD,EAAmC,CAAC,EAElC,OAAAoD,EAAA,QAAU9D,GAAY,CAC5B,OAASA,EAAS,CAChB,IAAK,WACHU,EAAO,KAAM,iBAAkB,EAC/B,MACF,IAAK,OACHA,EAAO,KAAM,MAAO,EACpB,MACF,IAAK,eACL,IAAK,eACL,IAAK,eACHA,EAAO,KAAM,UAAW,EACxB,MACF,IAAK,UACHA,EAAO,KAAM,SAAU,EACvB,MACF,IAAK,QACHA,EAAO,KAAM,WAAY,EACzBA,EAAO,KAAM,WAAY,EACzB,MACF,IAAK,gBACHA,EAAO,KAAM,iBAAkB,EAC/B,MACF,IAAK,SACHA,EAAO,KAAM,mBAAoB,EACjCA,EAAO,KAAM,YAAa,EAC1B,MACF,QACEA,EAAO,KAAMV,CAAO,CAAA,CACxB,CACD,EAEMU,CACT,EAEam+B,GAAkB,CAC7B,QAAAD,EACF,EC7CMziC,GAAWZ,GAAW,CAC1B,OAASA,EAAK,CACZ,KAAK,KACL,IAAK,GACH,MAAO,cACT,IAAK,cACH,MAAO,cACT,IAAK,eACH,MAAO,eACT,IAAK,iBACH,MAAO,uBACT,IAAK,kBACH,MAAO,qBACT,IAAK,YACH,MAAO,sBACT,IAAK,aACH,MAAO,uBACT,QACE,MAAO,EACb,CACA,EAEaujC,GAAqB,CAChC,OAAA3iC,EACF,4HCUM4iC,GAAmBj7B,GACvBk7B,GAAU,eAAgBl7B,EAAS,CACjC,QAAS,CACP,eAAgBvC,GAAkB,GAAA,CAEtC,CAAC,EAEG09B,GAAOC,GAAoB,EAE3BC,GAA+B,CACnC,eACA,cACA,gBACA,gBACA,eACA,eACA,kBACA,kBACA,SACF,EAiDaC,GAAiB,CAAmB,CAC/C,kBAAAC,EACA,QAAAC,EACA,gBAAAC,EACA,kBAAAC,EACA,iBAAAz/B,EAAmB,CAAC,EACpB,iBAAA0/B,EAAmB,CAAC,EACpB,UAAAC,EACA,SAAArjC,EACA,WAAAsjC,EACA,iBAAAC,EACA,eAAAC,EACA,kBAAAC,EACA,2BAAAC,EACA,SAAAC,EACA,SAAAC,EACA,oBAAAC,EACA,OAAAz6B,EACA,QAAA06B,EACA,uBAAAC,EACA,QAAAC,EACA,MAAAC,EACA,aAAAC,EACA,gBAAAC,EACA,eAAAC,CACF,IAAiB,WAEf,MAAMC,EAAYl8B,EAAAA,OAAQ,IAAIw6B,EAAW,EAGnC2B,EAAiBviC,EAAAA,QAAQ,IAAM,CACnC,GAAK,CAAC2B,GAAoB,CAACsgC,QAAiB,CAAC,EAEvC,MAAAO,EAAgB/B,GAAgB,QAAS9+B,CAAiB,EAEzD,OAAA2gC,EAAU,QAAQ,MAAOE,CAAc,CAAA,EAC7C,CAAE7gC,EAAkBsgC,CAAQ,CAAC,EAE1BQ,EAAU1hC,GAAcC,GAAmBA,EAAM,KAAK,OAAQ,EAC9D,CAAE0hC,EAASC,CAAW,EAAI/iC,EAAAA,SAAc,CAAA,CAAE,EAC1C,CAAE8F,EAASk9B,CAAW,EAAIhjC,EAAAA,SAAuB2iC,CAAe,EAChE,CAAE/iC,EAASqjC,CAAW,EAAIjjC,EAAAA,SAAmB,EAAK,EAClD,CAAEkjC,EAAMC,CAAQ,EAAInjC,EAAAA,SAAkB,CAAE,EACxC,CAAEojC,GAAMC,EAAQ,EAAIrjC,EAAA,SACxB,OAAO4hC,EAAqB,IAAcH,EAAiB,CAAC,EAAIG,CAClE,EAGM0B,GAAc98B,SAAQ08B,CAAK,EACjCjkC,EAAAA,UAAU,IAAM,CACdqkC,GAAY,QAAUJ,CAAA,EACrB,CAAEA,CAAK,CAAC,EAGL,MAAAK,GAAQnjC,EAAAA,QAAQ,IAAM,CACpB,MAAAojC,EAAqE,CAAE,GAAG7B,CAAW,EAI3F,cAAO,KAAM77B,CAAQ,EAAE,QAAU4B,GAAS,CACxC,MAAM+7B,EAAW/7B,EACZ5B,EAAQ29B,CAAQ,IACHD,EAAAC,CAAQ,EAAI39B,EAAQ29B,CAAQ,EAC9C,CACD,EAEIL,KACHI,EAAgB,KAAOJ,IAGlBrC,GAAgByC,CAAgB,CACtC,EAAA,CAAE7B,EAAY77B,EAASs9B,EAAK,CAAC,EAG1BM,GAAgBtjC,EAAAA,QAAQ,IAAM,CAC7B,GAAA,CAACkhC,EAAiB,OAAA,KAEvB,IAAIqC,EAAwB,CAAC,EAC7B,OAAKl8B,IACEA,EAAO,KACVk8B,EAAO,UAAYl8B,EAAO,IAEvBA,EAAO,OACVk8B,EAAO,YAAcl8B,EAAO,MAEzBA,EAAO,OACVk8B,EAAO,YAAcl8B,EAAO,OAG3Bw6B,IACH0B,EAAO,MAAQ1B,EACf0B,EAAO,KAAOT,GAEXxB,IACHiC,EAAO,UAAY,GAGhBtC,IACHsC,EAAStC,EAAmBsC,CAAO,GAG9B,IAAIrC,CAAO,IAAIiC,EAAK,IAAIvC,GAAU,eAAgB2C,CAAO,CAAC,EAAA,EAChE,CAAErC,EAASI,EAAW6B,GAAOL,EAAMjB,EAAUx6B,CAAO,CAAC,EAGlDg5B,GAAsBrgC,EAAA,QAC1B,IACE2B,EAAiB,OAAS6hC,GACxBzC,GAAY,SAAUyC,CAAgB,CACxC,EACF,CAAE7hC,CAAiB,CACrB,EACMy+B,GAAwBpgC,EAAA,QAC5B,IACE2B,EAAiB,OACb6hC,GAAoC,CAACzC,GAAY,SAAUyC,CAAgB,CAC/E,EACF,CAAE7hC,CAAiB,CACrB,EAIM8hC,EAAaC,GAAmBJ,GAAe,CACnD,eAAgBlC,EAChB,gBAAAD,CAAA,CACD,EAEK5sB,GAAQvP,EAAA,YACVwQ,GAAe,WACf,GAAKA,EACH,GAAKisB,EAAiB,CACd,MAAAkC,IACJzjC,EAAA,OAAO,OAAP,YAAAA,EAAa,oBAAoBuhC,MAC/B,OAAO,KAAK,gBAAgB,EAC1BZ,GAAK,oBACHY,EACA,SAAQphC,GAAAD,EAAAqiC,GAAA,YAAAA,EAAS,OAAT,YAAAriC,EAAe,aAAf,YAAAC,EAA2B,aAAc,OAAO,KAAK,iBAAiB,EAC9E,CAAC,EACD,IAEF,EAAA,MAENujC,GAAW,iBAAkB,CAC3B,GAAGpuB,EACH,iBAAkBisB,EAClB,mBAAoBkC,CAAA,CACrB,CAAA,MAEDC,GAAW,iBAAkBpuB,CAAK,CAGxC,EACA,CAAEisB,CAAe,CACnB,EAEMoC,EAAU7jC,EAAAA,QAAQ,IAAM,CAC5B,IAAI8jC,EAAQ,GAEL,MAAA,CAAEC,EAAqBC,IAAmB,CAC1CF,IACGA,EAAA,GACD,OAAO,KAASC,GACd,OAAA,IAAK,QAAS,SAAU,CAC7B,cAAeA,EACf,YAAaC,EAAS,MAAO,EAAG,EAAG,EAAE,IAAMp0B,GAAYA,EAAE,EAAG,EAC5D,aAAc,SAAA,CACf,EAEL,CACF,EAAG,EAAE,EAGL/Q,EAAAA,UAAU,IAAM,CACT,GAAA,CAAC4kC,EAAW,KAAO,OAExB,IAAIQ,EAAaR,EAAW,KACnBI,EAAAtC,GAAA,YAAAA,EAAY,MAAO0C,CAAW,EAElCnC,IACHmC,EAAanC,EAAqB2B,EAAW,KAAMP,GAAY,OAAQ,GAGpEA,GAAY,UAAY,EAE3BP,EAAYsB,CAAW,EAGvBtB,EAAauB,IACED,EAAAC,EAAe,OAAQD,CAAW,EACxCA,EACR,EAGER,EAAW,MACdlvB,GACEytB,EACIA,EAAwByB,EAAW,KAAK,gBAAiBQ,CAAW,EACpER,EAAW,KAAK,eACtB,EAGFZ,EAAY,EAAM,CAAA,EACjB,CAAEY,EAAW,IAAK,CAAC,EAGtB5kC,EAAAA,UAAU,IAAM,CACRojC,GAEIK,EAAA,QAAQ,KAAM58B,CAAQ,CAAA,EAC/B,CAAEA,EAASu8B,CAAQ,CAAC,EAGvBpjC,EAAAA,UAAU,IAAM,CACdkkC,EAAS,CAAE,EACNZ,GACHA,EAAc,CAAE,EAElBU,EAAY,EAAK,EACjBF,EAAW,CAAA,CAAE,CAAA,EACZ,CAAEQ,EAAM,CAAC,EAGN,MAAA7/B,EAActD,EAAAA,QAAQ,IAAM,CAC1B,MAAA+jC,EAAcpD,GAAgBj7B,CAAQ,EAE5C,OAAOq+B,EAAcA,EAAY,MAAO,GAAI,EAAE,OAAS,CAAA,EACtD,CAAEr+B,CAAQ,CAAC,EAGRy+B,GAAiB,CACrB,GAAGC,GACH,eAAgB1+B,EAChB,eAAkB2+B,GAAiC,CACjD,MAAM/hC,EAAS,CAAE,GAAGoD,EAAS,GAAG2+B,CAAe,EAE/CxB,EAAY,EAAK,EACjBD,EAAYtgC,CAAO,CAAA,CAEvB,EAEMhD,GAAOY,GAAAujC,EAAW,OAAX,YAAAvjC,GAAiB,KAExBokC,GAAiBtkC,EAAAA,QAAQ,IAAM,OAE9B,MADA,CAAC6hC,GACD4B,EAAW,SAAW,UAAmB,KAEvCvjC,EAAAujC,EAAW,OAAX,YAAAvjC,EAAiB,aAAcwiC,EAAQ,MAC7C,EAAA,CAAEe,EAAY5B,EAAUa,CAAQ,CAAC,EAGpC,GAAKp/B,IAAgB,KAAKlD,GAAAqjC,EAAW,OAAX,YAAArjC,GAAiB,eAAgB,GAAKnC,EAC9D,uCAAUA,CAAS,EAGrB,MAAMsmC,GAAiB,CAAC,CAACnE,GAAsB,QAAU2B,EAGvD,OAAA1kC,EAAA,cAAC0B,EAAe,SAAf,CAAwB,MAAOolC,IAC7BjC,GAAU7kC,EAAA,cAAA,KAAA,KAAI6kC,CAAM,EAEpB,CAAC,CAACG,GAAkBA,EAAe,CAAE,QAAAK,EAAS,QAAAh9B,CAAQ,CAAC,GAErD,CAAC,CAAC27B,EAAiB,QAAU,CAAC,CAAChB,GAAoB,SACpDhjC,EAAA,cAAC,MAAA,CACC,UAAWkB,EACT,2FACC8hC,GAAoB,OAAiC,0BAAxB,qBAAwB,CACxD,EAEC,CAAC,CAACA,GAAoB,QACrBhjC,EAAA,cAACqE,GAAA,CACC,KAAApC,EACA,iBAAkB+gC,GAClB,UAAW,GAAGziC,GAAO,IAAI,eACzB,QAAA4B,CAAA,CACF,EAID,CAAC,CAAC6hC,EAAiB,QAClBhkC,EAAA,cAAC,MAAA,CACC,UAAWkB,EACTX,GAAO,QACP,wDACA,CACE,eAAgB,CAAC,CAACyiC,GAAoB,MAAA,CACxC,CACF,EAEAhjC,EAAA,cAACqB,GAAA,CACC,UAAU,mBACV,eAAgBgiC,GAAmB,OACnC,MAAOsC,GACP,OAAQ3B,EACR,SAAU4B,EAAA,CAAA,CACZ,CAMR,EAAA5lC,EAAA,cAAC,MAAA,CACC,UAAWkB,EAAK,MAAO,CACrB,UAAW,CAAC,CAAC8iC,EAAiB,QAAU,CAAC,CAAChB,GAAoB,MAC/D,CAAA,CAAA,EAEAkE,IACClnC,EAAA,cAAC,MAAA,CACC,UAAWkB,EACT,gCACA,CACE,OAAQ8iC,EAAiB,SAAW,EACpC,CAACzjC,GAAO,kBAAkB,EAAGyjC,EAAiB,OAAS,CACzD,EACAK,CAAA,CACF,EAEArkC,EAAA,cAAC,MAAA,CACC,UAAWkB,EAAK,UAAW,CACzB,QAAS8iC,EAAiB,OAAS,CACpC,CAAA,CAAA,EAEAU,EAED1kC,EAAA,cAAC8iC,GAAA,CACC,KAAA7gC,EACA,sBAAA8gC,GACA,oBAAAC,GACA,MAAO/8B,EACP,QAAA9D,EACA,mBAAoBkhC,GAAmB,OACvC,YAAaW,EACb,cAAe2B,GACf,OAAQC,EAAA,CAAA,CACV,CAEJ,EAGF5lC,EAAA,cAAC,MAAA,CACC,UAAWkB,EAAK,MAAO,CACrB,YAAagmC,GACb,CAAC5C,CAA0B,EAAG4C,IAAkB5C,CACjD,CAAA,CAAA,EAEAS,EAAgB,CACf,KAAMM,EACN,YAAAp/B,EACA,QAAA9D,EACA,KAAMikC,EAAW,KACjB,eAAgB,IAAMb,EAAW,CAAE,CAAA,CAAA,CACpC,EAEDvlC,EAAA,cAAC,OAAI,UAAU,yCAAA,EACZinC,IAEIjnC,EAAA,cAAAA,EAAA,SAAA,KAAAmnC,EAAAA,eAAgB5C,CAAS,EACxBA,EAEAvkC,EAAA,cAAC,SAAA,CACC,KAAK,SACL,UAAU,oCACV,QAAS,IAAM,CACb0lC,EAASD,EAAO,CAAE,EACbX,GACHA,EAAcW,EAAO,CAAE,CACzB,CACF,EAEClB,GAAY,WAAA,CAGnB,EAGD,CAACpiC,GAAWikC,EAAW,yBACrB,MAAI,CAAA,UAAU,gCAAgC,KAAK,UACjDpmC,EAAA,cAAA,OAAA,CAAK,UAAU,WAAU,YAAU,CACtC,CAEJ,CAAA,CACF,CAEJ,CAEJ","x_google_ignoreList":[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78]}