{"version":3,"file":"select.mjs","sources":["../../../../../../packages/components/select/src/select.vue"],"sourcesContent":["<template>\n  <div\n    ref=\"selectWrapper\"\n    v-click-outside:[popperPaneRef]=\"handleClose\"\n    :class=\"wrapperKls\"\n    @click.stop=\"toggleMenu\"\n  >\n    <el-tooltip\n      ref=\"tooltipRef\"\n      v-model:visible=\"dropMenuVisible\"\n      placement=\"bottom-start\"\n      :teleported=\"compatTeleported\"\n      :popper-class=\"[nsSelect.e('popper'), popperClass]\"\n      :fallback-placements=\"['bottom-start', 'top-start', 'right', 'left']\"\n      :effect=\"effect\"\n      pure\n      trigger=\"click\"\n      :transition=\"`${nsSelect.namespace.value}-zoom-in-top`\"\n      :stop-popper-mouse-event=\"false\"\n      :gpu-acceleration=\"false\"\n      :persistent=\"persistent\"\n      @show=\"handleMenuEnter\"\n    >\n      <template #default>\n        <div class=\"select-trigger\">\n          <div\n            v-if=\"multiple\"\n            ref=\"tags\"\n            :class=\"nsSelect.e('tags')\"\n            :style=\"selectTagsStyle\"\n          >\n            <span\n              v-if=\"collapseTags && selected.length\"\n              :class=\"[\n                nsSelect.b('tags-wrapper'),\n                { 'has-prefix': prefixWidth && selected.length },\n              ]\"\n            >\n              <el-tag\n                :closable=\"!selectDisabled && !selected[0].isDisabled\"\n                :size=\"collapseTagSize\"\n                :hit=\"selected[0].hitState\"\n                :type=\"tagType\"\n                disable-transitions\n                @close=\"deleteTag($event, selected[0])\"\n              >\n                <span\n                  :class=\"nsSelect.e('tags-text')\"\n                  :style=\"{ maxWidth: inputWidth - 123 + 'px' }\"\n                  >{{ selected[0].currentLabel }}</span\n                >\n              </el-tag>\n              <el-tag\n                v-if=\"selected.length > 1\"\n                :closable=\"false\"\n                :size=\"collapseTagSize\"\n                :type=\"tagType\"\n                disable-transitions\n              >\n                <el-tooltip\n                  v-if=\"collapseTagsTooltip\"\n                  :disabled=\"dropMenuVisible\"\n                  :fallback-placements=\"['bottom', 'top', 'right', 'left']\"\n                  :effect=\"effect\"\n                  placement=\"bottom\"\n                  :teleported=\"false\"\n                >\n                  <template #default>\n                    <span :class=\"nsSelect.e('tags-text')\"\n                      >+ {{ selected.length - 1 }}</span\n                    >\n                  </template>\n                  <template #content>\n                    <div :class=\"nsSelect.e('collapse-tags')\">\n                      <div\n                        v-for=\"(item, idx) in selected\"\n                        :key=\"idx\"\n                        :class=\"nsSelect.e('collapse-tag')\"\n                      >\n                        <el-tag\n                          :key=\"getValueKey(item)\"\n                          class=\"in-tooltip\"\n                          :closable=\"!selectDisabled && !item.isDisabled\"\n                          :size=\"collapseTagSize\"\n                          :hit=\"item.hitState\"\n                          :type=\"tagType\"\n                          disable-transitions\n                          :style=\"{ margin: '2px' }\"\n                          @close=\"deleteTag($event, item)\"\n                        >\n                          <span\n                            :class=\"nsSelect.e('tags-text')\"\n                            :style=\"{\n                              maxWidth: inputWidth - 75 + 'px',\n                            }\"\n                            >{{ item.currentLabel }}</span\n                          >\n                        </el-tag>\n                      </div>\n                    </div>\n                  </template>\n                </el-tooltip>\n                <span v-else :class=\"nsSelect.e('tags-text')\"\n                  >+ {{ selected.length - 1 }}</span\n                >\n              </el-tag>\n            </span>\n            <!-- <div> -->\n            <transition v-if=\"!collapseTags\" @after-leave=\"resetInputHeight\">\n              <span\n                :class=\"[\n                  nsSelect.b('tags-wrapper'),\n                  { 'has-prefix': prefixWidth && selected.length },\n                ]\"\n              >\n                <el-tag\n                  v-for=\"item in selected\"\n                  :key=\"getValueKey(item)\"\n                  :closable=\"!selectDisabled && !item.isDisabled\"\n                  :size=\"collapseTagSize\"\n                  :hit=\"item.hitState\"\n                  :type=\"tagType\"\n                  disable-transitions\n                  @close=\"deleteTag($event, item)\"\n                >\n                  <span\n                    :class=\"nsSelect.e('tags-text')\"\n                    :style=\"{ maxWidth: inputWidth - 75 + 'px' }\"\n                    >{{ item.currentLabel }}</span\n                  >\n                </el-tag>\n              </span>\n            </transition>\n            <!-- </div> -->\n            <input\n              v-if=\"filterable\"\n              ref=\"input\"\n              v-model=\"query\"\n              type=\"text\"\n              :class=\"[nsSelect.e('input'), nsSelect.is(selectSize)]\"\n              :disabled=\"selectDisabled\"\n              :autocomplete=\"autocomplete\"\n              :style=\"{\n                marginLeft:\n                  (prefixWidth && !selected.length) || tagInMultiLine\n                    ? `${prefixWidth}px`\n                    : '',\n                flexGrow: 1,\n                width: `${inputLength / (inputWidth - 32)}%`,\n                maxWidth: `${inputWidth - 42}px`,\n              }\"\n              @focus=\"handleFocus\"\n              @blur=\"handleBlur\"\n              @keyup=\"managePlaceholder\"\n              @keydown=\"resetInputState\"\n              @keydown.down.prevent=\"navigateOptions('next')\"\n              @keydown.up.prevent=\"navigateOptions('prev')\"\n              @keydown.esc.stop.prevent=\"visible = false\"\n              @keydown.enter.stop.prevent=\"selectOption\"\n              @keydown.delete=\"deletePrevTag\"\n              @keydown.tab=\"visible = false\"\n              @compositionstart=\"handleComposition\"\n              @compositionupdate=\"handleComposition\"\n              @compositionend=\"handleComposition\"\n              @input=\"debouncedQueryChange\"\n            />\n          </div>\n          <el-input\n            :id=\"id\"\n            ref=\"reference\"\n            v-model=\"selectedLabel\"\n            type=\"text\"\n            :placeholder=\"currentPlaceholder\"\n            :name=\"name\"\n            :autocomplete=\"autocomplete\"\n            :size=\"selectSize\"\n            :disabled=\"selectDisabled\"\n            :readonly=\"readonly\"\n            :validate-event=\"false\"\n            :class=\"[nsSelect.is('focus', visible)]\"\n            :tabindex=\"multiple && filterable ? -1 : undefined\"\n            @focus=\"handleFocus\"\n            @blur=\"handleBlur\"\n            @input=\"debouncedOnInputChange\"\n            @paste=\"debouncedOnInputChange\"\n            @compositionstart=\"handleComposition\"\n            @compositionupdate=\"handleComposition\"\n            @compositionend=\"handleComposition\"\n            @keydown.down.stop.prevent=\"navigateOptions('next')\"\n            @keydown.up.stop.prevent=\"navigateOptions('prev')\"\n            @keydown.enter.stop.prevent=\"selectOption\"\n            @keydown.esc.stop.prevent=\"visible = false\"\n            @keydown.tab=\"visible = false\"\n            @mouseenter=\"inputHovering = true\"\n            @mouseleave=\"inputHovering = false\"\n          >\n            <template v-if=\"$slots.prefix\" #prefix>\n              <div\n                style=\"\n                  height: 100%;\n                  display: flex;\n                  justify-content: center;\n                  align-items: center;\n                \"\n              >\n                <slot name=\"prefix\" />\n              </div>\n            </template>\n            <template #suffix>\n              <el-icon\n                v-if=\"iconComponent\"\n                v-show=\"!showClose\"\n                :class=\"[nsSelect.e('caret'), nsSelect.e('icon'), iconReverse]\"\n              >\n                <component :is=\"iconComponent\" />\n              </el-icon>\n              <el-icon\n                v-if=\"showClose && clearIcon\"\n                :class=\"[nsSelect.e('caret'), nsSelect.e('icon')]\"\n                @click=\"handleClearClick\"\n              >\n                <component :is=\"clearIcon\" />\n              </el-icon>\n            </template>\n          </el-input>\n        </div>\n      </template>\n      <template #content>\n        <el-select-menu>\n          <el-scrollbar\n            v-show=\"options.size > 0 && !loading\"\n            ref=\"scrollbar\"\n            tag=\"ul\"\n            :wrap-class=\"nsSelect.be('dropdown', 'wrap')\"\n            :view-class=\"nsSelect.be('dropdown', 'list')\"\n            :class=\"[\n              nsSelect.is(\n                'empty',\n                !allowCreate && query && filteredOptionsCount === 0\n              ),\n            ]\"\n          >\n            <el-option v-if=\"showNewOption\" :value=\"query\" :created=\"true\" />\n            <slot />\n          </el-scrollbar>\n          <template\n            v-if=\"\n              emptyText &&\n              (!allowCreate || loading || (allowCreate && options.size === 0))\n            \"\n          >\n            <slot v-if=\"$slots.empty\" name=\"empty\" />\n            <p v-else :class=\"nsSelect.be('dropdown', 'empty')\">\n              {{ emptyText }}\n            </p>\n          </template>\n        </el-select-menu>\n      </template>\n    </el-tooltip>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n  toRefs,\n  defineComponent,\n  onMounted,\n  onBeforeUnmount,\n  nextTick,\n  reactive,\n  provide,\n  computed,\n  unref,\n} from 'vue'\nimport { ClickOutside } from '@element-plus/directives'\nimport { useFocus, useLocale, useNamespace } from '@element-plus/hooks'\nimport ElInput from '@element-plus/components/input'\nimport ElTooltip, {\n  useTooltipContentProps,\n} from '@element-plus/components/tooltip'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTag, { tagProps } from '@element-plus/components/tag'\nimport ElIcon from '@element-plus/components/icon'\nimport { useDeprecateAppendToBody } from '@element-plus/components/popper'\nimport { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '@element-plus/constants'\nimport {\n  addResizeListener,\n  removeResizeListener,\n  isValidComponentSize,\n} from '@element-plus/utils'\nimport { CircleClose, ArrowUp } from '@element-plus/icons-vue'\nimport ElOption from './option.vue'\nimport ElSelectMenu from './select-dropdown.vue'\nimport { useSelect, useSelectStates } from './useSelect'\nimport { selectKey } from './token'\n\nimport type { PropType, Component } from 'vue'\nimport type { ComponentSize } from '@element-plus/constants'\nimport type { SelectContext } from './token'\n\nconst COMPONENT_NAME = 'ElSelect'\nexport default defineComponent({\n  name: COMPONENT_NAME,\n  componentName: COMPONENT_NAME,\n  components: {\n    ElInput,\n    ElSelectMenu,\n    ElOption,\n    ElTag,\n    ElScrollbar,\n    ElTooltip,\n    ElIcon,\n  },\n  directives: { ClickOutside },\n  props: {\n    name: String,\n    id: String,\n    modelValue: {\n      type: [Array, String, Number, Boolean, Object],\n      default: undefined,\n    },\n    autocomplete: {\n      type: String,\n      default: 'off',\n    },\n    automaticDropdown: Boolean,\n    size: {\n      type: String as PropType<ComponentSize>,\n      validator: isValidComponentSize,\n    },\n    effect: {\n      type: String as PropType<'light' | 'dark' | string>,\n      default: 'light',\n    },\n    disabled: Boolean,\n    clearable: Boolean,\n    filterable: Boolean,\n    allowCreate: Boolean,\n    loading: Boolean,\n    popperClass: {\n      type: String,\n      default: '',\n    },\n    remote: Boolean,\n    loadingText: String,\n    noMatchText: String,\n    noDataText: String,\n    remoteMethod: Function,\n    filterMethod: Function,\n    multiple: Boolean,\n    multipleLimit: {\n      type: Number,\n      default: 0,\n    },\n    placeholder: {\n      type: String,\n    },\n    defaultFirstOption: Boolean,\n    reserveKeyword: {\n      type: Boolean,\n      default: true,\n    },\n    valueKey: {\n      type: String,\n      default: 'value',\n    },\n    collapseTags: Boolean,\n    collapseTagsTooltip: {\n      type: Boolean,\n      default: false,\n    },\n    popperAppendToBody: {\n      type: Boolean,\n      default: undefined,\n    },\n    teleported: useTooltipContentProps.teleported,\n    persistent: {\n      type: Boolean,\n      default: true,\n    },\n    clearIcon: {\n      type: [String, Object] as PropType<string | Component>,\n      default: CircleClose,\n    },\n    fitInputWidth: {\n      type: Boolean,\n      default: false,\n    },\n    suffixIcon: {\n      type: [String, Object] as PropType<string | Component>,\n      default: ArrowUp,\n    },\n    // eslint-disable-next-line vue/require-prop-types\n    tagType: { ...tagProps.type, default: 'info' },\n  },\n  emits: [\n    UPDATE_MODEL_EVENT,\n    CHANGE_EVENT,\n    'remove-tag',\n    'clear',\n    'visible-change',\n    'focus',\n    'blur',\n  ],\n\n  setup(props, ctx) {\n    const nsSelect = useNamespace('select')\n    const nsInput = useNamespace('input')\n    const { t } = useLocale()\n    const states = useSelectStates(props)\n    const {\n      optionsArray,\n      selectSize,\n      readonly,\n      handleResize,\n      collapseTagSize,\n      debouncedOnInputChange,\n      debouncedQueryChange,\n      deletePrevTag,\n      deleteTag,\n      deleteSelected,\n      handleOptionSelect,\n      scrollToOption,\n      setSelected,\n      resetInputHeight,\n      managePlaceholder,\n      showClose,\n      selectDisabled,\n      iconComponent,\n      iconReverse,\n      showNewOption,\n      emptyText,\n      toggleLastOptionHitState,\n      resetInputState,\n      handleComposition,\n      onOptionCreate,\n      onOptionDestroy,\n      handleMenuEnter,\n      handleFocus,\n      blur,\n      handleBlur,\n      handleClearClick,\n      handleClose,\n      toggleMenu,\n      selectOption,\n      getValueKey,\n      navigateOptions,\n      dropMenuVisible,\n\n      reference,\n      input,\n      tooltipRef,\n      tags,\n      selectWrapper,\n      scrollbar,\n      queryChange,\n      groupQueryChange,\n    } = useSelect(props, states, ctx)\n\n    const { focus } = useFocus(reference)\n\n    const {\n      inputWidth,\n      selected,\n      inputLength,\n      filteredOptionsCount,\n      visible,\n      softFocus,\n      selectedLabel,\n      hoverIndex,\n      query,\n      inputHovering,\n      currentPlaceholder,\n      menuVisibleOnFocus,\n      isOnComposition,\n      isSilentBlur,\n      options,\n      cachedOptions,\n      optionsCount,\n      prefixWidth,\n      tagInMultiLine,\n    } = toRefs(states)\n\n    const wrapperKls = computed(() => {\n      const classList = [nsSelect.b()]\n      const _selectSize = unref(selectSize)\n      if (_selectSize) {\n        classList.push(nsSelect.m(_selectSize))\n      }\n      if (props.disabled) {\n        classList.push(nsSelect.m('disabled'))\n      }\n      return classList\n    })\n\n    const selectTagsStyle = computed(() => ({\n      maxWidth: `${unref(inputWidth) - 32}px`,\n      width: '100%',\n    }))\n\n    provide(\n      selectKey,\n      reactive({\n        props,\n        options,\n        optionsArray,\n        cachedOptions,\n        optionsCount,\n        filteredOptionsCount,\n        hoverIndex,\n        handleOptionSelect,\n        onOptionCreate,\n        onOptionDestroy,\n        selectWrapper,\n        selected,\n        setSelected,\n        queryChange,\n        groupQueryChange,\n      }) as unknown as SelectContext\n    )\n\n    onMounted(() => {\n      states.cachedPlaceHolder = currentPlaceholder.value =\n        props.placeholder || t('el.select.placeholder')\n      if (\n        props.multiple &&\n        Array.isArray(props.modelValue) &&\n        props.modelValue.length > 0\n      ) {\n        currentPlaceholder.value = ''\n      }\n      addResizeListener(selectWrapper.value as any, handleResize)\n      if (reference.value && reference.value.$el) {\n        const sizeMap = {\n          large: 36,\n          default: 32,\n          small: 28,\n        }\n        const input = reference.value.input as HTMLInputElement\n        states.initialInputHeight =\n          input.getBoundingClientRect().height || sizeMap[selectSize.value]\n      }\n      if (props.remote && props.multiple) {\n        resetInputHeight()\n      }\n      nextTick(() => {\n        if (!reference.value) return\n        if (reference.value.$el) {\n          inputWidth.value = reference.value.$el.getBoundingClientRect().width\n        }\n        if (ctx.slots.prefix) {\n          const inputChildNodes = reference.value.$el.childNodes\n          const input = (Array.from(inputChildNodes) as HTMLElement[]).find(\n            (item) => item.tagName === 'INPUT'\n          )\n          const prefix = reference.value.$el.querySelector(\n            `.${nsInput.e('prefix')}`\n          )\n          prefixWidth.value = Math.max(\n            prefix.getBoundingClientRect().width + 5,\n            30\n          )\n          if (states.prefixWidth) {\n            input.style.paddingLeft = `${Math.max(states.prefixWidth, 30)}px`\n          }\n        }\n      })\n      setSelected()\n    })\n\n    onBeforeUnmount(() => {\n      removeResizeListener(selectWrapper.value as any, handleResize)\n    })\n\n    if (props.multiple && !Array.isArray(props.modelValue)) {\n      ctx.emit(UPDATE_MODEL_EVENT, [])\n    }\n    if (!props.multiple && Array.isArray(props.modelValue)) {\n      ctx.emit(UPDATE_MODEL_EVENT, '')\n    }\n\n    const popperPaneRef = computed(() => {\n      return tooltipRef.value?.popperRef?.contentRef\n    })\n\n    const { compatTeleported } = useDeprecateAppendToBody(\n      COMPONENT_NAME,\n      'popperAppendToBody'\n    )\n\n    return {\n      tagInMultiLine,\n      prefixWidth,\n      selectSize,\n      readonly,\n      handleResize,\n      collapseTagSize,\n      debouncedOnInputChange,\n      debouncedQueryChange,\n      deletePrevTag,\n      deleteTag,\n      deleteSelected,\n      handleOptionSelect,\n      scrollToOption,\n      inputWidth,\n      selected,\n      inputLength,\n      filteredOptionsCount,\n      visible,\n      softFocus,\n      selectedLabel,\n      hoverIndex,\n      query,\n      inputHovering,\n      currentPlaceholder,\n      menuVisibleOnFocus,\n      isOnComposition,\n      isSilentBlur,\n      options,\n      resetInputHeight,\n      managePlaceholder,\n      showClose,\n      selectDisabled,\n      iconComponent,\n      iconReverse,\n      showNewOption,\n      emptyText,\n      toggleLastOptionHitState,\n      resetInputState,\n      handleComposition,\n      handleMenuEnter,\n      handleFocus,\n      blur,\n      handleBlur,\n      handleClearClick,\n      handleClose,\n      toggleMenu,\n      selectOption,\n      getValueKey,\n      navigateOptions,\n      dropMenuVisible,\n      focus,\n\n      reference,\n      input,\n      tooltipRef,\n      popperPaneRef,\n      tags,\n      selectWrapper,\n      scrollbar,\n\n      wrapperKls,\n      selectTagsStyle,\n      compatTeleported,\n      nsSelect,\n    }\n  },\n})\n</script>\n"],"names":["ElOption","_withDirectives","_openBlock","_createElementBlock","_normalizeClass","_withModifiers","_createVNode","_withCtx","_createElementVNode","_normalizeStyle","_toDisplayString","_createBlock","_Fragment","_renderList","_createCommentVNode","_Transition","_withKeys","_vModelText","_createSlots","_resolveDynamicComponent","_vShow","_renderSlot"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4SA,MAAM,cAAiB,GAAA,UAAA,CAAA;AACvB,MAAK,YAAa,eAAa,CAAA;AAAA,EAC7B,IAAM,EAAA,cAAA;AAAA,EACN,aAAe,EAAA,cAAA;AAAA,EACf,UAAY,EAAA;AAAA,IACV,OAAA;AAAA,IACA,YAAA;AAAA,cACAA,MAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA;AAAA,GAAA;AAAA,EAEF,YAAY,EAAE,YAAA,EAAA;AAAA,EACd,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,EAAI,EAAA,MAAA;AAAA,IACJ,UAAY,EAAA;AAAA,MACV,IAAM,EAAA,CAAC,KAAO,EAAA,MAAA,EAAQ,QAAQ,OAAS,EAAA,MAAA,CAAA;AAAA,MACvC,OAAS,EAAA,KAAA,CAAA;AAAA,KAAA;AAAA,IAEX,YAAc,EAAA;AAAA,MACZ,IAAM,EAAA,MAAA;AAAA,MACN,OAAS,EAAA,KAAA;AAAA,KAAA;AAAA,IAEX,iBAAmB,EAAA,OAAA;AAAA,IACnB,IAAM,EAAA;AAAA,MACJ,IAAM,EAAA,MAAA;AAAA,MACN,SAAW,EAAA,oBAAA;AAAA,KAAA;AAAA,IAEb,MAAQ,EAAA;AAAA,MACN,IAAM,EAAA,MAAA;AAAA,MACN,OAAS,EAAA,OAAA;AAAA,KAAA;AAAA,IAEX,QAAU,EAAA,OAAA;AAAA,IACV,SAAW,EAAA,OAAA;AAAA,IACX,UAAY,EAAA,OAAA;AAAA,IACZ,WAAa,EAAA,OAAA;AAAA,IACb,OAAS,EAAA,OAAA;AAAA,IACT,WAAa,EAAA;AAAA,MACX,IAAM,EAAA,MAAA;AAAA,MACN,OAAS,EAAA,EAAA;AAAA,KAAA;AAAA,IAEX,MAAQ,EAAA,OAAA;AAAA,IACR,WAAa,EAAA,MAAA;AAAA,IACb,WAAa,EAAA,MAAA;AAAA,IACb,UAAY,EAAA,MAAA;AAAA,IACZ,YAAc,EAAA,QAAA;AAAA,IACd,YAAc,EAAA,QAAA;AAAA,IACd,QAAU,EAAA,OAAA;AAAA,IACV,aAAe,EAAA;AAAA,MACb,IAAM,EAAA,MAAA;AAAA,MACN,OAAS,EAAA,CAAA;AAAA,KAAA;AAAA,IAEX,WAAa,EAAA;AAAA,MACX,IAAM,EAAA,MAAA;AAAA,KAAA;AAAA,IAER,kBAAoB,EAAA,OAAA;AAAA,IACpB,cAAgB,EAAA;AAAA,MACd,IAAM,EAAA,OAAA;AAAA,MACN,OAAS,EAAA,IAAA;AAAA,KAAA;AAAA,IAEX,QAAU,EAAA;AAAA,MACR,IAAM,EAAA,MAAA;AAAA,MACN,OAAS,EAAA,OAAA;AAAA,KAAA;AAAA,IAEX,YAAc,EAAA,OAAA;AAAA,IACd,mBAAqB,EAAA;AAAA,MACnB,IAAM,EAAA,OAAA;AAAA,MACN,OAAS,EAAA,KAAA;AAAA,KAAA;AAAA,IAEX,kBAAoB,EAAA;AAAA,MAClB,IAAM,EAAA,OAAA;AAAA,MACN,OAAS,EAAA,KAAA,CAAA;AAAA,KAAA;AAAA,IAEX,YAAY,sBAAuB,CAAA,UAAA;AAAA,IACnC,UAAY,EAAA;AAAA,MACV,IAAM,EAAA,OAAA;AAAA,MACN,OAAS,EAAA,IAAA;AAAA,KAAA;AAAA,IAEX,SAAW,EAAA;AAAA,MACT,IAAA,EAAM,CAAC,MAAQ,EAAA,MAAA,CAAA;AAAA,MACf,OAAS,EAAA,WAAA;AAAA,KAAA;AAAA,IAEX,aAAe,EAAA;AAAA,MACb,IAAM,EAAA,OAAA;AAAA,MACN,OAAS,EAAA,KAAA;AAAA,KAAA;AAAA,IAEX,UAAY,EAAA;AAAA,MACV,IAAA,EAAM,CAAC,MAAQ,EAAA,MAAA,CAAA;AAAA,MACf,OAAS,EAAA,OAAA;AAAA,KAAA;AAAA,IAGX,OAAS,EAAA,EAAA,GAAK,QAAS,CAAA,IAAA,EAAM,OAAS,EAAA,MAAA,EAAA;AAAA,GAAA;AAAA,EAExC,KAAO,EAAA;AAAA,IACL,kBAAA;AAAA,IACA,YAAA;AAAA,IACA,YAAA;AAAA,IACA,OAAA;AAAA,IACA,gBAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA;AAAA,GAAA;AAAA,EAGF,KAAA,CAAM,OAAO,GAAK,EAAA;AAChB,IAAA,MAAM,WAAW,YAAa,CAAA,QAAA,CAAA,CAAA;AAC9B,IAAA,MAAM,UAAU,YAAa,CAAA,OAAA,CAAA,CAAA;AAC7B,IAAA,MAAM,EAAE,CAAM,EAAA,GAAA,SAAA,EAAA,CAAA;AACd,IAAA,MAAM,SAAS,eAAgB,CAAA,KAAA,CAAA,CAAA;AAC/B,IAAM,MAAA;AAAA,MACJ,YAAA;AAAA,MACA,UAAA;AAAA,MACA,QAAA;AAAA,MACA,YAAA;AAAA,MACA,eAAA;AAAA,MACA,sBAAA;AAAA,MACA,oBAAA;AAAA,MACA,aAAA;AAAA,MACA,SAAA;AAAA,MACA,cAAA;AAAA,MACA,kBAAA;AAAA,MACA,cAAA;AAAA,MACA,WAAA;AAAA,MACA,gBAAA;AAAA,MACA,iBAAA;AAAA,MACA,SAAA;AAAA,MACA,cAAA;AAAA,MACA,aAAA;AAAA,MACA,WAAA;AAAA,MACA,aAAA;AAAA,MACA,SAAA;AAAA,MACA,wBAAA;AAAA,MACA,eAAA;AAAA,MACA,iBAAA;AAAA,MACA,cAAA;AAAA,MACA,eAAA;AAAA,MACA,eAAA;AAAA,MACA,WAAA;AAAA,MACA,IAAA;AAAA,MACA,UAAA;AAAA,MACA,gBAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA;AAAA,MACA,YAAA;AAAA,MACA,WAAA;AAAA,MACA,eAAA;AAAA,MACA,eAAA;AAAA,MAEA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,UAAA;AAAA,MACA,IAAA;AAAA,MACA,aAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA;AAAA,MACA,gBAAA;AAAA,KACE,GAAA,SAAA,CAAU,OAAO,MAAQ,EAAA,GAAA,CAAA,CAAA;AAE7B,IAAM,MAAA,EAAE,UAAU,QAAS,CAAA,SAAA,CAAA,CAAA;AAE3B,IAAM,MAAA;AAAA,MACJ,UAAA;AAAA,MACA,QAAA;AAAA,MACA,WAAA;AAAA,MACA,oBAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA;AAAA,MACA,aAAA;AAAA,MACA,UAAA;AAAA,MACA,KAAA;AAAA,MACA,aAAA;AAAA,MACA,kBAAA;AAAA,MACA,kBAAA;AAAA,MACA,eAAA;AAAA,MACA,YAAA;AAAA,MACA,OAAA;AAAA,MACA,aAAA;AAAA,MACA,YAAA;AAAA,MACA,WAAA;AAAA,MACA,cAAA;AAAA,KAAA,GACE,MAAO,CAAA,MAAA,CAAA,CAAA;AAEX,IAAM,MAAA,UAAA,GAAa,SAAS,MAAM;AAChC,MAAM,MAAA,SAAA,GAAY,CAAC,QAAS,CAAA,CAAA,EAAA,CAAA,CAAA;AAC5B,MAAA,MAAM,cAAc,KAAM,CAAA,UAAA,CAAA,CAAA;AAC1B,MAAA,IAAI,WAAa,EAAA;AACf,QAAU,SAAA,CAAA,IAAA,CAAK,SAAS,CAAE,CAAA,WAAA,CAAA,CAAA,CAAA;AAAA,OAAA;AAE5B,MAAA,IAAI,MAAM,QAAU,EAAA;AAClB,QAAU,SAAA,CAAA,IAAA,CAAK,SAAS,CAAE,CAAA,UAAA,CAAA,CAAA,CAAA;AAAA,OAAA;AAE5B,MAAO,OAAA,SAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAGT,IAAM,MAAA,eAAA,GAAkB,SAAS,OAAO;AAAA,MACtC,QAAA,EAAU,CAAG,EAAA,KAAA,CAAM,UAAc,CAAA,GAAA,EAAA,CAAA,EAAA,CAAA;AAAA,MACjC,KAAO,EAAA,MAAA;AAAA,KAAA,CAAA,CAAA,CAAA;AAGT,IAAA,OAAA,CACE,WACA,QAAS,CAAA;AAAA,MACP,KAAA;AAAA,MACA,OAAA;AAAA,MACA,YAAA;AAAA,MACA,aAAA;AAAA,MACA,YAAA;AAAA,MACA,oBAAA;AAAA,MACA,UAAA;AAAA,MACA,kBAAA;AAAA,MACA,cAAA;AAAA,MACA,eAAA;AAAA,MACA,aAAA;AAAA,MACA,QAAA;AAAA,MACA,WAAA;AAAA,MACA,WAAA;AAAA,MACA,gBAAA;AAAA,KAAA,CAAA,CAAA,CAAA;AAIJ,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,MAAA,CAAO,iBAAoB,GAAA,kBAAA,CAAmB,KAC5C,GAAA,KAAA,CAAM,eAAe,CAAE,CAAA,uBAAA,CAAA,CAAA;AACzB,MACE,IAAA,KAAA,CAAM,YACN,KAAM,CAAA,OAAA,CAAQ,MAAM,UACpB,CAAA,IAAA,KAAA,CAAM,UAAW,CAAA,MAAA,GAAS,CAC1B,EAAA;AACA,QAAA,kBAAA,CAAmB,KAAQ,GAAA,EAAA,CAAA;AAAA,OAAA;AAE7B,MAAA,iBAAA,CAAkB,cAAc,KAAc,EAAA,YAAA,CAAA,CAAA;AAC9C,MAAA,IAAI,SAAU,CAAA,KAAA,IAAS,SAAU,CAAA,KAAA,CAAM,GAAK,EAAA;AAC1C,QAAA,MAAM,OAAU,GAAA;AAAA,UACd,KAAO,EAAA,EAAA;AAAA,UACP,OAAS,EAAA,EAAA;AAAA,UACT,KAAO,EAAA,EAAA;AAAA,SAAA,CAAA;AAET,QAAM,MAAA,MAAA,GAAQ,UAAU,KAAM,CAAA,KAAA,CAAA;AAC9B,QAAA,MAAA,CAAO,kBACL,GAAA,MAAA,CAAM,qBAAwB,EAAA,CAAA,MAAA,IAAU,QAAQ,UAAW,CAAA,KAAA,CAAA,CAAA;AAAA,OAAA;AAE/D,MAAI,IAAA,KAAA,CAAM,MAAU,IAAA,KAAA,CAAM,QAAU,EAAA;AAClC,QAAA,gBAAA,EAAA,CAAA;AAAA,OAAA;AAEF,MAAA,QAAA,CAAS,MAAM;AACb,QAAA,IAAI,CAAC,SAAU,CAAA,KAAA;AAAO,UAAA,OAAA;AACtB,QAAI,IAAA,SAAA,CAAU,MAAM,GAAK,EAAA;AACvB,UAAA,UAAA,CAAW,KAAQ,GAAA,SAAA,CAAU,KAAM,CAAA,GAAA,CAAI,qBAAwB,EAAA,CAAA,KAAA,CAAA;AAAA,SAAA;AAEjE,QAAI,IAAA,GAAA,CAAI,MAAM,MAAQ,EAAA;AACpB,UAAM,MAAA,eAAA,GAAkB,SAAU,CAAA,KAAA,CAAM,GAAI,CAAA,UAAA,CAAA;AAC5C,UAAM,MAAA,MAAA,GAAS,MAAM,IAAK,CAAA,eAAA,CAAA,CAAmC,KAC3D,CAAC,IAAA,KAAS,KAAK,OAAY,KAAA,OAAA,CAAA,CAAA;AAE7B,UAAA,MAAM,SAAS,SAAU,CAAA,KAAA,CAAM,IAAI,aACjC,CAAA,CAAA,CAAA,EAAI,QAAQ,CAAE,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEhB,UAAA,WAAA,CAAY,QAAQ,IAAK,CAAA,GAAA,CACvB,MAAO,CAAA,qBAAA,EAAA,CAAwB,QAAQ,CACvC,EAAA,EAAA,CAAA,CAAA;AAEF,UAAA,IAAI,OAAO,WAAa,EAAA;AACtB,YAAA,MAAA,CAAM,MAAM,WAAc,GAAA,CAAA,EAAG,IAAK,CAAA,GAAA,CAAI,OAAO,WAAa,EAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA;AAAA,WAAA;AAAA,SAAA;AAAA,OAAA,CAAA,CAAA;AAIhE,MAAA,WAAA,EAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAGF,IAAA,eAAA,CAAgB,MAAM;AACpB,MAAA,oBAAA,CAAqB,cAAc,KAAc,EAAA,YAAA,CAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAGnD,IAAA,IAAI,MAAM,QAAY,IAAA,CAAC,KAAM,CAAA,OAAA,CAAQ,MAAM,UAAa,CAAA,EAAA;AACtD,MAAA,GAAA,CAAI,KAAK,kBAAoB,EAAA,EAAA,CAAA,CAAA;AAAA,KAAA;AAE/B,IAAA,IAAI,CAAC,KAAM,CAAA,QAAA,IAAY,KAAM,CAAA,OAAA,CAAQ,MAAM,UAAa,CAAA,EAAA;AACtD,MAAA,GAAA,CAAI,KAAK,kBAAoB,EAAA,EAAA,CAAA,CAAA;AAAA,KAAA;AAG/B,IAAM,MAAA,aAAA,GAAgB,SAAS,MAAM;AACnC,MAAO,IAAA,EAAA,EAAA,EAAA,CAAA;AAA6B,MAAA,OAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,UAAA,CAAA,KAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAA,CAAA;AAGtC,KAAM,CAAA,CAAA;AAKN,IAAO,MAAA,EAAA,gBAAA,EAAA,GAAA,wBAAA,CAAA,cAAA,EAAA,oBAAA,CAAA,CAAA;AAAA,IACL,OAAA;AAAA,MACA,cAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA;AAAA,MACA,QAAA;AAAA,MACA,YAAA;AAAA,MACA,eAAA;AAAA,MACA,sBAAA;AAAA,MACA,oBAAA;AAAA,MACA,aAAA;AAAA,MACA,SAAA;AAAA,MACA,cAAA;AAAA,MACA,kBAAA;AAAA,MACA,cAAA;AAAA,MACA,UAAA;AAAA,MACA,QAAA;AAAA,MACA,WAAA;AAAA,MACA,oBAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA;AAAA,MACA,aAAA;AAAA,MACA,UAAA;AAAA,MACA,KAAA;AAAA,MACA,aAAA;AAAA,MACA,kBAAA;AAAA,MACA,kBAAA;AAAA,MACA,eAAA;AAAA,MACA,YAAA;AAAA,MACA,OAAA;AAAA,MACA,gBAAA;AAAA,MACA,iBAAA;AAAA,MACA,SAAA;AAAA,MACA,cAAA;AAAA,MACA,aAAA;AAAA,MACA,WAAA;AAAA,MACA,aAAA;AAAA,MACA,SAAA;AAAA,MACA,wBAAA;AAAA,MACA,eAAA;AAAA,MACA,iBAAA;AAAA,MACA,eAAA;AAAA,MACA,WAAA;AAAA,MACA,IAAA;AAAA,MACA,UAAA;AAAA,MACA,gBAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA;AAAA,MACA,YAAA;AAAA,MACA,WAAA;AAAA,MACA,eAAA;AAAA,MACA,eAAA;AAAA,MAEA,KAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,UAAA;AAAA,MACA,aAAA;AAAA,MACA,IAAA;AAAA,MACA,aAAA;AAAA,MAEA,SAAA;AAAA,MACA,UAAA;AAAA,MACA,eAAA;AAAA,MACA,gBAAA;AAAA,MAAA,QAAA;AAAA,KAAA,CAAA;AAAA,GAAA;;;AAxcU,MAAA,UAAA,GAAA,CAAA,UAAA,EAAA,cAAA,CAAA,CAAA;;;;;;;;;;mDA6DR,CAAA,eAAA,CAAA,CAAA;AAAA,EAAA,OAjQAC,cAAA,EAAAC,SAAA,EAAA,EAAAC,kBAAA,CAAA,KAAA,EAAA;AAAA,IAEH,oBAAO;AAAA,IACP,KAAA,EAAAC;AAAsB,IAAA,OAAA,EAAA,MAAA,CAAA,EAAA,CAAA,KAAA,MAAA,CAAA,EAAA,CAAA,GAAAC,aAAA,CAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,UAAA,IAAA,IAAA,CAAA,UAAA,CAAA,GAAA,IAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAA;KA6PV;AAAA,IAAAC,WA1PP,CAAA,qBAAA,EAAA;AAAA,MACI,GAAS,EAAA,YAAA;AAAA,MAAe,OAAA,EAAA,IAAA,CAAA,eAAA;AAAA,MAChC,kBAAU,EAAA,MAAA,CAAA,EAAA,CAAA,KAAA,MAAA,CAAA,EAAA,CAAA,GAAA,CAAA,MAAA,KAAA,IAAA,CAAA,eAAA,GAAA,MAAA,CAAA;AAAA,MACT,SAAY,EAAA,cAAA;AAAA,MACZ,UAAY,EAAA,IAAA,CAAG,gBAAU;AAAY,MACrC,cAAqB,EAAA,CAAA,IAAA,CAAA,QAAA,CAAA,CAAA,CAAA,QAAA,CAAA,EAAA,IAAA,CAAA,WAAA,CAAA;AAAA,MACrB,qBAAQ,EAAA,CAAA,cAAA,EAAA,WAAA,EAAA,OAAA,EAAA,MAAA,CAAA;AAAA,MACT,MAAA,EAAA,IAAA,CAAA,MAAA;AAAA,MACA,IAAQ,EAAA,EAAA;AAAA,MACP,OAAA,EAAA,OAAe;AAAmB,MAClC,UAAyB,EAAA,CAAA,EAAA,IAAA,CAAA,QAAA,CAAA,SAAA,CAAA,KAAA,CAAA,YAAA,CAAA;AAAA,MACzB,yBAAkB,EAAA,KAAA;AAAA,MAClB,kBAAY,EAAA,KAAA;AAAA,MACZ,UAAM,EAAA,IAAA,CAAA,UAAA;AAAA,MAAA,MAAA,EAAA,IAAA,CAAA,eAAA;AAEI,KAAA,EAAA;AA0MH,MAzMN,OAAA,EAAAC,OAAA,CAAA;AAyMM,QAAAC,oCA3DE,EAAA;AAAA,UAAA,IAAA,CAAA,QAAA,IAAAN,SAAA,EAAA,EAAAC,kBAAA,CAAA,KAAA,EAAA;YA3IJ,GAAI,EAAA,CAAA;AAAA,YACH,GAAA,EAAA,MAAO;AAAU,YACjB,OAAKC,cAAE,CAAA,IAAA,CAAA,QAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA;AAAA,YAAA,KAAA,EAAAK,cAAA,CAAA,IAAA,CAAA,eAAA,CAAA;aAGgB;AA0EjB,YAAA,IAAA,CAAA,YAAA,IAAA,IAAA,CAAA,QAAA,CAAA,MAAA,IAAAP,SAAA,EAAA,EAAAC,kBAAA,CAAA,MAAA,EAAA;cAzEJ,GAAK,EAAA,CAAA;AAAA,cAAA,qBAA8B,CAAA;AAAA,gBAAA,IAAA,CAAA,QAAA,CAAA,CAAA,CAAkD;AAAwB,gBAAA,EAAA,YAAA,EAAA,IAAA,CAAA,WAAA,IAAA,IAAA,CAAA,QAAA,CAAA,MAAA,EAAA;AAAA,eAAA,CAAA;eAkBrG;AAAA,cAAAG,WAZE,CAAG,iBAAc,EAAA;AAAiB,gBAC1C,QAAM,EAAA,CAAA,IAAA,CAAA,cAAA,IAAA,CAAA,IAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,UAAA;AAAA,gBACN,IAAA,sBAAiB;AAAA,gBACjB,GAAM,EAAA,IAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,QAAA;AAAA,gBACP,IAAA,EAAA,IAAA,CAAA,OAAA;AAAA,gBACC,qBAAK,EAAA,EAAA;AAA4B,gBAAA,OAAA,EAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAA,IAAA,CAAA,SAAA,CAAA,MAAA,EAAA,IAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAMjC,gBAAA,OAAA,EAAAC,OAAA,CAAA,MAAA;AAAA,kBAHEC,kBAAO,CAAA,MAAA,EAAA;AAAU,oBACjB,KAAA,EAAKJ,4BAAwB,CAAA,CAAA,CAAA,WAAA,CAAA,CAAA;AAAA,oBAC1B,KAAA,EAAAK,cAAA,CAAA,EAAA,UAAY,IAAY,CAAA,UAAA,GAAA,GAAA,GAAA,IAAA,EAAA,CAAA;AAAA,mBAAA,EAAAC,eAAA,CAAA,IAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,YAAA,CAAA,EAAA,CAAA,CAAA;AAAA,iBAAA,CAAA;;eAIf,EAAA,CAAA,EAAA,CAAA,UAAA,EAAA,uBADjB;AAqDS,cAAA,IAAA,CAAA,QAAA,CAAA,MAAA,GAAA,CAAA,IAAAR,SAAA,EAAA,EAAAS,WAAA,CAAA,iBAAA,EAAA;gBAnDN,GAAU,EAAA,CAAA;AAAA,gBACV,QAAM,EAAA,KAAA;AAAA,gBACN,IAAM,EAAA,IAAA,CAAA,eAAA;AAAA,gBACP,IAAA,EAAA,IAAA,CAAA,OAAA;AAAA,gBAAA,qBAAA,EAAA,EAAA;;AA4Ca,gBAAA;AAAA,kBAAA,IAAA,CAAA,mBAAA,IAAAT,SAAA,EAAA,EAAAS,WAAA,CAAA,qBAAA,EAAA;oBAxCV,GAAU,EAAA,CAAA;AAAA,oBACV,QAAqB,EAAA,IAAA,CAAA,eAAA;AAAA,oBACrB,qBAAQ,EAAA,CAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,CAAA;AAAA,oBACT,MAAU,EAAA,IAAA,CAAA,MAAA;AAAA,oBACT,SAAY,EAAA,QAAA;AAAA,oBAAA,UAAA,EAAA,KAAA;AAEF,mBAAA,EAAA;AAGR,oBAAA,OAAA,EAAAJ,OAAA,CAAA,MAAA;AAAA,sBAFMC,kBAAO,CAAA,MAAA,EAAA;AAAU,wBACrB,KAAA,EAAAJ,cAAK,CAAA,IAAA,CAAA,QAAA,CAAA,CAAA,CAAS,WAAM,CAAA,CAAA;AAAA,uBAAA,EAAA,IAAA,GAAAM,eAAA,CAAA,IAAA,CAAA,QAAA,CAAA,MAAA,GAAA,CAAA,CAAA,EAAA,CAAA,CAAA;AAAA,qBAGd,CAAA;AA2BH,oBAAA,OAAA,EAAAH,OAAA,CAAA,MAAA;AAAA,sBA1BAC,kBAAO,CAAA,KAAA,EAAA;AAAU,wBAAA,KAAA,EAAAJ,cAAA,CAAA,IAAA,CAAA,QAAA,CAAA,CAAA,CAAA,eAAA,CAAA,CAAA;AACrB,uBAAA,EAAA;4DAwBM,CAAAQ,QAAA,EAAA,IAAA,EAAAC,UAAA,CAAA,IAAA,CAAA,QAAA,EAAA,CAAA,IAAA,EAAA,GAAA,KAAA;AAAA,0BAAA,OAtBEX,SAAA,EAAA,EAAAC,kBAAA,CAAA,KAAA,EAAA;AAAA,4BACL,GAAA,EAAA,GAAO;AAAU,4BAAA,KAAA,EAAAC,cAAA,CAAA,IAAA,CAAA,QAAA,CAAA,CAAA,CAAA,cAAA,CAAA,CAAA;;AAoBT,6BAAAF,SAjBW,EAAA,EAAAS,WAAA,CAAA,iBAAA,EAAA;AAAA,8BAClB,GAAM,EAAA,IAAA,CAAA,WAAA,CAAA,IAAA,CAAA;AAAA,8BACL,KAAQ,EAAA,YAAiB;AAAU,8BACnC,QAAM,EAAA,CAAA,IAAA,CAAA,cAAA,IAAA,CAAA,IAAA,CAAA,UAAA;AAAA,8BACN,MAAU,IAAA,CAAA,eAAA;AAAA,8BACV,GAAM,EAAA,IAAA,CAAA,QAAA;AAAA,8BACP,IAAA,EAAA,IAAA,CAAA,OAAA;AAAA,8BACC,qBAAO,EAAA,EAAA;AAAA,8BACP,KAAA,EAAA,EAAK,MAAE,EAAA,KAAA,EAAA;AAAkB,8BAAA,OAAA,EAAA,CAAA,MAAA,KAAA,IAAA,CAAA,SAAA,CAAA,MAAA,EAAA,IAAA,CAAA;;AAQzB,8BAAA,OAAA,EAAAJ,OAAA,CAAA,MAAA;AAAA,gCALEC,kBAAO,CAAA,MAAA,EAAA;AAAU,kCACjB,KAAK,EAAAJ,cAAA,CAAA,IAAA,CAAA,QAAA,CAAA,CAAA,CAAA,WAAA,CAAA,CAAA;AAAA,kCAAA,KAAA,EAAAK,cAAsD,CAAA;AAAA,oCAAA,QAAA,EAAA,IAAA,CAAA,UAAA,GAAA,EAAA,GAAA,IAAA;AAAA,mCAAA,CAAA;AAGvC,iCAAA,EAAAC,eAAA,CAAA,IAAA,CAAA,YAAA,CAAA,EAAA,CAAA,CAAA;AAAA,+BAAA,CAAA;;;;;;;;AAShC,mBAAA,EAAA,CAAA,EAAA,CAAA,UAAA,EAAA,QAAA,CAAA,CAAA,KAAAR,SAAA,EAAA,EAAAC,kBAAA,CAAA,MAAA,EAAA;oBAFa,GAAK,EAAA,CAAA;AAAY,oBAC5B,KAAA,EAAAC,cAAK,CAAA,IAAA,CAAA,QAAA,CAAA,CAAA,CAAS,WAAM,CAAA,CAAA;AAAA,mBAAA,EAAA,IAAA,GAAAM,eAAA,CAAA,IAAA,CAAA,QAAA,CAAA,MAAA,GAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;AAAA,iBAAA,CAAA;;;AAI3B,aAAA,EAAA,CAAA,CAAA,IAAAI,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,YAAAA;AAyBa,YAAA,CAAA,IAAA,CAAA,YAAA,IAAAZ,SAAA,EAAA,EAAAS,WAAA,CAAAI,UAAA,EAAA;cAxBqB,GAAa,EAAA,CAAA;AAAA,cAAA,YAAA,EAAA,IAAA,CAAA,gBAAA;;AAuBtC,cAAA,OAAA,EAAAR,OAAA,CAAA,MAAA;AAAA,gBAAAC,kBArBC,CAAA,MAAA,EAAA;AAAA,kBAAA,qBAAgC,CAAA;AAAA,oBAAA,IAAA,CAAA,QAAA,CAAA,CAAA,CAAoD;AAAwB,oBAAA,EAAA,YAAA,EAAA,IAAA,CAAA,WAAA,IAAA,IAAA,CAAA,QAAA,CAAA,MAAA,EAAA;AAAA,mBAAA,CAAA;;sDAoBzG,CAAAI,QAAA,EAAA,IAAA,EAAAC,UAAA,CAAA,IAAA,CAAA,QAAA,EAAA,CAAA,IAAA,KAAA;AAAA,oBAAA,OAbDX,SAAY,EAAA,EAAAS,WAAA,CAAA,iBAAA,EAAA;AAAA,sBACjB,GAAQ,EAAA,IAAA,CAAA,WAAiB,CAAA,IAAA,CAAA;AAAU,sBACnC,QAAM,EAAA,CAAA,IAAA,CAAA,cAAA,IAAA,CAAA,IAAA,CAAA,UAAA;AAAA,sBACN,MAAU,IAAA,CAAA,eAAA;AAAA,sBACV,GAAM,EAAA,IAAA,CAAA,QAAA;AAAA,sBACP,IAAA,EAAA,IAAA,CAAA,OAAA;AAAA,sBACC,qBAAO,EAAA,EAAA;AAAkB,sBAAA,OAAA,EAAA,CAAA,MAAA,KAAA,IAAA,CAAA,SAAA,CAAA,MAAA,EAAA,IAAA,CAAA;;AAMzB,sBAAA,OAAA,EAAAJ,OAAA,CAAA,MAAA;AAAA,wBAHEC,kBAAO,CAAA,MAAA,EAAA;AAAU,0BACjB,KAAA,EAAKJ,4BAAwB,CAAA,CAAA,CAAA,WAAA,CAAA,CAAA;AAAA,0BAAA,KAAA,EAAAK,eACrB,EAAY,QAAA,EAAA,IAAA,CAAA,UAAA,GAAA,EAAA,GAAA,IAAA,EAAA,CAAA;AAAA,yBAAA,EAAAC,eAAA,CAAA,IAAA,CAAA,YAAA,CAAA,EAAA,CAAA,CAAA;AAAA,uBAAA,CAAA;;;;;;;AAK7B,aAAA,EAAA,CAAA,EAAA,CAAA,cAAA,CAAA,CAAA,IAAAI,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,YAEQA;AA8BN,YAAA,IAAA,CAAA,UAAA,GAAAb,cAAA,EAAAC,SAAA,EAAA,EAAAC,kBAAA,CAAA,OAAA,EAAA;cA7BA,GAAI,EAAA,CAAA;AAAA,cAAA,GAAA,EAAA,OAAA;AACU,cACd,qBAAK,EAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAA,IAAA,CAAA,KAAA,GAAA,MAAA,CAAA;AAAA,cACJ,YAAQ;AAAiC,cACzC,KAAU,EAAAC,cAAA,CAAA,CAAA,IAAA,CAAA,QAAA,CAAA,CAAA,CAAA,OAAA,CAAA,EAAA,IAAA,CAAA,QAAA,CAAA,EAAA,CAAA,IAAA,CAAA,UAAA,CAAA,CAAA,CAAA;AAAA,cACV,QAAc,EAAA,IAAA,CAAA,cAAA;AAAA,cACd,YAAK,EAAA,IAAA,CAAA,YAAA;AAAA,cAAA,KAAA,EAAAK,cAA8D,CAAA;;AAAkK,gBAAA,QAAA,EAAA,CAAA;AAAyB,gBAAA,KAAA,EAAA,CAAA,EAAA,IAAkD,CAAA,WAAA,IAAA,IAAA,CAAA,UAAA,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AAAA,gBAAA,QAAA,EAAA,CAAA,EAAA,IAAA,CAAA,UAAA,GAAA,EAAA,CAAA,EAAA,CAAA;AAAA;AASzS,cACP,SAAM,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,WAAA,IAAA,IAAA,CAAA,WAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,cACN,cAAO,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,UAAA,IAAA,IAAA,CAAA,UAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,cACP,OAAO,EAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,iBAAA,IAAA,IAAA,CAAA,iBAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,cAAE,SAAA,EAAA;AAAA,gBAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,eAAA,IACa,IAAe,CAAA,eAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,gBAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAAO,QAAA,CAAAX,aAAA,CAAA,CAAA,MAAA,KACjB,IAAe,CAAA,eAAA,CAAA,MAAA,CAAA,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAA;AAAA,gBAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAAW,QAAA,CAAAX,aAAA,CAAA,CAAA,MAAA,KACT,IAAO,CAAA,eAAA,CAAA,MAAA,CAAA,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,CAAA,IAAA,CAAA,CAAA,CAAA;AAAA,gBAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAAW,QAAA,CAAAX,aAAA,CAAA,CAAA,MAAA,KAAA,IACO,CAAA,OAAA,GAAA,KAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,CAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AAAA,gBAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAAW,QAAA,CAAAX,aAAA,CACxB,CAAa,GAAA,IAAA,KAAA,IAAA,CAAA,YAAA,IAAA,IAAA,CAAA,YAAA,CAAA,GAAA,IAAA,CAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,CAAA,EAAA,CAAA,OAAA,CAAA,CAAA,CAAA;AAAA,gBAAA,MAAA,CAAA,EAAA,CAAA,KAAA,MAAA,CAAA,EAAA,CAAA,GAAAW,QAAA,CAAA,CAAA,GAAA,IAAA,KACT,IAAA,CAAA,aAAA,IAAA,IAAA,CAAA,aAAA,CAAA,GAAA,IAAA,CAAA,EAAA,CAAA,QAAA,CAAA,CAAA,CAAA;AAAA,gBAAA,MAAA,CAAA,EAAA,CAAA,KAAA,MAAA,CAAA,EAAA,CAAA,GAAAA,QAAA,CAAA,CAAA,MAAA,KAAA,IAAA,CAAA,OAAA,GAAA,KAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AAAA;AACF,cAClB,0BAAmB,CAAA,EAAA,CAAA,KAAA,MAAA,CAAA,EAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,iBAAA,IAAA,IAAA,CAAA,iBAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,cACnB,mBAAgB,EAAA,MAAA,CAAA,EAAA,CAAA,KAAA,MAAA,CAAA,EAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,iBAAA,IAAA,IAAA,CAAA,iBAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,cAChB,gBAAO,EAAA,MAAA,CAAA,EAAA,CAAA,KAAA,MAAA,CAAA,EAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,iBAAA,IAAA,IAAA,CAAA,iBAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,cAAA,OAAA,EAAA,MAAA,CAAA,EAAA,CAAA,KAAA,MAAA,CAAA,EAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,oBAAA,IAAA,IAAA,CAAA,oBAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AA3BC,aAAA,EAAA,IAAA,EAAA,EAAA,EAAA,UAAA,CAAA,GAAA;AAAA,cAAA,CAAAC,UAAA,EAAA,IAAA,CAAA,KAAA,CAAA;;WAuFF,EAAA,CAAA,CAAA,IAAAH,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,UAAAR,WAxDJ,CAAA,mBAAA,EAAA;AAAA,YACL,EAAI,EAAA,IAAA,CAAA,EAAA;AAAA,YACK,GAAA,EAAA,WAAA;AAAA,YAAa,UAAA,EAAA,IAAA,CAAA,aAAA;AAAA,YACtB,qBAAK,EAAA,MAAA,CAAA,EAAA,CAAA,KAAA,MAAA,CAAA,EAAA,CAAA,GAAA,CAAA,MAAA,KAAA,IAAA,CAAA,aAAA,GAAA,MAAA,CAAA;AAAA,YACJ,IAAa,EAAA,MAAA;AAAA,YACb,WAAM,EAAA,IAAA,CAAA,kBAAA;AAAA,YACN,IAAc,EAAA,IAAA,CAAA,IAAA;AAAA,YACd,YAAM,EAAA,IAAA,CAAA,YAAA;AAAA,YACN,IAAU,EAAA,IAAA,CAAA,UAAA;AAAA,YACV,QAAU,EAAA,IAAA,CAAA,cAAA;AAAA,YACV,QAAgB,EAAA,IAAA,CAAA,QAAA;AAAA,YAChB,gBAAK,EAAA,KAAA;AAAwB,YAC7B,KAAA,EAAAF,cAAsB,CAAA,CAAA,IAAA,CAAA,QAAA,CAAA,EAAA,CAAA,OAAkB,EAAA,IAAA,CAAA,OAAA,CAAA,CAAA,CAAA;AAAA,YACxC,QAAO,EAAA,IAAA,CAAA,QAAA,IAAA,IAAA,CAAA,UAAA,GAAA,CAAA,CAAA,GAAA,KAAA,CAAA;AAAA,YACP,OAAM,EAAA,IAAA,CAAA,WAAA;AAAA,YACN,MAAO,EAAA,IAAA,CAAA,UAAA;AAAA,YACP,OAAO,EAAA,IAAA,CAAA,sBAAA;AAAA,YACP,OAAkB,EAAA,IAAA,CAAA,sBAAA;AAAA,YAClB,kBAAmB,EAAA,IAAA,CAAA,iBAAA;AAAA,YACnB,mBAAgB,EAAA,IAAA,CAAA,iBAAA;AAAA,YAChB,gBAAO,EAAA,IAAA,CAAA,iBAAA;AAAA,YAAA,SAAA,EAAA;AAAmC,cAAA,MAAA,CAAA,EAAA,CAAA,KAAA,MAAA,CAAA,EAAA,CAAA,GAAAY,QAAA,CAAAX,aAAA,CAAA,CAAA,MAAA,KACjB,IAAe,CAAA,eAAA,CAAA,MAAA,CAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAA;AAAA,cAAA,MAAA,CAAA,EAAA,CAAA,KAAA,MAAA,CAAA,EAAA,CACZ,GAAYW,QAAA,CAAAX,aAAA,CAAA,CAAA,MAAA,KAAA,IAAA,CAAA,eAAA,CAAA,MAAA,CAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,CAAA,EAAA,CAAA,IAAA,CAAA,CAAA,CAAA;AAAA,cAAAW,QAAA,CAAAX,aAAA,CAAA,IAAA,CAAA,YAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,CAAA,EACP,CAAA,OAAA,CAAA,CAAA;AAAA,cAAA,MAAA,CAAA,EAAA,CAAA,KAAA,MAAA,CAAA,EAAA,CAAA,GAAAW,QAAA,CAAAX,aACb,CAAA,CAAA,MAAA,KAAA,IAAA,CAAA,OAAA,GAAA,KAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,CAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AAAA,cAAA,MAAA,CAAA,EAAA,CAAA,KAAA,MAAA,CAAA,EAAA,CAAA,GAAAW,QAAA,CAAA,CAAA,MAAA,KAAA,IAAA,CAAA,OAAA,GAAA,KAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AAAA,aACpB;AAAyB,YACzB,YAAA,EAAU,wCAAE,IAAa,CAAA,aAAA,GAAA,IAAA,CAAA;AAAA,YAAA,YAAA,EAAA,MAAA,CAAA,EAAA,CAAA,KAAA,MAAA,CAAA,EAAA,CAAA,GAAA,CAAA,MAAA,KAAA,IAAA,CAAA,aAAA,GAAA,KAAA,CAAA;AAcf,WAAA,EAAAE;AAOC,YAAA;AAAA,cAAA,IAAA,CAAA,aAAA,GAAAjB,cAAA,EAAAC,SAAA,EAAA,EAAAS,WAAA,CAAA,kBAAA,EAAA;AAHP,gBAAA,GAAA,EAAA,CAAA;AAAiD,gBAAA,KAAA,EAAAP,cAAA,CAAA,CAAA,IAAA,CAAA,QAAA,CAAA,CAAA,CAAA,OAAA,CAAA,EAAA,IAAA,CAAA,QAAA,CAAA,CAAA,CAAA,MAAA,CAAA,EAAA,IAAA,CAAA,WAAA,CAAA,CAAA;;AAEjB,gBAAA,OAAA,EAAAG,OAAjC;AAAgB,mBAAAL,SAAA,EAAA,EAAAS,WAAA,CAAAQ,uBAAA,CAAA,IAAA,CAAA,aAAA,CAAA,CAAA;AAAA,iBAAA,CAAA;;AAHP,eAAA,EAAA,CAAA,EAAA,CAAA,OAAA,CAAA,CAAA,GAAA;AAAA,gBAAA,CAAAC,KAAA,EAAA,CAAA,IAAA,CAAA,SAAA,CAAA;AAMH,eAAA,CAAA,GAAAN;AAKE,cAAA,IAAA,CAAA,SAAA,IAAA,IAAA,CAAA,SAAA,IAAAZ,SAAA,EAAA,EAAAS,WAAA,CAAA,kBAAA,EAAA;AAJP,gBAAA,GAAA,EAAA,CAAA;AAAuC,gBACvC,KAAO,EAAAP,cAAA,CAAA,CAAA,IAAA,CAAA,QAAA,CAAA,CAAA,CAAA,OAAA,CAAA,EAAA,IAAA,CAAA,QAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA;AAAA,gBAAA,OAAA,EAAA,IAAA,CAAA,gBAAA;;AAEqB,gBAAA,OAAA,EAAAG,OAA7B;AAAgB,mBAAAL,SAAA,EAAA,EAAAS,WAAA,CAAAQ,uBAAA,CAAA,IAAA,CAAA,SAAA,CAAA,CAAA;AAAA,iBAAA,CAAA;;;;;aAzBG;AAAS,YAAA,IAAA,CAAA,MAAA,CAAA,MAAA,GAAA;AAAA,cAAA,IAAA,EAAA,QAUxB;AAAA,cATN,EAAA,EAAAZ,OAAA,CAAA,MAAA;AASM,gBAAAC,kBADkB,CAAA,KAAA,EAAA,UAAA,EAAA;AAAA,kBAAAa,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,QAAA,CAAA;AAAA,iBAAA,CAAA;AAAA,eAAA,CAAA;;;;AAsBrB,OAAA,CAAA;AA6BQ,MAAA,OAAA,EAAAd,OAAA,CAAA,MAAA;AAAA,QAAAD,WAAA,CAAA,yBAZA,EAAA,IAAA,EAAA;AAAA,UAAA,OAAA,EAAAC,OAAA,CAff,MAee;AAAA,YAAAN,cAbT,CAAAK,WAAA,CAAA,uBAAA,EAAA;AAAA,cACJ,GAAI,EAAA,WAAA;AAAA,cACH,GAAA,EAAA,IAAA;AAAuB,cACvB,YAAA,EAAY,cAAS,EAAE,CAAA,UAAA,EAAA,MAAA,CAAA;AAAA,cACvB,YAAK,EAAA,IAAA,CAAA,QAAA,CAAA,EAAA,CAAA,UAAA,EAAA,MAAA,CAAA;AAAA,cAAA,KAA2B,EAAAF,cAAA,CAAA;AAA0F,gBAAA,IAAA,CAAA,QAAA,CAAA,EAAA,CAAA,OAAA,EAAA,CAAA,IAAA,CAAA,WAAA,IAAA,IAAA,CAAA,KAAA,IAAA,IAAA,CAAA,oBAAA,KAAA,CAAA,CAAA;AAAA,eAAA,CAAA;;AAO1D,cAAA;AAAA,gBAAA,IAAA,CAAA,aAAA,IAAAF,SAAA,EAAA,EAAAS,WAAA,CAAA,oBAAA,EAAA;kBAAhC,GAAO,EAAA,CAAA;AAAA,kBAAQ,KAAS,EAAA,IAAA,CAAA,KAAA;AAAA,kBAAA,OAAA,EAAA,IAAA;iBACjD,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,OAAA,CAAA,CAAA,IAAAG,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,gBAAAO,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA;AAAA,eAAA,CAAA;;AAbA,aAAA,EAAA,CAAA,EAAA,CAAA,YAAA,EAAA,YAAqB,EAAA,OAAA,CAAA,CAAA,EAAA;AAAA,cAAA,CAAAD,KAAA,EAAA,IAAA,CAAA,OAAA,CAAA,IAAA,GAAA,CAAA,IAAA,CAAA,IAAA,CAAA,OAAA,CAAA;AAAA;AAyBpB,YAAA,IAJU,CAAA,SAAA,KAAA,CAAA,IAAsB,CAAA,WAAA,IAAA,IAAA,CAAA,OAAA,IAAA,IAAA,CAAA,WAAA,IAAA,IAAA,CAAA,OAGrC,CAAA,IAAA,KAAA,CAAA,CAAA,IAAAlB,SAAA,EAAA,EAAAC,kBAAA,CAAAS,QAAA,EAAA,EAAA,GAAA,EAAA,CAAA,EAAA,EAAA;AAAA,cAAA,IAAA,CAAA,MAAA,CAAA,KAAA,GAAAS,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,OAAA,EAAA,EAAA,GAAA,EAAA,CAAA,EAAA,CAAA,IAAAnB,SAAA,EAAA,EAAAC,kBAAA,CAAA,GAAA,EAAA;gBAFO,GAAK,EAAA,CAAA;AAAa,gBAAA,KAAA,EAAAC,cACf,CAAA,IAAA,CAAA,QAAA,CAAA,EAAA,CAAA,UAAA,EAAA,OAAA,CAAA,CAAA;AAAA,eAAA,EAAAM,eAAA,CAAA,IAAA,CAAA,SAAA,CAAA,EAAA,CAAA,CAAA,CAAA;;;;;;;;;AA1PN,IAAA,CAAA,wBAAA,EAAA,IAAA,CAAA,WAAA,EAAA,IAAA,CAAA,aAAA,CAAA;AAAA,GAAA,CAAA,CAAA;;;;;;"}