UNPKG

vexip-ui

Version:

A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good

1 lines 36.2 kB
{"version":3,"file":"color-picker.vue2.cjs","sources":["../../../components/color-picker/color-picker.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Button } from '@/components/button'\nimport { Icon } from '@/components/icon'\nimport { Input } from '@/components/input'\nimport { Popper } from '@/components/popper'\nimport { Renderer } from '@/components/renderer'\nimport { useFieldStore } from '@/components/form'\n\nimport { computed, nextTick, ref, toRef, watch } from 'vue'\n\nimport ColorPalette from './color-palette.vue'\nimport ColorHue from './color-hue.vue'\nimport ColorAlpha from './color-alpha.vue'\nimport { placementWhileList, useClickOutside, useHover, usePopper } from '@vexip-ui/hooks'\nimport {\n createIconProp,\n createSizeProp,\n createStateProp,\n emitEvent,\n useIcons,\n useLocale,\n useNameHelper,\n useProps,\n} from '@vexip-ui/config'\nimport {\n getLast,\n hsvToHsl,\n hsvToRgb,\n isClient,\n isElement,\n parseColorToRgba,\n rgbToHex,\n rgbToHsv,\n rgbaToHex,\n toAttrValue,\n toFixed,\n} from '@vexip-ui/utils'\nimport { colorPickerProps } from './props'\nimport { defaultShortcuts, getDefaultHsv } from './symbol'\n\nimport type { PopperExposed } from '@/components/popper'\nimport type { Color, HSLAColor, HSVAColor, HSVColor, RGBAColor } from '@vexip-ui/utils'\nimport type { ColorFormat, ColorPrickerSlots } from './symbol'\n\ndefineOptions({ name: 'ColorPicker' })\n\nconst {\n idFor,\n labelId,\n state,\n disabled,\n loading,\n size,\n validateField,\n clearField,\n getFieldValue,\n setFieldValue,\n} = useFieldStore<Color | null>(() => reference.value?.focus())\n\nconst nh = useNameHelper('color-picker')\n\nconst _props = defineProps(colorPickerProps)\nconst props = useProps('colorPicker', _props, {\n size: createSizeProp(size),\n state: createStateProp(state),\n locale: null,\n value: {\n default: () => getFieldValue()!,\n static: true,\n },\n visible: false,\n format: {\n default: 'rgb',\n validator: value => ['rgb', 'hsl', 'hsv', 'hex'].includes(value),\n },\n alpha: false,\n disabled: () => disabled.value,\n transitionName: () => nh.ns('drop'),\n noInput: false,\n shortcut: false,\n placement: {\n default: 'bottom',\n validator: value => placementWhileList.includes(value),\n },\n transfer: false,\n outsideClose: true,\n clearable: false,\n cancelText: null,\n confirmText: null,\n prefix: createIconProp(),\n prefixColor: '',\n suffix: createIconProp(),\n suffixColor: '',\n noSuffix: false,\n staticSuffix: false,\n loading: () => loading.value,\n loadingIcon: createIconProp(),\n loadingLock: false,\n loadingEffect: null,\n popperAlive: null,\n showLabel: false,\n labelFormat: null,\n slots: () => ({}),\n})\n\nconst emit = defineEmits(['update:value', 'update:visible'])\n\nconst slots = defineSlots<ColorPrickerSlots>()\n\nconst icons = useIcons()\nconst locale = useLocale('colorPicker', toRef(props, 'locale'))\n\nconst isEmpty = ref(true)\nconst currentVisible = ref(props.visible)\nconst currentValue = ref<HSVColor>(null!)\nconst currentAlpha = ref(1)\nconst editing = ref(false)\nconst placement = toRef(props, 'placement')\nconst transfer = toRef(props, 'transfer')\nconst shortcutHitting = ref(0)\nconst shortcutsFocused = ref(false)\n\nparseValue(props.value)\n\nconst palette = ref(null)\nconst hue = ref(null)\nconst alphaEl = ref(null)\nconst shortcutEl = ref(null)\nconst input = ref(null)\nconst cancel = ref(null)\nconst confirm = ref(null)\n\nconst wrapper = useClickOutside(handleClickOutside)\nconst popper = ref<PopperExposed>()\nconst { reference, transferTo, updatePopper } = usePopper({\n placement,\n transfer,\n wrapper,\n popper: computed(() => popper.value?.wrapper),\n isDrop: true,\n})\nconst { isHover } = useHover(reference)\n\nconst unitList = computed(() => {\n return [\n palette.value,\n hue.value,\n alphaEl.value,\n shortcutEl.value,\n input.value,\n cancel.value,\n confirm.value,\n ].filter(Boolean) as any[]\n})\n\nconst lastValue = ref<HSVAColor>({\n ...currentValue.value,\n a: currentAlpha.value,\n format: 'hsva',\n})\n\nconst className = computed(() => {\n return {\n [nh.b()]: true,\n [nh.ns('input-vars')]: true,\n [nh.bs('vars')]: true,\n [nh.bm('inherit')]: props.inherit,\n [nh.bm('empty')]: isEmpty.value && !currentVisible.value,\n [nh.bm('focused')]: currentVisible.value,\n [nh.bm('disabled')]: props.disabled,\n [nh.bm('alpha')]: props.alpha,\n [nh.bm(props.size)]: props.size !== 'default',\n [nh.bm(props.state)]: props.state !== 'default',\n }\n})\nconst readonly = computed(() => props.loading && props.loadingLock)\nconst selectorClass = computed(() => {\n const baseCls = nh.be('selector')\n\n return {\n [baseCls]: true,\n [`${baseCls}--disabled`]: props.disabled,\n [`${baseCls}--readonly`]: readonly.value,\n [`${baseCls}--loading`]: props.loading,\n [`${baseCls}--${props.size}`]: props.size !== 'default',\n [`${baseCls}--focused`]: currentVisible.value,\n [`${baseCls}--${props.state}`]: props.state !== 'default',\n }\n})\nconst rgb = computed(() => {\n const { h, s, v } =\n currentValue.value && currentVisible.value\n ? currentValue.value\n : (lastValue.value ?? { h: 0, s: 0, v: 0 })\n\n return hsvToRgb(h, s, v)\n})\nconst hex = computed(() => {\n const { r, g, b } = rgb.value\n\n if (props.alpha) {\n return rgbaToHex(r, g, b, currentAlpha.value)\n }\n\n return rgbToHex(r, g, b)\n})\nconst shortcutList = computed(() => {\n if (!props.shortcut) return []\n\n if (Array.isArray(props.shortcut)) {\n return props.shortcut\n }\n\n return defaultShortcuts\n})\nconst hasPrefix = computed(() => !!(slots.prefix || props.prefix || props.slots.prefix))\nconst showClear = computed(() => {\n return !props.disabled && !readonly.value && props.clearable && isHover.value && !isEmpty.value\n})\nconst formattedColor = computed(() => getFormattedColor(props.format))\nconst labelColor = computed(() => {\n return (\n props.labelFormat ? getFormattedColor(props.labelFormat) : formattedColor.value\n )?.toString()\n})\n\nwatch(\n () => props.visible,\n value => {\n currentVisible.value = value\n },\n)\nwatch(currentVisible, value => {\n value && updatePopper()\n})\nwatch(\n () => props.value,\n value => {\n parseValue(value)\n lastValue.value = { ...currentValue.value, a: currentAlpha.value, format: 'hsva' }\n },\n)\nwatch(\n () => props.disabled,\n value => {\n if (value) {\n setVisible(false)\n }\n },\n)\n\ndefineExpose({\n idFor,\n isEmpty,\n currentVisible,\n currentValue,\n currentAlpha,\n rgb,\n hex,\n labelColor,\n wrapper,\n reference,\n popper,\n toggleVisible,\n focus,\n blur,\n})\n\nfunction parseValue(value: Color | null) {\n if (value) {\n const { r, g, b, a } = parseColorToRgba(value)\n\n isEmpty.value = false\n currentValue.value = rgbToHsv(r, g, b)\n currentAlpha.value = a\n } else {\n isEmpty.value = true\n currentValue.value = getDefaultHsv()\n currentAlpha.value = 1\n }\n}\n\nfunction setVisible(visible: boolean) {\n if (currentVisible.value === visible) return\n\n currentVisible.value = visible\n\n emit('update:visible', visible)\n emitEvent(props.onToggle, visible)\n}\n\nfunction getFormattedColor(format: ColorFormat) {\n let color: Color\n\n if (format === 'hex') {\n const { r, g, b } = rgb.value\n\n if (props.alpha) {\n color = rgbaToHex(r, g, b, currentAlpha.value)\n } else {\n color = rgbToHex(r, g, b)\n }\n } else {\n switch (format) {\n case 'rgb': {\n color = { ...rgb.value } as RGBAColor\n color.r = Math.round(color.r)\n color.g = Math.round(color.g)\n color.b = Math.round(color.b)\n\n break\n }\n case 'hsl': {\n const { h, s, v } = currentValue.value\n\n color = hsvToHsl(h, s, v) as HSLAColor\n color.h = Math.round(color.h)\n color.s = toFixed(color.s, 3)\n color.l = toFixed(color.l, 3)\n\n break\n }\n default: {\n color = { ...currentValue.value } as HSVAColor\n color.h = Math.round(color.h)\n color.s = toFixed(color.s, 3)\n color.v = toFixed(color.v, 3)\n }\n }\n\n color.a = toFixed(currentAlpha.value, 3)\n }\n\n return color\n}\n\nfunction handleClickOutside() {\n if (!editing.value) {\n emitEvent(props.onClickOutside)\n\n if (props.outsideClose && currentVisible.value) {\n setVisible(false)\n emitEvent(props.onOutsideClose)\n }\n }\n}\n\nfunction toggleVisible() {\n if (props.disabled || readonly.value) return\n\n setVisible(!currentVisible.value)\n}\n\nfunction handleClear() {\n if (props.disabled || readonly.value) return\n\n if (props.clearable) {\n setVisible(false)\n emit('update:value', '')\n emitEvent(props.onChange, '')\n\n nextTick(() => {\n parseValue(null)\n clearField()\n emitEvent(props.onClear)\n })\n }\n}\n\nfunction handleConfirm() {\n if (props.disabled || readonly.value) return\n\n lastValue.value = { ...currentValue.value, a: currentAlpha.value, format: 'hsva' }\n isEmpty.value = false\n setVisible(false)\n handleChange()\n}\n\nfunction handleChange() {\n const color = formattedColor.value\n\n emit('update:value', color)\n setFieldValue(color)\n emitEvent(props.onChange, color)\n validateField()\n}\n\nfunction handlePaletteChange({ s, v }: HSVColor) {\n currentValue.value.s = s\n currentValue.value.v = v\n}\n\nfunction handleHueChange(hue: number) {\n currentValue.value.h = hue\n}\n\nfunction handleAlphaChange(alpha: number) {\n currentAlpha.value = alpha\n}\n\nfunction handleInputColor(value: string) {\n const { r, g, b, a } = parseColorToRgba(value)\n\n currentValue.value = rgbToHsv(r, g, b)\n currentAlpha.value = a\n}\n\nfunction handleShortcutClick(color: string) {\n const { r, g, b, a } = parseColorToRgba(color)\n\n currentValue.value = rgbToHsv(r, g, b)\n currentAlpha.value = a\n\n emitEvent(props.onShortcut, formattedColor.value)\n}\n\nfunction toggleEditing(able: boolean) {\n if (!able) {\n setTimeout(() => {\n editing.value = false\n }, 0)\n } else {\n editing.value = true\n }\n}\n\nfunction handleTabDown(event: KeyboardEvent) {\n if (isClient && currentVisible.value) {\n const activeEl = document && document.activeElement\n\n if (!activeEl) return\n\n event.preventDefault()\n\n const shift = event.shiftKey\n const elList = Array.from(unitList.value)\n const index = elList.findIndex(unit => {\n const el = isElement(unit) ? unit : unit.$el\n\n return el === activeEl || el.contains(activeEl)\n })\n\n let maybeEl: any\n\n if (!~index) {\n maybeEl = shift ? getLast(elList) : elList[0]\n } else if (shift ? !index : index === elList.length - 1) {\n maybeEl = reference.value\n } else {\n maybeEl = elList[index + (shift ? -1 : 1)]\n }\n\n if (maybeEl) {\n if (typeof maybeEl.focus === 'function') {\n maybeEl.focus()\n } else {\n maybeEl.$el?.focus()\n }\n }\n }\n}\n\nfunction handleShortcutsFocus() {\n shortcutHitting.value = 0\n shortcutsFocused.value = true\n}\n\nfunction handleShortcutsKeydown(event: KeyboardEvent) {\n const key = event.code || event.key\n const shortcutCount = shortcutList.value.length\n\n switch (key) {\n case 'ArrowUp':\n case 'ArrowLeft': {\n shortcutHitting.value--\n break\n }\n case 'ArrowDown':\n case 'ArrowRight': {\n shortcutHitting.value++\n break\n }\n case 'Enter':\n case 'Space':\n case ' ': {\n const color = shortcutList.value[shortcutHitting.value]\n\n color && handleShortcutClick(color)\n break\n }\n }\n\n shortcutHitting.value = (shortcutHitting.value + shortcutCount) % shortcutCount\n}\n\nfunction handleSpaceDown(event: KeyboardEvent) {\n if (props.disabled) {\n setVisible(false)\n } else {\n event.preventDefault()\n\n if (currentVisible.value) {\n handleConfirm()\n reference.value?.focus()\n } else {\n setVisible(true)\n }\n }\n}\n\nfunction handleEscDown() {\n setVisible(false)\n reference.value?.focus()\n}\n\nfunction focus(options?: FocusOptions) {\n reference.value?.focus(options)\n}\n\nfunction blur() {\n reference.value?.blur()\n}\n</script>\n\n<template>\n <div\n :id=\"idFor\"\n ref=\"wrapper\"\n :class=\"className\"\n role=\"group\"\n :aria-disabled=\"toAttrValue(props.disabled)\"\n :aria-expanded=\"toAttrValue(currentVisible)\"\n aria-haspopup=\"listbox\"\n :aria-labelledby=\"labelId\"\n @click=\"toggleVisible\"\n @keydown.tab.stop=\"handleTabDown\"\n @keydown.space=\"handleSpaceDown\"\n @keydown.escape=\"handleEscDown\"\n >\n <div ref=\"reference\" :class=\"selectorClass\" tabindex=\"0\">\n <slot\n name=\"control\"\n :color=\"rgb\"\n :alpha=\"currentAlpha\"\n :empty=\"isEmpty\"\n >\n <Renderer\n :renderer=\"props.slots.control\"\n :data=\"{ color: rgb, alpha: currentAlpha, empty: isEmpty }\"\n >\n <div\n v-if=\"hasPrefix\"\n :class=\"[nh.be('icon'), nh.be('prefix')]\"\n :style=\"{ color: props.prefixColor }\"\n >\n <slot name=\"prefix\">\n <Renderer :renderer=\"props.slots.prefix\">\n <Icon :icon=\"props.prefix\"></Icon>\n </Renderer>\n </slot>\n </div>\n <div :class=\"nh.be('control')\">\n <div :class=\"[nh.be('marker'), showLabel && nh.bem('marker', 'with-label')]\">\n <Icon v-if=\"!currentVisible && isEmpty\" v-bind=\"icons.close\"></Icon>\n <div\n v-else\n :style=\"{\n width: '100%',\n height: '100%',\n backgroundColor: `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, ${\n currentVisible ? currentAlpha : lastValue.a\n })`\n }\"\n ></div>\n </div>\n <div v-if=\"showLabel\" :class=\"nh.be('label')\">\n <slot\n name=\"label\"\n :color=\"rgb\"\n :alpha=\"currentAlpha\"\n :empty=\"isEmpty\"\n :label=\"labelColor\"\n >\n <Renderer\n :renderer=\"props.slots.label\"\n :data=\"{ color: rgb, alpha: currentAlpha, empty: isEmpty, label: labelColor }\"\n >\n {{ labelColor }}\n </Renderer>\n </slot>\n </div>\n </div>\n <div\n v-if=\"!props.noSuffix\"\n :class=\"[nh.be('icon'), nh.be('suffix')]\"\n :style=\"{\n color: props.suffixColor,\n opacity: showClear || props.loading ? '0%' : ''\n }\"\n >\n <slot name=\"suffix\">\n <Renderer :renderer=\"props.slots.suffix\">\n <Icon\n v-if=\"props.suffix\"\n :icon=\"props.suffix\"\n :class=\"{\n [nh.be('arrow')]: !props.staticSuffix\n }\"\n ></Icon>\n <Icon v-else v-bind=\"icons.angleDown\" :class=\"nh.be('arrow')\"></Icon>\n </Renderer>\n </slot>\n </div>\n <div\n v-else-if=\"props.clearable || props.loading\"\n :class=\"[nh.be('icon'), nh.bem('icon', 'placeholder'), nh.be('suffix')]\"\n ></div>\n <Transition :name=\"nh.ns('fade')\" appear>\n <button\n v-if=\"showClear\"\n :class=\"[nh.be('icon'), nh.be('clear')]\"\n type=\"button\"\n tabindex=\"-1\"\n :aria-label=\"locale.ariaLabel.clear\"\n @click.stop=\"handleClear\"\n >\n <Icon v-bind=\"icons.clear\"></Icon>\n </button>\n <div v-else-if=\"props.loading\" :class=\"[nh.be('icon'), nh.be('loading')]\">\n <Icon\n v-bind=\"icons.loading\"\n :effect=\"props.loadingEffect || icons.loading.effect\"\n :icon=\"props.loadingIcon || icons.loading.icon\"\n ></Icon>\n </div>\n </Transition>\n </Renderer>\n </slot>\n </div>\n <Popper\n ref=\"popper\"\n :class=\"[nh.be('popper'), nh.bs('vars')]\"\n :visible=\"currentVisible\"\n :to=\"transferTo\"\n :transition=\"props.transitionName\"\n :alive=\"props.popperAlive ?? !transferTo\"\n @click.stop\n @keydown.tab.stop=\"handleTabDown\"\n @keydown.space=\"handleSpaceDown\"\n @keydown.escape=\"handleEscDown\"\n >\n <div :class=\"nh.be('panel')\">\n <div :class=\"nh.be('section')\">\n <ColorPalette\n ref=\"palette\"\n :hue=\"currentValue.h\"\n :saturation=\"currentValue.s\"\n :value=\"currentValue.v\"\n @edit-start=\"toggleEditing(true)\"\n @edit-end=\"toggleEditing(false)\"\n @change=\"handlePaletteChange\"\n ></ColorPalette>\n <ColorHue\n ref=\"hue\"\n :hue=\"currentValue.h\"\n @edit-start=\"toggleEditing(true)\"\n @edit-end=\"toggleEditing(false)\"\n @change=\"handleHueChange\"\n ></ColorHue>\n <ColorAlpha\n v-if=\"props.alpha\"\n ref=\"alphaEl\"\n :rgb=\"rgb\"\n :alpha=\"currentAlpha\"\n @edit-start=\"toggleEditing(true)\"\n @edit-end=\"toggleEditing(false)\"\n @change=\"handleAlphaChange\"\n ></ColorAlpha>\n <div\n v-if=\"props.shortcut\"\n ref=\"shortcutEl\"\n :class=\"nh.be('shortcuts')\"\n tabindex=\"-1\"\n @focus=\"handleShortcutsFocus\"\n @blur=\"shortcutsFocused = false\"\n @keydown=\"handleShortcutsKeydown\"\n >\n <div\n v-for=\"(item, index) in shortcutList\"\n :key=\"index\"\n :class=\"{\n [nh.be('shortcut-item')]: true,\n [nh.bem('shortcut-item', 'hitting')]: shortcutsFocused && shortcutHitting === index\n }\"\n :style=\"{ backgroundColor: item }\"\n @click=\"handleShortcutClick(item)\"\n ></div>\n </div>\n </div>\n <div :class=\"nh.be('action')\">\n <Input\n v-if=\"!props.noInput\"\n ref=\"input\"\n inherit\n :class=\"nh.be('input')\"\n size=\"small\"\n :value=\"hex.toUpperCase()\"\n :respond=\"false\"\n @change=\"handleInputColor\"\n ></Input>\n <Button\n v-if=\"props.clearable\"\n ref=\"cancel\"\n inherit\n text\n size=\"small\"\n @click=\"handleClear\"\n >\n {{ props.cancelText || locale.cancel }}\n </Button>\n <Button\n ref=\"confirm\"\n inherit\n type=\"primary\"\n size=\"small\"\n @click=\"handleConfirm\"\n >\n {{ props.confirmText || locale.confirm }}\n </Button>\n </div>\n </div>\n </Popper>\n </div>\n</template>\n"],"names":["idFor","labelId","state","disabled","loading","size","validateField","clearField","getFieldValue","setFieldValue","useFieldStore","_a","reference","nh","useNameHelper","_props","__props","props","useProps","createSizeProp","createStateProp","value","placementWhileList","createIconProp","emit","__emit","slots","_useSlots","icons","useIcons","locale","useLocale","toRef","isEmpty","ref","currentVisible","currentValue","currentAlpha","editing","placement","transfer","shortcutHitting","shortcutsFocused","parseValue","palette","hue","alphaEl","shortcutEl","input","cancel","confirm","wrapper","useClickOutside","handleClickOutside","popper","transferTo","updatePopper","usePopper","computed","isHover","useHover","unitList","lastValue","className","readonly","selectorClass","baseCls","rgb","h","s","v","hsvToRgb","hex","r","g","b","rgbaToHex","rgbToHex","shortcutList","defaultShortcuts","hasPrefix","showClear","formattedColor","getFormattedColor","labelColor","watch","setVisible","__expose","toggleVisible","focus","blur","a","parseColorToRgba","rgbToHsv","getDefaultHsv","visible","emitEvent","format","color","hsvToHsl","toFixed","handleClear","nextTick","handleConfirm","handleChange","handlePaletteChange","handleHueChange","handleAlphaChange","alpha","handleInputColor","handleShortcutClick","toggleEditing","able","handleTabDown","event","isClient","activeEl","shift","elList","index","unit","el","isElement","maybeEl","getLast","handleShortcutsFocus","handleShortcutsKeydown","key","shortcutCount","handleSpaceDown","handleEscDown","options","_createElementBlock","_unref","toAttrValue","_createElementVNode","_renderSlot","_ctx","_createVNode","Renderer","_normalizeStyle","Icon","_normalizeClass","showLabel","_createBlock","_normalizeProps","_mergeProps","_openBlock","_Transition","_guardReactiveProps","Popper","ColorPalette","ColorHue","ColorAlpha","_Fragment","_renderList","item","$event","Input","Button","_createTextVNode","_toDisplayString"],"mappings":"k7BA8CM,KAAA,CACJ,MAAAA,EACA,QAAAC,GACA,MAAAC,GACA,SAAAC,GACA,QAAAC,GACA,KAAAC,GACA,cAAAC,GACA,WAAAC,GACA,cAAAC,GACA,cAAAC,IACEC,GAA4B,cAAA,IAAM,OAAA,OAAAC,EAAAC,EAAU,QAAV,YAAAD,EAAiB,QAAO,EAExDE,EAAKC,gBAAc,cAAc,EAEjCC,GAASC,GACTC,EAAQC,EAAAA,SAAS,cAAeH,GAAQ,CAC5C,KAAMI,iBAAed,EAAI,EACzB,MAAOe,kBAAgBlB,EAAK,EAC5B,OAAQ,KACR,MAAO,CACL,QAAS,IAAMM,GAAc,EAC7B,OAAQ,EACV,EACA,QAAS,GACT,OAAQ,CACN,QAAS,MACT,aAAoB,CAAC,MAAO,MAAO,MAAO,KAAK,EAAE,SAASa,CAAK,CACjE,EACA,MAAO,GACP,SAAU,IAAMlB,GAAS,MACzB,eAAgB,IAAMU,EAAG,GAAG,MAAM,EAClC,QAAS,GACT,SAAU,GACV,UAAW,CACT,QAAS,SACT,UAAWQ,GAASC,EAAmB,mBAAA,SAASD,CAAK,CACvD,EACA,SAAU,GACV,aAAc,GACd,UAAW,GACX,WAAY,KACZ,YAAa,KACb,OAAQE,EAAAA,eAAe,EACvB,YAAa,GACb,OAAQA,EAAAA,eAAe,EACvB,YAAa,GACb,SAAU,GACV,aAAc,GACd,QAAS,IAAMnB,GAAQ,MACvB,YAAamB,EAAAA,eAAe,EAC5B,YAAa,GACb,cAAe,KACf,YAAa,KACb,UAAW,GACX,YAAa,KACb,MAAO,KAAO,CAAC,EAAA,CAChB,EAEKC,EAAOC,GAEPC,GAAQC,EAAAA,SAAA,EAERC,EAAQC,EAAAA,SAAS,EACjBC,EAASC,EAAAA,UAAU,cAAeC,EAAAA,MAAMf,EAAO,QAAQ,CAAC,EAExDgB,EAAUC,MAAI,EAAI,EAClBC,EAAiBD,EAAAA,IAAIjB,EAAM,OAAO,EAClCmB,EAAeF,MAAc,IAAK,EAClCG,EAAeH,MAAI,CAAC,EACpBI,EAAUJ,MAAI,EAAK,EACnBK,GAAYP,EAAAA,MAAMf,EAAO,WAAW,EACpCuB,GAAWR,EAAAA,MAAMf,EAAO,UAAU,EAClCwB,EAAkBP,MAAI,CAAC,EACvBQ,EAAmBR,MAAI,EAAK,EAElCS,EAAW1B,EAAM,KAAK,EAEhB,MAAA2B,EAAUV,MAAI,IAAI,EAClBW,EAAMX,MAAI,IAAI,EACdY,EAAUZ,MAAI,IAAI,EAClBa,EAAab,MAAI,IAAI,EACrBc,EAAQd,MAAI,IAAI,EAChBe,EAASf,MAAI,IAAI,EACjBgB,EAAUhB,MAAI,IAAI,EAElBiB,EAAUC,kBAAgBC,EAAkB,EAC5CC,EAASpB,EAAAA,IAAmB,EAC5B,CAAE,UAAAtB,EAAW,WAAA2C,EAAY,aAAAC,EAAA,EAAiBC,EAAAA,UAAU,CACxD,UAAAlB,GACA,SAAAC,GACA,QAAAW,EACA,OAAQO,EAAAA,SAAS,IAAA,OAAMJ,OAAAA,EAAAA,EAAO,QAAPA,YAAAA,EAAc,QAAO,EAC5C,OAAQ,EAAA,CACT,EACK,CAAE,QAAAK,EAAA,EAAYC,EAAA,SAAShD,CAAS,EAEhCiD,GAAWH,EAAAA,SAAS,IACjB,CACLd,EAAQ,MACRC,EAAI,MACJC,EAAQ,MACRC,EAAW,MACXC,EAAM,MACNC,EAAO,MACPC,EAAQ,KAAA,EACR,OAAO,OAAO,CACjB,EAEKY,EAAY5B,EAAAA,IAAe,CAC/B,GAAGE,EAAa,MAChB,EAAGC,EAAa,MAChB,OAAQ,MAAA,CACT,EAEK0B,GAAYL,EAAAA,SAAS,KAClB,CACL,CAAC7C,EAAG,EAAE,CAAC,EAAG,GACV,CAACA,EAAG,GAAG,YAAY,CAAC,EAAG,GACvB,CAACA,EAAG,GAAG,MAAM,CAAC,EAAG,GACjB,CAACA,EAAG,GAAG,SAAS,CAAC,EAAGI,EAAM,QAC1B,CAACJ,EAAG,GAAG,OAAO,CAAC,EAAGoB,EAAQ,OAAS,CAACE,EAAe,MACnD,CAACtB,EAAG,GAAG,SAAS,CAAC,EAAGsB,EAAe,MACnC,CAACtB,EAAG,GAAG,UAAU,CAAC,EAAGI,EAAM,SAC3B,CAACJ,EAAG,GAAG,OAAO,CAAC,EAAGI,EAAM,MACxB,CAACJ,EAAG,GAAGI,EAAM,IAAI,CAAC,EAAGA,EAAM,OAAS,UACpC,CAACJ,EAAG,GAAGI,EAAM,KAAK,CAAC,EAAGA,EAAM,QAAU,SACxC,EACD,EACK+C,EAAWN,EAAAA,SAAS,IAAMzC,EAAM,SAAWA,EAAM,WAAW,EAC5DgD,GAAgBP,EAAAA,SAAS,IAAM,CAC7B,MAAAQ,EAAUrD,EAAG,GAAG,UAAU,EAEzB,MAAA,CACL,CAACqD,CAAO,EAAG,GACX,CAAC,GAAGA,CAAO,YAAY,EAAGjD,EAAM,SAChC,CAAC,GAAGiD,CAAO,YAAY,EAAGF,EAAS,MACnC,CAAC,GAAGE,CAAO,WAAW,EAAGjD,EAAM,QAC/B,CAAC,GAAGiD,CAAO,KAAKjD,EAAM,IAAI,EAAE,EAAGA,EAAM,OAAS,UAC9C,CAAC,GAAGiD,CAAO,WAAW,EAAG/B,EAAe,MACxC,CAAC,GAAG+B,CAAO,KAAKjD,EAAM,KAAK,EAAE,EAAGA,EAAM,QAAU,SAClD,CAAA,CACD,EACKkD,EAAMT,EAAAA,SAAS,IAAM,CACzB,KAAM,CAAE,EAAAU,EAAG,EAAAC,EAAG,EAAAC,GACZlC,EAAa,OAASD,EAAe,MACjCC,EAAa,MACZ0B,EAAU,OAAS,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,CAAE,EAEtC,OAAAS,WAASH,EAAGC,EAAGC,CAAC,CAAA,CACxB,EACKE,EAAMd,EAAAA,SAAS,IAAM,CACzB,KAAM,CAAE,EAAAe,EAAG,EAAAC,EAAG,EAAAC,GAAMR,EAAI,MAExB,OAAIlD,EAAM,MACD2D,EAAAA,UAAUH,EAAGC,EAAGC,EAAGtC,EAAa,KAAK,EAGvCwC,WAASJ,EAAGC,EAAGC,CAAC,CAAA,CACxB,EACKG,EAAepB,EAAAA,SAAS,IACvBzC,EAAM,SAEP,MAAM,QAAQA,EAAM,QAAQ,EACvBA,EAAM,SAGR8D,GAAA,iBANqB,CAAC,CAO9B,EACKC,GAAYtB,EAAAA,SAAS,IAAM,CAAC,EAAEhC,GAAM,QAAUT,EAAM,QAAUA,EAAM,MAAM,OAAO,EACjFgE,EAAYvB,EAAAA,SAAS,IAClB,CAACzC,EAAM,UAAY,CAAC+C,EAAS,OAAS/C,EAAM,WAAa0C,GAAQ,OAAS,CAAC1B,EAAQ,KAC3F,EACKiD,EAAiBxB,EAAAA,SAAS,IAAMyB,EAAkBlE,EAAM,MAAM,CAAC,EAC/DmE,EAAa1B,EAAAA,SAAS,IAAM,OAE9B,OAAA/C,EAAAM,EAAM,YAAckE,EAAkBlE,EAAM,WAAW,EAAIiE,EAAe,QAA1E,YAAAvE,EACC,UAAS,CACb,EAED0E,EAAA,MACE,IAAMpE,EAAM,QACHI,GAAA,CACPc,EAAe,MAAQd,CAAA,CAE3B,EACAgE,QAAMlD,EAAyBd,GAAA,CAC7BA,GAASmC,GAAa,CAAA,CACvB,EACD6B,EAAA,MACE,IAAMpE,EAAM,MACHI,GAAA,CACPsB,EAAWtB,CAAK,EACNyC,EAAA,MAAQ,CAAE,GAAG1B,EAAa,MAAO,EAAGC,EAAa,MAAO,OAAQ,MAAO,CAAA,CAErF,EACAgD,EAAA,MACE,IAAMpE,EAAM,SACHI,GAAA,CACHA,GACFiE,EAAW,EAAK,CAClB,CAEJ,EAEaC,GAAA,CACX,MAAAvF,EACA,QAAAiC,EACA,eAAAE,EACA,aAAAC,EACA,aAAAC,EACA,IAAA8B,EACA,IAAAK,EACA,WAAAY,EACA,QAAAjC,EACA,UAAAvC,EAAA,OACA0C,EACA,cAAAkC,EACA,MAAAC,GACA,KAAAC,EAAA,CACD,EAED,SAAS/C,EAAWtB,EAAqB,CACvC,GAAIA,EAAO,CACT,KAAM,CAAE,EAAG,EAAAqD,EAAG,EAAAC,EAAG,EAAAgB,CAAE,EAAIC,mBAAiBvE,CAAK,EAE7CY,EAAQ,MAAQ,GAChBG,EAAa,MAAQyD,EAAAA,SAAS,EAAGnB,EAAGC,CAAC,EACrCtC,EAAa,MAAQsD,CAAA,MAErB1D,EAAQ,MAAQ,GAChBG,EAAa,MAAQ0D,iBAAc,EACnCzD,EAAa,MAAQ,CACvB,CAGF,SAASiD,EAAWS,EAAkB,CAChC5D,EAAe,QAAU4D,IAE7B5D,EAAe,MAAQ4D,EAEvBvE,EAAK,iBAAkBuE,CAAO,EACpBC,YAAA/E,EAAM,SAAU8E,CAAO,EAAA,CAGnC,SAASZ,EAAkBc,EAAqB,CAC1C,IAAAC,EAEJ,GAAID,IAAW,MAAO,CACpB,KAAM,CAAE,EAAAxB,EAAG,EAAAC,EAAG,EAAAC,GAAMR,EAAI,MAEpBlD,EAAM,MACRiF,EAAQtB,EAAU,UAAAH,EAAGC,EAAGC,EAAGtC,EAAa,KAAK,EAErC6D,EAAArB,EAAA,SAASJ,EAAGC,EAAGC,CAAC,CAC1B,KACK,CACL,OAAQsB,EAAQ,CACd,IAAK,MAAO,CACFC,EAAA,CAAE,GAAG/B,EAAI,KAAM,EACvB+B,EAAM,EAAI,KAAK,MAAMA,EAAM,CAAC,EAC5BA,EAAM,EAAI,KAAK,MAAMA,EAAM,CAAC,EAC5BA,EAAM,EAAI,KAAK,MAAMA,EAAM,CAAC,EAE5B,KAAA,CAEF,IAAK,MAAO,CACV,KAAM,CAAE,EAAA9B,EAAG,EAAAC,EAAG,EAAAC,GAAMlC,EAAa,MAEzB8D,EAAAC,EAAA,SAAS/B,EAAGC,EAAGC,CAAC,EACxB4B,EAAM,EAAI,KAAK,MAAMA,EAAM,CAAC,EAC5BA,EAAM,EAAIE,EAAAA,QAAQF,EAAM,EAAG,CAAC,EAC5BA,EAAM,EAAIE,EAAAA,QAAQF,EAAM,EAAG,CAAC,EAE5B,KAAA,CAEF,QACUA,EAAA,CAAE,GAAG9D,EAAa,KAAM,EAChC8D,EAAM,EAAI,KAAK,MAAMA,EAAM,CAAC,EAC5BA,EAAM,EAAIE,EAAAA,QAAQF,EAAM,EAAG,CAAC,EAC5BA,EAAM,EAAIE,EAAAA,QAAQF,EAAM,EAAG,CAAC,CAC9B,CAGFA,EAAM,EAAIE,EAAAA,QAAQ/D,EAAa,MAAO,CAAC,CAAA,CAGlC,OAAA6D,CAAA,CAGT,SAAS7C,IAAqB,CACvBf,EAAQ,QACX0D,EAAA,UAAU/E,EAAM,cAAc,EAE1BA,EAAM,cAAgBkB,EAAe,QACvCmD,EAAW,EAAK,EAChBU,EAAA,UAAU/E,EAAM,cAAc,GAElC,CAGF,SAASuE,GAAgB,CACnBvE,EAAM,UAAY+C,EAAS,OAEpBsB,EAAA,CAACnD,EAAe,KAAK,CAAA,CAGlC,SAASkE,GAAc,CACjBpF,EAAM,UAAY+C,EAAS,OAE3B/C,EAAM,YACRqE,EAAW,EAAK,EAChB9D,EAAK,eAAgB,EAAE,EACbwE,YAAA/E,EAAM,SAAU,EAAE,EAE5BqF,EAAAA,SAAS,IAAM,CACb3D,EAAW,IAAI,EACJpC,GAAA,EACXyF,EAAA,UAAU/E,EAAM,OAAO,CAAA,CACxB,EACH,CAGF,SAASsF,GAAgB,CACnBtF,EAAM,UAAY+C,EAAS,QAErBF,EAAA,MAAQ,CAAE,GAAG1B,EAAa,MAAO,EAAGC,EAAa,MAAO,OAAQ,MAAO,EACjFJ,EAAQ,MAAQ,GAChBqD,EAAW,EAAK,EACHkB,GAAA,EAAA,CAGf,SAASA,IAAe,CACtB,MAAMN,EAAQhB,EAAe,MAE7B1D,EAAK,eAAgB0E,CAAK,EAC1BzF,GAAcyF,CAAK,EACTF,YAAA/E,EAAM,SAAUiF,CAAK,EACjB5F,GAAA,CAAA,CAGhB,SAASmG,GAAoB,CAAE,EAAApC,EAAG,EAAAC,GAAe,CAC/ClC,EAAa,MAAM,EAAIiC,EACvBjC,EAAa,MAAM,EAAIkC,CAAA,CAGzB,SAASoC,GAAgB7D,EAAa,CACpCT,EAAa,MAAM,EAAIS,CAAA,CAGzB,SAAS8D,GAAkBC,EAAe,CACxCvE,EAAa,MAAQuE,CAAA,CAGvB,SAASC,GAAiBxF,EAAe,CACvC,KAAM,CAAE,EAAG,EAAAqD,EAAG,EAAAC,EAAG,EAAAgB,CAAE,EAAIC,mBAAiBvE,CAAK,EAE7Ce,EAAa,MAAQyD,EAAAA,SAAS,EAAGnB,EAAGC,CAAC,EACrCtC,EAAa,MAAQsD,CAAA,CAGvB,SAASmB,EAAoBZ,EAAe,CAC1C,KAAM,CAAE,EAAG,EAAAxB,EAAG,EAAAC,EAAG,EAAAgB,CAAE,EAAIC,mBAAiBM,CAAK,EAE7C9D,EAAa,MAAQyD,EAAAA,SAAS,EAAGnB,EAAGC,CAAC,EACrCtC,EAAa,MAAQsD,EAEXK,EAAAA,UAAA/E,EAAM,WAAYiE,EAAe,KAAK,CAAA,CAGlD,SAAS6B,EAAcC,EAAe,CAC/BA,EAKH1E,EAAQ,MAAQ,GAJhB,WAAW,IAAM,CACfA,EAAQ,MAAQ,IACf,CAAC,CAGN,CAGF,SAAS2E,GAAcC,EAAsB,OACvC,GAAAC,EAAA,UAAYhF,EAAe,MAAO,CAC9B,MAAAiF,EAAW,UAAY,SAAS,cAEtC,GAAI,CAACA,EAAU,OAEfF,EAAM,eAAe,EAErB,MAAMG,EAAQH,EAAM,SACdI,EAAS,MAAM,KAAKzD,GAAS,KAAK,EAClC0D,EAAQD,EAAO,UAAkBE,GAAA,CACrC,MAAMC,GAAKC,EAAAA,UAAUF,CAAI,EAAIA,EAAOA,EAAK,IAEzC,OAAOC,KAAOL,GAAYK,GAAG,SAASL,CAAQ,CAAA,CAC/C,EAEG,IAAAO,EAEC,CAACJ,GAEKF,EAAQ,CAACE,EAAQA,IAAUD,EAAO,OAAS,GACpDK,EAAU/G,EAAU,MAEpB+G,EAAUL,EAAOC,GAASF,EAAQ,GAAK,EAAE,EAJzCM,EAAUN,EAAQO,EAAA,QAAQN,CAAM,EAAIA,EAAO,CAAC,EAO1CK,IACE,OAAOA,EAAQ,OAAU,WAC3BA,EAAQ,MAAM,GAEdhH,EAAAgH,EAAQ,MAAR,MAAAhH,EAAa,QAEjB,CACF,CAGF,SAASkH,IAAuB,CAC9BpF,EAAgB,MAAQ,EACxBC,EAAiB,MAAQ,EAAA,CAG3B,SAASoF,GAAuBZ,EAAsB,CAC9C,MAAAa,EAAMb,EAAM,MAAQA,EAAM,IAC1Bc,EAAgBlD,EAAa,MAAM,OAEzC,OAAQiD,EAAK,CACX,IAAK,UACL,IAAK,YAAa,CACAtF,EAAA,QAChB,KAAA,CAEF,IAAK,YACL,IAAK,aAAc,CACDA,EAAA,QAChB,KAAA,CAEF,IAAK,QACL,IAAK,QACL,IAAK,IAAK,CACR,MAAMyD,EAAQpB,EAAa,MAAMrC,EAAgB,KAAK,EAEtDyD,GAASY,EAAoBZ,CAAK,EAClC,KAAA,CACF,CAGczD,EAAA,OAASA,EAAgB,MAAQuF,GAAiBA,CAAA,CAGpE,SAASC,GAAgBf,EAAsB,OACzCjG,EAAM,SACRqE,EAAW,EAAK,GAEhB4B,EAAM,eAAe,EAEjB/E,EAAe,OACHoE,EAAA,GACd5F,EAAAC,EAAU,QAAV,MAAAD,EAAiB,SAEjB2E,EAAW,EAAI,EAEnB,CAGF,SAAS4C,IAAgB,OACvB5C,EAAW,EAAK,GAChB3E,EAAAC,EAAU,QAAV,MAAAD,EAAiB,OAAM,CAGzB,SAAS8E,GAAM0C,EAAwB,QAC3BxH,EAAAC,EAAA,QAAA,MAAAD,EAAO,MAAMwH,EAAO,CAGhC,SAASzC,IAAO,QACd/E,EAAAC,EAAU,QAAV,MAAAD,EAAiB,MAAK,6BAKtByH,EAAA,mBA+MM,MAAA,CA9MH,GAAIC,QAAKrI,CAAA,UACN,UAAJ,IAAImD,EACH,uBAAOY,GAAS,KAAA,EACjB,KAAK,QACJ,gBAAesE,EAAA,MAAAC,EAAA,WAAA,EAAYD,EAAAA,MAAApH,CAAA,EAAM,QAAQ,EACzC,gBAAeoH,EAAAA,MAAWC,EAAAA,WAAA,EAACnG,EAAc,KAAA,EAC1C,gBAAc,UACb,kBAAiBkG,QAAOpI,EAAA,EACxB,QAAOuF,EACP,UAAO,4BAAWyB,GAAa,CAAA,MAAA,CAAA,EAAA,CAAA,KAAA,CAAA,aAChBgB,GAAe,CAAA,OAAA,CAAA,aACdC,GAAa,CAAA,QAAA,CAAA,CAAA,IAE9BK,EAAAA,mBAmGM,MAAA,SAnGG,YAAJ,IAAI3H,EAAa,uBAAOqD,GAAa,KAAA,EAAE,SAAS,GAAA,GACnDuE,aAiGOC,EAAA,OAAA,UAAA,CA/FJ,MAAOtE,EAAG,MACV,MAAO9B,EAAY,MACnB,MAAOJ,EAAO,KAAA,EAJjB,IAiGO,CA3FLyG,cA0FWL,EAAAA,MAAAM,CAAA,EAAA,CAzFR,SAAUN,EAAA,MAAApH,CAAA,EAAM,MAAM,QACtB,KAAe,CAAA,MAAAkD,EAAA,MAAY,MAAA9B,EAAA,YAAqBJ,EAAO,KAAA,CAAA,qBAExD,IAUM,CATE+C,GAAS,qBADjBoD,EAAAA,mBAUM,MAAA,OARH,wBAAQC,QAAExH,CAAA,EAAC,GAAY,MAAA,EAAAwH,QAAAxH,CAAA,EAAG,GAAE,QAAA,CAAA,CAAA,EAC5B,MAAK+H,iBAAA,CAAA,MAAWP,EAAAA,MAAKpH,CAAA,EAAC,WAAW,CAAA,CAAA,GAElCuH,EAAAA,WAIOC,qBAJP,IAIO,CAHLC,cAEWL,EAAAA,MAAAM,CAAA,EAAA,CAFA,SAAUN,EAAA,MAAApH,CAAA,EAAM,MAAM,MAAA,qBAC/B,IAAkC,CAAlCyH,cAAkCL,EAAAA,MAAAQ,CAAA,EAAA,CAA3B,KAAMR,EAAAA,MAAKpH,CAAA,EAAC,MAAA,6EAIzBsH,EAAAA,mBA8BM,MAAA,CA9BA,MAAKO,EAAE,eAAAT,EAAA,MAAExH,CAAA,EAAC,GAAE,SAAA,CAAA,CAAA,GAChB0H,EAAAA,mBAYM,MAAA,CAZA,MAAKO,EAAA,eAAA,CAAGT,EAAAA,SAAG,aAAcU,EAAS,WAAIV,QAAExH,CAAA,EAAC,IAAG,SAAA,YAAA,CAAA,CAAA,CAAA,GACnC,CAAAsB,EAAA,OAAkBF,EAAO,qBAAtC+G,EAAA,YAAoEX,QAAAQ,CAAA,EAAAI,EAAAA,eAAAC,EAAAA,WAAA,CAAA,IAAA,GAApBb,EAAAA,MAAKzG,CAAA,EAAC,KAAK,CAAA,EAAA,KAAA,EAAA,kBAC3DwG,EAAAA,mBASO,MAAA,OAPJ,MAAKQ,EAAAA,eAAA,oDAAkHzE,EAAG,MAAC,CAAC,KAAKA,EAAA,MAAI,CAAC,KAAKA,EAAG,MAAC,CAAC,KAA0BhC,EAAA,MAAiBE,EAAA,MAAeyB,EAAA,MAAU,qBAS9MiF,EAAS,yBAApBX,EAAAA,mBAeM,MAAA,OAfiB,MAAKU,EAAE,eAAAT,EAAA,MAAExH,CAAA,EAAC,GAAE,OAAA,CAAA,CAAA,GACjC2H,aAaOC,EAAA,OAAA,QAAA,CAXJ,MAAOtE,EAAG,MACV,MAAO9B,EAAY,MACnB,MAAOJ,EAAO,MACd,MAAOmD,EAAU,KAAA,EALpB,IAaO,CANLsD,cAKWL,EAAAA,MAAAM,CAAA,EAAA,CAJR,SAAUN,EAAA,MAAApH,CAAA,EAAM,MAAM,MACtB,YAAekD,EAAG,MAAA,MAAS9B,QAAqB,MAAAJ,EAAA,YAAgBmD,EAAU,KAAA,CAAA,qBAE3E,IAAgB,qCAAbA,EAAU,KAAA,EAAA,CAAA,CAAA,sEAMZiD,EAAAA,MAAApH,CAAA,EAAM,SAqBFoH,EAAAA,MAAApH,CAAA,EAAM,WAAaoH,EAAAA,MAAApH,CAAA,EAAM,uBADtCmH,EAAAA,mBAGO,MAAA,OADJ,MAAKU,EAAAA,eAAA,CAAGT,QAAExH,CAAA,EAAC,GAAE,MAAA,EAAUwH,QAAExH,CAAA,EAAC,IAAG,OAAA,aAAA,EAAyBwH,EAAAA,MAAExH,CAAA,EAAC,GAAE,QAAA,CAAA,CAAA,uDAvB9DuH,qBAoBM,MAAA,OAlBH,wBAAQC,QAAExH,CAAA,EAAC,GAAY,MAAA,EAAAwH,QAAAxH,CAAA,EAAG,GAAE,QAAA,CAAA,CAAA,EAC5B,MAAK+H,EAAAA,eAAA,CAAyB,MAAAP,EAAAA,MAAApH,CAAA,EAAM,oBAAoCgE,EAAS,OAAIoD,EAAAA,MAAKpH,CAAA,EAAC,QAAO,KAAA,OAKnGuH,EAAAA,WAWOC,qBAXP,IAWO,CAVLC,cASWL,EAAAA,MAAAM,CAAA,EAAA,CATA,SAAUN,EAAA,MAAApH,CAAA,EAAM,MAAM,MAAA,qBAC/B,IAMQ,CALAoH,QAAApH,CAAA,EAAM,oBADd,EAAA+H,cAMQX,EAAAA,MAAAQ,CAAA,EAAA,OAJL,KAAMR,EAAAA,MAAKpH,CAAA,EAAC,OACZ,MAAK6H,EAAAA,eAAA,CAAyB,CAAAT,EAAA,MAAAxH,CAAA,EAAG,GAAe,OAAA,CAAA,EAAA,CAAAwH,EAAAA,MAAApH,CAAA,EAAM,2CAIzDkI,EAAAA,UAAA,EAAAH,cAAqEX,EAAAA,MAArEQ,CAAA,EAAAK,EAAAA,WAAqE,CAAhD,IAAA,CAAA,EAAAb,QAAAzG,CAAA,EAAM,UAAS,CAAG,MAAOyG,EAAA,MAAExH,CAAA,EAAC,GAAE,OAAA,sDAQzD6H,EAAAA,YAkBaU,EAAAA,WAAA,CAlBA,KAAMf,EAAAA,MAAExH,CAAA,EAAC,GAAE,MAAA,EAAU,OAAA,EAAA,qBAChC,IASS,CARDoE,EAAS,qBADjBmD,EAAAA,mBASS,SAAA,OAPN,wBAAQC,QAAExH,CAAA,EAAC,GAAY,MAAA,EAAAwH,QAAAxH,CAAA,EAAG,GAAE,OAAA,CAAA,CAAA,EAC7B,KAAK,SACL,SAAS,KACR,aAAYwH,EAAA,MAAAvG,CAAA,EAAO,UAAU,MAC7B,wBAAYuE,EAAW,CAAA,MAAA,CAAA,CAAA,GAExBqC,EAAAA,YAAkCL,EAAA,MAAAQ,CAAA,EAAAI,EAAA,eAAAI,EAAA,mBAApBhB,QAAKzG,CAAA,EAAC,KAAK,CAAA,EAAA,KAAA,EAAA,CAAA,UAEXyG,QAAApH,CAAA,EAAM,uBAAtBmH,EAAA,mBAMM,MAAA,OAN0B,wBAAQC,QAAExH,CAAA,EAAC,GAAY,MAAA,EAAAwH,QAAAxH,CAAA,EAAG,GAAE,SAAA,CAAA,CAAA,CAAA,GAC1D6H,EAAA,YAIQL,QAJRQ,CAAA,EAAAK,aACUb,QAGFzG,CAAA,EAHQ,QAAO,CACpB,OAAQyG,EAAAA,SAAM,eAAiBA,EAAAA,MAAKzG,CAAA,EAAC,QAAQ,OAC7C,KAAMyG,WAAM,aAAeA,QAAKzG,CAAA,EAAC,QAAQ,0HAOtD8G,cA4FSL,EAAAA,MAAAiB,EAAA,EAAA,SA3FH,SAAJ,IAAIhG,EACH,wBAAQ+E,QAAExH,CAAA,EAAC,GAAc,QAAA,EAAAwH,QAAAxH,CAAA,EAAG,GAAE,MAAA,CAAA,CAAA,EAC9B,QAASsB,EAAc,MACvB,GAAIkG,QAAU9E,CAAA,EACd,WAAY8E,EAAAA,MAAKpH,CAAA,EAAC,eAClB,MAAOoH,EAAA,MAAApH,CAAA,EAAM,cAAgBoH,QAAU9E,CAAA,EACvC,oCAAD,IAAW,CAAA,EAAA,CAAA,MAAA,CAAA,GACV,UAAO,4BAAW0D,GAAa,CAAA,MAAA,CAAA,EAAA,CAAA,KAAA,CAAA,aAChBgB,GAAe,CAAA,OAAA,CAAA,aACdC,GAAa,CAAA,QAAA,CAAA,CAAA,sBAE9B,IA+EM,CA/ENK,EAAAA,mBA+EM,MAAA,CA/EA,MAAKO,EAAE,eAAAT,EAAA,MAAExH,CAAA,EAAC,GAAE,OAAA,CAAA,CAAA,GAChB0H,EAAAA,mBA8CM,MAAA,CA9CA,MAAKO,EAAE,eAAAT,EAAA,MAAExH,CAAA,EAAC,GAAE,SAAA,CAAA,CAAA,GAChB6H,EAAAA,YAQgBa,GAAA,SAPV,UAAJ,IAAI3G,EACH,IAAKR,EAAY,MAAC,EAClB,WAAYA,EAAY,MAAC,EACzB,MAAOA,EAAY,MAAC,EACpB,2BAAY2E,EAAa,EAAA,GACzB,yBAAUA,EAAa,EAAA,GACvB,SAAQN,EAAA,uCAEXiC,EAAAA,YAMYc,GAAA,SALN,MAAJ,IAAI3G,EACH,IAAKT,EAAY,MAAC,EAClB,2BAAY2E,EAAa,EAAA,GACzB,yBAAUA,EAAa,EAAA,GACvB,SAAQL,oBAGH2B,QAAApH,CAAA,EAAM,qBADd+H,cAQcS,GAAA,eANR,UAAJ,IAAI3G,EACH,IAAKqB,EAAG,MACR,MAAO9B,EAAY,MACnB,2BAAY0E,EAAa,EAAA,GACzB,yBAAUA,EAAa,EAAA,GACvB,SAAQJ,EAAA,uDAGH0B,QAAApH,CAAA,EAAM,wBADdmH,qBAmBM,MAAA,eAjBA,aAAJ,IAAIrF,EACH,MAAK+F,EAAE,eAAAT,EAAA,MAAExH,CAAA,EAAC,GAAE,WAAA,CAAA,EACb,SAAS,KACR,QAAOgH,GACP,sBAAMnF,EAAgB,MAAA,IACtB,UAASoF,EAAA,IAEVqB,EAAAA,UAAA,EAAA,EAAAf,EASO,mBAAAsB,WARmB,KAAAC,EAAA,WAAA7E,EAAA,MAAhB,CAAA8E,EAAMrC,mBADhBa,EAAA,mBASO,MAAA,CAPJ,IAAKb,EACL,MAAKuB,EAAAA,eAAA,CAAqB,CAAAT,EAAA,MAAAxH,CAAA,EAAG,GAAE,eAAA,CAAA,EAAA,GAA2C,CAAAwH,QAAAxH,CAAA,EAAG,IAAG,gBAAA,SAAA,CAAA,EAA+B6B,SAAoBD,EAAA,QAAoB8E,CAAA,GAIvJ,wCAA0BqC,EAAI,EAC9B,QAAKC,GAAE/C,EAAoB8C,CAAI,CAAA,4DAItCrB,EAAAA,mBA8BM,MAAA,CA9BA,MAAKO,EAAE,eAAAT,EAAA,MAAExH,CAAA,EAAC,GAAE,QAAA,CAAA,CAAA,GAEPwH,EAAA,MAAApH,CAAA,EAAM,mDADf+H,EAAA,YASSX,QAAAyB,EAAA,EAAA,eAPH,QAAJ,IAAI9G,EACJ,QAAA,GACC,MAAK8F,EAAE,eAAAT,EAAA,MAAExH,CAAA,EAAC,GAAE,OAAA,CAAA,EACb,KAAK,QACJ,MAAO2D,EAAG,MAAC,YAAW,EACtB,QAAS,GACT,SAAQqC,EAAA,6BAGHwB,QAAApH,CAAA,EAAM,uBADd,EAAA+H,cASSX,EAAAA,MAAA0B,EAAA,EAAA,eAPH,SAAJ,IAAI9G,EACJ,QAAA,GACA,KAAA,GACA,KAAK,QACJ,QAAOoD,CAAA,qBAER,IAAuC,CAApC2D,kBAAAC,EAAAA,gBAAA5B,EAAA,MAAApH,CAAA,EAAM,YAAcoH,EAAAA,MAAAvG,CAAA,EAAO,MAAM,EAAA,CAAA,CAAA,0CAEtC4G,cAQSL,EAAAA,MAAA0B,EAAA,EAAA,SAPH,UAAJ,IAAI7G,EACJ,QAAA,GACA,KAAK,UACL,KAAK,QACJ,QAAOqD,CAAA,qBAER,IAAyC,CAAtCyD,kBAAAC,EAAAA,gBAAA5B,EAAA,MAAApH,CAAA,EAAM,aAAeoH,EAAAA,MAAAvG,CAAA,EAAO,OAAO,EAAA,CAAA,CAAA"}